@bigtablet/design-system 2.5.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +113 -218
- package/dist/index.css +9240 -646
- package/dist/index.d.ts +976 -78
- package/dist/index.js +1890 -1018
- package/dist/styles/a11y/_index.scss +64 -4
- package/dist/styles/border-width/_index.scss +1 -0
- package/dist/styles/colors/_index.scss +238 -38
- package/dist/styles/elevation/_index.scss +36 -5
- package/dist/styles/motion/_index.scss +19 -4
- package/dist/styles/skeleton/_index.scss +5 -3
- package/dist/styles/typography/_index.scss +71 -0
- package/dist/vanilla/bigtablet.min.css +1 -1
- package/package.json +29 -28
package/dist/index.js
CHANGED
|
@@ -1,17 +1,951 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import './index.css';
|
|
3
|
-
import * as
|
|
4
|
-
import { createContext,
|
|
3
|
+
import * as React17 from 'react';
|
|
4
|
+
import { createContext, useRef, useState, useLayoutEffect, useId, useEffect, useContext, useCallback, useMemo, Fragment } from 'react';
|
|
5
|
+
import { useSpring, animated } from '@react-spring/web';
|
|
6
|
+
import { ChevronDown, Globe, ChevronRight, ChevronLeft, Check, Image, X, XCircle, AlertTriangle, CheckCircle2, Info, Bell } from 'lucide-react';
|
|
7
|
+
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
5
8
|
import { createPortal } from 'react-dom';
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
|
|
10
|
+
// src/utils/cn.ts
|
|
11
|
+
var cn = (...classes) => {
|
|
12
|
+
const classNames = [];
|
|
13
|
+
for (const item of classes) {
|
|
14
|
+
if (!item) continue;
|
|
15
|
+
if (typeof item === "string" || typeof item === "number") {
|
|
16
|
+
classNames.push(String(item));
|
|
17
|
+
} else if (Array.isArray(item)) {
|
|
18
|
+
const nested = cn(...item);
|
|
19
|
+
if (nested) {
|
|
20
|
+
classNames.push(nested);
|
|
21
|
+
}
|
|
22
|
+
} else if (typeof item === "object") {
|
|
23
|
+
for (const key in item) {
|
|
24
|
+
if (Object.hasOwn(item, key) && item[key]) {
|
|
25
|
+
classNames.push(key);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return classNames.join(" ");
|
|
31
|
+
};
|
|
32
|
+
var FOCUSABLE_SELECTORS = [
|
|
33
|
+
"a[href]",
|
|
34
|
+
"button:not([disabled])",
|
|
35
|
+
"input:not([disabled])",
|
|
36
|
+
"select:not([disabled])",
|
|
37
|
+
"textarea:not([disabled])",
|
|
38
|
+
'[tabindex]:not([tabindex="-1"])'
|
|
39
|
+
].join(", ");
|
|
40
|
+
function useFocusTrap(containerRef, isActive) {
|
|
41
|
+
const previousActiveElement = React17.useRef(null);
|
|
42
|
+
React17.useEffect(() => {
|
|
43
|
+
if (!isActive) return;
|
|
44
|
+
const container = containerRef.current;
|
|
45
|
+
if (!container) return;
|
|
46
|
+
previousActiveElement.current = document.activeElement;
|
|
47
|
+
const getFocusableElements = () => {
|
|
48
|
+
return container.querySelectorAll(FOCUSABLE_SELECTORS);
|
|
49
|
+
};
|
|
50
|
+
let wasTabIndexAdded = false;
|
|
51
|
+
const focusableElements = getFocusableElements();
|
|
52
|
+
if (focusableElements.length > 0) {
|
|
53
|
+
focusableElements[0].focus();
|
|
54
|
+
} else {
|
|
55
|
+
container.setAttribute("tabindex", "-1");
|
|
56
|
+
wasTabIndexAdded = true;
|
|
57
|
+
container.focus();
|
|
58
|
+
}
|
|
59
|
+
const handleKeyDown = (e) => {
|
|
60
|
+
if (e.key !== "Tab") return;
|
|
61
|
+
const focusableElements2 = getFocusableElements();
|
|
62
|
+
if (focusableElements2.length === 0) {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const firstElement = focusableElements2[0];
|
|
67
|
+
const lastElement = focusableElements2[focusableElements2.length - 1];
|
|
68
|
+
if (e.shiftKey) {
|
|
69
|
+
if (document.activeElement === firstElement) {
|
|
70
|
+
e.preventDefault();
|
|
71
|
+
lastElement.focus();
|
|
72
|
+
}
|
|
73
|
+
} else {
|
|
74
|
+
if (document.activeElement === lastElement) {
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
firstElement.focus();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
81
|
+
return () => {
|
|
82
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
83
|
+
if (wasTabIndexAdded) {
|
|
84
|
+
container.removeAttribute("tabindex");
|
|
85
|
+
}
|
|
86
|
+
previousActiveElement.current?.focus();
|
|
87
|
+
};
|
|
88
|
+
}, [isActive, containerRef]);
|
|
89
|
+
}
|
|
90
|
+
function useSpringHover({
|
|
91
|
+
scale = 1.02,
|
|
92
|
+
lift = -2
|
|
93
|
+
} = {}) {
|
|
94
|
+
const [hovered, setHovered] = React17.useState(false);
|
|
95
|
+
const style = useSpring({
|
|
96
|
+
transform: hovered ? `translateY(${lift}px) scale(${scale})` : "translateY(0px) scale(1)",
|
|
97
|
+
config: { tension: 320, friction: 22 }
|
|
98
|
+
});
|
|
99
|
+
const bind = {
|
|
100
|
+
onMouseEnter: () => setHovered(true),
|
|
101
|
+
onMouseLeave: () => setHovered(false),
|
|
102
|
+
onFocus: () => setHovered(true),
|
|
103
|
+
onBlur: () => setHovered(false)
|
|
104
|
+
};
|
|
105
|
+
return { style, bind };
|
|
106
|
+
}
|
|
107
|
+
function useSpringPresence({
|
|
108
|
+
visible,
|
|
109
|
+
from = "translateY(8px)",
|
|
110
|
+
onExitComplete
|
|
111
|
+
}) {
|
|
112
|
+
return useSpring({
|
|
113
|
+
from: { opacity: 0, transform: from },
|
|
114
|
+
to: {
|
|
115
|
+
opacity: visible ? 1 : 0,
|
|
116
|
+
transform: visible ? "translateY(0px)" : from
|
|
117
|
+
},
|
|
118
|
+
config: {
|
|
119
|
+
tension: 280,
|
|
120
|
+
// Vercel 식 부드러운 spring
|
|
121
|
+
friction: 28,
|
|
122
|
+
clamp: !visible
|
|
123
|
+
// 사라질 땐 진동 없이 빠르게
|
|
124
|
+
},
|
|
125
|
+
onRest: (result) => {
|
|
126
|
+
if (!visible && result.finished && onExitComplete) {
|
|
127
|
+
onExitComplete();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
var Accordion = ({
|
|
133
|
+
items,
|
|
134
|
+
multiple = false,
|
|
135
|
+
defaultOpenKeys = [],
|
|
136
|
+
openKeys: controlledKeys,
|
|
137
|
+
onChange,
|
|
138
|
+
className,
|
|
139
|
+
...props
|
|
140
|
+
}) => {
|
|
141
|
+
const isControlled = controlledKeys !== void 0;
|
|
142
|
+
const [internalKeys, setInternalKeys] = React17.useState(defaultOpenKeys);
|
|
143
|
+
const open = isControlled ? controlledKeys ?? [] : internalKeys;
|
|
144
|
+
const toggle = (key) => {
|
|
145
|
+
const isOpen = open.includes(key);
|
|
146
|
+
const next = isOpen ? open.filter((k) => k !== key) : multiple ? [...open, key] : [key];
|
|
147
|
+
if (!isControlled) setInternalKeys(next);
|
|
148
|
+
onChange?.(next);
|
|
149
|
+
};
|
|
150
|
+
return /* @__PURE__ */ jsx("div", { className: cn("accordion", className), ...props, children: items.map((item) => {
|
|
151
|
+
const isOpen = open.includes(item.key);
|
|
152
|
+
const headerId = `${item.key}-header`;
|
|
153
|
+
const panelId = `${item.key}-panel`;
|
|
154
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("accordion_item", isOpen && "accordion_item_open"), children: [
|
|
155
|
+
/* @__PURE__ */ jsx("h3", { className: "accordion_header", children: /* @__PURE__ */ jsxs(
|
|
156
|
+
"button",
|
|
157
|
+
{
|
|
158
|
+
type: "button",
|
|
159
|
+
id: headerId,
|
|
160
|
+
className: "accordion_trigger",
|
|
161
|
+
"aria-expanded": isOpen,
|
|
162
|
+
"aria-controls": panelId,
|
|
163
|
+
disabled: item.disabled,
|
|
164
|
+
onClick: () => toggle(item.key),
|
|
165
|
+
children: [
|
|
166
|
+
/* @__PURE__ */ jsx("span", { className: "accordion_title", children: item.title }),
|
|
167
|
+
/* @__PURE__ */ jsx(
|
|
168
|
+
ChevronDown,
|
|
169
|
+
{
|
|
170
|
+
size: 20,
|
|
171
|
+
className: cn("accordion_chevron", isOpen && "accordion_chevron_open"),
|
|
172
|
+
"aria-hidden": "true"
|
|
173
|
+
}
|
|
174
|
+
)
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
) }),
|
|
178
|
+
/* @__PURE__ */ jsx(
|
|
179
|
+
"div",
|
|
180
|
+
{
|
|
181
|
+
id: panelId,
|
|
182
|
+
role: "region",
|
|
183
|
+
"aria-labelledby": headerId,
|
|
184
|
+
"aria-hidden": !isOpen,
|
|
185
|
+
className: cn("accordion_panel", isOpen && "accordion_panel_open"),
|
|
186
|
+
children: /* @__PURE__ */ jsx("div", { className: "accordion_panel_wrap", children: /* @__PURE__ */ jsx("div", { className: "accordion_content", children: item.content }) })
|
|
187
|
+
}
|
|
188
|
+
)
|
|
189
|
+
] }, item.key);
|
|
190
|
+
}) });
|
|
191
|
+
};
|
|
192
|
+
function getInitials(name) {
|
|
193
|
+
const parts = name.trim().split(/\s+/);
|
|
194
|
+
if (parts.length === 0) return "";
|
|
195
|
+
if (parts.length === 1) return parts[0].charAt(0).toUpperCase();
|
|
196
|
+
return (parts[0].charAt(0) + parts[parts.length - 1].charAt(0)).toUpperCase();
|
|
197
|
+
}
|
|
198
|
+
var Avatar = ({
|
|
199
|
+
src,
|
|
200
|
+
name = "",
|
|
201
|
+
size = "md",
|
|
202
|
+
shape = "circle",
|
|
203
|
+
bgColor,
|
|
204
|
+
className,
|
|
205
|
+
style,
|
|
206
|
+
...props
|
|
207
|
+
}) => {
|
|
208
|
+
const [imgFailed, setImgFailed] = React17.useState(false);
|
|
209
|
+
const showImage = src && !imgFailed;
|
|
210
|
+
const initials = getInitials(name);
|
|
211
|
+
return /* @__PURE__ */ jsx(
|
|
212
|
+
"span",
|
|
213
|
+
{
|
|
214
|
+
className: cn("avatar", `avatar_size_${size}`, `avatar_shape_${shape}`, className),
|
|
215
|
+
style: { background: !showImage ? bgColor : void 0, ...style },
|
|
216
|
+
role: showImage ? void 0 : "img",
|
|
217
|
+
"aria-label": showImage ? void 0 : name || void 0,
|
|
218
|
+
...props,
|
|
219
|
+
children: showImage ? (
|
|
220
|
+
// biome-ignore lint/performance/noImgElement: DS is framework-agnostic — consumers wrap with next/image
|
|
221
|
+
/* @__PURE__ */ jsx(
|
|
222
|
+
"img",
|
|
223
|
+
{
|
|
224
|
+
src,
|
|
225
|
+
alt: name,
|
|
226
|
+
onError: () => setImgFailed(true),
|
|
227
|
+
className: "avatar_image"
|
|
228
|
+
}
|
|
229
|
+
)
|
|
230
|
+
) : /* @__PURE__ */ jsx("span", { className: "avatar_initials", "aria-hidden": "true", children: initials })
|
|
231
|
+
}
|
|
232
|
+
);
|
|
233
|
+
};
|
|
234
|
+
var Badge = ({
|
|
235
|
+
variant = "accent",
|
|
236
|
+
shape = "label",
|
|
237
|
+
size = "md",
|
|
238
|
+
count,
|
|
239
|
+
max = 99,
|
|
240
|
+
className,
|
|
241
|
+
children,
|
|
242
|
+
...props
|
|
243
|
+
}) => {
|
|
244
|
+
const content = (() => {
|
|
245
|
+
if (shape === "dot") return null;
|
|
246
|
+
if (shape === "count" && count !== void 0) {
|
|
247
|
+
return count > max ? `${max}+` : String(count);
|
|
248
|
+
}
|
|
249
|
+
return children;
|
|
250
|
+
})();
|
|
251
|
+
return /* @__PURE__ */ jsx(
|
|
252
|
+
"span",
|
|
253
|
+
{
|
|
254
|
+
className: cn(
|
|
255
|
+
"badge",
|
|
256
|
+
`badge_variant_${variant}`,
|
|
257
|
+
`badge_shape_${shape}`,
|
|
258
|
+
`badge_size_${size}`,
|
|
259
|
+
className
|
|
260
|
+
),
|
|
261
|
+
...props,
|
|
262
|
+
children: content
|
|
263
|
+
}
|
|
264
|
+
);
|
|
265
|
+
};
|
|
266
|
+
var BottomNav = ({
|
|
267
|
+
ariaLabel = "\uC8FC\uC694 \uBA54\uB274",
|
|
268
|
+
className,
|
|
269
|
+
children,
|
|
270
|
+
...props
|
|
271
|
+
}) => {
|
|
272
|
+
return /* @__PURE__ */ jsx(
|
|
273
|
+
"nav",
|
|
274
|
+
{
|
|
275
|
+
className: cn("bottom_nav", className),
|
|
276
|
+
"aria-label": ariaLabel,
|
|
277
|
+
...props,
|
|
278
|
+
children
|
|
279
|
+
}
|
|
280
|
+
);
|
|
281
|
+
};
|
|
282
|
+
var BottomNavItem = (props) => {
|
|
283
|
+
const {
|
|
284
|
+
icon,
|
|
285
|
+
label,
|
|
286
|
+
active,
|
|
287
|
+
badge,
|
|
288
|
+
as = "button",
|
|
289
|
+
className,
|
|
290
|
+
disabled,
|
|
291
|
+
...rest
|
|
292
|
+
} = props;
|
|
293
|
+
const classes = cn(
|
|
294
|
+
"bottom_nav_item",
|
|
295
|
+
active && "bottom_nav_item_active",
|
|
296
|
+
disabled && "bottom_nav_item_disabled",
|
|
297
|
+
className
|
|
298
|
+
);
|
|
299
|
+
const ariaCurrent = active ? "page" : void 0;
|
|
300
|
+
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
301
|
+
/* @__PURE__ */ jsxs("span", { className: "bottom_nav_item_icon", "aria-hidden": "true", children: [
|
|
302
|
+
icon,
|
|
303
|
+
badge && /* @__PURE__ */ jsx("span", { className: "bottom_nav_item_badge", children: badge })
|
|
304
|
+
] }),
|
|
305
|
+
/* @__PURE__ */ jsx("span", { className: "bottom_nav_item_label", children: label })
|
|
306
|
+
] });
|
|
307
|
+
if (as === "a") {
|
|
308
|
+
const { href, onClick: onClick2, ...anchorRest } = rest;
|
|
309
|
+
return (
|
|
310
|
+
// biome-ignore lint/a11y/useValidAnchor: navigation link with optional active state
|
|
311
|
+
/* @__PURE__ */ jsx(
|
|
312
|
+
"a",
|
|
313
|
+
{
|
|
314
|
+
className: classes,
|
|
315
|
+
href,
|
|
316
|
+
"aria-current": ariaCurrent,
|
|
317
|
+
"aria-disabled": disabled ? "true" : void 0,
|
|
318
|
+
tabIndex: disabled ? -1 : void 0,
|
|
319
|
+
onClick: (e) => {
|
|
320
|
+
if (disabled) {
|
|
321
|
+
e.preventDefault();
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
onClick2?.(e);
|
|
325
|
+
},
|
|
326
|
+
...anchorRest,
|
|
327
|
+
children: content
|
|
328
|
+
}
|
|
329
|
+
)
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
const { type, onClick, ...buttonRest } = rest;
|
|
333
|
+
return /* @__PURE__ */ jsx(
|
|
334
|
+
"button",
|
|
335
|
+
{
|
|
336
|
+
type: type ?? "button",
|
|
337
|
+
className: classes,
|
|
338
|
+
disabled,
|
|
339
|
+
"aria-current": ariaCurrent,
|
|
340
|
+
onClick,
|
|
341
|
+
...buttonRest,
|
|
342
|
+
children: content
|
|
343
|
+
}
|
|
344
|
+
);
|
|
345
|
+
};
|
|
346
|
+
var BottomNavSpacer = ({ className, ...props }) => {
|
|
347
|
+
return /* @__PURE__ */ jsx("div", { className: cn("bottom_nav_spacer", className), "aria-hidden": "true", ...props });
|
|
348
|
+
};
|
|
349
|
+
var Breadcrumb = ({
|
|
350
|
+
items,
|
|
351
|
+
separator,
|
|
352
|
+
className,
|
|
353
|
+
...props
|
|
354
|
+
}) => {
|
|
355
|
+
const sep = separator ?? /* @__PURE__ */ jsx(ChevronRight, { size: 14, "aria-hidden": "true" });
|
|
356
|
+
return /* @__PURE__ */ jsx("nav", { "aria-label": "Breadcrumb", className: cn("breadcrumb", className), ...props, children: /* @__PURE__ */ jsx("ol", { className: "breadcrumb_list", children: items.map((item, idx) => {
|
|
357
|
+
const isLast = idx === items.length - 1;
|
|
358
|
+
return (
|
|
359
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: breadcrumb items have stable order
|
|
360
|
+
/* @__PURE__ */ jsxs("li", { className: "breadcrumb_item", children: [
|
|
361
|
+
isLast ? /* @__PURE__ */ jsx("span", { className: "breadcrumb_current", "aria-current": "page", children: item.label }) : item.href ? (
|
|
362
|
+
// biome-ignore lint/a11y/useValidAnchor: navigation link
|
|
363
|
+
/* @__PURE__ */ jsx("a", { className: "breadcrumb_link", href: item.href, onClick: item.onClick, children: item.label })
|
|
364
|
+
) : /* @__PURE__ */ jsx(
|
|
365
|
+
"button",
|
|
366
|
+
{
|
|
367
|
+
type: "button",
|
|
368
|
+
className: "breadcrumb_link",
|
|
369
|
+
onClick: item.onClick,
|
|
370
|
+
children: item.label
|
|
371
|
+
}
|
|
372
|
+
),
|
|
373
|
+
!isLast && /* @__PURE__ */ jsx("span", { className: "breadcrumb_separator", "aria-hidden": "true", children: sep })
|
|
374
|
+
] }, idx)
|
|
375
|
+
);
|
|
376
|
+
}) }) });
|
|
377
|
+
};
|
|
378
|
+
var EmptyState = ({
|
|
379
|
+
illustration,
|
|
380
|
+
title,
|
|
381
|
+
description,
|
|
382
|
+
action,
|
|
383
|
+
size = "md",
|
|
384
|
+
className,
|
|
385
|
+
...props
|
|
386
|
+
}) => {
|
|
387
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("empty_state", `empty_state_size_${size}`, className), ...props, children: [
|
|
388
|
+
illustration && /* @__PURE__ */ jsx("div", { className: "empty_state_illustration", "aria-hidden": "true", children: illustration }),
|
|
389
|
+
title && /* @__PURE__ */ jsx("h3", { className: "empty_state_title", children: title }),
|
|
390
|
+
description && /* @__PURE__ */ jsx("p", { className: "empty_state_description", children: description }),
|
|
391
|
+
action && /* @__PURE__ */ jsx("div", { className: "empty_state_action", children: action })
|
|
392
|
+
] });
|
|
393
|
+
};
|
|
394
|
+
var Menu = ({ items, trigger, align = "start" }) => {
|
|
395
|
+
const [open, setOpen] = React17.useState(false);
|
|
396
|
+
const wrapperRef = React17.useRef(null);
|
|
397
|
+
const menuId = React17.useId();
|
|
398
|
+
const style = useSpringPresence({ visible: open, from: "translateY(-4px)" });
|
|
399
|
+
React17.useEffect(() => {
|
|
400
|
+
if (!open) return;
|
|
401
|
+
const handleClick = (e) => {
|
|
402
|
+
if (!wrapperRef.current?.contains(e.target)) setOpen(false);
|
|
403
|
+
};
|
|
404
|
+
const handleEsc = (e) => {
|
|
405
|
+
if (e.key === "Escape") setOpen(false);
|
|
406
|
+
};
|
|
407
|
+
document.addEventListener("mousedown", handleClick);
|
|
408
|
+
document.addEventListener("keydown", handleEsc);
|
|
409
|
+
return () => {
|
|
410
|
+
document.removeEventListener("mousedown", handleClick);
|
|
411
|
+
document.removeEventListener("keydown", handleEsc);
|
|
412
|
+
};
|
|
413
|
+
}, [open]);
|
|
414
|
+
const triggerWithProps = React17.cloneElement(
|
|
415
|
+
trigger,
|
|
416
|
+
{
|
|
417
|
+
onClick: () => setOpen((o) => !o),
|
|
418
|
+
"aria-haspopup": "menu",
|
|
419
|
+
"aria-expanded": open,
|
|
420
|
+
"aria-controls": open ? menuId : void 0
|
|
421
|
+
}
|
|
422
|
+
);
|
|
423
|
+
return /* @__PURE__ */ jsxs("span", { className: "menu_wrapper", ref: wrapperRef, children: [
|
|
424
|
+
triggerWithProps,
|
|
425
|
+
open && /* @__PURE__ */ jsx(
|
|
426
|
+
animated.div,
|
|
427
|
+
{
|
|
428
|
+
id: menuId,
|
|
429
|
+
role: "menu",
|
|
430
|
+
style,
|
|
431
|
+
className: cn("menu", `menu_align_${align}`),
|
|
432
|
+
children: items.map((item) => /* @__PURE__ */ jsxs(
|
|
433
|
+
"button",
|
|
434
|
+
{
|
|
435
|
+
type: "button",
|
|
436
|
+
role: "menuitem",
|
|
437
|
+
disabled: item.disabled,
|
|
438
|
+
className: cn(
|
|
439
|
+
"menu_item",
|
|
440
|
+
item.destructive && "menu_item_destructive",
|
|
441
|
+
item.disabled && "menu_item_disabled"
|
|
442
|
+
),
|
|
443
|
+
onClick: () => {
|
|
444
|
+
if (item.disabled) return;
|
|
445
|
+
item.onSelect?.();
|
|
446
|
+
setOpen(false);
|
|
447
|
+
},
|
|
448
|
+
children: [
|
|
449
|
+
item.icon && /* @__PURE__ */ jsx("span", { className: "menu_item_icon", "aria-hidden": "true", children: item.icon }),
|
|
450
|
+
/* @__PURE__ */ jsx("span", { className: "menu_item_label", children: item.label })
|
|
451
|
+
]
|
|
452
|
+
},
|
|
453
|
+
item.key
|
|
454
|
+
))
|
|
455
|
+
}
|
|
456
|
+
)
|
|
457
|
+
] });
|
|
458
|
+
};
|
|
459
|
+
var NavBar = ({
|
|
460
|
+
brand,
|
|
461
|
+
searchSlot,
|
|
462
|
+
actions,
|
|
463
|
+
locale,
|
|
464
|
+
profile,
|
|
465
|
+
divider = true,
|
|
466
|
+
variant = "default",
|
|
467
|
+
layout = "contained",
|
|
468
|
+
sticky = false,
|
|
469
|
+
className,
|
|
470
|
+
children,
|
|
471
|
+
...props
|
|
472
|
+
}) => {
|
|
473
|
+
const showDivider = divider && !!profile && (!!actions || !!locale || !!searchSlot);
|
|
474
|
+
const linksRef = useRef(null);
|
|
475
|
+
const [indicator, setIndicator] = useState(null);
|
|
476
|
+
const [hasMounted, setHasMounted] = useState(false);
|
|
477
|
+
useLayoutEffect(() => {
|
|
478
|
+
const links = linksRef.current;
|
|
479
|
+
if (!links) return;
|
|
480
|
+
const update = () => {
|
|
481
|
+
const active = links.querySelector(".nav_bar_link_active");
|
|
482
|
+
if (active) {
|
|
483
|
+
setIndicator({ left: active.offsetLeft, width: active.offsetWidth });
|
|
484
|
+
} else {
|
|
485
|
+
setIndicator(null);
|
|
486
|
+
}
|
|
487
|
+
};
|
|
488
|
+
update();
|
|
489
|
+
const mountTimer = setTimeout(() => setHasMounted(true), 50);
|
|
490
|
+
const mo = new MutationObserver(update);
|
|
491
|
+
mo.observe(links, {
|
|
492
|
+
subtree: true,
|
|
493
|
+
attributes: true,
|
|
494
|
+
attributeFilter: ["class", "aria-current"]
|
|
495
|
+
});
|
|
496
|
+
const ro = typeof ResizeObserver !== "undefined" ? new ResizeObserver(update) : null;
|
|
497
|
+
ro?.observe(links);
|
|
498
|
+
const handleResize = () => update();
|
|
499
|
+
window.addEventListener("resize", handleResize);
|
|
500
|
+
return () => {
|
|
501
|
+
clearTimeout(mountTimer);
|
|
502
|
+
mo.disconnect();
|
|
503
|
+
ro?.disconnect();
|
|
504
|
+
window.removeEventListener("resize", handleResize);
|
|
505
|
+
};
|
|
506
|
+
}, []);
|
|
507
|
+
return /* @__PURE__ */ jsx(
|
|
508
|
+
"header",
|
|
509
|
+
{
|
|
510
|
+
className: cn(
|
|
511
|
+
"nav_bar",
|
|
512
|
+
`nav_bar_variant_${variant}`,
|
|
513
|
+
`nav_bar_layout_${layout}`,
|
|
514
|
+
sticky && "nav_bar_sticky",
|
|
515
|
+
className
|
|
516
|
+
),
|
|
517
|
+
...props,
|
|
518
|
+
children: /* @__PURE__ */ jsxs("div", { className: "nav_bar_inner", children: [
|
|
519
|
+
brand && /* @__PURE__ */ jsx("div", { className: "nav_bar_brand", children: brand }),
|
|
520
|
+
children && /* @__PURE__ */ jsxs("nav", { ref: linksRef, className: "nav_bar_links", children: [
|
|
521
|
+
children,
|
|
522
|
+
indicator && /* @__PURE__ */ jsx(
|
|
523
|
+
"span",
|
|
524
|
+
{
|
|
525
|
+
"aria-hidden": "true",
|
|
526
|
+
className: cn(
|
|
527
|
+
"nav_bar_indicator",
|
|
528
|
+
hasMounted && "nav_bar_indicator_animated"
|
|
529
|
+
),
|
|
530
|
+
style: { left: indicator.left, width: indicator.width }
|
|
531
|
+
}
|
|
532
|
+
)
|
|
533
|
+
] }),
|
|
534
|
+
searchSlot && /* @__PURE__ */ jsx("div", { className: "nav_bar_search", children: searchSlot }),
|
|
535
|
+
/* @__PURE__ */ jsxs("div", { className: "nav_bar_right", children: [
|
|
536
|
+
actions && /* @__PURE__ */ jsx("div", { className: "nav_bar_actions", children: actions }),
|
|
537
|
+
locale && /* @__PURE__ */ jsx(LocaleSwitcher, { locale }),
|
|
538
|
+
showDivider && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "nav_bar_divider" }),
|
|
539
|
+
profile && /* @__PURE__ */ jsx("div", { className: "nav_bar_profile", children: profile })
|
|
540
|
+
] })
|
|
541
|
+
] })
|
|
542
|
+
}
|
|
543
|
+
);
|
|
544
|
+
};
|
|
545
|
+
var LocaleSwitcher = ({ locale }) => {
|
|
546
|
+
const [open, setOpen] = useState(false);
|
|
547
|
+
const wrapperRef = useRef(null);
|
|
548
|
+
const menuId = useId();
|
|
549
|
+
const currentOption = locale.options.find((o) => o.value === locale.current);
|
|
550
|
+
useEffect(() => {
|
|
551
|
+
if (!open) return;
|
|
552
|
+
const handler = (e) => {
|
|
553
|
+
if (!wrapperRef.current?.contains(e.target)) setOpen(false);
|
|
554
|
+
};
|
|
555
|
+
const escHandler = (e) => {
|
|
556
|
+
if (e.key === "Escape") setOpen(false);
|
|
557
|
+
};
|
|
558
|
+
document.addEventListener("mousedown", handler);
|
|
559
|
+
document.addEventListener("keydown", escHandler);
|
|
560
|
+
return () => {
|
|
561
|
+
document.removeEventListener("mousedown", handler);
|
|
562
|
+
document.removeEventListener("keydown", escHandler);
|
|
563
|
+
};
|
|
564
|
+
}, [open]);
|
|
565
|
+
const handleSelect = (value) => {
|
|
566
|
+
locale.onChange(value);
|
|
567
|
+
setOpen(false);
|
|
568
|
+
};
|
|
569
|
+
return /* @__PURE__ */ jsxs("div", { ref: wrapperRef, className: "nav_bar_locale", children: [
|
|
570
|
+
/* @__PURE__ */ jsxs(
|
|
571
|
+
"button",
|
|
572
|
+
{
|
|
573
|
+
type: "button",
|
|
574
|
+
className: "nav_bar_locale_trigger",
|
|
575
|
+
"aria-haspopup": "menu",
|
|
576
|
+
"aria-expanded": open,
|
|
577
|
+
"aria-controls": menuId,
|
|
578
|
+
onClick: () => setOpen((p) => !p),
|
|
579
|
+
children: [
|
|
580
|
+
/* @__PURE__ */ jsx(Globe, { size: 16, "aria-hidden": "true" }),
|
|
581
|
+
!locale.hideLabel && /* @__PURE__ */ jsx("span", { className: "nav_bar_locale_label", children: currentOption?.label ?? locale.current.toUpperCase() }),
|
|
582
|
+
/* @__PURE__ */ jsx(ChevronDown, { size: 14, "aria-hidden": "true", className: "nav_bar_locale_chevron" })
|
|
583
|
+
]
|
|
584
|
+
}
|
|
585
|
+
),
|
|
586
|
+
open && /* @__PURE__ */ jsx("ul", { id: menuId, role: "menu", className: "nav_bar_locale_menu", children: locale.options.map((opt) => /* @__PURE__ */ jsx("li", { role: "none", children: /* @__PURE__ */ jsx(
|
|
587
|
+
"button",
|
|
588
|
+
{
|
|
589
|
+
type: "button",
|
|
590
|
+
role: "menuitem",
|
|
591
|
+
className: cn(
|
|
592
|
+
"nav_bar_locale_item",
|
|
593
|
+
opt.value === locale.current && "nav_bar_locale_item_active"
|
|
594
|
+
),
|
|
595
|
+
onClick: () => handleSelect(opt.value),
|
|
596
|
+
children: opt.label
|
|
597
|
+
}
|
|
598
|
+
) }, opt.value)) })
|
|
599
|
+
] });
|
|
600
|
+
};
|
|
601
|
+
var NavLink = ({ active, className, children, ...props }) => {
|
|
602
|
+
return (
|
|
603
|
+
// biome-ignore lint/a11y/useValidAnchor: navigation link
|
|
604
|
+
/* @__PURE__ */ jsx(
|
|
605
|
+
"a",
|
|
606
|
+
{
|
|
607
|
+
className: cn("nav_bar_link", active && "nav_bar_link_active"),
|
|
608
|
+
"aria-current": active ? "page" : void 0,
|
|
609
|
+
...props,
|
|
610
|
+
children
|
|
611
|
+
}
|
|
612
|
+
)
|
|
613
|
+
);
|
|
614
|
+
};
|
|
615
|
+
var Sidebar = ({
|
|
616
|
+
header,
|
|
617
|
+
headerCollapsed,
|
|
618
|
+
footer,
|
|
619
|
+
collapsed: collapsedProp,
|
|
620
|
+
defaultCollapsed = false,
|
|
621
|
+
onCollapsedChange,
|
|
622
|
+
collapsible = true,
|
|
623
|
+
toggleLabel = "\uC0AC\uC774\uB4DC\uBC14 \uD1A0\uAE00",
|
|
624
|
+
width = 240,
|
|
625
|
+
collapsedWidth = 64,
|
|
626
|
+
mode = "auto",
|
|
627
|
+
className,
|
|
628
|
+
children,
|
|
629
|
+
style,
|
|
630
|
+
...props
|
|
631
|
+
}) => {
|
|
632
|
+
const isControlled = collapsedProp !== void 0;
|
|
633
|
+
const [internalCollapsed, setInternalCollapsed] = React17.useState(defaultCollapsed);
|
|
634
|
+
const collapsed = isControlled ? collapsedProp : internalCollapsed;
|
|
635
|
+
const toggle = React17.useCallback(() => {
|
|
636
|
+
const next = !collapsed;
|
|
637
|
+
if (!isControlled) setInternalCollapsed(next);
|
|
638
|
+
onCollapsedChange?.(next);
|
|
639
|
+
}, [collapsed, isControlled, onCollapsedChange]);
|
|
640
|
+
const isStatic = mode === "static";
|
|
641
|
+
return /* @__PURE__ */ jsxs(
|
|
642
|
+
"aside",
|
|
643
|
+
{
|
|
644
|
+
className: cn(
|
|
645
|
+
"sidebar",
|
|
646
|
+
collapsed && "sidebar_collapsed",
|
|
647
|
+
isStatic && "sidebar_static",
|
|
648
|
+
className
|
|
649
|
+
),
|
|
650
|
+
style: { width: collapsed ? collapsedWidth : width, ...style },
|
|
651
|
+
...props,
|
|
652
|
+
children: [
|
|
653
|
+
(header || headerCollapsed) && /* @__PURE__ */ jsx("div", { className: "sidebar_header", children: /* @__PURE__ */ jsxs("div", { className: "sidebar_header_layers", children: [
|
|
654
|
+
header && /* @__PURE__ */ jsx("div", { className: "sidebar_header_layer sidebar_header_layer_full", children: header }),
|
|
655
|
+
headerCollapsed && /* @__PURE__ */ jsx("div", { className: "sidebar_header_layer sidebar_header_layer_mark", children: headerCollapsed })
|
|
656
|
+
] }) }),
|
|
657
|
+
/* @__PURE__ */ jsx("nav", { className: "sidebar_nav", children }),
|
|
658
|
+
footer && /* @__PURE__ */ jsx("div", { className: "sidebar_footer", children: footer }),
|
|
659
|
+
collapsible && /* @__PURE__ */ jsx(
|
|
660
|
+
"button",
|
|
661
|
+
{
|
|
662
|
+
type: "button",
|
|
663
|
+
className: "sidebar_collapse_btn",
|
|
664
|
+
onClick: toggle,
|
|
665
|
+
"aria-label": toggleLabel,
|
|
666
|
+
"aria-expanded": !collapsed,
|
|
667
|
+
children: collapsed ? /* @__PURE__ */ jsx(ChevronRight, { size: 14 }) : /* @__PURE__ */ jsx(ChevronLeft, { size: 14 })
|
|
668
|
+
}
|
|
669
|
+
)
|
|
670
|
+
]
|
|
671
|
+
}
|
|
672
|
+
);
|
|
673
|
+
};
|
|
674
|
+
var SidebarItem = (props) => {
|
|
675
|
+
const { icon, active, trailing, as = "button", className, children, ...rest } = props;
|
|
676
|
+
const classes = cn("sidebar_item", active && "sidebar_item_active", className);
|
|
677
|
+
const ariaCurrent = active ? "page" : void 0;
|
|
678
|
+
const inner = /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
679
|
+
icon && /* @__PURE__ */ jsx("span", { className: "sidebar_item_icon", "aria-hidden": "true", children: icon }),
|
|
680
|
+
/* @__PURE__ */ jsx("span", { className: "sidebar_item_label", children }),
|
|
681
|
+
trailing && /* @__PURE__ */ jsx("span", { className: "sidebar_item_trailing", children: trailing })
|
|
682
|
+
] });
|
|
683
|
+
if (as === "a") {
|
|
684
|
+
const { href, ...anchorRest } = rest;
|
|
685
|
+
return (
|
|
686
|
+
// biome-ignore lint/a11y/useValidAnchor: navigation link with optional active state
|
|
687
|
+
/* @__PURE__ */ jsx("a", { className: classes, href, "aria-current": ariaCurrent, ...anchorRest, children: inner })
|
|
688
|
+
);
|
|
689
|
+
}
|
|
690
|
+
const { type, ...buttonRest } = rest;
|
|
691
|
+
return /* @__PURE__ */ jsx(
|
|
692
|
+
"button",
|
|
693
|
+
{
|
|
694
|
+
type: type ?? "button",
|
|
695
|
+
className: classes,
|
|
696
|
+
"aria-current": ariaCurrent,
|
|
697
|
+
...buttonRest,
|
|
698
|
+
children: inner
|
|
699
|
+
}
|
|
700
|
+
);
|
|
701
|
+
};
|
|
702
|
+
var SidebarSection = ({ label, className, children, ...props }) => {
|
|
703
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("sidebar_section", className), ...props, children: [
|
|
704
|
+
label && /* @__PURE__ */ jsx("div", { className: "sidebar_section_label", children: label }),
|
|
705
|
+
children
|
|
706
|
+
] });
|
|
707
|
+
};
|
|
708
|
+
var TabsContext = React17.createContext(null);
|
|
709
|
+
function useTabsContext() {
|
|
710
|
+
const ctx = React17.useContext(TabsContext);
|
|
711
|
+
if (!ctx) {
|
|
712
|
+
throw new Error(
|
|
713
|
+
'[Bigtablet DS] <Tab>, <TabList>, <TabPanel>\uC740 \uBC18\uB4DC\uC2DC <Tabs> \uC548\uC5D0 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4.\n\n\uC62C\uBC14\uB978 \uC0AC\uC6A9 \uC608:\n <Tabs defaultValue="a">\n <TabList>\n <Tab value="a">A</Tab>\n </TabList>\n <TabPanel value="a">...</TabPanel>\n </Tabs>'
|
|
714
|
+
);
|
|
715
|
+
}
|
|
716
|
+
return ctx;
|
|
717
|
+
}
|
|
718
|
+
var Tabs = ({
|
|
719
|
+
value: controlledValue,
|
|
720
|
+
defaultValue = "",
|
|
721
|
+
onValueChange,
|
|
722
|
+
variant = "line",
|
|
723
|
+
size = "md",
|
|
724
|
+
className,
|
|
725
|
+
children,
|
|
726
|
+
...props
|
|
727
|
+
}) => {
|
|
728
|
+
const isControlled = controlledValue !== void 0;
|
|
729
|
+
const [internalValue, setInternalValue] = React17.useState(defaultValue);
|
|
730
|
+
const value = isControlled ? controlledValue : internalValue;
|
|
731
|
+
const setValue = React17.useCallback(
|
|
732
|
+
(v) => {
|
|
733
|
+
if (!isControlled) setInternalValue(v);
|
|
734
|
+
onValueChange?.(v);
|
|
735
|
+
},
|
|
736
|
+
[isControlled, onValueChange]
|
|
737
|
+
);
|
|
738
|
+
const idPrefix = React17.useId();
|
|
739
|
+
const ctx = React17.useMemo(
|
|
740
|
+
() => ({ value, setValue, variant, size, idPrefix }),
|
|
741
|
+
[value, setValue, variant, size, idPrefix]
|
|
742
|
+
);
|
|
743
|
+
return /* @__PURE__ */ jsx(TabsContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx("div", { className: cn("tabs", `tabs_variant_${variant}`, `tabs_size_${size}`, className), ...props, children }) });
|
|
744
|
+
};
|
|
745
|
+
var TabList = ({ ariaLabel, className, children, ...props }) => {
|
|
746
|
+
const { variant } = useTabsContext();
|
|
747
|
+
const listRef = React17.useRef(null);
|
|
748
|
+
const [indicator, setIndicator] = React17.useState(null);
|
|
749
|
+
const [hasMounted, setHasMounted] = React17.useState(false);
|
|
750
|
+
React17.useLayoutEffect(() => {
|
|
751
|
+
const list = listRef.current;
|
|
752
|
+
if (!list) return;
|
|
753
|
+
const update = () => {
|
|
754
|
+
const active = list.querySelector('[role="tab"][aria-selected="true"]');
|
|
755
|
+
if (active) {
|
|
756
|
+
setIndicator({ left: active.offsetLeft, width: active.offsetWidth });
|
|
757
|
+
} else {
|
|
758
|
+
setIndicator(null);
|
|
759
|
+
}
|
|
760
|
+
};
|
|
761
|
+
update();
|
|
762
|
+
const mountTimer = setTimeout(() => setHasMounted(true), 50);
|
|
763
|
+
const mo = new MutationObserver(update);
|
|
764
|
+
mo.observe(list, {
|
|
765
|
+
subtree: true,
|
|
766
|
+
attributes: true,
|
|
767
|
+
attributeFilter: ["aria-selected"]
|
|
768
|
+
});
|
|
769
|
+
const ro = typeof ResizeObserver !== "undefined" ? new ResizeObserver(update) : null;
|
|
770
|
+
ro?.observe(list);
|
|
771
|
+
const handleResize = () => update();
|
|
772
|
+
window.addEventListener("resize", handleResize);
|
|
773
|
+
return () => {
|
|
774
|
+
clearTimeout(mountTimer);
|
|
775
|
+
mo.disconnect();
|
|
776
|
+
ro?.disconnect();
|
|
777
|
+
window.removeEventListener("resize", handleResize);
|
|
778
|
+
};
|
|
779
|
+
}, [variant]);
|
|
780
|
+
return /* @__PURE__ */ jsxs(
|
|
781
|
+
"div",
|
|
782
|
+
{
|
|
783
|
+
ref: listRef,
|
|
784
|
+
role: "tablist",
|
|
785
|
+
"aria-label": ariaLabel,
|
|
786
|
+
className: cn("tabs_list", `tabs_list_${variant}`, className),
|
|
787
|
+
...props,
|
|
788
|
+
children: [
|
|
789
|
+
indicator && /* @__PURE__ */ jsx(
|
|
790
|
+
"span",
|
|
791
|
+
{
|
|
792
|
+
"aria-hidden": "true",
|
|
793
|
+
className: cn(
|
|
794
|
+
"tabs_indicator",
|
|
795
|
+
`tabs_indicator_${variant}`,
|
|
796
|
+
hasMounted && "tabs_indicator_animated"
|
|
797
|
+
),
|
|
798
|
+
style: { left: indicator.left, width: indicator.width }
|
|
799
|
+
}
|
|
800
|
+
),
|
|
801
|
+
children
|
|
802
|
+
]
|
|
803
|
+
}
|
|
804
|
+
);
|
|
805
|
+
};
|
|
806
|
+
var Tab = ({ value, className, children, onClick, ...props }) => {
|
|
807
|
+
const ctx = useTabsContext();
|
|
808
|
+
const isActive = ctx.value === value;
|
|
809
|
+
const panelId = `${ctx.idPrefix}-panel-${value}`;
|
|
810
|
+
const tabId = `${ctx.idPrefix}-tab-${value}`;
|
|
811
|
+
const handleClick = (e) => {
|
|
812
|
+
ctx.setValue(value);
|
|
813
|
+
onClick?.(e);
|
|
814
|
+
};
|
|
815
|
+
const handleKeyDown = (e) => {
|
|
816
|
+
if (e.key !== "ArrowLeft" && e.key !== "ArrowRight" && e.key !== "Home" && e.key !== "End") return;
|
|
817
|
+
const list = e.currentTarget.closest('[role="tablist"]');
|
|
818
|
+
if (!list) return;
|
|
819
|
+
const tabs = Array.from(list.querySelectorAll('[role="tab"]:not([disabled])'));
|
|
820
|
+
const currentIndex = tabs.indexOf(e.currentTarget);
|
|
821
|
+
if (currentIndex < 0) return;
|
|
822
|
+
e.preventDefault();
|
|
823
|
+
let next = currentIndex;
|
|
824
|
+
if (e.key === "ArrowRight") next = (currentIndex + 1) % tabs.length;
|
|
825
|
+
else if (e.key === "ArrowLeft") next = (currentIndex - 1 + tabs.length) % tabs.length;
|
|
826
|
+
else if (e.key === "Home") next = 0;
|
|
827
|
+
else if (e.key === "End") next = tabs.length - 1;
|
|
828
|
+
const targetValue = tabs[next].dataset.value;
|
|
829
|
+
if (targetValue) {
|
|
830
|
+
ctx.setValue(targetValue);
|
|
831
|
+
tabs[next].focus();
|
|
832
|
+
}
|
|
833
|
+
};
|
|
834
|
+
return /* @__PURE__ */ jsx(
|
|
835
|
+
"button",
|
|
836
|
+
{
|
|
837
|
+
type: "button",
|
|
838
|
+
role: "tab",
|
|
839
|
+
id: tabId,
|
|
840
|
+
"data-value": value,
|
|
841
|
+
"aria-selected": isActive,
|
|
842
|
+
"aria-controls": panelId,
|
|
843
|
+
tabIndex: isActive ? 0 : -1,
|
|
844
|
+
className: cn("tabs_tab", isActive && "tabs_tab_active", className),
|
|
845
|
+
onClick: handleClick,
|
|
846
|
+
onKeyDown: handleKeyDown,
|
|
847
|
+
...props,
|
|
848
|
+
children
|
|
849
|
+
}
|
|
850
|
+
);
|
|
851
|
+
};
|
|
852
|
+
var TabPanel = ({
|
|
853
|
+
value,
|
|
854
|
+
unmountInactive = true,
|
|
855
|
+
className,
|
|
856
|
+
children,
|
|
857
|
+
...props
|
|
858
|
+
}) => {
|
|
859
|
+
const ctx = useTabsContext();
|
|
860
|
+
const isActive = ctx.value === value;
|
|
861
|
+
const panelId = `${ctx.idPrefix}-panel-${value}`;
|
|
862
|
+
const tabId = `${ctx.idPrefix}-tab-${value}`;
|
|
863
|
+
if (!isActive && unmountInactive) return null;
|
|
864
|
+
return /* @__PURE__ */ jsx(
|
|
865
|
+
"div",
|
|
866
|
+
{
|
|
867
|
+
role: "tabpanel",
|
|
868
|
+
id: panelId,
|
|
869
|
+
"aria-labelledby": tabId,
|
|
870
|
+
hidden: !isActive,
|
|
871
|
+
tabIndex: 0,
|
|
872
|
+
className: cn("tabs_panel", className),
|
|
873
|
+
...props,
|
|
874
|
+
children
|
|
875
|
+
}
|
|
876
|
+
);
|
|
877
|
+
};
|
|
878
|
+
var Tooltip = ({
|
|
879
|
+
content,
|
|
880
|
+
placement = "top",
|
|
881
|
+
delay = 200,
|
|
882
|
+
disabled = false,
|
|
883
|
+
children
|
|
884
|
+
}) => {
|
|
885
|
+
const [open, setOpen] = React17.useState(false);
|
|
886
|
+
const timerRef = React17.useRef(null);
|
|
887
|
+
const tooltipId = React17.useId();
|
|
888
|
+
const show = React17.useCallback(() => {
|
|
889
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
890
|
+
timerRef.current = setTimeout(() => setOpen(true), delay);
|
|
891
|
+
}, [delay]);
|
|
892
|
+
const hide = React17.useCallback(() => {
|
|
893
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
894
|
+
setOpen(false);
|
|
895
|
+
}, []);
|
|
896
|
+
React17.useEffect(() => {
|
|
897
|
+
return () => {
|
|
898
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
899
|
+
};
|
|
900
|
+
}, []);
|
|
901
|
+
const fromTransform = (() => {
|
|
902
|
+
switch (placement) {
|
|
903
|
+
case "top":
|
|
904
|
+
return "translateY(4px)";
|
|
905
|
+
case "bottom":
|
|
906
|
+
return "translateY(-4px)";
|
|
907
|
+
case "left":
|
|
908
|
+
return "translateX(4px)";
|
|
909
|
+
case "right":
|
|
910
|
+
return "translateX(-4px)";
|
|
911
|
+
}
|
|
912
|
+
})();
|
|
913
|
+
const style = useSpringPresence({ visible: open, from: fromTransform });
|
|
914
|
+
const trigger = React17.cloneElement(children, {
|
|
915
|
+
onMouseEnter: show,
|
|
916
|
+
onMouseLeave: hide,
|
|
917
|
+
onFocus: show,
|
|
918
|
+
onBlur: hide,
|
|
919
|
+
"aria-describedby": open ? tooltipId : void 0
|
|
920
|
+
});
|
|
921
|
+
if (disabled) return children;
|
|
922
|
+
return /* @__PURE__ */ jsxs("span", { className: "tooltip_wrapper", children: [
|
|
923
|
+
trigger,
|
|
924
|
+
open && /* @__PURE__ */ jsx("span", { className: cn("tooltip_position", `tooltip_placement_${placement}`), children: /* @__PURE__ */ jsx(
|
|
925
|
+
animated.span,
|
|
926
|
+
{
|
|
927
|
+
id: tooltipId,
|
|
928
|
+
role: "tooltip",
|
|
929
|
+
style,
|
|
930
|
+
className: cn("tooltip", `tooltip_placement_${placement}`),
|
|
931
|
+
children: content
|
|
932
|
+
}
|
|
933
|
+
) })
|
|
934
|
+
] });
|
|
935
|
+
};
|
|
8
936
|
|
|
9
937
|
// src/styles/a11y/index.ts
|
|
10
938
|
var a11y = {
|
|
11
939
|
focusRing: "0 0 0 3px rgba(0, 0, 0, 0.15)",
|
|
12
940
|
focusRingError: "0 0 0 3px rgba(239, 68, 68, 0.15)",
|
|
13
941
|
focusRingSuccess: "0 0 0 3px rgba(16, 185, 129, 0.15)",
|
|
14
|
-
tapMinSize: "44px"
|
|
942
|
+
tapMinSize: "44px",
|
|
943
|
+
tapTarget: {
|
|
944
|
+
dense: "32px",
|
|
945
|
+
compact: "40px",
|
|
946
|
+
comfortable: "48px",
|
|
947
|
+
spacious: "56px"
|
|
948
|
+
}
|
|
15
949
|
};
|
|
16
950
|
|
|
17
951
|
// src/styles/border-width/index.ts
|
|
@@ -23,6 +957,7 @@ var baseBorderWidth = {
|
|
|
23
957
|
var borderWidth = {
|
|
24
958
|
none: baseBorderWidth["0"],
|
|
25
959
|
standard: baseBorderWidth["1"],
|
|
960
|
+
thick: baseBorderWidth["2"],
|
|
26
961
|
indicator: baseBorderWidth["2"]
|
|
27
962
|
};
|
|
28
963
|
|
|
@@ -44,6 +979,7 @@ var baseColors = {
|
|
|
44
979
|
blue600: "#1A73E8",
|
|
45
980
|
neutral0: "#FFFFFF",
|
|
46
981
|
neutral50: "#F4F4F4",
|
|
982
|
+
neutral100: "#F2F2F2",
|
|
47
983
|
neutral200: "#E5E5E5",
|
|
48
984
|
neutral300: "#999999",
|
|
49
985
|
neutral400: "#B3B3B3",
|
|
@@ -56,6 +992,17 @@ var baseColors = {
|
|
|
56
992
|
statusSuccess: "#10B981",
|
|
57
993
|
statusWarning: "#F59E0B",
|
|
58
994
|
statusInfo: "#3B82F6",
|
|
995
|
+
// Navy — Bigtablet 초기 홈페이지 컬러. #47555E 메인 navy + sky blue 패밀리.
|
|
996
|
+
navy50: "#F2F5F8",
|
|
997
|
+
navy100: "#DDE3E9",
|
|
998
|
+
navy200: "#B4C2CD",
|
|
999
|
+
navy300: "#7AA5D2",
|
|
1000
|
+
navy400: "#5A8DCB",
|
|
1001
|
+
navy500: "#4C7CB6",
|
|
1002
|
+
navy600: "#47555E",
|
|
1003
|
+
navy700: "#3D4852",
|
|
1004
|
+
navy800: "#303841",
|
|
1005
|
+
navy900: "#1F2630",
|
|
59
1006
|
alphaBlack5: "rgba(0, 0, 0, 0.05)",
|
|
60
1007
|
alphaBlack8: "rgba(0, 0, 0, 0.08)",
|
|
61
1008
|
alphaBlack12: "rgba(26, 26, 26, 0.12)",
|
|
@@ -97,13 +1044,22 @@ var colors = {
|
|
|
97
1044
|
hover: baseColors.neutral400,
|
|
98
1045
|
subtle: baseColors.alphaBlack8,
|
|
99
1046
|
focus: baseColors.neutral900,
|
|
100
|
-
disabled:
|
|
1047
|
+
disabled: baseColors.neutral100
|
|
101
1048
|
},
|
|
102
1049
|
status: {
|
|
103
1050
|
error: baseColors.statusError,
|
|
104
1051
|
success: baseColors.statusSuccess,
|
|
105
1052
|
warning: baseColors.statusWarning,
|
|
106
1053
|
info: baseColors.statusInfo
|
|
1054
|
+
},
|
|
1055
|
+
// Accent (Bigtablet navy) — 메인 brand 검정과 함께 B2C/마케팅 강조에 사용.
|
|
1056
|
+
accent: {
|
|
1057
|
+
subtle: baseColors.navy50,
|
|
1058
|
+
muted: baseColors.navy100,
|
|
1059
|
+
light: baseColors.navy300,
|
|
1060
|
+
default: baseColors.navy600,
|
|
1061
|
+
strong: baseColors.navy800,
|
|
1062
|
+
onSurface: baseColors.neutral0
|
|
107
1063
|
}
|
|
108
1064
|
};
|
|
109
1065
|
|
|
@@ -127,7 +1083,15 @@ var motion = {
|
|
|
127
1083
|
fade: "0.15s ease-in-out",
|
|
128
1084
|
slide: "0.25s ease-in-out",
|
|
129
1085
|
scale: "0.2s cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
130
|
-
state: "0.18s ease-in-out"
|
|
1086
|
+
state: "0.18s ease-in-out",
|
|
1087
|
+
enterFast: "0.15s cubic-bezier(0.16, 1, 0.3, 1)",
|
|
1088
|
+
enterBase: "0.2s cubic-bezier(0.16, 1, 0.3, 1)",
|
|
1089
|
+
exitFast: "0.12s cubic-bezier(0.4, 0, 1, 1)",
|
|
1090
|
+
exitBase: "0.15s cubic-bezier(0.4, 0, 1, 1)"
|
|
1091
|
+
},
|
|
1092
|
+
easing: {
|
|
1093
|
+
enter: "cubic-bezier(0.16, 1, 0.3, 1)",
|
|
1094
|
+
exit: "cubic-bezier(0.4, 0, 1, 1)"
|
|
131
1095
|
}
|
|
132
1096
|
};
|
|
133
1097
|
|
|
@@ -244,7 +1208,8 @@ var baseTypography = {
|
|
|
244
1208
|
"60": "60px"
|
|
245
1209
|
},
|
|
246
1210
|
letterSpacing: {
|
|
247
|
-
normal: "0px"
|
|
1211
|
+
normal: "0px",
|
|
1212
|
+
tight: "0.32px"
|
|
248
1213
|
}
|
|
249
1214
|
};
|
|
250
1215
|
var { fontSize: fs, fontWeight: fw, lineHeight: lh, letterSpacing: ls } = baseTypography;
|
|
@@ -453,104 +1418,53 @@ var zIndex = {
|
|
|
453
1418
|
level4: 500,
|
|
454
1419
|
level5: 1e3
|
|
455
1420
|
};
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
return
|
|
1421
|
+
var Button = ({
|
|
1422
|
+
variant = "filled",
|
|
1423
|
+
size = "md",
|
|
1424
|
+
leadingIcon,
|
|
1425
|
+
trailingIcon,
|
|
1426
|
+
fullWidth = false,
|
|
1427
|
+
radius: radius2,
|
|
1428
|
+
danger = false,
|
|
1429
|
+
className,
|
|
1430
|
+
children,
|
|
1431
|
+
...props
|
|
1432
|
+
}) => {
|
|
1433
|
+
const buttonClassName = cn(
|
|
1434
|
+
"button",
|
|
1435
|
+
`button_variant_${variant}`,
|
|
1436
|
+
`button_size_${size}`,
|
|
1437
|
+
fullWidth && "button_full_width",
|
|
1438
|
+
radius2 && `button_radius_${radius2}`,
|
|
1439
|
+
danger && "button_danger",
|
|
1440
|
+
className
|
|
1441
|
+
);
|
|
1442
|
+
return /* @__PURE__ */ jsxs("button", { className: buttonClassName, ...props, children: [
|
|
1443
|
+
leadingIcon && /* @__PURE__ */ jsx("span", { className: "button_icon", "aria-hidden": "true", children: leadingIcon }),
|
|
1444
|
+
children && /* @__PURE__ */ jsx("span", { className: "button_label", children }),
|
|
1445
|
+
trailingIcon && /* @__PURE__ */ jsx("span", { className: "button_icon", "aria-hidden": "true", children: trailingIcon })
|
|
1446
|
+
] });
|
|
1447
|
+
};
|
|
1448
|
+
var ICONS = {
|
|
1449
|
+
info: /* @__PURE__ */ jsx(Info, { size: 20, "aria-hidden": "true" }),
|
|
1450
|
+
success: /* @__PURE__ */ jsx(CheckCircle2, { size: 20, "aria-hidden": "true" }),
|
|
1451
|
+
warning: /* @__PURE__ */ jsx(AlertTriangle, { size: 20, "aria-hidden": "true" }),
|
|
1452
|
+
error: /* @__PURE__ */ jsx(XCircle, { size: 20, "aria-hidden": "true" })
|
|
478
1453
|
};
|
|
479
|
-
var FOCUSABLE_SELECTORS = [
|
|
480
|
-
"a[href]",
|
|
481
|
-
"button:not([disabled])",
|
|
482
|
-
"input:not([disabled])",
|
|
483
|
-
"select:not([disabled])",
|
|
484
|
-
"textarea:not([disabled])",
|
|
485
|
-
'[tabindex]:not([tabindex="-1"])'
|
|
486
|
-
].join(", ");
|
|
487
|
-
function useFocusTrap(containerRef, isActive) {
|
|
488
|
-
const previousActiveElement = React4.useRef(null);
|
|
489
|
-
React4.useEffect(() => {
|
|
490
|
-
if (!isActive) return;
|
|
491
|
-
const container = containerRef.current;
|
|
492
|
-
if (!container) return;
|
|
493
|
-
previousActiveElement.current = document.activeElement;
|
|
494
|
-
const getFocusableElements = () => {
|
|
495
|
-
return container.querySelectorAll(FOCUSABLE_SELECTORS);
|
|
496
|
-
};
|
|
497
|
-
let wasTabIndexAdded = false;
|
|
498
|
-
const focusableElements = getFocusableElements();
|
|
499
|
-
if (focusableElements.length > 0) {
|
|
500
|
-
focusableElements[0].focus();
|
|
501
|
-
} else {
|
|
502
|
-
container.setAttribute("tabindex", "-1");
|
|
503
|
-
wasTabIndexAdded = true;
|
|
504
|
-
container.focus();
|
|
505
|
-
}
|
|
506
|
-
const handleKeyDown = (e) => {
|
|
507
|
-
if (e.key !== "Tab") return;
|
|
508
|
-
const focusableElements2 = getFocusableElements();
|
|
509
|
-
if (focusableElements2.length === 0) {
|
|
510
|
-
e.preventDefault();
|
|
511
|
-
return;
|
|
512
|
-
}
|
|
513
|
-
const firstElement = focusableElements2[0];
|
|
514
|
-
const lastElement = focusableElements2[focusableElements2.length - 1];
|
|
515
|
-
if (e.shiftKey) {
|
|
516
|
-
if (document.activeElement === firstElement) {
|
|
517
|
-
e.preventDefault();
|
|
518
|
-
lastElement.focus();
|
|
519
|
-
}
|
|
520
|
-
} else {
|
|
521
|
-
if (document.activeElement === lastElement) {
|
|
522
|
-
e.preventDefault();
|
|
523
|
-
firstElement.focus();
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
};
|
|
527
|
-
document.addEventListener("keydown", handleKeyDown);
|
|
528
|
-
return () => {
|
|
529
|
-
document.removeEventListener("keydown", handleKeyDown);
|
|
530
|
-
if (wasTabIndexAdded) {
|
|
531
|
-
container.removeAttribute("tabindex");
|
|
532
|
-
}
|
|
533
|
-
previousActiveElement.current?.focus();
|
|
534
|
-
};
|
|
535
|
-
}, [isActive, containerRef]);
|
|
536
|
-
}
|
|
537
1454
|
var AlertContext = createContext(null);
|
|
538
1455
|
var useAlert = () => {
|
|
539
1456
|
const context = useContext(AlertContext);
|
|
540
1457
|
if (!context) {
|
|
541
|
-
throw new Error(
|
|
1458
|
+
throw new Error(
|
|
1459
|
+
"[Bigtablet DS] useAlert\uB294 <AlertProvider> \uC548\uC5D0\uC11C\uB9CC \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4.\n\n\uC571 \uCD5C\uC0C1\uB2E8\uC5D0 <AlertProvider>\uB85C \uAC10\uC2F8\uC8FC\uC138\uC694:\n <AlertProvider>\n <YourApp />\n </AlertProvider>"
|
|
1460
|
+
);
|
|
542
1461
|
}
|
|
543
1462
|
return context;
|
|
544
1463
|
};
|
|
545
1464
|
var AlertProvider = ({ children }) => {
|
|
546
|
-
const [alertState, setAlertState] = useState({
|
|
547
|
-
isOpen: false
|
|
548
|
-
});
|
|
1465
|
+
const [alertState, setAlertState] = useState({ isOpen: false });
|
|
549
1466
|
const showAlert = useCallback((options) => {
|
|
550
|
-
setAlertState({
|
|
551
|
-
...options,
|
|
552
|
-
isOpen: true
|
|
553
|
-
});
|
|
1467
|
+
setAlertState({ ...options, isOpen: true });
|
|
554
1468
|
}, []);
|
|
555
1469
|
const handleClose = useCallback(() => {
|
|
556
1470
|
setAlertState((prev) => ({ ...prev, isOpen: false }));
|
|
@@ -565,98 +1479,107 @@ var AlertProvider = ({ children }) => {
|
|
|
565
1479
|
}, [alertState.onCancel, handleClose]);
|
|
566
1480
|
return /* @__PURE__ */ jsxs(AlertContext.Provider, { value: { showAlert }, children: [
|
|
567
1481
|
children,
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
}
|
|
577
|
-
),
|
|
578
|
-
document.body
|
|
1482
|
+
/* @__PURE__ */ jsx(
|
|
1483
|
+
AlertModal,
|
|
1484
|
+
{
|
|
1485
|
+
...alertState,
|
|
1486
|
+
onConfirm: handleConfirm,
|
|
1487
|
+
onCancel: handleCancel,
|
|
1488
|
+
onClose: handleClose
|
|
1489
|
+
}
|
|
579
1490
|
)
|
|
580
1491
|
] });
|
|
581
1492
|
};
|
|
582
1493
|
var AlertModal = ({
|
|
1494
|
+
isOpen,
|
|
583
1495
|
variant = "info",
|
|
584
1496
|
title,
|
|
585
1497
|
message,
|
|
586
1498
|
confirmText = "\uD655\uC778",
|
|
587
1499
|
cancelText = "\uCDE8\uC18C",
|
|
588
1500
|
showCancel = false,
|
|
1501
|
+
destructive = false,
|
|
589
1502
|
actionsAlign = "right",
|
|
1503
|
+
showIcon = false,
|
|
590
1504
|
onConfirm,
|
|
591
1505
|
onCancel,
|
|
592
1506
|
onClose
|
|
593
1507
|
}) => {
|
|
594
|
-
const panelRef =
|
|
595
|
-
const titleId =
|
|
596
|
-
const messageId =
|
|
597
|
-
|
|
1508
|
+
const panelRef = React17.useRef(null);
|
|
1509
|
+
const titleId = React17.useId();
|
|
1510
|
+
const messageId = React17.useId();
|
|
1511
|
+
const [shouldRender, setShouldRender] = useState(isOpen);
|
|
1512
|
+
useFocusTrap(panelRef, isOpen);
|
|
1513
|
+
React17.useEffect(() => {
|
|
1514
|
+
if (isOpen) setShouldRender(true);
|
|
1515
|
+
}, [isOpen]);
|
|
1516
|
+
const overlayStyle = useSpring({
|
|
1517
|
+
opacity: isOpen ? 1 : 0,
|
|
1518
|
+
config: { tension: 280, friction: 28, clamp: !isOpen },
|
|
1519
|
+
onRest: (result) => {
|
|
1520
|
+
if (!isOpen && result.finished) setShouldRender(false);
|
|
1521
|
+
}
|
|
1522
|
+
});
|
|
1523
|
+
const panelStyle = useSpring({
|
|
1524
|
+
opacity: isOpen ? 1 : 0,
|
|
1525
|
+
transform: isOpen ? "scale(1) translateY(0px)" : "scale(0.96) translateY(-4px)",
|
|
1526
|
+
config: { tension: 280, friction: 28, clamp: !isOpen }
|
|
1527
|
+
});
|
|
1528
|
+
if (!shouldRender) return null;
|
|
1529
|
+
const confirmVariant = "filled";
|
|
1530
|
+
const cancelVariant = "outline";
|
|
598
1531
|
const modalClassName = cn("alert_modal", `alert_variant_${variant}`);
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
// biome-ignore lint/a11y/noStaticElementInteractions: modal overlay pattern — clickable backdrop without role=button (focus is trapped on the panel inside)
|
|
1532
|
+
return createPortal(
|
|
1533
|
+
// biome-ignore lint/a11y/noStaticElementInteractions: modal overlay pattern
|
|
602
1534
|
/* @__PURE__ */ jsx(
|
|
603
|
-
|
|
1535
|
+
animated.div,
|
|
604
1536
|
{
|
|
605
1537
|
className: "alert_overlay",
|
|
1538
|
+
style: overlayStyle,
|
|
606
1539
|
role: "presentation",
|
|
607
1540
|
onClick: onClose,
|
|
608
1541
|
onKeyDown: (e) => e.key === "Escape" && onClose(),
|
|
609
1542
|
children: /* @__PURE__ */ jsxs(
|
|
610
|
-
|
|
1543
|
+
animated.div,
|
|
611
1544
|
{
|
|
612
1545
|
ref: panelRef,
|
|
613
1546
|
className: modalClassName,
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
"aria-
|
|
621
|
-
"aria-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
`button_variant_${variant}`,
|
|
650
|
-
`button_size_${size}`,
|
|
651
|
-
fullWidth && "button_full_width",
|
|
652
|
-
radius2 && `button_radius_${radius2}`,
|
|
653
|
-
className
|
|
1547
|
+
style: panelStyle,
|
|
1548
|
+
onClick: (e) => e.stopPropagation(),
|
|
1549
|
+
onKeyDown: (e) => {
|
|
1550
|
+
if (e.key !== "Escape") e.stopPropagation();
|
|
1551
|
+
},
|
|
1552
|
+
role: "alertdialog",
|
|
1553
|
+
"aria-modal": "true",
|
|
1554
|
+
"aria-labelledby": title ? titleId : void 0,
|
|
1555
|
+
"aria-describedby": message ? messageId : void 0,
|
|
1556
|
+
children: [
|
|
1557
|
+
(showIcon || title) && /* @__PURE__ */ jsxs("div", { className: "alert_header", children: [
|
|
1558
|
+
showIcon && /* @__PURE__ */ jsx("span", { className: cn("alert_icon", `alert_icon_${variant}`), "aria-hidden": "true", children: ICONS[variant] }),
|
|
1559
|
+
title && /* @__PURE__ */ jsx("div", { className: "alert_title", id: titleId, children: title })
|
|
1560
|
+
] }),
|
|
1561
|
+
message && /* @__PURE__ */ jsx("div", { className: "alert_message", id: messageId, children: message }),
|
|
1562
|
+
/* @__PURE__ */ jsxs("div", { className: cn("alert_actions", `alert_actions_${actionsAlign}`), children: [
|
|
1563
|
+
showCancel && /* @__PURE__ */ jsx(Button, { variant: cancelVariant, size: "md", radius: "md", onClick: onCancel, children: cancelText }),
|
|
1564
|
+
/* @__PURE__ */ jsx(
|
|
1565
|
+
Button,
|
|
1566
|
+
{
|
|
1567
|
+
variant: confirmVariant,
|
|
1568
|
+
danger: destructive,
|
|
1569
|
+
size: "md",
|
|
1570
|
+
radius: "md",
|
|
1571
|
+
onClick: onConfirm,
|
|
1572
|
+
children: confirmText
|
|
1573
|
+
}
|
|
1574
|
+
)
|
|
1575
|
+
] })
|
|
1576
|
+
]
|
|
1577
|
+
}
|
|
1578
|
+
)
|
|
1579
|
+
}
|
|
1580
|
+
),
|
|
1581
|
+
document.body
|
|
654
1582
|
);
|
|
655
|
-
return /* @__PURE__ */ jsxs("button", { className: buttonClassName, ...props, children: [
|
|
656
|
-
leadingIcon && /* @__PURE__ */ jsx("span", { className: "button_icon", "aria-hidden": "true", children: leadingIcon }),
|
|
657
|
-
children && /* @__PURE__ */ jsx("span", { className: "button_label", children }),
|
|
658
|
-
trailingIcon && /* @__PURE__ */ jsx("span", { className: "button_icon", "aria-hidden": "true", children: trailingIcon })
|
|
659
|
-
] });
|
|
660
1583
|
};
|
|
661
1584
|
var Card = ({
|
|
662
1585
|
heading,
|
|
@@ -664,7 +1587,7 @@ var Card = ({
|
|
|
664
1587
|
shadow = "sm",
|
|
665
1588
|
padding = "md",
|
|
666
1589
|
bordered = false,
|
|
667
|
-
|
|
1590
|
+
variant = "default",
|
|
668
1591
|
className,
|
|
669
1592
|
children,
|
|
670
1593
|
...props
|
|
@@ -673,7 +1596,8 @@ var Card = ({
|
|
|
673
1596
|
"card",
|
|
674
1597
|
`card_shadow_${shadow}`,
|
|
675
1598
|
`card_p_${padding}`,
|
|
676
|
-
|
|
1599
|
+
variant !== "default" && `card_variant_${variant}`,
|
|
1600
|
+
{ card_bordered: bordered },
|
|
677
1601
|
className
|
|
678
1602
|
);
|
|
679
1603
|
return /* @__PURE__ */ jsxs("div", { className: cardClassName, ...props, children: [
|
|
@@ -689,12 +1613,12 @@ var Checkbox = ({
|
|
|
689
1613
|
ref,
|
|
690
1614
|
...props
|
|
691
1615
|
}) => {
|
|
692
|
-
const inputRef =
|
|
693
|
-
|
|
1616
|
+
const inputRef = React17.useRef(null);
|
|
1617
|
+
React17.useImperativeHandle(
|
|
694
1618
|
ref,
|
|
695
1619
|
() => inputRef.current
|
|
696
1620
|
);
|
|
697
|
-
|
|
1621
|
+
React17.useEffect(() => {
|
|
698
1622
|
if (!inputRef.current) return;
|
|
699
1623
|
inputRef.current.indeterminate = Boolean(indeterminate);
|
|
700
1624
|
}, [indeterminate]);
|
|
@@ -758,32 +1682,58 @@ var ChevronDownIcon = () => /* @__PURE__ */ jsx(
|
|
|
758
1682
|
);
|
|
759
1683
|
var Chip = ({
|
|
760
1684
|
type = "basic",
|
|
1685
|
+
size,
|
|
1686
|
+
tone = "default",
|
|
761
1687
|
label,
|
|
762
1688
|
selected,
|
|
763
1689
|
removable,
|
|
764
1690
|
disabled,
|
|
765
1691
|
open,
|
|
1692
|
+
leadingIcon,
|
|
766
1693
|
onClick,
|
|
767
1694
|
onRemove,
|
|
768
1695
|
className,
|
|
769
1696
|
...props
|
|
770
1697
|
}) => {
|
|
771
1698
|
const [iconHovered, setIconHovered] = useState(false);
|
|
772
|
-
const
|
|
773
|
-
const
|
|
1699
|
+
const isStatic = type === "static";
|
|
1700
|
+
const hasLeading = !isStatic && selected;
|
|
1701
|
+
const hasStaticLeading = isStatic && !!leadingIcon;
|
|
1702
|
+
const hasTrailingButton = (type === "input" || isStatic) && removable;
|
|
774
1703
|
const hasTrailingIcon = hasTrailingButton || type === "filter";
|
|
775
1704
|
const enterIcon = () => setIconHovered(true);
|
|
776
1705
|
const leaveIcon = () => setIconHovered(false);
|
|
777
1706
|
const chipClassName = cn(
|
|
778
1707
|
"chip",
|
|
779
1708
|
`chip_type_${type}`,
|
|
1709
|
+
size && `chip_size_${size}`,
|
|
1710
|
+
isStatic && `chip_tone_${tone}`,
|
|
780
1711
|
selected && "chip_selected",
|
|
781
|
-
hasLeading && "chip_has_leading",
|
|
1712
|
+
(hasLeading || hasStaticLeading) && "chip_has_leading",
|
|
782
1713
|
hasTrailingIcon && "chip_has_trailing",
|
|
783
1714
|
disabled && "chip_disabled",
|
|
784
1715
|
iconHovered && "chip_icon_hovered",
|
|
785
1716
|
className
|
|
786
1717
|
);
|
|
1718
|
+
if (isStatic) {
|
|
1719
|
+
return /* @__PURE__ */ jsxs("span", { className: chipClassName, ...props, children: [
|
|
1720
|
+
/* @__PURE__ */ jsxs("span", { className: "chip_content", children: [
|
|
1721
|
+
hasStaticLeading && /* @__PURE__ */ jsx("span", { className: "chip_icon", "aria-hidden": "true", children: leadingIcon }),
|
|
1722
|
+
/* @__PURE__ */ jsx("span", { className: "chip_label", children: label })
|
|
1723
|
+
] }),
|
|
1724
|
+
hasTrailingButton && /* @__PURE__ */ jsx(
|
|
1725
|
+
"button",
|
|
1726
|
+
{
|
|
1727
|
+
type: "button",
|
|
1728
|
+
className: "chip_trailing",
|
|
1729
|
+
disabled,
|
|
1730
|
+
onClick: onRemove,
|
|
1731
|
+
"aria-label": "Remove",
|
|
1732
|
+
children: /* @__PURE__ */ jsx("span", { className: "chip_icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx(CloseIcon, {}) })
|
|
1733
|
+
}
|
|
1734
|
+
)
|
|
1735
|
+
] });
|
|
1736
|
+
}
|
|
787
1737
|
return /* @__PURE__ */ jsxs("div", { className: chipClassName, ...props, children: [
|
|
788
1738
|
/* @__PURE__ */ jsxs(
|
|
789
1739
|
"button",
|
|
@@ -850,25 +1800,23 @@ var Dropdown = ({
|
|
|
850
1800
|
defaultValue = null,
|
|
851
1801
|
disabled,
|
|
852
1802
|
size = "md",
|
|
853
|
-
fullWidth,
|
|
854
1803
|
className
|
|
855
1804
|
}) => {
|
|
856
|
-
const internalId =
|
|
1805
|
+
const internalId = useId();
|
|
857
1806
|
const dropdownId = id ?? internalId;
|
|
858
1807
|
const isControlled = value !== void 0;
|
|
859
|
-
const [internalValue, setInternalValue] =
|
|
1808
|
+
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
860
1809
|
const currentValue = isControlled ? value ?? null : internalValue;
|
|
861
|
-
const [isOpen, setIsOpen] =
|
|
862
|
-
const [activeIndex, setActiveIndex] =
|
|
863
|
-
const [dropUp, setDropUp] =
|
|
864
|
-
const wrapperRef =
|
|
865
|
-
const controlRef =
|
|
866
|
-
const currentOption =
|
|
1810
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
1811
|
+
const [activeIndex, setActiveIndex] = useState(-1);
|
|
1812
|
+
const [dropUp, setDropUp] = useState(false);
|
|
1813
|
+
const wrapperRef = useRef(null);
|
|
1814
|
+
const controlRef = useRef(null);
|
|
1815
|
+
const currentOption = useMemo(
|
|
867
1816
|
() => options.find((o) => o.value === currentValue) ?? null,
|
|
868
1817
|
[options, currentValue]
|
|
869
1818
|
);
|
|
870
|
-
const
|
|
871
|
-
const setValue = React4.useCallback(
|
|
1819
|
+
const setValue = useCallback(
|
|
872
1820
|
(next) => {
|
|
873
1821
|
const option = options.find((o) => o.value === next) ?? null;
|
|
874
1822
|
if (!isControlled) setInternalValue(next);
|
|
@@ -876,7 +1824,7 @@ var Dropdown = ({
|
|
|
876
1824
|
},
|
|
877
1825
|
[isControlled, onChange, options]
|
|
878
1826
|
);
|
|
879
|
-
|
|
1827
|
+
useEffect(() => {
|
|
880
1828
|
const handleOutsideClick = (e) => {
|
|
881
1829
|
if (!wrapperRef.current?.contains(e.target)) {
|
|
882
1830
|
setIsOpen(false);
|
|
@@ -947,7 +1895,7 @@ var Dropdown = ({
|
|
|
947
1895
|
break;
|
|
948
1896
|
}
|
|
949
1897
|
};
|
|
950
|
-
|
|
1898
|
+
useEffect(() => {
|
|
951
1899
|
if (!isOpen) return;
|
|
952
1900
|
const matchedIndex = options.findIndex((o) => o.value === currentValue && !o.disabled);
|
|
953
1901
|
setActiveIndex(
|
|
@@ -957,82 +1905,98 @@ var Dropdown = ({
|
|
|
957
1905
|
)
|
|
958
1906
|
);
|
|
959
1907
|
}, [isOpen, options, currentValue]);
|
|
960
|
-
|
|
1908
|
+
useEffect(() => {
|
|
961
1909
|
if (!isOpen || !controlRef.current) return;
|
|
962
1910
|
const rect = controlRef.current.getBoundingClientRect();
|
|
963
|
-
const listHeight = Math.min(options.length * 56, 288);
|
|
964
1911
|
const spaceBelow = window.innerHeight - rect.bottom;
|
|
965
1912
|
const spaceAbove = rect.top;
|
|
966
|
-
|
|
967
|
-
|
|
1913
|
+
const MIN_BELOW = 120;
|
|
1914
|
+
setDropUp(spaceBelow < MIN_BELOW && spaceAbove > spaceBelow);
|
|
1915
|
+
}, [isOpen]);
|
|
968
1916
|
const rootClassName = cn("dropdown", `dropdown_size_${size}`, className);
|
|
969
1917
|
const fieldsetClassName = cn("dropdown_fieldset", { is_open: isOpen, is_disabled: disabled });
|
|
970
1918
|
const listClassName = cn("dropdown_list", { dropdown_list_up: dropUp });
|
|
1919
|
+
const listStyle = useSpringPresence({
|
|
1920
|
+
visible: isOpen,
|
|
1921
|
+
from: dropUp ? "translateY(4px)" : "translateY(-4px)"
|
|
1922
|
+
});
|
|
971
1923
|
return /* @__PURE__ */ jsxs(
|
|
972
1924
|
"div",
|
|
973
1925
|
{
|
|
974
1926
|
ref: wrapperRef,
|
|
975
1927
|
className: rootClassName,
|
|
976
|
-
style: fullWidth ? { width: "100%" } : void 0,
|
|
977
1928
|
children: [
|
|
978
|
-
/* @__PURE__ */
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1929
|
+
label && /* @__PURE__ */ jsx("label", { htmlFor: dropdownId, className: "dropdown_label", children: label }),
|
|
1930
|
+
/* @__PURE__ */ jsx("div", { className: fieldsetClassName, children: /* @__PURE__ */ jsxs(
|
|
1931
|
+
"button",
|
|
1932
|
+
{
|
|
1933
|
+
ref: controlRef,
|
|
1934
|
+
id: dropdownId,
|
|
1935
|
+
type: "button",
|
|
1936
|
+
className: cn("dropdown_control", { is_disabled: disabled }),
|
|
1937
|
+
"aria-haspopup": "listbox",
|
|
1938
|
+
"aria-expanded": isOpen,
|
|
1939
|
+
"aria-controls": `${dropdownId}_listbox`,
|
|
1940
|
+
onClick: () => !disabled && setIsOpen((o) => !o),
|
|
1941
|
+
onKeyDown,
|
|
1942
|
+
disabled,
|
|
1943
|
+
children: [
|
|
1944
|
+
/* @__PURE__ */ jsx("span", { className: currentOption ? "dropdown_value" : "dropdown_placeholder", children: currentOption ? currentOption.label : placeholder }),
|
|
1945
|
+
/* @__PURE__ */ jsx(
|
|
1946
|
+
"span",
|
|
1947
|
+
{
|
|
1948
|
+
className: cn("dropdown_icon", { dropdown_icon_open: isOpen }),
|
|
1949
|
+
"aria-hidden": "true",
|
|
1950
|
+
children: /* @__PURE__ */ jsx(ChevronDown, { size: 20 })
|
|
1951
|
+
}
|
|
1952
|
+
)
|
|
1953
|
+
]
|
|
1954
|
+
}
|
|
1955
|
+
) }),
|
|
1956
|
+
isOpen && /* @__PURE__ */ jsx(
|
|
1957
|
+
animated.div,
|
|
1958
|
+
{
|
|
1959
|
+
id: `${dropdownId}_listbox`,
|
|
1960
|
+
role: "listbox",
|
|
1961
|
+
className: listClassName,
|
|
1962
|
+
style: listStyle,
|
|
1963
|
+
children: options.map((opt, i) => {
|
|
1964
|
+
const selected = currentValue === opt.value;
|
|
1965
|
+
const active = i === activeIndex;
|
|
1966
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1967
|
+
/* @__PURE__ */ jsxs(
|
|
1968
|
+
"div",
|
|
1969
|
+
{
|
|
1970
|
+
role: "option",
|
|
1971
|
+
tabIndex: -1,
|
|
1972
|
+
"aria-selected": selected,
|
|
1973
|
+
"aria-disabled": opt.disabled ? true : void 0,
|
|
1974
|
+
className: cn("dropdown_option", {
|
|
1975
|
+
is_selected: selected,
|
|
1976
|
+
is_active: active,
|
|
1977
|
+
is_disabled: opt.disabled
|
|
1978
|
+
}),
|
|
1979
|
+
onMouseEnter: () => !opt.disabled && setActiveIndex(i),
|
|
1980
|
+
onClick: () => {
|
|
1981
|
+
if (opt.disabled) return;
|
|
1982
|
+
setValue(opt.value);
|
|
1983
|
+
setIsOpen(false);
|
|
1984
|
+
},
|
|
1985
|
+
children: [
|
|
1986
|
+
opt.leadingIcon && /* @__PURE__ */ jsx("span", { className: "dropdown_option_icon", children: opt.leadingIcon }),
|
|
1987
|
+
/* @__PURE__ */ jsxs("span", { className: "dropdown_option_content", children: [
|
|
1988
|
+
/* @__PURE__ */ jsx("span", { className: "dropdown_option_label", children: opt.label }),
|
|
1989
|
+
opt.supportingText && /* @__PURE__ */ jsx("span", { className: "dropdown_option_supporting", children: opt.supportingText })
|
|
1990
|
+
] }),
|
|
1991
|
+
(selected || opt.trailingIcon) && /* @__PURE__ */ jsx("span", { className: "dropdown_option_trailing", children: opt.trailingIcon ?? /* @__PURE__ */ jsx(Check, { size: 16, "aria-hidden": "true" }) })
|
|
1992
|
+
]
|
|
1993
|
+
}
|
|
1994
|
+
),
|
|
1995
|
+
opt.showDivider && /* @__PURE__ */ jsx("hr", { className: "dropdown_option_divider" })
|
|
1996
|
+
] }, opt.value);
|
|
1997
|
+
})
|
|
1998
|
+
}
|
|
1999
|
+
)
|
|
1036
2000
|
]
|
|
1037
2001
|
}
|
|
1038
2002
|
);
|
|
@@ -1059,9 +2023,9 @@ var DatePicker = ({
|
|
|
1059
2023
|
minDateSrFormat = "Minimum date: {date}",
|
|
1060
2024
|
selectableRangeUntilTodaySrText = "Selectable up to today"
|
|
1061
2025
|
}) => {
|
|
1062
|
-
const groupId =
|
|
1063
|
-
const constraintId =
|
|
1064
|
-
const { todayYear, todayMonth, todayDay } =
|
|
2026
|
+
const groupId = React17.useId();
|
|
2027
|
+
const constraintId = React17.useId();
|
|
2028
|
+
const { todayYear, todayMonth, todayDay } = React17.useMemo(() => {
|
|
1065
2029
|
const now = /* @__PURE__ */ new Date();
|
|
1066
2030
|
return {
|
|
1067
2031
|
todayYear: now.getFullYear(),
|
|
@@ -1070,7 +2034,7 @@ var DatePicker = ({
|
|
|
1070
2034
|
};
|
|
1071
2035
|
}, []);
|
|
1072
2036
|
const endYear = endYearProp ?? todayYear + 10;
|
|
1073
|
-
const parsed =
|
|
2037
|
+
const parsed = React17.useMemo(() => {
|
|
1074
2038
|
if (!value) return { year: 0, month: 0, day: 0 };
|
|
1075
2039
|
const [y, m, d] = value.split("-").map(Number);
|
|
1076
2040
|
return {
|
|
@@ -1079,7 +2043,7 @@ var DatePicker = ({
|
|
|
1079
2043
|
day: d || 0
|
|
1080
2044
|
};
|
|
1081
2045
|
}, [value]);
|
|
1082
|
-
const min =
|
|
2046
|
+
const min = React17.useMemo(() => {
|
|
1083
2047
|
if (!minDate) return { year: 0, month: 0, day: 0 };
|
|
1084
2048
|
const [y, m, d] = minDate.split("-").map(Number);
|
|
1085
2049
|
return {
|
|
@@ -1099,7 +2063,7 @@ var DatePicker = ({
|
|
|
1099
2063
|
min.year > 0 && min.month > 0 && year === min.year && month === min.month ? min.day : 1
|
|
1100
2064
|
)
|
|
1101
2065
|
);
|
|
1102
|
-
const maxDay =
|
|
2066
|
+
const maxDay = React17.useMemo(() => {
|
|
1103
2067
|
if (!year || !month) return 31;
|
|
1104
2068
|
const daysInMonth = getDaysInMonth(year, month);
|
|
1105
2069
|
if (selectableRange === "until-today" && year === todayYear && month === todayMonth) {
|
|
@@ -1107,28 +2071,28 @@ var DatePicker = ({
|
|
|
1107
2071
|
}
|
|
1108
2072
|
return daysInMonth;
|
|
1109
2073
|
}, [year, month, selectableRange, todayYear, todayMonth, todayDay]);
|
|
1110
|
-
const yearOptions =
|
|
2074
|
+
const yearOptions = React17.useMemo(
|
|
1111
2075
|
() => range(startYear, maxYear).map((y) => ({
|
|
1112
2076
|
value: String(y),
|
|
1113
2077
|
label: String(y)
|
|
1114
2078
|
})),
|
|
1115
2079
|
[startYear, maxYear]
|
|
1116
2080
|
);
|
|
1117
|
-
const monthOptions =
|
|
2081
|
+
const monthOptions = React17.useMemo(
|
|
1118
2082
|
() => range(minMonth, Math.max(minMonth, maxMonth)).map((m) => ({
|
|
1119
2083
|
value: String(m),
|
|
1120
2084
|
label: pad(m)
|
|
1121
2085
|
})),
|
|
1122
2086
|
[minMonth, maxMonth]
|
|
1123
2087
|
);
|
|
1124
|
-
const dayOptions =
|
|
2088
|
+
const dayOptions = React17.useMemo(
|
|
1125
2089
|
() => range(minDay, Math.max(minDay, maxDay)).map((d) => ({
|
|
1126
2090
|
value: String(d),
|
|
1127
2091
|
label: pad(d)
|
|
1128
2092
|
})),
|
|
1129
2093
|
[minDay, maxDay]
|
|
1130
2094
|
);
|
|
1131
|
-
const emit =
|
|
2095
|
+
const emit = React17.useCallback(
|
|
1132
2096
|
(yy, mm, dd) => {
|
|
1133
2097
|
if (mode === "year-month") {
|
|
1134
2098
|
onChange(`${yy}-${pad(mm)}`);
|
|
@@ -1139,7 +2103,7 @@ var DatePicker = ({
|
|
|
1139
2103
|
},
|
|
1140
2104
|
[mode, onChange]
|
|
1141
2105
|
);
|
|
1142
|
-
const handleYearChange =
|
|
2106
|
+
const handleYearChange = React17.useCallback(
|
|
1143
2107
|
(raw) => {
|
|
1144
2108
|
if (!raw) return;
|
|
1145
2109
|
const newYear = Number(raw);
|
|
@@ -1156,14 +2120,14 @@ var DatePicker = ({
|
|
|
1156
2120
|
},
|
|
1157
2121
|
[month, day, min.year, min.month, selectableRange, todayYear, todayMonth, emit]
|
|
1158
2122
|
);
|
|
1159
|
-
const handleMonthChange =
|
|
2123
|
+
const handleMonthChange = React17.useCallback(
|
|
1160
2124
|
(raw) => {
|
|
1161
2125
|
if (!raw || !year) return;
|
|
1162
2126
|
emit(year, Number(raw), day || void 0);
|
|
1163
2127
|
},
|
|
1164
2128
|
[year, day, emit]
|
|
1165
2129
|
);
|
|
1166
|
-
const handleDayChange =
|
|
2130
|
+
const handleDayChange = React17.useCallback(
|
|
1167
2131
|
(raw) => {
|
|
1168
2132
|
if (!raw || !year || !month) return;
|
|
1169
2133
|
emit(year, month, Number(raw));
|
|
@@ -1238,673 +2202,190 @@ var Divider = ({ weight = "standard", className, ...props }) => {
|
|
|
1238
2202
|
const dividerClassName = cn("divider", `divider_weight_${weight}`, className);
|
|
1239
2203
|
return /* @__PURE__ */ jsx("hr", { className: dividerClassName, ...props });
|
|
1240
2204
|
};
|
|
1241
|
-
var FAB = ({ variant = "primary", icon, className, ...props }) => {
|
|
1242
|
-
const fabClassName = cn("fab", `fab_variant_${variant}`, className);
|
|
1243
|
-
return /* @__PURE__ */ jsx("button", { className: fabClassName, ...props, children: /* @__PURE__ */ jsx("span", { className: "fab_icon", "aria-hidden": "true", children: icon }) });
|
|
1244
|
-
};
|
|
1245
2205
|
var FileInput = ({
|
|
1246
2206
|
label = "Choose file",
|
|
1247
2207
|
onFiles,
|
|
1248
2208
|
supportingText,
|
|
1249
2209
|
preview = false,
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
const rootClassName = cn("file_input", disabled && "file_input_disabled", className);
|
|
1286
|
-
return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
|
|
1287
|
-
/* @__PURE__ */ jsx(
|
|
1288
|
-
"input",
|
|
1289
|
-
{
|
|
1290
|
-
id: inputId,
|
|
1291
|
-
type: "file",
|
|
1292
|
-
className: "file_input_control",
|
|
1293
|
-
disabled,
|
|
1294
|
-
"aria-describedby": supportingText ? helperId : void 0,
|
|
1295
|
-
onChange: handleChange,
|
|
1296
|
-
...props
|
|
1297
|
-
}
|
|
1298
|
-
),
|
|
1299
|
-
/* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "file_input_label", children: label }),
|
|
1300
|
-
supportingText && /* @__PURE__ */ jsx("span", { id: helperId, className: "file_input_helper", children: supportingText }),
|
|
1301
|
-
previewUrls.length > 0 && /* @__PURE__ */ jsx("div", { className: "file_input_preview", children: previewUrls.map((url) => (
|
|
1302
|
-
// biome-ignore lint/performance/noImgElement: framework-agnostic DS — host app should swap with next/image if needed
|
|
1303
|
-
/* @__PURE__ */ jsx("img", { src: url, alt: "", className: "file_input_preview_img" }, url)
|
|
1304
|
-
)) })
|
|
1305
|
-
] });
|
|
1306
|
-
};
|
|
1307
|
-
|
|
1308
|
-
// src/ui/icon/icon-data.ts
|
|
1309
|
-
var ICON_DATA = {
|
|
1310
|
-
add_a_photo: {
|
|
1311
|
-
300: {
|
|
1312
|
-
noFill: "M440-437.77ZM117.69-140q-23.53 0-40.61-17.08T60-197.69v-479.54q0-23 17.08-40.35 17.08-17.34 40.61-17.34h137.39L328.46-820h248.62v45.39H349.54l-73.39 85.07H117.69q-5.38 0-8.84 3.66-3.46 3.65-3.46 8.65v479.54q0 5.38 3.46 8.84t8.84 3.46h644.62q5.38 0 8.84-3.46t3.46-8.84v-379.39H820v379.39q0 23.53-17.35 40.61Q785.31-140 762.31-140H117.69Zm656.92-550.15v-84.46h-84.46V-820h84.46v-85.08H820V-820h85.08v45.39H820v84.46h-45.39ZM439.69-280.46q66.92 0 112.27-45.35 45.35-45.34 45.35-112.27 0-66.92-45.35-111.96-45.35-45.04-112.27-45.04-66.92 0-111.96 45.04-45.04 45.04-45.04 111.96 0 66.93 45.04 112.27 45.04 45.35 111.96 45.35Zm0-45.39q-48.07 0-79.84-32.07-31.77-32.08-31.77-80.16 0-48.07 31.77-79.84 31.77-31.77 79.84-31.77 48.08 0 80.16 31.77 32.07 31.77 32.07 79.84 0 48.08-32.07 80.16-32.08 32.07-80.16 32.07Z",
|
|
1313
|
-
fill: "M774.61-690.15v-84.46h-84.46V-820h84.46v-85.08H820V-820h85.08v45.39H820v84.46h-45.39ZM440.19-280.46q66.42 0 111.77-45.35 45.35-45.34 45.35-111.77 0-67.42-45.35-112.46-45.35-45.04-111.77-45.04-67.42 0-112.46 45.04-45.04 45.04-45.04 112.46 0 66.43 45.04 111.77 45.04 45.35 112.46 45.35Zm0-45.39q-48.57 0-80.34-32.07-31.77-32.08-31.77-79.66 0-48.57 31.77-80.34 31.77-31.77 80.34-31.77 47.58 0 79.66 31.77 32.07 31.77 32.07 80.34 0 47.58-32.07 79.66-32.08 32.07-79.66 32.07ZM117.69-140q-23.53 0-40.61-17.08T60-197.69v-479.54q0-23 17.08-40.35 17.08-17.34 40.61-17.34h137.39L328.46-820h288.62v118.46h84.46v84.46H820v419.39q0 23.53-17.35 40.61Q785.31-140 762.31-140H117.69Z"
|
|
1314
|
-
},
|
|
1315
|
-
400: {
|
|
1316
|
-
noFill: "M440-437ZM100-120q-24 0-42-18t-18-42v-513q0-23 18-41.5t42-18.5h147l73-87h274v60H348l-73 87H100v513h680v-414h60v414q0 24-18.5 42T780-120H100Zm680-574v-86h-86v-60h86v-87h60v87h87v60h-87v86h-60ZM439.5-267q72.5 0 121.5-49t49-121.5q0-72.5-49-121T439.5-607q-72.5 0-121 48.5t-48.5 121q0 72.5 48.5 121.5t121 49Zm0-60q-47.5 0-78.5-31.5t-31-79q0-47.5 31-78.5t78.5-31q47.5 0 79 31t31.5 78.5q0 47.5-31.5 79t-79 31.5Z",
|
|
1317
|
-
fill: "M780-694v-86h-86v-60h86v-87h60v87h87v60h-87v86h-60ZM440-267q72 0 121-49t49-121q0-73-49-121.5T440-607q-73 0-121.5 48.5T270-437q0 72 48.5 121T440-267Zm0-60q-48 0-79-31.5T330-437q0-48 31-79t79-31q47 0 78.5 31t31.5 79q0 47-31.5 78.5T440-327ZM100-120q-24 0-42-18t-18-42v-513q0-23 18-41.5t42-18.5h147l73-87h314v120h86v86h120v454q0 24-18.5 42T780-120H100Z"
|
|
1318
|
-
}
|
|
1319
|
-
},
|
|
1320
|
-
add_circle: {
|
|
1321
|
-
300: {
|
|
1322
|
-
noFill: "M459.54-290h45.38v-164.46H670v-45.39H504.92V-670h-45.38v170.15H290v45.39h169.54V-290Zm20.79 190q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Zm.17-45.39q139.19 0 236.65-97.76 97.46-97.77 97.46-237.35 0-139.19-97.27-236.65-97.27-97.46-237.34-97.46-139.08 0-236.85 97.27-97.76 97.27-97.76 237.34 0 139.08 97.76 236.85 97.77 97.76 237.35 97.76ZM480-480Z",
|
|
1323
|
-
fill: "M459.54-290h45.38v-164.46H670v-45.39H504.92V-670h-45.38v170.15H290v45.39h169.54V-290Zm20.79 190q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Z"
|
|
1324
|
-
},
|
|
1325
|
-
400: {
|
|
1326
|
-
noFill: "M453-280h60v-166h167v-60H513v-174h-60v174H280v60h173v166Zm27.27 200q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z",
|
|
1327
|
-
fill: "M453-280h60v-166h167v-60H513v-174h-60v174H280v60h173v166Zm27.27 200q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Z"
|
|
1328
|
-
}
|
|
1329
|
-
},
|
|
1330
|
-
add_lg: {
|
|
1331
|
-
300: {
|
|
1332
|
-
noFill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z",
|
|
1333
|
-
fill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z"
|
|
1334
|
-
},
|
|
1335
|
-
400: {
|
|
1336
|
-
noFill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z",
|
|
1337
|
-
fill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z"
|
|
1338
|
-
}
|
|
1339
|
-
},
|
|
1340
|
-
add_md: {
|
|
1341
|
-
300: {
|
|
1342
|
-
noFill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z",
|
|
1343
|
-
fill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z"
|
|
1344
|
-
},
|
|
1345
|
-
400: {
|
|
1346
|
-
noFill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z",
|
|
1347
|
-
fill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z"
|
|
1348
|
-
}
|
|
1349
|
-
},
|
|
1350
|
-
apartment: {
|
|
1351
|
-
300: {
|
|
1352
|
-
noFill: "M130-136.92v-536.54h163.85v-163.46h372.69v327.3H830v372.7H539.54v-163.85H420.46v163.85H130Zm45.38-45.39h118.47v-118.46H175.38v118.46Zm0-163.84h118.47v-118.08H175.38v118.08Zm0-163.47h118.47v-118.46H175.38v118.46Zm163.85 163.47h118.08v-118.08H339.23v118.08Zm0-163.47h118.08v-118.46H339.23v118.46Zm0-163.84h118.08v-118.08H339.23v118.08Zm163.46 327.31h118.46v-118.08H502.69v118.08Zm0-163.47h118.46v-118.46H502.69v118.46Zm0-163.84h118.46v-118.08H502.69v118.08Zm163.85 491.15h118.08v-118.46H666.54v118.46Zm0-163.84h118.08v-118.08H666.54v118.08Z",
|
|
1353
|
-
fill: "M130-136.92v-536.54h163.85v-163.46h372.69v327.3H830v372.7H539.54v-163.85H420.46v163.85H130Zm45.38-45.39h118.47v-118.46H175.38v118.46Zm0-163.84h118.47v-118.08H175.38v118.08Zm0-163.47h118.47v-118.46H175.38v118.46Zm163.85 163.47h118.08v-118.08H339.23v118.08Zm0-163.47h118.08v-118.46H339.23v118.46Zm0-163.84h118.08v-118.08H339.23v118.08Zm163.46 327.31h118.46v-118.08H502.69v118.08Zm0-163.47h118.46v-118.46H502.69v118.46Zm0-163.84h118.46v-118.08H502.69v118.08Zm163.85 491.15h118.08v-118.46H666.54v118.46Zm0-163.84h118.08v-118.08H666.54v118.08Z"
|
|
1354
|
-
},
|
|
1355
|
-
400: {
|
|
1356
|
-
noFill: "M120-120v-555h165v-165h390v330h165v390H533v-165H427v165H120Zm60-60h105v-105H180v105Zm0-165h105v-105H180v105Zm0-165h105v-105H180v105Zm165 165h105v-105H345v105Zm0-165h105v-105H345v105Zm0-165h105v-105H345v105Zm165 330h105v-105H510v105Zm0-165h105v-105H510v105Zm0-165h105v-105H510v105Zm165 495h105v-105H675v105Zm0-165h105v-105H675v105Z",
|
|
1357
|
-
fill: "M120-120v-555h165v-165h390v330h165v390H533v-165H427v165H120Zm60-60h105v-105H180v105Zm0-165h105v-105H180v105Zm0-165h105v-105H180v105Zm165 165h105v-105H345v105Zm0-165h105v-105H345v105Zm0-165h105v-105H345v105Zm165 330h105v-105H510v105Zm0-165h105v-105H510v105Zm0-165h105v-105H510v105Zm165 495h105v-105H675v105Zm0-165h105v-105H675v105Z"
|
|
1358
|
-
}
|
|
1359
|
-
},
|
|
1360
|
-
arrow_back: {
|
|
1361
|
-
300: {
|
|
1362
|
-
noFill: "M266.31-457.31 512-212l-32 32-300-300 300-300 32 32-245.69 245.31H780v45.38H266.31Z",
|
|
1363
|
-
fill: "M266.31-457.31 512-212l-32 32-300-300 300-300 32 32-245.69 245.31H780v45.38H266.31Z"
|
|
1364
|
-
},
|
|
1365
|
-
400: {
|
|
1366
|
-
noFill: "m274-450 248 248-42 42-320-320 320-320 42 42-248 248h526v60H274Z",
|
|
1367
|
-
fill: "m274-450 248 248-42 42-320-320 320-320 42 42-248 248h526v60H274Z"
|
|
1368
|
-
}
|
|
1369
|
-
},
|
|
1370
|
-
calendar_today: {
|
|
1371
|
-
300: {
|
|
1372
|
-
noFill: "M197.69-100q-23.53 0-40.61-17.08T140-157.69v-579.23q0-23.53 17.08-40.61t40.61-17.08h73.85v-70h50.38v70h317.69v-70h49.23v70h73.47q23.53 0 40.61 17.08T820-736.92v579.23q0 23.53-17.08 40.61T762.31-100H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46V-555H185.39v397.31q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3-454.99h589.22v-136.54q0-4.62-3.84-8.46-3.85-3.85-8.46-3.85H197.69q-4.61 0-8.46 3.85-3.84 3.84-3.84 8.46v136.54Zm0 0v-148.85 148.85Z",
|
|
1373
|
-
fill: "M197.69-100q-23.53 0-40.61-17.08T140-157.69v-579.23q0-23.53 17.08-40.61t40.61-17.08h73.85v-70h50.38v70h317.69v-70h49.23v70h73.47q23.53 0 40.61 17.08T820-736.92v579.23q0 23.53-17.08 40.61T762.31-100H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46V-555H185.39v397.31q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Z"
|
|
1374
|
-
},
|
|
1375
|
-
400: {
|
|
1376
|
-
noFill: "M180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Zm0-490h600v-130H180v130Zm0 0v-130 130Z",
|
|
1377
|
-
fill: "M180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Z"
|
|
1378
|
-
}
|
|
1379
|
-
},
|
|
1380
|
-
check: {
|
|
1381
|
-
300: {
|
|
1382
|
-
noFill: "M379.15-258.31 168.62-468.85l32.61-32.23 177.92 177.93 379-379.39 32.62 32.62-411.62 411.61Z",
|
|
1383
|
-
fill: "M379.15-258.31 168.62-468.85l32.61-32.23 177.92 177.93 379-379.39 32.62 32.62-411.62 411.61Z"
|
|
1384
|
-
},
|
|
1385
|
-
400: {
|
|
1386
|
-
noFill: "M378-246 154-470l43-43 181 181 384-384 43 43-427 427Z",
|
|
1387
|
-
fill: "M378-246 154-470l43-43 181 181 384-384 43 43-427 427Z"
|
|
1388
|
-
}
|
|
1389
|
-
},
|
|
1390
|
-
check_box: {
|
|
1391
|
-
300: {
|
|
1392
|
-
noFill: "m420.54-332.54 274-274-32.62-32.61-241.38 241.38-117.85-117.46-32.61 32.61 150.46 150.08ZM197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3-589.22v589.22-589.22Z",
|
|
1393
|
-
fill: "m420.54-332.54 274-274.61-32.62-32.62-241.38 242-117.85-117.46-32.61 32.61 150.46 150.08ZM197.69-140q-23.61 0-40.65-17.04T140-197.69v-564.62q0-23.61 17.04-40.65T197.69-820h564.62q23.61 0 40.65 17.04T820-762.31v564.62q0 23.61-17.04 40.65T762.31-140H197.69Z"
|
|
1394
|
-
},
|
|
1395
|
-
400: {
|
|
1396
|
-
noFill: "m419-321 289-289-43-43-246 246-119-119-43 43 162 162ZM180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0-600v600-600Z",
|
|
1397
|
-
fill: "m419-321 289-290-43-43-246 247-119-119-43 43 162 162ZM180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Z"
|
|
1398
|
-
}
|
|
1399
|
-
},
|
|
1400
|
-
check_circle: {
|
|
1401
|
-
300: {
|
|
1402
|
-
noFill: "M421-311.46 690.54-581l-34.85-34.23L421-380.15 302.54-498.61l-33.85 34.23L421-311.46ZM480.07-100q-78.22 0-147.4-29.92t-120.99-81.71q-51.81-51.79-81.75-120.94Q100-401.71 100-479.93q0-78.84 29.92-148.21t81.71-120.68q51.79-51.31 120.94-81.25Q401.71-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.22-29.92 147.4t-81.21 120.99q-51.29 51.81-120.63 81.75Q558.9-100 480.07-100Zm-.07-45.39q139.69 0 237.15-97.76 97.46-97.77 97.46-236.85 0-139.69-97.46-237.15-97.46-97.46-237.15-97.46-139.08 0-236.85 97.46-97.76 97.46-97.76 237.15 0 139.08 97.76 236.85 97.77 97.76 236.85 97.76ZM480-480Z",
|
|
1403
|
-
fill: "M421-311.46 690.54-581l-34.85-34.23L421-380.15 302.54-498.61l-33.85 34.23L421-311.46ZM480.07-100q-78.22 0-147.4-29.92t-120.99-81.71q-51.81-51.79-81.75-120.94Q100-401.71 100-479.93q0-78.84 29.92-148.21t81.71-120.68q51.79-51.31 120.94-81.25Q401.71-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.22-29.92 147.4t-81.21 120.99q-51.29 51.81-120.63 81.75Q558.9-100 480.07-100Z"
|
|
1404
|
-
},
|
|
1405
|
-
400: {
|
|
1406
|
-
noFill: "m421-298 283-283-46-45-237 237-120-120-45 45 165 166Zm59 218q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Zm0-60q142 0 241-99.5T820-480q0-142-99-241t-241-99q-141 0-240.5 99T140-480q0 141 99.5 240.5T480-140Zm0-340Z",
|
|
1407
|
-
fill: "m421-298 283-283-46-45-237 237-120-120-45 45 165 166Zm59 218q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Z"
|
|
1408
|
-
}
|
|
1409
|
-
},
|
|
1410
|
-
close: {
|
|
1411
|
-
300: {
|
|
1412
|
-
noFill: "m250.92-218.92-32-32L448-480 218.92-709.08l32-32L480-512l229.08-229.08 32 32L512-480l229.08 229.08-32 32L480-448 250.92-218.92Z",
|
|
1413
|
-
fill: "m250.92-218.92-32-32L448-480 218.92-709.08l32-32L480-512l229.08-229.08 32 32L512-480l229.08 229.08-32 32L480-448 250.92-218.92Z"
|
|
1414
|
-
},
|
|
1415
|
-
400: {
|
|
1416
|
-
noFill: "m249-207-42-42 231-231-231-231 42-42 231 231 231-231 42 42-231 231 231 231-42 42-231-231-231 231Z",
|
|
1417
|
-
fill: "m249-207-42-42 231-231-231-231 42-42 231 231 231-231 42 42-231 231 231 231-42 42-231-231-231 231Z"
|
|
1418
|
-
}
|
|
1419
|
-
},
|
|
1420
|
-
close_small: {
|
|
1421
|
-
300: {
|
|
1422
|
-
noFill: "m302.69-270.31-32.38-32.38L447.62-480 270.31-656.31l32.38-32.38L480-511.38l176.31-177.31 32.38 32.38L511.38-480l177.31 177.31-32.38 32.38L480-447.62 302.69-270.31Z",
|
|
1423
|
-
fill: "m325.2-292.54-32.66-32.38L447.34-480l-154.8-154.46 32.66-32L480-511.77l154.18-154.69 32.28 32L511.66-480l154.8 155.08-32.28 32.38L480-447.23 325.2-292.54Z"
|
|
1424
|
-
},
|
|
1425
|
-
400: {
|
|
1426
|
-
noFill: "m300-258-42-42 180-180-180-179 42-42 180 180 179-180 42 42-180 179 180 180-42 42-179-180-180 180Z",
|
|
1427
|
-
fill: "M328.28-286 286-328l151.72-152L286-631l42.28-42L480-521.39 630.72-673 673-631 521.28-480 673-328l-42.28 42L480-437.61 328.28-286Z"
|
|
1428
|
-
}
|
|
1429
|
-
},
|
|
1430
|
-
cloud_download: {
|
|
1431
|
-
300: {
|
|
1432
|
-
noFill: "M253.31-180q-80.88 0-137.09-56.56Q60-293.12 60-373.69q0-74.39 49.54-129.62 49.54-55.23 122.46-62.23 11.92-81.69 77.58-145.04 65.65-63.34 148.34-63.34 18.23 0 31.81 10.42 13.58 10.42 13.58 27.65v304.77l87.23-87.61 32.61 33-142.53 142.15-142.16-142.15 32.62-33 86.84 87.61V-732q-82.92 6.38-135.19 70.69-52.27 64.31-52.27 139.69h-19.38q-60.05 0-102.87 42.62-42.82 42.62-42.82 105.69 0 63.08 43.84 105.5 43.85 42.42 104.18 42.42h494.51q44.23 0 75.46-31.29 31.23-31.29 31.23-75.27 0-43.97-31.23-75.2-31.23-31.23-75.59-31.23h-62.1v-83.24q0-62.99-29.92-110.38-29.92-47.38-77.69-75.61v-50q70.61 28.61 111.8 93.3 41.2 64.7 41.2 142.69v37.85h12.3q65.47-2.38 111.04 41Q900-399.38 900-332.08q0 62.46-44.81 107.27Q810.38-180 747.92-180H253.31ZM480-500.46Z",
|
|
1433
|
-
fill: "M253.31-180q-80.69 0-137-56.5T60-373.69q0-73.39 49.23-129.12 49.23-55.73 122.77-62.73 14.54-88.46 77.62-147.11 63.07-58.66 148.3-65.5v347.07l-86.84-87.61-32.62 33 142.16 142.15 142.53-142.15-32.61-33-87.23 87.61v-347.07q96.77 10.23 162.27 83.27 65.5 73.03 65.5 173.26v37.85h12.3q65.47-2.38 111.04 41.31Q900-398.77 900-332.08q0 62.46-44.81 107.27Q810.38-180 747.92-180H253.31Z"
|
|
1434
|
-
},
|
|
1435
|
-
400: {
|
|
1436
|
-
noFill: "M251-160q-88 0-149.5-61.5T40-371q0-79 50.5-137.5T217-579q15-84 82-148.5T451-792q24 0 42 13.5t18 36.5v294l83-83 43 43-156 156-156-156 43-43 83 83v-289q-86 11-135 75.5T267-522h-19q-61 0-104.5 43T100-371q0 65 45 108t106 43h500q45 0 77-32t32-77q0-45-32-77t-77-32h-63v-84q0-68-33-117.5T570-718v-65q81 29 129.5 101T748-522v24q72-2 122 46t50 123q0 69-50 119t-119 50H251Zm229-347Z",
|
|
1437
|
-
fill: "M251-160q-88 0-149.5-61.5T40-371q0-78 50-137t127-71q18-90 83-150t151-68v349l-83-83-43 43 156 156 156-156-43-43-83 83v-349q101 11 169 90t68 185v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H251Z"
|
|
1438
|
-
}
|
|
1439
|
-
},
|
|
1440
|
-
cloud_upload: {
|
|
1441
|
-
300: {
|
|
1442
|
-
noFill: "M252.69-180q-79.46 0-136.07-56.72Q60-293.44 60-373.08q0-74.15 49.69-129.8 49.7-55.66 122.31-62.66 15.39-93.15 85.73-153.5 70.35-60.34 163.89-60.34 105.79 0 177.62 75.67 71.84 75.68 71.84 182.09v37.85h12.3q65.47-2.38 111.04 41.31Q900-398.77 900-332.08q0 62.46-44.42 107.27Q811.15-180 748.69-180H515q-23.53 0-40.61-17.08t-17.08-40.61v-257.23l-88 88.38-32.62-32.23L480-582.08l143.31 143.31-32.62 32.23-88-88.38v257.23q0 4.61 3.85 8.46 3.84 3.84 8.46 3.84h232.92q44.23 0 75.46-31.29 31.23-31.29 31.23-75.27 0-43.97-31.23-75.2-31.23-31.23-75.59-31.23h-62.1v-83.24q0-87.08-59.92-149.73Q565.85-734 478.58-734t-147.7 62.65q-60.42 62.65-60.42 149.73h-20.15q-59.69 0-102.31 42.93-42.61 42.92-42.61 105.57 0 60.65 43.14 104.19t104.16 43.54h129.23V-180H252.69ZM480-457.31Z",
|
|
1443
|
-
fill: "M457.31-180h-204q-80.69 0-137-56.5T60-373.69q0-73.39 49.23-129.12 49.23-55.73 122.77-62.73 15.39-93.15 85.73-153.5 70.35-60.34 163.89-60.34 104.69 0 177.07 75.73 72.39 75.73 72.39 182.03v37.85h12.3q65.47-2.38 111.04 41.31Q900-398.77 900-332.08q0 62.46-44.81 107.27Q810.38-180 747.92-180H502.69v-314.92l88 88.38 32.62-32.23L480-582.08 336.69-438.77l32.62 32.23 88-88.38V-180Z"
|
|
1444
|
-
},
|
|
1445
|
-
400: {
|
|
1446
|
-
noFill: "M250-160q-86 0-148-62T40-370q0-78 49.5-137.5T217-579q20-97 94-158.5T482-799q113 0 189.5 81.5T748-522v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H510q-24 0-42-18t-18-42v-258l-83 83-43-43 156-156 156 156-43 43-83-83v258h241q45 0 77-32t32-77q0-45-32-77t-77-32h-63v-84q0-89-60.5-153T478-739q-89 0-150 64t-61 153h-19q-62 0-105 43.5T100-371q0 62 43.93 106.5T250-220h140v60H250Zm230-290Z",
|
|
1447
|
-
fill: "M450-160H251q-88 0-149.5-61.5T40-371q0-78 50-137t127-71q20-97 94-158.5T482-799q112 0 189 81.5T748-522v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H510v-318l83 83 43-43-156-156-156 156 43 43 83-83v318Z"
|
|
1448
|
-
}
|
|
1449
|
-
},
|
|
1450
|
-
content_copy: {
|
|
1451
|
-
300: {
|
|
1452
|
-
noFill: "M318.46-230.77q-23.53 0-40.61-17.08t-17.08-40.61v-513.85q0-23.53 17.08-40.61T318.46-860h393.85q23.52 0 40.61 17.08Q770-825.84 770-802.31v513.85q0 23.53-17.08 40.61-17.09 17.08-40.61 17.08H318.46Zm0-45.39h393.85q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-513.85q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H318.46q-4.61 0-8.46 3.84-3.85 3.85-3.85 8.46v513.85q0 4.61 3.85 8.46 3.85 3.84 8.46 3.84ZM207.69-120q-23.52 0-40.61-17.08Q150-154.17 150-177.7v-559.22h45.39v559.22q0 4.62 3.84 8.47 3.85 3.84 8.46 3.84h439.23V-120H207.69Zm98.46-156.16v-538.45 538.45Z",
|
|
1453
|
-
fill: "M318.46-230.77q-23.53 0-40.61-17.08t-17.08-40.61v-513.85q0-23.53 17.08-40.61T318.46-860h393.85q23.52 0 40.61 17.08Q770-825.84 770-802.31v513.85q0 23.53-17.08 40.61-17.09 17.08-40.61 17.08H318.46ZM207.69-120q-23.52 0-40.61-17.08Q150-154.17 150-177.7v-559.22h45.39v559.22q0 4.62 3.84 8.47 3.85 3.84 8.46 3.84h439.23V-120H207.69Z"
|
|
1454
|
-
},
|
|
1455
|
-
400: {
|
|
1456
|
-
noFill: "M300-200q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H300Zm0-60h440v-560H300v560ZM180-80q-24 0-42-18t-18-42v-620h60v620h500v60H180Zm120-180v-560 560Z",
|
|
1457
|
-
fill: "M300-200q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H300ZM180-80q-24 0-42-18t-18-42v-620h60v620h500v60H180Z"
|
|
1458
|
-
}
|
|
1459
|
-
},
|
|
1460
|
-
delete_forever: {
|
|
1461
|
-
300: {
|
|
1462
|
-
noFill: "M365.23-313.23 480-429.62l115.77 116.39 35.46-36.08-114.77-116.38 114.77-116.77-35.46-36.08L480-502.15 365.23-618.54l-36.46 36.08 115.77 116.77-115.77 116.38 36.46 36.08ZM278.31-140q-23.53 0-40.61-17.08t-17.08-40.61v-544.23H180v-45.39h171.08v-28.07h257.84v28.07H780v45.39h-40.62v544.23q0 23.53-17.08 40.61T681.69-140H278.31ZM694-741.92H266v544.23q0 4.61 3.85 8.46 3.84 3.84 8.46 3.84h403.38q4.62 0 8.46-3.84 3.85-3.85 3.85-8.46v-544.23Zm-428 0v556.53-556.53Z",
|
|
1463
|
-
fill: "M365.23-313.23 480-429.62l115.77 116.39 35.46-36.08-114.77-116.38 114.77-116.77-35.46-36.08L480-502.15 365.23-618.54l-36.46 36.08 115.77 116.77-115.77 116.38 36.46 36.08ZM278.31-140q-23.62 0-40.65-17.04-17.04-17.04-17.04-40.65v-544.23H180v-45.39h171.08v-28.07h257.84v28.07H780v45.39h-40.62v544.23q0 23.61-17.04 40.65Q705.31-140 681.69-140H278.31Z"
|
|
1464
|
-
},
|
|
1465
|
-
400: {
|
|
1466
|
-
noFill: "m361-299 119-121 120 121 47-48-119-121 119-121-47-48-120 121-119-121-48 48 120 121-120 121 48 48ZM261-120q-24 0-42-18t-18-42v-570h-41v-60h188v-30h264v30h188v60h-41v570q0 24-18 42t-42 18H261Zm438-630H261v570h438v-570Zm-438 0v570-570Z",
|
|
1467
|
-
fill: "m361-299 119-121 120 121 47-48-119-121 119-121-47-48-120 121-119-121-48 48 120 121-120 121 48 48ZM261-120q-24 0-42-18t-18-42v-570h-41v-60h188v-30h264v30h188v60h-41v570q0 24-18 42t-42 18H261Z"
|
|
1468
|
-
}
|
|
1469
|
-
},
|
|
1470
|
-
edit: {
|
|
1471
|
-
300: {
|
|
1472
|
-
noFill: "M185.39-185.39h40.92l468.54-467.92-40.93-40.92-468.53 467.92v40.92ZM140-140v-104.54l561.92-562.07q6.23-5.63 14.66-9.2 8.42-3.57 17.6-3.57 8.57 0 16.81 3.34 8.24 3.35 15.32 9.43l40.92 40.92q6.69 6.69 9.73 15.16 3.04 8.46 3.04 16.93 0 8.6-3.51 17.33-3.5 8.73-9.26 14.96L244.54-140H140Zm634.38-594.31-39.46-39.07 39.46 39.07Zm-99.75 60.68-20.71-20.6 40.93 40.92-20.22-20.32Z",
|
|
1473
|
-
fill: "M140-140v-104.54l561.92-562.07q6.23-5.63 14.66-9.2 8.42-3.57 17.6-3.57 8.57 0 16.81 3.34 8.24 3.35 15.32 9.43l40.92 40.92q6.69 6.69 9.73 15.16 3.04 8.46 3.04 16.93 0 8.6-3.51 17.33-3.5 8.73-9.26 14.96L244.54-140H140Zm587.85-548.15L774-733.92l-39.08-39.46-46.15 46.15 39.08 39.08Z"
|
|
1474
|
-
},
|
|
1475
|
-
400: {
|
|
1476
|
-
noFill: "M180-180h44l472-471-44-44-472 471v44Zm-60 60v-128l575-574q8-8 19-12.5t23-4.5q11 0 22 4.5t20 12.5l44 44q9 9 13 20t4 22q0 11-4.5 22.5T823-694L248-120H120Zm659-617-41-41 41 41Zm-105 64-22-22 44 44-22-22Z",
|
|
1477
|
-
fill: "M120-120v-128l575-574q8-8 19-12.5t23-4.5q11 0 22 4.5t20 12.5l44 44q9 9 13 20t4 22q0 11-4.5 22.5T823-694L248-120H120Zm619-577 40-40-41-41-40 40 41 41Z"
|
|
1478
|
-
}
|
|
1479
|
-
},
|
|
1480
|
-
edit_note: {
|
|
1481
|
-
300: {
|
|
1482
|
-
noFill: "M180-407.31v-45.38h294.62v45.38H180Zm0-163.84v-45.39h461.92v45.39H180Zm0-163.46V-780h461.92v45.39H180ZM524.62-180v-105.69l217.15-216.16q7.46-7.46 16.11-10.5 8.65-3.03 17.3-3.03 9.43 0 18.25 3.53 8.82 3.54 16.03 10.62l37 37.38q7.08 7.47 10.31 16.16Q860-439 860-430.31t-3.73 17.69q-3.73 9-10.34 16.46L630.31-180H524.62Zm287.69-250.31-37-37.38 37 37.38Zm-240 202.62h38l129.84-130.47-18.38-19-18.62-18.76-130.84 130.23v38Zm149.46-149.47-18.62-18.76 37 37.76-18.38-19Z",
|
|
1483
|
-
fill: "M180-407.31v-45.38h294.62v45.38H180Zm0-163.84v-45.39h461.92v45.39H180Zm0-163.46V-780h461.92v45.39H180ZM524.62-180v-105.69l217.15-216.16q7.46-7.07 16.11-10.3 8.65-3.23 17.3-3.23 9.43 0 18.25 3.53 8.82 3.54 16.03 10.62l37 37.38q7.08 7.47 10.31 16.16Q860-439 860-430.31t-3.54 17.69q-3.54 9-10.53 16.46L630.31-180H524.62Zm250.69-211.69 37-38.62-37-37.38-38 38 38 38Z"
|
|
1484
|
-
},
|
|
1485
|
-
400: {
|
|
1486
|
-
noFill: "M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z",
|
|
1487
|
-
fill: "M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm263-224 37-39-37-37-38 38 38 38Z"
|
|
1488
|
-
}
|
|
1489
|
-
},
|
|
1490
|
-
error: {
|
|
1491
|
-
300: {
|
|
1492
|
-
noFill: "M499.46-298.52q7.77-7.75 7.77-19.46t-7.75-19.48q-7.75-7.77-19.46-7.77t-19.48 7.75q-7.77 7.75-7.77 19.46t7.75 19.48q7.75 7.77 19.46 7.77t19.48-7.75Zm-39.92-133.33h45.38v-249.53h-45.38v249.53ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Zm.17-45.39q139.19 0 236.65-97.76 97.46-97.77 97.46-237.35 0-139.19-97.27-236.65-97.27-97.46-237.34-97.46-139.08 0-236.85 97.27-97.76 97.27-97.76 237.34 0 139.08 97.76 236.85 97.77 97.76 237.35 97.76ZM480-480Z",
|
|
1493
|
-
fill: "M499.46-298.52q7.77-7.75 7.77-19.46t-7.75-19.48q-7.75-7.77-19.46-7.77t-19.48 7.75q-7.77 7.75-7.77 19.46t7.75 19.48q7.75 7.77 19.46 7.77t19.48-7.75Zm-39.92-133.33h45.38v-249.53h-45.38v249.53ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Z"
|
|
1494
|
-
},
|
|
1495
|
-
400: {
|
|
1496
|
-
noFill: "M503.5-289.48q9.5-9.48 9.5-23.5t-9.48-23.52q-9.48-9.5-23.5-9.5t-23.52 9.48q-9.5 9.48-9.5 23.5t9.48 23.52q9.48 9.5 23.5 9.5t23.52-9.48ZM453-433h60v-253h-60v253Zm27.27 353q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z",
|
|
1497
|
-
fill: "M503.5-289.48q9.5-9.48 9.5-23.5t-9.48-23.52q-9.48-9.5-23.5-9.5t-23.52 9.48q-9.5 9.48-9.5 23.5t9.48 23.52q9.48 9.5 23.5 9.5t23.52-9.48ZM453-433h60v-253h-60v253Zm27.27 353q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Z"
|
|
1498
|
-
}
|
|
1499
|
-
},
|
|
1500
|
-
event: {
|
|
1501
|
-
300: {
|
|
1502
|
-
noFill: "M536.08-251.69q-26.08-26.3-26.08-64 0-37.69 26.3-63.77 26.31-26.08 64-26.08 37.7 0 63.78 26.31 26.07 26.3 26.07 64 0 37.69-26.3 63.77-26.3 26.07-64 26.07t-63.77-26.3ZM197.69-100q-23.53 0-40.61-17.08T140-157.69v-579.23q0-23.53 17.08-40.61t40.61-17.08h73.85v-70h50.38v70h317.69v-70h49.23v70h73.47q23.53 0 40.61 17.08T820-736.92v579.23q0 23.53-17.08 40.61T762.31-100H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46V-555H185.39v397.31q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3-454.99h589.22v-136.54q0-4.62-3.84-8.46-3.85-3.85-8.46-3.85H197.69q-4.61 0-8.46 3.85-3.84 3.84-3.84 8.46v136.54Zm0 0v-148.85 148.85Z",
|
|
1503
|
-
fill: "M536.08-251.69q-26.08-26.3-26.08-64 0-37.69 26.3-63.77 26.31-26.08 64-26.08 37.7 0 63.78 26.31 26.07 26.3 26.07 64 0 37.69-26.3 63.77-26.3 26.07-64 26.07t-63.77-26.3ZM197.69-100q-23.53 0-40.61-17.08T140-157.69v-579.23q0-23.53 17.08-40.61t40.61-17.08h73.85v-70h50.38v70h317.69v-70h49.23v70h73.47q23.53 0 40.61 17.08T820-736.92v579.23q0 23.53-17.08 40.61T762.31-100H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46V-555H185.39v397.31q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Z"
|
|
1504
|
-
},
|
|
1505
|
-
400: {
|
|
1506
|
-
noFill: "M528-248.18q-28-28.19-28-69Q500-358 528.18-386q28.19-28 69-28Q638-414 666-385.82q28 28.19 28 69Q694-276 665.82-248q-28.19 28-69 28Q556-220 528-248.18ZM180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Zm0-490h600v-130H180v130Zm0 0v-130 130Z",
|
|
1507
|
-
fill: "M528-248.18q-28-28.19-28-69Q500-358 528.18-386q28.19-28 69-28Q638-414 666-385.82q28 28.19 28 69Q694-276 665.82-248q-28.19 28-69 28Q556-220 528-248.18ZM180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Z"
|
|
1508
|
-
}
|
|
1509
|
-
},
|
|
1510
|
-
fiber_manual_record: {
|
|
1511
|
-
300: {
|
|
1512
|
-
noFill: "M478.38-478.38ZM295.73-295.73Q220-371.46 220-480t75.73-184.27Q371.46-740 480-740t184.27 75.73Q740-588.54 740-480t-75.73 184.27Q588.54-220 480-220t-184.27-75.73Zm336.42-32.06q62.46-62.41 62.46-152.16 0-89.74-62.4-152.2-62.41-62.46-152.16-62.46-89.74 0-152.2 62.4-62.46 62.41-62.46 152.16 0 89.74 62.4 152.2 62.41 62.46 152.16 62.46 89.74 0 152.2-62.4Z",
|
|
1513
|
-
fill: "M296.54-296.47Q220-372.93 220-479.93q0-106.99 76.47-183.53Q372.93-740 479.93-740q106.99 0 183.53 76.47Q740-587.07 740-480.07q0 106.99-76.47 183.53Q587.07-220 480.07-220q-106.99 0-183.53-76.47Z"
|
|
1514
|
-
},
|
|
1515
|
-
400: {
|
|
1516
|
-
noFill: "M478-478ZM281.5-281.5Q200-363 200-480t81.5-198.5Q363-760 480-760t198.5 81.5Q760-597 760-480t-81.5 198.5Q597-200 480-200t-198.5-81.5ZM636-324q64-64 64-156t-64-156q-64-64-156-64t-156 64q-64 64-64 156t64 156q64 64 156 64t156-64Z",
|
|
1517
|
-
fill: "M282.5-282.5Q200-365 200-480t82.5-197.5Q365-760 480-760t197.5 82.5Q760-595 760-480t-82.5 197.5Q595-200 480-200t-197.5-82.5Z"
|
|
1518
|
-
}
|
|
1519
|
-
},
|
|
1520
|
-
forward_5: {
|
|
1521
|
-
300: {
|
|
1522
|
-
noFill: "M347.39-126.46q-61.85-26.46-108.16-72.77-46.31-46.31-72.77-108.13Q140-369.19 140-439.98t26.46-132.63q26.46-61.85 72.77-108.16 46.31-46.31 108.14-72.77Q409.2-780 480-780h21.77l-76.08-76.08 31-30.99 128.15 127.76-127.38 127.77-31-30.61 72.08-72.46H480q-122.75 0-208.68 85.92t-85.93 208.65q0 122.73 85.92 208.69t208.65 85.96q122.73 0 208.69-85.93T774.61-440H820q0 70.8-26.46 132.63t-72.77 108.14q-46.31 46.31-108.13 72.77Q550.81-100 480.02-100t-132.63-26.46Zm38.76-192.39v-40.38h125.08v-60.23H386.15v-142.31H551v39.39H426.54v60.84h95.08q12.03 0 20.71 8.79 8.67 8.78 8.67 20.98v83.54q0 12.04-8.67 20.71-8.68 8.67-20.71 8.67H386.15Z",
|
|
1523
|
-
fill: "M347.39-126.46q-61.85-26.46-108.16-72.77-46.31-46.31-72.77-108.13Q140-369.19 140-439.98t26.46-132.63q26.46-61.85 72.77-108.16 46.31-46.31 108.14-72.77Q409.2-780 480-780h21.77l-76.08-76.08 31-30.99 128.15 127.76-127.38 127.77-31-30.61 72.08-72.46H480q-122.75 0-208.68 85.92t-85.93 208.65q0 122.73 85.92 208.69t208.65 85.96q122.73 0 208.69-85.93T774.61-440H820q0 70.8-26.46 132.63t-72.77 108.14q-46.31 46.31-108.13 72.77Q550.81-100 480.02-100t-132.63-26.46Zm38.76-192.39v-40.38h125.08v-60.23H386.15v-142.31H551v39.39H426.54v60.84h95.08q12.03 0 20.71 8.79 8.67 8.78 8.67 20.98v83.54q0 12.04-8.67 20.71-8.68 8.67-20.71 8.67H386.15Z"
|
|
1524
|
-
},
|
|
1525
|
-
400: {
|
|
1526
|
-
noFill: "M339.5-108Q274-136 225-185t-77-114.5Q120-365 120-440t28-140.5Q176-646 225-695t114.5-77Q405-800 480-800h21l-78-78 41-41 147 147-147 147-41-41 74-74h-17q-125 0-212.5 87.5T180-440q0 125 87.5 212.5T480-140q125 0 212.5-87.5T780-440h60q0 75-28 140.5T735-185q-49 49-114.5 77T480-80q-75 0-140.5-28ZM380-310v-50h127v-56H380v-155h176v49H430v57h92q14 0 24 10t10 24v87q0 14-10 24t-24 10H380Z",
|
|
1527
|
-
fill: "M339.5-108Q274-136 225-185t-77-114.5Q120-365 120-440t28-140.5Q176-646 225-695t114.5-77Q405-800 480-800h21l-78-78 41-41 147 147-147 147-41-41 74-74h-17q-125 0-212.5 87.5T180-440q0 125 87.5 212.5T480-140q125 0 212.5-87.5T780-440h60q0 75-28 140.5T735-185q-49 49-114.5 77T480-80q-75 0-140.5-28ZM380-310v-50h127v-56H380v-155h176v49H430v57h92q14 0 24 10t10 24v87q0 14-10 24t-24 10H380Z"
|
|
1528
|
-
}
|
|
1529
|
-
},
|
|
1530
|
-
group: {
|
|
1531
|
-
300: {
|
|
1532
|
-
noFill: "M70.31-187.69v-75.93q0-31.53 16.27-55.8 16.27-24.27 45.55-37.15 64.95-28.51 118.64-42.51 53.69-14 119.54-14 66.23 0 119.42 14t118.52 42.51q28.9 12.88 45.48 37.15 16.58 24.27 16.58 55.8v75.93h-600Zm665.38 0v-74.77q0-53.39-24.86-89.07-24.87-35.69-64.98-58.39 53.23 7.61 101.15 20.81 47.92 13.19 80.15 29.73 28.39 15.92 45.46 40.9 17.08 24.99 17.08 56.02v74.77h-154ZM275-530.31q-37.38-37.38-37.38-95.5 0-58.11 37.38-95.3 37.39-37.2 95.5-37.2 58.12 0 95.31 37.2Q503-683.92 503-625.81q0 58.12-37.19 95.5-37.19 37.39-95.31 37.39-58.11 0-95.5-37.39Zm374.18 0q-37.28 37.39-95.41 37.39-6.77 0-14.5-.93-7.73-.92-14.5-3.38 21.43-23.37 32.52-56.12 11.09-32.75 11.09-72.31 0-39.57-11.53-70.61-11.54-31.04-32.08-58.11 6.38-1.46 14.5-2.7 8.11-1.23 14.5-1.23 58.13 0 95.41 37.2 37.28 37.19 37.28 95.3 0 58.12-37.28 95.5ZM115.69-233.08h509.23v-30.54q0-16-9.11-30.03-9.12-14.04-26.19-22.35-62.77-29.31-110.62-40.5-47.84-11.19-108.69-11.19-60.46 0-108.62 11.19-48.15 11.19-110.92 40.5-17.08 8.31-26.08 22.35-9 14.03-9 30.03v30.54Zm317-330.15q24.93-24.92 24.93-62.38 0-37.47-24.93-62.39-24.92-24.92-62.38-24.92T307.92-688Q283-663.08 283-625.61q0 37.46 24.92 62.38 24.93 24.92 62.39 24.92t62.38-24.92Zm-62.38 330.15Zm0-392.53Z",
|
|
1533
|
-
fill: "M70.31-187.69v-75.93q0-31.53 16.27-55.8 16.27-24.27 45.58-37.12 64.92-28.54 118.61-42.54t119.54-14q66.23 0 119.42 14t118.5 42.54q28.92 12.85 45.5 37.12 16.58 24.27 16.58 55.8v75.93h-600Zm665.38 0v-74.77q0-53.39-24.88-89.08-24.89-35.69-64.96-58.38 53.23 7.61 101.15 20.81 47.92 13.19 80.15 29.73 28.39 15.92 45.46 40.84 17.08 24.92 17.08 56.08v74.77h-154ZM275-530.31q-37.38-37.38-37.38-95.5 0-58.11 37.38-95.3 37.39-37.2 95.5-37.2 58.12 0 95.31 37.2Q503-683.92 503-625.81q0 58.12-37.19 95.5-37.19 37.39-95.31 37.39-58.11 0-95.5-37.39Zm374.27 0q-37.19 37.39-95.5 37.39-6.77 0-14.5-.93-7.73-.92-14.5-3.38 21.31-23.46 32.46-56.12 11.15-32.65 11.15-72.26 0-39.62-11.53-70.66-11.54-31.04-32.08-58.11 6.38-1.46 14.5-2.7 8.11-1.23 14.5-1.23 58.31 0 95.5 37.2 37.19 37.19 37.19 95.3 0 58.12-37.19 95.5Z"
|
|
1534
|
-
},
|
|
1535
|
-
400: {
|
|
1536
|
-
noFill: "M38-160v-94q0-35 18-63.5t50-42.5q73-32 131.5-46T358-420q62 0 120 14t131 46q32 14 50.5 42.5T678-254v94H38Zm700 0v-94q0-63-32-103.5T622-423q69 8 130 23.5t99 35.5q33 19 52 47t19 63v94H738ZM250-523q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42Zm426 0q-42 42-108 42-11 0-24.5-1.5T519-488q24-25 36.5-61.5T568-631q0-45-12.5-79.5T519-774q11-3 24.5-5t24.5-2q66 0 108 42t42 108q0 66-42 108ZM98-220h520v-34q0-16-9.5-31T585-306q-72-32-121-43t-106-11q-57 0-106.5 11T130-306q-14 6-23 21t-9 31v34Zm324.5-346.5Q448-592 448-631t-25.5-64.5Q397-721 358-721t-64.5 25.5Q268-670 268-631t25.5 64.5Q319-541 358-541t64.5-25.5ZM358-220Zm0-411Z",
|
|
1537
|
-
fill: "M38-160v-94q0-35 18-63.5t50-42.5q73-32 131.5-46T358-420q62 0 120 14t131 46q32 14 50.5 42.5T678-254v94H38Zm700 0v-94q0-63-32-103.5T622-423q69 8 130 23.5t99 35.5q33 19 52 47t19 63v94H738ZM250-523q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42Zm426 0q-42 42-108 42-11 0-24.5-1.5T519-488q24-25 36.5-61.5T568-631q0-45-12.5-79.5T519-774q11-3 24.5-5t24.5-2q66 0 108 42t42 108q0 66-42 108Z"
|
|
1538
|
-
}
|
|
1539
|
-
},
|
|
1540
|
-
groups: {
|
|
1541
|
-
300: {
|
|
1542
|
-
noFill: "M20-248.46v-41.46q0-36.65 39.77-60.29t103.68-23.64q10.25 0 21.09.7 10.85.69 21.85 2.34-6.85 16.2-10.47 32.47-3.61 16.28-3.61 33.34v56.54H20Zm240 0v-55q0-28.09 15.77-51.35 15.77-23.27 45.46-40.57 29.69-17.31 70.16-25.96 40.46-8.66 88.46-8.66 48.92 0 89.38 8.66 40.46 8.65 70.15 25.96 29.7 17.3 45.16 40.57Q700-331.55 700-303.46v55H260Zm507.69 0v-56.42q0-17.97-3.11-34.24-3.12-16.26-10.35-31.61 11.77-1.73 22.36-2.42 10.6-.7 20.72-.7 64.03 0 103.36 23.2Q940-327.46 940-289.92v41.46H767.69ZM305-293.85h350v-8.69q1.15-36.61-47.23-59.34-48.39-22.73-127.77-22.73-79 0-127.58 22.73-48.57 22.73-47.42 59.96v8.07ZM162.54-405.38q-25 0-42.81-17.95-17.81-17.94-17.81-43.21 0-25.15 17.95-42.96 17.94-17.81 43.21-17.81 25.15 0 43.15 17.81t18 43.51q0 24.61-17.79 42.61t-43.9 18Zm634.33 0q-24.72 0-42.72-18.07-18-18.06-18-42.97 0-25.27 18.07-43.08 18.06-17.81 43.16-17.81 25.46 0 43.27 17.81 17.81 17.81 17.81 43.4 0 24.96-17.76 42.84-17.76 17.88-43.83 17.88ZM480.14-460q-43.22 0-73.6-30.29-30.38-30.28-30.38-73.55 0-44.14 30.28-73.99 30.29-29.86 73.56-29.86 44.13 0 73.99 29.82 29.85 29.81 29.85 73.89 0 43.21-29.81 73.6Q524.21-460 480.14-460Zm.4-45.38q24.69 0 41.31-16.97 16.61-16.96 16.61-42.04 0-24.68-16.72-41.3-16.71-16.61-41.39-16.61-24.58 0-41.7 16.71-17.11 16.72-17.11 41.4 0 24.58 16.96 41.69 16.97 17.12 42.04 17.12ZM480-293.85Zm0-269.99Z",
|
|
1543
|
-
fill: "M20-248.46v-41.46q0-36.65 39.77-60.29t103.68-23.64q10.25 0 21.09.7 10.85.69 21.85 2.34-6.85 16.2-10.47 32.47-3.61 16.28-3.61 33.34v56.54H20Zm240 0v-55q0-28.09 15.77-51.35 15.77-23.27 45.46-40.57 29.69-17.31 70.16-25.96 40.46-8.66 88.46-8.66 48.92 0 89.38 8.66 40.46 8.65 70.15 25.96 29.7 17.3 45.16 40.57Q700-331.55 700-303.46v55H260Zm507.69 0v-56.42q0-17.97-3.11-34.24-3.12-16.26-10.35-31.61 11.77-1.73 22.36-2.42 10.6-.7 20.72-.7 64.03 0 103.36 23.2Q940-327.46 940-289.92v41.46H767.69ZM162.54-405.38q-25 0-42.81-17.95-17.81-17.94-17.81-43.21 0-25.15 17.95-42.96 17.94-17.81 43.21-17.81 25.15 0 43.15 17.81t18 43.51q0 24.61-17.79 42.61t-43.9 18Zm634.33 0q-24.72 0-42.72-18.07-18-18.06-18-42.97 0-25.27 18.07-43.08 18.06-17.81 43.16-17.81 25.46 0 43.27 17.81 17.81 17.81 17.81 43.4 0 24.96-17.76 42.84-17.76 17.88-43.83 17.88ZM480.14-460q-43.22 0-73.6-30.29-30.38-30.28-30.38-73.55 0-44.14 30.28-73.99 30.29-29.86 73.56-29.86 44.13 0 73.99 29.82 29.85 29.81 29.85 73.89 0 43.21-29.81 73.6Q524.21-460 480.14-460Z"
|
|
1544
|
-
},
|
|
1545
|
-
400: {
|
|
1546
|
-
noFill: "M0-240v-53q0-38.57 41.5-62.78Q83-380 150.38-380q12.16 0 23.39.5t22.23 2.15q-8 17.35-12 35.17-4 17.81-4 37.18v65H0Zm240 0v-65q0-32 17.5-58.5T307-410q32-20 76.5-30t96.5-10q53 0 97.5 10t76.5 30q32 20 49 46.5t17 58.5v65H240Zm540 0v-65q0-19.86-3.5-37.43T765-377.27q11-1.73 22.17-2.23 11.17-.5 22.83-.5 67.5 0 108.75 23.77T960-293v53H780Zm-480-60h360v-6q0-37-50.5-60.5T480-390q-79 0-129.5 23.5T300-305v5ZM149.57-410q-28.57 0-49.07-20.56Q80-451.13 80-480q0-29 20.56-49.5Q121.13-550 150-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T149.57-410Zm660 0q-28.57 0-49.07-20.56Q740-451.13 740-480q0-29 20.56-49.5Q781.13-550 810-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T809.57-410ZM480-480q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T600-600q0 50-34.5 85T480-480Zm.35-60Q506-540 523-557.35t17-43Q540-626 522.85-643t-42.5-17q-25.35 0-42.85 17.15t-17.5 42.5q0 25.35 17.35 42.85t43 17.5ZM480-300Zm0-300Z",
|
|
1547
|
-
fill: "M0-240v-53q0-38.57 41.5-62.78Q83-380 150.38-380q12.16 0 23.39.5t22.23 2.15q-8 17.35-12 35.17-4 17.81-4 37.18v65H0Zm240 0v-65q0-32 17.5-58.5T307-410q32-20 76.5-30t96.5-10q53 0 97.5 10t76.5 30q32 20 49 46.5t17 58.5v65H240Zm540 0v-65q0-19.86-3.5-37.43T765-377.27q11-1.73 22.17-2.23 11.17-.5 22.83-.5 67.5 0 108.75 23.77T960-293v53H780ZM149.57-410q-28.57 0-49.07-20.56Q80-451.13 80-480q0-29 20.56-49.5Q121.13-550 150-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T149.57-410Zm660 0q-28.57 0-49.07-20.56Q740-451.13 740-480q0-29 20.56-49.5Q781.13-550 810-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T809.57-410ZM480-480q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T600-600q0 50-34.5 85T480-480Z"
|
|
1548
|
-
}
|
|
1549
|
-
},
|
|
1550
|
-
help: {
|
|
1551
|
-
300: {
|
|
1552
|
-
noFill: "M506.58-269.95q9.27-9.48 9.27-22.57 0-13.1-9.3-22.56-9.29-9.46-22.57-9.46-13.29 0-22.75 9.48-9.46 9.49-9.46 22.58 0 13.09 9.48 22.56 9.49 9.46 22.77 9.46 13.29 0 22.56-9.49ZM456.31-398h45.54q.38-24.46 7.65-44.04 7.27-19.58 37.04-44.88 29.84-26.39 42.46-49.85 12.61-23.46 12.61-51.66 0-49.42-32.34-79.88-32.35-30.46-83.65-30.46-44.39 0-78.62 22.77-34.23 22.77-50.46 59.62l41.84 16.15q11.39-26.85 32.43-41.77 21.04-14.92 51.81-14.92 36.69 0 57.3 20.04 20.62 20.03 20.62 49.42 0 21.61-12.23 40.15T513-508.92q-29.23 26-42.96 51.3-13.73 25.31-13.73 59.62Zm23.76 298q-78.22 0-147.4-29.92t-120.99-81.71q-51.81-51.79-81.75-120.94Q100-401.71 100-479.93q0-78.84 29.92-148.21t81.71-120.68q51.79-51.31 120.94-81.25Q401.71-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.22-29.92 147.4t-81.21 120.99q-51.29 51.81-120.63 81.75Q558.9-100 480.07-100Zm-.07-45.39q139.69 0 237.15-97.76 97.46-97.77 97.46-236.85 0-139.69-97.46-237.15-97.46-97.46-237.15-97.46-139.08 0-236.85 97.46-97.76 97.46-97.76 237.15 0 139.08 97.76 236.85 97.77 97.76 236.85 97.76ZM480-480Z",
|
|
1553
|
-
fill: "M506.58-269.95q9.27-9.48 9.27-22.57 0-13.1-9.3-22.56-9.29-9.46-22.57-9.46-13.29 0-22.75 9.48-9.46 9.49-9.46 22.58 0 13.09 9.48 22.56 9.49 9.46 22.77 9.46 13.29 0 22.56-9.49ZM456.31-398h45.54q.38-24.46 7.65-44.04 7.27-19.58 37.04-44.88 29.84-26.39 42.46-49.85 12.61-23.46 12.61-51.66 0-49.42-32.34-79.88-32.35-30.46-83.65-30.46-44.39 0-78.62 22.77-34.23 22.77-50.46 59.62l41.84 16.15q11.39-26.85 32.43-41.77 21.04-14.92 51.81-14.92 36.69 0 57.3 20.04 20.62 20.03 20.62 49.42 0 21.61-12.23 40.15T513-508.92q-29.23 26-42.96 51.3-13.73 25.31-13.73 59.62Zm23.76 298q-78.22 0-147.4-29.92t-120.99-81.71q-51.81-51.79-81.75-120.94Q100-401.71 100-479.93q0-78.84 29.92-148.21t81.71-120.68q51.79-51.31 120.94-81.25Q401.71-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.22-29.92 147.4t-81.21 120.99q-51.29 51.81-120.63 81.75Q558.9-100 480.07-100Z"
|
|
1554
|
-
},
|
|
1555
|
-
400: {
|
|
1556
|
-
noFill: "M511-258q11-11 11-27t-11-27q-11-11-27-11t-27 11q-11 11-11 27t11 27q11 11 27 11t27-11Zm-62-135h59q0-26 6.5-47.5T555-490q31-26 44-51t13-55q0-53-34.5-85T486-713q-49 0-86.5 24.5T345-621l53 20q11-28 33-43.5t52-15.5q34 0 55 18.5t21 47.5q0 22-13 41.5T508-512q-30 26-44.5 51.5T449-393Zm31 313q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Zm0-60q142 0 241-99.5T820-480q0-142-99-241t-241-99q-141 0-240.5 99T140-480q0 141 99.5 240.5T480-140Zm0-340Z",
|
|
1557
|
-
fill: "M511-258q11-11 11-27t-11-27q-11-11-27-11t-27 11q-11 11-11 27t11 27q11 11 27 11t27-11Zm-62-135h59q0-26 6.5-47.5T555-490q31-26 44-51t13-55q0-53-34.5-85T486-713q-49 0-86.5 24.5T345-621l53 20q11-28 33-43.5t52-15.5q34 0 55 18.5t21 47.5q0 22-13 41.5T508-512q-30 26-44.5 51.5T449-393Zm31 313q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Z"
|
|
1558
|
-
}
|
|
1559
|
-
},
|
|
1560
|
-
id: {
|
|
1561
|
-
300: {
|
|
1562
|
-
noFill: "M157.69-100q-23.53 0-40.61-17.08T100-157.69v-444.62q0-23.53 17.08-40.61T157.69-660h244.23v-154.61q0-18.15 13.63-31.77Q429.18-860 447.34-860h65.42q18.16 0 31.74 13.62 13.58 13.62 13.58 31.77V-660h244.23q23.53 0 40.61 17.08T860-602.31v444.62q0 23.53-17.08 40.61T802.31-100H157.69Zm0-45.39h644.62q5.38 0 8.84-3.46t3.46-8.84v-444.62q0-5.38-3.46-8.84t-8.84-3.46H558.08v37.3q0 21.08-13.58 33.23-13.58 12.16-31.81 12.16h-65.38q-18.23 0-31.81-12.16-13.58-12.15-13.58-33.23v-37.3H157.69q-5.38 0-8.84 3.46t-3.46 8.84v444.62q0 5.38 3.46 8.84t8.84 3.46Zm82.77-111.23h226.69v-9q0-16.07-8.03-28.73Q451.08-307 438.23-312q-28.54-10.23-46.92-13.73-18.39-3.5-35.77-3.5-18.62 0-39.54 4.31-20.92 4.3-45.61 12.92-13.85 5-21.89 17.65-8.04 12.66-8.04 28.73v9Zm325.23-65.84H733v-40.39H565.69v40.39Zm-174.93-54.73q14.16-14.35 14.16-35.23 0-20.89-14.16-35.23Q376.59-462 355.72-462q-20.87 0-35.22 14.35-14.35 14.34-14.35 35.23 0 20.88 14.35 35.23 14.35 14.34 35.22 14.34 20.87 0 35.04-14.34Zm174.93-47.89H733v-40.38H565.69v40.38ZM447.31-577.31h65.38v-237.3h-65.38v237.3ZM480-380Z",
|
|
1563
|
-
fill: "M157.69-100q-23.53 0-40.61-17.08T100-157.69v-444.62q0-23.53 17.08-40.61T157.69-660h244.23v-154.61q0-17.98 13.72-31.68Q429.36-860 447.34-860h65.42q17.99 0 31.65 13.71 13.67 13.7 13.67 31.68V-660h244.23q23.53 0 40.61 17.08T860-602.31v444.62q0 23.53-17.08 40.61T802.31-100H157.69Zm82.77-156.62h226.69v-9q0-15.92-7.98-28.66-7.99-12.75-20.94-17.72-28.54-10.23-46.93-13.73-18.38-3.5-35.76-3.5-18.62 0-39.54 4.31-20.92 4.3-45.61 12.92-13.96 4.97-21.94 17.72-7.99 12.74-7.99 28.66v9Zm325.23-65.84H733v-40.39H565.69v40.39ZM390.76-377.1q14.16-14.26 14.16-35.23 0-20.98-14.07-35.32Q376.77-462 355.81-462t-35.31 14.26q-14.35 14.25-14.35 35.23 0 20.97 14.26 35.32 14.26 14.34 35.22 14.34t35.13-14.25Zm174.93-47.98H733v-40.38H565.69v40.38ZM447.31-577.31h65.38v-237.3h-65.38v237.3Z"
|
|
1564
|
-
},
|
|
1565
|
-
400: {
|
|
1566
|
-
noFill: "M140-80q-24 0-42-18t-18-42v-480q0-24 18-42t42-18h250v-140q0-24 18-42t42-18h60q24 0 42 18t18 42v140h250q24 0 42 18t18 42v480q0 24-18 42t-42 18H140Zm0-60h680v-480H570v30q0 28-18 44t-42 16h-60q-24 0-42-16t-18-44v-30H140v480Zm92-107h239v-14q0-18-9-32t-23-19q-32-11-50-14.5t-35-3.5q-19 0-40.5 4.5T265-312q-15 5-24 19t-9 32v14Zm336-67h170v-50H568v50Zm-175.5-65.5Q408-395 408-418t-15.5-38.5Q377-472 354-472t-38.5 15.5Q300-441 300-418t15.5 38.5Q331-364 354-364t38.5-15.5ZM568-427h170v-50H568v50ZM450-590h60v-230h-60v230Zm30 210Z",
|
|
1567
|
-
fill: "M140-80q-24 0-42-18t-18-42v-480q0-24 18-42t42-18h250v-140q0-24 18-42t42-18h60q24 0 42 18t18 42v140h250q24 0 42 18t18 42v480q0 24-18 42t-42 18H140Zm92-167h239v-14q0-18-9-32t-23-19q-32-11-50-14.5t-35-3.5q-19 0-40.5 4.5T265-312q-15 5-24 19t-9 32v14Zm336-67h170v-50H568v50Zm-175.5-65.5Q408-395 408-418t-15.5-38.5Q377-472 354-472t-38.5 15.5Q300-441 300-418t15.5 38.5Q331-364 354-364t38.5-15.5ZM568-427h170v-50H568v50ZM450-590h60v-230h-60v230Z"
|
|
1568
|
-
}
|
|
1569
|
-
},
|
|
1570
|
-
id_card: {
|
|
1571
|
-
300: {
|
|
1572
|
-
noFill: "M577.69-458.08h166.92v-45.38H577.69v45.38Zm0-115.38h166.92v-45.39H577.69v45.39Zm-362.3 239.61h292.3v-12.07q0-37.77-38.46-60.62-38.46-22.84-107.69-22.84-69.23 0-107.69 22.84-38.46 22.85-38.46 60.62v12.07Zm192.07-181.36q19-18.9 19-45.92 0-27.02-18.9-46.02-18.91-19-45.92-19-27.02 0-46.02 18.9-19 18.9-19 45.92 0 27.02 18.9 46.02 18.9 19 45.92 19 27.02 0 46.02-18.9ZM157.69-180q-23.53 0-40.61-17.08T100-237.69v-484.62q0-23.53 17.08-40.61T157.69-780h644.62q23.53 0 40.61 17.08T860-722.31v484.62q0 23.53-17.08 40.61T802.31-180H157.69Zm0-45.39h644.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-484.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H157.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v484.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3 0v-509.22 509.22Z",
|
|
1573
|
-
fill: "M577.69-458.08h166.92v-45.38H577.69v45.38Zm0-115.38h166.92v-45.39H577.69v45.39Zm-362.3 239.61h292.3v-12.07q0-37.77-38.46-60.62-38.46-22.84-107.69-22.84-69.23 0-107.69 22.84-38.46 22.85-38.46 60.62v12.07Zm192.07-181.44q19-18.98 19-45.92t-18.98-45.94q-18.98-19-45.92-19t-45.94 18.98q-19 18.98-19 45.92t18.98 45.94q18.98 19 45.92 19t45.94-18.98ZM157.69-180q-23.53 0-40.61-17.08T100-237.69v-484.62q0-23.53 17.08-40.61T157.69-780h644.62q23.53 0 40.61 17.08T860-722.31v484.62q0 23.53-17.08 40.61T802.31-180H157.69Z"
|
|
1574
|
-
},
|
|
1575
|
-
400: {
|
|
1576
|
-
noFill: "M580-450h180v-60H580v60Zm0-120h180v-60H580v60ZM200-320h320v-19q0-42-42.5-68.5T360-434q-75 0-117.5 26.5T200-339v19Zm211.5-195.42q21.5-21.42 21.5-51.5t-21.42-51.58q-21.42-21.5-51.5-21.5t-51.58 21.42q-21.5 21.42-21.5 51.5t21.42 51.58q21.42 21.5 51.5 21.5t51.58-21.42ZM140-160q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H140Zm0-60h680v-520H140v520Zm0 0v-520 520Z",
|
|
1577
|
-
fill: "M580-450h180v-60H580v60Zm0-120h180v-60H580v60ZM200-320h320v-19q0-42-42.5-68.5T360-434q-75 0-117.5 26.5T200-339v19Zm211.5-195.5Q433-537 433-567t-21.5-51.5Q390-640 360-640t-51.5 21.5Q287-597 287-567t21.5 51.5Q330-494 360-494t51.5-21.5ZM140-160q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H140Z"
|
|
1578
|
-
}
|
|
1579
|
-
},
|
|
1580
|
-
image: {
|
|
1581
|
-
300: {
|
|
1582
|
-
noFill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm69.47-102.38h429.76L567.23-460.31 446.38-306.23l-82.23-107.38-96.99 125.84Zm-81.77 102.38v-589.22 589.22Z",
|
|
1583
|
-
fill: "M197.69-140q-23.61 0-40.65-17.04T140-197.69v-564.62q0-23.61 17.04-40.65T197.69-820h564.62q23.61 0 40.65 17.04T820-762.31v564.62q0 23.61-17.04 40.65T762.31-140H197.69Zm69.47-147.77h429.76L567.23-460.31 446.38-306.23l-82.23-107.38-96.99 125.84Z"
|
|
1584
|
-
},
|
|
1585
|
-
400: {
|
|
1586
|
-
noFill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm56-97h489L578-473 446-302l-93-127-117 152Zm-56 97v-600 600Z",
|
|
1587
|
-
fill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm56-157h489L578-473 446-302l-93-127-117 152Z"
|
|
1588
|
-
}
|
|
1589
|
-
},
|
|
1590
|
-
indeterminate_check_box: {
|
|
1591
|
-
300: {
|
|
1592
|
-
noFill: "M268.08-458.92h424.46v-45.39H268.08v45.39ZM197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3-589.22v589.22-589.22Z",
|
|
1593
|
-
fill: "M268.08-458.92h424.46v-45.39H268.08v45.39ZM197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H197.69Z"
|
|
1594
|
-
},
|
|
1595
|
-
400: {
|
|
1596
|
-
noFill: "M250-452h461v-60H250v60Zm-70 332q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0-600v600-600Z",
|
|
1597
|
-
fill: "M250-452h461v-60H250v60Zm-70 332q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Z"
|
|
1598
|
-
}
|
|
1599
|
-
},
|
|
1600
|
-
info: {
|
|
1601
|
-
300: {
|
|
1602
|
-
noFill: "M459.54-290h45.38v-230h-45.38v230Zm39.73-301.56q7.96-7.57 7.96-19.05 0-11.95-7.85-19.9-7.85-7.95-19.36-7.95-11.9 0-19.58 7.95-7.67 7.95-7.67 19.9 0 11.48 7.94 19.05 7.95 7.56 19.27 7.56 11.33 0 19.29-7.56ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Zm.17-45.39q139.19 0 236.65-97.76 97.46-97.77 97.46-237.35 0-139.19-97.27-236.65-97.27-97.46-237.34-97.46-139.08 0-236.85 97.27-97.76 97.27-97.76 237.34 0 139.08 97.76 236.85 97.77 97.76 237.35 97.76ZM480-480Z",
|
|
1603
|
-
fill: "M459.54-290h45.38v-230h-45.38v230Zm39.73-301.56q7.96-7.57 7.96-19.05 0-11.95-7.85-19.9-7.85-7.95-19.36-7.95-11.9 0-19.58 7.95-7.67 7.95-7.67 19.9 0 11.48 7.94 19.05 7.95 7.56 19.27 7.56 11.33 0 19.29-7.56ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Z"
|
|
1604
|
-
},
|
|
1605
|
-
400: {
|
|
1606
|
-
noFill: "M453-280h60v-240h-60v240Zm50.5-323.2q9.5-9.2 9.5-22.8 0-14.45-9.48-24.22-9.48-9.78-23.5-9.78t-23.52 9.78Q447-640.45 447-626q0 13.6 9.48 22.8 9.48 9.2 23.5 9.2t23.52-9.2ZM480.27-80q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z",
|
|
1607
|
-
fill: "M453-280h60v-240h-60v240Zm50.5-323.2q9.5-9.2 9.5-22.8 0-14.45-9.48-24.22-9.48-9.78-23.5-9.78t-23.52 9.78Q447-640.45 447-626q0 13.6 9.48 22.8 9.48 9.2 23.5 9.2t23.52-9.2ZM480.27-80q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Z"
|
|
1608
|
-
}
|
|
1609
|
-
},
|
|
1610
|
-
keyboard_arrow_down: {
|
|
1611
|
-
300: {
|
|
1612
|
-
noFill: "M480-357.85 253.85-584l32.61-32.61L480-423.08l193.54-193.53L706.15-584 480-357.85Z",
|
|
1613
|
-
fill: "M480-357.85 253.85-584l32.61-32.61L480-423.08l193.54-193.53L706.15-584 480-357.85Z"
|
|
1614
|
-
},
|
|
1615
|
-
400: {
|
|
1616
|
-
noFill: "M480-344 240-584l43-43 197 197 197-197 43 43-240 240Z",
|
|
1617
|
-
fill: "M480-344 240-584l43-43 197 197 197-197 43 43-240 240Z"
|
|
1618
|
-
}
|
|
1619
|
-
},
|
|
1620
|
-
keyboard_arrow_left: {
|
|
1621
|
-
300: {
|
|
1622
|
-
noFill: "M560.62-253.85 333.85-480.62l226.77-227.15 32.61 32.62-194.15 194.53 194.15 194.16-32.61 32.61Z",
|
|
1623
|
-
fill: "M560.62-253.85 333.85-480.62l226.77-227.15 32.61 32.62-194.15 194.53 194.15 194.16-32.61 32.61Z"
|
|
1624
|
-
},
|
|
1625
|
-
400: {
|
|
1626
|
-
noFill: "M561-240 320-481l241-241 43 43-198 198 198 198-43 43Z",
|
|
1627
|
-
fill: "M561-240 320-481l241-241 43 43-198 198 198 198-43 43Z"
|
|
1628
|
-
}
|
|
1629
|
-
},
|
|
1630
|
-
keyboard_arrow_right: {
|
|
1631
|
-
300: {
|
|
1632
|
-
noFill: "M536.92-480.62 342.77-675.15l32.61-32.62 226.77 227.15-226.77 226.77-32.61-32.61 194.15-194.16Z",
|
|
1633
|
-
fill: "M536.92-480.62 342.77-675.15l32.61-32.62 226.77 227.15-226.77 226.77-32.61-32.61 194.15-194.16Z"
|
|
1634
|
-
},
|
|
1635
|
-
400: {
|
|
1636
|
-
noFill: "M530-481 332-679l43-43 241 241-241 241-43-43 198-198Z",
|
|
1637
|
-
fill: "M530-481 332-679l43-43 241 241-241 241-43-43 198-198Z"
|
|
1638
|
-
}
|
|
1639
|
-
},
|
|
1640
|
-
keyboard_arrow_up: {
|
|
1641
|
-
300: {
|
|
1642
|
-
noFill: "M480-560.92 286.46-367.39 253.85-400 480-626.15 706.15-400l-32.61 32.61L480-560.92Z",
|
|
1643
|
-
fill: "M480-560.92 286.46-367.39 253.85-400 480-626.15 706.15-400l-32.61 32.61L480-560.92Z"
|
|
1644
|
-
},
|
|
1645
|
-
400: {
|
|
1646
|
-
noFill: "M480-554 283-357l-43-43 240-240 240 240-43 43-197-197Z",
|
|
1647
|
-
fill: "M480-554 283-357l-43-43 240-240 240 240-43 43-197-197Z"
|
|
1648
|
-
}
|
|
1649
|
-
},
|
|
1650
|
-
location_on: {
|
|
1651
|
-
300: {
|
|
1652
|
-
noFill: "M526.04-511.65Q545-530.62 545-557.69q0-27.08-18.96-46.04T480-622.69q-27.08 0-46.04 18.96T415-557.69q0 27.07 18.96 46.04 18.96 18.96 46.04 18.96t46.04-18.96ZM480-159.77q125.31-111.77 190.92-213.15 65.62-101.39 65.62-177.16 0-116.07-73.77-190.5Q589-815 480-815q-109 0-182.77 74.42-73.77 74.43-73.77 190.5 0 75.77 66.73 177.16Q356.92-271.54 480-159.77Zm0 60.15Q329-230.46 253.54-343.15q-75.46-112.7-75.46-206.93 0-138.46 89.57-224.19Q357.23-860 480-860t212.35 85.73q89.57 85.73 89.57 224.19 0 94.23-75.46 206.93Q631-230.46 480-99.62Zm0-458.07Z",
|
|
1653
|
-
fill: "M526.04-511.77Q545-530.85 545-557.81t-19.08-45.92q-19.08-18.96-46.04-18.96t-45.92 19.08Q415-584.53 415-557.57q0 26.95 19.08 45.92 19.08 18.96 46.04 18.96t45.92-19.08ZM480-99.62Q329-230.46 253.54-343.15q-75.46-112.7-75.46-206.93 0-138.46 89.57-224.19Q357.23-860 480-860t212.35 85.73q89.57 85.73 89.57 224.19 0 94.23-75.46 206.93Q631-230.46 480-99.62Z"
|
|
1654
|
-
},
|
|
1655
|
-
400: {
|
|
1656
|
-
noFill: "M529.5-510.5Q550-531 550-560t-20.5-49.5Q509-630 480-630t-49.5 20.5Q410-589 410-560t20.5 49.5Q451-490 480-490t49.5-20.5ZM480-159q133-121 196.5-219.5T740-552q0-118-75.5-193T480-820q-109 0-184.5 75T220-552q0 75 65 173.5T480-159Zm0 79Q319-217 239.5-334.5T160-552q0-150 96.5-239T480-880q127 0 223.5 89T800-552q0 100-79.5 217.5T480-80Zm0-480Z",
|
|
1657
|
-
fill: "M529.5-510.59q20.5-20.59 20.5-49.5t-20.59-49.41q-20.59-20.5-49.5-20.5t-49.41 20.59q-20.5 20.59-20.5 49.5t20.59 49.41q20.59 20.5 49.5 20.5t49.41-20.59ZM480-80Q319-217 239.5-334.5T160-552q0-150 96.5-239T480-880q127 0 223.5 89T800-552q0 100-79.5 217.5T480-80Z"
|
|
1658
|
-
}
|
|
1659
|
-
},
|
|
1660
|
-
login: {
|
|
1661
|
-
300: {
|
|
1662
|
-
noFill: "M480.23-140v-45.39h282.08q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H480.23V-820h282.08q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H480.23Zm-35.77-187.69-33-32.23 97.39-97.39H140v-45.38h367.62l-97.39-97.39 32.62-32.61 153.3 153.5-151.69 151.5Z",
|
|
1663
|
-
fill: "M480.23-140v-45.39h282.08q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H480.23V-820h282.08q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H480.23Zm-35.77-187.69-33-32.23 97.39-97.39H140.39v-45.38h367.23l-97.39-97.39 32.62-32.61 153.3 153.5-151.69 151.5Z"
|
|
1664
|
-
},
|
|
1665
|
-
400: {
|
|
1666
|
-
noFill: "M481-120v-60h299v-600H481v-60h299q24 0 42 18t18 42v600q0 24-18 42t-42 18H481Zm-55-185-43-43 102-102H120v-60h363L381-612l43-43 176 176-174 174Z",
|
|
1667
|
-
fill: "M481-120v-60h299v-600H481v-60h299q24 0 42 18t18 42v600q0 24-18 42t-42 18H481Zm-55-185-43-43 102-102H120v-60h363L381-612l43-43 176 176-174 174Z"
|
|
1668
|
-
}
|
|
1669
|
-
},
|
|
1670
|
-
logout: {
|
|
1671
|
-
300: {
|
|
1672
|
-
noFill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h282.08v45.39H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h282.08V-140H197.69Zm470.62-187.69-33-32.23 97.38-97.39H363.85v-45.38h367.61l-97.38-97.39 32.61-32.61L820-479.19l-151.69 151.5Z",
|
|
1673
|
-
fill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h282.08v45.39H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h282.08V-140H197.69Zm470.62-187.69-33-32.23 97.38-97.39H363.85v-45.38h367.61l-97.38-97.39 32.61-32.61L820-479.19l-151.69 151.5Z"
|
|
1674
|
-
},
|
|
1675
|
-
400: {
|
|
1676
|
-
noFill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h299v60H180v600h299v60H180Zm486-185-43-43 102-102H360v-60h363L621-612l43-43 176 176-174 174Z",
|
|
1677
|
-
fill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h299v60H180v600h299v60H180Zm486-185-43-43 102-102H360v-60h363L621-612l43-43 176 176-174 174Z"
|
|
1678
|
-
}
|
|
1679
|
-
},
|
|
1680
|
-
more_vert: {
|
|
1681
|
-
300: {
|
|
1682
|
-
noFill: "M479.88-189.23q-15.09 0-25.72-10.75-10.62-10.74-10.62-25.83 0-15.09 10.75-25.91 10.74-10.82 25.83-10.82 15.09 0 25.72 10.87 10.62 10.86 10.62 26.12 0 15.1-10.75 25.71-10.74 10.61-25.83 10.61Zm0-254.31q-15.09 0-25.72-10.75-10.62-10.74-10.62-25.83 0-15.09 10.75-25.72 10.74-10.62 25.83-10.62 15.09 0 25.72 10.75 10.62 10.74 10.62 25.83 0 15.09-10.75 25.72-10.74 10.62-25.83 10.62Zm0-253.92q-15.09 0-25.72-10.87-10.62-10.86-10.62-26.12 0-15.1 10.75-25.71 10.74-10.61 25.83-10.61 15.09 0 25.72 10.75 10.62 10.74 10.62 25.83 0 15.09-10.75 25.91-10.74 10.82-25.83 10.82Z",
|
|
1683
|
-
fill: "M479.88-189.23q-15.09 0-25.72-10.75-10.62-10.74-10.62-25.83 0-15.09 10.75-25.91 10.74-10.82 25.83-10.82 15.09 0 25.72 10.87 10.62 10.86 10.62 26.12 0 15.1-10.75 25.71-10.74 10.61-25.83 10.61Zm0-254.31q-15.09 0-25.72-10.75-10.62-10.74-10.62-25.83 0-15.09 10.75-25.72 10.74-10.62 25.83-10.62 15.09 0 25.72 10.75 10.62 10.74 10.62 25.83 0 15.09-10.75 25.72-10.74 10.62-25.83 10.62Zm0-253.92q-15.09 0-25.72-10.87-10.62-10.86-10.62-26.12 0-15.1 10.75-25.71 10.74-10.61 25.83-10.61 15.09 0 25.72 10.75 10.62 10.74 10.62 25.83 0 15.09-10.75 25.91-10.74 10.82-25.83 10.82Z"
|
|
1684
|
-
},
|
|
1685
|
-
400: {
|
|
1686
|
-
noFill: "M479.86-160Q460-160 446-174.14t-14-34Q432-228 446.14-242t34-14Q500-256 514-241.86t14 34Q528-188 513.86-174t-34 14Zm0-272Q460-432 446-446.14t-14-34Q432-500 446.14-514t34-14Q500-528 514-513.86t14 34Q528-460 513.86-446t-34 14Zm0-272Q460-704 446-718.14t-14-34Q432-772 446.14-786t34-14Q500-800 514-785.86t14 34Q528-732 513.86-718t-34 14Z",
|
|
1687
|
-
fill: "M479.86-160Q460-160 446-174.14t-14-34Q432-228 446.14-242t34-14Q500-256 514-241.86t14 34Q528-188 513.86-174t-34 14Zm0-272Q460-432 446-446.14t-14-34Q432-500 446.14-514t34-14Q500-528 514-513.86t14 34Q528-460 513.86-446t-34 14Zm0-272Q460-704 446-718.14t-14-34Q432-772 446.14-786t34-14Q500-800 514-785.86t14 34Q528-732 513.86-718t-34 14Z"
|
|
1688
|
-
}
|
|
1689
|
-
},
|
|
1690
|
-
open_in_browser: {
|
|
1691
|
-
300: {
|
|
1692
|
-
noFill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H583.46v-45.39h178.85q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-511.54H185.39v511.54q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h178.85V-140H197.69Zm259.62 0v-276.69l-88 87.61-32.62-32.23L480-504.61l143.31 143.3-32.62 32.23-88-87.61V-140h-45.38Z",
|
|
1693
|
-
fill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H583.46v-45.39h178.85q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-511.54H185.39v511.54q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h178.85V-140H197.69Zm259.62 0v-276.69l-88 87.61-32.62-32.23L480-504.61l143.31 143.3-32.62 32.23-88-87.61V-140h-45.38Z"
|
|
1694
|
-
},
|
|
1695
|
-
400: {
|
|
1696
|
-
noFill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H570v-60h210v-540H180v540h210v60H180Zm270 0v-284l-83 83-43-43 156-156 156 156-43 43-83-83v284h-60Z",
|
|
1697
|
-
fill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H570v-60h210v-540H180v540h210v60H180Zm270 0v-284l-83 83-43-43 156-156 156 156-43 43-83-83v284h-60Z"
|
|
1698
|
-
}
|
|
1699
|
-
},
|
|
1700
|
-
open_in_new: {
|
|
1701
|
-
300: {
|
|
1702
|
-
noFill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h251.69v45.39H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-251.69H820v251.69q0 23.53-17.08 40.61T762.31-140H197.69Zm186.62-211.69-32-32.62 390.31-390.3H530.15V-820H820v289.85h-45.39V-742l-390.3 390.31Z",
|
|
1703
|
-
fill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h251.69v45.39H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-251.69H820v251.69q0 23.53-17.08 40.61T762.31-140H197.69Zm186.62-211.69-32-32.62 390.31-390.3H530.15V-820H820v289.85h-45.39V-742l-390.3 390.31Z"
|
|
1704
|
-
},
|
|
1705
|
-
400: {
|
|
1706
|
-
noFill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h279v60H180v600h600v-279h60v279q0 24-18 42t-42 18H180Zm202-219-42-43 398-398H519v-60h321v321h-60v-218L382-339Z",
|
|
1707
|
-
fill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h279v60H180v600h600v-279h60v279q0 24-18 42t-42 18H180Zm202-219-42-43 398-398H519v-60h321v321h-60v-218L382-339Z"
|
|
1708
|
-
}
|
|
1709
|
-
},
|
|
1710
|
-
pause: {
|
|
1711
|
-
300: {
|
|
1712
|
-
noFill: "M533.85-220v-520H740v520H533.85ZM220-220v-520h206.54v520H220Zm359.23-45.39h115.38v-429.22H579.23v429.22Zm-313.84 0h115.76v-429.22H265.39v429.22Zm0-429.22v429.22-429.22Zm313.84 0v429.22-429.22Z",
|
|
1713
|
-
fill: "M556.54-220v-520h160.77v520H556.54Zm-313.85 0v-520h161.16v520H242.69Z"
|
|
1714
|
-
},
|
|
1715
|
-
400: {
|
|
1716
|
-
noFill: "M525-200v-560h235v560H525Zm-325 0v-560h235v560H200Zm385-60h115v-440H585v440Zm-325 0h115v-440H260v440Zm0-440v440-440Zm325 0v440-440Z",
|
|
1717
|
-
fill: "M555-200v-560h175v560H555Zm-325 0v-560h175v560H230Z"
|
|
1718
|
-
}
|
|
1719
|
-
},
|
|
1720
|
-
person: {
|
|
1721
|
-
300: {
|
|
1722
|
-
noFill: "M384.69-530.31q-37.38-37.38-37.38-95.5 0-58.11 37.38-95.3 37.39-37.2 95.31-37.2t95.31 37.2q37.38 37.19 37.38 95.3 0 58.12-37.38 95.5-37.39 37.39-95.31 37.39t-95.31-37.39ZM180-187.69v-75.93q0-32.23 17.08-56.15t44.38-36.77q63.16-28.07 121.77-42.31 58.62-14.23 116.77-14.23t116.46 14.54q58.31 14.54 121.46 42 27.92 12.85 45 36.77T780-263.62v75.93H180Zm45.39-45.39h509.22v-30.54q0-15.61-9.88-29.92-9.88-14.31-25.81-22.46-59-28.69-111.3-40.19-52.3-11.5-107.62-11.5-55.32 0-108.43 11.5-53.11 11.5-111.11 40.19-15.92 8.15-25.5 22.46-9.57 14.31-9.57 29.92v30.54Zm316.99-330.15q24.93-24.92 24.93-62.38 0-37.47-24.93-62.39-24.92-24.92-62.38-24.92T417.62-688q-24.93 24.92-24.93 62.39 0 37.46 24.93 62.38 24.92 24.92 62.38 24.92t62.38-24.92ZM480-625.61Zm0 392.53Z",
|
|
1723
|
-
fill: "M384.69-530.31q-37.38-37.38-37.38-95.5 0-58.11 37.38-95.3 37.39-37.2 95.31-37.2t95.31 37.2q37.38 37.19 37.38 95.3 0 58.12-37.38 95.5-37.39 37.39-95.31 37.39t-95.31-37.39ZM180-187.69v-75.93q0-32.23 17.08-56.15t44.38-36.77q63.16-28.07 121.77-42.31 58.62-14.23 116.77-14.23t116.46 14.54q58.31 14.54 121.46 42 27.92 12.85 45 36.77T780-263.62v75.93H180Z"
|
|
1724
|
-
},
|
|
1725
|
-
400: {
|
|
1726
|
-
noFill: "M372-523q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42ZM160-160v-94q0-38 19-65t49-41q67-30 128.5-45T480-420q62 0 123 15.5T731-360q31 14 50 41t19 65v94H160Zm60-60h520v-34q0-16-9.5-30.5T707-306q-64-31-117-42.5T480-360q-57 0-111 11.5T252-306q-14 7-23 21.5t-9 30.5v34Zm324.5-346.5Q570-592 570-631t-25.5-64.5Q519-721 480-721t-64.5 25.5Q390-670 390-631t25.5 64.5Q441-541 480-541t64.5-25.5ZM480-631Zm0 411Z",
|
|
1727
|
-
fill: "M372-523q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42ZM160-160v-94q0-38 19-65t49-41q67-30 128.5-45T480-420q62 0 123 15.5T731-360q31 14 50 41t19 65v94H160Z"
|
|
1728
|
-
}
|
|
1729
|
-
},
|
|
1730
|
-
photo_camera: {
|
|
1731
|
-
300: {
|
|
1732
|
-
noFill: "M479.69-280.46q66.92 0 112.27-45.35 45.35-45.34 45.35-112.27 0-66.92-45.35-111.96-45.35-45.04-112.27-45.04-66.92 0-111.96 45.04-45.04 45.04-45.04 111.96 0 66.93 45.04 112.27 45.04 45.35 111.96 45.35Zm0-45.39q-48.07 0-79.84-32.07-31.77-32.08-31.77-80.16 0-48.07 31.77-79.84 31.77-31.77 79.84-31.77 48.08 0 80.16 31.77 32.07 31.77 32.07 79.84 0 48.08-32.07 80.16-32.08 32.07-80.16 32.07ZM157.69-140q-23.53 0-40.61-17.08T100-197.69v-479.54q0-23 17.08-40.35 17.08-17.34 40.61-17.34h137.39L368.46-820h223.08l73.38 85.08h137.39q23 0 40.34 17.34Q860-700.23 860-677.23v479.54q0 23.53-17.35 40.61Q825.31-140 802.31-140H157.69Zm0-45.39h644.62q5.38 0 8.84-3.46t3.46-8.84v-479.54q0-5-3.46-8.65-3.46-3.66-8.84-3.66H643.85l-73.39-85.07H389.54l-73.39 85.07H157.69q-5.38 0-8.84 3.66-3.46 3.65-3.46 8.65v479.54q0 5.38 3.46 8.84t8.84 3.46ZM480-437.77Z",
|
|
1733
|
-
fill: "M480-280.46q66.61 0 111.96-45.35 45.35-45.34 45.35-111.96 0-67.23-45.35-112.27-45.35-45.04-111.96-45.04-67.23 0-112.27 45.04-45.04 45.04-45.04 112.27 0 66.62 45.04 111.96 45.04 45.35 112.27 45.35Zm0-45.39q-48.38 0-80.15-32.07-31.77-32.08-31.77-79.85 0-48.38 31.77-80.15 31.77-31.77 80.15-31.77 47.77 0 79.85 31.77 32.07 31.77 32.07 80.15 0 47.77-32.07 79.85-32.08 32.07-79.85 32.07ZM157.69-140q-23.61 0-40.65-17.04T100-197.69v-479.54q0-23 17.04-40.35 17.04-17.34 40.65-17.34h137.39L368.46-820h223.08l73.38 85.08h137.39q23 0 40.34 17.34Q860-700.23 860-677.23v479.54q0 23.61-17.35 40.65Q825.31-140 802.31-140H157.69Z"
|
|
1734
|
-
},
|
|
1735
|
-
400: {
|
|
1736
|
-
noFill: "M479.5-267q72.5 0 121.5-49t49-121.5q0-72.5-49-121T479.5-607q-72.5 0-121 48.5t-48.5 121q0 72.5 48.5 121.5t121 49Zm0-60q-47.5 0-78.5-31.5t-31-79q0-47.5 31-78.5t78.5-31q47.5 0 79 31t31.5 78.5q0 47.5-31.5 79t-79 31.5ZM140-120q-24 0-42-18t-18-42v-513q0-23 18-41.5t42-18.5h147l73-87h240l73 87h147q23 0 41.5 18.5T880-693v513q0 24-18.5 42T820-120H140Zm0-60h680v-513H645l-73-87H388l-73 87H140v513Zm340-257Z",
|
|
1737
|
-
fill: "M480-267q72 0 121-49t49-121q0-73-49-121.5T480-607q-73 0-121.5 48.5T310-437q0 72 48.5 121T480-267Zm0-60q-48 0-79-31.5T370-437q0-48 31-79t79-31q47 0 78.5 31t31.5 79q0 47-31.5 78.5T480-327ZM140-120q-24 0-42-18t-18-42v-513q0-23 18-41.5t42-18.5h147l73-87h240l73 87h147q23 0 41.5 18.5T880-693v513q0 24-18.5 42T820-120H140Z"
|
|
1738
|
-
}
|
|
1739
|
-
},
|
|
1740
|
-
photo_library: {
|
|
1741
|
-
300: {
|
|
1742
|
-
noFill: "M352.31-389.31h367.15L603.23-545.69l-103 132.31L433-496.15l-80.69 106.84Zm-73.85 158.54q-23.53 0-40.61-17.08t-17.08-40.61v-513.85q0-23.53 17.08-40.61T278.46-860h513.85q23.52 0 40.61 17.08Q850-825.84 850-802.31v513.85q0 23.53-17.08 40.61-17.09 17.08-40.61 17.08H278.46Zm0-45.39h513.85q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-513.85q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H278.46q-4.61 0-8.46 3.84-3.85 3.85-3.85 8.46v513.85q0 4.61 3.85 8.46 3.85 3.84 8.46 3.84ZM167.69-120q-23.52 0-40.61-17.08Q110-154.17 110-177.7v-559.22h45.39v559.22q0 4.62 3.84 8.47 3.85 3.84 8.46 3.84h559.23V-120H167.69Zm98.46-694.61v538.45-538.45Z",
|
|
1743
|
-
fill: "M352.31-389.31h367.15L603.23-545.69l-103 132.31L433-496.15l-80.69 106.84Zm-73.85 158.54q-23.53 0-40.61-17.08t-17.08-40.61v-513.85q0-23.53 17.08-40.61T278.46-860h513.85q23.52 0 40.61 17.08Q850-825.84 850-802.31v513.85q0 23.53-17.08 40.61-17.09 17.08-40.61 17.08H278.46ZM167.69-120q-23.52 0-40.61-17.08Q110-154.17 110-177.7v-559.22h45.39v559.22q0 4.62 3.84 8.47 3.85 3.84 8.46 3.84h559.23V-120H167.69Z"
|
|
1744
|
-
},
|
|
1745
|
-
400: {
|
|
1746
|
-
noFill: "M345-377h391L609-548 506-413l-68-87-93 123Zm-85 177q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h560q24 0 42 18t18 42v560q0 24-18 42t-42 18H260Zm0-60h560v-560H260v560ZM140-80q-24 0-42-18t-18-42v-620h60v620h620v60H140Zm120-740v560-560Z",
|
|
1747
|
-
fill: "M345-377h391L609-548 506-413l-68-87-93 123Zm-85 177q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h560q24 0 42 18t18 42v560q0 24-18 42t-42 18H260ZM140-80q-24 0-42-18t-18-42v-620h60v620h620v60H140Z"
|
|
1748
|
-
}
|
|
1749
|
-
},
|
|
1750
|
-
play_arrow: {
|
|
1751
|
-
300: {
|
|
1752
|
-
noFill: "M340-238.39v-487.68l383.07 243.84L340-238.39Zm45.39-243.84Zm0 161 253.99-161-253.99-161v322Z",
|
|
1753
|
-
fill: "M340-238.39v-487.68l383.07 243.84L340-238.39Z"
|
|
1754
|
-
},
|
|
1755
|
-
400: {
|
|
1756
|
-
noFill: "M320-203v-560l440 280-440 280Zm60-280Zm0 171 269-171-269-171v342Z",
|
|
1757
|
-
fill: "M320-203v-560l440 280-440 280Z"
|
|
1758
|
-
}
|
|
1759
|
-
},
|
|
1760
|
-
replay_5: {
|
|
1761
|
-
300: {
|
|
1762
|
-
noFill: "M347.39-126.46q-61.85-26.46-108.16-72.77-46.31-46.31-72.77-108.14Q140-369.2 140-440h45.39q0 122.69 85.96 208.65 85.96 85.96 208.65 85.96 122.69 0 208.65-85.96 85.96-85.96 85.96-208.65 0-122.69-84.03-208.65-84.04-85.96-206.73-85.96h-22.39l71.46 71.46-32 31.61-127.38-127.77 128.15-127.76 31.39 30.99L457-780h23q70.8 0 132.63 26.46t108.14 72.77q46.31 46.31 72.77 108.13Q820-510.81 820-440.02t-26.46 132.63q-26.46 61.85-72.77 108.16-46.31 46.31-108.13 72.77Q550.81-100 480.02-100t-132.63-26.46Zm38.76-192.39v-40.38h125.08v-60.23H386.15v-142.31H551v39.39H426.54v60.84h95.08q12.15 0 20.76 8.81 8.62 8.81 8.62 20.96v83.54q0 12.15-8.62 20.77-8.61 8.61-20.76 8.61H386.15Z",
|
|
1763
|
-
fill: "M347.39-126.46q-61.85-26.46-108.16-72.77-46.31-46.31-72.77-108.14Q140-369.2 140-440h45.39q0 122.69 85.96 208.65 85.96 85.96 208.65 85.96 122.69 0 208.65-85.96 85.96-85.96 85.96-208.65 0-122.69-84.03-208.65-84.04-85.96-206.73-85.96h-22.39l71.46 71.46-32 31.61-127.38-127.77 128.15-127.76 31.39 30.99L457-780h23q70.8 0 132.63 26.46t108.14 72.77q46.31 46.31 72.77 108.13Q820-510.81 820-440.02t-26.46 132.63q-26.46 61.85-72.77 108.16-46.31 46.31-108.13 72.77Q550.81-100 480.02-100t-132.63-26.46Zm38.76-192.39v-40.38h125.08v-60.23H386.15v-142.31H551v39.39H426.54v60.84h95.08q12.15 0 20.76 8.81 8.62 8.81 8.62 20.96v83.54q0 12.15-8.62 20.77-8.61 8.61-20.76 8.61H386.15Z"
|
|
1764
|
-
},
|
|
1765
|
-
400: {
|
|
1766
|
-
noFill: "M339.5-108Q274-136 225-185t-77-114.5Q120-365 120-440h60q0 125 87.5 212.5T480-140q125 0 212.5-87.5T780-440q0-125-85-212.5T485-740h-22l73 73-42 42-147-147 147-147 41 41-78 78h23q75 0 140.5 28T735-695q49 49 77 114.5T840-440q0 75-28 140.5T735-185q-49 49-114.5 77T480-80q-75 0-140.5-28ZM380-310v-50h127v-56H380v-155h176v49H430v57h92q14 0 24 10t10 24v87q0 14-10 24t-24 10H380Z",
|
|
1767
|
-
fill: "M339.5-108Q274-136 225-185t-77-114.5Q120-365 120-440h60q0 125 87.5 212.5T480-140q125 0 212.5-87.5T780-440q0-125-85-212.5T485-740h-22l73 73-42 42-147-147 147-147 41 41-78 78h23q75 0 140.5 28T735-695q49 49 77 114.5T840-440q0 75-28 140.5T735-185q-49 49-114.5 77T480-80q-75 0-140.5-28ZM380-310v-50h127v-56H380v-155h176v49H430v57h92q14 0 24 10t10 24v87q0 14-10 24t-24 10H380Z"
|
|
1768
|
-
}
|
|
1769
|
-
},
|
|
1770
|
-
search: {
|
|
1771
|
-
300: {
|
|
1772
|
-
noFill: "M790.61-137.54 531.08-397.08q-29.85 26.42-69.65 40.71-39.81 14.29-82.28 14.29-101.62 0-172.31-70.57-70.68-70.58-70.68-171 0-100.43 70.57-171 70.58-70.58 171.72-70.58 100.14 0 170.69 70.58 70.55 70.57 70.55 170.86 0 42.17-14.38 81.98-14.39 39.81-41.62 72.12l260.15 258.54-33.23 33.61ZM378.54-387.46q81.7 0 138.74-57.12 57.03-57.11 57.03-139.07 0-81.97-57.03-139.08-57.04-57.12-138.74-57.12-82.39 0-139.69 57.12-57.31 57.11-57.31 139.08 0 81.96 57.31 139.07 57.3 57.12 139.69 57.12Z",
|
|
1773
|
-
fill: "M790.61-137.54 531.08-397.08q-29.85 26.42-69.65 40.71-39.81 14.29-82.28 14.29-101.62 0-172.31-70.57-70.68-70.58-70.68-171 0-100.43 70.57-171 70.58-70.58 171.72-70.58 100.14 0 170.69 70.58 70.55 70.57 70.55 170.86 0 42.17-14.38 81.98-14.39 39.81-41.62 72.12l260.15 258.54-33.23 33.61ZM378.54-387.46q81.7 0 138.74-57.12 57.03-57.11 57.03-139.07 0-81.97-57.03-139.08-57.04-57.12-138.74-57.12-82.39 0-139.69 57.12-57.31 57.11-57.31 139.08 0 81.96 57.31 139.07 57.3 57.12 139.69 57.12Z"
|
|
1774
|
-
},
|
|
1775
|
-
400: {
|
|
1776
|
-
noFill: "M796-121 533-384q-30 26-70 40.5T378-329q-108 0-183-75t-75-181q0-106 75-181t182-75q106 0 180.5 75T632-585q0 43-14 83t-42 75l264 262-44 44ZM377-389q81 0 138-57.5T572-585q0-81-57-138.5T377-781q-82 0-139.5 57.5T180-585q0 81 57.5 138.5T377-389Z",
|
|
1777
|
-
fill: "M796-121 533-384q-30 26-70 40.5T378-329q-108 0-183-75t-75-181q0-106 75-181t182-75q106 0 180.5 75T632-585q0 43-14 83t-42 75l264 262-44 44ZM377-389q81 0 138-57.5T572-585q0-81-57-138.5T377-781q-82 0-139.5 57.5T180-585q0 81 57.5 138.5T377-389Z"
|
|
1778
|
-
}
|
|
1779
|
-
},
|
|
1780
|
-
settings: {
|
|
1781
|
-
300: {
|
|
1782
|
-
noFill: "m400.69-100-18.07-120.23q-20.54-7-44.23-20.35-23.7-13.34-40.85-28.27l-111.85 50.93-79.92-141.31 101.08-74.38q-2-10.54-2.89-23.01-.88-12.46-.88-23 0-10.15.88-22.61.89-12.46 2.89-24.16l-101.08-74.76 79.92-140.16 111.46 50.16q18.31-14.93 41.24-28.08 22.92-13.15 43.84-19.54L400.69-860h158.62l18.07 120.62q22.08 8.15 44.16 20.23 22.07 12.07 39.77 28l113.38-50.16 79.54 140.16-102.62 74.3q2.77 11.93 3.47 24 .69 12.08.69 22.85 0 10.38-.89 22.15-.88 11.77-3.27 24.47l102.23 74.15-79.92 141.31-112.61-51.31q-18.7 15.69-40.35 28.96-21.65 13.27-43.58 19.65L559.31-100H400.69Zm36.46-45.39h85.31L536.85-257q31.84-8 59.42-23.85 27.58-15.84 52.73-40.23l104.46 45.23 40-70.84L701-414.92q4-17.77 6.31-33.5 2.3-15.73 2.3-31.58 0-16.62-2-31.96-2-15.35-6.61-32.35l93.23-69-40-70.84-105.62 45.23q-21.07-23.69-50.84-41.77Q568-698.77 536.46-703l-13.61-111.61h-85.7l-13.23 111.23q-33.23 6.61-61.19 22.65t-52.11 41.42l-104.85-44.84-40 70.84 92.46 67.85q-4.38 15.84-6.69 32.15-2.31 16.31-2.31 33.69 0 16.62 2.31 32.54 2.31 15.93 6.31 32.16l-92.08 68.23 40 70.84 104.46-44.84q24 24.38 52.15 40.23 28.16 15.84 61.16 23.84l13.61 111.23Zm41.7-221.92q47.07 0 79.88-32.81 32.81-32.8 32.81-79.88t-32.81-79.88q-32.81-32.81-79.88-32.81-46.7 0-79.7 32.81-32.99 32.8-32.99 79.88t32.99 79.88q33 32.81 79.7 32.81ZM480-480Z",
|
|
1783
|
-
fill: "m400.69-100-18.07-120.23q-20.54-7-44.23-20.35-23.7-13.34-40.85-28.27l-111.85 50.93-79.92-141.31 101.08-74.38q-2-10.54-2.89-23.01-.88-12.46-.88-23 0-10.15.88-22.61.89-12.46 2.89-24.16l-101.08-74.76 79.92-140.16 111.46 50.16q18.31-14.93 41.24-28.08 22.92-13.15 43.84-19.54L400.69-860h158.62l18.07 120.62q22.08 8.15 44.16 20.23 22.07 12.07 39.77 28l113.38-50.16 79.54 140.16-102.62 74.3q2.77 11.93 3.47 24 .69 12.08.69 22.85 0 10.38-.89 22.15-.88 11.77-3.27 24.47l102.23 74.15-79.92 141.31-112.61-51.31q-18.7 15.69-40.35 28.96-21.65 13.27-43.58 19.65L559.31-100H400.69Zm78.16-267.31q47.07 0 79.88-32.81 32.81-32.8 32.81-79.88t-32.81-79.88q-32.81-32.81-79.88-32.81-46.7 0-79.7 32.81-32.99 32.8-32.99 79.88t32.99 79.88q33 32.81 79.7 32.81Z"
|
|
1784
|
-
},
|
|
1785
|
-
400: {
|
|
1786
|
-
noFill: "m388-80-20-126q-19-7-40-19t-37-25l-118 54-93-164 108-79q-2-9-2.5-20.5T185-480q0-9 .5-20.5T188-521L80-600l93-164 118 54q16-13 37-25t40-18l20-127h184l20 126q19 7 40.5 18.5T669-710l118-54 93 164-108 77q2 10 2.5 21.5t.5 21.5q0 10-.5 21t-2.5 21l108 78-93 164-118-54q-16 13-36.5 25.5T592-206L572-80H388Zm48-60h88l14-112q33-8 62.5-25t53.5-41l106 46 40-72-94-69q4-17 6.5-33.5T715-480q0-17-2-33.5t-7-33.5l94-69-40-72-106 46q-23-26-52-43.5T538-708l-14-112h-88l-14 112q-34 7-63.5 24T306-642l-106-46-40 72 94 69q-4 17-6.5 33.5T245-480q0 17 2.5 33.5T254-413l-94 69 40 72 106-46q24 24 53.5 41t62.5 25l14 112Zm44-210q54 0 92-38t38-92q0-54-38-92t-92-38q-54 0-92 38t-38 92q0 54 38 92t92 38Zm0-130Z",
|
|
1787
|
-
fill: "m388-80-20-126q-19-7-40-19t-37-25l-118 54-93-164 108-79q-2-9-2.5-20.5T185-480q0-9 .5-20.5T188-521L80-600l93-164 118 54q16-13 37-25t40-18l20-127h184l20 126q19 7 40.5 18.5T669-710l118-54 93 164-108 77q2 10 2.5 21.5t.5 21.5q0 10-.5 21t-2.5 21l108 78-93 164-118-54q-16 13-36.5 25.5T592-206L572-80H388Zm92-270q54 0 92-38t38-92q0-54-38-92t-92-38q-54 0-92 38t-38 92q0 54 38 92t92 38Z"
|
|
1788
|
-
}
|
|
1789
|
-
},
|
|
1790
|
-
share: {
|
|
1791
|
-
300: {
|
|
1792
|
-
noFill: "M676.68-100q-42.8 0-72.97-30.24t-30.17-72.99q0-7.67 5.38-33.62L281.46-412.23q-14.66 16.62-34.82 26.04-20.16 9.42-43.79 9.42-42.6 0-72.72-30.01Q100-436.8 100-480.09q0-43.29 30.13-73.22 30.12-29.92 72.59-29.92 22.87 0 42.77 8.91 19.9 8.91 34.36 25.32l299.07-173.77q-2.38-8-3.88-16.5t-1.5-17.55q0-42.7 30.26-72.94Q634.07-860 676.86-860q42.79 0 72.97 30.26Q780-799.47 780-756.68q0 42.8-30.24 72.97t-73.1 30.17q-22.36 0-41.59-9-19.22-9-33.69-24L300.46-515.23q3 8 4.5 17.11 1.5 9.12 1.5 17.81t-1.19 16.39q-1.19 7.69-3.58 15.69l300.69 174.15q14.61-15 33.54-23.69 18.93-8.69 40.95-8.69 43.15 0 73.14 30.26Q780-245.93 780-203.14q0 42.79-30.26 72.97Q719.47-100 676.68-100Zm.19-45.39q24.63 0 41.19-16.66 16.55-16.66 16.55-41.28 0-24.63-16.66-41.19t-41.28-16.56q-24.63 0-41.19 16.66t-16.56 41.29q0 24.63 16.66 41.19 16.66 16.55 41.29 16.55ZM202.95-422.15q24.79 0 41.46-16.76t16.67-41.19q0-24.44-16.77-41.09-16.77-16.66-41.57-16.66-24.46 0-40.91 16.76-16.44 16.76-16.44 41.19 0 24.44 16.54 41.09 16.55 16.66 41.02 16.66Zm515.01-293.43q16.65-16.66 16.65-41.29t-16.66-41.19q-16.66-16.55-41.28-16.55-24.63 0-41.19 16.66t-16.56 41.28q0 24.63 16.76 41.19t41.19 16.56q24.44 0 41.09-16.66Zm-41.19 512.35ZM203.23-480Zm473.54-276.77Z",
|
|
1793
|
-
fill: "M676.68-100q-42.8 0-72.97-30.24t-30.17-72.99q0-7.62 5.38-33.62L281.46-412.23q-14.74 16.57-34.8 26.02-20.07 9.44-43.81 9.44-42.6 0-72.72-29.92Q100-436.62 100-480t30.13-73.31q30.12-29.92 72.72-29.92 22.74 0 42.64 8.91 19.9 8.91 34.36 25.32l299.07-173.77q-2.38-8-3.88-16.5t-1.5-17.5q0-42.75 30.26-72.99Q634.07-860 676.86-860q42.79 0 72.97 30.26Q780-799.47 780-756.68q0 42.8-30.24 72.97t-72.99 30.17q-22.5 0-41.71-9t-33.68-24L300.46-515.23q3 8 4.5 17.11 1.5 9.12 1.5 17.62 0 8.88-1.19 16.58-1.19 7.69-3.58 15.69l300.69 174.15q14.47-15 33.41-23.69 18.94-8.69 41.13-8.69 43.1 0 73.09 30.26Q780-245.93 780-203.14q0 42.79-30.26 72.97Q719.47-100 676.68-100Z"
|
|
1794
|
-
},
|
|
1795
|
-
400: {
|
|
1796
|
-
noFill: "M686-80q-47.5 0-80.75-33.25T572-194q0-8 5-34L278-403q-16.28 17.34-37.64 27.17Q219-366 194-366q-47.5 0-80.75-33T80-480q0-48 33.25-81T194-594q24 0 45 9.3 21 9.29 37 25.7l301-173q-2-8-3.5-16.5T572-766q0-47.5 33.25-80.75T686-880q47.5 0 80.75 33.25T800-766q0 47.5-33.25 80.75T686-652q-23.27 0-43.64-9Q622-670 606-685L302-516q3 8 4.5 17.5t1.5 18q0 8.5-1 16t-3 15.5l303 173q16-15 36.09-23.5 20.1-8.5 43.07-8.5Q734-308 767-274.75T800-194q0 47.5-33.25 80.75T686-80Zm.04-60q22.96 0 38.46-15.54 15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5Zm-492-286q22.96 0 38.46-15.54 15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5ZM724.5-727.54q15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5 22.96 0 38.46-15.54ZM686-194ZM194-480Zm492-286Z",
|
|
1797
|
-
fill: "M686-80q-47.5 0-80.75-33.25T572-194q0-8 5-34L278-403q-16.28 17.34-37.64 27.17Q219-366 194-366q-47.5 0-80.75-33T80-480q0-48 33.25-81T194-594q24 0 45 9.3 21 9.29 37 25.7l301-173q-2-8-3.5-16.5T572-766q0-47.5 33.25-80.75T686-880q47.5 0 80.75 33.25T800-766q0 47.5-33.25 80.75T686-652q-23.27 0-43.64-9Q622-670 606-685L302-516q3 8 4.5 17.5t1.5 18q0 8.5-1 16t-3 15.5l303 173q16-15 36.09-23.5 20.1-8.5 43.07-8.5Q734-308 767-274.75T800-194q0 47.5-33.25 80.75T686-80Z"
|
|
1798
|
-
}
|
|
1799
|
-
},
|
|
1800
|
-
speed_1_2x: {
|
|
1801
|
-
300: {
|
|
1802
|
-
noFill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm108.93 0v-158.84q0-23.53 17.08-40.62 17.08-17.08 40.61-17.08h86.92q5.39 0 8.85-3.46t3.46-8.85v-97.92q0-5-3.46-8.65-3.46-3.66-8.85-3.66H365.08v-45.38h144.61q23.53 0 40.61 17.08t17.08 40.61v97.92q0 23.53-17.08 40.61-17.08 17.09-40.61 17.09h-86.92q-5 0-8.66 3.65-3.65 3.65-3.65 8.66v113.46h156.92v45.38h-202.3Zm-218.23 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM630.92-290l111.69-198.31L639-670h51.54l80.38 141.46L850.31-670h50.76L798.84-489.08 911.54-290H861l-90.46-157.46L681.31-290h-50.39Z",
|
|
1803
|
-
fill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm108.93 0v-158.84q0-23.53 17.08-40.62 17.08-17.08 40.61-17.08h86.92q5.39 0 8.85-3.46t3.46-8.85v-97.92q0-5-3.46-8.65-3.46-3.66-8.85-3.66H365.08v-45.38h144.61q23.53 0 40.61 17.08t17.08 40.61v97.92q0 23.53-17.08 40.61-17.08 17.09-40.61 17.09h-86.92q-5 0-8.66 3.65-3.65 3.65-3.65 8.66v113.46h156.92v45.38h-202.3Zm-218.23 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM630.92-290l111.69-198.31L639-670h51.54l80.38 141.46L850.31-670h50.76L798.84-489.08 911.54-290H861l-90.46-157.46L681.31-290h-50.39Z"
|
|
1804
|
-
},
|
|
1805
|
-
400: {
|
|
1806
|
-
noFill: "M245-277v-60h60v60h-60Zm122 0v-175q0-24 18-42t42-18h90v-111H367v-60h150q24 0 42 18t18 42v111q0 24-18 42t-42 18h-90v115h150v60H367Zm-244 0v-346H40v-60h143v406h-60Zm516-3 114-206-109-194h65l80 143 79-143h65L825-486l115 206h-64l-87-154-85 154h-65Z",
|
|
1807
|
-
fill: "M245-277v-60h60v60h-60Zm122 0v-175q0-24 18-42t42-18h90v-111H367v-60h150q24 0 42 18t18 42v111q0 24-18 42t-42 18h-90v115h150v60H367Zm-244 0v-346H40v-60h143v406h-60Zm516-3 114-206-109-194h65l80 143 79-143h65L825-486l115 206h-64l-87-154-85 154h-65Z"
|
|
1808
|
-
}
|
|
1809
|
-
},
|
|
1810
|
-
speed_1_5x: {
|
|
1811
|
-
300: {
|
|
1812
|
-
noFill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm-109.3 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM630.92-290l111.69-198.31L639-670h51.54l80.38 141.46L850.31-670h50.76L798.84-489.08 911.54-290H861l-90.46-157.46L681.31-290h-50.39Zm-265.84 2.23v-45.38h144.61q5.39 0 8.85-3.66 3.46-3.65 3.46-8.65v-101.15q0-5.01-3.46-8.66-3.46-3.65-8.85-3.65H365.08v-213.31h202.3v45.38H410.46v122.54h99.23q23.62 0 40.66 17.04 17.03 17.04 17.03 40.66v101.15q0 23.61-17.03 40.65-17.04 17.04-40.66 17.04H365.08Z",
|
|
1813
|
-
fill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm-109.3 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM630.92-290l111.69-198.31L639-670h51.54l80.38 141.46L850.31-670h50.76L798.84-489.08 911.54-290H861l-90.46-157.46L681.31-290h-50.39Zm-265.84 2.23v-45.38h144.61q5.39 0 8.85-3.66 3.46-3.65 3.46-8.65v-101.15q0-5.01-3.46-8.66-3.46-3.65-8.85-3.65H365.08v-213.31h202.3v45.38H410.46v122.54h99.23q23.62 0 40.66 17.04 17.03 17.04 17.03 40.66v101.15q0 23.61-17.03 40.65-17.04 17.04-40.66 17.04H365.08Z"
|
|
1814
|
-
},
|
|
1815
|
-
400: {
|
|
1816
|
-
noFill: "M245-277v-60h60v60h-60Zm-122 0v-346H40v-60h143v406h-60Zm516-3 114-206-109-194h65l80 143 79-143h65L825-486l115 206h-64l-87-154-85 154h-65Zm-272 3v-60h150v-115H367v-231h210v60H427v111h90q24 0 42 18t18 42v115q0 24-18 42t-42 18H367Z",
|
|
1817
|
-
fill: "M245-277v-60h60v60h-60Zm-122 0v-346H40v-60h143v406h-60Zm516-3 114-206-109-194h65l80 143 79-143h65L825-486l115 206h-64l-87-154-85 154h-65Zm-272 3v-60h150v-115H367v-231h210v60H427v111h90q24 0 42 18t18 42v115q0 24-18 42t-42 18H367Z"
|
|
1818
|
-
}
|
|
1819
|
-
},
|
|
1820
|
-
speed_1_7x: {
|
|
1821
|
-
300: {
|
|
1822
|
-
noFill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm-109.3 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM610.92-290l111.69-198.31L619-670h51.54l80.38 141.46L830.31-670h50.76L778.84-489.08 891.54-290H841l-90.46-157.46L661.31-290h-50.39Zm-202.84 1.61 88.54-338.46H330.08v-45.38h166.15q18.62 0 32.58 12.15 13.96 12.16 13.96 30.39 0 7.23-2.39 14.15l-86.15 327.15h-46.15Z",
|
|
1823
|
-
fill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm-109.3 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM610.92-290l111.69-198.31L619-670h51.54l80.38 141.46L830.31-670h50.76L778.84-489.08 891.54-290H841l-90.46-157.46L661.31-290h-50.39Zm-202.84 1.61 88.54-338.46H330.08v-45.38h166.15q18.62 0 32.58 12.15 13.96 12.16 13.96 30.39 0 7.23-2.39 14.15l-86.15 327.15h-46.15Z"
|
|
1824
|
-
},
|
|
1825
|
-
400: {
|
|
1826
|
-
noFill: "M245-277v-60h60v60h-60Zm-122 0v-346H40v-60h143v406h-60Zm496-3 114-206-109-194h65l80 143 79-143h65L805-486l115 206h-64l-87-154-85 154h-65Zm-214 2 92-345H327v-60h170q24 0 42 16t18 40q0 3-2 13l-90 336h-60Z",
|
|
1827
|
-
fill: "M245-277v-60h60v60h-60Zm-122 0v-346H40v-60h143v406h-60Zm496-3 114-206-109-194h65l80 143 79-143h65L805-486l115 206h-64l-87-154-85 154h-65Zm-214 2 92-345H327v-60h170q24 0 42 16t18 40q0 3-2 13l-90 336h-60Z"
|
|
1828
|
-
}
|
|
1829
|
-
},
|
|
1830
|
-
speed_1x: {
|
|
1831
|
-
300: {
|
|
1832
|
-
noFill: "M474.27-316.58q37.73-1.88 54.65-27.88l211.39-316.69-314.62 212.84q-25.77 17.31-27.77 54.96-2 37.66 18.31 58.16t58.04 18.61Zm4.11-462.8q55.85 0 111.31 16.57 55.46 16.58 108.23 55.43L659-678.85q-42.69-28.07-91.12-41.61Q519.46-734 478.47-734q-138.66 0-235.87 98.43-97.21 98.42-97.21 238.43 0 44.22 12.11 88.87 12.12 44.65 34.83 82.88h571.59q22.39-36.38 34.81-82.65 12.42-46.27 12.42-91.5 0-40.46-11.92-88t-41.23-87l29.77-38.92q35.69 54.85 51.42 106.15 15.73 51.31 17.35 103.69 1.23 56.16-11.62 105.31-12.84 49.16-38.69 93.77-8.92 16.46-19.15 20.5-10.23 4.04-26 4.04h-566q-12.82 0-25.26-6.77-12.43-6.77-18.9-19.31Q128-247.92 114-294.54q-14-46.61-14-102.61 0-78.39 29.77-148.04 29.77-69.66 80.88-121.46 51.12-51.81 120.34-82.27 69.22-30.46 147.39-30.46Zm-7.07 309.07Z",
|
|
1833
|
-
fill: "M424.15-346.15q21.54 21.53 55.12 20.03t49.04-24.03l214.84-312.23-313 214.07q-22.92 15.7-25.42 47.96-2.5 32.27 19.42 54.2ZM195.08-180q-13.77 0-25.73-6.96t-18.43-19.12q-24.84-44.54-37.88-93.46Q100-348.46 100-399.38q0-78.77 29.96-148.12 29.96-69.35 81.27-120.96 51.31-51.62 120.35-81.58Q400.62-780 478.38-780q78.77 0 148.62 29.77 69.85 29.77 121.65 81.38 51.81 51.62 81.77 120.77 29.96 69.16 29.58 147.93 0 51.3-12.42 101.11-12.43 49.81-37.5 94.5-7.08 12.15-19.43 18.35-12.34 6.19-25.73 6.19H195.08Z"
|
|
1834
|
-
},
|
|
1835
|
-
400: {
|
|
1836
|
-
noFill: "M473.5-303.5Q517-305 537-336l216-339-335 219q-30 20-32 64t21 67q23 23 66.5 21.5ZM478-799q57 0 119 18.5T716-717l-52 37q-45-30-96.5-44.5T477.98-739q-140.47 0-239.23 100.22Q140-538.57 140-396.02 140-351 152.5-305q12.5 46 35.5 85h579q22-36 35-84t13-94q0-42-12.5-90.5T758-578l39-52q38 56 57 112.5T875-404q2 60-12 113t-41 98q-12 23-25.5 28t-33.5 5H192q-17 0-33.5-8.5T134-193q-26-48-40-97.5T80-396q0-83 31.5-156.5t85.5-128Q251-735 323.68-767T478-799Zm-9 331Z",
|
|
1837
|
-
fill: "M418-340q25 25 63 23.5t55-27.5l221-333-333 221q-26 18-28.5 54.5T418-340ZM192-160q-18 0-34-8.5T134-193q-26-48-40-100T80-399q0-83 31.5-156T197-682.5q54-54.5 126.5-86T478-800q83 0 156.5 31.5t128 86Q817-628 848.5-555T880-399q0 54-13 106.5T827-193q-9 16-25 24.5t-34 8.5H192Z"
|
|
1838
|
-
}
|
|
1839
|
-
},
|
|
1840
|
-
speed_2x: {
|
|
1841
|
-
300: {
|
|
1842
|
-
noFill: "M221.54-287.77v-158.84q0-23.62 17.04-40.66 17.04-17.04 40.65-17.04h97.31q5 0 8.65-3.46 3.66-3.46 3.66-8.85v-97.92q0-5-3.66-8.65-3.65-3.66-8.65-3.66h-155v-45.38h155q23.23 0 40.46 17.04t17.23 40.65v97.92q0 23.62-17.23 40.66-17.23 17.04-40.46 17.04h-97.31q-5.38 0-8.84 3.65-3.47 3.65-3.47 8.66v113.46h167.31v45.38H221.54ZM492.69-290l111.69-198.31L501.15-670h51.16l80.38 141.46L712.46-670h50.38L660.61-489.08 773.31-290h-50.54l-90.46-157.46L543.46-290h-50.77Z",
|
|
1843
|
-
fill: "M221.54-287.77v-158.84q0-23.62 17.04-40.66 17.04-17.04 40.65-17.04h97.31q5 0 8.65-3.46 3.66-3.46 3.66-8.85v-97.92q0-5-3.66-8.65-3.65-3.66-8.65-3.66h-155v-45.38h155q23.23 0 40.46 17.04t17.23 40.65v97.92q0 23.62-17.23 40.66-17.23 17.04-40.46 17.04h-97.31q-5.38 0-8.84 3.65-3.47 3.65-3.47 8.66v113.46h167.31v45.38H221.54ZM492.69-290l111.69-198.31L501.15-670h51.16l80.38 141.46L712.46-670h50.38L660.61-489.08 773.31-290h-50.54l-90.46-157.46L543.46-290h-50.77Z"
|
|
1844
|
-
},
|
|
1845
|
-
400: {
|
|
1846
|
-
noFill: "M205-277v-175q0-24 18-42t42-18h110v-111H205v-60h170q24 0 42 18t18 42v111q0 24-18 42t-42 18H265v115h170v60H205Zm285-3 114-206-109-194h65l80 143 79-143h65L676-486l115 206h-64l-87-154-85 154h-65Z",
|
|
1847
|
-
fill: "M205-277v-175q0-24 18-42t42-18h110v-111H205v-60h170q24 0 42 18t18 42v111q0 24-18 42t-42 18H265v115h170v60H205Zm285-3 114-206-109-194h65l80 143 79-143h65L676-486l115 206h-64l-87-154-85 154h-65Z"
|
|
1848
|
-
}
|
|
1849
|
-
},
|
|
1850
|
-
stop: {
|
|
1851
|
-
300: {
|
|
1852
|
-
noFill: "M305.39-654.61v349.22-349.22ZM260-260v-440h440v440H260Zm45.39-45.39h349.22v-349.22H305.39v349.22Z",
|
|
1853
|
-
fill: "M260-260v-440h440v440H260Z"
|
|
1854
|
-
},
|
|
1855
|
-
400: {
|
|
1856
|
-
noFill: "M300-660v360-360Zm-60 420v-480h480v480H240Zm60-60h360v-360H300v360Z",
|
|
1857
|
-
fill: "M240-240v-480h480v480H240Z"
|
|
2210
|
+
variant = "button",
|
|
2211
|
+
previewSize = 160,
|
|
2212
|
+
className,
|
|
2213
|
+
disabled,
|
|
2214
|
+
accept,
|
|
2215
|
+
onChange,
|
|
2216
|
+
...props
|
|
2217
|
+
}) => {
|
|
2218
|
+
const inputId = React17.useId();
|
|
2219
|
+
const helperId = React17.useId();
|
|
2220
|
+
const inputRef = React17.useRef(null);
|
|
2221
|
+
const [previewUrls, setPreviewUrls] = React17.useState([]);
|
|
2222
|
+
const isPreviewVariant = variant === "preview";
|
|
2223
|
+
const showPreview = isPreviewVariant || preview;
|
|
2224
|
+
const handleChange = (e) => {
|
|
2225
|
+
const files = e.currentTarget.files;
|
|
2226
|
+
onFiles?.(files);
|
|
2227
|
+
onChange?.(e);
|
|
2228
|
+
if (showPreview && files) {
|
|
2229
|
+
for (const url of previewUrls) {
|
|
2230
|
+
URL.revokeObjectURL(url);
|
|
2231
|
+
}
|
|
2232
|
+
const urls = [];
|
|
2233
|
+
const limit = isPreviewVariant ? Math.min(1, files.length) : files.length;
|
|
2234
|
+
for (let i = 0; i < limit; i++) {
|
|
2235
|
+
if (files[i].type.startsWith("image/")) {
|
|
2236
|
+
urls.push(URL.createObjectURL(files[i]));
|
|
2237
|
+
}
|
|
2238
|
+
}
|
|
2239
|
+
setPreviewUrls(urls);
|
|
2240
|
+
} else {
|
|
2241
|
+
for (const url of previewUrls) {
|
|
2242
|
+
URL.revokeObjectURL(url);
|
|
2243
|
+
}
|
|
2244
|
+
setPreviewUrls([]);
|
|
1858
2245
|
}
|
|
1859
|
-
}
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
400: {
|
|
1866
|
-
noFill: "M600.5-379.5Q650-429 650-500t-49.5-120.5Q551-670 480-670t-120.5 49.5Q310-571 310-500t49.5 120.5Q409-330 480-330t120.5-49.5Zm-200-41Q368-453 368-500t32.5-79.5Q433-612 480-612t79.5 32.5Q592-547 592-500t-32.5 79.5Q527-388 480-388t-79.5-32.5ZM216-283Q98-366 40-500q58-134 176-217t264-83q146 0 264 83t176 217q-58 134-176 217t-264 83q-146 0-264-83Zm264-217Zm222.5 174.5Q804-391 857-500q-53-109-154.5-174.5T480-740q-121 0-222.5 65.5T102-500q54 109 155.5 174.5T480-260q121 0 222.5-65.5Z",
|
|
1867
|
-
fill: "M600.5-379.5Q650-429 650-500t-49.5-120.5Q551-670 480-670t-120.5 49.5Q310-571 310-500t49.5 120.5Q409-330 480-330t120.5-49.5Zm-200-41Q368-453 368-500t32.5-79.5Q433-612 480-612t79.5 32.5Q592-547 592-500t-32.5 79.5Q527-388 480-388t-79.5-32.5ZM216-283Q98-366 40-500q58-134 176-217t264-83q146 0 264 83t176 217q-58 134-176 217t-264 83q-146 0-264-83Z"
|
|
2246
|
+
};
|
|
2247
|
+
const handleRemove = (e) => {
|
|
2248
|
+
e.preventDefault();
|
|
2249
|
+
e.stopPropagation();
|
|
2250
|
+
for (const url of previewUrls) {
|
|
2251
|
+
URL.revokeObjectURL(url);
|
|
1868
2252
|
}
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
noFill: "m620.15-434.39-34.77-34.76q21.39-67.54-28.53-111.47-49.93-43.92-107.7-24.76l-34.76-34.77q13.53-7.93 30.3-11.77 16.77-3.85 35.31-3.85 65.23 0 110.5 45.27 45.27 45.27 45.27 110.5 0 18.54-4.16 36-4.15 17.46-11.46 29.61ZM748-307.69l-31.15-30q45.92-34.08 80.69-75.89 34.77-41.8 52.92-86.42-50-108.31-148.46-171.46-98.46-63.15-214.69-63.15-38.54 0-78.12 7.03-39.57 7.04-65.34 16.89L309-746.15q33.46-14.46 81.42-24.16 47.97-9.69 93.43-9.69 134.53 0 248.03 76.12Q845.38-627.77 898.46-500 874-442.54 836.27-394.35q-37.73 48.19-88.27 86.66Zm59.92 216.76L646.08-250.92q-30.77 13.61-74.39 22.26Q528.08-220 480-220q-137.54 0-250.77-76.12Q116-372.23 61.54-500q21.54-52.38 59.15-101.12 37.62-48.73 87.08-89.11L85.23-812.38l32-32.62 720.46 720.46-29.77 33.61Zm-569.15-567.3q-37.38 26.23-74.96 71-37.58 44.77-54.89 87.23 50.62 108.31 150.81 171.46 100.19 63.15 225.96 63.15 37.23 0 73.66-5.73 36.42-5.73 52.42-14.11l-70.92-70.93q-10.62 5.39-28.35 8.66-17.73 3.27-32.5 3.27-64.61 0-110.19-44.96T324.23-500q0-15 3.27-31.92 3.27-16.93 8.66-28.93l-97.39-97.38ZM531.46-517Zm-106 53.38Z",
|
|
1873
|
-
fill: "M807.92-90.93 646.08-250.92q-30.77 13.61-74.39 22.26Q528.08-220 480-220q-137.54 0-250.77-76.12Q116-372.23 61.54-500q21.54-52.38 59.15-101.12 37.62-48.73 87.08-89.11L85.23-812.38l32-32.62 720.46 720.46-29.77 33.61ZM480-344.23q14.77 0 32.69-3.27 17.93-3.27 28.16-9.04L336.54-560.85q-5.77 11.62-9.04 28.73-3.27 17.12-3.27 32.12 0 65.85 45.58 110.81 45.58 44.96 110.19 44.96Zm268 36.54-127.08-126.7q6.93-12.15 10.89-29.61 3.96-17.46 3.96-36 0-65.23-45.27-110.5-45.27-45.27-110.5-45.27-18.54 0-35.31 3.85-16.77 3.84-29.92 11.77L309-746.15q33.46-14.46 81.42-24.16 47.97-9.69 93.43-9.69 134.53 0 248.03 76.12Q845.38-627.77 898.46-500 874-442.54 836.27-394.35q-37.73 48.19-88.27 86.66ZM585.77-469.15 449.54-605.38q27.08-9.08 55.96-2.39 28.88 6.69 50.35 27.15 21.84 21.47 31.03 48.62 9.2 27.15-1.11 62.85Z"
|
|
1874
|
-
},
|
|
1875
|
-
400: {
|
|
1876
|
-
noFill: "m629-419-44-44q26-71-27-118t-115-24l-44-44q17-11 38-16t43-5q71 0 120.5 49.5T650-500q0 22-5.5 43.5T629-419Zm129 129-40-40q49-36 85.5-80.5T857-500q-50-111-150-175.5T490-740q-42 0-86 8t-69 19l-46-47q35-16 89.5-28T485-800q143 0 261.5 81.5T920-500q-26 64-67 117t-95 93Zm58 226L648-229q-35 14-79 21.5t-89 7.5q-146 0-265-81.5T40-500q20-52 55.5-101.5T182-696L56-822l42-43 757 757-39 44ZM223-654q-37 27-71.5 71T102-500q51 111 153.5 175.5T488-260q33 0 65-4t48-12l-64-64q-11 5-27 7.5t-30 2.5q-70 0-120-49t-50-121q0-15 2.5-30t7.5-27l-97-97Zm305 142Zm-116 58Z",
|
|
1877
|
-
fill: "M816-64 648-229q-35 14-79 21.5t-89 7.5q-146 0-265-81.5T40-500q20-52 55.5-101.5T182-696L56-822l42-43 757 757-39 44ZM480-330q14 0 30-2.5t27-7.5L320-557q-5 12-7.5 27t-2.5 30q0 72 50 121t120 49Zm278 40L629-419q10-16 15.5-37.5T650-500q0-71-49.5-120.5T480-670q-22 0-43 5t-38 16L289-760q35-16 89.5-28T485-800q143 0 261.5 81.5T920-500q-26 64-67 117t-95 93ZM585-463 443-605q29-11 60-4.5t54 28.5q23 23 32 51.5t-4 66.5Z"
|
|
2253
|
+
setPreviewUrls([]);
|
|
2254
|
+
if (inputRef.current) {
|
|
2255
|
+
inputRef.current.value = "";
|
|
1878
2256
|
}
|
|
1879
|
-
|
|
2257
|
+
onFiles?.(null);
|
|
2258
|
+
};
|
|
2259
|
+
React17.useEffect(() => {
|
|
2260
|
+
return () => {
|
|
2261
|
+
for (const url of previewUrls) {
|
|
2262
|
+
URL.revokeObjectURL(url);
|
|
2263
|
+
}
|
|
2264
|
+
};
|
|
2265
|
+
}, [previewUrls]);
|
|
2266
|
+
const hasImage = previewUrls.length > 0;
|
|
2267
|
+
const rootClassName = cn(
|
|
2268
|
+
"file_input",
|
|
2269
|
+
`file_input_variant_${variant}`,
|
|
2270
|
+
isPreviewVariant && hasImage && "file_input_variant_preview_filled",
|
|
2271
|
+
disabled && "file_input_disabled",
|
|
2272
|
+
className
|
|
2273
|
+
);
|
|
2274
|
+
return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
|
|
2275
|
+
/* @__PURE__ */ jsx(
|
|
2276
|
+
"input",
|
|
2277
|
+
{
|
|
2278
|
+
...props,
|
|
2279
|
+
ref: inputRef,
|
|
2280
|
+
id: inputId,
|
|
2281
|
+
type: "file",
|
|
2282
|
+
className: "file_input_control",
|
|
2283
|
+
disabled,
|
|
2284
|
+
accept: isPreviewVariant ? accept ?? "image/*" : accept,
|
|
2285
|
+
"aria-describedby": supportingText ? helperId : void 0,
|
|
2286
|
+
onChange: handleChange
|
|
2287
|
+
}
|
|
2288
|
+
),
|
|
2289
|
+
isPreviewVariant ? /* @__PURE__ */ jsx(
|
|
2290
|
+
"label",
|
|
2291
|
+
{
|
|
2292
|
+
htmlFor: inputId,
|
|
2293
|
+
className: "file_input_label",
|
|
2294
|
+
style: { width: previewSize, height: previewSize },
|
|
2295
|
+
children: hasImage ? (
|
|
2296
|
+
// biome-ignore lint/performance/noImgElement: framework-agnostic DS — host app should swap with next/image if needed
|
|
2297
|
+
/* @__PURE__ */ jsx(
|
|
2298
|
+
"img",
|
|
2299
|
+
{
|
|
2300
|
+
src: previewUrls[0],
|
|
2301
|
+
alt: "",
|
|
2302
|
+
className: "file_input_preview_image"
|
|
2303
|
+
}
|
|
2304
|
+
)
|
|
2305
|
+
) : /* @__PURE__ */ jsxs("span", { className: "file_input_preview_empty", children: [
|
|
2306
|
+
/* @__PURE__ */ jsx(Image, { size: 32, "aria-hidden": "true" }),
|
|
2307
|
+
/* @__PURE__ */ jsx("span", { className: "file_input_preview_empty_text", children: label })
|
|
2308
|
+
] })
|
|
2309
|
+
}
|
|
2310
|
+
) : /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "file_input_label", children: label }),
|
|
2311
|
+
isPreviewVariant && hasImage && !disabled && /* @__PURE__ */ jsx(
|
|
2312
|
+
"button",
|
|
2313
|
+
{
|
|
2314
|
+
type: "button",
|
|
2315
|
+
className: "file_input_preview_remove",
|
|
2316
|
+
onClick: handleRemove,
|
|
2317
|
+
"aria-label": "\uC774\uBBF8\uC9C0 \uC81C\uAC70",
|
|
2318
|
+
children: /* @__PURE__ */ jsx(X, { size: 14, "aria-hidden": "true" })
|
|
2319
|
+
}
|
|
2320
|
+
),
|
|
2321
|
+
supportingText && /* @__PURE__ */ jsx("span", { id: helperId, className: "file_input_helper", children: supportingText }),
|
|
2322
|
+
!isPreviewVariant && previewUrls.length > 0 && /* @__PURE__ */ jsx("div", { className: "file_input_preview", children: previewUrls.map((url) => (
|
|
2323
|
+
// biome-ignore lint/performance/noImgElement: framework-agnostic DS — host app should swap with next/image if needed
|
|
2324
|
+
/* @__PURE__ */ jsx(
|
|
2325
|
+
"img",
|
|
2326
|
+
{
|
|
2327
|
+
src: url,
|
|
2328
|
+
alt: "",
|
|
2329
|
+
className: "file_input_preview_img"
|
|
2330
|
+
},
|
|
2331
|
+
url
|
|
2332
|
+
)
|
|
2333
|
+
)) })
|
|
2334
|
+
] });
|
|
1880
2335
|
};
|
|
1881
|
-
var
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
2336
|
+
var Hero = ({
|
|
2337
|
+
height = "md",
|
|
2338
|
+
align = "left",
|
|
2339
|
+
backgroundImage,
|
|
2340
|
+
backgroundColor,
|
|
2341
|
+
overlay,
|
|
2342
|
+
title,
|
|
2343
|
+
subtitle,
|
|
2344
|
+
eyebrow,
|
|
2345
|
+
textColor = "auto",
|
|
2346
|
+
primaryAction,
|
|
2347
|
+
secondaryAction,
|
|
2348
|
+
children,
|
|
2349
|
+
className,
|
|
1886
2350
|
style,
|
|
1887
2351
|
...props
|
|
1888
2352
|
}) => {
|
|
1889
|
-
const
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
2353
|
+
const resolvedOverlay = overlay === true ? "dark" : overlay;
|
|
2354
|
+
const isDarkOverlay = resolvedOverlay === "dark" || resolvedOverlay === "navy";
|
|
2355
|
+
const resolvedTextColor = textColor === "auto" ? isDarkOverlay || backgroundImage && !resolvedOverlay ? "inverse" : "default" : textColor;
|
|
2356
|
+
const heroClassName = cn(
|
|
2357
|
+
"hero",
|
|
2358
|
+
`hero_height_${height}`,
|
|
2359
|
+
`hero_align_${align}`,
|
|
2360
|
+
resolvedOverlay && `hero_overlay_${resolvedOverlay}`,
|
|
2361
|
+
`hero_text_${resolvedTextColor}`,
|
|
2362
|
+
className
|
|
2363
|
+
);
|
|
2364
|
+
const inlineStyle = { ...style };
|
|
2365
|
+
if (backgroundImage) inlineStyle.backgroundImage = `url("${backgroundImage}")`;
|
|
2366
|
+
if (backgroundColor) inlineStyle.backgroundColor = backgroundColor;
|
|
2367
|
+
return /* @__PURE__ */ jsxs("section", { className: heroClassName, style: inlineStyle, ...props, children: [
|
|
2368
|
+
resolvedOverlay && /* @__PURE__ */ jsx("div", { className: "hero_overlay", "aria-hidden": "true" }),
|
|
2369
|
+
/* @__PURE__ */ jsxs("div", { className: "hero_content", children: [
|
|
2370
|
+
eyebrow && /* @__PURE__ */ jsx("div", { className: "hero_eyebrow", children: eyebrow }),
|
|
2371
|
+
title && /* @__PURE__ */ jsx("h1", { className: "hero_title", children: title }),
|
|
2372
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "hero_subtitle", children: subtitle }),
|
|
2373
|
+
(primaryAction || secondaryAction || children) && /* @__PURE__ */ jsxs("div", { className: "hero_actions", children: [
|
|
2374
|
+
primaryAction && /* @__PURE__ */ jsx(Button, { size: "lg", variant: "filled", onClick: primaryAction.onClick, children: primaryAction.label }),
|
|
2375
|
+
secondaryAction && /* @__PURE__ */ jsx(Button, { size: "lg", variant: "outline", onClick: secondaryAction.onClick, children: secondaryAction.label }),
|
|
2376
|
+
children
|
|
2377
|
+
] })
|
|
2378
|
+
] })
|
|
2379
|
+
] });
|
|
2380
|
+
};
|
|
2381
|
+
var Icon = ({ icon: IconComponent, ...props }) => {
|
|
2382
|
+
const hasLabel = !!props["aria-label"];
|
|
1895
2383
|
return /* @__PURE__ */ jsx(
|
|
1896
|
-
|
|
2384
|
+
IconComponent,
|
|
1897
2385
|
{
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
viewBox: "0 -960 960 960",
|
|
1902
|
-
fill: "currentColor",
|
|
1903
|
-
"aria-hidden": "true",
|
|
1904
|
-
focusable: "false",
|
|
1905
|
-
style: { display: "inline-block", flexShrink: 0, ...style },
|
|
1906
|
-
...props,
|
|
1907
|
-
children: /* @__PURE__ */ jsx("path", { d: pathData })
|
|
2386
|
+
"aria-hidden": hasLabel ? void 0 : true,
|
|
2387
|
+
focusable: hasLabel ? void 0 : false,
|
|
2388
|
+
...props
|
|
1908
2389
|
}
|
|
1909
2390
|
);
|
|
1910
2391
|
};
|
|
@@ -1930,8 +2411,10 @@ var LinearProgress = ({
|
|
|
1930
2411
|
className,
|
|
1931
2412
|
...props
|
|
1932
2413
|
}) => {
|
|
1933
|
-
const
|
|
1934
|
-
|
|
2414
|
+
const clampedStep = totalSteps > 0 ? Math.min(Math.max(currentStep, 0), totalSteps) : 0;
|
|
2415
|
+
const percent = totalSteps > 0 ? clampedStep / totalSteps * 100 : 0;
|
|
2416
|
+
const dotCount = totalSteps + 1;
|
|
2417
|
+
return /* @__PURE__ */ jsxs(
|
|
1935
2418
|
"div",
|
|
1936
2419
|
{
|
|
1937
2420
|
className: cn("linear_progress", className),
|
|
@@ -1940,7 +2423,21 @@ var LinearProgress = ({
|
|
|
1940
2423
|
"aria-valuemin": 0,
|
|
1941
2424
|
"aria-valuemax": totalSteps,
|
|
1942
2425
|
...props,
|
|
1943
|
-
children:
|
|
2426
|
+
children: [
|
|
2427
|
+
/* @__PURE__ */ jsx("div", { className: "linear_progress_track" }),
|
|
2428
|
+
/* @__PURE__ */ jsx("div", { className: "linear_progress_indicator", style: { width: `${percent}%` } }),
|
|
2429
|
+
Array.from({ length: dotCount }, (_, i) => /* @__PURE__ */ jsx(
|
|
2430
|
+
"span",
|
|
2431
|
+
{
|
|
2432
|
+
className: cn(
|
|
2433
|
+
"linear_progress_step",
|
|
2434
|
+
i <= clampedStep && "linear_progress_step_done"
|
|
2435
|
+
),
|
|
2436
|
+
"aria-hidden": "true"
|
|
2437
|
+
},
|
|
2438
|
+
i
|
|
2439
|
+
))
|
|
2440
|
+
]
|
|
1944
2441
|
}
|
|
1945
2442
|
);
|
|
1946
2443
|
};
|
|
@@ -1951,16 +2448,20 @@ var ListItem = ({
|
|
|
1951
2448
|
metadata,
|
|
1952
2449
|
leadingElement,
|
|
1953
2450
|
trailingElement,
|
|
1954
|
-
alignment
|
|
2451
|
+
alignment,
|
|
1955
2452
|
disabled,
|
|
2453
|
+
selected,
|
|
1956
2454
|
onClick,
|
|
1957
2455
|
className,
|
|
1958
2456
|
...props
|
|
1959
2457
|
}) => {
|
|
2458
|
+
const isOneLine = !overline && !supportingText && !metadata;
|
|
2459
|
+
const effectiveAlignment = alignment ?? (isOneLine ? "middle" : "top");
|
|
1960
2460
|
const rootClassName = cn(
|
|
1961
2461
|
"list_item",
|
|
1962
|
-
`list_item_align_${
|
|
2462
|
+
`list_item_align_${effectiveAlignment}`,
|
|
1963
2463
|
disabled && "list_item_disabled",
|
|
2464
|
+
selected && "list_item_selected",
|
|
1964
2465
|
onClick && "list_item_interactive",
|
|
1965
2466
|
className
|
|
1966
2467
|
);
|
|
@@ -1981,6 +2482,7 @@ var ListItem = ({
|
|
|
1981
2482
|
role: onClick ? "button" : void 0,
|
|
1982
2483
|
tabIndex: onClick && !disabled ? 0 : void 0,
|
|
1983
2484
|
"aria-disabled": disabled || void 0,
|
|
2485
|
+
"aria-selected": selected || void 0,
|
|
1984
2486
|
...props,
|
|
1985
2487
|
children: /* @__PURE__ */ jsxs("div", { className: "list_item_state_layer", children: [
|
|
1986
2488
|
leadingElement && /* @__PURE__ */ jsx("div", { className: "list_item_leading", children: leadingElement }),
|
|
@@ -1996,29 +2498,89 @@ var ListItem = ({
|
|
|
1996
2498
|
)
|
|
1997
2499
|
);
|
|
1998
2500
|
};
|
|
2501
|
+
var MediaCard = ({
|
|
2502
|
+
image,
|
|
2503
|
+
imagePosition = "top",
|
|
2504
|
+
aspectRatio,
|
|
2505
|
+
heading,
|
|
2506
|
+
headingAs: HeadingTag = "h3",
|
|
2507
|
+
eyebrow,
|
|
2508
|
+
shadow = "sm",
|
|
2509
|
+
bordered = false,
|
|
2510
|
+
clickable = false,
|
|
2511
|
+
meta,
|
|
2512
|
+
children,
|
|
2513
|
+
className,
|
|
2514
|
+
...props
|
|
2515
|
+
}) => {
|
|
2516
|
+
const cardClassName = cn(
|
|
2517
|
+
"media_card",
|
|
2518
|
+
`media_card_image_${imagePosition}`,
|
|
2519
|
+
`media_card_shadow_${shadow}`,
|
|
2520
|
+
bordered && "media_card_bordered",
|
|
2521
|
+
clickable && "media_card_clickable",
|
|
2522
|
+
className
|
|
2523
|
+
);
|
|
2524
|
+
const isOverlay = imagePosition === "overlay";
|
|
2525
|
+
const cardStyle = isOverlay && aspectRatio ? { aspectRatio } : void 0;
|
|
2526
|
+
const wrapStyle = !isOverlay && aspectRatio ? { aspectRatio } : void 0;
|
|
2527
|
+
return /* @__PURE__ */ jsxs("div", { className: cardClassName, style: cardStyle, ...props, children: [
|
|
2528
|
+
/* @__PURE__ */ jsxs("div", { className: "media_card_image_wrap", style: wrapStyle, children: [
|
|
2529
|
+
/* @__PURE__ */ jsx("img", { className: "media_card_image", src: image.src, alt: image.alt, loading: "lazy" }),
|
|
2530
|
+
isOverlay && /* @__PURE__ */ jsx("div", { className: "media_card_overlay", "aria-hidden": "true" })
|
|
2531
|
+
] }),
|
|
2532
|
+
/* @__PURE__ */ jsxs("div", { className: "media_card_body", children: [
|
|
2533
|
+
eyebrow && /* @__PURE__ */ jsx("div", { className: "media_card_eyebrow", children: eyebrow }),
|
|
2534
|
+
heading && /* @__PURE__ */ jsx(HeadingTag, { className: "media_card_heading", children: heading }),
|
|
2535
|
+
children && /* @__PURE__ */ jsx("div", { className: "media_card_content", children }),
|
|
2536
|
+
meta && /* @__PURE__ */ jsx("div", { className: "media_card_meta", children: meta })
|
|
2537
|
+
] })
|
|
2538
|
+
] });
|
|
2539
|
+
};
|
|
1999
2540
|
var Modal = ({
|
|
2000
2541
|
open,
|
|
2001
2542
|
onClose,
|
|
2002
2543
|
closeOnOverlay = true,
|
|
2003
|
-
width =
|
|
2544
|
+
width = 480,
|
|
2004
2545
|
title,
|
|
2546
|
+
description,
|
|
2547
|
+
footer,
|
|
2548
|
+
footerAlign = "end",
|
|
2549
|
+
showCloseIcon = true,
|
|
2550
|
+
closeLabel = "\uB2EB\uAE30",
|
|
2005
2551
|
children,
|
|
2006
2552
|
className,
|
|
2007
2553
|
ariaLabel,
|
|
2008
2554
|
...props
|
|
2009
2555
|
}) => {
|
|
2010
|
-
const panelRef =
|
|
2011
|
-
const titleId =
|
|
2556
|
+
const panelRef = React17.useRef(null);
|
|
2557
|
+
const titleId = React17.useId();
|
|
2558
|
+
const [shouldRender, setShouldRender] = React17.useState(open);
|
|
2012
2559
|
useFocusTrap(panelRef, open);
|
|
2013
|
-
|
|
2560
|
+
React17.useEffect(() => {
|
|
2561
|
+
if (open) setShouldRender(true);
|
|
2562
|
+
}, [open]);
|
|
2563
|
+
const overlayStyle = useSpring({
|
|
2564
|
+
opacity: open ? 1 : 0,
|
|
2565
|
+
config: { tension: 280, friction: 28, clamp: !open },
|
|
2566
|
+
onRest: (result) => {
|
|
2567
|
+
if (!open && result.finished) setShouldRender(false);
|
|
2568
|
+
}
|
|
2569
|
+
});
|
|
2570
|
+
const panelStyle = useSpring({
|
|
2571
|
+
opacity: open ? 1 : 0,
|
|
2572
|
+
transform: open ? "scale(1) translateY(0px)" : "scale(0.96) translateY(-4px)",
|
|
2573
|
+
config: { tension: 280, friction: 28, clamp: !open }
|
|
2574
|
+
});
|
|
2575
|
+
const handleEscape = React17.useEffectEvent((e) => {
|
|
2014
2576
|
if (e.key === "Escape") onClose?.();
|
|
2015
2577
|
});
|
|
2016
|
-
|
|
2578
|
+
React17.useEffect(() => {
|
|
2017
2579
|
if (!open) return;
|
|
2018
2580
|
document.addEventListener("keydown", handleEscape);
|
|
2019
2581
|
return () => document.removeEventListener("keydown", handleEscape);
|
|
2020
2582
|
}, [open]);
|
|
2021
|
-
|
|
2583
|
+
React17.useEffect(() => {
|
|
2022
2584
|
if (!open) return;
|
|
2023
2585
|
const body = document.body;
|
|
2024
2586
|
const openModals = parseInt(body.dataset.openModals || "0", 10);
|
|
@@ -2039,13 +2601,13 @@ var Modal = ({
|
|
|
2039
2601
|
}
|
|
2040
2602
|
};
|
|
2041
2603
|
}, [open]);
|
|
2042
|
-
if (!
|
|
2043
|
-
const panelClassName = cn("modal_panel", className);
|
|
2604
|
+
if (!shouldRender) return null;
|
|
2044
2605
|
const hasTitle = !!title;
|
|
2045
2606
|
return /* @__PURE__ */ jsx(
|
|
2046
|
-
|
|
2607
|
+
animated.div,
|
|
2047
2608
|
{
|
|
2048
2609
|
className: "modal",
|
|
2610
|
+
style: overlayStyle,
|
|
2049
2611
|
role: "dialog",
|
|
2050
2612
|
"aria-modal": "true",
|
|
2051
2613
|
"aria-labelledby": hasTitle && !ariaLabel ? titleId : void 0,
|
|
@@ -2055,11 +2617,11 @@ var Modal = ({
|
|
|
2055
2617
|
if (e.key === "Escape") onClose?.();
|
|
2056
2618
|
},
|
|
2057
2619
|
children: /* @__PURE__ */ jsxs(
|
|
2058
|
-
|
|
2620
|
+
animated.div,
|
|
2059
2621
|
{
|
|
2060
2622
|
ref: panelRef,
|
|
2061
|
-
className:
|
|
2062
|
-
style: { width },
|
|
2623
|
+
className: cn("modal_panel", className),
|
|
2624
|
+
style: { ...panelStyle, width },
|
|
2063
2625
|
role: "document",
|
|
2064
2626
|
onClick: (e) => e.stopPropagation(),
|
|
2065
2627
|
onKeyDown: (e) => {
|
|
@@ -2067,8 +2629,20 @@ var Modal = ({
|
|
|
2067
2629
|
},
|
|
2068
2630
|
...props,
|
|
2069
2631
|
children: [
|
|
2070
|
-
|
|
2071
|
-
|
|
2632
|
+
showCloseIcon && onClose && /* @__PURE__ */ jsx(
|
|
2633
|
+
"button",
|
|
2634
|
+
{
|
|
2635
|
+
type: "button",
|
|
2636
|
+
className: "modal_close",
|
|
2637
|
+
onClick: onClose,
|
|
2638
|
+
"aria-label": closeLabel,
|
|
2639
|
+
children: /* @__PURE__ */ jsx(X, { size: 18, "aria-hidden": "true" })
|
|
2640
|
+
}
|
|
2641
|
+
),
|
|
2642
|
+
title && /* @__PURE__ */ jsx("h2", { id: titleId, className: "modal_title", children: title }),
|
|
2643
|
+
description && /* @__PURE__ */ jsx("div", { className: "modal_description", children: description }),
|
|
2644
|
+
children && /* @__PURE__ */ jsx("div", { className: "modal_body", children }),
|
|
2645
|
+
footer && /* @__PURE__ */ jsx("div", { className: cn("modal_footer", `modal_footer_${footerAlign}`), children: footer })
|
|
2072
2646
|
]
|
|
2073
2647
|
}
|
|
2074
2648
|
)
|
|
@@ -2086,11 +2660,12 @@ var OtpInput = ({
|
|
|
2086
2660
|
ariaLabel = "OTP \uC785\uB825",
|
|
2087
2661
|
className
|
|
2088
2662
|
}) => {
|
|
2089
|
-
const inputsRef =
|
|
2090
|
-
|
|
2663
|
+
const inputsRef = React17.useRef([]);
|
|
2664
|
+
const isTypingRef = React17.useRef(false);
|
|
2665
|
+
React17.useEffect(() => {
|
|
2091
2666
|
if (autoFocus) inputsRef.current[0]?.focus();
|
|
2092
2667
|
}, [autoFocus]);
|
|
2093
|
-
const digits =
|
|
2668
|
+
const digits = React17.useMemo(() => {
|
|
2094
2669
|
const chars = value.split("").slice(0, length);
|
|
2095
2670
|
while (chars.length < length) chars.push("");
|
|
2096
2671
|
return chars;
|
|
@@ -2108,10 +2683,15 @@ var OtpInput = ({
|
|
|
2108
2683
|
newDigits[index] = nextDigit;
|
|
2109
2684
|
updateValue(newDigits);
|
|
2110
2685
|
if (nextDigit && index < length - 1) {
|
|
2686
|
+
isTypingRef.current = true;
|
|
2111
2687
|
focusInput(index + 1);
|
|
2688
|
+
setTimeout(() => {
|
|
2689
|
+
isTypingRef.current = false;
|
|
2690
|
+
}, 50);
|
|
2112
2691
|
}
|
|
2113
2692
|
};
|
|
2114
2693
|
const handleFocus = (index) => {
|
|
2694
|
+
if (isTypingRef.current) return;
|
|
2115
2695
|
const firstEmpty = digits.indexOf("");
|
|
2116
2696
|
if (firstEmpty !== -1 && firstEmpty < index) {
|
|
2117
2697
|
focusInput(firstEmpty);
|
|
@@ -2224,7 +2804,7 @@ var Pagination = ({
|
|
|
2224
2804
|
}) => {
|
|
2225
2805
|
const prevDisabled = page <= 1;
|
|
2226
2806
|
const nextDisabled = page >= totalPages;
|
|
2227
|
-
const items =
|
|
2807
|
+
const items = React17.useMemo(() => getPaginationItems(page, totalPages), [page, totalPages]);
|
|
2228
2808
|
return /* @__PURE__ */ jsxs("nav", { className: "pagination", "aria-label": "Pagination", children: [
|
|
2229
2809
|
/* @__PURE__ */ jsx(
|
|
2230
2810
|
"button",
|
|
@@ -2283,6 +2863,33 @@ var Radio = ({ label, size = "md", className, ref, ...props }) => {
|
|
|
2283
2863
|
] });
|
|
2284
2864
|
};
|
|
2285
2865
|
Radio.displayName = "Radio";
|
|
2866
|
+
var Skeleton = ({
|
|
2867
|
+
variant = "text",
|
|
2868
|
+
width,
|
|
2869
|
+
height,
|
|
2870
|
+
radius: radius2,
|
|
2871
|
+
className,
|
|
2872
|
+
style,
|
|
2873
|
+
...props
|
|
2874
|
+
}) => {
|
|
2875
|
+
const skeletonClassName = cn(
|
|
2876
|
+
"skeleton",
|
|
2877
|
+
`skeleton_variant_${variant}`,
|
|
2878
|
+
radius2 && `skeleton_radius_${radius2}`,
|
|
2879
|
+
className
|
|
2880
|
+
);
|
|
2881
|
+
const inlineStyle = { ...style };
|
|
2882
|
+
if (width !== void 0) {
|
|
2883
|
+
inlineStyle.width = typeof width === "number" ? `${width}px` : width;
|
|
2884
|
+
}
|
|
2885
|
+
if (height !== void 0) {
|
|
2886
|
+
inlineStyle.height = typeof height === "number" ? `${height}px` : height;
|
|
2887
|
+
}
|
|
2888
|
+
if (variant === "avatar" && width !== void 0 && height === void 0) {
|
|
2889
|
+
inlineStyle.height = inlineStyle.width;
|
|
2890
|
+
}
|
|
2891
|
+
return /* @__PURE__ */ jsx("div", { className: skeletonClassName, style: inlineStyle, "aria-hidden": "true", ...props });
|
|
2892
|
+
};
|
|
2286
2893
|
var Spinner = ({ size = 24, ariaLabel = "Loading" }) => {
|
|
2287
2894
|
return /* @__PURE__ */ jsx(
|
|
2288
2895
|
"span",
|
|
@@ -2290,11 +2897,165 @@ var Spinner = ({ size = 24, ariaLabel = "Loading" }) => {
|
|
|
2290
2897
|
className: "spinner",
|
|
2291
2898
|
style: { width: size, height: size },
|
|
2292
2899
|
role: "status",
|
|
2293
|
-
"aria-label": ariaLabel
|
|
2900
|
+
"aria-label": ariaLabel,
|
|
2901
|
+
children: Array.from({ length: 12 }, (_, i) => (
|
|
2902
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: static 12 bars, index is stable key
|
|
2903
|
+
/* @__PURE__ */ jsx("span", { className: "spinner_bar", "aria-hidden": "true" }, i)
|
|
2904
|
+
))
|
|
2905
|
+
}
|
|
2906
|
+
);
|
|
2907
|
+
};
|
|
2908
|
+
var Table = ({
|
|
2909
|
+
columns,
|
|
2910
|
+
data,
|
|
2911
|
+
keyExtractor,
|
|
2912
|
+
emptyMessage = "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4",
|
|
2913
|
+
isLoading = false,
|
|
2914
|
+
skeletonRows = 5,
|
|
2915
|
+
size = "md",
|
|
2916
|
+
hoverable = true,
|
|
2917
|
+
stickyHeader = false,
|
|
2918
|
+
ariaLabel,
|
|
2919
|
+
className,
|
|
2920
|
+
onRowClick
|
|
2921
|
+
}) => {
|
|
2922
|
+
const wrapperClassName = cn(
|
|
2923
|
+
"table_wrapper",
|
|
2924
|
+
`table_size_${size}`,
|
|
2925
|
+
stickyHeader && "table_sticky_header",
|
|
2926
|
+
className
|
|
2927
|
+
);
|
|
2928
|
+
const isEmpty = !isLoading && data.length === 0;
|
|
2929
|
+
return /* @__PURE__ */ jsxs("div", { className: wrapperClassName, children: [
|
|
2930
|
+
/* @__PURE__ */ jsxs("table", { className: "table", "aria-label": ariaLabel, children: [
|
|
2931
|
+
/* @__PURE__ */ jsx("thead", { className: "table_thead", children: /* @__PURE__ */ jsx("tr", { children: columns.map((col) => /* @__PURE__ */ jsx(
|
|
2932
|
+
"th",
|
|
2933
|
+
{
|
|
2934
|
+
scope: "col",
|
|
2935
|
+
className: cn("table_th", col.align && `table_align_${col.align}`),
|
|
2936
|
+
style: { width: col.width },
|
|
2937
|
+
children: col.header
|
|
2938
|
+
},
|
|
2939
|
+
col.key
|
|
2940
|
+
)) }) }),
|
|
2941
|
+
/* @__PURE__ */ jsx("tbody", { className: "table_tbody", children: isLoading ? Array.from({ length: skeletonRows }).map((_, rowIndex) => (
|
|
2942
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton rows have no stable identity
|
|
2943
|
+
/* @__PURE__ */ jsx("tr", { className: "table_row table_row_skeleton", children: columns.map((col) => /* @__PURE__ */ jsx(
|
|
2944
|
+
"td",
|
|
2945
|
+
{
|
|
2946
|
+
className: cn("table_td", col.align && `table_align_${col.align}`),
|
|
2947
|
+
style: { width: col.width },
|
|
2948
|
+
children: /* @__PURE__ */ jsx(Skeleton, { variant: "text" })
|
|
2949
|
+
},
|
|
2950
|
+
col.key
|
|
2951
|
+
)) }, rowIndex)
|
|
2952
|
+
)) : data.map((item, rowIndex) => /* @__PURE__ */ jsx(
|
|
2953
|
+
"tr",
|
|
2954
|
+
{
|
|
2955
|
+
className: cn(
|
|
2956
|
+
"table_row",
|
|
2957
|
+
hoverable && "table_row_hoverable",
|
|
2958
|
+
onRowClick && "table_row_clickable"
|
|
2959
|
+
),
|
|
2960
|
+
role: onRowClick ? "button" : void 0,
|
|
2961
|
+
tabIndex: onRowClick ? 0 : void 0,
|
|
2962
|
+
onClick: onRowClick ? () => onRowClick(item, rowIndex) : void 0,
|
|
2963
|
+
onKeyDown: onRowClick ? (e) => {
|
|
2964
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
2965
|
+
e.preventDefault();
|
|
2966
|
+
onRowClick(item, rowIndex);
|
|
2967
|
+
}
|
|
2968
|
+
} : void 0,
|
|
2969
|
+
children: columns.map((col) => /* @__PURE__ */ jsx(
|
|
2970
|
+
"td",
|
|
2971
|
+
{
|
|
2972
|
+
className: cn("table_td", col.align && `table_align_${col.align}`),
|
|
2973
|
+
style: { width: col.width },
|
|
2974
|
+
children: (() => {
|
|
2975
|
+
if (col.render) return col.render(item, rowIndex);
|
|
2976
|
+
const value = item[col.key];
|
|
2977
|
+
return value === null || value === void 0 || value === "" ? "-" : String(value);
|
|
2978
|
+
})()
|
|
2979
|
+
},
|
|
2980
|
+
col.key
|
|
2981
|
+
))
|
|
2982
|
+
},
|
|
2983
|
+
keyExtractor(item, rowIndex)
|
|
2984
|
+
)) })
|
|
2985
|
+
] }),
|
|
2986
|
+
isEmpty && /* @__PURE__ */ jsx("div", { className: "table_empty", role: "status", children: emptyMessage })
|
|
2987
|
+
] });
|
|
2988
|
+
};
|
|
2989
|
+
var ThemeContext = React17.createContext(null);
|
|
2990
|
+
var useTheme = () => {
|
|
2991
|
+
const ctx = React17.useContext(ThemeContext);
|
|
2992
|
+
if (!ctx) {
|
|
2993
|
+
throw new Error(
|
|
2994
|
+
'[Bigtablet DS] useTheme\uB294 <ThemeProvider> \uC548\uC5D0\uC11C\uB9CC \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4.\n\n\uC571 \uCD5C\uC0C1\uB2E8\uC5D0 <ThemeProvider>\uB85C \uAC10\uC2F8\uC8FC\uC138\uC694:\n <ThemeProvider mode="system">\n <YourApp />\n </ThemeProvider>'
|
|
2995
|
+
);
|
|
2996
|
+
}
|
|
2997
|
+
return ctx;
|
|
2998
|
+
};
|
|
2999
|
+
var isClient = typeof window !== "undefined";
|
|
3000
|
+
function readStored(key) {
|
|
3001
|
+
if (!isClient || !key) return null;
|
|
3002
|
+
try {
|
|
3003
|
+
const value = window.localStorage.getItem(key);
|
|
3004
|
+
if (value === "light" || value === "dark" || value === "system") return value;
|
|
3005
|
+
} catch {
|
|
3006
|
+
}
|
|
3007
|
+
return null;
|
|
3008
|
+
}
|
|
3009
|
+
var ThemeProvider = ({
|
|
3010
|
+
defaultMode = "system",
|
|
3011
|
+
storageKey = "bt-theme",
|
|
3012
|
+
targetSelector,
|
|
3013
|
+
children
|
|
3014
|
+
}) => {
|
|
3015
|
+
const [mode, setModeState] = React17.useState(() => {
|
|
3016
|
+
return readStored(storageKey) ?? defaultMode;
|
|
3017
|
+
});
|
|
3018
|
+
const [systemDark, setSystemDark] = React17.useState(() => {
|
|
3019
|
+
if (!isClient) return false;
|
|
3020
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
3021
|
+
});
|
|
3022
|
+
React17.useEffect(() => {
|
|
3023
|
+
if (!isClient) return;
|
|
3024
|
+
const mq = window.matchMedia("(prefers-color-scheme: dark)");
|
|
3025
|
+
const handler = (e) => setSystemDark(e.matches);
|
|
3026
|
+
mq.addEventListener("change", handler);
|
|
3027
|
+
return () => mq.removeEventListener("change", handler);
|
|
3028
|
+
}, []);
|
|
3029
|
+
const resolved = mode === "system" ? systemDark ? "dark" : "light" : mode;
|
|
3030
|
+
React17.useEffect(() => {
|
|
3031
|
+
if (!isClient) return;
|
|
3032
|
+
const target = targetSelector ? document.querySelector(targetSelector) : document.documentElement;
|
|
3033
|
+
if (!target) return;
|
|
3034
|
+
if (mode === "system") {
|
|
3035
|
+
target.removeAttribute("data-theme");
|
|
3036
|
+
} else {
|
|
3037
|
+
target.setAttribute("data-theme", mode);
|
|
2294
3038
|
}
|
|
3039
|
+
}, [mode, targetSelector]);
|
|
3040
|
+
const setMode = React17.useCallback(
|
|
3041
|
+
(next) => {
|
|
3042
|
+
setModeState(next);
|
|
3043
|
+
if (storageKey && isClient) {
|
|
3044
|
+
try {
|
|
3045
|
+
window.localStorage.setItem(storageKey, next);
|
|
3046
|
+
} catch {
|
|
3047
|
+
}
|
|
3048
|
+
}
|
|
3049
|
+
},
|
|
3050
|
+
[storageKey]
|
|
2295
3051
|
);
|
|
3052
|
+
const value = React17.useMemo(
|
|
3053
|
+
() => ({ mode, resolved, setMode }),
|
|
3054
|
+
[mode, resolved, setMode]
|
|
3055
|
+
);
|
|
3056
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value, children });
|
|
2296
3057
|
};
|
|
2297
|
-
var ClearIcon = () => /* @__PURE__ */ jsx(
|
|
3058
|
+
var ClearIcon = () => /* @__PURE__ */ jsx(X, { size: 20, "aria-hidden": "true" });
|
|
2298
3059
|
var TextField = ({
|
|
2299
3060
|
id,
|
|
2300
3061
|
label,
|
|
@@ -2314,27 +3075,28 @@ var TextField = ({
|
|
|
2314
3075
|
ref,
|
|
2315
3076
|
...props
|
|
2316
3077
|
}) => {
|
|
2317
|
-
const generatedId =
|
|
3078
|
+
const generatedId = useId();
|
|
2318
3079
|
const inputId = id ?? generatedId;
|
|
2319
3080
|
const helperId = supportingText ? `${inputId}-help` : void 0;
|
|
2320
3081
|
const isControlled = value !== void 0;
|
|
2321
3082
|
const applyTransform = (nextValue) => transformValue ? transformValue(nextValue) : nextValue;
|
|
2322
|
-
const [innerValue, setInnerValue] =
|
|
3083
|
+
const [innerValue, setInnerValue] = useState(
|
|
2323
3084
|
() => applyTransform(value ?? defaultValue ?? "")
|
|
2324
3085
|
);
|
|
2325
|
-
const isComposingRef =
|
|
2326
|
-
|
|
3086
|
+
const isComposingRef = useRef(false);
|
|
3087
|
+
useEffect(() => {
|
|
2327
3088
|
if (!isControlled) return;
|
|
2328
3089
|
const nextValue = value ?? "";
|
|
2329
3090
|
setInnerValue(transformValue ? transformValue(nextValue) : nextValue);
|
|
2330
3091
|
}, [isControlled, value, transformValue]);
|
|
2331
|
-
const handleClear =
|
|
3092
|
+
const handleClear = useCallback(() => {
|
|
2332
3093
|
setInnerValue("");
|
|
2333
3094
|
onChangeAction?.("");
|
|
2334
3095
|
}, [onChangeAction]);
|
|
2335
3096
|
const rootClassName = cn(
|
|
2336
3097
|
"text_field",
|
|
2337
3098
|
size === "sm" && "text_field_size_sm",
|
|
3099
|
+
size === "lg" && "text_field_size_lg",
|
|
2338
3100
|
fullWidth && "text_field_full_width",
|
|
2339
3101
|
error && "text_field_error",
|
|
2340
3102
|
props.disabled && "text_field_disabled",
|
|
@@ -2342,60 +3104,58 @@ var TextField = ({
|
|
|
2342
3104
|
);
|
|
2343
3105
|
const resolvedTrailing = clearable && innerValue ? /* @__PURE__ */ jsx("button", { type: "button", className: "text_field_clear", onClick: handleClear, "aria-label": "Clear", children: /* @__PURE__ */ jsx(ClearIcon, {}) }) : trailingIcon ? /* @__PURE__ */ jsx("span", { className: "text_field_icon", "aria-hidden": "true", children: trailingIcon }) : null;
|
|
2344
3106
|
return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
|
|
2345
|
-
/* @__PURE__ */
|
|
2346
|
-
|
|
2347
|
-
/* @__PURE__ */
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
return;
|
|
2382
|
-
}
|
|
2383
|
-
const nextValue = applyTransform(rawValue);
|
|
2384
|
-
setInnerValue(nextValue);
|
|
2385
|
-
onChangeAction?.(nextValue);
|
|
3107
|
+
label && showLabel && /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "text_field_label", children: label }),
|
|
3108
|
+
/* @__PURE__ */ jsx("div", { className: "text_field_container", children: /* @__PURE__ */ jsxs("div", { className: "text_field_inner", children: [
|
|
3109
|
+
leadingIcon && /* @__PURE__ */ jsx("span", { className: "text_field_icon", "aria-hidden": "true", children: leadingIcon }),
|
|
3110
|
+
/* @__PURE__ */ jsx(
|
|
3111
|
+
"div",
|
|
3112
|
+
{
|
|
3113
|
+
className: cn(
|
|
3114
|
+
"text_field_input_wrap",
|
|
3115
|
+
resolvedTrailing && "text_field_input_wrap_no_pad_right"
|
|
3116
|
+
),
|
|
3117
|
+
children: /* @__PURE__ */ jsx(
|
|
3118
|
+
"input",
|
|
3119
|
+
{
|
|
3120
|
+
id: inputId,
|
|
3121
|
+
ref,
|
|
3122
|
+
className: "text_field_input",
|
|
3123
|
+
"aria-invalid": !!error,
|
|
3124
|
+
"aria-describedby": helperId,
|
|
3125
|
+
"aria-label": !showLabel ? label : void 0,
|
|
3126
|
+
...props,
|
|
3127
|
+
value: innerValue,
|
|
3128
|
+
onCompositionStart: () => {
|
|
3129
|
+
isComposingRef.current = true;
|
|
3130
|
+
},
|
|
3131
|
+
onCompositionEnd: (event) => {
|
|
3132
|
+
isComposingRef.current = false;
|
|
3133
|
+
const rawValue = event.currentTarget.value;
|
|
3134
|
+
const nextValue = applyTransform(rawValue);
|
|
3135
|
+
setInnerValue(nextValue);
|
|
3136
|
+
onChangeAction?.(nextValue);
|
|
3137
|
+
},
|
|
3138
|
+
onChange: (event) => {
|
|
3139
|
+
const rawValue = event.target.value;
|
|
3140
|
+
if (isComposingRef.current) {
|
|
3141
|
+
setInnerValue(rawValue);
|
|
3142
|
+
return;
|
|
2386
3143
|
}
|
|
3144
|
+
const nextValue = applyTransform(rawValue);
|
|
3145
|
+
setInnerValue(nextValue);
|
|
3146
|
+
onChangeAction?.(nextValue);
|
|
2387
3147
|
}
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
] }),
|
|
3148
|
+
}
|
|
3149
|
+
)
|
|
3150
|
+
}
|
|
3151
|
+
),
|
|
3152
|
+
resolvedTrailing
|
|
3153
|
+
] }) }),
|
|
2394
3154
|
supportingText && /* @__PURE__ */ jsx("div", { id: helperId, className: "text_field_helper", children: supportingText })
|
|
2395
3155
|
] });
|
|
2396
3156
|
};
|
|
2397
3157
|
TextField.displayName = "TextField";
|
|
2398
|
-
var ToastContext =
|
|
3158
|
+
var ToastContext = React17.createContext(null);
|
|
2399
3159
|
var VARIANT_ICONS = {
|
|
2400
3160
|
success: /* @__PURE__ */ jsx(CheckCircle2, { size: 18 }),
|
|
2401
3161
|
error: /* @__PURE__ */ jsx(XCircle, { size: 18 }),
|
|
@@ -2404,48 +3164,60 @@ var VARIANT_ICONS = {
|
|
|
2404
3164
|
default: /* @__PURE__ */ jsx(Bell, { size: 18 })
|
|
2405
3165
|
};
|
|
2406
3166
|
var ToastItemComponent = ({ item, onRemove, closeAriaLabel }) => {
|
|
2407
|
-
const [
|
|
2408
|
-
const closingRef =
|
|
2409
|
-
const
|
|
3167
|
+
const [visible, setVisible] = React17.useState(true);
|
|
3168
|
+
const closingRef = React17.useRef(false);
|
|
3169
|
+
const style = useSpringPresence({
|
|
3170
|
+
visible,
|
|
3171
|
+
from: "translateX(20px)",
|
|
3172
|
+
// 우측에서 슬라이드 인
|
|
3173
|
+
onExitComplete: () => onRemove(item.id)
|
|
3174
|
+
});
|
|
3175
|
+
const close = React17.useCallback(() => {
|
|
2410
3176
|
if (closingRef.current) return;
|
|
2411
3177
|
closingRef.current = true;
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
className:
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
3178
|
+
setVisible(false);
|
|
3179
|
+
}, []);
|
|
3180
|
+
return /* @__PURE__ */ jsxs(
|
|
3181
|
+
animated.div,
|
|
3182
|
+
{
|
|
3183
|
+
className: "toast_item",
|
|
3184
|
+
style,
|
|
3185
|
+
role: item.variant === "error" ? "alert" : "status",
|
|
3186
|
+
children: [
|
|
3187
|
+
/* @__PURE__ */ jsx("span", { className: `toast_icon toast_icon_${item.variant}`, "aria-hidden": "true", children: VARIANT_ICONS[item.variant] }),
|
|
3188
|
+
/* @__PURE__ */ jsx("span", { className: "toast_message", children: item.message }),
|
|
3189
|
+
/* @__PURE__ */ jsx("button", { type: "button", className: "toast_close", onClick: close, "aria-label": closeAriaLabel, children: /* @__PURE__ */ jsx(X, { size: 14 }) }),
|
|
3190
|
+
/* @__PURE__ */ jsx(
|
|
3191
|
+
"div",
|
|
3192
|
+
{
|
|
3193
|
+
className: `toast_progress toast_progress_${item.variant}`,
|
|
3194
|
+
style: { "--toast-duration": `${item.duration}ms` },
|
|
3195
|
+
onAnimationEnd: close,
|
|
3196
|
+
"aria-hidden": "true"
|
|
3197
|
+
}
|
|
3198
|
+
)
|
|
3199
|
+
]
|
|
3200
|
+
}
|
|
3201
|
+
);
|
|
2430
3202
|
};
|
|
2431
3203
|
var ToastProvider = ({
|
|
2432
3204
|
children,
|
|
2433
3205
|
maxCount = 5,
|
|
2434
3206
|
closeAriaLabel = "Close"
|
|
2435
3207
|
}) => {
|
|
2436
|
-
const [toasts, setToasts] =
|
|
2437
|
-
const [isMounted, setIsMounted] =
|
|
2438
|
-
|
|
3208
|
+
const [toasts, setToasts] = React17.useState([]);
|
|
3209
|
+
const [isMounted, setIsMounted] = React17.useState(false);
|
|
3210
|
+
React17.useEffect(() => {
|
|
2439
3211
|
setIsMounted(true);
|
|
2440
3212
|
}, []);
|
|
2441
|
-
const addToast =
|
|
3213
|
+
const addToast = React17.useCallback(
|
|
2442
3214
|
(message, variant, duration = 3e3) => {
|
|
2443
3215
|
const id = crypto.randomUUID();
|
|
2444
3216
|
setToasts((prev) => [{ id, message, variant, duration }, ...prev].slice(0, maxCount));
|
|
2445
3217
|
},
|
|
2446
3218
|
[maxCount]
|
|
2447
3219
|
);
|
|
2448
|
-
const removeToast =
|
|
3220
|
+
const removeToast = React17.useCallback((id) => {
|
|
2449
3221
|
setToasts((prev) => prev.filter((t) => t.id !== id));
|
|
2450
3222
|
}, []);
|
|
2451
3223
|
return /* @__PURE__ */ jsxs(ToastContext.Provider, { value: { addToast }, children: [
|
|
@@ -2478,7 +3250,9 @@ var ToastProvider = ({
|
|
|
2478
3250
|
var useToast = () => {
|
|
2479
3251
|
const ctx = useContext(ToastContext);
|
|
2480
3252
|
if (!ctx) {
|
|
2481
|
-
throw new Error(
|
|
3253
|
+
throw new Error(
|
|
3254
|
+
"[Bigtablet DS] useToast\uB294 <ToastProvider> \uC548\uC5D0\uC11C\uB9CC \uC0AC\uC6A9 \uAC00\uB2A5\uD569\uB2C8\uB2E4.\n\n\uC571 \uCD5C\uC0C1\uB2E8\uC5D0 <ToastProvider>\uB85C \uAC10\uC2F8\uC8FC\uC138\uC694:\n <ToastProvider>\n <YourApp />\n </ToastProvider>"
|
|
3255
|
+
);
|
|
2482
3256
|
}
|
|
2483
3257
|
return {
|
|
2484
3258
|
/** 성공 메시지를 표시한다 */
|
|
@@ -2505,7 +3279,7 @@ var Toggle = ({
|
|
|
2505
3279
|
...props
|
|
2506
3280
|
}) => {
|
|
2507
3281
|
const isControlled = checked !== void 0;
|
|
2508
|
-
const [innerChecked, setInnerChecked] =
|
|
3282
|
+
const [innerChecked, setInnerChecked] = React17.useState(!!defaultChecked);
|
|
2509
3283
|
const isOn = isControlled ? !!checked : innerChecked;
|
|
2510
3284
|
const handleToggle = () => {
|
|
2511
3285
|
if (disabled) return;
|
|
@@ -2568,5 +3342,103 @@ var TopLoading = ({
|
|
|
2568
3342
|
}
|
|
2569
3343
|
);
|
|
2570
3344
|
};
|
|
3345
|
+
var Container = ({
|
|
3346
|
+
size = "xl",
|
|
3347
|
+
center = true,
|
|
3348
|
+
as: Tag = "div",
|
|
3349
|
+
className,
|
|
3350
|
+
children,
|
|
3351
|
+
...props
|
|
3352
|
+
}) => {
|
|
3353
|
+
return /* @__PURE__ */ jsx(
|
|
3354
|
+
Tag,
|
|
3355
|
+
{
|
|
3356
|
+
className: cn("container", `container_size_${size}`, center && "container_center", className),
|
|
3357
|
+
...props,
|
|
3358
|
+
children
|
|
3359
|
+
}
|
|
3360
|
+
);
|
|
3361
|
+
};
|
|
3362
|
+
var Section = ({
|
|
3363
|
+
spacing: spacing2 = "md",
|
|
3364
|
+
bg = "default",
|
|
3365
|
+
as: Tag = "section",
|
|
3366
|
+
className,
|
|
3367
|
+
children,
|
|
3368
|
+
...props
|
|
3369
|
+
}) => {
|
|
3370
|
+
return /* @__PURE__ */ jsx(
|
|
3371
|
+
Tag,
|
|
3372
|
+
{
|
|
3373
|
+
className: cn(
|
|
3374
|
+
"section",
|
|
3375
|
+
`section_spacing_${spacing2}`,
|
|
3376
|
+
`section_bg_${bg}`,
|
|
3377
|
+
className
|
|
3378
|
+
),
|
|
3379
|
+
...props,
|
|
3380
|
+
children
|
|
3381
|
+
}
|
|
3382
|
+
);
|
|
3383
|
+
};
|
|
3384
|
+
var Stack = ({
|
|
3385
|
+
direction = "vertical",
|
|
3386
|
+
gap = 16,
|
|
3387
|
+
align,
|
|
3388
|
+
justify,
|
|
3389
|
+
wrap,
|
|
3390
|
+
as: Tag = "div",
|
|
3391
|
+
className,
|
|
3392
|
+
children,
|
|
3393
|
+
style,
|
|
3394
|
+
...props
|
|
3395
|
+
}) => {
|
|
3396
|
+
return /* @__PURE__ */ jsx(
|
|
3397
|
+
Tag,
|
|
3398
|
+
{
|
|
3399
|
+
className: cn(
|
|
3400
|
+
"stack",
|
|
3401
|
+
`stack_${direction}`,
|
|
3402
|
+
align && `stack_align_${align}`,
|
|
3403
|
+
justify && `stack_justify_${justify}`,
|
|
3404
|
+
wrap && `stack_wrap_${wrap.replace("-", "_")}`,
|
|
3405
|
+
className
|
|
3406
|
+
),
|
|
3407
|
+
style: { "--stack-gap": `${gap}px`, ...style },
|
|
3408
|
+
...props,
|
|
3409
|
+
children
|
|
3410
|
+
}
|
|
3411
|
+
);
|
|
3412
|
+
};
|
|
3413
|
+
var Grid = ({
|
|
3414
|
+
cols = 3,
|
|
3415
|
+
minColWidth = "280px",
|
|
3416
|
+
gap = 24,
|
|
3417
|
+
rowGap,
|
|
3418
|
+
colGap,
|
|
3419
|
+
singleColOnMobile = true,
|
|
3420
|
+
as: Tag = "div",
|
|
3421
|
+
className,
|
|
3422
|
+
children,
|
|
3423
|
+
style,
|
|
3424
|
+
...props
|
|
3425
|
+
}) => {
|
|
3426
|
+
const gridTemplateColumns = cols === "auto" ? `repeat(auto-fill, minmax(${minColWidth}, 1fr))` : `repeat(${cols}, 1fr)`;
|
|
3427
|
+
return /* @__PURE__ */ jsx(
|
|
3428
|
+
Tag,
|
|
3429
|
+
{
|
|
3430
|
+
className: cn("grid_layout", singleColOnMobile && "grid_layout_mobile_single", className),
|
|
3431
|
+
style: {
|
|
3432
|
+
"--grid-cols": gridTemplateColumns,
|
|
3433
|
+
"--grid-gap": `${gap}px`,
|
|
3434
|
+
"--grid-row-gap": rowGap != null ? `${rowGap}px` : void 0,
|
|
3435
|
+
"--grid-col-gap": colGap != null ? `${colGap}px` : void 0,
|
|
3436
|
+
...style
|
|
3437
|
+
},
|
|
3438
|
+
...props,
|
|
3439
|
+
children
|
|
3440
|
+
}
|
|
3441
|
+
);
|
|
3442
|
+
};
|
|
2571
3443
|
|
|
2572
|
-
export { AlertProvider, Button, Card, Checkbox, Chip, DatePicker, Divider, Dropdown,
|
|
3444
|
+
export { Accordion, AlertProvider, Avatar, Badge, BottomNav, BottomNavItem, BottomNavSpacer, Breadcrumb, Button, Card, Checkbox, Chip, Container, DatePicker, Divider, Dropdown, EmptyState, FileInput, Grid, Hero, Icon, IconButton, LinearProgress, ListItem, MediaCard, Menu, Modal, NavBar, NavLink, OtpInput, Pagination, Radio, Section, Sidebar, SidebarItem, SidebarSection, Skeleton, Spinner, Stack, Tab, TabList, TabPanel, Table, Tabs, TextField, ThemeProvider, ToastProvider, Toggle, Tooltip, TopLoading, a11y, baseBorderWidth, baseColors, baseTypography, borderWidth, breakpoints, cn, colors, elevation, motion, opacity, radius, skeleton, spacing, typography, useAlert, useFocusTrap, useSpringHover, useSpringPresence, useTheme, useToast, zIndex };
|