@canvas-components/react-components 0.3.27 → 0.3.29
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.
- package/README.md +96 -65
- package/dist/index.cjs +1104 -976
- package/dist/index.d.cts +19 -1
- package/dist/index.d.ts +19 -1
- package/dist/index.js +1104 -977
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { createContext, forwardRef, createElement, useState, useRef, useMemo, useEffect, useImperativeHandle, useLayoutEffect, useSyncExternalStore, useContext, isValidElement, cloneElement, Fragment as Fragment$1, useId, Children } from 'react';
|
|
3
3
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
4
|
+
import { iconDefinitions, iconNames } from '@canvas-components/icons';
|
|
4
5
|
import * as ReactDOM from 'react-dom';
|
|
5
6
|
import { createPortal } from 'react-dom';
|
|
6
|
-
import { iconDefinitions, iconNames } from '@canvas-components/icons';
|
|
7
7
|
|
|
8
8
|
// #style-inject:#style-inject
|
|
9
9
|
function styleInject(css, { insertAt } = {}) {
|
|
@@ -174,953 +174,118 @@ function joinClassNames(...values) {
|
|
|
174
174
|
|
|
175
175
|
// src/shared/prefix.ts
|
|
176
176
|
var REACT_COMPONENT_PREFIX = "canvas-react";
|
|
177
|
+
var REACT_ICON_DEFINITIONS = iconDefinitions;
|
|
177
178
|
|
|
178
|
-
// src/components/
|
|
179
|
-
styleInject(".canvas-react-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
179
|
+
// src/components/icon/style.css
|
|
180
|
+
styleInject(".canvas-react-icon {\n display: inline-block;\n vertical-align: -0.125em;\n color: inherit;\n}\n.canvas-react-icon-spin {\n animation: canvas-react-icon-spin 1s infinite linear;\n}\n@keyframes canvas-react-icon-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .canvas-react-icon-spin {\n animation-duration: 2s;\n }\n}\n");
|
|
181
|
+
var PRIMARY_COLOR_TOKEN = "__CC_REACT_ICON_PRIMARY__";
|
|
182
|
+
var SECONDARY_COLOR_TOKEN = "__CC_REACT_ICON_SECONDARY__";
|
|
183
|
+
var ReactIcon = forwardRef(
|
|
184
|
+
function ReactIcon2({
|
|
185
|
+
"aria-hidden": ariaHidden,
|
|
186
|
+
"aria-label": ariaLabel,
|
|
187
|
+
className,
|
|
188
|
+
color,
|
|
189
|
+
name,
|
|
190
|
+
rotate,
|
|
191
|
+
size = "1em",
|
|
192
|
+
spin = false,
|
|
193
|
+
style,
|
|
194
|
+
twoToneColor,
|
|
195
|
+
...svgProps
|
|
196
|
+
}, ref) {
|
|
197
|
+
const icon = REACT_ICON_DEFINITIONS[name];
|
|
198
|
+
const [primaryColor, secondaryColor] = resolveTwoToneColors(twoToneColor);
|
|
199
|
+
const svgStyle = {
|
|
200
|
+
color,
|
|
201
|
+
width: size,
|
|
202
|
+
height: size,
|
|
203
|
+
transform: rotate == null ? void 0 : `rotate(${rotate}deg)`,
|
|
204
|
+
...style
|
|
205
|
+
};
|
|
206
|
+
const classes = [
|
|
207
|
+
"canvas-react-icon",
|
|
208
|
+
spin ? "canvas-react-icon-spin" : void 0,
|
|
209
|
+
className
|
|
210
|
+
].filter(Boolean).join(" ");
|
|
211
|
+
return createElement(
|
|
212
|
+
"svg",
|
|
213
|
+
{
|
|
214
|
+
...svgProps,
|
|
215
|
+
ref,
|
|
216
|
+
className: classes,
|
|
217
|
+
viewBox: icon.icon.attrs.viewBox,
|
|
218
|
+
width: size,
|
|
219
|
+
height: size,
|
|
220
|
+
fill: "currentColor",
|
|
221
|
+
style: svgStyle,
|
|
222
|
+
role: ariaLabel ? "img" : svgProps.role,
|
|
223
|
+
"aria-label": ariaLabel,
|
|
224
|
+
"aria-hidden": ariaHidden ?? !ariaLabel,
|
|
225
|
+
focusable: "false",
|
|
226
|
+
"data-icon": icon.name
|
|
227
|
+
},
|
|
228
|
+
...renderIconChildren(icon.icon, primaryColor, secondaryColor)
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
);
|
|
232
|
+
ReactIcon.displayName = "ReactIcon";
|
|
233
|
+
function createReactIconComponent(name) {
|
|
234
|
+
const IconComponent = forwardRef(
|
|
235
|
+
function NamedReactIcon(props, ref) {
|
|
236
|
+
return /* @__PURE__ */ jsx(ReactIcon, { ...props, name, ref });
|
|
206
237
|
}
|
|
207
238
|
);
|
|
239
|
+
IconComponent.displayName = `React${name}`;
|
|
240
|
+
return IconComponent;
|
|
208
241
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
fontFamily: style?.fontFamily,
|
|
213
|
-
fontSize: style?.fontSize,
|
|
214
|
-
fontWeight: style?.fontWeight,
|
|
215
|
-
fontStyle: style?.fontStyle,
|
|
216
|
-
color: style?.color
|
|
217
|
-
});
|
|
218
|
-
function normalizeStyle(input) {
|
|
219
|
-
if (!input) return void 0;
|
|
220
|
-
const style = {};
|
|
221
|
-
if (typeof input.fontFamily === "string" && /^[\p{L}\p{N}_\s,'"-]+$/u.test(input.fontFamily))
|
|
222
|
-
style.fontFamily = input.fontFamily;
|
|
223
|
-
if (typeof input.fontSize === "number" && Number.isFinite(input.fontSize) && input.fontSize >= 1 && input.fontSize <= 240)
|
|
224
|
-
style.fontSize = input.fontSize;
|
|
225
|
-
if (typeof input.fontWeight === "string" && /^(?:[1-9]00|normal|bold)$/.test(input.fontWeight))
|
|
226
|
-
style.fontWeight = input.fontWeight;
|
|
227
|
-
if (input.fontStyle === "normal" || input.fontStyle === "italic")
|
|
228
|
-
style.fontStyle = input.fontStyle;
|
|
229
|
-
if (typeof input.color === "string" && /^#[0-9a-fA-F]{3,8}$/.test(input.color))
|
|
230
|
-
style.color = input.color;
|
|
231
|
-
return Object.keys(style).length ? style : void 0;
|
|
232
|
-
}
|
|
233
|
-
function alignRange(text, start, end) {
|
|
234
|
-
const Segmenter = Intl.Segmenter;
|
|
235
|
-
const boundaries = Segmenter ? [
|
|
236
|
-
0,
|
|
237
|
-
...Array.from(
|
|
238
|
-
new Segmenter(void 0, { granularity: "grapheme" }).segment(text),
|
|
239
|
-
(part) => part.index + part.segment.length
|
|
240
|
-
)
|
|
241
|
-
] : [
|
|
242
|
-
0,
|
|
243
|
-
...Array.from(text).reduce((offsets, character) => {
|
|
244
|
-
offsets.push((offsets[offsets.length - 1] ?? 0) + character.length);
|
|
245
|
-
return offsets;
|
|
246
|
-
}, [])
|
|
247
|
-
];
|
|
248
|
-
const clampedStart = Math.max(0, Math.min(start, text.length));
|
|
249
|
-
const clampedEnd = Math.max(clampedStart, Math.min(end, text.length));
|
|
250
|
-
const from = [...boundaries].reverse().find((boundary) => boundary <= clampedStart) ?? 0;
|
|
251
|
-
const to = clampedStart === clampedEnd ? from : boundaries.find((boundary) => boundary >= clampedEnd) ?? text.length;
|
|
252
|
-
return { from, to };
|
|
253
|
-
}
|
|
254
|
-
function normalizeRichTextRuns(runs) {
|
|
255
|
-
const normalized = [];
|
|
256
|
-
for (const run of runs) {
|
|
257
|
-
if (!run.text) continue;
|
|
258
|
-
const style = normalizeStyle(run.style);
|
|
259
|
-
const previous = normalized[normalized.length - 1];
|
|
260
|
-
if (previous && styleKey(previous.style) === styleKey(style))
|
|
261
|
-
previous.text += run.text;
|
|
262
|
-
else normalized.push({ text: run.text, ...style ? { style } : {} });
|
|
242
|
+
function resolveTwoToneColors(twoToneColor) {
|
|
243
|
+
if (Array.isArray(twoToneColor)) {
|
|
244
|
+
return [twoToneColor[0], twoToneColor[1]];
|
|
263
245
|
}
|
|
264
|
-
|
|
246
|
+
const primaryColor = twoToneColor ?? "#1677ff";
|
|
247
|
+
return [
|
|
248
|
+
primaryColor,
|
|
249
|
+
twoToneColor ? lightenColor(twoToneColor) : "#e6f4ff"
|
|
250
|
+
];
|
|
265
251
|
}
|
|
266
|
-
function
|
|
267
|
-
|
|
252
|
+
function lightenColor(color) {
|
|
253
|
+
const match = color.match(/^#([\da-f]{3}|[\da-f]{6})$/i);
|
|
254
|
+
if (!match) return "#e6e6e6";
|
|
255
|
+
const raw = match[1];
|
|
256
|
+
const normalized = raw.length === 3 ? raw.split("").map((digit) => digit + digit).join("") : raw;
|
|
257
|
+
const channels = normalized.match(/[\da-f]{2}/gi).map((channel) => Number.parseInt(channel, 16));
|
|
258
|
+
return `#${channels.map((channel) => Math.round(channel + (255 - channel) * 0.9)).map((channel) => channel.toString(16).padStart(2, "0")).join("")}`;
|
|
268
259
|
}
|
|
269
|
-
function
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
const runStart = offset;
|
|
276
|
-
const runEnd = offset + run.text.length;
|
|
277
|
-
offset = runEnd;
|
|
278
|
-
if (runEnd <= start || runStart >= end) {
|
|
279
|
-
result.push(run);
|
|
280
|
-
continue;
|
|
260
|
+
function renderIconChildren(node, primaryColor, secondaryColor) {
|
|
261
|
+
return (node.children ?? []).map((child, index) => {
|
|
262
|
+
const props = {};
|
|
263
|
+
for (const [key, rawValue] of Object.entries(child.attrs)) {
|
|
264
|
+
const value = rawValue.split(PRIMARY_COLOR_TOKEN).join(primaryColor).split(SECONDARY_COLOR_TOKEN).join(secondaryColor);
|
|
265
|
+
props[normalizeSvgAttribute(key)] = value;
|
|
281
266
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
style: { ...run.style, ...patch }
|
|
289
|
-
});
|
|
290
|
-
if (localEnd < run.text.length)
|
|
291
|
-
result.push({ ...run, text: run.text.slice(localEnd) });
|
|
292
|
-
}
|
|
293
|
-
return normalizeRichTextRuns(result);
|
|
267
|
+
return createElement(
|
|
268
|
+
child.tag,
|
|
269
|
+
{ ...props, key: `${child.tag}-${index}` },
|
|
270
|
+
...renderIconChildren(child, primaryColor, secondaryColor)
|
|
271
|
+
);
|
|
272
|
+
});
|
|
294
273
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
);
|
|
311
|
-
if (before) {
|
|
312
|
-
result.push({ ...run, text: before });
|
|
313
|
-
inherited = run.style;
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
if (runEnd > to) {
|
|
317
|
-
const after = run.text.slice(Math.max(0, to - runStart));
|
|
318
|
-
if (after) {
|
|
319
|
-
following ?? (following = run.style);
|
|
320
|
-
result.push({ ...run, text: after });
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
if (text) {
|
|
325
|
-
let length = 0;
|
|
326
|
-
const insertionIndex = result.findIndex((run) => {
|
|
327
|
-
length += run.text.length;
|
|
328
|
-
return length > from;
|
|
329
|
-
});
|
|
330
|
-
result.splice(insertionIndex < 0 ? result.length : insertionIndex, 0, {
|
|
331
|
-
text,
|
|
332
|
-
...inherited ?? following ? { style: inherited ?? following } : {}
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
return normalizeRichTextRuns(result);
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
// src/components/compat/style.css
|
|
339
|
-
styleInject(".canvas-react-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n min-height: 32px;\n padding: 4px 14px;\n border: 1px solid var(--cc-border-color, #d9d9d9);\n border-radius: 6px;\n color: var(--cc-text-color, #1f2937);\n background: var(--cc-surface-color, #fff);\n cursor: pointer;\n}\n.canvas-react-button:hover:not(:disabled) {\n color: #1677ff;\n border-color: #1677ff;\n}\n.canvas-react-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.canvas-react-button-primary {\n color: #fff;\n border-color: #1677ff;\n background: #1677ff;\n}\n.canvas-react-button-primary:hover:not(:disabled) {\n color: #fff;\n border-color: #4096ff;\n background: #4096ff;\n}\n.canvas-react-button-danger {\n color: #dc2626;\n border-color: #fca5a5;\n}\n.canvas-react-button-small {\n min-height: 24px;\n padding: 2px 8px;\n}\n.canvas-react-button-large {\n min-height: 40px;\n padding: 6px 18px;\n}\n.canvas-react-button-icon {\n display: inline-flex;\n}\n.canvas-react-row {\n display: flex;\n flex-flow: row wrap;\n}\n.canvas-react-col {\n min-width: 0;\n padding-inline: 8px;\n}\n.canvas-react-radio-group {\n display: flex;\n gap: 16px;\n}\n.canvas-react-radio {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n}\n.canvas-react-radio input {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n.canvas-react-radio-mark {\n width: 14px;\n height: 14px;\n border: 1px solid #94a3b8;\n border-radius: 50%;\n box-sizing: border-box;\n}\n.canvas-react-radio input:checked + .canvas-react-radio-mark {\n border: 4px solid #1677ff;\n}\n.canvas-react-form-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin-bottom: 16px;\n}\n.canvas-react-form-label {\n color: #334155;\n font-size: 14px;\n}\n.canvas-react-form-error {\n color: #dc2626;\n font-size: 12px;\n}\n.canvas-react-textarea {\n width: 100%;\n min-height: 72px;\n padding: 8px 10px;\n border: 1px solid var(--canvas-react-color-border);\n border-radius: 6px;\n box-sizing: border-box;\n background: var(--canvas-react-color-bg);\n color: var(--canvas-react-color-text);\n font: inherit;\n resize: vertical;\n}\n.canvas-react-textarea:hover:not(:disabled) {\n border-color: var(--canvas-react-color-primary-hover);\n}\n.canvas-react-textarea:focus {\n border-color: var(--canvas-react-color-primary);\n box-shadow: var(--canvas-react-shadow-focus);\n outline: none;\n}\n.canvas-react-textarea::placeholder {\n color: var(--canvas-react-color-text-muted);\n}\n.canvas-react-textarea:disabled {\n background: var(--canvas-react-color-bg-soft, #fafafa);\n color: var(--canvas-react-color-text-muted);\n cursor: not-allowed;\n}\n");
|
|
340
|
-
|
|
341
|
-
// src/components/form/style.css
|
|
342
|
-
styleInject(".canvas-react-form {\n min-width: 0;\n}\n.canvas-react-form-vertical {\n display: grid;\n gap: 16px;\n}\n.canvas-react-form-horizontal {\n display: grid;\n gap: 12px;\n}\n.canvas-react-form-inline {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: 12px 16px;\n}\n.canvas-react-form-item {\n box-sizing: border-box;\n min-width: 0;\n}\n.canvas-react-form-item-vertical {\n display: grid;\n gap: 6px;\n}\n.canvas-react-form-item-horizontal {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr);\n align-items: center;\n column-gap: 10px;\n row-gap: 4px;\n}\n.canvas-react-form-item-inline {\n display: inline-grid;\n grid-template-columns: auto minmax(0, 1fr);\n align-items: center;\n column-gap: 8px;\n}\n.canvas-react-form-item-no-wrap {\n flex-wrap: nowrap;\n}\n.canvas-react-form-item-horizontal.canvas-react-form-item-no-wrap {\n display: grid;\n grid-template-columns: max-content minmax(0, 1fr);\n}\n.canvas-react-form-horizontal > .canvas-react-form-item {\n margin-bottom: var(--canvas-react-form-item-spacing, 16px);\n}\n.canvas-react-form-item-inline.canvas-react-form-item-no-wrap {\n display: inline-grid;\n grid-template-columns: max-content minmax(0, 1fr);\n}\n.canvas-react-form-item-no-wrap > .canvas-react-form-label {\n white-space: nowrap;\n}\n.canvas-react-form-label {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n min-width: 0;\n color: #475569;\n font-size: var(--canvas-react-font-size-label);\n line-height: 1.4;\n}\n.canvas-react-form-horizontal > .canvas-react-form-item > .canvas-react-form-label {\n min-height: 32px;\n}\n.canvas-react-form-required {\n color: #dc2626;\n}\n.canvas-react-form-control {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.canvas-react-form-error {\n color: #dc2626;\n font-size: var(--canvas-react-font-size-secondary);\n}\n.canvas-react-form-help,\n.canvas-react-form-extra {\n color: #64748b;\n font-size: var(--canvas-react-font-size-secondary);\n}\n.canvas-react-form-item-error .canvas-react-form-control > input,\n.canvas-react-form-item-error .canvas-react-form-control > textarea {\n border-color: #dc2626;\n}\n");
|
|
343
|
-
function createFormInstance() {
|
|
344
|
-
const store = {
|
|
345
|
-
values: {},
|
|
346
|
-
initialValues: {},
|
|
347
|
-
errors: {},
|
|
348
|
-
rules: /* @__PURE__ */ new Map(),
|
|
349
|
-
listeners: /* @__PURE__ */ new Set(),
|
|
350
|
-
revision: 0,
|
|
351
|
-
notify() {
|
|
352
|
-
store.revision += 1;
|
|
353
|
-
store.listeners.forEach((listener) => listener());
|
|
354
|
-
}
|
|
355
|
-
};
|
|
356
|
-
return {
|
|
357
|
-
__store: store,
|
|
358
|
-
getFieldValue: (name) => store.values[name],
|
|
359
|
-
setFieldsValue(values) {
|
|
360
|
-
store.values = { ...store.values, ...values };
|
|
361
|
-
Object.keys(values).forEach((name) => {
|
|
362
|
-
delete store.errors[name];
|
|
363
|
-
});
|
|
364
|
-
store.notify();
|
|
365
|
-
},
|
|
366
|
-
resetFields() {
|
|
367
|
-
store.values = { ...store.initialValues };
|
|
368
|
-
store.errors = {};
|
|
369
|
-
store.notify();
|
|
370
|
-
},
|
|
371
|
-
async validateFields() {
|
|
372
|
-
const errors = {};
|
|
373
|
-
for (const [name, rules] of store.rules) {
|
|
374
|
-
const value = store.values[name];
|
|
375
|
-
for (const rawRule of rules) {
|
|
376
|
-
const rule = typeof rawRule === "function" ? rawRule({ getFieldValue: (field) => store.values[field] }) : rawRule;
|
|
377
|
-
if (rule.required && (value === void 0 || value === null || value === "")) {
|
|
378
|
-
errors[name] = rule.message ?? "\u6B64\u9879\u4E3A\u5FC5\u586B\u9879";
|
|
379
|
-
break;
|
|
380
|
-
}
|
|
381
|
-
if ((rule.type === "number" || rule.type === "integer") && typeof value === "number" && rule.min !== void 0 && value < rule.min) {
|
|
382
|
-
errors[name] = rule.message ?? `\u4E0D\u80FD\u5C0F\u4E8E ${rule.min}`;
|
|
383
|
-
break;
|
|
384
|
-
}
|
|
385
|
-
if ((rule.type === "number" || rule.type === "integer") && typeof value === "number" && rule.max !== void 0 && value > rule.max) {
|
|
386
|
-
errors[name] = rule.message ?? `\u4E0D\u80FD\u5927\u4E8E ${rule.max}`;
|
|
387
|
-
break;
|
|
388
|
-
}
|
|
389
|
-
if (rule.type === "integer" && typeof value === "number" && !Number.isInteger(value)) {
|
|
390
|
-
errors[name] = rule.message ?? "\u8BF7\u8F93\u5165\u6574\u6570";
|
|
391
|
-
break;
|
|
392
|
-
}
|
|
393
|
-
if (rule.validator) {
|
|
394
|
-
try {
|
|
395
|
-
await rule.validator(rule, value);
|
|
396
|
-
} catch (error) {
|
|
397
|
-
errors[name] = error instanceof Error ? error.message : "\u6821\u9A8C\u5931\u8D25";
|
|
398
|
-
break;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
store.errors = errors;
|
|
404
|
-
store.notify();
|
|
405
|
-
if (Object.keys(errors).length > 0) {
|
|
406
|
-
return Promise.reject({
|
|
407
|
-
errorFields: errors,
|
|
408
|
-
values: { ...store.values }
|
|
409
|
-
});
|
|
410
|
-
}
|
|
411
|
-
return { ...store.values };
|
|
412
|
-
}
|
|
413
|
-
};
|
|
414
|
-
}
|
|
415
|
-
function useReactForm() {
|
|
416
|
-
const formRef = useRef(null);
|
|
417
|
-
if (!formRef.current) formRef.current = createFormInstance();
|
|
418
|
-
return [formRef.current];
|
|
419
|
-
}
|
|
420
|
-
function useReactFormWatch(name, form) {
|
|
421
|
-
useSyncExternalStore(
|
|
422
|
-
(listener) => {
|
|
423
|
-
form.__store.listeners.add(listener);
|
|
424
|
-
return () => form.__store.listeners.delete(listener);
|
|
425
|
-
},
|
|
426
|
-
() => form.__store.revision,
|
|
427
|
-
() => 0
|
|
428
|
-
);
|
|
429
|
-
return form.getFieldValue(name);
|
|
430
|
-
}
|
|
431
|
-
var FormContext = createContext(null);
|
|
432
|
-
var emptySubscribe = () => () => {
|
|
433
|
-
};
|
|
434
|
-
var emptySnapshot = () => 0;
|
|
435
|
-
function ReactFormRoot({
|
|
436
|
-
form: formProp,
|
|
437
|
-
initialValues,
|
|
438
|
-
layout = "vertical",
|
|
439
|
-
noWrap = false,
|
|
440
|
-
itemSpacing,
|
|
441
|
-
labelWidth,
|
|
442
|
-
labelAlign = "right",
|
|
443
|
-
colon = false,
|
|
444
|
-
requiredMark = true,
|
|
445
|
-
className,
|
|
446
|
-
children,
|
|
447
|
-
...props
|
|
448
|
-
}) {
|
|
449
|
-
const internalForm = useRef(null);
|
|
450
|
-
if (!internalForm.current) internalForm.current = createFormInstance();
|
|
451
|
-
const form = formProp ?? internalForm.current;
|
|
452
|
-
const initialKey = useMemo(
|
|
453
|
-
() => JSON.stringify(initialValues ?? {}),
|
|
454
|
-
[initialValues]
|
|
455
|
-
);
|
|
456
|
-
useEffect(() => {
|
|
457
|
-
form.__store.initialValues = { ...initialValues };
|
|
458
|
-
form.__store.values = { ...initialValues, ...form.__store.values };
|
|
459
|
-
form.__store.notify();
|
|
460
|
-
}, [form, initialKey]);
|
|
461
|
-
const contextValue = useMemo(
|
|
462
|
-
() => ({
|
|
463
|
-
form,
|
|
464
|
-
layout,
|
|
465
|
-
noWrap,
|
|
466
|
-
labelWidth,
|
|
467
|
-
labelAlign,
|
|
468
|
-
colon,
|
|
469
|
-
requiredMark
|
|
470
|
-
}),
|
|
471
|
-
[colon, form, labelAlign, labelWidth, layout, noWrap, requiredMark]
|
|
472
|
-
);
|
|
473
|
-
return /* @__PURE__ */ jsx(FormContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
474
|
-
"form",
|
|
475
|
-
{
|
|
476
|
-
...props,
|
|
477
|
-
style: itemSpacing === void 0 ? props.style : {
|
|
478
|
-
...props.style,
|
|
479
|
-
"--canvas-react-form-item-spacing": itemSpacing
|
|
480
|
-
},
|
|
481
|
-
className: joinClassNames(
|
|
482
|
-
`${REACT_COMPONENT_PREFIX}-form`,
|
|
483
|
-
`${REACT_COMPONENT_PREFIX}-form-${layout}`,
|
|
484
|
-
className
|
|
485
|
-
),
|
|
486
|
-
onSubmit: (event) => event.preventDefault(),
|
|
487
|
-
children
|
|
488
|
-
}
|
|
489
|
-
) });
|
|
490
|
-
}
|
|
491
|
-
function ReactFormItem({
|
|
492
|
-
label,
|
|
493
|
-
name,
|
|
494
|
-
children,
|
|
495
|
-
rules = [],
|
|
496
|
-
initialValue,
|
|
497
|
-
required,
|
|
498
|
-
colon,
|
|
499
|
-
labelWidth,
|
|
500
|
-
labelAlign,
|
|
501
|
-
labelStyle,
|
|
502
|
-
controlStyle,
|
|
503
|
-
help,
|
|
504
|
-
extra,
|
|
505
|
-
className,
|
|
506
|
-
style,
|
|
507
|
-
noWrap
|
|
508
|
-
}) {
|
|
509
|
-
const context = useContext(FormContext);
|
|
510
|
-
const form = context?.form ?? null;
|
|
511
|
-
if (name && !form) throw new Error("ReactForm.Item \u5FC5\u987B\u5728 ReactForm \u5185\u4F7F\u7528");
|
|
512
|
-
useSyncExternalStore(
|
|
513
|
-
form ? (listener) => {
|
|
514
|
-
form.__store.listeners.add(listener);
|
|
515
|
-
return () => form.__store.listeners.delete(listener);
|
|
516
|
-
} : emptySubscribe,
|
|
517
|
-
form ? () => form.__store.revision : emptySnapshot,
|
|
518
|
-
emptySnapshot
|
|
519
|
-
);
|
|
520
|
-
useEffect(() => {
|
|
521
|
-
if (!form || !name) return;
|
|
522
|
-
form.__store.rules.set(name, rules);
|
|
523
|
-
if (form.getFieldValue(name) === void 0 && initialValue !== void 0) {
|
|
524
|
-
form.setFieldsValue({ [name]: initialValue });
|
|
525
|
-
}
|
|
526
|
-
return () => {
|
|
527
|
-
form.__store.rules.delete(name);
|
|
528
|
-
};
|
|
529
|
-
}, [form, initialValue, name, rules]);
|
|
530
|
-
const childProps = isValidElement(children) ? children.props : {};
|
|
531
|
-
const value = form && name ? form.getFieldValue(name) : void 0;
|
|
532
|
-
const child = form && name && isValidElement(children) ? cloneElement(children, {
|
|
533
|
-
value: value ?? "",
|
|
534
|
-
onChange: (...args) => {
|
|
535
|
-
const first = args[0];
|
|
536
|
-
const nextValue = typeof first === "object" && first !== null && "target" in first ? first.target?.value : first;
|
|
537
|
-
form.setFieldsValue({ [name]: nextValue });
|
|
538
|
-
const childOnChange = childProps.onChange;
|
|
539
|
-
if (typeof childOnChange === "function") childOnChange(...args);
|
|
540
|
-
}
|
|
541
|
-
}) : children;
|
|
542
|
-
const error = form && name ? form.__store.errors[name] : void 0;
|
|
543
|
-
const isRequired = required ?? rules.some((rule) => typeof rule !== "function" && rule.required === true);
|
|
544
|
-
const resolvedLabelWidth = labelWidth ?? context?.labelWidth;
|
|
545
|
-
const resolvedLabelAlign = labelAlign ?? context?.labelAlign ?? "right";
|
|
546
|
-
const showColon = colon ?? context?.colon ?? false;
|
|
547
|
-
const shouldMarkRequired = context?.requiredMark ?? true;
|
|
548
|
-
const resolvedLayout = context?.layout ?? "vertical";
|
|
549
|
-
const resolvedNoWrap = noWrap ?? context?.noWrap ?? false;
|
|
550
|
-
const labelElementId = typeof childProps.id === "string" ? childProps.id : void 0;
|
|
551
|
-
return /* @__PURE__ */ jsxs(
|
|
552
|
-
"div",
|
|
553
|
-
{
|
|
554
|
-
className: joinClassNames(
|
|
555
|
-
`${REACT_COMPONENT_PREFIX}-form-item`,
|
|
556
|
-
`${REACT_COMPONENT_PREFIX}-form-item-${resolvedLayout}`,
|
|
557
|
-
resolvedNoWrap && `${REACT_COMPONENT_PREFIX}-form-item-no-wrap`,
|
|
558
|
-
className,
|
|
559
|
-
error && `${REACT_COMPONENT_PREFIX}-form-item-error`
|
|
560
|
-
),
|
|
561
|
-
style,
|
|
562
|
-
children: [
|
|
563
|
-
label ? /* @__PURE__ */ jsxs(
|
|
564
|
-
"label",
|
|
565
|
-
{
|
|
566
|
-
className: `${REACT_COMPONENT_PREFIX}-form-label`,
|
|
567
|
-
htmlFor: labelElementId,
|
|
568
|
-
style: {
|
|
569
|
-
width: resolvedLabelWidth,
|
|
570
|
-
flexBasis: resolvedLabelWidth,
|
|
571
|
-
textAlign: resolvedLabelAlign,
|
|
572
|
-
...labelStyle
|
|
573
|
-
},
|
|
574
|
-
children: [
|
|
575
|
-
shouldMarkRequired && isRequired ? /* @__PURE__ */ jsx(
|
|
576
|
-
"span",
|
|
577
|
-
{
|
|
578
|
-
"aria-hidden": "true",
|
|
579
|
-
className: `${REACT_COMPONENT_PREFIX}-form-required`,
|
|
580
|
-
children: "*"
|
|
581
|
-
}
|
|
582
|
-
) : null,
|
|
583
|
-
/* @__PURE__ */ jsx("span", { children: label }),
|
|
584
|
-
showColon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: ":" }) : null
|
|
585
|
-
]
|
|
586
|
-
}
|
|
587
|
-
) : null,
|
|
588
|
-
/* @__PURE__ */ jsxs(
|
|
589
|
-
"div",
|
|
590
|
-
{
|
|
591
|
-
className: `${REACT_COMPONENT_PREFIX}-form-control`,
|
|
592
|
-
style: controlStyle,
|
|
593
|
-
children: [
|
|
594
|
-
child,
|
|
595
|
-
error ? /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-form-error`, children: error }) : help ? /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-form-help`, children: help }) : null,
|
|
596
|
-
extra ? /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-form-extra`, children: extra }) : null
|
|
597
|
-
]
|
|
598
|
-
}
|
|
599
|
-
)
|
|
600
|
-
]
|
|
601
|
-
}
|
|
602
|
-
);
|
|
603
|
-
}
|
|
604
|
-
var ReactForm = Object.assign(ReactFormRoot, {
|
|
605
|
-
Item: ReactFormItem,
|
|
606
|
-
useForm: useReactForm,
|
|
607
|
-
useWatch: useReactFormWatch
|
|
608
|
-
});
|
|
609
|
-
|
|
610
|
-
// src/components/message/style.css
|
|
611
|
-
styleInject('@import "../../styles/variables.css";\n.canvas-react-message-host {\n position: fixed;\n z-index: 3000;\n inset-inline: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding-inline: 16px;\n pointer-events: none;\n font-size: var(--canvas-react-font-size, 14px);\n}\n.canvas-react-message {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n max-width: min(100%, 640px);\n max-height: 240px;\n padding: 9px 12px;\n border-radius: var(--canvas-react-radius-md, 8px);\n background: var(--canvas-react-color-bg, #fff);\n color: var(--canvas-react-color-text, rgba(0, 0, 0, 0.88));\n box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12);\n line-height: 1.5;\n pointer-events: auto;\n animation: canvas-react-message-enter 0.2s ease-out both;\n}\n.canvas-react-message-leaving {\n overflow: hidden;\n pointer-events: none;\n animation: canvas-react-message-leave 0.3s ease-in forwards;\n}\n.canvas-react-message-icon {\n display: inline-flex;\n flex: none;\n width: 16px;\n height: 16px;\n}\n.canvas-react-message-icon svg {\n width: 16px;\n height: 16px;\n}\n.canvas-react-message-info,\n.canvas-react-message-loading {\n --canvas-react-message-color: #1677ff;\n}\n.canvas-react-message-success {\n --canvas-react-message-color: #52c41a;\n}\n.canvas-react-message-warning {\n --canvas-react-message-color: #faad14;\n}\n.canvas-react-message-error {\n --canvas-react-message-color: #ff4d4f;\n}\n.canvas-react-message-icon {\n color: var(--canvas-react-message-color);\n}\n.canvas-react-message-spinner {\n width: 14px;\n height: 14px;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: canvas-react-message-spin 0.8s linear infinite;\n}\n@keyframes canvas-react-message-enter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes canvas-react-message-leave {\n to {\n opacity: 0;\n transform: translateY(-8px);\n max-height: 0;\n padding-block: 0;\n margin-bottom: -8px;\n }\n}\n@keyframes canvas-react-message-spin {\n to {\n transform: rotate(360deg);\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .canvas-react-message,\n .canvas-react-message-spinner {\n animation-duration: 0.01ms;\n }\n}\n');
|
|
612
|
-
var nextKey = 0;
|
|
613
|
-
var LEAVE_DURATION = 300;
|
|
614
|
-
function createMessageStore(initialOptions = {}) {
|
|
615
|
-
let options = initialOptions;
|
|
616
|
-
let entries = [];
|
|
617
|
-
const listeners2 = /* @__PURE__ */ new Set();
|
|
618
|
-
const timers = /* @__PURE__ */ new Map();
|
|
619
|
-
const leaveTimers = /* @__PURE__ */ new Map();
|
|
620
|
-
const publish = () => listeners2.forEach((listener) => listener());
|
|
621
|
-
const remove = (key) => {
|
|
622
|
-
const targets = key === void 0 ? entries.filter((entry) => !entry.leaving) : entries.filter((entry) => entry.key === key && !entry.leaving);
|
|
623
|
-
if (!targets.length) return;
|
|
624
|
-
targets.forEach((entry) => {
|
|
625
|
-
const timer = timers.get(entry.key);
|
|
626
|
-
if (timer) clearTimeout(timer);
|
|
627
|
-
timers.delete(entry.key);
|
|
628
|
-
entry.leaving = true;
|
|
629
|
-
leaveTimers.set(
|
|
630
|
-
entry.key,
|
|
631
|
-
setTimeout(() => {
|
|
632
|
-
leaveTimers.delete(entry.key);
|
|
633
|
-
entries = entries.filter(
|
|
634
|
-
(item) => item.key !== entry.key || item !== entry
|
|
635
|
-
);
|
|
636
|
-
entry.close();
|
|
637
|
-
entry.onClose?.();
|
|
638
|
-
publish();
|
|
639
|
-
}, LEAVE_DURATION)
|
|
640
|
-
);
|
|
641
|
-
});
|
|
642
|
-
publish();
|
|
643
|
-
};
|
|
644
|
-
const open = (config) => {
|
|
645
|
-
const key = config.key ?? ++nextKey;
|
|
646
|
-
const previous = entries.find((entry2) => entry2.key === key);
|
|
647
|
-
const oldTimer = timers.get(key);
|
|
648
|
-
if (oldTimer) clearTimeout(oldTimer);
|
|
649
|
-
timers.delete(key);
|
|
650
|
-
const leaveTimer = leaveTimers.get(key);
|
|
651
|
-
if (leaveTimer) clearTimeout(leaveTimer);
|
|
652
|
-
leaveTimers.delete(key);
|
|
653
|
-
let resolve;
|
|
654
|
-
const promise = previous ? void 0 : new Promise((done) => {
|
|
655
|
-
resolve = done;
|
|
656
|
-
});
|
|
657
|
-
const close = previous?.close ?? resolve;
|
|
658
|
-
const entry = {
|
|
659
|
-
...config,
|
|
660
|
-
key,
|
|
661
|
-
type: config.type ?? "info",
|
|
662
|
-
close
|
|
663
|
-
};
|
|
664
|
-
entries = previous ? entries.map((item) => item.key === key ? entry : item) : [...entries, entry];
|
|
665
|
-
if (options.maxCount && entries.filter((item) => !item.leaving).length > options.maxCount) {
|
|
666
|
-
const oldest = entries.find((item) => item.key !== key && !item.leaving);
|
|
667
|
-
if (oldest && oldest.key !== key) remove(oldest.key);
|
|
668
|
-
}
|
|
669
|
-
const duration = config.duration ?? options.duration ?? (entry.type === "loading" ? 0 : 3);
|
|
670
|
-
if (duration > 0)
|
|
671
|
-
timers.set(
|
|
672
|
-
key,
|
|
673
|
-
setTimeout(() => remove(key), duration * 1e3)
|
|
674
|
-
);
|
|
675
|
-
publish();
|
|
676
|
-
const handle = (() => remove(key));
|
|
677
|
-
handle.then = (onFulfilled, onRejected) => (promise ?? new Promise((done) => {
|
|
678
|
-
const current = entries.find((item) => item.key === key);
|
|
679
|
-
if (!current) done();
|
|
680
|
-
else {
|
|
681
|
-
const originalClose = current.close;
|
|
682
|
-
current.close = () => {
|
|
683
|
-
originalClose();
|
|
684
|
-
done();
|
|
685
|
-
};
|
|
686
|
-
}
|
|
687
|
-
})).then(onFulfilled, onRejected);
|
|
688
|
-
return handle;
|
|
689
|
-
};
|
|
690
|
-
const level = (type) => (content, duration, onClose) => open(
|
|
691
|
-
isConfig(content) ? { ...content, type } : { content, type, duration, onClose }
|
|
692
|
-
);
|
|
693
|
-
const api = {
|
|
694
|
-
open,
|
|
695
|
-
info: level("info"),
|
|
696
|
-
success: level("success"),
|
|
697
|
-
warning: level("warning"),
|
|
698
|
-
error: level("error"),
|
|
699
|
-
loading: level("loading"),
|
|
700
|
-
destroy: remove,
|
|
701
|
-
config(next) {
|
|
702
|
-
options = { ...options, ...next };
|
|
703
|
-
publish();
|
|
704
|
-
}
|
|
705
|
-
};
|
|
706
|
-
return {
|
|
707
|
-
api,
|
|
708
|
-
getEntries: () => entries,
|
|
709
|
-
getOptions: () => options,
|
|
710
|
-
subscribe(listener) {
|
|
711
|
-
listeners2.add(listener);
|
|
712
|
-
return () => {
|
|
713
|
-
listeners2.delete(listener);
|
|
714
|
-
};
|
|
715
|
-
}
|
|
716
|
-
};
|
|
717
|
-
}
|
|
718
|
-
function isConfig(value) {
|
|
719
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) && "content" in value;
|
|
720
|
-
}
|
|
721
|
-
function MessageHolder({ store }) {
|
|
722
|
-
const [, refresh] = useState(0);
|
|
723
|
-
useEffect(() => {
|
|
724
|
-
refresh((value) => value + 1);
|
|
725
|
-
return store.subscribe(() => refresh((value) => value + 1));
|
|
726
|
-
}, [store]);
|
|
727
|
-
const options = store.getOptions();
|
|
728
|
-
return /* @__PURE__ */ jsx(
|
|
729
|
-
"div",
|
|
730
|
-
{
|
|
731
|
-
className: `${REACT_COMPONENT_PREFIX}-message-host`,
|
|
732
|
-
style: { top: options.top ?? 8 },
|
|
733
|
-
role: "status",
|
|
734
|
-
"aria-live": "polite",
|
|
735
|
-
children: store.getEntries().map((entry) => /* @__PURE__ */ jsxs(
|
|
736
|
-
"div",
|
|
737
|
-
{
|
|
738
|
-
className: [
|
|
739
|
-
`${REACT_COMPONENT_PREFIX}-message`,
|
|
740
|
-
`${REACT_COMPONENT_PREFIX}-message-${entry.type}`,
|
|
741
|
-
entry.leaving && `${REACT_COMPONENT_PREFIX}-message-leaving`,
|
|
742
|
-
entry.className
|
|
743
|
-
].filter(Boolean).join(" "),
|
|
744
|
-
style: entry.style,
|
|
745
|
-
onClick: entry.onClick,
|
|
746
|
-
children: [
|
|
747
|
-
/* @__PURE__ */ jsx(
|
|
748
|
-
"span",
|
|
749
|
-
{
|
|
750
|
-
className: `${REACT_COMPONENT_PREFIX}-message-icon`,
|
|
751
|
-
"aria-hidden": "true",
|
|
752
|
-
children: entry.icon ?? /* @__PURE__ */ jsx(MessageIcon, { type: entry.type })
|
|
753
|
-
}
|
|
754
|
-
),
|
|
755
|
-
/* @__PURE__ */ jsx("span", { children: entry.content })
|
|
756
|
-
]
|
|
757
|
-
},
|
|
758
|
-
entry.key
|
|
759
|
-
))
|
|
760
|
-
}
|
|
761
|
-
);
|
|
762
|
-
}
|
|
763
|
-
function MessageIcon({ type }) {
|
|
764
|
-
if (type === "loading")
|
|
765
|
-
return /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-message-spinner` });
|
|
766
|
-
const path = type === "success" ? "M5 12l4 4L19 6" : type === "error" ? "M6 6l12 12M18 6L6 18" : type === "warning" ? "M12 7v6m0 4h.01" : "M12 11v6m0-10h.01";
|
|
767
|
-
return /* @__PURE__ */ jsxs(
|
|
768
|
-
"svg",
|
|
769
|
-
{
|
|
770
|
-
viewBox: "0 0 24 24",
|
|
771
|
-
fill: "none",
|
|
772
|
-
stroke: "currentColor",
|
|
773
|
-
strokeWidth: "2.4",
|
|
774
|
-
strokeLinecap: "round",
|
|
775
|
-
strokeLinejoin: "round",
|
|
776
|
-
children: [
|
|
777
|
-
/* @__PURE__ */ jsx(
|
|
778
|
-
"circle",
|
|
779
|
-
{
|
|
780
|
-
cx: "12",
|
|
781
|
-
cy: "12",
|
|
782
|
-
r: "10",
|
|
783
|
-
fill: "currentColor",
|
|
784
|
-
stroke: "none",
|
|
785
|
-
opacity: ".12"
|
|
786
|
-
}
|
|
787
|
-
),
|
|
788
|
-
/* @__PURE__ */ jsx("path", { d: path })
|
|
789
|
-
]
|
|
790
|
-
}
|
|
791
|
-
);
|
|
792
|
-
}
|
|
793
|
-
var staticStore;
|
|
794
|
-
var staticRootMounted = false;
|
|
795
|
-
var staticHost;
|
|
796
|
-
function resolveMessageContainer(value) {
|
|
797
|
-
return (typeof value === "function" ? value() : value) ?? document.body;
|
|
798
|
-
}
|
|
799
|
-
function getStaticStore() {
|
|
800
|
-
if (!staticStore) staticStore = createMessageStore();
|
|
801
|
-
if (typeof document !== "undefined" && !staticRootMounted) {
|
|
802
|
-
const host = document.createElement("div");
|
|
803
|
-
host.id = `${REACT_COMPONENT_PREFIX}-message-root`;
|
|
804
|
-
resolveMessageContainer(staticStore.getOptions().getContainer).appendChild(
|
|
805
|
-
host
|
|
806
|
-
);
|
|
807
|
-
staticHost = host;
|
|
808
|
-
staticRootMounted = true;
|
|
809
|
-
if (typeof ReactDOM.render === "function") {
|
|
810
|
-
ReactDOM.render(/* @__PURE__ */ jsx(MessageHolder, { store: staticStore }), host);
|
|
811
|
-
} else {
|
|
812
|
-
void import('react-dom/client').then(({ createRoot }) => {
|
|
813
|
-
createRoot(host).render(/* @__PURE__ */ jsx(MessageHolder, { store: staticStore }));
|
|
814
|
-
});
|
|
815
|
-
}
|
|
816
|
-
} else if (staticHost && !staticHost.isConnected) {
|
|
817
|
-
resolveMessageContainer(staticStore.getOptions().getContainer).appendChild(
|
|
818
|
-
staticHost
|
|
819
|
-
);
|
|
820
|
-
}
|
|
821
|
-
return staticStore;
|
|
822
|
-
}
|
|
823
|
-
var reactMessage = {
|
|
824
|
-
open: (config) => getStaticStore().api.open(config),
|
|
825
|
-
info: (content, duration, onClose) => getStaticStore().api.info(content, duration, onClose),
|
|
826
|
-
success: (content, duration, onClose) => getStaticStore().api.success(content, duration, onClose),
|
|
827
|
-
warning: (content, duration, onClose) => getStaticStore().api.warning(content, duration, onClose),
|
|
828
|
-
error: (content, duration, onClose) => getStaticStore().api.error(content, duration, onClose),
|
|
829
|
-
loading: (content, duration, onClose) => getStaticStore().api.loading(content, duration, onClose),
|
|
830
|
-
destroy: (key) => getStaticStore().api.destroy(key),
|
|
831
|
-
config: (options) => {
|
|
832
|
-
const store = getStaticStore();
|
|
833
|
-
store.api.config(options);
|
|
834
|
-
if (staticHost && typeof document !== "undefined") {
|
|
835
|
-
const container = resolveMessageContainer(
|
|
836
|
-
store.getOptions().getContainer
|
|
837
|
-
);
|
|
838
|
-
if (staticHost.parentElement !== container)
|
|
839
|
-
container.appendChild(staticHost);
|
|
840
|
-
}
|
|
841
|
-
},
|
|
842
|
-
/** 创建能读取调用位置 React Context 的消息实例。 */
|
|
843
|
-
useMessage: (options) => useReactMessage(options)
|
|
844
|
-
};
|
|
845
|
-
function useReactMessage(options) {
|
|
846
|
-
const store = useMemo(() => createMessageStore(options), []);
|
|
847
|
-
useEffect(() => () => store.api.destroy(), [store]);
|
|
848
|
-
const holder = /* @__PURE__ */ jsx(MessageHolder, { store }, "message-holder");
|
|
849
|
-
return [
|
|
850
|
-
store.api,
|
|
851
|
-
options?.getContainer && typeof document !== "undefined" ? ReactDOM.createPortal(
|
|
852
|
-
holder,
|
|
853
|
-
resolveMessageContainer(options.getContainer)
|
|
854
|
-
) : holder
|
|
855
|
-
];
|
|
856
|
-
}
|
|
857
|
-
function ReactButton({
|
|
858
|
-
children,
|
|
859
|
-
className,
|
|
860
|
-
danger,
|
|
861
|
-
htmlType = "button",
|
|
862
|
-
icon,
|
|
863
|
-
size = "middle",
|
|
864
|
-
type = "default",
|
|
865
|
-
...props
|
|
866
|
-
}) {
|
|
867
|
-
return /* @__PURE__ */ jsxs(
|
|
868
|
-
"button",
|
|
869
|
-
{
|
|
870
|
-
...props,
|
|
871
|
-
type: htmlType,
|
|
872
|
-
className: joinClassNames(
|
|
873
|
-
`${REACT_COMPONENT_PREFIX}-button`,
|
|
874
|
-
`${REACT_COMPONENT_PREFIX}-button-${type}`,
|
|
875
|
-
`${REACT_COMPONENT_PREFIX}-button-${size}`,
|
|
876
|
-
danger && `${REACT_COMPONENT_PREFIX}-button-danger`,
|
|
877
|
-
className
|
|
878
|
-
),
|
|
879
|
-
children: [
|
|
880
|
-
icon ? /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-button-icon`, children: icon }) : null,
|
|
881
|
-
children
|
|
882
|
-
]
|
|
883
|
-
}
|
|
884
|
-
);
|
|
885
|
-
}
|
|
886
|
-
function ReactFlex({
|
|
887
|
-
vertical,
|
|
888
|
-
justify,
|
|
889
|
-
align,
|
|
890
|
-
gap,
|
|
891
|
-
style,
|
|
892
|
-
...props
|
|
893
|
-
}) {
|
|
894
|
-
return /* @__PURE__ */ jsx(
|
|
895
|
-
"div",
|
|
896
|
-
{
|
|
897
|
-
...props,
|
|
898
|
-
style: {
|
|
899
|
-
display: "flex",
|
|
900
|
-
flexDirection: vertical ? "column" : "row",
|
|
901
|
-
justifyContent: justify,
|
|
902
|
-
alignItems: align,
|
|
903
|
-
gap,
|
|
904
|
-
...style
|
|
905
|
-
}
|
|
906
|
-
}
|
|
907
|
-
);
|
|
908
|
-
}
|
|
909
|
-
function ReactRow({ gutter = 0, style, ...props }) {
|
|
910
|
-
return /* @__PURE__ */ jsx(
|
|
911
|
-
"div",
|
|
912
|
-
{
|
|
913
|
-
...props,
|
|
914
|
-
className: joinClassNames(
|
|
915
|
-
`${REACT_COMPONENT_PREFIX}-row`,
|
|
916
|
-
props.className
|
|
917
|
-
),
|
|
918
|
-
style: { marginInline: -gutter / 2, ...style }
|
|
919
|
-
}
|
|
920
|
-
);
|
|
921
|
-
}
|
|
922
|
-
function ReactCol({ span = 24, style, ...props }) {
|
|
923
|
-
return /* @__PURE__ */ jsx(
|
|
924
|
-
"div",
|
|
925
|
-
{
|
|
926
|
-
...props,
|
|
927
|
-
className: joinClassNames(
|
|
928
|
-
`${REACT_COMPONENT_PREFIX}-col`,
|
|
929
|
-
props.className
|
|
930
|
-
),
|
|
931
|
-
style: {
|
|
932
|
-
flex: `0 0 ${span / 24 * 100}%`,
|
|
933
|
-
maxWidth: `${span / 24 * 100}%`,
|
|
934
|
-
...style
|
|
935
|
-
}
|
|
936
|
-
}
|
|
937
|
-
);
|
|
938
|
-
}
|
|
939
|
-
var RadioGroupContext = createContext({});
|
|
940
|
-
function ReactRadioOption({
|
|
941
|
-
value,
|
|
942
|
-
checked,
|
|
943
|
-
disabled,
|
|
944
|
-
onChange,
|
|
945
|
-
children,
|
|
946
|
-
className,
|
|
947
|
-
...props
|
|
948
|
-
}) {
|
|
949
|
-
const group = useContext(RadioGroupContext);
|
|
950
|
-
const selected = checked ?? String(group.value ?? "") === String(value);
|
|
951
|
-
return /* @__PURE__ */ jsxs(
|
|
952
|
-
"label",
|
|
953
|
-
{
|
|
954
|
-
...props,
|
|
955
|
-
className: joinClassNames(
|
|
956
|
-
`${REACT_COMPONENT_PREFIX}-radio`,
|
|
957
|
-
disabled && `${REACT_COMPONENT_PREFIX}-radio-disabled`,
|
|
958
|
-
className
|
|
959
|
-
),
|
|
960
|
-
children: [
|
|
961
|
-
/* @__PURE__ */ jsx(
|
|
962
|
-
"input",
|
|
963
|
-
{
|
|
964
|
-
type: "radio",
|
|
965
|
-
checked: selected,
|
|
966
|
-
disabled,
|
|
967
|
-
onChange: () => {
|
|
968
|
-
const event = { target: { value } };
|
|
969
|
-
onChange?.(event);
|
|
970
|
-
group.onChange?.(event);
|
|
971
|
-
}
|
|
972
|
-
}
|
|
973
|
-
),
|
|
974
|
-
/* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-radio-mark` }),
|
|
975
|
-
/* @__PURE__ */ jsx("span", { children })
|
|
976
|
-
]
|
|
977
|
-
}
|
|
978
|
-
);
|
|
979
|
-
}
|
|
980
|
-
function ReactRadioGroup({
|
|
981
|
-
value,
|
|
982
|
-
onChange,
|
|
983
|
-
className,
|
|
984
|
-
...props
|
|
985
|
-
}) {
|
|
986
|
-
return /* @__PURE__ */ jsx(RadioGroupContext.Provider, { value: { value, onChange }, children: /* @__PURE__ */ jsx(
|
|
987
|
-
"div",
|
|
988
|
-
{
|
|
989
|
-
...props,
|
|
990
|
-
className: joinClassNames(
|
|
991
|
-
`${REACT_COMPONENT_PREFIX}-radio-group`,
|
|
992
|
-
className
|
|
993
|
-
)
|
|
994
|
-
}
|
|
995
|
-
) });
|
|
996
|
-
}
|
|
997
|
-
var ReactRadio = Object.assign(ReactRadioOption, {
|
|
998
|
-
Group: ReactRadioGroup
|
|
999
|
-
});
|
|
1000
|
-
function ReactTextArea({ className, ...props }) {
|
|
1001
|
-
return /* @__PURE__ */ jsx(
|
|
1002
|
-
"textarea",
|
|
1003
|
-
{
|
|
1004
|
-
...props,
|
|
1005
|
-
className: joinClassNames(
|
|
1006
|
-
`${REACT_COMPONENT_PREFIX}-textarea`,
|
|
1007
|
-
className
|
|
1008
|
-
)
|
|
1009
|
-
}
|
|
1010
|
-
);
|
|
1011
|
-
}
|
|
1012
|
-
var REACT_ICON_DEFINITIONS = iconDefinitions;
|
|
1013
|
-
|
|
1014
|
-
// src/components/icon/style.css
|
|
1015
|
-
styleInject(".canvas-react-icon {\n display: inline-block;\n vertical-align: -0.125em;\n color: inherit;\n}\n.canvas-react-icon-spin {\n animation: canvas-react-icon-spin 1s infinite linear;\n}\n@keyframes canvas-react-icon-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .canvas-react-icon-spin {\n animation-duration: 2s;\n }\n}\n");
|
|
1016
|
-
var PRIMARY_COLOR_TOKEN = "__CC_REACT_ICON_PRIMARY__";
|
|
1017
|
-
var SECONDARY_COLOR_TOKEN = "__CC_REACT_ICON_SECONDARY__";
|
|
1018
|
-
var ReactIcon = forwardRef(
|
|
1019
|
-
function ReactIcon2({
|
|
1020
|
-
"aria-hidden": ariaHidden,
|
|
1021
|
-
"aria-label": ariaLabel,
|
|
1022
|
-
className,
|
|
1023
|
-
color,
|
|
1024
|
-
name,
|
|
1025
|
-
rotate,
|
|
1026
|
-
size = "1em",
|
|
1027
|
-
spin = false,
|
|
1028
|
-
style,
|
|
1029
|
-
twoToneColor,
|
|
1030
|
-
...svgProps
|
|
1031
|
-
}, ref) {
|
|
1032
|
-
const icon = REACT_ICON_DEFINITIONS[name];
|
|
1033
|
-
const [primaryColor, secondaryColor] = resolveTwoToneColors(twoToneColor);
|
|
1034
|
-
const svgStyle = {
|
|
1035
|
-
color,
|
|
1036
|
-
width: size,
|
|
1037
|
-
height: size,
|
|
1038
|
-
transform: rotate == null ? void 0 : `rotate(${rotate}deg)`,
|
|
1039
|
-
...style
|
|
1040
|
-
};
|
|
1041
|
-
const classes = [
|
|
1042
|
-
"canvas-react-icon",
|
|
1043
|
-
spin ? "canvas-react-icon-spin" : void 0,
|
|
1044
|
-
className
|
|
1045
|
-
].filter(Boolean).join(" ");
|
|
1046
|
-
return createElement(
|
|
1047
|
-
"svg",
|
|
1048
|
-
{
|
|
1049
|
-
...svgProps,
|
|
1050
|
-
ref,
|
|
1051
|
-
className: classes,
|
|
1052
|
-
viewBox: icon.icon.attrs.viewBox,
|
|
1053
|
-
width: size,
|
|
1054
|
-
height: size,
|
|
1055
|
-
fill: "currentColor",
|
|
1056
|
-
style: svgStyle,
|
|
1057
|
-
role: ariaLabel ? "img" : svgProps.role,
|
|
1058
|
-
"aria-label": ariaLabel,
|
|
1059
|
-
"aria-hidden": ariaHidden ?? !ariaLabel,
|
|
1060
|
-
focusable: "false",
|
|
1061
|
-
"data-icon": icon.name
|
|
1062
|
-
},
|
|
1063
|
-
...renderIconChildren(icon.icon, primaryColor, secondaryColor)
|
|
1064
|
-
);
|
|
1065
|
-
}
|
|
1066
|
-
);
|
|
1067
|
-
ReactIcon.displayName = "ReactIcon";
|
|
1068
|
-
function createReactIconComponent(name) {
|
|
1069
|
-
const IconComponent = forwardRef(
|
|
1070
|
-
function NamedReactIcon(props, ref) {
|
|
1071
|
-
return /* @__PURE__ */ jsx(ReactIcon, { ...props, name, ref });
|
|
1072
|
-
}
|
|
1073
|
-
);
|
|
1074
|
-
IconComponent.displayName = `React${name}`;
|
|
1075
|
-
return IconComponent;
|
|
1076
|
-
}
|
|
1077
|
-
function resolveTwoToneColors(twoToneColor) {
|
|
1078
|
-
if (Array.isArray(twoToneColor)) {
|
|
1079
|
-
return [twoToneColor[0], twoToneColor[1]];
|
|
1080
|
-
}
|
|
1081
|
-
const primaryColor = twoToneColor ?? "#1677ff";
|
|
1082
|
-
return [
|
|
1083
|
-
primaryColor,
|
|
1084
|
-
twoToneColor ? lightenColor(twoToneColor) : "#e6f4ff"
|
|
1085
|
-
];
|
|
1086
|
-
}
|
|
1087
|
-
function lightenColor(color) {
|
|
1088
|
-
const match = color.match(/^#([\da-f]{3}|[\da-f]{6})$/i);
|
|
1089
|
-
if (!match) return "#e6e6e6";
|
|
1090
|
-
const raw = match[1];
|
|
1091
|
-
const normalized = raw.length === 3 ? raw.split("").map((digit) => digit + digit).join("") : raw;
|
|
1092
|
-
const channels = normalized.match(/[\da-f]{2}/gi).map((channel) => Number.parseInt(channel, 16));
|
|
1093
|
-
return `#${channels.map((channel) => Math.round(channel + (255 - channel) * 0.9)).map((channel) => channel.toString(16).padStart(2, "0")).join("")}`;
|
|
1094
|
-
}
|
|
1095
|
-
function renderIconChildren(node, primaryColor, secondaryColor) {
|
|
1096
|
-
return (node.children ?? []).map((child, index) => {
|
|
1097
|
-
const props = {};
|
|
1098
|
-
for (const [key, rawValue] of Object.entries(child.attrs)) {
|
|
1099
|
-
const value = rawValue.split(PRIMARY_COLOR_TOKEN).join(primaryColor).split(SECONDARY_COLOR_TOKEN).join(secondaryColor);
|
|
1100
|
-
props[normalizeSvgAttribute(key)] = value;
|
|
1101
|
-
}
|
|
1102
|
-
return createElement(
|
|
1103
|
-
child.tag,
|
|
1104
|
-
{ ...props, key: `${child.tag}-${index}` },
|
|
1105
|
-
...renderIconChildren(child, primaryColor, secondaryColor)
|
|
1106
|
-
);
|
|
1107
|
-
});
|
|
1108
|
-
}
|
|
1109
|
-
var SVG_ATTRIBUTE_NAMES = {
|
|
1110
|
-
class: "className",
|
|
1111
|
-
"clip-path": "clipPath",
|
|
1112
|
-
"clip-rule": "clipRule",
|
|
1113
|
-
"fill-rule": "fillRule",
|
|
1114
|
-
"stroke-dasharray": "strokeDasharray",
|
|
1115
|
-
"stroke-dashoffset": "strokeDashoffset",
|
|
1116
|
-
"stroke-linecap": "strokeLinecap",
|
|
1117
|
-
"stroke-linejoin": "strokeLinejoin",
|
|
1118
|
-
"stroke-miterlimit": "strokeMiterlimit",
|
|
1119
|
-
"stroke-width": "strokeWidth",
|
|
1120
|
-
"xlink:href": "xlinkHref"
|
|
1121
|
-
};
|
|
1122
|
-
function normalizeSvgAttribute(name) {
|
|
1123
|
-
return SVG_ATTRIBUTE_NAMES[name] ?? name.replace(/-([a-z])/g, (_match, letter) => letter.toUpperCase());
|
|
274
|
+
var SVG_ATTRIBUTE_NAMES = {
|
|
275
|
+
class: "className",
|
|
276
|
+
"clip-path": "clipPath",
|
|
277
|
+
"clip-rule": "clipRule",
|
|
278
|
+
"fill-rule": "fillRule",
|
|
279
|
+
"stroke-dasharray": "strokeDasharray",
|
|
280
|
+
"stroke-dashoffset": "strokeDashoffset",
|
|
281
|
+
"stroke-linecap": "strokeLinecap",
|
|
282
|
+
"stroke-linejoin": "strokeLinejoin",
|
|
283
|
+
"stroke-miterlimit": "strokeMiterlimit",
|
|
284
|
+
"stroke-width": "strokeWidth",
|
|
285
|
+
"xlink:href": "xlinkHref"
|
|
286
|
+
};
|
|
287
|
+
function normalizeSvgAttribute(name) {
|
|
288
|
+
return SVG_ATTRIBUTE_NAMES[name] ?? name.replace(/-([a-z])/g, (_match, letter) => letter.toUpperCase());
|
|
1124
289
|
}
|
|
1125
290
|
|
|
1126
291
|
// src/components/icon/icons.tsx
|
|
@@ -2265,6 +1430,866 @@ var ReactZhihuSquareFilled = createReactIconComponent("ZhihuSquareFilled");
|
|
|
2265
1430
|
var ReactZoomInOutlined = createReactIconComponent("ZoomInOutlined");
|
|
2266
1431
|
var ReactZoomOutOutlined = createReactIconComponent("ZoomOutOutlined");
|
|
2267
1432
|
|
|
1433
|
+
// src/components/empty/style.css
|
|
1434
|
+
styleInject('@import "../../styles/variables.css";\n.canvas-react-empty {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n min-width: 0;\n padding: 24px 12px;\n color: var(--canvas-react-color-text-secondary, #8c8c8c);\n font-size: var(--canvas-react-font-size, 14px);\n text-align: center;\n}\n.canvas-react-empty-image {\n display: flex;\n color: #c8d0dc;\n}\n.canvas-react-empty-description {\n max-width: 100%;\n overflow-wrap: anywhere;\n}\n.canvas-react-empty-actions {\n margin-top: 8px;\n}\n');
|
|
1435
|
+
function ReactEmpty({
|
|
1436
|
+
description = "\u6682\u65E0\u6570\u636E",
|
|
1437
|
+
image = /* @__PURE__ */ jsx(ReactInboxOutlined, { "aria-hidden": "true", size: 42 }),
|
|
1438
|
+
children,
|
|
1439
|
+
className,
|
|
1440
|
+
role = "status",
|
|
1441
|
+
...rest
|
|
1442
|
+
}) {
|
|
1443
|
+
return /* @__PURE__ */ jsxs(
|
|
1444
|
+
"div",
|
|
1445
|
+
{
|
|
1446
|
+
...rest,
|
|
1447
|
+
role,
|
|
1448
|
+
className: joinClassNames(`${REACT_COMPONENT_PREFIX}-empty`, className),
|
|
1449
|
+
children: [
|
|
1450
|
+
/* @__PURE__ */ jsx("div", { className: `${REACT_COMPONENT_PREFIX}-empty-image`, children: image }),
|
|
1451
|
+
/* @__PURE__ */ jsx("div", { className: `${REACT_COMPONENT_PREFIX}-empty-description`, children: description }),
|
|
1452
|
+
children ? /* @__PURE__ */ jsx("div", { className: `${REACT_COMPONENT_PREFIX}-empty-actions`, children }) : null
|
|
1453
|
+
]
|
|
1454
|
+
}
|
|
1455
|
+
);
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
// src/components/tag/style.css
|
|
1459
|
+
styleInject(".canvas-react-tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n min-width: 0;\n max-width: 100%;\n padding: 3px 6px;\n border: 1px solid var(--canvas-react-color-border);\n border-radius: var(--canvas-react-radius-sm);\n background: var(--canvas-react-color-bg-soft);\n color: var(--canvas-react-color-text);\n font-size: var(--canvas-react-font-size-secondary);\n line-height: 1.4;\n}\n.canvas-react-tag-content {\n display: inline-flex;\n align-items: baseline;\n gap: 4px;\n min-width: 0;\n overflow: hidden;\n}\n.canvas-react-tag-close {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n border: 0;\n border-radius: 3px;\n background: transparent;\n color: var(--canvas-react-color-text-muted);\n font: inherit;\n font-size: 16px;\n line-height: 1;\n cursor: pointer;\n}\n.canvas-react-tag-close:hover {\n background: var(--canvas-react-color-bg-hover);\n color: var(--canvas-react-color-text);\n}\n.canvas-react-tag-close:focus-visible {\n outline: 2px solid var(--canvas-react-color-primary);\n outline-offset: 1px;\n}\n");
|
|
1460
|
+
function ReactTag({
|
|
1461
|
+
children,
|
|
1462
|
+
className,
|
|
1463
|
+
closeLabel = "\u79FB\u9664\u6807\u7B7E",
|
|
1464
|
+
onClose,
|
|
1465
|
+
...restProps
|
|
1466
|
+
}) {
|
|
1467
|
+
return /* @__PURE__ */ jsxs(
|
|
1468
|
+
"span",
|
|
1469
|
+
{
|
|
1470
|
+
...restProps,
|
|
1471
|
+
className: joinClassNames(`${REACT_COMPONENT_PREFIX}-tag`, className),
|
|
1472
|
+
children: [
|
|
1473
|
+
/* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-tag-content`, children }),
|
|
1474
|
+
onClose ? /* @__PURE__ */ jsx(
|
|
1475
|
+
"button",
|
|
1476
|
+
{
|
|
1477
|
+
type: "button",
|
|
1478
|
+
className: `${REACT_COMPONENT_PREFIX}-tag-close`,
|
|
1479
|
+
"aria-label": closeLabel,
|
|
1480
|
+
title: closeLabel,
|
|
1481
|
+
onClick: onClose,
|
|
1482
|
+
children: "\xD7"
|
|
1483
|
+
}
|
|
1484
|
+
) : null
|
|
1485
|
+
]
|
|
1486
|
+
}
|
|
1487
|
+
);
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
// src/components/rich-text/model.ts
|
|
1491
|
+
var styleKey = (style) => JSON.stringify({
|
|
1492
|
+
fontFamily: style?.fontFamily,
|
|
1493
|
+
fontSize: style?.fontSize,
|
|
1494
|
+
fontWeight: style?.fontWeight,
|
|
1495
|
+
fontStyle: style?.fontStyle,
|
|
1496
|
+
color: style?.color
|
|
1497
|
+
});
|
|
1498
|
+
function normalizeStyle(input) {
|
|
1499
|
+
if (!input) return void 0;
|
|
1500
|
+
const style = {};
|
|
1501
|
+
if (typeof input.fontFamily === "string" && /^[\p{L}\p{N}_\s,'"-]+$/u.test(input.fontFamily))
|
|
1502
|
+
style.fontFamily = input.fontFamily;
|
|
1503
|
+
if (typeof input.fontSize === "number" && Number.isFinite(input.fontSize) && input.fontSize >= 1 && input.fontSize <= 240)
|
|
1504
|
+
style.fontSize = input.fontSize;
|
|
1505
|
+
if (typeof input.fontWeight === "string" && /^(?:[1-9]00|normal|bold)$/.test(input.fontWeight))
|
|
1506
|
+
style.fontWeight = input.fontWeight;
|
|
1507
|
+
if (input.fontStyle === "normal" || input.fontStyle === "italic")
|
|
1508
|
+
style.fontStyle = input.fontStyle;
|
|
1509
|
+
if (typeof input.color === "string" && /^#[0-9a-fA-F]{3,8}$/.test(input.color))
|
|
1510
|
+
style.color = input.color;
|
|
1511
|
+
return Object.keys(style).length ? style : void 0;
|
|
1512
|
+
}
|
|
1513
|
+
function alignRange(text, start, end) {
|
|
1514
|
+
const Segmenter = Intl.Segmenter;
|
|
1515
|
+
const boundaries = Segmenter ? [
|
|
1516
|
+
0,
|
|
1517
|
+
...Array.from(
|
|
1518
|
+
new Segmenter(void 0, { granularity: "grapheme" }).segment(text),
|
|
1519
|
+
(part) => part.index + part.segment.length
|
|
1520
|
+
)
|
|
1521
|
+
] : [
|
|
1522
|
+
0,
|
|
1523
|
+
...Array.from(text).reduce((offsets, character) => {
|
|
1524
|
+
offsets.push((offsets[offsets.length - 1] ?? 0) + character.length);
|
|
1525
|
+
return offsets;
|
|
1526
|
+
}, [])
|
|
1527
|
+
];
|
|
1528
|
+
const clampedStart = Math.max(0, Math.min(start, text.length));
|
|
1529
|
+
const clampedEnd = Math.max(clampedStart, Math.min(end, text.length));
|
|
1530
|
+
const from = [...boundaries].reverse().find((boundary) => boundary <= clampedStart) ?? 0;
|
|
1531
|
+
const to = clampedStart === clampedEnd ? from : boundaries.find((boundary) => boundary >= clampedEnd) ?? text.length;
|
|
1532
|
+
return { from, to };
|
|
1533
|
+
}
|
|
1534
|
+
function normalizeRichTextRuns(runs) {
|
|
1535
|
+
const normalized = [];
|
|
1536
|
+
for (const run of runs) {
|
|
1537
|
+
if (!run.text) continue;
|
|
1538
|
+
const style = normalizeStyle(run.style);
|
|
1539
|
+
const previous = normalized[normalized.length - 1];
|
|
1540
|
+
if (previous && styleKey(previous.style) === styleKey(style))
|
|
1541
|
+
previous.text += run.text;
|
|
1542
|
+
else normalized.push({ text: run.text, ...style ? { style } : {} });
|
|
1543
|
+
}
|
|
1544
|
+
return normalized;
|
|
1545
|
+
}
|
|
1546
|
+
function richTextPlainText(runs) {
|
|
1547
|
+
return runs.map((run) => run.text).join("");
|
|
1548
|
+
}
|
|
1549
|
+
function styleRichTextRange(runs, start, end, patch) {
|
|
1550
|
+
if (start >= end) return normalizeRichTextRuns(runs);
|
|
1551
|
+
({ from: start, to: end } = alignRange(richTextPlainText(runs), start, end));
|
|
1552
|
+
const result = [];
|
|
1553
|
+
let offset = 0;
|
|
1554
|
+
for (const run of runs) {
|
|
1555
|
+
const runStart = offset;
|
|
1556
|
+
const runEnd = offset + run.text.length;
|
|
1557
|
+
offset = runEnd;
|
|
1558
|
+
if (runEnd <= start || runStart >= end) {
|
|
1559
|
+
result.push(run);
|
|
1560
|
+
continue;
|
|
1561
|
+
}
|
|
1562
|
+
const localStart = Math.max(0, start - runStart);
|
|
1563
|
+
const localEnd = Math.min(run.text.length, end - runStart);
|
|
1564
|
+
if (localStart)
|
|
1565
|
+
result.push({ ...run, text: run.text.slice(0, localStart) });
|
|
1566
|
+
result.push({
|
|
1567
|
+
text: run.text.slice(localStart, localEnd),
|
|
1568
|
+
style: { ...run.style, ...patch }
|
|
1569
|
+
});
|
|
1570
|
+
if (localEnd < run.text.length)
|
|
1571
|
+
result.push({ ...run, text: run.text.slice(localEnd) });
|
|
1572
|
+
}
|
|
1573
|
+
return normalizeRichTextRuns(result);
|
|
1574
|
+
}
|
|
1575
|
+
function replaceRichTextRange(runs, start, end, text) {
|
|
1576
|
+
const content = richTextPlainText(runs);
|
|
1577
|
+
const { from, to } = alignRange(content, start, end);
|
|
1578
|
+
const result = [];
|
|
1579
|
+
let offset = 0;
|
|
1580
|
+
let inherited;
|
|
1581
|
+
let following;
|
|
1582
|
+
for (const run of runs) {
|
|
1583
|
+
const runStart = offset;
|
|
1584
|
+
const runEnd = offset + run.text.length;
|
|
1585
|
+
offset = runEnd;
|
|
1586
|
+
if (runStart < from) {
|
|
1587
|
+
const before = run.text.slice(
|
|
1588
|
+
0,
|
|
1589
|
+
Math.min(run.text.length, from - runStart)
|
|
1590
|
+
);
|
|
1591
|
+
if (before) {
|
|
1592
|
+
result.push({ ...run, text: before });
|
|
1593
|
+
inherited = run.style;
|
|
1594
|
+
}
|
|
1595
|
+
}
|
|
1596
|
+
if (runEnd > to) {
|
|
1597
|
+
const after = run.text.slice(Math.max(0, to - runStart));
|
|
1598
|
+
if (after) {
|
|
1599
|
+
following ?? (following = run.style);
|
|
1600
|
+
result.push({ ...run, text: after });
|
|
1601
|
+
}
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
if (text) {
|
|
1605
|
+
let length = 0;
|
|
1606
|
+
const insertionIndex = result.findIndex((run) => {
|
|
1607
|
+
length += run.text.length;
|
|
1608
|
+
return length > from;
|
|
1609
|
+
});
|
|
1610
|
+
result.splice(insertionIndex < 0 ? result.length : insertionIndex, 0, {
|
|
1611
|
+
text,
|
|
1612
|
+
...inherited ?? following ? { style: inherited ?? following } : {}
|
|
1613
|
+
});
|
|
1614
|
+
}
|
|
1615
|
+
return normalizeRichTextRuns(result);
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
// src/components/compat/style.css
|
|
1619
|
+
styleInject(".canvas-react-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n min-height: 32px;\n padding: 4px 14px;\n border: 1px solid var(--cc-border-color, #d9d9d9);\n border-radius: 6px;\n color: var(--cc-text-color, #1f2937);\n background: var(--cc-surface-color, #fff);\n cursor: pointer;\n}\n.canvas-react-button:hover:not(:disabled) {\n color: #1677ff;\n border-color: #1677ff;\n}\n.canvas-react-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n.canvas-react-button-primary {\n color: #fff;\n border-color: #1677ff;\n background: #1677ff;\n}\n.canvas-react-button-primary:hover:not(:disabled) {\n color: #fff;\n border-color: #4096ff;\n background: #4096ff;\n}\n.canvas-react-button-danger {\n color: #dc2626;\n border-color: #fca5a5;\n}\n.canvas-react-button-small {\n min-height: 24px;\n padding: 2px 8px;\n}\n.canvas-react-button-large {\n min-height: 40px;\n padding: 6px 18px;\n}\n.canvas-react-button-icon {\n display: inline-flex;\n}\n.canvas-react-row {\n display: flex;\n flex-flow: row wrap;\n}\n.canvas-react-col {\n min-width: 0;\n padding-inline: 8px;\n}\n.canvas-react-radio-group {\n display: flex;\n gap: 16px;\n}\n.canvas-react-radio {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n}\n.canvas-react-radio input {\n position: absolute;\n opacity: 0;\n pointer-events: none;\n}\n.canvas-react-radio-mark {\n width: 14px;\n height: 14px;\n border: 1px solid #94a3b8;\n border-radius: 50%;\n box-sizing: border-box;\n}\n.canvas-react-radio input:checked + .canvas-react-radio-mark {\n border: 4px solid #1677ff;\n}\n.canvas-react-form-item {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin-bottom: 16px;\n}\n.canvas-react-form-label {\n color: #334155;\n font-size: 14px;\n}\n.canvas-react-form-error {\n color: #dc2626;\n font-size: 12px;\n}\n.canvas-react-textarea {\n width: 100%;\n min-height: 72px;\n padding: 8px 10px;\n border: 1px solid var(--canvas-react-color-border);\n border-radius: 6px;\n box-sizing: border-box;\n background: var(--canvas-react-color-bg);\n color: var(--canvas-react-color-text);\n font: inherit;\n resize: vertical;\n}\n.canvas-react-textarea:hover:not(:disabled) {\n border-color: var(--canvas-react-color-primary-hover);\n}\n.canvas-react-textarea:focus {\n border-color: var(--canvas-react-color-primary);\n box-shadow: var(--canvas-react-shadow-focus);\n outline: none;\n}\n.canvas-react-textarea::placeholder {\n color: var(--canvas-react-color-text-muted);\n}\n.canvas-react-textarea:disabled {\n background: var(--canvas-react-color-bg-soft, #fafafa);\n color: var(--canvas-react-color-text-muted);\n cursor: not-allowed;\n}\n");
|
|
1620
|
+
|
|
1621
|
+
// src/components/form/style.css
|
|
1622
|
+
styleInject(".canvas-react-form {\n min-width: 0;\n}\n.canvas-react-form-vertical {\n display: grid;\n gap: 16px;\n}\n.canvas-react-form-horizontal {\n display: grid;\n gap: 12px;\n}\n.canvas-react-form-inline {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: 12px 16px;\n}\n.canvas-react-form-item {\n box-sizing: border-box;\n min-width: 0;\n}\n.canvas-react-form-item-vertical {\n display: grid;\n gap: 6px;\n}\n.canvas-react-form-item-horizontal {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr);\n align-items: center;\n column-gap: 10px;\n row-gap: 4px;\n}\n.canvas-react-form-item-inline {\n display: inline-grid;\n grid-template-columns: auto minmax(0, 1fr);\n align-items: center;\n column-gap: 8px;\n}\n.canvas-react-form-item-no-wrap {\n flex-wrap: nowrap;\n}\n.canvas-react-form-item-horizontal.canvas-react-form-item-no-wrap {\n display: grid;\n grid-template-columns: max-content minmax(0, 1fr);\n}\n.canvas-react-form-horizontal > .canvas-react-form-item {\n margin-bottom: var(--canvas-react-form-item-spacing, 16px);\n}\n.canvas-react-form-item-inline.canvas-react-form-item-no-wrap {\n display: inline-grid;\n grid-template-columns: max-content minmax(0, 1fr);\n}\n.canvas-react-form-item-no-wrap > .canvas-react-form-label {\n white-space: nowrap;\n}\n.canvas-react-form-label {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n min-width: 0;\n color: #475569;\n font-size: var(--canvas-react-font-size-label);\n line-height: 1.4;\n}\n.canvas-react-form-horizontal > .canvas-react-form-item > .canvas-react-form-label {\n min-height: 32px;\n}\n.canvas-react-form-required {\n color: #dc2626;\n}\n.canvas-react-form-control {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n.canvas-react-form-error {\n color: #dc2626;\n font-size: var(--canvas-react-font-size-secondary);\n}\n.canvas-react-form-help,\n.canvas-react-form-extra {\n color: #64748b;\n font-size: var(--canvas-react-font-size-secondary);\n}\n.canvas-react-form-item-error .canvas-react-form-control > input,\n.canvas-react-form-item-error .canvas-react-form-control > textarea {\n border-color: #dc2626;\n}\n");
|
|
1623
|
+
function createFormInstance() {
|
|
1624
|
+
const store = {
|
|
1625
|
+
values: {},
|
|
1626
|
+
initialValues: {},
|
|
1627
|
+
errors: {},
|
|
1628
|
+
rules: /* @__PURE__ */ new Map(),
|
|
1629
|
+
listeners: /* @__PURE__ */ new Set(),
|
|
1630
|
+
revision: 0,
|
|
1631
|
+
notify() {
|
|
1632
|
+
store.revision += 1;
|
|
1633
|
+
store.listeners.forEach((listener) => listener());
|
|
1634
|
+
}
|
|
1635
|
+
};
|
|
1636
|
+
return {
|
|
1637
|
+
__store: store,
|
|
1638
|
+
getFieldValue: (name) => store.values[name],
|
|
1639
|
+
setFieldsValue(values) {
|
|
1640
|
+
store.values = { ...store.values, ...values };
|
|
1641
|
+
Object.keys(values).forEach((name) => {
|
|
1642
|
+
delete store.errors[name];
|
|
1643
|
+
});
|
|
1644
|
+
store.notify();
|
|
1645
|
+
},
|
|
1646
|
+
resetFields() {
|
|
1647
|
+
store.values = { ...store.initialValues };
|
|
1648
|
+
store.errors = {};
|
|
1649
|
+
store.notify();
|
|
1650
|
+
},
|
|
1651
|
+
async validateFields() {
|
|
1652
|
+
const errors = {};
|
|
1653
|
+
for (const [name, rules] of store.rules) {
|
|
1654
|
+
const value = store.values[name];
|
|
1655
|
+
for (const rawRule of rules) {
|
|
1656
|
+
const rule = typeof rawRule === "function" ? rawRule({ getFieldValue: (field) => store.values[field] }) : rawRule;
|
|
1657
|
+
if (rule.required && (value === void 0 || value === null || value === "")) {
|
|
1658
|
+
errors[name] = rule.message ?? "\u6B64\u9879\u4E3A\u5FC5\u586B\u9879";
|
|
1659
|
+
break;
|
|
1660
|
+
}
|
|
1661
|
+
if ((rule.type === "number" || rule.type === "integer") && typeof value === "number" && rule.min !== void 0 && value < rule.min) {
|
|
1662
|
+
errors[name] = rule.message ?? `\u4E0D\u80FD\u5C0F\u4E8E ${rule.min}`;
|
|
1663
|
+
break;
|
|
1664
|
+
}
|
|
1665
|
+
if ((rule.type === "number" || rule.type === "integer") && typeof value === "number" && rule.max !== void 0 && value > rule.max) {
|
|
1666
|
+
errors[name] = rule.message ?? `\u4E0D\u80FD\u5927\u4E8E ${rule.max}`;
|
|
1667
|
+
break;
|
|
1668
|
+
}
|
|
1669
|
+
if (rule.type === "integer" && typeof value === "number" && !Number.isInteger(value)) {
|
|
1670
|
+
errors[name] = rule.message ?? "\u8BF7\u8F93\u5165\u6574\u6570";
|
|
1671
|
+
break;
|
|
1672
|
+
}
|
|
1673
|
+
if (rule.validator) {
|
|
1674
|
+
try {
|
|
1675
|
+
await rule.validator(rule, value);
|
|
1676
|
+
} catch (error) {
|
|
1677
|
+
errors[name] = error instanceof Error ? error.message : "\u6821\u9A8C\u5931\u8D25";
|
|
1678
|
+
break;
|
|
1679
|
+
}
|
|
1680
|
+
}
|
|
1681
|
+
}
|
|
1682
|
+
}
|
|
1683
|
+
store.errors = errors;
|
|
1684
|
+
store.notify();
|
|
1685
|
+
if (Object.keys(errors).length > 0) {
|
|
1686
|
+
return Promise.reject({
|
|
1687
|
+
errorFields: errors,
|
|
1688
|
+
values: { ...store.values }
|
|
1689
|
+
});
|
|
1690
|
+
}
|
|
1691
|
+
return { ...store.values };
|
|
1692
|
+
}
|
|
1693
|
+
};
|
|
1694
|
+
}
|
|
1695
|
+
function useReactForm() {
|
|
1696
|
+
const formRef = useRef(null);
|
|
1697
|
+
if (!formRef.current) formRef.current = createFormInstance();
|
|
1698
|
+
return [formRef.current];
|
|
1699
|
+
}
|
|
1700
|
+
function useReactFormWatch(name, form) {
|
|
1701
|
+
useSyncExternalStore(
|
|
1702
|
+
(listener) => {
|
|
1703
|
+
form.__store.listeners.add(listener);
|
|
1704
|
+
return () => form.__store.listeners.delete(listener);
|
|
1705
|
+
},
|
|
1706
|
+
() => form.__store.revision,
|
|
1707
|
+
() => 0
|
|
1708
|
+
);
|
|
1709
|
+
return form.getFieldValue(name);
|
|
1710
|
+
}
|
|
1711
|
+
var FormContext = createContext(null);
|
|
1712
|
+
var emptySubscribe = () => () => {
|
|
1713
|
+
};
|
|
1714
|
+
var emptySnapshot = () => 0;
|
|
1715
|
+
function ReactFormRoot({
|
|
1716
|
+
form: formProp,
|
|
1717
|
+
initialValues,
|
|
1718
|
+
layout = "vertical",
|
|
1719
|
+
noWrap = false,
|
|
1720
|
+
itemSpacing,
|
|
1721
|
+
labelWidth,
|
|
1722
|
+
labelAlign = "right",
|
|
1723
|
+
colon = false,
|
|
1724
|
+
requiredMark = true,
|
|
1725
|
+
className,
|
|
1726
|
+
children,
|
|
1727
|
+
...props
|
|
1728
|
+
}) {
|
|
1729
|
+
const internalForm = useRef(null);
|
|
1730
|
+
if (!internalForm.current) internalForm.current = createFormInstance();
|
|
1731
|
+
const form = formProp ?? internalForm.current;
|
|
1732
|
+
const initialKey = useMemo(
|
|
1733
|
+
() => JSON.stringify(initialValues ?? {}),
|
|
1734
|
+
[initialValues]
|
|
1735
|
+
);
|
|
1736
|
+
useEffect(() => {
|
|
1737
|
+
form.__store.initialValues = { ...initialValues };
|
|
1738
|
+
form.__store.values = { ...initialValues, ...form.__store.values };
|
|
1739
|
+
form.__store.notify();
|
|
1740
|
+
}, [form, initialKey]);
|
|
1741
|
+
const contextValue = useMemo(
|
|
1742
|
+
() => ({
|
|
1743
|
+
form,
|
|
1744
|
+
layout,
|
|
1745
|
+
noWrap,
|
|
1746
|
+
labelWidth,
|
|
1747
|
+
labelAlign,
|
|
1748
|
+
colon,
|
|
1749
|
+
requiredMark
|
|
1750
|
+
}),
|
|
1751
|
+
[colon, form, labelAlign, labelWidth, layout, noWrap, requiredMark]
|
|
1752
|
+
);
|
|
1753
|
+
return /* @__PURE__ */ jsx(FormContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
|
|
1754
|
+
"form",
|
|
1755
|
+
{
|
|
1756
|
+
...props,
|
|
1757
|
+
style: itemSpacing === void 0 ? props.style : {
|
|
1758
|
+
...props.style,
|
|
1759
|
+
"--canvas-react-form-item-spacing": itemSpacing
|
|
1760
|
+
},
|
|
1761
|
+
className: joinClassNames(
|
|
1762
|
+
`${REACT_COMPONENT_PREFIX}-form`,
|
|
1763
|
+
`${REACT_COMPONENT_PREFIX}-form-${layout}`,
|
|
1764
|
+
className
|
|
1765
|
+
),
|
|
1766
|
+
onSubmit: (event) => event.preventDefault(),
|
|
1767
|
+
children
|
|
1768
|
+
}
|
|
1769
|
+
) });
|
|
1770
|
+
}
|
|
1771
|
+
function ReactFormItem({
|
|
1772
|
+
label,
|
|
1773
|
+
name,
|
|
1774
|
+
children,
|
|
1775
|
+
rules = [],
|
|
1776
|
+
initialValue,
|
|
1777
|
+
required,
|
|
1778
|
+
colon,
|
|
1779
|
+
labelWidth,
|
|
1780
|
+
labelAlign,
|
|
1781
|
+
labelStyle,
|
|
1782
|
+
controlStyle,
|
|
1783
|
+
help,
|
|
1784
|
+
extra,
|
|
1785
|
+
className,
|
|
1786
|
+
style,
|
|
1787
|
+
noWrap
|
|
1788
|
+
}) {
|
|
1789
|
+
const context = useContext(FormContext);
|
|
1790
|
+
const form = context?.form ?? null;
|
|
1791
|
+
if (name && !form) throw new Error("ReactForm.Item \u5FC5\u987B\u5728 ReactForm \u5185\u4F7F\u7528");
|
|
1792
|
+
useSyncExternalStore(
|
|
1793
|
+
form ? (listener) => {
|
|
1794
|
+
form.__store.listeners.add(listener);
|
|
1795
|
+
return () => form.__store.listeners.delete(listener);
|
|
1796
|
+
} : emptySubscribe,
|
|
1797
|
+
form ? () => form.__store.revision : emptySnapshot,
|
|
1798
|
+
emptySnapshot
|
|
1799
|
+
);
|
|
1800
|
+
useEffect(() => {
|
|
1801
|
+
if (!form || !name) return;
|
|
1802
|
+
form.__store.rules.set(name, rules);
|
|
1803
|
+
if (form.getFieldValue(name) === void 0 && initialValue !== void 0) {
|
|
1804
|
+
form.setFieldsValue({ [name]: initialValue });
|
|
1805
|
+
}
|
|
1806
|
+
return () => {
|
|
1807
|
+
form.__store.rules.delete(name);
|
|
1808
|
+
};
|
|
1809
|
+
}, [form, initialValue, name, rules]);
|
|
1810
|
+
const childProps = isValidElement(children) ? children.props : {};
|
|
1811
|
+
const value = form && name ? form.getFieldValue(name) : void 0;
|
|
1812
|
+
const child = form && name && isValidElement(children) ? cloneElement(children, {
|
|
1813
|
+
value: value ?? "",
|
|
1814
|
+
onChange: (...args) => {
|
|
1815
|
+
const first = args[0];
|
|
1816
|
+
const nextValue = typeof first === "object" && first !== null && "target" in first ? first.target?.value : first;
|
|
1817
|
+
form.setFieldsValue({ [name]: nextValue });
|
|
1818
|
+
const childOnChange = childProps.onChange;
|
|
1819
|
+
if (typeof childOnChange === "function") childOnChange(...args);
|
|
1820
|
+
}
|
|
1821
|
+
}) : children;
|
|
1822
|
+
const error = form && name ? form.__store.errors[name] : void 0;
|
|
1823
|
+
const isRequired = required ?? rules.some((rule) => typeof rule !== "function" && rule.required === true);
|
|
1824
|
+
const resolvedLabelWidth = labelWidth ?? context?.labelWidth;
|
|
1825
|
+
const resolvedLabelAlign = labelAlign ?? context?.labelAlign ?? "right";
|
|
1826
|
+
const showColon = colon ?? context?.colon ?? false;
|
|
1827
|
+
const shouldMarkRequired = context?.requiredMark ?? true;
|
|
1828
|
+
const resolvedLayout = context?.layout ?? "vertical";
|
|
1829
|
+
const resolvedNoWrap = noWrap ?? context?.noWrap ?? false;
|
|
1830
|
+
const labelElementId = typeof childProps.id === "string" ? childProps.id : void 0;
|
|
1831
|
+
return /* @__PURE__ */ jsxs(
|
|
1832
|
+
"div",
|
|
1833
|
+
{
|
|
1834
|
+
className: joinClassNames(
|
|
1835
|
+
`${REACT_COMPONENT_PREFIX}-form-item`,
|
|
1836
|
+
`${REACT_COMPONENT_PREFIX}-form-item-${resolvedLayout}`,
|
|
1837
|
+
resolvedNoWrap && `${REACT_COMPONENT_PREFIX}-form-item-no-wrap`,
|
|
1838
|
+
className,
|
|
1839
|
+
error && `${REACT_COMPONENT_PREFIX}-form-item-error`
|
|
1840
|
+
),
|
|
1841
|
+
style,
|
|
1842
|
+
children: [
|
|
1843
|
+
label ? /* @__PURE__ */ jsxs(
|
|
1844
|
+
"label",
|
|
1845
|
+
{
|
|
1846
|
+
className: `${REACT_COMPONENT_PREFIX}-form-label`,
|
|
1847
|
+
htmlFor: labelElementId,
|
|
1848
|
+
style: {
|
|
1849
|
+
width: resolvedLabelWidth,
|
|
1850
|
+
flexBasis: resolvedLabelWidth,
|
|
1851
|
+
textAlign: resolvedLabelAlign,
|
|
1852
|
+
...labelStyle
|
|
1853
|
+
},
|
|
1854
|
+
children: [
|
|
1855
|
+
shouldMarkRequired && isRequired ? /* @__PURE__ */ jsx(
|
|
1856
|
+
"span",
|
|
1857
|
+
{
|
|
1858
|
+
"aria-hidden": "true",
|
|
1859
|
+
className: `${REACT_COMPONENT_PREFIX}-form-required`,
|
|
1860
|
+
children: "*"
|
|
1861
|
+
}
|
|
1862
|
+
) : null,
|
|
1863
|
+
/* @__PURE__ */ jsx("span", { children: label }),
|
|
1864
|
+
showColon ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: ":" }) : null
|
|
1865
|
+
]
|
|
1866
|
+
}
|
|
1867
|
+
) : null,
|
|
1868
|
+
/* @__PURE__ */ jsxs(
|
|
1869
|
+
"div",
|
|
1870
|
+
{
|
|
1871
|
+
className: `${REACT_COMPONENT_PREFIX}-form-control`,
|
|
1872
|
+
style: controlStyle,
|
|
1873
|
+
children: [
|
|
1874
|
+
child,
|
|
1875
|
+
error ? /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-form-error`, children: error }) : help ? /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-form-help`, children: help }) : null,
|
|
1876
|
+
extra ? /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-form-extra`, children: extra }) : null
|
|
1877
|
+
]
|
|
1878
|
+
}
|
|
1879
|
+
)
|
|
1880
|
+
]
|
|
1881
|
+
}
|
|
1882
|
+
);
|
|
1883
|
+
}
|
|
1884
|
+
var ReactForm = Object.assign(ReactFormRoot, {
|
|
1885
|
+
Item: ReactFormItem,
|
|
1886
|
+
useForm: useReactForm,
|
|
1887
|
+
useWatch: useReactFormWatch
|
|
1888
|
+
});
|
|
1889
|
+
|
|
1890
|
+
// src/components/message/style.css
|
|
1891
|
+
styleInject('@import "../../styles/variables.css";\n.canvas-react-message-host {\n position: fixed;\n z-index: 3000;\n inset-inline: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n padding-inline: 16px;\n pointer-events: none;\n font-size: var(--canvas-react-font-size, 14px);\n}\n.canvas-react-message {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n max-width: min(100%, 640px);\n max-height: 240px;\n padding: 9px 12px;\n border-radius: var(--canvas-react-radius-md, 8px);\n background: var(--canvas-react-color-bg, #fff);\n color: var(--canvas-react-color-text, rgba(0, 0, 0, 0.88));\n box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12);\n line-height: 1.5;\n pointer-events: auto;\n animation: canvas-react-message-enter 0.2s ease-out both;\n}\n.canvas-react-message-leaving {\n overflow: hidden;\n pointer-events: none;\n animation: canvas-react-message-leave 0.3s ease-in forwards;\n}\n.canvas-react-message-icon {\n display: inline-flex;\n flex: none;\n width: 16px;\n height: 16px;\n}\n.canvas-react-message-icon svg {\n width: 16px;\n height: 16px;\n}\n.canvas-react-message-info,\n.canvas-react-message-loading {\n --canvas-react-message-color: #1677ff;\n}\n.canvas-react-message-success {\n --canvas-react-message-color: #52c41a;\n}\n.canvas-react-message-warning {\n --canvas-react-message-color: #faad14;\n}\n.canvas-react-message-error {\n --canvas-react-message-color: #ff4d4f;\n}\n.canvas-react-message-icon {\n color: var(--canvas-react-message-color);\n}\n.canvas-react-message-spinner {\n width: 14px;\n height: 14px;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: canvas-react-message-spin 0.8s linear infinite;\n}\n@keyframes canvas-react-message-enter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n@keyframes canvas-react-message-leave {\n to {\n opacity: 0;\n transform: translateY(-8px);\n max-height: 0;\n padding-block: 0;\n margin-bottom: -8px;\n }\n}\n@keyframes canvas-react-message-spin {\n to {\n transform: rotate(360deg);\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .canvas-react-message,\n .canvas-react-message-spinner {\n animation-duration: 0.01ms;\n }\n}\n');
|
|
1892
|
+
var nextKey = 0;
|
|
1893
|
+
var LEAVE_DURATION = 300;
|
|
1894
|
+
function createMessageStore(initialOptions = {}) {
|
|
1895
|
+
let options = initialOptions;
|
|
1896
|
+
let entries = [];
|
|
1897
|
+
const listeners2 = /* @__PURE__ */ new Set();
|
|
1898
|
+
const timers = /* @__PURE__ */ new Map();
|
|
1899
|
+
const leaveTimers = /* @__PURE__ */ new Map();
|
|
1900
|
+
const publish = () => listeners2.forEach((listener) => listener());
|
|
1901
|
+
const remove = (key) => {
|
|
1902
|
+
const targets = key === void 0 ? entries.filter((entry) => !entry.leaving) : entries.filter((entry) => entry.key === key && !entry.leaving);
|
|
1903
|
+
if (!targets.length) return;
|
|
1904
|
+
targets.forEach((entry) => {
|
|
1905
|
+
const timer = timers.get(entry.key);
|
|
1906
|
+
if (timer) clearTimeout(timer);
|
|
1907
|
+
timers.delete(entry.key);
|
|
1908
|
+
entry.leaving = true;
|
|
1909
|
+
leaveTimers.set(
|
|
1910
|
+
entry.key,
|
|
1911
|
+
setTimeout(() => {
|
|
1912
|
+
leaveTimers.delete(entry.key);
|
|
1913
|
+
entries = entries.filter(
|
|
1914
|
+
(item) => item.key !== entry.key || item !== entry
|
|
1915
|
+
);
|
|
1916
|
+
entry.close();
|
|
1917
|
+
entry.onClose?.();
|
|
1918
|
+
publish();
|
|
1919
|
+
}, LEAVE_DURATION)
|
|
1920
|
+
);
|
|
1921
|
+
});
|
|
1922
|
+
publish();
|
|
1923
|
+
};
|
|
1924
|
+
const open = (config) => {
|
|
1925
|
+
const key = config.key ?? ++nextKey;
|
|
1926
|
+
const previous = entries.find((entry2) => entry2.key === key);
|
|
1927
|
+
const oldTimer = timers.get(key);
|
|
1928
|
+
if (oldTimer) clearTimeout(oldTimer);
|
|
1929
|
+
timers.delete(key);
|
|
1930
|
+
const leaveTimer = leaveTimers.get(key);
|
|
1931
|
+
if (leaveTimer) clearTimeout(leaveTimer);
|
|
1932
|
+
leaveTimers.delete(key);
|
|
1933
|
+
let resolve;
|
|
1934
|
+
const promise = previous ? void 0 : new Promise((done) => {
|
|
1935
|
+
resolve = done;
|
|
1936
|
+
});
|
|
1937
|
+
const close = previous?.close ?? resolve;
|
|
1938
|
+
const entry = {
|
|
1939
|
+
...config,
|
|
1940
|
+
key,
|
|
1941
|
+
type: config.type ?? "info",
|
|
1942
|
+
close
|
|
1943
|
+
};
|
|
1944
|
+
entries = previous ? entries.map((item) => item.key === key ? entry : item) : [...entries, entry];
|
|
1945
|
+
if (options.maxCount && entries.filter((item) => !item.leaving).length > options.maxCount) {
|
|
1946
|
+
const oldest = entries.find((item) => item.key !== key && !item.leaving);
|
|
1947
|
+
if (oldest && oldest.key !== key) remove(oldest.key);
|
|
1948
|
+
}
|
|
1949
|
+
const duration = config.duration ?? options.duration ?? (entry.type === "loading" ? 0 : 3);
|
|
1950
|
+
if (duration > 0)
|
|
1951
|
+
timers.set(
|
|
1952
|
+
key,
|
|
1953
|
+
setTimeout(() => remove(key), duration * 1e3)
|
|
1954
|
+
);
|
|
1955
|
+
publish();
|
|
1956
|
+
const handle = (() => remove(key));
|
|
1957
|
+
handle.then = (onFulfilled, onRejected) => (promise ?? new Promise((done) => {
|
|
1958
|
+
const current = entries.find((item) => item.key === key);
|
|
1959
|
+
if (!current) done();
|
|
1960
|
+
else {
|
|
1961
|
+
const originalClose = current.close;
|
|
1962
|
+
current.close = () => {
|
|
1963
|
+
originalClose();
|
|
1964
|
+
done();
|
|
1965
|
+
};
|
|
1966
|
+
}
|
|
1967
|
+
})).then(onFulfilled, onRejected);
|
|
1968
|
+
return handle;
|
|
1969
|
+
};
|
|
1970
|
+
const level = (type) => (content, duration, onClose) => open(
|
|
1971
|
+
isConfig(content) ? { ...content, type } : { content, type, duration, onClose }
|
|
1972
|
+
);
|
|
1973
|
+
const api = {
|
|
1974
|
+
open,
|
|
1975
|
+
info: level("info"),
|
|
1976
|
+
success: level("success"),
|
|
1977
|
+
warning: level("warning"),
|
|
1978
|
+
error: level("error"),
|
|
1979
|
+
loading: level("loading"),
|
|
1980
|
+
destroy: remove,
|
|
1981
|
+
config(next) {
|
|
1982
|
+
options = { ...options, ...next };
|
|
1983
|
+
publish();
|
|
1984
|
+
}
|
|
1985
|
+
};
|
|
1986
|
+
return {
|
|
1987
|
+
api,
|
|
1988
|
+
getEntries: () => entries,
|
|
1989
|
+
getOptions: () => options,
|
|
1990
|
+
subscribe(listener) {
|
|
1991
|
+
listeners2.add(listener);
|
|
1992
|
+
return () => {
|
|
1993
|
+
listeners2.delete(listener);
|
|
1994
|
+
};
|
|
1995
|
+
}
|
|
1996
|
+
};
|
|
1997
|
+
}
|
|
1998
|
+
function isConfig(value) {
|
|
1999
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) && "content" in value;
|
|
2000
|
+
}
|
|
2001
|
+
function MessageHolder({ store }) {
|
|
2002
|
+
const [, refresh] = useState(0);
|
|
2003
|
+
useEffect(() => {
|
|
2004
|
+
refresh((value) => value + 1);
|
|
2005
|
+
return store.subscribe(() => refresh((value) => value + 1));
|
|
2006
|
+
}, [store]);
|
|
2007
|
+
const options = store.getOptions();
|
|
2008
|
+
return /* @__PURE__ */ jsx(
|
|
2009
|
+
"div",
|
|
2010
|
+
{
|
|
2011
|
+
className: `${REACT_COMPONENT_PREFIX}-message-host`,
|
|
2012
|
+
style: { top: options.top ?? 8 },
|
|
2013
|
+
role: "status",
|
|
2014
|
+
"aria-live": "polite",
|
|
2015
|
+
children: store.getEntries().map((entry) => /* @__PURE__ */ jsxs(
|
|
2016
|
+
"div",
|
|
2017
|
+
{
|
|
2018
|
+
className: [
|
|
2019
|
+
`${REACT_COMPONENT_PREFIX}-message`,
|
|
2020
|
+
`${REACT_COMPONENT_PREFIX}-message-${entry.type}`,
|
|
2021
|
+
entry.leaving && `${REACT_COMPONENT_PREFIX}-message-leaving`,
|
|
2022
|
+
entry.className
|
|
2023
|
+
].filter(Boolean).join(" "),
|
|
2024
|
+
style: entry.style,
|
|
2025
|
+
onClick: entry.onClick,
|
|
2026
|
+
children: [
|
|
2027
|
+
/* @__PURE__ */ jsx(
|
|
2028
|
+
"span",
|
|
2029
|
+
{
|
|
2030
|
+
className: `${REACT_COMPONENT_PREFIX}-message-icon`,
|
|
2031
|
+
"aria-hidden": "true",
|
|
2032
|
+
children: entry.icon ?? /* @__PURE__ */ jsx(MessageIcon, { type: entry.type })
|
|
2033
|
+
}
|
|
2034
|
+
),
|
|
2035
|
+
/* @__PURE__ */ jsx("span", { children: entry.content })
|
|
2036
|
+
]
|
|
2037
|
+
},
|
|
2038
|
+
entry.key
|
|
2039
|
+
))
|
|
2040
|
+
}
|
|
2041
|
+
);
|
|
2042
|
+
}
|
|
2043
|
+
function MessageIcon({ type }) {
|
|
2044
|
+
if (type === "loading")
|
|
2045
|
+
return /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-message-spinner` });
|
|
2046
|
+
const path = type === "success" ? "M5 12l4 4L19 6" : type === "error" ? "M6 6l12 12M18 6L6 18" : type === "warning" ? "M12 7v6m0 4h.01" : "M12 11v6m0-10h.01";
|
|
2047
|
+
return /* @__PURE__ */ jsxs(
|
|
2048
|
+
"svg",
|
|
2049
|
+
{
|
|
2050
|
+
viewBox: "0 0 24 24",
|
|
2051
|
+
fill: "none",
|
|
2052
|
+
stroke: "currentColor",
|
|
2053
|
+
strokeWidth: "2.4",
|
|
2054
|
+
strokeLinecap: "round",
|
|
2055
|
+
strokeLinejoin: "round",
|
|
2056
|
+
children: [
|
|
2057
|
+
/* @__PURE__ */ jsx(
|
|
2058
|
+
"circle",
|
|
2059
|
+
{
|
|
2060
|
+
cx: "12",
|
|
2061
|
+
cy: "12",
|
|
2062
|
+
r: "10",
|
|
2063
|
+
fill: "currentColor",
|
|
2064
|
+
stroke: "none",
|
|
2065
|
+
opacity: ".12"
|
|
2066
|
+
}
|
|
2067
|
+
),
|
|
2068
|
+
/* @__PURE__ */ jsx("path", { d: path })
|
|
2069
|
+
]
|
|
2070
|
+
}
|
|
2071
|
+
);
|
|
2072
|
+
}
|
|
2073
|
+
var staticStore;
|
|
2074
|
+
var staticRootMounted = false;
|
|
2075
|
+
var staticHost;
|
|
2076
|
+
function resolveMessageContainer(value) {
|
|
2077
|
+
return (typeof value === "function" ? value() : value) ?? document.body;
|
|
2078
|
+
}
|
|
2079
|
+
function getStaticStore() {
|
|
2080
|
+
if (!staticStore) staticStore = createMessageStore();
|
|
2081
|
+
if (typeof document !== "undefined" && !staticRootMounted) {
|
|
2082
|
+
const host = document.createElement("div");
|
|
2083
|
+
host.id = `${REACT_COMPONENT_PREFIX}-message-root`;
|
|
2084
|
+
resolveMessageContainer(staticStore.getOptions().getContainer).appendChild(
|
|
2085
|
+
host
|
|
2086
|
+
);
|
|
2087
|
+
staticHost = host;
|
|
2088
|
+
staticRootMounted = true;
|
|
2089
|
+
if (typeof ReactDOM.render === "function") {
|
|
2090
|
+
ReactDOM.render(/* @__PURE__ */ jsx(MessageHolder, { store: staticStore }), host);
|
|
2091
|
+
} else {
|
|
2092
|
+
void import('react-dom/client').then(({ createRoot }) => {
|
|
2093
|
+
createRoot(host).render(/* @__PURE__ */ jsx(MessageHolder, { store: staticStore }));
|
|
2094
|
+
});
|
|
2095
|
+
}
|
|
2096
|
+
} else if (staticHost && !staticHost.isConnected) {
|
|
2097
|
+
resolveMessageContainer(staticStore.getOptions().getContainer).appendChild(
|
|
2098
|
+
staticHost
|
|
2099
|
+
);
|
|
2100
|
+
}
|
|
2101
|
+
return staticStore;
|
|
2102
|
+
}
|
|
2103
|
+
var reactMessage = {
|
|
2104
|
+
open: (config) => getStaticStore().api.open(config),
|
|
2105
|
+
info: (content, duration, onClose) => getStaticStore().api.info(content, duration, onClose),
|
|
2106
|
+
success: (content, duration, onClose) => getStaticStore().api.success(content, duration, onClose),
|
|
2107
|
+
warning: (content, duration, onClose) => getStaticStore().api.warning(content, duration, onClose),
|
|
2108
|
+
error: (content, duration, onClose) => getStaticStore().api.error(content, duration, onClose),
|
|
2109
|
+
loading: (content, duration, onClose) => getStaticStore().api.loading(content, duration, onClose),
|
|
2110
|
+
destroy: (key) => getStaticStore().api.destroy(key),
|
|
2111
|
+
config: (options) => {
|
|
2112
|
+
const store = getStaticStore();
|
|
2113
|
+
store.api.config(options);
|
|
2114
|
+
if (staticHost && typeof document !== "undefined") {
|
|
2115
|
+
const container = resolveMessageContainer(
|
|
2116
|
+
store.getOptions().getContainer
|
|
2117
|
+
);
|
|
2118
|
+
if (staticHost.parentElement !== container)
|
|
2119
|
+
container.appendChild(staticHost);
|
|
2120
|
+
}
|
|
2121
|
+
},
|
|
2122
|
+
/** 创建能读取调用位置 React Context 的消息实例。 */
|
|
2123
|
+
useMessage: (options) => useReactMessage(options)
|
|
2124
|
+
};
|
|
2125
|
+
function useReactMessage(options) {
|
|
2126
|
+
const store = useMemo(() => createMessageStore(options), []);
|
|
2127
|
+
useEffect(() => () => store.api.destroy(), [store]);
|
|
2128
|
+
const holder = /* @__PURE__ */ jsx(MessageHolder, { store }, "message-holder");
|
|
2129
|
+
return [
|
|
2130
|
+
store.api,
|
|
2131
|
+
options?.getContainer && typeof document !== "undefined" ? ReactDOM.createPortal(
|
|
2132
|
+
holder,
|
|
2133
|
+
resolveMessageContainer(options.getContainer)
|
|
2134
|
+
) : holder
|
|
2135
|
+
];
|
|
2136
|
+
}
|
|
2137
|
+
function ReactButton({
|
|
2138
|
+
children,
|
|
2139
|
+
className,
|
|
2140
|
+
danger,
|
|
2141
|
+
htmlType = "button",
|
|
2142
|
+
icon,
|
|
2143
|
+
size = "middle",
|
|
2144
|
+
type = "default",
|
|
2145
|
+
...props
|
|
2146
|
+
}) {
|
|
2147
|
+
return /* @__PURE__ */ jsxs(
|
|
2148
|
+
"button",
|
|
2149
|
+
{
|
|
2150
|
+
...props,
|
|
2151
|
+
type: htmlType,
|
|
2152
|
+
className: joinClassNames(
|
|
2153
|
+
`${REACT_COMPONENT_PREFIX}-button`,
|
|
2154
|
+
`${REACT_COMPONENT_PREFIX}-button-${type}`,
|
|
2155
|
+
`${REACT_COMPONENT_PREFIX}-button-${size}`,
|
|
2156
|
+
danger && `${REACT_COMPONENT_PREFIX}-button-danger`,
|
|
2157
|
+
className
|
|
2158
|
+
),
|
|
2159
|
+
children: [
|
|
2160
|
+
icon ? /* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-button-icon`, children: icon }) : null,
|
|
2161
|
+
children
|
|
2162
|
+
]
|
|
2163
|
+
}
|
|
2164
|
+
);
|
|
2165
|
+
}
|
|
2166
|
+
function ReactFlex({
|
|
2167
|
+
vertical,
|
|
2168
|
+
justify,
|
|
2169
|
+
align,
|
|
2170
|
+
gap,
|
|
2171
|
+
style,
|
|
2172
|
+
...props
|
|
2173
|
+
}) {
|
|
2174
|
+
return /* @__PURE__ */ jsx(
|
|
2175
|
+
"div",
|
|
2176
|
+
{
|
|
2177
|
+
...props,
|
|
2178
|
+
style: {
|
|
2179
|
+
display: "flex",
|
|
2180
|
+
flexDirection: vertical ? "column" : "row",
|
|
2181
|
+
justifyContent: justify,
|
|
2182
|
+
alignItems: align,
|
|
2183
|
+
gap,
|
|
2184
|
+
...style
|
|
2185
|
+
}
|
|
2186
|
+
}
|
|
2187
|
+
);
|
|
2188
|
+
}
|
|
2189
|
+
function ReactRow({ gutter = 0, style, ...props }) {
|
|
2190
|
+
return /* @__PURE__ */ jsx(
|
|
2191
|
+
"div",
|
|
2192
|
+
{
|
|
2193
|
+
...props,
|
|
2194
|
+
className: joinClassNames(
|
|
2195
|
+
`${REACT_COMPONENT_PREFIX}-row`,
|
|
2196
|
+
props.className
|
|
2197
|
+
),
|
|
2198
|
+
style: { marginInline: -gutter / 2, ...style }
|
|
2199
|
+
}
|
|
2200
|
+
);
|
|
2201
|
+
}
|
|
2202
|
+
function ReactCol({ span = 24, style, ...props }) {
|
|
2203
|
+
return /* @__PURE__ */ jsx(
|
|
2204
|
+
"div",
|
|
2205
|
+
{
|
|
2206
|
+
...props,
|
|
2207
|
+
className: joinClassNames(
|
|
2208
|
+
`${REACT_COMPONENT_PREFIX}-col`,
|
|
2209
|
+
props.className
|
|
2210
|
+
),
|
|
2211
|
+
style: {
|
|
2212
|
+
flex: `0 0 ${span / 24 * 100}%`,
|
|
2213
|
+
maxWidth: `${span / 24 * 100}%`,
|
|
2214
|
+
...style
|
|
2215
|
+
}
|
|
2216
|
+
}
|
|
2217
|
+
);
|
|
2218
|
+
}
|
|
2219
|
+
var RadioGroupContext = createContext({});
|
|
2220
|
+
function ReactRadioOption({
|
|
2221
|
+
value,
|
|
2222
|
+
checked,
|
|
2223
|
+
disabled,
|
|
2224
|
+
onChange,
|
|
2225
|
+
children,
|
|
2226
|
+
className,
|
|
2227
|
+
...props
|
|
2228
|
+
}) {
|
|
2229
|
+
const group = useContext(RadioGroupContext);
|
|
2230
|
+
const selected = checked ?? String(group.value ?? "") === String(value);
|
|
2231
|
+
return /* @__PURE__ */ jsxs(
|
|
2232
|
+
"label",
|
|
2233
|
+
{
|
|
2234
|
+
...props,
|
|
2235
|
+
className: joinClassNames(
|
|
2236
|
+
`${REACT_COMPONENT_PREFIX}-radio`,
|
|
2237
|
+
disabled && `${REACT_COMPONENT_PREFIX}-radio-disabled`,
|
|
2238
|
+
className
|
|
2239
|
+
),
|
|
2240
|
+
children: [
|
|
2241
|
+
/* @__PURE__ */ jsx(
|
|
2242
|
+
"input",
|
|
2243
|
+
{
|
|
2244
|
+
type: "radio",
|
|
2245
|
+
checked: selected,
|
|
2246
|
+
disabled,
|
|
2247
|
+
onChange: () => {
|
|
2248
|
+
const event = { target: { value } };
|
|
2249
|
+
onChange?.(event);
|
|
2250
|
+
group.onChange?.(event);
|
|
2251
|
+
}
|
|
2252
|
+
}
|
|
2253
|
+
),
|
|
2254
|
+
/* @__PURE__ */ jsx("span", { className: `${REACT_COMPONENT_PREFIX}-radio-mark` }),
|
|
2255
|
+
/* @__PURE__ */ jsx("span", { children })
|
|
2256
|
+
]
|
|
2257
|
+
}
|
|
2258
|
+
);
|
|
2259
|
+
}
|
|
2260
|
+
function ReactRadioGroup({
|
|
2261
|
+
value,
|
|
2262
|
+
onChange,
|
|
2263
|
+
className,
|
|
2264
|
+
...props
|
|
2265
|
+
}) {
|
|
2266
|
+
return /* @__PURE__ */ jsx(RadioGroupContext.Provider, { value: { value, onChange }, children: /* @__PURE__ */ jsx(
|
|
2267
|
+
"div",
|
|
2268
|
+
{
|
|
2269
|
+
...props,
|
|
2270
|
+
className: joinClassNames(
|
|
2271
|
+
`${REACT_COMPONENT_PREFIX}-radio-group`,
|
|
2272
|
+
className
|
|
2273
|
+
)
|
|
2274
|
+
}
|
|
2275
|
+
) });
|
|
2276
|
+
}
|
|
2277
|
+
var ReactRadio = Object.assign(ReactRadioOption, {
|
|
2278
|
+
Group: ReactRadioGroup
|
|
2279
|
+
});
|
|
2280
|
+
function ReactTextArea({ className, ...props }) {
|
|
2281
|
+
return /* @__PURE__ */ jsx(
|
|
2282
|
+
"textarea",
|
|
2283
|
+
{
|
|
2284
|
+
...props,
|
|
2285
|
+
className: joinClassNames(
|
|
2286
|
+
`${REACT_COMPONENT_PREFIX}-textarea`,
|
|
2287
|
+
className
|
|
2288
|
+
)
|
|
2289
|
+
}
|
|
2290
|
+
);
|
|
2291
|
+
}
|
|
2292
|
+
|
|
2268
2293
|
// src/components/input-number/style.css
|
|
2269
2294
|
styleInject('@import "../../styles/variables.css";\n.canvas-react-input-number {\n box-sizing: border-box;\n display: inline-flex;\n align-items: stretch;\n width: 100%;\n min-width: 0;\n height: var(--canvas-react-control-height);\n border: 1px solid var(--canvas-react-color-border);\n border-radius: var(--canvas-react-radius-sm);\n background: var(--canvas-react-color-bg);\n color: var(--canvas-react-color-text);\n font-size: var(--canvas-react-font-size);\n text-align: left;\n overflow: hidden;\n transition:\n border-color 0.2s ease,\n box-shadow 0.2s ease,\n background-color 0.2s ease;\n}\n.canvas-react-input-number:hover {\n border-color: var(--canvas-react-color-primary-hover);\n}\n.canvas-react-input-number-focused {\n border-color: var(--canvas-react-color-primary);\n box-shadow: var(--canvas-react-shadow-focus);\n}\n.canvas-react-input-number-disabled {\n background: #fafafa;\n color: #9ca3af;\n cursor: not-allowed;\n}\n.canvas-react-input-number-handler {\n position: relative;\n display: flex;\n flex: 0 0 28px;\n align-items: center;\n justify-content: center;\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--canvas-react-color-text-muted);\n cursor: pointer;\n transition: color 0.16s ease, background-color 0.16s ease;\n}\n.canvas-react-input-number-handler-down {\n border-right: 1px solid var(--canvas-react-color-border);\n}\n.canvas-react-input-number-handler-up {\n border-left: 1px solid var(--canvas-react-color-border);\n}\n.canvas-react-input-number-handler:hover:not(:disabled) {\n color: var(--canvas-react-color-primary);\n background: rgba(22, 119, 255, 0.06);\n}\n.canvas-react-input-number-handler:disabled {\n color: #c4c7cf;\n cursor: not-allowed;\n}\n.canvas-react-input-number-handler-icon {\n position: relative;\n display: block;\n width: 10px;\n height: 10px;\n}\n.canvas-react-input-number-handler-icon::before,\n.canvas-react-input-number-handler-icon::after {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n background: currentColor;\n border-radius: 1px;\n transform: translate(-50%, -50%);\n}\n.canvas-react-input-number-handler-icon::before {\n width: 10px;\n height: 1.5px;\n}\n.canvas-react-input-number-handler-up .canvas-react-input-number-handler-icon::after {\n width: 1.5px;\n height: 10px;\n}\n.canvas-react-input-number-input-wrap {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n min-width: 0;\n height: 100%;\n}\n.canvas-react-input-number-input {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n height: 100%;\n padding: 0 var(--canvas-react-control-padding-inline, 8px);\n border: none;\n background: transparent;\n color: inherit;\n font-size: inherit;\n outline: none;\n text-align: inherit;\n appearance: textfield;\n -moz-appearance: textfield;\n}\n.canvas-react-input-number-input::placeholder {\n color: #9ca3af;\n}\n.canvas-react-input-number-input::-webkit-outer-spin-button,\n.canvas-react-input-number-input::-webkit-inner-spin-button {\n margin: 0;\n -webkit-appearance: none;\n}\n.canvas-react-input-number-addon {\n flex: 0 0 auto;\n padding-right: 8px;\n color: var(--canvas-react-color-text-muted);\n font-size: 12px;\n line-height: 1;\n user-select: none;\n}\n');
|
|
2270
2295
|
var ReactInputNumber = forwardRef(
|
|
@@ -3532,6 +3557,7 @@ var ReactSelect = forwardRef(
|
|
|
3532
3557
|
onFocus,
|
|
3533
3558
|
onKeyDown,
|
|
3534
3559
|
options,
|
|
3560
|
+
renderOptionExtra,
|
|
3535
3561
|
optionHeight = 32,
|
|
3536
3562
|
listHeight = 224,
|
|
3537
3563
|
placeholder,
|
|
@@ -3727,7 +3753,10 @@ var ReactSelect = forwardRef(
|
|
|
3727
3753
|
openSelect();
|
|
3728
3754
|
return;
|
|
3729
3755
|
}
|
|
3730
|
-
const targetOption = resolveSelectEnterOption(
|
|
3756
|
+
const targetOption = resolveSelectEnterOption(
|
|
3757
|
+
filteredOptions,
|
|
3758
|
+
activeIndex
|
|
3759
|
+
);
|
|
3731
3760
|
if (targetOption && !targetOption.disabled) {
|
|
3732
3761
|
selectOption(targetOption, "keyboard");
|
|
3733
3762
|
} else if (allowCustomValue && keyword.trim()) {
|
|
@@ -3817,7 +3846,7 @@ var ReactSelect = forwardRef(
|
|
|
3817
3846
|
const isSelected = String(option.value) === String(value ?? "");
|
|
3818
3847
|
const isActive = optionIndex === activeIndex;
|
|
3819
3848
|
const isSearching = showSearch && searchKeyword.trim().length > 0;
|
|
3820
|
-
return /* @__PURE__ */
|
|
3849
|
+
return /* @__PURE__ */ jsxs(
|
|
3821
3850
|
"div",
|
|
3822
3851
|
{
|
|
3823
3852
|
className: joinClassNames(
|
|
@@ -3840,17 +3869,20 @@ var ReactSelect = forwardRef(
|
|
|
3840
3869
|
}
|
|
3841
3870
|
selectOption(option, "mouse");
|
|
3842
3871
|
},
|
|
3843
|
-
children:
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3872
|
+
children: [
|
|
3873
|
+
/* @__PURE__ */ jsx(
|
|
3874
|
+
"span",
|
|
3875
|
+
{
|
|
3876
|
+
className: `${REACT_COMPONENT_PREFIX}-select-option-label`,
|
|
3877
|
+
title: option.label,
|
|
3878
|
+
children: renderSelectOptionLabel(
|
|
3879
|
+
option.label,
|
|
3880
|
+
showSearch ? searchKeyword : ""
|
|
3881
|
+
)
|
|
3882
|
+
}
|
|
3883
|
+
),
|
|
3884
|
+
renderOptionExtra?.(option)
|
|
3885
|
+
]
|
|
3854
3886
|
},
|
|
3855
3887
|
String(option.value)
|
|
3856
3888
|
);
|
|
@@ -3891,7 +3923,8 @@ function scoreSelectMatch(text, search) {
|
|
|
3891
3923
|
return (index === 0 ? 2 : 1) + search.length / normalized.length;
|
|
3892
3924
|
}
|
|
3893
3925
|
function resolveSelectEnterOption(options, activeIndex = -1) {
|
|
3894
|
-
if (options[activeIndex] && !options[activeIndex].disabled)
|
|
3926
|
+
if (options[activeIndex] && !options[activeIndex].disabled)
|
|
3927
|
+
return options[activeIndex];
|
|
3895
3928
|
return options.find((option) => !option.disabled);
|
|
3896
3929
|
}
|
|
3897
3930
|
function resolveSelectKeywordOnOpen(selectedLabel) {
|
|
@@ -9474,15 +9507,19 @@ function ReactScrollbarPositionDialog(props) {
|
|
|
9474
9507
|
}
|
|
9475
9508
|
|
|
9476
9509
|
// src/components/pagination/style.css
|
|
9477
|
-
styleInject('@import "../../styles/variables.css";\n.canvas-react-pagination {\n --canvas-react-pagination-control-size: 32px;\n --canvas-react-pagination-gap: 8px;\n --canvas-react-pagination-padding-inline: 10px;\n --canvas-react-control-height: var(--canvas-react-pagination-control-size);\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--canvas-react-pagination-gap);\n color: var(--canvas-react-color-text);\n font-size: var(--canvas-react-font-size);\n white-space: nowrap;\n}\n.canvas-react-pagination-small {\n --canvas-react-pagination-control-size: 24px;\n --canvas-react-pagination-gap: 4px;\n --canvas-react-pagination-padding-inline: 6px;\n}\n.canvas-react-pagination > .canvas-react-select-wrap {\n flex: 0 0 auto;\n width: auto;\n height: auto;\n}\n.canvas-react-pagination > .canvas-react-select-wrap > .canvas-react-select {\n flex-shrink: 0;\n}\n.canvas-react-pagination-large {\n --canvas-react-pagination-control-size: 40px;\n --canvas-react-pagination-gap: 10px;\n --canvas-react-pagination-padding-inline: 14px;\n}\n.canvas-react-pagination-pages {\n display: inline-flex;\n align-items: center;\n gap: var(--canvas-react-pagination-gap);\n flex-wrap: nowrap;\n}\n.canvas-react-pagination-button,\n.canvas-react-pagination-page {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--canvas-react-pagination-control-size);\n height: var(--canvas-react-pagination-control-size);\n padding: 0 var(--canvas-react-pagination-padding-inline);\n border: 1px solid var(--canvas-react-color-border);\n border-radius: var(--canvas-react-radius-sm);\n background: var(--canvas-react-color-bg);\n color: var(--canvas-react-color-text);\n cursor: pointer;\n transition:\n border-color 0.2s ease,\n color 0.2s ease,\n background-color 0.2s ease;\n}\n.canvas-react-pagination-button {\n position: relative;\n width: var(--canvas-react-pagination-control-size);\n min-width: var(--canvas-react-pagination-control-size);\n padding: 0;\n}\n.canvas-react-pagination-button:hover,\n.canvas-react-pagination-page:hover {\n border-color: var(--canvas-react-color-primary-hover);\n color: var(--canvas-react-color-primary-hover);\n}\n.canvas-react-pagination-page-active {\n border-color: var(--canvas-react-color-primary);\n background: var(--canvas-react-color-bg-active);\n color: var(--canvas-react-color-primary);\n}\n.canvas-react-pagination-button:disabled,\n.canvas-react-pagination-page:disabled {\n opacity: 0.48;\n cursor: not-allowed;\n}\n.canvas-react-pagination-ellipsis {\n color: var(--canvas-react-color-text-muted);\n}\n.canvas-react-pagination-arrow {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 7px;\n height: 7px;\n border-right: 1.5px solid var(--canvas-react-color-text-muted);\n border-bottom: 1.5px solid var(--canvas-react-color-text-muted);\n transition:\n border-color 0.18s ease,\n transform 0.18s ease,\n opacity 0.18s ease;\n}\n.canvas-react-pagination-arrow-prev {\n transform: translate(-42%, -50%) rotate(135deg);\n}\n.canvas-react-pagination-arrow-next {\n transform: translate(-58%, -50%) rotate(-45deg);\n}\n.canvas-react-pagination-button:hover .canvas-react-pagination-arrow {\n border-color: var(--canvas-react-color-primary-hover);\n}\n.canvas-react-pagination-button:disabled .canvas-react-pagination-arrow {\n opacity: 0.56;\n}\n.canvas-react-pagination-quick {\n display: inline-flex;\n align-items: center;\n gap: var(--canvas-react-pagination-gap);\n flex-wrap: nowrap;\n}\n.canvas-react-pagination-total {\n color: var(--canvas-react-color-text-muted);\n}\n.canvas-react-pagination button,\n.canvas-react-pagination input {\n font-family: inherit;\n font-weight: inherit;\n font-size: inherit;\n}\n');
|
|
9510
|
+
styleInject('@import "../../styles/variables.css";\n.canvas-react-pagination {\n --canvas-react-pagination-control-size: 32px;\n --canvas-react-pagination-gap: 8px;\n --canvas-react-pagination-padding-inline: 10px;\n --canvas-react-control-height: var(--canvas-react-pagination-control-size);\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--canvas-react-pagination-gap);\n color: var(--canvas-react-color-text);\n font-size: var(--canvas-react-font-size);\n white-space: nowrap;\n}\n.canvas-react-pagination-small {\n --canvas-react-pagination-control-size: 24px;\n --canvas-react-pagination-gap: 4px;\n --canvas-react-pagination-padding-inline: 6px;\n}\n.canvas-react-pagination > .canvas-react-select-wrap {\n flex: 0 0 auto;\n width: auto;\n height: auto;\n}\n.canvas-react-pagination > .canvas-react-select-wrap > .canvas-react-select {\n flex-shrink: 0;\n}\n.canvas-react-pagination-large {\n --canvas-react-pagination-control-size: 40px;\n --canvas-react-pagination-gap: 10px;\n --canvas-react-pagination-padding-inline: 14px;\n}\n.canvas-react-pagination-pages {\n display: inline-flex;\n align-items: center;\n gap: var(--canvas-react-pagination-gap);\n flex-wrap: nowrap;\n}\n.canvas-react-pagination-button,\n.canvas-react-pagination-page {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--canvas-react-pagination-control-size);\n height: var(--canvas-react-pagination-control-size);\n padding: 0 var(--canvas-react-pagination-padding-inline);\n border: 1px solid var(--canvas-react-color-border);\n border-radius: var(--canvas-react-radius-sm);\n background: var(--canvas-react-color-bg);\n color: var(--canvas-react-color-text);\n cursor: pointer;\n transition:\n border-color 0.2s ease,\n color 0.2s ease,\n background-color 0.2s ease;\n}\n.canvas-react-pagination-button {\n position: relative;\n width: var(--canvas-react-pagination-control-size);\n min-width: var(--canvas-react-pagination-control-size);\n padding: 0;\n}\n.canvas-react-pagination-button:hover,\n.canvas-react-pagination-page:hover {\n border-color: var(--canvas-react-color-primary-hover);\n color: var(--canvas-react-color-primary-hover);\n}\n.canvas-react-pagination-page-active {\n border-color: var(--canvas-react-color-primary);\n background: var(--canvas-react-color-bg-active);\n color: var(--canvas-react-color-primary);\n}\n.canvas-react-pagination-button:disabled,\n.canvas-react-pagination-page:disabled {\n opacity: 0.48;\n cursor: not-allowed;\n}\n.canvas-react-pagination-ellipsis {\n color: var(--canvas-react-color-text-muted);\n}\n.canvas-react-pagination-arrow {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 7px;\n height: 7px;\n border-right: 1.5px solid var(--canvas-react-color-text-muted);\n border-bottom: 1.5px solid var(--canvas-react-color-text-muted);\n transition:\n border-color 0.18s ease,\n transform 0.18s ease,\n opacity 0.18s ease;\n}\n.canvas-react-pagination-arrow-prev {\n transform: translate(-42%, -50%) rotate(135deg);\n}\n.canvas-react-pagination-arrow-next {\n transform: translate(-58%, -50%) rotate(-45deg);\n}\n.canvas-react-pagination-button:hover .canvas-react-pagination-arrow {\n border-color: var(--canvas-react-color-primary-hover);\n}\n.canvas-react-pagination-button:disabled .canvas-react-pagination-arrow {\n opacity: 0.56;\n}\n.canvas-react-pagination-quick {\n display: inline-flex;\n align-items: center;\n gap: var(--canvas-react-pagination-gap);\n flex-wrap: nowrap;\n}\n.canvas-react-pagination-total {\n color: var(--canvas-react-color-text-muted);\n}\n.canvas-react-pagination button,\n.canvas-react-pagination input {\n font-family: inherit;\n font-weight: inherit;\n font-size: inherit;\n}\n.canvas-react-pagination-remove-size {\n flex: 0 0 auto;\n margin-left: 6px;\n padding: 0 4px;\n border: 0;\n border-radius: var(--canvas-react-radius-sm);\n background: transparent;\n color: var(--canvas-react-color-text-muted);\n font: inherit;\n cursor: pointer;\n}\n.canvas-react-pagination-remove-size:hover,\n.canvas-react-pagination-remove-size:focus-visible {\n background: var(--canvas-react-color-bg-hover);\n color: var(--canvas-react-color-primary);\n}\n.canvas-react-pagination-remove-size:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n');
|
|
9511
|
+
var DEFAULT_PAGE_SIZE = 10;
|
|
9478
9512
|
var DEFAULT_PAGE_SIZE_OPTIONS = [10, 20, 50, 100];
|
|
9479
9513
|
function ReactPagination(props) {
|
|
9480
9514
|
const {
|
|
9515
|
+
allowPageSizeInput = false,
|
|
9516
|
+
minPageSize = 1,
|
|
9517
|
+
maxPageSize = Number.MAX_SAFE_INTEGER,
|
|
9481
9518
|
current,
|
|
9482
9519
|
disabled,
|
|
9483
9520
|
onChange,
|
|
9484
9521
|
onPageSizeChange,
|
|
9485
|
-
pageSize =
|
|
9522
|
+
pageSize = DEFAULT_PAGE_SIZE,
|
|
9486
9523
|
pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,
|
|
9487
9524
|
showLessItems,
|
|
9488
9525
|
showQuickJumper,
|
|
@@ -9496,12 +9533,56 @@ function ReactPagination(props) {
|
|
|
9496
9533
|
} = props;
|
|
9497
9534
|
const style = { ...rootStyle, ...styles?.root };
|
|
9498
9535
|
const [quickValue, setQuickValue] = useState("");
|
|
9536
|
+
const [customPageSizes, setCustomPageSizes] = useState([]);
|
|
9537
|
+
const pageSizeDraft = useRef(null);
|
|
9538
|
+
const sizeChangerRef = useRef(null);
|
|
9539
|
+
const minimum = Number.isSafeInteger(minPageSize) && minPageSize > 0 ? minPageSize : 1;
|
|
9540
|
+
const maximum = Number.isSafeInteger(maxPageSize) && maxPageSize > 0 ? Math.max(minimum, maxPageSize) : Number.MAX_SAFE_INTEGER;
|
|
9541
|
+
const defaultPageSize = Math.min(
|
|
9542
|
+
maximum,
|
|
9543
|
+
Math.max(minimum, DEFAULT_PAGE_SIZE)
|
|
9544
|
+
);
|
|
9545
|
+
const isValidPageSize = (value) => Number.isSafeInteger(value) && value >= minimum && value <= maximum;
|
|
9499
9546
|
const resolvedPageSizeOptions = useMemo(() => {
|
|
9500
|
-
|
|
9501
|
-
|
|
9547
|
+
const options = allowPageSizeInput ? [.../* @__PURE__ */ new Set([...pageSizeOptions, ...customPageSizes])].sort(
|
|
9548
|
+
(a, b) => a - b
|
|
9549
|
+
) : pageSizeOptions;
|
|
9550
|
+
if (options.length === 0 && !allowPageSizeInput || options.includes(pageSize) || !Number.isSafeInteger(pageSize) || pageSize <= 0) {
|
|
9551
|
+
return options;
|
|
9552
|
+
}
|
|
9553
|
+
return [...options, pageSize].sort((left, right) => left - right);
|
|
9554
|
+
}, [pageSizeOptions, pageSize, customPageSizes, allowPageSizeInput]);
|
|
9555
|
+
const changePageSize = (value) => {
|
|
9556
|
+
pageSizeDraft.current = null;
|
|
9557
|
+
if (disabled || !isValidPageSize(value)) return;
|
|
9558
|
+
if (allowPageSizeInput) {
|
|
9559
|
+
setCustomPageSizes(
|
|
9560
|
+
(sizes) => sizes.includes(value) ? sizes : [...sizes, value]
|
|
9561
|
+
);
|
|
9562
|
+
}
|
|
9563
|
+
onPageSizeChange?.(1, value);
|
|
9564
|
+
};
|
|
9565
|
+
const removeCustomPageSize = (value) => {
|
|
9566
|
+
if (disabled) return;
|
|
9567
|
+
pageSizeDraft.current = null;
|
|
9568
|
+
sizeChangerRef.current?.blur();
|
|
9569
|
+
setCustomPageSizes((sizes) => sizes.filter((size2) => size2 !== value));
|
|
9570
|
+
if (value === pageSize) {
|
|
9571
|
+
onPageSizeChange?.(1, defaultPageSize);
|
|
9502
9572
|
}
|
|
9503
|
-
|
|
9504
|
-
|
|
9573
|
+
};
|
|
9574
|
+
const commitPageSizeInput = () => {
|
|
9575
|
+
const draft = pageSizeDraft.current;
|
|
9576
|
+
pageSizeDraft.current = null;
|
|
9577
|
+
if (!allowPageSizeInput || draft == null || !/^\d+$/.test(draft.trim()))
|
|
9578
|
+
return;
|
|
9579
|
+
changePageSize(Number(draft.trim()));
|
|
9580
|
+
};
|
|
9581
|
+
const pageSizeSelectOptions = resolvedPageSizeOptions.map((size2) => ({
|
|
9582
|
+
label: `${size2} / \u9875`,
|
|
9583
|
+
value: size2,
|
|
9584
|
+
...!isValidPageSize(size2) ? { disabled: true } : {}
|
|
9585
|
+
}));
|
|
9505
9586
|
const totalPages = Math.max(1, Math.ceil(total / pageSize));
|
|
9506
9587
|
const safeCurrent = clampPage(current, totalPages);
|
|
9507
9588
|
const range = total === 0 ? [0, 0] : [
|
|
@@ -9633,26 +9714,65 @@ function ReactPagination(props) {
|
|
|
9633
9714
|
)
|
|
9634
9715
|
}
|
|
9635
9716
|
),
|
|
9636
|
-
showSizeChanger && resolvedPageSizeOptions.length ? /* @__PURE__ */ jsx(
|
|
9717
|
+
showSizeChanger && (allowPageSizeInput || resolvedPageSizeOptions.length) ? /* @__PURE__ */ jsx(
|
|
9637
9718
|
ReactSelect,
|
|
9638
9719
|
{
|
|
9720
|
+
ref: sizeChangerRef,
|
|
9639
9721
|
value: String(pageSize),
|
|
9640
9722
|
disabled,
|
|
9723
|
+
"aria-label": "\u6BCF\u9875\u6761\u6570",
|
|
9724
|
+
allowClear: false,
|
|
9725
|
+
showSearch: allowPageSizeInput,
|
|
9726
|
+
allowCustomValue: allowPageSizeInput,
|
|
9727
|
+
inputMode: allowPageSizeInput ? "numeric" : void 0,
|
|
9728
|
+
onInputValueChange: (value) => {
|
|
9729
|
+
pageSizeDraft.current = value;
|
|
9730
|
+
},
|
|
9731
|
+
onKeyDown: (event) => {
|
|
9732
|
+
if (event.key === "Escape") pageSizeDraft.current = null;
|
|
9733
|
+
if ((event.key === "ArrowDown" || event.key === "ArrowUp") && pageSizeDraft.current != null && filterSelectOptions(
|
|
9734
|
+
pageSizeSelectOptions,
|
|
9735
|
+
pageSizeDraft.current,
|
|
9736
|
+
true
|
|
9737
|
+
).some((option) => !option.disabled)) {
|
|
9738
|
+
pageSizeDraft.current = null;
|
|
9739
|
+
}
|
|
9740
|
+
if (allowPageSizeInput && event.key === "Enter" && pageSizeDraft.current != null) {
|
|
9741
|
+
event.preventDefault();
|
|
9742
|
+
commitPageSizeInput();
|
|
9743
|
+
event.currentTarget.blur();
|
|
9744
|
+
}
|
|
9745
|
+
},
|
|
9746
|
+
onBlur: () => commitPageSizeInput(),
|
|
9641
9747
|
style: {
|
|
9642
9748
|
width: resolvePaginationSelectWidth(size, resolvedPageSizeOptions),
|
|
9643
9749
|
...styles?.sizeChanger
|
|
9644
9750
|
},
|
|
9645
|
-
options:
|
|
9646
|
-
|
|
9647
|
-
value
|
|
9648
|
-
|
|
9649
|
-
|
|
9650
|
-
|
|
9651
|
-
|
|
9652
|
-
|
|
9653
|
-
|
|
9654
|
-
|
|
9655
|
-
|
|
9751
|
+
options: pageSizeSelectOptions,
|
|
9752
|
+
renderOptionExtra: (option) => {
|
|
9753
|
+
const value = Number(option.value);
|
|
9754
|
+
if (!allowPageSizeInput || pageSizeOptions.includes(value) || value === defaultPageSize)
|
|
9755
|
+
return null;
|
|
9756
|
+
return /* @__PURE__ */ jsx(
|
|
9757
|
+
"button",
|
|
9758
|
+
{
|
|
9759
|
+
type: "button",
|
|
9760
|
+
className: `${REACT_COMPONENT_PREFIX}-pagination-remove-size`,
|
|
9761
|
+
"aria-label": `\u5220\u9664\u6BCF\u9875 ${value} \u6761`,
|
|
9762
|
+
disabled,
|
|
9763
|
+
onMouseDown: (event) => {
|
|
9764
|
+
event.preventDefault();
|
|
9765
|
+
event.stopPropagation();
|
|
9766
|
+
},
|
|
9767
|
+
onClick: (event) => {
|
|
9768
|
+
event.stopPropagation();
|
|
9769
|
+
removeCustomPageSize(value);
|
|
9770
|
+
},
|
|
9771
|
+
children: /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xD7" })
|
|
9772
|
+
}
|
|
9773
|
+
);
|
|
9774
|
+
},
|
|
9775
|
+
onChange: (value) => changePageSize(Number(value))
|
|
9656
9776
|
}
|
|
9657
9777
|
) : null,
|
|
9658
9778
|
showQuickJumper ? /* @__PURE__ */ jsxs(
|
|
@@ -10267,7 +10387,7 @@ function ReactPositionedTooltip(props) {
|
|
|
10267
10387
|
left: request.x,
|
|
10268
10388
|
top: request.y,
|
|
10269
10389
|
boxSizing: "border-box",
|
|
10270
|
-
maxWidth: request.variant === "resize" ? "calc(100vw - 16px)" : `min(${320 * zoom}px, calc(100vw - 16px))`,
|
|
10390
|
+
maxWidth: request.variant === "resize" || request.singleLine ? "calc(100vw - 16px)" : `min(${320 * zoom}px, calc(100vw - 16px))`,
|
|
10271
10391
|
maxHeight: "calc(100vh - 16px)",
|
|
10272
10392
|
padding: `${paddingBlock}px ${paddingInline}px`,
|
|
10273
10393
|
borderRadius: 6 * zoom,
|
|
@@ -10279,7 +10399,7 @@ function ReactPositionedTooltip(props) {
|
|
|
10279
10399
|
border: request.variant === "error" ? "1px solid rgba(255, 77, 79, 0.2)" : "none",
|
|
10280
10400
|
pointerEvents: "none",
|
|
10281
10401
|
zIndex: 1200,
|
|
10282
|
-
whiteSpace: request.variant === "resize" ? "nowrap" : "pre-wrap",
|
|
10402
|
+
whiteSpace: request.variant === "resize" || request.singleLine ? "nowrap" : "pre-wrap",
|
|
10283
10403
|
wordBreak: "break-word"
|
|
10284
10404
|
};
|
|
10285
10405
|
return /* @__PURE__ */ jsxs("div", { ref: tooltipRef, role: "tooltip", style, children: [
|
|
@@ -10290,7 +10410,7 @@ function ReactPositionedTooltip(props) {
|
|
|
10290
10410
|
display: "block",
|
|
10291
10411
|
maxHeight: `calc(100vh - ${16 + 2 * paddingBlock + 2}px)`,
|
|
10292
10412
|
overflow: "hidden",
|
|
10293
|
-
textOverflow: request.variant === "resize" ? "ellipsis" : void 0
|
|
10413
|
+
textOverflow: request.variant === "resize" || request.singleLine ? "ellipsis" : void 0
|
|
10294
10414
|
},
|
|
10295
10415
|
children: request.content
|
|
10296
10416
|
}
|
|
@@ -11543,8 +11663,15 @@ function ReactCascader(props) {
|
|
|
11543
11663
|
const [focus, setFocus] = useState({ column: 0, index: -1 });
|
|
11544
11664
|
const interactive = !disabled && !readOnly;
|
|
11545
11665
|
useEffect(() => {
|
|
11546
|
-
|
|
11547
|
-
|
|
11666
|
+
if (multiple)
|
|
11667
|
+
setPath(
|
|
11668
|
+
(current) => resolvePath(
|
|
11669
|
+
options,
|
|
11670
|
+
current.map((item) => item.value)
|
|
11671
|
+
)
|
|
11672
|
+
);
|
|
11673
|
+
else setPath(selected);
|
|
11674
|
+
}, [selected, multiple, options]);
|
|
11548
11675
|
const displayPath = (valuePath) => {
|
|
11549
11676
|
const nodes = resolvePath(options, valuePath);
|
|
11550
11677
|
const labels = valuePath.map(
|
|
@@ -13619,4 +13746,4 @@ function ReactCollapseMotion({
|
|
|
13619
13746
|
);
|
|
13620
13747
|
}
|
|
13621
13748
|
|
|
13622
|
-
export { ReactAccountBookFilled as AccountBookFilled, ReactAccountBookOutlined as AccountBookOutlined, ReactAccountBookTwoTone as AccountBookTwoTone, ReactAimOutlined as AimOutlined, ReactAlertFilled as AlertFilled, ReactAlertOutlined as AlertOutlined, ReactAlertTwoTone as AlertTwoTone, ReactAlibabaOutlined as AlibabaOutlined, ReactAlignCenterOutlined as AlignCenterOutlined, ReactAlignLeftOutlined as AlignLeftOutlined, ReactAlignRightOutlined as AlignRightOutlined, ReactAlipayCircleFilled as AlipayCircleFilled, ReactAlipayCircleOutlined as AlipayCircleOutlined, ReactAlipayOutlined as AlipayOutlined, ReactAlipaySquareFilled as AlipaySquareFilled, ReactAliwangwangFilled as AliwangwangFilled, ReactAliwangwangOutlined as AliwangwangOutlined, ReactAliyunOutlined as AliyunOutlined, ReactAmazonCircleFilled as AmazonCircleFilled, ReactAmazonOutlined as AmazonOutlined, ReactAmazonSquareFilled as AmazonSquareFilled, ReactAndroidFilled as AndroidFilled, ReactAndroidOutlined as AndroidOutlined, ReactAntCloudOutlined as AntCloudOutlined, ReactAntDesignOutlined as AntDesignOutlined, ReactAnthropicFilled as AnthropicFilled, ReactApartmentOutlined as ApartmentOutlined, ReactApiFilled as ApiFilled, ReactApiOutlined as ApiOutlined, ReactApiTwoTone as ApiTwoTone, ReactAppleFilled as AppleFilled, ReactAppleOutlined as AppleOutlined, ReactAppstoreAddOutlined as AppstoreAddOutlined, ReactAppstoreFilled as AppstoreFilled, ReactAppstoreOutlined as AppstoreOutlined, ReactAppstoreTwoTone as AppstoreTwoTone, ReactAreaChartOutlined as AreaChartOutlined, ReactArrowDownOutlined as ArrowDownOutlined, ReactArrowLeftOutlined as ArrowLeftOutlined, ReactArrowRightOutlined as ArrowRightOutlined, ReactArrowUpOutlined as ArrowUpOutlined, ReactArrowsAltOutlined as ArrowsAltOutlined, ReactAudioFilled as AudioFilled, ReactAudioMutedOutlined as AudioMutedOutlined, ReactAudioOutlined as AudioOutlined, ReactAudioTwoTone as AudioTwoTone, ReactAuditOutlined as AuditOutlined, ReactBackwardFilled as BackwardFilled, ReactBackwardOutlined as BackwardOutlined, ReactBaiduOutlined as BaiduOutlined, ReactBankFilled as BankFilled, ReactBankOutlined as BankOutlined, ReactBankTwoTone as BankTwoTone, ReactBarChartOutlined as BarChartOutlined, ReactBarcodeOutlined as BarcodeOutlined, ReactBarsOutlined as BarsOutlined, ReactBehanceCircleFilled as BehanceCircleFilled, ReactBehanceOutlined as BehanceOutlined, ReactBehanceSquareFilled as BehanceSquareFilled, ReactBehanceSquareOutlined as BehanceSquareOutlined, ReactBellFilled as BellFilled, ReactBellOutlined as BellOutlined, ReactBellTwoTone as BellTwoTone, ReactBgColorsOutlined as BgColorsOutlined, ReactBilibiliFilled as BilibiliFilled, ReactBilibiliOutlined as BilibiliOutlined, ReactBlockOutlined as BlockOutlined, ReactBoldOutlined as BoldOutlined, ReactBookFilled as BookFilled, ReactBookOutlined as BookOutlined, ReactBookTwoTone as BookTwoTone, ReactBorderBottomOutlined as BorderBottomOutlined, ReactBorderHorizontalOutlined as BorderHorizontalOutlined, ReactBorderInnerOutlined as BorderInnerOutlined, ReactBorderLeftOutlined as BorderLeftOutlined, ReactBorderOuterOutlined as BorderOuterOutlined, ReactBorderOutlined as BorderOutlined, ReactBorderRightOutlined as BorderRightOutlined, ReactBorderTopOutlined as BorderTopOutlined, ReactBorderVerticleOutlined as BorderVerticleOutlined, ReactBorderlessTableOutlined as BorderlessTableOutlined, ReactBoxPlotFilled as BoxPlotFilled, ReactBoxPlotOutlined as BoxPlotOutlined, ReactBoxPlotTwoTone as BoxPlotTwoTone, ReactBranchesOutlined as BranchesOutlined, ReactBugFilled as BugFilled, ReactBugOutlined as BugOutlined, ReactBugTwoTone as BugTwoTone, ReactBuildFilled as BuildFilled, ReactBuildOutlined as BuildOutlined, ReactBuildTwoTone as BuildTwoTone, ReactBulbFilled as BulbFilled, ReactBulbOutlined as BulbOutlined, ReactBulbTwoTone as BulbTwoTone, ReactCalculatorFilled as CalculatorFilled, ReactCalculatorOutlined as CalculatorOutlined, ReactCalculatorTwoTone as CalculatorTwoTone, ReactCalendarFilled as CalendarFilled, ReactCalendarOutlined as CalendarOutlined, ReactCalendarTwoTone as CalendarTwoTone, ReactCameraFilled as CameraFilled, ReactCameraOutlined as CameraOutlined, ReactCameraTwoTone as CameraTwoTone, ReactCarFilled as CarFilled, ReactCarOutlined as CarOutlined, ReactCarTwoTone as CarTwoTone, ReactCaretDownFilled as CaretDownFilled, ReactCaretDownOutlined as CaretDownOutlined, ReactCaretLeftFilled as CaretLeftFilled, ReactCaretLeftOutlined as CaretLeftOutlined, ReactCaretRightFilled as CaretRightFilled, ReactCaretRightOutlined as CaretRightOutlined, ReactCaretUpFilled as CaretUpFilled, ReactCaretUpOutlined as CaretUpOutlined, ReactCarryOutFilled as CarryOutFilled, ReactCarryOutOutlined as CarryOutOutlined, ReactCarryOutTwoTone as CarryOutTwoTone, ReactCheckCircleFilled as CheckCircleFilled, ReactCheckCircleOutlined as CheckCircleOutlined, ReactCheckCircleTwoTone as CheckCircleTwoTone, ReactCheckOutlined as CheckOutlined, ReactCheckSquareFilled as CheckSquareFilled, ReactCheckSquareOutlined as CheckSquareOutlined, ReactCheckSquareTwoTone as CheckSquareTwoTone, ReactChromeFilled as ChromeFilled, ReactChromeOutlined as ChromeOutlined, ReactCiCircleFilled as CiCircleFilled, ReactCiCircleOutlined as CiCircleOutlined, ReactCiCircleTwoTone as CiCircleTwoTone, ReactCiOutlined as CiOutlined, ReactCiTwoTone as CiTwoTone, ReactClaudeFilled as ClaudeFilled, ReactClearOutlined as ClearOutlined, ReactClockCircleFilled as ClockCircleFilled, ReactClockCircleOutlined as ClockCircleOutlined, ReactClockCircleTwoTone as ClockCircleTwoTone, ReactCloseCircleFilled as CloseCircleFilled, ReactCloseCircleOutlined as CloseCircleOutlined, ReactCloseCircleTwoTone as CloseCircleTwoTone, ReactCloseOutlined as CloseOutlined, ReactCloseSquareFilled as CloseSquareFilled, ReactCloseSquareOutlined as CloseSquareOutlined, ReactCloseSquareTwoTone as CloseSquareTwoTone, ReactCloudDownloadOutlined as CloudDownloadOutlined, ReactCloudFilled as CloudFilled, ReactCloudOutlined as CloudOutlined, ReactCloudServerOutlined as CloudServerOutlined, ReactCloudSyncOutlined as CloudSyncOutlined, ReactCloudTwoTone as CloudTwoTone, ReactCloudUploadOutlined as CloudUploadOutlined, ReactClusterOutlined as ClusterOutlined, ReactCodeFilled as CodeFilled, ReactCodeOutlined as CodeOutlined, ReactCodeSandboxCircleFilled as CodeSandboxCircleFilled, ReactCodeSandboxOutlined as CodeSandboxOutlined, ReactCodeSandboxSquareFilled as CodeSandboxSquareFilled, ReactCodeTwoTone as CodeTwoTone, ReactCodepenCircleFilled as CodepenCircleFilled, ReactCodepenCircleOutlined as CodepenCircleOutlined, ReactCodepenOutlined as CodepenOutlined, ReactCodepenSquareFilled as CodepenSquareFilled, ReactCoffeeOutlined as CoffeeOutlined, ReactColumnHeightOutlined as ColumnHeightOutlined, ReactColumnWidthOutlined as ColumnWidthOutlined, ReactCommentOutlined as CommentOutlined, ReactCompassFilled as CompassFilled, ReactCompassOutlined as CompassOutlined, ReactCompassTwoTone as CompassTwoTone, ReactCompressOutlined as CompressOutlined, ReactConfigProvider as ConfigProvider, ReactConsoleSqlOutlined as ConsoleSqlOutlined, ReactContactsFilled as ContactsFilled, ReactContactsOutlined as ContactsOutlined, ReactContactsTwoTone as ContactsTwoTone, ReactContainerFilled as ContainerFilled, ReactContainerOutlined as ContainerOutlined, ReactContainerTwoTone as ContainerTwoTone, ReactControlFilled as ControlFilled, ReactControlOutlined as ControlOutlined, ReactControlTwoTone as ControlTwoTone, ReactCopyFilled as CopyFilled, ReactCopyOutlined as CopyOutlined, ReactCopyTwoTone as CopyTwoTone, ReactCopyrightCircleFilled as CopyrightCircleFilled, ReactCopyrightCircleOutlined as CopyrightCircleOutlined, ReactCopyrightCircleTwoTone as CopyrightCircleTwoTone, ReactCopyrightOutlined as CopyrightOutlined, ReactCopyrightTwoTone as CopyrightTwoTone, ReactCreditCardFilled as CreditCardFilled, ReactCreditCardOutlined as CreditCardOutlined, ReactCreditCardTwoTone as CreditCardTwoTone, ReactCrownFilled as CrownFilled, ReactCrownOutlined as CrownOutlined, ReactCrownTwoTone as CrownTwoTone, ReactCustomerServiceFilled as CustomerServiceFilled, ReactCustomerServiceOutlined as CustomerServiceOutlined, ReactCustomerServiceTwoTone as CustomerServiceTwoTone, ReactDashOutlined as DashOutlined, ReactDashboardFilled as DashboardFilled, ReactDashboardOutlined as DashboardOutlined, ReactDashboardTwoTone as DashboardTwoTone, ReactDatabaseFilled as DatabaseFilled, ReactDatabaseOutlined as DatabaseOutlined, ReactDatabaseTwoTone as DatabaseTwoTone, ReactDeepSeekFilled as DeepSeekFilled, ReactDeleteColumnOutlined as DeleteColumnOutlined, ReactDeleteFilled as DeleteFilled, ReactDeleteOutlined as DeleteOutlined, ReactDeleteRowOutlined as DeleteRowOutlined, ReactDeleteTwoTone as DeleteTwoTone, ReactDeliveredProcedureOutlined as DeliveredProcedureOutlined, ReactDeploymentUnitOutlined as DeploymentUnitOutlined, ReactDesktopOutlined as DesktopOutlined, ReactDiffFilled as DiffFilled, ReactDiffOutlined as DiffOutlined, ReactDiffTwoTone as DiffTwoTone, ReactDingdingOutlined as DingdingOutlined, ReactDingtalkCircleFilled as DingtalkCircleFilled, ReactDingtalkOutlined as DingtalkOutlined, ReactDingtalkSquareFilled as DingtalkSquareFilled, ReactDisconnectOutlined as DisconnectOutlined, ReactDiscordFilled as DiscordFilled, ReactDiscordOutlined as DiscordOutlined, ReactDislikeFilled as DislikeFilled, ReactDislikeOutlined as DislikeOutlined, ReactDislikeTwoTone as DislikeTwoTone, ReactDockerOutlined as DockerOutlined, ReactDollarCircleFilled as DollarCircleFilled, ReactDollarCircleOutlined as DollarCircleOutlined, ReactDollarCircleTwoTone as DollarCircleTwoTone, ReactDollarOutlined as DollarOutlined, ReactDollarTwoTone as DollarTwoTone, ReactDotChartOutlined as DotChartOutlined, ReactDotNetOutlined as DotNetOutlined, ReactDoubleLeftOutlined as DoubleLeftOutlined, ReactDoubleRightOutlined as DoubleRightOutlined, ReactDownCircleFilled as DownCircleFilled, ReactDownCircleOutlined as DownCircleOutlined, ReactDownCircleTwoTone as DownCircleTwoTone, ReactDownOutlined as DownOutlined, ReactDownSquareFilled as DownSquareFilled, ReactDownSquareOutlined as DownSquareOutlined, ReactDownSquareTwoTone as DownSquareTwoTone, ReactDownloadOutlined as DownloadOutlined, ReactDragOutlined as DragOutlined, ReactDribbbleCircleFilled as DribbbleCircleFilled, ReactDribbbleOutlined as DribbbleOutlined, ReactDribbbleSquareFilled as DribbbleSquareFilled, ReactDribbbleSquareOutlined as DribbbleSquareOutlined, ReactDropboxCircleFilled as DropboxCircleFilled, ReactDropboxOutlined as DropboxOutlined, ReactDropboxSquareFilled as DropboxSquareFilled, ReactEditFilled as EditFilled, ReactEditOutlined as EditOutlined, ReactEditTwoTone as EditTwoTone, ReactElevenLabsFilled as ElevenLabsFilled, ReactEllipsisOutlined as EllipsisOutlined, ReactEnterOutlined as EnterOutlined, ReactEnvironmentFilled as EnvironmentFilled, ReactEnvironmentOutlined as EnvironmentOutlined, ReactEnvironmentTwoTone as EnvironmentTwoTone, ReactEuroCircleFilled as EuroCircleFilled, ReactEuroCircleOutlined as EuroCircleOutlined, ReactEuroCircleTwoTone as EuroCircleTwoTone, ReactEuroOutlined as EuroOutlined, ReactEuroTwoTone as EuroTwoTone, ReactExceptionOutlined as ExceptionOutlined, ReactExclamationCircleFilled as ExclamationCircleFilled, ReactExclamationCircleOutlined as ExclamationCircleOutlined, ReactExclamationCircleTwoTone as ExclamationCircleTwoTone, ReactExclamationOutlined as ExclamationOutlined, ReactExpandAltOutlined as ExpandAltOutlined, ReactExpandOutlined as ExpandOutlined, ReactExperimentFilled as ExperimentFilled, ReactExperimentOutlined as ExperimentOutlined, ReactExperimentTwoTone as ExperimentTwoTone, ReactExportOutlined as ExportOutlined, ReactEyeFilled as EyeFilled, ReactEyeInvisibleFilled as EyeInvisibleFilled, ReactEyeInvisibleOutlined as EyeInvisibleOutlined, ReactEyeInvisibleTwoTone as EyeInvisibleTwoTone, ReactEyeOutlined as EyeOutlined, ReactEyeTwoTone as EyeTwoTone, ReactFacebookFilled as FacebookFilled, ReactFacebookOutlined as FacebookOutlined, ReactFallOutlined as FallOutlined, ReactFastBackwardFilled as FastBackwardFilled, ReactFastBackwardOutlined as FastBackwardOutlined, ReactFastForwardFilled as FastForwardFilled, ReactFastForwardOutlined as FastForwardOutlined, ReactFieldBinaryOutlined as FieldBinaryOutlined, ReactFieldNumberOutlined as FieldNumberOutlined, ReactFieldStringOutlined as FieldStringOutlined, ReactFieldTimeOutlined as FieldTimeOutlined, ReactFileAddFilled as FileAddFilled, ReactFileAddOutlined as FileAddOutlined, ReactFileAddTwoTone as FileAddTwoTone, ReactFileDoneOutlined as FileDoneOutlined, ReactFileExcelFilled as FileExcelFilled, ReactFileExcelOutlined as FileExcelOutlined, ReactFileExcelTwoTone as FileExcelTwoTone, ReactFileExclamationFilled as FileExclamationFilled, ReactFileExclamationOutlined as FileExclamationOutlined, ReactFileExclamationTwoTone as FileExclamationTwoTone, ReactFileFilled as FileFilled, ReactFileGifOutlined as FileGifOutlined, ReactFileImageFilled as FileImageFilled, ReactFileImageOutlined as FileImageOutlined, ReactFileImageTwoTone as FileImageTwoTone, ReactFileJpgOutlined as FileJpgOutlined, ReactFileMarkdownFilled as FileMarkdownFilled, ReactFileMarkdownOutlined as FileMarkdownOutlined, ReactFileMarkdownTwoTone as FileMarkdownTwoTone, ReactFileOutlined as FileOutlined, ReactFilePdfFilled as FilePdfFilled, ReactFilePdfOutlined as FilePdfOutlined, ReactFilePdfTwoTone as FilePdfTwoTone, ReactFilePptFilled as FilePptFilled, ReactFilePptOutlined as FilePptOutlined, ReactFilePptTwoTone as FilePptTwoTone, ReactFileProtectOutlined as FileProtectOutlined, ReactFileSearchOutlined as FileSearchOutlined, ReactFileSyncOutlined as FileSyncOutlined, ReactFileTextFilled as FileTextFilled, ReactFileTextOutlined as FileTextOutlined, ReactFileTextTwoTone as FileTextTwoTone, ReactFileTwoTone as FileTwoTone, ReactFileUnknownFilled as FileUnknownFilled, ReactFileUnknownOutlined as FileUnknownOutlined, ReactFileUnknownTwoTone as FileUnknownTwoTone, ReactFileWordFilled as FileWordFilled, ReactFileWordOutlined as FileWordOutlined, ReactFileWordTwoTone as FileWordTwoTone, ReactFileZipFilled as FileZipFilled, ReactFileZipOutlined as FileZipOutlined, ReactFileZipTwoTone as FileZipTwoTone, ReactFilterFilled as FilterFilled, ReactFilterOutlined as FilterOutlined, ReactFilterTwoTone as FilterTwoTone, ReactFireFilled as FireFilled, ReactFireOutlined as FireOutlined, ReactFireTwoTone as FireTwoTone, ReactFlagFilled as FlagFilled, ReactFlagOutlined as FlagOutlined, ReactFlagTwoTone as FlagTwoTone, ReactFolderAddFilled as FolderAddFilled, ReactFolderAddOutlined as FolderAddOutlined, ReactFolderAddTwoTone as FolderAddTwoTone, ReactFolderFilled as FolderFilled, ReactFolderOpenFilled as FolderOpenFilled, ReactFolderOpenOutlined as FolderOpenOutlined, ReactFolderOpenTwoTone as FolderOpenTwoTone, ReactFolderOutlined as FolderOutlined, ReactFolderTwoTone as FolderTwoTone, ReactFolderViewOutlined as FolderViewOutlined, ReactFontColorsOutlined as FontColorsOutlined, ReactFontSizeOutlined as FontSizeOutlined, ReactForkOutlined as ForkOutlined, ReactFormOutlined as FormOutlined, ReactFormatPainterFilled as FormatPainterFilled, ReactFormatPainterOutlined as FormatPainterOutlined, ReactForwardFilled as ForwardFilled, ReactForwardOutlined as ForwardOutlined, ReactFrownFilled as FrownFilled, ReactFrownOutlined as FrownOutlined, ReactFrownTwoTone as FrownTwoTone, ReactFullscreenExitOutlined as FullscreenExitOutlined, ReactFullscreenOutlined as FullscreenOutlined, ReactFunctionOutlined as FunctionOutlined, ReactFundFilled as FundFilled, ReactFundOutlined as FundOutlined, ReactFundProjectionScreenOutlined as FundProjectionScreenOutlined, ReactFundTwoTone as FundTwoTone, ReactFundViewOutlined as FundViewOutlined, ReactFunnelPlotFilled as FunnelPlotFilled, ReactFunnelPlotOutlined as FunnelPlotOutlined, ReactFunnelPlotTwoTone as FunnelPlotTwoTone, ReactGatewayOutlined as GatewayOutlined, ReactGeminiFilled as GeminiFilled, ReactGifOutlined as GifOutlined, ReactGiftFilled as GiftFilled, ReactGiftOutlined as GiftOutlined, ReactGiftTwoTone as GiftTwoTone, ReactGithubFilled as GithubFilled, ReactGithubOutlined as GithubOutlined, ReactGitlabFilled as GitlabFilled, ReactGitlabOutlined as GitlabOutlined, ReactGlobalOutlined as GlobalOutlined, ReactGoldFilled as GoldFilled, ReactGoldOutlined as GoldOutlined, ReactGoldTwoTone as GoldTwoTone, ReactGoldenFilled as GoldenFilled, ReactGoogleCircleFilled as GoogleCircleFilled, ReactGoogleOutlined as GoogleOutlined, ReactGooglePlusCircleFilled as GooglePlusCircleFilled, ReactGooglePlusOutlined as GooglePlusOutlined, ReactGooglePlusSquareFilled as GooglePlusSquareFilled, ReactGoogleSquareFilled as GoogleSquareFilled, ReactGroupOutlined as GroupOutlined, ReactHarmonyOSOutlined as HarmonyOSOutlined, ReactHddFilled as HddFilled, ReactHddOutlined as HddOutlined, ReactHddTwoTone as HddTwoTone, ReactHeartFilled as HeartFilled, ReactHeartOutlined as HeartOutlined, ReactHeartTwoTone as HeartTwoTone, ReactHeatMapOutlined as HeatMapOutlined, ReactHighlightFilled as HighlightFilled, ReactHighlightOutlined as HighlightOutlined, ReactHighlightTwoTone as HighlightTwoTone, ReactHistoryOutlined as HistoryOutlined, ReactHolderOutlined as HolderOutlined, ReactHomeFilled as HomeFilled, ReactHomeOutlined as HomeOutlined, ReactHomeTwoTone as HomeTwoTone, ReactHourglassFilled as HourglassFilled, ReactHourglassOutlined as HourglassOutlined, ReactHourglassTwoTone as HourglassTwoTone, ReactHtml5Filled as Html5Filled, ReactHtml5Outlined as Html5Outlined, ReactHtml5TwoTone as Html5TwoTone, ReactHuggingFaceFilled as HuggingFaceFilled, ReactIdcardFilled as IdcardFilled, ReactIdcardOutlined as IdcardOutlined, ReactIdcardTwoTone as IdcardTwoTone, ReactIeCircleFilled as IeCircleFilled, ReactIeOutlined as IeOutlined, ReactIeSquareFilled as IeSquareFilled, ReactImportOutlined as ImportOutlined, ReactInboxOutlined as InboxOutlined, ReactInfoCircleFilled as InfoCircleFilled, ReactInfoCircleOutlined as InfoCircleOutlined, ReactInfoCircleTwoTone as InfoCircleTwoTone, ReactInfoOutlined as InfoOutlined, ReactInsertRowAboveOutlined as InsertRowAboveOutlined, ReactInsertRowBelowOutlined as InsertRowBelowOutlined, ReactInsertRowLeftOutlined as InsertRowLeftOutlined, ReactInsertRowRightOutlined as InsertRowRightOutlined, ReactInstagramFilled as InstagramFilled, ReactInstagramOutlined as InstagramOutlined, ReactInsuranceFilled as InsuranceFilled, ReactInsuranceOutlined as InsuranceOutlined, ReactInsuranceTwoTone as InsuranceTwoTone, ReactInteractionFilled as InteractionFilled, ReactInteractionOutlined as InteractionOutlined, ReactInteractionTwoTone as InteractionTwoTone, ReactIssuesCloseOutlined as IssuesCloseOutlined, ReactItalicOutlined as ItalicOutlined, ReactJavaOutlined as JavaOutlined, ReactJavaScriptOutlined as JavaScriptOutlined, ReactKeyOutlined as KeyOutlined, ReactKubernetesOutlined as KubernetesOutlined, ReactLaptopOutlined as LaptopOutlined, ReactLayoutFilled as LayoutFilled, ReactLayoutOutlined as LayoutOutlined, ReactLayoutTwoTone as LayoutTwoTone, ReactLeftCircleFilled as LeftCircleFilled, ReactLeftCircleOutlined as LeftCircleOutlined, ReactLeftCircleTwoTone as LeftCircleTwoTone, ReactLeftOutlined as LeftOutlined, ReactLeftSquareFilled as LeftSquareFilled, ReactLeftSquareOutlined as LeftSquareOutlined, ReactLeftSquareTwoTone as LeftSquareTwoTone, ReactLikeFilled as LikeFilled, ReactLikeOutlined as LikeOutlined, ReactLikeTwoTone as LikeTwoTone, ReactLineChartOutlined as LineChartOutlined, ReactLineHeightOutlined as LineHeightOutlined, ReactLineOutlined as LineOutlined, ReactLinkOutlined as LinkOutlined, ReactLinkedinFilled as LinkedinFilled, ReactLinkedinOutlined as LinkedinOutlined, ReactLinuxOutlined as LinuxOutlined, ReactLoading3QuartersOutlined as Loading3QuartersOutlined, ReactLoadingOutlined as LoadingOutlined, ReactLockFilled as LockFilled, ReactLockOutlined as LockOutlined, ReactLockTwoTone as LockTwoTone, ReactLoginOutlined as LoginOutlined, ReactLogoutOutlined as LogoutOutlined, ReactMacCommandFilled as MacCommandFilled, ReactMacCommandOutlined as MacCommandOutlined, ReactMailFilled as MailFilled, ReactMailOutlined as MailOutlined, ReactMailTwoTone as MailTwoTone, ReactManOutlined as ManOutlined, ReactMastodonFilled as MastodonFilled, ReactMedicineBoxFilled as MedicineBoxFilled, ReactMedicineBoxOutlined as MedicineBoxOutlined, ReactMedicineBoxTwoTone as MedicineBoxTwoTone, ReactMediumCircleFilled as MediumCircleFilled, ReactMediumOutlined as MediumOutlined, ReactMediumSquareFilled as MediumSquareFilled, ReactMediumWorkmarkOutlined as MediumWorkmarkOutlined, ReactMehFilled as MehFilled, ReactMehOutlined as MehOutlined, ReactMehTwoTone as MehTwoTone, ReactMenuFoldOutlined as MenuFoldOutlined, ReactMenuOutlined as MenuOutlined, ReactMenuUnfoldOutlined as MenuUnfoldOutlined, ReactMergeCellsOutlined as MergeCellsOutlined, ReactMergeFilled as MergeFilled, ReactMergeOutlined as MergeOutlined, ReactMessageFilled as MessageFilled, ReactMessageOutlined as MessageOutlined, ReactMessageTwoTone as MessageTwoTone, ReactMetaFilled as MetaFilled, ReactMinusCircleFilled as MinusCircleFilled, ReactMinusCircleOutlined as MinusCircleOutlined, ReactMinusCircleTwoTone as MinusCircleTwoTone, ReactMinusOutlined as MinusOutlined, ReactMinusSquareFilled as MinusSquareFilled, ReactMinusSquareOutlined as MinusSquareOutlined, ReactMinusSquareTwoTone as MinusSquareTwoTone, ReactMistralFilled as MistralFilled, ReactMobileFilled as MobileFilled, ReactMobileOutlined as MobileOutlined, ReactMobileTwoTone as MobileTwoTone, ReactMoneyCollectFilled as MoneyCollectFilled, ReactMoneyCollectOutlined as MoneyCollectOutlined, ReactMoneyCollectTwoTone as MoneyCollectTwoTone, ReactMonitorOutlined as MonitorOutlined, ReactMoonFilled as MoonFilled, ReactMoonOutlined as MoonOutlined, ReactMoreOutlined as MoreOutlined, ReactMutedFilled as MutedFilled, ReactMutedOutlined as MutedOutlined, ReactNetflixFilled as NetflixFilled, ReactNodeCollapseOutlined as NodeCollapseOutlined, ReactNodeExpandOutlined as NodeExpandOutlined, ReactNodeIndexOutlined as NodeIndexOutlined, ReactNotificationFilled as NotificationFilled, ReactNotificationOutlined as NotificationOutlined, ReactNotificationTwoTone as NotificationTwoTone, ReactNumberOutlined as NumberOutlined, ReactOllamaFilled as OllamaFilled, ReactOneToOneOutlined as OneToOneOutlined, ReactOpenAIFilled as OpenAIFilled, ReactOpenAIOutlined as OpenAIOutlined, ReactOrderedListOutlined as OrderedListOutlined, ReactPaperClipOutlined as PaperClipOutlined, ReactPartitionOutlined as PartitionOutlined, ReactPauseCircleFilled as PauseCircleFilled, ReactPauseCircleOutlined as PauseCircleOutlined, ReactPauseCircleTwoTone as PauseCircleTwoTone, ReactPauseOutlined as PauseOutlined, ReactPayCircleFilled as PayCircleFilled, ReactPayCircleOutlined as PayCircleOutlined, ReactPercentageOutlined as PercentageOutlined, ReactPerplexityFilled as PerplexityFilled, ReactPhoneFilled as PhoneFilled, ReactPhoneOutlined as PhoneOutlined, ReactPhoneTwoTone as PhoneTwoTone, ReactPicCenterOutlined as PicCenterOutlined, ReactPicLeftOutlined as PicLeftOutlined, ReactPicRightOutlined as PicRightOutlined, ReactPictureFilled as PictureFilled, ReactPictureOutlined as PictureOutlined, ReactPictureTwoTone as PictureTwoTone, ReactPieChartFilled as PieChartFilled, ReactPieChartOutlined as PieChartOutlined, ReactPieChartTwoTone as PieChartTwoTone, ReactPinterestFilled as PinterestFilled, ReactPinterestOutlined as PinterestOutlined, ReactPlayCircleFilled as PlayCircleFilled, ReactPlayCircleOutlined as PlayCircleOutlined, ReactPlayCircleTwoTone as PlayCircleTwoTone, ReactPlaySquareFilled as PlaySquareFilled, ReactPlaySquareOutlined as PlaySquareOutlined, ReactPlaySquareTwoTone as PlaySquareTwoTone, ReactPlusCircleFilled as PlusCircleFilled, ReactPlusCircleOutlined as PlusCircleOutlined, ReactPlusCircleTwoTone as PlusCircleTwoTone, ReactPlusOutlined as PlusOutlined, ReactPlusSquareFilled as PlusSquareFilled, ReactPlusSquareOutlined as PlusSquareOutlined, ReactPlusSquareTwoTone as PlusSquareTwoTone, ReactPoundCircleFilled as PoundCircleFilled, ReactPoundCircleOutlined as PoundCircleOutlined, ReactPoundCircleTwoTone as PoundCircleTwoTone, ReactPoundOutlined as PoundOutlined, ReactPoweroffOutlined as PoweroffOutlined, ReactPrinterFilled as PrinterFilled, ReactPrinterOutlined as PrinterOutlined, ReactPrinterTwoTone as PrinterTwoTone, ReactProductFilled as ProductFilled, ReactProductOutlined as ProductOutlined, ReactProfileFilled as ProfileFilled, ReactProfileOutlined as ProfileOutlined, ReactProfileTwoTone as ProfileTwoTone, ReactProjectFilled as ProjectFilled, ReactProjectOutlined as ProjectOutlined, ReactProjectTwoTone as ProjectTwoTone, ReactPropertySafetyFilled as PropertySafetyFilled, ReactPropertySafetyOutlined as PropertySafetyOutlined, ReactPropertySafetyTwoTone as PropertySafetyTwoTone, ReactPullRequestOutlined as PullRequestOutlined, ReactPushpinFilled as PushpinFilled, ReactPushpinOutlined as PushpinOutlined, ReactPushpinTwoTone as PushpinTwoTone, ReactPythonOutlined as PythonOutlined, ReactQqCircleFilled as QqCircleFilled, ReactQqOutlined as QqOutlined, ReactQqSquareFilled as QqSquareFilled, ReactQrcodeOutlined as QrcodeOutlined, ReactQuestionCircleFilled as QuestionCircleFilled, ReactQuestionCircleOutlined as QuestionCircleOutlined, ReactQuestionCircleTwoTone as QuestionCircleTwoTone, ReactQuestionOutlined as QuestionOutlined, ReactQwenFilled as QwenFilled, REACT_COMPONENT_PREFIX, ReactRadarChartOutlined as RadarChartOutlined, ReactRadiusBottomleftOutlined as RadiusBottomleftOutlined, ReactRadiusBottomrightOutlined as RadiusBottomrightOutlined, ReactRadiusSettingOutlined as RadiusSettingOutlined, ReactRadiusUpleftOutlined as RadiusUpleftOutlined, ReactRadiusUprightOutlined as RadiusUprightOutlined, ReactAccountBookFilled, ReactAccountBookOutlined, ReactAccountBookTwoTone, ReactAimOutlined, ReactAlertFilled, ReactAlertOutlined, ReactAlertTwoTone, ReactAlibabaOutlined, ReactAlignCenterOutlined, ReactAlignLeftOutlined, ReactAlignRightOutlined, ReactAlipayCircleFilled, ReactAlipayCircleOutlined, ReactAlipayOutlined, ReactAlipaySquareFilled, ReactAliwangwangFilled, ReactAliwangwangOutlined, ReactAliyunOutlined, ReactAmazonCircleFilled, ReactAmazonOutlined, ReactAmazonSquareFilled, ReactAndroidFilled, ReactAndroidOutlined, ReactAntCloudOutlined, ReactAntDesignOutlined, ReactAnthropicFilled, ReactApartmentOutlined, ReactApiFilled, ReactApiOutlined, ReactApiTwoTone, ReactAppleFilled, ReactAppleOutlined, ReactAppstoreAddOutlined, ReactAppstoreFilled, ReactAppstoreOutlined, ReactAppstoreTwoTone, ReactAreaChartOutlined, ReactArrowDownOutlined, ReactArrowLeftOutlined, ReactArrowRightOutlined, ReactArrowUpOutlined, ReactArrowsAltOutlined, ReactAudioFilled, ReactAudioMutedOutlined, ReactAudioOutlined, ReactAudioTwoTone, ReactAuditOutlined, ReactAutoComplete, ReactBackwardFilled, ReactBackwardOutlined, ReactBaiduOutlined, ReactBankFilled, ReactBankOutlined, ReactBankTwoTone, ReactBarChartOutlined, ReactBarcodeOutlined, ReactBarsOutlined, ReactBehanceCircleFilled, ReactBehanceOutlined, ReactBehanceSquareFilled, ReactBehanceSquareOutlined, ReactBellFilled, ReactBellOutlined, ReactBellTwoTone, ReactBgColorsOutlined, ReactBilibiliFilled, ReactBilibiliOutlined, ReactBlockOutlined, ReactBoldOutlined, ReactBookFilled, ReactBookOutlined, ReactBookTwoTone, ReactBorderBottomOutlined, ReactBorderHorizontalOutlined, ReactBorderInnerOutlined, ReactBorderLeftOutlined, ReactBorderOuterOutlined, ReactBorderOutlined, ReactBorderRightOutlined, ReactBorderTopOutlined, ReactBorderVerticleOutlined, ReactBorderlessTableOutlined, ReactBoxPlotFilled, ReactBoxPlotOutlined, ReactBoxPlotTwoTone, ReactBranchesOutlined, ReactBugFilled, ReactBugOutlined, ReactBugTwoTone, ReactBuildFilled, ReactBuildOutlined, ReactBuildTwoTone, ReactBulbFilled, ReactBulbOutlined, ReactBulbTwoTone, ReactButton, ReactCalculatorFilled, ReactCalculatorOutlined, ReactCalculatorTwoTone, ReactCalendarFilled, ReactCalendarOutlined, ReactCalendarTwoTone, ReactCameraFilled, ReactCameraOutlined, ReactCameraTwoTone, ReactCarFilled, ReactCarOutlined, ReactCarTwoTone, ReactCaretDownFilled, ReactCaretDownOutlined, ReactCaretLeftFilled, ReactCaretLeftOutlined, ReactCaretRightFilled, ReactCaretRightOutlined, ReactCaretUpFilled, ReactCaretUpOutlined, ReactCarryOutFilled, ReactCarryOutOutlined, ReactCarryOutTwoTone, ReactCascader, ReactCheckCircleFilled, ReactCheckCircleOutlined, ReactCheckCircleTwoTone, ReactCheckOutlined, ReactCheckSquareFilled, ReactCheckSquareOutlined, ReactCheckSquareTwoTone, ReactCheckbox, ReactChromeFilled, ReactChromeOutlined, ReactCiCircleFilled, ReactCiCircleOutlined, ReactCiCircleTwoTone, ReactCiOutlined, ReactCiTwoTone, ReactClaudeFilled, ReactClearOutlined, ReactClockCircleFilled, ReactClockCircleOutlined, ReactClockCircleTwoTone, ReactCloseCircleFilled, ReactCloseCircleOutlined, ReactCloseCircleTwoTone, ReactCloseOutlined, ReactCloseSquareFilled, ReactCloseSquareOutlined, ReactCloseSquareTwoTone, ReactCloudDownloadOutlined, ReactCloudFilled, ReactCloudOutlined, ReactCloudServerOutlined, ReactCloudSyncOutlined, ReactCloudTwoTone, ReactCloudUploadOutlined, ReactClusterOutlined, ReactCodeFilled, ReactCodeOutlined, ReactCodeSandboxCircleFilled, ReactCodeSandboxOutlined, ReactCodeSandboxSquareFilled, ReactCodeTwoTone, ReactCodepenCircleFilled, ReactCodepenCircleOutlined, ReactCodepenOutlined, ReactCodepenSquareFilled, ReactCoffeeOutlined, ReactCol, ReactCollapseMotion, ReactCollapsePanel, ReactColorPicker, ReactColumnHeightOutlined, ReactColumnWidthOutlined, ReactCommentOutlined, ReactCompassFilled, ReactCompassOutlined, ReactCompassTwoTone, ReactCompressOutlined, ReactConfigProvider, ReactConsoleSqlOutlined, ReactContactsFilled, ReactContactsOutlined, ReactContactsTwoTone, ReactContainerFilled, ReactContainerOutlined, ReactContainerTwoTone, ReactContentScaleProvider, ReactControlFilled, ReactControlOutlined, ReactControlTwoTone, ReactCopyFilled, ReactCopyOutlined, ReactCopyTwoTone, ReactCopyrightCircleFilled, ReactCopyrightCircleOutlined, ReactCopyrightCircleTwoTone, ReactCopyrightOutlined, ReactCopyrightTwoTone, ReactCreditCardFilled, ReactCreditCardOutlined, ReactCreditCardTwoTone, ReactCrownFilled, ReactCrownOutlined, ReactCrownTwoTone, ReactCustomerServiceFilled, ReactCustomerServiceOutlined, ReactCustomerServiceTwoTone, ReactDashOutlined, ReactDashboardFilled, ReactDashboardOutlined, ReactDashboardTwoTone, ReactDatabaseFilled, ReactDatabaseOutlined, ReactDatabaseTwoTone, ReactDatePicker, ReactDateRangePicker, ReactDateTimePicker, ReactDateTimeRangePicker, ReactDeepSeekFilled, ReactDeleteColumnOutlined, ReactDeleteFilled, ReactDeleteOutlined, ReactDeleteRowOutlined, ReactDeleteTwoTone, ReactDeliveredProcedureOutlined, ReactDeploymentUnitOutlined, ReactDesktopOutlined, ReactDiffFilled, ReactDiffOutlined, ReactDiffTwoTone, ReactDingdingOutlined, ReactDingtalkCircleFilled, ReactDingtalkOutlined, ReactDingtalkSquareFilled, ReactDisconnectOutlined, ReactDiscordFilled, ReactDiscordOutlined, ReactDislikeFilled, ReactDislikeOutlined, ReactDislikeTwoTone, ReactDockerOutlined, ReactDollarCircleFilled, ReactDollarCircleOutlined, ReactDollarCircleTwoTone, ReactDollarOutlined, ReactDollarTwoTone, ReactDotChartOutlined, ReactDotNetOutlined, ReactDoubleLeftOutlined, ReactDoubleRightOutlined, ReactDownCircleFilled, ReactDownCircleOutlined, ReactDownCircleTwoTone, ReactDownOutlined, ReactDownSquareFilled, ReactDownSquareOutlined, ReactDownSquareTwoTone, ReactDownloadOutlined, ReactDragOutlined, ReactDrawer, ReactDribbbleCircleFilled, ReactDribbbleOutlined, ReactDribbbleSquareFilled, ReactDribbbleSquareOutlined, ReactDropboxCircleFilled, ReactDropboxOutlined, ReactDropboxSquareFilled, ReactDropdown, ReactEditFilled, ReactEditOutlined, ReactEditTwoTone, ReactElevenLabsFilled, ReactEllipsisOutlined, ReactEnterOutlined, ReactEnvironmentFilled, ReactEnvironmentOutlined, ReactEnvironmentTwoTone, ReactEuroCircleFilled, ReactEuroCircleOutlined, ReactEuroCircleTwoTone, ReactEuroOutlined, ReactEuroTwoTone, ReactExceptionOutlined, ReactExclamationCircleFilled, ReactExclamationCircleOutlined, ReactExclamationCircleTwoTone, ReactExclamationOutlined, ReactExpandAltOutlined, ReactExpandOutlined, ReactExperimentFilled, ReactExperimentOutlined, ReactExperimentTwoTone, ReactExportOutlined, ReactEyeFilled, ReactEyeInvisibleFilled, ReactEyeInvisibleOutlined, ReactEyeInvisibleTwoTone, ReactEyeOutlined, ReactEyeTwoTone, ReactFacebookFilled, ReactFacebookOutlined, ReactFallOutlined, ReactFastBackwardFilled, ReactFastBackwardOutlined, ReactFastForwardFilled, ReactFastForwardOutlined, ReactFieldBinaryOutlined, ReactFieldNumberOutlined, ReactFieldStringOutlined, ReactFieldTimeOutlined, ReactFileAddFilled, ReactFileAddOutlined, ReactFileAddTwoTone, ReactFileDoneOutlined, ReactFileExcelFilled, ReactFileExcelOutlined, ReactFileExcelTwoTone, ReactFileExclamationFilled, ReactFileExclamationOutlined, ReactFileExclamationTwoTone, ReactFileFilled, ReactFileGifOutlined, ReactFileImageFilled, ReactFileImageOutlined, ReactFileImageTwoTone, ReactFileJpgOutlined, ReactFileMarkdownFilled, ReactFileMarkdownOutlined, ReactFileMarkdownTwoTone, ReactFileOutlined, ReactFilePdfFilled, ReactFilePdfOutlined, ReactFilePdfTwoTone, ReactFilePptFilled, ReactFilePptOutlined, ReactFilePptTwoTone, ReactFileProtectOutlined, ReactFileSearchOutlined, ReactFileSyncOutlined, ReactFileTextFilled, ReactFileTextOutlined, ReactFileTextTwoTone, ReactFileTwoTone, ReactFileUnknownFilled, ReactFileUnknownOutlined, ReactFileUnknownTwoTone, ReactFileWordFilled, ReactFileWordOutlined, ReactFileWordTwoTone, ReactFileZipFilled, ReactFileZipOutlined, ReactFileZipTwoTone, ReactFilterFilled, ReactFilterOutlined, ReactFilterPanel, ReactFilterTwoTone, ReactFireFilled, ReactFireOutlined, ReactFireTwoTone, ReactFlagFilled, ReactFlagOutlined, ReactFlagTwoTone, ReactFlex, ReactFolderAddFilled, ReactFolderAddOutlined, ReactFolderAddTwoTone, ReactFolderFilled, ReactFolderOpenFilled, ReactFolderOpenOutlined, ReactFolderOpenTwoTone, ReactFolderOutlined, ReactFolderTwoTone, ReactFolderViewOutlined, ReactFontColorsOutlined, ReactFontSizeOutlined, ReactForkOutlined, ReactForm, ReactFormItem, ReactFormOutlined, ReactFormatPainterFilled, ReactFormatPainterOutlined, ReactForwardFilled, ReactForwardOutlined, ReactFrownFilled, ReactFrownOutlined, ReactFrownTwoTone, ReactFullscreenExitOutlined, ReactFullscreenOutlined, ReactFunctionOutlined, ReactFundFilled, ReactFundOutlined, ReactFundProjectionScreenOutlined, ReactFundTwoTone, ReactFundViewOutlined, ReactFunnelPlotFilled, ReactFunnelPlotOutlined, ReactFunnelPlotTwoTone, ReactGatewayOutlined, ReactGeminiFilled, ReactGifOutlined, ReactGiftFilled, ReactGiftOutlined, ReactGiftTwoTone, ReactGithubFilled, ReactGithubOutlined, ReactGitlabFilled, ReactGitlabOutlined, ReactGlobalOutlined, ReactGoldFilled, ReactGoldOutlined, ReactGoldTwoTone, ReactGoldenFilled, ReactGoogleCircleFilled, ReactGoogleOutlined, ReactGooglePlusCircleFilled, ReactGooglePlusOutlined, ReactGooglePlusSquareFilled, ReactGoogleSquareFilled, ReactGroupOutlined, ReactHarmonyOSOutlined, ReactHddFilled, ReactHddOutlined, ReactHddTwoTone, ReactHeartFilled, ReactHeartOutlined, ReactHeartTwoTone, ReactHeatMapOutlined, ReactHighlightFilled, ReactHighlightOutlined, ReactHighlightTwoTone, ReactHistoryOutlined, ReactHolderOutlined, ReactHomeFilled, ReactHomeOutlined, ReactHomeTwoTone, ReactHourglassFilled, ReactHourglassOutlined, ReactHourglassTwoTone, ReactHtml5Filled, ReactHtml5Outlined, ReactHtml5TwoTone, ReactHuggingFaceFilled, ReactIcon, ReactIdcardFilled, ReactIdcardOutlined, ReactIdcardTwoTone, ReactIeCircleFilled, ReactIeOutlined, ReactIeSquareFilled, ReactImagePreview, ReactImportOutlined, ReactInboxOutlined, ReactInfoCircleFilled, ReactInfoCircleOutlined, ReactInfoCircleTwoTone, ReactInfoOutlined, ReactInput, ReactInputNumber, ReactInputRange, ReactInsertRowAboveOutlined, ReactInsertRowBelowOutlined, ReactInsertRowLeftOutlined, ReactInsertRowRightOutlined, ReactInstagramFilled, ReactInstagramOutlined, ReactInsuranceFilled, ReactInsuranceOutlined, ReactInsuranceTwoTone, ReactInteractionFilled, ReactInteractionOutlined, ReactInteractionTwoTone, ReactIssuesCloseOutlined, ReactItalicOutlined, ReactJavaOutlined, ReactJavaScriptOutlined, ReactKeyOutlined, ReactKubernetesOutlined, ReactLaptopOutlined, ReactLayoutFilled, ReactLayoutOutlined, ReactLayoutTwoTone, ReactLeftCircleFilled, ReactLeftCircleOutlined, ReactLeftCircleTwoTone, ReactLeftOutlined, ReactLeftSquareFilled, ReactLeftSquareOutlined, ReactLeftSquareTwoTone, ReactLikeFilled, ReactLikeOutlined, ReactLikeTwoTone, ReactLineChartOutlined, ReactLineHeightOutlined, ReactLineOutlined, ReactLinkOutlined, ReactLinkedinFilled, ReactLinkedinOutlined, ReactLinuxOutlined, ReactLoading3QuartersOutlined, ReactLoadingOutlined, ReactLockFilled, ReactLockOutlined, ReactLockTwoTone, ReactLoginOutlined, ReactLogoutOutlined, ReactMacCommandFilled, ReactMacCommandOutlined, ReactMailFilled, ReactMailOutlined, ReactMailTwoTone, ReactManOutlined, ReactMastodonFilled, ReactMedicineBoxFilled, ReactMedicineBoxOutlined, ReactMedicineBoxTwoTone, ReactMediumCircleFilled, ReactMediumOutlined, ReactMediumSquareFilled, ReactMediumWorkmarkOutlined, ReactMehFilled, ReactMehOutlined, ReactMehTwoTone, ReactMenuFoldOutlined, ReactMenuOutlined, ReactMenuUnfoldOutlined, ReactMergeCellsOutlined, ReactMergeFilled, ReactMergeOutlined, ReactMessageFilled, ReactMessageOutlined, ReactMessageTwoTone, ReactMetaFilled, ReactMinusCircleFilled, ReactMinusCircleOutlined, ReactMinusCircleTwoTone, ReactMinusOutlined, ReactMinusSquareFilled, ReactMinusSquareOutlined, ReactMinusSquareTwoTone, ReactMistralFilled, ReactMobileFilled, ReactMobileOutlined, ReactMobileTwoTone, ReactModal, ReactMoneyCollectFilled, ReactMoneyCollectOutlined, ReactMoneyCollectTwoTone, ReactMonitorOutlined, ReactMonthPicker, ReactMoonFilled, ReactMoonOutlined, ReactMoreOutlined, ReactMutedFilled, ReactMutedOutlined, ReactNetflixFilled, ReactNodeCollapseOutlined, ReactNodeExpandOutlined, ReactNodeIndexOutlined, ReactNotificationFilled, ReactNotificationOutlined, ReactNotificationTwoTone, ReactNumberOutlined, ReactOllamaFilled, ReactOneToOneOutlined, ReactOpenAIFilled, ReactOpenAIOutlined, ReactOrderedListOutlined, ReactPagination, ReactPaperClipOutlined, ReactPartitionOutlined, ReactPauseCircleFilled, ReactPauseCircleOutlined, ReactPauseCircleTwoTone, ReactPauseOutlined, ReactPayCircleFilled, ReactPayCircleOutlined, ReactPercentageOutlined, ReactPerplexityFilled, ReactPhoneFilled, ReactPhoneOutlined, ReactPhoneTwoTone, ReactPicCenterOutlined, ReactPicLeftOutlined, ReactPicRightOutlined, ReactPictureFilled, ReactPictureOutlined, ReactPictureTwoTone, ReactPieChartFilled, ReactPieChartOutlined, ReactPieChartTwoTone, ReactPinterestFilled, ReactPinterestOutlined, ReactPlayCircleFilled, ReactPlayCircleOutlined, ReactPlayCircleTwoTone, ReactPlaySquareFilled, ReactPlaySquareOutlined, ReactPlaySquareTwoTone, ReactPlusCircleFilled, ReactPlusCircleOutlined, ReactPlusCircleTwoTone, ReactPlusOutlined, ReactPlusSquareFilled, ReactPlusSquareOutlined, ReactPlusSquareTwoTone, ReactPopconfirm, ReactPopup, ReactPoundCircleFilled, ReactPoundCircleOutlined, ReactPoundCircleTwoTone, ReactPoundOutlined, ReactPoweroffOutlined, ReactPrinterFilled, ReactPrinterOutlined, ReactPrinterTwoTone, ReactProductFilled, ReactProductOutlined, ReactProfileFilled, ReactProfileOutlined, ReactProfileTwoTone, ReactProgress, ReactProjectFilled, ReactProjectOutlined, ReactProjectTwoTone, ReactPropertySafetyFilled, ReactPropertySafetyOutlined, ReactPropertySafetyTwoTone, ReactPullRequestOutlined, ReactPushpinFilled, ReactPushpinOutlined, ReactPushpinTwoTone, ReactPythonOutlined, ReactQqCircleFilled, ReactQqOutlined, ReactQqSquareFilled, ReactQrcodeOutlined, ReactQuarterPicker, ReactQuestionCircleFilled, ReactQuestionCircleOutlined, ReactQuestionCircleTwoTone, ReactQuestionOutlined, ReactQwenFilled, ReactRadarChartOutlined, ReactRadio, ReactRadiusBottomleftOutlined, ReactRadiusBottomrightOutlined, ReactRadiusSettingOutlined, ReactRadiusUpleftOutlined, ReactRadiusUprightOutlined, ReactReadFilled, ReactReadOutlined, ReactReconciliationFilled, ReactReconciliationOutlined, ReactReconciliationTwoTone, ReactRedEnvelopeFilled, ReactRedEnvelopeOutlined, ReactRedEnvelopeTwoTone, ReactRedditCircleFilled, ReactRedditOutlined, ReactRedditSquareFilled, ReactRedoOutlined, ReactReloadOutlined, ReactReplicateFilled, ReactResizablePanels, ReactRestFilled, ReactRestOutlined, ReactRestTwoTone, ReactRetweetOutlined, ReactRichText, ReactRightCircleFilled, ReactRightCircleOutlined, ReactRightCircleTwoTone, ReactRightOutlined, ReactRightSquareFilled, ReactRightSquareOutlined, ReactRightSquareTwoTone, ReactRiseOutlined, ReactRobotFilled, ReactRobotOutlined, ReactRocketFilled, ReactRocketOutlined, ReactRocketTwoTone, ReactRollbackOutlined, ReactRotateLeftOutlined, ReactRotateRightOutlined, ReactRow, ReactRubyOutlined, ReactSafetyCertificateFilled, ReactSafetyCertificateOutlined, ReactSafetyCertificateTwoTone, ReactSafetyOutlined, ReactSaveFilled, ReactSaveOutlined, ReactSaveTwoTone, ReactScanOutlined, ReactScheduleFilled, ReactScheduleOutlined, ReactScheduleTwoTone, ReactScissorOutlined, ReactScrollbarPositionDialog, ReactScrollbarSettingsDialog, ReactSearchOutlined, ReactSecurityScanFilled, ReactSecurityScanOutlined, ReactSecurityScanTwoTone, ReactSelect, ReactSelectOutlined, ReactSendOutlined, ReactSettingFilled, ReactSettingOutlined, ReactSettingTwoTone, ReactShakeOutlined, ReactShareAltOutlined, ReactShopFilled, ReactShopOutlined, ReactShopTwoTone, ReactShoppingCartOutlined, ReactShoppingFilled, ReactShoppingOutlined, ReactShoppingTwoTone, ReactShrinkOutlined, ReactSignalFilled, ReactSignatureFilled, ReactSignatureOutlined, ReactSisternodeOutlined, ReactSketchCircleFilled, ReactSketchOutlined, ReactSketchSquareFilled, ReactSkinFilled, ReactSkinOutlined, ReactSkinTwoTone, ReactSkypeFilled, ReactSkypeOutlined, ReactSlackCircleFilled, ReactSlackOutlined, ReactSlackSquareFilled, ReactSlackSquareOutlined, ReactSlidersFilled, ReactSlidersOutlined, ReactSlidersTwoTone, ReactSmallDashOutlined, ReactSmileFilled, ReactSmileOutlined, ReactSmileTwoTone, ReactSnapchatFilled, ReactSnippetsFilled, ReactSnippetsOutlined, ReactSnippetsTwoTone, ReactSolutionOutlined, ReactSortAscendingOutlined, ReactSortDescendingOutlined, ReactSortableList, ReactSoundFilled, ReactSoundOutlined, ReactSoundTwoTone, ReactSplitCellsOutlined, ReactSpotifyFilled, ReactSpotifyOutlined, ReactStarFilled, ReactStarOutlined, ReactStarTwoTone, ReactStepBackwardFilled, ReactStepBackwardOutlined, ReactStepForwardFilled, ReactStepForwardOutlined, ReactStockOutlined, ReactStopFilled, ReactStopOutlined, ReactStopTwoTone, ReactStrikethroughOutlined, ReactSubnodeOutlined, ReactSunFilled, ReactSunOutlined, ReactSwapLeftOutlined, ReactSwapOutlined, ReactSwapRightOutlined, ReactSwitcherFilled, ReactSwitcherOutlined, ReactSwitcherTwoTone, ReactSyncOutlined, ReactTableOutlined, ReactTabletFilled, ReactTabletOutlined, ReactTabletTwoTone, ReactTag, ReactTagFilled, ReactTagOutlined, ReactTagTwoTone, ReactTagsFilled, ReactTagsOutlined, ReactTagsTwoTone, ReactTaobaoCircleFilled, ReactTaobaoCircleOutlined, ReactTaobaoOutlined, ReactTaobaoSquareFilled, ReactTeamOutlined, ReactTelegramFilled, ReactTextArea, ReactThreadsFilled, ReactThunderboltFilled, ReactThunderboltOutlined, ReactThunderboltTwoTone, ReactTikTokFilled, ReactTikTokOutlined, ReactTimePicker, ReactTimeRangePicker, ReactToTopOutlined, ReactToolFilled, ReactToolOutlined, ReactToolTwoTone, ReactTooltip, ReactTour, ReactTrademarkCircleFilled, ReactTrademarkCircleOutlined, ReactTrademarkCircleTwoTone, ReactTrademarkOutlined, ReactTransactionOutlined, ReactTransition, ReactTranslationOutlined, ReactTreeSelect, ReactTrophyFilled, ReactTrophyOutlined, ReactTrophyTwoTone, ReactTruckFilled, ReactTruckOutlined, ReactTwitchFilled, ReactTwitchOutlined, ReactTwitterCircleFilled, ReactTwitterOutlined, ReactTwitterSquareFilled, ReactUnderlineOutlined, ReactUndoOutlined, ReactUngroupOutlined, ReactUnlockFilled, ReactUnlockOutlined, ReactUnlockTwoTone, ReactUnorderedListOutlined, ReactUpCircleFilled, ReactUpCircleOutlined, ReactUpCircleTwoTone, ReactUpOutlined, ReactUpSquareFilled, ReactUpSquareOutlined, ReactUpSquareTwoTone, ReactUploadOutlined, ReactUsbFilled, ReactUsbOutlined, ReactUsbTwoTone, ReactUserAddOutlined, ReactUserDeleteOutlined, ReactUserOutlined, ReactUserSwitchOutlined, ReactUsergroupAddOutlined, ReactUsergroupDeleteOutlined, ReactVerifiedOutlined, ReactVerticalAlignBottomOutlined, ReactVerticalAlignMiddleOutlined, ReactVerticalAlignTopOutlined, ReactVerticalLeftOutlined, ReactVerticalRightOutlined, ReactVideoCameraAddOutlined, ReactVideoCameraFilled, ReactVideoCameraOutlined, ReactVideoCameraTwoTone, ReactVirtualList, ReactWalletFilled, ReactWalletOutlined, ReactWalletTwoTone, ReactWarningFilled, ReactWarningOutlined, ReactWarningTwoTone, ReactWaterfall, ReactWechatFilled, ReactWechatOutlined, ReactWechatWorkFilled, ReactWechatWorkOutlined, ReactWeiboCircleFilled, ReactWeiboCircleOutlined, ReactWeiboOutlined, ReactWeiboSquareFilled, ReactWeiboSquareOutlined, ReactWhatsAppOutlined, ReactWifiOutlined, ReactWindowsFilled, ReactWindowsOutlined, ReactWomanOutlined, ReactXFilled, ReactXOutlined, ReactYahooFilled, ReactYahooOutlined, ReactYearPicker, ReactYoutubeFilled, ReactYoutubeOutlined, ReactYuqueFilled, ReactYuqueOutlined, ReactZhihuCircleFilled, ReactZhihuOutlined, ReactZhihuSquareFilled, ReactZoomInOutlined, ReactZoomOutOutlined, ReactReadFilled as ReadFilled, ReactReadOutlined as ReadOutlined, ReactReconciliationFilled as ReconciliationFilled, ReactReconciliationOutlined as ReconciliationOutlined, ReactReconciliationTwoTone as ReconciliationTwoTone, ReactRedEnvelopeFilled as RedEnvelopeFilled, ReactRedEnvelopeOutlined as RedEnvelopeOutlined, ReactRedEnvelopeTwoTone as RedEnvelopeTwoTone, ReactRedditCircleFilled as RedditCircleFilled, ReactRedditOutlined as RedditOutlined, ReactRedditSquareFilled as RedditSquareFilled, ReactRedoOutlined as RedoOutlined, ReactReloadOutlined as ReloadOutlined, ReactReplicateFilled as ReplicateFilled, ReactRestFilled as RestFilled, ReactRestOutlined as RestOutlined, ReactRestTwoTone as RestTwoTone, ReactRetweetOutlined as RetweetOutlined, ReactRightCircleFilled as RightCircleFilled, ReactRightCircleOutlined as RightCircleOutlined, ReactRightCircleTwoTone as RightCircleTwoTone, ReactRightOutlined as RightOutlined, ReactRightSquareFilled as RightSquareFilled, ReactRightSquareOutlined as RightSquareOutlined, ReactRightSquareTwoTone as RightSquareTwoTone, ReactRiseOutlined as RiseOutlined, ReactRobotFilled as RobotFilled, ReactRobotOutlined as RobotOutlined, ReactRocketFilled as RocketFilled, ReactRocketOutlined as RocketOutlined, ReactRocketTwoTone as RocketTwoTone, ReactRollbackOutlined as RollbackOutlined, ReactRotateLeftOutlined as RotateLeftOutlined, ReactRotateRightOutlined as RotateRightOutlined, ReactRubyOutlined as RubyOutlined, ReactSafetyCertificateFilled as SafetyCertificateFilled, ReactSafetyCertificateOutlined as SafetyCertificateOutlined, ReactSafetyCertificateTwoTone as SafetyCertificateTwoTone, ReactSafetyOutlined as SafetyOutlined, ReactSaveFilled as SaveFilled, ReactSaveOutlined as SaveOutlined, ReactSaveTwoTone as SaveTwoTone, ReactScanOutlined as ScanOutlined, ReactScheduleFilled as ScheduleFilled, ReactScheduleOutlined as ScheduleOutlined, ReactScheduleTwoTone as ScheduleTwoTone, ReactScissorOutlined as ScissorOutlined, ReactSearchOutlined as SearchOutlined, ReactSecurityScanFilled as SecurityScanFilled, ReactSecurityScanOutlined as SecurityScanOutlined, ReactSecurityScanTwoTone as SecurityScanTwoTone, ReactSelectOutlined as SelectOutlined, ReactSendOutlined as SendOutlined, ReactSettingFilled as SettingFilled, ReactSettingOutlined as SettingOutlined, ReactSettingTwoTone as SettingTwoTone, ReactShakeOutlined as ShakeOutlined, ReactShareAltOutlined as ShareAltOutlined, ReactShopFilled as ShopFilled, ReactShopOutlined as ShopOutlined, ReactShopTwoTone as ShopTwoTone, ReactShoppingCartOutlined as ShoppingCartOutlined, ReactShoppingFilled as ShoppingFilled, ReactShoppingOutlined as ShoppingOutlined, ReactShoppingTwoTone as ShoppingTwoTone, ReactShrinkOutlined as ShrinkOutlined, ReactSignalFilled as SignalFilled, ReactSignatureFilled as SignatureFilled, ReactSignatureOutlined as SignatureOutlined, ReactSisternodeOutlined as SisternodeOutlined, ReactSketchCircleFilled as SketchCircleFilled, ReactSketchOutlined as SketchOutlined, ReactSketchSquareFilled as SketchSquareFilled, ReactSkinFilled as SkinFilled, ReactSkinOutlined as SkinOutlined, ReactSkinTwoTone as SkinTwoTone, ReactSkypeFilled as SkypeFilled, ReactSkypeOutlined as SkypeOutlined, ReactSlackCircleFilled as SlackCircleFilled, ReactSlackOutlined as SlackOutlined, ReactSlackSquareFilled as SlackSquareFilled, ReactSlackSquareOutlined as SlackSquareOutlined, ReactSlidersFilled as SlidersFilled, ReactSlidersOutlined as SlidersOutlined, ReactSlidersTwoTone as SlidersTwoTone, ReactSmallDashOutlined as SmallDashOutlined, ReactSmileFilled as SmileFilled, ReactSmileOutlined as SmileOutlined, ReactSmileTwoTone as SmileTwoTone, ReactSnapchatFilled as SnapchatFilled, ReactSnippetsFilled as SnippetsFilled, ReactSnippetsOutlined as SnippetsOutlined, ReactSnippetsTwoTone as SnippetsTwoTone, ReactSolutionOutlined as SolutionOutlined, ReactSortAscendingOutlined as SortAscendingOutlined, ReactSortDescendingOutlined as SortDescendingOutlined, ReactSoundFilled as SoundFilled, ReactSoundOutlined as SoundOutlined, ReactSoundTwoTone as SoundTwoTone, ReactSplitCellsOutlined as SplitCellsOutlined, ReactSpotifyFilled as SpotifyFilled, ReactSpotifyOutlined as SpotifyOutlined, ReactStarFilled as StarFilled, ReactStarOutlined as StarOutlined, ReactStarTwoTone as StarTwoTone, ReactStepBackwardFilled as StepBackwardFilled, ReactStepBackwardOutlined as StepBackwardOutlined, ReactStepForwardFilled as StepForwardFilled, ReactStepForwardOutlined as StepForwardOutlined, ReactStockOutlined as StockOutlined, ReactStopFilled as StopFilled, ReactStopOutlined as StopOutlined, ReactStopTwoTone as StopTwoTone, ReactStrikethroughOutlined as StrikethroughOutlined, ReactSubnodeOutlined as SubnodeOutlined, ReactSunFilled as SunFilled, ReactSunOutlined as SunOutlined, ReactSwapLeftOutlined as SwapLeftOutlined, ReactSwapOutlined as SwapOutlined, ReactSwapRightOutlined as SwapRightOutlined, ReactSwitcherFilled as SwitcherFilled, ReactSwitcherOutlined as SwitcherOutlined, ReactSwitcherTwoTone as SwitcherTwoTone, ReactSyncOutlined as SyncOutlined, ReactTableOutlined as TableOutlined, ReactTabletFilled as TabletFilled, ReactTabletOutlined as TabletOutlined, ReactTabletTwoTone as TabletTwoTone, ReactTagFilled as TagFilled, ReactTagOutlined as TagOutlined, ReactTagTwoTone as TagTwoTone, ReactTagsFilled as TagsFilled, ReactTagsOutlined as TagsOutlined, ReactTagsTwoTone as TagsTwoTone, ReactTaobaoCircleFilled as TaobaoCircleFilled, ReactTaobaoCircleOutlined as TaobaoCircleOutlined, ReactTaobaoOutlined as TaobaoOutlined, ReactTaobaoSquareFilled as TaobaoSquareFilled, ReactTeamOutlined as TeamOutlined, ReactTelegramFilled as TelegramFilled, ReactThreadsFilled as ThreadsFilled, ReactThunderboltFilled as ThunderboltFilled, ReactThunderboltOutlined as ThunderboltOutlined, ReactThunderboltTwoTone as ThunderboltTwoTone, ReactTikTokFilled as TikTokFilled, ReactTikTokOutlined as TikTokOutlined, ReactToTopOutlined as ToTopOutlined, ReactToolFilled as ToolFilled, ReactToolOutlined as ToolOutlined, ReactToolTwoTone as ToolTwoTone, ReactTrademarkCircleFilled as TrademarkCircleFilled, ReactTrademarkCircleOutlined as TrademarkCircleOutlined, ReactTrademarkCircleTwoTone as TrademarkCircleTwoTone, ReactTrademarkOutlined as TrademarkOutlined, ReactTransactionOutlined as TransactionOutlined, ReactTranslationOutlined as TranslationOutlined, ReactTrophyFilled as TrophyFilled, ReactTrophyOutlined as TrophyOutlined, ReactTrophyTwoTone as TrophyTwoTone, ReactTruckFilled as TruckFilled, ReactTruckOutlined as TruckOutlined, ReactTwitchFilled as TwitchFilled, ReactTwitchOutlined as TwitchOutlined, ReactTwitterCircleFilled as TwitterCircleFilled, ReactTwitterOutlined as TwitterOutlined, ReactTwitterSquareFilled as TwitterSquareFilled, ReactUnderlineOutlined as UnderlineOutlined, ReactUndoOutlined as UndoOutlined, ReactUngroupOutlined as UngroupOutlined, ReactUnlockFilled as UnlockFilled, ReactUnlockOutlined as UnlockOutlined, ReactUnlockTwoTone as UnlockTwoTone, ReactUnorderedListOutlined as UnorderedListOutlined, ReactUpCircleFilled as UpCircleFilled, ReactUpCircleOutlined as UpCircleOutlined, ReactUpCircleTwoTone as UpCircleTwoTone, ReactUpOutlined as UpOutlined, ReactUpSquareFilled as UpSquareFilled, ReactUpSquareOutlined as UpSquareOutlined, ReactUpSquareTwoTone as UpSquareTwoTone, ReactUploadOutlined as UploadOutlined, ReactUsbFilled as UsbFilled, ReactUsbOutlined as UsbOutlined, ReactUsbTwoTone as UsbTwoTone, ReactUserAddOutlined as UserAddOutlined, ReactUserDeleteOutlined as UserDeleteOutlined, ReactUserOutlined as UserOutlined, ReactUserSwitchOutlined as UserSwitchOutlined, ReactUsergroupAddOutlined as UsergroupAddOutlined, ReactUsergroupDeleteOutlined as UsergroupDeleteOutlined, ReactVerifiedOutlined as VerifiedOutlined, ReactVerticalAlignBottomOutlined as VerticalAlignBottomOutlined, ReactVerticalAlignMiddleOutlined as VerticalAlignMiddleOutlined, ReactVerticalAlignTopOutlined as VerticalAlignTopOutlined, ReactVerticalLeftOutlined as VerticalLeftOutlined, ReactVerticalRightOutlined as VerticalRightOutlined, ReactVideoCameraAddOutlined as VideoCameraAddOutlined, ReactVideoCameraFilled as VideoCameraFilled, ReactVideoCameraOutlined as VideoCameraOutlined, ReactVideoCameraTwoTone as VideoCameraTwoTone, ReactWalletFilled as WalletFilled, ReactWalletOutlined as WalletOutlined, ReactWalletTwoTone as WalletTwoTone, ReactWarningFilled as WarningFilled, ReactWarningOutlined as WarningOutlined, ReactWarningTwoTone as WarningTwoTone, ReactWechatFilled as WechatFilled, ReactWechatOutlined as WechatOutlined, ReactWechatWorkFilled as WechatWorkFilled, ReactWechatWorkOutlined as WechatWorkOutlined, ReactWeiboCircleFilled as WeiboCircleFilled, ReactWeiboCircleOutlined as WeiboCircleOutlined, ReactWeiboOutlined as WeiboOutlined, ReactWeiboSquareFilled as WeiboSquareFilled, ReactWeiboSquareOutlined as WeiboSquareOutlined, ReactWhatsAppOutlined as WhatsAppOutlined, ReactWifiOutlined as WifiOutlined, ReactWindowsFilled as WindowsFilled, ReactWindowsOutlined as WindowsOutlined, ReactWomanOutlined as WomanOutlined, ReactXFilled as XFilled, ReactXOutlined as XOutlined, ReactYahooFilled as YahooFilled, ReactYahooOutlined as YahooOutlined, ReactYoutubeFilled as YoutubeFilled, ReactYoutubeOutlined as YoutubeOutlined, ReactYuqueFilled as YuqueFilled, ReactYuqueOutlined as YuqueOutlined, ReactZhihuCircleFilled as ZhihuCircleFilled, ReactZhihuOutlined as ZhihuOutlined, ReactZhihuSquareFilled as ZhihuSquareFilled, ReactZoomInOutlined as ZoomInOutlined, ReactZoomOutOutlined as ZoomOutOutlined, getSharedScrollbarSettings, normalizeRichTextRuns, reactIconNames, reactMessage, replaceRichTextRange, resolveClosestSortableItem, resolveNextSortableOrder, resolveReactScrollbarMode, resolveResizablePanelSizes, richTextPlainText, setSharedScrollbarSettings, styleRichTextRange, subscribeSharedScrollbarSettings, useReactConfig, useReactConfigStyle, useReactContentScale, useReactForm, useReactFormWatch, useReactMessage, useReactTransition };
|
|
13749
|
+
export { ReactAccountBookFilled as AccountBookFilled, ReactAccountBookOutlined as AccountBookOutlined, ReactAccountBookTwoTone as AccountBookTwoTone, ReactAimOutlined as AimOutlined, ReactAlertFilled as AlertFilled, ReactAlertOutlined as AlertOutlined, ReactAlertTwoTone as AlertTwoTone, ReactAlibabaOutlined as AlibabaOutlined, ReactAlignCenterOutlined as AlignCenterOutlined, ReactAlignLeftOutlined as AlignLeftOutlined, ReactAlignRightOutlined as AlignRightOutlined, ReactAlipayCircleFilled as AlipayCircleFilled, ReactAlipayCircleOutlined as AlipayCircleOutlined, ReactAlipayOutlined as AlipayOutlined, ReactAlipaySquareFilled as AlipaySquareFilled, ReactAliwangwangFilled as AliwangwangFilled, ReactAliwangwangOutlined as AliwangwangOutlined, ReactAliyunOutlined as AliyunOutlined, ReactAmazonCircleFilled as AmazonCircleFilled, ReactAmazonOutlined as AmazonOutlined, ReactAmazonSquareFilled as AmazonSquareFilled, ReactAndroidFilled as AndroidFilled, ReactAndroidOutlined as AndroidOutlined, ReactAntCloudOutlined as AntCloudOutlined, ReactAntDesignOutlined as AntDesignOutlined, ReactAnthropicFilled as AnthropicFilled, ReactApartmentOutlined as ApartmentOutlined, ReactApiFilled as ApiFilled, ReactApiOutlined as ApiOutlined, ReactApiTwoTone as ApiTwoTone, ReactAppleFilled as AppleFilled, ReactAppleOutlined as AppleOutlined, ReactAppstoreAddOutlined as AppstoreAddOutlined, ReactAppstoreFilled as AppstoreFilled, ReactAppstoreOutlined as AppstoreOutlined, ReactAppstoreTwoTone as AppstoreTwoTone, ReactAreaChartOutlined as AreaChartOutlined, ReactArrowDownOutlined as ArrowDownOutlined, ReactArrowLeftOutlined as ArrowLeftOutlined, ReactArrowRightOutlined as ArrowRightOutlined, ReactArrowUpOutlined as ArrowUpOutlined, ReactArrowsAltOutlined as ArrowsAltOutlined, ReactAudioFilled as AudioFilled, ReactAudioMutedOutlined as AudioMutedOutlined, ReactAudioOutlined as AudioOutlined, ReactAudioTwoTone as AudioTwoTone, ReactAuditOutlined as AuditOutlined, ReactBackwardFilled as BackwardFilled, ReactBackwardOutlined as BackwardOutlined, ReactBaiduOutlined as BaiduOutlined, ReactBankFilled as BankFilled, ReactBankOutlined as BankOutlined, ReactBankTwoTone as BankTwoTone, ReactBarChartOutlined as BarChartOutlined, ReactBarcodeOutlined as BarcodeOutlined, ReactBarsOutlined as BarsOutlined, ReactBehanceCircleFilled as BehanceCircleFilled, ReactBehanceOutlined as BehanceOutlined, ReactBehanceSquareFilled as BehanceSquareFilled, ReactBehanceSquareOutlined as BehanceSquareOutlined, ReactBellFilled as BellFilled, ReactBellOutlined as BellOutlined, ReactBellTwoTone as BellTwoTone, ReactBgColorsOutlined as BgColorsOutlined, ReactBilibiliFilled as BilibiliFilled, ReactBilibiliOutlined as BilibiliOutlined, ReactBlockOutlined as BlockOutlined, ReactBoldOutlined as BoldOutlined, ReactBookFilled as BookFilled, ReactBookOutlined as BookOutlined, ReactBookTwoTone as BookTwoTone, ReactBorderBottomOutlined as BorderBottomOutlined, ReactBorderHorizontalOutlined as BorderHorizontalOutlined, ReactBorderInnerOutlined as BorderInnerOutlined, ReactBorderLeftOutlined as BorderLeftOutlined, ReactBorderOuterOutlined as BorderOuterOutlined, ReactBorderOutlined as BorderOutlined, ReactBorderRightOutlined as BorderRightOutlined, ReactBorderTopOutlined as BorderTopOutlined, ReactBorderVerticleOutlined as BorderVerticleOutlined, ReactBorderlessTableOutlined as BorderlessTableOutlined, ReactBoxPlotFilled as BoxPlotFilled, ReactBoxPlotOutlined as BoxPlotOutlined, ReactBoxPlotTwoTone as BoxPlotTwoTone, ReactBranchesOutlined as BranchesOutlined, ReactBugFilled as BugFilled, ReactBugOutlined as BugOutlined, ReactBugTwoTone as BugTwoTone, ReactBuildFilled as BuildFilled, ReactBuildOutlined as BuildOutlined, ReactBuildTwoTone as BuildTwoTone, ReactBulbFilled as BulbFilled, ReactBulbOutlined as BulbOutlined, ReactBulbTwoTone as BulbTwoTone, ReactCalculatorFilled as CalculatorFilled, ReactCalculatorOutlined as CalculatorOutlined, ReactCalculatorTwoTone as CalculatorTwoTone, ReactCalendarFilled as CalendarFilled, ReactCalendarOutlined as CalendarOutlined, ReactCalendarTwoTone as CalendarTwoTone, ReactCameraFilled as CameraFilled, ReactCameraOutlined as CameraOutlined, ReactCameraTwoTone as CameraTwoTone, ReactCarFilled as CarFilled, ReactCarOutlined as CarOutlined, ReactCarTwoTone as CarTwoTone, ReactCaretDownFilled as CaretDownFilled, ReactCaretDownOutlined as CaretDownOutlined, ReactCaretLeftFilled as CaretLeftFilled, ReactCaretLeftOutlined as CaretLeftOutlined, ReactCaretRightFilled as CaretRightFilled, ReactCaretRightOutlined as CaretRightOutlined, ReactCaretUpFilled as CaretUpFilled, ReactCaretUpOutlined as CaretUpOutlined, ReactCarryOutFilled as CarryOutFilled, ReactCarryOutOutlined as CarryOutOutlined, ReactCarryOutTwoTone as CarryOutTwoTone, ReactCheckCircleFilled as CheckCircleFilled, ReactCheckCircleOutlined as CheckCircleOutlined, ReactCheckCircleTwoTone as CheckCircleTwoTone, ReactCheckOutlined as CheckOutlined, ReactCheckSquareFilled as CheckSquareFilled, ReactCheckSquareOutlined as CheckSquareOutlined, ReactCheckSquareTwoTone as CheckSquareTwoTone, ReactChromeFilled as ChromeFilled, ReactChromeOutlined as ChromeOutlined, ReactCiCircleFilled as CiCircleFilled, ReactCiCircleOutlined as CiCircleOutlined, ReactCiCircleTwoTone as CiCircleTwoTone, ReactCiOutlined as CiOutlined, ReactCiTwoTone as CiTwoTone, ReactClaudeFilled as ClaudeFilled, ReactClearOutlined as ClearOutlined, ReactClockCircleFilled as ClockCircleFilled, ReactClockCircleOutlined as ClockCircleOutlined, ReactClockCircleTwoTone as ClockCircleTwoTone, ReactCloseCircleFilled as CloseCircleFilled, ReactCloseCircleOutlined as CloseCircleOutlined, ReactCloseCircleTwoTone as CloseCircleTwoTone, ReactCloseOutlined as CloseOutlined, ReactCloseSquareFilled as CloseSquareFilled, ReactCloseSquareOutlined as CloseSquareOutlined, ReactCloseSquareTwoTone as CloseSquareTwoTone, ReactCloudDownloadOutlined as CloudDownloadOutlined, ReactCloudFilled as CloudFilled, ReactCloudOutlined as CloudOutlined, ReactCloudServerOutlined as CloudServerOutlined, ReactCloudSyncOutlined as CloudSyncOutlined, ReactCloudTwoTone as CloudTwoTone, ReactCloudUploadOutlined as CloudUploadOutlined, ReactClusterOutlined as ClusterOutlined, ReactCodeFilled as CodeFilled, ReactCodeOutlined as CodeOutlined, ReactCodeSandboxCircleFilled as CodeSandboxCircleFilled, ReactCodeSandboxOutlined as CodeSandboxOutlined, ReactCodeSandboxSquareFilled as CodeSandboxSquareFilled, ReactCodeTwoTone as CodeTwoTone, ReactCodepenCircleFilled as CodepenCircleFilled, ReactCodepenCircleOutlined as CodepenCircleOutlined, ReactCodepenOutlined as CodepenOutlined, ReactCodepenSquareFilled as CodepenSquareFilled, ReactCoffeeOutlined as CoffeeOutlined, ReactColumnHeightOutlined as ColumnHeightOutlined, ReactColumnWidthOutlined as ColumnWidthOutlined, ReactCommentOutlined as CommentOutlined, ReactCompassFilled as CompassFilled, ReactCompassOutlined as CompassOutlined, ReactCompassTwoTone as CompassTwoTone, ReactCompressOutlined as CompressOutlined, ReactConfigProvider as ConfigProvider, ReactConsoleSqlOutlined as ConsoleSqlOutlined, ReactContactsFilled as ContactsFilled, ReactContactsOutlined as ContactsOutlined, ReactContactsTwoTone as ContactsTwoTone, ReactContainerFilled as ContainerFilled, ReactContainerOutlined as ContainerOutlined, ReactContainerTwoTone as ContainerTwoTone, ReactControlFilled as ControlFilled, ReactControlOutlined as ControlOutlined, ReactControlTwoTone as ControlTwoTone, ReactCopyFilled as CopyFilled, ReactCopyOutlined as CopyOutlined, ReactCopyTwoTone as CopyTwoTone, ReactCopyrightCircleFilled as CopyrightCircleFilled, ReactCopyrightCircleOutlined as CopyrightCircleOutlined, ReactCopyrightCircleTwoTone as CopyrightCircleTwoTone, ReactCopyrightOutlined as CopyrightOutlined, ReactCopyrightTwoTone as CopyrightTwoTone, ReactCreditCardFilled as CreditCardFilled, ReactCreditCardOutlined as CreditCardOutlined, ReactCreditCardTwoTone as CreditCardTwoTone, ReactCrownFilled as CrownFilled, ReactCrownOutlined as CrownOutlined, ReactCrownTwoTone as CrownTwoTone, ReactCustomerServiceFilled as CustomerServiceFilled, ReactCustomerServiceOutlined as CustomerServiceOutlined, ReactCustomerServiceTwoTone as CustomerServiceTwoTone, ReactDashOutlined as DashOutlined, ReactDashboardFilled as DashboardFilled, ReactDashboardOutlined as DashboardOutlined, ReactDashboardTwoTone as DashboardTwoTone, ReactDatabaseFilled as DatabaseFilled, ReactDatabaseOutlined as DatabaseOutlined, ReactDatabaseTwoTone as DatabaseTwoTone, ReactDeepSeekFilled as DeepSeekFilled, ReactDeleteColumnOutlined as DeleteColumnOutlined, ReactDeleteFilled as DeleteFilled, ReactDeleteOutlined as DeleteOutlined, ReactDeleteRowOutlined as DeleteRowOutlined, ReactDeleteTwoTone as DeleteTwoTone, ReactDeliveredProcedureOutlined as DeliveredProcedureOutlined, ReactDeploymentUnitOutlined as DeploymentUnitOutlined, ReactDesktopOutlined as DesktopOutlined, ReactDiffFilled as DiffFilled, ReactDiffOutlined as DiffOutlined, ReactDiffTwoTone as DiffTwoTone, ReactDingdingOutlined as DingdingOutlined, ReactDingtalkCircleFilled as DingtalkCircleFilled, ReactDingtalkOutlined as DingtalkOutlined, ReactDingtalkSquareFilled as DingtalkSquareFilled, ReactDisconnectOutlined as DisconnectOutlined, ReactDiscordFilled as DiscordFilled, ReactDiscordOutlined as DiscordOutlined, ReactDislikeFilled as DislikeFilled, ReactDislikeOutlined as DislikeOutlined, ReactDislikeTwoTone as DislikeTwoTone, ReactDockerOutlined as DockerOutlined, ReactDollarCircleFilled as DollarCircleFilled, ReactDollarCircleOutlined as DollarCircleOutlined, ReactDollarCircleTwoTone as DollarCircleTwoTone, ReactDollarOutlined as DollarOutlined, ReactDollarTwoTone as DollarTwoTone, ReactDotChartOutlined as DotChartOutlined, ReactDotNetOutlined as DotNetOutlined, ReactDoubleLeftOutlined as DoubleLeftOutlined, ReactDoubleRightOutlined as DoubleRightOutlined, ReactDownCircleFilled as DownCircleFilled, ReactDownCircleOutlined as DownCircleOutlined, ReactDownCircleTwoTone as DownCircleTwoTone, ReactDownOutlined as DownOutlined, ReactDownSquareFilled as DownSquareFilled, ReactDownSquareOutlined as DownSquareOutlined, ReactDownSquareTwoTone as DownSquareTwoTone, ReactDownloadOutlined as DownloadOutlined, ReactDragOutlined as DragOutlined, ReactDribbbleCircleFilled as DribbbleCircleFilled, ReactDribbbleOutlined as DribbbleOutlined, ReactDribbbleSquareFilled as DribbbleSquareFilled, ReactDribbbleSquareOutlined as DribbbleSquareOutlined, ReactDropboxCircleFilled as DropboxCircleFilled, ReactDropboxOutlined as DropboxOutlined, ReactDropboxSquareFilled as DropboxSquareFilled, ReactEditFilled as EditFilled, ReactEditOutlined as EditOutlined, ReactEditTwoTone as EditTwoTone, ReactElevenLabsFilled as ElevenLabsFilled, ReactEllipsisOutlined as EllipsisOutlined, ReactEnterOutlined as EnterOutlined, ReactEnvironmentFilled as EnvironmentFilled, ReactEnvironmentOutlined as EnvironmentOutlined, ReactEnvironmentTwoTone as EnvironmentTwoTone, ReactEuroCircleFilled as EuroCircleFilled, ReactEuroCircleOutlined as EuroCircleOutlined, ReactEuroCircleTwoTone as EuroCircleTwoTone, ReactEuroOutlined as EuroOutlined, ReactEuroTwoTone as EuroTwoTone, ReactExceptionOutlined as ExceptionOutlined, ReactExclamationCircleFilled as ExclamationCircleFilled, ReactExclamationCircleOutlined as ExclamationCircleOutlined, ReactExclamationCircleTwoTone as ExclamationCircleTwoTone, ReactExclamationOutlined as ExclamationOutlined, ReactExpandAltOutlined as ExpandAltOutlined, ReactExpandOutlined as ExpandOutlined, ReactExperimentFilled as ExperimentFilled, ReactExperimentOutlined as ExperimentOutlined, ReactExperimentTwoTone as ExperimentTwoTone, ReactExportOutlined as ExportOutlined, ReactEyeFilled as EyeFilled, ReactEyeInvisibleFilled as EyeInvisibleFilled, ReactEyeInvisibleOutlined as EyeInvisibleOutlined, ReactEyeInvisibleTwoTone as EyeInvisibleTwoTone, ReactEyeOutlined as EyeOutlined, ReactEyeTwoTone as EyeTwoTone, ReactFacebookFilled as FacebookFilled, ReactFacebookOutlined as FacebookOutlined, ReactFallOutlined as FallOutlined, ReactFastBackwardFilled as FastBackwardFilled, ReactFastBackwardOutlined as FastBackwardOutlined, ReactFastForwardFilled as FastForwardFilled, ReactFastForwardOutlined as FastForwardOutlined, ReactFieldBinaryOutlined as FieldBinaryOutlined, ReactFieldNumberOutlined as FieldNumberOutlined, ReactFieldStringOutlined as FieldStringOutlined, ReactFieldTimeOutlined as FieldTimeOutlined, ReactFileAddFilled as FileAddFilled, ReactFileAddOutlined as FileAddOutlined, ReactFileAddTwoTone as FileAddTwoTone, ReactFileDoneOutlined as FileDoneOutlined, ReactFileExcelFilled as FileExcelFilled, ReactFileExcelOutlined as FileExcelOutlined, ReactFileExcelTwoTone as FileExcelTwoTone, ReactFileExclamationFilled as FileExclamationFilled, ReactFileExclamationOutlined as FileExclamationOutlined, ReactFileExclamationTwoTone as FileExclamationTwoTone, ReactFileFilled as FileFilled, ReactFileGifOutlined as FileGifOutlined, ReactFileImageFilled as FileImageFilled, ReactFileImageOutlined as FileImageOutlined, ReactFileImageTwoTone as FileImageTwoTone, ReactFileJpgOutlined as FileJpgOutlined, ReactFileMarkdownFilled as FileMarkdownFilled, ReactFileMarkdownOutlined as FileMarkdownOutlined, ReactFileMarkdownTwoTone as FileMarkdownTwoTone, ReactFileOutlined as FileOutlined, ReactFilePdfFilled as FilePdfFilled, ReactFilePdfOutlined as FilePdfOutlined, ReactFilePdfTwoTone as FilePdfTwoTone, ReactFilePptFilled as FilePptFilled, ReactFilePptOutlined as FilePptOutlined, ReactFilePptTwoTone as FilePptTwoTone, ReactFileProtectOutlined as FileProtectOutlined, ReactFileSearchOutlined as FileSearchOutlined, ReactFileSyncOutlined as FileSyncOutlined, ReactFileTextFilled as FileTextFilled, ReactFileTextOutlined as FileTextOutlined, ReactFileTextTwoTone as FileTextTwoTone, ReactFileTwoTone as FileTwoTone, ReactFileUnknownFilled as FileUnknownFilled, ReactFileUnknownOutlined as FileUnknownOutlined, ReactFileUnknownTwoTone as FileUnknownTwoTone, ReactFileWordFilled as FileWordFilled, ReactFileWordOutlined as FileWordOutlined, ReactFileWordTwoTone as FileWordTwoTone, ReactFileZipFilled as FileZipFilled, ReactFileZipOutlined as FileZipOutlined, ReactFileZipTwoTone as FileZipTwoTone, ReactFilterFilled as FilterFilled, ReactFilterOutlined as FilterOutlined, ReactFilterTwoTone as FilterTwoTone, ReactFireFilled as FireFilled, ReactFireOutlined as FireOutlined, ReactFireTwoTone as FireTwoTone, ReactFlagFilled as FlagFilled, ReactFlagOutlined as FlagOutlined, ReactFlagTwoTone as FlagTwoTone, ReactFolderAddFilled as FolderAddFilled, ReactFolderAddOutlined as FolderAddOutlined, ReactFolderAddTwoTone as FolderAddTwoTone, ReactFolderFilled as FolderFilled, ReactFolderOpenFilled as FolderOpenFilled, ReactFolderOpenOutlined as FolderOpenOutlined, ReactFolderOpenTwoTone as FolderOpenTwoTone, ReactFolderOutlined as FolderOutlined, ReactFolderTwoTone as FolderTwoTone, ReactFolderViewOutlined as FolderViewOutlined, ReactFontColorsOutlined as FontColorsOutlined, ReactFontSizeOutlined as FontSizeOutlined, ReactForkOutlined as ForkOutlined, ReactFormOutlined as FormOutlined, ReactFormatPainterFilled as FormatPainterFilled, ReactFormatPainterOutlined as FormatPainterOutlined, ReactForwardFilled as ForwardFilled, ReactForwardOutlined as ForwardOutlined, ReactFrownFilled as FrownFilled, ReactFrownOutlined as FrownOutlined, ReactFrownTwoTone as FrownTwoTone, ReactFullscreenExitOutlined as FullscreenExitOutlined, ReactFullscreenOutlined as FullscreenOutlined, ReactFunctionOutlined as FunctionOutlined, ReactFundFilled as FundFilled, ReactFundOutlined as FundOutlined, ReactFundProjectionScreenOutlined as FundProjectionScreenOutlined, ReactFundTwoTone as FundTwoTone, ReactFundViewOutlined as FundViewOutlined, ReactFunnelPlotFilled as FunnelPlotFilled, ReactFunnelPlotOutlined as FunnelPlotOutlined, ReactFunnelPlotTwoTone as FunnelPlotTwoTone, ReactGatewayOutlined as GatewayOutlined, ReactGeminiFilled as GeminiFilled, ReactGifOutlined as GifOutlined, ReactGiftFilled as GiftFilled, ReactGiftOutlined as GiftOutlined, ReactGiftTwoTone as GiftTwoTone, ReactGithubFilled as GithubFilled, ReactGithubOutlined as GithubOutlined, ReactGitlabFilled as GitlabFilled, ReactGitlabOutlined as GitlabOutlined, ReactGlobalOutlined as GlobalOutlined, ReactGoldFilled as GoldFilled, ReactGoldOutlined as GoldOutlined, ReactGoldTwoTone as GoldTwoTone, ReactGoldenFilled as GoldenFilled, ReactGoogleCircleFilled as GoogleCircleFilled, ReactGoogleOutlined as GoogleOutlined, ReactGooglePlusCircleFilled as GooglePlusCircleFilled, ReactGooglePlusOutlined as GooglePlusOutlined, ReactGooglePlusSquareFilled as GooglePlusSquareFilled, ReactGoogleSquareFilled as GoogleSquareFilled, ReactGroupOutlined as GroupOutlined, ReactHarmonyOSOutlined as HarmonyOSOutlined, ReactHddFilled as HddFilled, ReactHddOutlined as HddOutlined, ReactHddTwoTone as HddTwoTone, ReactHeartFilled as HeartFilled, ReactHeartOutlined as HeartOutlined, ReactHeartTwoTone as HeartTwoTone, ReactHeatMapOutlined as HeatMapOutlined, ReactHighlightFilled as HighlightFilled, ReactHighlightOutlined as HighlightOutlined, ReactHighlightTwoTone as HighlightTwoTone, ReactHistoryOutlined as HistoryOutlined, ReactHolderOutlined as HolderOutlined, ReactHomeFilled as HomeFilled, ReactHomeOutlined as HomeOutlined, ReactHomeTwoTone as HomeTwoTone, ReactHourglassFilled as HourglassFilled, ReactHourglassOutlined as HourglassOutlined, ReactHourglassTwoTone as HourglassTwoTone, ReactHtml5Filled as Html5Filled, ReactHtml5Outlined as Html5Outlined, ReactHtml5TwoTone as Html5TwoTone, ReactHuggingFaceFilled as HuggingFaceFilled, ReactIdcardFilled as IdcardFilled, ReactIdcardOutlined as IdcardOutlined, ReactIdcardTwoTone as IdcardTwoTone, ReactIeCircleFilled as IeCircleFilled, ReactIeOutlined as IeOutlined, ReactIeSquareFilled as IeSquareFilled, ReactImportOutlined as ImportOutlined, ReactInboxOutlined as InboxOutlined, ReactInfoCircleFilled as InfoCircleFilled, ReactInfoCircleOutlined as InfoCircleOutlined, ReactInfoCircleTwoTone as InfoCircleTwoTone, ReactInfoOutlined as InfoOutlined, ReactInsertRowAboveOutlined as InsertRowAboveOutlined, ReactInsertRowBelowOutlined as InsertRowBelowOutlined, ReactInsertRowLeftOutlined as InsertRowLeftOutlined, ReactInsertRowRightOutlined as InsertRowRightOutlined, ReactInstagramFilled as InstagramFilled, ReactInstagramOutlined as InstagramOutlined, ReactInsuranceFilled as InsuranceFilled, ReactInsuranceOutlined as InsuranceOutlined, ReactInsuranceTwoTone as InsuranceTwoTone, ReactInteractionFilled as InteractionFilled, ReactInteractionOutlined as InteractionOutlined, ReactInteractionTwoTone as InteractionTwoTone, ReactIssuesCloseOutlined as IssuesCloseOutlined, ReactItalicOutlined as ItalicOutlined, ReactJavaOutlined as JavaOutlined, ReactJavaScriptOutlined as JavaScriptOutlined, ReactKeyOutlined as KeyOutlined, ReactKubernetesOutlined as KubernetesOutlined, ReactLaptopOutlined as LaptopOutlined, ReactLayoutFilled as LayoutFilled, ReactLayoutOutlined as LayoutOutlined, ReactLayoutTwoTone as LayoutTwoTone, ReactLeftCircleFilled as LeftCircleFilled, ReactLeftCircleOutlined as LeftCircleOutlined, ReactLeftCircleTwoTone as LeftCircleTwoTone, ReactLeftOutlined as LeftOutlined, ReactLeftSquareFilled as LeftSquareFilled, ReactLeftSquareOutlined as LeftSquareOutlined, ReactLeftSquareTwoTone as LeftSquareTwoTone, ReactLikeFilled as LikeFilled, ReactLikeOutlined as LikeOutlined, ReactLikeTwoTone as LikeTwoTone, ReactLineChartOutlined as LineChartOutlined, ReactLineHeightOutlined as LineHeightOutlined, ReactLineOutlined as LineOutlined, ReactLinkOutlined as LinkOutlined, ReactLinkedinFilled as LinkedinFilled, ReactLinkedinOutlined as LinkedinOutlined, ReactLinuxOutlined as LinuxOutlined, ReactLoading3QuartersOutlined as Loading3QuartersOutlined, ReactLoadingOutlined as LoadingOutlined, ReactLockFilled as LockFilled, ReactLockOutlined as LockOutlined, ReactLockTwoTone as LockTwoTone, ReactLoginOutlined as LoginOutlined, ReactLogoutOutlined as LogoutOutlined, ReactMacCommandFilled as MacCommandFilled, ReactMacCommandOutlined as MacCommandOutlined, ReactMailFilled as MailFilled, ReactMailOutlined as MailOutlined, ReactMailTwoTone as MailTwoTone, ReactManOutlined as ManOutlined, ReactMastodonFilled as MastodonFilled, ReactMedicineBoxFilled as MedicineBoxFilled, ReactMedicineBoxOutlined as MedicineBoxOutlined, ReactMedicineBoxTwoTone as MedicineBoxTwoTone, ReactMediumCircleFilled as MediumCircleFilled, ReactMediumOutlined as MediumOutlined, ReactMediumSquareFilled as MediumSquareFilled, ReactMediumWorkmarkOutlined as MediumWorkmarkOutlined, ReactMehFilled as MehFilled, ReactMehOutlined as MehOutlined, ReactMehTwoTone as MehTwoTone, ReactMenuFoldOutlined as MenuFoldOutlined, ReactMenuOutlined as MenuOutlined, ReactMenuUnfoldOutlined as MenuUnfoldOutlined, ReactMergeCellsOutlined as MergeCellsOutlined, ReactMergeFilled as MergeFilled, ReactMergeOutlined as MergeOutlined, ReactMessageFilled as MessageFilled, ReactMessageOutlined as MessageOutlined, ReactMessageTwoTone as MessageTwoTone, ReactMetaFilled as MetaFilled, ReactMinusCircleFilled as MinusCircleFilled, ReactMinusCircleOutlined as MinusCircleOutlined, ReactMinusCircleTwoTone as MinusCircleTwoTone, ReactMinusOutlined as MinusOutlined, ReactMinusSquareFilled as MinusSquareFilled, ReactMinusSquareOutlined as MinusSquareOutlined, ReactMinusSquareTwoTone as MinusSquareTwoTone, ReactMistralFilled as MistralFilled, ReactMobileFilled as MobileFilled, ReactMobileOutlined as MobileOutlined, ReactMobileTwoTone as MobileTwoTone, ReactMoneyCollectFilled as MoneyCollectFilled, ReactMoneyCollectOutlined as MoneyCollectOutlined, ReactMoneyCollectTwoTone as MoneyCollectTwoTone, ReactMonitorOutlined as MonitorOutlined, ReactMoonFilled as MoonFilled, ReactMoonOutlined as MoonOutlined, ReactMoreOutlined as MoreOutlined, ReactMutedFilled as MutedFilled, ReactMutedOutlined as MutedOutlined, ReactNetflixFilled as NetflixFilled, ReactNodeCollapseOutlined as NodeCollapseOutlined, ReactNodeExpandOutlined as NodeExpandOutlined, ReactNodeIndexOutlined as NodeIndexOutlined, ReactNotificationFilled as NotificationFilled, ReactNotificationOutlined as NotificationOutlined, ReactNotificationTwoTone as NotificationTwoTone, ReactNumberOutlined as NumberOutlined, ReactOllamaFilled as OllamaFilled, ReactOneToOneOutlined as OneToOneOutlined, ReactOpenAIFilled as OpenAIFilled, ReactOpenAIOutlined as OpenAIOutlined, ReactOrderedListOutlined as OrderedListOutlined, ReactPaperClipOutlined as PaperClipOutlined, ReactPartitionOutlined as PartitionOutlined, ReactPauseCircleFilled as PauseCircleFilled, ReactPauseCircleOutlined as PauseCircleOutlined, ReactPauseCircleTwoTone as PauseCircleTwoTone, ReactPauseOutlined as PauseOutlined, ReactPayCircleFilled as PayCircleFilled, ReactPayCircleOutlined as PayCircleOutlined, ReactPercentageOutlined as PercentageOutlined, ReactPerplexityFilled as PerplexityFilled, ReactPhoneFilled as PhoneFilled, ReactPhoneOutlined as PhoneOutlined, ReactPhoneTwoTone as PhoneTwoTone, ReactPicCenterOutlined as PicCenterOutlined, ReactPicLeftOutlined as PicLeftOutlined, ReactPicRightOutlined as PicRightOutlined, ReactPictureFilled as PictureFilled, ReactPictureOutlined as PictureOutlined, ReactPictureTwoTone as PictureTwoTone, ReactPieChartFilled as PieChartFilled, ReactPieChartOutlined as PieChartOutlined, ReactPieChartTwoTone as PieChartTwoTone, ReactPinterestFilled as PinterestFilled, ReactPinterestOutlined as PinterestOutlined, ReactPlayCircleFilled as PlayCircleFilled, ReactPlayCircleOutlined as PlayCircleOutlined, ReactPlayCircleTwoTone as PlayCircleTwoTone, ReactPlaySquareFilled as PlaySquareFilled, ReactPlaySquareOutlined as PlaySquareOutlined, ReactPlaySquareTwoTone as PlaySquareTwoTone, ReactPlusCircleFilled as PlusCircleFilled, ReactPlusCircleOutlined as PlusCircleOutlined, ReactPlusCircleTwoTone as PlusCircleTwoTone, ReactPlusOutlined as PlusOutlined, ReactPlusSquareFilled as PlusSquareFilled, ReactPlusSquareOutlined as PlusSquareOutlined, ReactPlusSquareTwoTone as PlusSquareTwoTone, ReactPoundCircleFilled as PoundCircleFilled, ReactPoundCircleOutlined as PoundCircleOutlined, ReactPoundCircleTwoTone as PoundCircleTwoTone, ReactPoundOutlined as PoundOutlined, ReactPoweroffOutlined as PoweroffOutlined, ReactPrinterFilled as PrinterFilled, ReactPrinterOutlined as PrinterOutlined, ReactPrinterTwoTone as PrinterTwoTone, ReactProductFilled as ProductFilled, ReactProductOutlined as ProductOutlined, ReactProfileFilled as ProfileFilled, ReactProfileOutlined as ProfileOutlined, ReactProfileTwoTone as ProfileTwoTone, ReactProjectFilled as ProjectFilled, ReactProjectOutlined as ProjectOutlined, ReactProjectTwoTone as ProjectTwoTone, ReactPropertySafetyFilled as PropertySafetyFilled, ReactPropertySafetyOutlined as PropertySafetyOutlined, ReactPropertySafetyTwoTone as PropertySafetyTwoTone, ReactPullRequestOutlined as PullRequestOutlined, ReactPushpinFilled as PushpinFilled, ReactPushpinOutlined as PushpinOutlined, ReactPushpinTwoTone as PushpinTwoTone, ReactPythonOutlined as PythonOutlined, ReactQqCircleFilled as QqCircleFilled, ReactQqOutlined as QqOutlined, ReactQqSquareFilled as QqSquareFilled, ReactQrcodeOutlined as QrcodeOutlined, ReactQuestionCircleFilled as QuestionCircleFilled, ReactQuestionCircleOutlined as QuestionCircleOutlined, ReactQuestionCircleTwoTone as QuestionCircleTwoTone, ReactQuestionOutlined as QuestionOutlined, ReactQwenFilled as QwenFilled, REACT_COMPONENT_PREFIX, ReactRadarChartOutlined as RadarChartOutlined, ReactRadiusBottomleftOutlined as RadiusBottomleftOutlined, ReactRadiusBottomrightOutlined as RadiusBottomrightOutlined, ReactRadiusSettingOutlined as RadiusSettingOutlined, ReactRadiusUpleftOutlined as RadiusUpleftOutlined, ReactRadiusUprightOutlined as RadiusUprightOutlined, ReactAccountBookFilled, ReactAccountBookOutlined, ReactAccountBookTwoTone, ReactAimOutlined, ReactAlertFilled, ReactAlertOutlined, ReactAlertTwoTone, ReactAlibabaOutlined, ReactAlignCenterOutlined, ReactAlignLeftOutlined, ReactAlignRightOutlined, ReactAlipayCircleFilled, ReactAlipayCircleOutlined, ReactAlipayOutlined, ReactAlipaySquareFilled, ReactAliwangwangFilled, ReactAliwangwangOutlined, ReactAliyunOutlined, ReactAmazonCircleFilled, ReactAmazonOutlined, ReactAmazonSquareFilled, ReactAndroidFilled, ReactAndroidOutlined, ReactAntCloudOutlined, ReactAntDesignOutlined, ReactAnthropicFilled, ReactApartmentOutlined, ReactApiFilled, ReactApiOutlined, ReactApiTwoTone, ReactAppleFilled, ReactAppleOutlined, ReactAppstoreAddOutlined, ReactAppstoreFilled, ReactAppstoreOutlined, ReactAppstoreTwoTone, ReactAreaChartOutlined, ReactArrowDownOutlined, ReactArrowLeftOutlined, ReactArrowRightOutlined, ReactArrowUpOutlined, ReactArrowsAltOutlined, ReactAudioFilled, ReactAudioMutedOutlined, ReactAudioOutlined, ReactAudioTwoTone, ReactAuditOutlined, ReactAutoComplete, ReactBackwardFilled, ReactBackwardOutlined, ReactBaiduOutlined, ReactBankFilled, ReactBankOutlined, ReactBankTwoTone, ReactBarChartOutlined, ReactBarcodeOutlined, ReactBarsOutlined, ReactBehanceCircleFilled, ReactBehanceOutlined, ReactBehanceSquareFilled, ReactBehanceSquareOutlined, ReactBellFilled, ReactBellOutlined, ReactBellTwoTone, ReactBgColorsOutlined, ReactBilibiliFilled, ReactBilibiliOutlined, ReactBlockOutlined, ReactBoldOutlined, ReactBookFilled, ReactBookOutlined, ReactBookTwoTone, ReactBorderBottomOutlined, ReactBorderHorizontalOutlined, ReactBorderInnerOutlined, ReactBorderLeftOutlined, ReactBorderOuterOutlined, ReactBorderOutlined, ReactBorderRightOutlined, ReactBorderTopOutlined, ReactBorderVerticleOutlined, ReactBorderlessTableOutlined, ReactBoxPlotFilled, ReactBoxPlotOutlined, ReactBoxPlotTwoTone, ReactBranchesOutlined, ReactBugFilled, ReactBugOutlined, ReactBugTwoTone, ReactBuildFilled, ReactBuildOutlined, ReactBuildTwoTone, ReactBulbFilled, ReactBulbOutlined, ReactBulbTwoTone, ReactButton, ReactCalculatorFilled, ReactCalculatorOutlined, ReactCalculatorTwoTone, ReactCalendarFilled, ReactCalendarOutlined, ReactCalendarTwoTone, ReactCameraFilled, ReactCameraOutlined, ReactCameraTwoTone, ReactCarFilled, ReactCarOutlined, ReactCarTwoTone, ReactCaretDownFilled, ReactCaretDownOutlined, ReactCaretLeftFilled, ReactCaretLeftOutlined, ReactCaretRightFilled, ReactCaretRightOutlined, ReactCaretUpFilled, ReactCaretUpOutlined, ReactCarryOutFilled, ReactCarryOutOutlined, ReactCarryOutTwoTone, ReactCascader, ReactCheckCircleFilled, ReactCheckCircleOutlined, ReactCheckCircleTwoTone, ReactCheckOutlined, ReactCheckSquareFilled, ReactCheckSquareOutlined, ReactCheckSquareTwoTone, ReactCheckbox, ReactChromeFilled, ReactChromeOutlined, ReactCiCircleFilled, ReactCiCircleOutlined, ReactCiCircleTwoTone, ReactCiOutlined, ReactCiTwoTone, ReactClaudeFilled, ReactClearOutlined, ReactClockCircleFilled, ReactClockCircleOutlined, ReactClockCircleTwoTone, ReactCloseCircleFilled, ReactCloseCircleOutlined, ReactCloseCircleTwoTone, ReactCloseOutlined, ReactCloseSquareFilled, ReactCloseSquareOutlined, ReactCloseSquareTwoTone, ReactCloudDownloadOutlined, ReactCloudFilled, ReactCloudOutlined, ReactCloudServerOutlined, ReactCloudSyncOutlined, ReactCloudTwoTone, ReactCloudUploadOutlined, ReactClusterOutlined, ReactCodeFilled, ReactCodeOutlined, ReactCodeSandboxCircleFilled, ReactCodeSandboxOutlined, ReactCodeSandboxSquareFilled, ReactCodeTwoTone, ReactCodepenCircleFilled, ReactCodepenCircleOutlined, ReactCodepenOutlined, ReactCodepenSquareFilled, ReactCoffeeOutlined, ReactCol, ReactCollapseMotion, ReactCollapsePanel, ReactColorPicker, ReactColumnHeightOutlined, ReactColumnWidthOutlined, ReactCommentOutlined, ReactCompassFilled, ReactCompassOutlined, ReactCompassTwoTone, ReactCompressOutlined, ReactConfigProvider, ReactConsoleSqlOutlined, ReactContactsFilled, ReactContactsOutlined, ReactContactsTwoTone, ReactContainerFilled, ReactContainerOutlined, ReactContainerTwoTone, ReactContentScaleProvider, ReactControlFilled, ReactControlOutlined, ReactControlTwoTone, ReactCopyFilled, ReactCopyOutlined, ReactCopyTwoTone, ReactCopyrightCircleFilled, ReactCopyrightCircleOutlined, ReactCopyrightCircleTwoTone, ReactCopyrightOutlined, ReactCopyrightTwoTone, ReactCreditCardFilled, ReactCreditCardOutlined, ReactCreditCardTwoTone, ReactCrownFilled, ReactCrownOutlined, ReactCrownTwoTone, ReactCustomerServiceFilled, ReactCustomerServiceOutlined, ReactCustomerServiceTwoTone, ReactDashOutlined, ReactDashboardFilled, ReactDashboardOutlined, ReactDashboardTwoTone, ReactDatabaseFilled, ReactDatabaseOutlined, ReactDatabaseTwoTone, ReactDatePicker, ReactDateRangePicker, ReactDateTimePicker, ReactDateTimeRangePicker, ReactDeepSeekFilled, ReactDeleteColumnOutlined, ReactDeleteFilled, ReactDeleteOutlined, ReactDeleteRowOutlined, ReactDeleteTwoTone, ReactDeliveredProcedureOutlined, ReactDeploymentUnitOutlined, ReactDesktopOutlined, ReactDiffFilled, ReactDiffOutlined, ReactDiffTwoTone, ReactDingdingOutlined, ReactDingtalkCircleFilled, ReactDingtalkOutlined, ReactDingtalkSquareFilled, ReactDisconnectOutlined, ReactDiscordFilled, ReactDiscordOutlined, ReactDislikeFilled, ReactDislikeOutlined, ReactDislikeTwoTone, ReactDockerOutlined, ReactDollarCircleFilled, ReactDollarCircleOutlined, ReactDollarCircleTwoTone, ReactDollarOutlined, ReactDollarTwoTone, ReactDotChartOutlined, ReactDotNetOutlined, ReactDoubleLeftOutlined, ReactDoubleRightOutlined, ReactDownCircleFilled, ReactDownCircleOutlined, ReactDownCircleTwoTone, ReactDownOutlined, ReactDownSquareFilled, ReactDownSquareOutlined, ReactDownSquareTwoTone, ReactDownloadOutlined, ReactDragOutlined, ReactDrawer, ReactDribbbleCircleFilled, ReactDribbbleOutlined, ReactDribbbleSquareFilled, ReactDribbbleSquareOutlined, ReactDropboxCircleFilled, ReactDropboxOutlined, ReactDropboxSquareFilled, ReactDropdown, ReactEditFilled, ReactEditOutlined, ReactEditTwoTone, ReactElevenLabsFilled, ReactEllipsisOutlined, ReactEmpty, ReactEnterOutlined, ReactEnvironmentFilled, ReactEnvironmentOutlined, ReactEnvironmentTwoTone, ReactEuroCircleFilled, ReactEuroCircleOutlined, ReactEuroCircleTwoTone, ReactEuroOutlined, ReactEuroTwoTone, ReactExceptionOutlined, ReactExclamationCircleFilled, ReactExclamationCircleOutlined, ReactExclamationCircleTwoTone, ReactExclamationOutlined, ReactExpandAltOutlined, ReactExpandOutlined, ReactExperimentFilled, ReactExperimentOutlined, ReactExperimentTwoTone, ReactExportOutlined, ReactEyeFilled, ReactEyeInvisibleFilled, ReactEyeInvisibleOutlined, ReactEyeInvisibleTwoTone, ReactEyeOutlined, ReactEyeTwoTone, ReactFacebookFilled, ReactFacebookOutlined, ReactFallOutlined, ReactFastBackwardFilled, ReactFastBackwardOutlined, ReactFastForwardFilled, ReactFastForwardOutlined, ReactFieldBinaryOutlined, ReactFieldNumberOutlined, ReactFieldStringOutlined, ReactFieldTimeOutlined, ReactFileAddFilled, ReactFileAddOutlined, ReactFileAddTwoTone, ReactFileDoneOutlined, ReactFileExcelFilled, ReactFileExcelOutlined, ReactFileExcelTwoTone, ReactFileExclamationFilled, ReactFileExclamationOutlined, ReactFileExclamationTwoTone, ReactFileFilled, ReactFileGifOutlined, ReactFileImageFilled, ReactFileImageOutlined, ReactFileImageTwoTone, ReactFileJpgOutlined, ReactFileMarkdownFilled, ReactFileMarkdownOutlined, ReactFileMarkdownTwoTone, ReactFileOutlined, ReactFilePdfFilled, ReactFilePdfOutlined, ReactFilePdfTwoTone, ReactFilePptFilled, ReactFilePptOutlined, ReactFilePptTwoTone, ReactFileProtectOutlined, ReactFileSearchOutlined, ReactFileSyncOutlined, ReactFileTextFilled, ReactFileTextOutlined, ReactFileTextTwoTone, ReactFileTwoTone, ReactFileUnknownFilled, ReactFileUnknownOutlined, ReactFileUnknownTwoTone, ReactFileWordFilled, ReactFileWordOutlined, ReactFileWordTwoTone, ReactFileZipFilled, ReactFileZipOutlined, ReactFileZipTwoTone, ReactFilterFilled, ReactFilterOutlined, ReactFilterPanel, ReactFilterTwoTone, ReactFireFilled, ReactFireOutlined, ReactFireTwoTone, ReactFlagFilled, ReactFlagOutlined, ReactFlagTwoTone, ReactFlex, ReactFolderAddFilled, ReactFolderAddOutlined, ReactFolderAddTwoTone, ReactFolderFilled, ReactFolderOpenFilled, ReactFolderOpenOutlined, ReactFolderOpenTwoTone, ReactFolderOutlined, ReactFolderTwoTone, ReactFolderViewOutlined, ReactFontColorsOutlined, ReactFontSizeOutlined, ReactForkOutlined, ReactForm, ReactFormItem, ReactFormOutlined, ReactFormatPainterFilled, ReactFormatPainterOutlined, ReactForwardFilled, ReactForwardOutlined, ReactFrownFilled, ReactFrownOutlined, ReactFrownTwoTone, ReactFullscreenExitOutlined, ReactFullscreenOutlined, ReactFunctionOutlined, ReactFundFilled, ReactFundOutlined, ReactFundProjectionScreenOutlined, ReactFundTwoTone, ReactFundViewOutlined, ReactFunnelPlotFilled, ReactFunnelPlotOutlined, ReactFunnelPlotTwoTone, ReactGatewayOutlined, ReactGeminiFilled, ReactGifOutlined, ReactGiftFilled, ReactGiftOutlined, ReactGiftTwoTone, ReactGithubFilled, ReactGithubOutlined, ReactGitlabFilled, ReactGitlabOutlined, ReactGlobalOutlined, ReactGoldFilled, ReactGoldOutlined, ReactGoldTwoTone, ReactGoldenFilled, ReactGoogleCircleFilled, ReactGoogleOutlined, ReactGooglePlusCircleFilled, ReactGooglePlusOutlined, ReactGooglePlusSquareFilled, ReactGoogleSquareFilled, ReactGroupOutlined, ReactHarmonyOSOutlined, ReactHddFilled, ReactHddOutlined, ReactHddTwoTone, ReactHeartFilled, ReactHeartOutlined, ReactHeartTwoTone, ReactHeatMapOutlined, ReactHighlightFilled, ReactHighlightOutlined, ReactHighlightTwoTone, ReactHistoryOutlined, ReactHolderOutlined, ReactHomeFilled, ReactHomeOutlined, ReactHomeTwoTone, ReactHourglassFilled, ReactHourglassOutlined, ReactHourglassTwoTone, ReactHtml5Filled, ReactHtml5Outlined, ReactHtml5TwoTone, ReactHuggingFaceFilled, ReactIcon, ReactIdcardFilled, ReactIdcardOutlined, ReactIdcardTwoTone, ReactIeCircleFilled, ReactIeOutlined, ReactIeSquareFilled, ReactImagePreview, ReactImportOutlined, ReactInboxOutlined, ReactInfoCircleFilled, ReactInfoCircleOutlined, ReactInfoCircleTwoTone, ReactInfoOutlined, ReactInput, ReactInputNumber, ReactInputRange, ReactInsertRowAboveOutlined, ReactInsertRowBelowOutlined, ReactInsertRowLeftOutlined, ReactInsertRowRightOutlined, ReactInstagramFilled, ReactInstagramOutlined, ReactInsuranceFilled, ReactInsuranceOutlined, ReactInsuranceTwoTone, ReactInteractionFilled, ReactInteractionOutlined, ReactInteractionTwoTone, ReactIssuesCloseOutlined, ReactItalicOutlined, ReactJavaOutlined, ReactJavaScriptOutlined, ReactKeyOutlined, ReactKubernetesOutlined, ReactLaptopOutlined, ReactLayoutFilled, ReactLayoutOutlined, ReactLayoutTwoTone, ReactLeftCircleFilled, ReactLeftCircleOutlined, ReactLeftCircleTwoTone, ReactLeftOutlined, ReactLeftSquareFilled, ReactLeftSquareOutlined, ReactLeftSquareTwoTone, ReactLikeFilled, ReactLikeOutlined, ReactLikeTwoTone, ReactLineChartOutlined, ReactLineHeightOutlined, ReactLineOutlined, ReactLinkOutlined, ReactLinkedinFilled, ReactLinkedinOutlined, ReactLinuxOutlined, ReactLoading3QuartersOutlined, ReactLoadingOutlined, ReactLockFilled, ReactLockOutlined, ReactLockTwoTone, ReactLoginOutlined, ReactLogoutOutlined, ReactMacCommandFilled, ReactMacCommandOutlined, ReactMailFilled, ReactMailOutlined, ReactMailTwoTone, ReactManOutlined, ReactMastodonFilled, ReactMedicineBoxFilled, ReactMedicineBoxOutlined, ReactMedicineBoxTwoTone, ReactMediumCircleFilled, ReactMediumOutlined, ReactMediumSquareFilled, ReactMediumWorkmarkOutlined, ReactMehFilled, ReactMehOutlined, ReactMehTwoTone, ReactMenuFoldOutlined, ReactMenuOutlined, ReactMenuUnfoldOutlined, ReactMergeCellsOutlined, ReactMergeFilled, ReactMergeOutlined, ReactMessageFilled, ReactMessageOutlined, ReactMessageTwoTone, ReactMetaFilled, ReactMinusCircleFilled, ReactMinusCircleOutlined, ReactMinusCircleTwoTone, ReactMinusOutlined, ReactMinusSquareFilled, ReactMinusSquareOutlined, ReactMinusSquareTwoTone, ReactMistralFilled, ReactMobileFilled, ReactMobileOutlined, ReactMobileTwoTone, ReactModal, ReactMoneyCollectFilled, ReactMoneyCollectOutlined, ReactMoneyCollectTwoTone, ReactMonitorOutlined, ReactMonthPicker, ReactMoonFilled, ReactMoonOutlined, ReactMoreOutlined, ReactMutedFilled, ReactMutedOutlined, ReactNetflixFilled, ReactNodeCollapseOutlined, ReactNodeExpandOutlined, ReactNodeIndexOutlined, ReactNotificationFilled, ReactNotificationOutlined, ReactNotificationTwoTone, ReactNumberOutlined, ReactOllamaFilled, ReactOneToOneOutlined, ReactOpenAIFilled, ReactOpenAIOutlined, ReactOrderedListOutlined, ReactPagination, ReactPaperClipOutlined, ReactPartitionOutlined, ReactPauseCircleFilled, ReactPauseCircleOutlined, ReactPauseCircleTwoTone, ReactPauseOutlined, ReactPayCircleFilled, ReactPayCircleOutlined, ReactPercentageOutlined, ReactPerplexityFilled, ReactPhoneFilled, ReactPhoneOutlined, ReactPhoneTwoTone, ReactPicCenterOutlined, ReactPicLeftOutlined, ReactPicRightOutlined, ReactPictureFilled, ReactPictureOutlined, ReactPictureTwoTone, ReactPieChartFilled, ReactPieChartOutlined, ReactPieChartTwoTone, ReactPinterestFilled, ReactPinterestOutlined, ReactPlayCircleFilled, ReactPlayCircleOutlined, ReactPlayCircleTwoTone, ReactPlaySquareFilled, ReactPlaySquareOutlined, ReactPlaySquareTwoTone, ReactPlusCircleFilled, ReactPlusCircleOutlined, ReactPlusCircleTwoTone, ReactPlusOutlined, ReactPlusSquareFilled, ReactPlusSquareOutlined, ReactPlusSquareTwoTone, ReactPopconfirm, ReactPopup, ReactPoundCircleFilled, ReactPoundCircleOutlined, ReactPoundCircleTwoTone, ReactPoundOutlined, ReactPoweroffOutlined, ReactPrinterFilled, ReactPrinterOutlined, ReactPrinterTwoTone, ReactProductFilled, ReactProductOutlined, ReactProfileFilled, ReactProfileOutlined, ReactProfileTwoTone, ReactProgress, ReactProjectFilled, ReactProjectOutlined, ReactProjectTwoTone, ReactPropertySafetyFilled, ReactPropertySafetyOutlined, ReactPropertySafetyTwoTone, ReactPullRequestOutlined, ReactPushpinFilled, ReactPushpinOutlined, ReactPushpinTwoTone, ReactPythonOutlined, ReactQqCircleFilled, ReactQqOutlined, ReactQqSquareFilled, ReactQrcodeOutlined, ReactQuarterPicker, ReactQuestionCircleFilled, ReactQuestionCircleOutlined, ReactQuestionCircleTwoTone, ReactQuestionOutlined, ReactQwenFilled, ReactRadarChartOutlined, ReactRadio, ReactRadiusBottomleftOutlined, ReactRadiusBottomrightOutlined, ReactRadiusSettingOutlined, ReactRadiusUpleftOutlined, ReactRadiusUprightOutlined, ReactReadFilled, ReactReadOutlined, ReactReconciliationFilled, ReactReconciliationOutlined, ReactReconciliationTwoTone, ReactRedEnvelopeFilled, ReactRedEnvelopeOutlined, ReactRedEnvelopeTwoTone, ReactRedditCircleFilled, ReactRedditOutlined, ReactRedditSquareFilled, ReactRedoOutlined, ReactReloadOutlined, ReactReplicateFilled, ReactResizablePanels, ReactRestFilled, ReactRestOutlined, ReactRestTwoTone, ReactRetweetOutlined, ReactRichText, ReactRightCircleFilled, ReactRightCircleOutlined, ReactRightCircleTwoTone, ReactRightOutlined, ReactRightSquareFilled, ReactRightSquareOutlined, ReactRightSquareTwoTone, ReactRiseOutlined, ReactRobotFilled, ReactRobotOutlined, ReactRocketFilled, ReactRocketOutlined, ReactRocketTwoTone, ReactRollbackOutlined, ReactRotateLeftOutlined, ReactRotateRightOutlined, ReactRow, ReactRubyOutlined, ReactSafetyCertificateFilled, ReactSafetyCertificateOutlined, ReactSafetyCertificateTwoTone, ReactSafetyOutlined, ReactSaveFilled, ReactSaveOutlined, ReactSaveTwoTone, ReactScanOutlined, ReactScheduleFilled, ReactScheduleOutlined, ReactScheduleTwoTone, ReactScissorOutlined, ReactScrollbarPositionDialog, ReactScrollbarSettingsDialog, ReactSearchOutlined, ReactSecurityScanFilled, ReactSecurityScanOutlined, ReactSecurityScanTwoTone, ReactSelect, ReactSelectOutlined, ReactSendOutlined, ReactSettingFilled, ReactSettingOutlined, ReactSettingTwoTone, ReactShakeOutlined, ReactShareAltOutlined, ReactShopFilled, ReactShopOutlined, ReactShopTwoTone, ReactShoppingCartOutlined, ReactShoppingFilled, ReactShoppingOutlined, ReactShoppingTwoTone, ReactShrinkOutlined, ReactSignalFilled, ReactSignatureFilled, ReactSignatureOutlined, ReactSisternodeOutlined, ReactSketchCircleFilled, ReactSketchOutlined, ReactSketchSquareFilled, ReactSkinFilled, ReactSkinOutlined, ReactSkinTwoTone, ReactSkypeFilled, ReactSkypeOutlined, ReactSlackCircleFilled, ReactSlackOutlined, ReactSlackSquareFilled, ReactSlackSquareOutlined, ReactSlidersFilled, ReactSlidersOutlined, ReactSlidersTwoTone, ReactSmallDashOutlined, ReactSmileFilled, ReactSmileOutlined, ReactSmileTwoTone, ReactSnapchatFilled, ReactSnippetsFilled, ReactSnippetsOutlined, ReactSnippetsTwoTone, ReactSolutionOutlined, ReactSortAscendingOutlined, ReactSortDescendingOutlined, ReactSortableList, ReactSoundFilled, ReactSoundOutlined, ReactSoundTwoTone, ReactSplitCellsOutlined, ReactSpotifyFilled, ReactSpotifyOutlined, ReactStarFilled, ReactStarOutlined, ReactStarTwoTone, ReactStepBackwardFilled, ReactStepBackwardOutlined, ReactStepForwardFilled, ReactStepForwardOutlined, ReactStockOutlined, ReactStopFilled, ReactStopOutlined, ReactStopTwoTone, ReactStrikethroughOutlined, ReactSubnodeOutlined, ReactSunFilled, ReactSunOutlined, ReactSwapLeftOutlined, ReactSwapOutlined, ReactSwapRightOutlined, ReactSwitcherFilled, ReactSwitcherOutlined, ReactSwitcherTwoTone, ReactSyncOutlined, ReactTableOutlined, ReactTabletFilled, ReactTabletOutlined, ReactTabletTwoTone, ReactTag, ReactTagFilled, ReactTagOutlined, ReactTagTwoTone, ReactTagsFilled, ReactTagsOutlined, ReactTagsTwoTone, ReactTaobaoCircleFilled, ReactTaobaoCircleOutlined, ReactTaobaoOutlined, ReactTaobaoSquareFilled, ReactTeamOutlined, ReactTelegramFilled, ReactTextArea, ReactThreadsFilled, ReactThunderboltFilled, ReactThunderboltOutlined, ReactThunderboltTwoTone, ReactTikTokFilled, ReactTikTokOutlined, ReactTimePicker, ReactTimeRangePicker, ReactToTopOutlined, ReactToolFilled, ReactToolOutlined, ReactToolTwoTone, ReactTooltip, ReactTour, ReactTrademarkCircleFilled, ReactTrademarkCircleOutlined, ReactTrademarkCircleTwoTone, ReactTrademarkOutlined, ReactTransactionOutlined, ReactTransition, ReactTranslationOutlined, ReactTreeSelect, ReactTrophyFilled, ReactTrophyOutlined, ReactTrophyTwoTone, ReactTruckFilled, ReactTruckOutlined, ReactTwitchFilled, ReactTwitchOutlined, ReactTwitterCircleFilled, ReactTwitterOutlined, ReactTwitterSquareFilled, ReactUnderlineOutlined, ReactUndoOutlined, ReactUngroupOutlined, ReactUnlockFilled, ReactUnlockOutlined, ReactUnlockTwoTone, ReactUnorderedListOutlined, ReactUpCircleFilled, ReactUpCircleOutlined, ReactUpCircleTwoTone, ReactUpOutlined, ReactUpSquareFilled, ReactUpSquareOutlined, ReactUpSquareTwoTone, ReactUploadOutlined, ReactUsbFilled, ReactUsbOutlined, ReactUsbTwoTone, ReactUserAddOutlined, ReactUserDeleteOutlined, ReactUserOutlined, ReactUserSwitchOutlined, ReactUsergroupAddOutlined, ReactUsergroupDeleteOutlined, ReactVerifiedOutlined, ReactVerticalAlignBottomOutlined, ReactVerticalAlignMiddleOutlined, ReactVerticalAlignTopOutlined, ReactVerticalLeftOutlined, ReactVerticalRightOutlined, ReactVideoCameraAddOutlined, ReactVideoCameraFilled, ReactVideoCameraOutlined, ReactVideoCameraTwoTone, ReactVirtualList, ReactWalletFilled, ReactWalletOutlined, ReactWalletTwoTone, ReactWarningFilled, ReactWarningOutlined, ReactWarningTwoTone, ReactWaterfall, ReactWechatFilled, ReactWechatOutlined, ReactWechatWorkFilled, ReactWechatWorkOutlined, ReactWeiboCircleFilled, ReactWeiboCircleOutlined, ReactWeiboOutlined, ReactWeiboSquareFilled, ReactWeiboSquareOutlined, ReactWhatsAppOutlined, ReactWifiOutlined, ReactWindowsFilled, ReactWindowsOutlined, ReactWomanOutlined, ReactXFilled, ReactXOutlined, ReactYahooFilled, ReactYahooOutlined, ReactYearPicker, ReactYoutubeFilled, ReactYoutubeOutlined, ReactYuqueFilled, ReactYuqueOutlined, ReactZhihuCircleFilled, ReactZhihuOutlined, ReactZhihuSquareFilled, ReactZoomInOutlined, ReactZoomOutOutlined, ReactReadFilled as ReadFilled, ReactReadOutlined as ReadOutlined, ReactReconciliationFilled as ReconciliationFilled, ReactReconciliationOutlined as ReconciliationOutlined, ReactReconciliationTwoTone as ReconciliationTwoTone, ReactRedEnvelopeFilled as RedEnvelopeFilled, ReactRedEnvelopeOutlined as RedEnvelopeOutlined, ReactRedEnvelopeTwoTone as RedEnvelopeTwoTone, ReactRedditCircleFilled as RedditCircleFilled, ReactRedditOutlined as RedditOutlined, ReactRedditSquareFilled as RedditSquareFilled, ReactRedoOutlined as RedoOutlined, ReactReloadOutlined as ReloadOutlined, ReactReplicateFilled as ReplicateFilled, ReactRestFilled as RestFilled, ReactRestOutlined as RestOutlined, ReactRestTwoTone as RestTwoTone, ReactRetweetOutlined as RetweetOutlined, ReactRightCircleFilled as RightCircleFilled, ReactRightCircleOutlined as RightCircleOutlined, ReactRightCircleTwoTone as RightCircleTwoTone, ReactRightOutlined as RightOutlined, ReactRightSquareFilled as RightSquareFilled, ReactRightSquareOutlined as RightSquareOutlined, ReactRightSquareTwoTone as RightSquareTwoTone, ReactRiseOutlined as RiseOutlined, ReactRobotFilled as RobotFilled, ReactRobotOutlined as RobotOutlined, ReactRocketFilled as RocketFilled, ReactRocketOutlined as RocketOutlined, ReactRocketTwoTone as RocketTwoTone, ReactRollbackOutlined as RollbackOutlined, ReactRotateLeftOutlined as RotateLeftOutlined, ReactRotateRightOutlined as RotateRightOutlined, ReactRubyOutlined as RubyOutlined, ReactSafetyCertificateFilled as SafetyCertificateFilled, ReactSafetyCertificateOutlined as SafetyCertificateOutlined, ReactSafetyCertificateTwoTone as SafetyCertificateTwoTone, ReactSafetyOutlined as SafetyOutlined, ReactSaveFilled as SaveFilled, ReactSaveOutlined as SaveOutlined, ReactSaveTwoTone as SaveTwoTone, ReactScanOutlined as ScanOutlined, ReactScheduleFilled as ScheduleFilled, ReactScheduleOutlined as ScheduleOutlined, ReactScheduleTwoTone as ScheduleTwoTone, ReactScissorOutlined as ScissorOutlined, ReactSearchOutlined as SearchOutlined, ReactSecurityScanFilled as SecurityScanFilled, ReactSecurityScanOutlined as SecurityScanOutlined, ReactSecurityScanTwoTone as SecurityScanTwoTone, ReactSelectOutlined as SelectOutlined, ReactSendOutlined as SendOutlined, ReactSettingFilled as SettingFilled, ReactSettingOutlined as SettingOutlined, ReactSettingTwoTone as SettingTwoTone, ReactShakeOutlined as ShakeOutlined, ReactShareAltOutlined as ShareAltOutlined, ReactShopFilled as ShopFilled, ReactShopOutlined as ShopOutlined, ReactShopTwoTone as ShopTwoTone, ReactShoppingCartOutlined as ShoppingCartOutlined, ReactShoppingFilled as ShoppingFilled, ReactShoppingOutlined as ShoppingOutlined, ReactShoppingTwoTone as ShoppingTwoTone, ReactShrinkOutlined as ShrinkOutlined, ReactSignalFilled as SignalFilled, ReactSignatureFilled as SignatureFilled, ReactSignatureOutlined as SignatureOutlined, ReactSisternodeOutlined as SisternodeOutlined, ReactSketchCircleFilled as SketchCircleFilled, ReactSketchOutlined as SketchOutlined, ReactSketchSquareFilled as SketchSquareFilled, ReactSkinFilled as SkinFilled, ReactSkinOutlined as SkinOutlined, ReactSkinTwoTone as SkinTwoTone, ReactSkypeFilled as SkypeFilled, ReactSkypeOutlined as SkypeOutlined, ReactSlackCircleFilled as SlackCircleFilled, ReactSlackOutlined as SlackOutlined, ReactSlackSquareFilled as SlackSquareFilled, ReactSlackSquareOutlined as SlackSquareOutlined, ReactSlidersFilled as SlidersFilled, ReactSlidersOutlined as SlidersOutlined, ReactSlidersTwoTone as SlidersTwoTone, ReactSmallDashOutlined as SmallDashOutlined, ReactSmileFilled as SmileFilled, ReactSmileOutlined as SmileOutlined, ReactSmileTwoTone as SmileTwoTone, ReactSnapchatFilled as SnapchatFilled, ReactSnippetsFilled as SnippetsFilled, ReactSnippetsOutlined as SnippetsOutlined, ReactSnippetsTwoTone as SnippetsTwoTone, ReactSolutionOutlined as SolutionOutlined, ReactSortAscendingOutlined as SortAscendingOutlined, ReactSortDescendingOutlined as SortDescendingOutlined, ReactSoundFilled as SoundFilled, ReactSoundOutlined as SoundOutlined, ReactSoundTwoTone as SoundTwoTone, ReactSplitCellsOutlined as SplitCellsOutlined, ReactSpotifyFilled as SpotifyFilled, ReactSpotifyOutlined as SpotifyOutlined, ReactStarFilled as StarFilled, ReactStarOutlined as StarOutlined, ReactStarTwoTone as StarTwoTone, ReactStepBackwardFilled as StepBackwardFilled, ReactStepBackwardOutlined as StepBackwardOutlined, ReactStepForwardFilled as StepForwardFilled, ReactStepForwardOutlined as StepForwardOutlined, ReactStockOutlined as StockOutlined, ReactStopFilled as StopFilled, ReactStopOutlined as StopOutlined, ReactStopTwoTone as StopTwoTone, ReactStrikethroughOutlined as StrikethroughOutlined, ReactSubnodeOutlined as SubnodeOutlined, ReactSunFilled as SunFilled, ReactSunOutlined as SunOutlined, ReactSwapLeftOutlined as SwapLeftOutlined, ReactSwapOutlined as SwapOutlined, ReactSwapRightOutlined as SwapRightOutlined, ReactSwitcherFilled as SwitcherFilled, ReactSwitcherOutlined as SwitcherOutlined, ReactSwitcherTwoTone as SwitcherTwoTone, ReactSyncOutlined as SyncOutlined, ReactTableOutlined as TableOutlined, ReactTabletFilled as TabletFilled, ReactTabletOutlined as TabletOutlined, ReactTabletTwoTone as TabletTwoTone, ReactTagFilled as TagFilled, ReactTagOutlined as TagOutlined, ReactTagTwoTone as TagTwoTone, ReactTagsFilled as TagsFilled, ReactTagsOutlined as TagsOutlined, ReactTagsTwoTone as TagsTwoTone, ReactTaobaoCircleFilled as TaobaoCircleFilled, ReactTaobaoCircleOutlined as TaobaoCircleOutlined, ReactTaobaoOutlined as TaobaoOutlined, ReactTaobaoSquareFilled as TaobaoSquareFilled, ReactTeamOutlined as TeamOutlined, ReactTelegramFilled as TelegramFilled, ReactThreadsFilled as ThreadsFilled, ReactThunderboltFilled as ThunderboltFilled, ReactThunderboltOutlined as ThunderboltOutlined, ReactThunderboltTwoTone as ThunderboltTwoTone, ReactTikTokFilled as TikTokFilled, ReactTikTokOutlined as TikTokOutlined, ReactToTopOutlined as ToTopOutlined, ReactToolFilled as ToolFilled, ReactToolOutlined as ToolOutlined, ReactToolTwoTone as ToolTwoTone, ReactTrademarkCircleFilled as TrademarkCircleFilled, ReactTrademarkCircleOutlined as TrademarkCircleOutlined, ReactTrademarkCircleTwoTone as TrademarkCircleTwoTone, ReactTrademarkOutlined as TrademarkOutlined, ReactTransactionOutlined as TransactionOutlined, ReactTranslationOutlined as TranslationOutlined, ReactTrophyFilled as TrophyFilled, ReactTrophyOutlined as TrophyOutlined, ReactTrophyTwoTone as TrophyTwoTone, ReactTruckFilled as TruckFilled, ReactTruckOutlined as TruckOutlined, ReactTwitchFilled as TwitchFilled, ReactTwitchOutlined as TwitchOutlined, ReactTwitterCircleFilled as TwitterCircleFilled, ReactTwitterOutlined as TwitterOutlined, ReactTwitterSquareFilled as TwitterSquareFilled, ReactUnderlineOutlined as UnderlineOutlined, ReactUndoOutlined as UndoOutlined, ReactUngroupOutlined as UngroupOutlined, ReactUnlockFilled as UnlockFilled, ReactUnlockOutlined as UnlockOutlined, ReactUnlockTwoTone as UnlockTwoTone, ReactUnorderedListOutlined as UnorderedListOutlined, ReactUpCircleFilled as UpCircleFilled, ReactUpCircleOutlined as UpCircleOutlined, ReactUpCircleTwoTone as UpCircleTwoTone, ReactUpOutlined as UpOutlined, ReactUpSquareFilled as UpSquareFilled, ReactUpSquareOutlined as UpSquareOutlined, ReactUpSquareTwoTone as UpSquareTwoTone, ReactUploadOutlined as UploadOutlined, ReactUsbFilled as UsbFilled, ReactUsbOutlined as UsbOutlined, ReactUsbTwoTone as UsbTwoTone, ReactUserAddOutlined as UserAddOutlined, ReactUserDeleteOutlined as UserDeleteOutlined, ReactUserOutlined as UserOutlined, ReactUserSwitchOutlined as UserSwitchOutlined, ReactUsergroupAddOutlined as UsergroupAddOutlined, ReactUsergroupDeleteOutlined as UsergroupDeleteOutlined, ReactVerifiedOutlined as VerifiedOutlined, ReactVerticalAlignBottomOutlined as VerticalAlignBottomOutlined, ReactVerticalAlignMiddleOutlined as VerticalAlignMiddleOutlined, ReactVerticalAlignTopOutlined as VerticalAlignTopOutlined, ReactVerticalLeftOutlined as VerticalLeftOutlined, ReactVerticalRightOutlined as VerticalRightOutlined, ReactVideoCameraAddOutlined as VideoCameraAddOutlined, ReactVideoCameraFilled as VideoCameraFilled, ReactVideoCameraOutlined as VideoCameraOutlined, ReactVideoCameraTwoTone as VideoCameraTwoTone, ReactWalletFilled as WalletFilled, ReactWalletOutlined as WalletOutlined, ReactWalletTwoTone as WalletTwoTone, ReactWarningFilled as WarningFilled, ReactWarningOutlined as WarningOutlined, ReactWarningTwoTone as WarningTwoTone, ReactWechatFilled as WechatFilled, ReactWechatOutlined as WechatOutlined, ReactWechatWorkFilled as WechatWorkFilled, ReactWechatWorkOutlined as WechatWorkOutlined, ReactWeiboCircleFilled as WeiboCircleFilled, ReactWeiboCircleOutlined as WeiboCircleOutlined, ReactWeiboOutlined as WeiboOutlined, ReactWeiboSquareFilled as WeiboSquareFilled, ReactWeiboSquareOutlined as WeiboSquareOutlined, ReactWhatsAppOutlined as WhatsAppOutlined, ReactWifiOutlined as WifiOutlined, ReactWindowsFilled as WindowsFilled, ReactWindowsOutlined as WindowsOutlined, ReactWomanOutlined as WomanOutlined, ReactXFilled as XFilled, ReactXOutlined as XOutlined, ReactYahooFilled as YahooFilled, ReactYahooOutlined as YahooOutlined, ReactYoutubeFilled as YoutubeFilled, ReactYoutubeOutlined as YoutubeOutlined, ReactYuqueFilled as YuqueFilled, ReactYuqueOutlined as YuqueOutlined, ReactZhihuCircleFilled as ZhihuCircleFilled, ReactZhihuOutlined as ZhihuOutlined, ReactZhihuSquareFilled as ZhihuSquareFilled, ReactZoomInOutlined as ZoomInOutlined, ReactZoomOutOutlined as ZoomOutOutlined, getSharedScrollbarSettings, normalizeRichTextRuns, reactIconNames, reactMessage, replaceRichTextRange, resolveClosestSortableItem, resolveNextSortableOrder, resolveReactScrollbarMode, resolveResizablePanelSizes, richTextPlainText, setSharedScrollbarSettings, styleRichTextRange, subscribeSharedScrollbarSettings, useReactConfig, useReactConfigStyle, useReactContentScale, useReactForm, useReactFormWatch, useReactMessage, useReactTransition };
|