@bigtablet/design-system 2.4.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +113 -218
- package/dist/index.css +8934 -607
- package/dist/index.d.ts +908 -76
- package/dist/index.js +1809 -1016
- 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,871 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import './index.css';
|
|
3
|
-
import * as
|
|
4
|
-
import { createContext,
|
|
3
|
+
import * as React16 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 } 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 = React16.useRef(null);
|
|
42
|
+
React16.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] = React16.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] = React16.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] = React16.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 Breadcrumb = ({
|
|
267
|
+
items,
|
|
268
|
+
separator,
|
|
269
|
+
className,
|
|
270
|
+
...props
|
|
271
|
+
}) => {
|
|
272
|
+
const sep = separator ?? /* @__PURE__ */ jsx(ChevronRight, { size: 14, "aria-hidden": "true" });
|
|
273
|
+
return /* @__PURE__ */ jsx("nav", { "aria-label": "Breadcrumb", className: cn("breadcrumb", className), ...props, children: /* @__PURE__ */ jsx("ol", { className: "breadcrumb_list", children: items.map((item, idx) => {
|
|
274
|
+
const isLast = idx === items.length - 1;
|
|
275
|
+
return (
|
|
276
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: breadcrumb items have stable order
|
|
277
|
+
/* @__PURE__ */ jsxs("li", { className: "breadcrumb_item", children: [
|
|
278
|
+
isLast ? /* @__PURE__ */ jsx("span", { className: "breadcrumb_current", "aria-current": "page", children: item.label }) : item.href ? (
|
|
279
|
+
// biome-ignore lint/a11y/useValidAnchor: navigation link
|
|
280
|
+
/* @__PURE__ */ jsx("a", { className: "breadcrumb_link", href: item.href, onClick: item.onClick, children: item.label })
|
|
281
|
+
) : /* @__PURE__ */ jsx(
|
|
282
|
+
"button",
|
|
283
|
+
{
|
|
284
|
+
type: "button",
|
|
285
|
+
className: "breadcrumb_link",
|
|
286
|
+
onClick: item.onClick,
|
|
287
|
+
children: item.label
|
|
288
|
+
}
|
|
289
|
+
),
|
|
290
|
+
!isLast && /* @__PURE__ */ jsx("span", { className: "breadcrumb_separator", "aria-hidden": "true", children: sep })
|
|
291
|
+
] }, idx)
|
|
292
|
+
);
|
|
293
|
+
}) }) });
|
|
294
|
+
};
|
|
295
|
+
var EmptyState = ({
|
|
296
|
+
illustration,
|
|
297
|
+
title,
|
|
298
|
+
description,
|
|
299
|
+
action,
|
|
300
|
+
size = "md",
|
|
301
|
+
className,
|
|
302
|
+
...props
|
|
303
|
+
}) => {
|
|
304
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("empty_state", `empty_state_size_${size}`, className), ...props, children: [
|
|
305
|
+
illustration && /* @__PURE__ */ jsx("div", { className: "empty_state_illustration", "aria-hidden": "true", children: illustration }),
|
|
306
|
+
title && /* @__PURE__ */ jsx("h3", { className: "empty_state_title", children: title }),
|
|
307
|
+
description && /* @__PURE__ */ jsx("p", { className: "empty_state_description", children: description }),
|
|
308
|
+
action && /* @__PURE__ */ jsx("div", { className: "empty_state_action", children: action })
|
|
309
|
+
] });
|
|
310
|
+
};
|
|
311
|
+
var Menu = ({ items, trigger, align = "start" }) => {
|
|
312
|
+
const [open, setOpen] = React16.useState(false);
|
|
313
|
+
const wrapperRef = React16.useRef(null);
|
|
314
|
+
const menuId = React16.useId();
|
|
315
|
+
const style = useSpringPresence({ visible: open, from: "translateY(-4px)" });
|
|
316
|
+
React16.useEffect(() => {
|
|
317
|
+
if (!open) return;
|
|
318
|
+
const handleClick = (e) => {
|
|
319
|
+
if (!wrapperRef.current?.contains(e.target)) setOpen(false);
|
|
320
|
+
};
|
|
321
|
+
const handleEsc = (e) => {
|
|
322
|
+
if (e.key === "Escape") setOpen(false);
|
|
323
|
+
};
|
|
324
|
+
document.addEventListener("mousedown", handleClick);
|
|
325
|
+
document.addEventListener("keydown", handleEsc);
|
|
326
|
+
return () => {
|
|
327
|
+
document.removeEventListener("mousedown", handleClick);
|
|
328
|
+
document.removeEventListener("keydown", handleEsc);
|
|
329
|
+
};
|
|
330
|
+
}, [open]);
|
|
331
|
+
const triggerWithProps = React16.cloneElement(
|
|
332
|
+
trigger,
|
|
333
|
+
{
|
|
334
|
+
onClick: () => setOpen((o) => !o),
|
|
335
|
+
"aria-haspopup": "menu",
|
|
336
|
+
"aria-expanded": open,
|
|
337
|
+
"aria-controls": open ? menuId : void 0
|
|
338
|
+
}
|
|
339
|
+
);
|
|
340
|
+
return /* @__PURE__ */ jsxs("span", { className: "menu_wrapper", ref: wrapperRef, children: [
|
|
341
|
+
triggerWithProps,
|
|
342
|
+
open && /* @__PURE__ */ jsx(
|
|
343
|
+
animated.div,
|
|
344
|
+
{
|
|
345
|
+
id: menuId,
|
|
346
|
+
role: "menu",
|
|
347
|
+
style,
|
|
348
|
+
className: cn("menu", `menu_align_${align}`),
|
|
349
|
+
children: items.map((item) => /* @__PURE__ */ jsxs(
|
|
350
|
+
"button",
|
|
351
|
+
{
|
|
352
|
+
type: "button",
|
|
353
|
+
role: "menuitem",
|
|
354
|
+
disabled: item.disabled,
|
|
355
|
+
className: cn(
|
|
356
|
+
"menu_item",
|
|
357
|
+
item.destructive && "menu_item_destructive",
|
|
358
|
+
item.disabled && "menu_item_disabled"
|
|
359
|
+
),
|
|
360
|
+
onClick: () => {
|
|
361
|
+
if (item.disabled) return;
|
|
362
|
+
item.onSelect?.();
|
|
363
|
+
setOpen(false);
|
|
364
|
+
},
|
|
365
|
+
children: [
|
|
366
|
+
item.icon && /* @__PURE__ */ jsx("span", { className: "menu_item_icon", "aria-hidden": "true", children: item.icon }),
|
|
367
|
+
/* @__PURE__ */ jsx("span", { className: "menu_item_label", children: item.label })
|
|
368
|
+
]
|
|
369
|
+
},
|
|
370
|
+
item.key
|
|
371
|
+
))
|
|
372
|
+
}
|
|
373
|
+
)
|
|
374
|
+
] });
|
|
375
|
+
};
|
|
376
|
+
var NavBar = ({
|
|
377
|
+
brand,
|
|
378
|
+
searchSlot,
|
|
379
|
+
actions,
|
|
380
|
+
locale,
|
|
381
|
+
profile,
|
|
382
|
+
divider = true,
|
|
383
|
+
variant = "default",
|
|
384
|
+
layout = "contained",
|
|
385
|
+
sticky = false,
|
|
386
|
+
className,
|
|
387
|
+
children,
|
|
388
|
+
...props
|
|
389
|
+
}) => {
|
|
390
|
+
const showDivider = divider && !!profile && (!!actions || !!locale || !!searchSlot);
|
|
391
|
+
const linksRef = useRef(null);
|
|
392
|
+
const [indicator, setIndicator] = useState(null);
|
|
393
|
+
const [hasMounted, setHasMounted] = useState(false);
|
|
394
|
+
useLayoutEffect(() => {
|
|
395
|
+
const links = linksRef.current;
|
|
396
|
+
if (!links) return;
|
|
397
|
+
const update = () => {
|
|
398
|
+
const active = links.querySelector(".nav_bar_link_active");
|
|
399
|
+
if (active) {
|
|
400
|
+
setIndicator({ left: active.offsetLeft, width: active.offsetWidth });
|
|
401
|
+
} else {
|
|
402
|
+
setIndicator(null);
|
|
403
|
+
}
|
|
404
|
+
};
|
|
405
|
+
update();
|
|
406
|
+
const mountTimer = setTimeout(() => setHasMounted(true), 50);
|
|
407
|
+
const mo = new MutationObserver(update);
|
|
408
|
+
mo.observe(links, {
|
|
409
|
+
subtree: true,
|
|
410
|
+
attributes: true,
|
|
411
|
+
attributeFilter: ["class", "aria-current"]
|
|
412
|
+
});
|
|
413
|
+
const ro = typeof ResizeObserver !== "undefined" ? new ResizeObserver(update) : null;
|
|
414
|
+
ro?.observe(links);
|
|
415
|
+
const handleResize = () => update();
|
|
416
|
+
window.addEventListener("resize", handleResize);
|
|
417
|
+
return () => {
|
|
418
|
+
clearTimeout(mountTimer);
|
|
419
|
+
mo.disconnect();
|
|
420
|
+
ro?.disconnect();
|
|
421
|
+
window.removeEventListener("resize", handleResize);
|
|
422
|
+
};
|
|
423
|
+
}, []);
|
|
424
|
+
return /* @__PURE__ */ jsx(
|
|
425
|
+
"header",
|
|
426
|
+
{
|
|
427
|
+
className: cn(
|
|
428
|
+
"nav_bar",
|
|
429
|
+
`nav_bar_variant_${variant}`,
|
|
430
|
+
`nav_bar_layout_${layout}`,
|
|
431
|
+
sticky && "nav_bar_sticky",
|
|
432
|
+
className
|
|
433
|
+
),
|
|
434
|
+
...props,
|
|
435
|
+
children: /* @__PURE__ */ jsxs("div", { className: "nav_bar_inner", children: [
|
|
436
|
+
brand && /* @__PURE__ */ jsx("div", { className: "nav_bar_brand", children: brand }),
|
|
437
|
+
children && /* @__PURE__ */ jsxs("nav", { ref: linksRef, className: "nav_bar_links", children: [
|
|
438
|
+
children,
|
|
439
|
+
indicator && /* @__PURE__ */ jsx(
|
|
440
|
+
"span",
|
|
441
|
+
{
|
|
442
|
+
"aria-hidden": "true",
|
|
443
|
+
className: cn(
|
|
444
|
+
"nav_bar_indicator",
|
|
445
|
+
hasMounted && "nav_bar_indicator_animated"
|
|
446
|
+
),
|
|
447
|
+
style: { left: indicator.left, width: indicator.width }
|
|
448
|
+
}
|
|
449
|
+
)
|
|
450
|
+
] }),
|
|
451
|
+
searchSlot && /* @__PURE__ */ jsx("div", { className: "nav_bar_search", children: searchSlot }),
|
|
452
|
+
/* @__PURE__ */ jsxs("div", { className: "nav_bar_right", children: [
|
|
453
|
+
actions && /* @__PURE__ */ jsx("div", { className: "nav_bar_actions", children: actions }),
|
|
454
|
+
locale && /* @__PURE__ */ jsx(LocaleSwitcher, { locale }),
|
|
455
|
+
showDivider && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "nav_bar_divider" }),
|
|
456
|
+
profile && /* @__PURE__ */ jsx("div", { className: "nav_bar_profile", children: profile })
|
|
457
|
+
] })
|
|
458
|
+
] })
|
|
459
|
+
}
|
|
460
|
+
);
|
|
461
|
+
};
|
|
462
|
+
var LocaleSwitcher = ({ locale }) => {
|
|
463
|
+
const [open, setOpen] = useState(false);
|
|
464
|
+
const wrapperRef = useRef(null);
|
|
465
|
+
const menuId = useId();
|
|
466
|
+
const currentOption = locale.options.find((o) => o.value === locale.current);
|
|
467
|
+
useEffect(() => {
|
|
468
|
+
if (!open) return;
|
|
469
|
+
const handler = (e) => {
|
|
470
|
+
if (!wrapperRef.current?.contains(e.target)) setOpen(false);
|
|
471
|
+
};
|
|
472
|
+
const escHandler = (e) => {
|
|
473
|
+
if (e.key === "Escape") setOpen(false);
|
|
474
|
+
};
|
|
475
|
+
document.addEventListener("mousedown", handler);
|
|
476
|
+
document.addEventListener("keydown", escHandler);
|
|
477
|
+
return () => {
|
|
478
|
+
document.removeEventListener("mousedown", handler);
|
|
479
|
+
document.removeEventListener("keydown", escHandler);
|
|
480
|
+
};
|
|
481
|
+
}, [open]);
|
|
482
|
+
const handleSelect = (value) => {
|
|
483
|
+
locale.onChange(value);
|
|
484
|
+
setOpen(false);
|
|
485
|
+
};
|
|
486
|
+
return /* @__PURE__ */ jsxs("div", { ref: wrapperRef, className: "nav_bar_locale", children: [
|
|
487
|
+
/* @__PURE__ */ jsxs(
|
|
488
|
+
"button",
|
|
489
|
+
{
|
|
490
|
+
type: "button",
|
|
491
|
+
className: "nav_bar_locale_trigger",
|
|
492
|
+
"aria-haspopup": "menu",
|
|
493
|
+
"aria-expanded": open,
|
|
494
|
+
"aria-controls": menuId,
|
|
495
|
+
onClick: () => setOpen((p) => !p),
|
|
496
|
+
children: [
|
|
497
|
+
/* @__PURE__ */ jsx(Globe, { size: 16, "aria-hidden": "true" }),
|
|
498
|
+
!locale.hideLabel && /* @__PURE__ */ jsx("span", { className: "nav_bar_locale_label", children: currentOption?.label ?? locale.current.toUpperCase() }),
|
|
499
|
+
/* @__PURE__ */ jsx(ChevronDown, { size: 14, "aria-hidden": "true", className: "nav_bar_locale_chevron" })
|
|
500
|
+
]
|
|
501
|
+
}
|
|
502
|
+
),
|
|
503
|
+
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(
|
|
504
|
+
"button",
|
|
505
|
+
{
|
|
506
|
+
type: "button",
|
|
507
|
+
role: "menuitem",
|
|
508
|
+
className: cn(
|
|
509
|
+
"nav_bar_locale_item",
|
|
510
|
+
opt.value === locale.current && "nav_bar_locale_item_active"
|
|
511
|
+
),
|
|
512
|
+
onClick: () => handleSelect(opt.value),
|
|
513
|
+
children: opt.label
|
|
514
|
+
}
|
|
515
|
+
) }, opt.value)) })
|
|
516
|
+
] });
|
|
517
|
+
};
|
|
518
|
+
var NavLink = ({ active, className, children, ...props }) => {
|
|
519
|
+
return (
|
|
520
|
+
// biome-ignore lint/a11y/useValidAnchor: navigation link
|
|
521
|
+
/* @__PURE__ */ jsx(
|
|
522
|
+
"a",
|
|
523
|
+
{
|
|
524
|
+
className: cn("nav_bar_link", active && "nav_bar_link_active"),
|
|
525
|
+
"aria-current": active ? "page" : void 0,
|
|
526
|
+
...props,
|
|
527
|
+
children
|
|
528
|
+
}
|
|
529
|
+
)
|
|
530
|
+
);
|
|
531
|
+
};
|
|
532
|
+
var Sidebar = ({
|
|
533
|
+
header,
|
|
534
|
+
headerCollapsed,
|
|
535
|
+
footer,
|
|
536
|
+
collapsed: collapsedProp,
|
|
537
|
+
defaultCollapsed = false,
|
|
538
|
+
onCollapsedChange,
|
|
539
|
+
collapsible = true,
|
|
540
|
+
toggleLabel = "\uC0AC\uC774\uB4DC\uBC14 \uD1A0\uAE00",
|
|
541
|
+
width = 240,
|
|
542
|
+
collapsedWidth = 64,
|
|
543
|
+
className,
|
|
544
|
+
children,
|
|
545
|
+
style,
|
|
546
|
+
...props
|
|
547
|
+
}) => {
|
|
548
|
+
const isControlled = collapsedProp !== void 0;
|
|
549
|
+
const [internalCollapsed, setInternalCollapsed] = React16.useState(defaultCollapsed);
|
|
550
|
+
const collapsed = isControlled ? collapsedProp : internalCollapsed;
|
|
551
|
+
const toggle = React16.useCallback(() => {
|
|
552
|
+
const next = !collapsed;
|
|
553
|
+
if (!isControlled) setInternalCollapsed(next);
|
|
554
|
+
onCollapsedChange?.(next);
|
|
555
|
+
}, [collapsed, isControlled, onCollapsedChange]);
|
|
556
|
+
return /* @__PURE__ */ jsxs(
|
|
557
|
+
"aside",
|
|
558
|
+
{
|
|
559
|
+
className: cn("sidebar", collapsed && "sidebar_collapsed", className),
|
|
560
|
+
style: { width: collapsed ? collapsedWidth : width, ...style },
|
|
561
|
+
...props,
|
|
562
|
+
children: [
|
|
563
|
+
(header || headerCollapsed) && /* @__PURE__ */ jsx("div", { className: "sidebar_header", children: /* @__PURE__ */ jsxs("div", { className: "sidebar_header_layers", children: [
|
|
564
|
+
header && /* @__PURE__ */ jsx("div", { className: "sidebar_header_layer sidebar_header_layer_full", children: header }),
|
|
565
|
+
headerCollapsed && /* @__PURE__ */ jsx("div", { className: "sidebar_header_layer sidebar_header_layer_mark", children: headerCollapsed })
|
|
566
|
+
] }) }),
|
|
567
|
+
/* @__PURE__ */ jsx("nav", { className: "sidebar_nav", children }),
|
|
568
|
+
footer && /* @__PURE__ */ jsx("div", { className: "sidebar_footer", children: footer }),
|
|
569
|
+
collapsible && /* @__PURE__ */ jsx(
|
|
570
|
+
"button",
|
|
571
|
+
{
|
|
572
|
+
type: "button",
|
|
573
|
+
className: "sidebar_collapse_btn",
|
|
574
|
+
onClick: toggle,
|
|
575
|
+
"aria-label": toggleLabel,
|
|
576
|
+
"aria-expanded": !collapsed,
|
|
577
|
+
children: collapsed ? /* @__PURE__ */ jsx(ChevronRight, { size: 14 }) : /* @__PURE__ */ jsx(ChevronLeft, { size: 14 })
|
|
578
|
+
}
|
|
579
|
+
)
|
|
580
|
+
]
|
|
581
|
+
}
|
|
582
|
+
);
|
|
583
|
+
};
|
|
584
|
+
var SidebarItem = ({
|
|
585
|
+
icon,
|
|
586
|
+
active,
|
|
587
|
+
trailing,
|
|
588
|
+
as = "button",
|
|
589
|
+
href,
|
|
590
|
+
className,
|
|
591
|
+
children,
|
|
592
|
+
type,
|
|
593
|
+
...props
|
|
594
|
+
}) => {
|
|
595
|
+
const classes = cn("sidebar_item", active && "sidebar_item_active", className);
|
|
596
|
+
const ariaCurrent = active ? "page" : void 0;
|
|
597
|
+
if (as === "a" && href) {
|
|
598
|
+
return (
|
|
599
|
+
// biome-ignore lint/a11y/useValidAnchor: navigation link with optional active state
|
|
600
|
+
/* @__PURE__ */ jsxs("a", { className: classes, href, "aria-current": ariaCurrent, ...props, children: [
|
|
601
|
+
icon && /* @__PURE__ */ jsx("span", { className: "sidebar_item_icon", "aria-hidden": "true", children: icon }),
|
|
602
|
+
/* @__PURE__ */ jsx("span", { className: "sidebar_item_label", children }),
|
|
603
|
+
trailing && /* @__PURE__ */ jsx("span", { className: "sidebar_item_trailing", children: trailing })
|
|
604
|
+
] })
|
|
605
|
+
);
|
|
606
|
+
}
|
|
607
|
+
return /* @__PURE__ */ jsxs(
|
|
608
|
+
"button",
|
|
609
|
+
{
|
|
610
|
+
type: type ?? "button",
|
|
611
|
+
className: classes,
|
|
612
|
+
"aria-current": ariaCurrent,
|
|
613
|
+
...props,
|
|
614
|
+
children: [
|
|
615
|
+
icon && /* @__PURE__ */ jsx("span", { className: "sidebar_item_icon", "aria-hidden": "true", children: icon }),
|
|
616
|
+
/* @__PURE__ */ jsx("span", { className: "sidebar_item_label", children }),
|
|
617
|
+
trailing && /* @__PURE__ */ jsx("span", { className: "sidebar_item_trailing", children: trailing })
|
|
618
|
+
]
|
|
619
|
+
}
|
|
620
|
+
);
|
|
621
|
+
};
|
|
622
|
+
var SidebarSection = ({ label, className, children, ...props }) => {
|
|
623
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("sidebar_section", className), ...props, children: [
|
|
624
|
+
label && /* @__PURE__ */ jsx("div", { className: "sidebar_section_label", children: label }),
|
|
625
|
+
children
|
|
626
|
+
] });
|
|
627
|
+
};
|
|
628
|
+
var TabsContext = React16.createContext(null);
|
|
629
|
+
function useTabsContext() {
|
|
630
|
+
const ctx = React16.useContext(TabsContext);
|
|
631
|
+
if (!ctx) {
|
|
632
|
+
throw new Error(
|
|
633
|
+
'[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>'
|
|
634
|
+
);
|
|
635
|
+
}
|
|
636
|
+
return ctx;
|
|
637
|
+
}
|
|
638
|
+
var Tabs = ({
|
|
639
|
+
value: controlledValue,
|
|
640
|
+
defaultValue = "",
|
|
641
|
+
onValueChange,
|
|
642
|
+
variant = "line",
|
|
643
|
+
size = "md",
|
|
644
|
+
className,
|
|
645
|
+
children,
|
|
646
|
+
...props
|
|
647
|
+
}) => {
|
|
648
|
+
const isControlled = controlledValue !== void 0;
|
|
649
|
+
const [internalValue, setInternalValue] = React16.useState(defaultValue);
|
|
650
|
+
const value = isControlled ? controlledValue : internalValue;
|
|
651
|
+
const setValue = React16.useCallback(
|
|
652
|
+
(v) => {
|
|
653
|
+
if (!isControlled) setInternalValue(v);
|
|
654
|
+
onValueChange?.(v);
|
|
655
|
+
},
|
|
656
|
+
[isControlled, onValueChange]
|
|
657
|
+
);
|
|
658
|
+
const idPrefix = React16.useId();
|
|
659
|
+
const ctx = React16.useMemo(
|
|
660
|
+
() => ({ value, setValue, variant, size, idPrefix }),
|
|
661
|
+
[value, setValue, variant, size, idPrefix]
|
|
662
|
+
);
|
|
663
|
+
return /* @__PURE__ */ jsx(TabsContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx("div", { className: cn("tabs", `tabs_variant_${variant}`, `tabs_size_${size}`, className), ...props, children }) });
|
|
664
|
+
};
|
|
665
|
+
var TabList = ({ ariaLabel, className, children, ...props }) => {
|
|
666
|
+
const { variant } = useTabsContext();
|
|
667
|
+
const listRef = React16.useRef(null);
|
|
668
|
+
const [indicator, setIndicator] = React16.useState(null);
|
|
669
|
+
const [hasMounted, setHasMounted] = React16.useState(false);
|
|
670
|
+
React16.useLayoutEffect(() => {
|
|
671
|
+
const list = listRef.current;
|
|
672
|
+
if (!list) return;
|
|
673
|
+
const update = () => {
|
|
674
|
+
const active = list.querySelector('[role="tab"][aria-selected="true"]');
|
|
675
|
+
if (active) {
|
|
676
|
+
setIndicator({ left: active.offsetLeft, width: active.offsetWidth });
|
|
677
|
+
} else {
|
|
678
|
+
setIndicator(null);
|
|
679
|
+
}
|
|
680
|
+
};
|
|
681
|
+
update();
|
|
682
|
+
const mountTimer = setTimeout(() => setHasMounted(true), 50);
|
|
683
|
+
const mo = new MutationObserver(update);
|
|
684
|
+
mo.observe(list, {
|
|
685
|
+
subtree: true,
|
|
686
|
+
attributes: true,
|
|
687
|
+
attributeFilter: ["aria-selected"]
|
|
688
|
+
});
|
|
689
|
+
const ro = typeof ResizeObserver !== "undefined" ? new ResizeObserver(update) : null;
|
|
690
|
+
ro?.observe(list);
|
|
691
|
+
const handleResize = () => update();
|
|
692
|
+
window.addEventListener("resize", handleResize);
|
|
693
|
+
return () => {
|
|
694
|
+
clearTimeout(mountTimer);
|
|
695
|
+
mo.disconnect();
|
|
696
|
+
ro?.disconnect();
|
|
697
|
+
window.removeEventListener("resize", handleResize);
|
|
698
|
+
};
|
|
699
|
+
}, [variant]);
|
|
700
|
+
return /* @__PURE__ */ jsxs(
|
|
701
|
+
"div",
|
|
702
|
+
{
|
|
703
|
+
ref: listRef,
|
|
704
|
+
role: "tablist",
|
|
705
|
+
"aria-label": ariaLabel,
|
|
706
|
+
className: cn("tabs_list", `tabs_list_${variant}`, className),
|
|
707
|
+
...props,
|
|
708
|
+
children: [
|
|
709
|
+
indicator && /* @__PURE__ */ jsx(
|
|
710
|
+
"span",
|
|
711
|
+
{
|
|
712
|
+
"aria-hidden": "true",
|
|
713
|
+
className: cn(
|
|
714
|
+
"tabs_indicator",
|
|
715
|
+
`tabs_indicator_${variant}`,
|
|
716
|
+
hasMounted && "tabs_indicator_animated"
|
|
717
|
+
),
|
|
718
|
+
style: { left: indicator.left, width: indicator.width }
|
|
719
|
+
}
|
|
720
|
+
),
|
|
721
|
+
children
|
|
722
|
+
]
|
|
723
|
+
}
|
|
724
|
+
);
|
|
725
|
+
};
|
|
726
|
+
var Tab = ({ value, className, children, onClick, ...props }) => {
|
|
727
|
+
const ctx = useTabsContext();
|
|
728
|
+
const isActive = ctx.value === value;
|
|
729
|
+
const panelId = `${ctx.idPrefix}-panel-${value}`;
|
|
730
|
+
const tabId = `${ctx.idPrefix}-tab-${value}`;
|
|
731
|
+
const handleClick = (e) => {
|
|
732
|
+
ctx.setValue(value);
|
|
733
|
+
onClick?.(e);
|
|
734
|
+
};
|
|
735
|
+
const handleKeyDown = (e) => {
|
|
736
|
+
if (e.key !== "ArrowLeft" && e.key !== "ArrowRight" && e.key !== "Home" && e.key !== "End") return;
|
|
737
|
+
const list = e.currentTarget.closest('[role="tablist"]');
|
|
738
|
+
if (!list) return;
|
|
739
|
+
const tabs = Array.from(list.querySelectorAll('[role="tab"]:not([disabled])'));
|
|
740
|
+
const currentIndex = tabs.indexOf(e.currentTarget);
|
|
741
|
+
if (currentIndex < 0) return;
|
|
742
|
+
e.preventDefault();
|
|
743
|
+
let next = currentIndex;
|
|
744
|
+
if (e.key === "ArrowRight") next = (currentIndex + 1) % tabs.length;
|
|
745
|
+
else if (e.key === "ArrowLeft") next = (currentIndex - 1 + tabs.length) % tabs.length;
|
|
746
|
+
else if (e.key === "Home") next = 0;
|
|
747
|
+
else if (e.key === "End") next = tabs.length - 1;
|
|
748
|
+
const targetValue = tabs[next].dataset.value;
|
|
749
|
+
if (targetValue) {
|
|
750
|
+
ctx.setValue(targetValue);
|
|
751
|
+
tabs[next].focus();
|
|
752
|
+
}
|
|
753
|
+
};
|
|
754
|
+
return /* @__PURE__ */ jsx(
|
|
755
|
+
"button",
|
|
756
|
+
{
|
|
757
|
+
type: "button",
|
|
758
|
+
role: "tab",
|
|
759
|
+
id: tabId,
|
|
760
|
+
"data-value": value,
|
|
761
|
+
"aria-selected": isActive,
|
|
762
|
+
"aria-controls": panelId,
|
|
763
|
+
tabIndex: isActive ? 0 : -1,
|
|
764
|
+
className: cn("tabs_tab", isActive && "tabs_tab_active", className),
|
|
765
|
+
onClick: handleClick,
|
|
766
|
+
onKeyDown: handleKeyDown,
|
|
767
|
+
...props,
|
|
768
|
+
children
|
|
769
|
+
}
|
|
770
|
+
);
|
|
771
|
+
};
|
|
772
|
+
var TabPanel = ({
|
|
773
|
+
value,
|
|
774
|
+
unmountInactive = true,
|
|
775
|
+
className,
|
|
776
|
+
children,
|
|
777
|
+
...props
|
|
778
|
+
}) => {
|
|
779
|
+
const ctx = useTabsContext();
|
|
780
|
+
const isActive = ctx.value === value;
|
|
781
|
+
const panelId = `${ctx.idPrefix}-panel-${value}`;
|
|
782
|
+
const tabId = `${ctx.idPrefix}-tab-${value}`;
|
|
783
|
+
if (!isActive && unmountInactive) return null;
|
|
784
|
+
return /* @__PURE__ */ jsx(
|
|
785
|
+
"div",
|
|
786
|
+
{
|
|
787
|
+
role: "tabpanel",
|
|
788
|
+
id: panelId,
|
|
789
|
+
"aria-labelledby": tabId,
|
|
790
|
+
hidden: !isActive,
|
|
791
|
+
tabIndex: 0,
|
|
792
|
+
className: cn("tabs_panel", className),
|
|
793
|
+
...props,
|
|
794
|
+
children
|
|
795
|
+
}
|
|
796
|
+
);
|
|
797
|
+
};
|
|
798
|
+
var Tooltip = ({
|
|
799
|
+
content,
|
|
800
|
+
placement = "top",
|
|
801
|
+
delay = 200,
|
|
802
|
+
disabled = false,
|
|
803
|
+
children
|
|
804
|
+
}) => {
|
|
805
|
+
const [open, setOpen] = React16.useState(false);
|
|
806
|
+
const timerRef = React16.useRef(null);
|
|
807
|
+
const tooltipId = React16.useId();
|
|
808
|
+
const show = React16.useCallback(() => {
|
|
809
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
810
|
+
timerRef.current = setTimeout(() => setOpen(true), delay);
|
|
811
|
+
}, [delay]);
|
|
812
|
+
const hide = React16.useCallback(() => {
|
|
813
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
814
|
+
setOpen(false);
|
|
815
|
+
}, []);
|
|
816
|
+
React16.useEffect(() => {
|
|
817
|
+
return () => {
|
|
818
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
819
|
+
};
|
|
820
|
+
}, []);
|
|
821
|
+
const fromTransform = (() => {
|
|
822
|
+
switch (placement) {
|
|
823
|
+
case "top":
|
|
824
|
+
return "translateY(4px)";
|
|
825
|
+
case "bottom":
|
|
826
|
+
return "translateY(-4px)";
|
|
827
|
+
case "left":
|
|
828
|
+
return "translateX(4px)";
|
|
829
|
+
case "right":
|
|
830
|
+
return "translateX(-4px)";
|
|
831
|
+
}
|
|
832
|
+
})();
|
|
833
|
+
const style = useSpringPresence({ visible: open, from: fromTransform });
|
|
834
|
+
const trigger = React16.cloneElement(children, {
|
|
835
|
+
onMouseEnter: show,
|
|
836
|
+
onMouseLeave: hide,
|
|
837
|
+
onFocus: show,
|
|
838
|
+
onBlur: hide,
|
|
839
|
+
"aria-describedby": open ? tooltipId : void 0
|
|
840
|
+
});
|
|
841
|
+
if (disabled) return children;
|
|
842
|
+
return /* @__PURE__ */ jsxs("span", { className: "tooltip_wrapper", children: [
|
|
843
|
+
trigger,
|
|
844
|
+
open && /* @__PURE__ */ jsx("span", { className: cn("tooltip_position", `tooltip_placement_${placement}`), children: /* @__PURE__ */ jsx(
|
|
845
|
+
animated.span,
|
|
846
|
+
{
|
|
847
|
+
id: tooltipId,
|
|
848
|
+
role: "tooltip",
|
|
849
|
+
style,
|
|
850
|
+
className: cn("tooltip", `tooltip_placement_${placement}`),
|
|
851
|
+
children: content
|
|
852
|
+
}
|
|
853
|
+
) })
|
|
854
|
+
] });
|
|
855
|
+
};
|
|
8
856
|
|
|
9
857
|
// src/styles/a11y/index.ts
|
|
10
858
|
var a11y = {
|
|
11
859
|
focusRing: "0 0 0 3px rgba(0, 0, 0, 0.15)",
|
|
12
860
|
focusRingError: "0 0 0 3px rgba(239, 68, 68, 0.15)",
|
|
13
861
|
focusRingSuccess: "0 0 0 3px rgba(16, 185, 129, 0.15)",
|
|
14
|
-
tapMinSize: "44px"
|
|
862
|
+
tapMinSize: "44px",
|
|
863
|
+
tapTarget: {
|
|
864
|
+
dense: "32px",
|
|
865
|
+
compact: "40px",
|
|
866
|
+
comfortable: "48px",
|
|
867
|
+
spacious: "56px"
|
|
868
|
+
}
|
|
15
869
|
};
|
|
16
870
|
|
|
17
871
|
// src/styles/border-width/index.ts
|
|
@@ -23,6 +877,7 @@ var baseBorderWidth = {
|
|
|
23
877
|
var borderWidth = {
|
|
24
878
|
none: baseBorderWidth["0"],
|
|
25
879
|
standard: baseBorderWidth["1"],
|
|
880
|
+
thick: baseBorderWidth["2"],
|
|
26
881
|
indicator: baseBorderWidth["2"]
|
|
27
882
|
};
|
|
28
883
|
|
|
@@ -44,6 +899,7 @@ var baseColors = {
|
|
|
44
899
|
blue600: "#1A73E8",
|
|
45
900
|
neutral0: "#FFFFFF",
|
|
46
901
|
neutral50: "#F4F4F4",
|
|
902
|
+
neutral100: "#F2F2F2",
|
|
47
903
|
neutral200: "#E5E5E5",
|
|
48
904
|
neutral300: "#999999",
|
|
49
905
|
neutral400: "#B3B3B3",
|
|
@@ -56,6 +912,17 @@ var baseColors = {
|
|
|
56
912
|
statusSuccess: "#10B981",
|
|
57
913
|
statusWarning: "#F59E0B",
|
|
58
914
|
statusInfo: "#3B82F6",
|
|
915
|
+
// Navy — Bigtablet 초기 홈페이지 컬러. #47555E 메인 navy + sky blue 패밀리.
|
|
916
|
+
navy50: "#F2F5F8",
|
|
917
|
+
navy100: "#DDE3E9",
|
|
918
|
+
navy200: "#B4C2CD",
|
|
919
|
+
navy300: "#7AA5D2",
|
|
920
|
+
navy400: "#5A8DCB",
|
|
921
|
+
navy500: "#4C7CB6",
|
|
922
|
+
navy600: "#47555E",
|
|
923
|
+
navy700: "#3D4852",
|
|
924
|
+
navy800: "#303841",
|
|
925
|
+
navy900: "#1F2630",
|
|
59
926
|
alphaBlack5: "rgba(0, 0, 0, 0.05)",
|
|
60
927
|
alphaBlack8: "rgba(0, 0, 0, 0.08)",
|
|
61
928
|
alphaBlack12: "rgba(26, 26, 26, 0.12)",
|
|
@@ -97,13 +964,22 @@ var colors = {
|
|
|
97
964
|
hover: baseColors.neutral400,
|
|
98
965
|
subtle: baseColors.alphaBlack8,
|
|
99
966
|
focus: baseColors.neutral900,
|
|
100
|
-
disabled:
|
|
967
|
+
disabled: baseColors.neutral100
|
|
101
968
|
},
|
|
102
969
|
status: {
|
|
103
970
|
error: baseColors.statusError,
|
|
104
971
|
success: baseColors.statusSuccess,
|
|
105
972
|
warning: baseColors.statusWarning,
|
|
106
973
|
info: baseColors.statusInfo
|
|
974
|
+
},
|
|
975
|
+
// Accent (Bigtablet navy) — 메인 brand 검정과 함께 B2C/마케팅 강조에 사용.
|
|
976
|
+
accent: {
|
|
977
|
+
subtle: baseColors.navy50,
|
|
978
|
+
muted: baseColors.navy100,
|
|
979
|
+
light: baseColors.navy300,
|
|
980
|
+
default: baseColors.navy600,
|
|
981
|
+
strong: baseColors.navy800,
|
|
982
|
+
onSurface: baseColors.neutral0
|
|
107
983
|
}
|
|
108
984
|
};
|
|
109
985
|
|
|
@@ -127,7 +1003,15 @@ var motion = {
|
|
|
127
1003
|
fade: "0.15s ease-in-out",
|
|
128
1004
|
slide: "0.25s ease-in-out",
|
|
129
1005
|
scale: "0.2s cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
130
|
-
state: "0.18s ease-in-out"
|
|
1006
|
+
state: "0.18s ease-in-out",
|
|
1007
|
+
enterFast: "0.15s cubic-bezier(0.16, 1, 0.3, 1)",
|
|
1008
|
+
enterBase: "0.2s cubic-bezier(0.16, 1, 0.3, 1)",
|
|
1009
|
+
exitFast: "0.12s cubic-bezier(0.4, 0, 1, 1)",
|
|
1010
|
+
exitBase: "0.15s cubic-bezier(0.4, 0, 1, 1)"
|
|
1011
|
+
},
|
|
1012
|
+
easing: {
|
|
1013
|
+
enter: "cubic-bezier(0.16, 1, 0.3, 1)",
|
|
1014
|
+
exit: "cubic-bezier(0.4, 0, 1, 1)"
|
|
131
1015
|
}
|
|
132
1016
|
};
|
|
133
1017
|
|
|
@@ -244,7 +1128,8 @@ var baseTypography = {
|
|
|
244
1128
|
"60": "60px"
|
|
245
1129
|
},
|
|
246
1130
|
letterSpacing: {
|
|
247
|
-
normal: "0px"
|
|
1131
|
+
normal: "0px",
|
|
1132
|
+
tight: "0.32px"
|
|
248
1133
|
}
|
|
249
1134
|
};
|
|
250
1135
|
var { fontSize: fs, fontWeight: fw, lineHeight: lh, letterSpacing: ls } = baseTypography;
|
|
@@ -453,104 +1338,53 @@ var zIndex = {
|
|
|
453
1338
|
level4: 500,
|
|
454
1339
|
level5: 1e3
|
|
455
1340
|
};
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
return
|
|
1341
|
+
var Button = ({
|
|
1342
|
+
variant = "filled",
|
|
1343
|
+
size = "md",
|
|
1344
|
+
leadingIcon,
|
|
1345
|
+
trailingIcon,
|
|
1346
|
+
fullWidth = false,
|
|
1347
|
+
radius: radius2,
|
|
1348
|
+
danger = false,
|
|
1349
|
+
className,
|
|
1350
|
+
children,
|
|
1351
|
+
...props
|
|
1352
|
+
}) => {
|
|
1353
|
+
const buttonClassName = cn(
|
|
1354
|
+
"button",
|
|
1355
|
+
`button_variant_${variant}`,
|
|
1356
|
+
`button_size_${size}`,
|
|
1357
|
+
fullWidth && "button_full_width",
|
|
1358
|
+
radius2 && `button_radius_${radius2}`,
|
|
1359
|
+
danger && "button_danger",
|
|
1360
|
+
className
|
|
1361
|
+
);
|
|
1362
|
+
return /* @__PURE__ */ jsxs("button", { className: buttonClassName, ...props, children: [
|
|
1363
|
+
leadingIcon && /* @__PURE__ */ jsx("span", { className: "button_icon", "aria-hidden": "true", children: leadingIcon }),
|
|
1364
|
+
children && /* @__PURE__ */ jsx("span", { className: "button_label", children }),
|
|
1365
|
+
trailingIcon && /* @__PURE__ */ jsx("span", { className: "button_icon", "aria-hidden": "true", children: trailingIcon })
|
|
1366
|
+
] });
|
|
1367
|
+
};
|
|
1368
|
+
var ICONS = {
|
|
1369
|
+
info: /* @__PURE__ */ jsx(Info, { size: 20, "aria-hidden": "true" }),
|
|
1370
|
+
success: /* @__PURE__ */ jsx(CheckCircle2, { size: 20, "aria-hidden": "true" }),
|
|
1371
|
+
warning: /* @__PURE__ */ jsx(AlertTriangle, { size: 20, "aria-hidden": "true" }),
|
|
1372
|
+
error: /* @__PURE__ */ jsx(XCircle, { size: 20, "aria-hidden": "true" })
|
|
478
1373
|
};
|
|
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
1374
|
var AlertContext = createContext(null);
|
|
538
1375
|
var useAlert = () => {
|
|
539
1376
|
const context = useContext(AlertContext);
|
|
540
1377
|
if (!context) {
|
|
541
|
-
throw new Error(
|
|
1378
|
+
throw new Error(
|
|
1379
|
+
"[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>"
|
|
1380
|
+
);
|
|
542
1381
|
}
|
|
543
1382
|
return context;
|
|
544
1383
|
};
|
|
545
1384
|
var AlertProvider = ({ children }) => {
|
|
546
|
-
const [alertState, setAlertState] = useState({
|
|
547
|
-
isOpen: false
|
|
548
|
-
});
|
|
1385
|
+
const [alertState, setAlertState] = useState({ isOpen: false });
|
|
549
1386
|
const showAlert = useCallback((options) => {
|
|
550
|
-
setAlertState({
|
|
551
|
-
...options,
|
|
552
|
-
isOpen: true
|
|
553
|
-
});
|
|
1387
|
+
setAlertState({ ...options, isOpen: true });
|
|
554
1388
|
}, []);
|
|
555
1389
|
const handleClose = useCallback(() => {
|
|
556
1390
|
setAlertState((prev) => ({ ...prev, isOpen: false }));
|
|
@@ -565,98 +1399,107 @@ var AlertProvider = ({ children }) => {
|
|
|
565
1399
|
}, [alertState.onCancel, handleClose]);
|
|
566
1400
|
return /* @__PURE__ */ jsxs(AlertContext.Provider, { value: { showAlert }, children: [
|
|
567
1401
|
children,
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
}
|
|
577
|
-
),
|
|
578
|
-
document.body
|
|
1402
|
+
/* @__PURE__ */ jsx(
|
|
1403
|
+
AlertModal,
|
|
1404
|
+
{
|
|
1405
|
+
...alertState,
|
|
1406
|
+
onConfirm: handleConfirm,
|
|
1407
|
+
onCancel: handleCancel,
|
|
1408
|
+
onClose: handleClose
|
|
1409
|
+
}
|
|
579
1410
|
)
|
|
580
1411
|
] });
|
|
581
1412
|
};
|
|
582
1413
|
var AlertModal = ({
|
|
1414
|
+
isOpen,
|
|
583
1415
|
variant = "info",
|
|
584
1416
|
title,
|
|
585
1417
|
message,
|
|
586
1418
|
confirmText = "\uD655\uC778",
|
|
587
1419
|
cancelText = "\uCDE8\uC18C",
|
|
588
1420
|
showCancel = false,
|
|
1421
|
+
destructive = false,
|
|
589
1422
|
actionsAlign = "right",
|
|
1423
|
+
showIcon = false,
|
|
590
1424
|
onConfirm,
|
|
591
1425
|
onCancel,
|
|
592
1426
|
onClose
|
|
593
1427
|
}) => {
|
|
594
|
-
const panelRef =
|
|
595
|
-
const titleId =
|
|
596
|
-
const messageId =
|
|
597
|
-
|
|
1428
|
+
const panelRef = React16.useRef(null);
|
|
1429
|
+
const titleId = React16.useId();
|
|
1430
|
+
const messageId = React16.useId();
|
|
1431
|
+
const [shouldRender, setShouldRender] = useState(isOpen);
|
|
1432
|
+
useFocusTrap(panelRef, isOpen);
|
|
1433
|
+
React16.useEffect(() => {
|
|
1434
|
+
if (isOpen) setShouldRender(true);
|
|
1435
|
+
}, [isOpen]);
|
|
1436
|
+
const overlayStyle = useSpring({
|
|
1437
|
+
opacity: isOpen ? 1 : 0,
|
|
1438
|
+
config: { tension: 280, friction: 28, clamp: !isOpen },
|
|
1439
|
+
onRest: (result) => {
|
|
1440
|
+
if (!isOpen && result.finished) setShouldRender(false);
|
|
1441
|
+
}
|
|
1442
|
+
});
|
|
1443
|
+
const panelStyle = useSpring({
|
|
1444
|
+
opacity: isOpen ? 1 : 0,
|
|
1445
|
+
transform: isOpen ? "scale(1) translateY(0px)" : "scale(0.96) translateY(-4px)",
|
|
1446
|
+
config: { tension: 280, friction: 28, clamp: !isOpen }
|
|
1447
|
+
});
|
|
1448
|
+
if (!shouldRender) return null;
|
|
1449
|
+
const confirmVariant = "filled";
|
|
1450
|
+
const cancelVariant = "outline";
|
|
598
1451
|
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)
|
|
1452
|
+
return createPortal(
|
|
1453
|
+
// biome-ignore lint/a11y/noStaticElementInteractions: modal overlay pattern
|
|
602
1454
|
/* @__PURE__ */ jsx(
|
|
603
|
-
|
|
1455
|
+
animated.div,
|
|
604
1456
|
{
|
|
605
1457
|
className: "alert_overlay",
|
|
1458
|
+
style: overlayStyle,
|
|
606
1459
|
role: "presentation",
|
|
607
1460
|
onClick: onClose,
|
|
608
1461
|
onKeyDown: (e) => e.key === "Escape" && onClose(),
|
|
609
1462
|
children: /* @__PURE__ */ jsxs(
|
|
610
|
-
|
|
1463
|
+
animated.div,
|
|
611
1464
|
{
|
|
612
1465
|
ref: panelRef,
|
|
613
1466
|
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
|
|
1467
|
+
style: panelStyle,
|
|
1468
|
+
onClick: (e) => e.stopPropagation(),
|
|
1469
|
+
onKeyDown: (e) => {
|
|
1470
|
+
if (e.key !== "Escape") e.stopPropagation();
|
|
1471
|
+
},
|
|
1472
|
+
role: "alertdialog",
|
|
1473
|
+
"aria-modal": "true",
|
|
1474
|
+
"aria-labelledby": title ? titleId : void 0,
|
|
1475
|
+
"aria-describedby": message ? messageId : void 0,
|
|
1476
|
+
children: [
|
|
1477
|
+
(showIcon || title) && /* @__PURE__ */ jsxs("div", { className: "alert_header", children: [
|
|
1478
|
+
showIcon && /* @__PURE__ */ jsx("span", { className: cn("alert_icon", `alert_icon_${variant}`), "aria-hidden": "true", children: ICONS[variant] }),
|
|
1479
|
+
title && /* @__PURE__ */ jsx("div", { className: "alert_title", id: titleId, children: title })
|
|
1480
|
+
] }),
|
|
1481
|
+
message && /* @__PURE__ */ jsx("div", { className: "alert_message", id: messageId, children: message }),
|
|
1482
|
+
/* @__PURE__ */ jsxs("div", { className: cn("alert_actions", `alert_actions_${actionsAlign}`), children: [
|
|
1483
|
+
showCancel && /* @__PURE__ */ jsx(Button, { variant: cancelVariant, size: "md", radius: "md", onClick: onCancel, children: cancelText }),
|
|
1484
|
+
/* @__PURE__ */ jsx(
|
|
1485
|
+
Button,
|
|
1486
|
+
{
|
|
1487
|
+
variant: confirmVariant,
|
|
1488
|
+
danger: destructive,
|
|
1489
|
+
size: "md",
|
|
1490
|
+
radius: "md",
|
|
1491
|
+
onClick: onConfirm,
|
|
1492
|
+
children: confirmText
|
|
1493
|
+
}
|
|
1494
|
+
)
|
|
1495
|
+
] })
|
|
1496
|
+
]
|
|
1497
|
+
}
|
|
1498
|
+
)
|
|
1499
|
+
}
|
|
1500
|
+
),
|
|
1501
|
+
document.body
|
|
654
1502
|
);
|
|
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
1503
|
};
|
|
661
1504
|
var Card = ({
|
|
662
1505
|
heading,
|
|
@@ -664,6 +1507,7 @@ var Card = ({
|
|
|
664
1507
|
shadow = "sm",
|
|
665
1508
|
padding = "md",
|
|
666
1509
|
bordered = false,
|
|
1510
|
+
variant = "default",
|
|
667
1511
|
className,
|
|
668
1512
|
children,
|
|
669
1513
|
...props
|
|
@@ -672,6 +1516,7 @@ var Card = ({
|
|
|
672
1516
|
"card",
|
|
673
1517
|
`card_shadow_${shadow}`,
|
|
674
1518
|
`card_p_${padding}`,
|
|
1519
|
+
variant !== "default" && `card_variant_${variant}`,
|
|
675
1520
|
{ card_bordered: bordered },
|
|
676
1521
|
className
|
|
677
1522
|
);
|
|
@@ -688,12 +1533,12 @@ var Checkbox = ({
|
|
|
688
1533
|
ref,
|
|
689
1534
|
...props
|
|
690
1535
|
}) => {
|
|
691
|
-
const inputRef =
|
|
692
|
-
|
|
1536
|
+
const inputRef = React16.useRef(null);
|
|
1537
|
+
React16.useImperativeHandle(
|
|
693
1538
|
ref,
|
|
694
1539
|
() => inputRef.current
|
|
695
1540
|
);
|
|
696
|
-
|
|
1541
|
+
React16.useEffect(() => {
|
|
697
1542
|
if (!inputRef.current) return;
|
|
698
1543
|
inputRef.current.indeterminate = Boolean(indeterminate);
|
|
699
1544
|
}, [indeterminate]);
|
|
@@ -757,32 +1602,58 @@ var ChevronDownIcon = () => /* @__PURE__ */ jsx(
|
|
|
757
1602
|
);
|
|
758
1603
|
var Chip = ({
|
|
759
1604
|
type = "basic",
|
|
1605
|
+
size,
|
|
1606
|
+
tone = "default",
|
|
760
1607
|
label,
|
|
761
1608
|
selected,
|
|
762
1609
|
removable,
|
|
763
1610
|
disabled,
|
|
764
1611
|
open,
|
|
1612
|
+
leadingIcon,
|
|
765
1613
|
onClick,
|
|
766
1614
|
onRemove,
|
|
767
1615
|
className,
|
|
768
1616
|
...props
|
|
769
1617
|
}) => {
|
|
770
1618
|
const [iconHovered, setIconHovered] = useState(false);
|
|
771
|
-
const
|
|
772
|
-
const
|
|
1619
|
+
const isStatic = type === "static";
|
|
1620
|
+
const hasLeading = !isStatic && selected;
|
|
1621
|
+
const hasStaticLeading = isStatic && !!leadingIcon;
|
|
1622
|
+
const hasTrailingButton = (type === "input" || isStatic) && removable;
|
|
773
1623
|
const hasTrailingIcon = hasTrailingButton || type === "filter";
|
|
774
1624
|
const enterIcon = () => setIconHovered(true);
|
|
775
1625
|
const leaveIcon = () => setIconHovered(false);
|
|
776
1626
|
const chipClassName = cn(
|
|
777
1627
|
"chip",
|
|
778
1628
|
`chip_type_${type}`,
|
|
1629
|
+
size && `chip_size_${size}`,
|
|
1630
|
+
isStatic && `chip_tone_${tone}`,
|
|
779
1631
|
selected && "chip_selected",
|
|
780
|
-
hasLeading && "chip_has_leading",
|
|
1632
|
+
(hasLeading || hasStaticLeading) && "chip_has_leading",
|
|
781
1633
|
hasTrailingIcon && "chip_has_trailing",
|
|
782
1634
|
disabled && "chip_disabled",
|
|
783
1635
|
iconHovered && "chip_icon_hovered",
|
|
784
1636
|
className
|
|
785
1637
|
);
|
|
1638
|
+
if (isStatic) {
|
|
1639
|
+
return /* @__PURE__ */ jsxs("span", { className: chipClassName, ...props, children: [
|
|
1640
|
+
/* @__PURE__ */ jsxs("span", { className: "chip_content", children: [
|
|
1641
|
+
hasStaticLeading && /* @__PURE__ */ jsx("span", { className: "chip_icon", "aria-hidden": "true", children: leadingIcon }),
|
|
1642
|
+
/* @__PURE__ */ jsx("span", { className: "chip_label", children: label })
|
|
1643
|
+
] }),
|
|
1644
|
+
hasTrailingButton && /* @__PURE__ */ jsx(
|
|
1645
|
+
"button",
|
|
1646
|
+
{
|
|
1647
|
+
type: "button",
|
|
1648
|
+
className: "chip_trailing",
|
|
1649
|
+
disabled,
|
|
1650
|
+
onClick: onRemove,
|
|
1651
|
+
"aria-label": "Remove",
|
|
1652
|
+
children: /* @__PURE__ */ jsx("span", { className: "chip_icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx(CloseIcon, {}) })
|
|
1653
|
+
}
|
|
1654
|
+
)
|
|
1655
|
+
] });
|
|
1656
|
+
}
|
|
786
1657
|
return /* @__PURE__ */ jsxs("div", { className: chipClassName, ...props, children: [
|
|
787
1658
|
/* @__PURE__ */ jsxs(
|
|
788
1659
|
"button",
|
|
@@ -849,25 +1720,23 @@ var Dropdown = ({
|
|
|
849
1720
|
defaultValue = null,
|
|
850
1721
|
disabled,
|
|
851
1722
|
size = "md",
|
|
852
|
-
fullWidth,
|
|
853
1723
|
className
|
|
854
1724
|
}) => {
|
|
855
|
-
const internalId =
|
|
1725
|
+
const internalId = useId();
|
|
856
1726
|
const dropdownId = id ?? internalId;
|
|
857
1727
|
const isControlled = value !== void 0;
|
|
858
|
-
const [internalValue, setInternalValue] =
|
|
1728
|
+
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
859
1729
|
const currentValue = isControlled ? value ?? null : internalValue;
|
|
860
|
-
const [isOpen, setIsOpen] =
|
|
861
|
-
const [activeIndex, setActiveIndex] =
|
|
862
|
-
const [dropUp, setDropUp] =
|
|
863
|
-
const wrapperRef =
|
|
864
|
-
const controlRef =
|
|
865
|
-
const currentOption =
|
|
1730
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
1731
|
+
const [activeIndex, setActiveIndex] = useState(-1);
|
|
1732
|
+
const [dropUp, setDropUp] = useState(false);
|
|
1733
|
+
const wrapperRef = useRef(null);
|
|
1734
|
+
const controlRef = useRef(null);
|
|
1735
|
+
const currentOption = useMemo(
|
|
866
1736
|
() => options.find((o) => o.value === currentValue) ?? null,
|
|
867
1737
|
[options, currentValue]
|
|
868
1738
|
);
|
|
869
|
-
const
|
|
870
|
-
const setValue = React4.useCallback(
|
|
1739
|
+
const setValue = useCallback(
|
|
871
1740
|
(next) => {
|
|
872
1741
|
const option = options.find((o) => o.value === next) ?? null;
|
|
873
1742
|
if (!isControlled) setInternalValue(next);
|
|
@@ -875,7 +1744,7 @@ var Dropdown = ({
|
|
|
875
1744
|
},
|
|
876
1745
|
[isControlled, onChange, options]
|
|
877
1746
|
);
|
|
878
|
-
|
|
1747
|
+
useEffect(() => {
|
|
879
1748
|
const handleOutsideClick = (e) => {
|
|
880
1749
|
if (!wrapperRef.current?.contains(e.target)) {
|
|
881
1750
|
setIsOpen(false);
|
|
@@ -946,7 +1815,7 @@ var Dropdown = ({
|
|
|
946
1815
|
break;
|
|
947
1816
|
}
|
|
948
1817
|
};
|
|
949
|
-
|
|
1818
|
+
useEffect(() => {
|
|
950
1819
|
if (!isOpen) return;
|
|
951
1820
|
const matchedIndex = options.findIndex((o) => o.value === currentValue && !o.disabled);
|
|
952
1821
|
setActiveIndex(
|
|
@@ -956,82 +1825,98 @@ var Dropdown = ({
|
|
|
956
1825
|
)
|
|
957
1826
|
);
|
|
958
1827
|
}, [isOpen, options, currentValue]);
|
|
959
|
-
|
|
1828
|
+
useEffect(() => {
|
|
960
1829
|
if (!isOpen || !controlRef.current) return;
|
|
961
1830
|
const rect = controlRef.current.getBoundingClientRect();
|
|
962
|
-
const listHeight = Math.min(options.length * 56, 288);
|
|
963
1831
|
const spaceBelow = window.innerHeight - rect.bottom;
|
|
964
1832
|
const spaceAbove = rect.top;
|
|
965
|
-
|
|
966
|
-
|
|
1833
|
+
const MIN_BELOW = 120;
|
|
1834
|
+
setDropUp(spaceBelow < MIN_BELOW && spaceAbove > spaceBelow);
|
|
1835
|
+
}, [isOpen]);
|
|
967
1836
|
const rootClassName = cn("dropdown", `dropdown_size_${size}`, className);
|
|
968
1837
|
const fieldsetClassName = cn("dropdown_fieldset", { is_open: isOpen, is_disabled: disabled });
|
|
969
1838
|
const listClassName = cn("dropdown_list", { dropdown_list_up: dropUp });
|
|
1839
|
+
const listStyle = useSpringPresence({
|
|
1840
|
+
visible: isOpen,
|
|
1841
|
+
from: dropUp ? "translateY(4px)" : "translateY(-4px)"
|
|
1842
|
+
});
|
|
970
1843
|
return /* @__PURE__ */ jsxs(
|
|
971
1844
|
"div",
|
|
972
1845
|
{
|
|
973
1846
|
ref: wrapperRef,
|
|
974
1847
|
className: rootClassName,
|
|
975
|
-
style: fullWidth ? { width: "100%" } : void 0,
|
|
976
1848
|
children: [
|
|
977
|
-
/* @__PURE__ */
|
|
978
|
-
|
|
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
|
-
|
|
1849
|
+
label && /* @__PURE__ */ jsx("label", { htmlFor: dropdownId, className: "dropdown_label", children: label }),
|
|
1850
|
+
/* @__PURE__ */ jsx("div", { className: fieldsetClassName, children: /* @__PURE__ */ jsxs(
|
|
1851
|
+
"button",
|
|
1852
|
+
{
|
|
1853
|
+
ref: controlRef,
|
|
1854
|
+
id: dropdownId,
|
|
1855
|
+
type: "button",
|
|
1856
|
+
className: cn("dropdown_control", { is_disabled: disabled }),
|
|
1857
|
+
"aria-haspopup": "listbox",
|
|
1858
|
+
"aria-expanded": isOpen,
|
|
1859
|
+
"aria-controls": `${dropdownId}_listbox`,
|
|
1860
|
+
onClick: () => !disabled && setIsOpen((o) => !o),
|
|
1861
|
+
onKeyDown,
|
|
1862
|
+
disabled,
|
|
1863
|
+
children: [
|
|
1864
|
+
/* @__PURE__ */ jsx("span", { className: currentOption ? "dropdown_value" : "dropdown_placeholder", children: currentOption ? currentOption.label : placeholder }),
|
|
1865
|
+
/* @__PURE__ */ jsx(
|
|
1866
|
+
"span",
|
|
1867
|
+
{
|
|
1868
|
+
className: cn("dropdown_icon", { dropdown_icon_open: isOpen }),
|
|
1869
|
+
"aria-hidden": "true",
|
|
1870
|
+
children: /* @__PURE__ */ jsx(ChevronDown, { size: 20 })
|
|
1871
|
+
}
|
|
1872
|
+
)
|
|
1873
|
+
]
|
|
1874
|
+
}
|
|
1875
|
+
) }),
|
|
1876
|
+
isOpen && /* @__PURE__ */ jsx(
|
|
1877
|
+
animated.div,
|
|
1878
|
+
{
|
|
1879
|
+
id: `${dropdownId}_listbox`,
|
|
1880
|
+
role: "listbox",
|
|
1881
|
+
className: listClassName,
|
|
1882
|
+
style: listStyle,
|
|
1883
|
+
children: options.map((opt, i) => {
|
|
1884
|
+
const selected = currentValue === opt.value;
|
|
1885
|
+
const active = i === activeIndex;
|
|
1886
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1887
|
+
/* @__PURE__ */ jsxs(
|
|
1888
|
+
"div",
|
|
1889
|
+
{
|
|
1890
|
+
role: "option",
|
|
1891
|
+
tabIndex: -1,
|
|
1892
|
+
"aria-selected": selected,
|
|
1893
|
+
"aria-disabled": opt.disabled ? true : void 0,
|
|
1894
|
+
className: cn("dropdown_option", {
|
|
1895
|
+
is_selected: selected,
|
|
1896
|
+
is_active: active,
|
|
1897
|
+
is_disabled: opt.disabled
|
|
1898
|
+
}),
|
|
1899
|
+
onMouseEnter: () => !opt.disabled && setActiveIndex(i),
|
|
1900
|
+
onClick: () => {
|
|
1901
|
+
if (opt.disabled) return;
|
|
1902
|
+
setValue(opt.value);
|
|
1903
|
+
setIsOpen(false);
|
|
1904
|
+
},
|
|
1905
|
+
children: [
|
|
1906
|
+
opt.leadingIcon && /* @__PURE__ */ jsx("span", { className: "dropdown_option_icon", children: opt.leadingIcon }),
|
|
1907
|
+
/* @__PURE__ */ jsxs("span", { className: "dropdown_option_content", children: [
|
|
1908
|
+
/* @__PURE__ */ jsx("span", { className: "dropdown_option_label", children: opt.label }),
|
|
1909
|
+
opt.supportingText && /* @__PURE__ */ jsx("span", { className: "dropdown_option_supporting", children: opt.supportingText })
|
|
1910
|
+
] }),
|
|
1911
|
+
(selected || opt.trailingIcon) && /* @__PURE__ */ jsx("span", { className: "dropdown_option_trailing", children: opt.trailingIcon ?? /* @__PURE__ */ jsx(Check, { size: 16, "aria-hidden": "true" }) })
|
|
1912
|
+
]
|
|
1913
|
+
}
|
|
1914
|
+
),
|
|
1915
|
+
opt.showDivider && /* @__PURE__ */ jsx("hr", { className: "dropdown_option_divider" })
|
|
1916
|
+
] }, opt.value);
|
|
1917
|
+
})
|
|
1918
|
+
}
|
|
1919
|
+
)
|
|
1035
1920
|
]
|
|
1036
1921
|
}
|
|
1037
1922
|
);
|
|
@@ -1058,9 +1943,9 @@ var DatePicker = ({
|
|
|
1058
1943
|
minDateSrFormat = "Minimum date: {date}",
|
|
1059
1944
|
selectableRangeUntilTodaySrText = "Selectable up to today"
|
|
1060
1945
|
}) => {
|
|
1061
|
-
const groupId =
|
|
1062
|
-
const constraintId =
|
|
1063
|
-
const { todayYear, todayMonth, todayDay } =
|
|
1946
|
+
const groupId = React16.useId();
|
|
1947
|
+
const constraintId = React16.useId();
|
|
1948
|
+
const { todayYear, todayMonth, todayDay } = React16.useMemo(() => {
|
|
1064
1949
|
const now = /* @__PURE__ */ new Date();
|
|
1065
1950
|
return {
|
|
1066
1951
|
todayYear: now.getFullYear(),
|
|
@@ -1069,7 +1954,7 @@ var DatePicker = ({
|
|
|
1069
1954
|
};
|
|
1070
1955
|
}, []);
|
|
1071
1956
|
const endYear = endYearProp ?? todayYear + 10;
|
|
1072
|
-
const parsed =
|
|
1957
|
+
const parsed = React16.useMemo(() => {
|
|
1073
1958
|
if (!value) return { year: 0, month: 0, day: 0 };
|
|
1074
1959
|
const [y, m, d] = value.split("-").map(Number);
|
|
1075
1960
|
return {
|
|
@@ -1078,7 +1963,7 @@ var DatePicker = ({
|
|
|
1078
1963
|
day: d || 0
|
|
1079
1964
|
};
|
|
1080
1965
|
}, [value]);
|
|
1081
|
-
const min =
|
|
1966
|
+
const min = React16.useMemo(() => {
|
|
1082
1967
|
if (!minDate) return { year: 0, month: 0, day: 0 };
|
|
1083
1968
|
const [y, m, d] = minDate.split("-").map(Number);
|
|
1084
1969
|
return {
|
|
@@ -1098,7 +1983,7 @@ var DatePicker = ({
|
|
|
1098
1983
|
min.year > 0 && min.month > 0 && year === min.year && month === min.month ? min.day : 1
|
|
1099
1984
|
)
|
|
1100
1985
|
);
|
|
1101
|
-
const maxDay =
|
|
1986
|
+
const maxDay = React16.useMemo(() => {
|
|
1102
1987
|
if (!year || !month) return 31;
|
|
1103
1988
|
const daysInMonth = getDaysInMonth(year, month);
|
|
1104
1989
|
if (selectableRange === "until-today" && year === todayYear && month === todayMonth) {
|
|
@@ -1106,28 +1991,28 @@ var DatePicker = ({
|
|
|
1106
1991
|
}
|
|
1107
1992
|
return daysInMonth;
|
|
1108
1993
|
}, [year, month, selectableRange, todayYear, todayMonth, todayDay]);
|
|
1109
|
-
const yearOptions =
|
|
1994
|
+
const yearOptions = React16.useMemo(
|
|
1110
1995
|
() => range(startYear, maxYear).map((y) => ({
|
|
1111
1996
|
value: String(y),
|
|
1112
1997
|
label: String(y)
|
|
1113
1998
|
})),
|
|
1114
1999
|
[startYear, maxYear]
|
|
1115
2000
|
);
|
|
1116
|
-
const monthOptions =
|
|
2001
|
+
const monthOptions = React16.useMemo(
|
|
1117
2002
|
() => range(minMonth, Math.max(minMonth, maxMonth)).map((m) => ({
|
|
1118
2003
|
value: String(m),
|
|
1119
2004
|
label: pad(m)
|
|
1120
2005
|
})),
|
|
1121
2006
|
[minMonth, maxMonth]
|
|
1122
2007
|
);
|
|
1123
|
-
const dayOptions =
|
|
2008
|
+
const dayOptions = React16.useMemo(
|
|
1124
2009
|
() => range(minDay, Math.max(minDay, maxDay)).map((d) => ({
|
|
1125
2010
|
value: String(d),
|
|
1126
2011
|
label: pad(d)
|
|
1127
2012
|
})),
|
|
1128
2013
|
[minDay, maxDay]
|
|
1129
2014
|
);
|
|
1130
|
-
const emit =
|
|
2015
|
+
const emit = React16.useCallback(
|
|
1131
2016
|
(yy, mm, dd) => {
|
|
1132
2017
|
if (mode === "year-month") {
|
|
1133
2018
|
onChange(`${yy}-${pad(mm)}`);
|
|
@@ -1138,7 +2023,7 @@ var DatePicker = ({
|
|
|
1138
2023
|
},
|
|
1139
2024
|
[mode, onChange]
|
|
1140
2025
|
);
|
|
1141
|
-
const handleYearChange =
|
|
2026
|
+
const handleYearChange = React16.useCallback(
|
|
1142
2027
|
(raw) => {
|
|
1143
2028
|
if (!raw) return;
|
|
1144
2029
|
const newYear = Number(raw);
|
|
@@ -1155,14 +2040,14 @@ var DatePicker = ({
|
|
|
1155
2040
|
},
|
|
1156
2041
|
[month, day, min.year, min.month, selectableRange, todayYear, todayMonth, emit]
|
|
1157
2042
|
);
|
|
1158
|
-
const handleMonthChange =
|
|
2043
|
+
const handleMonthChange = React16.useCallback(
|
|
1159
2044
|
(raw) => {
|
|
1160
2045
|
if (!raw || !year) return;
|
|
1161
2046
|
emit(year, Number(raw), day || void 0);
|
|
1162
2047
|
},
|
|
1163
2048
|
[year, day, emit]
|
|
1164
2049
|
);
|
|
1165
|
-
const handleDayChange =
|
|
2050
|
+
const handleDayChange = React16.useCallback(
|
|
1166
2051
|
(raw) => {
|
|
1167
2052
|
if (!raw || !year || !month) return;
|
|
1168
2053
|
emit(year, month, Number(raw));
|
|
@@ -1237,673 +2122,190 @@ var Divider = ({ weight = "standard", className, ...props }) => {
|
|
|
1237
2122
|
const dividerClassName = cn("divider", `divider_weight_${weight}`, className);
|
|
1238
2123
|
return /* @__PURE__ */ jsx("hr", { className: dividerClassName, ...props });
|
|
1239
2124
|
};
|
|
1240
|
-
var FAB = ({ variant = "primary", icon, className, ...props }) => {
|
|
1241
|
-
const fabClassName = cn("fab", `fab_variant_${variant}`, className);
|
|
1242
|
-
return /* @__PURE__ */ jsx("button", { className: fabClassName, ...props, children: /* @__PURE__ */ jsx("span", { className: "fab_icon", "aria-hidden": "true", children: icon }) });
|
|
1243
|
-
};
|
|
1244
2125
|
var FileInput = ({
|
|
1245
2126
|
label = "Choose file",
|
|
1246
2127
|
onFiles,
|
|
1247
2128
|
supportingText,
|
|
1248
2129
|
preview = false,
|
|
1249
|
-
|
|
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
|
-
const rootClassName = cn("file_input", disabled && "file_input_disabled", className);
|
|
1285
|
-
return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
|
|
1286
|
-
/* @__PURE__ */ jsx(
|
|
1287
|
-
"input",
|
|
1288
|
-
{
|
|
1289
|
-
id: inputId,
|
|
1290
|
-
type: "file",
|
|
1291
|
-
className: "file_input_control",
|
|
1292
|
-
disabled,
|
|
1293
|
-
"aria-describedby": supportingText ? helperId : void 0,
|
|
1294
|
-
onChange: handleChange,
|
|
1295
|
-
...props
|
|
1296
|
-
}
|
|
1297
|
-
),
|
|
1298
|
-
/* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "file_input_label", children: label }),
|
|
1299
|
-
supportingText && /* @__PURE__ */ jsx("span", { id: helperId, className: "file_input_helper", children: supportingText }),
|
|
1300
|
-
previewUrls.length > 0 && /* @__PURE__ */ jsx("div", { className: "file_input_preview", children: previewUrls.map((url) => (
|
|
1301
|
-
// biome-ignore lint/performance/noImgElement: framework-agnostic DS — host app should swap with next/image if needed
|
|
1302
|
-
/* @__PURE__ */ jsx("img", { src: url, alt: "", className: "file_input_preview_img" }, url)
|
|
1303
|
-
)) })
|
|
1304
|
-
] });
|
|
1305
|
-
};
|
|
1306
|
-
|
|
1307
|
-
// src/ui/icon/icon-data.ts
|
|
1308
|
-
var ICON_DATA = {
|
|
1309
|
-
add_a_photo: {
|
|
1310
|
-
300: {
|
|
1311
|
-
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",
|
|
1312
|
-
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"
|
|
1313
|
-
},
|
|
1314
|
-
400: {
|
|
1315
|
-
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",
|
|
1316
|
-
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"
|
|
1317
|
-
}
|
|
1318
|
-
},
|
|
1319
|
-
add_circle: {
|
|
1320
|
-
300: {
|
|
1321
|
-
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",
|
|
1322
|
-
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"
|
|
1323
|
-
},
|
|
1324
|
-
400: {
|
|
1325
|
-
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",
|
|
1326
|
-
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"
|
|
1327
|
-
}
|
|
1328
|
-
},
|
|
1329
|
-
add_lg: {
|
|
1330
|
-
300: {
|
|
1331
|
-
noFill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z",
|
|
1332
|
-
fill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z"
|
|
1333
|
-
},
|
|
1334
|
-
400: {
|
|
1335
|
-
noFill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z",
|
|
1336
|
-
fill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z"
|
|
1337
|
-
}
|
|
1338
|
-
},
|
|
1339
|
-
add_md: {
|
|
1340
|
-
300: {
|
|
1341
|
-
noFill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z",
|
|
1342
|
-
fill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z"
|
|
1343
|
-
},
|
|
1344
|
-
400: {
|
|
1345
|
-
noFill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z",
|
|
1346
|
-
fill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z"
|
|
1347
|
-
}
|
|
1348
|
-
},
|
|
1349
|
-
apartment: {
|
|
1350
|
-
300: {
|
|
1351
|
-
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",
|
|
1352
|
-
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"
|
|
1353
|
-
},
|
|
1354
|
-
400: {
|
|
1355
|
-
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",
|
|
1356
|
-
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"
|
|
1357
|
-
}
|
|
1358
|
-
},
|
|
1359
|
-
arrow_back: {
|
|
1360
|
-
300: {
|
|
1361
|
-
noFill: "M266.31-457.31 512-212l-32 32-300-300 300-300 32 32-245.69 245.31H780v45.38H266.31Z",
|
|
1362
|
-
fill: "M266.31-457.31 512-212l-32 32-300-300 300-300 32 32-245.69 245.31H780v45.38H266.31Z"
|
|
1363
|
-
},
|
|
1364
|
-
400: {
|
|
1365
|
-
noFill: "m274-450 248 248-42 42-320-320 320-320 42 42-248 248h526v60H274Z",
|
|
1366
|
-
fill: "m274-450 248 248-42 42-320-320 320-320 42 42-248 248h526v60H274Z"
|
|
1367
|
-
}
|
|
1368
|
-
},
|
|
1369
|
-
calendar_today: {
|
|
1370
|
-
300: {
|
|
1371
|
-
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",
|
|
1372
|
-
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"
|
|
1373
|
-
},
|
|
1374
|
-
400: {
|
|
1375
|
-
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",
|
|
1376
|
-
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"
|
|
1377
|
-
}
|
|
1378
|
-
},
|
|
1379
|
-
check: {
|
|
1380
|
-
300: {
|
|
1381
|
-
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",
|
|
1382
|
-
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"
|
|
1383
|
-
},
|
|
1384
|
-
400: {
|
|
1385
|
-
noFill: "M378-246 154-470l43-43 181 181 384-384 43 43-427 427Z",
|
|
1386
|
-
fill: "M378-246 154-470l43-43 181 181 384-384 43 43-427 427Z"
|
|
1387
|
-
}
|
|
1388
|
-
},
|
|
1389
|
-
check_box: {
|
|
1390
|
-
300: {
|
|
1391
|
-
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",
|
|
1392
|
-
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"
|
|
1393
|
-
},
|
|
1394
|
-
400: {
|
|
1395
|
-
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",
|
|
1396
|
-
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"
|
|
1397
|
-
}
|
|
1398
|
-
},
|
|
1399
|
-
check_circle: {
|
|
1400
|
-
300: {
|
|
1401
|
-
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",
|
|
1402
|
-
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"
|
|
1403
|
-
},
|
|
1404
|
-
400: {
|
|
1405
|
-
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",
|
|
1406
|
-
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"
|
|
1407
|
-
}
|
|
1408
|
-
},
|
|
1409
|
-
close: {
|
|
1410
|
-
300: {
|
|
1411
|
-
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",
|
|
1412
|
-
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"
|
|
1413
|
-
},
|
|
1414
|
-
400: {
|
|
1415
|
-
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",
|
|
1416
|
-
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"
|
|
1417
|
-
}
|
|
1418
|
-
},
|
|
1419
|
-
close_small: {
|
|
1420
|
-
300: {
|
|
1421
|
-
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",
|
|
1422
|
-
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"
|
|
1423
|
-
},
|
|
1424
|
-
400: {
|
|
1425
|
-
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",
|
|
1426
|
-
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"
|
|
1427
|
-
}
|
|
1428
|
-
},
|
|
1429
|
-
cloud_download: {
|
|
1430
|
-
300: {
|
|
1431
|
-
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",
|
|
1432
|
-
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"
|
|
1433
|
-
},
|
|
1434
|
-
400: {
|
|
1435
|
-
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",
|
|
1436
|
-
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"
|
|
1437
|
-
}
|
|
1438
|
-
},
|
|
1439
|
-
cloud_upload: {
|
|
1440
|
-
300: {
|
|
1441
|
-
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",
|
|
1442
|
-
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"
|
|
1443
|
-
},
|
|
1444
|
-
400: {
|
|
1445
|
-
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",
|
|
1446
|
-
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"
|
|
1447
|
-
}
|
|
1448
|
-
},
|
|
1449
|
-
content_copy: {
|
|
1450
|
-
300: {
|
|
1451
|
-
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",
|
|
1452
|
-
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"
|
|
1453
|
-
},
|
|
1454
|
-
400: {
|
|
1455
|
-
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",
|
|
1456
|
-
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"
|
|
1457
|
-
}
|
|
1458
|
-
},
|
|
1459
|
-
delete_forever: {
|
|
1460
|
-
300: {
|
|
1461
|
-
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",
|
|
1462
|
-
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"
|
|
1463
|
-
},
|
|
1464
|
-
400: {
|
|
1465
|
-
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",
|
|
1466
|
-
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"
|
|
1467
|
-
}
|
|
1468
|
-
},
|
|
1469
|
-
edit: {
|
|
1470
|
-
300: {
|
|
1471
|
-
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",
|
|
1472
|
-
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"
|
|
1473
|
-
},
|
|
1474
|
-
400: {
|
|
1475
|
-
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",
|
|
1476
|
-
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"
|
|
1477
|
-
}
|
|
1478
|
-
},
|
|
1479
|
-
edit_note: {
|
|
1480
|
-
300: {
|
|
1481
|
-
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",
|
|
1482
|
-
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"
|
|
1483
|
-
},
|
|
1484
|
-
400: {
|
|
1485
|
-
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",
|
|
1486
|
-
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"
|
|
1487
|
-
}
|
|
1488
|
-
},
|
|
1489
|
-
error: {
|
|
1490
|
-
300: {
|
|
1491
|
-
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",
|
|
1492
|
-
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"
|
|
1493
|
-
},
|
|
1494
|
-
400: {
|
|
1495
|
-
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",
|
|
1496
|
-
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"
|
|
1497
|
-
}
|
|
1498
|
-
},
|
|
1499
|
-
event: {
|
|
1500
|
-
300: {
|
|
1501
|
-
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",
|
|
1502
|
-
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"
|
|
1503
|
-
},
|
|
1504
|
-
400: {
|
|
1505
|
-
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",
|
|
1506
|
-
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"
|
|
1507
|
-
}
|
|
1508
|
-
},
|
|
1509
|
-
fiber_manual_record: {
|
|
1510
|
-
300: {
|
|
1511
|
-
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",
|
|
1512
|
-
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"
|
|
1513
|
-
},
|
|
1514
|
-
400: {
|
|
1515
|
-
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",
|
|
1516
|
-
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"
|
|
1517
|
-
}
|
|
1518
|
-
},
|
|
1519
|
-
forward_5: {
|
|
1520
|
-
300: {
|
|
1521
|
-
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",
|
|
1522
|
-
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"
|
|
1523
|
-
},
|
|
1524
|
-
400: {
|
|
1525
|
-
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",
|
|
1526
|
-
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"
|
|
1527
|
-
}
|
|
1528
|
-
},
|
|
1529
|
-
group: {
|
|
1530
|
-
300: {
|
|
1531
|
-
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",
|
|
1532
|
-
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"
|
|
1533
|
-
},
|
|
1534
|
-
400: {
|
|
1535
|
-
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",
|
|
1536
|
-
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"
|
|
1537
|
-
}
|
|
1538
|
-
},
|
|
1539
|
-
groups: {
|
|
1540
|
-
300: {
|
|
1541
|
-
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",
|
|
1542
|
-
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"
|
|
1543
|
-
},
|
|
1544
|
-
400: {
|
|
1545
|
-
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",
|
|
1546
|
-
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"
|
|
1547
|
-
}
|
|
1548
|
-
},
|
|
1549
|
-
help: {
|
|
1550
|
-
300: {
|
|
1551
|
-
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",
|
|
1552
|
-
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"
|
|
1553
|
-
},
|
|
1554
|
-
400: {
|
|
1555
|
-
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",
|
|
1556
|
-
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"
|
|
1557
|
-
}
|
|
1558
|
-
},
|
|
1559
|
-
id: {
|
|
1560
|
-
300: {
|
|
1561
|
-
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",
|
|
1562
|
-
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"
|
|
1563
|
-
},
|
|
1564
|
-
400: {
|
|
1565
|
-
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",
|
|
1566
|
-
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"
|
|
1567
|
-
}
|
|
1568
|
-
},
|
|
1569
|
-
id_card: {
|
|
1570
|
-
300: {
|
|
1571
|
-
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",
|
|
1572
|
-
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"
|
|
1573
|
-
},
|
|
1574
|
-
400: {
|
|
1575
|
-
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",
|
|
1576
|
-
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"
|
|
1577
|
-
}
|
|
1578
|
-
},
|
|
1579
|
-
image: {
|
|
1580
|
-
300: {
|
|
1581
|
-
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",
|
|
1582
|
-
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"
|
|
1583
|
-
},
|
|
1584
|
-
400: {
|
|
1585
|
-
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",
|
|
1586
|
-
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"
|
|
1587
|
-
}
|
|
1588
|
-
},
|
|
1589
|
-
indeterminate_check_box: {
|
|
1590
|
-
300: {
|
|
1591
|
-
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",
|
|
1592
|
-
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"
|
|
1593
|
-
},
|
|
1594
|
-
400: {
|
|
1595
|
-
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",
|
|
1596
|
-
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"
|
|
1597
|
-
}
|
|
1598
|
-
},
|
|
1599
|
-
info: {
|
|
1600
|
-
300: {
|
|
1601
|
-
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",
|
|
1602
|
-
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"
|
|
1603
|
-
},
|
|
1604
|
-
400: {
|
|
1605
|
-
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",
|
|
1606
|
-
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"
|
|
1607
|
-
}
|
|
1608
|
-
},
|
|
1609
|
-
keyboard_arrow_down: {
|
|
1610
|
-
300: {
|
|
1611
|
-
noFill: "M480-357.85 253.85-584l32.61-32.61L480-423.08l193.54-193.53L706.15-584 480-357.85Z",
|
|
1612
|
-
fill: "M480-357.85 253.85-584l32.61-32.61L480-423.08l193.54-193.53L706.15-584 480-357.85Z"
|
|
1613
|
-
},
|
|
1614
|
-
400: {
|
|
1615
|
-
noFill: "M480-344 240-584l43-43 197 197 197-197 43 43-240 240Z",
|
|
1616
|
-
fill: "M480-344 240-584l43-43 197 197 197-197 43 43-240 240Z"
|
|
1617
|
-
}
|
|
1618
|
-
},
|
|
1619
|
-
keyboard_arrow_left: {
|
|
1620
|
-
300: {
|
|
1621
|
-
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",
|
|
1622
|
-
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"
|
|
1623
|
-
},
|
|
1624
|
-
400: {
|
|
1625
|
-
noFill: "M561-240 320-481l241-241 43 43-198 198 198 198-43 43Z",
|
|
1626
|
-
fill: "M561-240 320-481l241-241 43 43-198 198 198 198-43 43Z"
|
|
1627
|
-
}
|
|
1628
|
-
},
|
|
1629
|
-
keyboard_arrow_right: {
|
|
1630
|
-
300: {
|
|
1631
|
-
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",
|
|
1632
|
-
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"
|
|
1633
|
-
},
|
|
1634
|
-
400: {
|
|
1635
|
-
noFill: "M530-481 332-679l43-43 241 241-241 241-43-43 198-198Z",
|
|
1636
|
-
fill: "M530-481 332-679l43-43 241 241-241 241-43-43 198-198Z"
|
|
1637
|
-
}
|
|
1638
|
-
},
|
|
1639
|
-
keyboard_arrow_up: {
|
|
1640
|
-
300: {
|
|
1641
|
-
noFill: "M480-560.92 286.46-367.39 253.85-400 480-626.15 706.15-400l-32.61 32.61L480-560.92Z",
|
|
1642
|
-
fill: "M480-560.92 286.46-367.39 253.85-400 480-626.15 706.15-400l-32.61 32.61L480-560.92Z"
|
|
1643
|
-
},
|
|
1644
|
-
400: {
|
|
1645
|
-
noFill: "M480-554 283-357l-43-43 240-240 240 240-43 43-197-197Z",
|
|
1646
|
-
fill: "M480-554 283-357l-43-43 240-240 240 240-43 43-197-197Z"
|
|
1647
|
-
}
|
|
1648
|
-
},
|
|
1649
|
-
location_on: {
|
|
1650
|
-
300: {
|
|
1651
|
-
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",
|
|
1652
|
-
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"
|
|
1653
|
-
},
|
|
1654
|
-
400: {
|
|
1655
|
-
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",
|
|
1656
|
-
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"
|
|
1657
|
-
}
|
|
1658
|
-
},
|
|
1659
|
-
login: {
|
|
1660
|
-
300: {
|
|
1661
|
-
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",
|
|
1662
|
-
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"
|
|
1663
|
-
},
|
|
1664
|
-
400: {
|
|
1665
|
-
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",
|
|
1666
|
-
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"
|
|
1667
|
-
}
|
|
1668
|
-
},
|
|
1669
|
-
logout: {
|
|
1670
|
-
300: {
|
|
1671
|
-
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",
|
|
1672
|
-
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"
|
|
1673
|
-
},
|
|
1674
|
-
400: {
|
|
1675
|
-
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",
|
|
1676
|
-
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"
|
|
1677
|
-
}
|
|
1678
|
-
},
|
|
1679
|
-
more_vert: {
|
|
1680
|
-
300: {
|
|
1681
|
-
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",
|
|
1682
|
-
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"
|
|
1683
|
-
},
|
|
1684
|
-
400: {
|
|
1685
|
-
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",
|
|
1686
|
-
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"
|
|
1687
|
-
}
|
|
1688
|
-
},
|
|
1689
|
-
open_in_browser: {
|
|
1690
|
-
300: {
|
|
1691
|
-
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",
|
|
1692
|
-
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"
|
|
1693
|
-
},
|
|
1694
|
-
400: {
|
|
1695
|
-
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",
|
|
1696
|
-
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"
|
|
1697
|
-
}
|
|
1698
|
-
},
|
|
1699
|
-
open_in_new: {
|
|
1700
|
-
300: {
|
|
1701
|
-
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",
|
|
1702
|
-
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"
|
|
1703
|
-
},
|
|
1704
|
-
400: {
|
|
1705
|
-
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",
|
|
1706
|
-
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"
|
|
1707
|
-
}
|
|
1708
|
-
},
|
|
1709
|
-
pause: {
|
|
1710
|
-
300: {
|
|
1711
|
-
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",
|
|
1712
|
-
fill: "M556.54-220v-520h160.77v520H556.54Zm-313.85 0v-520h161.16v520H242.69Z"
|
|
1713
|
-
},
|
|
1714
|
-
400: {
|
|
1715
|
-
noFill: "M525-200v-560h235v560H525Zm-325 0v-560h235v560H200Zm385-60h115v-440H585v440Zm-325 0h115v-440H260v440Zm0-440v440-440Zm325 0v440-440Z",
|
|
1716
|
-
fill: "M555-200v-560h175v560H555Zm-325 0v-560h175v560H230Z"
|
|
1717
|
-
}
|
|
1718
|
-
},
|
|
1719
|
-
person: {
|
|
1720
|
-
300: {
|
|
1721
|
-
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",
|
|
1722
|
-
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"
|
|
1723
|
-
},
|
|
1724
|
-
400: {
|
|
1725
|
-
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",
|
|
1726
|
-
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"
|
|
1727
|
-
}
|
|
1728
|
-
},
|
|
1729
|
-
photo_camera: {
|
|
1730
|
-
300: {
|
|
1731
|
-
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",
|
|
1732
|
-
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"
|
|
1733
|
-
},
|
|
1734
|
-
400: {
|
|
1735
|
-
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",
|
|
1736
|
-
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"
|
|
1737
|
-
}
|
|
1738
|
-
},
|
|
1739
|
-
photo_library: {
|
|
1740
|
-
300: {
|
|
1741
|
-
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",
|
|
1742
|
-
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"
|
|
1743
|
-
},
|
|
1744
|
-
400: {
|
|
1745
|
-
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",
|
|
1746
|
-
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"
|
|
1747
|
-
}
|
|
1748
|
-
},
|
|
1749
|
-
play_arrow: {
|
|
1750
|
-
300: {
|
|
1751
|
-
noFill: "M340-238.39v-487.68l383.07 243.84L340-238.39Zm45.39-243.84Zm0 161 253.99-161-253.99-161v322Z",
|
|
1752
|
-
fill: "M340-238.39v-487.68l383.07 243.84L340-238.39Z"
|
|
1753
|
-
},
|
|
1754
|
-
400: {
|
|
1755
|
-
noFill: "M320-203v-560l440 280-440 280Zm60-280Zm0 171 269-171-269-171v342Z",
|
|
1756
|
-
fill: "M320-203v-560l440 280-440 280Z"
|
|
1757
|
-
}
|
|
1758
|
-
},
|
|
1759
|
-
replay_5: {
|
|
1760
|
-
300: {
|
|
1761
|
-
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",
|
|
1762
|
-
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"
|
|
1763
|
-
},
|
|
1764
|
-
400: {
|
|
1765
|
-
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",
|
|
1766
|
-
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"
|
|
1767
|
-
}
|
|
1768
|
-
},
|
|
1769
|
-
search: {
|
|
1770
|
-
300: {
|
|
1771
|
-
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",
|
|
1772
|
-
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"
|
|
1773
|
-
},
|
|
1774
|
-
400: {
|
|
1775
|
-
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",
|
|
1776
|
-
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"
|
|
1777
|
-
}
|
|
1778
|
-
},
|
|
1779
|
-
settings: {
|
|
1780
|
-
300: {
|
|
1781
|
-
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",
|
|
1782
|
-
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"
|
|
1783
|
-
},
|
|
1784
|
-
400: {
|
|
1785
|
-
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",
|
|
1786
|
-
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"
|
|
1787
|
-
}
|
|
1788
|
-
},
|
|
1789
|
-
share: {
|
|
1790
|
-
300: {
|
|
1791
|
-
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",
|
|
1792
|
-
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"
|
|
1793
|
-
},
|
|
1794
|
-
400: {
|
|
1795
|
-
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",
|
|
1796
|
-
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"
|
|
1797
|
-
}
|
|
1798
|
-
},
|
|
1799
|
-
speed_1_2x: {
|
|
1800
|
-
300: {
|
|
1801
|
-
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",
|
|
1802
|
-
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"
|
|
1803
|
-
},
|
|
1804
|
-
400: {
|
|
1805
|
-
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",
|
|
1806
|
-
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"
|
|
1807
|
-
}
|
|
1808
|
-
},
|
|
1809
|
-
speed_1_5x: {
|
|
1810
|
-
300: {
|
|
1811
|
-
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",
|
|
1812
|
-
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"
|
|
1813
|
-
},
|
|
1814
|
-
400: {
|
|
1815
|
-
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",
|
|
1816
|
-
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"
|
|
1817
|
-
}
|
|
1818
|
-
},
|
|
1819
|
-
speed_1_7x: {
|
|
1820
|
-
300: {
|
|
1821
|
-
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",
|
|
1822
|
-
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"
|
|
1823
|
-
},
|
|
1824
|
-
400: {
|
|
1825
|
-
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",
|
|
1826
|
-
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"
|
|
1827
|
-
}
|
|
1828
|
-
},
|
|
1829
|
-
speed_1x: {
|
|
1830
|
-
300: {
|
|
1831
|
-
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",
|
|
1832
|
-
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"
|
|
1833
|
-
},
|
|
1834
|
-
400: {
|
|
1835
|
-
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",
|
|
1836
|
-
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"
|
|
1837
|
-
}
|
|
1838
|
-
},
|
|
1839
|
-
speed_2x: {
|
|
1840
|
-
300: {
|
|
1841
|
-
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",
|
|
1842
|
-
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"
|
|
1843
|
-
},
|
|
1844
|
-
400: {
|
|
1845
|
-
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",
|
|
1846
|
-
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"
|
|
1847
|
-
}
|
|
1848
|
-
},
|
|
1849
|
-
stop: {
|
|
1850
|
-
300: {
|
|
1851
|
-
noFill: "M305.39-654.61v349.22-349.22ZM260-260v-440h440v440H260Zm45.39-45.39h349.22v-349.22H305.39v349.22Z",
|
|
1852
|
-
fill: "M260-260v-440h440v440H260Z"
|
|
1853
|
-
},
|
|
1854
|
-
400: {
|
|
1855
|
-
noFill: "M300-660v360-360Zm-60 420v-480h480v480H240Zm60-60h360v-360H300v360Z",
|
|
1856
|
-
fill: "M240-240v-480h480v480H240Z"
|
|
2130
|
+
variant = "button",
|
|
2131
|
+
previewSize = 160,
|
|
2132
|
+
className,
|
|
2133
|
+
disabled,
|
|
2134
|
+
accept,
|
|
2135
|
+
onChange,
|
|
2136
|
+
...props
|
|
2137
|
+
}) => {
|
|
2138
|
+
const inputId = React16.useId();
|
|
2139
|
+
const helperId = React16.useId();
|
|
2140
|
+
const inputRef = React16.useRef(null);
|
|
2141
|
+
const [previewUrls, setPreviewUrls] = React16.useState([]);
|
|
2142
|
+
const isPreviewVariant = variant === "preview";
|
|
2143
|
+
const showPreview = isPreviewVariant || preview;
|
|
2144
|
+
const handleChange = (e) => {
|
|
2145
|
+
const files = e.currentTarget.files;
|
|
2146
|
+
onFiles?.(files);
|
|
2147
|
+
onChange?.(e);
|
|
2148
|
+
if (showPreview && files) {
|
|
2149
|
+
for (const url of previewUrls) {
|
|
2150
|
+
URL.revokeObjectURL(url);
|
|
2151
|
+
}
|
|
2152
|
+
const urls = [];
|
|
2153
|
+
const limit = isPreviewVariant ? Math.min(1, files.length) : files.length;
|
|
2154
|
+
for (let i = 0; i < limit; i++) {
|
|
2155
|
+
if (files[i].type.startsWith("image/")) {
|
|
2156
|
+
urls.push(URL.createObjectURL(files[i]));
|
|
2157
|
+
}
|
|
2158
|
+
}
|
|
2159
|
+
setPreviewUrls(urls);
|
|
2160
|
+
} else {
|
|
2161
|
+
for (const url of previewUrls) {
|
|
2162
|
+
URL.revokeObjectURL(url);
|
|
2163
|
+
}
|
|
2164
|
+
setPreviewUrls([]);
|
|
1857
2165
|
}
|
|
1858
|
-
}
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
400: {
|
|
1865
|
-
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",
|
|
1866
|
-
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"
|
|
2166
|
+
};
|
|
2167
|
+
const handleRemove = (e) => {
|
|
2168
|
+
e.preventDefault();
|
|
2169
|
+
e.stopPropagation();
|
|
2170
|
+
for (const url of previewUrls) {
|
|
2171
|
+
URL.revokeObjectURL(url);
|
|
1867
2172
|
}
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
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",
|
|
1872
|
-
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"
|
|
1873
|
-
},
|
|
1874
|
-
400: {
|
|
1875
|
-
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",
|
|
1876
|
-
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"
|
|
2173
|
+
setPreviewUrls([]);
|
|
2174
|
+
if (inputRef.current) {
|
|
2175
|
+
inputRef.current.value = "";
|
|
1877
2176
|
}
|
|
1878
|
-
|
|
2177
|
+
onFiles?.(null);
|
|
2178
|
+
};
|
|
2179
|
+
React16.useEffect(() => {
|
|
2180
|
+
return () => {
|
|
2181
|
+
for (const url of previewUrls) {
|
|
2182
|
+
URL.revokeObjectURL(url);
|
|
2183
|
+
}
|
|
2184
|
+
};
|
|
2185
|
+
}, [previewUrls]);
|
|
2186
|
+
const hasImage = previewUrls.length > 0;
|
|
2187
|
+
const rootClassName = cn(
|
|
2188
|
+
"file_input",
|
|
2189
|
+
`file_input_variant_${variant}`,
|
|
2190
|
+
isPreviewVariant && hasImage && "file_input_variant_preview_filled",
|
|
2191
|
+
disabled && "file_input_disabled",
|
|
2192
|
+
className
|
|
2193
|
+
);
|
|
2194
|
+
return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
|
|
2195
|
+
/* @__PURE__ */ jsx(
|
|
2196
|
+
"input",
|
|
2197
|
+
{
|
|
2198
|
+
...props,
|
|
2199
|
+
ref: inputRef,
|
|
2200
|
+
id: inputId,
|
|
2201
|
+
type: "file",
|
|
2202
|
+
className: "file_input_control",
|
|
2203
|
+
disabled,
|
|
2204
|
+
accept: isPreviewVariant ? accept ?? "image/*" : accept,
|
|
2205
|
+
"aria-describedby": supportingText ? helperId : void 0,
|
|
2206
|
+
onChange: handleChange
|
|
2207
|
+
}
|
|
2208
|
+
),
|
|
2209
|
+
isPreviewVariant ? /* @__PURE__ */ jsx(
|
|
2210
|
+
"label",
|
|
2211
|
+
{
|
|
2212
|
+
htmlFor: inputId,
|
|
2213
|
+
className: "file_input_label",
|
|
2214
|
+
style: { width: previewSize, height: previewSize },
|
|
2215
|
+
children: hasImage ? (
|
|
2216
|
+
// biome-ignore lint/performance/noImgElement: framework-agnostic DS — host app should swap with next/image if needed
|
|
2217
|
+
/* @__PURE__ */ jsx(
|
|
2218
|
+
"img",
|
|
2219
|
+
{
|
|
2220
|
+
src: previewUrls[0],
|
|
2221
|
+
alt: "",
|
|
2222
|
+
className: "file_input_preview_image"
|
|
2223
|
+
}
|
|
2224
|
+
)
|
|
2225
|
+
) : /* @__PURE__ */ jsxs("span", { className: "file_input_preview_empty", children: [
|
|
2226
|
+
/* @__PURE__ */ jsx(Image, { size: 32, "aria-hidden": "true" }),
|
|
2227
|
+
/* @__PURE__ */ jsx("span", { className: "file_input_preview_empty_text", children: label })
|
|
2228
|
+
] })
|
|
2229
|
+
}
|
|
2230
|
+
) : /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "file_input_label", children: label }),
|
|
2231
|
+
isPreviewVariant && hasImage && !disabled && /* @__PURE__ */ jsx(
|
|
2232
|
+
"button",
|
|
2233
|
+
{
|
|
2234
|
+
type: "button",
|
|
2235
|
+
className: "file_input_preview_remove",
|
|
2236
|
+
onClick: handleRemove,
|
|
2237
|
+
"aria-label": "\uC774\uBBF8\uC9C0 \uC81C\uAC70",
|
|
2238
|
+
children: /* @__PURE__ */ jsx(X, { size: 14, "aria-hidden": "true" })
|
|
2239
|
+
}
|
|
2240
|
+
),
|
|
2241
|
+
supportingText && /* @__PURE__ */ jsx("span", { id: helperId, className: "file_input_helper", children: supportingText }),
|
|
2242
|
+
!isPreviewVariant && previewUrls.length > 0 && /* @__PURE__ */ jsx("div", { className: "file_input_preview", children: previewUrls.map((url) => (
|
|
2243
|
+
// biome-ignore lint/performance/noImgElement: framework-agnostic DS — host app should swap with next/image if needed
|
|
2244
|
+
/* @__PURE__ */ jsx(
|
|
2245
|
+
"img",
|
|
2246
|
+
{
|
|
2247
|
+
src: url,
|
|
2248
|
+
alt: "",
|
|
2249
|
+
className: "file_input_preview_img"
|
|
2250
|
+
},
|
|
2251
|
+
url
|
|
2252
|
+
)
|
|
2253
|
+
)) })
|
|
2254
|
+
] });
|
|
1879
2255
|
};
|
|
1880
|
-
var
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
2256
|
+
var Hero = ({
|
|
2257
|
+
height = "md",
|
|
2258
|
+
align = "left",
|
|
2259
|
+
backgroundImage,
|
|
2260
|
+
backgroundColor,
|
|
2261
|
+
overlay,
|
|
2262
|
+
title,
|
|
2263
|
+
subtitle,
|
|
2264
|
+
eyebrow,
|
|
2265
|
+
textColor = "auto",
|
|
2266
|
+
primaryAction,
|
|
2267
|
+
secondaryAction,
|
|
2268
|
+
children,
|
|
2269
|
+
className,
|
|
1885
2270
|
style,
|
|
1886
2271
|
...props
|
|
1887
2272
|
}) => {
|
|
1888
|
-
const
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
2273
|
+
const resolvedOverlay = overlay === true ? "dark" : overlay;
|
|
2274
|
+
const isDarkOverlay = resolvedOverlay === "dark" || resolvedOverlay === "navy";
|
|
2275
|
+
const resolvedTextColor = textColor === "auto" ? isDarkOverlay || backgroundImage && !resolvedOverlay ? "inverse" : "default" : textColor;
|
|
2276
|
+
const heroClassName = cn(
|
|
2277
|
+
"hero",
|
|
2278
|
+
`hero_height_${height}`,
|
|
2279
|
+
`hero_align_${align}`,
|
|
2280
|
+
resolvedOverlay && `hero_overlay_${resolvedOverlay}`,
|
|
2281
|
+
`hero_text_${resolvedTextColor}`,
|
|
2282
|
+
className
|
|
2283
|
+
);
|
|
2284
|
+
const inlineStyle = { ...style };
|
|
2285
|
+
if (backgroundImage) inlineStyle.backgroundImage = `url("${backgroundImage}")`;
|
|
2286
|
+
if (backgroundColor) inlineStyle.backgroundColor = backgroundColor;
|
|
2287
|
+
return /* @__PURE__ */ jsxs("section", { className: heroClassName, style: inlineStyle, ...props, children: [
|
|
2288
|
+
resolvedOverlay && /* @__PURE__ */ jsx("div", { className: "hero_overlay", "aria-hidden": "true" }),
|
|
2289
|
+
/* @__PURE__ */ jsxs("div", { className: "hero_content", children: [
|
|
2290
|
+
eyebrow && /* @__PURE__ */ jsx("div", { className: "hero_eyebrow", children: eyebrow }),
|
|
2291
|
+
title && /* @__PURE__ */ jsx("h1", { className: "hero_title", children: title }),
|
|
2292
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "hero_subtitle", children: subtitle }),
|
|
2293
|
+
(primaryAction || secondaryAction || children) && /* @__PURE__ */ jsxs("div", { className: "hero_actions", children: [
|
|
2294
|
+
primaryAction && /* @__PURE__ */ jsx(Button, { size: "lg", variant: "filled", onClick: primaryAction.onClick, children: primaryAction.label }),
|
|
2295
|
+
secondaryAction && /* @__PURE__ */ jsx(Button, { size: "lg", variant: "outline", onClick: secondaryAction.onClick, children: secondaryAction.label }),
|
|
2296
|
+
children
|
|
2297
|
+
] })
|
|
2298
|
+
] })
|
|
2299
|
+
] });
|
|
2300
|
+
};
|
|
2301
|
+
var Icon = ({ icon: IconComponent, ...props }) => {
|
|
2302
|
+
const hasLabel = !!props["aria-label"];
|
|
1894
2303
|
return /* @__PURE__ */ jsx(
|
|
1895
|
-
|
|
2304
|
+
IconComponent,
|
|
1896
2305
|
{
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
viewBox: "0 -960 960 960",
|
|
1901
|
-
fill: "currentColor",
|
|
1902
|
-
"aria-hidden": "true",
|
|
1903
|
-
focusable: "false",
|
|
1904
|
-
style: { display: "inline-block", flexShrink: 0, ...style },
|
|
1905
|
-
...props,
|
|
1906
|
-
children: /* @__PURE__ */ jsx("path", { d: pathData })
|
|
2306
|
+
"aria-hidden": hasLabel ? void 0 : true,
|
|
2307
|
+
focusable: hasLabel ? void 0 : false,
|
|
2308
|
+
...props
|
|
1907
2309
|
}
|
|
1908
2310
|
);
|
|
1909
2311
|
};
|
|
@@ -1929,8 +2331,10 @@ var LinearProgress = ({
|
|
|
1929
2331
|
className,
|
|
1930
2332
|
...props
|
|
1931
2333
|
}) => {
|
|
1932
|
-
const
|
|
1933
|
-
|
|
2334
|
+
const clampedStep = totalSteps > 0 ? Math.min(Math.max(currentStep, 0), totalSteps) : 0;
|
|
2335
|
+
const percent = totalSteps > 0 ? clampedStep / totalSteps * 100 : 0;
|
|
2336
|
+
const dotCount = totalSteps + 1;
|
|
2337
|
+
return /* @__PURE__ */ jsxs(
|
|
1934
2338
|
"div",
|
|
1935
2339
|
{
|
|
1936
2340
|
className: cn("linear_progress", className),
|
|
@@ -1939,7 +2343,21 @@ var LinearProgress = ({
|
|
|
1939
2343
|
"aria-valuemin": 0,
|
|
1940
2344
|
"aria-valuemax": totalSteps,
|
|
1941
2345
|
...props,
|
|
1942
|
-
children:
|
|
2346
|
+
children: [
|
|
2347
|
+
/* @__PURE__ */ jsx("div", { className: "linear_progress_track" }),
|
|
2348
|
+
/* @__PURE__ */ jsx("div", { className: "linear_progress_indicator", style: { width: `${percent}%` } }),
|
|
2349
|
+
Array.from({ length: dotCount }, (_, i) => /* @__PURE__ */ jsx(
|
|
2350
|
+
"span",
|
|
2351
|
+
{
|
|
2352
|
+
className: cn(
|
|
2353
|
+
"linear_progress_step",
|
|
2354
|
+
i <= clampedStep && "linear_progress_step_done"
|
|
2355
|
+
),
|
|
2356
|
+
"aria-hidden": "true"
|
|
2357
|
+
},
|
|
2358
|
+
i
|
|
2359
|
+
))
|
|
2360
|
+
]
|
|
1943
2361
|
}
|
|
1944
2362
|
);
|
|
1945
2363
|
};
|
|
@@ -1950,16 +2368,20 @@ var ListItem = ({
|
|
|
1950
2368
|
metadata,
|
|
1951
2369
|
leadingElement,
|
|
1952
2370
|
trailingElement,
|
|
1953
|
-
alignment
|
|
2371
|
+
alignment,
|
|
1954
2372
|
disabled,
|
|
2373
|
+
selected,
|
|
1955
2374
|
onClick,
|
|
1956
2375
|
className,
|
|
1957
2376
|
...props
|
|
1958
2377
|
}) => {
|
|
2378
|
+
const isOneLine = !overline && !supportingText && !metadata;
|
|
2379
|
+
const effectiveAlignment = alignment ?? (isOneLine ? "middle" : "top");
|
|
1959
2380
|
const rootClassName = cn(
|
|
1960
2381
|
"list_item",
|
|
1961
|
-
`list_item_align_${
|
|
2382
|
+
`list_item_align_${effectiveAlignment}`,
|
|
1962
2383
|
disabled && "list_item_disabled",
|
|
2384
|
+
selected && "list_item_selected",
|
|
1963
2385
|
onClick && "list_item_interactive",
|
|
1964
2386
|
className
|
|
1965
2387
|
);
|
|
@@ -1980,6 +2402,7 @@ var ListItem = ({
|
|
|
1980
2402
|
role: onClick ? "button" : void 0,
|
|
1981
2403
|
tabIndex: onClick && !disabled ? 0 : void 0,
|
|
1982
2404
|
"aria-disabled": disabled || void 0,
|
|
2405
|
+
"aria-selected": selected || void 0,
|
|
1983
2406
|
...props,
|
|
1984
2407
|
children: /* @__PURE__ */ jsxs("div", { className: "list_item_state_layer", children: [
|
|
1985
2408
|
leadingElement && /* @__PURE__ */ jsx("div", { className: "list_item_leading", children: leadingElement }),
|
|
@@ -1995,29 +2418,89 @@ var ListItem = ({
|
|
|
1995
2418
|
)
|
|
1996
2419
|
);
|
|
1997
2420
|
};
|
|
2421
|
+
var MediaCard = ({
|
|
2422
|
+
image,
|
|
2423
|
+
imagePosition = "top",
|
|
2424
|
+
aspectRatio,
|
|
2425
|
+
heading,
|
|
2426
|
+
headingAs: HeadingTag = "h3",
|
|
2427
|
+
eyebrow,
|
|
2428
|
+
shadow = "sm",
|
|
2429
|
+
bordered = false,
|
|
2430
|
+
clickable = false,
|
|
2431
|
+
meta,
|
|
2432
|
+
children,
|
|
2433
|
+
className,
|
|
2434
|
+
...props
|
|
2435
|
+
}) => {
|
|
2436
|
+
const cardClassName = cn(
|
|
2437
|
+
"media_card",
|
|
2438
|
+
`media_card_image_${imagePosition}`,
|
|
2439
|
+
`media_card_shadow_${shadow}`,
|
|
2440
|
+
bordered && "media_card_bordered",
|
|
2441
|
+
clickable && "media_card_clickable",
|
|
2442
|
+
className
|
|
2443
|
+
);
|
|
2444
|
+
const isOverlay = imagePosition === "overlay";
|
|
2445
|
+
const cardStyle = isOverlay && aspectRatio ? { aspectRatio } : void 0;
|
|
2446
|
+
const wrapStyle = !isOverlay && aspectRatio ? { aspectRatio } : void 0;
|
|
2447
|
+
return /* @__PURE__ */ jsxs("div", { className: cardClassName, style: cardStyle, ...props, children: [
|
|
2448
|
+
/* @__PURE__ */ jsxs("div", { className: "media_card_image_wrap", style: wrapStyle, children: [
|
|
2449
|
+
/* @__PURE__ */ jsx("img", { className: "media_card_image", src: image.src, alt: image.alt, loading: "lazy" }),
|
|
2450
|
+
isOverlay && /* @__PURE__ */ jsx("div", { className: "media_card_overlay", "aria-hidden": "true" })
|
|
2451
|
+
] }),
|
|
2452
|
+
/* @__PURE__ */ jsxs("div", { className: "media_card_body", children: [
|
|
2453
|
+
eyebrow && /* @__PURE__ */ jsx("div", { className: "media_card_eyebrow", children: eyebrow }),
|
|
2454
|
+
heading && /* @__PURE__ */ jsx(HeadingTag, { className: "media_card_heading", children: heading }),
|
|
2455
|
+
children && /* @__PURE__ */ jsx("div", { className: "media_card_content", children }),
|
|
2456
|
+
meta && /* @__PURE__ */ jsx("div", { className: "media_card_meta", children: meta })
|
|
2457
|
+
] })
|
|
2458
|
+
] });
|
|
2459
|
+
};
|
|
1998
2460
|
var Modal = ({
|
|
1999
2461
|
open,
|
|
2000
2462
|
onClose,
|
|
2001
2463
|
closeOnOverlay = true,
|
|
2002
|
-
width =
|
|
2464
|
+
width = 480,
|
|
2003
2465
|
title,
|
|
2466
|
+
description,
|
|
2467
|
+
footer,
|
|
2468
|
+
footerAlign = "end",
|
|
2469
|
+
showCloseIcon = true,
|
|
2470
|
+
closeLabel = "\uB2EB\uAE30",
|
|
2004
2471
|
children,
|
|
2005
2472
|
className,
|
|
2006
2473
|
ariaLabel,
|
|
2007
2474
|
...props
|
|
2008
2475
|
}) => {
|
|
2009
|
-
const panelRef =
|
|
2010
|
-
const titleId =
|
|
2476
|
+
const panelRef = React16.useRef(null);
|
|
2477
|
+
const titleId = React16.useId();
|
|
2478
|
+
const [shouldRender, setShouldRender] = React16.useState(open);
|
|
2011
2479
|
useFocusTrap(panelRef, open);
|
|
2012
|
-
|
|
2480
|
+
React16.useEffect(() => {
|
|
2481
|
+
if (open) setShouldRender(true);
|
|
2482
|
+
}, [open]);
|
|
2483
|
+
const overlayStyle = useSpring({
|
|
2484
|
+
opacity: open ? 1 : 0,
|
|
2485
|
+
config: { tension: 280, friction: 28, clamp: !open },
|
|
2486
|
+
onRest: (result) => {
|
|
2487
|
+
if (!open && result.finished) setShouldRender(false);
|
|
2488
|
+
}
|
|
2489
|
+
});
|
|
2490
|
+
const panelStyle = useSpring({
|
|
2491
|
+
opacity: open ? 1 : 0,
|
|
2492
|
+
transform: open ? "scale(1) translateY(0px)" : "scale(0.96) translateY(-4px)",
|
|
2493
|
+
config: { tension: 280, friction: 28, clamp: !open }
|
|
2494
|
+
});
|
|
2495
|
+
const handleEscape = React16.useEffectEvent((e) => {
|
|
2013
2496
|
if (e.key === "Escape") onClose?.();
|
|
2014
2497
|
});
|
|
2015
|
-
|
|
2498
|
+
React16.useEffect(() => {
|
|
2016
2499
|
if (!open) return;
|
|
2017
2500
|
document.addEventListener("keydown", handleEscape);
|
|
2018
2501
|
return () => document.removeEventListener("keydown", handleEscape);
|
|
2019
2502
|
}, [open]);
|
|
2020
|
-
|
|
2503
|
+
React16.useEffect(() => {
|
|
2021
2504
|
if (!open) return;
|
|
2022
2505
|
const body = document.body;
|
|
2023
2506
|
const openModals = parseInt(body.dataset.openModals || "0", 10);
|
|
@@ -2038,13 +2521,13 @@ var Modal = ({
|
|
|
2038
2521
|
}
|
|
2039
2522
|
};
|
|
2040
2523
|
}, [open]);
|
|
2041
|
-
if (!
|
|
2042
|
-
const panelClassName = cn("modal_panel", className);
|
|
2524
|
+
if (!shouldRender) return null;
|
|
2043
2525
|
const hasTitle = !!title;
|
|
2044
2526
|
return /* @__PURE__ */ jsx(
|
|
2045
|
-
|
|
2527
|
+
animated.div,
|
|
2046
2528
|
{
|
|
2047
2529
|
className: "modal",
|
|
2530
|
+
style: overlayStyle,
|
|
2048
2531
|
role: "dialog",
|
|
2049
2532
|
"aria-modal": "true",
|
|
2050
2533
|
"aria-labelledby": hasTitle && !ariaLabel ? titleId : void 0,
|
|
@@ -2054,11 +2537,11 @@ var Modal = ({
|
|
|
2054
2537
|
if (e.key === "Escape") onClose?.();
|
|
2055
2538
|
},
|
|
2056
2539
|
children: /* @__PURE__ */ jsxs(
|
|
2057
|
-
|
|
2540
|
+
animated.div,
|
|
2058
2541
|
{
|
|
2059
2542
|
ref: panelRef,
|
|
2060
|
-
className:
|
|
2061
|
-
style: { width },
|
|
2543
|
+
className: cn("modal_panel", className),
|
|
2544
|
+
style: { ...panelStyle, width },
|
|
2062
2545
|
role: "document",
|
|
2063
2546
|
onClick: (e) => e.stopPropagation(),
|
|
2064
2547
|
onKeyDown: (e) => {
|
|
@@ -2066,8 +2549,20 @@ var Modal = ({
|
|
|
2066
2549
|
},
|
|
2067
2550
|
...props,
|
|
2068
2551
|
children: [
|
|
2069
|
-
|
|
2070
|
-
|
|
2552
|
+
showCloseIcon && onClose && /* @__PURE__ */ jsx(
|
|
2553
|
+
"button",
|
|
2554
|
+
{
|
|
2555
|
+
type: "button",
|
|
2556
|
+
className: "modal_close",
|
|
2557
|
+
onClick: onClose,
|
|
2558
|
+
"aria-label": closeLabel,
|
|
2559
|
+
children: /* @__PURE__ */ jsx(X, { size: 18, "aria-hidden": "true" })
|
|
2560
|
+
}
|
|
2561
|
+
),
|
|
2562
|
+
title && /* @__PURE__ */ jsx("h2", { id: titleId, className: "modal_title", children: title }),
|
|
2563
|
+
description && /* @__PURE__ */ jsx("div", { className: "modal_description", children: description }),
|
|
2564
|
+
children && /* @__PURE__ */ jsx("div", { className: "modal_body", children }),
|
|
2565
|
+
footer && /* @__PURE__ */ jsx("div", { className: cn("modal_footer", `modal_footer_${footerAlign}`), children: footer })
|
|
2071
2566
|
]
|
|
2072
2567
|
}
|
|
2073
2568
|
)
|
|
@@ -2085,11 +2580,12 @@ var OtpInput = ({
|
|
|
2085
2580
|
ariaLabel = "OTP \uC785\uB825",
|
|
2086
2581
|
className
|
|
2087
2582
|
}) => {
|
|
2088
|
-
const inputsRef =
|
|
2089
|
-
|
|
2583
|
+
const inputsRef = React16.useRef([]);
|
|
2584
|
+
const isTypingRef = React16.useRef(false);
|
|
2585
|
+
React16.useEffect(() => {
|
|
2090
2586
|
if (autoFocus) inputsRef.current[0]?.focus();
|
|
2091
2587
|
}, [autoFocus]);
|
|
2092
|
-
const digits =
|
|
2588
|
+
const digits = React16.useMemo(() => {
|
|
2093
2589
|
const chars = value.split("").slice(0, length);
|
|
2094
2590
|
while (chars.length < length) chars.push("");
|
|
2095
2591
|
return chars;
|
|
@@ -2107,10 +2603,15 @@ var OtpInput = ({
|
|
|
2107
2603
|
newDigits[index] = nextDigit;
|
|
2108
2604
|
updateValue(newDigits);
|
|
2109
2605
|
if (nextDigit && index < length - 1) {
|
|
2606
|
+
isTypingRef.current = true;
|
|
2110
2607
|
focusInput(index + 1);
|
|
2608
|
+
setTimeout(() => {
|
|
2609
|
+
isTypingRef.current = false;
|
|
2610
|
+
}, 50);
|
|
2111
2611
|
}
|
|
2112
2612
|
};
|
|
2113
2613
|
const handleFocus = (index) => {
|
|
2614
|
+
if (isTypingRef.current) return;
|
|
2114
2615
|
const firstEmpty = digits.indexOf("");
|
|
2115
2616
|
if (firstEmpty !== -1 && firstEmpty < index) {
|
|
2116
2617
|
focusInput(firstEmpty);
|
|
@@ -2223,7 +2724,7 @@ var Pagination = ({
|
|
|
2223
2724
|
}) => {
|
|
2224
2725
|
const prevDisabled = page <= 1;
|
|
2225
2726
|
const nextDisabled = page >= totalPages;
|
|
2226
|
-
const items =
|
|
2727
|
+
const items = React16.useMemo(() => getPaginationItems(page, totalPages), [page, totalPages]);
|
|
2227
2728
|
return /* @__PURE__ */ jsxs("nav", { className: "pagination", "aria-label": "Pagination", children: [
|
|
2228
2729
|
/* @__PURE__ */ jsx(
|
|
2229
2730
|
"button",
|
|
@@ -2282,6 +2783,33 @@ var Radio = ({ label, size = "md", className, ref, ...props }) => {
|
|
|
2282
2783
|
] });
|
|
2283
2784
|
};
|
|
2284
2785
|
Radio.displayName = "Radio";
|
|
2786
|
+
var Skeleton = ({
|
|
2787
|
+
variant = "text",
|
|
2788
|
+
width,
|
|
2789
|
+
height,
|
|
2790
|
+
radius: radius2,
|
|
2791
|
+
className,
|
|
2792
|
+
style,
|
|
2793
|
+
...props
|
|
2794
|
+
}) => {
|
|
2795
|
+
const skeletonClassName = cn(
|
|
2796
|
+
"skeleton",
|
|
2797
|
+
`skeleton_variant_${variant}`,
|
|
2798
|
+
radius2 && `skeleton_radius_${radius2}`,
|
|
2799
|
+
className
|
|
2800
|
+
);
|
|
2801
|
+
const inlineStyle = { ...style };
|
|
2802
|
+
if (width !== void 0) {
|
|
2803
|
+
inlineStyle.width = typeof width === "number" ? `${width}px` : width;
|
|
2804
|
+
}
|
|
2805
|
+
if (height !== void 0) {
|
|
2806
|
+
inlineStyle.height = typeof height === "number" ? `${height}px` : height;
|
|
2807
|
+
}
|
|
2808
|
+
if (variant === "avatar" && width !== void 0 && height === void 0) {
|
|
2809
|
+
inlineStyle.height = inlineStyle.width;
|
|
2810
|
+
}
|
|
2811
|
+
return /* @__PURE__ */ jsx("div", { className: skeletonClassName, style: inlineStyle, "aria-hidden": "true", ...props });
|
|
2812
|
+
};
|
|
2285
2813
|
var Spinner = ({ size = 24, ariaLabel = "Loading" }) => {
|
|
2286
2814
|
return /* @__PURE__ */ jsx(
|
|
2287
2815
|
"span",
|
|
@@ -2289,11 +2817,165 @@ var Spinner = ({ size = 24, ariaLabel = "Loading" }) => {
|
|
|
2289
2817
|
className: "spinner",
|
|
2290
2818
|
style: { width: size, height: size },
|
|
2291
2819
|
role: "status",
|
|
2292
|
-
"aria-label": ariaLabel
|
|
2820
|
+
"aria-label": ariaLabel,
|
|
2821
|
+
children: Array.from({ length: 12 }, (_, i) => (
|
|
2822
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: static 12 bars, index is stable key
|
|
2823
|
+
/* @__PURE__ */ jsx("span", { className: "spinner_bar", "aria-hidden": "true" }, i)
|
|
2824
|
+
))
|
|
2825
|
+
}
|
|
2826
|
+
);
|
|
2827
|
+
};
|
|
2828
|
+
var Table = ({
|
|
2829
|
+
columns,
|
|
2830
|
+
data,
|
|
2831
|
+
keyExtractor,
|
|
2832
|
+
emptyMessage = "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4",
|
|
2833
|
+
isLoading = false,
|
|
2834
|
+
skeletonRows = 5,
|
|
2835
|
+
size = "md",
|
|
2836
|
+
hoverable = true,
|
|
2837
|
+
stickyHeader = false,
|
|
2838
|
+
ariaLabel,
|
|
2839
|
+
className,
|
|
2840
|
+
onRowClick
|
|
2841
|
+
}) => {
|
|
2842
|
+
const wrapperClassName = cn(
|
|
2843
|
+
"table_wrapper",
|
|
2844
|
+
`table_size_${size}`,
|
|
2845
|
+
stickyHeader && "table_sticky_header",
|
|
2846
|
+
className
|
|
2847
|
+
);
|
|
2848
|
+
const isEmpty = !isLoading && data.length === 0;
|
|
2849
|
+
return /* @__PURE__ */ jsxs("div", { className: wrapperClassName, children: [
|
|
2850
|
+
/* @__PURE__ */ jsxs("table", { className: "table", "aria-label": ariaLabel, children: [
|
|
2851
|
+
/* @__PURE__ */ jsx("thead", { className: "table_thead", children: /* @__PURE__ */ jsx("tr", { children: columns.map((col) => /* @__PURE__ */ jsx(
|
|
2852
|
+
"th",
|
|
2853
|
+
{
|
|
2854
|
+
scope: "col",
|
|
2855
|
+
className: cn("table_th", col.align && `table_align_${col.align}`),
|
|
2856
|
+
style: { width: col.width },
|
|
2857
|
+
children: col.header
|
|
2858
|
+
},
|
|
2859
|
+
col.key
|
|
2860
|
+
)) }) }),
|
|
2861
|
+
/* @__PURE__ */ jsx("tbody", { className: "table_tbody", children: isLoading ? Array.from({ length: skeletonRows }).map((_, rowIndex) => (
|
|
2862
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: skeleton rows have no stable identity
|
|
2863
|
+
/* @__PURE__ */ jsx("tr", { className: "table_row table_row_skeleton", children: columns.map((col) => /* @__PURE__ */ jsx(
|
|
2864
|
+
"td",
|
|
2865
|
+
{
|
|
2866
|
+
className: cn("table_td", col.align && `table_align_${col.align}`),
|
|
2867
|
+
style: { width: col.width },
|
|
2868
|
+
children: /* @__PURE__ */ jsx(Skeleton, { variant: "text" })
|
|
2869
|
+
},
|
|
2870
|
+
col.key
|
|
2871
|
+
)) }, rowIndex)
|
|
2872
|
+
)) : data.map((item, rowIndex) => /* @__PURE__ */ jsx(
|
|
2873
|
+
"tr",
|
|
2874
|
+
{
|
|
2875
|
+
className: cn(
|
|
2876
|
+
"table_row",
|
|
2877
|
+
hoverable && "table_row_hoverable",
|
|
2878
|
+
onRowClick && "table_row_clickable"
|
|
2879
|
+
),
|
|
2880
|
+
role: onRowClick ? "button" : void 0,
|
|
2881
|
+
tabIndex: onRowClick ? 0 : void 0,
|
|
2882
|
+
onClick: onRowClick ? () => onRowClick(item, rowIndex) : void 0,
|
|
2883
|
+
onKeyDown: onRowClick ? (e) => {
|
|
2884
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
2885
|
+
e.preventDefault();
|
|
2886
|
+
onRowClick(item, rowIndex);
|
|
2887
|
+
}
|
|
2888
|
+
} : void 0,
|
|
2889
|
+
children: columns.map((col) => /* @__PURE__ */ jsx(
|
|
2890
|
+
"td",
|
|
2891
|
+
{
|
|
2892
|
+
className: cn("table_td", col.align && `table_align_${col.align}`),
|
|
2893
|
+
style: { width: col.width },
|
|
2894
|
+
children: (() => {
|
|
2895
|
+
if (col.render) return col.render(item, rowIndex);
|
|
2896
|
+
const value = item[col.key];
|
|
2897
|
+
return value === null || value === void 0 || value === "" ? "-" : String(value);
|
|
2898
|
+
})()
|
|
2899
|
+
},
|
|
2900
|
+
col.key
|
|
2901
|
+
))
|
|
2902
|
+
},
|
|
2903
|
+
keyExtractor(item, rowIndex)
|
|
2904
|
+
)) })
|
|
2905
|
+
] }),
|
|
2906
|
+
isEmpty && /* @__PURE__ */ jsx("div", { className: "table_empty", role: "status", children: emptyMessage })
|
|
2907
|
+
] });
|
|
2908
|
+
};
|
|
2909
|
+
var ThemeContext = React16.createContext(null);
|
|
2910
|
+
var useTheme = () => {
|
|
2911
|
+
const ctx = React16.useContext(ThemeContext);
|
|
2912
|
+
if (!ctx) {
|
|
2913
|
+
throw new Error(
|
|
2914
|
+
'[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>'
|
|
2915
|
+
);
|
|
2916
|
+
}
|
|
2917
|
+
return ctx;
|
|
2918
|
+
};
|
|
2919
|
+
var isClient = typeof window !== "undefined";
|
|
2920
|
+
function readStored(key) {
|
|
2921
|
+
if (!isClient || !key) return null;
|
|
2922
|
+
try {
|
|
2923
|
+
const value = window.localStorage.getItem(key);
|
|
2924
|
+
if (value === "light" || value === "dark" || value === "system") return value;
|
|
2925
|
+
} catch {
|
|
2926
|
+
}
|
|
2927
|
+
return null;
|
|
2928
|
+
}
|
|
2929
|
+
var ThemeProvider = ({
|
|
2930
|
+
defaultMode = "system",
|
|
2931
|
+
storageKey = "bt-theme",
|
|
2932
|
+
targetSelector,
|
|
2933
|
+
children
|
|
2934
|
+
}) => {
|
|
2935
|
+
const [mode, setModeState] = React16.useState(() => {
|
|
2936
|
+
return readStored(storageKey) ?? defaultMode;
|
|
2937
|
+
});
|
|
2938
|
+
const [systemDark, setSystemDark] = React16.useState(() => {
|
|
2939
|
+
if (!isClient) return false;
|
|
2940
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
2941
|
+
});
|
|
2942
|
+
React16.useEffect(() => {
|
|
2943
|
+
if (!isClient) return;
|
|
2944
|
+
const mq = window.matchMedia("(prefers-color-scheme: dark)");
|
|
2945
|
+
const handler = (e) => setSystemDark(e.matches);
|
|
2946
|
+
mq.addEventListener("change", handler);
|
|
2947
|
+
return () => mq.removeEventListener("change", handler);
|
|
2948
|
+
}, []);
|
|
2949
|
+
const resolved = mode === "system" ? systemDark ? "dark" : "light" : mode;
|
|
2950
|
+
React16.useEffect(() => {
|
|
2951
|
+
if (!isClient) return;
|
|
2952
|
+
const target = targetSelector ? document.querySelector(targetSelector) : document.documentElement;
|
|
2953
|
+
if (!target) return;
|
|
2954
|
+
if (mode === "system") {
|
|
2955
|
+
target.removeAttribute("data-theme");
|
|
2956
|
+
} else {
|
|
2957
|
+
target.setAttribute("data-theme", mode);
|
|
2293
2958
|
}
|
|
2959
|
+
}, [mode, targetSelector]);
|
|
2960
|
+
const setMode = React16.useCallback(
|
|
2961
|
+
(next) => {
|
|
2962
|
+
setModeState(next);
|
|
2963
|
+
if (storageKey && isClient) {
|
|
2964
|
+
try {
|
|
2965
|
+
window.localStorage.setItem(storageKey, next);
|
|
2966
|
+
} catch {
|
|
2967
|
+
}
|
|
2968
|
+
}
|
|
2969
|
+
},
|
|
2970
|
+
[storageKey]
|
|
2294
2971
|
);
|
|
2972
|
+
const value = React16.useMemo(
|
|
2973
|
+
() => ({ mode, resolved, setMode }),
|
|
2974
|
+
[mode, resolved, setMode]
|
|
2975
|
+
);
|
|
2976
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value, children });
|
|
2295
2977
|
};
|
|
2296
|
-
var ClearIcon = () => /* @__PURE__ */ jsx(
|
|
2978
|
+
var ClearIcon = () => /* @__PURE__ */ jsx(X, { size: 20, "aria-hidden": "true" });
|
|
2297
2979
|
var TextField = ({
|
|
2298
2980
|
id,
|
|
2299
2981
|
label,
|
|
@@ -2313,27 +2995,28 @@ var TextField = ({
|
|
|
2313
2995
|
ref,
|
|
2314
2996
|
...props
|
|
2315
2997
|
}) => {
|
|
2316
|
-
const generatedId =
|
|
2998
|
+
const generatedId = useId();
|
|
2317
2999
|
const inputId = id ?? generatedId;
|
|
2318
3000
|
const helperId = supportingText ? `${inputId}-help` : void 0;
|
|
2319
3001
|
const isControlled = value !== void 0;
|
|
2320
3002
|
const applyTransform = (nextValue) => transformValue ? transformValue(nextValue) : nextValue;
|
|
2321
|
-
const [innerValue, setInnerValue] =
|
|
3003
|
+
const [innerValue, setInnerValue] = useState(
|
|
2322
3004
|
() => applyTransform(value ?? defaultValue ?? "")
|
|
2323
3005
|
);
|
|
2324
|
-
const isComposingRef =
|
|
2325
|
-
|
|
3006
|
+
const isComposingRef = useRef(false);
|
|
3007
|
+
useEffect(() => {
|
|
2326
3008
|
if (!isControlled) return;
|
|
2327
3009
|
const nextValue = value ?? "";
|
|
2328
3010
|
setInnerValue(transformValue ? transformValue(nextValue) : nextValue);
|
|
2329
3011
|
}, [isControlled, value, transformValue]);
|
|
2330
|
-
const handleClear =
|
|
3012
|
+
const handleClear = useCallback(() => {
|
|
2331
3013
|
setInnerValue("");
|
|
2332
3014
|
onChangeAction?.("");
|
|
2333
3015
|
}, [onChangeAction]);
|
|
2334
3016
|
const rootClassName = cn(
|
|
2335
3017
|
"text_field",
|
|
2336
3018
|
size === "sm" && "text_field_size_sm",
|
|
3019
|
+
size === "lg" && "text_field_size_lg",
|
|
2337
3020
|
fullWidth && "text_field_full_width",
|
|
2338
3021
|
error && "text_field_error",
|
|
2339
3022
|
props.disabled && "text_field_disabled",
|
|
@@ -2341,60 +3024,58 @@ var TextField = ({
|
|
|
2341
3024
|
);
|
|
2342
3025
|
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;
|
|
2343
3026
|
return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
|
|
2344
|
-
/* @__PURE__ */
|
|
2345
|
-
|
|
2346
|
-
/* @__PURE__ */
|
|
2347
|
-
|
|
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
|
-
return;
|
|
2381
|
-
}
|
|
2382
|
-
const nextValue = applyTransform(rawValue);
|
|
2383
|
-
setInnerValue(nextValue);
|
|
2384
|
-
onChangeAction?.(nextValue);
|
|
3027
|
+
label && showLabel && /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "text_field_label", children: label }),
|
|
3028
|
+
/* @__PURE__ */ jsx("div", { className: "text_field_container", children: /* @__PURE__ */ jsxs("div", { className: "text_field_inner", children: [
|
|
3029
|
+
leadingIcon && /* @__PURE__ */ jsx("span", { className: "text_field_icon", "aria-hidden": "true", children: leadingIcon }),
|
|
3030
|
+
/* @__PURE__ */ jsx(
|
|
3031
|
+
"div",
|
|
3032
|
+
{
|
|
3033
|
+
className: cn(
|
|
3034
|
+
"text_field_input_wrap",
|
|
3035
|
+
resolvedTrailing && "text_field_input_wrap_no_pad_right"
|
|
3036
|
+
),
|
|
3037
|
+
children: /* @__PURE__ */ jsx(
|
|
3038
|
+
"input",
|
|
3039
|
+
{
|
|
3040
|
+
id: inputId,
|
|
3041
|
+
ref,
|
|
3042
|
+
className: "text_field_input",
|
|
3043
|
+
"aria-invalid": !!error,
|
|
3044
|
+
"aria-describedby": helperId,
|
|
3045
|
+
"aria-label": !showLabel ? label : void 0,
|
|
3046
|
+
...props,
|
|
3047
|
+
value: innerValue,
|
|
3048
|
+
onCompositionStart: () => {
|
|
3049
|
+
isComposingRef.current = true;
|
|
3050
|
+
},
|
|
3051
|
+
onCompositionEnd: (event) => {
|
|
3052
|
+
isComposingRef.current = false;
|
|
3053
|
+
const rawValue = event.currentTarget.value;
|
|
3054
|
+
const nextValue = applyTransform(rawValue);
|
|
3055
|
+
setInnerValue(nextValue);
|
|
3056
|
+
onChangeAction?.(nextValue);
|
|
3057
|
+
},
|
|
3058
|
+
onChange: (event) => {
|
|
3059
|
+
const rawValue = event.target.value;
|
|
3060
|
+
if (isComposingRef.current) {
|
|
3061
|
+
setInnerValue(rawValue);
|
|
3062
|
+
return;
|
|
2385
3063
|
}
|
|
3064
|
+
const nextValue = applyTransform(rawValue);
|
|
3065
|
+
setInnerValue(nextValue);
|
|
3066
|
+
onChangeAction?.(nextValue);
|
|
2386
3067
|
}
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
] }),
|
|
3068
|
+
}
|
|
3069
|
+
)
|
|
3070
|
+
}
|
|
3071
|
+
),
|
|
3072
|
+
resolvedTrailing
|
|
3073
|
+
] }) }),
|
|
2393
3074
|
supportingText && /* @__PURE__ */ jsx("div", { id: helperId, className: "text_field_helper", children: supportingText })
|
|
2394
3075
|
] });
|
|
2395
3076
|
};
|
|
2396
3077
|
TextField.displayName = "TextField";
|
|
2397
|
-
var ToastContext =
|
|
3078
|
+
var ToastContext = React16.createContext(null);
|
|
2398
3079
|
var VARIANT_ICONS = {
|
|
2399
3080
|
success: /* @__PURE__ */ jsx(CheckCircle2, { size: 18 }),
|
|
2400
3081
|
error: /* @__PURE__ */ jsx(XCircle, { size: 18 }),
|
|
@@ -2403,48 +3084,60 @@ var VARIANT_ICONS = {
|
|
|
2403
3084
|
default: /* @__PURE__ */ jsx(Bell, { size: 18 })
|
|
2404
3085
|
};
|
|
2405
3086
|
var ToastItemComponent = ({ item, onRemove, closeAriaLabel }) => {
|
|
2406
|
-
const [
|
|
2407
|
-
const closingRef =
|
|
2408
|
-
const
|
|
3087
|
+
const [visible, setVisible] = React16.useState(true);
|
|
3088
|
+
const closingRef = React16.useRef(false);
|
|
3089
|
+
const style = useSpringPresence({
|
|
3090
|
+
visible,
|
|
3091
|
+
from: "translateX(20px)",
|
|
3092
|
+
// 우측에서 슬라이드 인
|
|
3093
|
+
onExitComplete: () => onRemove(item.id)
|
|
3094
|
+
});
|
|
3095
|
+
const close = React16.useCallback(() => {
|
|
2409
3096
|
if (closingRef.current) return;
|
|
2410
3097
|
closingRef.current = true;
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
className:
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
3098
|
+
setVisible(false);
|
|
3099
|
+
}, []);
|
|
3100
|
+
return /* @__PURE__ */ jsxs(
|
|
3101
|
+
animated.div,
|
|
3102
|
+
{
|
|
3103
|
+
className: "toast_item",
|
|
3104
|
+
style,
|
|
3105
|
+
role: item.variant === "error" ? "alert" : "status",
|
|
3106
|
+
children: [
|
|
3107
|
+
/* @__PURE__ */ jsx("span", { className: `toast_icon toast_icon_${item.variant}`, "aria-hidden": "true", children: VARIANT_ICONS[item.variant] }),
|
|
3108
|
+
/* @__PURE__ */ jsx("span", { className: "toast_message", children: item.message }),
|
|
3109
|
+
/* @__PURE__ */ jsx("button", { type: "button", className: "toast_close", onClick: close, "aria-label": closeAriaLabel, children: /* @__PURE__ */ jsx(X, { size: 14 }) }),
|
|
3110
|
+
/* @__PURE__ */ jsx(
|
|
3111
|
+
"div",
|
|
3112
|
+
{
|
|
3113
|
+
className: `toast_progress toast_progress_${item.variant}`,
|
|
3114
|
+
style: { "--toast-duration": `${item.duration}ms` },
|
|
3115
|
+
onAnimationEnd: close,
|
|
3116
|
+
"aria-hidden": "true"
|
|
3117
|
+
}
|
|
3118
|
+
)
|
|
3119
|
+
]
|
|
3120
|
+
}
|
|
3121
|
+
);
|
|
2429
3122
|
};
|
|
2430
3123
|
var ToastProvider = ({
|
|
2431
3124
|
children,
|
|
2432
3125
|
maxCount = 5,
|
|
2433
3126
|
closeAriaLabel = "Close"
|
|
2434
3127
|
}) => {
|
|
2435
|
-
const [toasts, setToasts] =
|
|
2436
|
-
const [isMounted, setIsMounted] =
|
|
2437
|
-
|
|
3128
|
+
const [toasts, setToasts] = React16.useState([]);
|
|
3129
|
+
const [isMounted, setIsMounted] = React16.useState(false);
|
|
3130
|
+
React16.useEffect(() => {
|
|
2438
3131
|
setIsMounted(true);
|
|
2439
3132
|
}, []);
|
|
2440
|
-
const addToast =
|
|
3133
|
+
const addToast = React16.useCallback(
|
|
2441
3134
|
(message, variant, duration = 3e3) => {
|
|
2442
3135
|
const id = crypto.randomUUID();
|
|
2443
3136
|
setToasts((prev) => [{ id, message, variant, duration }, ...prev].slice(0, maxCount));
|
|
2444
3137
|
},
|
|
2445
3138
|
[maxCount]
|
|
2446
3139
|
);
|
|
2447
|
-
const removeToast =
|
|
3140
|
+
const removeToast = React16.useCallback((id) => {
|
|
2448
3141
|
setToasts((prev) => prev.filter((t) => t.id !== id));
|
|
2449
3142
|
}, []);
|
|
2450
3143
|
return /* @__PURE__ */ jsxs(ToastContext.Provider, { value: { addToast }, children: [
|
|
@@ -2477,7 +3170,9 @@ var ToastProvider = ({
|
|
|
2477
3170
|
var useToast = () => {
|
|
2478
3171
|
const ctx = useContext(ToastContext);
|
|
2479
3172
|
if (!ctx) {
|
|
2480
|
-
throw new Error(
|
|
3173
|
+
throw new Error(
|
|
3174
|
+
"[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>"
|
|
3175
|
+
);
|
|
2481
3176
|
}
|
|
2482
3177
|
return {
|
|
2483
3178
|
/** 성공 메시지를 표시한다 */
|
|
@@ -2504,7 +3199,7 @@ var Toggle = ({
|
|
|
2504
3199
|
...props
|
|
2505
3200
|
}) => {
|
|
2506
3201
|
const isControlled = checked !== void 0;
|
|
2507
|
-
const [innerChecked, setInnerChecked] =
|
|
3202
|
+
const [innerChecked, setInnerChecked] = React16.useState(!!defaultChecked);
|
|
2508
3203
|
const isOn = isControlled ? !!checked : innerChecked;
|
|
2509
3204
|
const handleToggle = () => {
|
|
2510
3205
|
if (disabled) return;
|
|
@@ -2567,5 +3262,103 @@ var TopLoading = ({
|
|
|
2567
3262
|
}
|
|
2568
3263
|
);
|
|
2569
3264
|
};
|
|
3265
|
+
var Container = ({
|
|
3266
|
+
size = "xl",
|
|
3267
|
+
center = true,
|
|
3268
|
+
as: Tag = "div",
|
|
3269
|
+
className,
|
|
3270
|
+
children,
|
|
3271
|
+
...props
|
|
3272
|
+
}) => {
|
|
3273
|
+
return /* @__PURE__ */ jsx(
|
|
3274
|
+
Tag,
|
|
3275
|
+
{
|
|
3276
|
+
className: cn("container", `container_size_${size}`, center && "container_center", className),
|
|
3277
|
+
...props,
|
|
3278
|
+
children
|
|
3279
|
+
}
|
|
3280
|
+
);
|
|
3281
|
+
};
|
|
3282
|
+
var Section = ({
|
|
3283
|
+
spacing: spacing2 = "md",
|
|
3284
|
+
bg = "default",
|
|
3285
|
+
as: Tag = "section",
|
|
3286
|
+
className,
|
|
3287
|
+
children,
|
|
3288
|
+
...props
|
|
3289
|
+
}) => {
|
|
3290
|
+
return /* @__PURE__ */ jsx(
|
|
3291
|
+
Tag,
|
|
3292
|
+
{
|
|
3293
|
+
className: cn(
|
|
3294
|
+
"section",
|
|
3295
|
+
`section_spacing_${spacing2}`,
|
|
3296
|
+
`section_bg_${bg}`,
|
|
3297
|
+
className
|
|
3298
|
+
),
|
|
3299
|
+
...props,
|
|
3300
|
+
children
|
|
3301
|
+
}
|
|
3302
|
+
);
|
|
3303
|
+
};
|
|
3304
|
+
var Stack = ({
|
|
3305
|
+
direction = "vertical",
|
|
3306
|
+
gap = 16,
|
|
3307
|
+
align,
|
|
3308
|
+
justify,
|
|
3309
|
+
wrap,
|
|
3310
|
+
as: Tag = "div",
|
|
3311
|
+
className,
|
|
3312
|
+
children,
|
|
3313
|
+
style,
|
|
3314
|
+
...props
|
|
3315
|
+
}) => {
|
|
3316
|
+
return /* @__PURE__ */ jsx(
|
|
3317
|
+
Tag,
|
|
3318
|
+
{
|
|
3319
|
+
className: cn(
|
|
3320
|
+
"stack",
|
|
3321
|
+
`stack_${direction}`,
|
|
3322
|
+
align && `stack_align_${align}`,
|
|
3323
|
+
justify && `stack_justify_${justify}`,
|
|
3324
|
+
wrap && `stack_wrap_${wrap.replace("-", "_")}`,
|
|
3325
|
+
className
|
|
3326
|
+
),
|
|
3327
|
+
style: { "--stack-gap": `${gap}px`, ...style },
|
|
3328
|
+
...props,
|
|
3329
|
+
children
|
|
3330
|
+
}
|
|
3331
|
+
);
|
|
3332
|
+
};
|
|
3333
|
+
var Grid = ({
|
|
3334
|
+
cols = 3,
|
|
3335
|
+
minColWidth = "280px",
|
|
3336
|
+
gap = 24,
|
|
3337
|
+
rowGap,
|
|
3338
|
+
colGap,
|
|
3339
|
+
singleColOnMobile = true,
|
|
3340
|
+
as: Tag = "div",
|
|
3341
|
+
className,
|
|
3342
|
+
children,
|
|
3343
|
+
style,
|
|
3344
|
+
...props
|
|
3345
|
+
}) => {
|
|
3346
|
+
const gridTemplateColumns = cols === "auto" ? `repeat(auto-fill, minmax(${minColWidth}, 1fr))` : `repeat(${cols}, 1fr)`;
|
|
3347
|
+
return /* @__PURE__ */ jsx(
|
|
3348
|
+
Tag,
|
|
3349
|
+
{
|
|
3350
|
+
className: cn("grid_layout", singleColOnMobile && "grid_layout_mobile_single", className),
|
|
3351
|
+
style: {
|
|
3352
|
+
"--grid-cols": gridTemplateColumns,
|
|
3353
|
+
"--grid-gap": `${gap}px`,
|
|
3354
|
+
"--grid-row-gap": rowGap != null ? `${rowGap}px` : void 0,
|
|
3355
|
+
"--grid-col-gap": colGap != null ? `${colGap}px` : void 0,
|
|
3356
|
+
...style
|
|
3357
|
+
},
|
|
3358
|
+
...props,
|
|
3359
|
+
children
|
|
3360
|
+
}
|
|
3361
|
+
);
|
|
3362
|
+
};
|
|
2570
3363
|
|
|
2571
|
-
export { AlertProvider, Button, Card, Checkbox, Chip, DatePicker, Divider, Dropdown,
|
|
3364
|
+
export { Accordion, AlertProvider, Avatar, Badge, 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 };
|