@antglobal/copilot-cards-core 1.0.0 → 1.0.1

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/dist/index.js ADDED
@@ -0,0 +1,2374 @@
1
+ /**
2
+ * Expression Engine — resolves template variables in card schemas.
3
+ *
4
+ * Supports expressions like `${user.name}`, `${items.length > 0}`, etc.
5
+ * Variables are resolved against a provided data context.
6
+ *
7
+ * Also handles the ExpressionValue type from CardSchema:
8
+ * { type: 'static', value: 'hello' } → 'hello'
9
+ * { type: 'expression', value: '${user.name}' } → resolved value
10
+ */
11
+ /**
12
+ * Resolve an ExpressionValue against a variables context.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * resolveExpressionValue({ type: 'expression', value: '${user.name}' }, { user: { name: 'Alice' } })
17
+ * // => 'Alice'
18
+ * ```
19
+ */
20
+ function resolveExpressionValue(expr, context) {
21
+ if (expr.type === 'static') {
22
+ return expr.value;
23
+ }
24
+ return resolveExpression(expr.value, context);
25
+ }
26
+ /**
27
+ * Resolve a single expression string against a context.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * resolveExpression('${user.name}', { user: { name: 'Alice' } })
32
+ * // => 'Alice'
33
+ * ```
34
+ */
35
+ function resolveExpression(expression, context) {
36
+ const trimmed = expression.trim();
37
+ // If the entire string is a SINGLE expression like `${xxx}`, return the raw value.
38
+ // Guard: no second `${` may appear — otherwise the string is a concatenation of
39
+ // multiple expressions (e.g. `${a}${b}`), which must go through interpolation
40
+ // instead of being mis-parsed as one expression. Checking for a second `${`
41
+ // (rather than an early `}`) keeps single expressions containing a literal `}`
42
+ // (e.g. `${x === '}' ? 'a' : 'b'}`) on the original single-expression path.
43
+ if (trimmed.startsWith('${') &&
44
+ trimmed.endsWith('}') &&
45
+ trimmed.indexOf('${', 2) === -1) {
46
+ const inner = trimmed.slice(2, -1).trim();
47
+ // Simple path (e.g. "user.name") — fast path
48
+ if (/^[a-zA-Z_$][a-zA-Z0-9_$.]*$/.test(inner)) {
49
+ return getByPath$1(context, inner);
50
+ }
51
+ // Complex expression (ternary, comparison, logical, etc.)
52
+ return evaluateExpression(inner, context);
53
+ }
54
+ // Otherwise do string interpolation
55
+ return interpolate(expression, context);
56
+ }
57
+ /**
58
+ * Resolve all expressions within a template string, returning a string result.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * interpolate('Hello, ${user.name}! You have ${count} items.', { user: { name: 'Bob' }, count: 5 })
63
+ * // => 'Hello, Bob! You have 5 items.'
64
+ * ```
65
+ */
66
+ function interpolate(template, context) {
67
+ return template.replace(/\$\{([^}]+)\}/g, (_, inner) => {
68
+ const trimmed = inner.trim();
69
+ // Simple path — fast path
70
+ if (/^[a-zA-Z_$][a-zA-Z0-9_$.]*$/.test(trimmed)) {
71
+ const value = getByPath$1(context, trimmed);
72
+ return value == null ? '' : String(value);
73
+ }
74
+ // Complex expression
75
+ const value = evaluateExpression(trimmed, context);
76
+ return value == null ? '' : String(value);
77
+ });
78
+ }
79
+ /**
80
+ * Safely access a nested value by dot-path (e.g. `user.address.city`).
81
+ */
82
+ function getByPath$1(obj, path) {
83
+ return path.split('.').reduce((current, key) => {
84
+ if (current == null)
85
+ return undefined;
86
+ return current[key];
87
+ }, obj);
88
+ }
89
+ function tokenize(expr) {
90
+ const tokens = [];
91
+ let i = 0;
92
+ while (i < expr.length) {
93
+ const ch = expr[i];
94
+ // Whitespace
95
+ if (/\s/.test(ch)) {
96
+ i++;
97
+ continue;
98
+ }
99
+ // String literal (single or double quote)
100
+ if (ch === '\'' || ch === '"') {
101
+ const quote = ch;
102
+ let str = '';
103
+ i++; // skip opening quote
104
+ while (i < expr.length && expr[i] !== quote) {
105
+ if (expr[i] === '\\' && i + 1 < expr.length) {
106
+ str += expr[i + 1];
107
+ i += 2;
108
+ }
109
+ else {
110
+ str += expr[i];
111
+ i++;
112
+ }
113
+ }
114
+ i++; // skip closing quote
115
+ tokens.push({ type: 'string', value: str });
116
+ continue;
117
+ }
118
+ // Number
119
+ if (/[0-9]/.test(ch) || (ch === '-' && i + 1 < expr.length && /[0-9]/.test(expr[i + 1]) && (tokens.length === 0 || tokens[tokens.length - 1].type === 'op' || tokens[tokens.length - 1].type === 'question' || tokens[tokens.length - 1].type === 'colon'))) {
120
+ let num = ch;
121
+ i++;
122
+ while (i < expr.length && /[0-9.]/.test(expr[i])) {
123
+ num += expr[i];
124
+ i++;
125
+ }
126
+ tokens.push({ type: 'number', value: num });
127
+ continue;
128
+ }
129
+ // Multi-char operators
130
+ const twoChar = expr.slice(i, i + 3);
131
+ if (twoChar === '===' || twoChar === '!==') {
132
+ tokens.push({ type: 'op', value: twoChar });
133
+ i += 3;
134
+ continue;
135
+ }
136
+ const pair = expr.slice(i, i + 2);
137
+ if (pair === '==' || pair === '!=' || pair === '>=' || pair === '<=' || pair === '&&' || pair === '||') {
138
+ tokens.push({ type: 'op', value: pair });
139
+ i += 2;
140
+ continue;
141
+ }
142
+ // Single-char operators
143
+ if (ch === '>' || ch === '<') {
144
+ tokens.push({ type: 'op', value: ch });
145
+ i++;
146
+ continue;
147
+ }
148
+ if (ch === '!') {
149
+ tokens.push({ type: 'op', value: '!' });
150
+ i++;
151
+ continue;
152
+ }
153
+ if (ch === '?') {
154
+ tokens.push({ type: 'question', value: '?' });
155
+ i++;
156
+ continue;
157
+ }
158
+ if (ch === ':') {
159
+ tokens.push({ type: 'colon', value: ':' });
160
+ i++;
161
+ continue;
162
+ }
163
+ if (ch === '(' || ch === ')') {
164
+ tokens.push({ type: 'paren', value: ch });
165
+ i++;
166
+ continue;
167
+ }
168
+ // Identifiers / keywords (variable paths like user.name)
169
+ if (/[a-zA-Z_$]/.test(ch)) {
170
+ let id = '';
171
+ while (i < expr.length && /[a-zA-Z0-9_$.]/.test(expr[i])) {
172
+ id += expr[i];
173
+ i++;
174
+ }
175
+ if (id === 'true' || id === 'false')
176
+ tokens.push({ type: 'boolean', value: id });
177
+ else if (id === 'null')
178
+ tokens.push({ type: 'null', value: id });
179
+ else if (id === 'undefined')
180
+ tokens.push({ type: 'undefined', value: id });
181
+ else
182
+ tokens.push({ type: 'ident', value: id });
183
+ continue;
184
+ }
185
+ // Skip unknown characters
186
+ i++;
187
+ }
188
+ return tokens;
189
+ }
190
+ /** Evaluate a tokenized expression against a variable context. */
191
+ function evaluateExpression(expr, context) {
192
+ const tokens = tokenize(expr);
193
+ let pos = 0;
194
+ function peek() { return tokens[pos]; }
195
+ function consume() { return tokens[pos++]; }
196
+ function expect(type, value) {
197
+ const t = consume();
198
+ if (!t || t.type !== type || (value !== undefined && t.value !== value)) {
199
+ throw new Error(`[ExpressionEngine] Expected ${type}${value ? ` '${value}'` : ''}, got ${t ? `'${t.value}'` : 'EOF'}`);
200
+ }
201
+ return t;
202
+ }
203
+ // Precedence (low → high): ternary → || → && → equality → relational → unary → atom
204
+ function parseTernary() {
205
+ const cond = parseOr();
206
+ if (peek()?.type === 'question') {
207
+ consume(); // ?
208
+ const truthy = parseTernary();
209
+ expect('colon');
210
+ const falsy = parseTernary();
211
+ return cond ? truthy : falsy;
212
+ }
213
+ return cond;
214
+ }
215
+ function parseOr() {
216
+ let left = parseAnd();
217
+ while (peek()?.value === '||') {
218
+ consume();
219
+ left = left || parseAnd();
220
+ }
221
+ return left;
222
+ }
223
+ function parseAnd() {
224
+ let left = parseEquality();
225
+ while (peek()?.value === '&&') {
226
+ consume();
227
+ left = left && parseEquality();
228
+ }
229
+ return left;
230
+ }
231
+ function parseEquality() {
232
+ let left = parseRelational();
233
+ while (peek()?.value === '===' || peek()?.value === '!==' || peek()?.value === '==' || peek()?.value === '!=') {
234
+ const op = consume().value;
235
+ const right = parseRelational();
236
+ if (op === '===' || op === '==')
237
+ left = left === right;
238
+ else
239
+ left = left !== right;
240
+ }
241
+ return left;
242
+ }
243
+ function parseRelational() {
244
+ let left = parseUnary();
245
+ while (peek()?.value === '>' || peek()?.value === '<' || peek()?.value === '>=' || peek()?.value === '<=') {
246
+ const op = consume().value;
247
+ const right = parseUnary();
248
+ if (op === '>')
249
+ left = left > right;
250
+ else if (op === '<')
251
+ left = left < right;
252
+ else if (op === '>=')
253
+ left = left >= right;
254
+ else
255
+ left = left <= right;
256
+ }
257
+ return left;
258
+ }
259
+ function parseUnary() {
260
+ if (peek()?.value === '!') {
261
+ consume();
262
+ return !parseUnary();
263
+ }
264
+ return parseAtom();
265
+ }
266
+ function parseAtom() {
267
+ const t = peek();
268
+ if (!t)
269
+ return undefined;
270
+ if (t.type === 'string') {
271
+ consume();
272
+ return t.value;
273
+ }
274
+ if (t.type === 'number') {
275
+ consume();
276
+ return Number(t.value);
277
+ }
278
+ if (t.type === 'boolean') {
279
+ consume();
280
+ return t.value === 'true';
281
+ }
282
+ if (t.type === 'null') {
283
+ consume();
284
+ return null;
285
+ }
286
+ if (t.type === 'undefined') {
287
+ consume();
288
+ return undefined;
289
+ }
290
+ if (t.type === 'ident') {
291
+ consume();
292
+ return getByPath$1(context, t.value);
293
+ }
294
+ if (t.type === 'paren' && t.value === '(') {
295
+ consume();
296
+ const val = parseTernary();
297
+ expect('paren', ')');
298
+ return val;
299
+ }
300
+ // Fallback
301
+ consume();
302
+ return undefined;
303
+ }
304
+ const result = parseTernary();
305
+ return result;
306
+ }
307
+ /**
308
+ * Checks whether a string contains any expression templates.
309
+ */
310
+ function hasExpression(value) {
311
+ return /\$\{[^}]+\}/.test(value);
312
+ }
313
+ /**
314
+ * Recursively resolve all expressions in a data structure (object / array / string).
315
+ */
316
+ function resolveDeep(data, context) {
317
+ if (typeof data === 'string') {
318
+ return hasExpression(data) ? resolveExpression(data, context) : data;
319
+ }
320
+ if (Array.isArray(data)) {
321
+ return data.map((item) => resolveDeep(item, context));
322
+ }
323
+ if (data !== null && typeof data === 'object') {
324
+ const result = {};
325
+ for (const [key, value] of Object.entries(data)) {
326
+ result[key] = resolveDeep(value, context);
327
+ }
328
+ return result;
329
+ }
330
+ return data;
331
+ }
332
+
333
+ /**
334
+ * Action Runner — executes ActionStep chains defined in card schemas.
335
+ *
336
+ * Supported action types:
337
+ * - **request**: HTTP request (fetch / API call)
338
+ * - **toast**: Display a toast notification
339
+ * - **url**: Navigate to a URL
340
+ * - **setVariable**: Update a variable in the card context
341
+ * - **emit**: Emit a custom event to the host environment
342
+ * - **copy**: Copy text to clipboard
343
+ *
344
+ * Each step can have `onSuccess` / `onFail` branches for chaining.
345
+ */
346
+ // ─── Constants ──────────────────────────────────────────────────
347
+ /** Default timeout (ms) for a single HTTP request when no poll is configured. */
348
+ const DEFAULT_REQUEST_TIMEOUT = 30000;
349
+ // ─── Request Deduplication ──────────────────────────────────────
350
+ /**
351
+ * Shared fallback in-flight request map keyed by responseKey. Used only when a
352
+ * context does not provide its own `inflightRequests` map. Prevents duplicate
353
+ * request actions (e.g. user double-clicks a button) from spawning concurrent
354
+ * request/polling loops that race on the same variable.
355
+ *
356
+ * Note: prefer a per-instance map via `ctx.inflightRequests` — this shared map
357
+ * would otherwise let two independent cards using the default `_response` key
358
+ * dedupe against each other.
359
+ */
360
+ const sharedInflightRequests = new Map();
361
+ // ─── Built-in Handlers ───────────────────────────────────────────
362
+ /**
363
+ * Try to parse response body as JSON, fall back to plain text.
364
+ */
365
+ async function parseResponseBody(response) {
366
+ const contentType = response.headers.get('content-type') ?? '';
367
+ if (contentType.includes('application/json')) {
368
+ return response.json();
369
+ }
370
+ // Some APIs return JSON without proper content-type; try JSON first
371
+ const text = await response.text();
372
+ try {
373
+ return JSON.parse(text);
374
+ }
375
+ catch {
376
+ return text;
377
+ }
378
+ }
379
+ /**
380
+ * Write response data into the variables store so downstream actions
381
+ * can reference it via expressions like `${_response.orderId}`.
382
+ *
383
+ * The variable key defaults to `_response` but can be overridden via
384
+ * `params.responseKey` when a card has multiple request actions.
385
+ *
386
+ * @param silent - If true, only write to ctx.variables without calling
387
+ * setVariable (avoids triggering re-render during polling iterations).
388
+ */
389
+ function writeResponseVariable(ctx, responseKey, data, silent = false) {
390
+ if (ctx.variables) {
391
+ ctx.variables[responseKey] = data;
392
+ }
393
+ if (!silent) {
394
+ ctx.setVariable?.(responseKey, data);
395
+ }
396
+ }
397
+ /**
398
+ * Read a nested field from an object by dot-path, e.g. "data.status".
399
+ */
400
+ function getByPath(obj, path) {
401
+ return path.split('.').reduce((cur, key) => cur?.[key], obj);
402
+ }
403
+ /**
404
+ * Execute a single fetch call, parse body, write to variables.
405
+ * Returns the parsed response data object `{ ok, status, data }`.
406
+ *
407
+ * @param silent - If true, write to variables without triggering re-render.
408
+ */
409
+ async function executeRequest(fetcher, url, init, ctx, varKey, silent = false, timeoutMs) {
410
+ // Combine the card-level abortSignal with a per-request timeout signal
411
+ const signals = [];
412
+ if (ctx.abortSignal)
413
+ signals.push(ctx.abortSignal);
414
+ if (timeoutMs && timeoutMs > 0)
415
+ signals.push(AbortSignal.timeout(timeoutMs));
416
+ const combinedSignal = signals.length > 0
417
+ ? (signals.length === 1 ? signals[0] : AbortSignal.any(signals))
418
+ : undefined;
419
+ const response = await fetcher(url, { ...init, signal: combinedSignal });
420
+ const body = await parseResponseBody(response);
421
+ const result = {
422
+ ok: response.ok,
423
+ status: response.status,
424
+ data: body,
425
+ };
426
+ writeResponseVariable(ctx, varKey, result, silent);
427
+ if (!response.ok) {
428
+ throw new Error(`HTTP ${response.status}`);
429
+ }
430
+ return result;
431
+ }
432
+ /**
433
+ * Create a delay that can be aborted via AbortSignal.
434
+ * Resolves after `ms` milliseconds, or rejects immediately if signal fires.
435
+ */
436
+ function abortableDelay(ms, signal) {
437
+ return new Promise((resolve, reject) => {
438
+ if (signal?.aborted) {
439
+ reject(new DOMException('Aborted', 'AbortError'));
440
+ return;
441
+ }
442
+ const timer = setTimeout(resolve, ms);
443
+ signal?.addEventListener('abort', () => {
444
+ clearTimeout(timer);
445
+ reject(new DOMException('Aborted', 'AbortError'));
446
+ }, { once: true });
447
+ });
448
+ }
449
+ const handleRequest = async (step, ctx) => {
450
+ const fetcher = ctx.fetch ?? globalThis.fetch;
451
+ if (!fetcher) {
452
+ throw new Error('[ActionRunner] No fetch implementation available');
453
+ }
454
+ const { url, method, headers, body, responseKey, poll, timeout } = step.params;
455
+ const varKey = responseKey ?? '_response';
456
+ // Per-instance dedup map when provided; shared fallback otherwise.
457
+ const inflight = ctx.inflightRequests ?? sharedInflightRequests;
458
+ // ── Deduplication: skip if same responseKey is already in-flight ──
459
+ if (inflight.has(varKey)) {
460
+ console.warn(`[ActionRunner] Request "${varKey}" already in-flight, skipping duplicate`);
461
+ return;
462
+ }
463
+ // Auto-set Content-Type for JSON body
464
+ const mergedHeaders = { ...headers };
465
+ if (body && !mergedHeaders['Content-Type'] && !mergedHeaders['content-type']) {
466
+ mergedHeaders['Content-Type'] = 'application/json';
467
+ }
468
+ const init = {
469
+ method: method ?? 'GET',
470
+ headers: mergedHeaders,
471
+ body: body ? JSON.stringify(body) : undefined,
472
+ };
473
+ // Per-request timeout: use schema-defined timeout, or default for non-poll requests
474
+ const requestTimeout = timeout ?? (poll ? undefined : DEFAULT_REQUEST_TIMEOUT);
475
+ const task = (async () => {
476
+ try {
477
+ const result = await executeRequest(fetcher, url, init, ctx, varKey, false, requestTimeout);
478
+ // ── Polling mode ──────────────────────────────────────────
479
+ if (poll) {
480
+ const { interval = 3000, maxAttempts = 10, until, stopValues = [], } = poll;
481
+ let currentValue = getByPath(result.data, until);
482
+ for (let attempt = 1; attempt < maxAttempts && !stopValues.includes(currentValue); attempt++) {
483
+ // Abortable sleep — clears timer on dispose
484
+ await abortableDelay(interval, ctx.abortSignal);
485
+ // Polling iterations write silently (no re-render) to avoid
486
+ // DOM rebuild that would destroy user focus / input state
487
+ const pollResult = await executeRequest(fetcher, url, init, ctx, varKey, /* silent */ true, requestTimeout);
488
+ currentValue = getByPath(pollResult.data, until);
489
+ }
490
+ // Polling finished — final write triggers re-render so UI shows result
491
+ if (!stopValues.includes(currentValue)) {
492
+ writeResponseVariable(ctx, varKey, {
493
+ ...ctx.variables?.[varKey],
494
+ _timeout: true,
495
+ });
496
+ throw new Error(`Polling timeout after ${maxAttempts} attempts`);
497
+ }
498
+ // Terminal value reached — write the final state with re-render
499
+ writeResponseVariable(ctx, varKey, ctx.variables?.[varKey] ?? {});
500
+ }
501
+ if (step.onSuccess) {
502
+ await runActionSteps(step.onSuccess, ctx);
503
+ }
504
+ }
505
+ catch (error) {
506
+ // AbortError = card disposed or timeout, check which
507
+ if (error instanceof DOMException && error.name === 'AbortError') {
508
+ // If card abortSignal is aborted → dispose, silently stop
509
+ if (ctx.abortSignal?.aborted) {
510
+ return;
511
+ }
512
+ // Otherwise it's a timeout — treat as error
513
+ const timeoutError = new Error(`Request timeout after ${requestTimeout}ms`);
514
+ writeResponseVariable(ctx, varKey, {
515
+ ok: false,
516
+ status: 0,
517
+ data: null,
518
+ _timeout: true,
519
+ message: timeoutError.message,
520
+ });
521
+ if (step.onFail) {
522
+ await runActionSteps(step.onFail, ctx);
523
+ }
524
+ else {
525
+ throw timeoutError;
526
+ }
527
+ return;
528
+ }
529
+ // Network errors (no response) — also write to variables
530
+ if (!ctx.variables?.[varKey]) {
531
+ writeResponseVariable(ctx, varKey, {
532
+ ok: false,
533
+ status: 0,
534
+ data: null,
535
+ message: error instanceof Error ? error.message : String(error),
536
+ });
537
+ }
538
+ if (step.onFail) {
539
+ await runActionSteps(step.onFail, ctx);
540
+ }
541
+ else {
542
+ throw error;
543
+ }
544
+ }
545
+ finally {
546
+ inflight.delete(varKey);
547
+ }
548
+ })();
549
+ inflight.set(varKey, task);
550
+ await task;
551
+ };
552
+ const handleToast = (step, ctx) => {
553
+ const { message, level, duration } = step.params;
554
+ if (ctx.showToast) {
555
+ ctx.showToast(message, level, duration);
556
+ }
557
+ else {
558
+ console.log(`[Toast] ${level ?? 'info'}: ${message}`);
559
+ }
560
+ };
561
+ const handleUrl = (step, ctx) => {
562
+ const { url, target } = step.params;
563
+ if (ctx.navigate) {
564
+ ctx.navigate(url, target);
565
+ }
566
+ else if (typeof window !== 'undefined') {
567
+ window.open(url, target ?? '_blank');
568
+ }
569
+ };
570
+ const handleSetVariable = (step, ctx) => {
571
+ const { key, value } = step.params;
572
+ if (ctx.setVariable) {
573
+ ctx.setVariable(key, value);
574
+ }
575
+ else {
576
+ console.warn('[ActionRunner] No setVariable handler registered');
577
+ }
578
+ };
579
+ const handleEmit = (step, ctx) => {
580
+ const { event, payload } = step.params;
581
+ if (ctx.emit) {
582
+ ctx.emit(event, payload);
583
+ }
584
+ else {
585
+ console.warn(`[ActionRunner] No emit handler; event="${event}"`);
586
+ }
587
+ };
588
+ const handleCopy = (step, ctx) => {
589
+ const { text } = step.params;
590
+ if (ctx.copyText) {
591
+ ctx.copyText(text);
592
+ }
593
+ else if (typeof navigator !== 'undefined' && navigator.clipboard) {
594
+ navigator.clipboard.writeText(text);
595
+ }
596
+ else {
597
+ console.warn('[ActionRunner] No clipboard API available');
598
+ }
599
+ };
600
+ // ─── Handler Map ─────────────────────────────────────────────────
601
+ const builtInHandlers = {
602
+ request: handleRequest,
603
+ toast: handleToast,
604
+ url: handleUrl,
605
+ setVariable: handleSetVariable,
606
+ emit: handleEmit,
607
+ copy: handleCopy,
608
+ };
609
+ const customHandlers = new Map();
610
+ /**
611
+ * Register a custom action step handler for a specific bot.
612
+ */
613
+ function registerActionHandler(botId, type, handler) {
614
+ let botMap = customHandlers.get(botId);
615
+ if (!botMap) {
616
+ botMap = new Map();
617
+ customHandlers.set(botId, botMap);
618
+ }
619
+ botMap.set(type, handler);
620
+ }
621
+ /**
622
+ * Execute a single ActionStep.
623
+ */
624
+ async function runActionStep(step, context = {}) {
625
+ const handler = customHandlers.get(context.botId ?? '')?.get(step.type) ?? builtInHandlers[step.type];
626
+ if (!handler) {
627
+ console.warn(`[ActionRunner] Unknown action type: ${step.type}`);
628
+ return;
629
+ }
630
+ // Resolve expression variables in params (e.g. '${order_id}' → 'ORDER_666')
631
+ const resolvedStep = context.variables
632
+ ? { ...step, params: resolveDeep(step.params, context.variables) }
633
+ : step;
634
+ await handler(resolvedStep, context);
635
+ }
636
+ /**
637
+ * Execute a chain of ActionSteps sequentially.
638
+ */
639
+ async function runActionSteps(steps, context = {}) {
640
+ for (const step of steps) {
641
+ await runActionStep(step, context);
642
+ }
643
+ }
644
+
645
+ var index = /*#__PURE__*/Object.freeze({
646
+ __proto__: null,
647
+ registerActionHandler: registerActionHandler,
648
+ runActionStep: runActionStep,
649
+ runActionSteps: runActionSteps
650
+ });
651
+
652
+ /**
653
+ * ActionRegistry — a simplified, business-friendly API for registering
654
+ * custom action handlers, scoped by botId.
655
+ *
656
+ * Usage:
657
+ * ```ts
658
+ * import { registry } from '@antglobal/copilot-cards-core';
659
+ *
660
+ * // Register a handler for a specific bot
661
+ * registry.register('10001', 'bizRequest', async (params, ctx) => {
662
+ * const res = await fetch(params.api, { method: params.method, body: JSON.stringify(params.data) });
663
+ * if (!res.ok) throw new Error('Business request failed');
664
+ * return res.json();
665
+ * });
666
+ * ```
667
+ *
668
+ * When a handler throws, the action chain is interrupted and `onFail` branch
669
+ * (if defined on the ActionStep) is executed instead.
670
+ */
671
+ // ─── ActionRegistry ─────────────────────────────────────────────
672
+ class ActionRegistry {
673
+ constructor() {
674
+ /** botId → Map<type, handler> */
675
+ this._handlers = new Map();
676
+ }
677
+ /**
678
+ * Register a custom action handler for a specific bot.
679
+ *
680
+ * The handler receives `step.params` directly. If it throws,
681
+ * the SDK will execute the step's `onFail` branch (if any)
682
+ * and stop the remaining action chain.
683
+ *
684
+ * @param botId The bot this handler belongs to
685
+ * @param type Action type name (e.g. 'bizRequest')
686
+ * @param handler The handler function
687
+ */
688
+ register(botId, type, handler) {
689
+ let botMap = this._handlers.get(botId);
690
+ if (!botMap) {
691
+ botMap = new Map();
692
+ this._handlers.set(botId, botMap);
693
+ }
694
+ botMap.set(type, handler);
695
+ // Bridge to core's low-level registerActionHandler (botId-scoped)
696
+ const wrappedHandler = async (step, context) => {
697
+ try {
698
+ await handler(step.params, context);
699
+ if (step.onSuccess) {
700
+ const { runActionSteps } = await Promise.resolve().then(function () { return index; });
701
+ await runActionSteps(step.onSuccess, context);
702
+ }
703
+ }
704
+ catch (error) {
705
+ if (step.onFail) {
706
+ const { runActionSteps } = await Promise.resolve().then(function () { return index; });
707
+ await runActionSteps(step.onFail, context);
708
+ }
709
+ else {
710
+ throw error;
711
+ }
712
+ }
713
+ };
714
+ registerActionHandler(botId, type, wrappedHandler);
715
+ }
716
+ /**
717
+ * Remove a previously registered handler for a specific bot.
718
+ */
719
+ unregister(botId, type) {
720
+ const botMap = this._handlers.get(botId);
721
+ if (botMap) {
722
+ botMap.delete(type);
723
+ if (botMap.size === 0)
724
+ this._handlers.delete(botId);
725
+ }
726
+ registerActionHandler(botId, type, () => {
727
+ console.warn(`[ActionRegistry] Handler "${type}" for bot "${botId}" has been unregistered`);
728
+ });
729
+ }
730
+ /**
731
+ * Check whether a handler is registered for the given bot and type.
732
+ */
733
+ has(botId, type) {
734
+ return this._handlers.get(botId)?.has(type) ?? false;
735
+ }
736
+ /**
737
+ * Get the list of all registered custom action types for a bot.
738
+ */
739
+ getRegisteredTypes(botId) {
740
+ return Array.from(this._handlers.get(botId)?.keys() ?? []);
741
+ }
742
+ }
743
+ // ─── Singleton ──────────────────────────────────────────────────
744
+ /** Global action registry singleton. */
745
+ const registry = new ActionRegistry();
746
+
747
+ /**
748
+ * Action Config Provider — abstracts where action chain configurations
749
+ * come from (local mock, remote API, etc.).
750
+ *
751
+ * Action chains are declarative ActionStep[] JSON stored per botId
752
+ * in the server database. The provider fetches them so the SDK can
753
+ * register and execute them on the frontend.
754
+ *
755
+ * Usage:
756
+ * ```ts
757
+ * const provider: ActionConfigProvider = new RemoteActionConfigProvider('https://api.example.com');
758
+ * const configs = await provider.fetchActions('10001');
759
+ * // configs = [{ name: 'confirmOrder', steps: [...] }]
760
+ * ```
761
+ */
762
+ // ─── Helpers ────────────────────────────────────────────────────
763
+ /**
764
+ * Resolve action references in event bindings.
765
+ *
766
+ * If an event value is a string (e.g. `"confirmOrder"`), look it up
767
+ * in the `actionsMap` and return the corresponding ActionStep[].
768
+ * If it's already an ActionStep[], return as-is.
769
+ */
770
+ function resolveActionRef(eventValue, actionsMap) {
771
+ if (eventValue == null)
772
+ return undefined;
773
+ if (typeof eventValue === 'string') {
774
+ const steps = actionsMap[eventValue];
775
+ if (!steps) {
776
+ console.warn(`[ActionProvider] Unknown action reference: "${eventValue}"`);
777
+ return undefined;
778
+ }
779
+ return steps;
780
+ }
781
+ return eventValue;
782
+ }
783
+
784
+ /**
785
+ * Legacy Schema Compatibility — converts old-format card JSON into
786
+ * the current CardSchema format so it can be rendered by the SDK.
787
+ *
788
+ * Old format:
789
+ * ```json
790
+ * {
791
+ * "cardType": "common",
792
+ * "cardContents": [{ "type": "text", "content": { "text": "hello" } }],
793
+ * "text": "card text",
794
+ * "extInfo": { "language": "zh-CN" }
795
+ * }
796
+ * ```
797
+ *
798
+ * Usage:
799
+ * ```ts
800
+ * import { convertLegacySchema } from '@antglobal/copilot-cards-core';
801
+ * const schema = convertLegacySchema(oldJson);
802
+ * renderCard(container, schema);
803
+ * ```
804
+ */
805
+ // ─── Detection ──────────────────────────────────────────────────
806
+ /**
807
+ * Detect whether an unknown input is a legacy card schema.
808
+ *
809
+ * Checks for the presence of legacy-specific fields (`cardContents`, `cardType`)
810
+ * and the absence of new-format fields (`rootID`, `elements`).
811
+ */
812
+ function isLegacySchema(input) {
813
+ if (input == null || typeof input !== 'object')
814
+ return false;
815
+ const obj = input;
816
+ return ('cardContents' in obj &&
817
+ 'cardType' in obj &&
818
+ !('rootID' in obj) &&
819
+ !('elements' in obj));
820
+ }
821
+ // ─── ID Generator ───────────────────────────────────────────────
822
+ let _idCounter = 0;
823
+ function uid(prefix = 'el') {
824
+ return `${prefix}_${++_idCounter}`;
825
+ }
826
+ /** Reset counter (useful for deterministic tests). */
827
+ function resetIdCounter() {
828
+ _idCounter = 0;
829
+ }
830
+ // ─── Type Mapping ───────────────────────────────────────────────
831
+ /**
832
+ * Map legacy component type names to new schema type names.
833
+ * Extensible — add more mappings as new component types are built.
834
+ */
835
+ const TYPE_MAP = {
836
+ text: 'Text',
837
+ button: 'Button',
838
+ image: 'Image',
839
+ form: 'Form',
840
+ timeline: 'Timeline',
841
+ group: 'ColumnSet',
842
+ custom: 'Custom',
843
+ };
844
+ function mapType(legacyType) {
845
+ return TYPE_MAP[legacyType] ?? legacyType;
846
+ }
847
+ // ─── Content → Props Converters ─────────────────────────────────
848
+ /**
849
+ * Convert a legacy `text` content item to ElementNode props.
850
+ *
851
+ * Legacy text content may look like:
852
+ * ```json
853
+ * { "text": "hello", "color": "red", "fontSize": 16, "bold": true, ... }
854
+ * ```
855
+ */
856
+ function convertTextContent(content) {
857
+ const { text, color, fontSize, fontWeight, bold, align, maxLines, style, ...rest } = content;
858
+ const props = { ...rest };
859
+ // content field
860
+ if (text != null) {
861
+ props.content = staticValue(String(text));
862
+ }
863
+ // Merge style
864
+ const mergedStyle = { ...style };
865
+ if (color)
866
+ mergedStyle.color = color;
867
+ if (fontSize)
868
+ mergedStyle.fontSize = fontSize;
869
+ if (fontWeight)
870
+ mergedStyle.fontWeight = fontWeight;
871
+ if (bold)
872
+ mergedStyle.fontWeight = 'bold';
873
+ if (align)
874
+ mergedStyle.textAlign = align;
875
+ if (Object.keys(mergedStyle).length > 0) {
876
+ props.style = mergedStyle;
877
+ }
878
+ if (maxLines)
879
+ props.maxLines = maxLines;
880
+ return props;
881
+ }
882
+ /**
883
+ * Convert a legacy `button` content item to ElementNode props.
884
+ *
885
+ * Legacy button content may look like:
886
+ * ```json
887
+ * { "label": "Submit", "url": "https://...", "style": { ... } }
888
+ * ```
889
+ */
890
+ function convertButtonContent(content) {
891
+ const { label, text, url, actionType, style, ...rest } = content;
892
+ const props = { ...rest };
893
+ // Button display text
894
+ const displayText = label ?? text;
895
+ if (displayText != null) {
896
+ props.content = staticValue(String(displayText));
897
+ }
898
+ if (style)
899
+ props.style = style;
900
+ // Convert URL / action to events
901
+ let events;
902
+ if (url) {
903
+ events = {
904
+ onClick: [{ type: 'url', params: { url } }],
905
+ };
906
+ }
907
+ return { props, events };
908
+ }
909
+ /**
910
+ * Convert a legacy `image` content item to ElementNode props.
911
+ *
912
+ * Legacy image content may look like:
913
+ * ```json
914
+ * { "src": "https://...", "alt": "desc", "width": 200, "height": 100 }
915
+ * ```
916
+ */
917
+ function convertImageContent(content) {
918
+ const { src, url, alt, width, height, style, ...rest } = content;
919
+ const props = { ...rest };
920
+ props.src = src ?? url;
921
+ if (alt)
922
+ props.alt = alt;
923
+ const mergedStyle = { ...style };
924
+ if (width)
925
+ mergedStyle.width = width;
926
+ if (height)
927
+ mergedStyle.height = height;
928
+ if (Object.keys(mergedStyle).length > 0) {
929
+ props.style = mergedStyle;
930
+ }
931
+ return props;
932
+ }
933
+ /**
934
+ * Convert a legacy `form` content item to ElementNode props.
935
+ * Passes through all content properties as props.
936
+ */
937
+ function convertFormContent(content) {
938
+ return { ...content };
939
+ }
940
+ /**
941
+ * Generic fallback converter — passes content through as props.
942
+ */
943
+ function convertGenericContent(content) {
944
+ return { ...content };
945
+ }
946
+ // ─── Main Converter ─────────────────────────────────────────────
947
+ /**
948
+ * Convert a legacy CardSchema to the current CardSchema format.
949
+ *
950
+ * @example
951
+ * ```ts
952
+ * const newSchema = convertLegacySchema(oldJson);
953
+ * renderCard(container, newSchema);
954
+ * ```
955
+ */
956
+ function convertLegacySchema(legacy) {
957
+ resetIdCounter();
958
+ const elements = {};
959
+ // Normalise cardContents to array
960
+ const contents = Array.isArray(legacy.cardContents)
961
+ ? legacy.cardContents
962
+ : [legacy.cardContents];
963
+ // Convert each content item, collecting top-level child IDs
964
+ const childIds = [];
965
+ for (const item of contents) {
966
+ const converted = convertContentItem(item, elements, legacy.tracking);
967
+ childIds.push(converted.id);
968
+ }
969
+ // Create root container element
970
+ const rootId = uid('root');
971
+ if (childIds.length === 1) {
972
+ // Single child — promote it as root directly
973
+ const onlyChild = elements[childIds[0]];
974
+ onlyChild.id = rootId;
975
+ delete elements[childIds[0]];
976
+ elements[rootId] = onlyChild;
977
+ }
978
+ else {
979
+ // Multiple children — wrap in a ColumnSet container
980
+ elements[rootId] = {
981
+ id: rootId,
982
+ type: 'ColumnSet',
983
+ props: {
984
+ slots: {
985
+ default: { children: childIds },
986
+ },
987
+ },
988
+ };
989
+ }
990
+ // Build variables from legacy metadata
991
+ const variables = {
992
+ _legacy: {
993
+ cardType: legacy.cardType,
994
+ cardName: legacy.cardName,
995
+ text: legacy.text,
996
+ description: legacy.description,
997
+ language: legacy.extInfo?.language,
998
+ extInfo: legacy.extInfo,
999
+ },
1000
+ };
1001
+ return {
1002
+ version: '1.0',
1003
+ rootID: rootId,
1004
+ elements,
1005
+ variables,
1006
+ };
1007
+ }
1008
+ // ─── Recursive Item Converter ───────────────────────────────────
1009
+ function convertContentItem(item, elements, tracking) {
1010
+ const id = uid(item.type);
1011
+ const type = mapType(item.type);
1012
+ const content = item.content ?? {};
1013
+ let props;
1014
+ let events;
1015
+ // Type-specific conversion
1016
+ switch (item.type) {
1017
+ case 'text':
1018
+ props = convertTextContent(content);
1019
+ break;
1020
+ case 'button': {
1021
+ const result = convertButtonContent(content);
1022
+ props = result.props;
1023
+ events = result.events;
1024
+ break;
1025
+ }
1026
+ case 'image':
1027
+ props = convertImageContent(content);
1028
+ break;
1029
+ case 'form':
1030
+ props = convertFormContent(content);
1031
+ break;
1032
+ case 'group': {
1033
+ // Group contains nested items
1034
+ const groupChildren = Array.isArray(content.items)
1035
+ ? content.items
1036
+ : content.children
1037
+ ? (Array.isArray(content.children) ? content.children : [content.children])
1038
+ : [];
1039
+ const groupChildIds = [];
1040
+ for (const child of groupChildren) {
1041
+ const childNode = convertContentItem(child, elements, tracking);
1042
+ groupChildIds.push(childNode.id);
1043
+ }
1044
+ props = {
1045
+ slots: {
1046
+ default: { children: groupChildIds },
1047
+ },
1048
+ };
1049
+ // Merge groupInfo
1050
+ if (item.groupInfo) {
1051
+ props.groupInfo = item.groupInfo;
1052
+ }
1053
+ break;
1054
+ }
1055
+ default:
1056
+ props = convertGenericContent(content);
1057
+ break;
1058
+ }
1059
+ // Apply tracking as lifecycle / events
1060
+ const lifecycle = convertTracking(tracking);
1061
+ const element = {
1062
+ id,
1063
+ type,
1064
+ props,
1065
+ ...(events ? { events } : {}),
1066
+ ...(lifecycle ? { lifecycle } : {}),
1067
+ };
1068
+ elements[id] = element;
1069
+ return element;
1070
+ }
1071
+ // ─── Tracking → Lifecycle/Events ────────────────────────────────
1072
+ function convertTracking(tracking) {
1073
+ if (!tracking)
1074
+ return undefined;
1075
+ const lifecycle = {};
1076
+ if (tracking.type === 'expo') {
1077
+ lifecycle.onExposed = [
1078
+ {
1079
+ type: 'emit',
1080
+ params: { event: 'tracking', payload: { spm: tracking.spm, type: 'expo' } },
1081
+ },
1082
+ ];
1083
+ }
1084
+ if (tracking.type === 'click') {
1085
+ // Click tracking is handled at the element level via events,
1086
+ // but we also attach an onMount hook to register the tracking context
1087
+ lifecycle.onMount = [
1088
+ {
1089
+ type: 'emit',
1090
+ params: { event: 'tracking:register', payload: { spm: tracking.spm, type: 'click' } },
1091
+ },
1092
+ ];
1093
+ }
1094
+ return Object.keys(lifecycle).length > 0 ? lifecycle : undefined;
1095
+ }
1096
+ // ─── Helpers ────────────────────────────────────────────────────
1097
+ function staticValue(value) {
1098
+ return { type: 'static', value };
1099
+ }
1100
+
1101
+ /**
1102
+ * Schema Parser — resolves a CardSchema into a renderable tree.
1103
+ *
1104
+ * A CardSchema contains a flat `elements` map plus a `rootID` entry point,
1105
+ * global `variables`, and optional global `actions`.
1106
+ */
1107
+ // ─── Normalize ──────────────────────────────────────────────────
1108
+ /**
1109
+ * Normalize any supported schema input into the current CardSchema.
1110
+ *
1111
+ * If the input is already a CardSchema, it is returned as-is.
1112
+ * If it is a legacy format, it is automatically converted.
1113
+ */
1114
+ function normalizeSchema(input) {
1115
+ if (isLegacySchema(input)) {
1116
+ return convertLegacySchema(input);
1117
+ }
1118
+ return input;
1119
+ }
1120
+ // ─── Parser ──────────────────────────────────────────────────────
1121
+ /**
1122
+ * Parse a CardSchema into a nested RenderTreeNode starting from `rootID`.
1123
+ *
1124
+ * Children are resolved through `props.slots` — each slot's `children` array
1125
+ * lists element IDs that become nested RenderTreeNodes.
1126
+ */
1127
+ function parseSchema(input) {
1128
+ const schema = normalizeSchema(input);
1129
+ const { elements, rootID } = schema;
1130
+ const visited = new Set();
1131
+ function buildNode(id) {
1132
+ if (visited.has(id)) {
1133
+ throw new Error(`[SchemaParser] Circular reference detected at "${id}"`);
1134
+ }
1135
+ const element = elements[id];
1136
+ if (!element) {
1137
+ throw new Error(`[SchemaParser] Missing element for id "${id}"`);
1138
+ }
1139
+ visited.add(id);
1140
+ // Collect children from all slots (children + groups + config.overlays)
1141
+ const children = [];
1142
+ if (element.props.slots) {
1143
+ for (const slot of Object.values(element.props.slots)) {
1144
+ if (slot.children) {
1145
+ for (const childId of slot.children) {
1146
+ children.push(buildNode(childId));
1147
+ }
1148
+ }
1149
+ if (slot.groups) {
1150
+ for (const group of slot.groups) {
1151
+ for (const childId of group) {
1152
+ children.push(buildNode(childId));
1153
+ }
1154
+ }
1155
+ }
1156
+ if (slot.config?.overlays) {
1157
+ for (const overlay of slot.config.overlays) {
1158
+ if (overlay.children) {
1159
+ for (const childId of overlay.children) {
1160
+ children.push(buildNode(childId));
1161
+ }
1162
+ }
1163
+ }
1164
+ }
1165
+ }
1166
+ }
1167
+ visited.delete(id); // allow same element across different branches
1168
+ return {
1169
+ id,
1170
+ type: element.type,
1171
+ props: element.props,
1172
+ children,
1173
+ lifecycle: element.lifecycle,
1174
+ events: element.events,
1175
+ directives: element.directives,
1176
+ };
1177
+ }
1178
+ return buildNode(rootID);
1179
+ }
1180
+ // ─── Validation ──────────────────────────────────────────────────
1181
+ /**
1182
+ * Validate a CardSchema and return any error messages.
1183
+ */
1184
+ function validateSchema(input) {
1185
+ const schema = normalizeSchema(input);
1186
+ const errors = [];
1187
+ if (!schema.version) {
1188
+ errors.push('Missing "version" field');
1189
+ }
1190
+ if (!schema.rootID) {
1191
+ errors.push('Missing "rootID" field');
1192
+ }
1193
+ else if (!schema.elements[schema.rootID]) {
1194
+ errors.push(`Root element "${schema.rootID}" not found in elements`);
1195
+ }
1196
+ const allIds = new Set(Object.keys(schema.elements));
1197
+ for (const [id, element] of Object.entries(schema.elements)) {
1198
+ if (!element.type) {
1199
+ errors.push(`Element "${id}" is missing a "type" field`);
1200
+ }
1201
+ // Validate slot children and groups references
1202
+ if (element.props.slots) {
1203
+ for (const [slotName, slot] of Object.entries(element.props.slots)) {
1204
+ if (slot.children) {
1205
+ for (const childId of slot.children) {
1206
+ if (!allIds.has(childId)) {
1207
+ errors.push(`Element "${id}" slot "${slotName}" references unknown child "${childId}"`);
1208
+ }
1209
+ }
1210
+ }
1211
+ if (slot.groups) {
1212
+ for (const group of slot.groups) {
1213
+ for (const childId of group) {
1214
+ if (!allIds.has(childId)) {
1215
+ errors.push(`Element "${id}" slot "${slotName}" group references unknown child "${childId}"`);
1216
+ }
1217
+ }
1218
+ }
1219
+ }
1220
+ }
1221
+ }
1222
+ }
1223
+ return errors;
1224
+ }
1225
+
1226
+ /**
1227
+ * Lifecycle Manager — manages mount / exposed / destroy hooks for card elements.
1228
+ *
1229
+ * Each element can declare lifecycle ActionStep chains (onMount, onExposed, onDestroy).
1230
+ * The manager tracks mounted/exposed state and runs the corresponding chains via
1231
+ * the ActionRunner.
1232
+ */
1233
+ // ─── Manager ─────────────────────────────────────────────────────
1234
+ class LifecycleManager {
1235
+ constructor() {
1236
+ this.lifecycles = new Map();
1237
+ this.mounted = new Set();
1238
+ this.exposed = new Set();
1239
+ }
1240
+ /**
1241
+ * Register lifecycle hooks for an element identified by `id`.
1242
+ */
1243
+ register(id, lifecycle) {
1244
+ if (lifecycle) {
1245
+ this.lifecycles.set(id, lifecycle);
1246
+ }
1247
+ return () => this.unregister(id);
1248
+ }
1249
+ /**
1250
+ * Remove lifecycle hooks for an element.
1251
+ */
1252
+ unregister(id) {
1253
+ this.lifecycles.delete(id);
1254
+ this.mounted.delete(id);
1255
+ this.exposed.delete(id);
1256
+ }
1257
+ /**
1258
+ * Trigger onMount for an element.
1259
+ */
1260
+ async mount(id, ctx = {}) {
1261
+ if (this.mounted.has(id))
1262
+ return;
1263
+ const lc = this.lifecycles.get(id);
1264
+ if (lc?.onMount) {
1265
+ await runActionSteps(lc.onMount, ctx);
1266
+ }
1267
+ this.mounted.add(id);
1268
+ }
1269
+ /**
1270
+ * Trigger onExposed for an element (entered viewport).
1271
+ */
1272
+ async markExposed(id, ctx = {}) {
1273
+ if (this.exposed.has(id))
1274
+ return;
1275
+ const lc = this.lifecycles.get(id);
1276
+ if (lc?.onExposed) {
1277
+ await runActionSteps(lc.onExposed, ctx);
1278
+ }
1279
+ this.exposed.add(id);
1280
+ }
1281
+ /**
1282
+ * Trigger onDestroy for an element.
1283
+ */
1284
+ async destroy(id, ctx = {}) {
1285
+ if (!this.mounted.has(id))
1286
+ return;
1287
+ const lc = this.lifecycles.get(id);
1288
+ if (lc?.onDestroy) {
1289
+ await runActionSteps(lc.onDestroy, ctx);
1290
+ }
1291
+ this.mounted.delete(id);
1292
+ this.exposed.delete(id);
1293
+ }
1294
+ /**
1295
+ * Check if an element is currently mounted.
1296
+ */
1297
+ isMounted(id) {
1298
+ return this.mounted.has(id);
1299
+ }
1300
+ /**
1301
+ * Destroy all elements and clear all hooks.
1302
+ */
1303
+ async dispose(ctx = {}) {
1304
+ const mountedIds = [...this.mounted];
1305
+ for (const id of mountedIds) {
1306
+ await this.destroy(id, ctx);
1307
+ }
1308
+ this.lifecycles.clear();
1309
+ this.mounted.clear();
1310
+ this.exposed.clear();
1311
+ }
1312
+ }
1313
+ /**
1314
+ * Create a new LifecycleManager instance.
1315
+ */
1316
+ function createLifecycleManager() {
1317
+ return new LifecycleManager();
1318
+ }
1319
+
1320
+ /**
1321
+ * A2UI v0.9 Envelope Adapter — converts Google A2UI protocol messages
1322
+ * into internal StreamingCommand objects.
1323
+ *
1324
+ * A2UI (https://a2ui.org) wraps each message as
1325
+ * `{ "version": "v0.9", "<messageType>": { ... } }`, while the internal
1326
+ * command stream uses a `type` discriminator field. The command names are
1327
+ * already aligned (createSurface / updateComponents / updateDataModel /
1328
+ * deleteSurface), so conversion is mostly an envelope unwrap plus a
1329
+ * component-shape mapping:
1330
+ *
1331
+ * - A2UI components are a flat array with a `component` discriminator and
1332
+ * top-level props (`{"id":"t1","component":"Text","content":...,"children":[...]}`)
1333
+ * - Internal elements are a map with `type` + nested `props`
1334
+ * (`{"t1":{"id":"t1","type":"Text","props":{content,slots:{default:{children}}}}}`)
1335
+ *
1336
+ * `appendContent` is accepted in envelope form as a non-standard extension
1337
+ * (A2UI has no token-append primitive; we keep ours for typewriter streaming).
1338
+ */
1339
+ // ─── Detection ───────────────────────────────────────────────────
1340
+ const ENVELOPE_KEYS = [
1341
+ 'createSurface',
1342
+ 'updateComponents',
1343
+ 'updateDataModel',
1344
+ 'deleteSurface',
1345
+ 'appendContent',
1346
+ ];
1347
+ /**
1348
+ * Check whether a parsed JSON object looks like an A2UI envelope
1349
+ * (no internal `type` discriminator, but exactly an A2UI action key).
1350
+ */
1351
+ function isA2UIEnvelope(msg) {
1352
+ if (!msg || typeof msg !== 'object')
1353
+ return false;
1354
+ if (typeof msg.type === 'string')
1355
+ return false; // internal command
1356
+ return ENVELOPE_KEYS.some((k) => msg[k] != null);
1357
+ }
1358
+ // ─── Conversion ──────────────────────────────────────────────────
1359
+ /**
1360
+ * Convert a flat A2UI component into an internal ElementNode.
1361
+ */
1362
+ function a2uiComponentToElement(comp) {
1363
+ const { id, component, children, slots, directives, events, lifecycle, ...props } = comp;
1364
+ const p = { ...props };
1365
+ if (children) {
1366
+ p.slots = { ...(p.slots ?? {}), default: { children } };
1367
+ }
1368
+ if (slots) {
1369
+ p.slots = { ...(p.slots ?? {}), ...slots };
1370
+ }
1371
+ const element = { id, type: component, props: p };
1372
+ if (directives)
1373
+ element.directives = directives;
1374
+ if (events)
1375
+ element.events = events;
1376
+ if (lifecycle)
1377
+ element.lifecycle = lifecycle;
1378
+ return element;
1379
+ }
1380
+ /**
1381
+ * Convert an A2UI v0.9 envelope message into an internal StreamingCommand.
1382
+ * Returns null for unrecognized messages.
1383
+ *
1384
+ * Notes:
1385
+ * - `catalogId` / `theme` / `sendDataModel` are accepted but currently ignored
1386
+ * (component catalog is built into the renderer).
1387
+ * - `createSurface.schema` is a convenience extension: a full internal schema
1388
+ * may be attached for template-style cards.
1389
+ * - A component with `id: "root"` sets the surface rootID (A2UI convention).
1390
+ */
1391
+ function a2uiToCommand(msg) {
1392
+ if (msg.createSurface) {
1393
+ const { surfaceId, schema } = msg.createSurface;
1394
+ return { type: 'createSurface', surfaceId, ...(schema ? { schema } : {}) };
1395
+ }
1396
+ if (msg.updateComponents) {
1397
+ const { surfaceId, components } = msg.updateComponents;
1398
+ const elements = {};
1399
+ let rootID;
1400
+ for (const comp of components ?? []) {
1401
+ if (!comp || typeof comp.id !== 'string' || typeof comp.component !== 'string')
1402
+ continue;
1403
+ elements[comp.id] = a2uiComponentToElement(comp);
1404
+ if (comp.id === 'root')
1405
+ rootID = 'root';
1406
+ }
1407
+ return { type: 'updateComponents', surfaceId, elements, ...(rootID ? { rootID } : {}) };
1408
+ }
1409
+ if (msg.updateDataModel) {
1410
+ const { surfaceId, path = '/', value = null } = msg.updateDataModel;
1411
+ return { type: 'updateDataModel', surfaceId, path, value };
1412
+ }
1413
+ if (msg.appendContent) {
1414
+ const { surfaceId, elementId, content } = msg.appendContent;
1415
+ return { type: 'appendContent', surfaceId, elementId, content };
1416
+ }
1417
+ if (msg.deleteSurface) {
1418
+ return { type: 'deleteSurface', surfaceId: msg.deleteSurface.surfaceId };
1419
+ }
1420
+ return null;
1421
+ }
1422
+
1423
+ /**
1424
+ * Streaming Message Parser — converts raw byte streams into typed command objects.
1425
+ *
1426
+ * Supports multiple transport formats:
1427
+ * - NDJSON (Newline-Delimited JSON): one JSON object per line
1428
+ * - SSE (Server-Sent Events): `data: {...}` format
1429
+ * - Chunked JSON: handles incomplete JSON that spans multiple chunks
1430
+ *
1431
+ * The parser maintains an internal buffer for handling partial messages
1432
+ * that arrive across chunk boundaries.
1433
+ */
1434
+ // ─── Parser ──────────────────────────────────────────────────────
1435
+ /**
1436
+ * Streaming message parser that converts raw text chunks from
1437
+ * SSE/WebSocket/fetch streaming into typed StreamingCommand objects.
1438
+ *
1439
+ * @example
1440
+ * ```ts
1441
+ * const parser = new StreamingParser();
1442
+ *
1443
+ * // Feed chunks as they arrive from the transport
1444
+ * socket.onmessage = (e) => {
1445
+ * const commands = parser.parse(e.data);
1446
+ * commands.forEach(cmd => engine.apply(cmd));
1447
+ * };
1448
+ *
1449
+ * // Flush remaining buffer when stream ends
1450
+ * socket.onclose = () => {
1451
+ * const remaining = parser.flush();
1452
+ * remaining.forEach(cmd => engine.apply(cmd));
1453
+ * };
1454
+ * ```
1455
+ */
1456
+ class StreamingParser {
1457
+ constructor(options = {}) {
1458
+ this.buffer = '';
1459
+ this.delimiter = options.delimiter ?? '\n';
1460
+ this.onParseError = options.onParseError;
1461
+ }
1462
+ /**
1463
+ * Parse a raw text chunk into an array of streaming commands.
1464
+ *
1465
+ * Incomplete lines are buffered internally and will be completed
1466
+ * when the next chunk arrives (or when flush() is called).
1467
+ *
1468
+ * @param chunk - Raw text chunk from the transport layer
1469
+ * @returns Array of successfully parsed commands (may be empty)
1470
+ */
1471
+ parse(chunk) {
1472
+ this.buffer += chunk;
1473
+ const commands = [];
1474
+ // Split by delimiter, keeping the last incomplete line in the buffer
1475
+ const lines = this.buffer.split(this.delimiter);
1476
+ this.buffer = lines.pop() ?? '';
1477
+ for (const line of lines) {
1478
+ const command = this.parseLine(line);
1479
+ if (command) {
1480
+ commands.push(command);
1481
+ }
1482
+ }
1483
+ return commands;
1484
+ }
1485
+ /**
1486
+ * Flush the internal buffer and attempt to parse any remaining content.
1487
+ *
1488
+ * Call this when the stream ends to ensure no messages are lost.
1489
+ *
1490
+ * @returns Array of commands parsed from the remaining buffer
1491
+ */
1492
+ flush() {
1493
+ const remaining = this.buffer.trim();
1494
+ this.buffer = '';
1495
+ if (!remaining)
1496
+ return [];
1497
+ const command = this.parseLine(remaining);
1498
+ return command ? [command] : [];
1499
+ }
1500
+ /**
1501
+ * Reset the parser state, clearing any buffered content.
1502
+ */
1503
+ reset() {
1504
+ this.buffer = '';
1505
+ }
1506
+ // ─── Private ────────────────────────────────────────────────────
1507
+ /**
1508
+ * Parse a single line into a StreamingCommand, handling SSE format.
1509
+ */
1510
+ parseLine(line) {
1511
+ const trimmed = line.trim();
1512
+ // Skip empty lines and SSE comments (lines starting with ':')
1513
+ if (!trimmed || trimmed.startsWith(':'))
1514
+ return null;
1515
+ // Handle SSE format: strip "data:" prefix
1516
+ let data = trimmed;
1517
+ if (data.startsWith('data:')) {
1518
+ data = data.slice(5).trim();
1519
+ }
1520
+ // Skip SSE control messages
1521
+ if (data === '[DONE]')
1522
+ return null;
1523
+ try {
1524
+ const parsed = JSON.parse(data);
1525
+ // Internal command format: has a `type` discriminator field
1526
+ if (parsed && typeof parsed.type === 'string') {
1527
+ return parsed;
1528
+ }
1529
+ // A2UI v0.9 envelope format: `{"version":"v0.9","createSurface":{...}}`
1530
+ if (isA2UIEnvelope(parsed)) {
1531
+ return a2uiToCommand(parsed);
1532
+ }
1533
+ return null;
1534
+ }
1535
+ catch (error) {
1536
+ this.onParseError?.(data, error);
1537
+ return null;
1538
+ }
1539
+ }
1540
+ }
1541
+
1542
+ /**
1543
+ * Streaming Engine — maintains card state and computes incremental changes.
1544
+ *
1545
+ * The engine acts as the central coordinator between the message parser
1546
+ * and the rendering layer. It maintains a mutable CardSchema state for
1547
+ * each surface and emits fine-grained change events that renderers can
1548
+ * use for efficient incremental updates.
1549
+ *
1550
+ * Key responsibilities:
1551
+ * - Manage multiple concurrent surfaces
1552
+ * - Apply streaming commands to internal state
1553
+ * - Compute parent-child relationships for component changes
1554
+ * - Emit typed events for the rendering layer
1555
+ */
1556
+ // ─── Engine ──────────────────────────────────────────────────────
1557
+ class StreamingEngine {
1558
+ constructor(listeners) {
1559
+ /** Active surfaces keyed by surfaceId */
1560
+ this.surfaces = new Map();
1561
+ this.listeners = listeners;
1562
+ }
1563
+ // ─── Public API ────────────────────────────────────────────────
1564
+ /**
1565
+ * Apply a single streaming command to the engine state.
1566
+ * This triggers the appropriate event listener after state mutation.
1567
+ */
1568
+ apply(command) {
1569
+ switch (command.type) {
1570
+ case 'createSurface':
1571
+ this.handleCreateSurface(command);
1572
+ break;
1573
+ case 'updateComponents':
1574
+ this.handleUpdateComponents(command);
1575
+ break;
1576
+ case 'updateDataModel':
1577
+ this.handleUpdateDataModel(command);
1578
+ break;
1579
+ case 'appendContent':
1580
+ this.handleAppendContent(command);
1581
+ break;
1582
+ case 'deleteSurface':
1583
+ this.handleDeleteSurface(command);
1584
+ break;
1585
+ }
1586
+ }
1587
+ /**
1588
+ * Apply multiple streaming commands in order.
1589
+ */
1590
+ applyBatch(commands) {
1591
+ for (const command of commands) {
1592
+ this.apply(command);
1593
+ }
1594
+ }
1595
+ /**
1596
+ * Get the current schema for a surface (read-only snapshot).
1597
+ */
1598
+ getSchema(surfaceId) {
1599
+ return this.surfaces.get(surfaceId);
1600
+ }
1601
+ /**
1602
+ * Get the current variables for a surface.
1603
+ */
1604
+ getVariables(surfaceId) {
1605
+ return this.surfaces.get(surfaceId)?.variables;
1606
+ }
1607
+ /**
1608
+ * Check if a surface exists.
1609
+ */
1610
+ hasSurface(surfaceId) {
1611
+ return this.surfaces.has(surfaceId);
1612
+ }
1613
+ /**
1614
+ * Dispose all surfaces and reset state.
1615
+ */
1616
+ dispose() {
1617
+ for (const surfaceId of this.surfaces.keys()) {
1618
+ this.listeners.onSurfaceDeleted(surfaceId);
1619
+ }
1620
+ this.surfaces.clear();
1621
+ }
1622
+ // ─── Command Handlers ──────────────────────────────────────────
1623
+ handleCreateSurface(cmd) {
1624
+ // (Re)creating a surface always resets its state. A2UI semantics: a
1625
+ // surfaceId is fixed once created and must be deleted before reuse, so a
1626
+ // repeated createSurface is treated as delete + create. Without a schema
1627
+ // an empty shell is stored — components then arrive via updateComponents.
1628
+ const schema = cmd.schema
1629
+ ? normalizeSchema(cmd.schema)
1630
+ : { version: '1.0', rootID: 'root', elements: {}, variables: {} };
1631
+ this.surfaces.set(cmd.surfaceId, schema);
1632
+ this.listeners.onSurfaceCreated(cmd.surfaceId, cmd.schema ?? null);
1633
+ }
1634
+ handleUpdateComponents(cmd) {
1635
+ let schema = this.surfaces.get(cmd.surfaceId);
1636
+ if (!schema) {
1637
+ // Implicit surface creation (v0.8 compatibility)
1638
+ schema = {
1639
+ version: '1.0',
1640
+ rootID: cmd.rootID ?? 'root',
1641
+ elements: {},
1642
+ variables: {},
1643
+ };
1644
+ this.surfaces.set(cmd.surfaceId, schema);
1645
+ }
1646
+ const changes = [];
1647
+ // Update rootID if provided
1648
+ if (cmd.rootID) {
1649
+ schema.rootID = cmd.rootID;
1650
+ }
1651
+ // Process element additions/updates.
1652
+ // Merge ALL elements first, THEN compute parent/index against the final
1653
+ // batch state — otherwise parentId depends on key order: a new child
1654
+ // processed before its parent's updated children array would resolve to
1655
+ // no parent, and incremental renderers would silently drop it.
1656
+ if (cmd.elements) {
1657
+ const isNewMap = new Map();
1658
+ for (const [id, element] of Object.entries(cmd.elements)) {
1659
+ isNewMap.set(id, !schema.elements[id]);
1660
+ schema.elements[id] = element;
1661
+ }
1662
+ for (const [id, element] of Object.entries(cmd.elements)) {
1663
+ const parentId = this.findParentId(schema, id);
1664
+ const index = parentId ? this.findChildIndex(schema, parentId, id) : undefined;
1665
+ changes.push({
1666
+ changeType: isNewMap.get(id) ? 'add' : 'update',
1667
+ elementId: id,
1668
+ element,
1669
+ parentId,
1670
+ index,
1671
+ });
1672
+ }
1673
+ }
1674
+ // Process element removals
1675
+ if (cmd.removeElements) {
1676
+ for (const id of cmd.removeElements) {
1677
+ if (schema.elements[id]) {
1678
+ changes.push({
1679
+ changeType: 'remove',
1680
+ elementId: id,
1681
+ parentId: this.findParentId(schema, id),
1682
+ });
1683
+ delete schema.elements[id];
1684
+ // Also remove from any parent's children lists
1685
+ this.removeFromParentSlots(schema, id);
1686
+ }
1687
+ }
1688
+ }
1689
+ if (changes.length > 0) {
1690
+ this.listeners.onComponentsUpdated(cmd.surfaceId, changes);
1691
+ }
1692
+ }
1693
+ handleUpdateDataModel(cmd) {
1694
+ const schema = this.surfaces.get(cmd.surfaceId);
1695
+ if (!schema)
1696
+ return;
1697
+ // Set value at path in variables
1698
+ setByPath(schema.variables, cmd.path, cmd.value);
1699
+ this.listeners.onDataModelUpdated(cmd.surfaceId, cmd.path, cmd.value);
1700
+ }
1701
+ handleAppendContent(cmd) {
1702
+ const schema = this.surfaces.get(cmd.surfaceId);
1703
+ if (!schema)
1704
+ return;
1705
+ // Update internal schema state
1706
+ const element = schema.elements[cmd.elementId];
1707
+ if (element) {
1708
+ const currentContent = typeof element.props.content === 'string'
1709
+ ? element.props.content
1710
+ : '';
1711
+ element.props.content = currentContent + cmd.content;
1712
+ }
1713
+ this.listeners.onContentAppended(cmd.surfaceId, cmd.elementId, cmd.content);
1714
+ }
1715
+ handleDeleteSurface(cmd) {
1716
+ this.surfaces.delete(cmd.surfaceId);
1717
+ this.listeners.onSurfaceDeleted(cmd.surfaceId);
1718
+ }
1719
+ // ─── Helpers ────────────────────────────────────────────────────
1720
+ /**
1721
+ * Find the parent element ID for a given element by scanning all slots.
1722
+ */
1723
+ findParentId(schema, elementId) {
1724
+ for (const [id, element] of Object.entries(schema.elements)) {
1725
+ if (id === elementId)
1726
+ continue;
1727
+ if (this.elementContainsChild(element, elementId)) {
1728
+ return id;
1729
+ }
1730
+ }
1731
+ return undefined;
1732
+ }
1733
+ /**
1734
+ * Find the index of a child element within its parent's slot children.
1735
+ */
1736
+ findChildIndex(schema, parentId, childId) {
1737
+ const parent = schema.elements[parentId];
1738
+ if (!parent?.props.slots)
1739
+ return undefined;
1740
+ for (const slot of Object.values(parent.props.slots)) {
1741
+ if (slot.children) {
1742
+ const idx = slot.children.indexOf(childId);
1743
+ if (idx >= 0)
1744
+ return idx;
1745
+ }
1746
+ if (slot.groups) {
1747
+ for (const group of slot.groups) {
1748
+ const idx = group.indexOf(childId);
1749
+ if (idx >= 0)
1750
+ return idx;
1751
+ }
1752
+ }
1753
+ }
1754
+ return undefined;
1755
+ }
1756
+ /**
1757
+ * Check if an element references the given child ID in any of its slots.
1758
+ */
1759
+ elementContainsChild(element, childId) {
1760
+ if (!element.props.slots)
1761
+ return false;
1762
+ for (const slot of Object.values(element.props.slots)) {
1763
+ if (slot.children?.includes(childId))
1764
+ return true;
1765
+ if (slot.groups?.some(group => group.includes(childId)))
1766
+ return true;
1767
+ if (slot.config?.overlays) {
1768
+ for (const overlay of slot.config.overlays) {
1769
+ if (overlay.children?.includes(childId))
1770
+ return true;
1771
+ }
1772
+ }
1773
+ }
1774
+ return false;
1775
+ }
1776
+ /**
1777
+ * Remove a child ID from all parent element slot references.
1778
+ */
1779
+ removeFromParentSlots(schema, childId) {
1780
+ for (const element of Object.values(schema.elements)) {
1781
+ if (!element.props.slots)
1782
+ continue;
1783
+ for (const slot of Object.values(element.props.slots)) {
1784
+ if (slot.children) {
1785
+ const idx = slot.children.indexOf(childId);
1786
+ if (idx >= 0)
1787
+ slot.children.splice(idx, 1);
1788
+ }
1789
+ if (slot.groups) {
1790
+ for (const group of slot.groups) {
1791
+ const idx = group.indexOf(childId);
1792
+ if (idx >= 0)
1793
+ group.splice(idx, 1);
1794
+ }
1795
+ }
1796
+ }
1797
+ }
1798
+ }
1799
+ }
1800
+ // ─── Utility Functions ────────────────────────────────────────────
1801
+ /**
1802
+ * Keys that must never be written through a data-model path. Walking or
1803
+ * assigning into `__proto__` / `constructor` / `prototype` lets a crafted
1804
+ * `updateDataModel` command reach `Object.prototype` and pollute every object
1805
+ * in the runtime. Streaming commands originate from the agent/LLM stream, so
1806
+ * this path is attacker-influenceable and must be guarded.
1807
+ */
1808
+ const UNSAFE_PATH_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
1809
+ /** Merge only own, non-dangerous keys of `src` into `target`. */
1810
+ function safeMerge(target, src) {
1811
+ for (const key of Object.keys(src)) {
1812
+ if (UNSAFE_PATH_KEYS.has(key))
1813
+ continue;
1814
+ target[key] = src[key];
1815
+ }
1816
+ }
1817
+ /**
1818
+ * Set a value at a JSON Pointer-like path in an object.
1819
+ *
1820
+ * Path format: '/key1/key2/key3' → obj.key1.key2.key3 = value
1821
+ * Root path '/' sets the entire object.
1822
+ *
1823
+ * Prototype-polluting segments (`__proto__` / `constructor` / `prototype`) are
1824
+ * rejected — the whole write is dropped rather than silently retargeted.
1825
+ *
1826
+ * @example
1827
+ * ```ts
1828
+ * const obj = { user: { name: 'Alice' } };
1829
+ * setByPath(obj, '/user/name', 'Bob');
1830
+ * // obj.user.name === 'Bob'
1831
+ * ```
1832
+ */
1833
+ function setByPath(obj, path, value) {
1834
+ // Remove leading slash and split
1835
+ const parts = path.replace(/^\//, '').split('/').filter(Boolean);
1836
+ // Reject any dangerous segment outright — never partially apply.
1837
+ if (parts.some((p) => UNSAFE_PATH_KEYS.has(p))) {
1838
+ console.warn(`[StreamingEngine] Rejected unsafe data-model path "${path}"`);
1839
+ return;
1840
+ }
1841
+ if (parts.length === 0) {
1842
+ // Root-level update: merge value into obj (own, safe keys only)
1843
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
1844
+ safeMerge(obj, value);
1845
+ }
1846
+ return;
1847
+ }
1848
+ let current = obj;
1849
+ for (let i = 0; i < parts.length - 1; i++) {
1850
+ const key = parts[i];
1851
+ if (current[key] === undefined || current[key] === null) {
1852
+ current[key] = {};
1853
+ }
1854
+ current = current[key];
1855
+ }
1856
+ current[parts[parts.length - 1]] = value;
1857
+ }
1858
+
1859
+ /**
1860
+ * Partial Schema Extractor — pulls completed pieces out of an INCOMPLETE
1861
+ * card-schema JSON text while it is still streaming in from an LLM.
1862
+ *
1863
+ * A card schema is `{"version","rootID","variables","elements":{id:{...},...}}`.
1864
+ * The `elements` map is flat, so every element value becomes parseable the
1865
+ * moment its own braces balance — long before the whole document closes.
1866
+ * This enables progressive rendering: blocks mount as they complete instead
1867
+ * of waiting out the entire (possibly multi-thousand-token) JSON.
1868
+ *
1869
+ * Design constraints:
1870
+ * - Pure & stateless: call it every frame with the ACCUMULATED text
1871
+ * (append-only); identical input → identical output.
1872
+ * - String-aware scanning: braces/quotes inside JSON string values
1873
+ * (including escapes) never confuse the balancer.
1874
+ * - Malformed single elements are skipped (the final full-document parse
1875
+ * in the caller is the correctness backstop).
1876
+ */
1877
+ const EMPTY = Object.freeze({ elements: {}, complete: false });
1878
+ // ─── Scanner primitives ──────────────────────────────────────────
1879
+ /**
1880
+ * Scan a balanced JSON value starting at `start` (must point at `{` or `[`).
1881
+ * Returns the index AFTER the closing bracket, or -1 if the text ends first.
1882
+ */
1883
+ function scanBalanced(text, start) {
1884
+ const open = text[start];
1885
+ const close = open === '{' ? '}' : ']';
1886
+ let depth = 0;
1887
+ let inStr = false;
1888
+ let esc = false;
1889
+ for (let i = start; i < text.length; i++) {
1890
+ const c = text[i];
1891
+ if (esc) {
1892
+ esc = false;
1893
+ continue;
1894
+ }
1895
+ if (c === '\\') {
1896
+ if (inStr)
1897
+ esc = true;
1898
+ continue;
1899
+ }
1900
+ if (c === '"') {
1901
+ inStr = !inStr;
1902
+ continue;
1903
+ }
1904
+ if (inStr)
1905
+ continue;
1906
+ if (c === open)
1907
+ depth++;
1908
+ else if (c === close) {
1909
+ depth--;
1910
+ if (depth === 0)
1911
+ return i + 1;
1912
+ }
1913
+ }
1914
+ return -1;
1915
+ }
1916
+ /** Scan a JSON string starting at `start` (must point at `"`). Returns index after closing quote, or -1. */
1917
+ function scanString(text, start) {
1918
+ let esc = false;
1919
+ for (let i = start + 1; i < text.length; i++) {
1920
+ const c = text[i];
1921
+ if (esc) {
1922
+ esc = false;
1923
+ continue;
1924
+ }
1925
+ if (c === '\\') {
1926
+ esc = true;
1927
+ continue;
1928
+ }
1929
+ if (c === '"')
1930
+ return i + 1;
1931
+ }
1932
+ return -1;
1933
+ }
1934
+ /** Skip whitespace from `i`. */
1935
+ function skipWs(text, i) {
1936
+ while (i < text.length && /\s/.test(text[i]))
1937
+ i++;
1938
+ return i;
1939
+ }
1940
+ /**
1941
+ * Find the top-level (depth-1) key `"elements"` outside of any string value.
1942
+ * Returns the index of its opening quote, or -1.
1943
+ */
1944
+ function findElementsKey(text) {
1945
+ let depth = 0;
1946
+ let i = 0;
1947
+ while (i < text.length) {
1948
+ const c = text[i];
1949
+ if (c === '"') {
1950
+ const end = scanString(text, i);
1951
+ if (end < 0)
1952
+ return -1; // unterminated string at stream edge
1953
+ // A depth-1 string followed by `:` is a top-level key
1954
+ if (depth === 1 && text.slice(i, end) === '"elements"') {
1955
+ const after = skipWs(text, end);
1956
+ if (text[after] === ':')
1957
+ return i;
1958
+ }
1959
+ i = end;
1960
+ continue;
1961
+ }
1962
+ if (c === '{' || c === '[')
1963
+ depth++;
1964
+ else if (c === '}' || c === ']')
1965
+ depth--;
1966
+ i++;
1967
+ }
1968
+ return -1;
1969
+ }
1970
+ // ─── Main API ────────────────────────────────────────────────────
1971
+ /**
1972
+ * Extract completed pieces from (possibly incomplete) schema JSON text.
1973
+ *
1974
+ * @param text - Accumulated schema JSON text, starting at the document `{`.
1975
+ * Surrounding whitespace is tolerated; surrounding prose is not
1976
+ * (strip markers like `<card>` before calling).
1977
+ */
1978
+ function extractPartialSchema(text) {
1979
+ const doc = text.trim();
1980
+ if (!doc.startsWith('{'))
1981
+ return EMPTY;
1982
+ // 1) Whole document already closed → authoritative full parse
1983
+ try {
1984
+ const full = JSON.parse(doc);
1985
+ if (full && typeof full === 'object') {
1986
+ return {
1987
+ version: full.version,
1988
+ rootID: full.rootID,
1989
+ variables: full.variables,
1990
+ elements: full.elements && typeof full.elements === 'object' ? full.elements : {},
1991
+ complete: true,
1992
+ };
1993
+ }
1994
+ }
1995
+ catch {
1996
+ // still streaming — fall through to partial extraction
1997
+ }
1998
+ // 2) Locate the top-level "elements" key
1999
+ const keyStart = findElementsKey(doc);
2000
+ if (keyStart < 0)
2001
+ return EMPTY; // header still streaming
2002
+ // 3) Header fields (version/rootID/variables precede elements per output
2003
+ // convention; they are scalars/small objects so they closed long ago).
2004
+ // Rebuild a tiny JSON doc from the prefix and parse it.
2005
+ let version;
2006
+ let rootID;
2007
+ let variables;
2008
+ const headRaw = doc.slice(0, keyStart).replace(/,\s*$/, '') + '}';
2009
+ try {
2010
+ const head = JSON.parse(headRaw);
2011
+ version = typeof head.version === 'string' ? head.version : undefined;
2012
+ rootID = typeof head.rootID === 'string' ? head.rootID : undefined;
2013
+ variables = head.variables && typeof head.variables === 'object' ? head.variables : undefined;
2014
+ }
2015
+ catch {
2016
+ // header irregular (e.g. elements emitted first) — elements still extractable
2017
+ }
2018
+ // 4) Walk the elements object body, harvesting balanced entries
2019
+ const elements = {};
2020
+ let i = skipWs(doc, keyStart + '"elements"'.length);
2021
+ if (doc[i] !== ':')
2022
+ return { version, rootID, variables, elements, complete: false };
2023
+ i = skipWs(doc, i + 1);
2024
+ if (doc[i] !== '{')
2025
+ return { version, rootID, variables, elements, complete: false };
2026
+ i++;
2027
+ for (;;) {
2028
+ i = skipWs(doc, i);
2029
+ if (doc[i] === ',') {
2030
+ i++;
2031
+ continue;
2032
+ }
2033
+ if (i >= doc.length || doc[i] === '}')
2034
+ break; // stream edge or map closed
2035
+ if (doc[i] !== '"')
2036
+ break; // malformed — stop harvesting
2037
+ const keyEnd = scanString(doc, i);
2038
+ if (keyEnd < 0)
2039
+ break; // key itself cut by stream edge
2040
+ let key;
2041
+ try {
2042
+ key = JSON.parse(doc.slice(i, keyEnd));
2043
+ }
2044
+ catch {
2045
+ break;
2046
+ }
2047
+ let j = skipWs(doc, keyEnd);
2048
+ if (doc[j] !== ':')
2049
+ break;
2050
+ j = skipWs(doc, j + 1);
2051
+ if (doc[j] !== '{')
2052
+ break; // element values must be objects
2053
+ const valueEnd = scanBalanced(doc, j);
2054
+ if (valueEnd < 0)
2055
+ break; // this element still streaming
2056
+ try {
2057
+ const el = JSON.parse(doc.slice(j, valueEnd));
2058
+ if (el && typeof el === 'object' && typeof el.type === 'string') {
2059
+ elements[key] = el;
2060
+ }
2061
+ // parse ok but shape wrong → skip silently (final full parse is backstop)
2062
+ }
2063
+ catch {
2064
+ // malformed single element → skip; keep harvesting the rest
2065
+ }
2066
+ i = valueEnd;
2067
+ }
2068
+ return { version, rootID, variables, elements, complete: false };
2069
+ }
2070
+
2071
+ const BUILTIN_ICONS = Object.freeze({
2072
+ "airplane_tilt": Object.freeze({
2073
+ viewBox: "0 0 32 32",
2074
+ body: "<path d=\"M23.1663 14.2762L26.8088 10.8487L26.83 10.8275C27.5802 10.0773 28.0017 9.05973 28.0017 7.99875C28.0017 6.93776 27.5802 5.92023 26.83 5.17C26.0798 4.41977 25.0622 3.99829 24.0013 3.99829C22.9403 3.99829 21.9227 4.41977 21.1725 5.17C21.1725 5.1775 21.1588 5.18375 21.1513 5.19125L17.7238 8.83375L7.34876 5.05875C7.16994 4.99371 6.97628 4.98104 6.79052 5.02222C6.60475 5.0634 6.43459 5.15673 6.30001 5.29125L3.30001 8.29125C3.19547 8.39587 3.11544 8.52238 3.06568 8.66166C3.01593 8.80094 2.99769 8.94952 3.01227 9.0967C3.02686 9.24388 3.07391 9.38598 3.15004 9.51279C3.22616 9.63959 3.32947 9.74793 3.45251 9.83L11.4388 15.1537L9.58626 17H7.00001C6.73515 17.0001 6.48115 17.1053 6.29376 17.2925L3.29376 20.2925C3.17676 20.4092 3.09051 20.5531 3.04272 20.7113C2.99494 20.8695 2.9871 21.0371 3.01991 21.199C3.05273 21.361 3.12517 21.5123 3.23076 21.6394C3.33636 21.7666 3.47181 21.8655 3.62501 21.9275L8.22751 23.7687L10.065 28.3625L10.0725 28.3825C10.1361 28.5364 10.2371 28.6719 10.3663 28.7769C10.4955 28.8819 10.6489 28.9529 10.8125 28.9836C10.9762 29.0142 11.1449 29.0036 11.3034 28.9525C11.4618 28.9015 11.605 28.8117 11.72 28.6912L14.7038 25.7062C14.7971 25.6138 14.8713 25.5038 14.9222 25.3826C14.973 25.2614 14.9995 25.1314 15 25V22.4137L16.845 20.5687L22.1688 28.555C22.2508 28.678 22.3592 28.7813 22.486 28.8575C22.6128 28.9336 22.7549 28.9806 22.9021 28.9952C23.0492 29.0098 23.1978 28.9916 23.3371 28.9418C23.4764 28.8921 23.6029 28.812 23.7075 28.7075L26.7075 25.7075C26.842 25.5729 26.9354 25.4028 26.9765 25.217C27.0177 25.0312 27.005 24.8376 26.94 24.6587L23.1663 14.2762ZM23.1575 26.43L17.8338 18.445C17.7521 18.321 17.644 18.2168 17.517 18.1398C17.3901 18.0628 17.2477 18.0151 17.1 18C17.0663 18 17.0338 18 17.0013 18C16.8698 18.0001 16.7397 18.026 16.6183 18.0764C16.4969 18.1268 16.3866 18.2007 16.2938 18.2937L13.2938 21.2937C13.1061 21.4809 13.0005 21.735 13 22V24.5862L11.3663 26.22L9.92876 22.625C9.87846 22.5002 9.8035 22.3868 9.70834 22.2917C9.61319 22.1965 9.49982 22.1215 9.37501 22.0712L5.78251 20.6337L7.41501 19H10C10.1314 19.0001 10.2615 18.9743 10.3829 18.9241C10.5043 18.8739 10.6146 18.8003 10.7075 18.7075L13.7075 15.7075C13.8123 15.6029 13.8925 15.4763 13.9424 15.3369C13.9923 15.1975 14.0106 15.0487 13.996 14.9014C13.9814 14.754 13.9343 14.6118 13.858 14.4849C13.7818 14.3579 13.6783 14.2495 13.555 14.1675L5.57001 8.8425L7.25751 7.15625L17.66 10.9387C17.8433 11.0061 18.0423 11.0183 18.2324 10.9739C18.4226 10.9295 18.5955 10.8303 18.73 10.6887L22.5975 6.575C22.9745 6.20906 23.4803 6.00614 24.0056 6.01009C24.531 6.01405 25.0337 6.22456 25.4051 6.59613C25.7765 6.96771 25.9868 7.47051 25.9905 7.99586C25.9943 8.52122 25.7911 9.02695 25.425 9.40375L21.3163 13.27C21.1747 13.4045 21.0756 13.5774 21.0311 13.7676C20.9867 13.9577 20.9989 14.1567 21.0663 14.34L24.8488 24.7425L23.1575 26.43Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2075
+ }),
2076
+ "arrow_down": Object.freeze({
2077
+ viewBox: "0 0 32 32",
2078
+ body: "<path d=\"M25.7075 18.7075L16.7075 27.7075C16.6146 27.8005 16.5043 27.8742 16.3829 27.9246C16.2615 27.9749 16.1314 28.0008 16 28.0008C15.8686 28.0008 15.7385 27.9749 15.6171 27.9246C15.4957 27.8742 15.3854 27.8005 15.2925 27.7075L6.29251 18.7075C6.10487 18.5199 5.99945 18.2654 5.99945 18C5.99945 17.7346 6.10487 17.4801 6.29251 17.2925C6.48015 17.1049 6.73464 16.9994 7.00001 16.9994C7.26537 16.9994 7.51987 17.1049 7.70751 17.2925L15 24.5863V5C15 4.73478 15.1054 4.48043 15.2929 4.29289C15.4804 4.10536 15.7348 4 16 4C16.2652 4 16.5196 4.10536 16.7071 4.29289C16.8947 4.48043 17 4.73478 17 5V24.5863L24.2925 17.2925C24.4801 17.1049 24.7346 16.9994 25 16.9994C25.2654 16.9994 25.5199 17.1049 25.7075 17.2925C25.8951 17.4801 26.0006 17.7346 26.0006 18C26.0006 18.2654 25.8951 18.5199 25.7075 18.7075Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2079
+ }),
2080
+ "arrow_up": Object.freeze({
2081
+ viewBox: "0 0 32 32",
2082
+ body: "<path d=\"M25.7075 14.7075C25.6146 14.8005 25.5043 14.8742 25.3829 14.9246C25.2615 14.9749 25.1314 15.0008 25 15.0008C24.8686 15.0008 24.7385 14.9749 24.6171 14.9246C24.4957 14.8742 24.3854 14.8005 24.2925 14.7075L17 7.41374V27C17 27.2652 16.8947 27.5196 16.7071 27.7071C16.5196 27.8946 16.2652 28 16 28C15.7348 28 15.4804 27.8946 15.2929 27.7071C15.1054 27.5196 15 27.2652 15 27V7.41374L7.70751 14.7075C7.51987 14.8951 7.26537 15.0005 7.00001 15.0005C6.73464 15.0005 6.48015 14.8951 6.29251 14.7075C6.10487 14.5199 5.99945 14.2654 5.99945 14C5.99945 13.7346 6.10487 13.4801 6.29251 13.2925L15.2925 4.29249C15.3854 4.19952 15.4957 4.12576 15.6171 4.07543C15.7385 4.02511 15.8686 3.99921 16 3.99921C16.1314 3.99921 16.2615 4.02511 16.3829 4.07543C16.5043 4.12576 16.6146 4.19952 16.7075 4.29249L25.7075 13.2925C25.8005 13.3854 25.8742 13.4957 25.9246 13.6171C25.9749 13.7385 26.0008 13.8686 26.0008 14C26.0008 14.1314 25.9749 14.2615 25.9246 14.3829C25.8742 14.5043 25.8005 14.6146 25.7075 14.7075Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2083
+ }),
2084
+ "bag": Object.freeze({
2085
+ viewBox: "0 0 32 32",
2086
+ body: "<path d=\"M27 8H22C22 6.4087 21.3679 4.88258 20.2426 3.75736C19.1174 2.63214 17.5913 2 16 2C14.4087 2 12.8826 2.63214 11.7574 3.75736C10.6321 4.88258 10 6.4087 10 8H5C4.46957 8 3.96086 8.21071 3.58579 8.58579C3.21071 8.96086 3 9.46957 3 10V25C3 25.5304 3.21071 26.0391 3.58579 26.4142C3.96086 26.7893 4.46957 27 5 27H27C27.5304 27 28.0391 26.7893 28.4142 26.4142C28.7893 26.0391 29 25.5304 29 25V10C29 9.46957 28.7893 8.96086 28.4142 8.58579C28.0391 8.21071 27.5304 8 27 8ZM16 4C17.0609 4 18.0783 4.42143 18.8284 5.17157C19.5786 5.92172 20 6.93913 20 8H12C12 6.93913 12.4214 5.92172 13.1716 5.17157C13.9217 4.42143 14.9391 4 16 4ZM27 25H5V10H10V12C10 12.2652 10.1054 12.5196 10.2929 12.7071C10.4804 12.8946 10.7348 13 11 13C11.2652 13 11.5196 12.8946 11.7071 12.7071C11.8946 12.5196 12 12.2652 12 12V10H20V12C20 12.2652 20.1054 12.5196 20.2929 12.7071C20.4804 12.8946 20.7348 13 21 13C21.2652 13 21.5196 12.8946 21.7071 12.7071C21.8946 12.5196 22 12.2652 22 12V10H27V25Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2087
+ }),
2088
+ "calendar": Object.freeze({
2089
+ viewBox: "0 0 32 32",
2090
+ body: "<path d=\"M26 4H23V3C23 2.73478 22.8946 2.48043 22.7071 2.29289C22.5196 2.10536 22.2652 2 22 2C21.7348 2 21.4804 2.10536 21.2929 2.29289C21.1054 2.48043 21 2.73478 21 3V4H11V3C11 2.73478 10.8946 2.48043 10.7071 2.29289C10.5196 2.10536 10.2652 2 10 2C9.73478 2 9.48043 2.10536 9.29289 2.29289C9.10536 2.48043 9 2.73478 9 3V4H6C5.46957 4 4.96086 4.21071 4.58579 4.58579C4.21071 4.96086 4 5.46957 4 6V26C4 26.5304 4.21071 27.0391 4.58579 27.4142C4.96086 27.7893 5.46957 28 6 28H26C26.5304 28 27.0391 27.7893 27.4142 27.4142C27.7893 27.0391 28 26.5304 28 26V6C28 5.46957 27.7893 4.96086 27.4142 4.58579C27.0391 4.21071 26.5304 4 26 4ZM9 6V7C9 7.26522 9.10536 7.51957 9.29289 7.70711C9.48043 7.89464 9.73478 8 10 8C10.2652 8 10.5196 7.89464 10.7071 7.70711C10.8946 7.51957 11 7.26522 11 7V6H21V7C21 7.26522 21.1054 7.51957 21.2929 7.70711C21.4804 7.89464 21.7348 8 22 8C22.2652 8 22.5196 7.89464 22.7071 7.70711C22.8946 7.51957 23 7.26522 23 7V6H26V10H6V6H9ZM26 26H6V12H26V26Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2091
+ }),
2092
+ "calendar_check": Object.freeze({
2093
+ viewBox: "0 0 32 32",
2094
+ body: "<path d=\"M26 4H23V3C23 2.73478 22.8946 2.48043 22.7071 2.29289C22.5196 2.10536 22.2652 2 22 2C21.7348 2 21.4804 2.10536 21.2929 2.29289C21.1054 2.48043 21 2.73478 21 3V4H11V3C11 2.73478 10.8946 2.48043 10.7071 2.29289C10.5196 2.10536 10.2652 2 10 2C9.73478 2 9.48043 2.10536 9.29289 2.29289C9.10536 2.48043 9 2.73478 9 3V4H6C5.46957 4 4.96086 4.21071 4.58579 4.58579C4.21071 4.96086 4 5.46957 4 6V26C4 26.5304 4.21071 27.0391 4.58579 27.4142C4.96086 27.7893 5.46957 28 6 28H26C26.5304 28 27.0391 27.7893 27.4142 27.4142C27.7893 27.0391 28 26.5304 28 26V6C28 5.46957 27.7893 4.96086 27.4142 4.58579C27.0391 4.21071 26.5304 4 26 4ZM9 6V7C9 7.26522 9.10536 7.51957 9.29289 7.70711C9.48043 7.89464 9.73478 8 10 8C10.2652 8 10.5196 7.89464 10.7071 7.70711C10.8946 7.51957 11 7.26522 11 7V6H21V7C21 7.26522 21.1054 7.51957 21.2929 7.70711C21.4804 7.89464 21.7348 8 22 8C22.2652 8 22.5196 7.89464 22.7071 7.70711C22.8946 7.51957 23 7.26522 23 7V6H26V10H6V6H9ZM26 26H6V12H26V26ZM21.2075 15.2925C21.3005 15.3854 21.3742 15.4957 21.4246 15.6171C21.4749 15.7385 21.5008 15.8686 21.5008 16C21.5008 16.1314 21.4749 16.2615 21.4246 16.3829C21.3742 16.5043 21.3005 16.6146 21.2075 16.7075L15.2075 22.7075C15.1146 22.8005 15.0043 22.8742 14.8829 22.9246C14.7615 22.9749 14.6314 23.0008 14.5 23.0008C14.3686 23.0008 14.2385 22.9749 14.1171 22.9246C13.9957 22.8742 13.8854 22.8005 13.7925 22.7075L10.7925 19.7075C10.6049 19.5199 10.4994 19.2654 10.4994 19C10.4994 18.7346 10.6049 18.4801 10.7925 18.2925C10.9801 18.1049 11.2346 17.9994 11.5 17.9994C11.7654 17.9994 12.0199 18.1049 12.2075 18.2925L14.5 20.5863L19.7925 15.2925C19.8854 15.1995 19.9957 15.1258 20.1171 15.0754C20.2385 15.0251 20.3686 14.9992 20.5 14.9992C20.6314 14.9992 20.7615 15.0251 20.8829 15.0754C21.0043 15.1258 21.1146 15.1995 21.2075 15.2925Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2095
+ }),
2096
+ "calendar_plus": Object.freeze({
2097
+ viewBox: "0 0 32 32",
2098
+ body: "<path d=\"M26 4H23V3C23 2.73478 22.8946 2.48043 22.7071 2.29289C22.5196 2.10536 22.2652 2 22 2C21.7348 2 21.4804 2.10536 21.2929 2.29289C21.1054 2.48043 21 2.73478 21 3V4H11V3C11 2.73478 10.8946 2.48043 10.7071 2.29289C10.5196 2.10536 10.2652 2 10 2C9.73478 2 9.48043 2.10536 9.29289 2.29289C9.10536 2.48043 9 2.73478 9 3V4H6C5.46957 4 4.96086 4.21071 4.58579 4.58579C4.21071 4.96086 4 5.46957 4 6V26C4 26.5304 4.21071 27.0391 4.58579 27.4142C4.96086 27.7893 5.46957 28 6 28H26C26.5304 28 27.0391 27.7893 27.4142 27.4142C27.7893 27.0391 28 26.5304 28 26V6C28 5.46957 27.7893 4.96086 27.4142 4.58579C27.0391 4.21071 26.5304 4 26 4ZM9 6V7C9 7.26522 9.10536 7.51957 9.29289 7.70711C9.48043 7.89464 9.73478 8 10 8C10.2652 8 10.5196 7.89464 10.7071 7.70711C10.8946 7.51957 11 7.26522 11 7V6H21V7C21 7.26522 21.1054 7.51957 21.2929 7.70711C21.4804 7.89464 21.7348 8 22 8C22.2652 8 22.5196 7.89464 22.7071 7.70711C22.8946 7.51957 23 7.26522 23 7V6H26V10H6V6H9ZM26 26H6V12H26V26ZM20 19C20 19.2652 19.8946 19.5196 19.7071 19.7071C19.5196 19.8946 19.2652 20 19 20H17V22C17 22.2652 16.8946 22.5196 16.7071 22.7071C16.5196 22.8946 16.2652 23 16 23C15.7348 23 15.4804 22.8946 15.2929 22.7071C15.1054 22.5196 15 22.2652 15 22V20H13C12.7348 20 12.4804 19.8946 12.2929 19.7071C12.1054 19.5196 12 19.2652 12 19C12 18.7348 12.1054 18.4804 12.2929 18.2929C12.4804 18.1054 12.7348 18 13 18H15V16C15 15.7348 15.1054 15.4804 15.2929 15.2929C15.4804 15.1054 15.7348 15 16 15C16.2652 15 16.5196 15.1054 16.7071 15.2929C16.8946 15.4804 17 15.7348 17 16V18H19C19.2652 18 19.5196 18.1054 19.7071 18.2929C19.8946 18.4804 20 18.7348 20 19Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2099
+ }),
2100
+ "calendar_x": Object.freeze({
2101
+ viewBox: "0 0 32 32",
2102
+ body: "<path d=\"M26 4H23V3C23 2.73478 22.8946 2.48043 22.7071 2.29289C22.5196 2.10536 22.2652 2 22 2C21.7348 2 21.4804 2.10536 21.2929 2.29289C21.1054 2.48043 21 2.73478 21 3V4H11V3C11 2.73478 10.8946 2.48043 10.7071 2.29289C10.5196 2.10536 10.2652 2 10 2C9.73478 2 9.48043 2.10536 9.29289 2.29289C9.10536 2.48043 9 2.73478 9 3V4H6C5.46957 4 4.96086 4.21071 4.58579 4.58579C4.21071 4.96086 4 5.46957 4 6V26C4 26.5304 4.21071 27.0391 4.58579 27.4142C4.96086 27.7893 5.46957 28 6 28H26C26.5304 28 27.0391 27.7893 27.4142 27.4142C27.7893 27.0391 28 26.5304 28 26V6C28 5.46957 27.7893 4.96086 27.4142 4.58579C27.0391 4.21071 26.5304 4 26 4ZM9 6V7C9 7.26522 9.10536 7.51957 9.29289 7.70711C9.48043 7.89464 9.73478 8 10 8C10.2652 8 10.5196 7.89464 10.7071 7.70711C10.8946 7.51957 11 7.26522 11 7V6H21V7C21 7.26522 21.1054 7.51957 21.2929 7.70711C21.4804 7.89464 21.7348 8 22 8C22.2652 8 22.5196 7.89464 22.7071 7.70711C22.8946 7.51957 23 7.26522 23 7V6H26V10H6V6H9ZM26 26H6V12H26V26ZM19.7075 16.7075L17.4137 19L19.7075 21.2925C19.8004 21.3854 19.8741 21.4957 19.9244 21.6171C19.9747 21.7385 20.0006 21.8686 20.0006 22C20.0006 22.1314 19.9747 22.2615 19.9244 22.3829C19.8741 22.5043 19.8004 22.6146 19.7075 22.7075C19.6146 22.8004 19.5043 22.8741 19.3829 22.9244C19.2615 22.9747 19.1314 23.0006 19 23.0006C18.8686 23.0006 18.7385 22.9747 18.6171 22.9244C18.4957 22.8741 18.3854 22.8004 18.2925 22.7075L16 20.4137L13.7075 22.7075C13.6146 22.8004 13.5043 22.8741 13.3829 22.9244C13.2615 22.9747 13.1314 23.0006 13 23.0006C12.8686 23.0006 12.7385 22.9747 12.6171 22.9244C12.4957 22.8741 12.3854 22.8004 12.2925 22.7075C12.1996 22.6146 12.1259 22.5043 12.0756 22.3829C12.0253 22.2615 11.9994 22.1314 11.9994 22C11.9994 21.8686 12.0253 21.7385 12.0756 21.6171C12.1259 21.4957 12.1996 21.3854 12.2925 21.2925L14.5863 19L12.2925 16.7075C12.1049 16.5199 11.9994 16.2654 11.9994 16C11.9994 15.7346 12.1049 15.4801 12.2925 15.2925C12.4801 15.1049 12.7346 14.9994 13 14.9994C13.2654 14.9994 13.5199 15.1049 13.7075 15.2925L16 17.5863L18.2925 15.2925C18.3854 15.1996 18.4957 15.1259 18.6171 15.0756C18.7385 15.0253 18.8686 14.9994 19 14.9994C19.1314 14.9994 19.2615 15.0253 19.3829 15.0756C19.5043 15.1259 19.6146 15.1996 19.7075 15.2925C19.8004 15.3854 19.8741 15.4957 19.9244 15.6171C19.9747 15.7385 20.0006 15.8686 20.0006 16C20.0006 16.1314 19.9747 16.2615 19.9244 16.3829C19.8741 16.5043 19.8004 16.6146 19.7075 16.7075Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2103
+ }),
2104
+ "car": Object.freeze({
2105
+ viewBox: "0 0 32 32",
2106
+ body: "<path d=\"M30 13H28.65L25.1775 5.1875C25.0204 4.83403 24.7641 4.53372 24.4397 4.32296C24.1153 4.11219 23.7368 4 23.35 4H8.65C8.26317 4 7.88465 4.11219 7.56029 4.32296C7.23593 4.53372 6.97965 4.83403 6.8225 5.1875L3.35 13H2C1.73478 13 1.48043 13.1054 1.29289 13.2929C1.10536 13.4804 1 13.7348 1 14C1 14.2652 1.10536 14.5196 1.29289 14.7071C1.48043 14.8946 1.73478 15 2 15H3V25C3 25.5304 3.21071 26.0391 3.58579 26.4142C3.96086 26.7893 4.46957 27 5 27H8C8.53043 27 9.03914 26.7893 9.41421 26.4142C9.78929 26.0391 10 25.5304 10 25V23H22V25C22 25.5304 22.2107 26.0391 22.5858 26.4142C22.9609 26.7893 23.4696 27 24 27H27C27.5304 27 28.0391 26.7893 28.4142 26.4142C28.7893 26.0391 29 25.5304 29 25V15H30C30.2652 15 30.5196 14.8946 30.7071 14.7071C30.8946 14.5196 31 14.2652 31 14C31 13.7348 30.8946 13.4804 30.7071 13.2929C30.5196 13.1054 30.2652 13 30 13ZM8.65 6H23.35L26.4613 13H5.53875L8.65 6ZM8 25H5V23H8V25ZM24 25V23H27V25H24ZM27 21H5V15H27V21ZM7 18C7 17.7348 7.10536 17.4804 7.29289 17.2929C7.48043 17.1054 7.73478 17 8 17H10C10.2652 17 10.5196 17.1054 10.7071 17.2929C10.8946 17.4804 11 17.7348 11 18C11 18.2652 10.8946 18.5196 10.7071 18.7071C10.5196 18.8946 10.2652 19 10 19H8C7.73478 19 7.48043 18.8946 7.29289 18.7071C7.10536 18.5196 7 18.2652 7 18ZM21 18C21 17.7348 21.1054 17.4804 21.2929 17.2929C21.4804 17.1054 21.7348 17 22 17H24C24.2652 17 24.5196 17.1054 24.7071 17.2929C24.8946 17.4804 25 17.7348 25 18C25 18.2652 24.8946 18.5196 24.7071 18.7071C24.5196 18.8946 24.2652 19 24 19H22C21.7348 19 21.4804 18.8946 21.2929 18.7071C21.1054 18.5196 21 18.2652 21 18Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2107
+ }),
2108
+ "caret_down": Object.freeze({
2109
+ viewBox: "0 0 32 32",
2110
+ body: "<path d=\"M26.7075 12.7074L16.7075 22.7074C16.6146 22.8004 16.5043 22.8742 16.3829 22.9245C16.2615 22.9748 16.1314 23.0007 16 23.0007C15.8686 23.0007 15.7385 22.9748 15.6171 22.9245C15.4957 22.8742 15.3854 22.8004 15.2925 22.7074L5.29251 12.7074C5.10487 12.5198 4.99945 12.2653 4.99945 11.9999C4.99945 11.7346 5.10487 11.4801 5.29251 11.2924C5.48015 11.1048 5.73464 10.9994 6.00001 10.9994C6.26537 10.9994 6.51987 11.1048 6.70751 11.2924L16 20.5862L25.2925 11.2924C25.3854 11.1995 25.4957 11.1258 25.6171 11.0756C25.7385 11.0253 25.8686 10.9994 26 10.9994C26.1314 10.9994 26.2615 11.0253 26.3829 11.0756C26.5043 11.1258 26.6146 11.1995 26.7075 11.2924C26.8004 11.3854 26.8741 11.4957 26.9244 11.617C26.9747 11.7384 27.0006 11.8686 27.0006 11.9999C27.0006 12.1313 26.9747 12.2614 26.9244 12.3828C26.8741 12.5042 26.8004 12.6145 26.7075 12.7074Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2111
+ }),
2112
+ "caret_left": Object.freeze({
2113
+ viewBox: "0 0 32 32",
2114
+ body: "<path d=\"M20.7075 25.2924C20.8004 25.3854 20.8741 25.4957 20.9244 25.6171C20.9747 25.7384 21.0006 25.8686 21.0006 25.9999C21.0006 26.1313 20.9747 26.2614 20.9244 26.3828C20.8741 26.5042 20.8004 26.6145 20.7075 26.7074C20.6146 26.8004 20.5043 26.8741 20.3829 26.9243C20.2615 26.9746 20.1314 27.0005 20 27.0005C19.8686 27.0005 19.7385 26.9746 19.6171 26.9243C19.4957 26.8741 19.3854 26.8004 19.2925 26.7074L9.29249 16.7074C9.19952 16.6146 9.12576 16.5043 9.07543 16.3829C9.02511 16.2615 8.99921 16.1314 8.99921 15.9999C8.99921 15.8685 9.02511 15.7384 9.07543 15.617C9.12576 15.4956 9.19952 15.3853 9.29249 15.2924L19.2925 5.29245C19.4801 5.10481 19.7346 4.99939 20 4.99939C20.2654 4.99939 20.5199 5.1048 20.7075 5.29245C20.8951 5.48009 21.0006 5.73458 21.0006 5.99995C21.0006 6.26531 20.8951 6.5198 20.7075 6.70745L11.4137 15.9999L20.7075 25.2924Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2115
+ }),
2116
+ "caret_right": Object.freeze({
2117
+ viewBox: "0 0 32 32",
2118
+ body: "<path d=\"M22.7075 16.7074L12.7075 26.7074C12.6146 26.8004 12.5043 26.8741 12.3829 26.9243C12.2615 26.9746 12.1314 27.0005 12 27.0005C11.8686 27.0005 11.7385 26.9746 11.6171 26.9243C11.4957 26.8741 11.3854 26.8004 11.2925 26.7074C11.1996 26.6145 11.1259 26.5042 11.0756 26.3828C11.0253 26.2614 10.9995 26.1313 10.9995 25.9999C10.9995 25.8686 11.0253 25.7384 11.0756 25.6171C11.1259 25.4957 11.1996 25.3854 11.2925 25.2924L20.5863 15.9999L11.2925 6.70745C11.1049 6.5198 10.9995 6.26531 10.9995 5.99995C10.9995 5.73458 11.1049 5.48009 11.2925 5.29245C11.4801 5.1048 11.7346 4.99939 12 4.99939C12.2654 4.99939 12.5199 5.1048 12.7075 5.29245L22.7075 15.2924C22.8005 15.3853 22.8742 15.4956 22.9246 15.617C22.9749 15.7384 23.0008 15.8685 23.0008 15.9999C23.0008 16.1314 22.9749 16.2615 22.9246 16.3829C22.8742 16.5043 22.8005 16.6146 22.7075 16.7074Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2119
+ }),
2120
+ "caret_up": Object.freeze({
2121
+ viewBox: "0 0 32 32",
2122
+ body: "<path d=\"M26.7075 20.7076C26.6146 20.8005 26.5043 20.8743 26.3829 20.9246C26.2615 20.9749 26.1314 21.0008 26 21.0008C25.8686 21.0008 25.7385 20.9749 25.6171 20.9246C25.4957 20.8743 25.3854 20.8005 25.2925 20.7076L16 11.4138L6.70751 20.7076C6.51987 20.8952 6.26537 21.0006 6.00001 21.0006C5.73464 21.0006 5.48015 20.8952 5.29251 20.7076C5.10487 20.5199 4.99945 20.2654 4.99945 20.0001C4.99945 19.7347 5.10487 19.4802 5.29251 19.2926L15.2925 9.29255C15.3854 9.19958 15.4957 9.12582 15.6171 9.07549C15.7385 9.02517 15.8686 8.99927 16 8.99927C16.1314 8.99927 16.2615 9.02517 16.3829 9.07549C16.5043 9.12582 16.6146 9.19958 16.7075 9.29255L26.7075 19.2926C26.8005 19.3854 26.8742 19.4957 26.9246 19.6171C26.9749 19.7385 27.0008 19.8686 27.0008 20.0001C27.0008 20.1315 26.9749 20.2616 26.9246 20.383C26.8742 20.5044 26.8005 20.6147 26.7075 20.7076Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2123
+ }),
2124
+ "check_circle": Object.freeze({
2125
+ viewBox: "0 0 32 32",
2126
+ body: "<path d=\"M21.7075 12.2925C21.8005 12.3854 21.8742 12.4957 21.9246 12.6171C21.9749 12.7385 22.0008 12.8686 22.0008 13C22.0008 13.1314 21.9749 13.2615 21.9246 13.3829C21.8742 13.5043 21.8005 13.6146 21.7075 13.7075L14.7075 20.7075C14.6146 20.8005 14.5043 20.8742 14.3829 20.9246C14.2615 20.9749 14.1314 21.0008 14 21.0008C13.8686 21.0008 13.7385 20.9749 13.6171 20.9246C13.4957 20.8742 13.3854 20.8005 13.2925 20.7075L10.2925 17.7075C10.1049 17.5199 9.99945 17.2654 9.99945 17C9.99945 16.7346 10.1049 16.4801 10.2925 16.2925C10.4801 16.1049 10.7346 15.9994 11 15.9994C11.2654 15.9994 11.5199 16.1049 11.7075 16.2925L14 18.5863L20.2925 12.2925C20.3854 12.1995 20.4957 12.1258 20.6171 12.0754C20.7385 12.0251 20.8686 11.9992 21 11.9992C21.1314 11.9992 21.2615 12.0251 21.3829 12.0754C21.5043 12.1258 21.6146 12.1995 21.7075 12.2925ZM29 16C29 18.5712 28.2376 21.0846 26.8091 23.2224C25.3807 25.3603 23.3503 27.0265 20.9749 28.0104C18.5995 28.9944 15.9856 29.2518 13.4638 28.7502C10.9421 28.2486 8.6257 27.0105 6.80762 25.1924C4.98953 23.3743 3.75141 21.0579 3.2498 18.5362C2.74819 16.0144 3.00563 13.4006 3.98957 11.0251C4.97351 8.64968 6.63975 6.61935 8.77759 5.1909C10.9154 3.76244 13.4288 3 16 3C19.4467 3.00364 22.7512 4.37445 25.1884 6.81163C27.6256 9.24882 28.9964 12.5533 29 16ZM27 16C27 13.8244 26.3549 11.6977 25.1462 9.88873C23.9375 8.07979 22.2195 6.66989 20.2095 5.83733C18.1995 5.00476 15.9878 4.78692 13.854 5.21136C11.7202 5.6358 9.76021 6.68345 8.22183 8.22183C6.68345 9.7602 5.63581 11.7202 5.21137 13.854C4.78693 15.9878 5.00477 18.1995 5.83733 20.2095C6.66989 22.2195 8.07979 23.9375 9.88873 25.1462C11.6977 26.3549 13.8244 27 16 27C18.9164 26.9967 21.7123 25.8367 23.7745 23.7745C25.8367 21.7123 26.9967 18.9164 27 16Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2127
+ }),
2128
+ "check_circle_fill": Object.freeze({
2129
+ viewBox: "0 0 32 32",
2130
+ body: "<path d=\"M16 3C13.4288 3 10.9154 3.76244 8.77759 5.1909C6.63975 6.61935 4.97351 8.64968 3.98957 11.0251C3.00563 13.4006 2.74819 16.0144 3.2498 18.5362C3.75141 21.0579 4.98953 23.3743 6.80762 25.1924C8.6257 27.0105 10.9421 28.2486 13.4638 28.7502C15.9856 29.2518 18.5995 28.9944 20.9749 28.0104C23.3503 27.0265 25.3807 25.3603 26.8091 23.2224C28.2376 21.0846 29 18.5712 29 16C28.9964 12.5533 27.6256 9.24882 25.1884 6.81163C22.7512 4.37445 19.4467 3.00364 16 3ZM21.7075 13.7075L14.7075 20.7075C14.6146 20.8005 14.5043 20.8742 14.3829 20.9246C14.2615 20.9749 14.1314 21.0008 14 21.0008C13.8686 21.0008 13.7385 20.9749 13.6171 20.9246C13.4957 20.8742 13.3854 20.8005 13.2925 20.7075L10.2925 17.7075C10.1049 17.5199 9.99945 17.2654 9.99945 17C9.99945 16.7346 10.1049 16.4801 10.2925 16.2925C10.4801 16.1049 10.7346 15.9994 11 15.9994C11.2654 15.9994 11.5199 16.1049 11.7075 16.2925L14 18.5863L20.2925 12.2925C20.3854 12.1996 20.4957 12.1259 20.6171 12.0756C20.7385 12.0253 20.8686 11.9994 21 11.9994C21.1314 11.9994 21.2615 12.0253 21.3829 12.0756C21.5043 12.1259 21.6146 12.1996 21.7075 12.2925C21.8004 12.3854 21.8741 12.4957 21.9244 12.6171C21.9747 12.7385 22.0006 12.8686 22.0006 13C22.0006 13.1314 21.9747 13.2615 21.9244 13.3829C21.8741 13.5043 21.8004 13.6146 21.7075 13.7075Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2131
+ }),
2132
+ "circle_fill": Object.freeze({
2133
+ viewBox: "0 0 32 32",
2134
+ body: "<path d=\"M29 16C29 18.5712 28.2376 21.0846 26.8091 23.2224C25.3807 25.3603 23.3503 27.0265 20.9749 28.0104C18.5995 28.9944 15.9856 29.2518 13.4638 28.7502C10.9421 28.2486 8.6257 27.0105 6.80762 25.1924C4.98953 23.3743 3.75141 21.0579 3.2498 18.5362C2.74819 16.0144 3.00563 13.4006 3.98957 11.0251C4.97351 8.64968 6.63975 6.61935 8.77759 5.1909C10.9154 3.76244 13.4288 3 16 3C19.4465 3.0043 22.7506 4.37532 25.1876 6.81236C27.6247 9.2494 28.9957 12.5535 29 16Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2135
+ }),
2136
+ "clock": Object.freeze({
2137
+ viewBox: "0 0 32 32",
2138
+ body: "<path d=\"M16 3C13.4288 3 10.9154 3.76244 8.77759 5.1909C6.63975 6.61935 4.97351 8.64968 3.98957 11.0251C3.00563 13.4006 2.74819 16.0144 3.2498 18.5362C3.75141 21.0579 4.98953 23.3743 6.80762 25.1924C8.6257 27.0105 10.9421 28.2486 13.4638 28.7502C15.9856 29.2518 18.5995 28.9944 20.9749 28.0104C23.3503 27.0265 25.3807 25.3603 26.8091 23.2224C28.2376 21.0846 29 18.5712 29 16C28.9964 12.5533 27.6256 9.24882 25.1884 6.81163C22.7512 4.37445 19.4467 3.00364 16 3ZM16 27C13.8244 27 11.6977 26.3549 9.88873 25.1462C8.07979 23.9375 6.66989 22.2195 5.83733 20.2095C5.00477 18.1995 4.78693 15.9878 5.21137 13.854C5.63581 11.7202 6.68345 9.7602 8.22183 8.22183C9.76021 6.68345 11.7202 5.6358 13.854 5.21136C15.9878 4.78692 18.1995 5.00476 20.2095 5.83733C22.2195 6.66989 23.9375 8.07979 25.1462 9.88873C26.3549 11.6977 27 13.8244 27 16C26.9967 18.9164 25.8367 21.7123 23.7745 23.7745C21.7123 25.8367 18.9164 26.9967 16 27ZM24 16C24 16.2652 23.8946 16.5196 23.7071 16.7071C23.5196 16.8946 23.2652 17 23 17H16C15.7348 17 15.4804 16.8946 15.2929 16.7071C15.1054 16.5196 15 16.2652 15 16V9C15 8.73478 15.1054 8.48043 15.2929 8.29289C15.4804 8.10536 15.7348 8 16 8C16.2652 8 16.5196 8.10536 16.7071 8.29289C16.8946 8.48043 17 8.73478 17 9V15H23C23.2652 15 23.5196 15.1054 23.7071 15.2929C23.8946 15.4804 24 15.7348 24 16Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2139
+ }),
2140
+ "close": Object.freeze({
2141
+ viewBox: "0 0 32 32",
2142
+ body: "<path d=\"M25.7076 24.2925C25.8005 24.3854 25.8742 24.4957 25.9245 24.6171C25.9747 24.7385 26.0006 24.8686 26.0006 25C26.0006 25.1314 25.9747 25.2615 25.9245 25.3829C25.8742 25.5043 25.8005 25.6146 25.7076 25.7075C25.6147 25.8004 25.5044 25.8741 25.383 25.9244C25.2616 25.9747 25.1315 26.0006 25.0001 26.0006C24.8687 26.0006 24.7386 25.9747 24.6172 25.9244C24.4958 25.8741 24.3855 25.8004 24.2926 25.7075L16.0001 17.4138L7.70757 25.7075C7.51993 25.8951 7.26543 26.0006 7.00007 26.0006C6.7347 26.0006 6.48021 25.8951 6.29257 25.7075C6.10493 25.5199 5.99951 25.2654 5.99951 25C5.99951 24.7346 6.10493 24.4801 6.29257 24.2925L14.5863 16L6.29257 7.70751C6.10493 7.51987 5.99951 7.26537 5.99951 7.00001C5.99951 6.73464 6.10493 6.48015 6.29257 6.29251C6.48021 6.10487 6.7347 5.99945 7.00007 5.99945C7.26543 5.99945 7.51993 6.10487 7.70757 6.29251L16.0001 14.5863L24.2926 6.29251C24.4802 6.10487 24.7347 5.99945 25.0001 5.99945C25.2654 5.99945 25.5199 6.10487 25.7076 6.29251C25.8952 6.48015 26.0006 6.73464 26.0006 7.00001C26.0006 7.26537 25.8952 7.51987 25.7076 7.70751L17.4138 16L25.7076 24.2925Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2143
+ }),
2144
+ "cloud": Object.freeze({
2145
+ viewBox: "0 0 32 32",
2146
+ body: "<path d=\"M20.0001 5C17.9572 5.00157 15.955 5.57142 14.2175 6.64582C12.48 7.72023 11.0756 9.25682 10.1614 11.0837C9.07382 10.9251 7.96525 10.9923 6.90481 11.2811C5.84437 11.5699 4.85481 12.0741 3.99785 12.7622C3.14089 13.4504 2.43491 14.3077 1.92395 15.2808C1.413 16.2538 1.10802 17.3217 1.02804 18.4179C0.94807 19.514 1.09481 20.6149 1.45912 21.6518C1.82343 22.6887 2.39749 23.6395 3.14549 24.4447C3.8935 25.2499 4.7994 25.8924 5.80669 26.3321C6.81398 26.7717 7.90106 26.9991 9.00012 27H20.0001C22.9175 27 25.7154 25.8411 27.7783 23.7782C29.8412 21.7153 31.0001 18.9174 31.0001 16C31.0001 13.0826 29.8412 10.2847 27.7783 8.22183C25.7154 6.15893 22.9175 5 20.0001 5ZM20.0001 25H9.00012C7.40882 25 5.8827 24.3679 4.75748 23.2426C3.63226 22.1174 3.00012 20.5913 3.00012 19C3.00012 17.4087 3.63226 15.8826 4.75748 14.7574C5.8827 13.6321 7.40882 13 9.00012 13C9.13762 13 9.27512 13 9.41137 13.0138C9.1379 13.9856 8.99951 14.9904 9.00012 16C9.00012 16.2652 9.10547 16.5196 9.29301 16.7071C9.48055 16.8946 9.7349 17 10.0001 17C10.2653 17 10.5197 16.8946 10.7072 16.7071C10.8948 16.5196 11.0001 16.2652 11.0001 16C11.0001 14.22 11.528 12.4799 12.5169 10.9999C13.5058 9.51982 14.9114 8.36627 16.556 7.68508C18.2005 7.0039 20.0101 6.82567 21.7559 7.17293C23.5018 7.5202 25.1054 8.37737 26.3641 9.63604C27.6228 10.8947 28.4799 12.4984 28.8272 14.2442C29.1745 15.99 28.9962 17.7996 28.315 19.4442C27.6338 21.0887 26.4803 22.4943 25.0002 23.4832C23.5202 24.4722 21.7801 25 20.0001 25Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2147
+ }),
2148
+ "cloud_fog": Object.freeze({
2149
+ viewBox: "0 0 32 32",
2150
+ body: "<path d=\"M15 26H9C8.73478 26 8.48043 25.8946 8.29289 25.7071C8.10536 25.5195 8 25.2652 8 25C8 24.7347 8.10536 24.4804 8.29289 24.2928C8.48043 24.1053 8.73478 24 9 24H15C15.2652 24 15.5196 24.1053 15.7071 24.2928C15.8946 24.4804 16 24.7347 16 25C16 25.2652 15.8946 25.5195 15.7071 25.7071C15.5196 25.8946 15.2652 26 15 26ZM23 24H20C19.7348 24 19.4804 24.1053 19.2929 24.2928C19.1054 24.4804 19 24.7347 19 25C19 25.2652 19.1054 25.5195 19.2929 25.7071C19.4804 25.8946 19.7348 26 20 26H23C23.2652 26 23.5196 25.8946 23.7071 25.7071C23.8946 25.5195 24 25.2652 24 25C24 24.7347 23.8946 24.4804 23.7071 24.2928C23.5196 24.1053 23.2652 24 23 24ZM20 28H13C12.7348 28 12.4804 28.1053 12.2929 28.2928C12.1054 28.4804 12 28.7347 12 29C12 29.2652 12.1054 29.5195 12.2929 29.7071C12.4804 29.8946 12.7348 30 13 30H20C20.2652 30 20.5196 29.8946 20.7071 29.7071C20.8946 29.5195 21 29.2652 21 29C21 28.7347 20.8946 28.4804 20.7071 28.2928C20.5196 28.1053 20.2652 28 20 28ZM29 12.5C28.9974 15.0187 27.9956 17.4335 26.2146 19.2145C24.4336 20.9956 22.0187 21.9973 19.5 22H9.5C7.77609 22 6.12279 21.3151 4.90381 20.0961C3.68482 18.8772 3 17.2239 3 15.5C3 13.776 3.68482 12.1227 4.90381 10.9038C6.12279 9.68477 7.77609 8.99995 9.5 8.99995C9.87367 9.00027 10.2467 9.03205 10.615 9.09495C11.4125 7.02341 12.9096 5.29611 14.8467 4.21231C16.7839 3.12852 19.0392 2.75651 21.2219 3.16075C23.4045 3.56498 25.377 4.71999 26.7975 6.42566C28.2181 8.13133 28.9973 10.2802 29 12.5ZM27 12.5C26.992 10.5525 26.2276 8.68441 24.8681 7.28999C23.5087 5.89557 21.6605 5.08398 19.7139 5.02656C17.7673 4.96913 15.8746 5.67037 14.4353 6.98222C12.996 8.29408 12.1228 10.1139 12 12.0575C11.9924 12.1888 11.9591 12.3173 11.9019 12.4358C11.8446 12.5542 11.7646 12.6602 11.6664 12.7477C11.4681 12.9245 11.2077 13.0152 10.9425 13C10.6773 12.9847 10.429 12.8647 10.2522 12.6664C10.0755 12.4681 9.98475 12.2077 10 11.9425C10.0175 11.6375 10.0496 11.3362 10.0962 11.0387C9.89851 11.0133 9.69937 11.0004 9.5 11C8.30653 11 7.16193 11.4741 6.31802 12.318C5.47411 13.1619 5 14.3065 5 15.5C5 16.6934 5.47411 17.838 6.31802 18.6819C7.16193 19.5258 8.30653 20 9.5 20H19.5C21.4884 19.9976 23.3947 19.2067 24.8007 17.8007C26.2068 16.3947 26.9977 14.4884 27 12.5Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2151
+ }),
2152
+ "cloud_lightning": Object.freeze({
2153
+ viewBox: "0 0 32 32",
2154
+ body: "<path d=\"M19.5 2C17.5768 2.0002 15.6988 2.58256 14.1129 3.67046C12.527 4.75836 11.3075 6.30085 10.615 8.095C10.2467 8.0321 9.87367 8.00032 9.5 8C7.77609 8 6.12279 8.68482 4.90381 9.90381C3.68482 11.1228 3 12.7761 3 14.5C3 16.2239 3.68482 17.8772 4.90381 19.0962C6.12279 20.3152 7.77609 21 9.5 21H14.2338L12.1425 24.485C12.0513 24.6368 12.0021 24.81 11.9998 24.987C11.9975 25.164 12.0422 25.3385 12.1294 25.4926C12.2166 25.6467 12.3432 25.7748 12.4961 25.864C12.6491 25.9531 12.823 26.0001 13 26H16.2337L14.1425 29.485C14.0749 29.5976 14.0301 29.7224 14.0107 29.8524C13.9913 29.9823 13.9977 30.1147 14.0295 30.2422C14.0613 30.3696 14.1179 30.4896 14.1961 30.5951C14.2742 30.7007 14.3724 30.7899 14.485 30.8575C14.7124 30.9941 14.9848 31.0347 15.2422 30.9705C15.3696 30.9387 15.4896 30.8821 15.5951 30.8039C15.7007 30.7258 15.7899 30.6276 15.8575 30.515L18.8575 25.515C18.9487 25.3632 18.9979 25.19 19.0002 25.013C19.0025 24.836 18.9578 24.6615 18.8706 24.5074C18.7834 24.3533 18.6568 24.2252 18.5039 24.136C18.3509 24.0469 18.177 23.9999 18 24H14.7662L16.5662 21H19.5C22.0196 21 24.4359 19.9991 26.2175 18.2175C27.9991 16.4359 29 14.0196 29 11.5C29 8.98044 27.9991 6.56408 26.2175 4.78249C24.4359 3.00089 22.0196 2 19.5 2ZM19.5 19H9.5C8.30653 19 7.16193 18.5259 6.31802 17.682C5.47411 16.8381 5 15.6935 5 14.5C5 13.3065 5.47411 12.1619 6.31802 11.318C7.16193 10.4741 8.30653 10 9.5 10C9.69978 10.0004 9.89934 10.0133 10.0975 10.0387C10.0508 10.3362 10.0188 10.6375 10.0013 10.9425C9.986 11.2077 10.0767 11.4681 10.2535 11.6664C10.4302 11.8648 10.6785 11.9847 10.9438 12C11.209 12.0153 11.4694 11.9245 11.6677 11.7478C11.866 11.571 11.986 11.3227 12.0013 11.0575C12.0862 9.59381 12.5979 8.18703 13.4731 7.01079C14.3484 5.83455 15.5489 4.94032 16.9264 4.43848C18.304 3.93664 19.7984 3.84915 21.2251 4.18681C22.6519 4.52447 23.9485 5.27251 24.955 6.33858C25.9616 7.40466 26.6339 8.74212 26.8891 10.1859C27.1442 11.6297 26.9711 13.1166 26.3909 14.4631C25.8108 15.8096 24.8491 16.9567 23.6246 17.763C22.4 18.5692 20.9661 18.9992 19.5 19Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2155
+ }),
2156
+ "cloud_moon": Object.freeze({
2157
+ viewBox: "0 0 32 32",
2158
+ body: "<path d=\"M21.5001 9.00001C20.9826 8.99977 20.4659 9.04157 19.9551 9.12501C19.7734 7.24796 19.0062 5.47554 17.7619 4.0585C16.5176 2.64145 14.8592 1.65153 13.0214 1.22876C12.8563 1.19084 12.6843 1.19546 12.5215 1.24218C12.3588 1.28891 12.2105 1.37621 12.0907 1.49589C11.9709 1.61558 11.8834 1.76374 11.8366 1.92646C11.7897 2.08919 11.7849 2.26117 11.8226 2.42626C12.0581 3.45234 12.0594 4.51831 11.8263 5.54495C11.5932 6.57159 11.1318 7.5325 10.4763 8.35629C9.82077 9.18007 8.98803 9.84553 8.03997 10.3032C7.0919 10.7609 6.05287 10.9991 5.00011 11C4.47053 11.0001 3.94262 10.9405 3.42636 10.8225C3.26118 10.7845 3.08905 10.7891 2.92615 10.8359C2.76324 10.8827 2.61489 10.9701 2.49504 11.0899C2.37519 11.2098 2.28777 11.3581 2.24099 11.521C2.19421 11.684 2.18961 11.8561 2.22761 12.0213C2.49625 13.1797 2.99112 14.2736 3.68379 15.2402C4.37645 16.2068 5.25326 17.027 6.26386 17.6538C5.55311 18.622 5.12456 19.7683 5.02576 20.9654C4.92697 22.1624 5.1618 23.3635 5.70418 24.4352C6.24657 25.5069 7.07531 26.4073 8.09841 27.0366C9.12152 27.6659 10.299 27.9993 11.5001 28H21.5001C24.0197 28 26.436 26.9991 28.2176 25.2175C29.9992 23.4359 31.0001 21.0196 31.0001 18.5C31.0001 15.9805 29.9992 13.5641 28.2176 11.7825C26.436 10.0009 24.0197 9.00001 21.5001 9.00001ZM4.67136 13C4.78011 13 4.89011 13 5.00011 13C7.38624 12.9974 9.67389 12.0483 11.3611 10.361C13.0484 8.67379 13.9975 6.38614 14.0001 4.00001C14.0001 3.88876 14.0001 3.77751 14.0001 3.66626C15.1516 4.20513 16.1334 5.0494 16.8386 6.10725C17.5439 7.1651 17.9456 8.39605 18.0001 9.66626C16.7787 10.1513 15.6707 10.8836 14.7458 11.8171C13.8208 12.7507 13.0988 13.8654 12.6251 15.0913C11.7796 14.945 10.9136 14.9675 10.0769 15.1576C9.24017 15.3477 8.44938 15.7015 7.75011 16.1988C6.40517 15.4932 5.32499 14.3709 4.67136 13ZM21.5001 26H11.5001C10.8846 25.9989 10.2759 25.8715 9.71166 25.6258C9.14738 25.38 8.6395 25.0211 8.21944 24.5713C7.79937 24.1215 7.47605 23.5903 7.26946 23.0105C7.06287 22.4307 6.97741 21.8147 7.01836 21.2006C7.0593 20.5865 7.22579 19.9874 7.50752 19.4401C7.78925 18.8929 8.18023 18.4094 8.6563 18.0193C9.13237 17.6292 9.68339 17.3409 10.2753 17.1723C10.8672 17.0036 11.4874 16.9582 12.0976 17.0388C12.0514 17.335 12.0189 17.6375 12.0014 17.9425C11.9938 18.0738 12.0122 18.2054 12.0555 18.3296C12.0988 18.4538 12.1661 18.5683 12.2536 18.6665C12.3411 18.7647 12.4471 18.8447 12.5656 18.9019C12.684 18.9591 12.8125 18.9925 12.9439 19C13.0752 19.0076 13.2067 18.9892 13.3309 18.9459C13.4551 18.9026 13.5696 18.8353 13.6678 18.7478C13.766 18.6603 13.846 18.5543 13.9032 18.4358C13.9605 18.3174 13.9938 18.1888 14.0014 18.0575C14.0294 17.5587 14.1082 17.0641 14.2364 16.5813C14.2364 16.5613 14.2476 16.5413 14.2514 16.5213C14.6189 15.1706 15.3568 13.9495 16.3816 12.996C17.4065 12.0425 18.6775 11.3946 20.0511 11.1253C21.4248 10.856 22.8464 10.9761 24.1554 11.472C25.4644 11.968 26.6087 12.82 27.459 13.932C28.3093 15.0439 28.8319 16.3714 28.9676 17.7646C29.1033 19.1578 28.8468 20.5613 28.227 21.8164C27.6073 23.0715 26.649 24.1284 25.4603 24.8677C24.2716 25.6069 22.8999 25.9991 21.5001 26Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2159
+ }),
2160
+ "cloud_rain": Object.freeze({
2161
+ viewBox: "0 0 32 32",
2162
+ body: "<path d=\"M19.8325 24.555L15.8325 30.555C15.7596 30.6643 15.6659 30.7582 15.5567 30.8313C15.4476 30.9044 15.3251 30.9553 15.1962 30.9811C14.936 31.0331 14.6658 30.9796 14.445 30.8325C14.2242 30.6853 14.0709 30.4564 14.0189 30.1962C13.9668 29.936 14.0203 29.6657 14.1675 29.445L18.1675 23.445C18.3147 23.2242 18.5436 23.0709 18.8038 23.0188C19.064 22.9668 19.3342 23.0203 19.555 23.1675C19.7758 23.3146 19.9291 23.5435 19.9811 23.8037C20.0332 24.0639 19.9797 24.3342 19.8325 24.555ZM29 11.5C28.9974 14.0187 27.9956 16.4335 26.2146 18.2145C24.4336 19.9956 22.0187 20.9973 19.5 21H16.535L12.8325 26.555C12.7596 26.6643 12.6659 26.7582 12.5567 26.8313C12.4476 26.9044 12.3251 26.9553 12.1962 26.9811C12.0674 27.0068 11.9347 27.007 11.8058 26.9815C11.6769 26.956 11.5543 26.9053 11.445 26.8325C11.3357 26.7596 11.2418 26.6659 11.1687 26.5567C11.0956 26.4475 11.0447 26.325 11.0189 26.1962C10.9931 26.0673 10.993 25.9347 11.0185 25.8058C11.044 25.6769 11.0946 25.5543 11.1675 25.445L14.1313 21H9.5C7.77609 21 6.12279 20.3151 4.90381 19.0961C3.68482 17.8772 3 16.2239 3 14.5C3 12.776 3.68482 11.1227 4.90381 9.90376C6.12279 8.68477 7.77609 7.99995 9.5 7.99995C9.87367 8.00027 10.2467 8.03205 10.615 8.09495C11.4125 6.02341 12.9096 4.29611 14.8467 3.21231C16.7839 2.12852 19.0392 1.75651 21.2219 2.16075C23.4045 2.56498 25.377 3.71999 26.7975 5.42566C28.2181 7.13133 28.9973 9.2802 29 11.5ZM27 11.5C26.992 9.55252 26.2276 7.68441 24.8681 6.28999C23.5087 4.89557 21.6605 4.08398 19.7139 4.02656C17.7673 3.96913 15.8746 4.67037 14.4353 5.98222C12.996 7.29408 12.1228 9.11388 12 11.0575C11.9924 11.1888 11.9591 11.3173 11.9019 11.4358C11.8446 11.5542 11.7646 11.6602 11.6664 11.7477C11.4681 11.9245 11.2077 12.0152 10.9425 12C10.6773 11.9847 10.429 11.8647 10.2522 11.6664C10.0755 11.4681 9.98475 11.2077 10 10.9425C10.0175 10.6375 10.0496 10.3362 10.0962 10.0387C9.89851 10.0133 9.69937 10.0004 9.5 9.99995C8.30653 9.99995 7.16193 10.4741 6.31802 11.318C5.47411 12.1619 5 13.3065 5 14.5C5 15.6934 5.47411 16.838 6.31802 17.6819C7.16193 18.5258 8.30653 19 9.5 19H19.5C21.4884 18.9976 23.3947 18.2067 24.8007 16.8007C26.2068 15.3947 26.9977 13.4884 27 11.5Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2163
+ }),
2164
+ "cloud_snow": Object.freeze({
2165
+ viewBox: "0 0 32 32",
2166
+ body: "<path d=\"M11 24.5C11 24.7966 10.912 25.0866 10.7472 25.3333C10.5824 25.58 10.3481 25.7722 10.074 25.8858C9.79994 25.9993 9.49834 26.029 9.20736 25.9711C8.91639 25.9133 8.64912 25.7704 8.43934 25.5606C8.22956 25.3508 8.0867 25.0836 8.02882 24.7926C7.97094 24.5016 8.00065 24.2 8.11418 23.9259C8.22771 23.6518 8.41997 23.4176 8.66665 23.2527C8.91332 23.0879 9.20333 23 9.5 23C9.89782 23 10.2794 23.158 10.5607 23.4393C10.842 23.7206 11 24.1021 11 24.5ZM14.5 25C14.2033 25 13.9133 25.0879 13.6666 25.2527C13.42 25.4176 13.2277 25.6518 13.1142 25.9259C13.0006 26.2 12.9709 26.5016 13.0288 26.7926C13.0867 27.0836 13.2296 27.3508 13.4393 27.5606C13.6491 27.7704 13.9164 27.9133 14.2074 27.9711C14.4983 28.029 14.7999 27.9993 15.074 27.8858C15.3481 27.7722 15.5824 27.58 15.7472 27.3333C15.912 27.0866 16 26.7966 16 26.5C16 26.1021 15.842 25.7206 15.5607 25.4393C15.2794 25.158 14.8978 25 14.5 25ZM20.5 23C20.2033 23 19.9133 23.0879 19.6666 23.2527C19.42 23.4176 19.2277 23.6518 19.1142 23.9259C19.0007 24.2 18.9709 24.5016 19.0288 24.7926C19.0867 25.0836 19.2296 25.3508 19.4393 25.5606C19.6491 25.7704 19.9164 25.9133 20.2074 25.9711C20.4983 26.029 20.7999 25.9993 21.074 25.8858C21.3481 25.7722 21.5824 25.58 21.7472 25.3333C21.912 25.0866 22 24.7966 22 24.5C22 24.1021 21.842 23.7206 21.5607 23.4393C21.2794 23.158 20.8978 23 20.5 23ZM8.5 28C8.20333 28 7.91332 28.0879 7.66664 28.2527C7.41997 28.4176 7.22771 28.6518 7.11418 28.9259C7.00065 29.2 6.97094 29.5016 7.02882 29.7926C7.0867 30.0836 7.22956 30.3508 7.43934 30.5606C7.64912 30.7704 7.91639 30.9133 8.20736 30.9711C8.49834 31.029 8.79994 30.9993 9.07403 30.8858C9.34811 30.7722 9.58238 30.58 9.7472 30.3333C9.91203 30.0866 10 29.7966 10 29.5C10 29.1021 9.84196 28.7206 9.56066 28.4393C9.27936 28.158 8.89782 28 8.5 28ZM19.5 28C19.2033 28 18.9133 28.0879 18.6666 28.2527C18.42 28.4176 18.2277 28.6518 18.1142 28.9259C18.0007 29.2 17.9709 29.5016 18.0288 29.7926C18.0867 30.0836 18.2296 30.3508 18.4393 30.5606C18.6491 30.7704 18.9164 30.9133 19.2074 30.9711C19.4983 31.029 19.7999 30.9993 20.074 30.8858C20.3481 30.7722 20.5824 30.58 20.7472 30.3333C20.912 30.0866 21 29.7966 21 29.5C21 29.1021 20.842 28.7206 20.5607 28.4393C20.2794 28.158 19.8978 28 19.5 28ZM29 11.5C28.9974 14.0187 27.9956 16.4335 26.2146 18.2145C24.4336 19.9956 22.0187 20.9973 19.5 21H9.5C7.77609 21 6.12279 20.3151 4.90381 19.0961C3.68482 17.8772 3 16.2239 3 14.5C3 12.776 3.68482 11.1227 4.90381 9.90376C6.12279 8.68477 7.77609 7.99995 9.5 7.99995C9.87367 8.00027 10.2467 8.03205 10.615 8.09495C11.4125 6.02341 12.9096 4.29611 14.8467 3.21231C16.7839 2.12852 19.0392 1.75651 21.2219 2.16075C23.4045 2.56498 25.377 3.71999 26.7975 5.42566C28.2181 7.13133 28.9973 9.2802 29 11.5ZM27 11.5C26.992 9.55252 26.2276 7.68441 24.8681 6.28999C23.5087 4.89557 21.6605 4.08398 19.7139 4.02656C17.7673 3.96913 15.8746 4.67037 14.4353 5.98222C12.996 7.29408 12.1228 9.11388 12 11.0575C11.9924 11.1888 11.9591 11.3173 11.9019 11.4358C11.8446 11.5542 11.7646 11.6602 11.6664 11.7477C11.4681 11.9245 11.2077 12.0152 10.9425 12C10.6773 11.9847 10.429 11.8647 10.2522 11.6664C10.0755 11.4681 9.98475 11.2077 10 10.9425C10.0175 10.6375 10.0496 10.3362 10.0962 10.0387C9.89851 10.0133 9.69937 10.0004 9.5 9.99995C8.30653 9.99995 7.16193 10.4741 6.31802 11.318C5.47411 12.1619 5 13.3065 5 14.5C5 15.6934 5.47411 16.838 6.31802 17.6819C7.16193 18.5258 8.30653 19 9.5 19H19.5C21.4884 18.9976 23.3947 18.2067 24.8007 16.8007C26.2068 15.3947 26.9977 13.4884 27 11.5Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2167
+ }),
2168
+ "cloud_sun": Object.freeze({
2169
+ viewBox: "0 0 32 32",
2170
+ body: "<path d=\"M20.4999 9.00001C19.6443 8.9995 18.7924 9.11428 17.9674 9.34126C17.6418 8.80989 17.2461 8.32471 16.7912 7.89876L17.9799 6.20251C18.0553 6.09491 18.1087 5.97352 18.1371 5.84528C18.1656 5.71703 18.1684 5.58444 18.1456 5.45508C18.1228 5.32572 18.0748 5.20211 18.0042 5.09132C17.9336 4.98054 17.8419 4.88473 17.7343 4.80939C17.6267 4.73404 17.5053 4.68063 17.3771 4.65219C17.2488 4.62376 17.1162 4.62087 16.9869 4.64368C16.8575 4.66648 16.7339 4.71455 16.6231 4.78513C16.5123 4.8557 16.4165 4.94741 16.3412 5.05501L15.1524 6.75001C14.1749 6.25644 13.095 5.99953 11.9999 6.00001C11.9274 6.00001 11.8549 6.00001 11.7824 6.00001L11.4212 3.96376C11.4022 3.83108 11.3568 3.70357 11.2876 3.5888C11.2183 3.47402 11.1268 3.37434 11.0183 3.29566C10.9098 3.21698 10.7865 3.16092 10.6559 3.1308C10.5253 3.10068 10.39 3.09712 10.258 3.12034C10.126 3.14356 10 3.19307 9.88754 3.26594C9.77505 3.33881 9.67836 3.43355 9.60321 3.54453C9.52806 3.65551 9.47599 3.78046 9.45009 3.91196C9.42418 4.04346 9.42498 4.17883 9.45243 4.31001L9.81243 6.35251C8.70337 6.71933 7.70352 7.3574 6.90368 8.20876L5.20118 7.01751C5.09366 6.94032 4.97189 6.88523 4.84292 6.85545C4.71396 6.82567 4.58036 6.82179 4.44988 6.84404C4.3194 6.86628 4.19464 6.91421 4.08282 6.98503C3.97101 7.05586 3.87437 7.14818 3.7985 7.25665C3.72264 7.36511 3.66906 7.48755 3.64087 7.61687C3.61269 7.7462 3.61046 7.87983 3.63431 8.01003C3.65816 8.14022 3.70763 8.26438 3.77983 8.37531C3.85203 8.48625 3.94554 8.58174 4.05493 8.65626L5.74993 9.84626C5.2546 10.8236 4.9976 11.9043 4.99993 13C4.99993 13.0713 4.99993 13.1438 4.99993 13.215L2.96368 13.575C2.71721 13.6182 2.49589 13.7522 2.34339 13.9506C2.1909 14.149 2.11832 14.3973 2.13999 14.6466C2.16165 14.8959 2.27598 15.128 2.46041 15.2971C2.64484 15.4662 2.88596 15.56 3.13618 15.56C3.19441 15.5599 3.25254 15.5549 3.30993 15.545L5.34993 15.185C5.52917 15.7307 5.7752 16.2522 6.08243 16.7375C5.12592 17.626 4.4591 18.7819 4.1688 20.0546C3.87851 21.3274 3.9782 22.6581 4.45489 23.8735C4.93158 25.0888 5.76318 26.1324 6.84139 26.8685C7.9196 27.6045 9.19445 27.9988 10.4999 28H20.4999C23.0195 28 25.4358 26.9991 27.2174 25.2175C28.999 23.4359 29.9999 21.0196 29.9999 18.5C29.9999 15.9805 28.999 13.5641 27.2174 11.7825C25.4358 10.0009 23.0195 9.00001 20.4999 9.00001ZM6.99993 13C7.00053 11.9411 7.33731 10.9097 7.96173 10.0545C8.58616 9.19922 9.46599 8.56431 10.4744 8.24123C11.4829 7.91816 12.5678 7.92358 13.573 8.25674C14.5782 8.5899 15.4516 9.23357 16.0674 10.095C14.0275 11.1685 12.4457 12.9448 11.6149 15.095C10.3004 14.8681 8.94781 15.05 7.73993 15.6163C7.25633 14.8293 7.0002 13.9237 6.99993 13ZM20.4999 26H10.4999C9.88446 25.9989 9.27576 25.8715 8.71148 25.6258C8.1472 25.38 7.63932 25.0211 7.21926 24.5713C6.79919 24.1215 6.47587 23.5903 6.26928 23.0105C6.06269 22.4307 5.97723 21.8148 6.01818 21.2006C6.05912 20.5865 6.22561 19.9874 6.50734 19.4402C6.78907 18.893 7.18006 18.4094 7.65612 18.0193C8.13219 17.6292 8.68321 17.3409 9.27513 17.1723C9.86704 17.0036 10.4873 16.9582 11.0974 17.0388C11.0512 17.335 11.0187 17.6375 11.0012 17.9425C10.9859 18.2077 11.0767 18.4681 11.2534 18.6665C11.4302 18.8648 11.6785 18.9848 11.9437 19C12.2089 19.0153 12.4693 18.9245 12.6676 18.7478C12.8659 18.571 12.9859 18.3227 13.0012 18.0575C13.0292 17.5587 13.108 17.0641 13.2362 16.5813C13.2362 16.5613 13.2474 16.5413 13.2512 16.5213C13.6187 15.1706 14.3566 13.9495 15.3814 12.996C16.4063 12.0425 17.6773 11.3946 19.0509 11.1253C20.4246 10.856 21.8462 10.9761 23.1552 11.472C24.4642 11.968 25.6085 12.82 26.4588 13.932C27.3091 15.0439 27.8317 16.3714 27.9674 17.7646C28.1031 19.1579 27.8466 20.5613 27.2269 21.8164C26.6071 23.0715 25.6488 24.1284 24.4601 24.8677C23.2714 25.6069 21.8997 25.9991 20.4999 26Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2171
+ }),
2172
+ "compass": Object.freeze({
2173
+ viewBox: "0 0 32 32",
2174
+ body: "<path d=\"M16 3C13.4288 3 10.9154 3.76244 8.77759 5.1909C6.63975 6.61935 4.97351 8.64968 3.98957 11.0251C3.00563 13.4006 2.74819 16.0144 3.2498 18.5362C3.75141 21.0579 4.98953 23.3743 6.80762 25.1924C8.6257 27.0105 10.9421 28.2486 13.4638 28.7502C15.9856 29.2518 18.5995 28.9944 20.9749 28.0104C23.3503 27.0265 25.3807 25.3603 26.8091 23.2224C28.2376 21.0846 29 18.5712 29 16C28.9964 12.5533 27.6256 9.24882 25.1884 6.81163C22.7512 4.37445 19.4467 3.00364 16 3ZM16 27C13.8244 27 11.6977 26.3549 9.88873 25.1462C8.07979 23.9375 6.66989 22.2195 5.83733 20.2095C5.00477 18.1995 4.78693 15.9878 5.21137 13.854C5.63581 11.7202 6.68345 9.7602 8.22183 8.22183C9.76021 6.68345 11.7202 5.6358 13.854 5.21136C15.9878 4.78692 18.1995 5.00476 20.2095 5.83733C22.2195 6.66989 23.9375 8.07979 25.1462 9.88873C26.3549 11.6977 27 13.8244 27 16C26.9967 18.9164 25.8367 21.7123 23.7745 23.7745C21.7123 25.8367 18.9164 26.9967 16 27ZM21.5525 9.105L13.5525 13.105C13.3591 13.2022 13.2022 13.3591 13.105 13.5525L9.10501 21.5525C9.02869 21.705 8.99264 21.8745 9.0003 22.0449C9.00795 22.2153 9.05905 22.3808 9.14874 22.5259C9.23843 22.671 9.36373 22.7907 9.51272 22.8736C9.66172 22.9566 9.82946 23.0001 10 23C10.1552 22.9998 10.3084 22.9638 10.4475 22.895L18.4475 18.895C18.6409 18.7978 18.7979 18.6409 18.895 18.4475L22.895 10.4475C22.9894 10.2597 23.0222 10.0469 22.9887 9.83933C22.9552 9.6318 22.8572 9.4401 22.7085 9.29146C22.5599 9.14282 22.3682 9.0448 22.1607 9.01132C21.9531 8.97785 21.7403 9.01063 21.5525 9.105ZM17.25 17.25L12.2363 19.7638L14.75 14.75L19.7688 12.2413L17.25 17.25Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2175
+ }),
2176
+ "copy": Object.freeze({
2177
+ viewBox: "0 0 32 32",
2178
+ body: "<path d=\"M27 4H11C10.7348 4 10.4804 4.10536 10.2929 4.29289C10.1054 4.48043 10 4.73478 10 5V10H5C4.73478 10 4.48043 10.1054 4.29289 10.2929C4.10536 10.4804 4 10.7348 4 11V27C4 27.2652 4.10536 27.5196 4.29289 27.7071C4.48043 27.8946 4.73478 28 5 28H21C21.2652 28 21.5196 27.8946 21.7071 27.7071C21.8946 27.5196 22 27.2652 22 27V22H27C27.2652 22 27.5196 21.8946 27.7071 21.7071C27.8946 21.5196 28 21.2652 28 21V5C28 4.73478 27.8946 4.48043 27.7071 4.29289C27.5196 4.10536 27.2652 4 27 4ZM20 26H6V12H20V26ZM26 20H22V11C22 10.7348 21.8946 10.4804 21.7071 10.2929C21.5196 10.1054 21.2652 10 21 10H12V6H26V20Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2179
+ }),
2180
+ "crown": Object.freeze({
2181
+ viewBox: "0 0 32 32",
2182
+ body: "<path d=\"M30.9999 9.99999C31.0004 9.45181 30.8721 8.91119 30.6254 8.42167C30.3787 7.93215 30.0204 7.50743 29.5795 7.18172C29.1386 6.85601 28.6273 6.63843 28.0869 6.5465C27.5465 6.45457 26.992 6.49086 26.4682 6.65246C25.9444 6.81405 25.4658 7.09643 25.0711 7.47683C24.6764 7.85724 24.3766 8.32504 24.1958 8.84254C24.015 9.36004 23.9583 9.91278 24.0302 10.4562C24.1021 10.9997 24.3007 11.5186 24.6099 11.9712L21.2612 16.0962L18.2499 9.17499C18.7991 8.71277 19.1929 8.09285 19.3779 7.39928C19.563 6.70571 19.5302 5.97202 19.2842 5.29767C19.0382 4.62332 18.5908 4.04092 18.0026 3.62941C17.4145 3.2179 16.714 2.99719 15.9962 2.99719C15.2784 2.99719 14.5779 3.2179 13.9897 3.62941C13.4016 4.04092 12.9542 4.62332 12.7082 5.29767C12.4621 5.97202 12.4294 6.70571 12.6144 7.39928C12.7994 8.09285 13.1932 8.71277 13.7424 9.17499L10.7387 16.0925L7.38994 11.9675C7.82011 11.3372 8.0325 10.5835 7.99474 9.82135C7.95699 9.05917 7.67116 8.3302 7.18079 7.74549C6.69043 7.16077 6.0224 6.75234 5.27844 6.5824C4.53448 6.41246 3.75537 6.49033 3.05976 6.80414C2.36415 7.11795 1.79016 7.6505 1.42521 8.3207C1.06026 8.9909 0.924354 9.76201 1.03818 10.5166C1.15201 11.2712 1.50935 11.9679 2.05576 12.5006C2.60217 13.0333 3.30771 13.3728 4.06494 13.4675L5.87494 24.3287C5.95275 24.7957 6.19367 25.2199 6.55485 25.5259C6.91603 25.8319 7.37405 25.9999 7.84744 26H24.1524C24.6258 25.9999 25.0838 25.8319 25.445 25.5259C25.8062 25.2199 26.0471 24.7957 26.1249 24.3287L27.9337 13.4725C28.7802 13.3668 29.5589 12.9556 30.1235 12.3161C30.6881 11.6767 30.9998 10.853 30.9999 9.99999ZM15.9999 4.99999C16.2966 4.99999 16.5866 5.08797 16.8333 5.25279C17.08 5.41761 17.2722 5.65188 17.3858 5.92597C17.4993 6.20006 17.529 6.50166 17.4711 6.79263C17.4132 7.0836 17.2704 7.35087 17.0606 7.56065C16.8508 7.77043 16.5835 7.91329 16.2926 7.97117C16.0016 8.02905 15.7 7.99934 15.4259 7.88581C15.1518 7.77228 14.9176 7.58002 14.7527 7.33335C14.5879 7.08667 14.4999 6.79666 14.4999 6.49999C14.4999 6.10217 14.658 5.72064 14.9393 5.43933C15.2206 5.15803 15.6021 4.99999 15.9999 4.99999ZM2.99994 9.99999C2.99994 9.70332 3.08791 9.41331 3.25273 9.16664C3.41756 8.91996 3.65182 8.7277 3.92591 8.61417C4.2 8.50064 4.5016 8.47094 4.79257 8.52881C5.08355 8.58669 5.35082 8.72955 5.5606 8.93933C5.77038 9.14911 5.91324 9.41638 5.97112 9.70736C6.02899 9.99833 5.99929 10.2999 5.88576 10.574C5.77223 10.8481 5.57997 11.0824 5.33329 11.2472C5.08662 11.412 4.79661 11.5 4.49994 11.5C4.10211 11.5 3.72058 11.342 3.43928 11.0607C3.15797 10.7793 2.99994 10.3978 2.99994 9.99999ZM24.1524 24H7.84744L6.10744 13.565L10.2237 18.625C10.3169 18.7414 10.435 18.8356 10.5693 18.9004C10.7036 18.9653 10.8508 18.9993 10.9999 19C11.0451 19.0002 11.0902 18.9973 11.1349 18.9912C11.3053 18.9681 11.4668 18.9014 11.6039 18.7976C11.741 18.6938 11.8489 18.5564 11.9174 18.3987L15.5799 9.97374C15.8588 10.0087 16.141 10.0087 16.4199 9.97374L20.0824 18.3987C20.1509 18.5564 20.2589 18.6938 20.396 18.7976C20.5331 18.9014 20.6946 18.9681 20.8649 18.9912C20.9097 18.9973 20.9548 19.0002 20.9999 19C21.1491 18.9993 21.2962 18.9653 21.4305 18.9004C21.5649 18.8356 21.683 18.7414 21.7762 18.625L25.8924 13.56L24.1524 24ZM27.4999 11.5C27.2033 11.5 26.9133 11.412 26.6666 11.2472C26.4199 11.0824 26.2277 10.8481 26.1141 10.574C26.0006 10.2999 25.9709 9.99833 26.0288 9.70736C26.0866 9.41638 26.2295 9.14911 26.4393 8.93933C26.6491 8.72955 26.9163 8.58669 27.2073 8.52881C27.4983 8.47094 27.7999 8.50064 28.074 8.61417C28.3481 8.7277 28.5823 8.91996 28.7471 9.16664C28.912 9.41331 28.9999 9.70332 28.9999 9.99999C28.9999 10.3978 28.8419 10.7793 28.5606 11.0607C28.2793 11.342 27.8978 11.5 27.4999 11.5Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2183
+ }),
2184
+ "delete": Object.freeze({
2185
+ viewBox: "0 0 32 32",
2186
+ body: "<path d=\"M27 6H22V5C22 4.20435 21.6839 3.44129 21.1213 2.87868C20.5587 2.31607 19.7956 2 19 2H13C12.2044 2 11.4413 2.31607 10.8787 2.87868C10.3161 3.44129 10 4.20435 10 5V6H5C4.73478 6 4.48043 6.10536 4.29289 6.29289C4.10536 6.48043 4 6.73478 4 7C4 7.26522 4.10536 7.51957 4.29289 7.70711C4.48043 7.89464 4.73478 8 5 8H6V26C6 26.5304 6.21071 27.0391 6.58579 27.4142C6.96086 27.7893 7.46957 28 8 28H24C24.5304 28 25.0391 27.7893 25.4142 27.4142C25.7893 27.0391 26 26.5304 26 26V8H27C27.2652 8 27.5196 7.89464 27.7071 7.70711C27.8946 7.51957 28 7.26522 28 7C28 6.73478 27.8946 6.48043 27.7071 6.29289C27.5196 6.10536 27.2652 6 27 6ZM12 5C12 4.73478 12.1054 4.48043 12.2929 4.29289C12.4804 4.10536 12.7348 4 13 4H19C19.2652 4 19.5196 4.10536 19.7071 4.29289C19.8946 4.48043 20 4.73478 20 5V6H12V5ZM24 26H8V8H24V26ZM14 13V21C14 21.2652 13.8946 21.5196 13.7071 21.7071C13.5196 21.8946 13.2652 22 13 22C12.7348 22 12.4804 21.8946 12.2929 21.7071C12.1054 21.5196 12 21.2652 12 21V13C12 12.7348 12.1054 12.4804 12.2929 12.2929C12.4804 12.1054 12.7348 12 13 12C13.2652 12 13.5196 12.1054 13.7071 12.2929C13.8946 12.4804 14 12.7348 14 13ZM20 13V21C20 21.2652 19.8946 21.5196 19.7071 21.7071C19.5196 21.8946 19.2652 22 19 22C18.7348 22 18.4804 21.8946 18.2929 21.7071C18.1054 21.5196 18 21.2652 18 21V13C18 12.7348 18.1054 12.4804 18.2929 12.2929C18.4804 12.1054 18.7348 12 19 12C19.2652 12 19.5196 12.1054 19.7071 12.2929C19.8946 12.4804 20 12.7348 20 13Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2187
+ }),
2188
+ "dislike": Object.freeze({
2189
+ viewBox: "0 0 32 32",
2190
+ body: "<path d=\"M29.9775 19.625L28.4775 7.625C28.3861 6.89985 28.0332 6.233 27.485 5.74966C26.9367 5.26632 26.2309 4.99975 25.5 5H4C3.46957 5 2.96086 5.21071 2.58579 5.58579C2.21071 5.96086 2 6.46957 2 7V18C2 18.5304 2.21071 19.0391 2.58579 19.4142C2.96086 19.7893 3.46957 20 4 20H9.3825L14.105 29.4475C14.1881 29.6136 14.3159 29.7533 14.474 29.8509C14.6321 29.9485 14.8142 30.0001 15 30C16.3261 30 17.5979 29.4732 18.5355 28.5355C19.4732 27.5979 20 26.3261 20 25V23H27C27.4257 23.0001 27.8466 22.9097 28.2346 22.7346C28.6227 22.5596 28.9691 22.3039 29.2507 21.9847C29.5323 21.6655 29.7428 21.2899 29.8681 20.8831C29.9934 20.4762 30.0307 20.0474 29.9775 19.625ZM9 18H4V7H9V18ZM27.75 20.6612C27.6568 20.7685 27.5415 20.8542 27.4121 20.9127C27.2826 20.9712 27.142 21.001 27 21H19C18.7348 21 18.4804 21.1054 18.2929 21.2929C18.1054 21.4804 18 21.7348 18 22V25C18.0002 25.6936 17.76 26.3658 17.3204 26.9023C16.8808 27.4388 16.2689 27.8064 15.5887 27.9425L11 18.7638V7H25.5C25.7436 6.99992 25.9789 7.08877 26.1617 7.24989C26.3444 7.411 26.462 7.63328 26.4925 7.875L27.9925 19.875C28.0112 20.0158 27.9993 20.159 27.9574 20.2947C27.9155 20.4304 27.8448 20.5555 27.75 20.6612Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2191
+ }),
2192
+ "download": Object.freeze({
2193
+ viewBox: "0 0 32 32",
2194
+ body: "<path d=\"M28 18V26C28 26.2652 27.8946 26.5196 27.7071 26.7071C27.5196 26.8946 27.2652 27 27 27H5C4.73478 27 4.48043 26.8946 4.29289 26.7071C4.10536 26.5196 4 26.2652 4 26V18C4 17.7348 4.10536 17.4804 4.29289 17.2929C4.48043 17.1054 4.73478 17 5 17C5.26522 17 5.51957 17.1054 5.70711 17.2929C5.89464 17.4804 6 17.7348 6 18V25H26V18C26 17.7348 26.1054 17.4804 26.2929 17.2929C26.4804 17.1054 26.7348 17 27 17C27.2652 17 27.5196 17.1054 27.7071 17.2929C27.8946 17.4804 28 17.7348 28 18ZM15.2925 18.7075C15.3854 18.8005 15.4957 18.8742 15.6171 18.9246C15.7385 18.9749 15.8686 19.0008 16 19.0008C16.1314 19.0008 16.2615 18.9749 16.3829 18.9246C16.5043 18.8742 16.6146 18.8005 16.7075 18.7075L21.7075 13.7075C21.8004 13.6146 21.8741 13.5043 21.9244 13.3829C21.9747 13.2615 22.0006 13.1314 22.0006 13C22.0006 12.8686 21.9747 12.7385 21.9244 12.6171C21.8741 12.4957 21.8004 12.3854 21.7075 12.2925C21.6146 12.1996 21.5043 12.1259 21.3829 12.0756C21.2615 12.0253 21.1314 11.9994 21 11.9994C20.8686 11.9994 20.7385 12.0253 20.6171 12.0756C20.4957 12.1259 20.3854 12.1996 20.2925 12.2925L17 15.5863V4C17 3.73478 16.8946 3.48043 16.7071 3.29289C16.5196 3.10536 16.2652 3 16 3C15.7348 3 15.4804 3.10536 15.2929 3.29289C15.1054 3.48043 15 3.73478 15 4V15.5863L11.7075 12.2925C11.5199 12.1049 11.2654 11.9994 11 11.9994C10.7346 11.9994 10.4801 12.1049 10.2925 12.2925C10.1049 12.4801 9.99944 12.7346 9.99944 13C9.99944 13.2654 10.1049 13.5199 10.2925 13.7075L15.2925 18.7075Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2195
+ }),
2196
+ "drop": Object.freeze({
2197
+ viewBox: "0 0 32 32",
2198
+ body: "<path d=\"M21.75 5.96871C20.206 4.18551 18.4682 2.57978 16.5688 1.18121C16.4006 1.06343 16.2003 1.00024 15.995 1.00024C15.7897 1.00024 15.5894 1.06343 15.4213 1.18121C13.5253 2.58036 11.7909 4.18607 10.25 5.96871C6.81375 9.91496 5 14.075 5 18C5 20.9173 6.15893 23.7152 8.22183 25.7781C10.2847 27.841 13.0826 29 16 29C18.9174 29 21.7153 27.841 23.7782 25.7781C25.8411 23.7152 27 20.9173 27 18C27 14.075 25.1863 9.91496 21.75 5.96871ZM16 27C13.6139 26.9973 11.3262 26.0483 9.63896 24.361C7.95171 22.6737 7.00265 20.3861 7 18C7 10.8462 13.9338 4.87496 16 3.24996C18.0662 4.87496 25 10.8437 25 18C24.9974 20.3861 24.0483 22.6737 22.361 24.361C20.6738 26.0483 18.3861 26.9973 16 27ZM22.9862 19.1675C22.7269 20.6158 22.0301 21.95 20.9896 22.9903C19.949 24.0307 18.6147 24.7272 17.1663 24.9862C17.1113 24.995 17.0557 24.9996 17 25C16.7492 24.9999 16.5075 24.9056 16.323 24.7357C16.1384 24.5658 16.0245 24.3327 16.0037 24.0828C15.9829 23.8328 16.0569 23.5841 16.2108 23.3861C16.3648 23.1881 16.5876 23.0552 16.835 23.0137C18.9062 22.665 20.6637 20.9075 21.015 18.8325C21.0594 18.5709 21.2059 18.3377 21.4223 18.1841C21.6387 18.0306 21.9072 17.9693 22.1688 18.0137C22.4303 18.0581 22.6635 18.2047 22.8171 18.421C22.9706 18.6374 23.0319 18.9059 22.9875 19.1675H22.9862Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2199
+ }),
2200
+ "edit": Object.freeze({
2201
+ viewBox: "0 0 32 32",
2202
+ body: "<path d=\"M28.4138 9.17122L22.8288 3.58497C22.643 3.39921 22.4225 3.25185 22.1799 3.15131C21.9372 3.05077 21.6771 2.99902 21.4144 2.99902C21.1517 2.99902 20.8916 3.05077 20.6489 3.15131C20.4062 3.25185 20.1857 3.39921 20 3.58497L4.58626 19C4.39973 19.185 4.25185 19.4053 4.15121 19.648C4.05057 19.8907 3.99917 20.151 4.00001 20.4137V26C4.00001 26.5304 4.21072 27.0391 4.5858 27.4142C4.96087 27.7893 5.46958 28 6.00001 28H11.5863C11.849 28.0008 12.1093 27.9494 12.352 27.8488C12.5947 27.7481 12.815 27.6002 13 27.4137L28.4138 12C28.5995 11.8142 28.7469 11.5937 28.8474 11.3511C28.948 11.1084 28.9997 10.8483 28.9997 10.5856C28.9997 10.3229 28.948 10.0628 28.8474 9.82012C28.7469 9.57744 28.5995 9.35695 28.4138 9.17122ZM11.5863 26H6.00001V20.4137L17 9.41372L22.5863 15L11.5863 26ZM24 13.585L18.4138 7.99997L21.4138 4.99997L27 10.585L24 13.585Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2203
+ }),
2204
+ "eye": Object.freeze({
2205
+ viewBox: "0 0 32 32",
2206
+ body: "<path d=\"M30.9137 15.595C30.87 15.4963 29.8112 13.1475 27.4575 10.7937C24.3212 7.6575 20.36 6 16 6C11.64 6 7.67874 7.6575 4.54249 10.7937C2.18874 13.1475 1.12499 15.5 1.08624 15.595C1.02938 15.7229 1 15.8613 1 16.0012C1 16.1412 1.02938 16.2796 1.08624 16.4075C1.12999 16.5062 2.18874 18.8538 4.54249 21.2075C7.67874 24.3425 11.64 26 16 26C20.36 26 24.3212 24.3425 27.4575 21.2075C29.8112 18.8538 30.87 16.5062 30.9137 16.4075C30.9706 16.2796 31 16.1412 31 16.0012C31 15.8613 30.9706 15.7229 30.9137 15.595ZM16 24C12.1525 24 8.79124 22.6012 6.00874 19.8438C4.86704 18.7084 3.89572 17.4137 3.12499 16C3.89551 14.5862 4.86686 13.2915 6.00874 12.1562C8.79124 9.39875 12.1525 8 16 8C19.8475 8 23.2087 9.39875 25.9912 12.1562C27.1352 13.2912 28.1086 14.5859 28.8812 16C27.98 17.6825 24.0537 24 16 24ZM16 10C14.8133 10 13.6533 10.3519 12.6666 11.0112C11.6799 11.6705 10.9108 12.6075 10.4567 13.7039C10.0026 14.8003 9.88377 16.0067 10.1153 17.1705C10.3468 18.3344 10.9182 19.4035 11.7573 20.2426C12.5965 21.0818 13.6656 21.6532 14.8294 21.8847C15.9933 22.1162 17.1997 21.9974 18.2961 21.5433C19.3924 21.0892 20.3295 20.3201 20.9888 19.3334C21.6481 18.3467 22 17.1867 22 16C21.9983 14.4092 21.3657 12.884 20.2408 11.7592C19.1159 10.6343 17.5908 10.0017 16 10ZM16 20C15.2089 20 14.4355 19.7654 13.7777 19.3259C13.1199 18.8864 12.6072 18.2616 12.3045 17.5307C12.0017 16.7998 11.9225 15.9956 12.0768 15.2196C12.2312 14.4437 12.6122 13.731 13.1716 13.1716C13.731 12.6122 14.4437 12.2312 15.2196 12.0769C15.9956 11.9225 16.7998 12.0017 17.5307 12.3045C18.2616 12.6072 18.8863 13.1199 19.3259 13.7777C19.7654 14.4355 20 15.2089 20 16C20 17.0609 19.5786 18.0783 18.8284 18.8284C18.0783 19.5786 17.0609 20 16 20Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2207
+ }),
2208
+ "eye_slash": Object.freeze({
2209
+ viewBox: "0 0 32 32",
2210
+ body: "<path d=\"M6.73999 4.32752C6.65217 4.22853 6.54558 4.14795 6.42639 4.09046C6.3072 4.03297 6.17778 3.9997 6.04564 3.99259C5.91351 3.98549 5.78127 4.00467 5.6566 4.04905C5.53193 4.09342 5.41731 4.1621 5.31938 4.2511C5.22144 4.3401 5.14215 4.44765 5.08609 4.56752C5.03003 4.68739 4.99832 4.81719 4.9928 4.94941C4.98727 5.08162 5.00804 5.21362 5.05391 5.33775C5.09978 5.46187 5.16982 5.57567 5.25999 5.67252L7.66499 8.31877C3.12499 11.105 1.17249 15.4 1.08624 15.595C1.02938 15.7229 1 15.8613 1 16.0013C1 16.1412 1.02938 16.2796 1.08624 16.4075C1.12999 16.5063 2.18874 18.8538 4.54249 21.2075C7.67874 24.3425 11.64 26 16 26C18.2408 26.0128 20.4589 25.5514 22.5087 24.6463L25.2587 27.6725C25.3466 27.7715 25.4531 27.8521 25.5723 27.9096C25.6915 27.9671 25.8209 28.0003 25.9531 28.0075C26.0852 28.0146 26.2175 27.9954 26.3421 27.951C26.4668 27.9066 26.5814 27.8379 26.6793 27.7489C26.7773 27.66 26.8566 27.5524 26.9126 27.4325C26.9687 27.3127 27.0004 27.1829 27.0059 27.0506C27.0115 26.9184 26.9907 26.7864 26.9448 26.6623C26.899 26.5382 26.8289 26.4244 26.7387 26.3275L6.73999 4.32752ZM12.6562 13.8075L17.865 19.5388C17.0806 19.9514 16.1814 20.0919 15.3085 19.9381C14.4357 19.7843 13.6386 19.3449 13.0425 18.689C12.4464 18.0331 12.085 17.1978 12.0151 16.3143C11.9452 15.4308 12.1707 14.549 12.6562 13.8075ZM16 24C12.1525 24 8.79124 22.6013 6.00874 19.8438C4.86663 18.7087 3.89526 17.414 3.12499 16C3.71124 14.9013 5.58249 11.8263 9.04374 9.82752L11.2937 12.2963C10.4227 13.4119 9.97403 14.7996 10.0272 16.214C10.0803 17.6284 10.6317 18.9785 11.584 20.0257C12.5363 21.0728 13.8282 21.7496 15.2312 21.9363C16.6343 22.1231 18.0582 21.8078 19.2512 21.0463L21.0925 23.0713C19.4675 23.6947 17.7405 24.0097 16 24ZM16.75 12.0713C16.4894 12.0215 16.2593 11.8703 16.1102 11.6509C15.9611 11.4315 15.9053 11.1618 15.955 10.9013C16.0047 10.6407 16.1559 10.4105 16.3753 10.2615C16.5948 10.1124 16.8644 10.0565 17.125 10.1063C18.3995 10.3534 19.56 11.0058 20.4333 11.9664C21.3067 12.9269 21.8462 14.1441 21.9712 15.4363C21.9959 15.7003 21.9147 15.9634 21.7455 16.1676C21.5762 16.3717 21.3328 16.5003 21.0687 16.525C21.0375 16.5269 21.0062 16.5269 20.975 16.525C20.725 16.5261 20.4838 16.4335 20.2987 16.2656C20.1136 16.0976 19.9981 15.8664 19.975 15.6175C19.8908 14.758 19.5315 13.9486 18.9504 13.3097C18.3694 12.6708 17.5977 12.2364 16.75 12.0713ZM30.91 16.4075C30.8575 16.525 29.5912 19.3288 26.74 21.8825C26.6426 21.9726 26.5282 22.0423 26.4036 22.0877C26.2789 22.1331 26.1465 22.1533 26.014 22.147C25.8814 22.1407 25.7515 22.1082 25.6317 22.0512C25.5119 21.9942 25.4047 21.9139 25.3162 21.8151C25.2277 21.7162 25.1598 21.6008 25.1163 21.4754C25.0729 21.3501 25.0549 21.2173 25.0633 21.0849C25.0716 20.9525 25.1063 20.8231 25.1652 20.7043C25.2241 20.5854 25.306 20.4794 25.4062 20.3925C26.8051 19.1358 27.9801 17.6505 28.8812 16C28.1093 14.5847 27.1358 13.2891 25.9912 12.1538C23.2087 9.39877 19.8475 8.00002 16 8.00002C15.1893 7.99903 14.3799 8.06467 13.58 8.19627C13.4499 8.21928 13.3166 8.21628 13.1876 8.18745C13.0587 8.15863 12.9368 8.10454 12.8289 8.02833C12.721 7.95211 12.6293 7.85527 12.559 7.7434C12.4887 7.63153 12.4413 7.50685 12.4196 7.37656C12.3978 7.24627 12.402 7.11295 12.432 6.9843C12.462 6.85566 12.5172 6.73424 12.5945 6.62705C12.6717 6.51986 12.7694 6.42904 12.8819 6.35982C12.9944 6.2906 13.1195 6.24436 13.25 6.22377C14.1589 6.07369 15.0787 5.99885 16 6.00002C20.36 6.00002 24.3212 7.65752 27.4575 10.7938C29.8112 13.1475 30.87 15.4963 30.9137 15.595C30.9706 15.7229 31 15.8613 31 16.0013C31 16.1412 30.9706 16.2796 30.9137 16.4075H30.91Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2211
+ }),
2212
+ "fire_fill": Object.freeze({
2213
+ viewBox: "0 0 32 32",
2214
+ body: "<path d=\"M17.9225 2.23129C17.7992 2.1288 17.6531 2.05745 17.4965 2.02326C17.3399 1.98906 17.1773 1.99303 17.0225 2.03481C16.8678 2.0766 16.7253 2.15499 16.6072 2.26337C16.489 2.37174 16.3987 2.50693 16.3438 2.65754L13.5938 10.2088L10.5737 7.28254C10.4723 7.18417 10.3512 7.10841 10.2184 7.06025C10.0856 7.01209 9.94403 6.99263 9.80313 7.00314C9.66223 7.01365 9.52516 7.0539 9.40095 7.12123C9.27674 7.18857 9.1682 7.28146 9.0825 7.39379C6.375 10.9413 5 14.51 5 18C5 20.9174 6.15893 23.7153 8.22183 25.7782C10.2847 27.8411 13.0826 29 16 29C18.9174 29 21.7153 27.8411 23.7782 25.7782C25.8411 23.7153 27 20.9174 27 18C27 10.5688 20.6513 4.50004 17.9225 2.23129ZM22.9862 19.1675C22.7269 20.6159 22.0301 21.9501 20.9896 22.9904C19.949 24.0308 18.6147 24.7273 17.1663 24.9863C17.1113 24.9957 17.0557 25.0003 17 25C16.7492 25 16.5075 24.9056 16.323 24.7357C16.1384 24.5659 16.0245 24.3328 16.0037 24.0828C15.9829 23.8328 16.0569 23.5842 16.2108 23.3862C16.3648 23.1882 16.5876 23.0552 16.835 23.0138C18.9062 22.665 20.6637 20.9075 21.015 18.8325C21.0594 18.571 21.2059 18.3378 21.4223 18.1842C21.6387 18.0307 21.9072 17.9694 22.1688 18.0138C22.4303 18.0582 22.6635 18.2047 22.8171 18.4211C22.9706 18.6375 23.0319 18.906 22.9875 19.1675H22.9862Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2215
+ }),
2216
+ "game_controller": Object.freeze({
2217
+ viewBox: "0 0 32 32",
2218
+ body: "<path d=\"M22 14H19C18.7348 14 18.4805 13.8946 18.2929 13.7071C18.1054 13.5196 18 13.2652 18 13C18 12.7348 18.1054 12.4804 18.2929 12.2929C18.4805 12.1054 18.7348 12 19 12H22C22.2653 12 22.5196 12.1054 22.7072 12.2929C22.8947 12.4804 23 12.7348 23 13C23 13.2652 22.8947 13.5196 22.7072 13.7071C22.5196 13.8946 22.2653 14 22 14ZM13 12H12V11C12 10.7348 11.8947 10.4804 11.7072 10.2929C11.5196 10.1054 11.2653 10 11 10C10.7348 10 10.4805 10.1054 10.2929 10.2929C10.1054 10.4804 10 10.7348 10 11V12H9.00004C8.73483 12 8.48047 12.1054 8.29294 12.2929C8.1054 12.4804 8.00004 12.7348 8.00004 13C8.00004 13.2652 8.1054 13.5196 8.29294 13.7071C8.48047 13.8946 8.73483 14 9.00004 14H10V15C10 15.2652 10.1054 15.5196 10.2929 15.7071C10.4805 15.8946 10.7348 16 11 16C11.2653 16 11.5196 15.8946 11.7072 15.7071C11.8947 15.5196 12 15.2652 12 15V14H13C13.2653 14 13.5196 13.8946 13.7072 13.7071C13.8947 13.5196 14 13.2652 14 13C14 12.7348 13.8947 12.4804 13.7072 12.2929C13.5196 12.1054 13.2653 12 13 12ZM30.185 25.0812C29.8082 25.6194 29.318 26.0686 28.749 26.3971C28.18 26.7256 27.546 26.9255 26.8915 26.9828C26.2369 27.0401 25.5778 26.9534 24.9604 26.7288C24.343 26.5041 23.7822 26.147 23.3175 25.6825C23.3025 25.6675 23.2875 25.6525 23.2738 25.6362L18.31 20H13.685L8.72629 25.6362L8.68254 25.6825C7.8378 26.5254 6.69341 26.9992 5.50004 27C4.84309 26.9998 4.19416 26.8557 3.59883 26.5779C3.00351 26.3001 2.47623 25.8953 2.05403 25.392C1.63183 24.8886 1.32496 24.299 1.15497 23.6644C0.984977 23.0298 0.955991 22.3657 1.07004 21.7188C1.06944 21.7129 1.06944 21.7071 1.07004 21.7013L3.11629 11.19C3.42083 9.45634 4.32662 7.88546 5.67449 6.75339C7.02236 5.62133 8.72609 5.0005 10.4863 5H21.5C23.2549 5.0028 24.9534 5.62008 26.3007 6.74466C27.6479 7.86924 28.5587 9.4301 28.875 11.1562C28.875 11.1638 28.875 11.1712 28.875 11.1788L30.9213 21.7C30.9219 21.7058 30.9219 21.7117 30.9213 21.7175C31.0272 22.299 31.0167 22.8958 30.8903 23.4732C30.7639 24.0506 30.5242 24.5971 30.185 25.0812ZM21.5 18C22.9587 18 24.3577 17.4205 25.3891 16.3891C26.4206 15.3576 27 13.9587 27 12.5C27 11.0413 26.4206 9.64236 25.3891 8.61091C24.3577 7.57946 22.9587 7 21.5 7H10.4863C9.19498 7.00116 7.94545 7.45767 6.95751 8.28922C5.96958 9.12076 5.30654 10.2741 5.08504 11.5463V11.5625L3.03754 22.0737C2.94704 22.5949 3.02415 23.1313 3.25777 23.6058C3.49139 24.0803 3.86949 24.4685 4.33769 24.7145C4.80589 24.9606 5.34006 25.0518 5.86338 24.9751C6.3867 24.8983 6.87219 24.6576 7.25004 24.2875L12.49 18.3388C12.5839 18.2323 12.6993 18.1471 12.8286 18.0886C12.9579 18.0302 13.0982 18 13.24 18H21.5ZM28.9625 22.0737L27.87 16.4487C27.1981 17.5337 26.2604 18.4293 25.1458 19.0508C24.0311 19.6722 22.7763 19.9989 21.5 20H20.975L24.75 24.2887C25.0347 24.5656 25.3809 24.771 25.7603 24.8881C26.1396 25.0052 26.5414 25.0307 26.9325 24.9625C27.5842 24.8475 28.1636 24.4788 28.5439 23.9374C28.9242 23.3959 29.0743 22.7257 28.9613 22.0737H28.9625Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2219
+ }),
2220
+ "gift": Object.freeze({
2221
+ viewBox: "0 0 32 32",
2222
+ body: "<path d=\"M27 8.99998H22.615C22.6637 8.95872 22.7137 8.91873 22.7612 8.87498C23.1409 8.5377 23.4468 8.12571 23.66 7.66479C23.8731 7.20387 23.9889 6.70392 24 6.19623C24.0164 5.64082 23.9191 5.08791 23.7142 4.57146C23.5092 4.055 23.2008 3.58589 22.8079 3.19293C22.4151 2.79997 21.9461 2.49145 21.4297 2.2863C20.9133 2.08116 20.3604 1.98372 19.805 1.99998C19.2971 2.01091 18.7969 2.12658 18.3358 2.33973C17.8746 2.55289 17.4624 2.85894 17.125 3.23873C16.6581 3.77984 16.2785 4.39053 16 5.04873C15.7215 4.39053 15.3419 3.77984 14.875 3.23873C14.5376 2.85894 14.1254 2.55289 13.6642 2.33973C13.2031 2.12658 12.7029 2.01091 12.195 1.99998C11.6396 1.98372 11.0867 2.08116 10.5703 2.2863C10.0539 2.49145 9.58491 2.79997 9.19206 3.19293C8.79922 3.58589 8.49083 4.055 8.28584 4.57146C8.08085 5.08791 7.98358 5.64082 8 6.19623C8.01111 6.70392 8.12686 7.20387 8.34001 7.66479C8.55315 8.12571 8.85911 8.5377 9.23875 8.87498C9.28625 8.91623 9.33625 8.95623 9.385 8.99998H5C4.46957 8.99998 3.96086 9.21069 3.58579 9.58576C3.21071 9.96083 3 10.4695 3 11V15C3 15.5304 3.21071 16.0391 3.58579 16.4142C3.96086 16.7893 4.46957 17 5 17V25C5 25.5304 5.21071 26.0391 5.58579 26.4142C5.96086 26.7893 6.46957 27 7 27H25C25.5304 27 26.0391 26.7893 26.4142 26.4142C26.7893 26.0391 27 25.5304 27 25V17C27.5304 17 28.0391 16.7893 28.4142 16.4142C28.7893 16.0391 29 15.5304 29 15V11C29 10.4695 28.7893 9.96083 28.4142 9.58576C28.0391 9.21069 27.5304 8.99998 27 8.99998ZM18.625 4.56372C18.7833 4.38888 18.9761 4.24865 19.1912 4.15185C19.4063 4.05505 19.6391 4.00377 19.875 4.00122H19.9363C20.2127 4.00295 20.486 4.05984 20.7402 4.16856C20.9944 4.27728 21.2244 4.43565 21.4166 4.63437C21.6088 4.83309 21.7594 5.06818 21.8596 5.32586C21.9597 5.58353 22.0075 5.85861 22 6.13498C21.9975 6.37085 21.9462 6.60365 21.8494 6.81876C21.7526 7.03387 21.6123 7.22664 21.4375 7.38498C20.2512 8.43498 18.2825 8.80498 17.0625 8.93498C17.2125 7.61123 17.625 5.68747 18.625 4.56372ZM10.6138 4.60873C11.0012 4.22134 11.5259 4.00256 12.0737 3.99998H12.135C12.3709 4.00252 12.6037 4.0538 12.8188 4.1506C13.0339 4.2474 13.2267 4.38763 13.385 4.56248C14.4338 5.74748 14.8038 7.71247 14.9338 8.92747C13.7188 8.80247 11.7537 8.42747 10.5688 7.37873C10.3939 7.22039 10.2537 7.02762 10.1569 6.81251C10.0601 6.5974 10.0088 6.3646 10.0063 6.12873C9.9985 5.84777 10.0479 5.56817 10.1515 5.30688C10.255 5.04559 10.4106 4.80807 10.6088 4.60873H10.6138ZM5 11H15V15H5V11ZM7 17H15V25H7V17ZM25 25H17V17H25V25ZM27 15H17V11H27V15Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2223
+ }),
2224
+ "heart_fill": Object.freeze({
2225
+ viewBox: "0 0 32 32",
2226
+ body: "<path d=\"M30 12.75C30 21.5 17.0262 28.5825 16.4737 28.875C16.3281 28.9533 16.1654 28.9943 16 28.9943C15.8346 28.9943 15.6719 28.9533 15.5262 28.875C14.9738 28.5825 2 21.5 2 12.75C2.00232 10.6953 2.81958 8.72539 4.27248 7.27248C5.72539 5.81958 7.69528 5.00232 9.75 5C12.3313 5 14.5912 6.11 16 7.98625C17.4088 6.11 19.6688 5 22.25 5C24.3047 5.00232 26.2746 5.81958 27.7275 7.27248C29.1804 8.72539 29.9977 10.6953 30 12.75Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2227
+ }),
2228
+ "info": Object.freeze({
2229
+ viewBox: "0 0 32 32",
2230
+ body: "<path d=\"M16 3C13.4288 3 10.9154 3.76244 8.77759 5.1909C6.63975 6.61935 4.97351 8.64968 3.98957 11.0251C3.00563 13.4006 2.74819 16.0144 3.2498 18.5362C3.75141 21.0579 4.98953 23.3743 6.80762 25.1924C8.6257 27.0105 10.9421 28.2486 13.4638 28.7502C15.9856 29.2518 18.5995 28.9944 20.9749 28.0104C23.3503 27.0265 25.3807 25.3603 26.8091 23.2224C28.2376 21.0846 29 18.5712 29 16C28.9964 12.5533 27.6256 9.24882 25.1884 6.81163C22.7512 4.37445 19.4467 3.00364 16 3ZM16 27C13.8244 27 11.6977 26.3549 9.88873 25.1462C8.07979 23.9375 6.66989 22.2195 5.83733 20.2095C5.00477 18.1995 4.78693 15.9878 5.21137 13.854C5.63581 11.7202 6.68345 9.7602 8.22183 8.22183C9.76021 6.68345 11.7202 5.6358 13.854 5.21136C15.9878 4.78692 18.1995 5.00476 20.2095 5.83733C22.2195 6.66989 23.9375 8.07979 25.1462 9.88873C26.3549 11.6977 27 13.8244 27 16C26.9967 18.9164 25.8367 21.7123 23.7745 23.7745C21.7123 25.8367 18.9164 26.9967 16 27ZM18 22C18 22.2652 17.8946 22.5196 17.7071 22.7071C17.5196 22.8946 17.2652 23 17 23C16.4696 23 15.9609 22.7893 15.5858 22.4142C15.2107 22.0391 15 21.5304 15 21V16C14.7348 16 14.4804 15.8946 14.2929 15.7071C14.1054 15.5196 14 15.2652 14 15C14 14.7348 14.1054 14.4804 14.2929 14.2929C14.4804 14.1054 14.7348 14 15 14C15.5304 14 16.0391 14.2107 16.4142 14.5858C16.7893 14.9609 17 15.4696 17 16V21C17.2652 21 17.5196 21.1054 17.7071 21.2929C17.8946 21.4804 18 21.7348 18 22ZM14 10.5C14 10.2033 14.088 9.91332 14.2528 9.66665C14.4176 9.41997 14.6519 9.22771 14.926 9.11418C15.2001 9.00065 15.5017 8.97094 15.7926 9.02882C16.0836 9.0867 16.3509 9.22956 16.5607 9.43934C16.7704 9.64912 16.9133 9.91639 16.9712 10.2074C17.0291 10.4983 16.9994 10.7999 16.8858 11.074C16.7723 11.3481 16.58 11.5824 16.3334 11.7472C16.0867 11.912 15.7967 12 15.5 12C15.1022 12 14.7206 11.842 14.4393 11.5607C14.158 11.2794 14 10.8978 14 10.5Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2231
+ }),
2232
+ "info_fill": Object.freeze({
2233
+ viewBox: "0 0 32 32",
2234
+ body: "<path d=\"M16 3C13.4288 3 10.9154 3.76244 8.77759 5.1909C6.63975 6.61935 4.97351 8.64968 3.98957 11.0251C3.00563 13.4006 2.74819 16.0144 3.2498 18.5362C3.75141 21.0579 4.98953 23.3743 6.80762 25.1924C8.6257 27.0105 10.9421 28.2486 13.4638 28.7502C15.9856 29.2518 18.5995 28.9944 20.9749 28.0104C23.3503 27.0265 25.3807 25.3603 26.8091 23.2224C28.2376 21.0846 29 18.5712 29 16C28.9964 12.5533 27.6256 9.24882 25.1884 6.81163C22.7512 4.37445 19.4467 3.00364 16 3ZM15.5 9C15.7967 9 16.0867 9.08797 16.3334 9.2528C16.58 9.41762 16.7723 9.65189 16.8858 9.92597C16.9994 10.2001 17.0291 10.5017 16.9712 10.7926C16.9133 11.0836 16.7704 11.3509 16.5607 11.5607C16.3509 11.7704 16.0836 11.9133 15.7926 11.9712C15.5017 12.0291 15.2001 11.9994 14.926 11.8858C14.6519 11.7723 14.4176 11.58 14.2528 11.3334C14.088 11.0867 14 10.7967 14 10.5C14 10.1022 14.158 9.72064 14.4393 9.43934C14.7206 9.15804 15.1022 9 15.5 9ZM17 23C16.4696 23 15.9609 22.7893 15.5858 22.4142C15.2107 22.0391 15 21.5304 15 21V16C14.7348 16 14.4804 15.8946 14.2929 15.7071C14.1054 15.5196 14 15.2652 14 15C14 14.7348 14.1054 14.4804 14.2929 14.2929C14.4804 14.1054 14.7348 14 15 14C15.5304 14 16.0391 14.2107 16.4142 14.5858C16.7893 14.9609 17 15.4696 17 16V21C17.2652 21 17.5196 21.1054 17.7071 21.2929C17.8946 21.4804 18 21.7348 18 22C18 22.2652 17.8946 22.5196 17.7071 22.7071C17.5196 22.8946 17.2652 23 17 23Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2235
+ }),
2236
+ "lightning": Object.freeze({
2237
+ viewBox: "0 0 32 32",
2238
+ body: "<path d=\"M26.9738 14.7712C26.9359 14.611 26.8591 14.4625 26.75 14.3391C26.641 14.2157 26.5032 14.1211 26.3488 14.0637L19.1475 11.3625L20.98 2.19625C21.0215 1.98327 20.9926 1.76258 20.8977 1.56747C20.8028 1.37237 20.6469 1.21343 20.4538 1.11465C20.2606 1.01587 20.0405 0.982599 19.8267 1.01987C19.613 1.05713 19.4172 1.16292 19.2688 1.32125L5.26879 16.3212C5.15508 16.4411 5.07283 16.5872 5.02937 16.7465C4.98591 16.9059 4.98261 17.0735 5.01975 17.2345C5.05689 17.3954 5.13332 17.5447 5.24222 17.6689C5.35111 17.7931 5.48908 17.8884 5.64379 17.9462L12.8475 20.6475L11.02 29.8037C10.9785 30.0167 11.0074 30.2374 11.1024 30.4325C11.1973 30.6276 11.3531 30.7866 11.5463 30.8853C11.7395 30.9841 11.9596 31.0174 12.1733 30.9801C12.3871 30.9429 12.5829 30.8371 12.7313 30.6787L26.7313 15.6787C26.8429 15.5589 26.9234 15.4135 26.9657 15.2552C27.008 15.097 27.0108 14.9308 26.9738 14.7712ZM13.6713 26.75L14.98 20.2025C15.0269 19.9703 14.9898 19.729 14.8753 19.5216C14.7608 19.3142 14.5765 19.1542 14.355 19.07L7.75004 16.5887L18.3275 5.25625L17.02 11.8037C16.9732 12.036 17.0103 12.2773 17.1248 12.4847C17.2392 12.6921 17.4236 12.8521 17.645 12.9362L24.245 15.4112L13.6713 26.75Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2239
+ }),
2240
+ "like": Object.freeze({
2241
+ viewBox: "0 0 32 32",
2242
+ body: "<path d=\"M29.25 10.015C28.9684 9.69591 28.6222 9.44037 28.2342 9.26537C27.8463 9.09037 27.4256 8.99991 27 9H20V7C20 5.67392 19.4732 4.40215 18.5355 3.46447C17.5979 2.52678 16.3261 2 15 2C14.8142 1.99987 14.6321 2.05149 14.474 2.14908C14.3159 2.24667 14.1881 2.38636 14.105 2.5525L9.3825 12H4C3.46957 12 2.96086 12.2107 2.58579 12.5858C2.21071 12.9609 2 13.4696 2 14V25C2 25.5304 2.21071 26.0391 2.58579 26.4142C2.96086 26.7893 3.46957 27 4 27H25.5C26.2309 27.0003 26.9367 26.7337 27.485 26.2503C28.0332 25.767 28.3861 25.1001 28.4775 24.375L29.9775 12.375C30.0307 11.9525 29.9933 11.5236 29.8679 11.1167C29.7424 10.7098 29.5318 10.3342 29.25 10.015ZM4 14H9V25H4V14ZM27.9925 12.125L26.4925 24.125C26.462 24.3667 26.3444 24.589 26.1617 24.7501C25.9789 24.9112 25.7436 25.0001 25.5 25H11V13.2362L15.5887 4.0575C16.2689 4.19362 16.8808 4.5612 17.3204 5.09768C17.76 5.63416 18.0002 6.3064 18 7V10C18 10.2652 18.1054 10.5196 18.2929 10.7071C18.4804 10.8946 18.7348 11 19 11H27C27.1419 11 27.2822 11.0301 27.4115 11.0885C27.5409 11.1468 27.6563 11.232 27.7502 11.3384C27.8441 11.4448 27.9143 11.57 27.956 11.7056C27.9978 11.8413 28.0102 11.9842 27.9925 12.125Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2243
+ }),
2244
+ "magnifying_glass": Object.freeze({
2245
+ viewBox: "0 0 32 32",
2246
+ body: "<path d=\"M28.7073 27.2925L22.4485 21.035C24.2626 18.8572 25.1672 16.0638 24.9741 13.236C24.781 10.4081 23.5052 7.76361 21.412 5.85251C19.3188 3.9414 16.5694 2.91086 13.7357 2.97526C10.902 3.03966 8.20225 4.19404 6.19802 6.19827C4.1938 8.20249 3.03941 10.9023 2.97501 13.7359C2.91061 16.5696 3.94116 19.319 5.85226 21.4122C7.76337 23.5054 10.4079 24.7813 13.2357 24.9743C16.0635 25.1674 18.8569 24.2628 21.0348 22.4488L27.2923 28.7075C27.3852 28.8005 27.4955 28.8742 27.6169 28.9244C27.7383 28.9747 27.8684 29.0006 27.9998 29.0006C28.1312 29.0006 28.2613 28.9747 28.3827 28.9244C28.5041 28.8742 28.6144 28.8005 28.7073 28.7075C28.8002 28.6146 28.8739 28.5043 28.9242 28.3829C28.9745 28.2615 29.0004 28.1314 29.0004 28C29.0004 27.8686 28.9745 27.7385 28.9242 27.6171C28.8739 27.4958 28.8002 27.3855 28.7073 27.2925ZM4.9998 14C4.9998 12.22 5.52764 10.48 6.51657 8.99991C7.5055 7.51987 8.91111 6.36631 10.5556 5.68513C12.2002 5.00394 14.0098 4.82571 15.7556 5.17297C17.5014 5.52024 19.1051 6.37741 20.3638 7.63608C21.6224 8.89475 22.4796 10.4984 22.8269 12.2442C23.1741 13.9901 22.9959 15.7997 22.3147 17.4442C21.6335 19.0887 20.48 20.4943 18.9999 21.4833C17.5199 22.4722 15.7798 23 13.9998 23C11.6137 22.9974 9.32601 22.0483 7.63876 20.3611C5.95151 18.6738 5.00244 16.3862 4.9998 14Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2247
+ }),
2248
+ "map_pin": Object.freeze({
2249
+ viewBox: "0 0 32 32",
2250
+ body: "<path d=\"M16 8C15.0111 8 14.0444 8.29325 13.2221 8.84265C12.3999 9.39206 11.759 10.173 11.3806 11.0866C11.0022 12.0002 10.9031 13.0055 11.0961 13.9755C11.289 14.9454 11.7652 15.8363 12.4645 16.5355C13.1637 17.2348 14.0546 17.711 15.0245 17.9039C15.9945 18.0969 16.9998 17.9978 17.9134 17.6194C18.827 17.241 19.6079 16.6001 20.1573 15.7779C20.7068 14.9556 21 13.9889 21 13C21 11.6739 20.4732 10.4021 19.5355 9.46447C18.5979 8.52678 17.3261 8 16 8ZM16 16C15.4067 16 14.8266 15.8241 14.3333 15.4944C13.8399 15.1648 13.4554 14.6962 13.2284 14.1481C13.0013 13.5999 12.9419 12.9967 13.0576 12.4147C13.1734 11.8328 13.4591 11.2982 13.8787 10.8787C14.2982 10.4591 14.8328 10.1734 15.4147 10.0576C15.9967 9.94189 16.5999 10.0013 17.1481 10.2284C17.6962 10.4554 18.1648 10.8399 18.4944 11.3333C18.8241 11.8266 19 12.4067 19 13C19 13.7956 18.6839 14.5587 18.1213 15.1213C17.5587 15.6839 16.7956 16 16 16ZM16 2C13.0836 2.00331 10.2877 3.1633 8.22548 5.22548C6.1633 7.28766 5.00331 10.0836 5 13C5 16.925 6.81375 21.085 10.25 25.0312C11.794 26.8145 13.5318 28.4202 15.4312 29.8188C15.5994 29.9365 15.7997 29.9997 16.005 29.9997C16.2103 29.9997 16.4106 29.9365 16.5788 29.8188C18.4747 28.4196 20.2091 26.8139 21.75 25.0312C25.1812 21.085 27 16.925 27 13C26.9967 10.0836 25.8367 7.28766 23.7745 5.22548C21.7123 3.1633 18.9164 2.00331 16 2ZM16 27.75C13.9338 26.125 7 20.1562 7 13C7 10.6131 7.94821 8.32387 9.63604 6.63604C11.3239 4.94821 13.6131 4 16 4C18.3869 4 20.6761 4.94821 22.364 6.63604C24.0518 8.32387 25 10.6131 25 13C25 20.1537 18.0662 26.125 16 27.75Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2251
+ }),
2252
+ "map_pin_line": Object.freeze({
2253
+ viewBox: "0 0 32 32",
2254
+ body: "<path d=\"M25 28H18.8175C19.8561 27.0727 20.8355 26.0811 21.75 25.0312C25.1812 21.085 27 16.925 27 13C27 10.0826 25.8411 7.28473 23.7782 5.22183C21.7153 3.15893 18.9174 2 16 2C13.0826 2 10.2847 3.15893 8.22183 5.22183C6.15893 7.28473 5 10.0826 5 13C5 16.925 6.81375 21.085 10.25 25.0312C11.1645 26.0811 12.1439 27.0727 13.1825 28H7C6.73478 28 6.48043 28.1054 6.29289 28.2929C6.10536 28.4804 6 28.7348 6 29C6 29.2652 6.10536 29.5196 6.29289 29.7071C6.48043 29.8946 6.73478 30 7 30H25C25.2652 30 25.5196 29.8946 25.7071 29.7071C25.8946 29.5196 26 29.2652 26 29C26 28.7348 25.8946 28.4804 25.7071 28.2929C25.5196 28.1054 25.2652 28 25 28ZM7 13C7 10.6131 7.94821 8.32387 9.63604 6.63604C11.3239 4.94821 13.6131 4 16 4C18.3869 4 20.6761 4.94821 22.364 6.63604C24.0518 8.32387 25 10.6131 25 13C25 20.1537 18.0662 26.125 16 27.75C13.9338 26.125 7 20.1537 7 13ZM21 13C21 12.0111 20.7068 11.0444 20.1573 10.2221C19.6079 9.3999 18.827 8.75904 17.9134 8.3806C16.9998 8.00216 15.9945 7.90315 15.0245 8.09607C14.0546 8.289 13.1637 8.7652 12.4645 9.46447C11.7652 10.1637 11.289 11.0546 11.0961 12.0245C10.9031 12.9945 11.0022 13.9998 11.3806 14.9134C11.759 15.827 12.3999 16.6079 13.2221 17.1573C14.0444 17.7068 15.0111 18 16 18C17.3261 18 18.5979 17.4732 19.5355 16.5355C20.4732 15.5979 21 14.3261 21 13ZM13 13C13 12.4067 13.1759 11.8266 13.5056 11.3333C13.8352 10.8399 14.3038 10.4554 14.8519 10.2284C15.4001 10.0013 16.0033 9.94189 16.5853 10.0576C17.1672 10.1734 17.7018 10.4591 18.1213 10.8787C18.5409 11.2982 18.8266 11.8328 18.9424 12.4147C19.0581 12.9967 18.9987 13.5999 18.7716 14.1481C18.5446 14.6962 18.1601 15.1648 17.6667 15.4944C17.1734 15.8241 16.5933 16 16 16C15.2044 16 14.4413 15.6839 13.8787 15.1213C13.3161 14.5587 13 13.7956 13 13Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2255
+ }),
2256
+ "minus": Object.freeze({
2257
+ viewBox: "0 0 32 32",
2258
+ body: "<path d=\"M28 16C28 16.2652 27.8946 16.5196 27.7071 16.7071C27.5196 16.8946 27.2652 17 27 17H5C4.73478 17 4.48043 16.8946 4.29289 16.7071C4.10536 16.5196 4 16.2652 4 16C4 15.7348 4.10536 15.4804 4.29289 15.2929C4.48043 15.1054 4.73478 15 5 15H27C27.2652 15 27.5196 15.1054 27.7071 15.2929C27.8946 15.4804 28 15.7348 28 16Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2259
+ }),
2260
+ "more": Object.freeze({
2261
+ viewBox: "0 0 32 32",
2262
+ body: "<path d=\"M17.5 16C17.5 16.2967 17.412 16.5867 17.2472 16.8334C17.0824 17.08 16.8481 17.2723 16.574 17.3858C16.2999 17.4993 15.9983 17.5291 15.7074 17.4712C15.4164 17.4133 15.1491 17.2704 14.9393 17.0607C14.7296 16.8509 14.5867 16.5836 14.5288 16.2926C14.4709 16.0017 14.5007 15.7001 14.6142 15.426C14.7277 15.1519 14.92 14.9176 15.1666 14.7528C15.4133 14.588 15.7033 14.5 16 14.5C16.3978 14.5 16.7794 14.658 17.0607 14.9393C17.342 15.2206 17.5 15.6022 17.5 16ZM24.5 14.5C24.2033 14.5 23.9133 14.588 23.6666 14.7528C23.42 14.9176 23.2277 15.1519 23.1142 15.426C23.0007 15.7001 22.9709 16.0017 23.0288 16.2926C23.0867 16.5836 23.2296 16.8509 23.4393 17.0607C23.6491 17.2704 23.9164 17.4133 24.2074 17.4712C24.4983 17.5291 24.7999 17.4993 25.074 17.3858C25.3481 17.2723 25.5824 17.08 25.7472 16.8334C25.912 16.5867 26 16.2967 26 16C26 15.6022 25.842 15.2206 25.5607 14.9393C25.2794 14.658 24.8978 14.5 24.5 14.5ZM7.5 14.5C7.20333 14.5 6.91332 14.588 6.66665 14.7528C6.41997 14.9176 6.22771 15.1519 6.11418 15.426C6.00065 15.7001 5.97094 16.0017 6.02882 16.2926C6.0867 16.5836 6.22956 16.8509 6.43934 17.0607C6.64912 17.2704 6.91639 17.4133 7.20737 17.4712C7.49834 17.5291 7.79994 17.4993 8.07403 17.3858C8.34811 17.2723 8.58238 17.08 8.74721 16.8334C8.91203 16.5867 9 16.2967 9 16C9 15.6022 8.84197 15.2206 8.56066 14.9393C8.27936 14.658 7.89783 14.5 7.5 14.5Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2263
+ }),
2264
+ "music_note": Object.freeze({
2265
+ viewBox: "0 0 32 32",
2266
+ body: "<path d=\"M26.2875 7.04246L16.2875 4.04246C16.1382 3.99765 15.9805 3.98836 15.827 4.01533C15.6734 4.0423 15.5283 4.1048 15.4032 4.19782C15.2782 4.29084 15.1766 4.41182 15.1065 4.55109C15.0365 4.69037 15 4.84408 15 4.99996V18.5325C13.9759 17.6165 12.6684 17.0797 11.2961 17.0119C9.92376 16.9441 8.56974 17.3494 7.46031 18.16C6.35089 18.9705 5.55329 20.1373 5.2008 21.4654C4.84832 22.7934 4.96231 24.2021 5.52373 25.4562C6.08514 26.7103 7.05997 27.7337 8.28528 28.3553C9.5106 28.977 10.9122 29.1593 12.2557 28.8717C13.5993 28.5842 14.8035 27.8442 15.667 26.7754C16.5305 25.7067 17.0011 24.374 17 23V12.3437L25.7125 14.9575C25.8618 15.0023 26.0195 15.0116 26.173 14.9846C26.3266 14.9576 26.4717 14.8951 26.5968 14.8021C26.7218 14.7091 26.8234 14.5881 26.8935 14.4488C26.9635 14.3096 27 14.1558 27 14V7.99996C26.9999 7.78498 26.9306 7.57574 26.8023 7.40326C26.6739 7.23079 26.4934 7.10427 26.2875 7.04246ZM11 27C10.2089 27 9.43552 26.7654 8.77772 26.3258C8.11992 25.8863 7.60723 25.2616 7.30448 24.5307C7.00173 23.7998 6.92252 22.9955 7.07686 22.2196C7.2312 21.4437 7.61216 20.7309 8.17157 20.1715C8.73098 19.6121 9.44372 19.2312 10.2196 19.0768C10.9956 18.9225 11.7998 19.0017 12.5307 19.3044C13.2616 19.6072 13.8864 20.1199 14.3259 20.7777C14.7654 21.4355 15 22.2088 15 23C15 24.0608 14.5786 25.0782 13.8284 25.8284C13.0783 26.5785 12.0609 27 11 27ZM25 12.6562L17 10.2562V6.34371L25 8.74996V12.6562Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2267
+ }),
2268
+ "pause_fill": Object.freeze({
2269
+ viewBox: "0 0 32 32",
2270
+ body: "<path d=\"M27 6V26C27 26.5304 26.7893 27.0391 26.4142 27.4142C26.0391 27.7893 25.5304 28 25 28H20C19.4696 28 18.9609 27.7893 18.5858 27.4142C18.2107 27.0391 18 26.5304 18 26V6C18 5.46957 18.2107 4.96086 18.5858 4.58579C18.9609 4.21071 19.4696 4 20 4H25C25.5304 4 26.0391 4.21071 26.4142 4.58579C26.7893 4.96086 27 5.46957 27 6ZM12 4H7C6.46957 4 5.96086 4.21071 5.58579 4.58579C5.21071 4.96086 5 5.46957 5 6V26C5 26.5304 5.21071 27.0391 5.58579 27.4142C5.96086 27.7893 6.46957 28 7 28H12C12.5304 28 13.0391 27.7893 13.4142 27.4142C13.7893 27.0391 14 26.5304 14 26V6C14 5.46957 13.7893 4.96086 13.4142 4.58579C13.0391 4.21071 12.5304 4 12 4Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2271
+ }),
2272
+ "paw_print": Object.freeze({
2273
+ viewBox: "0 0 32 32",
2274
+ body: "<path d=\"M26.5 10C25.8078 10 25.1311 10.2053 24.5555 10.5899C23.9799 10.9744 23.5313 11.5211 23.2664 12.1606C23.0015 12.8002 22.9322 13.5039 23.0673 14.1828C23.2023 14.8618 23.5356 15.4854 24.0251 15.9749C24.5146 16.4644 25.1383 16.7977 25.8172 16.9327C26.4961 17.0678 27.1999 16.9985 27.8394 16.7336C28.4789 16.4687 29.0256 16.0201 29.4101 15.4445C29.7947 14.8689 30 14.1922 30 13.5C30 12.5717 29.6313 11.6815 28.9749 11.0251C28.3185 10.3688 27.4283 10 26.5 10ZM26.5 15C26.2033 15 25.9133 14.912 25.6666 14.7472C25.42 14.5824 25.2277 14.3481 25.1142 14.074C25.0007 13.7999 24.9709 13.4983 25.0288 13.2074C25.0867 12.9164 25.2296 12.6491 25.4393 12.4393C25.6491 12.2296 25.9164 12.0867 26.2074 12.0288C26.4983 11.9709 26.7999 12.0007 27.074 12.1142C27.3481 12.2277 27.5824 12.42 27.7472 12.6666C27.912 12.9133 28 13.2033 28 13.5C28 13.8978 27.842 14.2794 27.5607 14.5607C27.2794 14.842 26.8978 15 26.5 15ZM9 13.5C9 12.8078 8.79473 12.1311 8.41015 11.5555C8.02556 10.9799 7.47894 10.5313 6.83939 10.2664C6.19985 10.0015 5.49612 9.9322 4.81719 10.0673C4.13825 10.2023 3.51461 10.5356 3.02513 11.0251C2.53564 11.5146 2.2023 12.1383 2.06725 12.8172C1.9322 13.4961 2.00152 14.1999 2.26642 14.8394C2.53133 15.4789 2.97993 16.0256 3.55551 16.4101C4.13108 16.7947 4.80777 17 5.5 17C6.42826 17 7.3185 16.6313 7.97487 15.9749C8.63125 15.3185 9 14.4283 9 13.5ZM5.5 15C5.20333 15 4.91332 14.912 4.66665 14.7472C4.41997 14.5824 4.22771 14.3481 4.11418 14.074C4.00065 13.7999 3.97095 13.4983 4.02882 13.2074C4.0867 12.9164 4.22956 12.6491 4.43934 12.4393C4.64912 12.2296 4.91639 12.0867 5.20737 12.0288C5.49834 11.9709 5.79994 12.0007 6.07403 12.1142C6.34812 12.2277 6.58238 12.42 6.74721 12.6666C6.91203 12.9133 7 13.2033 7 13.5C7 13.8978 6.84197 14.2794 6.56066 14.5607C6.27936 14.842 5.89783 15 5.5 15ZM11.5 11C12.1922 11 12.8689 10.7947 13.4445 10.4101C14.0201 10.0256 14.4687 9.47893 14.7336 8.83939C14.9985 8.19985 15.0678 7.49612 14.9328 6.81719C14.7977 6.13825 14.4644 5.51461 13.9749 5.02513C13.4854 4.53564 12.8618 4.2023 12.1828 4.06725C11.5039 3.9322 10.8002 4.00152 10.1606 4.26642C9.52107 4.53133 8.97444 4.97993 8.58986 5.55551C8.20527 6.13108 8 6.80777 8 7.5C8 8.42826 8.36875 9.3185 9.02513 9.97487C9.68151 10.6313 10.5717 11 11.5 11ZM11.5 6C11.7967 6 12.0867 6.08798 12.3334 6.2528C12.58 6.41762 12.7723 6.65189 12.8858 6.92598C12.9994 7.20007 13.0291 7.50167 12.9712 7.79264C12.9133 8.08361 12.7704 8.35088 12.5607 8.56066C12.3509 8.77044 12.0836 8.9133 11.7926 8.97118C11.5017 9.02906 11.2001 8.99935 10.926 8.88582C10.6519 8.77229 10.4176 8.58003 10.2528 8.33336C10.088 8.08668 10 7.79667 10 7.5C10 7.10218 10.158 6.72065 10.4393 6.43934C10.7206 6.15804 11.1022 6 11.5 6ZM20.5 11C21.1922 11 21.8689 10.7947 22.4445 10.4101C23.0201 10.0256 23.4687 9.47893 23.7336 8.83939C23.9985 8.19985 24.0678 7.49612 23.9328 6.81719C23.7977 6.13825 23.4644 5.51461 22.9749 5.02513C22.4854 4.53564 21.8618 4.2023 21.1828 4.06725C20.5039 3.9322 19.8002 4.00152 19.1606 4.26642C18.5211 4.53133 17.9744 4.97993 17.5899 5.55551C17.2053 6.13108 17 6.80777 17 7.5C17 8.42826 17.3687 9.3185 18.0251 9.97487C18.6815 10.6313 19.5717 11 20.5 11ZM20.5 6C20.7967 6 21.0867 6.08798 21.3334 6.2528C21.58 6.41762 21.7723 6.65189 21.8858 6.92598C21.9994 7.20007 22.0291 7.50167 21.9712 7.79264C21.9133 8.08361 21.7704 8.35088 21.5607 8.56066C21.3509 8.77044 21.0836 8.9133 20.7926 8.97118C20.5017 9.02906 20.2001 8.99935 19.926 8.88582C19.6519 8.77229 19.4176 8.58003 19.2528 8.33336C19.088 8.08668 19 7.79667 19 7.5C19 7.10218 19.158 6.72065 19.4393 6.43934C19.7206 6.15804 20.1022 6 20.5 6ZM23.39 18.6075C22.8821 18.3273 22.4344 17.9497 22.0725 17.4962C21.7107 17.0428 21.4418 16.5225 21.2813 15.965C20.9488 14.8216 20.2541 13.8169 19.3018 13.102C18.3494 12.3872 17.1908 12.0007 16 12.0007C14.8092 12.0007 13.6506 12.3872 12.6982 13.102C11.7459 13.8169 11.0512 14.8216 10.7188 15.965C10.3976 17.0867 9.6446 18.0352 8.625 18.6025C7.6469 19.1318 6.87316 19.972 6.42616 20.9903C5.97916 22.0086 5.88441 23.1469 6.15691 24.2251C6.4294 25.3033 7.05358 26.2599 7.93072 26.9436C8.80786 27.6273 9.88789 27.999 11 28C11.6665 28.0019 12.3264 27.8688 12.94 27.6088C14.8963 26.8019 17.0924 26.8019 19.0488 27.6088C20.2337 28.1241 21.5721 28.1607 22.7835 27.7109C23.9948 27.2611 24.985 26.3598 25.5464 25.1959C26.1078 24.0321 26.1968 22.6961 25.7948 21.4681C25.3928 20.24 24.5309 19.2153 23.39 18.6088V18.6075ZM21 26C20.594 26.0003 20.1921 25.9183 19.8188 25.7588C17.3695 24.7471 14.6192 24.7471 12.17 25.7588C11.4583 26.0652 10.6555 26.0844 9.92996 25.8122C9.2044 25.54 8.61231 24.9977 8.27769 24.2987C7.94308 23.5998 7.89191 22.7984 8.1349 22.0626C8.3779 21.3268 8.8962 20.7135 9.58125 20.3513C10.3178 19.9445 10.9669 19.3965 11.4916 18.7387C12.0162 18.0809 12.406 17.3261 12.6388 16.5175C12.8501 15.7895 13.2921 15.1498 13.8982 14.6945C14.5044 14.2393 15.2419 13.9932 16 13.9932C16.7581 13.9932 17.4956 14.2393 18.1018 14.6945C18.7079 15.1498 19.1499 15.7895 19.3613 16.5175C19.5947 17.3276 19.9858 18.0837 20.5119 18.7424C21.0381 19.4011 21.689 19.9495 22.4275 20.3563C23.0173 20.6726 23.4844 21.177 23.7545 21.7894C24.0245 22.4017 24.0821 23.0868 23.918 23.7357C23.7539 24.3845 23.3775 24.9598 22.8488 25.3701C22.32 25.7804 21.6693 26.0021 21 26Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2275
+ }),
2276
+ "paw_print_fill": Object.freeze({
2277
+ viewBox: "0 0 32 32",
2278
+ body: "<path d=\"M30 13.5C30 14.1922 29.7947 14.8689 29.4101 15.4445C29.0256 16.0201 28.4789 16.4687 27.8394 16.7336C27.1999 16.9985 26.4961 17.0678 25.8172 16.9327C25.1383 16.7977 24.5146 16.4644 24.0251 15.9749C23.5356 15.4854 23.2023 14.8618 23.0673 14.1828C22.9322 13.5039 23.0015 12.8002 23.2664 12.1606C23.5313 11.5211 23.9799 10.9744 24.5555 10.5899C25.1311 10.2053 25.8078 10 26.5 10C27.4283 10 28.3185 10.3688 28.9749 11.0251C29.6313 11.6815 30 12.5717 30 13.5ZM9 13.5C9 12.8078 8.79473 12.1311 8.41015 11.5555C8.02556 10.9799 7.47894 10.5313 6.83939 10.2664C6.19985 10.0015 5.49612 9.9322 4.81719 10.0673C4.13825 10.2023 3.51461 10.5356 3.02513 11.0251C2.53564 11.5146 2.2023 12.1383 2.06725 12.8172C1.9322 13.4961 2.00152 14.1999 2.26642 14.8394C2.53133 15.4789 2.97993 16.0256 3.55551 16.4101C4.13108 16.7947 4.80777 17 5.5 17C6.42826 17 7.3185 16.6313 7.97487 15.9749C8.63125 15.3185 9 14.4283 9 13.5ZM11.5 11C12.1922 11 12.8689 10.7947 13.4445 10.4101C14.0201 10.0256 14.4687 9.47893 14.7336 8.83939C14.9985 8.19985 15.0678 7.49612 14.9328 6.81719C14.7977 6.13825 14.4644 5.51461 13.9749 5.02513C13.4854 4.53564 12.8618 4.2023 12.1828 4.06725C11.5039 3.9322 10.8002 4.00152 10.1606 4.26642C9.52107 4.53133 8.97444 4.97993 8.58986 5.55551C8.20527 6.13108 8 6.80777 8 7.5C8 8.42826 8.36875 9.3185 9.02513 9.97487C9.68151 10.6313 10.5717 11 11.5 11ZM20.5 11C21.1922 11 21.8689 10.7947 22.4445 10.4101C23.0201 10.0256 23.4687 9.47893 23.7336 8.83939C23.9985 8.19985 24.0678 7.49612 23.9328 6.81719C23.7977 6.13825 23.4644 5.51461 22.9749 5.02513C22.4854 4.53564 21.8618 4.2023 21.1828 4.06725C20.5039 3.9322 19.8002 4.00152 19.1606 4.26642C18.5211 4.53133 17.9744 4.97993 17.5899 5.55551C17.2053 6.13108 17 6.80777 17 7.5C17 8.42826 17.3687 9.3185 18.0251 9.97487C18.6815 10.6313 19.5717 11 20.5 11ZM23.39 18.6075C22.8821 18.3273 22.4344 17.9497 22.0725 17.4962C21.7107 17.0428 21.4418 16.5225 21.2813 15.965C20.9488 14.8216 20.2541 13.8169 19.3018 13.102C18.3494 12.3872 17.1908 12.0007 16 12.0007C14.8092 12.0007 13.6506 12.3872 12.6982 13.102C11.7459 13.8169 11.0512 14.8216 10.7188 15.965C10.3976 17.0867 9.6446 18.0352 8.625 18.6025C7.6469 19.1318 6.87316 19.972 6.42616 20.9903C5.97916 22.0086 5.88441 23.1469 6.15691 24.2251C6.4294 25.3033 7.05358 26.2599 7.93072 26.9436C8.80786 27.6273 9.88789 27.999 11 28C11.6665 28.0019 12.3264 27.8688 12.94 27.6088C14.8963 26.8019 17.0924 26.8019 19.0488 27.6088C20.2337 28.1241 21.5721 28.1607 22.7835 27.7109C23.9948 27.2611 24.985 26.3598 25.5464 25.1959C26.1078 24.0321 26.1968 22.6961 25.7948 21.4681C25.3928 20.24 24.5309 19.2153 23.39 18.6088V18.6075Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2279
+ }),
2280
+ "play_fill": Object.freeze({
2281
+ viewBox: "0 0 32 32",
2282
+ body: "<path d=\"M30 16C30.0008 16.3395 29.9138 16.6735 29.7473 16.9694C29.5808 17.2654 29.3406 17.5132 29.05 17.6888L11.04 28.7063C10.7364 28.8922 10.3886 28.9937 10.0326 29.0003C9.67661 29.0069 9.32532 28.9183 9.015 28.7438C8.70764 28.5719 8.4516 28.3213 8.2732 28.0177C8.09481 27.7141 8.00051 27.3684 8 27.0163V4.98376C8.00051 4.63162 8.09481 4.28597 8.2732 3.98235C8.4516 3.67874 8.70764 3.42812 9.015 3.25626C9.32532 3.0817 9.67661 2.99314 10.0326 2.99973C10.3886 3.00632 10.7364 3.10783 11.04 3.29376L29.05 14.3113C29.3406 14.4869 29.5808 14.7347 29.7473 15.0306C29.9138 15.3265 30.0008 15.6605 30 16Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2283
+ }),
2284
+ "plus": Object.freeze({
2285
+ viewBox: "0 0 32 32",
2286
+ body: "<path d=\"M28 16C28 16.2652 27.8946 16.5196 27.7071 16.7071C27.5196 16.8946 27.2652 17 27 17H17V27C17 27.2652 16.8946 27.5196 16.7071 27.7071C16.5196 27.8946 16.2652 28 16 28C15.7348 28 15.4804 27.8946 15.2929 27.7071C15.1054 27.5196 15 27.2652 15 27V17H5C4.73478 17 4.48043 16.8946 4.29289 16.7071C4.10536 16.5196 4 16.2652 4 16C4 15.7348 4.10536 15.4804 4.29289 15.2929C4.48043 15.1054 4.73478 15 5 15H15V5C15 4.73478 15.1054 4.48043 15.2929 4.29289C15.4804 4.10536 15.7348 4 16 4C16.2652 4 16.5196 4.10536 16.7071 4.29289C16.8946 4.48043 17 4.73478 17 5V15H27C27.2652 15 27.5196 15.1054 27.7071 15.2929C27.8946 15.4804 28 15.7348 28 16Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2287
+ }),
2288
+ "settings": Object.freeze({
2289
+ viewBox: "0 0 32 32",
2290
+ body: "<path d=\"M16.0001 10C14.8134 10 13.6533 10.3519 12.6666 11.0112C11.6799 11.6705 10.9109 12.6075 10.4568 13.7039C10.0027 14.8003 9.88383 16.0067 10.1153 17.1705C10.3469 18.3344 10.9183 19.4035 11.7574 20.2426C12.5965 21.0818 13.6656 21.6532 14.8295 21.8847C15.9934 22.1162 17.1998 21.9974 18.2962 21.5433C19.3925 21.0891 20.3296 20.3201 20.9889 19.3334C21.6482 18.3467 22.0001 17.1867 22.0001 16C21.9984 14.4092 21.3657 12.884 20.2409 11.7592C19.116 10.6343 17.5908 10.0017 16.0001 10ZM16.0001 20C15.2089 20 14.4356 19.7654 13.7778 19.3259C13.12 18.8863 12.6073 18.2616 12.3045 17.5307C12.0018 16.7998 11.9226 15.9956 12.0769 15.2196C12.2313 14.4437 12.6122 13.731 13.1716 13.1716C13.731 12.6122 14.4438 12.2312 15.2197 12.0769C15.9956 11.9225 16.7999 12.0017 17.5308 12.3045C18.2617 12.6072 18.8864 13.1199 19.3259 13.7777C19.7655 14.4355 20.0001 15.2089 20.0001 16C20.0001 17.0609 19.5786 18.0783 18.8285 18.8284C18.0783 19.5786 17.0609 20 16.0001 20ZM27.0001 16.27C27.0051 16.09 27.0051 15.91 27.0001 15.73L28.8651 13.4C28.9628 13.2777 29.0305 13.1341 29.0627 12.9808C29.0948 12.8275 29.0905 12.6688 29.0501 12.5175C28.7443 11.3682 28.287 10.2648 27.6901 9.23625C27.6119 9.10164 27.5034 8.98714 27.3732 8.90186C27.243 8.81658 27.0947 8.76286 26.9401 8.745L23.9751 8.415C23.8517 8.285 23.7267 8.16 23.6001 8.04L23.2501 5.0675C23.2321 4.91276 23.1782 4.76437 23.0926 4.63416C23.0071 4.50395 22.8924 4.39551 22.7576 4.3175C21.7286 3.72168 20.6253 3.26479 19.4763 2.95875C19.3249 2.91849 19.1662 2.91438 19.0129 2.94673C18.8596 2.97908 18.716 3.04699 18.5938 3.145L16.2701 5C16.0901 5 15.9101 5 15.7301 5L13.4001 3.13875C13.2777 3.04096 13.1341 2.97327 12.9808 2.94114C12.8276 2.909 12.6689 2.91332 12.5176 2.95375C11.3685 3.26003 10.2651 3.71735 9.23631 4.31375C9.1017 4.3919 8.9872 4.5004 8.90192 4.63061C8.81664 4.76081 8.76292 4.90913 8.74506 5.06375L8.41506 8.03375C8.28506 8.15791 8.16006 8.28291 8.04006 8.40875L5.06756 8.75C4.91282 8.768 4.76443 8.8219 4.63422 8.90741C4.50401 8.99291 4.39557 9.10766 4.31756 9.2425C3.72174 10.2715 3.26485 11.3748 2.95881 12.5237C2.91855 12.6752 2.91444 12.8339 2.94679 12.9872C2.97914 13.1405 3.04705 13.284 3.14506 13.4062L5.00006 15.73C5.00006 15.91 5.00006 16.09 5.00006 16.27L3.13881 18.6C3.04102 18.7223 2.97333 18.8659 2.9412 19.0192C2.90906 19.1725 2.91338 19.3312 2.95381 19.4825C3.25954 20.6317 3.71689 21.7352 4.31381 22.7637C4.39196 22.8983 4.50046 23.0128 4.63067 23.0981C4.76087 23.1834 4.90919 23.2371 5.06381 23.255L8.02881 23.585C8.15297 23.715 8.27797 23.84 8.40381 23.96L8.75006 26.9325C8.76806 27.0872 8.82196 27.2356 8.90747 27.3658C8.99298 27.496 9.10772 27.6045 9.24256 27.6825C10.2715 28.2783 11.3749 28.7352 12.5238 29.0412C12.6752 29.0815 12.834 29.0856 12.9872 29.0533C13.1405 29.0209 13.2841 28.953 13.4063 28.855L15.7301 27C15.9101 27.005 16.0901 27.005 16.2701 27L18.6001 28.865C18.7224 28.9628 18.866 29.0305 19.0193 29.0626C19.1726 29.0947 19.3312 29.0904 19.4826 29.05C20.6318 28.7443 21.7352 28.2869 22.7638 27.69C22.8984 27.6118 23.0129 27.5033 23.0982 27.3731C23.1835 27.2429 23.2372 27.0946 23.2551 26.94L23.5851 23.975C23.7151 23.8517 23.8401 23.7267 23.9601 23.6L26.9326 23.25C27.0873 23.232 27.2357 23.1781 27.3659 23.0926C27.4961 23.0071 27.6045 22.8923 27.6826 22.7575C28.2784 21.7285 28.7353 20.6252 29.0413 19.4762C29.0816 19.3248 29.0857 19.1661 29.0533 19.0128C29.021 18.8595 28.9531 18.716 28.8551 18.5937L27.0001 16.27ZM24.9876 15.4575C25.0088 15.8189 25.0088 16.1811 24.9876 16.5425C24.9727 16.7899 25.0502 17.034 25.2051 17.2275L26.9788 19.4437C26.7753 20.0906 26.5147 20.718 26.2001 21.3187L23.3751 21.6387C23.129 21.6661 22.9019 21.7836 22.7376 21.9687C22.4969 22.2394 22.2407 22.4956 21.9701 22.7362C21.7849 22.9006 21.6674 23.1277 21.6401 23.3737L21.3263 26.1962C20.7257 26.511 20.0982 26.7716 19.4513 26.975L17.2338 25.2012C17.0564 25.0595 16.8359 24.9823 16.6088 24.9825H16.5488C16.1875 25.0037 15.8252 25.0037 15.4638 24.9825C15.2164 24.9676 14.9723 25.0451 14.7788 25.2L12.5563 26.975C11.9095 26.7715 11.282 26.5109 10.6813 26.1962L10.3613 23.375C10.334 23.129 10.2164 22.9018 10.0313 22.7375C9.76069 22.4969 9.50442 22.2406 9.26381 21.97C9.09947 21.7849 8.87233 21.6673 8.62631 21.64L5.80381 21.325C5.48905 20.7244 5.22843 20.0969 5.02506 19.45L6.79881 17.2325C6.95369 17.039 7.0312 16.7949 7.01631 16.5475C6.99506 16.1861 6.99506 15.8239 7.01631 15.4625C7.0312 15.2151 6.95369 14.971 6.79881 14.7775L5.02506 12.5562C5.22859 11.9094 5.4892 11.2819 5.80381 10.6812L8.62506 10.3612C8.87108 10.3339 9.09822 10.2164 9.26256 10.0312C9.50317 9.76063 9.75944 9.50436 10.0301 9.26375C10.2159 9.09931 10.334 8.87164 10.3613 8.625L10.6751 5.80375C11.2757 5.48899 11.9032 5.22837 12.5501 5.025L14.7676 6.79875C14.961 6.95363 15.2052 7.03114 15.4526 7.01625C15.8139 6.995 16.1762 6.995 16.5376 7.01625C16.785 7.03114 17.0291 6.95363 17.2226 6.79875L19.4438 5.025C20.0906 5.22853 20.7181 5.48914 21.3188 5.80375L21.6388 8.625C21.6661 8.87101 21.7837 9.09816 21.9688 9.2625C22.2394 9.50311 22.4957 9.75938 22.7363 10.03C22.9006 10.2151 23.1278 10.3327 23.3738 10.36L26.1963 10.6737C26.5111 11.2744 26.7717 11.9019 26.9751 12.5487L25.2013 14.7662C25.0449 14.9614 24.9673 15.208 24.9838 15.4575H24.9876Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2291
+ }),
2292
+ "shield": Object.freeze({
2293
+ viewBox: "0 0 32 32",
2294
+ body: "<path d=\"M26 5H6C5.46957 5 4.96086 5.21071 4.58579 5.58579C4.21071 5.96086 4 6.46957 4 7V14C4 20.59 7.19 24.5837 9.86625 26.7738C12.7487 29.1313 15.6163 29.9325 15.7413 29.965C15.9131 30.0118 16.0944 30.0118 16.2663 29.965C16.3913 29.9325 19.255 29.1313 22.1413 26.7738C24.81 24.5837 28 20.59 28 14V7C28 6.46957 27.7893 5.96086 27.4142 5.58579C27.0391 5.21071 26.5304 5 26 5ZM26 14C26 18.6337 24.2925 22.395 20.925 25.1775C19.4591 26.3846 17.7919 27.324 16 27.9525C14.2315 27.335 12.5849 26.4123 11.135 25.2262C7.7275 22.4387 6 18.6625 6 14V7H26V14Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2295
+ }),
2296
+ "shuffle": Object.freeze({
2297
+ viewBox: "0 0 32 32",
2298
+ body: "<path d=\"M29.7075 22.2924C29.8005 22.3853 29.8742 22.4956 29.9246 22.617C29.9749 22.7384 30.0008 22.8685 30.0008 22.9999C30.0008 23.1314 29.9749 23.2615 29.9246 23.3829C29.8742 23.5043 29.8005 23.6146 29.7075 23.7074L26.7075 26.7074C26.5199 26.8951 26.2654 27.0005 26 27.0005C25.7346 27.0005 25.4801 26.8951 25.2925 26.7074C25.1049 26.5198 24.9994 26.2653 24.9994 25.9999C24.9994 25.7346 25.1049 25.4801 25.2925 25.2924L26.5863 23.9999H25.1175C23.6851 23.9988 22.2737 23.6563 21.0001 23.0009C19.7264 22.3455 18.6273 21.396 17.7938 20.2312L12.5787 12.9312C11.9304 12.0253 11.0755 11.2868 10.0849 10.7771C9.09433 10.2673 7.99655 10.0009 6.8825 9.99995H4C3.73478 9.99995 3.48043 9.89459 3.29289 9.70705C3.10536 9.51952 3 9.26516 3 8.99995C3 8.73473 3.10536 8.48038 3.29289 8.29284C3.48043 8.1053 3.73478 7.99995 4 7.99995H6.8825C8.31486 8.00114 9.72632 8.34362 10.9999 8.99901C12.2736 9.65441 13.3727 10.6039 14.2063 11.7687L19.4212 19.0687C20.0696 19.9746 20.9245 20.7131 21.9151 21.2228C22.9057 21.7325 24.0035 21.999 25.1175 21.9999H26.5863L25.2925 20.7074C25.1049 20.5198 24.9994 20.2653 24.9994 19.9999C24.9994 19.7346 25.1049 19.4801 25.2925 19.2924C25.4801 19.1048 25.7346 18.9994 26 18.9994C26.2654 18.9994 26.5199 19.1048 26.7075 19.2924L29.7075 22.2924ZM17.875 13.3749C17.9819 13.4513 18.1027 13.5058 18.2307 13.5354C18.3586 13.5651 18.4911 13.5692 18.6207 13.5476C18.7502 13.526 18.8742 13.4791 18.9856 13.4096C19.097 13.3401 19.1937 13.2493 19.27 13.1424L19.42 12.9337C20.0682 12.0271 20.9232 11.2881 21.914 10.7779C22.9049 10.2677 24.003 10.001 25.1175 9.99995H26.5863L25.2925 11.2924C25.1049 11.4801 24.9994 11.7346 24.9994 11.9999C24.9994 12.2653 25.1049 12.5198 25.2925 12.7074C25.4801 12.8951 25.7346 13.0005 26 13.0005C26.2654 13.0005 26.5199 12.8951 26.7075 12.7074L29.7075 9.70745C29.8005 9.61457 29.8742 9.50428 29.9246 9.38289C29.9749 9.26149 30.0008 9.13136 30.0008 8.99995C30.0008 8.86853 29.9749 8.7384 29.9246 8.61701C29.8742 8.49561 29.8005 8.38532 29.7075 8.29245L26.7075 5.29245C26.5199 5.10481 26.2654 4.99939 26 4.99939C25.7346 4.99939 25.4801 5.1048 25.2925 5.29245C25.1049 5.48009 24.9994 5.73458 24.9994 5.99995C24.9994 6.26531 25.1049 6.5198 25.2925 6.70745L26.5863 7.99995H25.1175C23.6851 8.00114 22.2737 8.34362 21.0001 8.99901C19.7264 9.65441 18.6273 10.6039 17.7938 11.7687L17.6437 11.9774C17.567 12.0843 17.512 12.2053 17.4821 12.3334C17.4521 12.4616 17.4478 12.5944 17.4693 12.7242C17.4908 12.854 17.5377 12.9783 17.6073 13.09C17.6769 13.2017 17.7679 13.2985 17.875 13.3749ZM14.125 18.6249C14.0181 18.5486 13.8973 18.4941 13.7693 18.4644C13.6414 18.4348 13.5089 18.4307 13.3793 18.4523C13.2498 18.4739 13.1258 18.5208 13.0144 18.5903C12.903 18.6598 12.8063 18.7506 12.73 18.8574L12.58 19.0662C11.9318 19.9728 11.0768 20.7118 10.086 21.222C9.09514 21.7322 7.99698 21.9989 6.8825 21.9999H4C3.73478 21.9999 3.48043 22.1053 3.29289 22.2928C3.10536 22.4804 3 22.7347 3 22.9999C3 23.2652 3.10536 23.5195 3.29289 23.7071C3.48043 23.8946 3.73478 23.9999 4 23.9999H6.8825C8.31486 23.9988 9.72632 23.6563 10.9999 23.0009C12.2736 22.3455 13.3727 21.396 14.2063 20.2312L14.3562 20.0224C14.433 19.9156 14.488 19.7946 14.5179 19.6665C14.5479 19.5383 14.5522 19.4055 14.5307 19.2757C14.5092 19.1459 14.4623 19.0216 14.3927 18.9099C14.3231 18.7982 14.2321 18.7014 14.125 18.6249Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2299
+ }),
2300
+ "skip_back_fill": Object.freeze({
2301
+ viewBox: "0 0 32 32",
2302
+ body: "<path d=\"M26 5.985V26.015C25.9963 26.3696 25.8983 26.7168 25.7162 27.0211C25.5341 27.3254 25.2743 27.5757 24.9636 27.7466C24.6528 27.9174 24.3023 28.0025 23.9478 27.9932C23.5933 27.984 23.2476 27.8806 22.9463 27.6938L8 18.3463V27C8 27.2652 7.89464 27.5196 7.70711 27.7071C7.51957 27.8946 7.26522 28 7 28C6.73478 28 6.48043 27.8946 6.29289 27.7071C6.10536 27.5196 6 27.2652 6 27V5C6 4.73478 6.10536 4.48043 6.29289 4.29289C6.48043 4.10536 6.73478 4 7 4C7.26522 4 7.51957 4.10536 7.70711 4.29289C7.89464 4.48043 8 4.73478 8 5V13.6538L22.9463 4.30625C23.2472 4.1173 23.5933 4.01224 23.9485 4.00194C24.3038 3.99165 24.6553 4.0765 24.9667 4.2477C25.2782 4.41891 25.5382 4.67025 25.7199 4.9757C25.9015 5.28115 25.9982 5.62961 26 5.985Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2303
+ }),
2304
+ "skip_forward_fill": Object.freeze({
2305
+ viewBox: "0 0 32 32",
2306
+ body: "<path d=\"M26 5V27C26 27.2652 25.8946 27.5196 25.7071 27.7071C25.5196 27.8946 25.2652 28 25 28C24.7348 28 24.4804 27.8946 24.2929 27.7071C24.1054 27.5196 24 27.2652 24 27V18.3463L9.05375 27.6938C8.75275 27.8827 8.40672 27.9878 8.05147 27.9981C7.69623 28.0084 7.34469 27.9235 7.03326 27.7523C6.72182 27.5811 6.46181 27.3298 6.28014 27.0243C6.09848 26.7188 6.00176 26.3704 6 26.015V5.985C6.00176 5.62961 6.09848 5.28115 6.28014 4.9757C6.46181 4.67025 6.72182 4.41891 7.03326 4.2477C7.34469 4.0765 7.69623 3.99165 8.05147 4.00194C8.40672 4.01224 8.75275 4.1173 9.05375 4.30625L24 13.6538V5C24 4.73478 24.1054 4.48043 24.2929 4.29289C24.4804 4.10536 24.7348 4 25 4C25.2652 4 25.5196 4.10536 25.7071 4.29289C25.8946 4.48043 26 4.73478 26 5Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2307
+ }),
2308
+ "sparkle": Object.freeze({
2309
+ viewBox: "0 0 32 32",
2310
+ body: "<path d=\"M24.6977 16.1325L18.2502 13.75L15.8752 7.2975C15.7346 6.91541 15.4801 6.58566 15.1461 6.35273C14.8122 6.11981 14.4149 5.99492 14.0077 5.99492C13.6005 5.99492 13.2032 6.11981 12.8692 6.35273C12.5353 6.58566 12.2808 6.91541 12.1402 7.2975L9.7502 13.75L3.2977 16.125C2.91561 16.2656 2.58586 16.5201 2.35293 16.854C2.12001 17.188 1.99512 17.5853 1.99512 17.9925C1.99512 18.3997 2.12001 18.797 2.35293 19.131C2.58586 19.4649 2.91561 19.7194 3.2977 19.86L9.7502 22.25L12.1252 28.7025C12.2658 29.0846 12.5203 29.4143 12.8542 29.6473C13.1882 29.8802 13.5855 30.0051 13.9927 30.0051C14.3999 30.0051 14.7972 29.8802 15.1311 29.6473C15.4651 29.4143 15.7196 29.0846 15.8602 28.7025L18.2502 22.25L24.7027 19.875C25.0848 19.7344 25.4145 19.4799 25.6475 19.146C25.8804 18.812 26.0053 18.4147 26.0053 18.0075C26.0053 17.6003 25.8804 17.203 25.6475 16.869C25.4145 16.5351 25.0848 16.2806 24.7027 16.14L24.6977 16.1325ZM17.1252 20.5275C16.9895 20.5775 16.8662 20.6564 16.7639 20.7587C16.6616 20.861 16.5827 20.9843 16.5327 21.12L14.0002 27.9813L11.4727 21.125C11.4228 20.9878 11.3434 20.8633 11.2402 20.76C11.1369 20.6568 11.0124 20.5774 10.8752 20.5275L4.01895 18L10.8752 15.4725C11.0124 15.4226 11.1369 15.3432 11.2402 15.24C11.3434 15.1367 11.4228 15.0122 11.4727 14.875L14.0002 8.01875L16.5277 14.875C16.5777 15.0107 16.6566 15.134 16.7589 15.2363C16.8612 15.3386 16.9845 15.4175 17.1202 15.4675L23.9814 18L17.1252 20.5275ZM18.0002 5C18.0002 4.73478 18.1056 4.48043 18.2931 4.29289C18.4806 4.10536 18.735 4 19.0002 4H21.0002V2C21.0002 1.73478 21.1056 1.48043 21.2931 1.29289C21.4806 1.10536 21.735 1 22.0002 1C22.2654 1 22.5198 1.10536 22.7073 1.29289C22.8948 1.48043 23.0002 1.73478 23.0002 2V4H25.0002C25.2654 4 25.5198 4.10536 25.7073 4.29289C25.8948 4.48043 26.0002 4.73478 26.0002 5C26.0002 5.26522 25.8948 5.51957 25.7073 5.70711C25.5198 5.89464 25.2654 6 25.0002 6H23.0002V8C23.0002 8.26522 22.8948 8.51957 22.7073 8.70711C22.5198 8.89464 22.2654 9 22.0002 9C21.735 9 21.4806 8.89464 21.2931 8.70711C21.1056 8.51957 21.0002 8.26522 21.0002 8V6H19.0002C18.735 6 18.4806 5.89464 18.2931 5.70711C18.1056 5.51957 18.0002 5.26522 18.0002 5ZM31.0002 11C31.0002 11.2652 30.8948 11.5196 30.7073 11.7071C30.5198 11.8946 30.2654 12 30.0002 12H29.0002V13C29.0002 13.2652 28.8948 13.5196 28.7073 13.7071C28.5198 13.8946 28.2654 14 28.0002 14C27.735 14 27.4806 13.8946 27.2931 13.7071C27.1056 13.5196 27.0002 13.2652 27.0002 13V12H26.0002C25.735 12 25.4806 11.8946 25.2931 11.7071C25.1056 11.5196 25.0002 11.2652 25.0002 11C25.0002 10.7348 25.1056 10.4804 25.2931 10.2929C25.4806 10.1054 25.735 10 26.0002 10H27.0002V9C27.0002 8.73478 27.1056 8.48043 27.2931 8.29289C27.4806 8.10536 27.735 8 28.0002 8C28.2654 8 28.5198 8.10536 28.7073 8.29289C28.8948 8.48043 29.0002 8.73478 29.0002 9V10H30.0002C30.2654 10 30.5198 10.1054 30.7073 10.2929C30.8948 10.4804 31.0002 10.7348 31.0002 11Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2311
+ }),
2312
+ "sun": Object.freeze({
2313
+ viewBox: "0 0 32 32",
2314
+ body: "<path d=\"M15 5V2C15 1.73478 15.1054 1.48043 15.2929 1.29289C15.4804 1.10536 15.7348 1 16 1C16.2652 1 16.5196 1.10536 16.7071 1.29289C16.8946 1.48043 17 1.73478 17 2V5C17 5.26522 16.8946 5.51957 16.7071 5.70711C16.5196 5.89464 16.2652 6 16 6C15.7348 6 15.4804 5.89464 15.2929 5.70711C15.1054 5.51957 15 5.26522 15 5ZM24 16C24 17.5823 23.5308 19.129 22.6518 20.4446C21.7727 21.7602 20.5233 22.7855 19.0615 23.391C17.5997 23.9965 15.9911 24.155 14.4393 23.8463C12.8874 23.5376 11.462 22.7757 10.3431 21.6569C9.22433 20.538 8.4624 19.1126 8.15372 17.5607C7.84504 16.0089 8.00346 14.4003 8.60896 12.9385C9.21447 11.4767 10.2398 10.2273 11.5554 9.34824C12.871 8.46919 14.4177 8 16 8C18.121 8.00232 20.1545 8.84591 21.6543 10.3457C23.1541 11.8455 23.9977 13.879 24 16ZM22 16C22 14.8133 21.6481 13.6533 20.9888 12.6666C20.3295 11.6799 19.3925 10.9108 18.2961 10.4567C17.1997 10.0026 15.9933 9.88378 14.8295 10.1153C13.6656 10.3468 12.5965 10.9182 11.7574 11.7574C10.9182 12.5965 10.3468 13.6656 10.1153 14.8295C9.88378 15.9933 10.0026 17.1997 10.4567 18.2961C10.9108 19.3925 11.6799 20.3295 12.6666 20.9888C13.6533 21.6481 14.8133 22 16 22C17.5908 21.9983 19.116 21.3657 20.2408 20.2408C21.3657 19.116 21.9983 17.5908 22 16ZM7.2925 8.7075C7.48014 8.89514 7.73464 9.00056 8 9.00056C8.26536 9.00056 8.51986 8.89514 8.7075 8.7075C8.89514 8.51986 9.00056 8.26536 9.00056 8C9.00056 7.73464 8.89514 7.48014 8.7075 7.2925L6.7075 5.2925C6.51986 5.10486 6.26536 4.99944 6 4.99944C5.73464 4.99944 5.48014 5.10486 5.2925 5.2925C5.10486 5.48014 4.99944 5.73464 4.99944 6C4.99944 6.26536 5.10486 6.51986 5.2925 6.7075L7.2925 8.7075ZM7.2925 23.2925L5.2925 25.2925C5.10486 25.4801 4.99944 25.7346 4.99944 26C4.99944 26.2654 5.10486 26.5199 5.2925 26.7075C5.48014 26.8951 5.73464 27.0006 6 27.0006C6.26536 27.0006 6.51986 26.8951 6.7075 26.7075L8.7075 24.7075C8.80041 24.6146 8.87411 24.5043 8.92439 24.3829C8.97468 24.2615 9.00056 24.1314 9.00056 24C9.00056 23.8686 8.97468 23.7385 8.92439 23.6171C8.87411 23.4957 8.80041 23.3854 8.7075 23.2925C8.61459 23.1996 8.50429 23.1259 8.3829 23.0756C8.2615 23.0253 8.13139 22.9994 8 22.9994C7.86861 22.9994 7.7385 23.0253 7.6171 23.0756C7.49571 23.1259 7.38541 23.1996 7.2925 23.2925ZM24 9C24.1314 9.0001 24.2615 8.97432 24.3829 8.92414C24.5042 8.87395 24.6146 8.80033 24.7075 8.7075L26.7075 6.7075C26.8951 6.51986 27.0006 6.26536 27.0006 6C27.0006 5.73464 26.8951 5.48014 26.7075 5.2925C26.5199 5.10486 26.2654 4.99944 26 4.99944C25.7346 4.99944 25.4801 5.10486 25.2925 5.2925L23.2925 7.2925C23.1525 7.43236 23.0571 7.61061 23.0185 7.80469C22.9798 7.99878 22.9996 8.19997 23.0754 8.38279C23.1511 8.56561 23.2794 8.72185 23.444 8.83172C23.6086 8.94159 23.8021 9.00016 24 9ZM24.7075 23.2925C24.5199 23.1049 24.2654 22.9994 24 22.9994C23.7346 22.9994 23.4801 23.1049 23.2925 23.2925C23.1049 23.4801 22.9994 23.7346 22.9994 24C22.9994 24.2654 23.1049 24.5199 23.2925 24.7075L25.2925 26.7075C25.3854 26.8004 25.4957 26.8741 25.6171 26.9244C25.7385 26.9747 25.8686 27.0006 26 27.0006C26.1314 27.0006 26.2615 26.9747 26.3829 26.9244C26.5043 26.8741 26.6146 26.8004 26.7075 26.7075C26.8004 26.6146 26.8741 26.5043 26.9244 26.3829C26.9747 26.2615 27.0006 26.1314 27.0006 26C27.0006 25.8686 26.9747 25.7385 26.9244 25.6171C26.8741 25.4957 26.8004 25.3854 26.7075 25.2925L24.7075 23.2925ZM6 16C6 15.7348 5.89464 15.4804 5.70711 15.2929C5.51957 15.1054 5.26522 15 5 15H2C1.73478 15 1.48043 15.1054 1.29289 15.2929C1.10536 15.4804 1 15.7348 1 16C1 16.2652 1.10536 16.5196 1.29289 16.7071C1.48043 16.8946 1.73478 17 2 17H5C5.26522 17 5.51957 16.8946 5.70711 16.7071C5.89464 16.5196 6 16.2652 6 16ZM16 26C15.7348 26 15.4804 26.1054 15.2929 26.2929C15.1054 26.4804 15 26.7348 15 27V30C15 30.2652 15.1054 30.5196 15.2929 30.7071C15.4804 30.8946 15.7348 31 16 31C16.2652 31 16.5196 30.8946 16.7071 30.7071C16.8946 30.5196 17 30.2652 17 30V27C17 26.7348 16.8946 26.4804 16.7071 26.2929C16.5196 26.1054 16.2652 26 16 26ZM30 15H27C26.7348 15 26.4804 15.1054 26.2929 15.2929C26.1054 15.4804 26 15.7348 26 16C26 16.2652 26.1054 16.5196 26.2929 16.7071C26.4804 16.8946 26.7348 17 27 17H30C30.2652 17 30.5196 16.8946 30.7071 16.7071C30.8946 16.5196 31 16.2652 31 16C31 15.7348 30.8946 15.4804 30.7071 15.2929C30.5196 15.1054 30.2652 15 30 15Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2315
+ }),
2316
+ "sun_horizon": Object.freeze({
2317
+ viewBox: "0 0 32 32",
2318
+ body: "<path d=\"M30 18.9999H24.9438C24.9807 18.6678 24.9994 18.334 25 17.9999C25 15.613 24.0518 13.3238 22.364 11.6359C20.6761 9.94812 18.3869 8.99991 16 8.99991C13.6131 8.99991 11.3239 9.94812 9.63604 11.6359C7.94821 13.3238 7 15.613 7 17.9999C7.00056 18.334 7.01934 18.6678 7.05625 18.9999H2C1.73478 18.9999 1.48043 19.1053 1.29289 19.2928C1.10536 19.4803 1 19.7347 1 19.9999C1 20.2651 1.10536 20.5195 1.29289 20.707C1.48043 20.8946 1.73478 20.9999 2 20.9999H30C30.2652 20.9999 30.5196 20.8946 30.7071 20.707C30.8946 20.5195 31 20.2651 31 19.9999C31 19.7347 30.8946 19.4803 30.7071 19.2928C30.5196 19.1053 30.2652 18.9999 30 18.9999ZM9 17.9999C8.99816 17.0373 9.19489 16.0846 9.57788 15.2015C9.96087 14.3183 10.5219 13.5237 11.2259 12.8672C11.9299 12.2107 12.7618 11.7064 13.6695 11.3859C14.5772 11.0654 15.5412 10.9356 16.5013 11.0045C17.4615 11.0735 18.3971 11.3397 19.2497 11.7866C20.1023 12.2335 20.8536 12.8514 21.4565 13.6018C22.0595 14.3522 22.5012 15.2188 22.7541 16.1476C23.007 17.0764 23.0656 18.0474 22.9263 18.9999H9.07375C9.02535 18.6688 9.0007 18.3346 9 17.9999ZM27 24.9999C27 25.2651 26.8946 25.5195 26.7071 25.707C26.5196 25.8946 26.2652 25.9999 26 25.9999H6C5.73478 25.9999 5.48043 25.8946 5.29289 25.707C5.10536 25.5195 5 25.2651 5 24.9999C5 24.7347 5.10536 24.4803 5.29289 24.2928C5.48043 24.1053 5.73478 23.9999 6 23.9999H26C26.2652 23.9999 26.5196 24.1053 26.7071 24.2928C26.8946 24.4803 27 24.7347 27 24.9999ZM9.105 5.44741C8.98632 5.21004 8.96679 4.93525 9.05071 4.68348C9.13463 4.43171 9.31513 4.22359 9.5525 4.10491C9.78987 3.98622 10.0647 3.9667 10.3164 4.05062C10.5682 4.13454 10.7763 4.31504 10.895 4.55241L11.895 6.55241C11.9538 6.66994 11.9888 6.7979 11.9981 6.92897C12.0074 7.06005 11.9908 7.19168 11.9493 7.31634C11.9077 7.441 11.842 7.55626 11.7559 7.65553C11.6698 7.7548 11.565 7.83614 11.4475 7.89491C11.33 7.95368 11.202 7.98872 11.0709 7.99803C10.9399 8.00735 10.8082 7.99075 10.6836 7.9492C10.5589 7.90765 10.4436 7.84194 10.3444 7.75585C10.2451 7.66975 10.1638 7.56494 10.105 7.44741L9.105 5.44741ZM2.105 11.5524C2.16381 11.4349 2.2452 11.3302 2.34451 11.2442C2.44382 11.1581 2.55911 11.0925 2.68378 11.0511C2.80846 11.0097 2.94008 10.9932 3.07112 11.0026C3.20216 11.0121 3.33006 11.0473 3.4475 11.1062L5.4475 12.1062C5.6847 12.2248 5.86504 12.4329 5.94885 12.6845C6.03265 12.9362 6.01306 13.2108 5.89437 13.448C5.77569 13.6852 5.56764 13.8656 5.31599 13.9494C5.06434 14.0332 4.7897 14.0136 4.5525 13.8949L2.5525 12.8949C2.43491 12.8362 2.33004 12.7549 2.2439 12.6556C2.15775 12.5564 2.09202 12.4411 2.05046 12.3164C2.0089 12.1917 1.99232 12.0601 2.00168 11.929C2.01104 11.7979 2.04615 11.6699 2.105 11.5524ZM26.105 13.4474C25.9865 13.2102 25.9671 12.9356 26.051 12.6841C26.135 12.4326 26.3153 12.2247 26.5525 12.1062L28.5525 11.1062C28.67 11.0474 28.7978 11.0123 28.9288 11.003C29.0598 10.9936 29.1914 11.0102 29.316 11.0517C29.4406 11.0932 29.5558 11.1588 29.655 11.2448C29.7543 11.3309 29.8356 11.4356 29.8944 11.553C29.9531 11.6705 29.9882 11.7984 29.9975 11.9294C30.0069 12.0604 29.9903 12.1919 29.9488 12.3165C29.9074 12.4411 29.8417 12.5563 29.7557 12.6556C29.6697 12.7548 29.565 12.8361 29.4475 12.8949L27.4475 13.8949C27.33 13.9538 27.202 13.9889 27.0709 13.9982C26.9398 14.0076 26.8082 13.991 26.6835 13.9495C26.5588 13.9079 26.4435 13.8422 26.3443 13.756C26.245 13.6699 26.1637 13.565 26.105 13.4474ZM20.105 6.55241L21.105 4.55241C21.2237 4.31504 21.4318 4.13454 21.6836 4.05062C21.9353 3.9667 22.2101 3.98622 22.4475 4.10491C22.6849 4.22359 22.8654 4.43171 22.9493 4.68348C23.0332 4.93525 23.0137 5.21004 22.895 5.44741L21.895 7.44741C21.7763 7.68478 21.5682 7.86528 21.3164 7.9492C21.0647 8.03312 20.7899 8.01359 20.5525 7.89491C20.3151 7.77622 20.1346 7.56811 20.0507 7.31634C19.9668 7.06457 19.9863 6.78978 20.105 6.55241Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2319
+ }),
2320
+ "thermometer": Object.freeze({
2321
+ viewBox: "0 0 32 32",
2322
+ body: "<path d=\"M26.5 7C25.8078 7 25.1311 7.20527 24.5555 7.58986C23.9799 7.97444 23.5313 8.52107 23.2664 9.16061C23.0015 9.80015 22.9322 10.5039 23.0673 11.1828C23.2023 11.8617 23.5356 12.4854 24.0251 12.9749C24.5146 13.4644 25.1383 13.7977 25.8172 13.9327C26.4961 14.0678 27.1999 13.9985 27.8394 13.7336C28.4789 13.4687 29.0256 13.0201 29.4101 12.4445C29.7947 11.8689 30 11.1922 30 10.5C30 9.57174 29.6313 8.6815 28.9749 8.02513C28.3185 7.36875 27.4283 7 26.5 7ZM26.5 12C26.2033 12 25.9133 11.912 25.6666 11.7472C25.42 11.5824 25.2277 11.3481 25.1142 11.074C25.0007 10.7999 24.9709 10.4983 25.0288 10.2074C25.0867 9.91639 25.2296 9.64912 25.4393 9.43934C25.6491 9.22956 25.9164 9.0867 26.2074 9.02882C26.4983 8.97094 26.7999 9.00065 27.074 9.11418C27.3481 9.22771 27.5824 9.41997 27.7472 9.66665C27.912 9.91332 28 10.2033 28 10.5C28 10.8978 27.842 11.2794 27.5607 11.5607C27.2794 11.842 26.8978 12 26.5 12ZM16 19.125V11C16 10.7348 15.8946 10.4804 15.7071 10.2929C15.5196 10.1054 15.2652 10 15 10C14.7348 10 14.4804 10.1054 14.2929 10.2929C14.1054 10.4804 14 10.7348 14 11V19.125C13.0573 19.3684 12.2358 19.9472 11.6894 20.753C11.143 21.5588 10.9092 22.5362 11.0319 23.502C11.1546 24.4678 11.6253 25.3557 12.3558 25.9993C13.0863 26.6429 14.0264 26.998 15 26.998C15.9736 26.998 16.9137 26.6429 17.6442 25.9993C18.3747 25.3557 18.8454 24.4678 18.9681 23.502C19.0908 22.5362 18.857 21.5588 18.3106 20.753C17.7642 19.9472 16.9427 19.3684 16 19.125ZM15 25C14.6044 25 14.2178 24.8827 13.8889 24.6629C13.56 24.4432 13.3036 24.1308 13.1522 23.7654C13.0009 23.3999 12.9613 22.9978 13.0384 22.6098C13.1156 22.2219 13.3061 21.8655 13.5858 21.5858C13.8655 21.3061 14.2219 21.1156 14.6098 21.0384C14.9978 20.9613 15.3999 21.0009 15.7654 21.1522C16.1308 21.3036 16.4432 21.56 16.6629 21.8889C16.8827 22.2178 17 22.6044 17 23C17 23.5304 16.7893 24.0391 16.4142 24.4142C16.0391 24.7893 15.5304 25 15 25ZM20 16.75V6C20 4.67392 19.4732 3.40215 18.5355 2.46447C17.5979 1.52678 16.3261 1 15 1C13.6739 1 12.4021 1.52678 11.4645 2.46447C10.5268 3.40215 10 4.67392 10 6V16.75C8.70615 17.7859 7.76599 19.1981 7.30946 20.7915C6.85293 22.3848 6.90256 24.0806 7.45149 25.6445C8.00043 27.2084 9.02156 28.5633 10.3738 29.5217C11.726 30.4802 13.3425 30.995 15 30.995C16.6575 30.995 18.274 30.4802 19.6262 29.5217C20.9784 28.5633 21.9996 27.2084 22.5485 25.6445C23.0974 24.0806 23.1471 22.3848 22.6905 20.7915C22.234 19.1981 21.2939 17.7859 20 16.75ZM15 29C13.7224 29.0001 12.4782 28.5924 11.4484 27.8363C10.4186 27.0801 9.65707 26.0151 9.27464 24.7961C8.8922 23.5771 8.90885 22.2678 9.32215 21.059C9.73545 19.8501 10.5238 18.8047 11.5725 18.075C11.7052 17.9823 11.8134 17.8589 11.8879 17.7152C11.9624 17.5715 12.0008 17.4118 12 17.25V6C12 5.20435 12.3161 4.44129 12.8787 3.87868C13.4413 3.31607 14.2044 3 15 3C15.7956 3 16.5587 3.31607 17.1213 3.87868C17.6839 4.44129 18 5.20435 18 6V17.25C18 17.411 18.0388 17.5696 18.1133 17.7124C18.1877 17.8551 18.2955 17.9778 18.4275 18.07C19.4784 18.799 20.2688 19.8446 20.6835 21.0545C21.0982 22.2643 21.1155 23.575 20.7328 24.7953C20.3501 26.0157 19.5875 27.0818 18.5562 27.8382C17.5249 28.5946 16.2789 29.0016 15 29Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2323
+ }),
2324
+ "upload": Object.freeze({
2325
+ viewBox: "0 0 32 32",
2326
+ body: "<path d=\"M28 18.0001V26.0001C28 26.2653 27.8946 26.5196 27.7071 26.7072C27.5196 26.8947 27.2652 27.0001 27 27.0001H5C4.73478 27.0001 4.48043 26.8947 4.29289 26.7072C4.10536 26.5196 4 26.2653 4 26.0001V18.0001C4 17.7348 4.10536 17.4805 4.29289 17.2929C4.48043 17.1054 4.73478 17.0001 5 17.0001C5.26522 17.0001 5.51957 17.1054 5.70711 17.2929C5.89464 17.4805 6 17.7348 6 18.0001V25.0001H26V18.0001C26 17.7348 26.1054 17.4805 26.2929 17.2929C26.4804 17.1054 26.7348 17.0001 27 17.0001C27.2652 17.0001 27.5196 17.1054 27.7071 17.2929C27.8946 17.4805 28 17.7348 28 18.0001ZM11.7075 9.70755L15 6.4138V18.0001C15 18.2653 15.1054 18.5196 15.2929 18.7072C15.4804 18.8947 15.7348 19.0001 16 19.0001C16.2652 19.0001 16.5196 18.8947 16.7071 18.7072C16.8946 18.5196 17 18.2653 17 18.0001V6.4138L20.2925 9.70755C20.4801 9.8952 20.7346 10.0006 21 10.0006C21.2654 10.0006 21.5199 9.8952 21.7075 9.70755C21.8951 9.51991 22.0006 9.26542 22.0006 9.00005C22.0006 8.73469 21.8951 8.48019 21.7075 8.29255L16.7075 3.29255C16.6146 3.19958 16.5043 3.12582 16.3829 3.07549C16.2615 3.02517 16.1314 2.99927 16 2.99927C15.8686 2.99927 15.7385 3.02517 15.6171 3.07549C15.4957 3.12582 15.3854 3.19958 15.2925 3.29255L10.2925 8.29255C10.1049 8.48019 9.99944 8.73469 9.99944 9.00005C9.99944 9.26542 10.1049 9.51991 10.2925 9.70755C10.4801 9.8952 10.7346 10.0006 11 10.0006C11.2654 10.0006 11.5199 9.8952 11.7075 9.70755Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2327
+ }),
2328
+ "user": Object.freeze({
2329
+ viewBox: "0 0 32 32",
2330
+ body: "<path d=\"M28.8651 26.5C26.9613 23.2087 24.0276 20.8487 20.6038 19.73C22.2974 18.7218 23.6132 17.1856 24.3491 15.3572C25.0851 13.5289 25.2005 11.5095 24.6777 9.60918C24.1548 7.70887 23.0227 6.03272 21.4551 4.83814C19.8874 3.64355 17.971 2.99658 16.0001 2.99658C14.0292 2.99658 12.1128 3.64355 10.5451 4.83814C8.9775 6.03272 7.84534 7.70887 7.32252 9.60918C6.7997 11.5095 6.91513 13.5289 7.65108 15.3572C8.38703 17.1856 9.7028 18.7218 11.3963 19.73C7.97259 20.8475 5.03884 23.2075 3.13509 26.5C3.06528 26.6138 3.01897 26.7405 2.99891 26.8725C2.97884 27.0045 2.98541 27.1392 3.01825 27.2687C3.05108 27.3981 3.10951 27.5197 3.19008 27.6262C3.27066 27.7326 3.37174 27.8219 3.48738 27.8887C3.60301 27.9555 3.73085 27.9985 3.86335 28.015C3.99586 28.0316 4.13034 28.0215 4.25887 27.9853C4.3874 27.949 4.50737 27.8874 4.6117 27.8041C4.71604 27.7207 4.80262 27.6173 4.86634 27.5C7.22134 23.43 11.3838 21 16.0001 21C20.6163 21 24.7788 23.43 27.1338 27.5C27.1976 27.6173 27.2842 27.7207 27.3885 27.8041C27.4928 27.8874 27.6128 27.949 27.7413 27.9853C27.8698 28.0215 28.0043 28.0316 28.1368 28.015C28.2693 27.9985 28.3972 27.9555 28.5128 27.8887C28.6284 27.8219 28.7295 27.7326 28.8101 27.6262C28.8907 27.5197 28.9491 27.3981 28.9819 27.2687C29.0148 27.1392 29.0213 27.0045 29.0013 26.8725C28.9812 26.7405 28.9349 26.6138 28.8651 26.5ZM9.00009 12C9.00009 10.6155 9.41064 9.26214 10.1798 8.11099C10.949 6.95985 12.0422 6.06264 13.3213 5.53283C14.6004 5.00301 16.0079 4.86439 17.3657 5.13449C18.7236 5.40458 19.9709 6.07127 20.9498 7.05023C21.9288 8.0292 22.5955 9.27648 22.8656 10.6344C23.1357 11.9922 22.9971 13.3997 22.4673 14.6788C21.9374 15.9578 21.0402 17.0511 19.8891 17.8203C18.7379 18.5894 17.3846 19 16.0001 19C14.1442 18.998 12.3649 18.2599 11.0525 16.9475C9.74022 15.6352 9.00208 13.8559 9.00009 12Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2331
+ }),
2332
+ "users": Object.freeze({
2333
+ viewBox: "0 0 32 32",
2334
+ body: "<path d=\"M14.6563 19.7401C15.9966 18.8479 17.0141 17.548 17.5584 16.0327C18.1028 14.5174 18.145 12.8671 17.6789 11.326C17.2129 9.78483 16.2632 8.43458 14.9703 7.4749C13.6775 6.51522 12.1102 5.99707 10.5001 5.99707C8.88997 5.99707 7.32261 6.51522 6.02978 7.4749C4.73694 8.43458 3.78726 9.78483 3.32118 11.326C2.85509 12.8671 2.89734 14.5174 3.44168 16.0327C3.98603 17.548 5.00356 18.8479 6.34381 19.7401C3.91943 20.6337 1.84894 22.2872 0.441312 24.4539C0.367332 24.5638 0.315945 24.6874 0.290139 24.8174C0.264332 24.9474 0.264621 25.0812 0.290989 25.2111C0.317356 25.3409 0.369276 25.4643 0.44373 25.5739C0.518185 25.6835 0.613688 25.7773 0.72469 25.8497C0.835692 25.9221 0.959977 25.9717 1.09032 25.9956C1.22067 26.0196 1.35447 26.0174 1.48396 25.9892C1.61344 25.9609 1.73603 25.9073 1.84458 25.8312C1.95314 25.7552 2.04551 25.6584 2.11631 25.5464C3.0243 24.1498 4.26676 23.0023 5.73086 22.2078C7.19496 21.4134 8.83432 20.9973 10.5001 20.9973C12.1658 20.9973 13.8052 21.4134 15.2693 22.2078C16.7334 23.0023 17.9758 24.1498 18.8838 25.5464C19.0305 25.7644 19.257 25.9159 19.5145 25.9681C19.772 26.0204 20.0397 25.9692 20.2598 25.8257C20.4799 25.6822 20.6346 25.4578 20.6906 25.2011C20.7465 24.9444 20.6992 24.676 20.5588 24.4539C19.1512 22.2872 17.0807 20.6337 14.6563 19.7401ZM5.00006 13.5001C5.00006 12.4123 5.32263 11.3489 5.92698 10.4445C6.53133 9.54001 7.39031 8.83506 8.3953 8.41878C9.4003 8.00249 10.5062 7.89358 11.5731 8.10579C12.64 8.31801 13.62 8.84184 14.3891 9.61103C15.1583 10.3802 15.6822 11.3602 15.8944 12.4271C16.1066 13.494 15.9977 14.5999 15.5814 15.6049C15.1651 16.6099 14.4602 17.4688 13.5557 18.0732C12.6512 18.6775 11.5879 19.0001 10.5001 19.0001C9.04188 18.9985 7.64389 18.4185 6.6128 17.3874C5.58171 16.3563 5.00172 14.9583 5.00006 13.5001ZM31.2676 25.8376C31.0454 25.9825 30.7749 26.0331 30.5154 25.9785C30.2559 25.9239 30.0287 25.7685 29.8838 25.5464C28.9769 24.149 27.7346 23.0009 26.2702 22.2068C24.8058 21.4127 23.1659 20.9979 21.5001 21.0001C21.2348 21.0001 20.9805 20.8948 20.793 20.7072C20.6054 20.5197 20.5001 20.2653 20.5001 20.0001C20.5001 19.7349 20.6054 19.4805 20.793 19.293C20.9805 19.1055 21.2348 19.0001 21.5001 19.0001C22.31 18.9993 23.1098 18.8197 23.8423 18.474C24.5748 18.1283 25.2219 17.6251 25.7373 17.0003C26.2528 16.3756 26.6239 15.6447 26.8242 14.8598C27.0244 14.075 27.0488 13.2557 26.8957 12.4603C26.7426 11.6649 26.4157 10.9132 25.9383 10.2589C25.461 9.60449 24.845 9.06362 24.1344 8.6749C23.4239 8.28619 22.6362 8.05921 21.8277 8.0102C21.0192 7.96118 20.2099 8.09134 19.4576 8.39136C19.3349 8.44439 19.2028 8.47229 19.0692 8.47342C18.9356 8.47455 18.8031 8.44889 18.6795 8.39794C18.556 8.34699 18.4439 8.2718 18.3499 8.1768C18.2559 8.0818 18.1819 7.96893 18.1323 7.84485C18.0827 7.72077 18.0584 7.588 18.0609 7.45439C18.0635 7.32077 18.0928 7.18903 18.1471 7.06693C18.2015 6.94483 18.2797 6.83486 18.3772 6.74352C18.4748 6.65218 18.5897 6.58131 18.7151 6.53511C20.4369 5.84843 22.352 5.82372 24.091 6.46575C25.83 7.10778 27.2696 8.37106 28.1321 10.0119C28.9946 11.6527 29.2189 13.5548 28.7617 15.3513C28.3045 17.1477 27.1982 18.7112 25.6563 19.7401C28.0807 20.6337 30.1512 22.2872 31.5588 24.4539C31.7037 24.676 31.7543 24.9466 31.6997 25.2061C31.6451 25.4655 31.4897 25.6927 31.2676 25.8376Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2335
+ }),
2336
+ "video_camera": Object.freeze({
2337
+ viewBox: "0 0 32 32",
2338
+ body: "<path d=\"M31.4713 9.125C31.3118 9.03953 31.1321 8.99892 30.9514 9.0075C30.7707 9.01609 30.5956 9.07354 30.445 9.17375L26 12.1313V9C26 8.46957 25.7893 7.96086 25.4142 7.58579C25.0391 7.21071 24.5304 7 24 7H4C3.46957 7 2.96086 7.21071 2.58579 7.58579C2.21071 7.96086 2 8.46957 2 9V23C2 23.5304 2.21071 24.0391 2.58579 24.4142C2.96086 24.7893 3.46957 25 4 25H24C24.5304 25 25.0391 24.7893 25.4142 24.4142C25.7893 24.0391 26 23.5304 26 23V19.875L30.445 22.8388C30.6101 22.946 30.8032 23.002 31 23C31.2652 23 31.5196 22.8946 31.7071 22.7071C31.8946 22.5196 32 22.2652 32 22V10C31.9987 9.82007 31.949 9.64382 31.8559 9.48982C31.7628 9.33582 31.63 9.20979 31.4713 9.125ZM24 23H4V9H24V23ZM30 20.1313L26 17.465V14.535L30 11.875V20.1313Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2339
+ }),
2340
+ "warning": Object.freeze({
2341
+ viewBox: "0 0 32 32",
2342
+ body: "<path d=\"M29.6001 23.5113L18.6689 4.52758C18.3957 4.06249 18.0057 3.67686 17.5376 3.40891C17.0695 3.14096 16.5395 3 16.0001 3C15.4607 3 14.9307 3.14096 14.4626 3.40891C13.9945 3.67686 13.6045 4.06249 13.3314 4.52758L2.40012 23.5113C2.13729 23.9612 1.99878 24.4728 1.99878 24.9938C1.99878 25.5148 2.13729 26.0265 2.40012 26.4763C2.66978 26.9442 3.05908 27.332 3.52807 27.5997C3.99706 27.8675 4.52885 28.0057 5.06887 28.0001H26.9314C27.471 28.0052 28.0022 27.8669 28.4707 27.5991C28.9393 27.3314 29.3282 26.9439 29.5976 26.4763C29.8608 26.0267 29.9998 25.5152 30.0002 24.9942C30.0007 24.4732 29.8626 23.9614 29.6001 23.5113ZM27.8664 25.4751C27.7711 25.6376 27.6343 25.7719 27.47 25.8642C27.3057 25.9564 27.1198 26.0033 26.9314 26.0001H5.06887C4.88047 26.0033 4.69458 25.9564 4.53028 25.8642C4.36598 25.7719 4.22917 25.6376 4.13387 25.4751C4.04755 25.3289 4.00202 25.1623 4.00202 24.9926C4.00202 24.8228 4.04755 24.6562 4.13387 24.5101L15.0651 5.52633C15.1623 5.36455 15.2998 5.23068 15.4641 5.13774C15.6283 5.04479 15.8139 4.99595 16.0026 4.99595C16.1914 4.99595 16.3769 5.04479 16.5412 5.13774C16.7055 5.23068 16.8429 5.36455 16.9401 5.52633L27.8714 24.5101C27.9569 24.6567 28.0016 24.8235 28.0007 24.9933C27.9998 25.163 27.9534 25.3294 27.8664 25.4751ZM15.0001 18.0001V13.0001C15.0001 12.7349 15.1055 12.4805 15.293 12.293C15.4805 12.1054 15.7349 12.0001 16.0001 12.0001C16.2653 12.0001 16.5197 12.1054 16.7072 12.293C16.8948 12.4805 17.0001 12.7349 17.0001 13.0001V18.0001C17.0001 18.2653 16.8948 18.5197 16.7072 18.7072C16.5197 18.8947 16.2653 19.0001 16.0001 19.0001C15.7349 19.0001 15.4805 18.8947 15.293 18.7072C15.1055 18.5197 15.0001 18.2653 15.0001 18.0001ZM17.5001 22.5001C17.5001 22.7968 17.4121 23.0868 17.2473 23.3334C17.0825 23.5801 16.8482 23.7724 16.5741 23.8859C16.3001 23.9994 15.9985 24.0291 15.7075 23.9713C15.4165 23.9134 15.1492 23.7705 14.9395 23.5607C14.7297 23.351 14.5868 23.0837 14.5289 22.7927C14.4711 22.5017 14.5008 22.2001 14.6143 21.9261C14.7278 21.652 14.9201 21.4177 15.1668 21.2529C15.4134 21.0881 15.7034 21.0001 16.0001 21.0001C16.3979 21.0001 16.7795 21.1581 17.0608 21.4394C17.3421 21.7207 17.5001 22.1023 17.5001 22.5001Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2343
+ }),
2344
+ "warning_circle": Object.freeze({
2345
+ viewBox: "0 0 32 32",
2346
+ body: "<path d=\"M16 3C13.4288 3 10.9154 3.76244 8.77759 5.1909C6.63975 6.61935 4.97351 8.64968 3.98957 11.0251C3.00563 13.4006 2.74819 16.0144 3.2498 18.5362C3.75141 21.0579 4.98953 23.3743 6.80762 25.1924C8.6257 27.0105 10.9421 28.2486 13.4638 28.7502C15.9856 29.2518 18.5995 28.9944 20.9749 28.0104C23.3503 27.0265 25.3807 25.3603 26.8091 23.2224C28.2376 21.0846 29 18.5712 29 16C28.9964 12.5533 27.6256 9.24882 25.1884 6.81163C22.7512 4.37445 19.4467 3.00364 16 3ZM16 27C13.8244 27 11.6977 26.3549 9.88873 25.1462C8.07979 23.9375 6.66989 22.2195 5.83733 20.2095C5.00477 18.1995 4.78693 15.9878 5.21137 13.854C5.63581 11.7202 6.68345 9.7602 8.22183 8.22183C9.76021 6.68345 11.7202 5.6358 13.854 5.21136C15.9878 4.78692 18.1995 5.00476 20.2095 5.83733C22.2195 6.66989 23.9375 8.07979 25.1462 9.88873C26.3549 11.6977 27 13.8244 27 16C26.9967 18.9164 25.8367 21.7123 23.7745 23.7745C21.7123 25.8367 18.9164 26.9967 16 27ZM15 17V10C15 9.73478 15.1054 9.48043 15.2929 9.29289C15.4804 9.10536 15.7348 9 16 9C16.2652 9 16.5196 9.10536 16.7071 9.29289C16.8946 9.48043 17 9.73478 17 10V17C17 17.2652 16.8946 17.5196 16.7071 17.7071C16.5196 17.8946 16.2652 18 16 18C15.7348 18 15.4804 17.8946 15.2929 17.7071C15.1054 17.5196 15 17.2652 15 17ZM17.5 21.5C17.5 21.7967 17.412 22.0867 17.2472 22.3334C17.0824 22.58 16.8481 22.7723 16.574 22.8858C16.2999 22.9993 15.9983 23.0291 15.7074 22.9712C15.4164 22.9133 15.1491 22.7704 14.9393 22.5607C14.7296 22.3509 14.5867 22.0836 14.5288 21.7926C14.471 21.5017 14.5007 21.2001 14.6142 20.926C14.7277 20.6519 14.92 20.4176 15.1667 20.2528C15.4133 20.088 15.7033 20 16 20C16.3978 20 16.7794 20.158 17.0607 20.4393C17.342 20.7206 17.5 21.1022 17.5 21.5Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2347
+ }),
2348
+ "warning_circle_fill": Object.freeze({
2349
+ viewBox: "0 0 32 32",
2350
+ body: "<path d=\"M16 3C13.4288 3 10.9154 3.76244 8.77759 5.1909C6.63975 6.61935 4.97351 8.64968 3.98957 11.0251C3.00563 13.4006 2.74819 16.0144 3.2498 18.5362C3.75141 21.0579 4.98953 23.3743 6.80762 25.1924C8.6257 27.0105 10.9421 28.2486 13.4638 28.7502C15.9856 29.2518 18.5995 28.9944 20.9749 28.0104C23.3503 27.0265 25.3807 25.3603 26.8091 23.2224C28.2376 21.0846 29 18.5712 29 16C28.9964 12.5533 27.6256 9.24882 25.1884 6.81163C22.7512 4.37445 19.4467 3.00364 16 3ZM15 10C15 9.73478 15.1054 9.48043 15.2929 9.29289C15.4804 9.10536 15.7348 9 16 9C16.2652 9 16.5196 9.10536 16.7071 9.29289C16.8946 9.48043 17 9.73478 17 10V17C17 17.2652 16.8946 17.5196 16.7071 17.7071C16.5196 17.8946 16.2652 18 16 18C15.7348 18 15.4804 17.8946 15.2929 17.7071C15.1054 17.5196 15 17.2652 15 17V10ZM16 23C15.7033 23 15.4133 22.912 15.1667 22.7472C14.92 22.5824 14.7277 22.3481 14.6142 22.074C14.5007 21.7999 14.471 21.4983 14.5288 21.2074C14.5867 20.9164 14.7296 20.6491 14.9393 20.4393C15.1491 20.2296 15.4164 20.0867 15.7074 20.0288C15.9983 19.9709 16.2999 20.0007 16.574 20.1142C16.8481 20.2277 17.0824 20.42 17.2472 20.6666C17.412 20.9133 17.5 21.2033 17.5 21.5C17.5 21.8978 17.342 22.2794 17.0607 22.5607C16.7794 22.842 16.3978 23 16 23Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2351
+ }),
2352
+ "wifi_high": Object.freeze({
2353
+ viewBox: "0 0 32 32",
2354
+ body: "<path d=\"M17.5 25.5C17.5 25.7967 17.412 26.0867 17.2472 26.3334C17.0824 26.5801 16.8481 26.7723 16.574 26.8859C16.2999 26.9994 15.9983 27.0291 15.7073 26.9712C15.4164 26.9133 15.1491 26.7705 14.9393 26.5607C14.7295 26.3509 14.5867 26.0836 14.5288 25.7927C14.4709 25.5017 14.5006 25.2001 14.6142 24.926C14.7277 24.6519 14.92 24.4177 15.1666 24.2528C15.4133 24.088 15.7033 24 16 24C16.3978 24 16.7793 24.1581 17.0606 24.4394C17.3419 24.7207 17.5 25.1022 17.5 25.5ZM29.635 10.875C25.7906 7.72176 20.9721 5.99841 16 5.99841C11.0278 5.99841 6.20936 7.72176 2.36499 10.875C2.26346 10.9584 2.17935 11.061 2.11746 11.1769C2.05557 11.2928 2.01712 11.4197 2.00429 11.5505C1.99146 11.6812 2.00452 11.8132 2.04271 11.939C2.0809 12.0647 2.14347 12.1816 2.22686 12.2832C2.31025 12.3847 2.41282 12.4688 2.52871 12.5307C2.64461 12.5926 2.77156 12.631 2.90232 12.6439C3.16639 12.6698 3.42994 12.5897 3.63499 12.4213C7.1215 9.56217 11.4911 7.99964 16 7.99964C20.5089 7.99964 24.8785 9.56217 28.365 12.4213C28.57 12.5897 28.8336 12.6698 29.0977 12.6439C29.3617 12.6179 29.6047 12.4882 29.7731 12.2832C29.9415 12.0781 30.0216 11.8146 29.9957 11.5505C29.9698 11.2864 29.84 11.0434 29.635 10.875ZM25.625 15.3463C22.8867 13.1783 19.4964 11.9987 16.0037 11.9987C12.5111 11.9987 9.12082 13.1783 6.38249 15.3463C6.17462 15.511 6.04072 15.7516 6.01025 16.0151C5.97978 16.2786 6.05522 16.5434 6.21999 16.7513C6.38475 16.9591 6.62534 17.093 6.88883 17.1235C7.15232 17.154 7.41712 17.0785 7.62499 16.9138C10.0098 15.0261 12.9622 13.999 16.0037 13.999C19.0453 13.999 21.9977 15.0261 24.3825 16.9138C24.4854 16.9954 24.6034 17.0559 24.7297 17.0919C24.856 17.1279 24.9882 17.1387 25.1186 17.1236C25.2491 17.1085 25.3753 17.0678 25.4901 17.004C25.6049 16.9401 25.7059 16.8542 25.7875 16.7513C25.8691 16.6484 25.9296 16.5304 25.9656 16.4041C26.0016 16.2778 26.0124 16.1456 25.9973 16.0151C25.9822 15.8847 25.9415 15.7584 25.8777 15.6437C25.8138 15.5289 25.7279 15.4279 25.625 15.3463ZM21.5925 19.8163C19.9682 18.6358 18.0117 17.9999 16.0037 17.9999C13.9957 17.9999 12.0393 18.6358 10.415 19.8163C10.2005 19.9724 10.0568 20.2074 10.0156 20.4695C9.9743 20.7316 10.0388 20.9993 10.195 21.2138C10.3511 21.4283 10.5861 21.572 10.8482 21.6132C11.1103 21.6545 11.378 21.5899 11.5925 21.4338C12.8744 20.5015 14.4187 19.9993 16.0037 19.9993C17.5888 19.9993 19.1331 20.5015 20.415 21.4338C20.5212 21.5111 20.6416 21.5667 20.7693 21.5975C20.897 21.6283 21.0295 21.6336 21.1593 21.6132C21.2891 21.5928 21.4135 21.547 21.5256 21.4785C21.6377 21.4099 21.7352 21.32 21.8125 21.2138C21.8898 21.1076 21.9454 20.9872 21.9762 20.8595C22.007 20.7318 22.0123 20.5992 21.9919 20.4695C21.9715 20.3397 21.9257 20.2152 21.8572 20.1031C21.7886 19.9911 21.6987 19.8936 21.5925 19.8163Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2355
+ }),
2356
+ "wind": Object.freeze({
2357
+ viewBox: "0 0 32 32",
2358
+ body: "<path d=\"M23 23C23 24.0609 22.5786 25.0783 21.8284 25.8284C21.0783 26.5786 20.0609 27 19 27C17.2875 27 15.6313 25.8837 15.0625 24.3475C14.976 24.1002 14.99 23.8288 15.1015 23.5916C15.213 23.3545 15.4131 23.1706 15.6588 23.0796C15.9045 22.9885 16.1762 22.9975 16.4153 23.1046C16.6544 23.2118 16.8419 23.4085 16.9375 23.6525C17.2175 24.4088 18.125 25 19 25C19.5304 25 20.0391 24.7893 20.4142 24.4142C20.7893 24.0391 21 23.5304 21 23C21 22.4696 20.7893 21.9609 20.4142 21.5858C20.0391 21.2107 19.5304 21 19 21H5C4.73478 21 4.48043 20.8946 4.29289 20.7071C4.10536 20.5196 4 20.2652 4 20C4 19.7348 4.10536 19.4804 4.29289 19.2929C4.48043 19.1054 4.73478 19 5 19H19C20.0609 19 21.0783 19.4214 21.8284 20.1716C22.5786 20.9217 23 21.9391 23 23ZM15 13C16.0609 13 17.0783 12.5786 17.8284 11.8284C18.5786 11.0783 19 10.0609 19 9C19 7.93913 18.5786 6.92172 17.8284 6.17157C17.0783 5.42143 16.0609 5 15 5C13.2875 5 11.6313 6.11625 11.0625 7.6525C10.976 7.89983 10.99 8.17125 11.1015 8.40837C11.213 8.64549 11.4131 8.82936 11.6588 8.92043C11.9045 9.0115 12.1762 9.0025 12.4153 8.89535C12.6544 8.78821 12.8419 8.59148 12.9375 8.3475C13.2175 7.59125 14.125 7 15 7C15.5304 7 16.0391 7.21071 16.4142 7.58579C16.7893 7.96086 17 8.46957 17 9C17 9.53043 16.7893 10.0391 16.4142 10.4142C16.0391 10.7893 15.5304 11 15 11H3C2.73478 11 2.48043 11.1054 2.29289 11.2929C2.10536 11.4804 2 11.7348 2 12C2 12.2652 2.10536 12.5196 2.29289 12.7071C2.48043 12.8946 2.73478 13 3 13H15ZM26 9C24.2875 9 22.6313 10.1163 22.0625 11.6525C21.976 11.8998 21.99 12.1712 22.1015 12.4084C22.213 12.6455 22.4131 12.8294 22.6588 12.9204C22.9045 13.0115 23.1762 13.0025 23.4153 12.8954C23.6544 12.7882 23.8419 12.5915 23.9375 12.3475C24.2175 11.5912 25.125 11 26 11C26.5304 11 27.0391 11.2107 27.4142 11.5858C27.7893 11.9609 28 12.4696 28 13C28 13.5304 27.7893 14.0391 27.4142 14.4142C27.0391 14.7893 26.5304 15 26 15H4C3.73478 15 3.48043 15.1054 3.29289 15.2929C3.10536 15.4804 3 15.7348 3 16C3 16.2652 3.10536 16.5196 3.29289 16.7071C3.48043 16.8946 3.73478 17 4 17H26C27.0609 17 28.0783 16.5786 28.8284 15.8284C29.5786 15.0783 30 14.0609 30 13C30 11.9391 29.5786 10.9217 28.8284 10.1716C28.0783 9.42143 27.0609 9 26 9Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2359
+ }),
2360
+ "x_circle": Object.freeze({
2361
+ viewBox: "0 0 32 32",
2362
+ body: "<path d=\"M20.7075 12.7075L17.4138 16L20.7075 19.2925C20.8004 19.3854 20.8741 19.4957 20.9244 19.6171C20.9747 19.7385 21.0006 19.8686 21.0006 20C21.0006 20.1314 20.9747 20.2615 20.9244 20.3829C20.8741 20.5043 20.8004 20.6146 20.7075 20.7075C20.6146 20.8004 20.5043 20.8741 20.3829 20.9244C20.2615 20.9747 20.1314 21.0006 20 21.0006C19.8686 21.0006 19.7385 20.9747 19.6171 20.9244C19.4957 20.8741 19.3854 20.8004 19.2925 20.7075L16 17.4137L12.7075 20.7075C12.6146 20.8004 12.5043 20.8741 12.3829 20.9244C12.2615 20.9747 12.1314 21.0006 12 21.0006C11.8686 21.0006 11.7385 20.9747 11.6171 20.9244C11.4957 20.8741 11.3854 20.8004 11.2925 20.7075C11.1996 20.6146 11.1259 20.5043 11.0756 20.3829C11.0253 20.2615 10.9994 20.1314 10.9994 20C10.9994 19.8686 11.0253 19.7385 11.0756 19.6171C11.1259 19.4957 11.1996 19.3854 11.2925 19.2925L14.5863 16L11.2925 12.7075C11.1049 12.5199 10.9994 12.2654 10.9994 12C10.9994 11.7346 11.1049 11.4801 11.2925 11.2925C11.4801 11.1049 11.7346 10.9994 12 10.9994C12.2654 10.9994 12.5199 11.1049 12.7075 11.2925L16 14.5863L19.2925 11.2925C19.3854 11.1996 19.4957 11.1259 19.6171 11.0756C19.7385 11.0253 19.8686 10.9994 20 10.9994C20.1314 10.9994 20.2615 11.0253 20.3829 11.0756C20.5043 11.1259 20.6146 11.1996 20.7075 11.2925C20.8004 11.3854 20.8741 11.4957 20.9244 11.6171C20.9747 11.7385 21.0006 11.8686 21.0006 12C21.0006 12.1314 20.9747 12.2615 20.9244 12.3829C20.8741 12.5043 20.8004 12.6146 20.7075 12.7075ZM29 16C29 18.5712 28.2376 21.0846 26.8091 23.2224C25.3807 25.3603 23.3503 27.0265 20.9749 28.0104C18.5995 28.9944 15.9856 29.2518 13.4638 28.7502C10.9421 28.2486 8.6257 27.0105 6.80762 25.1924C4.98953 23.3743 3.75141 21.0579 3.2498 18.5362C2.74819 16.0144 3.00563 13.4006 3.98957 11.0251C4.97351 8.64968 6.63975 6.61935 8.77759 5.1909C10.9154 3.76244 13.4288 3 16 3C19.4467 3.00364 22.7512 4.37445 25.1884 6.81163C27.6256 9.24882 28.9964 12.5533 29 16ZM27 16C27 13.8244 26.3549 11.6977 25.1462 9.88873C23.9375 8.07979 22.2195 6.66989 20.2095 5.83733C18.1995 5.00476 15.9878 4.78692 13.854 5.21136C11.7202 5.6358 9.76021 6.68345 8.22183 8.22183C6.68345 9.7602 5.63581 11.7202 5.21137 13.854C4.78693 15.9878 5.00477 18.1995 5.83733 20.2095C6.66989 22.2195 8.07979 23.9375 9.88873 25.1462C11.6977 26.3549 13.8244 27 16 27C18.9164 26.9967 21.7123 25.8367 23.7745 23.7745C25.8367 21.7123 26.9967 18.9164 27 16Z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path>",
2363
+ }),
2364
+ });
2365
+
2366
+ const BUILTIN_ICON_NAMES = Object.freeze(Object.keys(BUILTIN_ICONS));
2367
+ function getBuiltinIcon(name) {
2368
+ if (!name || !Object.prototype.hasOwnProperty.call(BUILTIN_ICONS, name)) {
2369
+ return undefined;
2370
+ }
2371
+ return BUILTIN_ICONS[name];
2372
+ }
2373
+
2374
+ export { ActionRegistry, BUILTIN_ICONS, BUILTIN_ICON_NAMES, LifecycleManager, StreamingEngine, StreamingParser, a2uiComponentToElement, a2uiToCommand, convertLegacySchema, createLifecycleManager, extractPartialSchema, getBuiltinIcon, getByPath$1 as getByPath, hasExpression, interpolate, isA2UIEnvelope, isLegacySchema, normalizeSchema, parseSchema, registerActionHandler, registry, resetIdCounter, resolveActionRef, resolveDeep, resolveExpression, resolveExpressionValue, runActionStep, runActionSteps, setByPath, validateSchema };