@bigtablet/design-system 2.5.0 → 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 +8886 -649
- package/dist/index.d.ts +908 -78
- package/dist/index.js +1810 -1018
- package/dist/styles/a11y/_index.scss +64 -4
- package/dist/styles/border-width/_index.scss +1 -0
- package/dist/styles/colors/_index.scss +238 -38
- package/dist/styles/elevation/_index.scss +36 -5
- package/dist/styles/motion/_index.scss +19 -4
- package/dist/styles/skeleton/_index.scss +5 -3
- package/dist/styles/typography/_index.scss +71 -0
- package/dist/vanilla/bigtablet.min.css +1 -1
- package/package.json +29 -28
package/dist/index.js
CHANGED
|
@@ -1,17 +1,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,7 +1507,7 @@ var Card = ({
|
|
|
664
1507
|
shadow = "sm",
|
|
665
1508
|
padding = "md",
|
|
666
1509
|
bordered = false,
|
|
667
|
-
|
|
1510
|
+
variant = "default",
|
|
668
1511
|
className,
|
|
669
1512
|
children,
|
|
670
1513
|
...props
|
|
@@ -673,7 +1516,8 @@ var Card = ({
|
|
|
673
1516
|
"card",
|
|
674
1517
|
`card_shadow_${shadow}`,
|
|
675
1518
|
`card_p_${padding}`,
|
|
676
|
-
|
|
1519
|
+
variant !== "default" && `card_variant_${variant}`,
|
|
1520
|
+
{ card_bordered: bordered },
|
|
677
1521
|
className
|
|
678
1522
|
);
|
|
679
1523
|
return /* @__PURE__ */ jsxs("div", { className: cardClassName, ...props, children: [
|
|
@@ -689,12 +1533,12 @@ var Checkbox = ({
|
|
|
689
1533
|
ref,
|
|
690
1534
|
...props
|
|
691
1535
|
}) => {
|
|
692
|
-
const inputRef =
|
|
693
|
-
|
|
1536
|
+
const inputRef = React16.useRef(null);
|
|
1537
|
+
React16.useImperativeHandle(
|
|
694
1538
|
ref,
|
|
695
1539
|
() => inputRef.current
|
|
696
1540
|
);
|
|
697
|
-
|
|
1541
|
+
React16.useEffect(() => {
|
|
698
1542
|
if (!inputRef.current) return;
|
|
699
1543
|
inputRef.current.indeterminate = Boolean(indeterminate);
|
|
700
1544
|
}, [indeterminate]);
|
|
@@ -758,32 +1602,58 @@ var ChevronDownIcon = () => /* @__PURE__ */ jsx(
|
|
|
758
1602
|
);
|
|
759
1603
|
var Chip = ({
|
|
760
1604
|
type = "basic",
|
|
1605
|
+
size,
|
|
1606
|
+
tone = "default",
|
|
761
1607
|
label,
|
|
762
1608
|
selected,
|
|
763
1609
|
removable,
|
|
764
1610
|
disabled,
|
|
765
1611
|
open,
|
|
1612
|
+
leadingIcon,
|
|
766
1613
|
onClick,
|
|
767
1614
|
onRemove,
|
|
768
1615
|
className,
|
|
769
1616
|
...props
|
|
770
1617
|
}) => {
|
|
771
1618
|
const [iconHovered, setIconHovered] = useState(false);
|
|
772
|
-
const
|
|
773
|
-
const
|
|
1619
|
+
const isStatic = type === "static";
|
|
1620
|
+
const hasLeading = !isStatic && selected;
|
|
1621
|
+
const hasStaticLeading = isStatic && !!leadingIcon;
|
|
1622
|
+
const hasTrailingButton = (type === "input" || isStatic) && removable;
|
|
774
1623
|
const hasTrailingIcon = hasTrailingButton || type === "filter";
|
|
775
1624
|
const enterIcon = () => setIconHovered(true);
|
|
776
1625
|
const leaveIcon = () => setIconHovered(false);
|
|
777
1626
|
const chipClassName = cn(
|
|
778
1627
|
"chip",
|
|
779
1628
|
`chip_type_${type}`,
|
|
1629
|
+
size && `chip_size_${size}`,
|
|
1630
|
+
isStatic && `chip_tone_${tone}`,
|
|
780
1631
|
selected && "chip_selected",
|
|
781
|
-
hasLeading && "chip_has_leading",
|
|
1632
|
+
(hasLeading || hasStaticLeading) && "chip_has_leading",
|
|
782
1633
|
hasTrailingIcon && "chip_has_trailing",
|
|
783
1634
|
disabled && "chip_disabled",
|
|
784
1635
|
iconHovered && "chip_icon_hovered",
|
|
785
1636
|
className
|
|
786
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
|
+
}
|
|
787
1657
|
return /* @__PURE__ */ jsxs("div", { className: chipClassName, ...props, children: [
|
|
788
1658
|
/* @__PURE__ */ jsxs(
|
|
789
1659
|
"button",
|
|
@@ -850,25 +1720,23 @@ var Dropdown = ({
|
|
|
850
1720
|
defaultValue = null,
|
|
851
1721
|
disabled,
|
|
852
1722
|
size = "md",
|
|
853
|
-
fullWidth,
|
|
854
1723
|
className
|
|
855
1724
|
}) => {
|
|
856
|
-
const internalId =
|
|
1725
|
+
const internalId = useId();
|
|
857
1726
|
const dropdownId = id ?? internalId;
|
|
858
1727
|
const isControlled = value !== void 0;
|
|
859
|
-
const [internalValue, setInternalValue] =
|
|
1728
|
+
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
860
1729
|
const currentValue = isControlled ? value ?? null : internalValue;
|
|
861
|
-
const [isOpen, setIsOpen] =
|
|
862
|
-
const [activeIndex, setActiveIndex] =
|
|
863
|
-
const [dropUp, setDropUp] =
|
|
864
|
-
const wrapperRef =
|
|
865
|
-
const controlRef =
|
|
866
|
-
const currentOption =
|
|
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(
|
|
867
1736
|
() => options.find((o) => o.value === currentValue) ?? null,
|
|
868
1737
|
[options, currentValue]
|
|
869
1738
|
);
|
|
870
|
-
const
|
|
871
|
-
const setValue = React4.useCallback(
|
|
1739
|
+
const setValue = useCallback(
|
|
872
1740
|
(next) => {
|
|
873
1741
|
const option = options.find((o) => o.value === next) ?? null;
|
|
874
1742
|
if (!isControlled) setInternalValue(next);
|
|
@@ -876,7 +1744,7 @@ var Dropdown = ({
|
|
|
876
1744
|
},
|
|
877
1745
|
[isControlled, onChange, options]
|
|
878
1746
|
);
|
|
879
|
-
|
|
1747
|
+
useEffect(() => {
|
|
880
1748
|
const handleOutsideClick = (e) => {
|
|
881
1749
|
if (!wrapperRef.current?.contains(e.target)) {
|
|
882
1750
|
setIsOpen(false);
|
|
@@ -947,7 +1815,7 @@ var Dropdown = ({
|
|
|
947
1815
|
break;
|
|
948
1816
|
}
|
|
949
1817
|
};
|
|
950
|
-
|
|
1818
|
+
useEffect(() => {
|
|
951
1819
|
if (!isOpen) return;
|
|
952
1820
|
const matchedIndex = options.findIndex((o) => o.value === currentValue && !o.disabled);
|
|
953
1821
|
setActiveIndex(
|
|
@@ -957,82 +1825,98 @@ var Dropdown = ({
|
|
|
957
1825
|
)
|
|
958
1826
|
);
|
|
959
1827
|
}, [isOpen, options, currentValue]);
|
|
960
|
-
|
|
1828
|
+
useEffect(() => {
|
|
961
1829
|
if (!isOpen || !controlRef.current) return;
|
|
962
1830
|
const rect = controlRef.current.getBoundingClientRect();
|
|
963
|
-
const listHeight = Math.min(options.length * 56, 288);
|
|
964
1831
|
const spaceBelow = window.innerHeight - rect.bottom;
|
|
965
1832
|
const spaceAbove = rect.top;
|
|
966
|
-
|
|
967
|
-
|
|
1833
|
+
const MIN_BELOW = 120;
|
|
1834
|
+
setDropUp(spaceBelow < MIN_BELOW && spaceAbove > spaceBelow);
|
|
1835
|
+
}, [isOpen]);
|
|
968
1836
|
const rootClassName = cn("dropdown", `dropdown_size_${size}`, className);
|
|
969
1837
|
const fieldsetClassName = cn("dropdown_fieldset", { is_open: isOpen, is_disabled: disabled });
|
|
970
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
|
+
});
|
|
971
1843
|
return /* @__PURE__ */ jsxs(
|
|
972
1844
|
"div",
|
|
973
1845
|
{
|
|
974
1846
|
ref: wrapperRef,
|
|
975
1847
|
className: rootClassName,
|
|
976
|
-
style: fullWidth ? { width: "100%" } : void 0,
|
|
977
1848
|
children: [
|
|
978
|
-
/* @__PURE__ */
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
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
|
+
)
|
|
1036
1920
|
]
|
|
1037
1921
|
}
|
|
1038
1922
|
);
|
|
@@ -1059,9 +1943,9 @@ var DatePicker = ({
|
|
|
1059
1943
|
minDateSrFormat = "Minimum date: {date}",
|
|
1060
1944
|
selectableRangeUntilTodaySrText = "Selectable up to today"
|
|
1061
1945
|
}) => {
|
|
1062
|
-
const groupId =
|
|
1063
|
-
const constraintId =
|
|
1064
|
-
const { todayYear, todayMonth, todayDay } =
|
|
1946
|
+
const groupId = React16.useId();
|
|
1947
|
+
const constraintId = React16.useId();
|
|
1948
|
+
const { todayYear, todayMonth, todayDay } = React16.useMemo(() => {
|
|
1065
1949
|
const now = /* @__PURE__ */ new Date();
|
|
1066
1950
|
return {
|
|
1067
1951
|
todayYear: now.getFullYear(),
|
|
@@ -1070,7 +1954,7 @@ var DatePicker = ({
|
|
|
1070
1954
|
};
|
|
1071
1955
|
}, []);
|
|
1072
1956
|
const endYear = endYearProp ?? todayYear + 10;
|
|
1073
|
-
const parsed =
|
|
1957
|
+
const parsed = React16.useMemo(() => {
|
|
1074
1958
|
if (!value) return { year: 0, month: 0, day: 0 };
|
|
1075
1959
|
const [y, m, d] = value.split("-").map(Number);
|
|
1076
1960
|
return {
|
|
@@ -1079,7 +1963,7 @@ var DatePicker = ({
|
|
|
1079
1963
|
day: d || 0
|
|
1080
1964
|
};
|
|
1081
1965
|
}, [value]);
|
|
1082
|
-
const min =
|
|
1966
|
+
const min = React16.useMemo(() => {
|
|
1083
1967
|
if (!minDate) return { year: 0, month: 0, day: 0 };
|
|
1084
1968
|
const [y, m, d] = minDate.split("-").map(Number);
|
|
1085
1969
|
return {
|
|
@@ -1099,7 +1983,7 @@ var DatePicker = ({
|
|
|
1099
1983
|
min.year > 0 && min.month > 0 && year === min.year && month === min.month ? min.day : 1
|
|
1100
1984
|
)
|
|
1101
1985
|
);
|
|
1102
|
-
const maxDay =
|
|
1986
|
+
const maxDay = React16.useMemo(() => {
|
|
1103
1987
|
if (!year || !month) return 31;
|
|
1104
1988
|
const daysInMonth = getDaysInMonth(year, month);
|
|
1105
1989
|
if (selectableRange === "until-today" && year === todayYear && month === todayMonth) {
|
|
@@ -1107,28 +1991,28 @@ var DatePicker = ({
|
|
|
1107
1991
|
}
|
|
1108
1992
|
return daysInMonth;
|
|
1109
1993
|
}, [year, month, selectableRange, todayYear, todayMonth, todayDay]);
|
|
1110
|
-
const yearOptions =
|
|
1994
|
+
const yearOptions = React16.useMemo(
|
|
1111
1995
|
() => range(startYear, maxYear).map((y) => ({
|
|
1112
1996
|
value: String(y),
|
|
1113
1997
|
label: String(y)
|
|
1114
1998
|
})),
|
|
1115
1999
|
[startYear, maxYear]
|
|
1116
2000
|
);
|
|
1117
|
-
const monthOptions =
|
|
2001
|
+
const monthOptions = React16.useMemo(
|
|
1118
2002
|
() => range(minMonth, Math.max(minMonth, maxMonth)).map((m) => ({
|
|
1119
2003
|
value: String(m),
|
|
1120
2004
|
label: pad(m)
|
|
1121
2005
|
})),
|
|
1122
2006
|
[minMonth, maxMonth]
|
|
1123
2007
|
);
|
|
1124
|
-
const dayOptions =
|
|
2008
|
+
const dayOptions = React16.useMemo(
|
|
1125
2009
|
() => range(minDay, Math.max(minDay, maxDay)).map((d) => ({
|
|
1126
2010
|
value: String(d),
|
|
1127
2011
|
label: pad(d)
|
|
1128
2012
|
})),
|
|
1129
2013
|
[minDay, maxDay]
|
|
1130
2014
|
);
|
|
1131
|
-
const emit =
|
|
2015
|
+
const emit = React16.useCallback(
|
|
1132
2016
|
(yy, mm, dd) => {
|
|
1133
2017
|
if (mode === "year-month") {
|
|
1134
2018
|
onChange(`${yy}-${pad(mm)}`);
|
|
@@ -1139,7 +2023,7 @@ var DatePicker = ({
|
|
|
1139
2023
|
},
|
|
1140
2024
|
[mode, onChange]
|
|
1141
2025
|
);
|
|
1142
|
-
const handleYearChange =
|
|
2026
|
+
const handleYearChange = React16.useCallback(
|
|
1143
2027
|
(raw) => {
|
|
1144
2028
|
if (!raw) return;
|
|
1145
2029
|
const newYear = Number(raw);
|
|
@@ -1156,14 +2040,14 @@ var DatePicker = ({
|
|
|
1156
2040
|
},
|
|
1157
2041
|
[month, day, min.year, min.month, selectableRange, todayYear, todayMonth, emit]
|
|
1158
2042
|
);
|
|
1159
|
-
const handleMonthChange =
|
|
2043
|
+
const handleMonthChange = React16.useCallback(
|
|
1160
2044
|
(raw) => {
|
|
1161
2045
|
if (!raw || !year) return;
|
|
1162
2046
|
emit(year, Number(raw), day || void 0);
|
|
1163
2047
|
},
|
|
1164
2048
|
[year, day, emit]
|
|
1165
2049
|
);
|
|
1166
|
-
const handleDayChange =
|
|
2050
|
+
const handleDayChange = React16.useCallback(
|
|
1167
2051
|
(raw) => {
|
|
1168
2052
|
if (!raw || !year || !month) return;
|
|
1169
2053
|
emit(year, month, Number(raw));
|
|
@@ -1238,673 +2122,190 @@ var Divider = ({ weight = "standard", className, ...props }) => {
|
|
|
1238
2122
|
const dividerClassName = cn("divider", `divider_weight_${weight}`, className);
|
|
1239
2123
|
return /* @__PURE__ */ jsx("hr", { className: dividerClassName, ...props });
|
|
1240
2124
|
};
|
|
1241
|
-
var FAB = ({ variant = "primary", icon, className, ...props }) => {
|
|
1242
|
-
const fabClassName = cn("fab", `fab_variant_${variant}`, className);
|
|
1243
|
-
return /* @__PURE__ */ jsx("button", { className: fabClassName, ...props, children: /* @__PURE__ */ jsx("span", { className: "fab_icon", "aria-hidden": "true", children: icon }) });
|
|
1244
|
-
};
|
|
1245
2125
|
var FileInput = ({
|
|
1246
2126
|
label = "Choose file",
|
|
1247
2127
|
onFiles,
|
|
1248
2128
|
supportingText,
|
|
1249
2129
|
preview = false,
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
const rootClassName = cn("file_input", disabled && "file_input_disabled", className);
|
|
1286
|
-
return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
|
|
1287
|
-
/* @__PURE__ */ jsx(
|
|
1288
|
-
"input",
|
|
1289
|
-
{
|
|
1290
|
-
id: inputId,
|
|
1291
|
-
type: "file",
|
|
1292
|
-
className: "file_input_control",
|
|
1293
|
-
disabled,
|
|
1294
|
-
"aria-describedby": supportingText ? helperId : void 0,
|
|
1295
|
-
onChange: handleChange,
|
|
1296
|
-
...props
|
|
1297
|
-
}
|
|
1298
|
-
),
|
|
1299
|
-
/* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "file_input_label", children: label }),
|
|
1300
|
-
supportingText && /* @__PURE__ */ jsx("span", { id: helperId, className: "file_input_helper", children: supportingText }),
|
|
1301
|
-
previewUrls.length > 0 && /* @__PURE__ */ jsx("div", { className: "file_input_preview", children: previewUrls.map((url) => (
|
|
1302
|
-
// biome-ignore lint/performance/noImgElement: framework-agnostic DS — host app should swap with next/image if needed
|
|
1303
|
-
/* @__PURE__ */ jsx("img", { src: url, alt: "", className: "file_input_preview_img" }, url)
|
|
1304
|
-
)) })
|
|
1305
|
-
] });
|
|
1306
|
-
};
|
|
1307
|
-
|
|
1308
|
-
// src/ui/icon/icon-data.ts
|
|
1309
|
-
var ICON_DATA = {
|
|
1310
|
-
add_a_photo: {
|
|
1311
|
-
300: {
|
|
1312
|
-
noFill: "M440-437.77ZM117.69-140q-23.53 0-40.61-17.08T60-197.69v-479.54q0-23 17.08-40.35 17.08-17.34 40.61-17.34h137.39L328.46-820h248.62v45.39H349.54l-73.39 85.07H117.69q-5.38 0-8.84 3.66-3.46 3.65-3.46 8.65v479.54q0 5.38 3.46 8.84t8.84 3.46h644.62q5.38 0 8.84-3.46t3.46-8.84v-379.39H820v379.39q0 23.53-17.35 40.61Q785.31-140 762.31-140H117.69Zm656.92-550.15v-84.46h-84.46V-820h84.46v-85.08H820V-820h85.08v45.39H820v84.46h-45.39ZM439.69-280.46q66.92 0 112.27-45.35 45.35-45.34 45.35-112.27 0-66.92-45.35-111.96-45.35-45.04-112.27-45.04-66.92 0-111.96 45.04-45.04 45.04-45.04 111.96 0 66.93 45.04 112.27 45.04 45.35 111.96 45.35Zm0-45.39q-48.07 0-79.84-32.07-31.77-32.08-31.77-80.16 0-48.07 31.77-79.84 31.77-31.77 79.84-31.77 48.08 0 80.16 31.77 32.07 31.77 32.07 79.84 0 48.08-32.07 80.16-32.08 32.07-80.16 32.07Z",
|
|
1313
|
-
fill: "M774.61-690.15v-84.46h-84.46V-820h84.46v-85.08H820V-820h85.08v45.39H820v84.46h-45.39ZM440.19-280.46q66.42 0 111.77-45.35 45.35-45.34 45.35-111.77 0-67.42-45.35-112.46-45.35-45.04-111.77-45.04-67.42 0-112.46 45.04-45.04 45.04-45.04 112.46 0 66.43 45.04 111.77 45.04 45.35 112.46 45.35Zm0-45.39q-48.57 0-80.34-32.07-31.77-32.08-31.77-79.66 0-48.57 31.77-80.34 31.77-31.77 80.34-31.77 47.58 0 79.66 31.77 32.07 31.77 32.07 80.34 0 47.58-32.07 79.66-32.08 32.07-79.66 32.07ZM117.69-140q-23.53 0-40.61-17.08T60-197.69v-479.54q0-23 17.08-40.35 17.08-17.34 40.61-17.34h137.39L328.46-820h288.62v118.46h84.46v84.46H820v419.39q0 23.53-17.35 40.61Q785.31-140 762.31-140H117.69Z"
|
|
1314
|
-
},
|
|
1315
|
-
400: {
|
|
1316
|
-
noFill: "M440-437ZM100-120q-24 0-42-18t-18-42v-513q0-23 18-41.5t42-18.5h147l73-87h274v60H348l-73 87H100v513h680v-414h60v414q0 24-18.5 42T780-120H100Zm680-574v-86h-86v-60h86v-87h60v87h87v60h-87v86h-60ZM439.5-267q72.5 0 121.5-49t49-121.5q0-72.5-49-121T439.5-607q-72.5 0-121 48.5t-48.5 121q0 72.5 48.5 121.5t121 49Zm0-60q-47.5 0-78.5-31.5t-31-79q0-47.5 31-78.5t78.5-31q47.5 0 79 31t31.5 78.5q0 47.5-31.5 79t-79 31.5Z",
|
|
1317
|
-
fill: "M780-694v-86h-86v-60h86v-87h60v87h87v60h-87v86h-60ZM440-267q72 0 121-49t49-121q0-73-49-121.5T440-607q-73 0-121.5 48.5T270-437q0 72 48.5 121T440-267Zm0-60q-48 0-79-31.5T330-437q0-48 31-79t79-31q47 0 78.5 31t31.5 79q0 47-31.5 78.5T440-327ZM100-120q-24 0-42-18t-18-42v-513q0-23 18-41.5t42-18.5h147l73-87h314v120h86v86h120v454q0 24-18.5 42T780-120H100Z"
|
|
1318
|
-
}
|
|
1319
|
-
},
|
|
1320
|
-
add_circle: {
|
|
1321
|
-
300: {
|
|
1322
|
-
noFill: "M459.54-290h45.38v-164.46H670v-45.39H504.92V-670h-45.38v170.15H290v45.39h169.54V-290Zm20.79 190q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Zm.17-45.39q139.19 0 236.65-97.76 97.46-97.77 97.46-237.35 0-139.19-97.27-236.65-97.27-97.46-237.34-97.46-139.08 0-236.85 97.27-97.76 97.27-97.76 237.34 0 139.08 97.76 236.85 97.77 97.76 237.35 97.76ZM480-480Z",
|
|
1323
|
-
fill: "M459.54-290h45.38v-164.46H670v-45.39H504.92V-670h-45.38v170.15H290v45.39h169.54V-290Zm20.79 190q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Z"
|
|
1324
|
-
},
|
|
1325
|
-
400: {
|
|
1326
|
-
noFill: "M453-280h60v-166h167v-60H513v-174h-60v174H280v60h173v166Zm27.27 200q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z",
|
|
1327
|
-
fill: "M453-280h60v-166h167v-60H513v-174h-60v174H280v60h173v166Zm27.27 200q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Z"
|
|
1328
|
-
}
|
|
1329
|
-
},
|
|
1330
|
-
add_lg: {
|
|
1331
|
-
300: {
|
|
1332
|
-
noFill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z",
|
|
1333
|
-
fill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z"
|
|
1334
|
-
},
|
|
1335
|
-
400: {
|
|
1336
|
-
noFill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z",
|
|
1337
|
-
fill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z"
|
|
1338
|
-
}
|
|
1339
|
-
},
|
|
1340
|
-
add_md: {
|
|
1341
|
-
300: {
|
|
1342
|
-
noFill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z",
|
|
1343
|
-
fill: "M457.31-457.31H220v-45.38h237.31V-740h45.38v237.31H740v45.38H502.69V-220h-45.38v-237.31Z"
|
|
1344
|
-
},
|
|
1345
|
-
400: {
|
|
1346
|
-
noFill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z",
|
|
1347
|
-
fill: "M450-450H200v-60h250v-250h60v250h250v60H510v250h-60v-250Z"
|
|
1348
|
-
}
|
|
1349
|
-
},
|
|
1350
|
-
apartment: {
|
|
1351
|
-
300: {
|
|
1352
|
-
noFill: "M130-136.92v-536.54h163.85v-163.46h372.69v327.3H830v372.7H539.54v-163.85H420.46v163.85H130Zm45.38-45.39h118.47v-118.46H175.38v118.46Zm0-163.84h118.47v-118.08H175.38v118.08Zm0-163.47h118.47v-118.46H175.38v118.46Zm163.85 163.47h118.08v-118.08H339.23v118.08Zm0-163.47h118.08v-118.46H339.23v118.46Zm0-163.84h118.08v-118.08H339.23v118.08Zm163.46 327.31h118.46v-118.08H502.69v118.08Zm0-163.47h118.46v-118.46H502.69v118.46Zm0-163.84h118.46v-118.08H502.69v118.08Zm163.85 491.15h118.08v-118.46H666.54v118.46Zm0-163.84h118.08v-118.08H666.54v118.08Z",
|
|
1353
|
-
fill: "M130-136.92v-536.54h163.85v-163.46h372.69v327.3H830v372.7H539.54v-163.85H420.46v163.85H130Zm45.38-45.39h118.47v-118.46H175.38v118.46Zm0-163.84h118.47v-118.08H175.38v118.08Zm0-163.47h118.47v-118.46H175.38v118.46Zm163.85 163.47h118.08v-118.08H339.23v118.08Zm0-163.47h118.08v-118.46H339.23v118.46Zm0-163.84h118.08v-118.08H339.23v118.08Zm163.46 327.31h118.46v-118.08H502.69v118.08Zm0-163.47h118.46v-118.46H502.69v118.46Zm0-163.84h118.46v-118.08H502.69v118.08Zm163.85 491.15h118.08v-118.46H666.54v118.46Zm0-163.84h118.08v-118.08H666.54v118.08Z"
|
|
1354
|
-
},
|
|
1355
|
-
400: {
|
|
1356
|
-
noFill: "M120-120v-555h165v-165h390v330h165v390H533v-165H427v165H120Zm60-60h105v-105H180v105Zm0-165h105v-105H180v105Zm0-165h105v-105H180v105Zm165 165h105v-105H345v105Zm0-165h105v-105H345v105Zm0-165h105v-105H345v105Zm165 330h105v-105H510v105Zm0-165h105v-105H510v105Zm0-165h105v-105H510v105Zm165 495h105v-105H675v105Zm0-165h105v-105H675v105Z",
|
|
1357
|
-
fill: "M120-120v-555h165v-165h390v330h165v390H533v-165H427v165H120Zm60-60h105v-105H180v105Zm0-165h105v-105H180v105Zm0-165h105v-105H180v105Zm165 165h105v-105H345v105Zm0-165h105v-105H345v105Zm0-165h105v-105H345v105Zm165 330h105v-105H510v105Zm0-165h105v-105H510v105Zm0-165h105v-105H510v105Zm165 495h105v-105H675v105Zm0-165h105v-105H675v105Z"
|
|
1358
|
-
}
|
|
1359
|
-
},
|
|
1360
|
-
arrow_back: {
|
|
1361
|
-
300: {
|
|
1362
|
-
noFill: "M266.31-457.31 512-212l-32 32-300-300 300-300 32 32-245.69 245.31H780v45.38H266.31Z",
|
|
1363
|
-
fill: "M266.31-457.31 512-212l-32 32-300-300 300-300 32 32-245.69 245.31H780v45.38H266.31Z"
|
|
1364
|
-
},
|
|
1365
|
-
400: {
|
|
1366
|
-
noFill: "m274-450 248 248-42 42-320-320 320-320 42 42-248 248h526v60H274Z",
|
|
1367
|
-
fill: "m274-450 248 248-42 42-320-320 320-320 42 42-248 248h526v60H274Z"
|
|
1368
|
-
}
|
|
1369
|
-
},
|
|
1370
|
-
calendar_today: {
|
|
1371
|
-
300: {
|
|
1372
|
-
noFill: "M197.69-100q-23.53 0-40.61-17.08T140-157.69v-579.23q0-23.53 17.08-40.61t40.61-17.08h73.85v-70h50.38v70h317.69v-70h49.23v70h73.47q23.53 0 40.61 17.08T820-736.92v579.23q0 23.53-17.08 40.61T762.31-100H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46V-555H185.39v397.31q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3-454.99h589.22v-136.54q0-4.62-3.84-8.46-3.85-3.85-8.46-3.85H197.69q-4.61 0-8.46 3.85-3.84 3.84-3.84 8.46v136.54Zm0 0v-148.85 148.85Z",
|
|
1373
|
-
fill: "M197.69-100q-23.53 0-40.61-17.08T140-157.69v-579.23q0-23.53 17.08-40.61t40.61-17.08h73.85v-70h50.38v70h317.69v-70h49.23v70h73.47q23.53 0 40.61 17.08T820-736.92v579.23q0 23.53-17.08 40.61T762.31-100H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46V-555H185.39v397.31q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Z"
|
|
1374
|
-
},
|
|
1375
|
-
400: {
|
|
1376
|
-
noFill: "M180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Zm0-490h600v-130H180v130Zm0 0v-130 130Z",
|
|
1377
|
-
fill: "M180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Z"
|
|
1378
|
-
}
|
|
1379
|
-
},
|
|
1380
|
-
check: {
|
|
1381
|
-
300: {
|
|
1382
|
-
noFill: "M379.15-258.31 168.62-468.85l32.61-32.23 177.92 177.93 379-379.39 32.62 32.62-411.62 411.61Z",
|
|
1383
|
-
fill: "M379.15-258.31 168.62-468.85l32.61-32.23 177.92 177.93 379-379.39 32.62 32.62-411.62 411.61Z"
|
|
1384
|
-
},
|
|
1385
|
-
400: {
|
|
1386
|
-
noFill: "M378-246 154-470l43-43 181 181 384-384 43 43-427 427Z",
|
|
1387
|
-
fill: "M378-246 154-470l43-43 181 181 384-384 43 43-427 427Z"
|
|
1388
|
-
}
|
|
1389
|
-
},
|
|
1390
|
-
check_box: {
|
|
1391
|
-
300: {
|
|
1392
|
-
noFill: "m420.54-332.54 274-274-32.62-32.61-241.38 241.38-117.85-117.46-32.61 32.61 150.46 150.08ZM197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3-589.22v589.22-589.22Z",
|
|
1393
|
-
fill: "m420.54-332.54 274-274.61-32.62-32.62-241.38 242-117.85-117.46-32.61 32.61 150.46 150.08ZM197.69-140q-23.61 0-40.65-17.04T140-197.69v-564.62q0-23.61 17.04-40.65T197.69-820h564.62q23.61 0 40.65 17.04T820-762.31v564.62q0 23.61-17.04 40.65T762.31-140H197.69Z"
|
|
1394
|
-
},
|
|
1395
|
-
400: {
|
|
1396
|
-
noFill: "m419-321 289-289-43-43-246 246-119-119-43 43 162 162ZM180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0-600v600-600Z",
|
|
1397
|
-
fill: "m419-321 289-290-43-43-246 247-119-119-43 43 162 162ZM180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Z"
|
|
1398
|
-
}
|
|
1399
|
-
},
|
|
1400
|
-
check_circle: {
|
|
1401
|
-
300: {
|
|
1402
|
-
noFill: "M421-311.46 690.54-581l-34.85-34.23L421-380.15 302.54-498.61l-33.85 34.23L421-311.46ZM480.07-100q-78.22 0-147.4-29.92t-120.99-81.71q-51.81-51.79-81.75-120.94Q100-401.71 100-479.93q0-78.84 29.92-148.21t81.71-120.68q51.79-51.31 120.94-81.25Q401.71-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.22-29.92 147.4t-81.21 120.99q-51.29 51.81-120.63 81.75Q558.9-100 480.07-100Zm-.07-45.39q139.69 0 237.15-97.76 97.46-97.77 97.46-236.85 0-139.69-97.46-237.15-97.46-97.46-237.15-97.46-139.08 0-236.85 97.46-97.76 97.46-97.76 237.15 0 139.08 97.76 236.85 97.77 97.76 236.85 97.76ZM480-480Z",
|
|
1403
|
-
fill: "M421-311.46 690.54-581l-34.85-34.23L421-380.15 302.54-498.61l-33.85 34.23L421-311.46ZM480.07-100q-78.22 0-147.4-29.92t-120.99-81.71q-51.81-51.79-81.75-120.94Q100-401.71 100-479.93q0-78.84 29.92-148.21t81.71-120.68q51.79-51.31 120.94-81.25Q401.71-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.22-29.92 147.4t-81.21 120.99q-51.29 51.81-120.63 81.75Q558.9-100 480.07-100Z"
|
|
1404
|
-
},
|
|
1405
|
-
400: {
|
|
1406
|
-
noFill: "m421-298 283-283-46-45-237 237-120-120-45 45 165 166Zm59 218q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Zm0-60q142 0 241-99.5T820-480q0-142-99-241t-241-99q-141 0-240.5 99T140-480q0 141 99.5 240.5T480-140Zm0-340Z",
|
|
1407
|
-
fill: "m421-298 283-283-46-45-237 237-120-120-45 45 165 166Zm59 218q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Z"
|
|
1408
|
-
}
|
|
1409
|
-
},
|
|
1410
|
-
close: {
|
|
1411
|
-
300: {
|
|
1412
|
-
noFill: "m250.92-218.92-32-32L448-480 218.92-709.08l32-32L480-512l229.08-229.08 32 32L512-480l229.08 229.08-32 32L480-448 250.92-218.92Z",
|
|
1413
|
-
fill: "m250.92-218.92-32-32L448-480 218.92-709.08l32-32L480-512l229.08-229.08 32 32L512-480l229.08 229.08-32 32L480-448 250.92-218.92Z"
|
|
1414
|
-
},
|
|
1415
|
-
400: {
|
|
1416
|
-
noFill: "m249-207-42-42 231-231-231-231 42-42 231 231 231-231 42 42-231 231 231 231-42 42-231-231-231 231Z",
|
|
1417
|
-
fill: "m249-207-42-42 231-231-231-231 42-42 231 231 231-231 42 42-231 231 231 231-42 42-231-231-231 231Z"
|
|
1418
|
-
}
|
|
1419
|
-
},
|
|
1420
|
-
close_small: {
|
|
1421
|
-
300: {
|
|
1422
|
-
noFill: "m302.69-270.31-32.38-32.38L447.62-480 270.31-656.31l32.38-32.38L480-511.38l176.31-177.31 32.38 32.38L511.38-480l177.31 177.31-32.38 32.38L480-447.62 302.69-270.31Z",
|
|
1423
|
-
fill: "m325.2-292.54-32.66-32.38L447.34-480l-154.8-154.46 32.66-32L480-511.77l154.18-154.69 32.28 32L511.66-480l154.8 155.08-32.28 32.38L480-447.23 325.2-292.54Z"
|
|
1424
|
-
},
|
|
1425
|
-
400: {
|
|
1426
|
-
noFill: "m300-258-42-42 180-180-180-179 42-42 180 180 179-180 42 42-180 179 180 180-42 42-179-180-180 180Z",
|
|
1427
|
-
fill: "M328.28-286 286-328l151.72-152L286-631l42.28-42L480-521.39 630.72-673 673-631 521.28-480 673-328l-42.28 42L480-437.61 328.28-286Z"
|
|
1428
|
-
}
|
|
1429
|
-
},
|
|
1430
|
-
cloud_download: {
|
|
1431
|
-
300: {
|
|
1432
|
-
noFill: "M253.31-180q-80.88 0-137.09-56.56Q60-293.12 60-373.69q0-74.39 49.54-129.62 49.54-55.23 122.46-62.23 11.92-81.69 77.58-145.04 65.65-63.34 148.34-63.34 18.23 0 31.81 10.42 13.58 10.42 13.58 27.65v304.77l87.23-87.61 32.61 33-142.53 142.15-142.16-142.15 32.62-33 86.84 87.61V-732q-82.92 6.38-135.19 70.69-52.27 64.31-52.27 139.69h-19.38q-60.05 0-102.87 42.62-42.82 42.62-42.82 105.69 0 63.08 43.84 105.5 43.85 42.42 104.18 42.42h494.51q44.23 0 75.46-31.29 31.23-31.29 31.23-75.27 0-43.97-31.23-75.2-31.23-31.23-75.59-31.23h-62.1v-83.24q0-62.99-29.92-110.38-29.92-47.38-77.69-75.61v-50q70.61 28.61 111.8 93.3 41.2 64.7 41.2 142.69v37.85h12.3q65.47-2.38 111.04 41Q900-399.38 900-332.08q0 62.46-44.81 107.27Q810.38-180 747.92-180H253.31ZM480-500.46Z",
|
|
1433
|
-
fill: "M253.31-180q-80.69 0-137-56.5T60-373.69q0-73.39 49.23-129.12 49.23-55.73 122.77-62.73 14.54-88.46 77.62-147.11 63.07-58.66 148.3-65.5v347.07l-86.84-87.61-32.62 33 142.16 142.15 142.53-142.15-32.61-33-87.23 87.61v-347.07q96.77 10.23 162.27 83.27 65.5 73.03 65.5 173.26v37.85h12.3q65.47-2.38 111.04 41.31Q900-398.77 900-332.08q0 62.46-44.81 107.27Q810.38-180 747.92-180H253.31Z"
|
|
1434
|
-
},
|
|
1435
|
-
400: {
|
|
1436
|
-
noFill: "M251-160q-88 0-149.5-61.5T40-371q0-79 50.5-137.5T217-579q15-84 82-148.5T451-792q24 0 42 13.5t18 36.5v294l83-83 43 43-156 156-156-156 43-43 83 83v-289q-86 11-135 75.5T267-522h-19q-61 0-104.5 43T100-371q0 65 45 108t106 43h500q45 0 77-32t32-77q0-45-32-77t-77-32h-63v-84q0-68-33-117.5T570-718v-65q81 29 129.5 101T748-522v24q72-2 122 46t50 123q0 69-50 119t-119 50H251Zm229-347Z",
|
|
1437
|
-
fill: "M251-160q-88 0-149.5-61.5T40-371q0-78 50-137t127-71q18-90 83-150t151-68v349l-83-83-43 43 156 156 156-156-43-43-83 83v-349q101 11 169 90t68 185v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H251Z"
|
|
1438
|
-
}
|
|
1439
|
-
},
|
|
1440
|
-
cloud_upload: {
|
|
1441
|
-
300: {
|
|
1442
|
-
noFill: "M252.69-180q-79.46 0-136.07-56.72Q60-293.44 60-373.08q0-74.15 49.69-129.8 49.7-55.66 122.31-62.66 15.39-93.15 85.73-153.5 70.35-60.34 163.89-60.34 105.79 0 177.62 75.67 71.84 75.68 71.84 182.09v37.85h12.3q65.47-2.38 111.04 41.31Q900-398.77 900-332.08q0 62.46-44.42 107.27Q811.15-180 748.69-180H515q-23.53 0-40.61-17.08t-17.08-40.61v-257.23l-88 88.38-32.62-32.23L480-582.08l143.31 143.31-32.62 32.23-88-88.38v257.23q0 4.61 3.85 8.46 3.84 3.84 8.46 3.84h232.92q44.23 0 75.46-31.29 31.23-31.29 31.23-75.27 0-43.97-31.23-75.2-31.23-31.23-75.59-31.23h-62.1v-83.24q0-87.08-59.92-149.73Q565.85-734 478.58-734t-147.7 62.65q-60.42 62.65-60.42 149.73h-20.15q-59.69 0-102.31 42.93-42.61 42.92-42.61 105.57 0 60.65 43.14 104.19t104.16 43.54h129.23V-180H252.69ZM480-457.31Z",
|
|
1443
|
-
fill: "M457.31-180h-204q-80.69 0-137-56.5T60-373.69q0-73.39 49.23-129.12 49.23-55.73 122.77-62.73 15.39-93.15 85.73-153.5 70.35-60.34 163.89-60.34 104.69 0 177.07 75.73 72.39 75.73 72.39 182.03v37.85h12.3q65.47-2.38 111.04 41.31Q900-398.77 900-332.08q0 62.46-44.81 107.27Q810.38-180 747.92-180H502.69v-314.92l88 88.38 32.62-32.23L480-582.08 336.69-438.77l32.62 32.23 88-88.38V-180Z"
|
|
1444
|
-
},
|
|
1445
|
-
400: {
|
|
1446
|
-
noFill: "M250-160q-86 0-148-62T40-370q0-78 49.5-137.5T217-579q20-97 94-158.5T482-799q113 0 189.5 81.5T748-522v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H510q-24 0-42-18t-18-42v-258l-83 83-43-43 156-156 156 156-43 43-83-83v258h241q45 0 77-32t32-77q0-45-32-77t-77-32h-63v-84q0-89-60.5-153T478-739q-89 0-150 64t-61 153h-19q-62 0-105 43.5T100-371q0 62 43.93 106.5T250-220h140v60H250Zm230-290Z",
|
|
1447
|
-
fill: "M450-160H251q-88 0-149.5-61.5T40-371q0-78 50-137t127-71q20-97 94-158.5T482-799q112 0 189 81.5T748-522v24q72-2 122 46.5T920-329q0 69-50 119t-119 50H510v-318l83 83 43-43-156-156-156 156 43 43 83-83v318Z"
|
|
1448
|
-
}
|
|
1449
|
-
},
|
|
1450
|
-
content_copy: {
|
|
1451
|
-
300: {
|
|
1452
|
-
noFill: "M318.46-230.77q-23.53 0-40.61-17.08t-17.08-40.61v-513.85q0-23.53 17.08-40.61T318.46-860h393.85q23.52 0 40.61 17.08Q770-825.84 770-802.31v513.85q0 23.53-17.08 40.61-17.09 17.08-40.61 17.08H318.46Zm0-45.39h393.85q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-513.85q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H318.46q-4.61 0-8.46 3.84-3.85 3.85-3.85 8.46v513.85q0 4.61 3.85 8.46 3.85 3.84 8.46 3.84ZM207.69-120q-23.52 0-40.61-17.08Q150-154.17 150-177.7v-559.22h45.39v559.22q0 4.62 3.84 8.47 3.85 3.84 8.46 3.84h439.23V-120H207.69Zm98.46-156.16v-538.45 538.45Z",
|
|
1453
|
-
fill: "M318.46-230.77q-23.53 0-40.61-17.08t-17.08-40.61v-513.85q0-23.53 17.08-40.61T318.46-860h393.85q23.52 0 40.61 17.08Q770-825.84 770-802.31v513.85q0 23.53-17.08 40.61-17.09 17.08-40.61 17.08H318.46ZM207.69-120q-23.52 0-40.61-17.08Q150-154.17 150-177.7v-559.22h45.39v559.22q0 4.62 3.84 8.47 3.85 3.84 8.46 3.84h439.23V-120H207.69Z"
|
|
1454
|
-
},
|
|
1455
|
-
400: {
|
|
1456
|
-
noFill: "M300-200q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H300Zm0-60h440v-560H300v560ZM180-80q-24 0-42-18t-18-42v-620h60v620h500v60H180Zm120-180v-560 560Z",
|
|
1457
|
-
fill: "M300-200q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h440q24 0 42 18t18 42v560q0 24-18 42t-42 18H300ZM180-80q-24 0-42-18t-18-42v-620h60v620h500v60H180Z"
|
|
1458
|
-
}
|
|
1459
|
-
},
|
|
1460
|
-
delete_forever: {
|
|
1461
|
-
300: {
|
|
1462
|
-
noFill: "M365.23-313.23 480-429.62l115.77 116.39 35.46-36.08-114.77-116.38 114.77-116.77-35.46-36.08L480-502.15 365.23-618.54l-36.46 36.08 115.77 116.77-115.77 116.38 36.46 36.08ZM278.31-140q-23.53 0-40.61-17.08t-17.08-40.61v-544.23H180v-45.39h171.08v-28.07h257.84v28.07H780v45.39h-40.62v544.23q0 23.53-17.08 40.61T681.69-140H278.31ZM694-741.92H266v544.23q0 4.61 3.85 8.46 3.84 3.84 8.46 3.84h403.38q4.62 0 8.46-3.84 3.85-3.85 3.85-8.46v-544.23Zm-428 0v556.53-556.53Z",
|
|
1463
|
-
fill: "M365.23-313.23 480-429.62l115.77 116.39 35.46-36.08-114.77-116.38 114.77-116.77-35.46-36.08L480-502.15 365.23-618.54l-36.46 36.08 115.77 116.77-115.77 116.38 36.46 36.08ZM278.31-140q-23.62 0-40.65-17.04-17.04-17.04-17.04-40.65v-544.23H180v-45.39h171.08v-28.07h257.84v28.07H780v45.39h-40.62v544.23q0 23.61-17.04 40.65Q705.31-140 681.69-140H278.31Z"
|
|
1464
|
-
},
|
|
1465
|
-
400: {
|
|
1466
|
-
noFill: "m361-299 119-121 120 121 47-48-119-121 119-121-47-48-120 121-119-121-48 48 120 121-120 121 48 48ZM261-120q-24 0-42-18t-18-42v-570h-41v-60h188v-30h264v30h188v60h-41v570q0 24-18 42t-42 18H261Zm438-630H261v570h438v-570Zm-438 0v570-570Z",
|
|
1467
|
-
fill: "m361-299 119-121 120 121 47-48-119-121 119-121-47-48-120 121-119-121-48 48 120 121-120 121 48 48ZM261-120q-24 0-42-18t-18-42v-570h-41v-60h188v-30h264v30h188v60h-41v570q0 24-18 42t-42 18H261Z"
|
|
1468
|
-
}
|
|
1469
|
-
},
|
|
1470
|
-
edit: {
|
|
1471
|
-
300: {
|
|
1472
|
-
noFill: "M185.39-185.39h40.92l468.54-467.92-40.93-40.92-468.53 467.92v40.92ZM140-140v-104.54l561.92-562.07q6.23-5.63 14.66-9.2 8.42-3.57 17.6-3.57 8.57 0 16.81 3.34 8.24 3.35 15.32 9.43l40.92 40.92q6.69 6.69 9.73 15.16 3.04 8.46 3.04 16.93 0 8.6-3.51 17.33-3.5 8.73-9.26 14.96L244.54-140H140Zm634.38-594.31-39.46-39.07 39.46 39.07Zm-99.75 60.68-20.71-20.6 40.93 40.92-20.22-20.32Z",
|
|
1473
|
-
fill: "M140-140v-104.54l561.92-562.07q6.23-5.63 14.66-9.2 8.42-3.57 17.6-3.57 8.57 0 16.81 3.34 8.24 3.35 15.32 9.43l40.92 40.92q6.69 6.69 9.73 15.16 3.04 8.46 3.04 16.93 0 8.6-3.51 17.33-3.5 8.73-9.26 14.96L244.54-140H140Zm587.85-548.15L774-733.92l-39.08-39.46-46.15 46.15 39.08 39.08Z"
|
|
1474
|
-
},
|
|
1475
|
-
400: {
|
|
1476
|
-
noFill: "M180-180h44l472-471-44-44-472 471v44Zm-60 60v-128l575-574q8-8 19-12.5t23-4.5q11 0 22 4.5t20 12.5l44 44q9 9 13 20t4 22q0 11-4.5 22.5T823-694L248-120H120Zm659-617-41-41 41 41Zm-105 64-22-22 44 44-22-22Z",
|
|
1477
|
-
fill: "M120-120v-128l575-574q8-8 19-12.5t23-4.5q11 0 22 4.5t20 12.5l44 44q9 9 13 20t4 22q0 11-4.5 22.5T823-694L248-120H120Zm619-577 40-40-41-41-40 40 41 41Z"
|
|
1478
|
-
}
|
|
1479
|
-
},
|
|
1480
|
-
edit_note: {
|
|
1481
|
-
300: {
|
|
1482
|
-
noFill: "M180-407.31v-45.38h294.62v45.38H180Zm0-163.84v-45.39h461.92v45.39H180Zm0-163.46V-780h461.92v45.39H180ZM524.62-180v-105.69l217.15-216.16q7.46-7.46 16.11-10.5 8.65-3.03 17.3-3.03 9.43 0 18.25 3.53 8.82 3.54 16.03 10.62l37 37.38q7.08 7.47 10.31 16.16Q860-439 860-430.31t-3.73 17.69q-3.73 9-10.34 16.46L630.31-180H524.62Zm287.69-250.31-37-37.38 37 37.38Zm-240 202.62h38l129.84-130.47-18.38-19-18.62-18.76-130.84 130.23v38Zm149.46-149.47-18.62-18.76 37 37.76-18.38-19Z",
|
|
1483
|
-
fill: "M180-407.31v-45.38h294.62v45.38H180Zm0-163.84v-45.39h461.92v45.39H180Zm0-163.46V-780h461.92v45.39H180ZM524.62-180v-105.69l217.15-216.16q7.46-7.07 16.11-10.3 8.65-3.23 17.3-3.23 9.43 0 18.25 3.53 8.82 3.54 16.03 10.62l37 37.38q7.08 7.47 10.31 16.16Q860-439 860-430.31t-3.54 17.69q-3.54 9-10.53 16.46L630.31-180H524.62Zm250.69-211.69 37-38.62-37-37.38-38 38 38 38Z"
|
|
1484
|
-
},
|
|
1485
|
-
400: {
|
|
1486
|
-
noFill: "M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z",
|
|
1487
|
-
fill: "M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm263-224 37-39-37-37-38 38 38 38Z"
|
|
1488
|
-
}
|
|
1489
|
-
},
|
|
1490
|
-
error: {
|
|
1491
|
-
300: {
|
|
1492
|
-
noFill: "M499.46-298.52q7.77-7.75 7.77-19.46t-7.75-19.48q-7.75-7.77-19.46-7.77t-19.48 7.75q-7.77 7.75-7.77 19.46t7.75 19.48q7.75 7.77 19.46 7.77t19.48-7.75Zm-39.92-133.33h45.38v-249.53h-45.38v249.53ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Zm.17-45.39q139.19 0 236.65-97.76 97.46-97.77 97.46-237.35 0-139.19-97.27-236.65-97.27-97.46-237.34-97.46-139.08 0-236.85 97.27-97.76 97.27-97.76 237.34 0 139.08 97.76 236.85 97.77 97.76 237.35 97.76ZM480-480Z",
|
|
1493
|
-
fill: "M499.46-298.52q7.77-7.75 7.77-19.46t-7.75-19.48q-7.75-7.77-19.46-7.77t-19.48 7.75q-7.77 7.75-7.77 19.46t7.75 19.48q7.75 7.77 19.46 7.77t19.48-7.75Zm-39.92-133.33h45.38v-249.53h-45.38v249.53ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Z"
|
|
1494
|
-
},
|
|
1495
|
-
400: {
|
|
1496
|
-
noFill: "M503.5-289.48q9.5-9.48 9.5-23.5t-9.48-23.52q-9.48-9.5-23.5-9.5t-23.52 9.48q-9.5 9.48-9.5 23.5t9.48 23.52q9.48 9.5 23.5 9.5t23.52-9.48ZM453-433h60v-253h-60v253Zm27.27 353q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z",
|
|
1497
|
-
fill: "M503.5-289.48q9.5-9.48 9.5-23.5t-9.48-23.52q-9.48-9.5-23.5-9.5t-23.52 9.48q-9.5 9.48-9.5 23.5t9.48 23.52q9.48 9.5 23.5 9.5t23.52-9.48ZM453-433h60v-253h-60v253Zm27.27 353q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Z"
|
|
1498
|
-
}
|
|
1499
|
-
},
|
|
1500
|
-
event: {
|
|
1501
|
-
300: {
|
|
1502
|
-
noFill: "M536.08-251.69q-26.08-26.3-26.08-64 0-37.69 26.3-63.77 26.31-26.08 64-26.08 37.7 0 63.78 26.31 26.07 26.3 26.07 64 0 37.69-26.3 63.77-26.3 26.07-64 26.07t-63.77-26.3ZM197.69-100q-23.53 0-40.61-17.08T140-157.69v-579.23q0-23.53 17.08-40.61t40.61-17.08h73.85v-70h50.38v70h317.69v-70h49.23v70h73.47q23.53 0 40.61 17.08T820-736.92v579.23q0 23.53-17.08 40.61T762.31-100H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46V-555H185.39v397.31q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3-454.99h589.22v-136.54q0-4.62-3.84-8.46-3.85-3.85-8.46-3.85H197.69q-4.61 0-8.46 3.85-3.84 3.84-3.84 8.46v136.54Zm0 0v-148.85 148.85Z",
|
|
1503
|
-
fill: "M536.08-251.69q-26.08-26.3-26.08-64 0-37.69 26.3-63.77 26.31-26.08 64-26.08 37.7 0 63.78 26.31 26.07 26.3 26.07 64 0 37.69-26.3 63.77-26.3 26.07-64 26.07t-63.77-26.3ZM197.69-100q-23.53 0-40.61-17.08T140-157.69v-579.23q0-23.53 17.08-40.61t40.61-17.08h73.85v-70h50.38v70h317.69v-70h49.23v70h73.47q23.53 0 40.61 17.08T820-736.92v579.23q0 23.53-17.08 40.61T762.31-100H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46V-555H185.39v397.31q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Z"
|
|
1504
|
-
},
|
|
1505
|
-
400: {
|
|
1506
|
-
noFill: "M528-248.18q-28-28.19-28-69Q500-358 528.18-386q28.19-28 69-28Q638-414 666-385.82q28 28.19 28 69Q694-276 665.82-248q-28.19 28-69 28Q556-220 528-248.18ZM180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Zm0-490h600v-130H180v130Zm0 0v-130 130Z",
|
|
1507
|
-
fill: "M528-248.18q-28-28.19-28-69Q500-358 528.18-386q28.19-28 69-28Q638-414 666-385.82q28 28.19 28 69Q694-276 665.82-248q-28.19 28-69 28Q556-220 528-248.18ZM180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Z"
|
|
1508
|
-
}
|
|
1509
|
-
},
|
|
1510
|
-
fiber_manual_record: {
|
|
1511
|
-
300: {
|
|
1512
|
-
noFill: "M478.38-478.38ZM295.73-295.73Q220-371.46 220-480t75.73-184.27Q371.46-740 480-740t184.27 75.73Q740-588.54 740-480t-75.73 184.27Q588.54-220 480-220t-184.27-75.73Zm336.42-32.06q62.46-62.41 62.46-152.16 0-89.74-62.4-152.2-62.41-62.46-152.16-62.46-89.74 0-152.2 62.4-62.46 62.41-62.46 152.16 0 89.74 62.4 152.2 62.41 62.46 152.16 62.46 89.74 0 152.2-62.4Z",
|
|
1513
|
-
fill: "M296.54-296.47Q220-372.93 220-479.93q0-106.99 76.47-183.53Q372.93-740 479.93-740q106.99 0 183.53 76.47Q740-587.07 740-480.07q0 106.99-76.47 183.53Q587.07-220 480.07-220q-106.99 0-183.53-76.47Z"
|
|
1514
|
-
},
|
|
1515
|
-
400: {
|
|
1516
|
-
noFill: "M478-478ZM281.5-281.5Q200-363 200-480t81.5-198.5Q363-760 480-760t198.5 81.5Q760-597 760-480t-81.5 198.5Q597-200 480-200t-198.5-81.5ZM636-324q64-64 64-156t-64-156q-64-64-156-64t-156 64q-64 64-64 156t64 156q64 64 156 64t156-64Z",
|
|
1517
|
-
fill: "M282.5-282.5Q200-365 200-480t82.5-197.5Q365-760 480-760t197.5 82.5Q760-595 760-480t-82.5 197.5Q595-200 480-200t-197.5-82.5Z"
|
|
1518
|
-
}
|
|
1519
|
-
},
|
|
1520
|
-
forward_5: {
|
|
1521
|
-
300: {
|
|
1522
|
-
noFill: "M347.39-126.46q-61.85-26.46-108.16-72.77-46.31-46.31-72.77-108.13Q140-369.19 140-439.98t26.46-132.63q26.46-61.85 72.77-108.16 46.31-46.31 108.14-72.77Q409.2-780 480-780h21.77l-76.08-76.08 31-30.99 128.15 127.76-127.38 127.77-31-30.61 72.08-72.46H480q-122.75 0-208.68 85.92t-85.93 208.65q0 122.73 85.92 208.69t208.65 85.96q122.73 0 208.69-85.93T774.61-440H820q0 70.8-26.46 132.63t-72.77 108.14q-46.31 46.31-108.13 72.77Q550.81-100 480.02-100t-132.63-26.46Zm38.76-192.39v-40.38h125.08v-60.23H386.15v-142.31H551v39.39H426.54v60.84h95.08q12.03 0 20.71 8.79 8.67 8.78 8.67 20.98v83.54q0 12.04-8.67 20.71-8.68 8.67-20.71 8.67H386.15Z",
|
|
1523
|
-
fill: "M347.39-126.46q-61.85-26.46-108.16-72.77-46.31-46.31-72.77-108.13Q140-369.19 140-439.98t26.46-132.63q26.46-61.85 72.77-108.16 46.31-46.31 108.14-72.77Q409.2-780 480-780h21.77l-76.08-76.08 31-30.99 128.15 127.76-127.38 127.77-31-30.61 72.08-72.46H480q-122.75 0-208.68 85.92t-85.93 208.65q0 122.73 85.92 208.69t208.65 85.96q122.73 0 208.69-85.93T774.61-440H820q0 70.8-26.46 132.63t-72.77 108.14q-46.31 46.31-108.13 72.77Q550.81-100 480.02-100t-132.63-26.46Zm38.76-192.39v-40.38h125.08v-60.23H386.15v-142.31H551v39.39H426.54v60.84h95.08q12.03 0 20.71 8.79 8.67 8.78 8.67 20.98v83.54q0 12.04-8.67 20.71-8.68 8.67-20.71 8.67H386.15Z"
|
|
1524
|
-
},
|
|
1525
|
-
400: {
|
|
1526
|
-
noFill: "M339.5-108Q274-136 225-185t-77-114.5Q120-365 120-440t28-140.5Q176-646 225-695t114.5-77Q405-800 480-800h21l-78-78 41-41 147 147-147 147-41-41 74-74h-17q-125 0-212.5 87.5T180-440q0 125 87.5 212.5T480-140q125 0 212.5-87.5T780-440h60q0 75-28 140.5T735-185q-49 49-114.5 77T480-80q-75 0-140.5-28ZM380-310v-50h127v-56H380v-155h176v49H430v57h92q14 0 24 10t10 24v87q0 14-10 24t-24 10H380Z",
|
|
1527
|
-
fill: "M339.5-108Q274-136 225-185t-77-114.5Q120-365 120-440t28-140.5Q176-646 225-695t114.5-77Q405-800 480-800h21l-78-78 41-41 147 147-147 147-41-41 74-74h-17q-125 0-212.5 87.5T180-440q0 125 87.5 212.5T480-140q125 0 212.5-87.5T780-440h60q0 75-28 140.5T735-185q-49 49-114.5 77T480-80q-75 0-140.5-28ZM380-310v-50h127v-56H380v-155h176v49H430v57h92q14 0 24 10t10 24v87q0 14-10 24t-24 10H380Z"
|
|
1528
|
-
}
|
|
1529
|
-
},
|
|
1530
|
-
group: {
|
|
1531
|
-
300: {
|
|
1532
|
-
noFill: "M70.31-187.69v-75.93q0-31.53 16.27-55.8 16.27-24.27 45.55-37.15 64.95-28.51 118.64-42.51 53.69-14 119.54-14 66.23 0 119.42 14t118.52 42.51q28.9 12.88 45.48 37.15 16.58 24.27 16.58 55.8v75.93h-600Zm665.38 0v-74.77q0-53.39-24.86-89.07-24.87-35.69-64.98-58.39 53.23 7.61 101.15 20.81 47.92 13.19 80.15 29.73 28.39 15.92 45.46 40.9 17.08 24.99 17.08 56.02v74.77h-154ZM275-530.31q-37.38-37.38-37.38-95.5 0-58.11 37.38-95.3 37.39-37.2 95.5-37.2 58.12 0 95.31 37.2Q503-683.92 503-625.81q0 58.12-37.19 95.5-37.19 37.39-95.31 37.39-58.11 0-95.5-37.39Zm374.18 0q-37.28 37.39-95.41 37.39-6.77 0-14.5-.93-7.73-.92-14.5-3.38 21.43-23.37 32.52-56.12 11.09-32.75 11.09-72.31 0-39.57-11.53-70.61-11.54-31.04-32.08-58.11 6.38-1.46 14.5-2.7 8.11-1.23 14.5-1.23 58.13 0 95.41 37.2 37.28 37.19 37.28 95.3 0 58.12-37.28 95.5ZM115.69-233.08h509.23v-30.54q0-16-9.11-30.03-9.12-14.04-26.19-22.35-62.77-29.31-110.62-40.5-47.84-11.19-108.69-11.19-60.46 0-108.62 11.19-48.15 11.19-110.92 40.5-17.08 8.31-26.08 22.35-9 14.03-9 30.03v30.54Zm317-330.15q24.93-24.92 24.93-62.38 0-37.47-24.93-62.39-24.92-24.92-62.38-24.92T307.92-688Q283-663.08 283-625.61q0 37.46 24.92 62.38 24.93 24.92 62.39 24.92t62.38-24.92Zm-62.38 330.15Zm0-392.53Z",
|
|
1533
|
-
fill: "M70.31-187.69v-75.93q0-31.53 16.27-55.8 16.27-24.27 45.58-37.12 64.92-28.54 118.61-42.54t119.54-14q66.23 0 119.42 14t118.5 42.54q28.92 12.85 45.5 37.12 16.58 24.27 16.58 55.8v75.93h-600Zm665.38 0v-74.77q0-53.39-24.88-89.08-24.89-35.69-64.96-58.38 53.23 7.61 101.15 20.81 47.92 13.19 80.15 29.73 28.39 15.92 45.46 40.84 17.08 24.92 17.08 56.08v74.77h-154ZM275-530.31q-37.38-37.38-37.38-95.5 0-58.11 37.38-95.3 37.39-37.2 95.5-37.2 58.12 0 95.31 37.2Q503-683.92 503-625.81q0 58.12-37.19 95.5-37.19 37.39-95.31 37.39-58.11 0-95.5-37.39Zm374.27 0q-37.19 37.39-95.5 37.39-6.77 0-14.5-.93-7.73-.92-14.5-3.38 21.31-23.46 32.46-56.12 11.15-32.65 11.15-72.26 0-39.62-11.53-70.66-11.54-31.04-32.08-58.11 6.38-1.46 14.5-2.7 8.11-1.23 14.5-1.23 58.31 0 95.5 37.2 37.19 37.19 37.19 95.3 0 58.12-37.19 95.5Z"
|
|
1534
|
-
},
|
|
1535
|
-
400: {
|
|
1536
|
-
noFill: "M38-160v-94q0-35 18-63.5t50-42.5q73-32 131.5-46T358-420q62 0 120 14t131 46q32 14 50.5 42.5T678-254v94H38Zm700 0v-94q0-63-32-103.5T622-423q69 8 130 23.5t99 35.5q33 19 52 47t19 63v94H738ZM250-523q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42Zm426 0q-42 42-108 42-11 0-24.5-1.5T519-488q24-25 36.5-61.5T568-631q0-45-12.5-79.5T519-774q11-3 24.5-5t24.5-2q66 0 108 42t42 108q0 66-42 108ZM98-220h520v-34q0-16-9.5-31T585-306q-72-32-121-43t-106-11q-57 0-106.5 11T130-306q-14 6-23 21t-9 31v34Zm324.5-346.5Q448-592 448-631t-25.5-64.5Q397-721 358-721t-64.5 25.5Q268-670 268-631t25.5 64.5Q319-541 358-541t64.5-25.5ZM358-220Zm0-411Z",
|
|
1537
|
-
fill: "M38-160v-94q0-35 18-63.5t50-42.5q73-32 131.5-46T358-420q62 0 120 14t131 46q32 14 50.5 42.5T678-254v94H38Zm700 0v-94q0-63-32-103.5T622-423q69 8 130 23.5t99 35.5q33 19 52 47t19 63v94H738ZM250-523q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42Zm426 0q-42 42-108 42-11 0-24.5-1.5T519-488q24-25 36.5-61.5T568-631q0-45-12.5-79.5T519-774q11-3 24.5-5t24.5-2q66 0 108 42t42 108q0 66-42 108Z"
|
|
1538
|
-
}
|
|
1539
|
-
},
|
|
1540
|
-
groups: {
|
|
1541
|
-
300: {
|
|
1542
|
-
noFill: "M20-248.46v-41.46q0-36.65 39.77-60.29t103.68-23.64q10.25 0 21.09.7 10.85.69 21.85 2.34-6.85 16.2-10.47 32.47-3.61 16.28-3.61 33.34v56.54H20Zm240 0v-55q0-28.09 15.77-51.35 15.77-23.27 45.46-40.57 29.69-17.31 70.16-25.96 40.46-8.66 88.46-8.66 48.92 0 89.38 8.66 40.46 8.65 70.15 25.96 29.7 17.3 45.16 40.57Q700-331.55 700-303.46v55H260Zm507.69 0v-56.42q0-17.97-3.11-34.24-3.12-16.26-10.35-31.61 11.77-1.73 22.36-2.42 10.6-.7 20.72-.7 64.03 0 103.36 23.2Q940-327.46 940-289.92v41.46H767.69ZM305-293.85h350v-8.69q1.15-36.61-47.23-59.34-48.39-22.73-127.77-22.73-79 0-127.58 22.73-48.57 22.73-47.42 59.96v8.07ZM162.54-405.38q-25 0-42.81-17.95-17.81-17.94-17.81-43.21 0-25.15 17.95-42.96 17.94-17.81 43.21-17.81 25.15 0 43.15 17.81t18 43.51q0 24.61-17.79 42.61t-43.9 18Zm634.33 0q-24.72 0-42.72-18.07-18-18.06-18-42.97 0-25.27 18.07-43.08 18.06-17.81 43.16-17.81 25.46 0 43.27 17.81 17.81 17.81 17.81 43.4 0 24.96-17.76 42.84-17.76 17.88-43.83 17.88ZM480.14-460q-43.22 0-73.6-30.29-30.38-30.28-30.38-73.55 0-44.14 30.28-73.99 30.29-29.86 73.56-29.86 44.13 0 73.99 29.82 29.85 29.81 29.85 73.89 0 43.21-29.81 73.6Q524.21-460 480.14-460Zm.4-45.38q24.69 0 41.31-16.97 16.61-16.96 16.61-42.04 0-24.68-16.72-41.3-16.71-16.61-41.39-16.61-24.58 0-41.7 16.71-17.11 16.72-17.11 41.4 0 24.58 16.96 41.69 16.97 17.12 42.04 17.12ZM480-293.85Zm0-269.99Z",
|
|
1543
|
-
fill: "M20-248.46v-41.46q0-36.65 39.77-60.29t103.68-23.64q10.25 0 21.09.7 10.85.69 21.85 2.34-6.85 16.2-10.47 32.47-3.61 16.28-3.61 33.34v56.54H20Zm240 0v-55q0-28.09 15.77-51.35 15.77-23.27 45.46-40.57 29.69-17.31 70.16-25.96 40.46-8.66 88.46-8.66 48.92 0 89.38 8.66 40.46 8.65 70.15 25.96 29.7 17.3 45.16 40.57Q700-331.55 700-303.46v55H260Zm507.69 0v-56.42q0-17.97-3.11-34.24-3.12-16.26-10.35-31.61 11.77-1.73 22.36-2.42 10.6-.7 20.72-.7 64.03 0 103.36 23.2Q940-327.46 940-289.92v41.46H767.69ZM162.54-405.38q-25 0-42.81-17.95-17.81-17.94-17.81-43.21 0-25.15 17.95-42.96 17.94-17.81 43.21-17.81 25.15 0 43.15 17.81t18 43.51q0 24.61-17.79 42.61t-43.9 18Zm634.33 0q-24.72 0-42.72-18.07-18-18.06-18-42.97 0-25.27 18.07-43.08 18.06-17.81 43.16-17.81 25.46 0 43.27 17.81 17.81 17.81 17.81 43.4 0 24.96-17.76 42.84-17.76 17.88-43.83 17.88ZM480.14-460q-43.22 0-73.6-30.29-30.38-30.28-30.38-73.55 0-44.14 30.28-73.99 30.29-29.86 73.56-29.86 44.13 0 73.99 29.82 29.85 29.81 29.85 73.89 0 43.21-29.81 73.6Q524.21-460 480.14-460Z"
|
|
1544
|
-
},
|
|
1545
|
-
400: {
|
|
1546
|
-
noFill: "M0-240v-53q0-38.57 41.5-62.78Q83-380 150.38-380q12.16 0 23.39.5t22.23 2.15q-8 17.35-12 35.17-4 17.81-4 37.18v65H0Zm240 0v-65q0-32 17.5-58.5T307-410q32-20 76.5-30t96.5-10q53 0 97.5 10t76.5 30q32 20 49 46.5t17 58.5v65H240Zm540 0v-65q0-19.86-3.5-37.43T765-377.27q11-1.73 22.17-2.23 11.17-.5 22.83-.5 67.5 0 108.75 23.77T960-293v53H780Zm-480-60h360v-6q0-37-50.5-60.5T480-390q-79 0-129.5 23.5T300-305v5ZM149.57-410q-28.57 0-49.07-20.56Q80-451.13 80-480q0-29 20.56-49.5Q121.13-550 150-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T149.57-410Zm660 0q-28.57 0-49.07-20.56Q740-451.13 740-480q0-29 20.56-49.5Q781.13-550 810-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T809.57-410ZM480-480q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T600-600q0 50-34.5 85T480-480Zm.35-60Q506-540 523-557.35t17-43Q540-626 522.85-643t-42.5-17q-25.35 0-42.85 17.15t-17.5 42.5q0 25.35 17.35 42.85t43 17.5ZM480-300Zm0-300Z",
|
|
1547
|
-
fill: "M0-240v-53q0-38.57 41.5-62.78Q83-380 150.38-380q12.16 0 23.39.5t22.23 2.15q-8 17.35-12 35.17-4 17.81-4 37.18v65H0Zm240 0v-65q0-32 17.5-58.5T307-410q32-20 76.5-30t96.5-10q53 0 97.5 10t76.5 30q32 20 49 46.5t17 58.5v65H240Zm540 0v-65q0-19.86-3.5-37.43T765-377.27q11-1.73 22.17-2.23 11.17-.5 22.83-.5 67.5 0 108.75 23.77T960-293v53H780ZM149.57-410q-28.57 0-49.07-20.56Q80-451.13 80-480q0-29 20.56-49.5Q121.13-550 150-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T149.57-410Zm660 0q-28.57 0-49.07-20.56Q740-451.13 740-480q0-29 20.56-49.5Q781.13-550 810-550q29 0 49.5 20.5t20.5 49.93q0 28.57-20.5 49.07T809.57-410ZM480-480q-50 0-85-35t-35-85q0-51 35-85.5t85-34.5q51 0 85.5 34.5T600-600q0 50-34.5 85T480-480Z"
|
|
1548
|
-
}
|
|
1549
|
-
},
|
|
1550
|
-
help: {
|
|
1551
|
-
300: {
|
|
1552
|
-
noFill: "M506.58-269.95q9.27-9.48 9.27-22.57 0-13.1-9.3-22.56-9.29-9.46-22.57-9.46-13.29 0-22.75 9.48-9.46 9.49-9.46 22.58 0 13.09 9.48 22.56 9.49 9.46 22.77 9.46 13.29 0 22.56-9.49ZM456.31-398h45.54q.38-24.46 7.65-44.04 7.27-19.58 37.04-44.88 29.84-26.39 42.46-49.85 12.61-23.46 12.61-51.66 0-49.42-32.34-79.88-32.35-30.46-83.65-30.46-44.39 0-78.62 22.77-34.23 22.77-50.46 59.62l41.84 16.15q11.39-26.85 32.43-41.77 21.04-14.92 51.81-14.92 36.69 0 57.3 20.04 20.62 20.03 20.62 49.42 0 21.61-12.23 40.15T513-508.92q-29.23 26-42.96 51.3-13.73 25.31-13.73 59.62Zm23.76 298q-78.22 0-147.4-29.92t-120.99-81.71q-51.81-51.79-81.75-120.94Q100-401.71 100-479.93q0-78.84 29.92-148.21t81.71-120.68q51.79-51.31 120.94-81.25Q401.71-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.22-29.92 147.4t-81.21 120.99q-51.29 51.81-120.63 81.75Q558.9-100 480.07-100Zm-.07-45.39q139.69 0 237.15-97.76 97.46-97.77 97.46-236.85 0-139.69-97.46-237.15-97.46-97.46-237.15-97.46-139.08 0-236.85 97.46-97.76 97.46-97.76 237.15 0 139.08 97.76 236.85 97.77 97.76 236.85 97.76ZM480-480Z",
|
|
1553
|
-
fill: "M506.58-269.95q9.27-9.48 9.27-22.57 0-13.1-9.3-22.56-9.29-9.46-22.57-9.46-13.29 0-22.75 9.48-9.46 9.49-9.46 22.58 0 13.09 9.48 22.56 9.49 9.46 22.77 9.46 13.29 0 22.56-9.49ZM456.31-398h45.54q.38-24.46 7.65-44.04 7.27-19.58 37.04-44.88 29.84-26.39 42.46-49.85 12.61-23.46 12.61-51.66 0-49.42-32.34-79.88-32.35-30.46-83.65-30.46-44.39 0-78.62 22.77-34.23 22.77-50.46 59.62l41.84 16.15q11.39-26.85 32.43-41.77 21.04-14.92 51.81-14.92 36.69 0 57.3 20.04 20.62 20.03 20.62 49.42 0 21.61-12.23 40.15T513-508.92q-29.23 26-42.96 51.3-13.73 25.31-13.73 59.62Zm23.76 298q-78.22 0-147.4-29.92t-120.99-81.71q-51.81-51.79-81.75-120.94Q100-401.71 100-479.93q0-78.84 29.92-148.21t81.71-120.68q51.79-51.31 120.94-81.25Q401.71-860 479.93-860q78.84 0 148.21 29.92t120.68 81.21q51.31 51.29 81.25 120.63Q860-558.9 860-480.07q0 78.22-29.92 147.4t-81.21 120.99q-51.29 51.81-120.63 81.75Q558.9-100 480.07-100Z"
|
|
1554
|
-
},
|
|
1555
|
-
400: {
|
|
1556
|
-
noFill: "M511-258q11-11 11-27t-11-27q-11-11-27-11t-27 11q-11 11-11 27t11 27q11 11 27 11t27-11Zm-62-135h59q0-26 6.5-47.5T555-490q31-26 44-51t13-55q0-53-34.5-85T486-713q-49 0-86.5 24.5T345-621l53 20q11-28 33-43.5t52-15.5q34 0 55 18.5t21 47.5q0 22-13 41.5T508-512q-30 26-44.5 51.5T449-393Zm31 313q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Zm0-60q142 0 241-99.5T820-480q0-142-99-241t-241-99q-141 0-240.5 99T140-480q0 141 99.5 240.5T480-140Zm0-340Z",
|
|
1557
|
-
fill: "M511-258q11-11 11-27t-11-27q-11-11-27-11t-27 11q-11 11-11 27t11 27q11 11 27 11t27-11Zm-62-135h59q0-26 6.5-47.5T555-490q31-26 44-51t13-55q0-53-34.5-85T486-713q-49 0-86.5 24.5T345-621l53 20q11-28 33-43.5t52-15.5q34 0 55 18.5t21 47.5q0 22-13 41.5T508-512q-30 26-44.5 51.5T449-393Zm31 313q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-156t86-127Q252-817 325-848.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 82-31.5 155T763-197.5q-54 54.5-127 86T480-80Z"
|
|
1558
|
-
}
|
|
1559
|
-
},
|
|
1560
|
-
id: {
|
|
1561
|
-
300: {
|
|
1562
|
-
noFill: "M157.69-100q-23.53 0-40.61-17.08T100-157.69v-444.62q0-23.53 17.08-40.61T157.69-660h244.23v-154.61q0-18.15 13.63-31.77Q429.18-860 447.34-860h65.42q18.16 0 31.74 13.62 13.58 13.62 13.58 31.77V-660h244.23q23.53 0 40.61 17.08T860-602.31v444.62q0 23.53-17.08 40.61T802.31-100H157.69Zm0-45.39h644.62q5.38 0 8.84-3.46t3.46-8.84v-444.62q0-5.38-3.46-8.84t-8.84-3.46H558.08v37.3q0 21.08-13.58 33.23-13.58 12.16-31.81 12.16h-65.38q-18.23 0-31.81-12.16-13.58-12.15-13.58-33.23v-37.3H157.69q-5.38 0-8.84 3.46t-3.46 8.84v444.62q0 5.38 3.46 8.84t8.84 3.46Zm82.77-111.23h226.69v-9q0-16.07-8.03-28.73Q451.08-307 438.23-312q-28.54-10.23-46.92-13.73-18.39-3.5-35.77-3.5-18.62 0-39.54 4.31-20.92 4.3-45.61 12.92-13.85 5-21.89 17.65-8.04 12.66-8.04 28.73v9Zm325.23-65.84H733v-40.39H565.69v40.39Zm-174.93-54.73q14.16-14.35 14.16-35.23 0-20.89-14.16-35.23Q376.59-462 355.72-462q-20.87 0-35.22 14.35-14.35 14.34-14.35 35.23 0 20.88 14.35 35.23 14.35 14.34 35.22 14.34 20.87 0 35.04-14.34Zm174.93-47.89H733v-40.38H565.69v40.38ZM447.31-577.31h65.38v-237.3h-65.38v237.3ZM480-380Z",
|
|
1563
|
-
fill: "M157.69-100q-23.53 0-40.61-17.08T100-157.69v-444.62q0-23.53 17.08-40.61T157.69-660h244.23v-154.61q0-17.98 13.72-31.68Q429.36-860 447.34-860h65.42q17.99 0 31.65 13.71 13.67 13.7 13.67 31.68V-660h244.23q23.53 0 40.61 17.08T860-602.31v444.62q0 23.53-17.08 40.61T802.31-100H157.69Zm82.77-156.62h226.69v-9q0-15.92-7.98-28.66-7.99-12.75-20.94-17.72-28.54-10.23-46.93-13.73-18.38-3.5-35.76-3.5-18.62 0-39.54 4.31-20.92 4.3-45.61 12.92-13.96 4.97-21.94 17.72-7.99 12.74-7.99 28.66v9Zm325.23-65.84H733v-40.39H565.69v40.39ZM390.76-377.1q14.16-14.26 14.16-35.23 0-20.98-14.07-35.32Q376.77-462 355.81-462t-35.31 14.26q-14.35 14.25-14.35 35.23 0 20.97 14.26 35.32 14.26 14.34 35.22 14.34t35.13-14.25Zm174.93-47.98H733v-40.38H565.69v40.38ZM447.31-577.31h65.38v-237.3h-65.38v237.3Z"
|
|
1564
|
-
},
|
|
1565
|
-
400: {
|
|
1566
|
-
noFill: "M140-80q-24 0-42-18t-18-42v-480q0-24 18-42t42-18h250v-140q0-24 18-42t42-18h60q24 0 42 18t18 42v140h250q24 0 42 18t18 42v480q0 24-18 42t-42 18H140Zm0-60h680v-480H570v30q0 28-18 44t-42 16h-60q-24 0-42-16t-18-44v-30H140v480Zm92-107h239v-14q0-18-9-32t-23-19q-32-11-50-14.5t-35-3.5q-19 0-40.5 4.5T265-312q-15 5-24 19t-9 32v14Zm336-67h170v-50H568v50Zm-175.5-65.5Q408-395 408-418t-15.5-38.5Q377-472 354-472t-38.5 15.5Q300-441 300-418t15.5 38.5Q331-364 354-364t38.5-15.5ZM568-427h170v-50H568v50ZM450-590h60v-230h-60v230Zm30 210Z",
|
|
1567
|
-
fill: "M140-80q-24 0-42-18t-18-42v-480q0-24 18-42t42-18h250v-140q0-24 18-42t42-18h60q24 0 42 18t18 42v140h250q24 0 42 18t18 42v480q0 24-18 42t-42 18H140Zm92-167h239v-14q0-18-9-32t-23-19q-32-11-50-14.5t-35-3.5q-19 0-40.5 4.5T265-312q-15 5-24 19t-9 32v14Zm336-67h170v-50H568v50Zm-175.5-65.5Q408-395 408-418t-15.5-38.5Q377-472 354-472t-38.5 15.5Q300-441 300-418t15.5 38.5Q331-364 354-364t38.5-15.5ZM568-427h170v-50H568v50ZM450-590h60v-230h-60v230Z"
|
|
1568
|
-
}
|
|
1569
|
-
},
|
|
1570
|
-
id_card: {
|
|
1571
|
-
300: {
|
|
1572
|
-
noFill: "M577.69-458.08h166.92v-45.38H577.69v45.38Zm0-115.38h166.92v-45.39H577.69v45.39Zm-362.3 239.61h292.3v-12.07q0-37.77-38.46-60.62-38.46-22.84-107.69-22.84-69.23 0-107.69 22.84-38.46 22.85-38.46 60.62v12.07Zm192.07-181.36q19-18.9 19-45.92 0-27.02-18.9-46.02-18.91-19-45.92-19-27.02 0-46.02 18.9-19 18.9-19 45.92 0 27.02 18.9 46.02 18.9 19 45.92 19 27.02 0 46.02-18.9ZM157.69-180q-23.53 0-40.61-17.08T100-237.69v-484.62q0-23.53 17.08-40.61T157.69-780h644.62q23.53 0 40.61 17.08T860-722.31v484.62q0 23.53-17.08 40.61T802.31-180H157.69Zm0-45.39h644.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-484.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H157.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v484.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3 0v-509.22 509.22Z",
|
|
1573
|
-
fill: "M577.69-458.08h166.92v-45.38H577.69v45.38Zm0-115.38h166.92v-45.39H577.69v45.39Zm-362.3 239.61h292.3v-12.07q0-37.77-38.46-60.62-38.46-22.84-107.69-22.84-69.23 0-107.69 22.84-38.46 22.85-38.46 60.62v12.07Zm192.07-181.44q19-18.98 19-45.92t-18.98-45.94q-18.98-19-45.92-19t-45.94 18.98q-19 18.98-19 45.92t18.98 45.94q18.98 19 45.92 19t45.94-18.98ZM157.69-180q-23.53 0-40.61-17.08T100-237.69v-484.62q0-23.53 17.08-40.61T157.69-780h644.62q23.53 0 40.61 17.08T860-722.31v484.62q0 23.53-17.08 40.61T802.31-180H157.69Z"
|
|
1574
|
-
},
|
|
1575
|
-
400: {
|
|
1576
|
-
noFill: "M580-450h180v-60H580v60Zm0-120h180v-60H580v60ZM200-320h320v-19q0-42-42.5-68.5T360-434q-75 0-117.5 26.5T200-339v19Zm211.5-195.42q21.5-21.42 21.5-51.5t-21.42-51.58q-21.42-21.5-51.5-21.5t-51.58 21.42q-21.5 21.42-21.5 51.5t21.42 51.58q21.42 21.5 51.5 21.5t51.58-21.42ZM140-160q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H140Zm0-60h680v-520H140v520Zm0 0v-520 520Z",
|
|
1577
|
-
fill: "M580-450h180v-60H580v60Zm0-120h180v-60H580v60ZM200-320h320v-19q0-42-42.5-68.5T360-434q-75 0-117.5 26.5T200-339v19Zm211.5-195.5Q433-537 433-567t-21.5-51.5Q390-640 360-640t-51.5 21.5Q287-597 287-567t21.5 51.5Q330-494 360-494t51.5-21.5ZM140-160q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h680q24 0 42 18t18 42v520q0 24-18 42t-42 18H140Z"
|
|
1578
|
-
}
|
|
1579
|
-
},
|
|
1580
|
-
image: {
|
|
1581
|
-
300: {
|
|
1582
|
-
noFill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm69.47-102.38h429.76L567.23-460.31 446.38-306.23l-82.23-107.38-96.99 125.84Zm-81.77 102.38v-589.22 589.22Z",
|
|
1583
|
-
fill: "M197.69-140q-23.61 0-40.65-17.04T140-197.69v-564.62q0-23.61 17.04-40.65T197.69-820h564.62q23.61 0 40.65 17.04T820-762.31v564.62q0 23.61-17.04 40.65T762.31-140H197.69Zm69.47-147.77h429.76L567.23-460.31 446.38-306.23l-82.23-107.38-96.99 125.84Z"
|
|
1584
|
-
},
|
|
1585
|
-
400: {
|
|
1586
|
-
noFill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm56-97h489L578-473 446-302l-93-127-117 152Zm-56 97v-600 600Z",
|
|
1587
|
-
fill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm56-157h489L578-473 446-302l-93-127-117 152Z"
|
|
1588
|
-
}
|
|
1589
|
-
},
|
|
1590
|
-
indeterminate_check_box: {
|
|
1591
|
-
300: {
|
|
1592
|
-
noFill: "M268.08-458.92h424.46v-45.39H268.08v45.39ZM197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H197.69Zm0-45.39h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84Zm-12.3-589.22v589.22-589.22Z",
|
|
1593
|
-
fill: "M268.08-458.92h424.46v-45.39H268.08v45.39ZM197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H197.69Z"
|
|
1594
|
-
},
|
|
1595
|
-
400: {
|
|
1596
|
-
noFill: "M250-452h461v-60H250v60Zm-70 332q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Zm0-60h600v-600H180v600Zm0-600v600-600Z",
|
|
1597
|
-
fill: "M250-452h461v-60H250v60Zm-70 332q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H180Z"
|
|
1598
|
-
}
|
|
1599
|
-
},
|
|
1600
|
-
info: {
|
|
1601
|
-
300: {
|
|
1602
|
-
noFill: "M459.54-290h45.38v-230h-45.38v230Zm39.73-301.56q7.96-7.57 7.96-19.05 0-11.95-7.85-19.9-7.85-7.95-19.36-7.95-11.9 0-19.58 7.95-7.67 7.95-7.67 19.9 0 11.48 7.94 19.05 7.95 7.56 19.27 7.56 11.33 0 19.29-7.56ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Zm.17-45.39q139.19 0 236.65-97.76 97.46-97.77 97.46-237.35 0-139.19-97.27-236.65-97.27-97.46-237.34-97.46-139.08 0-236.85 97.27-97.76 97.27-97.76 237.34 0 139.08 97.76 236.85 97.77 97.76 237.35 97.76ZM480-480Z",
|
|
1603
|
-
fill: "M459.54-290h45.38v-230h-45.38v230Zm39.73-301.56q7.96-7.57 7.96-19.05 0-11.95-7.85-19.9-7.85-7.95-19.36-7.95-11.9 0-19.58 7.95-7.67 7.95-7.67 19.9 0 11.48 7.94 19.05 7.95 7.56 19.27 7.56 11.33 0 19.29-7.56ZM480.33-100q-78.95 0-147.89-29.92-68.95-29.92-120.76-81.71-51.81-51.79-81.75-120.78Q100-401.39 100-480.43q0-78.66 29.92-147.87 29.92-69.21 81.71-120.52 51.79-51.31 120.78-81.25Q401.39-860 480.43-860q78.66 0 147.87 29.92 69.21 29.92 120.52 81.21 51.31 51.29 81.25 120.63Q860-558.9 860-480.33q0 78.95-29.92 147.89-29.92 68.95-81.21 120.57-51.29 51.63-120.63 81.75Q558.9-100 480.33-100Z"
|
|
1604
|
-
},
|
|
1605
|
-
400: {
|
|
1606
|
-
noFill: "M453-280h60v-240h-60v240Zm50.5-323.2q9.5-9.2 9.5-22.8 0-14.45-9.48-24.22-9.48-9.78-23.5-9.78t-23.52 9.78Q447-640.45 447-626q0 13.6 9.48 22.8 9.48 9.2 23.5 9.2t23.52-9.2ZM480.27-80q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Zm.23-60Q622-140 721-239.5t99-241Q820-622 721.19-721T480-820q-141 0-240.5 98.81T140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z",
|
|
1607
|
-
fill: "M453-280h60v-240h-60v240Zm50.5-323.2q9.5-9.2 9.5-22.8 0-14.45-9.48-24.22-9.48-9.78-23.5-9.78t-23.52 9.78Q447-640.45 447-626q0 13.6 9.48 22.8 9.48 9.2 23.5 9.2t23.52-9.2ZM480.27-80q-82.74 0-155.5-31.5Q252-143 197.5-197.5t-86-127.34Q80-397.68 80-480.5t31.5-155.66Q143-709 197.5-763t127.34-85.5Q397.68-880 480.5-880t155.66 31.5Q709-817 763-763t85.5 127Q880-563 880-480.27q0 82.74-31.5 155.5Q817-252 763-197.68q-54 54.31-127 86Q563-80 480.27-80Z"
|
|
1608
|
-
}
|
|
1609
|
-
},
|
|
1610
|
-
keyboard_arrow_down: {
|
|
1611
|
-
300: {
|
|
1612
|
-
noFill: "M480-357.85 253.85-584l32.61-32.61L480-423.08l193.54-193.53L706.15-584 480-357.85Z",
|
|
1613
|
-
fill: "M480-357.85 253.85-584l32.61-32.61L480-423.08l193.54-193.53L706.15-584 480-357.85Z"
|
|
1614
|
-
},
|
|
1615
|
-
400: {
|
|
1616
|
-
noFill: "M480-344 240-584l43-43 197 197 197-197 43 43-240 240Z",
|
|
1617
|
-
fill: "M480-344 240-584l43-43 197 197 197-197 43 43-240 240Z"
|
|
1618
|
-
}
|
|
1619
|
-
},
|
|
1620
|
-
keyboard_arrow_left: {
|
|
1621
|
-
300: {
|
|
1622
|
-
noFill: "M560.62-253.85 333.85-480.62l226.77-227.15 32.61 32.62-194.15 194.53 194.15 194.16-32.61 32.61Z",
|
|
1623
|
-
fill: "M560.62-253.85 333.85-480.62l226.77-227.15 32.61 32.62-194.15 194.53 194.15 194.16-32.61 32.61Z"
|
|
1624
|
-
},
|
|
1625
|
-
400: {
|
|
1626
|
-
noFill: "M561-240 320-481l241-241 43 43-198 198 198 198-43 43Z",
|
|
1627
|
-
fill: "M561-240 320-481l241-241 43 43-198 198 198 198-43 43Z"
|
|
1628
|
-
}
|
|
1629
|
-
},
|
|
1630
|
-
keyboard_arrow_right: {
|
|
1631
|
-
300: {
|
|
1632
|
-
noFill: "M536.92-480.62 342.77-675.15l32.61-32.62 226.77 227.15-226.77 226.77-32.61-32.61 194.15-194.16Z",
|
|
1633
|
-
fill: "M536.92-480.62 342.77-675.15l32.61-32.62 226.77 227.15-226.77 226.77-32.61-32.61 194.15-194.16Z"
|
|
1634
|
-
},
|
|
1635
|
-
400: {
|
|
1636
|
-
noFill: "M530-481 332-679l43-43 241 241-241 241-43-43 198-198Z",
|
|
1637
|
-
fill: "M530-481 332-679l43-43 241 241-241 241-43-43 198-198Z"
|
|
1638
|
-
}
|
|
1639
|
-
},
|
|
1640
|
-
keyboard_arrow_up: {
|
|
1641
|
-
300: {
|
|
1642
|
-
noFill: "M480-560.92 286.46-367.39 253.85-400 480-626.15 706.15-400l-32.61 32.61L480-560.92Z",
|
|
1643
|
-
fill: "M480-560.92 286.46-367.39 253.85-400 480-626.15 706.15-400l-32.61 32.61L480-560.92Z"
|
|
1644
|
-
},
|
|
1645
|
-
400: {
|
|
1646
|
-
noFill: "M480-554 283-357l-43-43 240-240 240 240-43 43-197-197Z",
|
|
1647
|
-
fill: "M480-554 283-357l-43-43 240-240 240 240-43 43-197-197Z"
|
|
1648
|
-
}
|
|
1649
|
-
},
|
|
1650
|
-
location_on: {
|
|
1651
|
-
300: {
|
|
1652
|
-
noFill: "M526.04-511.65Q545-530.62 545-557.69q0-27.08-18.96-46.04T480-622.69q-27.08 0-46.04 18.96T415-557.69q0 27.07 18.96 46.04 18.96 18.96 46.04 18.96t46.04-18.96ZM480-159.77q125.31-111.77 190.92-213.15 65.62-101.39 65.62-177.16 0-116.07-73.77-190.5Q589-815 480-815q-109 0-182.77 74.42-73.77 74.43-73.77 190.5 0 75.77 66.73 177.16Q356.92-271.54 480-159.77Zm0 60.15Q329-230.46 253.54-343.15q-75.46-112.7-75.46-206.93 0-138.46 89.57-224.19Q357.23-860 480-860t212.35 85.73q89.57 85.73 89.57 224.19 0 94.23-75.46 206.93Q631-230.46 480-99.62Zm0-458.07Z",
|
|
1653
|
-
fill: "M526.04-511.77Q545-530.85 545-557.81t-19.08-45.92q-19.08-18.96-46.04-18.96t-45.92 19.08Q415-584.53 415-557.57q0 26.95 19.08 45.92 19.08 18.96 46.04 18.96t45.92-19.08ZM480-99.62Q329-230.46 253.54-343.15q-75.46-112.7-75.46-206.93 0-138.46 89.57-224.19Q357.23-860 480-860t212.35 85.73q89.57 85.73 89.57 224.19 0 94.23-75.46 206.93Q631-230.46 480-99.62Z"
|
|
1654
|
-
},
|
|
1655
|
-
400: {
|
|
1656
|
-
noFill: "M529.5-510.5Q550-531 550-560t-20.5-49.5Q509-630 480-630t-49.5 20.5Q410-589 410-560t20.5 49.5Q451-490 480-490t49.5-20.5ZM480-159q133-121 196.5-219.5T740-552q0-118-75.5-193T480-820q-109 0-184.5 75T220-552q0 75 65 173.5T480-159Zm0 79Q319-217 239.5-334.5T160-552q0-150 96.5-239T480-880q127 0 223.5 89T800-552q0 100-79.5 217.5T480-80Zm0-480Z",
|
|
1657
|
-
fill: "M529.5-510.59q20.5-20.59 20.5-49.5t-20.59-49.41q-20.59-20.5-49.5-20.5t-49.41 20.59q-20.5 20.59-20.5 49.5t20.59 49.41q20.59 20.5 49.5 20.5t49.41-20.59ZM480-80Q319-217 239.5-334.5T160-552q0-150 96.5-239T480-880q127 0 223.5 89T800-552q0 100-79.5 217.5T480-80Z"
|
|
1658
|
-
}
|
|
1659
|
-
},
|
|
1660
|
-
login: {
|
|
1661
|
-
300: {
|
|
1662
|
-
noFill: "M480.23-140v-45.39h282.08q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H480.23V-820h282.08q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H480.23Zm-35.77-187.69-33-32.23 97.39-97.39H140v-45.38h367.62l-97.39-97.39 32.62-32.61 153.3 153.5-151.69 151.5Z",
|
|
1663
|
-
fill: "M480.23-140v-45.39h282.08q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-564.62q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H480.23V-820h282.08q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H480.23Zm-35.77-187.69-33-32.23 97.39-97.39H140.39v-45.38h367.23l-97.39-97.39 32.62-32.61 153.3 153.5-151.69 151.5Z"
|
|
1664
|
-
},
|
|
1665
|
-
400: {
|
|
1666
|
-
noFill: "M481-120v-60h299v-600H481v-60h299q24 0 42 18t18 42v600q0 24-18 42t-42 18H481Zm-55-185-43-43 102-102H120v-60h363L381-612l43-43 176 176-174 174Z",
|
|
1667
|
-
fill: "M481-120v-60h299v-600H481v-60h299q24 0 42 18t18 42v600q0 24-18 42t-42 18H481Zm-55-185-43-43 102-102H120v-60h363L381-612l43-43 176 176-174 174Z"
|
|
1668
|
-
}
|
|
1669
|
-
},
|
|
1670
|
-
logout: {
|
|
1671
|
-
300: {
|
|
1672
|
-
noFill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h282.08v45.39H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h282.08V-140H197.69Zm470.62-187.69-33-32.23 97.38-97.39H363.85v-45.38h367.61l-97.38-97.39 32.61-32.61L820-479.19l-151.69 151.5Z",
|
|
1673
|
-
fill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h282.08v45.39H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h282.08V-140H197.69Zm470.62-187.69-33-32.23 97.38-97.39H363.85v-45.38h367.61l-97.38-97.39 32.61-32.61L820-479.19l-151.69 151.5Z"
|
|
1674
|
-
},
|
|
1675
|
-
400: {
|
|
1676
|
-
noFill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h299v60H180v600h299v60H180Zm486-185-43-43 102-102H360v-60h363L621-612l43-43 176 176-174 174Z",
|
|
1677
|
-
fill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h299v60H180v600h299v60H180Zm486-185-43-43 102-102H360v-60h363L621-612l43-43 176 176-174 174Z"
|
|
1678
|
-
}
|
|
1679
|
-
},
|
|
1680
|
-
more_vert: {
|
|
1681
|
-
300: {
|
|
1682
|
-
noFill: "M479.88-189.23q-15.09 0-25.72-10.75-10.62-10.74-10.62-25.83 0-15.09 10.75-25.91 10.74-10.82 25.83-10.82 15.09 0 25.72 10.87 10.62 10.86 10.62 26.12 0 15.1-10.75 25.71-10.74 10.61-25.83 10.61Zm0-254.31q-15.09 0-25.72-10.75-10.62-10.74-10.62-25.83 0-15.09 10.75-25.72 10.74-10.62 25.83-10.62 15.09 0 25.72 10.75 10.62 10.74 10.62 25.83 0 15.09-10.75 25.72-10.74 10.62-25.83 10.62Zm0-253.92q-15.09 0-25.72-10.87-10.62-10.86-10.62-26.12 0-15.1 10.75-25.71 10.74-10.61 25.83-10.61 15.09 0 25.72 10.75 10.62 10.74 10.62 25.83 0 15.09-10.75 25.91-10.74 10.82-25.83 10.82Z",
|
|
1683
|
-
fill: "M479.88-189.23q-15.09 0-25.72-10.75-10.62-10.74-10.62-25.83 0-15.09 10.75-25.91 10.74-10.82 25.83-10.82 15.09 0 25.72 10.87 10.62 10.86 10.62 26.12 0 15.1-10.75 25.71-10.74 10.61-25.83 10.61Zm0-254.31q-15.09 0-25.72-10.75-10.62-10.74-10.62-25.83 0-15.09 10.75-25.72 10.74-10.62 25.83-10.62 15.09 0 25.72 10.75 10.62 10.74 10.62 25.83 0 15.09-10.75 25.72-10.74 10.62-25.83 10.62Zm0-253.92q-15.09 0-25.72-10.87-10.62-10.86-10.62-26.12 0-15.1 10.75-25.71 10.74-10.61 25.83-10.61 15.09 0 25.72 10.75 10.62 10.74 10.62 25.83 0 15.09-10.75 25.91-10.74 10.82-25.83 10.82Z"
|
|
1684
|
-
},
|
|
1685
|
-
400: {
|
|
1686
|
-
noFill: "M479.86-160Q460-160 446-174.14t-14-34Q432-228 446.14-242t34-14Q500-256 514-241.86t14 34Q528-188 513.86-174t-34 14Zm0-272Q460-432 446-446.14t-14-34Q432-500 446.14-514t34-14Q500-528 514-513.86t14 34Q528-460 513.86-446t-34 14Zm0-272Q460-704 446-718.14t-14-34Q432-772 446.14-786t34-14Q500-800 514-785.86t14 34Q528-732 513.86-718t-34 14Z",
|
|
1687
|
-
fill: "M479.86-160Q460-160 446-174.14t-14-34Q432-228 446.14-242t34-14Q500-256 514-241.86t14 34Q528-188 513.86-174t-34 14Zm0-272Q460-432 446-446.14t-14-34Q432-500 446.14-514t34-14Q500-528 514-513.86t14 34Q528-460 513.86-446t-34 14Zm0-272Q460-704 446-718.14t-14-34Q432-772 446.14-786t34-14Q500-800 514-785.86t14 34Q528-732 513.86-718t-34 14Z"
|
|
1688
|
-
}
|
|
1689
|
-
},
|
|
1690
|
-
open_in_browser: {
|
|
1691
|
-
300: {
|
|
1692
|
-
noFill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H583.46v-45.39h178.85q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-511.54H185.39v511.54q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h178.85V-140H197.69Zm259.62 0v-276.69l-88 87.61-32.62-32.23L480-504.61l143.31 143.3-32.62 32.23-88-87.61V-140h-45.38Z",
|
|
1693
|
-
fill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h564.62q23.53 0 40.61 17.08T820-762.31v564.62q0 23.53-17.08 40.61T762.31-140H583.46v-45.39h178.85q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-511.54H185.39v511.54q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h178.85V-140H197.69Zm259.62 0v-276.69l-88 87.61-32.62-32.23L480-504.61l143.31 143.3-32.62 32.23-88-87.61V-140h-45.38Z"
|
|
1694
|
-
},
|
|
1695
|
-
400: {
|
|
1696
|
-
noFill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H570v-60h210v-540H180v540h210v60H180Zm270 0v-284l-83 83-43-43 156-156 156 156-43 43-83-83v284h-60Z",
|
|
1697
|
-
fill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h600q24 0 42 18t18 42v600q0 24-18 42t-42 18H570v-60h210v-540H180v540h210v60H180Zm270 0v-284l-83 83-43-43 156-156 156 156-43 43-83-83v284h-60Z"
|
|
1698
|
-
}
|
|
1699
|
-
},
|
|
1700
|
-
open_in_new: {
|
|
1701
|
-
300: {
|
|
1702
|
-
noFill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h251.69v45.39H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-251.69H820v251.69q0 23.53-17.08 40.61T762.31-140H197.69Zm186.62-211.69-32-32.62 390.31-390.3H530.15V-820H820v289.85h-45.39V-742l-390.3 390.31Z",
|
|
1703
|
-
fill: "M197.69-140q-23.53 0-40.61-17.08T140-197.69v-564.62q0-23.53 17.08-40.61T197.69-820h251.69v45.39H197.69q-4.61 0-8.46 3.84-3.84 3.85-3.84 8.46v564.62q0 4.61 3.84 8.46 3.85 3.84 8.46 3.84h564.62q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-251.69H820v251.69q0 23.53-17.08 40.61T762.31-140H197.69Zm186.62-211.69-32-32.62 390.31-390.3H530.15V-820H820v289.85h-45.39V-742l-390.3 390.31Z"
|
|
1704
|
-
},
|
|
1705
|
-
400: {
|
|
1706
|
-
noFill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h279v60H180v600h600v-279h60v279q0 24-18 42t-42 18H180Zm202-219-42-43 398-398H519v-60h321v321h-60v-218L382-339Z",
|
|
1707
|
-
fill: "M180-120q-24 0-42-18t-18-42v-600q0-24 18-42t42-18h279v60H180v600h600v-279h60v279q0 24-18 42t-42 18H180Zm202-219-42-43 398-398H519v-60h321v321h-60v-218L382-339Z"
|
|
1708
|
-
}
|
|
1709
|
-
},
|
|
1710
|
-
pause: {
|
|
1711
|
-
300: {
|
|
1712
|
-
noFill: "M533.85-220v-520H740v520H533.85ZM220-220v-520h206.54v520H220Zm359.23-45.39h115.38v-429.22H579.23v429.22Zm-313.84 0h115.76v-429.22H265.39v429.22Zm0-429.22v429.22-429.22Zm313.84 0v429.22-429.22Z",
|
|
1713
|
-
fill: "M556.54-220v-520h160.77v520H556.54Zm-313.85 0v-520h161.16v520H242.69Z"
|
|
1714
|
-
},
|
|
1715
|
-
400: {
|
|
1716
|
-
noFill: "M525-200v-560h235v560H525Zm-325 0v-560h235v560H200Zm385-60h115v-440H585v440Zm-325 0h115v-440H260v440Zm0-440v440-440Zm325 0v440-440Z",
|
|
1717
|
-
fill: "M555-200v-560h175v560H555Zm-325 0v-560h175v560H230Z"
|
|
1718
|
-
}
|
|
1719
|
-
},
|
|
1720
|
-
person: {
|
|
1721
|
-
300: {
|
|
1722
|
-
noFill: "M384.69-530.31q-37.38-37.38-37.38-95.5 0-58.11 37.38-95.3 37.39-37.2 95.31-37.2t95.31 37.2q37.38 37.19 37.38 95.3 0 58.12-37.38 95.5-37.39 37.39-95.31 37.39t-95.31-37.39ZM180-187.69v-75.93q0-32.23 17.08-56.15t44.38-36.77q63.16-28.07 121.77-42.31 58.62-14.23 116.77-14.23t116.46 14.54q58.31 14.54 121.46 42 27.92 12.85 45 36.77T780-263.62v75.93H180Zm45.39-45.39h509.22v-30.54q0-15.61-9.88-29.92-9.88-14.31-25.81-22.46-59-28.69-111.3-40.19-52.3-11.5-107.62-11.5-55.32 0-108.43 11.5-53.11 11.5-111.11 40.19-15.92 8.15-25.5 22.46-9.57 14.31-9.57 29.92v30.54Zm316.99-330.15q24.93-24.92 24.93-62.38 0-37.47-24.93-62.39-24.92-24.92-62.38-24.92T417.62-688q-24.93 24.92-24.93 62.39 0 37.46 24.93 62.38 24.92 24.92 62.38 24.92t62.38-24.92ZM480-625.61Zm0 392.53Z",
|
|
1723
|
-
fill: "M384.69-530.31q-37.38-37.38-37.38-95.5 0-58.11 37.38-95.3 37.39-37.2 95.31-37.2t95.31 37.2q37.38 37.19 37.38 95.3 0 58.12-37.38 95.5-37.39 37.39-95.31 37.39t-95.31-37.39ZM180-187.69v-75.93q0-32.23 17.08-56.15t44.38-36.77q63.16-28.07 121.77-42.31 58.62-14.23 116.77-14.23t116.46 14.54q58.31 14.54 121.46 42 27.92 12.85 45 36.77T780-263.62v75.93H180Z"
|
|
1724
|
-
},
|
|
1725
|
-
400: {
|
|
1726
|
-
noFill: "M372-523q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42ZM160-160v-94q0-38 19-65t49-41q67-30 128.5-45T480-420q62 0 123 15.5T731-360q31 14 50 41t19 65v94H160Zm60-60h520v-34q0-16-9.5-30.5T707-306q-64-31-117-42.5T480-360q-57 0-111 11.5T252-306q-14 7-23 21.5t-9 30.5v34Zm324.5-346.5Q570-592 570-631t-25.5-64.5Q519-721 480-721t-64.5 25.5Q390-670 390-631t25.5 64.5Q441-541 480-541t64.5-25.5ZM480-631Zm0 411Z",
|
|
1727
|
-
fill: "M372-523q-42-42-42-108t42-108q42-42 108-42t108 42q42 42 42 108t-42 108q-42 42-108 42t-108-42ZM160-160v-94q0-38 19-65t49-41q67-30 128.5-45T480-420q62 0 123 15.5T731-360q31 14 50 41t19 65v94H160Z"
|
|
1728
|
-
}
|
|
1729
|
-
},
|
|
1730
|
-
photo_camera: {
|
|
1731
|
-
300: {
|
|
1732
|
-
noFill: "M479.69-280.46q66.92 0 112.27-45.35 45.35-45.34 45.35-112.27 0-66.92-45.35-111.96-45.35-45.04-112.27-45.04-66.92 0-111.96 45.04-45.04 45.04-45.04 111.96 0 66.93 45.04 112.27 45.04 45.35 111.96 45.35Zm0-45.39q-48.07 0-79.84-32.07-31.77-32.08-31.77-80.16 0-48.07 31.77-79.84 31.77-31.77 79.84-31.77 48.08 0 80.16 31.77 32.07 31.77 32.07 79.84 0 48.08-32.07 80.16-32.08 32.07-80.16 32.07ZM157.69-140q-23.53 0-40.61-17.08T100-197.69v-479.54q0-23 17.08-40.35 17.08-17.34 40.61-17.34h137.39L368.46-820h223.08l73.38 85.08h137.39q23 0 40.34 17.34Q860-700.23 860-677.23v479.54q0 23.53-17.35 40.61Q825.31-140 802.31-140H157.69Zm0-45.39h644.62q5.38 0 8.84-3.46t3.46-8.84v-479.54q0-5-3.46-8.65-3.46-3.66-8.84-3.66H643.85l-73.39-85.07H389.54l-73.39 85.07H157.69q-5.38 0-8.84 3.66-3.46 3.65-3.46 8.65v479.54q0 5.38 3.46 8.84t8.84 3.46ZM480-437.77Z",
|
|
1733
|
-
fill: "M480-280.46q66.61 0 111.96-45.35 45.35-45.34 45.35-111.96 0-67.23-45.35-112.27-45.35-45.04-111.96-45.04-67.23 0-112.27 45.04-45.04 45.04-45.04 112.27 0 66.62 45.04 111.96 45.04 45.35 112.27 45.35Zm0-45.39q-48.38 0-80.15-32.07-31.77-32.08-31.77-79.85 0-48.38 31.77-80.15 31.77-31.77 80.15-31.77 47.77 0 79.85 31.77 32.07 31.77 32.07 80.15 0 47.77-32.07 79.85-32.08 32.07-79.85 32.07ZM157.69-140q-23.61 0-40.65-17.04T100-197.69v-479.54q0-23 17.04-40.35 17.04-17.34 40.65-17.34h137.39L368.46-820h223.08l73.38 85.08h137.39q23 0 40.34 17.34Q860-700.23 860-677.23v479.54q0 23.61-17.35 40.65Q825.31-140 802.31-140H157.69Z"
|
|
1734
|
-
},
|
|
1735
|
-
400: {
|
|
1736
|
-
noFill: "M479.5-267q72.5 0 121.5-49t49-121.5q0-72.5-49-121T479.5-607q-72.5 0-121 48.5t-48.5 121q0 72.5 48.5 121.5t121 49Zm0-60q-47.5 0-78.5-31.5t-31-79q0-47.5 31-78.5t78.5-31q47.5 0 79 31t31.5 78.5q0 47.5-31.5 79t-79 31.5ZM140-120q-24 0-42-18t-18-42v-513q0-23 18-41.5t42-18.5h147l73-87h240l73 87h147q23 0 41.5 18.5T880-693v513q0 24-18.5 42T820-120H140Zm0-60h680v-513H645l-73-87H388l-73 87H140v513Zm340-257Z",
|
|
1737
|
-
fill: "M480-267q72 0 121-49t49-121q0-73-49-121.5T480-607q-73 0-121.5 48.5T310-437q0 72 48.5 121T480-267Zm0-60q-48 0-79-31.5T370-437q0-48 31-79t79-31q47 0 78.5 31t31.5 79q0 47-31.5 78.5T480-327ZM140-120q-24 0-42-18t-18-42v-513q0-23 18-41.5t42-18.5h147l73-87h240l73 87h147q23 0 41.5 18.5T880-693v513q0 24-18.5 42T820-120H140Z"
|
|
1738
|
-
}
|
|
1739
|
-
},
|
|
1740
|
-
photo_library: {
|
|
1741
|
-
300: {
|
|
1742
|
-
noFill: "M352.31-389.31h367.15L603.23-545.69l-103 132.31L433-496.15l-80.69 106.84Zm-73.85 158.54q-23.53 0-40.61-17.08t-17.08-40.61v-513.85q0-23.53 17.08-40.61T278.46-860h513.85q23.52 0 40.61 17.08Q850-825.84 850-802.31v513.85q0 23.53-17.08 40.61-17.09 17.08-40.61 17.08H278.46Zm0-45.39h513.85q4.61 0 8.46-3.84 3.84-3.85 3.84-8.46v-513.85q0-4.61-3.84-8.46-3.85-3.84-8.46-3.84H278.46q-4.61 0-8.46 3.84-3.85 3.85-3.85 8.46v513.85q0 4.61 3.85 8.46 3.85 3.84 8.46 3.84ZM167.69-120q-23.52 0-40.61-17.08Q110-154.17 110-177.7v-559.22h45.39v559.22q0 4.62 3.84 8.47 3.85 3.84 8.46 3.84h559.23V-120H167.69Zm98.46-694.61v538.45-538.45Z",
|
|
1743
|
-
fill: "M352.31-389.31h367.15L603.23-545.69l-103 132.31L433-496.15l-80.69 106.84Zm-73.85 158.54q-23.53 0-40.61-17.08t-17.08-40.61v-513.85q0-23.53 17.08-40.61T278.46-860h513.85q23.52 0 40.61 17.08Q850-825.84 850-802.31v513.85q0 23.53-17.08 40.61-17.09 17.08-40.61 17.08H278.46ZM167.69-120q-23.52 0-40.61-17.08Q110-154.17 110-177.7v-559.22h45.39v559.22q0 4.62 3.84 8.47 3.85 3.84 8.46 3.84h559.23V-120H167.69Z"
|
|
1744
|
-
},
|
|
1745
|
-
400: {
|
|
1746
|
-
noFill: "M345-377h391L609-548 506-413l-68-87-93 123Zm-85 177q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h560q24 0 42 18t18 42v560q0 24-18 42t-42 18H260Zm0-60h560v-560H260v560ZM140-80q-24 0-42-18t-18-42v-620h60v620h620v60H140Zm120-740v560-560Z",
|
|
1747
|
-
fill: "M345-377h391L609-548 506-413l-68-87-93 123Zm-85 177q-24 0-42-18t-18-42v-560q0-24 18-42t42-18h560q24 0 42 18t18 42v560q0 24-18 42t-42 18H260ZM140-80q-24 0-42-18t-18-42v-620h60v620h620v60H140Z"
|
|
1748
|
-
}
|
|
1749
|
-
},
|
|
1750
|
-
play_arrow: {
|
|
1751
|
-
300: {
|
|
1752
|
-
noFill: "M340-238.39v-487.68l383.07 243.84L340-238.39Zm45.39-243.84Zm0 161 253.99-161-253.99-161v322Z",
|
|
1753
|
-
fill: "M340-238.39v-487.68l383.07 243.84L340-238.39Z"
|
|
1754
|
-
},
|
|
1755
|
-
400: {
|
|
1756
|
-
noFill: "M320-203v-560l440 280-440 280Zm60-280Zm0 171 269-171-269-171v342Z",
|
|
1757
|
-
fill: "M320-203v-560l440 280-440 280Z"
|
|
1758
|
-
}
|
|
1759
|
-
},
|
|
1760
|
-
replay_5: {
|
|
1761
|
-
300: {
|
|
1762
|
-
noFill: "M347.39-126.46q-61.85-26.46-108.16-72.77-46.31-46.31-72.77-108.14Q140-369.2 140-440h45.39q0 122.69 85.96 208.65 85.96 85.96 208.65 85.96 122.69 0 208.65-85.96 85.96-85.96 85.96-208.65 0-122.69-84.03-208.65-84.04-85.96-206.73-85.96h-22.39l71.46 71.46-32 31.61-127.38-127.77 128.15-127.76 31.39 30.99L457-780h23q70.8 0 132.63 26.46t108.14 72.77q46.31 46.31 72.77 108.13Q820-510.81 820-440.02t-26.46 132.63q-26.46 61.85-72.77 108.16-46.31 46.31-108.13 72.77Q550.81-100 480.02-100t-132.63-26.46Zm38.76-192.39v-40.38h125.08v-60.23H386.15v-142.31H551v39.39H426.54v60.84h95.08q12.15 0 20.76 8.81 8.62 8.81 8.62 20.96v83.54q0 12.15-8.62 20.77-8.61 8.61-20.76 8.61H386.15Z",
|
|
1763
|
-
fill: "M347.39-126.46q-61.85-26.46-108.16-72.77-46.31-46.31-72.77-108.14Q140-369.2 140-440h45.39q0 122.69 85.96 208.65 85.96 85.96 208.65 85.96 122.69 0 208.65-85.96 85.96-85.96 85.96-208.65 0-122.69-84.03-208.65-84.04-85.96-206.73-85.96h-22.39l71.46 71.46-32 31.61-127.38-127.77 128.15-127.76 31.39 30.99L457-780h23q70.8 0 132.63 26.46t108.14 72.77q46.31 46.31 72.77 108.13Q820-510.81 820-440.02t-26.46 132.63q-26.46 61.85-72.77 108.16-46.31 46.31-108.13 72.77Q550.81-100 480.02-100t-132.63-26.46Zm38.76-192.39v-40.38h125.08v-60.23H386.15v-142.31H551v39.39H426.54v60.84h95.08q12.15 0 20.76 8.81 8.62 8.81 8.62 20.96v83.54q0 12.15-8.62 20.77-8.61 8.61-20.76 8.61H386.15Z"
|
|
1764
|
-
},
|
|
1765
|
-
400: {
|
|
1766
|
-
noFill: "M339.5-108Q274-136 225-185t-77-114.5Q120-365 120-440h60q0 125 87.5 212.5T480-140q125 0 212.5-87.5T780-440q0-125-85-212.5T485-740h-22l73 73-42 42-147-147 147-147 41 41-78 78h23q75 0 140.5 28T735-695q49 49 77 114.5T840-440q0 75-28 140.5T735-185q-49 49-114.5 77T480-80q-75 0-140.5-28ZM380-310v-50h127v-56H380v-155h176v49H430v57h92q14 0 24 10t10 24v87q0 14-10 24t-24 10H380Z",
|
|
1767
|
-
fill: "M339.5-108Q274-136 225-185t-77-114.5Q120-365 120-440h60q0 125 87.5 212.5T480-140q125 0 212.5-87.5T780-440q0-125-85-212.5T485-740h-22l73 73-42 42-147-147 147-147 41 41-78 78h23q75 0 140.5 28T735-695q49 49 77 114.5T840-440q0 75-28 140.5T735-185q-49 49-114.5 77T480-80q-75 0-140.5-28ZM380-310v-50h127v-56H380v-155h176v49H430v57h92q14 0 24 10t10 24v87q0 14-10 24t-24 10H380Z"
|
|
1768
|
-
}
|
|
1769
|
-
},
|
|
1770
|
-
search: {
|
|
1771
|
-
300: {
|
|
1772
|
-
noFill: "M790.61-137.54 531.08-397.08q-29.85 26.42-69.65 40.71-39.81 14.29-82.28 14.29-101.62 0-172.31-70.57-70.68-70.58-70.68-171 0-100.43 70.57-171 70.58-70.58 171.72-70.58 100.14 0 170.69 70.58 70.55 70.57 70.55 170.86 0 42.17-14.38 81.98-14.39 39.81-41.62 72.12l260.15 258.54-33.23 33.61ZM378.54-387.46q81.7 0 138.74-57.12 57.03-57.11 57.03-139.07 0-81.97-57.03-139.08-57.04-57.12-138.74-57.12-82.39 0-139.69 57.12-57.31 57.11-57.31 139.08 0 81.96 57.31 139.07 57.3 57.12 139.69 57.12Z",
|
|
1773
|
-
fill: "M790.61-137.54 531.08-397.08q-29.85 26.42-69.65 40.71-39.81 14.29-82.28 14.29-101.62 0-172.31-70.57-70.68-70.58-70.68-171 0-100.43 70.57-171 70.58-70.58 171.72-70.58 100.14 0 170.69 70.58 70.55 70.57 70.55 170.86 0 42.17-14.38 81.98-14.39 39.81-41.62 72.12l260.15 258.54-33.23 33.61ZM378.54-387.46q81.7 0 138.74-57.12 57.03-57.11 57.03-139.07 0-81.97-57.03-139.08-57.04-57.12-138.74-57.12-82.39 0-139.69 57.12-57.31 57.11-57.31 139.08 0 81.96 57.31 139.07 57.3 57.12 139.69 57.12Z"
|
|
1774
|
-
},
|
|
1775
|
-
400: {
|
|
1776
|
-
noFill: "M796-121 533-384q-30 26-70 40.5T378-329q-108 0-183-75t-75-181q0-106 75-181t182-75q106 0 180.5 75T632-585q0 43-14 83t-42 75l264 262-44 44ZM377-389q81 0 138-57.5T572-585q0-81-57-138.5T377-781q-82 0-139.5 57.5T180-585q0 81 57.5 138.5T377-389Z",
|
|
1777
|
-
fill: "M796-121 533-384q-30 26-70 40.5T378-329q-108 0-183-75t-75-181q0-106 75-181t182-75q106 0 180.5 75T632-585q0 43-14 83t-42 75l264 262-44 44ZM377-389q81 0 138-57.5T572-585q0-81-57-138.5T377-781q-82 0-139.5 57.5T180-585q0 81 57.5 138.5T377-389Z"
|
|
1778
|
-
}
|
|
1779
|
-
},
|
|
1780
|
-
settings: {
|
|
1781
|
-
300: {
|
|
1782
|
-
noFill: "m400.69-100-18.07-120.23q-20.54-7-44.23-20.35-23.7-13.34-40.85-28.27l-111.85 50.93-79.92-141.31 101.08-74.38q-2-10.54-2.89-23.01-.88-12.46-.88-23 0-10.15.88-22.61.89-12.46 2.89-24.16l-101.08-74.76 79.92-140.16 111.46 50.16q18.31-14.93 41.24-28.08 22.92-13.15 43.84-19.54L400.69-860h158.62l18.07 120.62q22.08 8.15 44.16 20.23 22.07 12.07 39.77 28l113.38-50.16 79.54 140.16-102.62 74.3q2.77 11.93 3.47 24 .69 12.08.69 22.85 0 10.38-.89 22.15-.88 11.77-3.27 24.47l102.23 74.15-79.92 141.31-112.61-51.31q-18.7 15.69-40.35 28.96-21.65 13.27-43.58 19.65L559.31-100H400.69Zm36.46-45.39h85.31L536.85-257q31.84-8 59.42-23.85 27.58-15.84 52.73-40.23l104.46 45.23 40-70.84L701-414.92q4-17.77 6.31-33.5 2.3-15.73 2.3-31.58 0-16.62-2-31.96-2-15.35-6.61-32.35l93.23-69-40-70.84-105.62 45.23q-21.07-23.69-50.84-41.77Q568-698.77 536.46-703l-13.61-111.61h-85.7l-13.23 111.23q-33.23 6.61-61.19 22.65t-52.11 41.42l-104.85-44.84-40 70.84 92.46 67.85q-4.38 15.84-6.69 32.15-2.31 16.31-2.31 33.69 0 16.62 2.31 32.54 2.31 15.93 6.31 32.16l-92.08 68.23 40 70.84 104.46-44.84q24 24.38 52.15 40.23 28.16 15.84 61.16 23.84l13.61 111.23Zm41.7-221.92q47.07 0 79.88-32.81 32.81-32.8 32.81-79.88t-32.81-79.88q-32.81-32.81-79.88-32.81-46.7 0-79.7 32.81-32.99 32.8-32.99 79.88t32.99 79.88q33 32.81 79.7 32.81ZM480-480Z",
|
|
1783
|
-
fill: "m400.69-100-18.07-120.23q-20.54-7-44.23-20.35-23.7-13.34-40.85-28.27l-111.85 50.93-79.92-141.31 101.08-74.38q-2-10.54-2.89-23.01-.88-12.46-.88-23 0-10.15.88-22.61.89-12.46 2.89-24.16l-101.08-74.76 79.92-140.16 111.46 50.16q18.31-14.93 41.24-28.08 22.92-13.15 43.84-19.54L400.69-860h158.62l18.07 120.62q22.08 8.15 44.16 20.23 22.07 12.07 39.77 28l113.38-50.16 79.54 140.16-102.62 74.3q2.77 11.93 3.47 24 .69 12.08.69 22.85 0 10.38-.89 22.15-.88 11.77-3.27 24.47l102.23 74.15-79.92 141.31-112.61-51.31q-18.7 15.69-40.35 28.96-21.65 13.27-43.58 19.65L559.31-100H400.69Zm78.16-267.31q47.07 0 79.88-32.81 32.81-32.8 32.81-79.88t-32.81-79.88q-32.81-32.81-79.88-32.81-46.7 0-79.7 32.81-32.99 32.8-32.99 79.88t32.99 79.88q33 32.81 79.7 32.81Z"
|
|
1784
|
-
},
|
|
1785
|
-
400: {
|
|
1786
|
-
noFill: "m388-80-20-126q-19-7-40-19t-37-25l-118 54-93-164 108-79q-2-9-2.5-20.5T185-480q0-9 .5-20.5T188-521L80-600l93-164 118 54q16-13 37-25t40-18l20-127h184l20 126q19 7 40.5 18.5T669-710l118-54 93 164-108 77q2 10 2.5 21.5t.5 21.5q0 10-.5 21t-2.5 21l108 78-93 164-118-54q-16 13-36.5 25.5T592-206L572-80H388Zm48-60h88l14-112q33-8 62.5-25t53.5-41l106 46 40-72-94-69q4-17 6.5-33.5T715-480q0-17-2-33.5t-7-33.5l94-69-40-72-106 46q-23-26-52-43.5T538-708l-14-112h-88l-14 112q-34 7-63.5 24T306-642l-106-46-40 72 94 69q-4 17-6.5 33.5T245-480q0 17 2.5 33.5T254-413l-94 69 40 72 106-46q24 24 53.5 41t62.5 25l14 112Zm44-210q54 0 92-38t38-92q0-54-38-92t-92-38q-54 0-92 38t-38 92q0 54 38 92t92 38Zm0-130Z",
|
|
1787
|
-
fill: "m388-80-20-126q-19-7-40-19t-37-25l-118 54-93-164 108-79q-2-9-2.5-20.5T185-480q0-9 .5-20.5T188-521L80-600l93-164 118 54q16-13 37-25t40-18l20-127h184l20 126q19 7 40.5 18.5T669-710l118-54 93 164-108 77q2 10 2.5 21.5t.5 21.5q0 10-.5 21t-2.5 21l108 78-93 164-118-54q-16 13-36.5 25.5T592-206L572-80H388Zm92-270q54 0 92-38t38-92q0-54-38-92t-92-38q-54 0-92 38t-38 92q0 54 38 92t92 38Z"
|
|
1788
|
-
}
|
|
1789
|
-
},
|
|
1790
|
-
share: {
|
|
1791
|
-
300: {
|
|
1792
|
-
noFill: "M676.68-100q-42.8 0-72.97-30.24t-30.17-72.99q0-7.67 5.38-33.62L281.46-412.23q-14.66 16.62-34.82 26.04-20.16 9.42-43.79 9.42-42.6 0-72.72-30.01Q100-436.8 100-480.09q0-43.29 30.13-73.22 30.12-29.92 72.59-29.92 22.87 0 42.77 8.91 19.9 8.91 34.36 25.32l299.07-173.77q-2.38-8-3.88-16.5t-1.5-17.55q0-42.7 30.26-72.94Q634.07-860 676.86-860q42.79 0 72.97 30.26Q780-799.47 780-756.68q0 42.8-30.24 72.97t-73.1 30.17q-22.36 0-41.59-9-19.22-9-33.69-24L300.46-515.23q3 8 4.5 17.11 1.5 9.12 1.5 17.81t-1.19 16.39q-1.19 7.69-3.58 15.69l300.69 174.15q14.61-15 33.54-23.69 18.93-8.69 40.95-8.69 43.15 0 73.14 30.26Q780-245.93 780-203.14q0 42.79-30.26 72.97Q719.47-100 676.68-100Zm.19-45.39q24.63 0 41.19-16.66 16.55-16.66 16.55-41.28 0-24.63-16.66-41.19t-41.28-16.56q-24.63 0-41.19 16.66t-16.56 41.29q0 24.63 16.66 41.19 16.66 16.55 41.29 16.55ZM202.95-422.15q24.79 0 41.46-16.76t16.67-41.19q0-24.44-16.77-41.09-16.77-16.66-41.57-16.66-24.46 0-40.91 16.76-16.44 16.76-16.44 41.19 0 24.44 16.54 41.09 16.55 16.66 41.02 16.66Zm515.01-293.43q16.65-16.66 16.65-41.29t-16.66-41.19q-16.66-16.55-41.28-16.55-24.63 0-41.19 16.66t-16.56 41.28q0 24.63 16.76 41.19t41.19 16.56q24.44 0 41.09-16.66Zm-41.19 512.35ZM203.23-480Zm473.54-276.77Z",
|
|
1793
|
-
fill: "M676.68-100q-42.8 0-72.97-30.24t-30.17-72.99q0-7.62 5.38-33.62L281.46-412.23q-14.74 16.57-34.8 26.02-20.07 9.44-43.81 9.44-42.6 0-72.72-29.92Q100-436.62 100-480t30.13-73.31q30.12-29.92 72.72-29.92 22.74 0 42.64 8.91 19.9 8.91 34.36 25.32l299.07-173.77q-2.38-8-3.88-16.5t-1.5-17.5q0-42.75 30.26-72.99Q634.07-860 676.86-860q42.79 0 72.97 30.26Q780-799.47 780-756.68q0 42.8-30.24 72.97t-72.99 30.17q-22.5 0-41.71-9t-33.68-24L300.46-515.23q3 8 4.5 17.11 1.5 9.12 1.5 17.62 0 8.88-1.19 16.58-1.19 7.69-3.58 15.69l300.69 174.15q14.47-15 33.41-23.69 18.94-8.69 41.13-8.69 43.1 0 73.09 30.26Q780-245.93 780-203.14q0 42.79-30.26 72.97Q719.47-100 676.68-100Z"
|
|
1794
|
-
},
|
|
1795
|
-
400: {
|
|
1796
|
-
noFill: "M686-80q-47.5 0-80.75-33.25T572-194q0-8 5-34L278-403q-16.28 17.34-37.64 27.17Q219-366 194-366q-47.5 0-80.75-33T80-480q0-48 33.25-81T194-594q24 0 45 9.3 21 9.29 37 25.7l301-173q-2-8-3.5-16.5T572-766q0-47.5 33.25-80.75T686-880q47.5 0 80.75 33.25T800-766q0 47.5-33.25 80.75T686-652q-23.27 0-43.64-9Q622-670 606-685L302-516q3 8 4.5 17.5t1.5 18q0 8.5-1 16t-3 15.5l303 173q16-15 36.09-23.5 20.1-8.5 43.07-8.5Q734-308 767-274.75T800-194q0 47.5-33.25 80.75T686-80Zm.04-60q22.96 0 38.46-15.54 15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5Zm-492-286q22.96 0 38.46-15.54 15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5ZM724.5-727.54q15.5-15.53 15.5-38.5 0-22.96-15.54-38.46-15.53-15.5-38.5-15.5-22.96 0-38.46 15.54-15.5 15.53-15.5 38.5 0 22.96 15.54 38.46 15.53 15.5 38.5 15.5 22.96 0 38.46-15.54ZM686-194ZM194-480Zm492-286Z",
|
|
1797
|
-
fill: "M686-80q-47.5 0-80.75-33.25T572-194q0-8 5-34L278-403q-16.28 17.34-37.64 27.17Q219-366 194-366q-47.5 0-80.75-33T80-480q0-48 33.25-81T194-594q24 0 45 9.3 21 9.29 37 25.7l301-173q-2-8-3.5-16.5T572-766q0-47.5 33.25-80.75T686-880q47.5 0 80.75 33.25T800-766q0 47.5-33.25 80.75T686-652q-23.27 0-43.64-9Q622-670 606-685L302-516q3 8 4.5 17.5t1.5 18q0 8.5-1 16t-3 15.5l303 173q16-15 36.09-23.5 20.1-8.5 43.07-8.5Q734-308 767-274.75T800-194q0 47.5-33.25 80.75T686-80Z"
|
|
1798
|
-
}
|
|
1799
|
-
},
|
|
1800
|
-
speed_1_2x: {
|
|
1801
|
-
300: {
|
|
1802
|
-
noFill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm108.93 0v-158.84q0-23.53 17.08-40.62 17.08-17.08 40.61-17.08h86.92q5.39 0 8.85-3.46t3.46-8.85v-97.92q0-5-3.46-8.65-3.46-3.66-8.85-3.66H365.08v-45.38h144.61q23.53 0 40.61 17.08t17.08 40.61v97.92q0 23.53-17.08 40.61-17.08 17.09-40.61 17.09h-86.92q-5 0-8.66 3.65-3.65 3.65-3.65 8.66v113.46h156.92v45.38h-202.3Zm-218.23 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM630.92-290l111.69-198.31L639-670h51.54l80.38 141.46L850.31-670h50.76L798.84-489.08 911.54-290H861l-90.46-157.46L681.31-290h-50.39Z",
|
|
1803
|
-
fill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm108.93 0v-158.84q0-23.53 17.08-40.62 17.08-17.08 40.61-17.08h86.92q5.39 0 8.85-3.46t3.46-8.85v-97.92q0-5-3.46-8.65-3.46-3.66-8.85-3.66H365.08v-45.38h144.61q23.53 0 40.61 17.08t17.08 40.61v97.92q0 23.53-17.08 40.61-17.08 17.09-40.61 17.09h-86.92q-5 0-8.66 3.65-3.65 3.65-3.65 8.66v113.46h156.92v45.38h-202.3Zm-218.23 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM630.92-290l111.69-198.31L639-670h51.54l80.38 141.46L850.31-670h50.76L798.84-489.08 911.54-290H861l-90.46-157.46L681.31-290h-50.39Z"
|
|
1804
|
-
},
|
|
1805
|
-
400: {
|
|
1806
|
-
noFill: "M245-277v-60h60v60h-60Zm122 0v-175q0-24 18-42t42-18h90v-111H367v-60h150q24 0 42 18t18 42v111q0 24-18 42t-42 18h-90v115h150v60H367Zm-244 0v-346H40v-60h143v406h-60Zm516-3 114-206-109-194h65l80 143 79-143h65L825-486l115 206h-64l-87-154-85 154h-65Z",
|
|
1807
|
-
fill: "M245-277v-60h60v60h-60Zm122 0v-175q0-24 18-42t42-18h90v-111H367v-60h150q24 0 42 18t18 42v111q0 24-18 42t-42 18h-90v115h150v60H367Zm-244 0v-346H40v-60h143v406h-60Zm516-3 114-206-109-194h65l80 143 79-143h65L825-486l115 206h-64l-87-154-85 154h-65Z"
|
|
1808
|
-
}
|
|
1809
|
-
},
|
|
1810
|
-
speed_1_5x: {
|
|
1811
|
-
300: {
|
|
1812
|
-
noFill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm-109.3 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM630.92-290l111.69-198.31L639-670h51.54l80.38 141.46L850.31-670h50.76L798.84-489.08 911.54-290H861l-90.46-157.46L681.31-290h-50.39Zm-265.84 2.23v-45.38h144.61q5.39 0 8.85-3.66 3.46-3.65 3.46-8.65v-101.15q0-5.01-3.46-8.66-3.46-3.65-8.85-3.65H365.08v-213.31h202.3v45.38H410.46v122.54h99.23q23.62 0 40.66 17.04 17.03 17.04 17.03 40.66v101.15q0 23.61-17.03 40.65-17.04 17.04-40.66 17.04H365.08Z",
|
|
1813
|
-
fill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm-109.3 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM630.92-290l111.69-198.31L639-670h51.54l80.38 141.46L850.31-670h50.76L798.84-489.08 911.54-290H861l-90.46-157.46L681.31-290h-50.39Zm-265.84 2.23v-45.38h144.61q5.39 0 8.85-3.66 3.46-3.65 3.46-8.65v-101.15q0-5.01-3.46-8.66-3.46-3.65-8.85-3.65H365.08v-213.31h202.3v45.38H410.46v122.54h99.23q23.62 0 40.66 17.04 17.03 17.04 17.03 40.66v101.15q0 23.61-17.03 40.65-17.04 17.04-40.66 17.04H365.08Z"
|
|
1814
|
-
},
|
|
1815
|
-
400: {
|
|
1816
|
-
noFill: "M245-277v-60h60v60h-60Zm-122 0v-346H40v-60h143v406h-60Zm516-3 114-206-109-194h65l80 143 79-143h65L825-486l115 206h-64l-87-154-85 154h-65Zm-272 3v-60h150v-115H367v-231h210v60H427v111h90q24 0 42 18t18 42v115q0 24-18 42t-42 18H367Z",
|
|
1817
|
-
fill: "M245-277v-60h60v60h-60Zm-122 0v-346H40v-60h143v406h-60Zm516-3 114-206-109-194h65l80 143 79-143h65L825-486l115 206h-64l-87-154-85 154h-65Zm-272 3v-60h150v-115H367v-231h210v60H427v111h90q24 0 42 18t18 42v115q0 24-18 42t-42 18H367Z"
|
|
1818
|
-
}
|
|
1819
|
-
},
|
|
1820
|
-
speed_1_7x: {
|
|
1821
|
-
300: {
|
|
1822
|
-
noFill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm-109.3 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM610.92-290l111.69-198.31L619-670h51.54l80.38 141.46L830.31-670h50.76L778.84-489.08 891.54-290H841l-90.46-157.46L661.31-290h-50.39Zm-202.84 1.61 88.54-338.46H330.08v-45.38h166.15q18.62 0 32.58 12.15 13.96 12.16 13.96 30.39 0 7.23-2.39 14.15l-86.15 327.15h-46.15Z",
|
|
1823
|
-
fill: "M256.15-287.77v-45.38h45.39v45.38h-45.39Zm-109.3 0v-339.08H68.46v-45.38h123.77v384.46h-45.38ZM610.92-290l111.69-198.31L619-670h51.54l80.38 141.46L830.31-670h50.76L778.84-489.08 891.54-290H841l-90.46-157.46L661.31-290h-50.39Zm-202.84 1.61 88.54-338.46H330.08v-45.38h166.15q18.62 0 32.58 12.15 13.96 12.16 13.96 30.39 0 7.23-2.39 14.15l-86.15 327.15h-46.15Z"
|
|
1824
|
-
},
|
|
1825
|
-
400: {
|
|
1826
|
-
noFill: "M245-277v-60h60v60h-60Zm-122 0v-346H40v-60h143v406h-60Zm496-3 114-206-109-194h65l80 143 79-143h65L805-486l115 206h-64l-87-154-85 154h-65Zm-214 2 92-345H327v-60h170q24 0 42 16t18 40q0 3-2 13l-90 336h-60Z",
|
|
1827
|
-
fill: "M245-277v-60h60v60h-60Zm-122 0v-346H40v-60h143v406h-60Zm496-3 114-206-109-194h65l80 143 79-143h65L805-486l115 206h-64l-87-154-85 154h-65Zm-214 2 92-345H327v-60h170q24 0 42 16t18 40q0 3-2 13l-90 336h-60Z"
|
|
1828
|
-
}
|
|
1829
|
-
},
|
|
1830
|
-
speed_1x: {
|
|
1831
|
-
300: {
|
|
1832
|
-
noFill: "M474.27-316.58q37.73-1.88 54.65-27.88l211.39-316.69-314.62 212.84q-25.77 17.31-27.77 54.96-2 37.66 18.31 58.16t58.04 18.61Zm4.11-462.8q55.85 0 111.31 16.57 55.46 16.58 108.23 55.43L659-678.85q-42.69-28.07-91.12-41.61Q519.46-734 478.47-734q-138.66 0-235.87 98.43-97.21 98.42-97.21 238.43 0 44.22 12.11 88.87 12.12 44.65 34.83 82.88h571.59q22.39-36.38 34.81-82.65 12.42-46.27 12.42-91.5 0-40.46-11.92-88t-41.23-87l29.77-38.92q35.69 54.85 51.42 106.15 15.73 51.31 17.35 103.69 1.23 56.16-11.62 105.31-12.84 49.16-38.69 93.77-8.92 16.46-19.15 20.5-10.23 4.04-26 4.04h-566q-12.82 0-25.26-6.77-12.43-6.77-18.9-19.31Q128-247.92 114-294.54q-14-46.61-14-102.61 0-78.39 29.77-148.04 29.77-69.66 80.88-121.46 51.12-51.81 120.34-82.27 69.22-30.46 147.39-30.46Zm-7.07 309.07Z",
|
|
1833
|
-
fill: "M424.15-346.15q21.54 21.53 55.12 20.03t49.04-24.03l214.84-312.23-313 214.07q-22.92 15.7-25.42 47.96-2.5 32.27 19.42 54.2ZM195.08-180q-13.77 0-25.73-6.96t-18.43-19.12q-24.84-44.54-37.88-93.46Q100-348.46 100-399.38q0-78.77 29.96-148.12 29.96-69.35 81.27-120.96 51.31-51.62 120.35-81.58Q400.62-780 478.38-780q78.77 0 148.62 29.77 69.85 29.77 121.65 81.38 51.81 51.62 81.77 120.77 29.96 69.16 29.58 147.93 0 51.3-12.42 101.11-12.43 49.81-37.5 94.5-7.08 12.15-19.43 18.35-12.34 6.19-25.73 6.19H195.08Z"
|
|
1834
|
-
},
|
|
1835
|
-
400: {
|
|
1836
|
-
noFill: "M473.5-303.5Q517-305 537-336l216-339-335 219q-30 20-32 64t21 67q23 23 66.5 21.5ZM478-799q57 0 119 18.5T716-717l-52 37q-45-30-96.5-44.5T477.98-739q-140.47 0-239.23 100.22Q140-538.57 140-396.02 140-351 152.5-305q12.5 46 35.5 85h579q22-36 35-84t13-94q0-42-12.5-90.5T758-578l39-52q38 56 57 112.5T875-404q2 60-12 113t-41 98q-12 23-25.5 28t-33.5 5H192q-17 0-33.5-8.5T134-193q-26-48-40-97.5T80-396q0-83 31.5-156.5t85.5-128Q251-735 323.68-767T478-799Zm-9 331Z",
|
|
1837
|
-
fill: "M418-340q25 25 63 23.5t55-27.5l221-333-333 221q-26 18-28.5 54.5T418-340ZM192-160q-18 0-34-8.5T134-193q-26-48-40-100T80-399q0-83 31.5-156T197-682.5q54-54.5 126.5-86T478-800q83 0 156.5 31.5t128 86Q817-628 848.5-555T880-399q0 54-13 106.5T827-193q-9 16-25 24.5t-34 8.5H192Z"
|
|
1838
|
-
}
|
|
1839
|
-
},
|
|
1840
|
-
speed_2x: {
|
|
1841
|
-
300: {
|
|
1842
|
-
noFill: "M221.54-287.77v-158.84q0-23.62 17.04-40.66 17.04-17.04 40.65-17.04h97.31q5 0 8.65-3.46 3.66-3.46 3.66-8.85v-97.92q0-5-3.66-8.65-3.65-3.66-8.65-3.66h-155v-45.38h155q23.23 0 40.46 17.04t17.23 40.65v97.92q0 23.62-17.23 40.66-17.23 17.04-40.46 17.04h-97.31q-5.38 0-8.84 3.65-3.47 3.65-3.47 8.66v113.46h167.31v45.38H221.54ZM492.69-290l111.69-198.31L501.15-670h51.16l80.38 141.46L712.46-670h50.38L660.61-489.08 773.31-290h-50.54l-90.46-157.46L543.46-290h-50.77Z",
|
|
1843
|
-
fill: "M221.54-287.77v-158.84q0-23.62 17.04-40.66 17.04-17.04 40.65-17.04h97.31q5 0 8.65-3.46 3.66-3.46 3.66-8.85v-97.92q0-5-3.66-8.65-3.65-3.66-8.65-3.66h-155v-45.38h155q23.23 0 40.46 17.04t17.23 40.65v97.92q0 23.62-17.23 40.66-17.23 17.04-40.46 17.04h-97.31q-5.38 0-8.84 3.65-3.47 3.65-3.47 8.66v113.46h167.31v45.38H221.54ZM492.69-290l111.69-198.31L501.15-670h51.16l80.38 141.46L712.46-670h50.38L660.61-489.08 773.31-290h-50.54l-90.46-157.46L543.46-290h-50.77Z"
|
|
1844
|
-
},
|
|
1845
|
-
400: {
|
|
1846
|
-
noFill: "M205-277v-175q0-24 18-42t42-18h110v-111H205v-60h170q24 0 42 18t18 42v111q0 24-18 42t-42 18H265v115h170v60H205Zm285-3 114-206-109-194h65l80 143 79-143h65L676-486l115 206h-64l-87-154-85 154h-65Z",
|
|
1847
|
-
fill: "M205-277v-175q0-24 18-42t42-18h110v-111H205v-60h170q24 0 42 18t18 42v111q0 24-18 42t-42 18H265v115h170v60H205Zm285-3 114-206-109-194h65l80 143 79-143h65L676-486l115 206h-64l-87-154-85 154h-65Z"
|
|
1848
|
-
}
|
|
1849
|
-
},
|
|
1850
|
-
stop: {
|
|
1851
|
-
300: {
|
|
1852
|
-
noFill: "M305.39-654.61v349.22-349.22ZM260-260v-440h440v440H260Zm45.39-45.39h349.22v-349.22H305.39v349.22Z",
|
|
1853
|
-
fill: "M260-260v-440h440v440H260Z"
|
|
1854
|
-
},
|
|
1855
|
-
400: {
|
|
1856
|
-
noFill: "M300-660v360-360Zm-60 420v-480h480v480H240Zm60-60h360v-360H300v360Z",
|
|
1857
|
-
fill: "M240-240v-480h480v480H240Z"
|
|
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([]);
|
|
1858
2165
|
}
|
|
1859
|
-
}
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
400: {
|
|
1866
|
-
noFill: "M600.5-379.5Q650-429 650-500t-49.5-120.5Q551-670 480-670t-120.5 49.5Q310-571 310-500t49.5 120.5Q409-330 480-330t120.5-49.5Zm-200-41Q368-453 368-500t32.5-79.5Q433-612 480-612t79.5 32.5Q592-547 592-500t-32.5 79.5Q527-388 480-388t-79.5-32.5ZM216-283Q98-366 40-500q58-134 176-217t264-83q146 0 264 83t176 217q-58 134-176 217t-264 83q-146 0-264-83Zm264-217Zm222.5 174.5Q804-391 857-500q-53-109-154.5-174.5T480-740q-121 0-222.5 65.5T102-500q54 109 155.5 174.5T480-260q121 0 222.5-65.5Z",
|
|
1867
|
-
fill: "M600.5-379.5Q650-429 650-500t-49.5-120.5Q551-670 480-670t-120.5 49.5Q310-571 310-500t49.5 120.5Q409-330 480-330t120.5-49.5Zm-200-41Q368-453 368-500t32.5-79.5Q433-612 480-612t79.5 32.5Q592-547 592-500t-32.5 79.5Q527-388 480-388t-79.5-32.5ZM216-283Q98-366 40-500q58-134 176-217t264-83q146 0 264 83t176 217q-58 134-176 217t-264 83q-146 0-264-83Z"
|
|
2166
|
+
};
|
|
2167
|
+
const handleRemove = (e) => {
|
|
2168
|
+
e.preventDefault();
|
|
2169
|
+
e.stopPropagation();
|
|
2170
|
+
for (const url of previewUrls) {
|
|
2171
|
+
URL.revokeObjectURL(url);
|
|
1868
2172
|
}
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
noFill: "m620.15-434.39-34.77-34.76q21.39-67.54-28.53-111.47-49.93-43.92-107.7-24.76l-34.76-34.77q13.53-7.93 30.3-11.77 16.77-3.85 35.31-3.85 65.23 0 110.5 45.27 45.27 45.27 45.27 110.5 0 18.54-4.16 36-4.15 17.46-11.46 29.61ZM748-307.69l-31.15-30q45.92-34.08 80.69-75.89 34.77-41.8 52.92-86.42-50-108.31-148.46-171.46-98.46-63.15-214.69-63.15-38.54 0-78.12 7.03-39.57 7.04-65.34 16.89L309-746.15q33.46-14.46 81.42-24.16 47.97-9.69 93.43-9.69 134.53 0 248.03 76.12Q845.38-627.77 898.46-500 874-442.54 836.27-394.35q-37.73 48.19-88.27 86.66Zm59.92 216.76L646.08-250.92q-30.77 13.61-74.39 22.26Q528.08-220 480-220q-137.54 0-250.77-76.12Q116-372.23 61.54-500q21.54-52.38 59.15-101.12 37.62-48.73 87.08-89.11L85.23-812.38l32-32.62 720.46 720.46-29.77 33.61Zm-569.15-567.3q-37.38 26.23-74.96 71-37.58 44.77-54.89 87.23 50.62 108.31 150.81 171.46 100.19 63.15 225.96 63.15 37.23 0 73.66-5.73 36.42-5.73 52.42-14.11l-70.92-70.93q-10.62 5.39-28.35 8.66-17.73 3.27-32.5 3.27-64.61 0-110.19-44.96T324.23-500q0-15 3.27-31.92 3.27-16.93 8.66-28.93l-97.39-97.38ZM531.46-517Zm-106 53.38Z",
|
|
1873
|
-
fill: "M807.92-90.93 646.08-250.92q-30.77 13.61-74.39 22.26Q528.08-220 480-220q-137.54 0-250.77-76.12Q116-372.23 61.54-500q21.54-52.38 59.15-101.12 37.62-48.73 87.08-89.11L85.23-812.38l32-32.62 720.46 720.46-29.77 33.61ZM480-344.23q14.77 0 32.69-3.27 17.93-3.27 28.16-9.04L336.54-560.85q-5.77 11.62-9.04 28.73-3.27 17.12-3.27 32.12 0 65.85 45.58 110.81 45.58 44.96 110.19 44.96Zm268 36.54-127.08-126.7q6.93-12.15 10.89-29.61 3.96-17.46 3.96-36 0-65.23-45.27-110.5-45.27-45.27-110.5-45.27-18.54 0-35.31 3.85-16.77 3.84-29.92 11.77L309-746.15q33.46-14.46 81.42-24.16 47.97-9.69 93.43-9.69 134.53 0 248.03 76.12Q845.38-627.77 898.46-500 874-442.54 836.27-394.35q-37.73 48.19-88.27 86.66ZM585.77-469.15 449.54-605.38q27.08-9.08 55.96-2.39 28.88 6.69 50.35 27.15 21.84 21.47 31.03 48.62 9.2 27.15-1.11 62.85Z"
|
|
1874
|
-
},
|
|
1875
|
-
400: {
|
|
1876
|
-
noFill: "m629-419-44-44q26-71-27-118t-115-24l-44-44q17-11 38-16t43-5q71 0 120.5 49.5T650-500q0 22-5.5 43.5T629-419Zm129 129-40-40q49-36 85.5-80.5T857-500q-50-111-150-175.5T490-740q-42 0-86 8t-69 19l-46-47q35-16 89.5-28T485-800q143 0 261.5 81.5T920-500q-26 64-67 117t-95 93Zm58 226L648-229q-35 14-79 21.5t-89 7.5q-146 0-265-81.5T40-500q20-52 55.5-101.5T182-696L56-822l42-43 757 757-39 44ZM223-654q-37 27-71.5 71T102-500q51 111 153.5 175.5T488-260q33 0 65-4t48-12l-64-64q-11 5-27 7.5t-30 2.5q-70 0-120-49t-50-121q0-15 2.5-30t7.5-27l-97-97Zm305 142Zm-116 58Z",
|
|
1877
|
-
fill: "M816-64 648-229q-35 14-79 21.5t-89 7.5q-146 0-265-81.5T40-500q20-52 55.5-101.5T182-696L56-822l42-43 757 757-39 44ZM480-330q14 0 30-2.5t27-7.5L320-557q-5 12-7.5 27t-2.5 30q0 72 50 121t120 49Zm278 40L629-419q10-16 15.5-37.5T650-500q0-71-49.5-120.5T480-670q-22 0-43 5t-38 16L289-760q35-16 89.5-28T485-800q143 0 261.5 81.5T920-500q-26 64-67 117t-95 93ZM585-463 443-605q29-11 60-4.5t54 28.5q23 23 32 51.5t-4 66.5Z"
|
|
2173
|
+
setPreviewUrls([]);
|
|
2174
|
+
if (inputRef.current) {
|
|
2175
|
+
inputRef.current.value = "";
|
|
1878
2176
|
}
|
|
1879
|
-
|
|
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
|
+
] });
|
|
1880
2255
|
};
|
|
1881
|
-
var
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
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,
|
|
1886
2270
|
style,
|
|
1887
2271
|
...props
|
|
1888
2272
|
}) => {
|
|
1889
|
-
const
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
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"];
|
|
1895
2303
|
return /* @__PURE__ */ jsx(
|
|
1896
|
-
|
|
2304
|
+
IconComponent,
|
|
1897
2305
|
{
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
viewBox: "0 -960 960 960",
|
|
1902
|
-
fill: "currentColor",
|
|
1903
|
-
"aria-hidden": "true",
|
|
1904
|
-
focusable: "false",
|
|
1905
|
-
style: { display: "inline-block", flexShrink: 0, ...style },
|
|
1906
|
-
...props,
|
|
1907
|
-
children: /* @__PURE__ */ jsx("path", { d: pathData })
|
|
2306
|
+
"aria-hidden": hasLabel ? void 0 : true,
|
|
2307
|
+
focusable: hasLabel ? void 0 : false,
|
|
2308
|
+
...props
|
|
1908
2309
|
}
|
|
1909
2310
|
);
|
|
1910
2311
|
};
|
|
@@ -1930,8 +2331,10 @@ var LinearProgress = ({
|
|
|
1930
2331
|
className,
|
|
1931
2332
|
...props
|
|
1932
2333
|
}) => {
|
|
1933
|
-
const
|
|
1934
|
-
|
|
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(
|
|
1935
2338
|
"div",
|
|
1936
2339
|
{
|
|
1937
2340
|
className: cn("linear_progress", className),
|
|
@@ -1940,7 +2343,21 @@ var LinearProgress = ({
|
|
|
1940
2343
|
"aria-valuemin": 0,
|
|
1941
2344
|
"aria-valuemax": totalSteps,
|
|
1942
2345
|
...props,
|
|
1943
|
-
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
|
+
]
|
|
1944
2361
|
}
|
|
1945
2362
|
);
|
|
1946
2363
|
};
|
|
@@ -1951,16 +2368,20 @@ var ListItem = ({
|
|
|
1951
2368
|
metadata,
|
|
1952
2369
|
leadingElement,
|
|
1953
2370
|
trailingElement,
|
|
1954
|
-
alignment
|
|
2371
|
+
alignment,
|
|
1955
2372
|
disabled,
|
|
2373
|
+
selected,
|
|
1956
2374
|
onClick,
|
|
1957
2375
|
className,
|
|
1958
2376
|
...props
|
|
1959
2377
|
}) => {
|
|
2378
|
+
const isOneLine = !overline && !supportingText && !metadata;
|
|
2379
|
+
const effectiveAlignment = alignment ?? (isOneLine ? "middle" : "top");
|
|
1960
2380
|
const rootClassName = cn(
|
|
1961
2381
|
"list_item",
|
|
1962
|
-
`list_item_align_${
|
|
2382
|
+
`list_item_align_${effectiveAlignment}`,
|
|
1963
2383
|
disabled && "list_item_disabled",
|
|
2384
|
+
selected && "list_item_selected",
|
|
1964
2385
|
onClick && "list_item_interactive",
|
|
1965
2386
|
className
|
|
1966
2387
|
);
|
|
@@ -1981,6 +2402,7 @@ var ListItem = ({
|
|
|
1981
2402
|
role: onClick ? "button" : void 0,
|
|
1982
2403
|
tabIndex: onClick && !disabled ? 0 : void 0,
|
|
1983
2404
|
"aria-disabled": disabled || void 0,
|
|
2405
|
+
"aria-selected": selected || void 0,
|
|
1984
2406
|
...props,
|
|
1985
2407
|
children: /* @__PURE__ */ jsxs("div", { className: "list_item_state_layer", children: [
|
|
1986
2408
|
leadingElement && /* @__PURE__ */ jsx("div", { className: "list_item_leading", children: leadingElement }),
|
|
@@ -1996,29 +2418,89 @@ var ListItem = ({
|
|
|
1996
2418
|
)
|
|
1997
2419
|
);
|
|
1998
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
|
+
};
|
|
1999
2460
|
var Modal = ({
|
|
2000
2461
|
open,
|
|
2001
2462
|
onClose,
|
|
2002
2463
|
closeOnOverlay = true,
|
|
2003
|
-
width =
|
|
2464
|
+
width = 480,
|
|
2004
2465
|
title,
|
|
2466
|
+
description,
|
|
2467
|
+
footer,
|
|
2468
|
+
footerAlign = "end",
|
|
2469
|
+
showCloseIcon = true,
|
|
2470
|
+
closeLabel = "\uB2EB\uAE30",
|
|
2005
2471
|
children,
|
|
2006
2472
|
className,
|
|
2007
2473
|
ariaLabel,
|
|
2008
2474
|
...props
|
|
2009
2475
|
}) => {
|
|
2010
|
-
const panelRef =
|
|
2011
|
-
const titleId =
|
|
2476
|
+
const panelRef = React16.useRef(null);
|
|
2477
|
+
const titleId = React16.useId();
|
|
2478
|
+
const [shouldRender, setShouldRender] = React16.useState(open);
|
|
2012
2479
|
useFocusTrap(panelRef, open);
|
|
2013
|
-
|
|
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) => {
|
|
2014
2496
|
if (e.key === "Escape") onClose?.();
|
|
2015
2497
|
});
|
|
2016
|
-
|
|
2498
|
+
React16.useEffect(() => {
|
|
2017
2499
|
if (!open) return;
|
|
2018
2500
|
document.addEventListener("keydown", handleEscape);
|
|
2019
2501
|
return () => document.removeEventListener("keydown", handleEscape);
|
|
2020
2502
|
}, [open]);
|
|
2021
|
-
|
|
2503
|
+
React16.useEffect(() => {
|
|
2022
2504
|
if (!open) return;
|
|
2023
2505
|
const body = document.body;
|
|
2024
2506
|
const openModals = parseInt(body.dataset.openModals || "0", 10);
|
|
@@ -2039,13 +2521,13 @@ var Modal = ({
|
|
|
2039
2521
|
}
|
|
2040
2522
|
};
|
|
2041
2523
|
}, [open]);
|
|
2042
|
-
if (!
|
|
2043
|
-
const panelClassName = cn("modal_panel", className);
|
|
2524
|
+
if (!shouldRender) return null;
|
|
2044
2525
|
const hasTitle = !!title;
|
|
2045
2526
|
return /* @__PURE__ */ jsx(
|
|
2046
|
-
|
|
2527
|
+
animated.div,
|
|
2047
2528
|
{
|
|
2048
2529
|
className: "modal",
|
|
2530
|
+
style: overlayStyle,
|
|
2049
2531
|
role: "dialog",
|
|
2050
2532
|
"aria-modal": "true",
|
|
2051
2533
|
"aria-labelledby": hasTitle && !ariaLabel ? titleId : void 0,
|
|
@@ -2055,11 +2537,11 @@ var Modal = ({
|
|
|
2055
2537
|
if (e.key === "Escape") onClose?.();
|
|
2056
2538
|
},
|
|
2057
2539
|
children: /* @__PURE__ */ jsxs(
|
|
2058
|
-
|
|
2540
|
+
animated.div,
|
|
2059
2541
|
{
|
|
2060
2542
|
ref: panelRef,
|
|
2061
|
-
className:
|
|
2062
|
-
style: { width },
|
|
2543
|
+
className: cn("modal_panel", className),
|
|
2544
|
+
style: { ...panelStyle, width },
|
|
2063
2545
|
role: "document",
|
|
2064
2546
|
onClick: (e) => e.stopPropagation(),
|
|
2065
2547
|
onKeyDown: (e) => {
|
|
@@ -2067,8 +2549,20 @@ var Modal = ({
|
|
|
2067
2549
|
},
|
|
2068
2550
|
...props,
|
|
2069
2551
|
children: [
|
|
2070
|
-
|
|
2071
|
-
|
|
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 })
|
|
2072
2566
|
]
|
|
2073
2567
|
}
|
|
2074
2568
|
)
|
|
@@ -2086,11 +2580,12 @@ var OtpInput = ({
|
|
|
2086
2580
|
ariaLabel = "OTP \uC785\uB825",
|
|
2087
2581
|
className
|
|
2088
2582
|
}) => {
|
|
2089
|
-
const inputsRef =
|
|
2090
|
-
|
|
2583
|
+
const inputsRef = React16.useRef([]);
|
|
2584
|
+
const isTypingRef = React16.useRef(false);
|
|
2585
|
+
React16.useEffect(() => {
|
|
2091
2586
|
if (autoFocus) inputsRef.current[0]?.focus();
|
|
2092
2587
|
}, [autoFocus]);
|
|
2093
|
-
const digits =
|
|
2588
|
+
const digits = React16.useMemo(() => {
|
|
2094
2589
|
const chars = value.split("").slice(0, length);
|
|
2095
2590
|
while (chars.length < length) chars.push("");
|
|
2096
2591
|
return chars;
|
|
@@ -2108,10 +2603,15 @@ var OtpInput = ({
|
|
|
2108
2603
|
newDigits[index] = nextDigit;
|
|
2109
2604
|
updateValue(newDigits);
|
|
2110
2605
|
if (nextDigit && index < length - 1) {
|
|
2606
|
+
isTypingRef.current = true;
|
|
2111
2607
|
focusInput(index + 1);
|
|
2608
|
+
setTimeout(() => {
|
|
2609
|
+
isTypingRef.current = false;
|
|
2610
|
+
}, 50);
|
|
2112
2611
|
}
|
|
2113
2612
|
};
|
|
2114
2613
|
const handleFocus = (index) => {
|
|
2614
|
+
if (isTypingRef.current) return;
|
|
2115
2615
|
const firstEmpty = digits.indexOf("");
|
|
2116
2616
|
if (firstEmpty !== -1 && firstEmpty < index) {
|
|
2117
2617
|
focusInput(firstEmpty);
|
|
@@ -2224,7 +2724,7 @@ var Pagination = ({
|
|
|
2224
2724
|
}) => {
|
|
2225
2725
|
const prevDisabled = page <= 1;
|
|
2226
2726
|
const nextDisabled = page >= totalPages;
|
|
2227
|
-
const items =
|
|
2727
|
+
const items = React16.useMemo(() => getPaginationItems(page, totalPages), [page, totalPages]);
|
|
2228
2728
|
return /* @__PURE__ */ jsxs("nav", { className: "pagination", "aria-label": "Pagination", children: [
|
|
2229
2729
|
/* @__PURE__ */ jsx(
|
|
2230
2730
|
"button",
|
|
@@ -2283,6 +2783,33 @@ var Radio = ({ label, size = "md", className, ref, ...props }) => {
|
|
|
2283
2783
|
] });
|
|
2284
2784
|
};
|
|
2285
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
|
+
};
|
|
2286
2813
|
var Spinner = ({ size = 24, ariaLabel = "Loading" }) => {
|
|
2287
2814
|
return /* @__PURE__ */ jsx(
|
|
2288
2815
|
"span",
|
|
@@ -2290,11 +2817,165 @@ var Spinner = ({ size = 24, ariaLabel = "Loading" }) => {
|
|
|
2290
2817
|
className: "spinner",
|
|
2291
2818
|
style: { width: size, height: size },
|
|
2292
2819
|
role: "status",
|
|
2293
|
-
"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);
|
|
2294
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]
|
|
2295
2971
|
);
|
|
2972
|
+
const value = React16.useMemo(
|
|
2973
|
+
() => ({ mode, resolved, setMode }),
|
|
2974
|
+
[mode, resolved, setMode]
|
|
2975
|
+
);
|
|
2976
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value, children });
|
|
2296
2977
|
};
|
|
2297
|
-
var ClearIcon = () => /* @__PURE__ */ jsx(
|
|
2978
|
+
var ClearIcon = () => /* @__PURE__ */ jsx(X, { size: 20, "aria-hidden": "true" });
|
|
2298
2979
|
var TextField = ({
|
|
2299
2980
|
id,
|
|
2300
2981
|
label,
|
|
@@ -2314,27 +2995,28 @@ var TextField = ({
|
|
|
2314
2995
|
ref,
|
|
2315
2996
|
...props
|
|
2316
2997
|
}) => {
|
|
2317
|
-
const generatedId =
|
|
2998
|
+
const generatedId = useId();
|
|
2318
2999
|
const inputId = id ?? generatedId;
|
|
2319
3000
|
const helperId = supportingText ? `${inputId}-help` : void 0;
|
|
2320
3001
|
const isControlled = value !== void 0;
|
|
2321
3002
|
const applyTransform = (nextValue) => transformValue ? transformValue(nextValue) : nextValue;
|
|
2322
|
-
const [innerValue, setInnerValue] =
|
|
3003
|
+
const [innerValue, setInnerValue] = useState(
|
|
2323
3004
|
() => applyTransform(value ?? defaultValue ?? "")
|
|
2324
3005
|
);
|
|
2325
|
-
const isComposingRef =
|
|
2326
|
-
|
|
3006
|
+
const isComposingRef = useRef(false);
|
|
3007
|
+
useEffect(() => {
|
|
2327
3008
|
if (!isControlled) return;
|
|
2328
3009
|
const nextValue = value ?? "";
|
|
2329
3010
|
setInnerValue(transformValue ? transformValue(nextValue) : nextValue);
|
|
2330
3011
|
}, [isControlled, value, transformValue]);
|
|
2331
|
-
const handleClear =
|
|
3012
|
+
const handleClear = useCallback(() => {
|
|
2332
3013
|
setInnerValue("");
|
|
2333
3014
|
onChangeAction?.("");
|
|
2334
3015
|
}, [onChangeAction]);
|
|
2335
3016
|
const rootClassName = cn(
|
|
2336
3017
|
"text_field",
|
|
2337
3018
|
size === "sm" && "text_field_size_sm",
|
|
3019
|
+
size === "lg" && "text_field_size_lg",
|
|
2338
3020
|
fullWidth && "text_field_full_width",
|
|
2339
3021
|
error && "text_field_error",
|
|
2340
3022
|
props.disabled && "text_field_disabled",
|
|
@@ -2342,60 +3024,58 @@ var TextField = ({
|
|
|
2342
3024
|
);
|
|
2343
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;
|
|
2344
3026
|
return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
|
|
2345
|
-
/* @__PURE__ */
|
|
2346
|
-
|
|
2347
|
-
/* @__PURE__ */
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
return;
|
|
2382
|
-
}
|
|
2383
|
-
const nextValue = applyTransform(rawValue);
|
|
2384
|
-
setInnerValue(nextValue);
|
|
2385
|
-
onChangeAction?.(nextValue);
|
|
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;
|
|
2386
3063
|
}
|
|
3064
|
+
const nextValue = applyTransform(rawValue);
|
|
3065
|
+
setInnerValue(nextValue);
|
|
3066
|
+
onChangeAction?.(nextValue);
|
|
2387
3067
|
}
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
] }),
|
|
3068
|
+
}
|
|
3069
|
+
)
|
|
3070
|
+
}
|
|
3071
|
+
),
|
|
3072
|
+
resolvedTrailing
|
|
3073
|
+
] }) }),
|
|
2394
3074
|
supportingText && /* @__PURE__ */ jsx("div", { id: helperId, className: "text_field_helper", children: supportingText })
|
|
2395
3075
|
] });
|
|
2396
3076
|
};
|
|
2397
3077
|
TextField.displayName = "TextField";
|
|
2398
|
-
var ToastContext =
|
|
3078
|
+
var ToastContext = React16.createContext(null);
|
|
2399
3079
|
var VARIANT_ICONS = {
|
|
2400
3080
|
success: /* @__PURE__ */ jsx(CheckCircle2, { size: 18 }),
|
|
2401
3081
|
error: /* @__PURE__ */ jsx(XCircle, { size: 18 }),
|
|
@@ -2404,48 +3084,60 @@ var VARIANT_ICONS = {
|
|
|
2404
3084
|
default: /* @__PURE__ */ jsx(Bell, { size: 18 })
|
|
2405
3085
|
};
|
|
2406
3086
|
var ToastItemComponent = ({ item, onRemove, closeAriaLabel }) => {
|
|
2407
|
-
const [
|
|
2408
|
-
const closingRef =
|
|
2409
|
-
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(() => {
|
|
2410
3096
|
if (closingRef.current) return;
|
|
2411
3097
|
closingRef.current = true;
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
className:
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
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
|
+
);
|
|
2430
3122
|
};
|
|
2431
3123
|
var ToastProvider = ({
|
|
2432
3124
|
children,
|
|
2433
3125
|
maxCount = 5,
|
|
2434
3126
|
closeAriaLabel = "Close"
|
|
2435
3127
|
}) => {
|
|
2436
|
-
const [toasts, setToasts] =
|
|
2437
|
-
const [isMounted, setIsMounted] =
|
|
2438
|
-
|
|
3128
|
+
const [toasts, setToasts] = React16.useState([]);
|
|
3129
|
+
const [isMounted, setIsMounted] = React16.useState(false);
|
|
3130
|
+
React16.useEffect(() => {
|
|
2439
3131
|
setIsMounted(true);
|
|
2440
3132
|
}, []);
|
|
2441
|
-
const addToast =
|
|
3133
|
+
const addToast = React16.useCallback(
|
|
2442
3134
|
(message, variant, duration = 3e3) => {
|
|
2443
3135
|
const id = crypto.randomUUID();
|
|
2444
3136
|
setToasts((prev) => [{ id, message, variant, duration }, ...prev].slice(0, maxCount));
|
|
2445
3137
|
},
|
|
2446
3138
|
[maxCount]
|
|
2447
3139
|
);
|
|
2448
|
-
const removeToast =
|
|
3140
|
+
const removeToast = React16.useCallback((id) => {
|
|
2449
3141
|
setToasts((prev) => prev.filter((t) => t.id !== id));
|
|
2450
3142
|
}, []);
|
|
2451
3143
|
return /* @__PURE__ */ jsxs(ToastContext.Provider, { value: { addToast }, children: [
|
|
@@ -2478,7 +3170,9 @@ var ToastProvider = ({
|
|
|
2478
3170
|
var useToast = () => {
|
|
2479
3171
|
const ctx = useContext(ToastContext);
|
|
2480
3172
|
if (!ctx) {
|
|
2481
|
-
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
|
+
);
|
|
2482
3176
|
}
|
|
2483
3177
|
return {
|
|
2484
3178
|
/** 성공 메시지를 표시한다 */
|
|
@@ -2505,7 +3199,7 @@ var Toggle = ({
|
|
|
2505
3199
|
...props
|
|
2506
3200
|
}) => {
|
|
2507
3201
|
const isControlled = checked !== void 0;
|
|
2508
|
-
const [innerChecked, setInnerChecked] =
|
|
3202
|
+
const [innerChecked, setInnerChecked] = React16.useState(!!defaultChecked);
|
|
2509
3203
|
const isOn = isControlled ? !!checked : innerChecked;
|
|
2510
3204
|
const handleToggle = () => {
|
|
2511
3205
|
if (disabled) return;
|
|
@@ -2568,5 +3262,103 @@ var TopLoading = ({
|
|
|
2568
3262
|
}
|
|
2569
3263
|
);
|
|
2570
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
|
+
};
|
|
2571
3363
|
|
|
2572
|
-
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 };
|