@neo-ui-kit/react 0.0.0-stage → 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/LICENSE +21 -0
- package/README.md +213 -2
- package/dist/artwork/icons.json.d.ts +2 -0
- package/dist/artwork/illustrations.json.d.ts +2 -0
- package/dist/chunks/chunk-347P6ZE4.js +104 -0
- package/dist/chunks/chunk-BJSFN52W.js +417 -0
- package/dist/chunks/chunk-FCOU3ODR.js +63 -0
- package/dist/chunks/chunk-JZ4GDTH5.js +87 -0
- package/dist/chunks/chunk-UGDRXR7P.js +3362 -0
- package/dist/chunks/chunk-VK6GHRLV.js +335 -0
- package/dist/chunks/chunk-YKCUOZ7V.js +777 -0
- package/dist/components/artwork/DatabaseArt/DatabaseArt.d.ts +6 -0
- package/dist/components/artwork/DatabaseArt/styles.css +58 -0
- package/dist/components/artwork/Landscape/Landscape.d.ts +7 -0
- package/dist/components/artwork/Landscape/styles.css +79 -0
- package/dist/components/artwork/NeonWaves/NeonWaves.d.ts +15 -0
- package/dist/components/artwork/NeonWaves/styles.css +48 -0
- package/dist/components/artwork/Planet/Planet.d.ts +4 -0
- package/dist/components/artwork/Planet/styles.css +52 -0
- package/dist/components/artwork/QuantumField/QuantumField.d.ts +42 -0
- package/dist/components/artwork/QuantumField/QuantumFieldExperience.d.ts +22 -0
- package/dist/components/artwork/QuantumField/UPSTREAM-LICENSE.txt +21 -0
- package/dist/components/artwork/QuantumField/audio.d.ts +15 -0
- package/dist/components/artwork/QuantumField/renderer.d.ts +24 -0
- package/dist/components/artwork/QuantumField/styles.css +77 -0
- package/dist/components/artwork/ServerArt/ServerArt.d.ts +8 -0
- package/dist/components/artwork/ServerArt/styles.css +43 -0
- package/dist/components/artwork/Spectrum/Spectrum.d.ts +7 -0
- package/dist/components/artwork/Spectrum/styles.css +35 -0
- package/dist/components/artwork/layers.d.ts +15 -0
- package/dist/components/artwork/useArtwork.d.ts +8 -0
- package/dist/components/controls/Autocomplete/Autocomplete.d.ts +2 -0
- package/dist/components/controls/Autocomplete/styles.css +1 -0
- package/dist/components/controls/Button/Button.d.ts +2 -0
- package/dist/components/controls/Button/styles.css +1 -0
- package/dist/components/controls/Checkbox/Checkbox.d.ts +2 -0
- package/dist/components/controls/Checkbox/styles.css +70 -0
- package/dist/components/controls/Chip/Chip.d.ts +21 -0
- package/dist/components/controls/Chip/styles.css +74 -0
- package/dist/components/controls/ChipField.d.ts +25 -0
- package/dist/components/controls/ColorPicker/ColorPicker.d.ts +16 -0
- package/dist/components/controls/ColorPicker/color.d.ts +9 -0
- package/dist/components/controls/ColorPicker/styles.css +103 -0
- package/dist/components/controls/DatePicker/DatePicker.d.ts +19 -0
- package/dist/components/controls/DatePicker/styles.css +69 -0
- package/dist/components/controls/FilePicker/FilePicker.d.ts +2 -0
- package/dist/components/controls/FilePicker/styles.css +149 -0
- package/dist/components/controls/IconButton/IconButton.d.ts +2 -0
- package/dist/components/controls/IconButton/styles.css +4 -0
- package/dist/components/controls/InputBase/InputBase.d.ts +21 -0
- package/dist/components/controls/InputBase/styles.css +379 -0
- package/dist/components/controls/Link/Link.d.ts +11 -0
- package/dist/components/controls/Link/styles.css +50 -0
- package/dist/components/controls/NumberField/NumberField.d.ts +2 -0
- package/dist/components/controls/NumberField/styles.css +1 -0
- package/dist/components/controls/PeoplePicker/PeoplePicker.d.ts +37 -0
- package/dist/components/controls/PeoplePicker/styles.css +7 -0
- package/dist/components/controls/SegmentedControl/SegmentedControl.d.ts +2 -0
- package/dist/components/controls/SegmentedControl/styles.css +9 -0
- package/dist/components/controls/Select/Select.d.ts +8 -0
- package/dist/components/controls/Select/styles.css +142 -0
- package/dist/components/controls/Slider/Slider.d.ts +3 -0
- package/dist/components/controls/Slider/styles.css +138 -0
- package/dist/components/controls/SplitButton/SplitButton.d.ts +2 -0
- package/dist/components/controls/SplitButton/styles.css +169 -0
- package/dist/components/controls/Switch/Switch.d.ts +2 -0
- package/dist/components/controls/Switch/styles.css +54 -0
- package/dist/components/controls/Tab/Tab.d.ts +2 -0
- package/dist/components/controls/Tab/styles.css +111 -0
- package/dist/components/controls/Tabs/Tabs.d.ts +2 -0
- package/dist/components/controls/Tabs/styles.css +239 -0
- package/dist/components/controls/TagInput/TagInput.d.ts +24 -0
- package/dist/components/controls/TagInput/styles.css +24 -0
- package/dist/components/controls/TextArea/TextArea.d.ts +2 -0
- package/dist/components/controls/TextArea/styles.css +15 -0
- package/dist/components/controls/TextField/TextField.d.ts +2 -0
- package/dist/components/controls/ThemePicker/ThemePicker.d.ts +24 -0
- package/dist/components/controls/ThemePicker/styles.css +128 -0
- package/dist/components/controls/ToggleButton/ToggleButton.d.ts +2 -0
- package/dist/components/controls/ToggleButton/styles.css +49 -0
- package/dist/components/controls/internal.d.ts +62 -0
- package/dist/components/controls/shared.css +694 -0
- package/dist/components/controls/shared.d.ts +204 -0
- package/dist/components/editor/PianoRoll/PianoRoll.d.ts +65 -0
- package/dist/components/editor/PianoRoll/styles.css +186 -0
- package/dist/components/editor/shared.css +1 -0
- package/dist/components/effects/AnimatedBorder/AnimatedBorder.d.ts +9 -0
- package/dist/components/effects/AnimatedBorder/styles.css +7 -0
- package/dist/components/effects/Beacon/Beacon.d.ts +9 -0
- package/dist/components/effects/Beacon/styles.css +38 -0
- package/dist/components/effects/Equalizer/Equalizer.d.ts +14 -0
- package/dist/components/effects/Equalizer/styles.css +38 -0
- package/dist/components/effects/GlowText/GlowText.d.ts +9 -0
- package/dist/components/effects/GlowText/styles.css +56 -0
- package/dist/components/effects/ImageShine/ImageShine.d.ts +13 -0
- package/dist/components/effects/ImageShine/styles.css +66 -0
- package/dist/components/effects/Marquee/Marquee.d.ts +9 -0
- package/dist/components/effects/Marquee/styles.css +46 -0
- package/dist/components/effects/MelodixText/MelodixText.d.ts +15 -0
- package/dist/components/effects/MelodixText/styles.css +28 -0
- package/dist/components/effects/Reveal/Reveal.d.ts +13 -0
- package/dist/components/effects/Reveal/styles.css +25 -0
- package/dist/components/effects/Shimmer/Shimmer.d.ts +10 -0
- package/dist/components/effects/Shimmer/styles.css +48 -0
- package/dist/components/effects/Sparkles/Sparkles.d.ts +9 -0
- package/dist/components/effects/Sparkles/styles.css +28 -0
- package/dist/components/effects/Spotlight/Spotlight.d.ts +11 -0
- package/dist/components/effects/Spotlight/styles.css +45 -0
- package/dist/components/effects/Tilt/Tilt.d.ts +11 -0
- package/dist/components/effects/Tilt/styles.css +67 -0
- package/dist/components/feedback/Badge/Badge.d.ts +3 -0
- package/dist/components/feedback/Badge/styles.css +91 -0
- package/dist/components/feedback/CollapsibleSection/CollapsibleSection.d.ts +2 -0
- package/dist/components/feedback/CollapsibleSection/styles.css +76 -0
- package/dist/components/feedback/DataTable/DataTable.d.ts +16 -0
- package/dist/components/feedback/DataTable/styles.css +522 -0
- package/dist/components/feedback/Dialog/Dialog.d.ts +2 -0
- package/dist/components/feedback/Dialog/styles.css +82 -0
- package/dist/components/feedback/EmptyState/EmptyState.d.ts +2 -0
- package/dist/components/feedback/EmptyState/styles.css +80 -0
- package/dist/components/feedback/KeyValueList/KeyValueList.d.ts +2 -0
- package/dist/components/feedback/KeyValueList/styles.css +51 -0
- package/dist/components/feedback/Menu/Menu.d.ts +2 -0
- package/dist/components/feedback/Menu/styles.css +123 -0
- package/dist/components/feedback/MenuItem/MenuItem.d.ts +2 -0
- package/dist/components/feedback/MenuItem/styles.css +71 -0
- package/dist/components/feedback/MessageBar/MessageBar.d.ts +2 -0
- package/dist/components/feedback/MessageBar/styles.css +116 -0
- package/dist/components/feedback/Popover/Popover.d.ts +2 -0
- package/dist/components/feedback/Popover/styles.css +44 -0
- package/dist/components/feedback/ProgressBar/ProgressBar.d.ts +2 -0
- package/dist/components/feedback/ProgressBar/styles.css +76 -0
- package/dist/components/feedback/SignalBars/SignalBars.d.ts +11 -0
- package/dist/components/feedback/SignalBars/styles.css +31 -0
- package/dist/components/feedback/StatusIndicator/StatusIndicator.d.ts +2 -0
- package/dist/components/feedback/StatusIndicator/styles.css +88 -0
- package/dist/components/feedback/Steps/Steps.d.ts +2 -0
- package/dist/components/feedback/Steps/styles.css +152 -0
- package/dist/components/feedback/Toast/Toast.d.ts +2 -0
- package/dist/components/feedback/Toast/styles.css +89 -0
- package/dist/components/feedback/Tooltip/Tooltip.d.ts +15 -0
- package/dist/components/feedback/Tooltip/styles.css +38 -0
- package/dist/components/feedback/shared.css +22 -0
- package/dist/components/feedback/shared.d.ts +231 -0
- package/dist/components/forms/Form/Form.d.ts +35 -0
- package/dist/components/forms/Form/styles.css +1 -0
- package/dist/components/forms/FormFields/FormFields.d.ts +20 -0
- package/dist/components/forms/FormFields/styles.css +72 -0
- package/dist/components/foundation/Loader/Loader.d.ts +30 -0
- package/dist/components/foundation/LoaderGenerator/LoaderGenerator.d.ts +38 -0
- package/dist/components/foundation/LoaderGenerator/styles.css +104 -0
- package/dist/components/foundation/ThemeEditor/ThemeEditor.d.ts +15 -0
- package/dist/components/foundation/ThemeEditor/styles.css +97 -0
- package/dist/components/foundation/ThemeEditor/themeConfig.d.ts +47 -0
- package/dist/components/foundation/ThemeProvider/ThemeProvider.d.ts +32 -0
- package/dist/components/foundation/ThemeProvider/styles.css +59 -0
- package/dist/components/foundation/Typography/Typography.d.ts +17 -0
- package/dist/components/foundation/Typography/styles.css +115 -0
- package/dist/components/layout/Avatar/Avatar.d.ts +2 -0
- package/dist/components/layout/Avatar/HostSeal.d.ts +5 -0
- package/dist/components/layout/Avatar/styles.css +166 -0
- package/dist/components/layout/BrandMark/BrandMark.d.ts +2 -0
- package/dist/components/layout/BrandMark/styles.css +39 -0
- package/dist/components/layout/ButtonGroup/ButtonGroup.d.ts +12 -0
- package/dist/components/layout/ButtonGroup/styles.css +36 -0
- package/dist/components/layout/Card/Card.d.ts +14 -0
- package/dist/components/layout/Card/styles.css +37 -0
- package/dist/components/layout/DialogActions/DialogActions.d.ts +12 -0
- package/dist/components/layout/DialogActions/styles.css +31 -0
- package/dist/components/layout/DialogBody/DialogBody.d.ts +12 -0
- package/dist/components/layout/DialogBody/styles.css +28 -0
- package/dist/components/layout/Divider/Divider.d.ts +2 -0
- package/dist/components/layout/Divider/styles.css +58 -0
- package/dist/components/layout/FloatingPanel/FloatingPanel.d.ts +15 -0
- package/dist/components/layout/FloatingPanel/styles.css +47 -0
- package/dist/components/layout/FloatingPanel/useFloatingPanel.d.ts +54 -0
- package/dist/components/layout/Grid/Grid.d.ts +24 -0
- package/dist/components/layout/Grid/styles.css +90 -0
- package/dist/components/layout/Header/Header.d.ts +2 -0
- package/dist/components/layout/Header/styles.css +42 -0
- package/dist/components/layout/Icon/Icon.d.ts +4 -0
- package/dist/components/layout/Icon/styles.css +62 -0
- package/dist/components/layout/Illustration/Illustration.d.ts +2 -0
- package/dist/components/layout/Illustration/styles.css +104 -0
- package/dist/components/layout/ScrollArea/ScrollArea.d.ts +2 -0
- package/dist/components/layout/ScrollArea/styles.css +61 -0
- package/dist/components/layout/Stack/Stack.d.ts +21 -0
- package/dist/components/layout/Stack/styles.css +53 -0
- package/dist/components/layout/StatTile/StatTile.d.ts +20 -0
- package/dist/components/layout/StatTile/styles.css +90 -0
- package/dist/components/layout/TabPanel/TabPanel.d.ts +2 -0
- package/dist/components/layout/TabPanel/styles.css +16 -0
- package/dist/components/layout/Text/Text.d.ts +2 -0
- package/dist/components/layout/Text/styles.css +29 -0
- package/dist/components/layout/Toolbar/Toolbar.d.ts +12 -0
- package/dist/components/layout/Toolbar/styles.css +7 -0
- package/dist/components/layout/shared.css +79 -0
- package/dist/components/layout/shared.d.ts +64 -0
- package/dist/components/media/AudioPlayer/AudioPlayer.d.ts +2 -0
- package/dist/components/media/AudioPlayer/styles.css +86 -0
- package/dist/components/media/KaraokeLyrics/KaraokeLyrics.d.ts +25 -0
- package/dist/components/media/KaraokeLyrics/styles.css +56 -0
- package/dist/components/media/LevelMeter/LevelMeter.d.ts +7 -0
- package/dist/components/media/LevelMeter/styles.css +30 -0
- package/dist/components/media/MediaCard/MediaCard.d.ts +24 -0
- package/dist/components/media/MediaCard/styles.css +108 -0
- package/dist/components/media/MelodyRoll/MelodyRoll.d.ts +48 -0
- package/dist/components/media/MelodyRoll/styles.css +196 -0
- package/dist/components/media/PianoKeyboard/PianoKeyboard.d.ts +24 -0
- package/dist/components/media/PianoKeyboard/styles.css +83 -0
- package/dist/components/media/RotaryKnob/RotaryKnob.d.ts +3 -0
- package/dist/components/media/RotaryKnob/styles.css +319 -0
- package/dist/components/media/Sparkline/Sparkline.d.ts +2 -0
- package/dist/components/media/Sparkline/styles.css +70 -0
- package/dist/components/media/WaveDecoration/WaveDecoration.d.ts +2 -0
- package/dist/components/media/WaveDecoration/styles.css +2 -0
- package/dist/components/media/Waveform/Waveform.d.ts +9 -0
- package/dist/components/media/Waveform/styles.css +375 -0
- package/dist/components/media/Waveform/useWaveformPeaks.d.ts +11 -0
- package/dist/components/media/shared.css +7 -0
- package/dist/components/media/shared.d.ts +80 -0
- package/dist/components/navigation/Router/Router.d.ts +32 -0
- package/dist/components/navigation/Router/styles.css +1 -0
- package/dist/components.css +102 -0
- package/dist/core/artwork.d.ts +17 -0
- package/dist/core/base.d.ts +65 -0
- package/dist/core/environment.d.ts +5 -0
- package/dist/core/i18n.d.ts +34 -0
- package/dist/core/messages.d.ts +1 -0
- package/dist/core/motion/hooks.d.ts +17 -0
- package/dist/core/motion-engine.d.ts +13 -0
- package/dist/core/noise.d.ts +20 -0
- package/dist/core/providers/context.d.ts +4 -0
- package/dist/core/responsive.d.ts +13 -0
- package/dist/core.d.ts +8 -0
- package/dist/core.js +56 -0
- package/dist/editor.d.ts +2 -0
- package/dist/editor.js +8 -0
- package/dist/fonts/melodix/Melodix-100.woff2 +0 -0
- package/dist/fonts/melodix/Melodix-200.woff2 +0 -0
- package/dist/fonts/melodix/Melodix-300.woff2 +0 -0
- package/dist/fonts/melodix/Melodix-400.woff2 +0 -0
- package/dist/fonts/melodix/Melodix-500.woff2 +0 -0
- package/dist/fonts/melodix/Melodix-600.woff2 +0 -0
- package/dist/fonts/melodix/Melodix-700.woff2 +0 -0
- package/dist/fonts/melodix/Melodix-800.woff2 +0 -0
- package/dist/fonts/melodix/Melodix-900.woff2 +0 -0
- package/dist/fonts/melodix/MelodixText-100.woff2 +0 -0
- package/dist/fonts/melodix/MelodixText-200.woff2 +0 -0
- package/dist/fonts/melodix/MelodixText-300.woff2 +0 -0
- package/dist/fonts/melodix/MelodixText-400.woff2 +0 -0
- package/dist/fonts/melodix/MelodixText-500.woff2 +0 -0
- package/dist/fonts/melodix/MelodixText-600.woff2 +0 -0
- package/dist/fonts/melodix/MelodixText-700.woff2 +0 -0
- package/dist/fonts/melodix/MelodixText-800.woff2 +0 -0
- package/dist/fonts/melodix/MelodixText-900.woff2 +0 -0
- package/dist/fonts/melodix/OFL-PlayfairDisplay.txt +93 -0
- package/dist/fonts/melodix.css +123 -0
- package/dist/forms.d.ts +4 -0
- package/dist/forms.js +17 -0
- package/dist/index.d.ts +163 -0
- package/dist/index.js +9683 -0
- package/dist/router.d.ts +2 -0
- package/dist/router.js +11 -0
- package/dist/styles.css +2 -0
- package/dist/theme/base.css +221 -0
- package/dist/theme/tokens.css +196 -0
- package/dist/theme/typography.d.ts +24 -0
- package/dist/tokens.css +1 -0
- package/package.json +83 -4
|
@@ -0,0 +1,3362 @@
|
|
|
1
|
+
import {
|
|
2
|
+
usePauseOffscreen
|
|
3
|
+
} from "./chunk-YKCUOZ7V.js";
|
|
4
|
+
import {
|
|
5
|
+
assignRef,
|
|
6
|
+
clamp,
|
|
7
|
+
classes,
|
|
8
|
+
cssRem,
|
|
9
|
+
mark,
|
|
10
|
+
normalizeSize,
|
|
11
|
+
ripple,
|
|
12
|
+
useControllable,
|
|
13
|
+
useLocale,
|
|
14
|
+
useTr
|
|
15
|
+
} from "./chunk-BJSFN52W.js";
|
|
16
|
+
import {
|
|
17
|
+
canPaint,
|
|
18
|
+
createResizeObserver,
|
|
19
|
+
reducedMotionQuery
|
|
20
|
+
} from "./chunk-FCOU3ODR.js";
|
|
21
|
+
|
|
22
|
+
// src/core/artwork.tsx
|
|
23
|
+
import React, { createElement, useId, useMemo } from "react";
|
|
24
|
+
var useSvgId = () => useId().replace(/[^a-zA-Z0-9_-]/g, "");
|
|
25
|
+
function scopeIds(value, prefix, key) {
|
|
26
|
+
if (typeof value !== "string") return value;
|
|
27
|
+
if (key === "id") return prefix + value;
|
|
28
|
+
if (key === "href" && value.startsWith("#"))
|
|
29
|
+
return "#" + prefix + value.slice(1);
|
|
30
|
+
return value.replace(/url\(#([^)]*)\)/g, `url(#${prefix}$1)`);
|
|
31
|
+
}
|
|
32
|
+
function vectorElement(node, prefix, key) {
|
|
33
|
+
if (typeof node === "string") return node;
|
|
34
|
+
const props = { key };
|
|
35
|
+
for (const [name, value] of Object.entries(node.props ?? {}))
|
|
36
|
+
props[name] = scopeIds(value, prefix, name);
|
|
37
|
+
return createElement(
|
|
38
|
+
node.tag,
|
|
39
|
+
props,
|
|
40
|
+
node.children?.map((child, i) => vectorElement(child, prefix, i))
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
function SvgAsset({ node, className, style, label, component }) {
|
|
44
|
+
const prefix = `svg-${useSvgId()}-`;
|
|
45
|
+
const element = useMemo(
|
|
46
|
+
() => vectorElement(node, prefix),
|
|
47
|
+
[node, prefix]
|
|
48
|
+
);
|
|
49
|
+
return React.cloneElement(element, {
|
|
50
|
+
...className ? { className } : {},
|
|
51
|
+
...style ? { style } : {},
|
|
52
|
+
...label ? { role: "img", "aria-label": label, "aria-hidden": void 0 } : {},
|
|
53
|
+
...component ? { "data-ad-component": component } : {}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// src/artwork/icons.json
|
|
58
|
+
var icons_default = { back: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M19 12H5m6-6-6 6 6 6" } }] }, close: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "m6 6 12 12M18 6 6 18" } }] }, plus: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M12 5v14M5 12h14" } }] }, minus: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M5 12h14" } }] }, check: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "m5 12 5 5L20 6" } }] }, chevron: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "m6 9 6 6 6-6" } }] }, play: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "m7 3 14 9-14 9Z", fill: "currentColor", stroke: "none" } }] }, pause: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M6 4h4v16H6ZM15 4h4v16h-4Z", fill: "currentColor", stroke: "none" } }] }, music: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M9 18V5l11-3v13M9 9l11-3" } }, { tag: "ellipse", props: { cx: "6", cy: "19", rx: "3", ry: "2.5" } }, { tag: "ellipse", props: { cx: "17", cy: "16", rx: "3", ry: "2.5" } }] }, document: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M5 2h9l5 5v15H5ZM14 2v6h5M8 12h8M8 16h8" } }] }, wave: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M3 10v4M6 7v10M10 2v20M14 5v14M18 8v8M21 10v4" } }] }, grid: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "rect", props: { height: "7", rx: "1", width: "7", x: "3", y: "3" } }, { tag: "rect", props: { height: "7", rx: "1", width: "7", x: "14", y: "3" } }, { tag: "rect", props: { height: "7", rx: "1", width: "7", x: "3", y: "14" } }, { tag: "rect", props: { height: "7", rx: "1", width: "7", x: "14", y: "14" } }] }, cursor: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "m6 2 13 12-6 1 2.8 6-3 1-2.6-6-4.2 4Z" } }] }, pencil: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "m14 4 5 5M4 20l2-7L17 2l5 5L11 18ZM6 13l5 5M4 20l7-2" } }] }, eraser: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "m13 3 8 8-9 10H6l-4-4ZM7 12l9 6" } }, { tag: "path", props: { d: "m13 3 8 8-5 6-9-6Z", fill: "currentColor", opacity: ".85", stroke: "none" } }] }, scissors: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "circle", props: { cx: "6", cy: "18", r: "3" } }, { tag: "circle", props: { cx: "18", cy: "18", r: "3" } }, { tag: "path", props: { d: "m4 2 12 14M20 2 8 16" } }] }, mouse: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "rect", props: { height: "20", rx: "6", width: "12", x: "6", y: "2" } }, { tag: "path", props: { d: "M12 2v9M6 10h12M12 5v3" } }] }, volume: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M3 9h4l5-4v14l-5-4H3ZM16 8c3 2 3 6 0 8M19 5c5 4 5 10 0 14" } }] }, search: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "circle", props: { cx: "10", cy: "10", r: "6" } }, { tag: "path", props: { d: "m14.5 14.5 5.5 5.5M8 10h4m-2-2v4" } }] }, more: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "g", props: { fill: "currentColor", stroke: "none" }, children: [{ tag: "circle", props: { cx: "5", cy: "12", r: "1.5" } }, { tag: "circle", props: { cx: "12", cy: "12", r: "1.5" } }, { tag: "circle", props: { cx: "19", cy: "12", r: "1.5" } }] }] }, sliders: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M3 5h8m4 0h6M3 12h3m4 0h11M3 19h11m4 0h3" } }, { tag: "circle", props: { cx: "13", cy: "5", r: "2" } }, { tag: "circle", props: { cx: "8", cy: "12", r: "2" } }, { tag: "circle", props: { cx: "16", cy: "19", r: "2" } }] }, settings: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "m10 2-.5 2.5-2 1.2L5 5 3 8l1.8 2v3.7L3 16l2 3 2.5-.6 2 1.2L10 22h4l.5-2.4 2-1.2L19 19l2-3-1.8-2.3V10L21 8l-2-3-2.5.7-2-1.2L14 2Z" } }, { tag: "circle", props: { cx: "12", cy: "12", r: "3.5" } }] }, fit: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M3 9V3h6m6 0h6v6M3 15v6h6m6 0h6v-6" } }] }, save: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M4 3h13l4 4v14H3V3ZM7 3v7h10V3M7 21v-7h10v7" } }] }, undo: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M4 9h9a6 6 0 1 1 0 12H8M4 9l5-5M4 9l5 5" } }] }, redo: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M20 9h-9a6 6 0 1 0 0 12h5M20 9l-5-5M20 9l-5 5" } }] }, bulb: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M8 17c0-3-3-4-3-8a7 7 0 0 1 14 0c0 4-3 5-3 8ZM8 18h8M9 21h6M12 1v-1M2 3 0 2m24 0-2 1M2 11H0m24 0h-2" } }] }, window: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "rect", props: { height: "14", rx: "1", width: "14", x: "5", y: "5" } }] }, folder: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M3 6h7l2 3h8a1 1 0 0 1 1 1l-2 10H3ZM3 6V4h7l2 2h7v3" } }] }, upload: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M12 17V3m-5 5 5-5 5 5M3 15v6h18v-6" } }] }, download: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M12 3v14m-5-5 5 5 5-5M3 15v6h18v-6" } }] }, reset: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M3 10a9 9 0 1 1 0 6M3 4v6h6" } }] }, info: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "circle", props: { cx: "12", cy: "12", r: "10" } }, { tag: "path", props: { d: "M12 11v6M12 7v1" } }] }, copy: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "rect", props: { height: "15", rx: "2", width: "12", x: "8", y: "7" } }, { tag: "path", props: { d: "M15 7V2H3v15h5" } }] }, clock: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "circle", props: { cx: "14", cy: "14", r: "11" } }, { tag: "path", props: { d: "M14 7v7l5 3" } }] }, warning: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M13 3.5a1.2 1.2 0 0 1 2 0L25.5 23a1.2 1.2 0 0 1-1 2H3.5a1.2 1.2 0 0 1-1-2Z" } }, { tag: "path", props: { d: "M14 10v6m0 4v.2" } }] }, processing: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "circle", props: { cx: "14", cy: "14", opacity: ".65", r: "10.2", stroke: "currentColor" } }, { tag: "circle", props: { cx: "14", cy: "14", fill: "currentColor", r: "5.8", stroke: "none" } }] }, stop: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "rect", props: { fill: "currentColor", height: "16", rx: "2", stroke: "none", width: "16", x: "6", y: "6" } }] }, up: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M14 22V7m-6 6 6-6 6 6" } }] }, down: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M14 6v15m-6-6 6 6 6-6" } }] }, trash: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M5 7h18M10 7V3h8v4M8 7l1 18h10l1-18M12 11v10m4-10v10" } }] }, database: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "ellipse", props: { cx: "14", cy: "6", rx: "8.8", ry: "3" } }, { tag: "path", props: { d: "M5.2 6v16c0 4 17.6 4 17.6 0V6M5.2 11c0 4 17.6 4 17.6 0M5.2 16c0 4 17.6 4 17.6 0M5.2 20c0 4 17.6 4 17.6 0" } }] }, refresh: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M24 11A10 10 0 0 0 6 6L3 10V4m0 6h6M4 17a10 10 0 0 0 18 5l3-4v6m0-6h-6" } }] }, motion: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M3 14h3m3-6v12m5-17v23m5-18v12m5-8v4" } }] }, "cloud-gpu": { tag: "svg", props: { viewBox: "0 0 32 32" }, children: [{ tag: "path", props: { d: "M9 24H7a6 6 0 0 1-1-11.9A10 10 0 0 1 25.4 11a6.8 6.8 0 0 1 1.1 13" } }, { tag: "circle", props: { cx: "17", cy: "23", r: "5.1" } }, { tag: "path", props: { d: "M17 16v3m0 8v3m-7-7h3m8 0h3M12 18l2 2m6 6 2 2m0-10-2 2m-6 6-2 2" } }] }, antenna: { tag: "svg", props: { viewBox: "0 0 32 32" }, children: [{ tag: "path", props: { d: "M6 7a13 13 0 0 0 0 18m4-14a7 7 0 0 0 0 10M26 7a13 13 0 0 1 0 18m-4-14a7 7 0 0 1 0 10M16 18l-7 13m7-13 7 13m-10-5h6" } }, { tag: "circle", props: { cx: "16", cy: "14", r: "3" } }] }, rocket: { tag: "svg", props: { viewBox: "0 0 32 32" }, children: [{ tag: "path", props: { d: "M11 22c-3-1-5-3-6-6C11 6 20 2 29 3c0 10-4 18-14 23l-4-4Z M8 12 3 13l-2 7 7-1m13 3-1 7-7 2 1-6M7 24l-4 5m7-3-2 5" } }, { tag: "circle", props: { cx: "21", cy: "11", r: "3" } }] }, login: { tag: "svg", props: { viewBox: "0 0 32 32" }, children: [{ tag: "path", props: { d: "M18 5h8v24h-8M3 17h17m-6-6 6 6-6 6" } }] }, braces: { tag: "svg", props: { viewBox: "0 0 32 32" }, children: [{ tag: "path", props: { d: "M11 4H9C5 4 7 11 6 13c-.5 1.5-1.8 2-3 3 1.2 1 2.5 1.5 3 3 1 2-1 9 3 9h2M21 4h2c4 0 2 7 3 9 .5 1.5 1.8 2 3 3-1.2 1-2.5 1.5-3 3-1 2 1 9-3 9h-2" } }] }, ok: { tag: "svg", props: { viewBox: "0 0 32 32" }, children: [{ tag: "circle", props: { cx: "16", cy: "16", r: "12.4" } }, { tag: "path", props: { d: "m10 16 4.1 4.4L23 11" } }] }, stopwatch: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "circle", props: { cx: "14", cy: "16", r: "10" } }, { tag: "path", props: { d: "M11 2h6m-3 0v4m7 2 2-3m-9 11 4-5" } }] }, levels: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M5 25V17m9 8V9m9 16V2", strokeWidth: "2.4" } }] }, mic: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "rect", props: { height: "15", rx: "4", width: "8", x: "10", y: "3" } }, { tag: "path", props: { d: "M7 13v2a7 7 0 0 0 14 0v-2M14 22v4m-4 0h8" } }] }, headphones: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M3 17v-4a11 11 0 0 1 22 0v4" } }, { tag: "rect", props: { height: "10", rx: "2.5", width: "6", x: "3", y: "15" } }, { tag: "rect", props: { height: "10", rx: "2.5", width: "6", x: "19", y: "15" } }] }, gauge: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M3.5 23a12 12 0 1 1 21 0M6 14l2 1m-1-7 2 2m5-6v3m7 1-2 2m5 4-2 1M14 18l5-6" } }, { tag: "circle", props: { cx: "14", cy: "18", r: "2" } }] }, gear: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "m9 3 .6-1h4.8l.6 1 .5 2 2 .9 1.9-.6 2.1 3.7-1.4 1.5v2.9l1.4 1.5-2.1 3.7-1.9-.6-2 .9-.5 2-.6 1H9l-.6-1-.5-2-2-.9-1.9.6-2.1-3.7 1.4-1.5v-2.9L1.9 9l2.1-3.7 1.9.6 2-.9Z" } }, { tag: "circle", props: { cx: "12", cy: "12", r: "3.4" } }] }, palette: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M20.8 11.7C20.8 6 17 2.5 11.4 2.5a9.2 9.2 0 0 0-.8 18.4c1.6.1 2.5-.9 1.9-2.2-.5-1.1-.8-2.1.2-2.9 1.1-.9 2.5-.1 4.6-.5 2.1-.4 3.5-1.7 3.5-3.6Z" } }, { tag: "circle", props: { cx: "7.2", cy: "9", r: ".9" } }, { tag: "circle", props: { cx: "10.9", cy: "6.3", r: ".9" } }, { tag: "circle", props: { cx: "15.8", cy: "7.2", r: ".9" } }, { tag: "circle", props: { cx: "17.8", cy: "11.1", r: ".9" } }] }, audio: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M3 8.5h4l5-4v15l-5-4H3Z M16 7a7 7 0 0 1 0 10 M19 4a11 11 0 0 1 0 16" } }] }, chip: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "rect", props: { height: "14", rx: "2", width: "14", x: "5", y: "5" } }, { tag: "rect", props: { height: "6", rx: ".6", width: "6", x: "9", y: "9" } }, { tag: "path", props: { d: "M8 2v3m4-3v3m4-3v3M8 19v3m4-3v3m4-3v3M2 8h3m-3 4h3m-3 4h3M19 8h3m-3 4h3m-3 4h3" } }] }, key: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M14 14a6 6 0 1 0-4-4L2 18v4h4v-3h3v-3h3Z" } }, { tag: "circle", props: { cx: "16", cy: "6", r: "1.5" } }] }, wrench: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M14 3a6 6 0 0 0-7 7L2.8 18a2.5 2.5 0 1 0 3.5 3.5L15 13a6 6 0 0 0 6-8l-4 4-3-1-1-3 3-3Z" } }] }, photo: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M14 3H4v18h17V11M6 17l5-6 4 4 3-3 3 4M19 2v6m-3-3h6" } }, { tag: "circle", props: { cx: "8", cy: "7", r: "1.3" } }] }, eye: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12Z" } }, { tag: "circle", props: { cx: "12", cy: "12", r: "3.1" } }] }, migrate: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "rect", props: { height: "13", rx: "1.4", width: "10", x: "3", y: "3" } }, { tag: "path", props: { d: "M7 7h10v6M7 10v9h6m3-6 5 5-5 4v-3h-5v-3h5Z" } }] }, radio: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M4 5h13m-7 3 5 9M8 11l-4 6h15M12 6 2 20h20L15 9M3 9c0-5 7-8 12-6M19 3l2 3-3 2" } }] }, heart: { tag: "svg", props: { viewBox: "0 0 24 24" }, children: [{ tag: "path", props: { d: "M12 21C10 18 2 13 2 7a5 5 0 0 1 10-1 5 5 0 0 1 10 1c0 6-8 11-10 14Z" } }] }, history: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M5 7A10.5 10.5 0 1 1 3.5 17M5 3v5H1M14 7v7l5 3" } }] }, cube: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "m14 2 11 6.5v12L14 27 3 20.5v-12Z M3 8.5 14 15l11-6.5M14 15v12M8.5 5.2 20 12" } }] }, file: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M6 2h10l6 6v18H6ZM16 2v7h6M10 14h3m3 0h2m-8 5h8" } }] }, list: { tag: "svg", props: { viewBox: "0 0 32 32" }, children: [{ tag: "path", props: { d: "M12 6h17M12 16h17M12 26h17M3 5l2 1-2 1M3 14h3v3H3m0 8h3v3H3" } }] }, stethoscope: { tag: "svg", props: { viewBox: "0 0 32 32" }, children: [{ tag: "path", props: { d: "M5 3v7c0 8 13 8 13 0V3M5 3h3m7 0h3M8 1v5m7-5v5M11.5 16v6a8.5 8.5 0 0 0 17 0v-6" } }, { tag: "circle", props: { cx: "28.5", cy: "13.5", r: "2.6" } }] }, crown: { tag: "svg", props: { viewBox: "0 0 44 40" }, children: [{ tag: "path", props: { d: "m5 11 6 19h22l6-19-11 10-6-18-6 18Z" } }, "\n", { tag: "path", props: { d: "M11 35h22" } }, "\n", { tag: "g", props: { fill: "currentColor", stroke: "none" }, children: [{ tag: "circle", props: { cx: "5", cy: "10", r: "2.4" } }, "\n", { tag: "circle", props: { cx: "22", cy: "3", r: "2.5" } }, "\n", { tag: "circle", props: { cx: "39", cy: "10", r: "2.4" } }, "\n"] }] }, person: { tag: "svg", props: { viewBox: "0 0 38 42" }, children: [{ tag: "circle", props: { cx: "19", cy: "11", r: "7" } }, "\n", { tag: "path", props: { d: "M5.5 36a13.5 13.5 0 0 1 27 0v1h-27Z" } }, "\n"] }, signal: { tag: "svg", props: { viewBox: "0 0 40 40" }, children: [{ tag: "g", props: { fill: "currentColor", stroke: "none" }, children: [{ tag: "rect", props: { height: "10", rx: "1", width: "5", x: "3", y: "26" } }, "\n", { tag: "rect", props: { height: "17", rx: "1", width: "5", x: "13", y: "19" } }, "\n", { tag: "rect", props: { height: "26", rx: "1", width: "5", x: "23", y: "10" } }, "\n", { tag: "rect", props: { height: "35", rx: "1", width: "5", x: "33", y: "1" } }, "\n"] }] }, leave: { tag: "svg", props: { viewBox: "0 0 36 36" }, children: [{ tag: "path", props: { d: "M17 4H6a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h11M16 18h17m-6-6 6 6-6 6" } }, "\n"] }, prev: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "m18 5-9 9 9 9" } }] }, sparkle: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M14 2c.8 8 3 11 11 12-8 1-10.2 4-11 12-1-8-3-11-11-12 8-1 10-4 11-12Z" } }] }, studio: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M13 7c.8 6 3 8.2 9 9-6 .8-8.2 3-9 9-1-6-3-8.2-9-9 6-.8 8-3 9-9Z M23 1v7M19.5 4.5h7" } }] }, note: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M10 22V6l13-3v16M10 10l13-3" } }, { tag: "ellipse", props: { cx: "6.5", cy: "22", rx: "3.5", ry: "3" } }, { tag: "ellipse", props: { cx: "19.5", cy: "19.5", rx: "3.5", ry: "3" } }] }, rhythm: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "path", props: { d: "M2 15h5l3-8 5 16 4-20 4 15 3-5h3" } }] }, timer: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "circle", props: { cx: "14", cy: "16", r: "10" } }, { tag: "path", props: { d: "M11 2h6M14 2v4m7.5 2 2.5-3M14 16l5-5" } }] }, target: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "circle", props: { cx: "14", cy: "14", r: "9.5" } }, { tag: "circle", props: { cx: "14", cy: "14", r: "3.3" } }, { tag: "path", props: { d: "M14 1v6m0 14v6M1 14h6m14 0h6M6 6l1.5 1.5m13 13L22 22M22 6l-1.5 1.5m-13 13L6 22" } }] }, user: { tag: "svg", props: { viewBox: "0 0 28 28" }, children: [{ tag: "circle", props: { cx: "14", cy: "9", r: "5" } }, { tag: "path", props: { d: "M5 26c1-8 5-11 9-11s8 3 9 11Z" } }] }, users: { tag: "svg", props: { viewBox: "0 0 32 32" }, children: [{ tag: "circle", props: { cx: "12", cy: "10", r: "5" } }, { tag: "circle", props: { cx: "24", cy: "12", r: "4" } }, { tag: "path", props: { d: "M2 29c0-8 4-12 10-12s10 4 10 12M21 20c5-3 10 2 10 9" } }] } };
|
|
59
|
+
|
|
60
|
+
// src/artwork/illustrations.json
|
|
61
|
+
var illustrations_default = { planet: { tag: "svg", props: { "aria-label": "\u041A\u0440\u0430\u0441\u043D\u044B\u0439 \u043C\u0435\u0441\u044F\u0446 \u043D\u0430\u0434 \u043E\u0431\u043B\u0430\u043A\u0430\u043C\u0438", role: "img", viewBox: "0 0 240 204" }, children: [{ tag: "defs", children: [{ tag: "symbol", props: { id: "pf-art-1", viewBox: "0 0 240 204" }, children: ["\n", { tag: "defs", children: ["\n", { tag: "linearGradient", props: { id: "pf-art-1-sky", x1: "0", x2: ".15", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#010409" } }, { tag: "stop", props: { offset: ".38", stopColor: "#04060b" } }, { tag: "stop", props: { offset: ".69", stopColor: "#2d0b1a" } }, { tag: "stop", props: { offset: ".85", stopColor: "#9b253e" } }, { tag: "stop", props: { offset: "1", stopColor: "#070d15" } }] }, "\n", { tag: "radialGradient", props: { id: "pf-art-1-horizon" }, children: [{ tag: "stop", props: { stopColor: "#ff6476", stopOpacity: ".83" } }, { tag: "stop", props: { offset: ".38", stopColor: "#e4284e", stopOpacity: ".42" } }, { tag: "stop", props: { offset: "1", stopColor: "#c5153f", stopOpacity: "0" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-1-cloud-fill", x1: "0", x2: "0", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#59182d" } }, { tag: "stop", props: { offset: ".18", stopColor: "#1e0c1c" } }, { tag: "stop", props: { offset: ".4", stopColor: "#040a11" } }, { tag: "stop", props: { offset: "1", stopColor: "#03060c" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-1-silk" }, children: [{ tag: "stop", props: { stopColor: "#8e0723", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".23", stopColor: "#bd0e32" } }, { tag: "stop", props: { offset: ".53", stopColor: "#ff4b63" } }, { tag: "stop", props: { offset: ".58", stopColor: "#ffb4b8" } }, { tag: "stop", props: { offset: ".72", stopColor: "#da1741" } }, { tag: "stop", props: { offset: "1", stopColor: "#340819", stopOpacity: "0" } }] }, "\n"] }, "\n", { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-1-sky)" } }, "\n", { tag: "circle", props: { cx: "58.44", cy: "90.40", fill: "#c39fb5", opacity: "0.51", r: "0.21" } }, { tag: "circle", props: { cx: "199.82", cy: "46.05", fill: "#ec5375", opacity: "0.37", r: "0.58" } }, { tag: "circle", props: { cx: "175.55", cy: "98.66", fill: "#45809c", opacity: "0.39", r: "0.45" } }, { tag: "circle", props: { cx: "92.82", cy: "49.99", fill: "#da385c", opacity: "0.10", r: "0.49" } }, { tag: "circle", props: { cx: "6.80", cy: "46.48", fill: "#c39fb5", opacity: "0.51", r: "0.37" } }, { tag: "circle", props: { cx: "83.35", cy: "53.94", fill: "#c39fb5", opacity: "0.50", r: "0.36" } }, { tag: "circle", props: { cx: "183.43", cy: "5.31", fill: "#da385c", opacity: "0.18", r: "0.63" } }, { tag: "circle", props: { cx: "217.59", cy: "177.51", fill: "#da385c", opacity: "0.51", r: "0.56" } }, { tag: "circle", props: { cx: "41.97", cy: "177.52", fill: "#ec5375", opacity: "0.11", r: "0.37" } }, { tag: "circle", props: { cx: "223.72", cy: "164.09", fill: "#ec5375", opacity: "0.28", r: "0.64" } }, { tag: "circle", props: { cx: "216.99", cy: "98.96", fill: "#ec5375", opacity: "0.28", r: "0.21" } }, { tag: "circle", props: { cx: "118.87", cy: "93.40", fill: "#ec5375", opacity: "0.11", r: "0.35" } }, { tag: "circle", props: { cx: "199.18", cy: "141.47", fill: "#da385c", opacity: "0.57", r: "0.65" } }, { tag: "circle", props: { cx: "125.70", cy: "146.49", fill: "#da385c", opacity: "0.52", r: "0.61" } }, { tag: "circle", props: { cx: "78.62", cy: "95.13", fill: "#ec5375", opacity: "0.53", r: "0.59" } }, { tag: "circle", props: { cx: "134.58", cy: "154.44", fill: "#ec5375", opacity: "0.46", r: "0.24" } }, { tag: "circle", props: { cx: "51.14", cy: "176.13", fill: "#ec5375", opacity: "0.33", r: "0.15" } }, { tag: "circle", props: { cx: "235.69", cy: "99.27", fill: "#ec5375", opacity: "0.25", r: "0.59" } }, { tag: "circle", props: { cx: "187.05", cy: "98.99", fill: "#c39fb5", opacity: "0.54", r: "0.59" } }, { tag: "circle", props: { cx: "26.99", cy: "83.58", fill: "#c39fb5", opacity: "0.11", r: "0.63" } }, { tag: "circle", props: { cx: "162.60", cy: "130.66", fill: "#45809c", opacity: "0.35", r: "0.42" } }, { tag: "circle", props: { cx: "138.92", cy: "106.76", fill: "#ec5375", opacity: "0.32", r: "0.35" } }, { tag: "circle", props: { cx: "4.03", cy: "139.58", fill: "#ec5375", opacity: "0.49", r: "0.27" } }, { tag: "circle", props: { cx: "96.69", cy: "154.29", fill: "#45809c", opacity: "0.26", r: "0.32" } }, { tag: "circle", props: { cx: "132.63", cy: "73.57", fill: "#da385c", opacity: "0.26", r: "0.51" } }, { tag: "circle", props: { cx: "1.31", cy: "23.57", fill: "#ec5375", opacity: "0.21", r: "0.58" } }, { tag: "circle", props: { cx: "62.61", cy: "70.37", fill: "#45809c", opacity: "0.51", r: "0.42" } }, { tag: "circle", props: { cx: "7.95", cy: "58.35", fill: "#ec5375", opacity: "0.24", r: "0.61" } }, { tag: "circle", props: { cx: "17.36", cy: "87.15", fill: "#c39fb5", opacity: "0.49", r: "0.40" } }, { tag: "circle", props: { cx: "83.62", cy: "163.74", fill: "#da385c", opacity: "0.34", r: "0.16" } }, { tag: "circle", props: { cx: "57.93", cy: "138.66", fill: "#da385c", opacity: "0.50", r: "0.22" } }, { tag: "circle", props: { cx: "211.78", cy: "168.94", fill: "#c39fb5", opacity: "0.11", r: "0.50" } }, { tag: "circle", props: { cx: "237.78", cy: "138.52", fill: "#ec5375", opacity: "0.17", r: "0.37" } }, { tag: "circle", props: { cx: "100.30", cy: "87.96", fill: "#ec5375", opacity: "0.33", r: "0.15" } }, { tag: "circle", props: { cx: "18.04", cy: "177.08", fill: "#c39fb5", opacity: "0.35", r: "0.18" } }, { tag: "circle", props: { cx: "205.31", cy: "118.09", fill: "#ec5375", opacity: "0.36", r: "0.44" } }, { tag: "circle", props: { cx: "85.50", cy: "143.07", fill: "#da385c", opacity: "0.34", r: "0.62" } }, { tag: "circle", props: { cx: "160.80", cy: "86.72", fill: "#ec5375", opacity: "0.18", r: "0.41" } }, { tag: "circle", props: { cx: "46.36", cy: "40.37", fill: "#da385c", opacity: "0.51", r: "0.21" } }, { tag: "circle", props: { cx: "204.14", cy: "131.91", fill: "#c39fb5", opacity: "0.11", r: "0.37" } }, { tag: "circle", props: { cx: "3.99", cy: "149.63", fill: "#45809c", opacity: "0.14", r: "0.28" } }, { tag: "circle", props: { cx: "22.73", cy: "1.59", fill: "#45809c", opacity: "0.46", r: "0.15" } }, { tag: "circle", props: { cx: "19.90", cy: "136.98", fill: "#ec5375", opacity: "0.38", r: "0.48" } }, { tag: "circle", props: { cx: "69.16", cy: "114.19", fill: "#da385c", opacity: "0.26", r: "0.56" } }, { tag: "circle", props: { cx: "106.51", cy: "8.07", fill: "#da385c", opacity: "0.26", r: "0.28" } }, { tag: "circle", props: { cx: "104.87", cy: "59.54", fill: "#ec5375", opacity: "0.56", r: "0.22" } }, { tag: "circle", props: { cx: "181.30", cy: "173.94", fill: "#da385c", opacity: "0.31", r: "0.61" } }, { tag: "circle", props: { cx: "213.89", cy: "150.93", fill: "#ec5375", opacity: "0.11", r: "0.48" } }, { tag: "circle", props: { cx: "153.60", cy: "169.60", fill: "#da385c", opacity: "0.34", r: "0.21" } }, { tag: "circle", props: { cx: "182.30", cy: "134.55", fill: "#da385c", opacity: "0.41", r: "0.28" } }, { tag: "circle", props: { cx: "6.23", cy: "71.96", fill: "#45809c", opacity: "0.32", r: "0.28" } }, { tag: "circle", props: { cx: "184.39", cy: "139.72", fill: "#da385c", opacity: "0.33", r: "0.46" } }, { tag: "circle", props: { cx: "14.15", cy: "17.99", fill: "#da385c", opacity: "0.31", r: "0.63" } }, { tag: "circle", props: { cx: "195.48", cy: "169.01", fill: "#45809c", opacity: "0.18", r: "0.51" } }, { tag: "circle", props: { cx: "201.65", cy: "178.36", fill: "#ec5375", opacity: "0.20", r: "0.48" } }, { tag: "circle", props: { cx: "22.17", cy: "113.05", fill: "#45809c", opacity: "0.41", r: "0.53" } }, { tag: "circle", props: { cx: "7.19", cy: "40.06", fill: "#da385c", opacity: "0.19", r: "0.24" } }, { tag: "circle", props: { cx: "210.23", cy: "17.03", fill: "#c39fb5", opacity: "0.10", r: "0.37" } }, { tag: "circle", props: { cx: "146.24", cy: "175.97", fill: "#45809c", opacity: "0.22", r: "0.17" } }, { tag: "circle", props: { cx: "99.84", cy: "154.05", fill: "#da385c", opacity: "0.26", r: "0.50" } }, { tag: "circle", props: { cx: "183.95", cy: "84.67", fill: "#da385c", opacity: "0.54", r: "0.41" } }, { tag: "circle", props: { cx: "64.31", cy: "130.77", fill: "#c39fb5", opacity: "0.11", r: "0.26" } }, { tag: "circle", props: { cx: "68.79", cy: "45.22", fill: "#ec5375", opacity: "0.23", r: "0.60" } }, { tag: "circle", props: { cx: "157.04", cy: "60.46", fill: "#ec5375", opacity: "0.51", r: "0.37" } }, { tag: "circle", props: { cx: "31.88", cy: "67.22", fill: "#45809c", opacity: "0.16", r: "0.52" } }, { tag: "circle", props: { cx: "204.56", cy: "23.14", fill: "#ec5375", opacity: "0.54", r: "0.34" } }, { tag: "circle", props: { cx: "9.42", cy: "11.78", fill: "#45809c", opacity: "0.35", r: "0.18" } }, { tag: "circle", props: { cx: "161.86", cy: "64.15", fill: "#c39fb5", opacity: "0.46", r: "0.27" } }, { tag: "circle", props: { cx: "52.97", cy: "164.02", fill: "#ec5375", opacity: "0.54", r: "0.55" } }, { tag: "circle", props: { cx: "71.96", cy: "152.85", fill: "#c39fb5", opacity: "0.46", r: "0.30" } }, { tag: "circle", props: { cx: "88.98", cy: "97.14", fill: "#da385c", opacity: "0.22", r: "0.42" } }, { tag: "circle", props: { cx: "224.14", cy: "163.96", fill: "#45809c", opacity: "0.41", r: "0.17" } }, { tag: "circle", props: { cx: "80.33", cy: "112.87", fill: "#45809c", opacity: "0.47", r: "0.32" } }, { tag: "circle", props: { cx: "126.81", cy: "153.71", fill: "#ec5375", opacity: "0.21", r: "0.18" } }, { tag: "circle", props: { cx: "204.74", cy: "165.26", fill: "#45809c", opacity: "0.20", r: "0.58" } }, { tag: "circle", props: { cx: "96.35", cy: "56.64", fill: "#ec5375", opacity: "0.51", r: "0.29" } }, { tag: "circle", props: { cx: "196.03", cy: "94.15", fill: "#45809c", opacity: "0.41", r: "0.64" } }, { tag: "circle", props: { cx: "223.85", cy: "98.57", fill: "#ec5375", opacity: "0.30", r: "0.24" } }, { tag: "circle", props: { cx: "223.73", cy: "151.23", fill: "#da385c", opacity: "0.55", r: "0.60" } }, { tag: "circle", props: { cx: "128.14", cy: "102.11", fill: "#c39fb5", opacity: "0.29", r: "0.28" } }, { tag: "circle", props: { cx: "232.45", cy: "41.82", fill: "#c39fb5", opacity: "0.40", r: "0.31" } }, { tag: "circle", props: { cx: "64.67", cy: "62.02", fill: "#45809c", opacity: "0.27", r: "0.45" } }, { tag: "circle", props: { cx: "193.87", cy: "3.41", fill: "#ec5375", opacity: "0.50", r: "0.41" } }, { tag: "circle", props: { cx: "45.95", cy: "166.83", fill: "#c39fb5", opacity: "0.47", r: "0.44" } }, { tag: "circle", props: { cx: "145.95", cy: "138.97", fill: "#da385c", opacity: "0.22", r: "0.31" } }, { tag: "circle", props: { cx: "235.78", cy: "176.91", fill: "#da385c", opacity: "0.33", r: "0.37" } }, { tag: "circle", props: { cx: "53.92", cy: "103.56", fill: "#ec5375", opacity: "0.39", r: "0.24" } }, { tag: "circle", props: { cx: "147.70", cy: "69.96", fill: "#da385c", opacity: "0.51", r: "0.58" } }, { tag: "circle", props: { cx: "54.81", cy: "137.14", fill: "#ec5375", opacity: "0.28", r: "0.25" } }, { tag: "circle", props: { cx: "59.48", cy: "52.82", fill: "#45809c", opacity: "0.43", r: "0.60" } }, { tag: "circle", props: { cx: "135.02", cy: "4.35", fill: "#da385c", opacity: "0.16", r: "0.63" } }, { tag: "circle", props: { cx: "177.30", cy: "131.75", fill: "#da385c", opacity: "0.11", r: "0.16" } }, { tag: "circle", props: { cx: "146.97", cy: "104.14", fill: "#da385c", opacity: "0.60", r: "0.46" } }, { tag: "circle", props: { cx: "98.39", cy: "50.53", fill: "#da385c", opacity: "0.36", r: "0.17" } }, { tag: "circle", props: { cx: "100.39", cy: "29.42", fill: "#45809c", opacity: "0.28", r: "0.38" } }, { tag: "ellipse", props: { cx: "118", cy: "125", fill: "url(#pf-art-1-horizon)", opacity: ".44", rx: "104", ry: "61" } }, { tag: "defs", children: ["\n", { tag: "radialGradient", props: { cx: ".14", cy: ".13", id: "pf-art-1-moon-fill", r: "1.1" }, children: [{ tag: "stop", props: { stopColor: "#05080e" } }, { tag: "stop", props: { offset: ".55", stopColor: "#110910" } }, { tag: "stop", props: { offset: ".85", stopColor: "#411020" } }, { tag: "stop", props: { offset: "1", stopColor: "#dc264a" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-1-moon-rim", x1: "0", x2: ".6", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#9c123a", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".2", stopColor: "#ff315c" } }, { tag: "stop", props: { offset: ".6", stopColor: "#fff1e6" } }, { tag: "stop", props: { offset: ".85", stopColor: "#ff8097" } }, { tag: "stop", props: { offset: "1", stopColor: "#ab0b30", stopOpacity: "0" } }] }, "\n", { tag: "clipPath", props: { id: "pf-art-1-moon-clip" }, children: [{ tag: "circle", props: { cx: "110", cy: "80", r: "47" } }] }, "\n", { tag: "radialGradient", props: { id: "pf-art-1-moon-light" }, children: [{ tag: "stop", props: { stopColor: "#ff214b", stopOpacity: ".4" } }, { tag: "stop", props: { offset: ".55", stopColor: "#e90d3b", stopOpacity: ".17" } }, { tag: "stop", props: { offset: "1", stopColor: "#e90d3b", stopOpacity: "0" } }] }, "\n"] }, "\n", { tag: "circle", props: { cx: "110", cy: "80", fill: "url(#pf-art-1-moon-light)", r: "64.86" } }, "\n", { tag: "circle", props: { cx: "110", cy: "80", fill: "url(#pf-art-1-moon-fill)", r: "47" } }, "\n", { tag: "g", props: { clipPath: "url(#pf-art-1-moon-clip)" }, children: [{ tag: "path", props: { d: "M101.40 83.95l3.1 0.9 0.9 1.9", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M65.74 43.97l0.5 0.2 0.2 0.3", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M156.01 98.19l1.6 0.5 0.5 1.0", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M93.66 39.91l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M69.59 41.89l3.4 1.0 1.0 2.0", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M154.14 36.29l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.54" } }, { tag: "path", props: { d: "M80.73 57.28l1.2 0.4 0.4 0.7", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M139.77 74.02l0.6 0.2 0.2 0.4", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.66" } }, { tag: "path", props: { d: "M124.42 63.89l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M113.81 54.93l1.9 0.6 0.6 1.1", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M95.52 110.04l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.11", stroke: "#b92d4c", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M83.98 34.37l2.8 0.8 0.8 1.7", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M156.50 66.53l1.1 0.3 0.3 0.7", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M141.78 90.03l0.7 0.2 0.2 0.4", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M121.57 44.51l1.0 0.3 0.3 0.6", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M121.25 60.61l2.4 0.7 0.7 1.5", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.44" } }, { tag: "path", props: { d: "M88.75 97.69l2.4 0.7 0.7 1.4", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M141.08 59.26l3.4 1.0 1.0 2.0", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M111.15 114.30l2.3 0.7 0.7 1.4", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M89.71 61.19l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M69.84 56.70l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M104.51 94.19l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.34" } }, { tag: "path", props: { d: "M135.45 59.19l2.1 0.6 0.6 1.3", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M128.93 85.65l0.7 0.2 0.2 0.4", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.44" } }, { tag: "path", props: { d: "M76.12 121.72l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M112.59 63.00l1.5 0.4 0.4 0.9", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.55" } }, { tag: "path", props: { d: "M70.42 118.73l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M98.92 123.49l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.17", stroke: "#b92d4c", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M83.74 98.00l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.30" } }, { tag: "path", props: { d: "M113.35 52.92l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M74.34 69.79l2.0 0.6 0.6 1.2", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M75.05 119.50l2.4 0.7 0.7 1.4", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M93.25 88.81l1.5 0.4 0.4 0.9", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M64.53 107.79l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.31" } }, { tag: "path", props: { d: "M115.86 113.63l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.17", stroke: "#b92d4c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M151.54 116.43l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M77.01 57.76l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M79.17 49.80l1.9 0.6 0.6 1.1", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M137.17 97.74l3.1 0.9 0.9 1.9", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.55" } }, { tag: "path", props: { d: "M106.02 108.39l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M108.15 93.30l1.0 0.3 0.3 0.6", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M103.36 36.10l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.17", stroke: "#b92d4c", strokeWidth: "0.77" } }, { tag: "path", props: { d: "M63.43 108.44l1.4 0.4 0.4 0.8", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M125.47 63.48l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M109.73 33.51l2.3 0.7 0.7 1.4", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M134.26 65.01l2.5 0.8 0.8 1.5", fill: "none", opacity: "0.11", stroke: "#b92d4c", strokeWidth: "0.77" } }, { tag: "path", props: { d: "M137.97 77.86l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.34" } }, { tag: "path", props: { d: "M78.24 57.35l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M153.50 37.94l0.6 0.2 0.2 0.3", fill: "none", opacity: "0.20", stroke: "#b92d4c", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M141.28 79.65l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M146.07 83.13l0.6 0.2 0.2 0.4", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.31" } }, { tag: "path", props: { d: "M131.57 93.04l0.8 0.3 0.3 0.5", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M122.31 87.33l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M150.14 88.53l2.5 0.8 0.8 1.5", fill: "none", opacity: "0.30", stroke: "#b92d4c", strokeWidth: "0.76" } }, { tag: "path", props: { d: "M113.09 43.59l2.1 0.6 0.6 1.2", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.76" } }, { tag: "path", props: { d: "M87.01 58.86l1.2 0.4 0.4 0.7", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M71.03 81.06l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.31" } }, { tag: "path", props: { d: "M64.31 98.44l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.31" } }, { tag: "path", props: { d: "M81.10 86.46l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.51" } }, { tag: "path", props: { d: "M66.68 63.68l2.4 0.7 0.7 1.4", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M77.96 36.95l2.8 0.8 0.8 1.7", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.66" } }, { tag: "path", props: { d: "M153.47 61.81l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.44" } }, { tag: "path", props: { d: "M148.23 75.81l2.3 0.7 0.7 1.4", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M85.47 122.71l2.5 0.8 0.8 1.5", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M65.09 41.11l3.4 1.0 1.0 2.1", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.58" } }, { tag: "path", props: { d: "M85.60 112.03l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M149.27 86.45l0.9 0.3 0.3 0.6", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M149.80 84.65l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M70.33 37.30l0.8 0.2 0.2 0.5", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M65.13 70.67l2.4 0.7 0.7 1.4", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M95.95 122.67l0.5 0.2 0.2 0.3", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M123.75 72.25l2.9 0.9 0.9 1.7", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M99.68 93.28l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M106.25 125.88l3.4 1.0 1.0 2.0", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M79.72 73.67l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M91.15 71.56l2.8 0.8 0.8 1.7", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M98.67 105.84l2.5 0.8 0.8 1.5", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M97.73 111.29l0.6 0.2 0.2 0.3", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M90.62 69.62l2.2 0.7 0.7 1.3", fill: "none", opacity: "0.27", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M89.78 97.92l3.4 1.0 1.0 2.0", fill: "none", opacity: "0.27", stroke: "#b92d4c", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M79.51 75.61l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.76" } }, { tag: "path", props: { d: "M111.36 124.30l0.9 0.3 0.3 0.6", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.34" } }, { tag: "path", props: { d: "M67.28 44.88l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.31" } }, { tag: "path", props: { d: "M68.33 120.56l2.0 0.6 0.6 1.2", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M85.39 115.82l0.6 0.2 0.2 0.4", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M140.45 120.69l3.4 1.0 1.0 2.0", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M143.21 109.35l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.34" } }, { tag: "path", props: { d: "M100.79 112.27l2.6 0.8 0.8 1.5", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.51" } }, { tag: "path", props: { d: "M104.75 111.42l1.4 0.4 0.4 0.8", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M118.40 62.42l1.5 0.5 0.5 0.9", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M71.88 96.09l2.5 0.7 0.7 1.5", fill: "none", opacity: "0.17", stroke: "#b92d4c", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M118.43 107.68l3.5 1.0 1.0 2.1", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M139.28 112.39l2.5 0.8 0.8 1.5", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M115.67 102.68l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M136.38 95.68l0.6 0.2 0.2 0.3", fill: "none", opacity: "0.17", stroke: "#b92d4c", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M124.34 44.57l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M88.62 54.99l0.9 0.3 0.3 0.6", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M69.54 43.67l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M154.83 109.19l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M102.15 36.04l0.8 0.2 0.2 0.5", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.44" } }] }, { tag: "path", props: { d: "M100.23 34.03A47 47 0 1 1 64.40 91.37", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".85", stroke: "#ff234f", strokeWidth: "9" } }, { tag: "path", props: { d: "M100.23 34.03A47 47 0 1 1 64.40 91.37", fill: "none", stroke: "url(#pf-art-1-moon-rim)", strokeWidth: "2.35" } }, { tag: "path", props: { d: "M151.08 59.07A46.1 46.1 0 0 1 77.40 112.60", fill: "none", opacity: ".8", stroke: "#ffb1bb", strokeWidth: ".6" } }, { tag: "path", props: { d: "M0.0,118.7 4.0,125.6 8.0,123.4 12.0,123.0 16.0,124.8 20.0,121.3 24.0,108.9 28.0,112.7 32.0,118.5 36.0,114.6 40.0,118.4 44.0,122.2 48.0,124.4 52.0,118.3 56.0,120.9 60.0,120.5 64.0,109.9 68.0,108.8 72.0,114.8 76.0,119.2 80.0,117.6 84.0,120.6 88.0,128.0 92.0,118.9 96.0,118.3 100.0,117.1 104.0,112.0 108.0,111.5 112.0,112.5 116.0,117.9 120.0,120.7 124.0,122.4 128.0,125.0 132.0,125.5 136.0,116.3 140.0,117.3 144.0,114.6 148.0,113.2 152.0,113.0 156.0,122.4 160.0,123.4 164.0,118.6 168.0,123.2 172.0,122.8 176.0,114.8 180.0,111.0 184.0,114.8 188.0,114.0 192.0,108.7 196.0,119.4 200.0,122.9 204.0,120.0 208.0,123.0 212.0,124.0 216.0,117.6 220.0,111.5 224.0,114.8 228.0,113.3 232.0,115.5 236.0,113.9 240.0,125.8L245 210H-5Z", fill: "url(#pf-art-1-cloud-fill)" } }, { tag: "path", props: { d: "M0.0,118.7 4.0,125.6 8.0,123.4 12.0,123.0 16.0,124.8 20.0,121.3 24.0,108.9 28.0,112.7 32.0,118.5 36.0,114.6 40.0,118.4 44.0,122.2 48.0,124.4 52.0,118.3 56.0,120.9 60.0,120.5 64.0,109.9 68.0,108.8 72.0,114.8 76.0,119.2 80.0,117.6 84.0,120.6 88.0,128.0 92.0,118.9 96.0,118.3 100.0,117.1 104.0,112.0 108.0,111.5 112.0,112.5 116.0,117.9 120.0,120.7 124.0,122.4 128.0,125.0 132.0,125.5 136.0,116.3 140.0,117.3 144.0,114.6 148.0,113.2 152.0,113.0 156.0,122.4 160.0,123.4 164.0,118.6 168.0,123.2 172.0,122.8 176.0,114.8 180.0,111.0 184.0,114.8 188.0,114.0 192.0,108.7 196.0,119.4 200.0,122.9 204.0,120.0 208.0,123.0 212.0,124.0 216.0,117.6 220.0,111.5 224.0,114.8 228.0,113.3 232.0,115.5 236.0,113.9 240.0,125.8", fill: "none", filter: "url(#pf-art-soft)", opacity: ".55", stroke: "#da3554", strokeWidth: "2.4" } }, { tag: "ellipse", props: { cx: "202.77", cy: "122.27", fill: "#170e1b", opacity: ".55", rx: "13.45", ry: "3.83" } }, { tag: "ellipse", props: { cx: "108.68", cy: "132.62", fill: "#170e1b", opacity: ".55", rx: "11.48", ry: "6.77" } }, { tag: "ellipse", props: { cx: "181.38", cy: "135.94", fill: "#431428", opacity: ".55", rx: "15.30", ry: "3.72" } }, { tag: "ellipse", props: { cx: "214.25", cy: "125.76", fill: "#431428", opacity: ".55", rx: "9.55", ry: "4.95" } }, { tag: "ellipse", props: { cx: "206.33", cy: "122.55", fill: "#431428", opacity: ".55", rx: "15.35", ry: "2.46" } }, { tag: "ellipse", props: { cx: "123.09", cy: "127.44", fill: "#170e1b", opacity: ".55", rx: "5.78", ry: "3.38" } }, { tag: "ellipse", props: { cx: "74.99", cy: "126.75", fill: "#080c13", opacity: ".55", rx: "6.13", ry: "2.39" } }, { tag: "ellipse", props: { cx: "173.07", cy: "126.64", fill: "#170e1b", opacity: ".55", rx: "9.81", ry: "5.60" } }, { tag: "ellipse", props: { cx: "236.81", cy: "130.00", fill: "#431428", opacity: ".55", rx: "8.87", ry: "3.19" } }, { tag: "ellipse", props: { cx: "198.31", cy: "128.83", fill: "#170e1b", opacity: ".55", rx: "9.06", ry: "2.28" } }, { tag: "ellipse", props: { cx: "192.40", cy: "127.01", fill: "#080c13", opacity: ".55", rx: "6.48", ry: "6.91" } }, { tag: "ellipse", props: { cx: "151.30", cy: "133.82", fill: "#080c13", opacity: ".55", rx: "5.28", ry: "4.17" } }, { tag: "ellipse", props: { cx: "14.10", cy: "128.31", fill: "#080c13", opacity: ".55", rx: "5.69", ry: "6.61" } }, { tag: "ellipse", props: { cx: "234.24", cy: "128.80", fill: "#761a33", opacity: ".55", rx: "9.86", ry: "5.65" } }, { tag: "ellipse", props: { cx: "65.77", cy: "129.05", fill: "#080c13", opacity: ".55", rx: "14.82", ry: "2.56" } }, { tag: "ellipse", props: { cx: "150.47", cy: "129.49", fill: "#431428", opacity: ".55", rx: "8.06", ry: "2.45" } }, { tag: "ellipse", props: { cx: "123.64", cy: "130.22", fill: "#431428", opacity: ".55", rx: "10.03", ry: "2.32" } }, { tag: "ellipse", props: { cx: "166.70", cy: "131.96", fill: "#431428", opacity: ".55", rx: "13.12", ry: "3.82" } }, { tag: "ellipse", props: { cx: "200.46", cy: "125.97", fill: "#431428", opacity: ".55", rx: "15.77", ry: "5.58" } }, { tag: "ellipse", props: { cx: "155.93", cy: "130.71", fill: "#431428", opacity: ".55", rx: "4.14", ry: "4.73" } }, { tag: "path", props: { d: "M0.0,142.4 4.0,146.8 8.0,139.9 12.0,136.5 16.0,139.5 20.0,132.9 24.0,126.2 28.0,132.4 32.0,143.5 36.0,138.6 40.0,143.8 44.0,145.5 48.0,146.4 52.0,134.6 56.0,134.0 60.0,134.5 64.0,127.3 68.0,134.2 72.0,138.9 76.0,142.1 80.0,142.7 84.0,143.3 88.0,142.7 92.0,137.0 96.0,130.7 100.0,135.7 104.0,135.9 108.0,130.7 112.0,141.9 116.0,144.6 120.0,142.6 124.0,143.8 128.0,143.1 132.0,141.5 136.0,127.6 140.0,132.7 144.0,136.5 148.0,130.7 152.0,138.4 156.0,144.2 160.0,147.0 164.0,143.0 168.0,144.5 172.0,137.7 176.0,133.1 180.0,126.4 184.0,139.1 188.0,136.6 192.0,136.4 196.0,143.7 200.0,147.1 204.0,141.9 208.0,134.7 212.0,137.2 216.0,134.6 220.0,126.7 224.0,133.0 228.0,142.9 232.0,140.5 236.0,144.0 240.0,149.4L245 210H-5Z", fill: "url(#pf-art-1-cloud-fill)" } }, { tag: "path", props: { d: "M0.0,142.4 4.0,146.8 8.0,139.9 12.0,136.5 16.0,139.5 20.0,132.9 24.0,126.2 28.0,132.4 32.0,143.5 36.0,138.6 40.0,143.8 44.0,145.5 48.0,146.4 52.0,134.6 56.0,134.0 60.0,134.5 64.0,127.3 68.0,134.2 72.0,138.9 76.0,142.1 80.0,142.7 84.0,143.3 88.0,142.7 92.0,137.0 96.0,130.7 100.0,135.7 104.0,135.9 108.0,130.7 112.0,141.9 116.0,144.6 120.0,142.6 124.0,143.8 128.0,143.1 132.0,141.5 136.0,127.6 140.0,132.7 144.0,136.5 148.0,130.7 152.0,138.4 156.0,144.2 160.0,147.0 164.0,143.0 168.0,144.5 172.0,137.7 176.0,133.1 180.0,126.4 184.0,139.1 188.0,136.6 192.0,136.4 196.0,143.7 200.0,147.1 204.0,141.9 208.0,134.7 212.0,137.2 216.0,134.6 220.0,126.7 224.0,133.0 228.0,142.9 232.0,140.5 236.0,144.0 240.0,149.4", fill: "none", filter: "url(#pf-art-soft)", opacity: ".55", stroke: "#ed4d68", strokeWidth: "2" } }, { tag: "ellipse", props: { cx: "131.34", cy: "156.47", fill: "#431428", opacity: ".55", rx: "10.60", ry: "3.51" } }, { tag: "ellipse", props: { cx: "130.85", cy: "147.09", fill: "#080c13", opacity: ".55", rx: "10.97", ry: "6.79" } }, { tag: "ellipse", props: { cx: "100.58", cy: "154.19", fill: "#080c13", opacity: ".55", rx: "11.71", ry: "3.85" } }, { tag: "ellipse", props: { cx: "37.63", cy: "147.74", fill: "#080c13", opacity: ".55", rx: "9.72", ry: "3.00" } }, { tag: "ellipse", props: { cx: "146.07", cy: "147.27", fill: "#170e1b", opacity: ".55", rx: "14.72", ry: "2.00" } }, { tag: "ellipse", props: { cx: "78.25", cy: "155.75", fill: "#761a33", opacity: ".55", rx: "10.47", ry: "3.63" } }, { tag: "ellipse", props: { cx: "103.01", cy: "156.65", fill: "#761a33", opacity: ".55", rx: "9.92", ry: "4.40" } }, { tag: "ellipse", props: { cx: "92.13", cy: "154.82", fill: "#431428", opacity: ".55", rx: "5.91", ry: "4.97" } }, { tag: "ellipse", props: { cx: "119.11", cy: "148.23", fill: "#761a33", opacity: ".55", rx: "7.83", ry: "6.92" } }, { tag: "ellipse", props: { cx: "223.09", cy: "144.15", fill: "#761a33", opacity: ".55", rx: "4.29", ry: "5.30" } }, { tag: "ellipse", props: { cx: "58.92", cy: "142.60", fill: "#761a33", opacity: ".55", rx: "5.64", ry: "3.96" } }, { tag: "ellipse", props: { cx: "127.82", cy: "146.11", fill: "#080c13", opacity: ".55", rx: "15.22", ry: "5.91" } }, { tag: "ellipse", props: { cx: "117.63", cy: "154.66", fill: "#761a33", opacity: ".55", rx: "12.66", ry: "3.43" } }, { tag: "ellipse", props: { cx: "145.93", cy: "149.12", fill: "#170e1b", opacity: ".55", rx: "11.74", ry: "5.02" } }, { tag: "ellipse", props: { cx: "3.88", cy: "143.89", fill: "#431428", opacity: ".55", rx: "7.39", ry: "5.54" } }, { tag: "ellipse", props: { cx: "175.51", cy: "142.40", fill: "#080c13", opacity: ".55", rx: "8.20", ry: "5.41" } }, { tag: "ellipse", props: { cx: "8.74", cy: "145.79", fill: "#080c13", opacity: ".55", rx: "9.47", ry: "6.58" } }, { tag: "ellipse", props: { cx: "3.49", cy: "153.68", fill: "#761a33", opacity: ".55", rx: "9.13", ry: "4.88" } }, { tag: "ellipse", props: { cx: "206.09", cy: "154.62", fill: "#080c13", opacity: ".55", rx: "9.71", ry: "5.41" } }, { tag: "ellipse", props: { cx: "215.74", cy: "148.98", fill: "#170e1b", opacity: ".55", rx: "13.10", ry: "3.52" } }, { tag: "path", props: { d: "M0.0,172.9 4.0,171.8 8.0,157.5 12.0,155.2 16.0,162.0 20.0,154.0 24.0,153.8 28.0,165.4 32.0,174.7 36.0,168.0 40.0,163.6 44.0,171.4 48.0,165.5 52.0,146.9 56.0,151.9 60.0,163.5 64.0,160.1 68.0,163.4 72.0,170.4 76.0,175.8 80.0,169.2 84.0,170.4 88.0,166.5 92.0,148.5 96.0,153.4 100.0,158.2 104.0,164.1 108.0,165.6 112.0,173.5 116.0,173.5 120.0,164.6 124.0,164.5 128.0,160.2 132.0,157.4 136.0,148.2 140.0,154.8 144.0,168.1 148.0,160.5 152.0,164.4 156.0,175.3 160.0,166.1 164.0,154.1 168.0,159.6 172.0,161.4 176.0,154.6 180.0,151.2 184.0,167.3 188.0,168.0 192.0,167.3 196.0,172.5 200.0,176.4 204.0,157.8 208.0,149.9 212.0,160.8 216.0,152.7 220.0,154.6 224.0,165.7 228.0,177.6 232.0,168.9 236.0,169.0 240.0,169.6L245 210H-5Z", fill: "url(#pf-art-1-cloud-fill)" } }, { tag: "path", props: { d: "M0.0,172.9 4.0,171.8 8.0,157.5 12.0,155.2 16.0,162.0 20.0,154.0 24.0,153.8 28.0,165.4 32.0,174.7 36.0,168.0 40.0,163.6 44.0,171.4 48.0,165.5 52.0,146.9 56.0,151.9 60.0,163.5 64.0,160.1 68.0,163.4 72.0,170.4 76.0,175.8 80.0,169.2 84.0,170.4 88.0,166.5 92.0,148.5 96.0,153.4 100.0,158.2 104.0,164.1 108.0,165.6 112.0,173.5 116.0,173.5 120.0,164.6 124.0,164.5 128.0,160.2 132.0,157.4 136.0,148.2 140.0,154.8 144.0,168.1 148.0,160.5 152.0,164.4 156.0,175.3 160.0,166.1 164.0,154.1 168.0,159.6 172.0,161.4 176.0,154.6 180.0,151.2 184.0,167.3 188.0,168.0 192.0,167.3 196.0,172.5 200.0,176.4 204.0,157.8 208.0,149.9 212.0,160.8 216.0,152.7 220.0,154.6 224.0,165.7 228.0,177.6 232.0,168.9 236.0,169.0 240.0,169.6", fill: "none", filter: "url(#pf-art-soft)", opacity: ".55", stroke: "#c22a50", strokeWidth: "1.5" } }, { tag: "ellipse", props: { cx: "132.40", cy: "170.81", fill: "#080c13", opacity: ".55", rx: "13.01", ry: "4.58" } }, { tag: "ellipse", props: { cx: "193.93", cy: "179.95", fill: "#080c13", opacity: ".55", rx: "9.44", ry: "3.94" } }, { tag: "ellipse", props: { cx: "171.19", cy: "176.83", fill: "#170e1b", opacity: ".55", rx: "5.02", ry: "5.34" } }, { tag: "ellipse", props: { cx: "207.21", cy: "174.60", fill: "#761a33", opacity: ".55", rx: "9.44", ry: "3.95" } }, { tag: "ellipse", props: { cx: "115.31", cy: "171.85", fill: "#761a33", opacity: ".55", rx: "13.56", ry: "2.15" } }, { tag: "ellipse", props: { cx: "12.88", cy: "169.26", fill: "#080c13", opacity: ".55", rx: "15.42", ry: "5.41" } }, { tag: "ellipse", props: { cx: "179.91", cy: "168.26", fill: "#080c13", opacity: ".55", rx: "14.94", ry: "4.46" } }, { tag: "ellipse", props: { cx: "33.54", cy: "176.37", fill: "#431428", opacity: ".55", rx: "8.25", ry: "3.18" } }, { tag: "ellipse", props: { cx: "223.33", cy: "177.58", fill: "#431428", opacity: ".55", rx: "13.55", ry: "3.89" } }, { tag: "ellipse", props: { cx: "155.49", cy: "179.07", fill: "#170e1b", opacity: ".55", rx: "9.20", ry: "6.26" } }, { tag: "ellipse", props: { cx: "142.23", cy: "175.60", fill: "#170e1b", opacity: ".55", rx: "12.88", ry: "3.98" } }, { tag: "ellipse", props: { cx: "8.90", cy: "169.80", fill: "#761a33", opacity: ".55", rx: "6.35", ry: "4.45" } }, { tag: "ellipse", props: { cx: "158.70", cy: "172.23", fill: "#761a33", opacity: ".55", rx: "9.12", ry: "3.50" } }, { tag: "ellipse", props: { cx: "77.58", cy: "173.93", fill: "#170e1b", opacity: ".55", rx: "6.30", ry: "5.27" } }, { tag: "ellipse", props: { cx: "89.91", cy: "172.78", fill: "#431428", opacity: ".55", rx: "14.56", ry: "2.76" } }, { tag: "ellipse", props: { cx: "26.46", cy: "179.28", fill: "#170e1b", opacity: ".55", rx: "13.00", ry: "5.36" } }, { tag: "ellipse", props: { cx: "115.69", cy: "167.48", fill: "#170e1b", opacity: ".55", rx: "15.09", ry: "3.84" } }, { tag: "ellipse", props: { cx: "165.05", cy: "177.11", fill: "#170e1b", opacity: ".55", rx: "9.66", ry: "6.73" } }, { tag: "ellipse", props: { cx: "188.48", cy: "171.86", fill: "#080c13", opacity: ".55", rx: "9.45", ry: "3.20" } }, { tag: "ellipse", props: { cx: "8.05", cy: "177.72", fill: "#761a33", opacity: ".55", rx: "10.90", ry: "5.28" } }, { tag: "path", props: { d: "M0.0,203.3 4.0,200.4 8.0,185.8 12.0,177.1 16.0,193.2 20.0,193.9 24.0,202.1 28.0,207.5 32.0,217.6 36.0,197.2 40.0,189.0 44.0,190.6 48.0,189.9 52.0,182.2 56.0,188.3 60.0,203.3 64.0,200.2 68.0,205.2 72.0,209.3 76.0,199.9 80.0,193.2 84.0,193.9 88.0,192.9 92.0,188.2 96.0,189.4 100.0,201.4 104.0,210.7 108.0,197.0 112.0,207.6 116.0,210.1 120.0,192.6 124.0,183.9 128.0,194.6 132.0,184.1 136.0,190.0 140.0,200.5 144.0,213.7 148.0,208.8 152.0,207.1 156.0,202.9 160.0,197.3 164.0,182.6 168.0,183.4 172.0,191.1 176.0,194.9 180.0,200.4 184.0,208.0 188.0,215.4 192.0,195.0 196.0,195.9 200.0,200.7 204.0,184.1 208.0,181.0 212.0,193.4 216.0,195.8 220.0,198.9 224.0,209.4 228.0,209.8 232.0,194.5 236.0,197.0 240.0,199.3L245 210H-5Z", fill: "url(#pf-art-1-cloud-fill)" } }, { tag: "path", props: { d: "M0.0,203.3 4.0,200.4 8.0,185.8 12.0,177.1 16.0,193.2 20.0,193.9 24.0,202.1 28.0,207.5 32.0,217.6 36.0,197.2 40.0,189.0 44.0,190.6 48.0,189.9 52.0,182.2 56.0,188.3 60.0,203.3 64.0,200.2 68.0,205.2 72.0,209.3 76.0,199.9 80.0,193.2 84.0,193.9 88.0,192.9 92.0,188.2 96.0,189.4 100.0,201.4 104.0,210.7 108.0,197.0 112.0,207.6 116.0,210.1 120.0,192.6 124.0,183.9 128.0,194.6 132.0,184.1 136.0,190.0 140.0,200.5 144.0,213.7 148.0,208.8 152.0,207.1 156.0,202.9 160.0,197.3 164.0,182.6 168.0,183.4 172.0,191.1 176.0,194.9 180.0,200.4 184.0,208.0 188.0,215.4 192.0,195.0 196.0,195.9 200.0,200.7 204.0,184.1 208.0,181.0 212.0,193.4 216.0,195.8 220.0,198.9 224.0,209.4 228.0,209.8 232.0,194.5 236.0,197.0 240.0,199.3", fill: "none", filter: "url(#pf-art-soft)", opacity: ".55", stroke: "#6c2137", strokeWidth: "1" } }, { tag: "ellipse", props: { cx: "213.96", cy: "216.00", fill: "#761a33", opacity: ".55", rx: "10.65", ry: "2.69" } }, { tag: "ellipse", props: { cx: "21.03", cy: "212.59", fill: "#080c13", opacity: ".55", rx: "13.83", ry: "3.56" } }, { tag: "ellipse", props: { cx: "128.82", cy: "208.07", fill: "#080c13", opacity: ".55", rx: "12.37", ry: "5.99" } }, { tag: "ellipse", props: { cx: "66.20", cy: "208.39", fill: "#431428", opacity: ".55", rx: "6.99", ry: "5.52" } }, { tag: "ellipse", props: { cx: "211.84", cy: "214.28", fill: "#761a33", opacity: ".55", rx: "4.86", ry: "5.85" } }, { tag: "ellipse", props: { cx: "180.56", cy: "209.34", fill: "#080c13", opacity: ".55", rx: "14.75", ry: "5.27" } }, { tag: "ellipse", props: { cx: "137.93", cy: "207.63", fill: "#170e1b", opacity: ".55", rx: "13.80", ry: "5.28" } }, { tag: "ellipse", props: { cx: "174.72", cy: "211.52", fill: "#761a33", opacity: ".55", rx: "7.21", ry: "6.06" } }, { tag: "ellipse", props: { cx: "134.86", cy: "205.82", fill: "#761a33", opacity: ".55", rx: "7.68", ry: "2.69" } }, { tag: "ellipse", props: { cx: "162.22", cy: "205.28", fill: "#170e1b", opacity: ".55", rx: "4.76", ry: "5.82" } }, { tag: "ellipse", props: { cx: "6.59", cy: "201.76", fill: "#431428", opacity: ".55", rx: "5.56", ry: "3.79" } }, { tag: "ellipse", props: { cx: "227.81", cy: "210.18", fill: "#431428", opacity: ".55", rx: "6.77", ry: "4.14" } }, { tag: "ellipse", props: { cx: "48.28", cy: "206.37", fill: "#080c13", opacity: ".55", rx: "5.96", ry: "5.10" } }, { tag: "ellipse", props: { cx: "174.44", cy: "202.43", fill: "#080c13", opacity: ".55", rx: "10.36", ry: "2.86" } }, { tag: "ellipse", props: { cx: "107.09", cy: "215.08", fill: "#431428", opacity: ".55", rx: "13.54", ry: "2.59" } }, { tag: "ellipse", props: { cx: "107.00", cy: "204.42", fill: "#170e1b", opacity: ".55", rx: "11.15", ry: "2.86" } }, { tag: "ellipse", props: { cx: "184.20", cy: "215.04", fill: "#170e1b", opacity: ".55", rx: "10.39", ry: "6.85" } }, { tag: "ellipse", props: { cx: "24.86", cy: "213.21", fill: "#170e1b", opacity: ".55", rx: "9.03", ry: "2.26" } }, { tag: "ellipse", props: { cx: "7.89", cy: "209.65", fill: "#761a33", opacity: ".55", rx: "9.78", ry: "6.41" } }, { tag: "ellipse", props: { cx: "111.41", cy: "204.02", fill: "#431428", opacity: ".55", rx: "13.86", ry: "3.52" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-vignette)" } }] }, { tag: "filter", props: { colorInterpolationFilters: "sRGB", height: "200%", id: "pf-art-bloom", width: "200%", x: "-50%", y: "-50%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "3.2" } }] }, { tag: "radialGradient", props: { cx: ".5", cy: ".5", id: "pf-art-vignette", r: ".72" }, children: [{ tag: "stop", props: { offset: ".57", stopColor: "#01040a", stopOpacity: "0" } }, { tag: "stop", props: { offset: "1", stopColor: "#01040a", stopOpacity: ".6" } }] }, { tag: "filter", props: { height: "170%", id: "pf-art-soft", width: "170%", x: "-35%", y: "-35%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "1.15" } }] }] }, { tag: "use", props: { href: "#pf-art-1" } }] }, mountains: { tag: "svg", props: { "aria-label": "\u041F\u043B\u0430\u043D\u0435\u0442\u0430 \u043D\u0430\u0434 \u0433\u043E\u0440\u043D\u043E\u0439 \u0434\u043E\u043B\u0438\u043D\u043E\u0439", role: "img", viewBox: "0 0 240 204" }, children: [{ tag: "defs", children: [{ tag: "symbol", props: { id: "pf-art-2", viewBox: "0 0 240 204" }, children: ["\n", { tag: "defs", children: ["\n", { tag: "linearGradient", props: { id: "pf-art-2-sky", x1: "0", x2: ".15", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#010409" } }, { tag: "stop", props: { offset: ".38", stopColor: "#04060b" } }, { tag: "stop", props: { offset: ".69", stopColor: "#2d0b1a" } }, { tag: "stop", props: { offset: ".85", stopColor: "#9b253e" } }, { tag: "stop", props: { offset: "1", stopColor: "#070d15" } }] }, "\n", { tag: "radialGradient", props: { id: "pf-art-2-horizon" }, children: [{ tag: "stop", props: { stopColor: "#ff6476", stopOpacity: ".83" } }, { tag: "stop", props: { offset: ".38", stopColor: "#e4284e", stopOpacity: ".42" } }, { tag: "stop", props: { offset: "1", stopColor: "#c5153f", stopOpacity: "0" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-2-cloud-fill", x1: "0", x2: "0", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#59182d" } }, { tag: "stop", props: { offset: ".18", stopColor: "#1e0c1c" } }, { tag: "stop", props: { offset: ".4", stopColor: "#040a11" } }, { tag: "stop", props: { offset: "1", stopColor: "#03060c" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-2-silk" }, children: [{ tag: "stop", props: { stopColor: "#8e0723", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".23", stopColor: "#bd0e32" } }, { tag: "stop", props: { offset: ".53", stopColor: "#ff4b63" } }, { tag: "stop", props: { offset: ".58", stopColor: "#ffb4b8" } }, { tag: "stop", props: { offset: ".72", stopColor: "#da1741" } }, { tag: "stop", props: { offset: "1", stopColor: "#340819", stopOpacity: "0" } }] }, "\n"] }, "\n", { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-2-sky)" } }, "\n", { tag: "circle", props: { cx: "35.56", cy: "110.87", fill: "#c39fb5", opacity: "0.46", r: "0.21" } }, { tag: "circle", props: { cx: "92.24", cy: "111.15", fill: "#c39fb5", opacity: "0.12", r: "0.42" } }, { tag: "circle", props: { cx: "176.47", cy: "67.88", fill: "#da385c", opacity: "0.16", r: "0.24" } }, { tag: "circle", props: { cx: "165.55", cy: "109.68", fill: "#c39fb5", opacity: "0.35", r: "0.35" } }, { tag: "circle", props: { cx: "171.43", cy: "94.61", fill: "#ec5375", opacity: "0.31", r: "0.38" } }, { tag: "circle", props: { cx: "160.87", cy: "44.36", fill: "#c39fb5", opacity: "0.27", r: "0.17" } }, { tag: "circle", props: { cx: "122.38", cy: "134.57", fill: "#c39fb5", opacity: "0.30", r: "0.35" } }, { tag: "circle", props: { cx: "87.23", cy: "12.93", fill: "#c39fb5", opacity: "0.25", r: "0.25" } }, { tag: "circle", props: { cx: "133.93", cy: "79.31", fill: "#45809c", opacity: "0.54", r: "0.47" } }, { tag: "circle", props: { cx: "153.42", cy: "84.62", fill: "#c39fb5", opacity: "0.32", r: "0.62" } }, { tag: "circle", props: { cx: "93.78", cy: "133.74", fill: "#c39fb5", opacity: "0.56", r: "0.44" } }, { tag: "circle", props: { cx: "128.08", cy: "175.32", fill: "#ec5375", opacity: "0.30", r: "0.40" } }, { tag: "circle", props: { cx: "226.58", cy: "30.96", fill: "#ec5375", opacity: "0.53", r: "0.16" } }, { tag: "circle", props: { cx: "174.30", cy: "74.77", fill: "#45809c", opacity: "0.19", r: "0.59" } }, { tag: "circle", props: { cx: "107.48", cy: "119.28", fill: "#c39fb5", opacity: "0.31", r: "0.24" } }, { tag: "circle", props: { cx: "144.02", cy: "95.72", fill: "#45809c", opacity: "0.22", r: "0.13" } }, { tag: "circle", props: { cx: "36.05", cy: "21.39", fill: "#45809c", opacity: "0.31", r: "0.20" } }, { tag: "circle", props: { cx: "64.03", cy: "80.14", fill: "#45809c", opacity: "0.32", r: "0.51" } }, { tag: "circle", props: { cx: "200.01", cy: "122.35", fill: "#ec5375", opacity: "0.19", r: "0.13" } }, { tag: "circle", props: { cx: "137.20", cy: "37.27", fill: "#c39fb5", opacity: "0.23", r: "0.51" } }, { tag: "circle", props: { cx: "214.62", cy: "128.64", fill: "#ec5375", opacity: "0.48", r: "0.47" } }, { tag: "circle", props: { cx: "33.45", cy: "45.85", fill: "#ec5375", opacity: "0.19", r: "0.34" } }, { tag: "circle", props: { cx: "168.46", cy: "165.89", fill: "#da385c", opacity: "0.58", r: "0.49" } }, { tag: "circle", props: { cx: "113.95", cy: "150.62", fill: "#c39fb5", opacity: "0.49", r: "0.27" } }, { tag: "circle", props: { cx: "208.05", cy: "10.87", fill: "#c39fb5", opacity: "0.57", r: "0.22" } }, { tag: "circle", props: { cx: "32.62", cy: "127.77", fill: "#da385c", opacity: "0.47", r: "0.33" } }, { tag: "circle", props: { cx: "229.30", cy: "61.44", fill: "#ec5375", opacity: "0.56", r: "0.19" } }, { tag: "circle", props: { cx: "163.57", cy: "142.79", fill: "#45809c", opacity: "0.23", r: "0.50" } }, { tag: "circle", props: { cx: "216.07", cy: "27.16", fill: "#c39fb5", opacity: "0.59", r: "0.65" } }, { tag: "circle", props: { cx: "16.03", cy: "136.45", fill: "#da385c", opacity: "0.58", r: "0.52" } }, { tag: "circle", props: { cx: "61.73", cy: "86.55", fill: "#45809c", opacity: "0.18", r: "0.43" } }, { tag: "circle", props: { cx: "65.50", cy: "162.51", fill: "#45809c", opacity: "0.45", r: "0.59" } }, { tag: "circle", props: { cx: "132.83", cy: "14.30", fill: "#c39fb5", opacity: "0.15", r: "0.49" } }, { tag: "circle", props: { cx: "220.68", cy: "139.84", fill: "#ec5375", opacity: "0.53", r: "0.49" } }, { tag: "circle", props: { cx: "54.71", cy: "159.12", fill: "#ec5375", opacity: "0.27", r: "0.19" } }, { tag: "circle", props: { cx: "65.91", cy: "46.95", fill: "#c39fb5", opacity: "0.20", r: "0.36" } }, { tag: "circle", props: { cx: "94.38", cy: "7.25", fill: "#da385c", opacity: "0.27", r: "0.47" } }, { tag: "circle", props: { cx: "143.06", cy: "138.60", fill: "#ec5375", opacity: "0.21", r: "0.36" } }, { tag: "circle", props: { cx: "6.17", cy: "20.33", fill: "#da385c", opacity: "0.25", r: "0.63" } }, { tag: "circle", props: { cx: "13.43", cy: "84.95", fill: "#ec5375", opacity: "0.30", r: "0.57" } }, { tag: "circle", props: { cx: "47.28", cy: "131.57", fill: "#c39fb5", opacity: "0.57", r: "0.64" } }, { tag: "circle", props: { cx: "60.99", cy: "32.88", fill: "#c39fb5", opacity: "0.58", r: "0.27" } }, { tag: "circle", props: { cx: "202.78", cy: "114.06", fill: "#45809c", opacity: "0.14", r: "0.27" } }, { tag: "circle", props: { cx: "69.51", cy: "92.52", fill: "#c39fb5", opacity: "0.14", r: "0.22" } }, { tag: "circle", props: { cx: "130.60", cy: "42.75", fill: "#da385c", opacity: "0.24", r: "0.44" } }, { tag: "circle", props: { cx: "234.81", cy: "175.01", fill: "#c39fb5", opacity: "0.56", r: "0.35" } }, { tag: "circle", props: { cx: "144.36", cy: "125.76", fill: "#da385c", opacity: "0.35", r: "0.51" } }, { tag: "circle", props: { cx: "194.11", cy: "4.21", fill: "#c39fb5", opacity: "0.35", r: "0.60" } }, { tag: "circle", props: { cx: "80.05", cy: "17.53", fill: "#da385c", opacity: "0.44", r: "0.33" } }, { tag: "circle", props: { cx: "101.68", cy: "133.31", fill: "#da385c", opacity: "0.22", r: "0.38" } }, { tag: "circle", props: { cx: "214.29", cy: "132.70", fill: "#ec5375", opacity: "0.26", r: "0.28" } }, { tag: "circle", props: { cx: "122.37", cy: "114.34", fill: "#ec5375", opacity: "0.20", r: "0.50" } }, { tag: "circle", props: { cx: "57.59", cy: "68.95", fill: "#da385c", opacity: "0.56", r: "0.40" } }, { tag: "circle", props: { cx: "19.77", cy: "95.24", fill: "#da385c", opacity: "0.45", r: "0.55" } }, { tag: "circle", props: { cx: "223.40", cy: "68.61", fill: "#da385c", opacity: "0.12", r: "0.34" } }, { tag: "circle", props: { cx: "177.97", cy: "62.44", fill: "#45809c", opacity: "0.37", r: "0.45" } }, { tag: "circle", props: { cx: "65.07", cy: "119.31", fill: "#45809c", opacity: "0.55", r: "0.17" } }, { tag: "circle", props: { cx: "85.41", cy: "28.48", fill: "#da385c", opacity: "0.29", r: "0.31" } }, { tag: "circle", props: { cx: "91.66", cy: "116.23", fill: "#ec5375", opacity: "0.54", r: "0.22" } }, { tag: "circle", props: { cx: "176.16", cy: "176.34", fill: "#ec5375", opacity: "0.29", r: "0.21" } }, { tag: "circle", props: { cx: "110.97", cy: "152.16", fill: "#45809c", opacity: "0.10", r: "0.39" } }, { tag: "circle", props: { cx: "43.16", cy: "178.69", fill: "#c39fb5", opacity: "0.47", r: "0.60" } }, { tag: "circle", props: { cx: "193.07", cy: "166.00", fill: "#ec5375", opacity: "0.47", r: "0.12" } }, { tag: "circle", props: { cx: "200.14", cy: "93.87", fill: "#c39fb5", opacity: "0.41", r: "0.20" } }, { tag: "circle", props: { cx: "139.26", cy: "140.19", fill: "#c39fb5", opacity: "0.55", r: "0.37" } }, { tag: "circle", props: { cx: "49.72", cy: "120.82", fill: "#c39fb5", opacity: "0.31", r: "0.55" } }, { tag: "circle", props: { cx: "173.37", cy: "125.41", fill: "#da385c", opacity: "0.27", r: "0.22" } }, { tag: "circle", props: { cx: "180.27", cy: "60.38", fill: "#da385c", opacity: "0.38", r: "0.19" } }, { tag: "circle", props: { cx: "13.12", cy: "171.59", fill: "#45809c", opacity: "0.38", r: "0.48" } }, { tag: "circle", props: { cx: "24.62", cy: "59.54", fill: "#45809c", opacity: "0.19", r: "0.39" } }, { tag: "circle", props: { cx: "152.95", cy: "53.91", fill: "#c39fb5", opacity: "0.26", r: "0.37" } }, { tag: "circle", props: { cx: "49.59", cy: "52.07", fill: "#45809c", opacity: "0.30", r: "0.57" } }, { tag: "circle", props: { cx: "82.13", cy: "115.69", fill: "#45809c", opacity: "0.53", r: "0.27" } }, { tag: "circle", props: { cx: "204.98", cy: "160.73", fill: "#ec5375", opacity: "0.56", r: "0.61" } }, { tag: "circle", props: { cx: "167.03", cy: "70.02", fill: "#ec5375", opacity: "0.56", r: "0.18" } }, { tag: "circle", props: { cx: "235.50", cy: "87.99", fill: "#da385c", opacity: "0.54", r: "0.56" } }, { tag: "circle", props: { cx: "27.40", cy: "141.09", fill: "#c39fb5", opacity: "0.59", r: "0.62" } }, { tag: "circle", props: { cx: "213.39", cy: "106.34", fill: "#45809c", opacity: "0.59", r: "0.57" } }, { tag: "circle", props: { cx: "183.98", cy: "127.62", fill: "#ec5375", opacity: "0.39", r: "0.37" } }, { tag: "circle", props: { cx: "190.86", cy: "140.47", fill: "#ec5375", opacity: "0.56", r: "0.14" } }, { tag: "circle", props: { cx: "29.27", cy: "18.30", fill: "#ec5375", opacity: "0.31", r: "0.61" } }, { tag: "circle", props: { cx: "16.86", cy: "86.65", fill: "#c39fb5", opacity: "0.49", r: "0.52" } }, { tag: "circle", props: { cx: "127.85", cy: "27.51", fill: "#ec5375", opacity: "0.42", r: "0.33" } }, { tag: "circle", props: { cx: "148.79", cy: "141.35", fill: "#da385c", opacity: "0.35", r: "0.28" } }, { tag: "circle", props: { cx: "169.16", cy: "90.49", fill: "#c39fb5", opacity: "0.22", r: "0.33" } }, { tag: "circle", props: { cx: "50.73", cy: "6.06", fill: "#c39fb5", opacity: "0.14", r: "0.50" } }, { tag: "circle", props: { cx: "192.99", cy: "41.93", fill: "#45809c", opacity: "0.20", r: "0.64" } }, { tag: "circle", props: { cx: "42.27", cy: "76.37", fill: "#ec5375", opacity: "0.53", r: "0.43" } }, { tag: "circle", props: { cx: "173.63", cy: "50.75", fill: "#c39fb5", opacity: "0.48", r: "0.16" } }, { tag: "circle", props: { cx: "1.36", cy: "156.94", fill: "#da385c", opacity: "0.39", r: "0.23" } }, { tag: "circle", props: { cx: "157.91", cy: "168.90", fill: "#ec5375", opacity: "0.19", r: "0.47" } }, { tag: "circle", props: { cx: "161.22", cy: "43.42", fill: "#c39fb5", opacity: "0.59", r: "0.56" } }, { tag: "circle", props: { cx: "150.80", cy: "155.37", fill: "#45809c", opacity: "0.23", r: "0.65" } }, { tag: "circle", props: { cx: "155.01", cy: "4.87", fill: "#c39fb5", opacity: "0.30", r: "0.65" } }, { tag: "circle", props: { cx: "55.07", cy: "76.22", fill: "#da385c", opacity: "0.58", r: "0.18" } }, { tag: "defs", children: ["\n", { tag: "radialGradient", props: { cx: ".14", cy: ".13", id: "pf-art-2-moon-fill", r: "1.1" }, children: [{ tag: "stop", props: { stopColor: "#05080e" } }, { tag: "stop", props: { offset: ".55", stopColor: "#110910" } }, { tag: "stop", props: { offset: ".85", stopColor: "#411020" } }, { tag: "stop", props: { offset: "1", stopColor: "#dc264a" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-2-moon-rim", x1: "0", x2: ".6", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#9c123a", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".2", stopColor: "#ff315c" } }, { tag: "stop", props: { offset: ".6", stopColor: "#fff1e6" } }, { tag: "stop", props: { offset: ".85", stopColor: "#ff8097" } }, { tag: "stop", props: { offset: "1", stopColor: "#ab0b30", stopOpacity: "0" } }] }, "\n", { tag: "clipPath", props: { id: "pf-art-2-moon-clip" }, children: [{ tag: "circle", props: { cx: "108", cy: "34", r: "43" } }] }, "\n", { tag: "radialGradient", props: { id: "pf-art-2-moon-light" }, children: [{ tag: "stop", props: { stopColor: "#ff214b", stopOpacity: ".4" } }, { tag: "stop", props: { offset: ".55", stopColor: "#e90d3b", stopOpacity: ".17" } }, { tag: "stop", props: { offset: "1", stopColor: "#e90d3b", stopOpacity: "0" } }] }, "\n"] }, "\n", { tag: "circle", props: { cx: "108", cy: "34", fill: "url(#pf-art-2-moon-light)", r: "59.34" } }, "\n", { tag: "circle", props: { cx: "108", cy: "34", fill: "url(#pf-art-2-moon-fill)", r: "43" } }, "\n", { tag: "g", props: { clipPath: "url(#pf-art-2-moon-clip)" }, children: [{ tag: "path", props: { d: "M84.50 73.76l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M86.28 76.93l1.1 0.3 0.3 0.7", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M103.97 33.57l1.1 0.3 0.3 0.6", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.72" } }, { tag: "path", props: { d: "M85.14 -7.28l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M97.60 0.78l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.80" } }, { tag: "path", props: { d: "M118.33 23.44l2.5 0.7 0.7 1.5", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M107.79 46.88l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M70.54 72.36l2.0 0.6 0.6 1.2", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M114.79 53.69l3.1 0.9 0.9 1.9", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.44" } }, { tag: "path", props: { d: "M140.51 2.61l2.8 0.8 0.8 1.7", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M125.38 72.70l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.55" } }, { tag: "path", props: { d: "M77.91 36.47l2.0 0.6 0.6 1.2", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.34" } }, { tag: "path", props: { d: "M108.64 51.31l1.2 0.3 0.3 0.7", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M94.52 13.95l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.49" } }, { tag: "path", props: { d: "M141.67 6.07l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M148.84 8.36l2.8 0.8 0.8 1.7", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M130.73 20.40l1.0 0.3 0.3 0.6", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M100.27 29.36l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M73.18 -1.67l0.8 0.2 0.2 0.5", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M134.46 34.42l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M66.46 3.07l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M95.22 73.99l0.5 0.2 0.2 0.3", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.72" } }, { tag: "path", props: { d: "M140.27 -6.15l3.4 1.0 1.0 2.0", fill: "none", opacity: "0.30", stroke: "#b92d4c", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M114.88 6.29l3.4 1.0 1.0 2.0", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M117.06 33.76l1.9 0.6 0.6 1.2", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M114.94 29.93l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M126.53 31.53l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.48" } }, { tag: "path", props: { d: "M81.99 29.38l0.8 0.2 0.2 0.5", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.66" } }, { tag: "path", props: { d: "M117.59 -7.05l1.6 0.5 0.5 1.0", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M148.23 55.98l2.0 0.6 0.6 1.2", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M84.73 36.21l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M117.73 69.16l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.30", stroke: "#b92d4c", strokeWidth: "0.76" } }, { tag: "path", props: { d: "M84.24 16.49l2.1 0.6 0.6 1.3", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M145.96 64.14l2.0 0.6 0.6 1.2", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M132.36 16.44l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M147.44 63.85l1.4 0.4 0.4 0.9", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M137.47 49.85l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.66" } }, { tag: "path", props: { d: "M117.02 22.15l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.54" } }, { tag: "path", props: { d: "M137.08 14.12l0.7 0.2 0.2 0.4", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M101.10 1.07l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.44" } }, { tag: "path", props: { d: "M134.16 34.36l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M96.08 74.03l2.9 0.9 0.9 1.7", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M134.94 42.31l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.48" } }, { tag: "path", props: { d: "M133.24 24.36l2.5 0.7 0.7 1.5", fill: "none", opacity: "0.30", stroke: "#b92d4c", strokeWidth: "0.69" } }, { tag: "path", props: { d: "M144.16 58.62l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M72.49 30.79l3.1 0.9 0.9 1.9", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M72.97 43.21l3.1 0.9 0.9 1.9", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M68.33 70.10l3.1 0.9 0.9 1.8", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M136.25 61.07l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M90.51 21.74l1.5 0.4 0.4 0.9", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M127.04 20.93l1.0 0.3 0.3 0.6", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M102.09 58.27l0.8 0.2 0.2 0.5", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M80.19 55.45l0.8 0.2 0.2 0.5", fill: "none", opacity: "0.20", stroke: "#b92d4c", strokeWidth: "0.33" } }, { tag: "path", props: { d: "M128.31 61.96l2.2 0.7 0.7 1.3", fill: "none", opacity: "0.27", stroke: "#b92d4c", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M128.31 32.18l2.2 0.7 0.7 1.3", fill: "none", opacity: "0.30", stroke: "#b92d4c", strokeWidth: "0.77" } }, { tag: "path", props: { d: "M145.09 2.41l1.5 0.4 0.4 0.9", fill: "none", opacity: "0.11", stroke: "#b92d4c", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M130.54 -3.77l3.2 0.9 0.9 1.9", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M100.68 71.54l2.2 0.7 0.7 1.3", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M124.52 75.57l2.0 0.6 0.6 1.2", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.48" } }, { tag: "path", props: { d: "M110.41 17.56l2.5 0.8 0.8 1.5", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.54" } }, { tag: "path", props: { d: "M137.05 34.00l3.4 1.0 1.0 2.0", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M89.87 9.70l2.1 0.6 0.6 1.2", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M120.68 1.69l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M146.25 20.85l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M124.20 -2.14l1.1 0.3 0.3 0.6", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M147.94 27.60l2.4 0.7 0.7 1.4", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.78" } }, { tag: "path", props: { d: "M150.92 -5.59l2.3 0.7 0.7 1.4", fill: "none", opacity: "0.30", stroke: "#b92d4c", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M95.80 72.42l2.5 0.7 0.7 1.5", fill: "none", opacity: "0.11", stroke: "#b92d4c", strokeWidth: "0.54" } }, { tag: "path", props: { d: "M85.28 22.41l1.5 0.5 0.5 0.9", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.49" } }, { tag: "path", props: { d: "M97.24 45.07l0.6 0.2 0.2 0.4", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M141.59 17.93l0.6 0.2 0.2 0.4", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M96.51 39.29l1.4 0.4 0.4 0.8", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M132.36 54.76l2.3 0.7 0.7 1.4", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M89.90 64.97l1.8 0.6 0.6 1.1", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M121.23 20.33l2.2 0.7 0.7 1.3", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M116.64 30.25l1.9 0.6 0.6 1.1", fill: "none", opacity: "0.20", stroke: "#b92d4c", strokeWidth: "0.49" } }, { tag: "path", props: { d: "M126.00 5.94l0.9 0.3 0.3 0.6", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M133.21 56.28l1.2 0.3 0.3 0.7", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M140.82 7.97l0.8 0.3 0.3 0.5", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M83.22 18.03l3.4 1.0 1.0 2.1", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M114.53 46.09l0.5 0.2 0.2 0.3", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M138.50 26.65l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.30", stroke: "#b92d4c", strokeWidth: "0.30" } }, { tag: "path", props: { d: "M73.24 34.94l1.9 0.6 0.6 1.2", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M149.44 68.90l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M126.01 72.81l2.5 0.7 0.7 1.5", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M121.49 12.76l2.6 0.8 0.8 1.5", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M70.53 32.99l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M124.61 13.63l2.1 0.6 0.6 1.2", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M82.93 50.57l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M121.35 65.52l2.8 0.9 0.9 1.7", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.55" } }, { tag: "path", props: { d: "M92.05 47.20l0.7 0.2 0.2 0.4", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M141.16 49.81l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M118.11 44.04l1.9 0.6 0.6 1.1", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M117.49 4.91l1.2 0.4 0.4 0.7", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M116.38 8.28l2.6 0.8 0.8 1.5", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.58" } }, { tag: "path", props: { d: "M103.23 76.37l0.9 0.3 0.3 0.6", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M137.23 70.27l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M98.21 64.69l2.5 0.7 0.7 1.5", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M106.92 38.12l3.2 0.9 0.9 1.9", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M129.94 72.24l2.3 0.7 0.7 1.4", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.55" } }] }, { tag: "path", props: { d: "M99.06 -8.06A43 43 0 1 1 66.28 44.40", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".85", stroke: "#ff234f", strokeWidth: "9" } }, { tag: "path", props: { d: "M99.06 -8.06A43 43 0 1 1 66.28 44.40", fill: "none", stroke: "url(#pf-art-2-moon-rim)", strokeWidth: "2.35" } }, { tag: "path", props: { d: "M145.51 14.89A42.1 42.1 0 0 1 78.23 63.77", fill: "none", opacity: ".8", stroke: "#ffb1bb", strokeWidth: ".6" } }, { tag: "ellipse", props: { cx: "130", cy: "112", fill: "url(#pf-art-2-horizon)", opacity: ".8", rx: "119", ry: "48" } }, { tag: "path", props: { d: "M0,141 15,116 29,119 44,86 55,111 74,82 88,112 107,134 121,135 152,89 166,119 185,82 207,120 224,115 240,141L240 207H0Z", fill: "#02060a" } }, { tag: "path", props: { d: "M0 141L15 116 28.6 208.3Z", fill: "#0e1f2b", opacity: "0.70" } }, { tag: "path", props: { d: "M0.0 141.0l3.2 18.8L26.5 208.3", fill: "none", opacity: "0.31", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M5.0 132.7l-3.7 7.8L11.8 208.3", fill: "none", opacity: "0.16", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M10.0 124.3l3.7 13.9L30.7 208.3", fill: "none", opacity: "0.26", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M15 116L29 119 -0.0 209.4Z", fill: "#1a2631", opacity: "0.48" } }, { tag: "path", props: { d: "M15.0 116.0l1.3 22.0L14.0 209.4", fill: "none", opacity: "0.13", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M19.7 117.0l-2.6 10.0L-7.0 209.4", fill: "none", opacity: "0.19", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M24.3 118.0l7.3 17.4L11.2 209.4", fill: "none", opacity: "0.19", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M29 119L44 86 25.9 213.2Z", fill: "#1a2631", opacity: "0.41" } }, { tag: "path", props: { d: "M29.0 119.0l-7.5 21.8L27.2 213.2", fill: "none", opacity: "0.19", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M34.0 108.0l-1.6 21.8L41.2 213.2", fill: "none", opacity: "0.19", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M39.0 97.0l1.3 11.8L20.9 213.2", fill: "none", opacity: "0.25", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M44 86L55 111 50.7 213.8Z", fill: "#132332", opacity: "0.60" } }, { tag: "path", props: { d: "M44.0 86.0l-0.9 8.6L34.4 213.8", fill: "none", opacity: "0.13", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M47.7 94.3l-4.8 10.8L64.4 213.8", fill: "none", opacity: "0.14", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M51.3 102.7l-5.3 15.7L66.6 213.8", fill: "none", opacity: "0.16", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M55 111L74 82 83.3 212.7Z", fill: "#1a2631", opacity: "0.40" } }, { tag: "path", props: { d: "M55.0 111.0l4.7 17.4L84.8 212.7", fill: "none", opacity: "0.28", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M61.3 101.3l-4.9 9.0L67.4 212.7", fill: "none", opacity: "0.34", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M67.7 91.7l5.5 15.0L81.8 212.7", fill: "none", opacity: "0.15", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M74 82L88 112 71.1 213.2Z", fill: "#1a2631", opacity: "0.63" } }, { tag: "path", props: { d: "M74.0 82.0l3.4 22.3L53.7 213.2", fill: "none", opacity: "0.32", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M78.7 92.0l7.1 7.3L75.4 213.2", fill: "none", opacity: "0.20", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M83.3 102.0l-6.4 17.1L53.6 213.2", fill: "none", opacity: "0.22", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M88 112L107 134 86.9 207.4Z", fill: "#17212c", opacity: "0.56" } }, { tag: "path", props: { d: "M88.0 112.0l-4.5 11.1L71.6 207.4", fill: "none", opacity: "0.16", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M94.3 119.3l-6.4 14.5L77.9 207.4", fill: "none", opacity: "0.22", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M100.7 126.7l6.5 15.4L71.6 207.4", fill: "none", opacity: "0.13", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M107 134L121 135 108.4 214.6Z", fill: "#0e1f2b", opacity: "0.49" } }, { tag: "path", props: { d: "M107.0 134.0l2.2 7.8L118.5 214.6", fill: "none", opacity: "0.29", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M111.7 134.3l-4.0 10.7L107.0 214.6", fill: "none", opacity: "0.34", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M116.3 134.7l1.1 9.9L125.6 214.6", fill: "none", opacity: "0.20", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M121 135L152 89 114.9 208.4Z", fill: "#3a1122", opacity: "0.40" } }, { tag: "path", props: { d: "M121.0 135.0l-7.5 19.3L114.3 208.4", fill: "none", opacity: "0.17", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M131.3 119.7l-0.8 17.6L127.3 208.4", fill: "none", opacity: "0.25", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M141.7 104.3l-2.5 20.8L100.5 208.4", fill: "none", opacity: "0.12", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M152 89L166 119 153.5 212.8Z", fill: "#17212c", opacity: "0.82" } }, { tag: "path", props: { d: "M152.0 89.0l1.9 17.4L171.7 212.8", fill: "none", opacity: "0.32", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M156.7 99.0l-5.0 11.4L154.0 212.8", fill: "none", opacity: "0.20", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M161.3 109.0l-0.1 15.0L165.2 212.8", fill: "none", opacity: "0.35", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M166 119L185 82 161.3 210.7Z", fill: "#0e1f2b", opacity: "0.58" } }, { tag: "path", props: { d: "M166.0 119.0l-4.9 9.6L167.5 210.7", fill: "none", opacity: "0.34", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M172.3 106.7l-7.1 15.4L154.8 210.7", fill: "none", opacity: "0.17", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M178.7 94.3l7.2 7.0L155.7 210.7", fill: "none", opacity: "0.30", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M185 82L207 120 174.0 215.5Z", fill: "#50132b", opacity: "0.41" } }, { tag: "path", props: { d: "M185.0 82.0l-7.0 16.1L179.3 215.5", fill: "none", opacity: "0.18", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M192.3 94.7l-3.0 21.6L166.1 215.5", fill: "none", opacity: "0.27", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M199.7 107.3l-2.7 22.5L183.6 215.5", fill: "none", opacity: "0.13", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M207 120L224 115 203.3 211.6Z", fill: "#3a1122", opacity: "0.73" } }, { tag: "path", props: { d: "M207.0 120.0l-4.1 8.9L183.4 211.6", fill: "none", opacity: "0.19", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M212.7 118.3l-2.9 8.7L184.2 211.6", fill: "none", opacity: "0.32", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M218.3 116.7l-5.4 11.6L220.0 211.6", fill: "none", opacity: "0.20", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M224 115L240 141 246.4 209.8Z", fill: "#132332", opacity: "0.50" } }, { tag: "path", props: { d: "M224.0 115.0l6.6 21.5L251.3 209.8", fill: "none", opacity: "0.35", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M229.3 123.7l-4.5 9.1L247.0 209.8", fill: "none", opacity: "0.30", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M234.7 132.3l-0.9 11.1L248.7 209.8", fill: "none", opacity: "0.32", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M0,141 15,116 29,119 44,86 55,111 74,82 88,112 107,134 121,135 152,89 166,119 185,82 207,120 224,115 240,141", fill: "none", opacity: ".65", stroke: "#c42a49", strokeWidth: ".7" } }, { tag: "path", props: { d: "M75 149H172L229 207H8Z", fill: "#050a10" } }, { tag: "path", props: { d: "M118.33 179.15h6.32", opacity: "0.39", stroke: "#d3254c", strokeWidth: "0.80" } }, { tag: "path", props: { d: "M130.38 157.51h6.81", opacity: "0.27", stroke: "#ff4268", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M97.18 190.92h12.20", opacity: "0.18", stroke: "#ff4268", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M107.25 176.44h3.56", opacity: "0.45", stroke: "#d3254c", strokeWidth: "0.34" } }, { tag: "path", props: { d: "M121.27 200.50h7.71", opacity: "0.66", stroke: "#4c1730", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M103.81 180.41h6.15", opacity: "0.39", stroke: "#d3254c", strokeWidth: "0.55" } }, { tag: "path", props: { d: "M127.88 160.00h6.09", opacity: "0.31", stroke: "#ff4268", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M110.24 165.03h6.37", opacity: "0.27", stroke: "#ff4268", strokeWidth: "0.85" } }, { tag: "path", props: { d: "M93.80 203.22h24.50", opacity: "0.58", stroke: "#ff4268", strokeWidth: "0.84" } }, { tag: "path", props: { d: "M111.58 172.23h13.93", opacity: "0.65", stroke: "#ff4268", strokeWidth: "0.86" } }, { tag: "path", props: { d: "M95.19 184.15h4.02", opacity: "0.46", stroke: "#4c1730", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M107.73 188.35h19.76", opacity: "0.24", stroke: "#d3254c", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M101.23 200.48h20.90", opacity: "0.57", stroke: "#6d7c91", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M96.34 188.40h1.08", opacity: "0.17", stroke: "#6d7c91", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M126.36 154.20h4.53", opacity: "0.51", stroke: "#4c1730", strokeWidth: "0.93" } }, { tag: "path", props: { d: "M117.15 196.30h12.84", opacity: "0.40", stroke: "#6d7c91", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M96.13 181.15h15.79", opacity: "0.34", stroke: "#d3254c", strokeWidth: "0.90" } }, { tag: "path", props: { d: "M114.58 170.71h8.37", opacity: "0.16", stroke: "#ff4268", strokeWidth: "0.49" } }, { tag: "path", props: { d: "M131.61 166.28h1.82", opacity: "0.41", stroke: "#d3254c", strokeWidth: "0.97" } }, { tag: "path", props: { d: "M118.12 196.52h4.16", opacity: "0.63", stroke: "#ff4268", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M124.50 195.27h7.06", opacity: "0.22", stroke: "#4c1730", strokeWidth: "0.44" } }, { tag: "path", props: { d: "M104.60 184.07h9.55", opacity: "0.47", stroke: "#ff4268", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M127.21 153.78h2.35", opacity: "0.22", stroke: "#d3254c", strokeWidth: "0.88" } }, { tag: "path", props: { d: "M117.81 194.40h3.29", opacity: "0.43", stroke: "#6d7c91", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M102.97 180.58h6.53", opacity: "0.25", stroke: "#4c1730", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M126.01 149.82h2.45", opacity: "0.22", stroke: "#d3254c", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M123.21 150.93h4.31", opacity: "0.44", stroke: "#6d7c91", strokeWidth: "0.33" } }, { tag: "path", props: { d: "M119.77 197.91h17.84", opacity: "0.34", stroke: "#d3254c", strokeWidth: "0.90" } }, { tag: "path", props: { d: "M125.43 157.05h7.49", opacity: "0.68", stroke: "#ff4268", strokeWidth: "0.33" } }, { tag: "path", props: { d: "M100.21 183.03h8.36", opacity: "0.16", stroke: "#ff4268", strokeWidth: "0.34" } }, { tag: "path", props: { d: "M128.44 152.26h1.00", opacity: "0.24", stroke: "#6d7c91", strokeWidth: "0.80" } }, { tag: "path", props: { d: "M119.61 194.97h26.10", opacity: "0.57", stroke: "#4c1730", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M93.80 196.75h10.16", opacity: "0.46", stroke: "#ff4268", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M131.87 158.77h2.71", opacity: "0.48", stroke: "#4c1730", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M94.97 178.67h15.84", opacity: "0.24", stroke: "#d3254c", strokeWidth: "0.90" } }, { tag: "path", props: { d: "M125.44 175.78h2.22", opacity: "0.56", stroke: "#d3254c", strokeWidth: "0.96" } }, { tag: "path", props: { d: "M136.09 158.67h3.28", opacity: "0.29", stroke: "#ff4268", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M111.66 203.27h15.31", opacity: "0.64", stroke: "#4c1730", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M124.81 155.07h3.17", opacity: "0.25", stroke: "#4c1730", strokeWidth: "0.86" } }, { tag: "path", props: { d: "M103.17 194.54h24.15", opacity: "0.63", stroke: "#d3254c", strokeWidth: "0.85" } }, { tag: "path", props: { d: "M119.20 195.51h15.27", opacity: "0.67", stroke: "#ff4268", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M117.38 167.32h11.48", opacity: "0.32", stroke: "#d3254c", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M111.25 171.81h5.37", opacity: "0.17", stroke: "#6d7c91", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M132.31 162.14h7.20", opacity: "0.45", stroke: "#6d7c91", strokeWidth: "0.94" } }, { tag: "path", props: { d: "M117.30 182.04h14.63", opacity: "0.45", stroke: "#4c1730", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M104.36 174.08h13.72", opacity: "0.20", stroke: "#d3254c", strokeWidth: "0.92" } }, { tag: "path", props: { d: "M122.11 174.65h4.38", opacity: "0.62", stroke: "#ff4268", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M129.86 152.78h3.34", opacity: "0.35", stroke: "#ff4268", strokeWidth: "0.91" } }, { tag: "path", props: { d: "M130.00 153.58h1.35", opacity: "0.21", stroke: "#ff4268", strokeWidth: "0.87" } }, { tag: "path", props: { d: "M130.04 161.66h9.96", opacity: "0.19", stroke: "#ff4268", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M83.10 192.57h13.87", opacity: "0.42", stroke: "#ff4268", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M102.65 188.07h20.91", opacity: "0.23", stroke: "#6d7c91", strokeWidth: "0.97" } }, { tag: "path", props: { d: "M116.59 189.98h23.37", opacity: "0.16", stroke: "#ff4268", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M128.10 187.54h5.08", opacity: "0.29", stroke: "#ff4268", strokeWidth: "0.96" } }, { tag: "path", props: { d: "M123.41 182.36h2.54", opacity: "0.30", stroke: "#d3254c", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M118.77 162.18h5.99", opacity: "0.22", stroke: "#4c1730", strokeWidth: "0.99" } }, { tag: "path", props: { d: "M130.53 173.18h2.61", opacity: "0.59", stroke: "#ff4268", strokeWidth: "0.90" } }, { tag: "path", props: { d: "M109.74 183.22h9.89", opacity: "0.18", stroke: "#d3254c", strokeWidth: "0.96" } }, { tag: "path", props: { d: "M125.07 152.79h4.08", opacity: "0.15", stroke: "#6d7c91", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M131.13 155.65h1.86", opacity: "0.64", stroke: "#ff4268", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M115.48 189.07h5.49", opacity: "0.48", stroke: "#ff4268", strokeWidth: "0.84" } }, { tag: "path", props: { d: "M120.83 183.78h5.34", opacity: "0.46", stroke: "#4c1730", strokeWidth: "0.72" } }, { tag: "path", props: { d: "M112.74 187.20h8.85", opacity: "0.46", stroke: "#ff4268", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M139.09 199.96h3.42", opacity: "0.48", stroke: "#6d7c91", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M112.35 202.59h4.50", opacity: "0.55", stroke: "#4c1730", strokeWidth: "0.83" } }, { tag: "path", props: { d: "M102.05 197.86h11.64", opacity: "0.38", stroke: "#4c1730", strokeWidth: "0.31" } }, { tag: "path", props: { d: "M132.82 203.02h13.96", opacity: "0.30", stroke: "#d3254c", strokeWidth: "0.98" } }, { tag: "path", props: { d: "M139.12 200.77h24.76", opacity: "0.58", stroke: "#4c1730", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M107.88 170.91h12.32", opacity: "0.40", stroke: "#ff4268", strokeWidth: "0.82" } }, { tag: "path", props: { d: "M103.85 174.71h6.77", opacity: "0.68", stroke: "#d3254c", strokeWidth: "0.96" } }, { tag: "path", props: { d: "M108.90 180.01h6.78", opacity: "0.46", stroke: "#6d7c91", strokeWidth: "0.89" } }, { tag: "path", props: { d: "M129.57 152.81h1.59", opacity: "0.28", stroke: "#ff4268", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M105.16 192.78h22.78", opacity: "0.20", stroke: "#d3254c", strokeWidth: "0.92" } }, { tag: "path", props: { d: "M123.08 191.26h6.25", opacity: "0.29", stroke: "#6d7c91", strokeWidth: "0.77" } }, { tag: "path", props: { d: "M124.81 156.25h1.46", opacity: "0.21", stroke: "#4c1730", strokeWidth: "0.95" } }, { tag: "path", props: { d: "M122.76 150.98h3.88", opacity: "0.56", stroke: "#6d7c91", strokeWidth: "0.81" } }, { tag: "path", props: { d: "M103.56 194.86h21.21", opacity: "0.28", stroke: "#6d7c91", strokeWidth: "1.00" } }, { tag: "path", props: { d: "M140.31 203.67h24.73", opacity: "0.43", stroke: "#d3254c", strokeWidth: "0.88" } }, { tag: "path", props: { d: "M127.10 193.07h12.06", opacity: "0.37", stroke: "#4c1730", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M107.97 185.53h8.32", opacity: "0.42", stroke: "#6d7c91", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M121.01 157.71h4.51", opacity: "0.19", stroke: "#d3254c", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M123.25 165.85h1.27", opacity: "0.45", stroke: "#d3254c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M119.83 191.36h0.90", opacity: "0.44", stroke: "#4c1730", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M117.91 189.03h11.78", opacity: "0.24", stroke: "#d3254c", strokeWidth: "0.85" } }, { tag: "path", props: { d: "M128.23 167.98h3.12", opacity: "0.52", stroke: "#d3254c", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M117.99 183.15h16.80", opacity: "0.64", stroke: "#6d7c91", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M90.49 196.89h16.91", opacity: "0.49", stroke: "#6d7c91", strokeWidth: "0.33" } }, { tag: "path", props: { d: "M99.05 184.36h12.14", opacity: "0.17", stroke: "#4c1730", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M120.97 196.34h8.57", opacity: "0.63", stroke: "#4c1730", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M120.91 157.73h7.07", opacity: "0.53", stroke: "#d3254c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M115.94 196.76h3.20", opacity: "0.21", stroke: "#ff4268", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M123.82 154.86h5.53", opacity: "0.60", stroke: "#4c1730", strokeWidth: "0.55" } }, { tag: "path", props: { d: "M135.90 191.92h12.23", opacity: "0.28", stroke: "#6d7c91", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M121.24 157.93h7.43", opacity: "0.32", stroke: "#6d7c91", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M101.81 177.36h9.63", opacity: "0.19", stroke: "#6d7c91", strokeWidth: "0.47" } }, { tag: "ellipse", props: { cx: "125", cy: "161", fill: "#ff315c", filter: "url(#pf-art-bloom)", opacity: ".36", rx: "22", ry: "2.7" } }, { tag: "path", props: { d: "M0,167 24,148 37,160 53,158 74,180 92,188 104,207L240 207H0Z", fill: "#02060a" } }, { tag: "path", props: { d: "M0 167L24 148 8.4 212.1Z", fill: "#132332", opacity: "0.79" } }, { tag: "path", props: { d: "M0.0 167.0l4.9 21.0L-1.0 212.1", fill: "none", opacity: "0.26", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M8.0 160.7l5.4 22.9L7.2 212.1", fill: "none", opacity: "0.28", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M16.0 154.3l-7.3 7.4L1.9 212.1", fill: "none", opacity: "0.31", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M24 148L37 160 47.2 208.4Z", fill: "#132332", opacity: "0.46" } }, { tag: "path", props: { d: "M24.0 148.0l3.9 19.5L43.6 208.4", fill: "none", opacity: "0.15", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M28.3 152.0l-5.5 14.4L61.8 208.4", fill: "none", opacity: "0.21", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M32.7 156.0l6.5 18.0L28.6 208.4", fill: "none", opacity: "0.26", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M37 160L53 158 66.3 214.9Z", fill: "#17212c", opacity: "0.63" } }, { tag: "path", props: { d: "M37.0 160.0l2.5 11.6L46.6 214.9", fill: "none", opacity: "0.28", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M42.3 159.3l-6.4 20.2L77.3 214.9", fill: "none", opacity: "0.26", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M47.7 158.7l-2.0 16.7L48.6 214.9", fill: "none", opacity: "0.20", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M53 158L74 180 43.8 215.6Z", fill: "#50132b", opacity: "0.85" } }, { tag: "path", props: { d: "M53.0 158.0l-5.6 22.6L43.7 215.6", fill: "none", opacity: "0.30", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M60.0 165.3l0.8 22.3L32.6 215.6", fill: "none", opacity: "0.32", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M67.0 172.7l-2.9 7.7L31.2 215.6", fill: "none", opacity: "0.28", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M74 180L92 188 87.6 215.8Z", fill: "#50132b", opacity: "0.43" } }, { tag: "path", props: { d: "M74.0 180.0l-5.1 22.1L71.2 215.8", fill: "none", opacity: "0.20", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M80.0 182.7l-6.3 18.0L89.2 215.8", fill: "none", opacity: "0.22", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M86.0 185.3l-4.9 20.4L99.2 215.8", fill: "none", opacity: "0.21", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M92 188L104 207 94.1 215.7Z", fill: "#17212c", opacity: "0.76" } }, { tag: "path", props: { d: "M92.0 188.0l7.9 13.5L106.2 215.7", fill: "none", opacity: "0.26", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M96.0 194.3l-5.1 14.2L106.1 215.7", fill: "none", opacity: "0.27", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M100.0 200.7l1.4 19.3L81.5 215.7", fill: "none", opacity: "0.13", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M0,167 24,148 37,160 53,158 74,180 92,188 104,207", fill: "none", opacity: ".65", stroke: "#c42a49", strokeWidth: ".7" } }, { tag: "path", props: { d: "M147,207 167,177 184,184 202,160 219,148 240,158L240 207H0Z", fill: "#02060a" } }, { tag: "path", props: { d: "M147 207L167 177 144.9 211.9Z", fill: "#3a1122", opacity: "0.86" } }, { tag: "path", props: { d: "M147.0 207.0l1.3 16.7L143.9 211.9", fill: "none", opacity: "0.18", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M153.7 197.0l7.9 14.5L134.3 211.9", fill: "none", opacity: "0.23", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M160.3 187.0l-5.6 17.2L150.5 211.9", fill: "none", opacity: "0.21", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M167 177L184 184 153.2 214.0Z", fill: "#17212c", opacity: "0.77" } }, { tag: "path", props: { d: "M167.0 177.0l-3.2 7.5L156.8 214.0", fill: "none", opacity: "0.23", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M172.7 179.3l6.1 18.4L161.9 214.0", fill: "none", opacity: "0.21", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M178.3 181.7l-0.9 22.0L165.2 214.0", fill: "none", opacity: "0.14", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M184 184L202 160 176.3 209.0Z", fill: "#50132b", opacity: "0.61" } }, { tag: "path", props: { d: "M184.0 184.0l-3.2 15.1L181.3 209.0", fill: "none", opacity: "0.26", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M190.0 176.0l-1.5 10.7L177.6 209.0", fill: "none", opacity: "0.28", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M196.0 168.0l5.7 22.9L193.4 209.0", fill: "none", opacity: "0.29", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M202 160L219 148 219.6 209.9Z", fill: "#132332", opacity: "0.85" } }, { tag: "path", props: { d: "M202.0 160.0l3.4 10.4L222.4 209.9", fill: "none", opacity: "0.18", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M207.7 156.0l-0.3 17.2L204.6 209.9", fill: "none", opacity: "0.14", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M213.3 152.0l-1.4 9.4L231.7 209.9", fill: "none", opacity: "0.22", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M219 148L240 158 225.6 208.1Z", fill: "#132332", opacity: "0.70" } }, { tag: "path", props: { d: "M219.0 148.0l3.5 12.3L207.4 208.1", fill: "none", opacity: "0.24", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M226.0 151.3l-3.0 8.2L245.5 208.1", fill: "none", opacity: "0.25", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M233.0 154.7l7.5 11.7L243.6 208.1", fill: "none", opacity: "0.16", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M147,207 167,177 184,184 202,160 219,148 240,158", fill: "none", opacity: ".65", stroke: "#c42a49", strokeWidth: ".7" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-vignette)" } }] }, { tag: "filter", props: { colorInterpolationFilters: "sRGB", height: "200%", id: "pf-art-bloom", width: "200%", x: "-50%", y: "-50%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "3.2" } }] }, { tag: "radialGradient", props: { cx: ".5", cy: ".5", id: "pf-art-vignette", r: ".72" }, children: [{ tag: "stop", props: { offset: ".57", stopColor: "#01040a", stopOpacity: "0" } }, { tag: "stop", props: { offset: "1", stopColor: "#01040a", stopOpacity: ".6" } }] }] }, { tag: "use", props: { href: "#pf-art-2" } }] }, city: { tag: "svg", props: { "aria-label": "\u041D\u0435\u043E\u043D\u043E\u0432\u044B\u0439 \u0433\u043E\u0440\u043E\u0434", role: "img", viewBox: "0 0 240 204" }, children: [{ tag: "defs", children: [{ tag: "symbol", props: { id: "pf-art-3", viewBox: "0 0 240 204" }, children: ["\n", { tag: "defs", children: ["\n", { tag: "linearGradient", props: { id: "pf-art-3-sky", x1: "0", x2: ".15", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#010409" } }, { tag: "stop", props: { offset: ".38", stopColor: "#04060b" } }, { tag: "stop", props: { offset: ".69", stopColor: "#2d0b1a" } }, { tag: "stop", props: { offset: ".85", stopColor: "#9b253e" } }, { tag: "stop", props: { offset: "1", stopColor: "#070d15" } }] }, "\n", { tag: "radialGradient", props: { id: "pf-art-3-horizon" }, children: [{ tag: "stop", props: { stopColor: "#ff6476", stopOpacity: ".83" } }, { tag: "stop", props: { offset: ".38", stopColor: "#e4284e", stopOpacity: ".42" } }, { tag: "stop", props: { offset: "1", stopColor: "#c5153f", stopOpacity: "0" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-3-cloud-fill", x1: "0", x2: "0", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#59182d" } }, { tag: "stop", props: { offset: ".18", stopColor: "#1e0c1c" } }, { tag: "stop", props: { offset: ".4", stopColor: "#040a11" } }, { tag: "stop", props: { offset: "1", stopColor: "#03060c" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-3-silk" }, children: [{ tag: "stop", props: { stopColor: "#8e0723", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".23", stopColor: "#bd0e32" } }, { tag: "stop", props: { offset: ".53", stopColor: "#ff4b63" } }, { tag: "stop", props: { offset: ".58", stopColor: "#ffb4b8" } }, { tag: "stop", props: { offset: ".72", stopColor: "#da1741" } }, { tag: "stop", props: { offset: "1", stopColor: "#340819", stopOpacity: "0" } }] }, "\n"] }, "\n", { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-3-sky)" } }, "\n", { tag: "circle", props: { cx: "238.41", cy: "13.62", fill: "#45809c", opacity: "0.53", r: "0.26" } }, { tag: "circle", props: { cx: "234.14", cy: "159.52", fill: "#45809c", opacity: "0.36", r: "0.55" } }, { tag: "circle", props: { cx: "228.19", cy: "107.50", fill: "#c39fb5", opacity: "0.22", r: "0.23" } }, { tag: "circle", props: { cx: "101.09", cy: "118.67", fill: "#45809c", opacity: "0.43", r: "0.42" } }, { tag: "circle", props: { cx: "189.72", cy: "151.81", fill: "#da385c", opacity: "0.48", r: "0.50" } }, { tag: "circle", props: { cx: "86.13", cy: "176.50", fill: "#c39fb5", opacity: "0.43", r: "0.34" } }, { tag: "circle", props: { cx: "9.81", cy: "30.42", fill: "#da385c", opacity: "0.31", r: "0.21" } }, { tag: "circle", props: { cx: "39.80", cy: "153.91", fill: "#45809c", opacity: "0.39", r: "0.21" } }, { tag: "circle", props: { cx: "131.83", cy: "174.55", fill: "#ec5375", opacity: "0.46", r: "0.18" } }, { tag: "circle", props: { cx: "119.31", cy: "139.98", fill: "#c39fb5", opacity: "0.41", r: "0.61" } }, { tag: "circle", props: { cx: "105.13", cy: "86.15", fill: "#45809c", opacity: "0.52", r: "0.25" } }, { tag: "circle", props: { cx: "92.14", cy: "159.34", fill: "#da385c", opacity: "0.59", r: "0.39" } }, { tag: "circle", props: { cx: "146.48", cy: "139.84", fill: "#ec5375", opacity: "0.13", r: "0.18" } }, { tag: "circle", props: { cx: "138.13", cy: "21.75", fill: "#c39fb5", opacity: "0.53", r: "0.37" } }, { tag: "circle", props: { cx: "95.65", cy: "129.50", fill: "#c39fb5", opacity: "0.32", r: "0.60" } }, { tag: "circle", props: { cx: "174.12", cy: "145.41", fill: "#da385c", opacity: "0.24", r: "0.53" } }, { tag: "circle", props: { cx: "6.01", cy: "116.29", fill: "#c39fb5", opacity: "0.28", r: "0.17" } }, { tag: "circle", props: { cx: "236.32", cy: "43.71", fill: "#c39fb5", opacity: "0.52", r: "0.63" } }, { tag: "circle", props: { cx: "229.77", cy: "117.74", fill: "#c39fb5", opacity: "0.40", r: "0.29" } }, { tag: "circle", props: { cx: "82.90", cy: "155.75", fill: "#45809c", opacity: "0.25", r: "0.25" } }, { tag: "circle", props: { cx: "69.96", cy: "123.24", fill: "#ec5375", opacity: "0.44", r: "0.18" } }, { tag: "circle", props: { cx: "60.08", cy: "15.76", fill: "#ec5375", opacity: "0.29", r: "0.47" } }, { tag: "circle", props: { cx: "1.49", cy: "65.32", fill: "#ec5375", opacity: "0.39", r: "0.43" } }, { tag: "circle", props: { cx: "230.77", cy: "131.02", fill: "#c39fb5", opacity: "0.21", r: "0.20" } }, { tag: "circle", props: { cx: "189.09", cy: "3.01", fill: "#ec5375", opacity: "0.10", r: "0.38" } }, { tag: "circle", props: { cx: "42.78", cy: "157.40", fill: "#c39fb5", opacity: "0.38", r: "0.43" } }, { tag: "circle", props: { cx: "75.40", cy: "70.99", fill: "#45809c", opacity: "0.45", r: "0.48" } }, { tag: "circle", props: { cx: "124.10", cy: "0.67", fill: "#ec5375", opacity: "0.53", r: "0.35" } }, { tag: "circle", props: { cx: "22.90", cy: "32.70", fill: "#da385c", opacity: "0.15", r: "0.26" } }, { tag: "circle", props: { cx: "219.29", cy: "117.14", fill: "#da385c", opacity: "0.16", r: "0.39" } }, { tag: "circle", props: { cx: "57.97", cy: "112.26", fill: "#45809c", opacity: "0.43", r: "0.39" } }, { tag: "circle", props: { cx: "100.92", cy: "56.57", fill: "#45809c", opacity: "0.25", r: "0.20" } }, { tag: "circle", props: { cx: "31.23", cy: "43.49", fill: "#da385c", opacity: "0.44", r: "0.23" } }, { tag: "circle", props: { cx: "181.08", cy: "150.01", fill: "#45809c", opacity: "0.47", r: "0.55" } }, { tag: "circle", props: { cx: "141.60", cy: "127.83", fill: "#45809c", opacity: "0.13", r: "0.52" } }, { tag: "circle", props: { cx: "83.36", cy: "78.36", fill: "#c39fb5", opacity: "0.16", r: "0.48" } }, { tag: "circle", props: { cx: "46.06", cy: "38.03", fill: "#da385c", opacity: "0.38", r: "0.48" } }, { tag: "circle", props: { cx: "237.60", cy: "31.11", fill: "#45809c", opacity: "0.38", r: "0.13" } }, { tag: "circle", props: { cx: "78.58", cy: "37.59", fill: "#45809c", opacity: "0.57", r: "0.46" } }, { tag: "circle", props: { cx: "130.37", cy: "24.66", fill: "#c39fb5", opacity: "0.58", r: "0.18" } }, { tag: "circle", props: { cx: "99.25", cy: "153.83", fill: "#45809c", opacity: "0.50", r: "0.21" } }, { tag: "circle", props: { cx: "99.06", cy: "162.82", fill: "#ec5375", opacity: "0.28", r: "0.21" } }, { tag: "circle", props: { cx: "64.69", cy: "150.25", fill: "#c39fb5", opacity: "0.13", r: "0.21" } }, { tag: "circle", props: { cx: "152.72", cy: "154.04", fill: "#ec5375", opacity: "0.14", r: "0.36" } }, { tag: "circle", props: { cx: "108.23", cy: "89.49", fill: "#c39fb5", opacity: "0.36", r: "0.25" } }, { tag: "circle", props: { cx: "151.78", cy: "25.62", fill: "#ec5375", opacity: "0.19", r: "0.45" } }, { tag: "circle", props: { cx: "155.83", cy: "129.89", fill: "#45809c", opacity: "0.45", r: "0.54" } }, { tag: "circle", props: { cx: "144.48", cy: "166.00", fill: "#45809c", opacity: "0.13", r: "0.38" } }, { tag: "circle", props: { cx: "94.38", cy: "97.45", fill: "#ec5375", opacity: "0.36", r: "0.27" } }, { tag: "circle", props: { cx: "55.74", cy: "76.89", fill: "#da385c", opacity: "0.44", r: "0.60" } }, { tag: "circle", props: { cx: "157.49", cy: "2.34", fill: "#da385c", opacity: "0.44", r: "0.18" } }, { tag: "circle", props: { cx: "38.95", cy: "97.84", fill: "#45809c", opacity: "0.57", r: "0.31" } }, { tag: "circle", props: { cx: "90.81", cy: "118.85", fill: "#c39fb5", opacity: "0.57", r: "0.25" } }, { tag: "circle", props: { cx: "133.52", cy: "142.89", fill: "#45809c", opacity: "0.35", r: "0.24" } }, { tag: "circle", props: { cx: "47.95", cy: "124.74", fill: "#45809c", opacity: "0.35", r: "0.18" } }, { tag: "circle", props: { cx: "225.33", cy: "124.53", fill: "#ec5375", opacity: "0.28", r: "0.64" } }, { tag: "circle", props: { cx: "127.84", cy: "132.80", fill: "#45809c", opacity: "0.59", r: "0.44" } }, { tag: "circle", props: { cx: "233.99", cy: "143.95", fill: "#ec5375", opacity: "0.60", r: "0.17" } }, { tag: "circle", props: { cx: "117.45", cy: "4.69", fill: "#45809c", opacity: "0.37", r: "0.47" } }, { tag: "circle", props: { cx: "160.51", cy: "36.58", fill: "#45809c", opacity: "0.17", r: "0.64" } }, { tag: "circle", props: { cx: "169.01", cy: "153.70", fill: "#da385c", opacity: "0.21", r: "0.13" } }, { tag: "circle", props: { cx: "217.96", cy: "151.46", fill: "#45809c", opacity: "0.30", r: "0.60" } }, { tag: "circle", props: { cx: "189.53", cy: "92.24", fill: "#da385c", opacity: "0.58", r: "0.14" } }, { tag: "circle", props: { cx: "201.43", cy: "7.80", fill: "#ec5375", opacity: "0.41", r: "0.36" } }, { tag: "circle", props: { cx: "188.63", cy: "10.17", fill: "#ec5375", opacity: "0.25", r: "0.23" } }, { tag: "circle", props: { cx: "78.41", cy: "34.52", fill: "#da385c", opacity: "0.49", r: "0.45" } }, { tag: "circle", props: { cx: "172.74", cy: "58.06", fill: "#ec5375", opacity: "0.46", r: "0.52" } }, { tag: "circle", props: { cx: "149.28", cy: "162.05", fill: "#da385c", opacity: "0.37", r: "0.60" } }, { tag: "circle", props: { cx: "129.96", cy: "128.55", fill: "#da385c", opacity: "0.25", r: "0.38" } }, { tag: "circle", props: { cx: "23.98", cy: "174.39", fill: "#c39fb5", opacity: "0.37", r: "0.53" } }, { tag: "circle", props: { cx: "212.81", cy: "70.77", fill: "#ec5375", opacity: "0.40", r: "0.16" } }, { tag: "circle", props: { cx: "95.82", cy: "10.15", fill: "#ec5375", opacity: "0.42", r: "0.23" } }, { tag: "circle", props: { cx: "156.89", cy: "101.00", fill: "#da385c", opacity: "0.22", r: "0.40" } }, { tag: "circle", props: { cx: "70.96", cy: "14.71", fill: "#da385c", opacity: "0.30", r: "0.47" } }, { tag: "circle", props: { cx: "225.71", cy: "26.56", fill: "#45809c", opacity: "0.41", r: "0.15" } }, { tag: "circle", props: { cx: "235.91", cy: "31.10", fill: "#da385c", opacity: "0.58", r: "0.49" } }, { tag: "circle", props: { cx: "204.51", cy: "161.59", fill: "#45809c", opacity: "0.15", r: "0.41" } }, { tag: "circle", props: { cx: "160.36", cy: "84.38", fill: "#ec5375", opacity: "0.57", r: "0.18" } }, { tag: "circle", props: { cx: "183.22", cy: "111.64", fill: "#c39fb5", opacity: "0.33", r: "0.21" } }, { tag: "circle", props: { cx: "170.15", cy: "147.08", fill: "#45809c", opacity: "0.15", r: "0.63" } }, { tag: "circle", props: { cx: "201.97", cy: "74.25", fill: "#c39fb5", opacity: "0.11", r: "0.23" } }, { tag: "circle", props: { cx: "221.91", cy: "37.66", fill: "#ec5375", opacity: "0.14", r: "0.21" } }, { tag: "circle", props: { cx: "29.15", cy: "113.26", fill: "#da385c", opacity: "0.35", r: "0.53" } }, { tag: "circle", props: { cx: "120.00", cy: "48.69", fill: "#da385c", opacity: "0.28", r: "0.46" } }, { tag: "circle", props: { cx: "18.57", cy: "6.45", fill: "#45809c", opacity: "0.36", r: "0.41" } }, { tag: "circle", props: { cx: "87.27", cy: "138.89", fill: "#c39fb5", opacity: "0.15", r: "0.51" } }, { tag: "circle", props: { cx: "229.77", cy: "52.62", fill: "#ec5375", opacity: "0.29", r: "0.37" } }, { tag: "circle", props: { cx: "157.55", cy: "37.18", fill: "#ec5375", opacity: "0.17", r: "0.60" } }, { tag: "circle", props: { cx: "225.39", cy: "113.25", fill: "#45809c", opacity: "0.20", r: "0.14" } }, { tag: "circle", props: { cx: "214.19", cy: "21.04", fill: "#45809c", opacity: "0.50", r: "0.37" } }, { tag: "circle", props: { cx: "220.66", cy: "152.76", fill: "#ec5375", opacity: "0.49", r: "0.21" } }, { tag: "circle", props: { cx: "113.85", cy: "63.50", fill: "#45809c", opacity: "0.11", r: "0.21" } }, { tag: "circle", props: { cx: "31.59", cy: "85.40", fill: "#45809c", opacity: "0.11", r: "0.47" } }, { tag: "circle", props: { cx: "215.31", cy: "82.75", fill: "#c39fb5", opacity: "0.35", r: "0.32" } }, { tag: "circle", props: { cx: "98.25", cy: "5.81", fill: "#ec5375", opacity: "0.55", r: "0.20" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "#010509", opacity: ".65" } }, { tag: "ellipse", props: { cx: "124", cy: "148", fill: "url(#pf-art-3-horizon)", opacity: ".6", rx: "116", ry: "68" } }, { tag: "path", props: { d: "M-4.0 164.7l4.4 -3 1.9 4V202H-4.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M0.4 161.7v40.3", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.57", width: "1.1", x: "-2", y: "177" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.47", width: "1.1", x: "-2", y: "183" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.37", width: "1.1", x: "-2", y: "189" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.59", width: "1.1", x: "-2", y: "195" } }, { tag: "path", props: { d: "M5.0 121.9l5.1 -3 2.2 4V202H5.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M10.1 118.9v83.1", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.73", width: "1.1", x: "7", y: "128" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.66", width: "1.1", x: "7", y: "134" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.54", width: "1.1", x: "7", y: "182" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.77", width: "1.1", x: "7", y: "194" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.73", width: "1.1", x: "7", y: "200" } }, { tag: "path", props: { d: "M14.0 102.4l9.0 -3 3.9 4V202H14.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M23.0 99.4v102.6", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.25", width: "1.1", x: "16", y: "109" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.31", width: "1.1", x: "20", y: "109" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.77", width: "1.1", x: "16", y: "115" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.52", width: "1.1", x: "20", y: "115" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.41", width: "1.1", x: "20", y: "121" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.81", width: "1.1", x: "16", y: "127" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.66", width: "1.1", x: "20", y: "127" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.37", width: "1.1", x: "16", y: "145" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.84", width: "1.1", x: "20", y: "145" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.64", width: "1.1", x: "20", y: "151" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.58", width: "1.1", x: "20", y: "157" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.25", width: "1.1", x: "16", y: "163" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.53", width: "1.1", x: "20", y: "169" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.51", width: "1.1", x: "16", y: "175" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.22", width: "1.1", x: "20", y: "175" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.48", width: "1.1", x: "16", y: "181" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.78", width: "1.1", x: "16", y: "187" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.55", width: "1.1", x: "20", y: "187" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.30", width: "1.1", x: "20", y: "193" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.75", width: "1.1", x: "16", y: "199" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.84", width: "1.1", x: "20", y: "199" } }, { tag: "path", props: { d: "M23.0 152.4l7.4 -3 3.2 4V202H23.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M30.4 149.4v52.6", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.34", width: "1.1", x: "29", y: "159" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.53", width: "1.1", x: "25", y: "165" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.37", width: "1.1", x: "29", y: "165" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.30", width: "1.1", x: "25", y: "171" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.74", width: "1.1", x: "29", y: "171" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.47", width: "1.1", x: "25", y: "177" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.76", width: "1.1", x: "29", y: "177" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.76", width: "1.1", x: "29", y: "183" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.53", width: "1.1", x: "29", y: "195" } }, { tag: "path", props: { d: "M32.0 106.0l6.7 -3 2.9 4V202H32.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M38.7 103.0v99.0", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.56", width: "1.1", x: "34", y: "112" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.25", width: "1.1", x: "38", y: "112" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.66", width: "1.1", x: "34", y: "124" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.49", width: "1.1", x: "38", y: "124" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.40", width: "1.1", x: "34", y: "130" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.53", width: "1.1", x: "38", y: "136" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.65", width: "1.1", x: "38", y: "142" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.21", width: "1.1", x: "34", y: "148" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.52", width: "1.1", x: "38", y: "148" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.20", width: "1.1", x: "38", y: "160" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.53", width: "1.1", x: "38", y: "178" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.42", width: "1.1", x: "38", y: "184" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.78", width: "1.1", x: "38", y: "190" } }, { tag: "path", props: { d: "M41.0 103.8l9.7 -3 4.2 4V202H41.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M50.7 100.8v101.2", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.33", width: "1.1", x: "43", y: "110" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.84", width: "1.1", x: "43", y: "116" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.33", width: "1.1", x: "47", y: "116" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.49", width: "1.1", x: "47", y: "122" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.43", width: "1.1", x: "47", y: "128" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.64", width: "1.1", x: "47", y: "134" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.57", width: "1.1", x: "51", y: "134" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.61", width: "1.1", x: "43", y: "146" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.22", width: "1.1", x: "47", y: "146" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.77", width: "1.1", x: "51", y: "146" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.22", width: "1.1", x: "43", y: "152" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.82", width: "1.1", x: "47", y: "152" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.29", width: "1.1", x: "51", y: "152" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.32", width: "1.1", x: "47", y: "158" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.35", width: "1.1", x: "51", y: "158" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.27", width: "1.1", x: "47", y: "164" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.39", width: "1.1", x: "51", y: "164" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.76", width: "1.1", x: "43", y: "170" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.24", width: "1.1", x: "47", y: "170" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.39", width: "1.1", x: "47", y: "176" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.75", width: "1.1", x: "51", y: "182" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.36", width: "1.1", x: "47", y: "200" } }, { tag: "path", props: { d: "M50.0 124.8l4.4 -3 1.9 4V202H50.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M54.4 121.8v80.2", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.45", width: "1.1", x: "52", y: "131" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.36", width: "1.1", x: "52", y: "137" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.55", width: "1.1", x: "52", y: "149" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.68", width: "1.1", x: "52", y: "155" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.79", width: "1.1", x: "52", y: "167" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.40", width: "1.1", x: "52", y: "173" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.43", width: "1.1", x: "52", y: "191" } }, { tag: "path", props: { d: "M59.0 134.6l9.8 -3 4.2 4V202H59.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M68.8 131.6v70.4", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.47", width: "1.1", x: "69", y: "141" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.34", width: "1.1", x: "61", y: "147" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.20", width: "1.1", x: "65", y: "147" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.71", width: "1.1", x: "65", y: "153" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.37", width: "1.1", x: "61", y: "159" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.83", width: "1.1", x: "65", y: "159" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.66", width: "1.1", x: "69", y: "159" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.41", width: "1.1", x: "61", y: "165" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.61", width: "1.1", x: "65", y: "165" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.51", width: "1.1", x: "69", y: "165" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.80", width: "1.1", x: "61", y: "171" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.30", width: "1.1", x: "69", y: "171" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.59", width: "1.1", x: "61", y: "177" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.44", width: "1.1", x: "65", y: "177" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.26", width: "1.1", x: "61", y: "183" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.51", width: "1.1", x: "65", y: "183" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.56", width: "1.1", x: "65", y: "189" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.37", width: "1.1", x: "65", y: "195" } }, { tag: "path", props: { d: "M68.0 126.5l6.3 -3 2.7 4V202H68.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M74.3 123.5v78.5", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.21", width: "1.1", x: "70", y: "133" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.50", width: "1.1", x: "70", y: "151" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.81", width: "1.1", x: "70", y: "157" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.49", width: "1.1", x: "70", y: "169" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.82", width: "1.1", x: "70", y: "175" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.65", width: "1.1", x: "70", y: "181" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.31", width: "1.1", x: "70", y: "193" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.66", width: "1.1", x: "70", y: "199" } }, { tag: "path", props: { d: "M77.0 123.5l8.2 -3 3.5 4V202H77.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M85.2 120.5v81.5", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.66", width: "1.1", x: "79", y: "130" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.67", width: "1.1", x: "79", y: "136" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.47", width: "1.1", x: "83", y: "136" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.72", width: "1.1", x: "79", y: "148" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.42", width: "1.1", x: "79", y: "154" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.64", width: "1.1", x: "83", y: "154" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.31", width: "1.1", x: "79", y: "178" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.54", width: "1.1", x: "83", y: "178" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.40", width: "1.1", x: "79", y: "184" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.42", width: "1.1", x: "83", y: "184" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.32", width: "1.1", x: "79", y: "190" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.80", width: "1.1", x: "79", y: "196" } }, { tag: "path", props: { d: "M86.0 144.0l4.8 -3 2.0 4V202H86.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M90.8 141.0v61.0", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.36", width: "1.1", x: "88", y: "151" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.61", width: "1.1", x: "88", y: "157" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.43", width: "1.1", x: "88", y: "169" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.56", width: "1.1", x: "88", y: "187" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.50", width: "1.1", x: "88", y: "199" } }, { tag: "path", props: { d: "M95.0 100.1l8.4 -3 3.6 4V202H95.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M103.4 97.1v104.9", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.79", width: "1.1", x: "97", y: "107" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.75", width: "1.1", x: "101", y: "107" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.44", width: "1.1", x: "97", y: "113" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.64", width: "1.1", x: "101", y: "113" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.25", width: "1.1", x: "97", y: "119" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.76", width: "1.1", x: "101", y: "119" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.65", width: "1.1", x: "97", y: "125" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.27", width: "1.1", x: "101", y: "137" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.31", width: "1.1", x: "97", y: "143" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.69", width: "1.1", x: "101", y: "143" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.33", width: "1.1", x: "97", y: "149" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.46", width: "1.1", x: "97", y: "155" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.32", width: "1.1", x: "97", y: "161" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.21", width: "1.1", x: "101", y: "161" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.82", width: "1.1", x: "97", y: "173" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.55", width: "1.1", x: "101", y: "173" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.28", width: "1.1", x: "97", y: "179" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.73", width: "1.1", x: "97", y: "191" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.58", width: "1.1", x: "101", y: "191" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.29", width: "1.1", x: "97", y: "197" } }, { tag: "path", props: { d: "M104.0 99.7l9.6 -3 4.1 4V202H104.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M113.6 96.7v105.3", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.82", width: "1.1", x: "110", y: "106" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.72", width: "1.1", x: "114", y: "106" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.69", width: "1.1", x: "106", y: "112" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.37", width: "1.1", x: "114", y: "112" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.60", width: "1.1", x: "106", y: "118" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.80", width: "1.1", x: "110", y: "118" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.75", width: "1.1", x: "114", y: "118" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.60", width: "1.1", x: "106", y: "124" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.53", width: "1.1", x: "110", y: "124" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.77", width: "1.1", x: "114", y: "130" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.41", width: "1.1", x: "106", y: "136" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.47", width: "1.1", x: "110", y: "136" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.39", width: "1.1", x: "114", y: "136" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.32", width: "1.1", x: "106", y: "148" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.37", width: "1.1", x: "114", y: "148" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.82", width: "1.1", x: "106", y: "154" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.56", width: "1.1", x: "114", y: "154" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.84", width: "1.1", x: "106", y: "160" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.76", width: "1.1", x: "106", y: "166" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.42", width: "1.1", x: "114", y: "166" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.85", width: "1.1", x: "106", y: "172" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.28", width: "1.1", x: "106", y: "178" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.43", width: "1.1", x: "110", y: "178" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.49", width: "1.1", x: "114", y: "178" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.40", width: "1.1", x: "106", y: "190" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.35", width: "1.1", x: "110", y: "190" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.41", width: "1.1", x: "106", y: "196" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.43", width: "1.1", x: "114", y: "196" } }, { tag: "path", props: { d: "M113.0 160.8l5.1 -3 2.2 4V202H113.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M118.1 157.8v44.2", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.81", width: "1.1", x: "115", y: "167" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.55", width: "1.1", x: "115", y: "191" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.84", width: "1.1", x: "115", y: "197" } }, { tag: "path", props: { d: "M122.0 94.9l9.3 -3 4.0 4V202H122.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M131.3 91.9v110.1", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.30", width: "1.1", x: "124", y: "101" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.28", width: "1.1", x: "128", y: "101" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.47", width: "1.1", x: "128", y: "113" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.69", width: "1.1", x: "132", y: "113" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.38", width: "1.1", x: "124", y: "119" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.55", width: "1.1", x: "132", y: "119" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.30", width: "1.1", x: "128", y: "125" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.39", width: "1.1", x: "132", y: "131" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.29", width: "1.1", x: "128", y: "137" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.65", width: "1.1", x: "132", y: "137" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.74", width: "1.1", x: "124", y: "143" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.38", width: "1.1", x: "128", y: "143" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.45", width: "1.1", x: "132", y: "143" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.73", width: "1.1", x: "124", y: "149" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.72", width: "1.1", x: "128", y: "149" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.76", width: "1.1", x: "132", y: "155" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.44", width: "1.1", x: "124", y: "161" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.47", width: "1.1", x: "132", y: "161" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.23", width: "1.1", x: "128", y: "167" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.67", width: "1.1", x: "132", y: "167" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.77", width: "1.1", x: "124", y: "173" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.65", width: "1.1", x: "128", y: "173" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.62", width: "1.1", x: "124", y: "179" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.43", width: "1.1", x: "128", y: "179" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.63", width: "1.1", x: "124", y: "185" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.23", width: "1.1", x: "128", y: "185" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.81", width: "1.1", x: "132", y: "185" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.35", width: "1.1", x: "124", y: "191" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.59", width: "1.1", x: "128", y: "197" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.37", width: "1.1", x: "132", y: "197" } }, { tag: "path", props: { d: "M131.0 157.5l9.1 -3 3.9 4V202H131.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M140.1 154.5v47.5", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.64", width: "1.1", x: "133", y: "164" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.31", width: "1.1", x: "137", y: "164" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.55", width: "1.1", x: "141", y: "164" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.22", width: "1.1", x: "133", y: "170" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.52", width: "1.1", x: "141", y: "170" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.30", width: "1.1", x: "133", y: "176" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.23", width: "1.1", x: "137", y: "176" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.24", width: "1.1", x: "137", y: "182" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.25", width: "1.1", x: "141", y: "182" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.27", width: "1.1", x: "133", y: "188" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.63", width: "1.1", x: "137", y: "188" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.46", width: "1.1", x: "141", y: "188" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.78", width: "1.1", x: "137", y: "194" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.25", width: "1.1", x: "137", y: "200" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.22", width: "1.1", x: "141", y: "200" } }, { tag: "path", props: { d: "M140.0 152.9l5.5 -3 2.3 4V202H140.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M145.5 149.9v52.1", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.47", width: "1.1", x: "142", y: "165" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.58", width: "1.1", x: "142", y: "171" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.40", width: "1.1", x: "142", y: "177" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.46", width: "1.1", x: "142", y: "183" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.84", width: "1.1", x: "142", y: "189" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.42", width: "1.1", x: "142", y: "195" } }, { tag: "path", props: { d: "M149.0 126.0l10.8 -3 4.6 4V202H149.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M159.8 123.0v79.0", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.75", width: "1.1", x: "151", y: "132" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.61", width: "1.1", x: "155", y: "132" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.32", width: "1.1", x: "159", y: "132" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.54", width: "1.1", x: "151", y: "138" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.53", width: "1.1", x: "159", y: "138" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.33", width: "1.1", x: "151", y: "144" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.34", width: "1.1", x: "155", y: "144" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.31", width: "1.1", x: "159", y: "144" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.25", width: "1.1", x: "151", y: "150" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.33", width: "1.1", x: "159", y: "150" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.37", width: "1.1", x: "151", y: "162" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.32", width: "1.1", x: "155", y: "162" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.74", width: "1.1", x: "159", y: "162" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.50", width: "1.1", x: "151", y: "168" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.53", width: "1.1", x: "159", y: "168" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.58", width: "1.1", x: "155", y: "174" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.54", width: "1.1", x: "159", y: "174" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.30", width: "1.1", x: "151", y: "180" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.53", width: "1.1", x: "155", y: "180" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.79", width: "1.1", x: "151", y: "186" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.81", width: "1.1", x: "155", y: "186" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.36", width: "1.1", x: "151", y: "192" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.38", width: "1.1", x: "159", y: "198" } }, { tag: "path", props: { d: "M158.0 135.7l5.3 -3 2.3 4V202H158.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M163.3 132.7v69.3", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.82", width: "1.1", x: "160", y: "148" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.76", width: "1.1", x: "160", y: "154" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.58", width: "1.1", x: "160", y: "160" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.67", width: "1.1", x: "160", y: "166" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.68", width: "1.1", x: "160", y: "178" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.21", width: "1.1", x: "160", y: "184" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.45", width: "1.1", x: "160", y: "190" } }, { tag: "path", props: { d: "M167.0 95.2l7.9 -3 3.4 4V202H167.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M174.9 92.2v109.8", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.71", width: "1.1", x: "173", y: "102" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.53", width: "1.1", x: "173", y: "114" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.53", width: "1.1", x: "169", y: "120" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.49", width: "1.1", x: "173", y: "120" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.23", width: "1.1", x: "169", y: "126" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.55", width: "1.1", x: "169", y: "132" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.62", width: "1.1", x: "173", y: "132" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.44", width: "1.1", x: "173", y: "144" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.69", width: "1.1", x: "173", y: "150" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.55", width: "1.1", x: "169", y: "162" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.29", width: "1.1", x: "173", y: "168" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.79", width: "1.1", x: "173", y: "180" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.72", width: "1.1", x: "169", y: "192" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.29", width: "1.1", x: "169", y: "198" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.68", width: "1.1", x: "173", y: "198" } }, { tag: "path", props: { d: "M176.0 139.4l9.3 -3 4.0 4V202H176.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M185.3 136.4v65.6", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.38", width: "1.1", x: "178", y: "146" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.24", width: "1.1", x: "186", y: "146" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.34", width: "1.1", x: "186", y: "152" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.35", width: "1.1", x: "186", y: "164" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.44", width: "1.1", x: "178", y: "170" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.69", width: "1.1", x: "186", y: "170" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.51", width: "1.1", x: "186", y: "176" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.39", width: "1.1", x: "182", y: "182" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.42", width: "1.1", x: "186", y: "182" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.35", width: "1.1", x: "178", y: "188" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.78", width: "1.1", x: "182", y: "188" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.75", width: "1.1", x: "186", y: "188" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.36", width: "1.1", x: "186", y: "194" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.56", width: "1.1", x: "178", y: "200" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.55", width: "1.1", x: "182", y: "200" } }, { tag: "path", props: { d: "M185.0 125.4l10.3 -3 4.4 4V202H185.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M195.3 122.4v79.6", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.54", width: "1.1", x: "187", y: "132" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.58", width: "1.1", x: "195", y: "132" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.48", width: "1.1", x: "187", y: "138" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.24", width: "1.1", x: "191", y: "144" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.79", width: "1.1", x: "187", y: "150" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.37", width: "1.1", x: "195", y: "156" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.32", width: "1.1", x: "187", y: "162" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.57", width: "1.1", x: "191", y: "162" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.67", width: "1.1", x: "195", y: "168" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.44", width: "1.1", x: "187", y: "174" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.43", width: "1.1", x: "191", y: "174" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.79", width: "1.1", x: "195", y: "174" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.28", width: "1.1", x: "187", y: "180" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.47", width: "1.1", x: "195", y: "186" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.61", width: "1.1", x: "191", y: "192" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.50", width: "1.1", x: "191", y: "198" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.79", width: "1.1", x: "195", y: "198" } }, { tag: "path", props: { d: "M194.0 93.5l7.8 -3 3.4 4V202H194.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M201.8 90.5v111.5", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.42", width: "1.1", x: "196", y: "100" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.82", width: "1.1", x: "196", y: "112" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.69", width: "1.1", x: "196", y: "118" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.25", width: "1.1", x: "200", y: "118" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.74", width: "1.1", x: "200", y: "124" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.34", width: "1.1", x: "196", y: "136" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.59", width: "1.1", x: "200", y: "136" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.51", width: "1.1", x: "196", y: "142" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.37", width: "1.1", x: "200", y: "148" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.67", width: "1.1", x: "196", y: "154" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.35", width: "1.1", x: "200", y: "160" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.32", width: "1.1", x: "196", y: "166" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.48", width: "1.1", x: "200", y: "172" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.25", width: "1.1", x: "196", y: "178" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.38", width: "1.1", x: "200", y: "184" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.61", width: "1.1", x: "196", y: "190" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.33", width: "1.1", x: "200", y: "196" } }, { tag: "path", props: { d: "M203.0 116.1l7.5 -3 3.2 4V202H203.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M210.5 113.1v88.9", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.28", width: "1.1", x: "205", y: "129" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.62", width: "1.1", x: "209", y: "129" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.43", width: "1.1", x: "205", y: "135" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.40", width: "1.1", x: "209", y: "141" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.61", width: "1.1", x: "209", y: "147" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.59", width: "1.1", x: "205", y: "153" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.39", width: "1.1", x: "209", y: "153" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.46", width: "1.1", x: "205", y: "159" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.42", width: "1.1", x: "209", y: "165" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.44", width: "1.1", x: "205", y: "171" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.56", width: "1.1", x: "209", y: "177" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.28", width: "1.1", x: "205", y: "183" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.22", width: "1.1", x: "209", y: "183" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.46", width: "1.1", x: "205", y: "195" } }, { tag: "path", props: { d: "M212.0 109.9l5.2 -3 2.2 4V202H212.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M217.2 106.9v95.1", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.43", width: "1.1", x: "214", y: "122" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.61", width: "1.1", x: "214", y: "128" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.58", width: "1.1", x: "214", y: "134" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.50", width: "1.1", x: "214", y: "146" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.40", width: "1.1", x: "214", y: "152" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.21", width: "1.1", x: "214", y: "158" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.60", width: "1.1", x: "214", y: "176" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.52", width: "1.1", x: "214", y: "182" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.28", width: "1.1", x: "214", y: "194" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.42", width: "1.1", x: "214", y: "200" } }, { tag: "path", props: { d: "M221.0 141.9l9.6 -3 4.1 4V202H221.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M230.6 138.9v63.1", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.83", width: "1.1", x: "223", y: "148" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.63", width: "1.1", x: "231", y: "148" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.61", width: "1.1", x: "223", y: "160" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.65", width: "1.1", x: "227", y: "160" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.61", width: "1.1", x: "231", y: "160" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.56", width: "1.1", x: "227", y: "166" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.45", width: "1.1", x: "231", y: "166" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.59", width: "1.1", x: "227", y: "172" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.31", width: "1.1", x: "223", y: "178" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.49", width: "1.1", x: "227", y: "178" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.58", width: "1.1", x: "231", y: "178" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.60", width: "1.1", x: "227", y: "184" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.45", width: "1.1", x: "223", y: "190" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.43", width: "1.1", x: "223", y: "196" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.28", width: "1.1", x: "227", y: "196" } }, { tag: "path", props: { d: "M230.0 122.2l8.3 -3 3.6 4V202H230.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M238.3 119.2v82.8", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.82", width: "1.1", x: "236", y: "129" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.29", width: "1.1", x: "236", y: "141" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.82", width: "1.1", x: "236", y: "147" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.83", width: "1.1", x: "236", y: "153" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.22", width: "1.1", x: "232", y: "159" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.59", width: "1.1", x: "232", y: "171" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.72", width: "1.1", x: "232", y: "183" } }, { tag: "rect", props: { fill: "#305f77", height: "2.1", opacity: "0.64", width: "1.1", x: "232", y: "189" } }, { tag: "rect", props: { fill: "#a32a4c", height: "2.1", opacity: "0.21", width: "1.1", x: "236", y: "189" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.60", width: "1.1", x: "236", y: "195" } }, { tag: "path", props: { d: "M239.0 153.8l7.2 -3 3.1 4V202H239.0Z", fill: "#050912", stroke: "#6b172c", strokeWidth: ".6" } }, { tag: "path", props: { d: "M246.2 150.8v51.2", opacity: ".45", stroke: "#fb3555", strokeWidth: ".8" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.26", width: "1.1", x: "241", y: "166" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.23", width: "1.1", x: "245", y: "178" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.46", width: "1.1", x: "241", y: "184" } }, { tag: "rect", props: { fill: "#af2440", height: "2.1", opacity: "0.47", width: "1.1", x: "241", y: "190" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.76", width: "1.1", x: "245", y: "190" } }, { tag: "rect", props: { fill: "#ff687e", height: "2.1", opacity: "0.71", width: "1.1", x: "241", y: "196" } }, { tag: "path", props: { d: "M107 189V91l6-1 3-38 5-6 3-40 3 40 5 7 3 40 6 3V189Z", fill: "#311222", stroke: "#ec3054", strokeWidth: "1.05" } }, { tag: "path", props: { d: "M125 7V179M117 54h15M115 88h19M110 111h29M110 136h29M110 158h30", fill: "none", filter: "url(#pf-art-soft)", opacity: ".8", stroke: "#ff4b69", strokeWidth: "1.4" } }, { tag: "path", props: { d: "M124 10V94", stroke: "#fff0e6", strokeWidth: ".9" } }, { tag: "path", props: { d: "M114 98L124 92V186H114Z", fill: "#ea224a", opacity: ".5" } }, { tag: "path", props: { d: "M128 59v126", stroke: "#050710", strokeWidth: "3.3" } }, { tag: "path", props: { d: "M112 102h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 102h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 109h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 109h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 116h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 116h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 123h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 123h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 130h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 130h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 137h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 137h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 144h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 144h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 151h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 151h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 158h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 158h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 165h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 165h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 172h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 172h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M112 179h26", opacity: ".63", stroke: "#ff5e7c", strokeWidth: "1" } }, { tag: "path", props: { d: "M118 179h8", stroke: "#ffc4c7", strokeWidth: ".6" } }, { tag: "path", props: { d: "M173 187V61l8-7 7 8v122", fill: "#060911", stroke: "#72172e", strokeWidth: ".8" } }, { tag: "path", props: { d: "M180 54V36", stroke: "#e74562", strokeWidth: ".6" } }, { tag: "path", props: { d: "M0 204Q73 192 119 174L125 181Q87 198 80 204Z", fill: "#ff3659", filter: "url(#pf-art-soft)", opacity: ".5" } }, { tag: "path", props: { d: "M10 204Q70 192 120 176M27 204Q75 193 124 180", fill: "none", stroke: "#ffa1b2", strokeWidth: ".7" } }, { tag: "path", props: { d: "M150 204L197 181 240 184V204Z", fill: "#071b25", opacity: ".88" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-vignette)" } }] }, { tag: "radialGradient", props: { cx: ".5", cy: ".5", id: "pf-art-vignette", r: ".72" }, children: [{ tag: "stop", props: { offset: ".57", stopColor: "#01040a", stopOpacity: "0" } }, { tag: "stop", props: { offset: "1", stopColor: "#01040a", stopOpacity: ".6" } }] }, { tag: "filter", props: { height: "170%", id: "pf-art-soft", width: "170%", x: "-35%", y: "-35%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "1.15" } }] }] }, { tag: "use", props: { href: "#pf-art-3" } }] }, silk: { tag: "svg", props: { "aria-label": "\u041A\u0440\u0430\u0441\u043D\u044B\u0435 \u043F\u043E\u0442\u043E\u043A\u0438", role: "img", viewBox: "0 0 240 204" }, children: [{ tag: "defs", children: [{ tag: "symbol", props: { id: "pf-art-4", viewBox: "0 0 240 204" }, children: ["\n", { tag: "defs", children: ["\n", { tag: "linearGradient", props: { id: "pf-art-4-sky", x1: "0", x2: ".15", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#010409" } }, { tag: "stop", props: { offset: ".38", stopColor: "#04060b" } }, { tag: "stop", props: { offset: ".69", stopColor: "#2d0b1a" } }, { tag: "stop", props: { offset: ".85", stopColor: "#9b253e" } }, { tag: "stop", props: { offset: "1", stopColor: "#070d15" } }] }, "\n", { tag: "radialGradient", props: { id: "pf-art-4-horizon" }, children: [{ tag: "stop", props: { stopColor: "#ff6476", stopOpacity: ".83" } }, { tag: "stop", props: { offset: ".38", stopColor: "#e4284e", stopOpacity: ".42" } }, { tag: "stop", props: { offset: "1", stopColor: "#c5153f", stopOpacity: "0" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-4-cloud-fill", x1: "0", x2: "0", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#59182d" } }, { tag: "stop", props: { offset: ".18", stopColor: "#1e0c1c" } }, { tag: "stop", props: { offset: ".4", stopColor: "#040a11" } }, { tag: "stop", props: { offset: "1", stopColor: "#03060c" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-4-silk" }, children: [{ tag: "stop", props: { stopColor: "#8e0723", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".23", stopColor: "#bd0e32" } }, { tag: "stop", props: { offset: ".53", stopColor: "#ff4b63" } }, { tag: "stop", props: { offset: ".58", stopColor: "#ffb4b8" } }, { tag: "stop", props: { offset: ".72", stopColor: "#da1741" } }, { tag: "stop", props: { offset: "1", stopColor: "#340819", stopOpacity: "0" } }] }, "\n"] }, "\n", { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-4-sky)" } }, "\n", { tag: "circle", props: { cx: "95.26", cy: "15.38", fill: "#ec5375", opacity: "0.17", r: "0.43" } }, { tag: "circle", props: { cx: "206.89", cy: "19.17", fill: "#ec5375", opacity: "0.26", r: "0.42" } }, { tag: "circle", props: { cx: "17.39", cy: "12.22", fill: "#45809c", opacity: "0.59", r: "0.48" } }, { tag: "circle", props: { cx: "197.84", cy: "27.23", fill: "#c39fb5", opacity: "0.25", r: "0.23" } }, { tag: "circle", props: { cx: "49.15", cy: "168.44", fill: "#45809c", opacity: "0.20", r: "0.36" } }, { tag: "circle", props: { cx: "32.23", cy: "93.92", fill: "#c39fb5", opacity: "0.12", r: "0.51" } }, { tag: "circle", props: { cx: "136.03", cy: "80.67", fill: "#da385c", opacity: "0.55", r: "0.33" } }, { tag: "circle", props: { cx: "105.39", cy: "171.56", fill: "#da385c", opacity: "0.33", r: "0.22" } }, { tag: "circle", props: { cx: "201.29", cy: "140.15", fill: "#ec5375", opacity: "0.17", r: "0.57" } }, { tag: "circle", props: { cx: "121.33", cy: "179.71", fill: "#45809c", opacity: "0.30", r: "0.64" } }, { tag: "circle", props: { cx: "172.65", cy: "121.85", fill: "#45809c", opacity: "0.41", r: "0.13" } }, { tag: "circle", props: { cx: "46.27", cy: "11.85", fill: "#ec5375", opacity: "0.37", r: "0.62" } }, { tag: "circle", props: { cx: "174.46", cy: "110.94", fill: "#45809c", opacity: "0.44", r: "0.36" } }, { tag: "circle", props: { cx: "88.32", cy: "161.41", fill: "#ec5375", opacity: "0.47", r: "0.65" } }, { tag: "circle", props: { cx: "83.96", cy: "46.93", fill: "#c39fb5", opacity: "0.24", r: "0.36" } }, { tag: "circle", props: { cx: "42.92", cy: "67.69", fill: "#ec5375", opacity: "0.18", r: "0.52" } }, { tag: "circle", props: { cx: "134.20", cy: "29.89", fill: "#da385c", opacity: "0.55", r: "0.31" } }, { tag: "circle", props: { cx: "50.19", cy: "80.36", fill: "#ec5375", opacity: "0.20", r: "0.59" } }, { tag: "circle", props: { cx: "109.91", cy: "79.52", fill: "#45809c", opacity: "0.58", r: "0.60" } }, { tag: "circle", props: { cx: "223.82", cy: "61.94", fill: "#ec5375", opacity: "0.43", r: "0.55" } }, { tag: "circle", props: { cx: "4.40", cy: "132.10", fill: "#45809c", opacity: "0.34", r: "0.61" } }, { tag: "circle", props: { cx: "30.91", cy: "118.95", fill: "#da385c", opacity: "0.11", r: "0.55" } }, { tag: "circle", props: { cx: "120.41", cy: "173.77", fill: "#45809c", opacity: "0.56", r: "0.13" } }, { tag: "circle", props: { cx: "25.90", cy: "54.68", fill: "#c39fb5", opacity: "0.41", r: "0.31" } }, { tag: "circle", props: { cx: "183.91", cy: "155.02", fill: "#c39fb5", opacity: "0.46", r: "0.31" } }, { tag: "circle", props: { cx: "160.51", cy: "92.75", fill: "#ec5375", opacity: "0.18", r: "0.48" } }, { tag: "circle", props: { cx: "6.39", cy: "58.89", fill: "#45809c", opacity: "0.56", r: "0.31" } }, { tag: "circle", props: { cx: "115.54", cy: "46.75", fill: "#45809c", opacity: "0.18", r: "0.51" } }, { tag: "circle", props: { cx: "126.44", cy: "127.93", fill: "#45809c", opacity: "0.28", r: "0.22" } }, { tag: "circle", props: { cx: "28.57", cy: "17.65", fill: "#45809c", opacity: "0.56", r: "0.32" } }, { tag: "circle", props: { cx: "146.66", cy: "35.50", fill: "#c39fb5", opacity: "0.14", r: "0.53" } }, { tag: "circle", props: { cx: "145.98", cy: "73.69", fill: "#45809c", opacity: "0.20", r: "0.58" } }, { tag: "circle", props: { cx: "64.60", cy: "2.20", fill: "#ec5375", opacity: "0.29", r: "0.59" } }, { tag: "circle", props: { cx: "199.30", cy: "26.82", fill: "#45809c", opacity: "0.21", r: "0.39" } }, { tag: "circle", props: { cx: "57.26", cy: "172.08", fill: "#c39fb5", opacity: "0.38", r: "0.15" } }, { tag: "circle", props: { cx: "56.78", cy: "9.81", fill: "#ec5375", opacity: "0.27", r: "0.27" } }, { tag: "circle", props: { cx: "180.44", cy: "37.85", fill: "#da385c", opacity: "0.24", r: "0.46" } }, { tag: "circle", props: { cx: "120.82", cy: "81.62", fill: "#45809c", opacity: "0.38", r: "0.40" } }, { tag: "circle", props: { cx: "36.84", cy: "148.43", fill: "#da385c", opacity: "0.48", r: "0.62" } }, { tag: "circle", props: { cx: "25.27", cy: "106.86", fill: "#ec5375", opacity: "0.20", r: "0.19" } }, { tag: "circle", props: { cx: "56.27", cy: "105.28", fill: "#c39fb5", opacity: "0.21", r: "0.42" } }, { tag: "circle", props: { cx: "17.30", cy: "7.33", fill: "#45809c", opacity: "0.56", r: "0.33" } }, { tag: "circle", props: { cx: "21.03", cy: "110.96", fill: "#da385c", opacity: "0.52", r: "0.17" } }, { tag: "circle", props: { cx: "116.42", cy: "75.89", fill: "#45809c", opacity: "0.14", r: "0.42" } }, { tag: "circle", props: { cx: "219.16", cy: "78.77", fill: "#c39fb5", opacity: "0.39", r: "0.39" } }, { tag: "circle", props: { cx: "126.79", cy: "96.70", fill: "#ec5375", opacity: "0.40", r: "0.51" } }, { tag: "circle", props: { cx: "235.25", cy: "74.07", fill: "#45809c", opacity: "0.48", r: "0.35" } }, { tag: "circle", props: { cx: "62.77", cy: "53.91", fill: "#c39fb5", opacity: "0.29", r: "0.35" } }, { tag: "circle", props: { cx: "35.51", cy: "49.19", fill: "#da385c", opacity: "0.20", r: "0.41" } }, { tag: "circle", props: { cx: "232.96", cy: "75.85", fill: "#da385c", opacity: "0.57", r: "0.18" } }, { tag: "circle", props: { cx: "213.14", cy: "47.52", fill: "#da385c", opacity: "0.22", r: "0.49" } }, { tag: "circle", props: { cx: "97.44", cy: "78.20", fill: "#45809c", opacity: "0.31", r: "0.38" } }, { tag: "circle", props: { cx: "213.67", cy: "154.03", fill: "#da385c", opacity: "0.19", r: "0.39" } }, { tag: "circle", props: { cx: "165.34", cy: "34.59", fill: "#c39fb5", opacity: "0.38", r: "0.40" } }, { tag: "circle", props: { cx: "150.31", cy: "79.35", fill: "#ec5375", opacity: "0.40", r: "0.53" } }, { tag: "circle", props: { cx: "103.39", cy: "166.48", fill: "#da385c", opacity: "0.59", r: "0.51" } }, { tag: "circle", props: { cx: "147.11", cy: "81.91", fill: "#ec5375", opacity: "0.47", r: "0.35" } }, { tag: "circle", props: { cx: "33.32", cy: "150.75", fill: "#c39fb5", opacity: "0.16", r: "0.49" } }, { tag: "circle", props: { cx: "42.54", cy: "108.28", fill: "#ec5375", opacity: "0.46", r: "0.13" } }, { tag: "circle", props: { cx: "206.45", cy: "68.14", fill: "#45809c", opacity: "0.45", r: "0.18" } }, { tag: "circle", props: { cx: "48.91", cy: "144.07", fill: "#c39fb5", opacity: "0.29", r: "0.59" } }, { tag: "circle", props: { cx: "85.97", cy: "43.06", fill: "#c39fb5", opacity: "0.15", r: "0.51" } }, { tag: "circle", props: { cx: "222.22", cy: "136.38", fill: "#da385c", opacity: "0.51", r: "0.52" } }, { tag: "circle", props: { cx: "208.59", cy: "56.23", fill: "#c39fb5", opacity: "0.56", r: "0.52" } }, { tag: "circle", props: { cx: "164.70", cy: "125.24", fill: "#da385c", opacity: "0.29", r: "0.30" } }, { tag: "circle", props: { cx: "145.22", cy: "92.61", fill: "#c39fb5", opacity: "0.27", r: "0.27" } }, { tag: "circle", props: { cx: "142.49", cy: "27.67", fill: "#ec5375", opacity: "0.58", r: "0.43" } }, { tag: "circle", props: { cx: "67.46", cy: "131.03", fill: "#da385c", opacity: "0.35", r: "0.47" } }, { tag: "circle", props: { cx: "30.92", cy: "67.37", fill: "#da385c", opacity: "0.34", r: "0.22" } }, { tag: "circle", props: { cx: "189.82", cy: "51.28", fill: "#45809c", opacity: "0.19", r: "0.46" } }, { tag: "circle", props: { cx: "217.97", cy: "114.66", fill: "#da385c", opacity: "0.39", r: "0.60" } }, { tag: "circle", props: { cx: "130.32", cy: "49.92", fill: "#da385c", opacity: "0.32", r: "0.49" } }, { tag: "circle", props: { cx: "139.98", cy: "129.32", fill: "#ec5375", opacity: "0.31", r: "0.36" } }, { tag: "circle", props: { cx: "128.89", cy: "118.24", fill: "#c39fb5", opacity: "0.49", r: "0.58" } }, { tag: "circle", props: { cx: "97.60", cy: "75.75", fill: "#c39fb5", opacity: "0.38", r: "0.16" } }, { tag: "circle", props: { cx: "69.84", cy: "171.40", fill: "#c39fb5", opacity: "0.40", r: "0.26" } }, { tag: "circle", props: { cx: "142.22", cy: "87.48", fill: "#c39fb5", opacity: "0.54", r: "0.62" } }, { tag: "circle", props: { cx: "175.80", cy: "8.30", fill: "#ec5375", opacity: "0.38", r: "0.24" } }, { tag: "circle", props: { cx: "147.43", cy: "130.51", fill: "#ec5375", opacity: "0.43", r: "0.18" } }, { tag: "circle", props: { cx: "58.53", cy: "104.62", fill: "#da385c", opacity: "0.45", r: "0.54" } }, { tag: "circle", props: { cx: "9.07", cy: "62.22", fill: "#c39fb5", opacity: "0.48", r: "0.41" } }, { tag: "circle", props: { cx: "65.09", cy: "20.52", fill: "#ec5375", opacity: "0.48", r: "0.52" } }, { tag: "circle", props: { cx: "47.35", cy: "109.76", fill: "#ec5375", opacity: "0.41", r: "0.50" } }, { tag: "circle", props: { cx: "207.03", cy: "107.68", fill: "#45809c", opacity: "0.13", r: "0.16" } }, { tag: "circle", props: { cx: "226.90", cy: "26.39", fill: "#da385c", opacity: "0.16", r: "0.53" } }, { tag: "circle", props: { cx: "96.64", cy: "74.29", fill: "#c39fb5", opacity: "0.54", r: "0.23" } }, { tag: "circle", props: { cx: "188.59", cy: "165.17", fill: "#da385c", opacity: "0.27", r: "0.31" } }, { tag: "circle", props: { cx: "193.91", cy: "168.98", fill: "#c39fb5", opacity: "0.51", r: "0.26" } }, { tag: "circle", props: { cx: "128.49", cy: "62.84", fill: "#45809c", opacity: "0.51", r: "0.19" } }, { tag: "circle", props: { cx: "94.14", cy: "49.70", fill: "#45809c", opacity: "0.37", r: "0.48" } }, { tag: "circle", props: { cx: "165.70", cy: "127.20", fill: "#45809c", opacity: "0.36", r: "0.21" } }, { tag: "circle", props: { cx: "208.33", cy: "69.35", fill: "#ec5375", opacity: "0.53", r: "0.33" } }, { tag: "circle", props: { cx: "157.29", cy: "146.18", fill: "#45809c", opacity: "0.21", r: "0.55" } }, { tag: "circle", props: { cx: "53.11", cy: "16.35", fill: "#45809c", opacity: "0.20", r: "0.50" } }, { tag: "circle", props: { cx: "57.47", cy: "26.11", fill: "#45809c", opacity: "0.19", r: "0.21" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "#01070c" } }, { tag: "path", props: { d: "M211.50 -24C138.50 0 126.50 27 121.15 55C34.50 120.90 -32.85 -38.95 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M211.50 -24C138.50 0 126.50 27 121.15 55C34.50 120.90 -32.85 -38.95 27 -18", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M212.54 -24C139.54 0 127.54 27 121.25 55C35.54 121.52 -32.75 -38.22 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M213.57 -24C140.57 0 128.57 27 121.36 55C36.57 122.14 -32.64 -37.50 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M214.61 -24C141.61 0 129.61 27 121.46 55C37.61 122.77 -32.54 -36.77 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M215.65 -24C142.65 0 130.65 27 121.56 55C38.65 123.39 -32.44 -36.05 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M216.68 -24C143.68 0 131.68 27 121.67 55C39.68 124.01 -32.33 -35.32 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M217.72 -24C144.72 0 132.72 27 121.77 55C40.72 124.63 -32.23 -34.60 27 -18", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.69" } }, { tag: "path", props: { d: "M218.75 -24C145.75 0 133.75 27 121.88 55C41.75 125.25 -32.12 -33.87 27 -18", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.00" } }, { tag: "path", props: { d: "M219.79 -24C146.79 0 134.79 27 121.98 55C42.79 125.87 -32.02 -33.15 27 -18", fill: "none", opacity: "0.14", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.37" } }, { tag: "path", props: { d: "M220.83 -24C147.83 0 135.83 27 122.08 55C43.83 126.50 -31.92 -32.42 27 -18", fill: "none", opacity: "0.16", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.73" } }, { tag: "path", props: { d: "M221.86 -24C148.86 0 136.86 27 122.19 55C44.86 127.12 -31.81 -31.70 27 -18", fill: "none", opacity: "0.17", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.98" } }, { tag: "path", props: { d: "M222.90 -24C149.90 0 137.90 27 122.29 55C45.90 127.74 -31.71 -30.97 27 -18", fill: "none", opacity: "0.19", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.05" } }, { tag: "path", props: { d: "M223.94 -24C150.94 0 138.94 27 122.39 55C46.94 128.36 -31.61 -30.24 27 -18", fill: "none", opacity: "0.22", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.90" } }, { tag: "path", props: { d: "M224.97 -24C151.97 0 139.97 27 122.50 55C47.97 128.98 -31.50 -29.52 27 -18", fill: "none", opacity: "0.25", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.59" } }, { tag: "path", props: { d: "M226.01 -24C153.01 0 141.01 27 122.60 55C49.01 129.61 -31.40 -28.79 27 -18", fill: "none", opacity: "0.28", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.22" } }, { tag: "path", props: { d: "M227.05 -24C154.05 0 142.05 27 122.70 55C50.05 130.23 -31.30 -28.07 27 -18", fill: "none", opacity: "0.32", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.86" } }, { tag: "path", props: { d: "M228.08 -24C155.08 0 143.08 27 122.81 55C51.08 130.85 -31.19 -27.34 27 -18", fill: "none", opacity: "0.36", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M229.12 -24C156.12 0 144.12 27 122.91 55C52.12 131.47 -31.09 -26.62 27 -18", fill: "none", opacity: "0.40", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M229.12 -24C156.12 0 144.12 27 122.91 55C52.12 131.47 -31.09 -26.62 27 -18", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M230.15 -24C157.15 0 145.15 27 123.02 55C53.15 132.09 -30.98 -25.89 27 -18", fill: "none", opacity: "0.44", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M231.19 -24C158.19 0 146.19 27 123.12 55C54.19 132.71 -30.88 -25.17 27 -18", fill: "none", opacity: "0.49", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M232.23 -24C159.23 0 147.23 27 123.22 55C55.23 133.34 -30.78 -24.44 27 -18", fill: "none", opacity: "0.53", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M233.26 -24C160.26 0 148.26 27 123.33 55C56.26 133.96 -30.67 -23.72 27 -18", fill: "none", opacity: "0.57", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M234.30 -24C161.30 0 149.30 27 123.43 55C57.30 134.58 -30.57 -22.99 27 -18", fill: "none", opacity: "0.61", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M235.34 -24C162.34 0 150.34 27 123.53 55C58.34 135.20 -30.47 -22.26 27 -18", fill: "none", opacity: "0.64", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M236.37 -24C163.37 0 151.37 27 123.64 55C59.37 135.82 -30.36 -21.54 27 -18", fill: "none", opacity: "0.67", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M237.41 -24C164.41 0 152.41 27 123.74 55C60.41 136.45 -30.26 -20.81 27 -18", fill: "none", opacity: "0.70", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M238.45 -24C165.45 0 153.45 27 123.84 55C61.45 137.07 -30.16 -20.09 27 -18", fill: "none", opacity: "0.71", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M239.48 -24C166.48 0 154.48 27 123.95 55C62.48 137.69 -30.05 -19.36 27 -18", fill: "none", opacity: "0.72", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M240.52 -24C167.52 0 155.52 27 124.05 55C63.52 138.31 -29.95 -18.64 27 -18", fill: "none", opacity: "0.72", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.80" } }, { tag: "path", props: { d: "M241.55 -24C168.55 0 156.55 27 124.16 55C64.55 138.93 -29.84 -17.91 27 -18", fill: "none", opacity: "0.71", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.14" } }, { tag: "path", props: { d: "M242.59 -24C169.59 0 157.59 27 124.26 55C65.59 139.55 -29.74 -17.19 27 -18", fill: "none", opacity: "0.70", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.52" } }, { tag: "path", props: { d: "M243.63 -24C170.63 0 158.63 27 124.36 55C66.63 140.18 -29.64 -16.46 27 -18", fill: "none", opacity: "0.67", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.85" } }, { tag: "path", props: { d: "M244.66 -24C171.66 0 159.66 27 124.47 55C67.66 140.80 -29.53 -15.74 27 -18", fill: "none", opacity: "0.64", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.03" } }, { tag: "path", props: { d: "M245.70 -24C172.70 0 160.70 27 124.57 55C68.70 141.42 -29.43 -15.01 27 -18", fill: "none", opacity: "0.61", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.01" } }, { tag: "path", props: { d: "M246.74 -24C173.74 0 161.74 27 124.67 55C69.74 142.04 -29.33 -14.28 27 -18", fill: "none", opacity: "0.57", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.79" } }, { tag: "path", props: { d: "M246.74 -24C173.74 0 161.74 27 124.67 55C69.74 142.04 -29.33 -14.28 27 -18", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M247.77 -24C174.77 0 162.77 27 124.78 55C70.77 142.66 -29.22 -13.56 27 -18", fill: "none", opacity: "0.53", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.44" } }, { tag: "path", props: { d: "M248.81 -24C175.81 0 163.81 27 124.88 55C71.81 143.29 -29.12 -12.83 27 -18", fill: "none", opacity: "0.49", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.07" } }, { tag: "path", props: { d: "M249.85 -24C176.85 0 164.85 27 124.98 55C72.85 143.91 -29.02 -12.11 27 -18", fill: "none", opacity: "0.44", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M250.88 -24C177.88 0 165.88 27 125.09 55C73.88 144.53 -28.91 -11.38 27 -18", fill: "none", opacity: "0.40", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.53" } }, { tag: "path", props: { d: "M251.92 -24C178.92 0 166.92 27 125.19 55C74.92 145.15 -28.81 -10.66 27 -18", fill: "none", opacity: "0.36", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M252.95 -24C179.95 0 167.95 27 125.30 55C75.95 145.77 -28.70 -9.93 27 -18", fill: "none", opacity: "0.32", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M253.99 -24C180.99 0 168.99 27 125.40 55C76.99 146.39 -28.60 -9.21 27 -18", fill: "none", opacity: "0.28", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M255.03 -24C182.03 0 170.03 27 125.50 55C78.03 147.02 -28.50 -8.48 27 -18", fill: "none", opacity: "0.25", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M256.06 -24C183.06 0 171.06 27 125.61 55C79.06 147.64 -28.39 -7.76 27 -18", fill: "none", opacity: "0.22", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M257.10 -24C184.10 0 172.10 27 125.71 55C80.10 148.26 -28.29 -7.03 27 -18", fill: "none", opacity: "0.19", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M258.14 -24C185.14 0 173.14 27 125.81 55C81.14 148.88 -28.19 -6.30 27 -18", fill: "none", opacity: "0.17", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M259.17 -24C186.17 0 174.17 27 125.92 55C82.17 149.50 -28.08 -5.58 27 -18", fill: "none", opacity: "0.16", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M260.21 -24C187.21 0 175.21 27 126.02 55C83.21 150.13 -27.98 -4.85 27 -18", fill: "none", opacity: "0.14", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M261.25 -24C188.25 0 176.25 27 126.12 55C84.25 150.75 -27.88 -4.13 27 -18", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M262.28 -24C189.28 0 177.28 27 126.23 55C85.28 151.37 -27.77 -3.40 27 -18", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M263.32 -24C190.32 0 178.32 27 126.33 55C86.32 151.99 -27.67 -2.68 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.93" } }, { tag: "path", props: { d: "M264.35 -24C191.35 0 179.35 27 126.44 55C87.35 152.61 -27.56 -1.95 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.29" } }, { tag: "path", props: { d: "M264.35 -24C191.35 0 179.35 27 126.44 55C87.35 152.61 -27.56 -1.95 27 -18", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M265.39 -24C192.39 0 180.39 27 126.54 55C88.39 153.23 -27.46 -1.23 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.67" } }, { tag: "path", props: { d: "M266.43 -24C193.43 0 181.43 27 126.64 55C89.43 153.86 -27.36 -0.50 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.95" } }, { tag: "path", props: { d: "M267.46 -24C194.46 0 182.46 27 126.75 55C90.46 154.48 -27.25 0.22 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.05" } }, { tag: "path", props: { d: "M268.50 -24C195.50 0 183.50 27 126.85 55C91.50 155.10 -27.15 0.95 27 -18", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.94" } }, { tag: "path", props: { d: "M260 8.50C204.45 18.50 210.72 80.50 128 106.45S-1.25 127.75 -20 12.80", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 8.50C204.45 18.50 210.72 80.50 128 106.45S-1.25 127.75 -20 12.80", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M260 9.54C204.76 19.54 210.88 81.54 128 106.76S-0.73 128.27 -20 14.04", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 10.57C205.07 20.57 211.04 82.57 128 107.07S-0.21 128.79 -20 15.29", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 11.61C205.38 21.61 211.19 83.61 128 107.38S0.30 129.30 -20 16.53", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M260 12.65C205.69 22.65 211.35 84.65 128 107.69S0.82 129.82 -20 17.77", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M260 13.68C206.00 23.68 211.50 85.68 128 108.00S1.34 130.34 -20 19.02", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M260 14.72C206.32 24.72 211.66 86.72 128 108.32S1.86 130.86 -20 20.26", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.69" } }, { tag: "path", props: { d: "M260 15.75C206.63 25.75 211.81 87.75 128 108.63S2.38 131.38 -20 21.51", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.00" } }, { tag: "path", props: { d: "M260 16.79C206.94 26.79 211.97 88.79 128 108.94S2.90 131.90 -20 22.75", fill: "none", opacity: "0.14", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.37" } }, { tag: "path", props: { d: "M260 17.83C207.25 27.83 212.12 89.83 128 109.25S3.41 132.41 -20 23.99", fill: "none", opacity: "0.16", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.73" } }, { tag: "path", props: { d: "M260 18.86C207.56 28.86 212.28 90.86 128 109.56S3.93 132.93 -20 25.24", fill: "none", opacity: "0.17", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.98" } }, { tag: "path", props: { d: "M260 19.90C207.87 29.90 212.44 91.90 128 109.87S4.45 133.45 -20 26.48", fill: "none", opacity: "0.19", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.05" } }, { tag: "path", props: { d: "M260 20.94C208.18 30.94 212.59 92.94 128 110.18S4.97 133.97 -20 27.72", fill: "none", opacity: "0.22", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.90" } }, { tag: "path", props: { d: "M260 21.97C208.49 31.97 212.75 93.97 128 110.49S5.49 134.49 -20 28.97", fill: "none", opacity: "0.25", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.59" } }, { tag: "path", props: { d: "M260 23.01C208.80 33.01 212.90 95.01 128 110.80S6.00 135.00 -20 30.21", fill: "none", opacity: "0.28", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.22" } }, { tag: "path", props: { d: "M260 24.05C209.11 34.05 213.06 96.05 128 111.11S6.52 135.52 -20 31.45", fill: "none", opacity: "0.32", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.86" } }, { tag: "path", props: { d: "M260 25.08C209.42 35.08 213.21 97.08 128 111.42S7.04 136.04 -20 32.70", fill: "none", opacity: "0.36", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M260 26.12C209.74 36.12 213.37 98.12 128 111.74S7.56 136.56 -20 33.94", fill: "none", opacity: "0.40", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M260 26.12C209.74 36.12 213.37 98.12 128 111.74S7.56 136.56 -20 33.94", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M260 27.15C210.05 37.15 213.52 99.15 128 112.05S8.08 137.08 -20 35.19", fill: "none", opacity: "0.44", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M260 28.19C210.36 38.19 213.68 100.19 128 112.36S8.60 137.60 -20 36.43", fill: "none", opacity: "0.49", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 29.23C210.67 39.23 213.83 101.23 128 112.67S9.11 138.11 -20 37.67", fill: "none", opacity: "0.53", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 30.26C210.98 40.26 213.99 102.26 128 112.98S9.63 138.63 -20 38.92", fill: "none", opacity: "0.57", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 31.30C211.29 41.30 214.15 103.30 128 113.29S10.15 139.15 -20 40.16", fill: "none", opacity: "0.61", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 32.34C211.60 42.34 214.30 104.34 128 113.60S10.67 139.67 -20 41.40", fill: "none", opacity: "0.64", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 33.37C211.91 43.37 214.46 105.37 128 113.91S11.19 140.19 -20 42.65", fill: "none", opacity: "0.67", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 34.41C212.22 44.41 214.61 106.41 128 114.22S11.70 140.70 -20 43.89", fill: "none", opacity: "0.70", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M260 35.45C212.53 45.45 214.77 107.45 128 114.53S12.22 141.22 -20 45.13", fill: "none", opacity: "0.71", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M260 36.48C212.84 46.48 214.92 108.48 128 114.84S12.74 141.74 -20 46.38", fill: "none", opacity: "0.72", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M260 37.52C213.16 47.52 215.08 109.52 128 115.16S13.26 142.26 -20 47.62", fill: "none", opacity: "0.72", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.80" } }, { tag: "path", props: { d: "M260 38.55C213.47 48.55 215.23 110.55 128 115.47S13.78 142.78 -20 48.87", fill: "none", opacity: "0.71", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.14" } }, { tag: "path", props: { d: "M260 39.59C213.78 49.59 215.39 111.59 128 115.78S14.30 143.30 -20 50.11", fill: "none", opacity: "0.70", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.52" } }, { tag: "path", props: { d: "M260 40.63C214.09 50.63 215.54 112.63 128 116.09S14.81 143.81 -20 51.35", fill: "none", opacity: "0.67", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.85" } }, { tag: "path", props: { d: "M260 41.66C214.40 51.66 215.70 113.66 128 116.40S15.33 144.33 -20 52.60", fill: "none", opacity: "0.64", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.03" } }, { tag: "path", props: { d: "M260 42.70C214.71 52.70 215.85 114.70 128 116.71S15.85 144.85 -20 53.84", fill: "none", opacity: "0.61", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.01" } }, { tag: "path", props: { d: "M260 43.74C215.02 53.74 216.01 115.74 128 117.02S16.37 145.37 -20 55.08", fill: "none", opacity: "0.57", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.79" } }, { tag: "path", props: { d: "M260 43.74C215.02 53.74 216.01 115.74 128 117.02S16.37 145.37 -20 55.08", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M260 44.77C215.33 54.77 216.17 116.77 128 117.33S16.89 145.89 -20 56.33", fill: "none", opacity: "0.53", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.44" } }, { tag: "path", props: { d: "M260 45.81C215.64 55.81 216.32 117.81 128 117.64S17.40 146.40 -20 57.57", fill: "none", opacity: "0.49", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.07" } }, { tag: "path", props: { d: "M260 46.85C215.95 56.85 216.48 118.85 128 117.95S17.92 146.92 -20 58.81", fill: "none", opacity: "0.44", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M260 47.88C216.26 57.88 216.63 119.88 128 118.26S18.44 147.44 -20 60.06", fill: "none", opacity: "0.40", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.53" } }, { tag: "path", props: { d: "M260 48.92C216.58 58.92 216.79 120.92 128 118.58S18.96 147.96 -20 61.30", fill: "none", opacity: "0.36", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M260 49.95C216.89 59.95 216.94 121.95 128 118.89S19.48 148.48 -20 62.55", fill: "none", opacity: "0.32", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M260 50.99C217.20 60.99 217.10 122.99 128 119.20S20.00 149.00 -20 63.79", fill: "none", opacity: "0.28", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 52.03C217.51 62.03 217.25 124.03 128 119.51S20.51 149.51 -20 65.03", fill: "none", opacity: "0.25", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 53.06C217.82 63.06 217.41 125.06 128 119.82S21.03 150.03 -20 66.28", fill: "none", opacity: "0.22", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 54.10C218.13 64.10 217.56 126.10 128 120.13S21.55 150.55 -20 67.52", fill: "none", opacity: "0.19", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 55.14C218.44 65.14 217.72 127.14 128 120.44S22.07 151.07 -20 68.76", fill: "none", opacity: "0.17", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 56.17C218.75 66.17 217.88 128.17 128 120.75S22.59 151.59 -20 70.01", fill: "none", opacity: "0.16", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M260 57.21C219.06 67.21 218.03 129.21 128 121.06S23.10 152.10 -20 71.25", fill: "none", opacity: "0.14", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M260 58.25C219.37 68.25 218.19 130.25 128 121.37S23.62 152.62 -20 72.49", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M260 59.28C219.68 69.28 218.34 131.28 128 121.68S24.14 153.14 -20 73.74", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M260 60.32C220.00 70.32 218.50 132.32 128 122.00S24.66 153.66 -20 74.98", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.93" } }, { tag: "path", props: { d: "M260 61.35C220.31 71.35 218.65 133.35 128 122.31S25.18 154.18 -20 76.23", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.29" } }, { tag: "path", props: { d: "M260 61.35C220.31 71.35 218.65 133.35 128 122.31S25.18 154.18 -20 76.23", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M260 62.39C220.62 72.39 218.81 134.39 128 122.62S25.70 154.70 -20 77.47", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.67" } }, { tag: "path", props: { d: "M260 63.43C220.93 73.43 218.96 135.43 128 122.93S26.21 155.21 -20 78.71", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.95" } }, { tag: "path", props: { d: "M260 64.46C221.24 74.46 219.12 136.46 128 123.24S26.73 155.73 -20 79.96", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.05" } }, { tag: "path", props: { d: "M260 65.50C221.55 75.50 219.28 137.50 128 123.55S27.25 156.25 -20 81.20", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.94" } }, { tag: "path", props: { d: "M260 87.20C157.60 33.05 180.60 97.50 152 150.45S-39.40 140.50 9 202.90", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 87.20C157.60 33.05 180.60 97.50 152 150.45S-39.40 140.50 9 202.90", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M260 88.03C158.01 33.78 181.01 98.54 152 150.76S-38.99 141.54 9 203.52", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 88.86C158.43 34.50 181.43 99.57 152 151.07S-38.57 142.57 9 204.14", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 89.69C158.84 35.23 181.84 100.61 152 151.38S-38.16 143.61 9 204.77", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M260 90.52C159.26 35.95 182.26 101.65 152 151.69S-37.74 144.65 9 205.39", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M260 91.35C159.67 36.68 182.67 102.68 152 152.00S-37.33 145.68 9 206.01", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M260 92.17C160.09 37.40 183.09 103.72 152 152.32S-36.91 146.72 9 206.63", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.69" } }, { tag: "path", props: { d: "M260 93.00C160.50 38.13 183.50 104.75 152 152.63S-36.50 147.75 9 207.25", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.00" } }, { tag: "path", props: { d: "M260 93.83C160.92 38.85 183.92 105.79 152 152.94S-36.08 148.79 9 207.87", fill: "none", opacity: "0.14", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.37" } }, { tag: "path", props: { d: "M260 94.66C161.33 39.58 184.33 106.83 152 153.25S-35.67 149.83 9 208.50", fill: "none", opacity: "0.16", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.73" } }, { tag: "path", props: { d: "M260 95.49C161.75 40.30 184.75 107.86 152 153.56S-35.25 150.86 9 209.12", fill: "none", opacity: "0.17", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.98" } }, { tag: "path", props: { d: "M260 96.32C162.16 41.03 185.16 108.90 152 153.87S-34.84 151.90 9 209.74", fill: "none", opacity: "0.19", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.05" } }, { tag: "path", props: { d: "M260 97.15C162.57 41.76 185.57 109.94 152 154.18S-34.43 152.94 9 210.36", fill: "none", opacity: "0.22", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.90" } }, { tag: "path", props: { d: "M260 97.98C162.99 42.48 185.99 110.97 152 154.49S-34.01 153.97 9 210.98", fill: "none", opacity: "0.25", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.59" } }, { tag: "path", props: { d: "M260 98.81C163.40 43.21 186.40 112.01 152 154.80S-33.60 155.01 9 211.61", fill: "none", opacity: "0.28", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.22" } }, { tag: "path", props: { d: "M260 99.64C163.82 43.93 186.82 113.05 152 155.11S-33.18 156.05 9 212.23", fill: "none", opacity: "0.32", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.86" } }, { tag: "path", props: { d: "M260 100.47C164.23 44.66 187.23 114.08 152 155.42S-32.77 157.08 9 212.85", fill: "none", opacity: "0.36", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M260 101.29C164.65 45.38 187.65 115.12 152 155.74S-32.35 158.12 9 213.47", fill: "none", opacity: "0.40", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M260 101.29C164.65 45.38 187.65 115.12 152 155.74S-32.35 158.12 9 213.47", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M260 102.12C165.06 46.11 188.06 116.15 152 156.05S-31.94 159.15 9 214.09", fill: "none", opacity: "0.44", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M260 102.95C165.48 46.83 188.48 117.19 152 156.36S-31.52 160.19 9 214.71", fill: "none", opacity: "0.49", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 103.78C165.89 47.56 188.89 118.23 152 156.67S-31.11 161.23 9 215.34", fill: "none", opacity: "0.53", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 104.61C166.31 48.28 189.31 119.26 152 156.98S-30.69 162.26 9 215.96", fill: "none", opacity: "0.57", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 105.44C166.72 49.01 189.72 120.30 152 157.29S-30.28 163.30 9 216.58", fill: "none", opacity: "0.61", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 106.27C167.13 49.74 190.13 121.34 152 157.60S-29.87 164.34 9 217.20", fill: "none", opacity: "0.64", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 107.10C167.55 50.46 190.55 122.37 152 157.91S-29.45 165.37 9 217.82", fill: "none", opacity: "0.67", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 107.93C167.96 51.19 190.96 123.41 152 158.22S-29.04 166.41 9 218.45", fill: "none", opacity: "0.70", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M260 108.76C168.38 51.91 191.38 124.45 152 158.53S-28.62 167.45 9 219.07", fill: "none", opacity: "0.71", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M260 109.59C168.79 52.64 191.79 125.48 152 158.84S-28.21 168.48 9 219.69", fill: "none", opacity: "0.72", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M260 110.41C169.21 53.36 192.21 126.52 152 159.16S-27.79 169.52 9 220.31", fill: "none", opacity: "0.72", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.80" } }, { tag: "path", props: { d: "M260 111.24C169.62 54.09 192.62 127.55 152 159.47S-27.38 170.55 9 220.93", fill: "none", opacity: "0.71", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.14" } }, { tag: "path", props: { d: "M260 112.07C170.04 54.81 193.04 128.59 152 159.78S-26.96 171.59 9 221.55", fill: "none", opacity: "0.70", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.52" } }, { tag: "path", props: { d: "M260 112.90C170.45 55.54 193.45 129.63 152 160.09S-26.55 172.63 9 222.18", fill: "none", opacity: "0.67", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.85" } }, { tag: "path", props: { d: "M260 113.73C170.87 56.26 193.87 130.66 152 160.40S-26.13 173.66 9 222.80", fill: "none", opacity: "0.64", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.03" } }, { tag: "path", props: { d: "M260 114.56C171.28 56.99 194.28 131.70 152 160.71S-25.72 174.70 9 223.42", fill: "none", opacity: "0.61", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.01" } }, { tag: "path", props: { d: "M260 115.39C171.69 57.72 194.69 132.74 152 161.02S-25.31 175.74 9 224.04", fill: "none", opacity: "0.57", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.79" } }, { tag: "path", props: { d: "M260 115.39C171.69 57.72 194.69 132.74 152 161.02S-25.31 175.74 9 224.04", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M260 116.22C172.11 58.44 195.11 133.77 152 161.33S-24.89 176.77 9 224.66", fill: "none", opacity: "0.53", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.44" } }, { tag: "path", props: { d: "M260 117.05C172.52 59.17 195.52 134.81 152 161.64S-24.48 177.81 9 225.29", fill: "none", opacity: "0.49", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.07" } }, { tag: "path", props: { d: "M260 117.88C172.94 59.89 195.94 135.85 152 161.95S-24.06 178.85 9 225.91", fill: "none", opacity: "0.44", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M260 118.71C173.35 60.62 196.35 136.88 152 162.26S-23.65 179.88 9 226.53", fill: "none", opacity: "0.40", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.53" } }, { tag: "path", props: { d: "M260 119.53C173.77 61.34 196.77 137.92 152 162.58S-23.23 180.92 9 227.15", fill: "none", opacity: "0.36", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M260 120.36C174.18 62.07 197.18 138.95 152 162.89S-22.82 181.95 9 227.77", fill: "none", opacity: "0.32", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M260 121.19C174.60 62.79 197.60 139.99 152 163.20S-22.40 182.99 9 228.39", fill: "none", opacity: "0.28", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 122.02C175.01 63.52 198.01 141.03 152 163.51S-21.99 184.03 9 229.02", fill: "none", opacity: "0.25", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 122.85C175.43 64.24 198.43 142.06 152 163.82S-21.57 185.06 9 229.64", fill: "none", opacity: "0.22", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 123.68C175.84 64.97 198.84 143.10 152 164.13S-21.16 186.10 9 230.26", fill: "none", opacity: "0.19", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 124.51C176.25 65.70 199.25 144.14 152 164.44S-20.75 187.14 9 230.88", fill: "none", opacity: "0.17", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M260 125.34C176.67 66.42 199.67 145.17 152 164.75S-20.33 188.17 9 231.50", fill: "none", opacity: "0.16", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M260 126.17C177.08 67.15 200.08 146.21 152 165.06S-19.92 189.21 9 232.13", fill: "none", opacity: "0.14", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M260 127.00C177.50 67.87 200.50 147.25 152 165.37S-19.50 190.25 9 232.75", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M260 127.83C177.91 68.60 200.91 148.28 152 165.68S-19.09 191.28 9 233.37", fill: "none", opacity: "0.13", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M260 128.65C178.33 69.32 201.33 149.32 152 166.00S-18.67 192.32 9 233.99", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "0.93" } }, { tag: "path", props: { d: "M260 129.48C178.74 70.05 201.74 150.35 152 166.31S-18.26 193.35 9 234.61", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.29" } }, { tag: "path", props: { d: "M260 129.48C178.74 70.05 201.74 150.35 152 166.31S-18.26 193.35 9 234.61", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".2", stroke: "#ff193d", strokeWidth: "4" } }, { tag: "path", props: { d: "M260 130.31C179.16 70.77 202.16 151.39 152 166.62S-17.84 194.39 9 235.23", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.67" } }, { tag: "path", props: { d: "M260 131.14C179.57 71.50 202.57 152.43 152 166.93S-17.43 195.43 9 235.86", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.95" } }, { tag: "path", props: { d: "M260 131.97C179.99 72.22 202.99 153.46 152 167.24S-17.01 196.46 9 236.48", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "2.05" } }, { tag: "path", props: { d: "M260 132.80C180.40 72.95 203.40 154.50 152 167.55S-16.60 197.50 9 237.10", fill: "none", opacity: "0.12", stroke: "url(#pf-art-4-silk)", strokeWidth: "1.94" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-vignette)" } }] }, { tag: "filter", props: { colorInterpolationFilters: "sRGB", height: "200%", id: "pf-art-bloom", width: "200%", x: "-50%", y: "-50%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "3.2" } }] }, { tag: "radialGradient", props: { cx: ".5", cy: ".5", id: "pf-art-vignette", r: ".72" }, children: [{ tag: "stop", props: { offset: ".57", stopColor: "#01040a", stopOpacity: "0" } }, { tag: "stop", props: { offset: "1", stopColor: "#01040a", stopOpacity: ".6" } }] }] }, { tag: "use", props: { href: "#pf-art-4" } }] }, horizon: { tag: "svg", props: { "aria-label": "\u041F\u043B\u0430\u043D\u0435\u0442\u0430 \u043D\u0430\u0434 \u043E\u0437\u0435\u0440\u043E\u043C", role: "img", viewBox: "0 0 240 204" }, children: [{ tag: "defs", children: [{ tag: "symbol", props: { id: "pf-art-5", viewBox: "0 0 240 204" }, children: ["\n", { tag: "defs", children: ["\n", { tag: "linearGradient", props: { id: "pf-art-5-sky", x1: "0", x2: ".15", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#010409" } }, { tag: "stop", props: { offset: ".38", stopColor: "#04060b" } }, { tag: "stop", props: { offset: ".69", stopColor: "#2d0b1a" } }, { tag: "stop", props: { offset: ".85", stopColor: "#9b253e" } }, { tag: "stop", props: { offset: "1", stopColor: "#070d15" } }] }, "\n", { tag: "radialGradient", props: { id: "pf-art-5-horizon" }, children: [{ tag: "stop", props: { stopColor: "#ff6476", stopOpacity: ".83" } }, { tag: "stop", props: { offset: ".38", stopColor: "#e4284e", stopOpacity: ".42" } }, { tag: "stop", props: { offset: "1", stopColor: "#c5153f", stopOpacity: "0" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-5-cloud-fill", x1: "0", x2: "0", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#59182d" } }, { tag: "stop", props: { offset: ".18", stopColor: "#1e0c1c" } }, { tag: "stop", props: { offset: ".4", stopColor: "#040a11" } }, { tag: "stop", props: { offset: "1", stopColor: "#03060c" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-5-silk" }, children: [{ tag: "stop", props: { stopColor: "#8e0723", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".23", stopColor: "#bd0e32" } }, { tag: "stop", props: { offset: ".53", stopColor: "#ff4b63" } }, { tag: "stop", props: { offset: ".58", stopColor: "#ffb4b8" } }, { tag: "stop", props: { offset: ".72", stopColor: "#da1741" } }, { tag: "stop", props: { offset: "1", stopColor: "#340819", stopOpacity: "0" } }] }, "\n"] }, "\n", { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-5-sky)" } }, "\n", { tag: "circle", props: { cx: "13.27", cy: "115.29", fill: "#45809c", opacity: "0.12", r: "0.54" } }, { tag: "circle", props: { cx: "146.55", cy: "22.79", fill: "#ec5375", opacity: "0.38", r: "0.48" } }, { tag: "circle", props: { cx: "215.79", cy: "105.28", fill: "#ec5375", opacity: "0.58", r: "0.63" } }, { tag: "circle", props: { cx: "74.97", cy: "154.46", fill: "#45809c", opacity: "0.28", r: "0.40" } }, { tag: "circle", props: { cx: "207.36", cy: "36.39", fill: "#ec5375", opacity: "0.27", r: "0.40" } }, { tag: "circle", props: { cx: "35.25", cy: "38.40", fill: "#c39fb5", opacity: "0.28", r: "0.43" } }, { tag: "circle", props: { cx: "146.69", cy: "137.82", fill: "#ec5375", opacity: "0.52", r: "0.35" } }, { tag: "circle", props: { cx: "154.27", cy: "161.88", fill: "#ec5375", opacity: "0.25", r: "0.18" } }, { tag: "circle", props: { cx: "94.18", cy: "36.43", fill: "#c39fb5", opacity: "0.24", r: "0.63" } }, { tag: "circle", props: { cx: "71.63", cy: "174.88", fill: "#ec5375", opacity: "0.38", r: "0.42" } }, { tag: "circle", props: { cx: "84.36", cy: "143.06", fill: "#45809c", opacity: "0.56", r: "0.48" } }, { tag: "circle", props: { cx: "133.66", cy: "175.45", fill: "#da385c", opacity: "0.31", r: "0.15" } }, { tag: "circle", props: { cx: "156.45", cy: "58.62", fill: "#da385c", opacity: "0.57", r: "0.50" } }, { tag: "circle", props: { cx: "160.58", cy: "71.53", fill: "#45809c", opacity: "0.50", r: "0.33" } }, { tag: "circle", props: { cx: "162.86", cy: "177.84", fill: "#da385c", opacity: "0.25", r: "0.36" } }, { tag: "circle", props: { cx: "159.80", cy: "108.31", fill: "#da385c", opacity: "0.12", r: "0.28" } }, { tag: "circle", props: { cx: "18.45", cy: "133.71", fill: "#c39fb5", opacity: "0.59", r: "0.35" } }, { tag: "circle", props: { cx: "162.32", cy: "110.10", fill: "#c39fb5", opacity: "0.52", r: "0.62" } }, { tag: "circle", props: { cx: "33.04", cy: "91.34", fill: "#c39fb5", opacity: "0.21", r: "0.19" } }, { tag: "circle", props: { cx: "82.36", cy: "179.03", fill: "#ec5375", opacity: "0.31", r: "0.55" } }, { tag: "circle", props: { cx: "177.13", cy: "142.01", fill: "#da385c", opacity: "0.40", r: "0.41" } }, { tag: "circle", props: { cx: "76.14", cy: "151.49", fill: "#45809c", opacity: "0.47", r: "0.37" } }, { tag: "circle", props: { cx: "130.57", cy: "68.59", fill: "#ec5375", opacity: "0.47", r: "0.44" } }, { tag: "circle", props: { cx: "30.29", cy: "162.08", fill: "#ec5375", opacity: "0.47", r: "0.55" } }, { tag: "circle", props: { cx: "94.88", cy: "91.20", fill: "#c39fb5", opacity: "0.39", r: "0.52" } }, { tag: "circle", props: { cx: "74.99", cy: "69.96", fill: "#c39fb5", opacity: "0.53", r: "0.51" } }, { tag: "circle", props: { cx: "225.92", cy: "96.48", fill: "#da385c", opacity: "0.38", r: "0.61" } }, { tag: "circle", props: { cx: "8.98", cy: "95.59", fill: "#45809c", opacity: "0.46", r: "0.31" } }, { tag: "circle", props: { cx: "162.18", cy: "94.05", fill: "#da385c", opacity: "0.60", r: "0.40" } }, { tag: "circle", props: { cx: "88.80", cy: "51.06", fill: "#da385c", opacity: "0.43", r: "0.48" } }, { tag: "circle", props: { cx: "147.86", cy: "24.16", fill: "#ec5375", opacity: "0.16", r: "0.50" } }, { tag: "circle", props: { cx: "75.15", cy: "10.00", fill: "#da385c", opacity: "0.31", r: "0.28" } }, { tag: "circle", props: { cx: "133.67", cy: "116.43", fill: "#45809c", opacity: "0.41", r: "0.53" } }, { tag: "circle", props: { cx: "120.35", cy: "8.04", fill: "#da385c", opacity: "0.44", r: "0.43" } }, { tag: "circle", props: { cx: "140.00", cy: "57.28", fill: "#c39fb5", opacity: "0.23", r: "0.54" } }, { tag: "circle", props: { cx: "121.01", cy: "167.21", fill: "#ec5375", opacity: "0.14", r: "0.57" } }, { tag: "circle", props: { cx: "76.67", cy: "82.76", fill: "#45809c", opacity: "0.42", r: "0.19" } }, { tag: "circle", props: { cx: "79.20", cy: "153.10", fill: "#c39fb5", opacity: "0.58", r: "0.59" } }, { tag: "circle", props: { cx: "185.04", cy: "84.09", fill: "#45809c", opacity: "0.37", r: "0.12" } }, { tag: "circle", props: { cx: "164.29", cy: "135.89", fill: "#ec5375", opacity: "0.59", r: "0.64" } }, { tag: "circle", props: { cx: "10.80", cy: "73.60", fill: "#da385c", opacity: "0.45", r: "0.47" } }, { tag: "circle", props: { cx: "182.61", cy: "36.45", fill: "#45809c", opacity: "0.30", r: "0.61" } }, { tag: "circle", props: { cx: "190.80", cy: "162.97", fill: "#c39fb5", opacity: "0.24", r: "0.37" } }, { tag: "circle", props: { cx: "136.74", cy: "96.75", fill: "#45809c", opacity: "0.23", r: "0.28" } }, { tag: "circle", props: { cx: "153.74", cy: "66.96", fill: "#ec5375", opacity: "0.50", r: "0.51" } }, { tag: "circle", props: { cx: "219.40", cy: "7.92", fill: "#45809c", opacity: "0.14", r: "0.60" } }, { tag: "circle", props: { cx: "157.61", cy: "58.48", fill: "#ec5375", opacity: "0.46", r: "0.59" } }, { tag: "circle", props: { cx: "9.49", cy: "81.40", fill: "#ec5375", opacity: "0.37", r: "0.45" } }, { tag: "circle", props: { cx: "73.92", cy: "140.71", fill: "#c39fb5", opacity: "0.13", r: "0.24" } }, { tag: "circle", props: { cx: "126.18", cy: "87.03", fill: "#c39fb5", opacity: "0.51", r: "0.60" } }, { tag: "circle", props: { cx: "95.21", cy: "55.46", fill: "#c39fb5", opacity: "0.24", r: "0.17" } }, { tag: "circle", props: { cx: "171.50", cy: "117.49", fill: "#c39fb5", opacity: "0.57", r: "0.14" } }, { tag: "circle", props: { cx: "58.55", cy: "4.96", fill: "#da385c", opacity: "0.60", r: "0.13" } }, { tag: "circle", props: { cx: "117.11", cy: "43.32", fill: "#ec5375", opacity: "0.56", r: "0.24" } }, { tag: "circle", props: { cx: "229.25", cy: "125.49", fill: "#da385c", opacity: "0.46", r: "0.32" } }, { tag: "circle", props: { cx: "167.70", cy: "43.29", fill: "#da385c", opacity: "0.38", r: "0.18" } }, { tag: "circle", props: { cx: "42.32", cy: "90.35", fill: "#45809c", opacity: "0.41", r: "0.22" } }, { tag: "circle", props: { cx: "30.47", cy: "91.34", fill: "#c39fb5", opacity: "0.24", r: "0.58" } }, { tag: "circle", props: { cx: "148.71", cy: "17.46", fill: "#da385c", opacity: "0.40", r: "0.13" } }, { tag: "circle", props: { cx: "0.28", cy: "48.42", fill: "#c39fb5", opacity: "0.23", r: "0.46" } }, { tag: "circle", props: { cx: "55.91", cy: "23.13", fill: "#da385c", opacity: "0.44", r: "0.36" } }, { tag: "circle", props: { cx: "15.93", cy: "32.49", fill: "#45809c", opacity: "0.35", r: "0.50" } }, { tag: "circle", props: { cx: "158.69", cy: "172.42", fill: "#45809c", opacity: "0.42", r: "0.25" } }, { tag: "circle", props: { cx: "68.17", cy: "96.12", fill: "#45809c", opacity: "0.29", r: "0.27" } }, { tag: "circle", props: { cx: "32.50", cy: "137.70", fill: "#c39fb5", opacity: "0.56", r: "0.56" } }, { tag: "circle", props: { cx: "95.97", cy: "93.10", fill: "#ec5375", opacity: "0.14", r: "0.30" } }, { tag: "circle", props: { cx: "8.59", cy: "67.03", fill: "#ec5375", opacity: "0.43", r: "0.31" } }, { tag: "circle", props: { cx: "192.94", cy: "33.02", fill: "#45809c", opacity: "0.46", r: "0.65" } }, { tag: "circle", props: { cx: "184.57", cy: "85.21", fill: "#45809c", opacity: "0.50", r: "0.58" } }, { tag: "circle", props: { cx: "231.23", cy: "173.97", fill: "#c39fb5", opacity: "0.33", r: "0.45" } }, { tag: "circle", props: { cx: "37.58", cy: "3.81", fill: "#45809c", opacity: "0.29", r: "0.50" } }, { tag: "circle", props: { cx: "184.86", cy: "169.34", fill: "#c39fb5", opacity: "0.30", r: "0.35" } }, { tag: "circle", props: { cx: "206.17", cy: "78.88", fill: "#ec5375", opacity: "0.39", r: "0.30" } }, { tag: "circle", props: { cx: "186.12", cy: "114.58", fill: "#c39fb5", opacity: "0.46", r: "0.62" } }, { tag: "circle", props: { cx: "120.25", cy: "149.08", fill: "#da385c", opacity: "0.55", r: "0.48" } }, { tag: "circle", props: { cx: "159.71", cy: "51.45", fill: "#c39fb5", opacity: "0.34", r: "0.22" } }, { tag: "circle", props: { cx: "83.94", cy: "66.80", fill: "#45809c", opacity: "0.52", r: "0.32" } }, { tag: "circle", props: { cx: "37.54", cy: "101.45", fill: "#ec5375", opacity: "0.43", r: "0.18" } }, { tag: "circle", props: { cx: "169.80", cy: "3.52", fill: "#45809c", opacity: "0.17", r: "0.57" } }, { tag: "circle", props: { cx: "167.60", cy: "179.23", fill: "#c39fb5", opacity: "0.17", r: "0.43" } }, { tag: "circle", props: { cx: "69.94", cy: "47.70", fill: "#da385c", opacity: "0.56", r: "0.55" } }, { tag: "circle", props: { cx: "187.09", cy: "135.77", fill: "#da385c", opacity: "0.30", r: "0.26" } }, { tag: "circle", props: { cx: "219.38", cy: "31.79", fill: "#da385c", opacity: "0.37", r: "0.44" } }, { tag: "circle", props: { cx: "230.60", cy: "64.92", fill: "#ec5375", opacity: "0.28", r: "0.14" } }, { tag: "circle", props: { cx: "66.69", cy: "169.40", fill: "#ec5375", opacity: "0.53", r: "0.44" } }, { tag: "circle", props: { cx: "191.34", cy: "143.54", fill: "#c39fb5", opacity: "0.51", r: "0.15" } }, { tag: "circle", props: { cx: "180.64", cy: "108.63", fill: "#c39fb5", opacity: "0.14", r: "0.46" } }, { tag: "circle", props: { cx: "144.15", cy: "156.46", fill: "#c39fb5", opacity: "0.25", r: "0.21" } }, { tag: "circle", props: { cx: "113.36", cy: "36.49", fill: "#45809c", opacity: "0.11", r: "0.58" } }, { tag: "circle", props: { cx: "176.95", cy: "25.22", fill: "#da385c", opacity: "0.28", r: "0.16" } }, { tag: "circle", props: { cx: "91.02", cy: "50.16", fill: "#da385c", opacity: "0.46", r: "0.55" } }, { tag: "circle", props: { cx: "65.68", cy: "4.09", fill: "#ec5375", opacity: "0.37", r: "0.41" } }, { tag: "circle", props: { cx: "212.94", cy: "53.66", fill: "#da385c", opacity: "0.46", r: "0.64" } }, { tag: "circle", props: { cx: "152.45", cy: "24.77", fill: "#ec5375", opacity: "0.32", r: "0.56" } }, { tag: "circle", props: { cx: "22.27", cy: "5.45", fill: "#ec5375", opacity: "0.33", r: "0.50" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "#02070e" } }, { tag: "defs", children: ["\n", { tag: "radialGradient", props: { cx: ".14", cy: ".13", id: "pf-art-5-moon-fill", r: "1.1" }, children: [{ tag: "stop", props: { stopColor: "#05080e" } }, { tag: "stop", props: { offset: ".55", stopColor: "#110910" } }, { tag: "stop", props: { offset: ".85", stopColor: "#411020" } }, { tag: "stop", props: { offset: "1", stopColor: "#dc264a" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-5-moon-rim", x1: "0", x2: ".6", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#9c123a", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".2", stopColor: "#ff315c" } }, { tag: "stop", props: { offset: ".6", stopColor: "#fff1e6" } }, { tag: "stop", props: { offset: ".85", stopColor: "#ff8097" } }, { tag: "stop", props: { offset: "1", stopColor: "#ab0b30", stopOpacity: "0" } }] }, "\n", { tag: "clipPath", props: { id: "pf-art-5-moon-clip" }, children: [{ tag: "circle", props: { cx: "59", cy: "11", r: "154" } }] }, "\n", { tag: "radialGradient", props: { id: "pf-art-5-moon-light" }, children: [{ tag: "stop", props: { stopColor: "#ff214b", stopOpacity: ".4" } }, { tag: "stop", props: { offset: ".55", stopColor: "#e90d3b", stopOpacity: ".17" } }, { tag: "stop", props: { offset: "1", stopColor: "#e90d3b", stopOpacity: "0" } }] }, "\n"] }, "\n", { tag: "circle", props: { cx: "59", cy: "11", fill: "url(#pf-art-5-moon-light)", r: "212.52" } }, "\n", { tag: "circle", props: { cx: "59", cy: "11", fill: "url(#pf-art-5-moon-fill)", r: "154" } }, "\n", { tag: "g", props: { clipPath: "url(#pf-art-5-moon-clip)" }, children: [{ tag: "path", props: { d: "M6.24 159.83l3.4 1.0 1.0 2.0", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.76" } }, { tag: "path", props: { d: "M174.52 -142.88l2.4 0.7 0.7 1.4", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M38.18 29.51l2.1 0.6 0.6 1.3", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M207.32 -36.57l2.9 0.9 0.9 1.8", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M-56.98 10.20l2.8 0.8 0.8 1.7", fill: "none", opacity: "0.11", stroke: "#b92d4c", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M122.28 -43.04l3.2 0.9 0.9 1.9", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M23.72 160.36l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.17", stroke: "#b92d4c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M19.54 -78.89l2.0 0.6 0.6 1.2", fill: "none", opacity: "0.30", stroke: "#b92d4c", strokeWidth: "0.76" } }, { tag: "path", props: { d: "M194.39 45.27l1.2 0.4 0.4 0.7", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.55" } }, { tag: "path", props: { d: "M-3.84 160.97l0.8 0.2 0.2 0.5", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M-43.40 -123.38l1.2 0.4 0.4 0.7", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.49" } }, { tag: "path", props: { d: "M72.84 49.44l1.5 0.5 0.5 0.9", fill: "none", opacity: "0.20", stroke: "#b92d4c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M129.26 -116.80l2.4 0.7 0.7 1.5", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M14.45 -97.55l0.9 0.3 0.3 0.6", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M-68.65 135.86l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.44" } }, { tag: "path", props: { d: "M-2.56 29.43l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M-70.37 68.55l1.4 0.4 0.4 0.8", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.49" } }, { tag: "path", props: { d: "M157.04 158.94l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.53" } }, { tag: "path", props: { d: "M136.12 136.42l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M43.64 33.27l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M57.78 -33.10l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M-60.86 48.30l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.51" } }, { tag: "path", props: { d: "M-46.85 19.99l2.3 0.7 0.7 1.4", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.62" } }, { tag: "path", props: { d: "M14.41 141.94l2.5 0.8 0.8 1.5", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.34" } }, { tag: "path", props: { d: "M64.23 145.06l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M123.28 -5.32l2.0 0.6 0.6 1.2", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M62.22 -12.74l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.58" } }, { tag: "path", props: { d: "M25.19 33.96l1.2 0.4 0.4 0.7", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M120.55 84.40l0.6 0.2 0.2 0.3", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M40.33 -20.48l2.1 0.6 0.6 1.2", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M118.41 -17.83l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M-90.84 34.88l1.0 0.3 0.3 0.6", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M110.84 -43.66l3.1 0.9 0.9 1.9", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M-36.50 -110.00l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M-69.33 -51.31l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.41" } }, { tag: "path", props: { d: "M1.58 147.66l1.5 0.5 0.5 0.9", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.77" } }, { tag: "path", props: { d: "M-92.41 -21.52l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.09", stroke: "#b92d4c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M77.31 80.73l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.11", stroke: "#b92d4c", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M46.02 78.80l1.1 0.3 0.3 0.7", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M9.47 -98.11l2.2 0.6 0.6 1.3", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M86.75 -15.33l3.1 0.9 0.9 1.8", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.69" } }, { tag: "path", props: { d: "M-64.37 -27.41l1.5 0.5 0.5 0.9", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M-61.40 -5.29l1.4 0.4 0.4 0.9", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M-57.07 62.81l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.20", stroke: "#b92d4c", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M-72.80 -81.45l2.5 0.7 0.7 1.5", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.77" } }, { tag: "path", props: { d: "M204.14 -109.69l1.3 0.4 0.4 0.8", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M17.50 58.72l0.7 0.2 0.2 0.4", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M-37.67 -92.41l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.53" } }, { tag: "path", props: { d: "M197.81 -100.99l2.4 0.7 0.7 1.4", fill: "none", opacity: "0.21", stroke: "#b92d4c", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M-6.45 91.05l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.31" } }, { tag: "path", props: { d: "M-93.83 39.37l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M143.81 60.98l0.8 0.2 0.2 0.5", fill: "none", opacity: "0.26", stroke: "#b92d4c", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M51.56 -72.77l0.5 0.2 0.2 0.3", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M-62.49 11.07l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M188.63 -22.64l2.3 0.7 0.7 1.4", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.44" } }, { tag: "path", props: { d: "M-59.09 97.42l1.0 0.3 0.3 0.6", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M207.22 -136.26l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.07", stroke: "#b92d4c", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M77.07 -17.41l1.9 0.6 0.6 1.1", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M-56.80 9.83l0.6 0.2 0.2 0.4", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M193.02 80.59l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M132.00 -4.54l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M194.74 104.85l1.1 0.3 0.3 0.7", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M-37.08 68.02l3.4 1.0 1.0 2.1", fill: "none", opacity: "0.11", stroke: "#b92d4c", strokeWidth: "0.66" } }, { tag: "path", props: { d: "M9.33 -32.48l2.8 0.8 0.8 1.7", fill: "none", opacity: "0.24", stroke: "#b92d4c", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M-24.36 -134.06l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.72" } }, { tag: "path", props: { d: "M163.14 18.03l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.18", stroke: "#b92d4c", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M138.49 97.87l2.4 0.7 0.7 1.5", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.48" } }, { tag: "path", props: { d: "M-45.82 -17.07l2.5 0.8 0.8 1.5", fill: "none", opacity: "0.19", stroke: "#b92d4c", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M54.05 121.87l2.2 0.6 0.6 1.3", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M146.70 122.57l3.5 1.0 1.0 2.1", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M23.75 -74.50l2.4 0.7 0.7 1.5", fill: "none", opacity: "0.20", stroke: "#b92d4c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M197.28 77.71l1.6 0.5 0.5 0.9", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M136.33 -75.03l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M-13.08 -12.27l1.2 0.4 0.4 0.7", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M59.12 93.89l2.1 0.6 0.6 1.2", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M92.11 48.48l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.27", stroke: "#b92d4c", strokeWidth: "0.51" } }, { tag: "path", props: { d: "M19.61 -15.74l3.4 1.0 1.0 2.1", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.69" } }, { tag: "path", props: { d: "M153.79 6.52l2.6 0.8 0.8 1.6", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M-1.26 15.83l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.11", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M155.84 1.32l1.7 0.5 0.5 1.0", fill: "none", opacity: "0.17", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M-76.22 28.40l1.8 0.5 0.5 1.1", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M-55.44 54.54l3.5 1.0 1.0 2.1", fill: "none", opacity: "0.22", stroke: "#b92d4c", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M173.82 -119.72l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.12", stroke: "#b92d4c", strokeWidth: "0.77" } }, { tag: "path", props: { d: "M-61.73 120.86l3.2 1.0 1.0 1.9", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M190.52 118.21l0.8 0.2 0.2 0.5", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M-4.32 151.11l1.9 0.6 0.6 1.1", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M-83.01 -11.58l3.1 0.9 0.9 1.9", fill: "none", opacity: "0.08", stroke: "#b92d4c", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M187.87 142.36l0.9 0.3 0.3 0.5", fill: "none", opacity: "0.29", stroke: "#b92d4c", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M-21.13 77.60l1.6 0.5 0.5 0.9", fill: "none", opacity: "0.11", stroke: "#b92d4c", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M106.39 -85.91l2.7 0.8 0.8 1.6", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.48" } }, { tag: "path", props: { d: "M105.51 57.29l1.5 0.4 0.4 0.9", fill: "none", opacity: "0.23", stroke: "#b92d4c", strokeWidth: "0.80" } }, { tag: "path", props: { d: "M-3.59 -14.26l2.4 0.7 0.7 1.4", fill: "none", opacity: "0.30", stroke: "#b92d4c", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M84.98 -31.39l3.3 1.0 1.0 2.0", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M110.21 -14.89l1.5 0.4 0.4 0.9", fill: "none", opacity: "0.25", stroke: "#b92d4c", strokeWidth: "0.71" } }, { tag: "path", props: { d: "M81.80 101.69l2.8 0.8 0.8 1.7", fill: "none", opacity: "0.13", stroke: "#b92d4c", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M-64.04 83.45l3.1 0.9 0.9 1.8", fill: "none", opacity: "0.15", stroke: "#b92d4c", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M-64.94 -77.78l2.3 0.7 0.7 1.4", fill: "none", opacity: "0.28", stroke: "#b92d4c", strokeWidth: "0.31" } }, { tag: "path", props: { d: "M-43.62 85.87l2.1 0.6 0.6 1.3", fill: "none", opacity: "0.10", stroke: "#b92d4c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M97.11 -118.05l2.5 0.8 0.8 1.5", fill: "none", opacity: "0.16", stroke: "#b92d4c", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M202.76 58.31l3.0 0.9 0.9 1.8", fill: "none", opacity: "0.14", stroke: "#b92d4c", strokeWidth: "0.75" } }] }, { tag: "path", props: { d: "M26.98 -139.63A154 154 0 1 1 -90.43 48.26", fill: "none", filter: "url(#pf-art-bloom)", opacity: ".85", stroke: "#ff234f", strokeWidth: "9" } }, { tag: "path", props: { d: "M26.98 -139.63A154 154 0 1 1 -90.43 48.26", fill: "none", stroke: "url(#pf-art-5-moon-rim)", strokeWidth: "2.35" } }, { tag: "path", props: { d: "M195.41 -58.51A153.1 153.1 0 0 1 -49.26 119.26", fill: "none", opacity: ".8", stroke: "#ffb1bb", strokeWidth: ".6" } }, { tag: "ellipse", props: { cx: "138", cy: "141", fill: "url(#pf-art-5-horizon)", rx: "112", ry: "24" } }, { tag: "circle", props: { cx: "140.60", cy: "73.81", fill: "#da385c", opacity: "0.34", r: "0.43" } }, { tag: "circle", props: { cx: "95.03", cy: "1.38", fill: "#45809c", opacity: "0.29", r: "0.56" } }, { tag: "circle", props: { cx: "75.84", cy: "99.04", fill: "#45809c", opacity: "0.52", r: "0.26" } }, { tag: "circle", props: { cx: "175.75", cy: "32.66", fill: "#da385c", opacity: "0.10", r: "0.22" } }, { tag: "circle", props: { cx: "62.02", cy: "84.84", fill: "#c39fb5", opacity: "0.27", r: "0.31" } }, { tag: "circle", props: { cx: "161.34", cy: "114.46", fill: "#c39fb5", opacity: "0.51", r: "0.16" } }, { tag: "circle", props: { cx: "150.77", cy: "81.98", fill: "#ec5375", opacity: "0.16", r: "0.33" } }, { tag: "circle", props: { cx: "135.08", cy: "86.08", fill: "#45809c", opacity: "0.12", r: "0.28" } }, { tag: "circle", props: { cx: "29.51", cy: "28.45", fill: "#45809c", opacity: "0.18", r: "0.59" } }, { tag: "circle", props: { cx: "58.86", cy: "21.50", fill: "#c39fb5", opacity: "0.19", r: "0.57" } }, { tag: "circle", props: { cx: "84.60", cy: "3.88", fill: "#c39fb5", opacity: "0.16", r: "0.17" } }, { tag: "circle", props: { cx: "55.60", cy: "27.51", fill: "#c39fb5", opacity: "0.33", r: "0.58" } }, { tag: "circle", props: { cx: "123.89", cy: "56.20", fill: "#ec5375", opacity: "0.28", r: "0.33" } }, { tag: "circle", props: { cx: "127.09", cy: "27.80", fill: "#ec5375", opacity: "0.52", r: "0.19" } }, { tag: "circle", props: { cx: "38.84", cy: "65.00", fill: "#45809c", opacity: "0.34", r: "0.44" } }, { tag: "circle", props: { cx: "94.50", cy: "78.08", fill: "#da385c", opacity: "0.23", r: "0.34" } }, { tag: "circle", props: { cx: "176.16", cy: "25.52", fill: "#45809c", opacity: "0.14", r: "0.44" } }, { tag: "circle", props: { cx: "158.04", cy: "101.03", fill: "#c39fb5", opacity: "0.20", r: "0.30" } }, { tag: "circle", props: { cx: "98.93", cy: "110.28", fill: "#ec5375", opacity: "0.44", r: "0.21" } }, { tag: "circle", props: { cx: "29.99", cy: "30.86", fill: "#da385c", opacity: "0.35", r: "0.35" } }, { tag: "circle", props: { cx: "124.66", cy: "28.06", fill: "#45809c", opacity: "0.26", r: "0.55" } }, { tag: "circle", props: { cx: "54.28", cy: "10.27", fill: "#ec5375", opacity: "0.31", r: "0.53" } }, { tag: "circle", props: { cx: "203.48", cy: "35.23", fill: "#45809c", opacity: "0.36", r: "0.29" } }, { tag: "circle", props: { cx: "131.87", cy: "41.67", fill: "#c39fb5", opacity: "0.18", r: "0.54" } }, { tag: "circle", props: { cx: "71.69", cy: "92.90", fill: "#c39fb5", opacity: "0.14", r: "0.60" } }, { tag: "circle", props: { cx: "112.02", cy: "0.44", fill: "#45809c", opacity: "0.26", r: "0.33" } }, { tag: "circle", props: { cx: "63.91", cy: "53.00", fill: "#c39fb5", opacity: "0.17", r: "0.43" } }, { tag: "circle", props: { cx: "40.29", cy: "75.75", fill: "#45809c", opacity: "0.51", r: "0.15" } }, { tag: "circle", props: { cx: "165.37", cy: "48.09", fill: "#c39fb5", opacity: "0.35", r: "0.22" } }, { tag: "circle", props: { cx: "26.95", cy: "116.26", fill: "#da385c", opacity: "0.48", r: "0.52" } }, { tag: "circle", props: { cx: "134.99", cy: "17.33", fill: "#c39fb5", opacity: "0.12", r: "0.14" } }, { tag: "circle", props: { cx: "150.16", cy: "112.66", fill: "#45809c", opacity: "0.53", r: "0.32" } }, { tag: "circle", props: { cx: "96.54", cy: "57.86", fill: "#45809c", opacity: "0.35", r: "0.58" } }, { tag: "circle", props: { cx: "2.25", cy: "14.00", fill: "#45809c", opacity: "0.49", r: "0.28" } }, { tag: "circle", props: { cx: "38.45", cy: "84.78", fill: "#ec5375", opacity: "0.23", r: "0.54" } }, { tag: "circle", props: { cx: "53.18", cy: "60.49", fill: "#45809c", opacity: "0.51", r: "0.23" } }, { tag: "circle", props: { cx: "183.03", cy: "0.48", fill: "#45809c", opacity: "0.15", r: "0.60" } }, { tag: "circle", props: { cx: "197.72", cy: "100.93", fill: "#da385c", opacity: "0.28", r: "0.37" } }, { tag: "circle", props: { cx: "20.93", cy: "113.03", fill: "#c39fb5", opacity: "0.43", r: "0.21" } }, { tag: "circle", props: { cx: "55.86", cy: "0.92", fill: "#ec5375", opacity: "0.26", r: "0.23" } }, { tag: "circle", props: { cx: "24.19", cy: "31.05", fill: "#ec5375", opacity: "0.39", r: "0.22" } }, { tag: "circle", props: { cx: "175.26", cy: "12.20", fill: "#c39fb5", opacity: "0.30", r: "0.46" } }, { tag: "circle", props: { cx: "94.21", cy: "66.53", fill: "#45809c", opacity: "0.30", r: "0.26" } }, { tag: "circle", props: { cx: "209.90", cy: "90.87", fill: "#45809c", opacity: "0.15", r: "0.35" } }, { tag: "circle", props: { cx: "74.78", cy: "104.31", fill: "#ec5375", opacity: "0.30", r: "0.19" } }, { tag: "circle", props: { cx: "109.38", cy: "4.31", fill: "#45809c", opacity: "0.22", r: "0.24" } }, { tag: "circle", props: { cx: "125.81", cy: "15.32", fill: "#45809c", opacity: "0.59", r: "0.62" } }, { tag: "circle", props: { cx: "88.32", cy: "31.77", fill: "#da385c", opacity: "0.28", r: "0.45" } }, { tag: "circle", props: { cx: "95.33", cy: "50.10", fill: "#45809c", opacity: "0.17", r: "0.39" } }, { tag: "circle", props: { cx: "140.25", cy: "21.40", fill: "#da385c", opacity: "0.35", r: "0.16" } }, { tag: "circle", props: { cx: "31.97", cy: "68.18", fill: "#45809c", opacity: "0.41", r: "0.61" } }, { tag: "circle", props: { cx: "124.85", cy: "58.88", fill: "#45809c", opacity: "0.31", r: "0.25" } }, { tag: "circle", props: { cx: "188.96", cy: "21.74", fill: "#45809c", opacity: "0.29", r: "0.57" } }, { tag: "circle", props: { cx: "12.40", cy: "57.58", fill: "#45809c", opacity: "0.37", r: "0.38" } }, { tag: "circle", props: { cx: "174.45", cy: "13.15", fill: "#45809c", opacity: "0.13", r: "0.36" } }, { tag: "circle", props: { cx: "24.87", cy: "89.50", fill: "#ec5375", opacity: "0.56", r: "0.16" } }, { tag: "circle", props: { cx: "50.10", cy: "45.85", fill: "#c39fb5", opacity: "0.54", r: "0.41" } }, { tag: "circle", props: { cx: "135.56", cy: "18.15", fill: "#ec5375", opacity: "0.36", r: "0.24" } }, { tag: "circle", props: { cx: "122.63", cy: "15.78", fill: "#c39fb5", opacity: "0.43", r: "0.64" } }, { tag: "circle", props: { cx: "107.02", cy: "48.31", fill: "#45809c", opacity: "0.20", r: "0.20" } }, { tag: "circle", props: { cx: "142.36", cy: "2.74", fill: "#da385c", opacity: "0.13", r: "0.31" } }, { tag: "circle", props: { cx: "30.27", cy: "6.90", fill: "#45809c", opacity: "0.34", r: "0.51" } }, { tag: "circle", props: { cx: "40.47", cy: "24.62", fill: "#da385c", opacity: "0.44", r: "0.35" } }, { tag: "circle", props: { cx: "133.78", cy: "2.61", fill: "#da385c", opacity: "0.41", r: "0.24" } }, { tag: "circle", props: { cx: "56.40", cy: "48.95", fill: "#c39fb5", opacity: "0.34", r: "0.65" } }, { tag: "circle", props: { cx: "55.88", cy: "66.96", fill: "#45809c", opacity: "0.58", r: "0.28" } }, { tag: "circle", props: { cx: "1.26", cy: "46.08", fill: "#c39fb5", opacity: "0.44", r: "0.42" } }, { tag: "circle", props: { cx: "63.32", cy: "105.89", fill: "#ec5375", opacity: "0.52", r: "0.45" } }, { tag: "circle", props: { cx: "43.15", cy: "23.33", fill: "#c39fb5", opacity: "0.51", r: "0.52" } }, { tag: "circle", props: { cx: "92.81", cy: "96.36", fill: "#ec5375", opacity: "0.51", r: "0.41" } }, { tag: "circle", props: { cx: "15.95", cy: "98.67", fill: "#ec5375", opacity: "0.17", r: "0.36" } }, { tag: "circle", props: { cx: "6.50", cy: "8.58", fill: "#45809c", opacity: "0.21", r: "0.53" } }, { tag: "circle", props: { cx: "71.62", cy: "38.48", fill: "#45809c", opacity: "0.29", r: "0.52" } }, { tag: "circle", props: { cx: "125.25", cy: "98.88", fill: "#ec5375", opacity: "0.30", r: "0.53" } }, { tag: "circle", props: { cx: "122.77", cy: "92.99", fill: "#45809c", opacity: "0.28", r: "0.27" } }, { tag: "circle", props: { cx: "18.12", cy: "10.11", fill: "#da385c", opacity: "0.28", r: "0.13" } }, { tag: "circle", props: { cx: "93.37", cy: "38.23", fill: "#ec5375", opacity: "0.18", r: "0.45" } }, { tag: "circle", props: { cx: "88.70", cy: "85.80", fill: "#45809c", opacity: "0.52", r: "0.45" } }, { tag: "circle", props: { cx: "156.33", cy: "79.57", fill: "#ec5375", opacity: "0.26", r: "0.64" } }, { tag: "circle", props: { cx: "90.86", cy: "44.89", fill: "#da385c", opacity: "0.20", r: "0.34" } }, { tag: "circle", props: { cx: "157.48", cy: "108.01", fill: "#45809c", opacity: "0.16", r: "0.16" } }, { tag: "circle", props: { cx: "10.31", cy: "60.15", fill: "#c39fb5", opacity: "0.54", r: "0.26" } }, { tag: "circle", props: { cx: "22.56", cy: "15.25", fill: "#45809c", opacity: "0.29", r: "0.54" } }, { tag: "circle", props: { cx: "125.11", cy: "88.00", fill: "#45809c", opacity: "0.30", r: "0.12" } }, { tag: "circle", props: { cx: "127.25", cy: "87.29", fill: "#da385c", opacity: "0.26", r: "0.46" } }, { tag: "circle", props: { cx: "156.62", cy: "51.25", fill: "#c39fb5", opacity: "0.15", r: "0.64" } }, { tag: "circle", props: { cx: "209.42", cy: "66.57", fill: "#c39fb5", opacity: "0.30", r: "0.25" } }, { tag: "circle", props: { cx: "64.90", cy: "115.31", fill: "#ec5375", opacity: "0.21", r: "0.31" } }, { tag: "circle", props: { cx: "93.66", cy: "83.97", fill: "#da385c", opacity: "0.42", r: "0.15" } }, { tag: "circle", props: { cx: "41.27", cy: "55.00", fill: "#ec5375", opacity: "0.23", r: "0.62" } }, { tag: "path", props: { d: "M75 147H172L229 207H8Z", fill: "#050a10" } }, { tag: "path", props: { d: "M95.03 175.19h6.34", opacity: "0.17", stroke: "#4c1730", strokeWidth: "0.86" } }, { tag: "path", props: { d: "M116.73 167.37h1.67", opacity: "0.24", stroke: "#6d7c91", strokeWidth: "0.53" } }, { tag: "path", props: { d: "M117.31 183.01h14.26", opacity: "0.59", stroke: "#4c1730", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M123.02 154.29h3.56", opacity: "0.61", stroke: "#4c1730", strokeWidth: "0.82" } }, { tag: "path", props: { d: "M106.44 172.12h13.71", opacity: "0.49", stroke: "#d3254c", strokeWidth: "0.85" } }, { tag: "path", props: { d: "M122.80 170.91h4.35", opacity: "0.35", stroke: "#d3254c", strokeWidth: "0.34" } }, { tag: "path", props: { d: "M117.79 147.80h4.40", opacity: "0.41", stroke: "#6d7c91", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M124.59 187.68h10.07", opacity: "0.49", stroke: "#ff4268", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M120.49 148.79h2.43", opacity: "0.42", stroke: "#d3254c", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M123.45 200.45h9.99", opacity: "0.37", stroke: "#6d7c91", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M114.63 201.54h12.18", opacity: "0.68", stroke: "#d3254c", strokeWidth: "0.88" } }, { tag: "path", props: { d: "M127.96 202.30h16.32", opacity: "0.21", stroke: "#6d7c91", strokeWidth: "0.35" } }, { tag: "path", props: { d: "M130.23 158.94h1.02", opacity: "0.26", stroke: "#6d7c91", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M109.26 194.95h16.24", opacity: "0.19", stroke: "#6d7c91", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M120.06 196.17h13.56", opacity: "0.68", stroke: "#4c1730", strokeWidth: "0.93" } }, { tag: "path", props: { d: "M115.48 180.70h2.61", opacity: "0.21", stroke: "#d3254c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M129.65 156.67h4.30", opacity: "0.66", stroke: "#6d7c91", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M94.43 179.99h16.21", opacity: "0.59", stroke: "#ff4268", strokeWidth: "0.83" } }, { tag: "path", props: { d: "M103.15 196.38h14.39", opacity: "0.47", stroke: "#d3254c", strokeWidth: "0.78" } }, { tag: "path", props: { d: "M119.65 149.27h2.91", opacity: "0.33", stroke: "#6d7c91", strokeWidth: "0.91" } }, { tag: "path", props: { d: "M102.71 193.40h24.72", opacity: "0.46", stroke: "#4c1730", strokeWidth: "0.95" } }, { tag: "path", props: { d: "M118.76 162.97h6.82", opacity: "0.32", stroke: "#d3254c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M108.52 186.61h22.51", opacity: "0.23", stroke: "#6d7c91", strokeWidth: "0.84" } }, { tag: "path", props: { d: "M118.91 198.45h4.93", opacity: "0.40", stroke: "#4c1730", strokeWidth: "0.82" } }, { tag: "path", props: { d: "M103.19 179.27h8.12", opacity: "0.26", stroke: "#6d7c91", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M110.74 193.77h12.95", opacity: "0.60", stroke: "#4c1730", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M81.35 195.36h18.26", opacity: "0.20", stroke: "#ff4268", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M116.18 177.45h1.34", opacity: "0.31", stroke: "#4c1730", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M118.42 148.76h4.63", opacity: "0.58", stroke: "#d3254c", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M104.56 191.21h0.88", opacity: "0.60", stroke: "#4c1730", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M92.43 180.21h10.92", opacity: "0.24", stroke: "#d3254c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M112.36 180.92h7.63", opacity: "0.36", stroke: "#d3254c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M85.28 182.09h7.58", opacity: "0.59", stroke: "#d3254c", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M128.87 151.32h5.80", opacity: "0.24", stroke: "#6d7c91", strokeWidth: "0.54" } }, { tag: "path", props: { d: "M130.93 160.95h1.58", opacity: "0.50", stroke: "#d3254c", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M122.96 151.95h5.42", opacity: "0.26", stroke: "#4c1730", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M104.07 178.24h2.77", opacity: "0.61", stroke: "#d3254c", strokeWidth: "0.31" } }, { tag: "path", props: { d: "M104.66 200.95h17.83", opacity: "0.58", stroke: "#d3254c", strokeWidth: "0.88" } }, { tag: "path", props: { d: "M130.91 154.99h4.58", opacity: "0.21", stroke: "#4c1730", strokeWidth: "0.30" } }, { tag: "path", props: { d: "M122.84 164.70h1.39", opacity: "0.15", stroke: "#d3254c", strokeWidth: "0.84" } }, { tag: "path", props: { d: "M119.59 147.61h3.03", opacity: "0.20", stroke: "#ff4268", strokeWidth: "0.99" } }, { tag: "path", props: { d: "M119.22 160.60h6.52", opacity: "0.23", stroke: "#4c1730", strokeWidth: "0.76" } }, { tag: "path", props: { d: "M102.41 181.71h13.91", opacity: "0.27", stroke: "#4c1730", strokeWidth: "0.69" } }, { tag: "path", props: { d: "M116.93 150.84h4.80", opacity: "0.27", stroke: "#6d7c91", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M136.14 161.50h2.29", opacity: "0.29", stroke: "#6d7c91", strokeWidth: "0.48" } }, { tag: "path", props: { d: "M125.14 167.08h12.01", opacity: "0.53", stroke: "#ff4268", strokeWidth: "0.92" } }, { tag: "path", props: { d: "M127.03 153.97h2.03", opacity: "0.64", stroke: "#4c1730", strokeWidth: "0.90" } }, { tag: "path", props: { d: "M132.08 193.37h1.47", opacity: "0.31", stroke: "#ff4268", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M121.38 163.00h11.12", opacity: "0.46", stroke: "#d3254c", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M118.01 173.94h8.21", opacity: "0.54", stroke: "#4c1730", strokeWidth: "0.80" } }, { tag: "path", props: { d: "M126.69 168.88h4.39", opacity: "0.47", stroke: "#4c1730", strokeWidth: "0.54" } }, { tag: "path", props: { d: "M122.93 167.77h6.98", opacity: "0.67", stroke: "#6d7c91", strokeWidth: "0.48" } }, { tag: "path", props: { d: "M123.48 158.16h9.20", opacity: "0.40", stroke: "#d3254c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M102.03 175.30h16.81", opacity: "0.65", stroke: "#6d7c91", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M109.13 171.04h12.57", opacity: "0.54", stroke: "#ff4268", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M85.23 177.92h7.03", opacity: "0.16", stroke: "#d3254c", strokeWidth: "0.69" } }, { tag: "path", props: { d: "M124.67 148.74h0.90", opacity: "0.66", stroke: "#ff4268", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M92.12 203.81h7.26", opacity: "0.39", stroke: "#d3254c", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M109.86 193.25h6.99", opacity: "0.49", stroke: "#d3254c", strokeWidth: "0.59" } }, { tag: "path", props: { d: "M132.03 154.78h6.31", opacity: "0.17", stroke: "#4c1730", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M98.34 172.12h12.00", opacity: "0.61", stroke: "#d3254c", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M115.22 166.02h9.35", opacity: "0.55", stroke: "#d3254c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M111.02 182.51h16.84", opacity: "0.50", stroke: "#d3254c", strokeWidth: "0.30" } }, { tag: "path", props: { d: "M120.70 166.26h13.23", opacity: "0.40", stroke: "#4c1730", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M109.59 185.64h9.68", opacity: "0.59", stroke: "#d3254c", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M120.77 198.69h11.93", opacity: "0.61", stroke: "#6d7c91", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M111.73 191.82h17.75", opacity: "0.40", stroke: "#d3254c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M121.36 161.64h4.20", opacity: "0.19", stroke: "#6d7c91", strokeWidth: "0.98" } }, { tag: "path", props: { d: "M125.25 156.19h3.85", opacity: "0.50", stroke: "#6d7c91", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M94.66 189.27h14.53", opacity: "0.36", stroke: "#4c1730", strokeWidth: "0.65" } }, { tag: "path", props: { d: "M116.05 170.52h3.79", opacity: "0.22", stroke: "#4c1730", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M125.68 153.10h5.32", opacity: "0.46", stroke: "#d3254c", strokeWidth: "0.51" } }, { tag: "path", props: { d: "M106.49 180.47h11.44", opacity: "0.49", stroke: "#4c1730", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M93.95 179.74h18.06", opacity: "0.41", stroke: "#d3254c", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M130.92 181.22h6.98", opacity: "0.68", stroke: "#d3254c", strokeWidth: "0.51" } }, { tag: "path", props: { d: "M126.05 147.65h0.82", opacity: "0.36", stroke: "#4c1730", strokeWidth: "0.94" } }, { tag: "path", props: { d: "M120.07 156.26h4.69", opacity: "0.36", stroke: "#d3254c", strokeWidth: "0.88" } }, { tag: "path", props: { d: "M130.79 157.69h4.08", opacity: "0.55", stroke: "#4c1730", strokeWidth: "0.89" } }, { tag: "path", props: { d: "M127.78 202.52h11.51", opacity: "0.17", stroke: "#6d7c91", strokeWidth: "0.88" } }, { tag: "path", props: { d: "M119.84 147.19h1.02", opacity: "0.15", stroke: "#d3254c", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M104.79 181.21h6.47", opacity: "0.37", stroke: "#d3254c", strokeWidth: "0.87" } }, { tag: "path", props: { d: "M123.04 159.57h4.95", opacity: "0.27", stroke: "#d3254c", strokeWidth: "0.98" } }, { tag: "path", props: { d: "M121.07 167.32h5.30", opacity: "0.42", stroke: "#4c1730", strokeWidth: "0.37" } }, { tag: "path", props: { d: "M133.77 160.44h4.81", opacity: "0.37", stroke: "#ff4268", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M118.15 177.26h6.45", opacity: "0.66", stroke: "#d3254c", strokeWidth: "0.66" } }, { tag: "path", props: { d: "M128.95 151.89h0.91", opacity: "0.20", stroke: "#6d7c91", strokeWidth: "0.90" } }, { tag: "path", props: { d: "M106.08 192.98h11.69", opacity: "0.42", stroke: "#6d7c91", strokeWidth: "0.83" } }, { tag: "path", props: { d: "M114.72 193.65h20.36", opacity: "0.36", stroke: "#d3254c", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M117.85 199.23h0.80", opacity: "0.69", stroke: "#d3254c", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M126.22 150.48h5.67", opacity: "0.45", stroke: "#4c1730", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M134.75 157.49h1.67", opacity: "0.66", stroke: "#d3254c", strokeWidth: "0.95" } }, { tag: "path", props: { d: "M98.36 196.65h19.31", opacity: "0.17", stroke: "#4c1730", strokeWidth: "0.64" } }, { tag: "path", props: { d: "M93.89 173.92h10.57", opacity: "0.25", stroke: "#ff4268", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M86.88 202.30h9.52", opacity: "0.46", stroke: "#6d7c91", strokeWidth: "0.47" } }, { tag: "path", props: { d: "M121.70 164.20h9.21", opacity: "0.50", stroke: "#d3254c", strokeWidth: "0.64" } }, { tag: "ellipse", props: { cx: "125", cy: "159", fill: "#ff315c", filter: "url(#pf-art-bloom)", opacity: ".36", rx: "22", ry: "2.7" } }, { tag: "path", props: { d: "M0,158 27,143 39,112 50,114 64,146 89,164 96,181 129,204L240 207H0Z", fill: "#02060a" } }, { tag: "path", props: { d: "M0 158L27 143 34.9 212.0Z", fill: "#1a2631", opacity: "0.72" } }, { tag: "path", props: { d: "M0.0 158.0l0.7 21.9L27.0 212.0", fill: "none", opacity: "0.18", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M9.0 153.0l-6.9 17.3L29.9 212.0", fill: "none", opacity: "0.17", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M18.0 148.0l-4.6 21.9L45.3 212.0", fill: "none", opacity: "0.15", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M27 143L39 112 41.3 215.4Z", fill: "#1a2631", opacity: "0.85" } }, { tag: "path", props: { d: "M27.0 143.0l1.8 15.9L28.7 215.4", fill: "none", opacity: "0.16", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M31.0 132.7l6.3 22.7L36.7 215.4", fill: "none", opacity: "0.25", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M35.0 122.3l-5.2 15.8L28.5 215.4", fill: "none", opacity: "0.27", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M39 112L50 114 21.7 213.1Z", fill: "#132332", opacity: "0.57" } }, { tag: "path", props: { d: "M39.0 112.0l2.8 15.4L36.7 213.1", fill: "none", opacity: "0.27", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M42.7 112.7l-2.2 19.7L17.1 213.1", fill: "none", opacity: "0.24", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M46.3 113.3l3.0 17.9L23.7 213.1", fill: "none", opacity: "0.16", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M50 114L64 146 70.4 211.2Z", fill: "#0e1f2b", opacity: "0.48" } }, { tag: "path", props: { d: "M50.0 114.0l-4.0 7.2L56.0 211.2", fill: "none", opacity: "0.13", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M54.7 124.7l5.8 9.6L83.6 211.2", fill: "none", opacity: "0.14", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M59.3 135.3l5.7 20.4L87.4 211.2", fill: "none", opacity: "0.31", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M64 146L89 164 64.7 207.5Z", fill: "#1a2631", opacity: "0.71" } }, { tag: "path", props: { d: "M64.0 146.0l1.8 7.9L66.2 207.5", fill: "none", opacity: "0.28", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M72.3 152.0l-5.4 16.9L50.0 207.5", fill: "none", opacity: "0.15", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M80.7 158.0l2.6 7.7L70.3 207.5", fill: "none", opacity: "0.29", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M89 164L96 181 81.5 211.6Z", fill: "#0e1f2b", opacity: "0.51" } }, { tag: "path", props: { d: "M89.0 164.0l-5.6 16.3L89.7 211.6", fill: "none", opacity: "0.31", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M91.3 169.7l7.8 13.5L97.1 211.6", fill: "none", opacity: "0.33", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M93.7 175.3l1.5 19.0L70.8 211.6", fill: "none", opacity: "0.25", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M96 181L129 204 133.8 213.6Z", fill: "#0e1f2b", opacity: "0.86" } }, { tag: "path", props: { d: "M96.0 181.0l7.0 18.4L130.6 213.6", fill: "none", opacity: "0.31", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M107.0 188.7l-3.4 20.7L151.3 213.6", fill: "none", opacity: "0.27", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M118.0 196.3l-4.9 7.7L151.4 213.6", fill: "none", opacity: "0.25", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M0,158 27,143 39,112 50,114 64,146 89,164 96,181 129,204", fill: "none", opacity: ".65", stroke: "#c42a49", strokeWidth: ".7" } }, { tag: "path", props: { d: "M133,204 164,179 181,177 198,168 210,174 240,179L240 207H0Z", fill: "#02060a" } }, { tag: "path", props: { d: "M133 204L164 179 127.5 212.3Z", fill: "#0e1f2b", opacity: "0.50" } }, { tag: "path", props: { d: "M133.0 204.0l-0.4 22.7L120.3 212.3", fill: "none", opacity: "0.27", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M143.3 195.7l-7.7 18.8L142.8 212.3", fill: "none", opacity: "0.34", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M153.7 187.3l-1.6 8.7L122.4 212.3", fill: "none", opacity: "0.26", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M164 179L181 177 171.8 209.3Z", fill: "#50132b", opacity: "0.70" } }, { tag: "path", props: { d: "M164.0 179.0l-5.8 15.9L174.5 209.3", fill: "none", opacity: "0.32", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M169.7 178.3l0.2 9.8L189.2 209.3", fill: "none", opacity: "0.21", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M175.3 177.7l-4.5 22.7L172.6 209.3", fill: "none", opacity: "0.21", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M181 177L198 168 176.5 211.0Z", fill: "#50132b", opacity: "0.62" } }, { tag: "path", props: { d: "M181.0 177.0l-1.8 16.9L157.3 211.0", fill: "none", opacity: "0.24", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M186.7 174.0l-0.5 16.2L158.3 211.0", fill: "none", opacity: "0.12", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M192.3 171.0l-2.2 17.3L168.5 211.0", fill: "none", opacity: "0.18", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M198 168L210 174 202.7 208.4Z", fill: "#0e1f2b", opacity: "0.73" } }, { tag: "path", props: { d: "M198.0 168.0l3.3 7.0L200.1 208.4", fill: "none", opacity: "0.22", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M202.0 170.0l3.1 18.6L188.5 208.4", fill: "none", opacity: "0.19", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M206.0 172.0l-5.5 16.2L190.9 208.4", fill: "none", opacity: "0.33", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M210 174L240 179 203.9 211.9Z", fill: "#0e1f2b", opacity: "0.44" } }, { tag: "path", props: { d: "M210.0 174.0l7.5 15.6L214.5 211.9", fill: "none", opacity: "0.35", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M220.0 175.7l0.5 13.1L201.8 211.9", fill: "none", opacity: "0.26", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M230.0 177.3l5.5 10.8L204.0 211.9", fill: "none", opacity: "0.15", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M133,204 164,179 181,177 198,168 210,174 240,179", fill: "none", opacity: ".65", stroke: "#c42a49", strokeWidth: ".7" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-vignette)" } }] }, { tag: "filter", props: { colorInterpolationFilters: "sRGB", height: "200%", id: "pf-art-bloom", width: "200%", x: "-50%", y: "-50%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "3.2" } }] }, { tag: "radialGradient", props: { cx: ".5", cy: ".5", id: "pf-art-vignette", r: ".72" }, children: [{ tag: "stop", props: { offset: ".57", stopColor: "#01040a", stopOpacity: "0" } }, { tag: "stop", props: { offset: "1", stopColor: "#01040a", stopOpacity: ".6" } }] }] }, { tag: "use", props: { href: "#pf-art-5" } }] }, landscape: { tag: "svg", props: { "aria-label": "\u0413\u043E\u0440\u043D\u044B\u0439 \u043F\u0438\u043A \u0438 \u043E\u0442\u0440\u0430\u0436\u0435\u043D\u0438\u0435", role: "img", viewBox: "0 0 240 204" }, children: [{ tag: "defs", children: [{ tag: "symbol", props: { id: "pf-art-6", viewBox: "0 0 240 204" }, children: ["\n", { tag: "defs", children: ["\n", { tag: "linearGradient", props: { id: "pf-art-6-sky", x1: "0", x2: ".15", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#010409" } }, { tag: "stop", props: { offset: ".38", stopColor: "#04060b" } }, { tag: "stop", props: { offset: ".69", stopColor: "#2d0b1a" } }, { tag: "stop", props: { offset: ".85", stopColor: "#9b253e" } }, { tag: "stop", props: { offset: "1", stopColor: "#070d15" } }] }, "\n", { tag: "radialGradient", props: { id: "pf-art-6-horizon" }, children: [{ tag: "stop", props: { stopColor: "#ff6476", stopOpacity: ".83" } }, { tag: "stop", props: { offset: ".38", stopColor: "#e4284e", stopOpacity: ".42" } }, { tag: "stop", props: { offset: "1", stopColor: "#c5153f", stopOpacity: "0" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-6-cloud-fill", x1: "0", x2: "0", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#59182d" } }, { tag: "stop", props: { offset: ".18", stopColor: "#1e0c1c" } }, { tag: "stop", props: { offset: ".4", stopColor: "#040a11" } }, { tag: "stop", props: { offset: "1", stopColor: "#03060c" } }] }, "\n", { tag: "linearGradient", props: { id: "pf-art-6-silk" }, children: [{ tag: "stop", props: { stopColor: "#8e0723", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".23", stopColor: "#bd0e32" } }, { tag: "stop", props: { offset: ".53", stopColor: "#ff4b63" } }, { tag: "stop", props: { offset: ".58", stopColor: "#ffb4b8" } }, { tag: "stop", props: { offset: ".72", stopColor: "#da1741" } }, { tag: "stop", props: { offset: "1", stopColor: "#340819", stopOpacity: "0" } }] }, "\n"] }, "\n", { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-6-sky)" } }, "\n", { tag: "circle", props: { cx: "103.16", cy: "94.47", fill: "#c39fb5", opacity: "0.48", r: "0.22" } }, { tag: "circle", props: { cx: "98.74", cy: "144.59", fill: "#da385c", opacity: "0.51", r: "0.48" } }, { tag: "circle", props: { cx: "143.16", cy: "108.43", fill: "#45809c", opacity: "0.28", r: "0.58" } }, { tag: "circle", props: { cx: "233.90", cy: "74.65", fill: "#45809c", opacity: "0.13", r: "0.61" } }, { tag: "circle", props: { cx: "223.89", cy: "9.13", fill: "#45809c", opacity: "0.52", r: "0.61" } }, { tag: "circle", props: { cx: "208.72", cy: "49.99", fill: "#45809c", opacity: "0.32", r: "0.27" } }, { tag: "circle", props: { cx: "126.33", cy: "1.49", fill: "#c39fb5", opacity: "0.36", r: "0.56" } }, { tag: "circle", props: { cx: "220.70", cy: "174.12", fill: "#c39fb5", opacity: "0.30", r: "0.62" } }, { tag: "circle", props: { cx: "219.39", cy: "25.06", fill: "#ec5375", opacity: "0.52", r: "0.26" } }, { tag: "circle", props: { cx: "39.22", cy: "69.47", fill: "#45809c", opacity: "0.19", r: "0.50" } }, { tag: "circle", props: { cx: "122.22", cy: "120.19", fill: "#c39fb5", opacity: "0.37", r: "0.14" } }, { tag: "circle", props: { cx: "54.41", cy: "41.90", fill: "#c39fb5", opacity: "0.11", r: "0.24" } }, { tag: "circle", props: { cx: "122.25", cy: "106.44", fill: "#da385c", opacity: "0.39", r: "0.24" } }, { tag: "circle", props: { cx: "78.10", cy: "14.27", fill: "#c39fb5", opacity: "0.45", r: "0.30" } }, { tag: "circle", props: { cx: "192.20", cy: "53.04", fill: "#ec5375", opacity: "0.19", r: "0.63" } }, { tag: "circle", props: { cx: "28.80", cy: "20.01", fill: "#da385c", opacity: "0.14", r: "0.48" } }, { tag: "circle", props: { cx: "23.43", cy: "102.26", fill: "#ec5375", opacity: "0.44", r: "0.57" } }, { tag: "circle", props: { cx: "220.78", cy: "64.75", fill: "#45809c", opacity: "0.51", r: "0.63" } }, { tag: "circle", props: { cx: "104.58", cy: "96.95", fill: "#45809c", opacity: "0.55", r: "0.30" } }, { tag: "circle", props: { cx: "239.37", cy: "60.46", fill: "#da385c", opacity: "0.15", r: "0.34" } }, { tag: "circle", props: { cx: "70.01", cy: "71.28", fill: "#da385c", opacity: "0.34", r: "0.32" } }, { tag: "circle", props: { cx: "71.30", cy: "12.76", fill: "#da385c", opacity: "0.57", r: "0.32" } }, { tag: "circle", props: { cx: "131.55", cy: "59.13", fill: "#c39fb5", opacity: "0.10", r: "0.47" } }, { tag: "circle", props: { cx: "123.31", cy: "46.37", fill: "#45809c", opacity: "0.57", r: "0.36" } }, { tag: "circle", props: { cx: "130.95", cy: "112.64", fill: "#ec5375", opacity: "0.34", r: "0.35" } }, { tag: "circle", props: { cx: "195.61", cy: "37.38", fill: "#c39fb5", opacity: "0.12", r: "0.57" } }, { tag: "circle", props: { cx: "236.11", cy: "122.30", fill: "#45809c", opacity: "0.46", r: "0.37" } }, { tag: "circle", props: { cx: "123.12", cy: "87.63", fill: "#c39fb5", opacity: "0.35", r: "0.35" } }, { tag: "circle", props: { cx: "179.31", cy: "42.53", fill: "#da385c", opacity: "0.23", r: "0.39" } }, { tag: "circle", props: { cx: "167.02", cy: "150.90", fill: "#ec5375", opacity: "0.16", r: "0.39" } }, { tag: "circle", props: { cx: "218.94", cy: "20.36", fill: "#da385c", opacity: "0.53", r: "0.52" } }, { tag: "circle", props: { cx: "114.17", cy: "170.24", fill: "#da385c", opacity: "0.32", r: "0.15" } }, { tag: "circle", props: { cx: "232.40", cy: "144.46", fill: "#45809c", opacity: "0.37", r: "0.62" } }, { tag: "circle", props: { cx: "32.53", cy: "176.13", fill: "#da385c", opacity: "0.48", r: "0.16" } }, { tag: "circle", props: { cx: "238.00", cy: "150.85", fill: "#45809c", opacity: "0.35", r: "0.25" } }, { tag: "circle", props: { cx: "16.50", cy: "29.63", fill: "#da385c", opacity: "0.37", r: "0.56" } }, { tag: "circle", props: { cx: "40.21", cy: "166.67", fill: "#c39fb5", opacity: "0.57", r: "0.17" } }, { tag: "circle", props: { cx: "228.41", cy: "123.33", fill: "#c39fb5", opacity: "0.11", r: "0.14" } }, { tag: "circle", props: { cx: "114.61", cy: "2.41", fill: "#da385c", opacity: "0.35", r: "0.17" } }, { tag: "circle", props: { cx: "123.43", cy: "42.06", fill: "#da385c", opacity: "0.32", r: "0.63" } }, { tag: "circle", props: { cx: "114.88", cy: "163.58", fill: "#45809c", opacity: "0.35", r: "0.21" } }, { tag: "circle", props: { cx: "46.32", cy: "5.96", fill: "#45809c", opacity: "0.44", r: "0.26" } }, { tag: "circle", props: { cx: "105.45", cy: "54.90", fill: "#ec5375", opacity: "0.52", r: "0.37" } }, { tag: "circle", props: { cx: "15.32", cy: "160.94", fill: "#ec5375", opacity: "0.60", r: "0.58" } }, { tag: "circle", props: { cx: "159.26", cy: "42.10", fill: "#ec5375", opacity: "0.50", r: "0.34" } }, { tag: "circle", props: { cx: "173.30", cy: "133.19", fill: "#da385c", opacity: "0.30", r: "0.50" } }, { tag: "circle", props: { cx: "187.15", cy: "77.97", fill: "#45809c", opacity: "0.25", r: "0.42" } }, { tag: "circle", props: { cx: "228.19", cy: "118.68", fill: "#45809c", opacity: "0.58", r: "0.63" } }, { tag: "circle", props: { cx: "2.10", cy: "10.72", fill: "#c39fb5", opacity: "0.59", r: "0.63" } }, { tag: "circle", props: { cx: "211.54", cy: "168.99", fill: "#45809c", opacity: "0.21", r: "0.26" } }, { tag: "circle", props: { cx: "199.67", cy: "53.49", fill: "#c39fb5", opacity: "0.50", r: "0.53" } }, { tag: "circle", props: { cx: "213.57", cy: "85.60", fill: "#45809c", opacity: "0.15", r: "0.24" } }, { tag: "circle", props: { cx: "130.89", cy: "39.77", fill: "#c39fb5", opacity: "0.39", r: "0.37" } }, { tag: "circle", props: { cx: "45.81", cy: "154.25", fill: "#45809c", opacity: "0.41", r: "0.42" } }, { tag: "circle", props: { cx: "0.49", cy: "132.25", fill: "#ec5375", opacity: "0.57", r: "0.36" } }, { tag: "circle", props: { cx: "160.39", cy: "70.84", fill: "#da385c", opacity: "0.40", r: "0.54" } }, { tag: "circle", props: { cx: "122.47", cy: "135.08", fill: "#45809c", opacity: "0.15", r: "0.27" } }, { tag: "circle", props: { cx: "160.48", cy: "7.59", fill: "#da385c", opacity: "0.38", r: "0.51" } }, { tag: "circle", props: { cx: "165.22", cy: "50.47", fill: "#c39fb5", opacity: "0.38", r: "0.17" } }, { tag: "circle", props: { cx: "99.57", cy: "24.44", fill: "#da385c", opacity: "0.19", r: "0.36" } }, { tag: "circle", props: { cx: "54.96", cy: "76.68", fill: "#c39fb5", opacity: "0.13", r: "0.27" } }, { tag: "circle", props: { cx: "79.51", cy: "73.55", fill: "#c39fb5", opacity: "0.57", r: "0.20" } }, { tag: "circle", props: { cx: "134.09", cy: "80.67", fill: "#ec5375", opacity: "0.51", r: "0.33" } }, { tag: "circle", props: { cx: "109.58", cy: "40.84", fill: "#45809c", opacity: "0.24", r: "0.62" } }, { tag: "circle", props: { cx: "48.12", cy: "16.92", fill: "#ec5375", opacity: "0.15", r: "0.56" } }, { tag: "circle", props: { cx: "52.41", cy: "170.39", fill: "#c39fb5", opacity: "0.41", r: "0.50" } }, { tag: "circle", props: { cx: "149.50", cy: "159.39", fill: "#c39fb5", opacity: "0.22", r: "0.47" } }, { tag: "circle", props: { cx: "124.00", cy: "167.84", fill: "#c39fb5", opacity: "0.23", r: "0.32" } }, { tag: "circle", props: { cx: "49.79", cy: "114.44", fill: "#45809c", opacity: "0.13", r: "0.36" } }, { tag: "circle", props: { cx: "104.32", cy: "29.94", fill: "#45809c", opacity: "0.24", r: "0.53" } }, { tag: "circle", props: { cx: "199.44", cy: "19.42", fill: "#ec5375", opacity: "0.39", r: "0.17" } }, { tag: "circle", props: { cx: "123.19", cy: "40.10", fill: "#da385c", opacity: "0.22", r: "0.44" } }, { tag: "circle", props: { cx: "60.55", cy: "169.70", fill: "#c39fb5", opacity: "0.54", r: "0.50" } }, { tag: "circle", props: { cx: "82.39", cy: "48.18", fill: "#ec5375", opacity: "0.23", r: "0.17" } }, { tag: "circle", props: { cx: "156.35", cy: "105.15", fill: "#ec5375", opacity: "0.33", r: "0.27" } }, { tag: "circle", props: { cx: "86.10", cy: "162.40", fill: "#45809c", opacity: "0.51", r: "0.20" } }, { tag: "circle", props: { cx: "60.13", cy: "114.44", fill: "#45809c", opacity: "0.12", r: "0.61" } }, { tag: "circle", props: { cx: "82.42", cy: "60.15", fill: "#45809c", opacity: "0.22", r: "0.38" } }, { tag: "circle", props: { cx: "210.25", cy: "96.49", fill: "#45809c", opacity: "0.25", r: "0.61" } }, { tag: "circle", props: { cx: "60.03", cy: "159.40", fill: "#ec5375", opacity: "0.58", r: "0.44" } }, { tag: "circle", props: { cx: "17.75", cy: "25.05", fill: "#45809c", opacity: "0.58", r: "0.35" } }, { tag: "circle", props: { cx: "204.86", cy: "49.94", fill: "#da385c", opacity: "0.28", r: "0.38" } }, { tag: "circle", props: { cx: "213.56", cy: "29.86", fill: "#da385c", opacity: "0.47", r: "0.34" } }, { tag: "circle", props: { cx: "71.92", cy: "159.45", fill: "#c39fb5", opacity: "0.46", r: "0.42" } }, { tag: "circle", props: { cx: "143.23", cy: "30.93", fill: "#45809c", opacity: "0.33", r: "0.14" } }, { tag: "circle", props: { cx: "236.30", cy: "127.88", fill: "#45809c", opacity: "0.49", r: "0.62" } }, { tag: "circle", props: { cx: "30.25", cy: "170.76", fill: "#45809c", opacity: "0.25", r: "0.30" } }, { tag: "circle", props: { cx: "90.77", cy: "139.99", fill: "#ec5375", opacity: "0.35", r: "0.63" } }, { tag: "circle", props: { cx: "173.31", cy: "26.56", fill: "#da385c", opacity: "0.46", r: "0.60" } }, { tag: "circle", props: { cx: "3.80", cy: "96.03", fill: "#c39fb5", opacity: "0.39", r: "0.53" } }, { tag: "circle", props: { cx: "194.93", cy: "72.25", fill: "#c39fb5", opacity: "0.60", r: "0.29" } }, { tag: "circle", props: { cx: "96.43", cy: "178.25", fill: "#da385c", opacity: "0.51", r: "0.50" } }, { tag: "circle", props: { cx: "196.37", cy: "115.50", fill: "#ec5375", opacity: "0.42", r: "0.56" } }, { tag: "circle", props: { cx: "207.46", cy: "133.08", fill: "#c39fb5", opacity: "0.25", r: "0.59" } }, { tag: "circle", props: { cx: "189.36", cy: "172.95", fill: "#45809c", opacity: "0.55", r: "0.59" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "#040910", opacity: ".4" } }, { tag: "ellipse", props: { cx: "118", cy: "135", fill: "url(#pf-art-6-horizon)", opacity: ".7", rx: "112", ry: "48" } }, { tag: "path", props: { d: "M92 125L120 95 148 127", fill: "none", filter: "url(#pf-art-bloom)", stroke: "#ff1941", strokeWidth: "11" } }, { tag: "path", props: { d: "M92 125L120 95 148 127", fill: "none", stroke: "#ff8090", strokeWidth: "2" } }, { tag: "path", props: { d: "M0,152 20,135 38,150 55,132 69,145 91,119 105,127 120,107 138,128 151,128 168,144 188,130 208,151 223,137 240,147L240 207H0Z", fill: "#02060a" } }, { tag: "path", props: { d: "M0 152L20 135 13.2 212.7Z", fill: "#3a1122", opacity: "0.63" } }, { tag: "path", props: { d: "M0.0 152.0l0.5 15.4L28.4 212.7", fill: "none", opacity: "0.34", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M6.7 146.3l-2.9 18.0L31.0 212.7", fill: "none", opacity: "0.23", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M13.3 140.7l2.2 11.8L31.0 212.7", fill: "none", opacity: "0.24", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M20 135L38 150 47.3 213.7Z", fill: "#50132b", opacity: "0.73" } }, { tag: "path", props: { d: "M20.0 135.0l-3.5 12.1L60.0 213.7", fill: "none", opacity: "0.18", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M26.0 140.0l-2.9 21.2L61.9 213.7", fill: "none", opacity: "0.36", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M32.0 145.0l-2.1 17.5L30.0 213.7", fill: "none", opacity: "0.24", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M38 150L55 132 38.2 210.2Z", fill: "#50132b", opacity: "0.54" } }, { tag: "path", props: { d: "M38.0 150.0l-5.0 8.8L34.0 210.2", fill: "none", opacity: "0.21", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M43.7 144.0l2.9 20.6L43.3 210.2", fill: "none", opacity: "0.16", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M49.3 138.0l-2.9 7.9L23.0 210.2", fill: "none", opacity: "0.20", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M55 132L69 145 78.9 213.1Z", fill: "#1a2631", opacity: "0.62" } }, { tag: "path", props: { d: "M55.0 132.0l-2.3 15.6L77.8 213.1", fill: "none", opacity: "0.24", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M59.7 136.3l-1.9 19.1L59.3 213.1", fill: "none", opacity: "0.15", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M64.3 140.7l-7.8 15.7L93.8 213.1", fill: "none", opacity: "0.29", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M69 145L91 119 97.1 214.6Z", fill: "#17212c", opacity: "0.85" } }, { tag: "path", props: { d: "M69.0 145.0l-0.3 18.1L106.3 214.6", fill: "none", opacity: "0.34", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M76.3 136.3l-3.5 22.1L88.4 214.6", fill: "none", opacity: "0.18", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M83.7 127.7l7.4 14.7L112.2 214.6", fill: "none", opacity: "0.30", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M91 119L105 127 89.6 215.6Z", fill: "#17212c", opacity: "0.43" } }, { tag: "path", props: { d: "M91.0 119.0l3.4 17.0L77.0 215.6", fill: "none", opacity: "0.34", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M95.7 121.7l3.6 12.7L76.5 215.6", fill: "none", opacity: "0.22", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M100.3 124.3l6.8 20.9L102.0 215.6", fill: "none", opacity: "0.28", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M105 127L120 107 91.1 213.7Z", fill: "#50132b", opacity: "0.39" } }, { tag: "path", props: { d: "M105.0 127.0l4.8 20.6L90.3 213.7", fill: "none", opacity: "0.26", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M110.0 120.3l-5.0 22.2L79.0 213.7", fill: "none", opacity: "0.14", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M115.0 113.7l-7.8 14.0L98.3 213.7", fill: "none", opacity: "0.28", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M120 107L138 128 106.3 215.5Z", fill: "#1a2631", opacity: "0.39" } }, { tag: "path", props: { d: "M120.0 107.0l5.7 14.3L89.9 215.5", fill: "none", opacity: "0.26", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M126.0 114.0l0.9 17.8L94.7 215.5", fill: "none", opacity: "0.21", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M132.0 121.0l3.9 20.9L118.3 215.5", fill: "none", opacity: "0.30", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M138 128L151 128 159.9 207.1Z", fill: "#0e1f2b", opacity: "0.64" } }, { tag: "path", props: { d: "M138.0 128.0l-2.7 15.4L151.6 207.1", fill: "none", opacity: "0.20", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M142.3 128.0l-0.1 14.2L153.5 207.1", fill: "none", opacity: "0.33", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M146.7 128.0l5.4 11.1L161.1 207.1", fill: "none", opacity: "0.22", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M151 128L168 144 142.5 214.2Z", fill: "#132332", opacity: "0.62" } }, { tag: "path", props: { d: "M151.0 128.0l3.8 7.1L135.4 214.2", fill: "none", opacity: "0.14", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M156.7 133.3l-2.2 11.0L136.0 214.2", fill: "none", opacity: "0.27", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M162.3 138.7l-0.1 16.6L155.1 214.2", fill: "none", opacity: "0.19", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M168 144L188 130 188.3 209.0Z", fill: "#0e1f2b", opacity: "0.53" } }, { tag: "path", props: { d: "M168.0 144.0l-7.6 8.3L184.1 209.0", fill: "none", opacity: "0.27", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M174.7 139.3l-2.7 20.0L206.6 209.0", fill: "none", opacity: "0.32", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M181.3 134.7l-5.9 9.6L195.2 209.0", fill: "none", opacity: "0.27", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M188 130L208 151 209.6 214.6Z", fill: "#1a2631", opacity: "0.48" } }, { tag: "path", props: { d: "M188.0 130.0l6.1 13.9L197.6 214.6", fill: "none", opacity: "0.19", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M194.7 137.0l6.5 17.0L218.8 214.6", fill: "none", opacity: "0.26", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M201.3 144.0l-1.9 14.3L217.9 214.6", fill: "none", opacity: "0.22", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M208 151L223 137 197.0 213.9Z", fill: "#17212c", opacity: "0.53" } }, { tag: "path", props: { d: "M208.0 151.0l-6.3 10.0L210.0 213.9", fill: "none", opacity: "0.23", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M213.0 146.3l-1.2 19.1L184.0 213.9", fill: "none", opacity: "0.31", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M218.0 141.7l-1.4 9.4L214.9 213.9", fill: "none", opacity: "0.24", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M223 137L240 147 245.1 210.6Z", fill: "#0e1f2b", opacity: "0.85" } }, { tag: "path", props: { d: "M223.0 137.0l-1.9 16.4L246.3 210.6", fill: "none", opacity: "0.24", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M228.7 140.3l-3.0 15.6L245.3 210.6", fill: "none", opacity: "0.22", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M234.3 143.7l6.7 17.8L248.9 210.6", fill: "none", opacity: "0.18", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M0,152 20,135 38,150 55,132 69,145 91,119 105,127 120,107 138,128 151,128 168,144 188,130 208,151 223,137 240,147", fill: "none", opacity: ".65", stroke: "#c42a49", strokeWidth: ".7" } }, { tag: "path", props: { d: "M75 169H172L229 207H8Z", fill: "#050a10" } }, { tag: "path", props: { d: "M116.64 170.49h2.83", opacity: "0.69", stroke: "#6d7c91", strokeWidth: "0.50" } }, { tag: "path", props: { d: "M110.08 191.26h13.47", opacity: "0.24", stroke: "#ff4268", strokeWidth: "0.91" } }, { tag: "path", props: { d: "M119.06 200.93h2.89", opacity: "0.60", stroke: "#6d7c91", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M117.83 190.57h8.71", opacity: "0.70", stroke: "#d3254c", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M132.64 197.46h3.88", opacity: "0.43", stroke: "#6d7c91", strokeWidth: "0.56" } }, { tag: "path", props: { d: "M106.79 176.69h7.72", opacity: "0.27", stroke: "#4c1730", strokeWidth: "0.58" } }, { tag: "path", props: { d: "M102.13 184.62h11.16", opacity: "0.39", stroke: "#ff4268", strokeWidth: "0.73" } }, { tag: "path", props: { d: "M109.21 195.63h12.51", opacity: "0.70", stroke: "#ff4268", strokeWidth: "0.51" } }, { tag: "path", props: { d: "M104.78 181.22h3.26", opacity: "0.23", stroke: "#6d7c91", strokeWidth: "0.77" } }, { tag: "path", props: { d: "M123.02 192.38h7.30", opacity: "0.54", stroke: "#d3254c", strokeWidth: "0.30" } }, { tag: "path", props: { d: "M110.10 177.63h1.66", opacity: "0.26", stroke: "#ff4268", strokeWidth: "0.49" } }, { tag: "path", props: { d: "M111.82 174.45h4.21", opacity: "0.25", stroke: "#ff4268", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M114.86 172.76h3.53", opacity: "0.40", stroke: "#d3254c", strokeWidth: "0.96" } }, { tag: "path", props: { d: "M93.61 187.65h5.54", opacity: "0.43", stroke: "#d3254c", strokeWidth: "0.72" } }, { tag: "path", props: { d: "M119.65 198.60h13.68", opacity: "0.23", stroke: "#ff4268", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M129.25 200.01h14.92", opacity: "0.22", stroke: "#6d7c91", strokeWidth: "0.91" } }, { tag: "path", props: { d: "M107.47 189.11h8.81", opacity: "0.41", stroke: "#4c1730", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M105.47 182.35h4.69", opacity: "0.35", stroke: "#6d7c91", strokeWidth: "0.82" } }, { tag: "path", props: { d: "M99.79 182.91h10.59", opacity: "0.22", stroke: "#6d7c91", strokeWidth: "0.66" } }, { tag: "path", props: { d: "M116.60 171.61h4.62", opacity: "0.54", stroke: "#ff4268", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M121.32 170.62h1.11", opacity: "0.55", stroke: "#ff4268", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M112.03 191.13h0.96", opacity: "0.35", stroke: "#ff4268", strokeWidth: "1.00" } }, { tag: "path", props: { d: "M126.53 196.51h7.46", opacity: "0.17", stroke: "#ff4268", strokeWidth: "0.69" } }, { tag: "path", props: { d: "M128.99 192.24h5.38", opacity: "0.68", stroke: "#6d7c91", strokeWidth: "0.88" } }, { tag: "path", props: { d: "M114.40 201.41h13.20", opacity: "0.49", stroke: "#ff4268", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M109.36 188.62h11.90", opacity: "0.45", stroke: "#4c1730", strokeWidth: "0.68" } }, { tag: "path", props: { d: "M104.52 184.52h10.36", opacity: "0.35", stroke: "#d3254c", strokeWidth: "0.95" } }, { tag: "path", props: { d: "M114.97 202.15h5.34", opacity: "0.69", stroke: "#6d7c91", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M113.28 173.83h2.74", opacity: "0.65", stroke: "#4c1730", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M114.88 175.23h2.81", opacity: "0.53", stroke: "#d3254c", strokeWidth: "0.82" } }, { tag: "path", props: { d: "M112.09 177.03h2.90", opacity: "0.24", stroke: "#d3254c", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M125.64 191.33h6.72", opacity: "0.70", stroke: "#4c1730", strokeWidth: "0.98" } }, { tag: "path", props: { d: "M109.22 191.43h10.53", opacity: "0.37", stroke: "#4c1730", strokeWidth: "0.53" } }, { tag: "path", props: { d: "M104.94 178.02h6.28", opacity: "0.49", stroke: "#ff4268", strokeWidth: "0.54" } }, { tag: "path", props: { d: "M108.58 180.65h1.44", opacity: "0.19", stroke: "#4c1730", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M118.69 173.08h3.33", opacity: "0.22", stroke: "#6d7c91", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M108.69 177.08h5.34", opacity: "0.46", stroke: "#d3254c", strokeWidth: "0.76" } }, { tag: "path", props: { d: "M99.67 183.36h1.92", opacity: "0.58", stroke: "#4c1730", strokeWidth: "0.42" } }, { tag: "path", props: { d: "M104.35 194.98h10.12", opacity: "0.19", stroke: "#4c1730", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M103.64 181.17h2.84", opacity: "0.36", stroke: "#6d7c91", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M121.21 169.21h3.18", opacity: "0.27", stroke: "#6d7c91", strokeWidth: "0.33" } }, { tag: "path", props: { d: "M107.29 178.33h6.62", opacity: "0.43", stroke: "#d3254c", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M113.28 174.41h4.06", opacity: "0.20", stroke: "#6d7c91", strokeWidth: "0.82" } }, { tag: "path", props: { d: "M125.39 196.92h12.44", opacity: "0.64", stroke: "#4c1730", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M117.82 203.31h17.44", opacity: "0.37", stroke: "#4c1730", strokeWidth: "0.92" } }, { tag: "path", props: { d: "M119.08 189.17h7.08", opacity: "0.45", stroke: "#ff4268", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M115.88 175.07h2.78", opacity: "0.55", stroke: "#4c1730", strokeWidth: "0.97" } }, { tag: "path", props: { d: "M112.39 172.30h3.47", opacity: "0.65", stroke: "#ff4268", strokeWidth: "0.81" } }, { tag: "path", props: { d: "M123.82 191.98h12.99", opacity: "0.64", stroke: "#d3254c", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M118.22 173.80h1.64", opacity: "0.35", stroke: "#ff4268", strokeWidth: "0.79" } }, { tag: "path", props: { d: "M123.93 202.21h17.29", opacity: "0.49", stroke: "#ff4268", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M112.63 179.39h3.80", opacity: "0.58", stroke: "#ff4268", strokeWidth: "0.82" } }, { tag: "path", props: { d: "M108.89 189.20h12.24", opacity: "0.34", stroke: "#6d7c91", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M121.69 195.34h3.51", opacity: "0.47", stroke: "#6d7c91", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M120.78 203.06h19.29", opacity: "0.31", stroke: "#4c1730", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M113.52 173.06h5.75", opacity: "0.51", stroke: "#ff4268", strokeWidth: "0.82" } }, { tag: "path", props: { d: "M98.25 179.84h8.50", opacity: "0.47", stroke: "#4c1730", strokeWidth: "0.90" } }, { tag: "path", props: { d: "M115.56 170.66h1.80", opacity: "0.35", stroke: "#ff4268", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M100.74 190.08h1.06", opacity: "0.44", stroke: "#ff4268", strokeWidth: "0.98" } }, { tag: "path", props: { d: "M122.21 197.70h12.83", opacity: "0.62", stroke: "#4c1730", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M103.49 184.84h10.01", opacity: "0.52", stroke: "#4c1730", strokeWidth: "0.75" } }, { tag: "path", props: { d: "M118.72 169.33h2.45", opacity: "0.70", stroke: "#ff4268", strokeWidth: "0.39" } }, { tag: "path", props: { d: "M111.76 201.85h9.69", opacity: "0.56", stroke: "#4c1730", strokeWidth: "0.86" } }, { tag: "path", props: { d: "M116.97 189.95h6.42", opacity: "0.52", stroke: "#d3254c", strokeWidth: "0.74" } }, { tag: "path", props: { d: "M115.61 173.47h0.90", opacity: "0.50", stroke: "#d3254c", strokeWidth: "0.67" } }, { tag: "path", props: { d: "M124.12 184.01h10.97", opacity: "0.39", stroke: "#6d7c91", strokeWidth: "0.58" } }, { tag: "path", props: { d: "M120.07 203.19h9.53", opacity: "0.70", stroke: "#ff4268", strokeWidth: "0.89" } }, { tag: "path", props: { d: "M117.47 171.51h0.82", opacity: "0.29", stroke: "#4c1730", strokeWidth: "0.48" } }, { tag: "path", props: { d: "M104.92 192.78h15.18", opacity: "0.47", stroke: "#d3254c", strokeWidth: "0.88" } }, { tag: "path", props: { d: "M133.48 203.09h9.92", opacity: "0.28", stroke: "#ff4268", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M101.38 201.81h11.93", opacity: "0.48", stroke: "#6d7c91", strokeWidth: "0.32" } }, { tag: "path", props: { d: "M106.96 196.66h5.57", opacity: "0.28", stroke: "#d3254c", strokeWidth: "0.36" } }, { tag: "path", props: { d: "M112.49 177.45h6.86", opacity: "0.20", stroke: "#d3254c", strokeWidth: "0.53" } }, { tag: "path", props: { d: "M114.79 199.61h9.34", opacity: "0.52", stroke: "#6d7c91", strokeWidth: "0.46" } }, { tag: "path", props: { d: "M118.20 175.53h5.88", opacity: "0.36", stroke: "#d3254c", strokeWidth: "0.70" } }, { tag: "path", props: { d: "M114.56 177.67h3.60", opacity: "0.20", stroke: "#4c1730", strokeWidth: "0.54" } }, { tag: "path", props: { d: "M111.43 180.14h9.04", opacity: "0.33", stroke: "#4c1730", strokeWidth: "0.45" } }, { tag: "path", props: { d: "M121.93 191.16h4.52", opacity: "0.19", stroke: "#d3254c", strokeWidth: "0.43" } }, { tag: "path", props: { d: "M106.33 175.96h6.00", opacity: "0.18", stroke: "#4c1730", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M113.04 191.12h15.06", opacity: "0.33", stroke: "#d3254c", strokeWidth: "0.52" } }, { tag: "path", props: { d: "M119.68 197.46h6.07", opacity: "0.60", stroke: "#4c1730", strokeWidth: "0.63" } }, { tag: "path", props: { d: "M106.39 176.78h5.58", opacity: "0.16", stroke: "#4c1730", strokeWidth: "0.89" } }, { tag: "path", props: { d: "M111.81 201.88h15.28", opacity: "0.46", stroke: "#6d7c91", strokeWidth: "0.93" } }, { tag: "path", props: { d: "M135.05 198.39h6.01", opacity: "0.56", stroke: "#6d7c91", strokeWidth: "0.95" } }, { tag: "path", props: { d: "M111.93 180.21h8.33", opacity: "0.44", stroke: "#6d7c91", strokeWidth: "0.40" } }, { tag: "path", props: { d: "M120.79 194.53h15.95", opacity: "0.23", stroke: "#d3254c", strokeWidth: "0.61" } }, { tag: "path", props: { d: "M108.00 178.32h7.74", opacity: "0.60", stroke: "#ff4268", strokeWidth: "0.85" } }, { tag: "path", props: { d: "M115.98 175.22h6.83", opacity: "0.34", stroke: "#4c1730", strokeWidth: "0.96" } }, { tag: "path", props: { d: "M107.50 198.98h5.76", opacity: "0.25", stroke: "#d3254c", strokeWidth: "0.38" } }, { tag: "path", props: { d: "M106.38 182.38h1.85", opacity: "0.46", stroke: "#d3254c", strokeWidth: "0.60" } }, { tag: "path", props: { d: "M116.92 171.59h3.27", opacity: "0.42", stroke: "#ff4268", strokeWidth: "0.82" } }, { tag: "path", props: { d: "M134.00 198.50h9.70", opacity: "0.47", stroke: "#ff4268", strokeWidth: "0.98" } }, { tag: "path", props: { d: "M102.60 189.21h12.19", opacity: "0.62", stroke: "#4c1730", strokeWidth: "0.54" } }, { tag: "path", props: { d: "M114.41 193.09h16.04", opacity: "0.32", stroke: "#ff4268", strokeWidth: "0.57" } }, { tag: "path", props: { d: "M106.50 182.73h5.98", opacity: "0.70", stroke: "#ff4268", strokeWidth: "0.51" } }, { tag: "ellipse", props: { cx: "125", cy: "181", fill: "#ff315c", filter: "url(#pf-art-bloom)", opacity: ".36", rx: "22", ry: "2.7" } }, { tag: "path", props: { d: "M0,174 11,157 30,174 45,170 57,185 87,200 92,204L240 207H0Z", fill: "#02060a" } }, { tag: "path", props: { d: "M0 174L11 157 3.0 209.6Z", fill: "#3a1122", opacity: "0.63" } }, { tag: "path", props: { d: "M0.0 174.0l4.0 8.2L-13.5 209.6", fill: "none", opacity: "0.19", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M3.7 168.3l-3.1 18.9L16.0 209.6", fill: "none", opacity: "0.17", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M7.3 162.7l5.9 12.3L16.8 209.6", fill: "none", opacity: "0.26", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M11 157L30 174 -1.1 207.3Z", fill: "#132332", opacity: "0.75" } }, { tag: "path", props: { d: "M11.0 157.0l1.8 13.8L-12.0 207.3", fill: "none", opacity: "0.21", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M17.3 162.7l-6.3 7.5L6.9 207.3", fill: "none", opacity: "0.27", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M23.7 168.3l6.8 7.3L9.0 207.3", fill: "none", opacity: "0.27", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M30 174L45 170 57.2 210.5Z", fill: "#1a2631", opacity: "0.41" } }, { tag: "path", props: { d: "M30.0 174.0l-7.2 13.8L39.6 210.5", fill: "none", opacity: "0.36", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M35.0 172.7l2.9 15.5L66.5 210.5", fill: "none", opacity: "0.24", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M40.0 171.3l-1.4 17.6L60.1 210.5", fill: "none", opacity: "0.30", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M45 170L57 185 72.1 207.4Z", fill: "#3a1122", opacity: "0.49" } }, { tag: "path", props: { d: "M45.0 170.0l2.9 9.5L82.1 207.4", fill: "none", opacity: "0.15", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M49.0 175.0l-1.2 19.8L86.9 207.4", fill: "none", opacity: "0.15", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M53.0 180.0l-4.1 8.7L54.0 207.4", fill: "none", opacity: "0.16", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M57 185L87 200 67.2 209.6Z", fill: "#132332", opacity: "0.64" } }, { tag: "path", props: { d: "M57.0 185.0l1.4 14.6L57.3 209.6", fill: "none", opacity: "0.20", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M67.0 190.0l3.3 19.0L86.6 209.6", fill: "none", opacity: "0.22", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M77.0 195.0l7.5 16.9L50.7 209.6", fill: "none", opacity: "0.21", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M87 200L92 204 111.8 209.1Z", fill: "#1a2631", opacity: "0.51" } }, { tag: "path", props: { d: "M87.0 200.0l-2.0 15.6L105.9 209.1", fill: "none", opacity: "0.22", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M88.7 201.3l-1.4 7.8L128.8 209.1", fill: "none", opacity: "0.18", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M90.3 202.7l5.2 20.9L94.0 209.1", fill: "none", opacity: "0.22", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M0,174 11,157 30,174 45,170 57,185 87,200 92,204", fill: "none", opacity: ".65", stroke: "#c42a49", strokeWidth: ".7" } }, { tag: "path", props: { d: "M144,204 185,184 201,185 218,172 231,175 240,157L240 207H0Z", fill: "#02060a" } }, { tag: "path", props: { d: "M144 204L185 184 156.4 208.4Z", fill: "#50132b", opacity: "0.41" } }, { tag: "path", props: { d: "M144.0 204.0l-6.5 16.3L169.2 208.4", fill: "none", opacity: "0.17", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M157.7 197.3l-1.3 10.9L139.8 208.4", fill: "none", opacity: "0.22", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M171.3 190.7l-6.0 10.6L169.5 208.4", fill: "none", opacity: "0.26", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M185 184L201 185 172.8 212.3Z", fill: "#0e1f2b", opacity: "0.89" } }, { tag: "path", props: { d: "M185.0 184.0l5.7 11.6L154.7 212.3", fill: "none", opacity: "0.25", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M190.3 184.3l1.0 17.9L175.7 212.3", fill: "none", opacity: "0.26", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M195.7 184.7l-2.0 15.8L178.4 212.3", fill: "none", opacity: "0.26", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M201 185L218 172 215.0 211.5Z", fill: "#132332", opacity: "0.60" } }, { tag: "path", props: { d: "M201.0 185.0l1.4 14.3L207.5 211.5", fill: "none", opacity: "0.18", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M206.7 180.7l4.5 8.3L202.2 211.5", fill: "none", opacity: "0.25", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M212.3 176.3l3.7 11.6L230.0 211.5", fill: "none", opacity: "0.15", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M218 172L231 175 220.7 213.8Z", fill: "#17212c", opacity: "0.87" } }, { tag: "path", props: { d: "M218.0 172.0l7.4 8.2L217.6 213.8", fill: "none", opacity: "0.26", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M222.3 173.0l-3.0 18.1L235.8 213.8", fill: "none", opacity: "0.24", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M226.7 174.0l-6.9 8.5L232.6 213.8", fill: "none", opacity: "0.23", stroke: "#41596c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M231 175L240 157 243.1 207.5Z", fill: "#50132b", opacity: "0.54" } }, { tag: "path", props: { d: "M231.0 175.0l2.9 14.1L246.2 207.5", fill: "none", opacity: "0.21", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M234.0 169.0l-7.6 14.4L249.8 207.5", fill: "none", opacity: "0.27", stroke: "#db3350", strokeWidth: ".65" } }, { tag: "path", props: { d: "M237.0 163.0l-4.5 11.6L242.8 207.5", fill: "none", opacity: "0.18", stroke: "#7e243c", strokeWidth: ".65" } }, { tag: "path", props: { d: "M144,204 185,184 201,185 218,172 231,175 240,157", fill: "none", opacity: ".65", stroke: "#c42a49", strokeWidth: ".7" } }, { tag: "ellipse", props: { cx: "120", cy: "181", fill: "#ff3c60", filter: "url(#pf-art-bloom)", rx: "12", ry: "3" } }, { tag: "ellipse", props: { cx: "120", cy: "181", fill: "#ffe6e2", rx: "4", ry: ".65" } }, { tag: "path", props: { d: "M0 0H240V204H0Z", fill: "url(#pf-art-vignette)" } }] }, { tag: "filter", props: { colorInterpolationFilters: "sRGB", height: "200%", id: "pf-art-bloom", width: "200%", x: "-50%", y: "-50%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "3.2" } }] }, { tag: "radialGradient", props: { cx: ".5", cy: ".5", id: "pf-art-vignette", r: ".72" }, children: [{ tag: "stop", props: { offset: ".57", stopColor: "#01040a", stopOpacity: "0" } }, { tag: "stop", props: { offset: "1", stopColor: "#01040a", stopOpacity: ".6" } }] }] }, { tag: "use", props: { href: "#pf-art-6" } }] }, brand: { tag: "svg", props: { "aria-label": "Music lives in you", className: "wordmark", role: "img", viewBox: "0 0 250 77" }, children: [{ tag: "path", props: { d: "M64.75 44.75L65.25 45.25L64.00 46.25L63.75 45.50Z M18.50 40.25L18.75 40.50L18.75 41.25L18.25 41.50L18.00 40.75Z M19.50 38.00L19.75 38.25L19.75 39.25L19.25 39.50L19.00 39.25L19.00 38.50Z M20.75 35.50L21.00 36.25L20.75 37.00L20.25 37.50L20.00 37.25L20.00 36.25Z M141.75 35.00L142.00 35.75L140.75 37.00L140.25 37.00L140.00 36.75L140.25 36.25Z M201.50 33.50L201.75 33.75L201.75 35.00L201.25 35.50L201.00 36.50L197.75 43.00L197.25 43.50L197.00 44.25L195.75 45.50L195.00 45.50L194.75 45.25L194.75 44.25L195.50 43.00L196.00 41.50L196.50 41.00L197.00 39.50L199.00 36.50Z M92.00 34.75L91.75 34.50L90.75 34.75L87.50 38.00L86.25 38.75L85.25 39.75L82.50 41.25L81.75 41.25L81.00 40.50L81.00 39.75L81.25 39.50L81.50 37.75L83.00 35.00L84.00 33.75L85.00 33.00L85.75 33.00L86.00 33.25L85.75 34.00L86.00 34.75L86.50 34.75L87.50 33.50L87.50 32.25L87.25 31.75L86.25 31.00L85.50 31.00L84.25 31.75L81.75 34.00L79.00 38.00L77.50 39.50L77.25 39.50L75.50 41.25L74.50 41.50L74.25 41.25L74.25 39.75L74.75 38.75L75.00 37.25L76.50 34.75L76.50 34.00L76.25 33.75L75.25 33.75L74.00 35.75L73.00 36.75L71.25 37.75L69.00 39.75L67.75 40.00L66.25 38.00L66.00 37.25L67.00 35.50L68.25 34.25L70.25 33.75L70.25 33.00L70.00 32.75L68.50 32.50L67.00 33.25L65.00 35.50L64.00 37.50L64.00 38.00L62.25 40.25L59.75 42.75L58.75 42.75L58.50 42.50L58.50 39.50L59.75 37.25L59.75 35.75L58.75 35.50L57.75 36.25L57.25 37.25L55.00 39.75L53.25 42.25L52.50 43.00L51.75 43.25L51.50 43.00L51.50 42.00L53.75 37.50L53.75 36.50L53.50 36.25L52.50 36.25L52.00 36.75L51.75 37.75L51.00 39.00L50.75 40.25L50.25 40.75L49.75 42.25L49.75 43.00L49.50 43.25L49.50 44.25L50.25 45.25L51.50 45.50L52.50 45.00L55.50 41.75L56.00 41.75L56.50 42.25L56.50 43.25L57.75 44.50L59.00 44.75L60.50 44.00L61.75 43.00L64.75 39.75L65.50 39.75L66.25 40.75L66.25 41.50L63.50 43.75L61.50 46.25L61.50 47.50L62.00 48.00L64.00 48.00L65.75 47.00L67.25 45.50L68.25 43.25L68.25 42.50L69.50 41.00L72.00 39.00L72.50 39.25L72.00 41.75L72.25 42.50L73.00 43.25L74.50 43.25L75.75 42.75L78.50 40.25L79.00 40.25L79.50 40.75L79.50 41.50L81.00 42.75L82.75 42.75L84.75 41.75L86.75 40.00L88.00 39.25L92.00 35.25Z M78.25 28.50L77.75 28.50L76.75 29.25L76.50 30.25L77.00 30.75L77.50 30.75L78.50 29.75L78.50 28.75Z M117.25 23.50L116.50 23.75L115.75 24.75L115.75 25.75L116.00 26.00L116.50 26.00L117.75 24.25Z M216.00 21.75L216.50 22.50L214.75 24.75L214.25 24.75L214.00 24.50L214.25 22.50L215.00 21.75Z M187.00 23.00L186.25 22.75L182.25 26.75L181.25 27.50L180.25 27.75L179.75 27.00L180.75 24.00L180.50 21.50L179.50 20.75L178.50 21.00L175.50 24.00L175.00 23.75L175.00 23.00L175.50 22.25L175.50 21.50L175.00 21.00L174.25 21.00L173.00 22.50L173.00 23.00L171.75 25.25L168.75 28.25L168.75 28.50L166.25 30.75L165.25 30.75L165.00 30.00L165.50 29.50L165.50 29.00L166.00 28.25L166.00 27.25L167.75 23.50L167.75 22.50L167.50 22.25L166.50 22.25L166.00 22.75L165.75 24.00L165.25 24.50L165.25 25.00L164.75 25.75L164.75 26.50L163.75 28.50L163.50 30.50L163.25 30.75L163.50 31.50L164.25 32.25L165.25 32.50L166.00 32.00L166.50 32.00L169.50 29.50L170.25 29.75L170.25 31.25L170.50 31.50L171.50 31.50L172.00 31.25L172.25 30.50L174.25 27.75L176.00 26.00L176.75 24.75L178.25 23.50L178.75 24.00L178.50 24.25L178.50 25.00L178.00 25.75L177.75 27.50L178.25 28.75L179.00 29.50L180.00 29.75L181.50 29.00L182.25 28.25L183.00 28.00L186.00 25.00L187.00 23.75Z M215.75 19.50L216.25 18.50L217.00 18.75L217.00 19.25L216.50 19.75Z M169.75 17.00L169.00 17.00L168.25 17.75L168.00 18.25L168.00 19.00L168.25 19.25L169.25 19.25L170.00 18.50L170.00 17.25Z M237.25 17.00L237.00 16.75L236.25 16.75L232.25 21.25L230.50 22.25L230.00 21.75L230.00 20.50L230.25 20.25L230.25 19.00L231.50 15.25L231.25 14.75L230.00 14.75L228.75 17.00L226.75 19.25L226.00 20.50L224.25 22.25L223.75 21.75L223.75 21.25L224.75 19.25L225.00 17.75L225.75 16.75L225.75 15.50L225.25 15.25L224.50 15.50L224.00 16.00L223.75 16.75L221.75 18.75L220.50 19.00L220.00 18.50L219.75 17.25L218.50 15.75L218.00 15.50L217.00 15.50L216.00 16.00L216.00 16.25L215.50 16.50L215.50 16.75L213.75 18.50L213.50 19.25L208.25 24.25L207.75 23.75L207.75 23.25L208.75 21.50L208.75 20.25L209.75 18.25L209.75 17.50L209.25 17.00L208.50 17.00L207.50 17.75L203.50 23.00L201.75 24.75L201.25 24.75L201.00 24.50L201.00 23.50L201.75 22.00L202.00 20.75L203.00 19.00L203.00 18.00L202.75 17.75L202.00 17.75L201.25 18.50L200.75 20.00L199.75 21.75L199.50 23.25L199.00 24.00L199.00 26.00L200.00 27.00L201.00 27.00L202.25 26.25L203.75 24.75L204.75 23.25L205.75 22.50L206.25 23.00L206.00 23.25L206.00 24.00L205.50 24.75L204.75 27.25L199.75 33.00L196.00 38.50L194.00 42.50L194.00 43.25L193.25 45.00L193.25 46.00L193.75 47.25L194.50 47.75L195.50 47.50L198.75 44.00L201.00 39.50L201.50 39.00L202.00 37.50L203.00 36.00L203.00 35.50L203.75 34.25L204.00 33.00L204.50 32.25L204.75 31.00L205.25 30.25L206.00 28.00L208.00 26.00L210.00 24.75L210.00 24.50L210.75 24.00L211.25 23.25L212.00 23.25L212.25 23.50L212.00 24.25L212.25 24.50L212.25 25.50L213.75 26.75L214.50 26.75L216.75 25.25L217.75 24.00L218.25 22.75L219.75 21.25L220.25 21.25L221.00 20.75L221.75 21.00L221.50 24.25L221.75 24.75L222.25 25.00L223.50 25.00L226.50 22.25L227.25 21.00L227.75 21.00L228.25 21.50L228.25 22.50L229.00 23.75L229.50 24.00L230.50 24.00L232.25 23.00L235.00 20.25L237.00 17.75Z M54.50 12.75L53.75 12.50L52.75 12.75L50.00 15.00L50.00 15.25L46.75 18.75L45.50 20.75L44.00 22.50L43.75 23.25L42.00 25.25L39.75 28.50L37.75 32.25L34.75 36.75L34.75 37.25L33.75 38.50L33.75 39.00L33.00 39.75L32.50 41.00L32.00 41.50L31.75 42.50L31.25 43.00L30.50 44.75L30.00 45.25L29.75 46.00L29.00 46.50L28.50 47.25L28.25 47.00L28.25 46.25L29.00 44.50L29.25 42.75L30.00 41.25L30.00 40.00L30.75 38.25L30.75 37.50L31.75 34.50L32.25 31.75L33.00 30.50L33.00 29.75L34.00 27.50L34.00 26.50L35.00 24.25L35.25 22.00L35.75 21.00L35.75 19.50L36.00 19.25L36.00 17.25L36.25 16.50L35.50 15.50L34.50 15.50L31.75 18.00L29.75 20.50L28.00 23.25L27.50 24.50L27.00 25.00L26.75 26.00L25.50 27.75L23.75 31.25L23.25 31.75L22.75 33.25L22.00 34.00L21.75 35.25L21.00 35.75L20.75 35.50L21.00 34.00L21.75 33.00L21.75 32.25L23.75 28.25L25.25 23.75L25.75 23.25L26.00 22.00L27.00 20.00L27.00 19.25L26.50 18.75L26.00 18.75L25.25 19.50L24.50 22.25L24.00 22.75L23.75 24.00L23.00 25.00L22.75 26.25L21.00 29.75L20.75 31.00L18.50 35.50L18.00 37.25L17.00 39.00L16.75 40.25L13.75 46.50L13.75 47.25L13.00 48.50L12.75 49.75L11.25 52.75L10.50 55.25L10.00 55.75L8.75 59.75L7.75 61.75L7.50 63.25L7.00 63.75L6.75 64.50L6.75 65.25L6.50 65.50L6.50 66.50L6.75 66.75L7.75 66.75L8.25 65.50L8.75 65.00L8.75 64.50L10.00 62.25L10.25 61.25L11.00 60.25L11.00 59.75L14.75 52.25L14.75 51.75L15.75 50.25L16.25 48.75L16.75 48.25L16.75 47.50L17.50 46.50L17.75 45.50L18.50 44.50L18.75 43.50L19.50 42.50L20.00 41.00L20.75 40.00L21.00 39.00L21.75 38.25L22.00 37.25L22.75 36.25L23.00 35.25L23.75 34.25L24.25 32.75L24.75 32.25L25.00 31.00L25.75 30.25L26.00 29.25L27.00 28.00L27.00 27.50L29.00 25.00L29.00 24.50L30.00 23.25L30.25 22.50L30.75 22.25L31.00 21.50L32.25 20.25L32.25 20.00L33.50 18.75L34.00 19.25L33.75 22.00L33.00 23.50L32.75 25.50L32.00 27.25L31.50 29.75L31.00 30.50L30.75 32.50L30.00 34.00L29.75 35.75L28.75 38.25L28.75 39.25L28.00 40.75L27.75 42.75L26.75 45.50L26.75 46.75L26.25 47.75L26.00 51.00L25.75 51.25L26.25 52.50L27.25 52.50L28.00 52.00L29.25 49.50L30.00 48.75L30.00 48.25L31.00 47.00L31.00 46.50L31.75 45.75L32.25 44.50L32.75 44.00L33.25 42.50L34.00 41.75L34.25 40.75L34.75 40.25L37.25 35.50L39.00 33.00L39.00 32.50L40.75 30.25L42.00 27.75L42.75 27.00L43.00 26.25L44.75 24.00L45.75 22.25L50.25 16.75L51.25 16.00L52.25 14.75L52.75 14.75L53.25 15.25L52.75 18.00L52.00 19.50L51.75 21.25L51.25 22.00L51.00 23.50L49.75 26.50L49.75 27.25L49.25 27.75L48.75 30.00L48.25 30.75L47.50 33.50L47.00 34.25L46.75 36.00L46.25 36.75L46.00 38.25L44.75 41.25L44.75 42.00L44.00 43.25L43.75 45.00L43.00 46.25L42.75 48.25L42.00 50.00L42.00 51.00L41.00 53.25L40.75 55.25L40.25 56.25L40.00 58.25L39.75 58.50L39.75 59.00L40.25 59.75L41.00 59.50L41.50 58.00L41.50 57.25L41.75 57.00L42.00 54.75L43.00 52.50L43.00 51.50L43.75 50.00L44.25 47.25L45.00 45.75L45.00 45.00L46.00 42.50L46.00 41.75L46.50 41.00L47.00 39.50L47.00 38.75L48.00 36.75L48.00 36.00L49.00 34.25L49.00 33.50L49.75 32.00L50.00 30.50L50.75 29.00L51.00 27.50L51.75 26.00L52.25 24.50L52.25 23.75L52.75 23.00L53.00 21.50L54.25 18.50L54.25 17.75L55.00 15.50L55.00 13.50Z M103.50 42.00L104.25 43.00L105.25 43.00L105.75 42.75L108.75 39.75L109.75 38.25L111.25 36.75L111.75 37.25L112.00 38.50L112.50 38.75L114.25 38.75L115.00 38.00L115.75 37.75L118.25 35.00L119.00 35.25L118.75 37.00L119.75 39.00L121.00 39.00L122.25 38.00L125.00 34.00L125.00 33.50L126.75 31.50L127.25 31.50L128.25 32.25L129.75 32.25L130.00 32.50L130.00 35.00L130.25 35.50L132.00 36.50L133.50 36.50L136.75 34.75L139.00 33.00L141.25 30.75L141.50 30.75L142.25 31.75L142.00 32.25L139.00 35.50L138.75 36.25L138.00 37.00L138.00 38.50L138.75 39.00L140.25 39.00L142.75 37.25L144.00 35.75L144.50 34.75L144.50 33.25L144.75 32.75L145.50 32.00L146.25 31.75L148.00 30.25L148.75 30.00L151.50 27.50L151.50 27.00L151.00 26.75L150.25 27.00L146.50 30.00L145.75 30.25L145.25 30.75L144.25 30.75L142.75 28.50L143.00 27.00L144.50 25.25L145.25 25.00L146.25 25.25L146.75 25.00L147.00 24.50L146.50 23.50L145.25 23.25L143.75 24.00L142.00 25.75L141.00 27.50L140.50 29.25L138.25 31.75L133.75 35.00L132.25 35.00L131.75 34.50L131.50 33.75L131.75 33.00L132.75 32.00L134.75 31.00L136.75 29.00L137.50 27.50L137.25 26.00L136.25 25.25L134.75 25.50L134.25 25.75L130.25 30.00L129.50 30.50L128.25 30.50L128.00 30.25L128.00 29.00L128.75 27.75L129.75 26.75L129.75 25.75L129.50 25.50L128.75 25.50L128.00 26.00L127.75 26.75L127.00 27.50L126.50 28.75L125.00 31.00L124.50 32.25L121.50 36.25L121.00 36.00L121.00 35.00L121.50 33.75L122.25 29.75L122.75 29.25L122.75 28.00L122.50 27.75L122.00 27.75L121.00 28.50L120.50 30.25L120.00 30.75L119.75 31.50L114.50 37.00L114.00 37.00L113.50 36.50L113.50 34.75L114.00 33.25L115.75 30.00L115.50 29.25L114.75 29.25L113.75 30.00L112.50 32.50L109.00 37.25L105.75 40.75L105.25 40.75L105.00 40.50L105.00 39.25L105.75 37.50L106.00 36.00L106.75 34.75L107.00 33.25L107.75 32.00L107.75 31.50L110.75 25.50L111.75 24.25L111.75 23.75L113.50 21.00L114.00 19.50L114.50 19.00L114.75 17.75L115.25 17.25L115.75 15.75L116.75 14.00L116.75 13.25L117.75 11.00L117.75 10.00L118.00 9.75L117.50 8.75L116.75 8.75L115.00 11.00L114.50 12.25L113.00 14.50L112.50 16.25L112.00 16.75L112.00 17.25L111.00 19.00L110.75 20.25L109.75 22.00L109.50 23.25L108.75 24.50L108.00 27.00L105.75 31.75L105.50 33.00L104.75 34.50L104.75 35.50L103.75 37.75L103.50 40.50L103.25 40.75L103.50 41.00Z", fill: "currentColor", fillRule: "evenodd" } }] }, database: { tag: "svg", props: { "aria-hidden": "true", className: "database-art", fill: "none", viewBox: "0 0 170 179" }, children: [{ tag: "defs" }, "\n", { tag: "defs", children: ["\n", { tag: "filter", props: { height: "200%", id: "db-bloom", width: "200%", x: "-50%", y: "-50%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "3" } }] }, "\n", { tag: "linearGradient", props: { id: "db-body" }, children: [{ tag: "stop", props: { stopColor: "#9a1636" } }, { tag: "stop", props: { offset: ".12", stopColor: "#3b0313" } }, { tag: "stop", props: { offset: ".3", stopColor: "#19050d" } }, { tag: "stop", props: { offset: ".72", stopColor: "#090408" } }, { tag: "stop", props: { offset: "1", stopColor: "#5e071e" } }] }, "\n", { tag: "radialGradient", props: { cx: ".3", cy: ".27", id: "db-top", r: ".9" }, children: [{ tag: "stop", props: { stopColor: "#a72649" } }, { tag: "stop", props: { offset: ".23", stopColor: "#38111d" } }, { tag: "stop", props: { offset: ".66", stopColor: "#10040a" } }, { tag: "stop", props: { offset: "1", stopColor: "#290610" } }] }, "\n", { tag: "linearGradient", props: { id: "db-edge" }, children: [{ tag: "stop", props: { stopColor: "#fff1e9" } }, { tag: "stop", props: { offset: ".16", stopColor: "#ff6388" } }, { tag: "stop", props: { offset: ".47", stopColor: "#8b0730" } }, { tag: "stop", props: { offset: ".8", stopColor: "#ff285f" } }, { tag: "stop", props: { offset: "1", stopColor: "#ffabbc" } }] }, "\n", { tag: "radialGradient", props: { id: "db-aura" }, children: [{ tag: "stop", props: { stopColor: "#fd1746", stopOpacity: ".3" } }, { tag: "stop", props: { offset: ".5", stopColor: "#ff083c", stopOpacity: ".12" } }, { tag: "stop", props: { offset: "1", stopColor: "#ff083c", stopOpacity: "0" } }] }, "\n", { tag: "g", props: { id: "db-spark" }, children: [{ tag: "path", props: { d: "M-7 0H7M0-8V8", stroke: "#ffafbc", strokeWidth: ".7" } }, { tag: "circle", props: { fill: "#ff4264", filter: "url(#db-bloom)", r: "3.4" } }, { tag: "circle", props: { fill: "#fff1eb", r: "1.4" } }] }, "\n"] }, "\n", { tag: "ellipse", props: { cx: "85", cy: "120", fill: "url(#db-aura)", rx: "83", ry: "71" } }, "\n", { tag: "g", props: { transform: "translate(0 2)" }, children: ["\n", { tag: "path", props: { d: "M39 57V133C39 156 134 156 134 133V57Z", fill: "url(#db-body)", stroke: "#ff345b", strokeWidth: ".75" } }, "\n", { tag: "path", props: { d: "M39 83C39 106 134 106 134 83M39 108C39 132 134 132 134 108M39 133C39 155 134 155 134 133", filter: "url(#db-bloom)", opacity: ".7", stroke: "#ff335d", strokeWidth: "3.5" } }, "\n", { tag: "path", props: { d: "M39 83C39 106 134 106 134 83M39 108C39 132 134 132 134 108M39 133C39 155 134 155 134 133", stroke: "url(#db-edge)", strokeWidth: "1.4" } }, "\n", { tag: "ellipse", props: { cx: "86.5", cy: "57", fill: "url(#db-top)", rx: "47.5", ry: "17", stroke: "#ff426b", strokeWidth: "1.1" } }, "\n", { tag: "ellipse", props: { cx: "86.5", cy: "57", filter: "url(#db-bloom)", opacity: ".75", rx: "47.5", ry: "17", stroke: "#ff2b57", strokeWidth: "5" } }, "\n", { tag: "ellipse", props: { cx: "86.5", cy: "57", opacity: ".8", rx: "42", ry: "13.8", stroke: "url(#db-edge)", strokeWidth: ".5" } }, "\n", { tag: "ellipse", props: { cx: "86.5", cy: "81", opacity: ".75", rx: "47.5", ry: "17", stroke: "#e4264f", strokeWidth: ".7" } }, "\n", { tag: "ellipse", props: { cx: "86.5", cy: "106", opacity: ".8", rx: "47.5", ry: "17", stroke: "#e4264f", strokeWidth: ".7" } }, "\n", { tag: "ellipse", props: { cx: "86.5", cy: "132", opacity: ".7", rx: "47.5", ry: "17", stroke: "#e4264f", strokeWidth: ".7" } }, "\n", { tag: "g", props: { stroke: "#ffe7ed", strokeWidth: "1.45" }, children: ["\n", { tag: "ellipse", props: { className: "db-orbit", cx: "86.5", cy: "57", pathLength: "100", rx: "47.5", ry: "17" } }, "\n", { tag: "ellipse", props: { className: "db-orbit db-orbit--two", cx: "86.5", cy: "106", pathLength: "100", rx: "47.5", ry: "17" } }, "\n", { tag: "ellipse", props: { className: "db-orbit db-orbit--three", cx: "86.5", cy: "132", pathLength: "100", rx: "47.5", ry: "17" } }, "\n"] }, "\n", { tag: "ellipse", props: { cx: "86.5", cy: "53.5", fill: "#ff577b", filter: "url(#db-bloom)", rx: "5", ry: "1.6" } }, { tag: "ellipse", props: { cx: "86.5", cy: "53.5", fill: "#ffb5c3", rx: "3.4", ry: ".8" } }, "\n"] }, "\n", { tag: "g", props: { className: "sparkle", style: { "--delay": "-1s" } }, children: [{ tag: "use", props: { href: "#db-spark", transform: "translate(42 84)" } }] }, "\n", { tag: "g", props: { className: "sparkle", style: { "--delay": "-2.7s" } }, children: [{ tag: "use", props: { href: "#db-spark", transform: "translate(44 111)" } }] }, "\n", { tag: "g", props: { className: "sparkle", style: { "--delay": "-.6s" } }, children: [{ tag: "use", props: { href: "#db-spark", transform: "translate(132 143)" } }] }, "\n", { tag: "g", props: { className: "sparkle", style: { "--delay": "-2s" } }, children: [{ tag: "use", props: { href: "#db-spark", transform: "translate(15 135) scale(.75)" } }] }, "\n", { tag: "g", props: { className: "sparkle", style: { "--delay": "-3s" } }, children: [{ tag: "use", props: { href: "#db-spark", transform: "translate(64 151) scale(.8)" } }] }, "\n", { tag: "g", props: { className: "sparkle", style: { "--delay": "-1.5s" } }, children: [{ tag: "use", props: { href: "#db-spark", transform: "translate(156 147) scale(.75)" } }] }, "\n"] }, host: { tag: "svg", props: { "aria-hidden": "true", className: "host-emblem", "data-host-motion": "ready", fill: "none", focusable: "false", viewBox: "0 0 128 128" }, children: ["\n", { tag: "defs", children: ["\n\n", { tag: "filter", props: { colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse", height: "208", id: "hostv2-halo", width: "208", x: "-40", y: "-40" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "5.2" } }] }, "\n", { tag: "filter", props: { colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse", height: "188", id: "hostv2-bloom", width: "188", x: "-30", y: "-30" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "2.2" } }] }, "\n", { tag: "filter", props: { colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse", height: "188", id: "hostv2-glint", width: "188", x: "-30", y: "-30" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: ".65" } }] }, "\n", { tag: "filter", props: { colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse", height: "90", id: "hostv2-gold-bloom", width: "90", x: "20", y: "14" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "3.1" } }] }, "\n", { tag: "filter", props: { colorInterpolationFilters: "sRGB", filterUnits: "userSpaceOnUse", height: "31", id: "hostv2-label-glow", width: "74", x: "28", y: "78" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "1.7" } }] }, "\n", { tag: "radialGradient", props: { cx: ".35", cy: ".1", id: "hostv2-case", r: ".93" }, children: ["\n", { tag: "stop", props: { stopColor: "#28141b" } }, { tag: "stop", props: { offset: ".3", stopColor: "#0e070d" } }, { tag: "stop", props: { offset: ".76", stopColor: "#010409" } }, { tag: "stop", props: { offset: "1", stopColor: "#12030b" } }, "\n"] }, "\n", { tag: "linearGradient", props: { id: "hostv2-outer-edge", x1: "0", x2: ".2", y1: "0", y2: "1" }, children: ["\n", { tag: "stop", props: { stopColor: "#844149" } }, { tag: "stop", props: { offset: ".24", stopColor: "#341c29" } }, { tag: "stop", props: { offset: ".53", stopColor: "#ae1735" } }, { tag: "stop", props: { offset: ".82", stopColor: "#620d28" } }, { tag: "stop", props: { offset: "1", stopColor: "#361321" } }, "\n"] }, "\n", { tag: "linearGradient", props: { id: "hostv2-case-bevel", x1: "0", x2: ".55", y1: "0", y2: "1" }, children: ["\n", { tag: "stop", props: { stopColor: "#9d5b63" } }, { tag: "stop", props: { offset: ".25", stopColor: "#cf9097" } }, { tag: "stop", props: { offset: ".47", stopColor: "#5c1128" } }, { tag: "stop", props: { offset: ".7", stopColor: "#04050a" } }, { tag: "stop", props: { offset: "1", stopColor: "#321321" } }, "\n"] }, "\n", { tag: "linearGradient", props: { gradientUnits: "userSpaceOnUse", id: "hostv2-upper-edge", x1: "41", x2: "126", y1: "0", y2: "80" }, children: ["\n", { tag: "stop", props: { stopColor: "#66182b", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".25", stopColor: "#ffaaa7" } }, { tag: "stop", props: { offset: ".45", stopColor: "#fff4e9" } }, { tag: "stop", props: { offset: ".64", stopColor: "#ff5763" } }, { tag: "stop", props: { offset: "1", stopColor: "#ff1b3b", stopOpacity: "0" } }, "\n"] }, "\n", { tag: "linearGradient", props: { gradientUnits: "userSpaceOnUse", id: "hostv2-left-bevel", x1: "24", x2: "26", y1: "7", y2: "110" }, children: ["\n", { tag: "stop", props: { stopColor: "#531e2b" } }, { tag: "stop", props: { offset: ".27", stopColor: "#ffd6d5" } }, { tag: "stop", props: { offset: ".5", stopColor: "#ffe3e2" } }, { tag: "stop", props: { offset: ".71", stopColor: "#be3345" } }, { tag: "stop", props: { offset: "1", stopColor: "#460c1f", stopOpacity: ".25" } }, "\n"] }, "\n", { tag: "radialGradient", props: { cx: ".32", cy: ".09", id: "hostv2-face", r: "1.1" }, children: ["\n", { tag: "stop", props: { stopColor: "#271617" } }, { tag: "stop", props: { offset: ".22", stopColor: "#13090b" } }, { tag: "stop", props: { offset: ".58", stopColor: "#060304" } }, { tag: "stop", props: { offset: ".82", stopColor: "#020406" } }, { tag: "stop", props: { offset: "1", stopColor: "#080309" } }, "\n"] }, "\n", { tag: "radialGradient", props: { cx: ".5", cy: ".5", id: "hostv2-warm-reflection", r: ".5" }, children: ["\n", { tag: "stop", props: { stopColor: "#e35c09", stopOpacity: ".12" } }, { tag: "stop", props: { offset: ".45", stopColor: "#b94609", stopOpacity: ".075" } }, { tag: "stop", props: { offset: "1", stopColor: "#812100", stopOpacity: "0" } }, "\n"] }, "\n", { tag: "linearGradient", props: { gradientUnits: "userSpaceOnUse", id: "hostv2-neon-right", x1: "53", x2: "91", y1: "13", y2: "105" }, children: ["\n", { tag: "stop", props: { stopColor: "#ff5471" } }, { tag: "stop", props: { offset: ".17", stopColor: "#fff1e9" } }, { tag: "stop", props: { offset: ".38", stopColor: "#ffbdc0" } }, { tag: "stop", props: { offset: ".63", stopColor: "#ff274f" } }, { tag: "stop", props: { offset: ".83", stopColor: "#b0072e" } }, { tag: "stop", props: { offset: "1", stopColor: "#360714", stopOpacity: "0" } }, "\n"] }, "\n", { tag: "linearGradient", props: { gradientUnits: "userSpaceOnUse", id: "hostv2-neon-left", x1: "19", x2: "23", y1: "31", y2: "95" }, children: ["\n", { tag: "stop", props: { stopColor: "#d42048", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".18", stopColor: "#fe3158" } }, { tag: "stop", props: { offset: ".4", stopColor: "#fff5ed" } }, { tag: "stop", props: { offset: ".65", stopColor: "#ff909c" } }, { tag: "stop", props: { offset: ".86", stopColor: "#ff1b48" } }, { tag: "stop", props: { offset: "1", stopColor: "#76132b", stopOpacity: "0" } }, "\n"] }, "\n", { tag: "linearGradient", props: { gradientUnits: "userSpaceOnUse", id: "hostv2-inner-bevel", x1: "34", x2: "53", y1: "13", y2: "109" }, children: ["\n", { tag: "stop", props: { stopColor: "#c99799" } }, { tag: "stop", props: { offset: ".3", stopColor: "#56313a" } }, { tag: "stop", props: { offset: ".55", stopColor: "#31121c" } }, { tag: "stop", props: { offset: "1", stopColor: "#4e0d1e" } }, "\n"] }, "\n", { tag: "linearGradient", props: { gradientUnits: "userSpaceOnUse", id: "hostv2-red-right-glow", x1: "53", x2: "91", y1: "13", y2: "105" }, children: ["\n", { tag: "stop", props: { stopColor: "#ff1439" } }, { tag: "stop", props: { offset: ".6", stopColor: "#ff163b" } }, { tag: "stop", props: { offset: "1", stopColor: "#ff133e", stopOpacity: "0" } }, "\n"] }, "\n", { tag: "linearGradient", props: { gradientUnits: "userSpaceOnUse", id: "hostv2-red-left-glow", x1: "19", x2: "23", y1: "31", y2: "95" }, children: ["\n", { tag: "stop", props: { stopColor: "#ff1744", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".25", stopColor: "#ff2445" } }, { tag: "stop", props: { offset: ".65", stopColor: "#ff2145" } }, { tag: "stop", props: { offset: "1", stopColor: "#ff133e", stopOpacity: "0" } }, "\n"] }, "\n", { tag: "linearGradient", props: { gradientUnits: "userSpaceOnUse", id: "hostv2-white-right", x1: "65", x2: "111", y1: "18", y2: "82" }, children: ["\n", { tag: "stop", props: { stopColor: "#fff1ea", stopOpacity: ".2" } }, { tag: "stop", props: { offset: ".18", stopColor: "#fff6ee" } }, { tag: "stop", props: { offset: ".55", stopColor: "#fff0e9" } }, { tag: "stop", props: { offset: "1", stopColor: "#ff9ca4", stopOpacity: "0" } }, "\n"] }, "\n", { tag: "linearGradient", props: { gradientUnits: "userSpaceOnUse", id: "hostv2-white-left", x1: "17", x2: "23", y1: "38", y2: "88" }, children: ["\n", { tag: "stop", props: { stopColor: "#ffedeb", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".35", stopColor: "#fffaf3" } }, { tag: "stop", props: { offset: ".65", stopColor: "#fff3ef" } }, { tag: "stop", props: { offset: "1", stopColor: "#ffb2b8", stopOpacity: "0" } }, "\n"] }, "\n", { tag: "linearGradient", props: { id: "hostv2-plaque", x1: "0", x2: ".15", y1: "0", y2: "1" }, children: ["\n", { tag: "stop", props: { stopColor: "#22030a" } }, { tag: "stop", props: { offset: ".3", stopColor: "#100307" } }, { tag: "stop", props: { offset: ".74", stopColor: "#070409" } }, { tag: "stop", props: { offset: "1", stopColor: "#03060b" } }, "\n"] }, "\n", { tag: "linearGradient", props: { id: "hostv2-plaque-lip" }, children: ["\n", { tag: "stop", props: { stopColor: "#c71436", stopOpacity: "0" } }, { tag: "stop", props: { offset: ".2", stopColor: "#802035", stopOpacity: ".65" } }, { tag: "stop", props: { offset: ".5", stopColor: "#e16a75", stopOpacity: ".72" } }, { tag: "stop", props: { offset: ".74", stopColor: "#96263d", stopOpacity: ".6" } }, { tag: "stop", props: { offset: "1", stopColor: "#86132b", stopOpacity: "0" } }, "\n"] }, "\n", { tag: "linearGradient", props: { id: "hostv2-gold", x1: "0", x2: ".15", y1: "0", y2: "1" }, children: ["\n", { tag: "stop", props: { stopColor: "#fff0ac" } }, { tag: "stop", props: { offset: ".35", stopColor: "#ffe28a" } }, { tag: "stop", props: { offset: ".7", stopColor: "#ffcc62" } }, { tag: "stop", props: { offset: "1", stopColor: "#ffe38b" } }, "\n"] }, "\n", { tag: "clipPath", props: { id: "hostv2-face-clip" }, children: [{ tag: "circle", props: { cx: "65", cy: "63.5", r: "44.35" } }] }, "\n", { tag: "path", props: { d: "M48.7 50.1 54.25 66.8H77.15L82.25 50.1 71.9 58.9 65.45 45 58.25 58.9Z M54.75 72H77", id: "hostv2-crown-line" } }, "\n", { tag: "g", props: { id: "hostv2-crown-tips" }, children: [{ tag: "circle", props: { cx: "48.2", cy: "48.8", r: "1.8" } }, { tag: "circle", props: { cx: "65.45", cy: "42.45", r: "1.9" } }, { tag: "circle", props: { cx: "82.8", cy: "48.8", r: "1.8" } }] }, "\n", { tag: "path", props: { d: "M24 88.9 35.7 82.75Q38.1 81.4 42.5 81.4H87.8Q92 81.4 94.6 83L106.2 89.2", id: "hostv2-plaque-top" } }, "\n"] }, "\n\n", { tag: "g", props: { filter: "url(#hostv2-halo)", strokeLinecap: "round" }, children: ["\n", { tag: "g", props: { className: "host-motion__rotor host-motion__inner-rear", "data-host-orbit": "", "data-host-rotor": "inner-rear" }, children: [{ tag: "path", props: { d: "M65.000 17.700 A45.8 45.8 0 0 1 102.517 89.770", opacity: ".44", stroke: "#ff173c", strokeWidth: "10" } }, "\n", { tag: "path", props: { d: "M23.655 83.665 A46 46 0 0 1 26.421 38.447", opacity: ".48", stroke: "#ff2247", strokeWidth: "8" } }, "\n"] }, { tag: "g", props: { className: "host-motion__rotor host-motion__outer-rear", "data-host-orbit": "", "data-host-rotor": "outer-rear" }, children: [{ tag: "path", props: { d: "M59.335 9.597 A54.2 54.2 0 0 1 118.673 55.957", opacity: ".35", stroke: "#fa313e", strokeWidth: "5" } }, "\n"] }] }, "\n\n", { tag: "circle", props: { cx: "65", cy: "63.5", fill: "url(#hostv2-case)", r: "54.2", stroke: "url(#hostv2-outer-edge)", strokeWidth: ".65" } }, "\n", { tag: "circle", props: { cx: "65", cy: "63.5", opacity: ".8", r: "51.55", stroke: "url(#hostv2-case-bevel)", strokeWidth: ".65" } }, "\n", { tag: "circle", props: { cx: "65", cy: "63.5", r: "49.1", stroke: "#010305", strokeWidth: "4.4" } }, "\n", { tag: "circle", props: { cx: "65", cy: "63.5", r: "46.5", stroke: "#550719", strokeWidth: ".8" } }, "\n", { tag: "circle", props: { cx: "65", cy: "63.5", fill: "url(#hostv2-face)", r: "44.65", stroke: "url(#hostv2-inner-bevel)", strokeWidth: ".65" } }, "\n", { tag: "ellipse", props: { cx: "65", cy: "54", fill: "url(#hostv2-warm-reflection)", rx: "27", ry: "33" } }, "\n", { tag: "g", props: { className: "host-motion__rotor host-motion__outer-edge", "data-host-orbit": "", "data-host-rotor": "outer-edge" }, children: [{ tag: "path", props: { d: "M52.808 10.689 A54.2 54.2 0 0 1 113.715 87.260", filter: "url(#hostv2-bloom)", opacity: "0.5", stroke: "url(#hostv2-upper-edge)", strokeWidth: "2.8" } }, "\n", { tag: "path", props: { d: "M52.808 10.689 A54.2 54.2 0 0 1 113.715 87.260", opacity: "1", stroke: "url(#hostv2-upper-edge)", strokeWidth: "0.95" } }, "\n"] }, { tag: "path", props: { d: "M34.435 105.569 A52 52 0 0 1 48.931 14.045", opacity: "0.9", stroke: "url(#hostv2-left-bevel)", strokeWidth: "0.75" } }, "\n", { tag: "path", props: { d: "M105.663 101.419 A55.6 55.6 0 0 1 20.596 96.961", opacity: "0.3", stroke: "#9c1731", strokeWidth: "0.6" } }, "\n", { tag: "path", props: { d: "M98.721 102.292 A51.4 51.4 0 0 1 48.266 112.100", opacity: "0.28", stroke: "#af1d39", strokeWidth: "0.65" } }, "\n", { tag: "path", props: { d: "M23.833 46.867 A44.4 44.4 0 0 1 65.000 19.100", opacity: "0.85", stroke: "url(#hostv2-left-bevel)", strokeWidth: "0.95" } }, "\n\n", { tag: "g", props: { className: "host-motion__rotor host-motion__inner-front", "data-host-orbit": "", "data-host-rotor": "inner-front" }, children: [{ tag: "g", props: { strokeLinecap: "round" }, children: ["\n", { tag: "path", props: { d: "M65.000 17.300 A46.2 46.2 0 0 1 98.233 95.593", filter: "url(#hostv2-halo)", opacity: "0.68", stroke: "url(#hostv2-red-right-glow)", strokeWidth: "12" } }, "\n", { tag: "path", props: { d: "M65.796 17.907 A45.6 45.6 0 0 1 100.438 92.197", filter: "url(#hostv2-bloom)", opacity: "0.9", stroke: "url(#hostv2-red-right-glow)", strokeWidth: "7.5" } }, "\n", { tag: "path", props: { d: "M23.655 83.665 A46 46 0 0 1 27.785 36.462", filter: "url(#hostv2-halo)", opacity: "0.68", stroke: "url(#hostv2-red-left-glow)", strokeWidth: "11" } }, "\n", { tag: "path", props: { d: "M24.738 84.908 A45.6 45.6 0 0 1 28.109 36.697", filter: "url(#hostv2-bloom)", opacity: "0.9", stroke: "url(#hostv2-red-left-glow)", strokeWidth: "7.5" } }, "\n"] }, "\n", { tag: "g", props: { strokeLinecap: "round" }, children: ["\n", { tag: "path", props: { d: "M65.801 17.607 A45.9 45.9 0 0 1 98.018 95.385", opacity: "1", stroke: "url(#hostv2-neon-right)", strokeWidth: "3.3" } }, "\n", { tag: "path", props: { d: "M26.505 88.499 A45.9 45.9 0 0 1 30.359 33.387", opacity: "1", stroke: "url(#hostv2-neon-left)", strokeWidth: "3.5" } }, "\n", { tag: "path", props: { d: "M67.355 18.562 A45 45 0 0 1 108.034 76.657", opacity: "1", stroke: "url(#hostv2-white-right)", strokeWidth: "1.1" } }, "\n", { tag: "path", props: { d: "M24.459 84.157 A45.5 45.5 0 0 1 27.279 38.057", opacity: "1", stroke: "url(#hostv2-white-left)", strokeWidth: "1.4" } }, "\n", { tag: "path", props: { d: "M65.000 15.600 A47.9 47.9 0 0 1 111.853 73.459", opacity: "0.65", stroke: "#ff4769", strokeWidth: "0.6" } }, "\n", { tag: "path", props: { d: "M107.866 56.711 A43.4 43.4 0 0 1 96.741 93.099", opacity: "0.42", stroke: "#ff2848", strokeWidth: "0.6" } }, "\n", { tag: "path", props: { d: "M29.970 88.951 A43.3 43.3 0 0 1 22.023 58.223", opacity: "0.55", stroke: "#ff8b97", strokeWidth: "0.6" } }, "\n"] }, "\n"] }, "\n", { tag: "path", props: { d: "M64.9 8.8V16.4 M112.2 81.4 117.4 83.4 M64.9 111.5V117.4 M10.7 63.5H15.6", opacity: ".9", stroke: "#05080d", strokeWidth: "1.2" } }, "\n\n", { tag: "g", props: { clipPath: "url(#hostv2-face-clip)" }, children: ["\n", { tag: "path", props: { d: "M22 90 35.7 82.75Q38.1 81.4 42.5 81.4H87.8Q92 81.4 94.6 83L109 91V121H22Z", fill: "url(#hostv2-plaque)" } }, "\n", { tag: "use", props: { filter: "url(#hostv2-bloom)", href: "#hostv2-plaque-top", opacity: ".2", stroke: "#fa2445", strokeWidth: "2.4" } }, "\n", { tag: "use", props: { href: "#hostv2-plaque-top", stroke: "url(#hostv2-plaque-lip)", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M42 83.1H88", opacity: ".35", stroke: "url(#hostv2-plaque-lip)", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M96.960 93.303 A43.7 43.7 0 0 1 32.525 92.741", opacity: "0.37", stroke: "#9d1330", strokeWidth: "0.55" } }, "\n"] }, "\n\n", { tag: "g", props: { className: "host-emblem__crown", strokeLinecap: "round", strokeLinejoin: "round" }, children: ["\n", { tag: "g", props: { className: "host-motion__gold-glow", filter: "url(#hostv2-gold-bloom)", opacity: ".65" }, children: ["\n", { tag: "use", props: { href: "#hostv2-crown-line", stroke: "#ff7b12", strokeWidth: "4.9" } }, "\n", { tag: "use", props: { fill: "#ffb530", href: "#hostv2-crown-tips" } }, "\n"] }, "\n", { tag: "use", props: { filter: "url(#hostv2-glint)", href: "#hostv2-crown-line", opacity: ".23", stroke: "#ec9d2a", strokeWidth: "3.2" } }, "\n", { tag: "use", props: { href: "#hostv2-crown-line", stroke: "url(#hostv2-gold)", strokeWidth: "2.35" } }, "\n", { tag: "use", props: { href: "#hostv2-crown-line", opacity: ".6", stroke: "#fff0b3", strokeWidth: ".6" } }, "\n", { tag: "use", props: { fill: "#ffe69b", href: "#hostv2-crown-tips" } }, "\n"] }, "\n", { tag: "g", props: { className: "host-emblem__label", fontFamily: "Arial, Helvetica, sans-serif", fontSize: "11.5", fontWeight: "500", letterSpacing: ".15", textAnchor: "middle" }, children: ["\n", { tag: "text", props: { fill: "#ff2c55", filter: "url(#hostv2-label-glow)", opacity: ".65", x: "65", y: "96.9" }, children: ["HOST"] }, "\n", { tag: "text", props: { fill: "#ff8295", x: "65", y: "96.9" }, children: ["HOST"] }, "\n"] }, "\n\n", { tag: "g", props: { className: "host-motion__rotor host-motion__outer-glints", "data-host-orbit": "", "data-host-rotor": "outer-glints" }, children: ["\n", { tag: "ellipse", props: { cx: "65", cy: "10.3", fill: "#ff384c", filter: "url(#hostv2-bloom)", opacity: ".82", rx: "7.4", ry: "3.1" } }, "\n", { tag: "ellipse", props: { cx: "65", cy: "10.3", fill: "#fff0e3", rx: "1.7", ry: ".7" } }, "\n", { tag: "path", props: { d: "M65 4.5V16", opacity: ".62", stroke: "#ff6874", strokeWidth: ".65" } }, "\n", { tag: "ellipse", props: { cx: "14.1", cy: "63.5", fill: "#ff3c59", filter: "url(#hostv2-bloom)", opacity: ".8", rx: "3.2", ry: "7.1" } }, "\n", { tag: "ellipse", props: { cx: "14.1", cy: "63.5", fill: "#fff1e8", rx: ".8", ry: "3.4" } }, "\n", { tag: "path", props: { d: "M7.5 63.5H20.3", opacity: ".35", stroke: "#ff8d9d", strokeWidth: ".55" } }, "\n"] }, "\n"] }, server: { tag: "svg", props: { "aria-hidden": "true", className: "env-server-art", fill: "none", viewBox: "0 0 180 170" }, children: [{ tag: "defs", children: [{ tag: "g", props: { id: "env-server-unit" }, children: ["\n", { tag: "ellipse", props: { cx: "89", cy: "124", fill: "url(#env-rack-aura)", rx: "76", ry: "22" } }, "\n", { tag: "path", props: { d: "M26 43 98 29 150 45 75 61Z", fill: "url(#env-rack-top)", stroke: "url(#env-rack-edge)", strokeWidth: ".75" } }, "\n", { tag: "path", props: { d: "M98 29 150 45 150 119 98 107Z", fill: "url(#env-rack-side)", stroke: "#741932", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M26 43 98 29 98 107 26 121Z", fill: "url(#env-rack-front)", stroke: "url(#env-rack-edge)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M29 46 94 33 94 105 29 117Z", fill: "#0d050d", stroke: "#9d365454", strokeWidth: ".65" } }, "\n", { tag: "path", props: { d: "M27 44 98 30 147 45", fill: "none", filter: "url(#env-rack-bloom)", opacity: ".35", stroke: "#ffc0d5", strokeWidth: "3" } }, "\n", { tag: "path", props: { d: "M27 44 98 30 147 45", fill: "none", stroke: "#ffc0d5", strokeWidth: ".75" } }, "\n", { tag: "path", props: { d: "M33 50.00 90 38.80", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 49.80l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 48.60l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 47.39l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 46.19l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 44.98l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 43.78l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 42.57l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 41.37l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 40.16l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 53.35 90 42.15", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 53.15l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 51.95l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 50.74l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 49.54l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 48.33l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 47.13l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 45.92l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 44.72l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 43.51l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 56.70 90 45.50", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 56.50l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 55.30l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 54.09l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 52.89l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 51.68l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 50.48l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 49.27l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 48.07l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 46.86l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 60.05 90 48.85", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 59.85l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 58.65l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 57.44l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 56.24l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 55.03l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 53.83l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 52.62l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 51.42l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 50.21l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 63.40 90 52.20", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 63.20l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 62.00l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 60.79l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 59.59l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 58.38l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 57.18l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 55.97l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 54.77l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 53.56l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 66.75 90 55.55", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 66.55l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 65.35l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 64.14l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 62.94l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 61.73l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 60.53l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 59.32l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 58.12l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 56.91l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 70.10 90 58.90", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 69.90l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 68.70l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 67.49l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 66.29l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 65.08l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 63.88l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 62.67l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 61.47l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 60.26l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 73.45 90 62.25", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 73.25l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 72.05l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 70.84l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 69.64l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 68.43l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 67.23l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 66.02l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 64.82l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 63.61l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 76.80 90 65.60", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 76.60l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 75.40l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 74.19l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 72.99l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 71.78l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 70.58l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 69.37l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 68.17l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 66.96l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 80.15 90 68.95", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 79.95l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 78.75l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 77.54l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 76.34l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 75.13l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 73.93l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 72.72l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 71.52l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 70.31l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 83.50 90 72.30", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 83.30l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 82.10l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 80.89l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 79.69l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 78.48l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 77.28l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 76.07l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 74.87l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 73.66l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 86.85 90 75.65", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 86.65l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 85.45l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 84.24l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 83.04l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 81.83l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 80.63l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 79.42l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 78.22l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 77.01l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 90.20 90 79.00", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 90.00l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 88.80l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 87.59l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 86.39l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 85.18l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 83.98l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 82.77l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 81.57l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 80.36l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 93.55 90 82.35", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 93.35l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 92.15l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 90.94l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 89.74l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 88.53l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 87.33l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 86.12l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 84.92l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 83.71l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M33 96.90 90 85.70", stroke: "#5a1a3080", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M34.0 96.70l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M40.1 95.50l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M46.3 94.29l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M52.5 93.09l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M58.6 91.88l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M64.8 90.68l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M70.9 89.47l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M77.1 88.27l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M83.2 87.06l2.6-.51", stroke: "#01040a", strokeWidth: "1.65" } }, "\n", { tag: "path", props: { d: "M107 52.0l34 9v4l-34-9Z", fill: "#040309", stroke: "#34101f", strokeWidth: ".55" } }, "\n", { tag: "path", props: { className: "env-rack-led", d: "M109 54.0l3 .8", stroke: "#ff3157", strokeWidth: "1.4", style: { "--phase": "-0.00s" } } }, "\n", { tag: "path", props: { d: "M107 59.5l34 9v4l-34-9Z", fill: "#040309", stroke: "#34101f", strokeWidth: ".55" } }, "\n", { tag: "path", props: { className: "env-rack-led", d: "M109 61.5l3 .8", stroke: "#ff3157", strokeWidth: "1.4", style: { "--phase": "-0.34s" } } }, "\n", { tag: "path", props: { d: "M107 67.0l34 9v4l-34-9Z", fill: "#040309", stroke: "#34101f", strokeWidth: ".55" } }, "\n", { tag: "path", props: { className: "env-rack-led", d: "M109 69.0l3 .8", stroke: "#ff3157", strokeWidth: "1.4", style: { "--phase": "-0.68s" } } }, "\n", { tag: "path", props: { d: "M107 74.5l34 9v4l-34-9Z", fill: "#040309", stroke: "#34101f", strokeWidth: ".55" } }, "\n", { tag: "path", props: { className: "env-rack-led", d: "M109 76.5l3 .8", stroke: "#ff3157", strokeWidth: "1.4", style: { "--phase": "-1.02s" } } }, "\n", { tag: "path", props: { d: "M107 82.0l34 9v4l-34-9Z", fill: "#040309", stroke: "#34101f", strokeWidth: ".55" } }, "\n", { tag: "path", props: { className: "env-rack-led", d: "M109 84.0l3 .8", stroke: "#ff3157", strokeWidth: "1.4", style: { "--phase": "-1.36s" } } }, "\n", { tag: "path", props: { d: "M107 89.5l34 9v4l-34-9Z", fill: "#040309", stroke: "#34101f", strokeWidth: ".55" } }, "\n", { tag: "path", props: { className: "env-rack-led", d: "M109 91.5l3 .8", stroke: "#ff3157", strokeWidth: "1.4", style: { "--phase": "-1.70s" } } }, "\n", { tag: "path", props: { d: "M107 97.0l34 9v4l-34-9Z", fill: "#040309", stroke: "#34101f", strokeWidth: ".55" } }, "\n", { tag: "path", props: { className: "env-rack-led", d: "M109 99.0l3 .8", stroke: "#ff3157", strokeWidth: "1.4", style: { "--phase": "-2.04s" } } }, "\n", { tag: "path", props: { d: "M107 104.5l34 9v4l-34-9Z", fill: "#040309", stroke: "#34101f", strokeWidth: ".55" } }, "\n", { tag: "path", props: { className: "env-rack-led", d: "M109 106.5l3 .8", stroke: "#ff3157", strokeWidth: "1.4", style: { "--phase": "-2.38s" } } }, "\n", { tag: "path", props: { d: "M31 108 93 96v8l-62 12Z", fill: "#17050e", stroke: "#5b1a2b", strokeWidth: ".55" } }, "\n", { tag: "path", props: { d: "M35 110l20-4", opacity: ".65", stroke: "#f8365f", strokeWidth: "1.1" } }, "\n", { tag: "circle", props: { className: "env-rack-led", cx: "85", cy: "103.5", fill: "#ff5175", r: "1.5" } }, "\n", { tag: "path", props: { className: "env-rack-light", d: "M27 43 98 29 98 107 27 121Z", fill: "none", pathLength: "100", stroke: "#f790b0", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M26 125 98 112 150 126v14l-73 10-51-10Z", fill: "url(#env-rack-side)", stroke: "#65142f", strokeWidth: ".6" } }, "\n", { tag: "path", props: { d: "M26 125 98 112v15l-72 13Z", fill: "url(#env-rack-front)", stroke: "#9d2f4a", strokeWidth: ".65" } }, "\n", { tag: "path", props: { d: "M33 130 83 121m-50 13 41-7", stroke: "#78273f", strokeWidth: ".8" } }, "\n", { tag: "circle", props: { className: "env-rack-led", cx: "91", cy: "121.5", fill: "#fd3e64", r: "1.3" } }, "\n"] }, { tag: "g", props: { id: "env-rack-spark" }, children: [{ tag: "path", props: { d: "M-7 0H7M0-10V10", stroke: "#ffc6d5", strokeWidth: ".65" } }, { tag: "circle", props: { fill: "#ff446f", filter: "url(#env-rack-bloom)", r: "3.5" } }, { tag: "circle", props: { fill: "#fff6eb", r: "1.15" } }] }, { tag: "linearGradient", props: { id: "env-rack-edge", x1: "0", x2: "1", y1: "0", y2: "1" }, children: ["\n", { tag: "stop", props: { stopColor: "#ffb0d3" } }, { tag: "stop", props: { offset: ".29", stopColor: "#c94367" } }, { tag: "stop", props: { offset: ".52", stopColor: "#6d1530" } }, { tag: "stop", props: { offset: ".8", stopColor: "#fc2451" } }, { tag: "stop", props: { offset: "1", stopColor: "#79213a" } }, "\n"] }, { tag: "linearGradient", props: { id: "env-rack-side", x1: "0", x2: ".9", y1: "0", y2: "1" }, children: ["\n", { tag: "stop", props: { stopColor: "#481023" } }, { tag: "stop", props: { offset: ".27", stopColor: "#14040d" } }, { tag: "stop", props: { offset: "1", stopColor: "#020208" } }, "\n"] }, { tag: "linearGradient", props: { id: "env-rack-front", x1: "0", x2: "1", y1: "0", y2: "1" }, children: ["\n", { tag: "stop", props: { stopColor: "#592034" } }, { tag: "stop", props: { offset: ".22", stopColor: "#1b0611" } }, { tag: "stop", props: { offset: ".72", stopColor: "#0d040b" } }, { tag: "stop", props: { offset: "1", stopColor: "#360a1d" } }, "\n"] }, { tag: "radialGradient", props: { id: "env-rack-aura" }, children: [{ tag: "stop", props: { stopColor: "#ff234d", stopOpacity: ".28" } }, { tag: "stop", props: { offset: ".6", stopColor: "#ff1238", stopOpacity: ".06" } }, { tag: "stop", props: { offset: "1", stopColor: "#ff1238", stopOpacity: "0" } }] }, { tag: "linearGradient", props: { id: "env-rack-top", x1: "0", x2: ".7", y1: "0", y2: "1" }, children: ["\n", { tag: "stop", props: { stopColor: "#ffa0c2" } }, { tag: "stop", props: { offset: ".23", stopColor: "#b1375f" } }, { tag: "stop", props: { offset: ".57", stopColor: "#481029" } }, { tag: "stop", props: { offset: "1", stopColor: "#16060f" } }, "\n"] }, { tag: "filter", props: { colorInterpolationFilters: "sRGB", height: "170%", id: "env-rack-bloom", width: "170%", x: "-35%", y: "-35%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "2.4" } }] }] }, { tag: "use", props: { href: "#env-server-unit" } }, "\n", { tag: "g", props: { className: "env-spark" }, children: [{ tag: "use", props: { href: "#env-rack-spark", transform: "translate(121 27) scale(.9)" } }] }, "\n", { tag: "g", props: { className: "env-spark", style: { "--phase": "-2.7s" } }, children: [{ tag: "use", props: { href: "#env-rack-spark", transform: "translate(27 112) scale(.5)" } }] }, "\n"] }, microphone: { tag: "svg", props: { "aria-hidden": "true", className: "theme-art", focusable: "false", viewBox: "0 0 280 158" }, children: [{ tag: "defs" }, "\n", { tag: "defs", children: ["\n", { tag: "radialGradient", props: { cx: ".48", cy: ".8", id: "mic-dark-space", r: ".95" }, children: [{ tag: "stop", props: { stopColor: "#ff3055", stopOpacity: ".18" } }, { tag: "stop", props: { offset: ".42", stopColor: "#170309" } }, { tag: "stop", props: { offset: "1", stopColor: "#030409" } }] }, "\n", { tag: "linearGradient", props: { id: "mic-dark-metal" }, children: [{ tag: "stop", props: { stopColor: "#170309" } }, { tag: "stop", props: { offset: ".06", stopColor: "#b62642" } }, { tag: "stop", props: { offset: ".14", stopColor: "#fff0d9" } }, { tag: "stop", props: { offset: ".23", stopColor: "#ff3055" } }, { tag: "stop", props: { offset: ".30", stopColor: "#b62642" } }, { tag: "stop", props: { offset: ".4", stopColor: "#fff0d9" } }, { tag: "stop", props: { offset: ".48", stopColor: "#b62642" } }, { tag: "stop", props: { offset: ".53", stopColor: "#170c12" } }, { tag: "stop", props: { offset: ".7", stopColor: "#04050a" } }, { tag: "stop", props: { offset: ".83", stopColor: "#b62642" } }, { tag: "stop", props: { offset: ".93", stopColor: "#ff3055" } }, { tag: "stop", props: { offset: "1", stopColor: "#170309" } }] }, "\n", { tag: "linearGradient", props: { id: "mic-dark-rib" }, children: [{ tag: "stop", props: { stopColor: "#ff3055" } }, { tag: "stop", props: { offset: ".14", stopColor: "#fff0d9" } }, { tag: "stop", props: { offset: ".48", stopColor: "#fff0d9" } }, { tag: "stop", props: { offset: ".57", stopColor: "#b62642" } }, { tag: "stop", props: { offset: "1", stopColor: "#ff3055" } }] }, "\n", { tag: "linearGradient", props: { id: "mic-dark-glaze", x1: "0", x2: "0", y1: "0", y2: "1" }, children: [{ tag: "stop", props: { stopColor: "#fff0d9", stopOpacity: ".74" } }, { tag: "stop", props: { offset: ".18", stopColor: "#ff3055", stopOpacity: ".12" } }, { tag: "stop", props: { offset: ".45", stopColor: "#000", stopOpacity: ".2" } }, { tag: "stop", props: { offset: ".75", stopColor: "#ff3055", stopOpacity: "0" } }, { tag: "stop", props: { offset: "1", stopColor: "#fff0d9", stopOpacity: ".48" } }] }, "\n", { tag: "linearGradient", props: { id: "mic-dark-ribbon" }, children: [{ tag: "stop", props: { stopColor: "#ff3055", stopOpacity: ".24" } }, { tag: "stop", props: { offset: ".28", stopColor: "#ff3055", stopOpacity: ".65" } }, { tag: "stop", props: { offset: ".51", stopColor: "#fff0d9" } }, { tag: "stop", props: { offset: ".8", stopColor: "#ff3055", stopOpacity: ".72" } }, { tag: "stop", props: { offset: "1", stopColor: "#ff3055", stopOpacity: ".02" } }] }, "\n", { tag: "radialGradient", props: { cx: ".35", cy: ".52", id: "mic-dark-lightwash", r: ".85" }, children: [{ tag: "stop", props: { stopColor: "#fff4de", stopOpacity: ".64" } }, { tag: "stop", props: { offset: ".46", stopColor: "#a68f7a", stopOpacity: ".55" } }, { tag: "stop", props: { offset: "1", stopColor: "#71625e", stopOpacity: ".62" } }] }, "\n", { tag: "radialGradient", props: { id: "mic-dark-floor" }, children: [{ tag: "stop", props: { stopColor: "#fff0d9", stopOpacity: ".68" } }, { tag: "stop", props: { offset: ".16", stopColor: "#ff3055", stopOpacity: ".52" } }, { tag: "stop", props: { offset: "1", stopColor: "#ff3055", stopOpacity: "0" } }] }, "\n", { tag: "filter", props: { colorInterpolationFilters: "sRGB", height: "300%", id: "mic-dark-bloom", width: "300%", x: "-100%", y: "-100%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: "3" } }] }, "\n", { tag: "filter", props: { height: "180%", id: "mic-dark-soft", width: "180%", x: "-40%", y: "-40%" }, children: [{ tag: "feGaussianBlur", props: { stdDeviation: ".65" } }] }, "\n", { tag: "path", props: { d: "M107 50C107 27 116 16 135 16C155 16 166 28 166 48V101C166 122 156 134 137 134C117 134 107 123 107 103Z", id: "mic-dark-body" } }, "\n", { tag: "clipPath", props: { id: "mic-dark-clip" }, children: [{ tag: "use", props: { href: "#mic-dark-body" } }] }, "\n", { tag: "path", props: { d: "M172 129V82L207 71V122 M172 88 207 78", id: "mic-dark-note" } }, "\n"] }, "\n", { tag: "path", props: { d: "M0 0H280V158H0Z", fill: "url(#mic-dark-space)" } }, "\n", { tag: "path", props: { d: "M-10 -26C30 39 8 127 138 147C212 153 272 49 291 -6L296 32C255 145 215 159 130 151C39 148 13 92-10 8Z", fill: "url(#mic-dark-ribbon)", opacity: "0.045" } }, "\n", { tag: "path", props: { d: "M-10 -12C30 53 8 127 138 147C212 153 272 63 291 8L296 46C255 145 215 159 130 151C39 148 13 106-10 22Z", fill: "url(#mic-dark-ribbon)", opacity: "0.071" } }, "\n", { tag: "path", props: { d: "M-10 2C30 67 8 127 138 147C212 153 272 77 291 22L296 60C255 145 215 159 130 151C39 148 13 120-10 36Z", fill: "url(#mic-dark-ribbon)", opacity: "0.097" } }, "\n", { tag: "path", props: { d: "M-10 16C30 81 8 127 138 147C212 153 272 91 291 36L296 74C255 145 215 159 130 151C39 148 13 134-10 50Z", fill: "url(#mic-dark-ribbon)", opacity: "0.123" } }, "\n", { tag: "path", props: { d: "M-10 30C30 95 8 127 138 147C212 153 272 105 291 50L296 88C255 145 215 159 130 151C39 148 13 148-10 64Z", fill: "url(#mic-dark-ribbon)", opacity: "0.149" } }, "\n", { tag: "g", props: { className: "ribbon-flow" }, children: ["\n", { tag: "path", props: { d: "M-15 -12.0C18.0 109.0 48.0 137.0 139 145.0S260 112.0 295 -51.0", fill: "none", opacity: "0.58", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.85" } }, "\n", { tag: "path", props: { d: "M-15 -5.0C18.4 109.6 49.3 132.4 139 144.9S260 109.9 295 -44.0", fill: "none", opacity: "0.32", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 2.0C18.8 110.2 50.6 138.3 139 144.8S260 107.8 295 -37.0", fill: "none", opacity: "0.29", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 9.0C19.2 110.8 51.9 135.1 139 144.8S260 105.7 295 -30.0", fill: "none", opacity: "0.54", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 16.0C19.6 111.4 53.2 140.2 139 144.7S260 103.6 295 -23.0", fill: "none", opacity: "0.23", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.85" } }, "\n", { tag: "path", props: { d: "M-15 23.0C20.0 112.0 54.5 149.9 139 144.6S260 101.5 295 -16.0", fill: "none", opacity: "0.29", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 30.0C20.4 112.6 55.8 148.3 139 144.5S260 99.4 295 -9.0", fill: "none", opacity: "0.22", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 37.0C20.8 113.2 57.1 144.8 139 144.4S260 97.3 295 -2.0", fill: "none", opacity: "0.44", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 44.0C21.2 113.8 58.4 143.4 139 144.4S260 95.2 295 5.0", fill: "none", opacity: "0.59", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.85" } }, "\n", { tag: "path", props: { d: "M-15 51.0C21.6 114.4 59.7 147.1 139 144.3S260 93.1 295 12.0", fill: "none", opacity: "0.33", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 58.0C22.0 115.0 61.0 139.3 139 144.2S260 91.0 295 19.0", fill: "none", opacity: "0.23", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 65.0C22.4 115.6 62.3 144.0 139 144.1S260 88.9 295 26.0", fill: "none", opacity: "0.36", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 72.0C22.8 116.2 63.6 129.7 139 144.0S260 86.8 295 33.0", fill: "none", opacity: "0.45", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.85" } }, "\n", { tag: "path", props: { d: "M-15 79.0C23.2 116.8 64.9 147.6 139 144.0S260 84.7 295 40.0", fill: "none", opacity: "0.24", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 86.0C23.6 117.4 66.2 146.2 139 143.9S260 82.6 295 47.0", fill: "none", opacity: "0.47", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 93.0C24.0 118.0 67.5 129.8 139 143.8S260 80.5 295 54.0", fill: "none", opacity: "0.49", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 100.0C24.4 118.6 68.8 129.8 139 143.7S260 78.4 295 61.0", fill: "none", opacity: "0.21", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.85" } }, "\n", { tag: "path", props: { d: "M-15 107.0C24.8 119.2 70.1 148.7 139 143.6S260 76.3 295 68.0", fill: "none", opacity: "0.56", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 114.0C25.2 119.8 71.4 140.5 139 143.6S260 74.2 295 75.0", fill: "none", opacity: "0.59", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 121.0C25.6 120.4 72.7 143.2 139 143.5S260 72.1 295 82.0", fill: "none", opacity: "0.55", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 128.0C26.0 121.0 74.0 139.0 139 143.4S260 70.0 295 89.0", fill: "none", opacity: "0.37", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.85" } }, "\n", { tag: "path", props: { d: "M-15 135.0C26.4 121.6 75.3 152.0 139 143.3S260 67.9 295 96.0", fill: "none", opacity: "0.43", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n", { tag: "path", props: { d: "M-15 142.0C26.8 122.2 76.6 139.8 139 143.2S260 65.8 295 103.0", fill: "none", opacity: "0.55", stroke: "url(#mic-dark-ribbon)", strokeWidth: "0.4" } }, "\n"] }, "\n", { tag: "g", props: { className: "theme-spark", style: { "--delay": "-3.0s" } }, children: [{ tag: "circle", props: { cx: "40", cy: "58", fill: "#ff3055", filter: "url(#mic-dark-bloom)", opacity: ".75", r: "4.4" } }, { tag: "path", props: { d: "M36.5 58h7M40 54v8", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".5" } }, { tag: "circle", props: { cx: "40", cy: "58", fill: "#fff0d9", r: "1" } }] }, "\n", { tag: "g", props: { className: "theme-spark", style: { "--delay": "-3.1s" } }, children: [{ tag: "circle", props: { cx: "261", cy: "100", fill: "#ff3055", filter: "url(#mic-dark-bloom)", opacity: ".75", r: "4.4" } }, { tag: "path", props: { d: "M257.5 100h7M261 96v8", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".5" } }, { tag: "circle", props: { cx: "261", cy: "100", fill: "#fff0d9", r: "1" } }] }, "\n", { tag: "g", props: { className: "theme-spark", style: { "--delay": "-1.4s" } }, children: [{ tag: "circle", props: { cx: "83", cy: "15", fill: "#ff3055", filter: "url(#mic-dark-bloom)", opacity: ".75", r: "4.4" } }, { tag: "path", props: { d: "M79.5 15h7M83 11v8", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".5" } }, { tag: "circle", props: { cx: "83", cy: "15", fill: "#fff0d9", r: "1" } }] }, "\n", { tag: "g", props: { className: "theme-spark", style: { "--delay": "-3.8s" } }, children: [{ tag: "circle", props: { cx: "22", cy: "98", fill: "#ff3055", filter: "url(#mic-dark-bloom)", opacity: ".75", r: "4.4" } }, { tag: "path", props: { d: "M18.5 98h7M22 94v8", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".5" } }, { tag: "circle", props: { cx: "22", cy: "98", fill: "#fff0d9", r: "1" } }] }, "\n", { tag: "g", props: { className: "theme-spark", style: { "--delay": "-2.2s" } }, children: [{ tag: "circle", props: { cx: "230", cy: "35", fill: "#ff3055", filter: "url(#mic-dark-bloom)", opacity: ".75", r: "4.4" } }, { tag: "path", props: { d: "M226.5 35h7M230 31v8", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".5" } }, { tag: "circle", props: { cx: "230", cy: "35", fill: "#fff0d9", r: "1" } }] }, "\n", { tag: "path", props: { d: "M46.0 86.4L5.2 82.0", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M46.0 86.4L56.9 130.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M46.0 86.4L82.3 111.7", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M46.0 86.4L18.0 73.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M46.0 86.4L21.5 63.4", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M46.0 86.4L11.9 62.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M46.0 86.4L77.3 92.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M46.0 86.4L49.1 44.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M46.0 86.4L55.7 60.1", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M46.0 86.4L68.5 65.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "46.0", cy: "86.4", fill: "#fff0d9", r: "1.39", style: { "--delay": "-0.90s" } } }, "\n", { tag: "path", props: { d: "M160.8 19.9L146.2 55.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M160.8 19.9L131.4 17.9", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M160.8 19.9L131.9 46.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "160.8", cy: "19.9", fill: "#fff0d9", r: "1.25", style: { "--delay": "-0.63s" } } }, "\n", { tag: "path", props: { d: "M28.9 89.6L5.2 82.0", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M28.9 89.6L21.5 63.4", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M28.9 89.6L11.9 62.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M28.9 89.6L-6.4 79.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M28.9 89.6L55.7 60.1", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M28.9 89.6L15.2 126.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M28.9 89.6L68.5 65.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "28.9", cy: "89.6", fill: "#fff0d9", r: "1.43", style: { "--delay": "-0.55s" } } }, "\n", { tag: "path", props: { d: "M169.4 13.6L146.2 55.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M169.4 13.6L150.7 33.7", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M169.4 13.6L131.4 17.9", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "169.4", cy: "13.6", fill: "#fff0d9", r: "1.06", style: { "--delay": "-4.69s" } } }, "\n", { tag: "path", props: { d: "M146.2 55.3L124.4 90.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M146.2 55.3L150.7 33.7", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M146.2 55.3L138.2 100.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M146.2 55.3L131.4 17.9", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M146.2 55.3L175.4 27.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "146.2", cy: "55.3", fill: "#fff0d9", r: "1.36", style: { "--delay": "-2.44s" } } }, "\n", { tag: "path", props: { d: "M209.0 102.2L237.3 65.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M209.0 102.2L216.3 63.7", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M209.0 102.2L202.2 66.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M209.0 102.2L209.5 73.9", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M209.0 102.2L248.3 100.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M209.0 102.2L253.6 94.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "209.0", cy: "102.2", fill: "#fff0d9", r: "1.09", style: { "--delay": "-1.37s" } } }, "\n", { tag: "path", props: { d: "M5.2 82.0L21.5 63.4", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M5.2 82.0L11.9 62.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M5.2 82.0L15.2 126.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "5.2", cy: "82.0", fill: "#fff0d9", r: "0.67", style: { "--delay": "-1.05s" } } }, "\n", { tag: "path", props: { d: "M8.1 9.6L27.0 34.4", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "8.1", cy: "9.6", fill: "#fff0d9", r: "0.72", style: { "--delay": "-0.49s" } } }, "\n", { tag: "path", props: { d: "M56.9 130.6L82.3 111.7", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M56.9 130.6L77.3 92.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M56.9 130.6L15.2 126.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "56.9", cy: "130.6", fill: "#fff0d9", r: "0.86", style: { "--delay": "-0.01s" } } }, "\n", { tag: "path", props: { d: "M225.1 91.3L261.1 97.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M225.1 91.3L237.3 65.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M225.1 91.3L199.5 89.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M225.1 91.3L216.3 63.7", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M225.1 91.3L202.2 66.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M225.1 91.3L209.5 73.9", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M225.1 91.3L248.3 100.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M225.1 91.3L253.6 94.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "225.1", cy: "91.3", fill: "#fff0d9", r: "0.92", style: { "--delay": "-0.93s" } } }, "\n", { tag: "path", props: { d: "M82.3 111.7L124.4 90.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M82.3 111.7L68.5 65.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "82.3", cy: "111.7", fill: "#fff0d9", r: "1.22", style: { "--delay": "-3.97s" } } }, "\n", { tag: "path", props: { d: "M18.0 73.8L27.0 34.4", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M18.0 73.8L49.1 44.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M18.0 73.8L-6.4 79.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M18.0 73.8L55.7 60.1", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "18.0", cy: "73.8", fill: "#fff0d9", r: "1.01", style: { "--delay": "-2.23s" } } }, "\n", { tag: "path", props: { d: "M17.5 7.6L27.0 34.4", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "17.5", cy: "7.6", fill: "#fff0d9", r: "1.13", style: { "--delay": "-2.47s" } } }, "\n", { tag: "path", props: { d: "M275.2 47.2L237.3 65.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "275.2", cy: "47.2", fill: "#fff0d9", r: "1.04", style: { "--delay": "-0.77s" } } }, "\n", { tag: "path", props: { d: "M21.5 63.4L27.0 34.4", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M21.5 63.4L49.1 44.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M21.5 63.4L-6.4 79.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M21.5 63.4L55.7 60.1", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M21.5 63.4L68.5 65.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "21.5", cy: "63.4", fill: "#fff0d9", r: "0.76", style: { "--delay": "-3.04s" } } }, "\n", { tag: "path", props: { d: "M261.1 97.5L278.6 59.4", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M261.1 97.5L268.4 122.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M261.1 97.5L237.3 65.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M261.1 97.5L218.1 103.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "261.1", cy: "97.5", fill: "#fff0d9", r: "1.15", style: { "--delay": "-3.28s" } } }, "\n", { tag: "path", props: { d: "M11.9 62.3L27.0 34.4", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M11.9 62.3L49.1 44.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M11.9 62.3L-6.4 79.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M11.9 62.3L55.7 60.1", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "11.9", cy: "62.3", fill: "#fff0d9", r: "1.08", style: { "--delay": "-1.47s" } } }, "\n", { tag: "path", props: { d: "M278.6 59.4L237.3 65.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M278.6 59.4L253.6 94.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "278.6", cy: "59.4", fill: "#fff0d9", r: "1.07", style: { "--delay": "-2.78s" } } }, "\n", { tag: "path", props: { d: "M124.4 90.6L77.3 92.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M124.4 90.6L131.9 46.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "124.4", cy: "90.6", fill: "#fff0d9", r: "1.42", style: { "--delay": "-3.97s" } } }, "\n", { tag: "path", props: { d: "M268.4 122.5L248.3 100.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M268.4 122.5L253.6 94.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "268.4", cy: "122.5", fill: "#fff0d9", r: "0.97", style: { "--delay": "-2.85s" } } }, "\n", { tag: "path", props: { d: "M77.3 92.5L55.7 60.1", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M77.3 92.5L68.5 65.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "77.3", cy: "92.5", fill: "#fff0d9", r: "1.21", style: { "--delay": "-0.17s" } } }, "\n", { tag: "path", props: { d: "M150.7 33.7L131.4 17.9", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M150.7 33.7L175.4 27.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M150.7 33.7L131.9 46.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "150.7", cy: "33.7", fill: "#fff0d9", r: "0.66", style: { "--delay": "-4.06s" } } }, "\n", { tag: "path", props: { d: "M27.0 34.4L49.1 44.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M27.0 34.4L55.7 60.1", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "27.0", cy: "34.4", fill: "#fff0d9", r: "0.85", style: { "--delay": "-0.57s" } } }, "\n", { tag: "path", props: { d: "M49.1 44.6L68.5 65.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "49.1", cy: "44.6", fill: "#fff0d9", r: "1.34", style: { "--delay": "-1.82s" } } }, "\n", { tag: "path", props: { d: "M229.3 23.1L237.3 65.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M229.3 23.1L216.3 63.7", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M229.3 23.1L267.8 44.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "229.3", cy: "23.1", fill: "#fff0d9", r: "1.41", style: { "--delay": "-0.98s" } } }, "\n", { tag: "path", props: { d: "M144.0 146.7L138.2 100.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "144.0", cy: "146.7", fill: "#fff0d9", r: "0.90", style: { "--delay": "-1.79s" } } }, "\n", { tag: "path", props: { d: "M237.3 65.5L199.5 89.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M237.3 65.5L216.3 63.7", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M237.3 65.5L202.2 66.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M237.3 65.5L267.8 44.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M237.3 65.5L209.5 73.9", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M237.3 65.5L218.1 103.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M237.3 65.5L248.3 100.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M237.3 65.5L253.6 94.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "237.3", cy: "65.5", fill: "#fff0d9", r: "1.38", style: { "--delay": "-5.84s" } } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "-6.4", cy: "79.8", fill: "#fff0d9", r: "0.88", style: { "--delay": "-4.46s" } } }, "\n", { tag: "path", props: { d: "M199.5 89.8L216.3 63.7", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M199.5 89.8L202.2 66.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M199.5 89.8L218.1 103.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "199.5", cy: "89.8", fill: "#fff0d9", r: "1.07", style: { "--delay": "-2.04s" } } }, "\n", { tag: "path", props: { d: "M216.3 63.7L218.1 103.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "216.3", cy: "63.7", fill: "#fff0d9", r: "1.14", style: { "--delay": "-4.01s" } } }, "\n", { tag: "path", props: { d: "M138.2 100.5L137.4 138.8", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "138.2", cy: "100.5", fill: "#fff0d9", r: "0.66", style: { "--delay": "-3.54s" } } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "55.7", cy: "60.1", fill: "#fff0d9", r: "0.93", style: { "--delay": "-5.12s" } } }, "\n", { tag: "path", props: { d: "M202.2 66.6L218.1 103.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M202.2 66.6L175.4 27.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "202.2", cy: "66.6", fill: "#fff0d9", r: "0.60", style: { "--delay": "-5.55s" } } }, "\n", { tag: "path", props: { d: "M131.4 17.9L175.4 27.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M131.4 17.9L131.9 46.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "131.4", cy: "17.9", fill: "#fff0d9", r: "0.62", style: { "--delay": "-3.56s" } } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "267.8", cy: "44.3", fill: "#fff0d9", r: "1.21", style: { "--delay": "-0.25s" } } }, "\n", { tag: "path", props: { d: "M209.5 73.9L218.1 103.2", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M209.5 73.9L248.3 100.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "209.5", cy: "73.9", fill: "#fff0d9", r: "1.20", style: { "--delay": "-0.39s" } } }, "\n", { tag: "path", props: { d: "M218.1 103.2L248.3 100.6", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "path", props: { d: "M218.1 103.2L253.6 94.3", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "218.1", cy: "103.2", fill: "#fff0d9", r: "0.94", style: { "--delay": "-1.00s" } } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "137.4", cy: "138.8", fill: "#fff0d9", r: "1.23", style: { "--delay": "-4.01s" } } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "248.3", cy: "100.6", fill: "#fff0d9", r: "0.92", style: { "--delay": "-1.49s" } } }, "\n", { tag: "path", props: { d: "M175.4 27.2L131.9 46.5", opacity: ".12", stroke: "#ff3055", strokeWidth: ".5" } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "175.4", cy: "27.2", fill: "#fff0d9", r: "0.98", style: { "--delay": "-3.88s" } } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "15.2", cy: "126.3", fill: "#fff0d9", r: "1.17", style: { "--delay": "-3.71s" } } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "68.5", cy: "65.8", fill: "#fff0d9", r: "1.03", style: { "--delay": "-3.59s" } } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "131.9", cy: "46.5", fill: "#fff0d9", r: "1.15", style: { "--delay": "-0.67s" } } }, "\n", { tag: "circle", props: { className: "theme-spark", cx: "253.6", cy: "94.3", fill: "#fff0d9", r: "1.01", style: { "--delay": "-3.54s" } } }, "\n", { tag: "circle", props: { cx: "214.2", cy: "56.2", fill: "#ff3055", opacity: "0.58", r: "0.47" } }, "\n", { tag: "circle", props: { cx: "10.8", cy: "154.2", fill: "#ff3055", opacity: "0.63", r: "0.65" } }, "\n", { tag: "circle", props: { cx: "206.2", cy: "38.1", fill: "#ff3055", opacity: "0.65", r: "0.62" } }, "\n", { tag: "circle", props: { cx: "170.6", cy: "96.3", fill: "#ff3055", opacity: "0.66", r: "0.68" } }, "\n", { tag: "circle", props: { cx: "272.4", cy: "144.3", fill: "#ff3055", opacity: "0.14", r: "0.27" } }, "\n", { tag: "circle", props: { cx: "208.9", cy: "150.8", fill: "#ff3055", opacity: "0.22", r: "0.53" } }, "\n", { tag: "circle", props: { cx: "272.9", cy: "50.5", fill: "#ff3055", opacity: "0.27", r: "0.57" } }, "\n", { tag: "circle", props: { cx: "28.2", cy: "117.3", fill: "#ff3055", opacity: "0.55", r: "0.44" } }, "\n", { tag: "circle", props: { cx: "174.3", cy: "64.9", fill: "#ff3055", opacity: "0.27", r: "0.47" } }, "\n", { tag: "circle", props: { cx: "226.0", cy: "52.2", fill: "#ff3055", opacity: "0.68", r: "0.36" } }, "\n", { tag: "circle", props: { cx: "110.9", cy: "52.0", fill: "#ff3055", opacity: "0.51", r: "0.61" } }, "\n", { tag: "circle", props: { cx: "262.9", cy: "22.9", fill: "#ff3055", opacity: "0.37", r: "0.61" } }, "\n", { tag: "circle", props: { cx: "98.0", cy: "84.0", fill: "#ff3055", opacity: "0.61", r: "0.31" } }, "\n", { tag: "circle", props: { cx: "111.4", cy: "4.5", fill: "#ff3055", opacity: "0.23", r: "0.64" } }, "\n", { tag: "circle", props: { cx: "165.3", cy: "48.7", fill: "#ff3055", opacity: "0.15", r: "0.55" } }, "\n", { tag: "circle", props: { cx: "90.4", cy: "37.3", fill: "#ff3055", opacity: "0.42", r: "0.41" } }, "\n", { tag: "circle", props: { cx: "211.5", cy: "88.7", fill: "#ff3055", opacity: "0.42", r: "0.36" } }, "\n", { tag: "circle", props: { cx: "190.4", cy: "72.2", fill: "#ff3055", opacity: "0.40", r: "0.49" } }, "\n", { tag: "circle", props: { cx: "142.7", cy: "64.9", fill: "#ff3055", opacity: "0.74", r: "0.58" } }, "\n", { tag: "circle", props: { cx: "90.4", cy: "56.4", fill: "#ff3055", opacity: "0.35", r: "0.35" } }, "\n", { tag: "circle", props: { cx: "47.3", cy: "130.1", fill: "#ff3055", opacity: "0.23", r: "0.67" } }, "\n", { tag: "circle", props: { cx: "2.5", cy: "129.6", fill: "#ff3055", opacity: "0.41", r: "0.25" } }, "\n", { tag: "circle", props: { cx: "84.7", cy: "21.2", fill: "#ff3055", opacity: "0.73", r: "0.30" } }, "\n", { tag: "circle", props: { cx: "100.9", cy: "144.7", fill: "#ff3055", opacity: "0.65", r: "0.63" } }, "\n", { tag: "circle", props: { cx: "13.7", cy: "108.7", fill: "#ff3055", opacity: "0.75", r: "0.50" } }, "\n", { tag: "circle", props: { cx: "53.4", cy: "149.0", fill: "#ff3055", opacity: "0.21", r: "0.46" } }, "\n", { tag: "circle", props: { cx: "32.6", cy: "137.4", fill: "#ff3055", opacity: "0.61", r: "0.21" } }, "\n", { tag: "circle", props: { cx: "226.4", cy: "155.8", fill: "#ff3055", opacity: "0.51", r: "0.70" } }, "\n", { tag: "circle", props: { cx: "241.6", cy: "129.5", fill: "#ff3055", opacity: "0.61", r: "0.47" } }, "\n", { tag: "circle", props: { cx: "203.9", cy: "77.6", fill: "#ff3055", opacity: "0.27", r: "0.30" } }, "\n", { tag: "circle", props: { cx: "259.9", cy: "22.9", fill: "#ff3055", opacity: "0.18", r: "0.59" } }, "\n", { tag: "circle", props: { cx: "245.4", cy: "31.9", fill: "#ff3055", opacity: "0.65", r: "0.42" } }, "\n", { tag: "circle", props: { cx: "74.6", cy: "138.8", fill: "#ff3055", opacity: "0.55", r: "0.48" } }, "\n", { tag: "circle", props: { cx: "152.4", cy: "140.4", fill: "#ff3055", opacity: "0.46", r: "0.30" } }, "\n", { tag: "circle", props: { cx: "15.4", cy: "17.5", fill: "#ff3055", opacity: "0.42", r: "0.32" } }, "\n", { tag: "circle", props: { cx: "179.3", cy: "38.3", fill: "#ff3055", opacity: "0.29", r: "0.65" } }, "\n", { tag: "circle", props: { cx: "252.9", cy: "112.6", fill: "#ff3055", opacity: "0.25", r: "0.52" } }, "\n", { tag: "circle", props: { cx: "96.2", cy: "108.4", fill: "#ff3055", opacity: "0.27", r: "0.47" } }, "\n", { tag: "circle", props: { cx: "153.0", cy: "104.2", fill: "#ff3055", opacity: "0.32", r: "0.29" } }, "\n", { tag: "circle", props: { cx: "196.6", cy: "153.8", fill: "#ff3055", opacity: "0.42", r: "0.37" } }, "\n", { tag: "circle", props: { cx: "196.4", cy: "150.7", fill: "#ff3055", opacity: "0.65", r: "0.30" } }, "\n", { tag: "circle", props: { cx: "165.5", cy: "82.6", fill: "#ff3055", opacity: "0.53", r: "0.62" } }, "\n", { tag: "circle", props: { cx: "22.6", cy: "36.1", fill: "#ff3055", opacity: "0.46", r: "0.50" } }, "\n", { tag: "circle", props: { cx: "98.8", cy: "74.8", fill: "#ff3055", opacity: "0.27", r: "0.47" } }, "\n", { tag: "circle", props: { cx: "246.5", cy: "3.3", fill: "#ff3055", opacity: "0.71", r: "0.24" } }, "\n", { tag: "ellipse", props: { cx: "148", cy: "148", fill: "url(#mic-dark-floor)", rx: "97", ry: "20" } }, "\n", { tag: "ellipse", props: { cx: "153", cy: "150", fill: "#020508", opacity: ".35", rx: "47", ry: "3.2" } }, "\n", { tag: "g", props: { className: "microphone", transform: "translate(-10.8 7) scale(1.08 .92)" }, children: ["\n", { tag: "ellipse", props: { cx: "135", cy: "146.8", fill: "url(#mic-dark-metal)", rx: "28", ry: "4.2", stroke: "#fff0d9", strokeWidth: ".45" } }, "\n", { tag: "path", props: { d: "M130 132V145Q136 147 142 145V131", fill: "url(#mic-dark-metal)", stroke: "#b62642", strokeWidth: ".8" } }, "\n", { tag: "path", props: { d: "M103 78V108C103 132 115 142 137 142C157 142 172 128 172 106V79", fill: "none", stroke: "#ff3055", strokeWidth: "3" } }, "\n", { tag: "path", props: { d: "M103.5 81V108C103.5 130 116 141 137 141", fill: "none", stroke: "#fff0d9", strokeWidth: ".85" } }, "\n", { tag: "rect", props: { fill: "url(#mic-dark-metal)", height: "14", rx: "2", stroke: "#ff3055", strokeWidth: ".5", width: "5", x: "100", y: "76" } }, "\n", { tag: "rect", props: { fill: "url(#mic-dark-metal)", height: "12", rx: "3", width: "8", x: "166", y: "76" } }, "\n", { tag: "use", props: { fill: "none", filter: "url(#mic-dark-bloom)", href: "#mic-dark-body", opacity: ".54", stroke: "#ff3055", strokeWidth: "11" } }, "\n", { tag: "use", props: { fill: "url(#mic-dark-metal)", href: "#mic-dark-body", stroke: "#ff3055", strokeWidth: "1" } }, "\n", { tag: "use", props: { fill: "url(#mic-dark-glaze)", href: "#mic-dark-body" } }, "\n", { tag: "g", props: { clipPath: "url(#mic-dark-clip)" }, children: ["\n", { tag: "path", props: { d: "M113.00 25.91Q111.00 29.91 111.00 35.91", stroke: "#080607", strokeLinecap: "round", strokeWidth: "2.1" } }, { tag: "path", props: { d: "M114.40 25.91Q112.70 28.91 112.40 34.91", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M118.50 21.50Q116.50 25.50 116.50 31.50", stroke: "#080607", strokeLinecap: "round", strokeWidth: "2.1" } }, { tag: "path", props: { d: "M119.90 21.50Q118.20 24.50 117.90 30.50", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M124.00 18.13Q122.00 22.13 122.00 28.13", stroke: "#080607", strokeLinecap: "round", strokeWidth: "2.1" } }, { tag: "path", props: { d: "M125.40 18.13Q123.70 21.13 123.40 27.13", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M129.50 15.90Q127.50 19.90 127.50 25.90", stroke: "#080607", strokeLinecap: "round", strokeWidth: "2.1" } }, { tag: "path", props: { d: "M130.90 15.90Q129.20 18.90 128.90 24.90", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M135.00 15.00Q133.00 19.00 133.00 25.00", stroke: "#080607", strokeLinecap: "round", strokeWidth: "2.1" } }, { tag: "path", props: { d: "M136.40 15.00Q134.70 18.00 134.40 24.00", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M140.50 15.90Q138.50 19.90 138.50 25.90", stroke: "#080607", strokeLinecap: "round", strokeWidth: "2.1" } }, { tag: "path", props: { d: "M141.90 15.90Q140.20 18.90 139.90 24.90", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M146.00 18.13Q144.00 22.13 144.00 28.13", stroke: "#080607", strokeLinecap: "round", strokeWidth: "2.1" } }, { tag: "path", props: { d: "M147.40 18.13Q145.70 21.13 145.40 27.13", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M151.50 21.50Q149.50 25.50 149.50 31.50", stroke: "#080607", strokeLinecap: "round", strokeWidth: "2.1" } }, { tag: "path", props: { d: "M152.90 21.50Q151.20 24.50 150.90 30.50", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M157.00 25.91Q155.00 29.91 155.00 35.91", stroke: "#080607", strokeLinecap: "round", strokeWidth: "2.1" } }, { tag: "path", props: { d: "M158.40 25.91Q156.70 28.91 156.40 34.91", opacity: ".78", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M112.4 39.0Q124 34.0 135 34.0L135 37.5Q123 37.3 112.4 42.0Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M112.4 42.4Q123 37.5 135 37.8", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 34.0Q154 34.4 162.6 37.6L162.6 41.1Q154 38.0 143 37.4Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 38.1Q154 38.6 162.6 41.7", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M111.2 45.4Q124 40.4 135 40.4L135 43.9Q123 43.7 111.2 48.4Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M111.2 48.8Q123 43.9 135 44.2", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 40.4Q154 40.8 163.8 44.0L163.8 47.5Q154 44.4 143 43.8Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 44.5Q154 45.0 163.8 48.1", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M110.0 51.8Q124 46.8 135 46.8L135 50.3Q123 50.1 110.0 54.8Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M110.0 55.2Q123 50.3 135 50.6", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 46.8Q154 47.2 165.0 50.4L165.0 53.9Q154 50.8 143 50.2Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 50.9Q154 51.4 165.0 54.5", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M110.0 58.2Q124 53.2 135 53.2L135 56.7Q123 56.5 110.0 61.2Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M110.0 61.6Q123 56.7 135 57.0", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 53.2Q154 53.6 165.0 56.8L165.0 60.3Q154 57.2 143 56.6Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 57.3Q154 57.8 165.0 60.9", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M110.0 64.6Q124 59.6 135 59.6L135 63.1Q123 62.9 110.0 67.6Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M110.0 68.0Q123 63.1 135 63.4", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 59.6Q154 60.0 165.0 63.2L165.0 66.7Q154 63.6 143 63.0Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 63.7Q154 64.2 165.0 67.3", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M110.0 71.0Q124 66.0 135 66.0L135 69.5Q123 69.3 110.0 74.0Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M110.0 74.4Q123 69.5 135 69.8", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 66.0Q154 66.4 165.0 69.6L165.0 73.1Q154 70.0 143 69.4Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 70.1Q154 70.6 165.0 73.7", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M110.0 77.4Q124 72.4 135 72.4L135 75.9Q123 75.7 110.0 80.4Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M110.0 80.8Q123 75.9 135 76.2", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 72.4Q154 72.8 165.0 76.0L165.0 79.5Q154 76.4 143 75.8Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 76.5Q154 77.0 165.0 80.1", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M110.0 83.8Q124 78.8 135 78.8L135 82.3Q123 82.1 110.0 86.8Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M110.0 87.2Q123 82.3 135 82.6", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 78.8Q154 79.2 165.0 82.4L165.0 85.9Q154 82.8 143 82.2Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 82.9Q154 83.4 165.0 86.5", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M110.0 90.2Q124 85.2 135 85.2L135 88.7Q123 88.5 110.0 93.2Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M110.0 93.6Q123 88.7 135 89.0", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 85.2Q154 85.6 165.0 88.8L165.0 92.3Q154 89.2 143 88.6Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 89.3Q154 89.8 165.0 92.9", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M110.0 96.6Q124 91.6 135 91.6L135 95.1Q123 94.9 110.0 99.6Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M110.0 100.0Q123 95.1 135 95.4", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 91.6Q154 92.0 165.0 95.2L165.0 98.7Q154 95.6 143 95.0Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 95.7Q154 96.2 165.0 99.3", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M110.0 103.0Q124 98.0 135 98.0L135 101.5Q123 101.3 110.0 106.0Z", fill: "#070608", stroke: "#170309", strokeWidth: ".35" } }, "\n", { tag: "path", props: { d: "M110.0 106.4Q123 101.5 135 101.8", fill: "none", stroke: "url(#mic-dark-rib)", strokeWidth: "1.55" } }, "\n", { tag: "path", props: { d: "M143 98.0Q154 98.4 165.0 101.6L165.0 105.1Q154 102.0 143 101.4Z", fill: "#020405" } }, "\n", { tag: "path", props: { d: "M143 102.1Q154 102.6 165.0 105.7", fill: "none", opacity: ".69", stroke: "url(#mic-dark-rib)", strokeWidth: "1" } }, "\n", { tag: "path", props: { d: "M113.0 114Q113.0 123 110.6 119.6", stroke: "#050508", strokeLinecap: "round", strokeWidth: "2.6" } }, { tag: "path", props: { d: "M114.9 114Q114.9 123 112.5 119.6", opacity: ".6", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M118.4 114Q118.4 123 116.6 123.2", stroke: "#050508", strokeLinecap: "round", strokeWidth: "2.6" } }, { tag: "path", props: { d: "M120.3 114Q120.3 123 118.5 123.2", opacity: ".6", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M123.8 114Q123.8 123 122.6 126.3", stroke: "#050508", strokeLinecap: "round", strokeWidth: "2.6" } }, { tag: "path", props: { d: "M125.7 114Q125.7 123 124.5 126.3", opacity: ".6", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M129.2 114Q129.2 123 128.6 128.7", stroke: "#050508", strokeLinecap: "round", strokeWidth: "2.6" } }, { tag: "path", props: { d: "M131.1 114Q131.1 123 130.5 128.7", opacity: ".6", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M134.6 114Q134.6 123 134.6 130.0", stroke: "#050508", strokeLinecap: "round", strokeWidth: "2.6" } }, { tag: "path", props: { d: "M136.5 114Q136.5 123 136.5 130.0", opacity: ".6", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M140.0 114Q140.0 123 140.6 128.7", stroke: "#050508", strokeLinecap: "round", strokeWidth: "2.6" } }, { tag: "path", props: { d: "M141.9 114Q141.9 123 142.5 128.7", opacity: ".6", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M145.4 114Q145.4 123 146.6 126.3", stroke: "#050508", strokeLinecap: "round", strokeWidth: "2.6" } }, { tag: "path", props: { d: "M147.3 114Q147.3 123 148.5 126.3", opacity: ".6", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M150.8 114Q150.8 123 152.6 123.2", stroke: "#050508", strokeLinecap: "round", strokeWidth: "2.6" } }, { tag: "path", props: { d: "M152.7 114Q152.7 123 154.5 123.2", opacity: ".6", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M156.2 114Q156.2 123 158.6 119.6", stroke: "#050508", strokeLinecap: "round", strokeWidth: "2.6" } }, { tag: "path", props: { d: "M158.1 114Q158.1 123 160.5 119.6", opacity: ".6", stroke: "#fff0d9", strokeWidth: ".7" } }, "\n", { tag: "path", props: { d: "M138.6 29V110", opacity: ".65", stroke: "#fff0d9", strokeWidth: "1.5" } }, "\n", { tag: "path", props: { d: "M108.8 51V105M164.8 50V105", opacity: ".7", stroke: "#fff0d9", strokeWidth: ".8" } }, "\n"] }, "\n", { tag: "path", props: { d: "M109 45C109 23 120 18 134 17.5", fill: "none", stroke: "#fff0d9", strokeWidth: "1.3" } }, "\n", { tag: "ellipse", props: { className: "theme-spark", cx: "119", cy: "22", fill: "#fff0d9", filter: "url(#mic-dark-bloom)", opacity: ".45", rx: "7.5", ry: "4.5" } }, "\n"] }, "\n", { tag: "g", props: { className: "music-note", fill: "none", strokeLinecap: "round", strokeLinejoin: "round" }, children: ["\n", { tag: "g", props: { filter: "url(#mic-dark-bloom)", opacity: ".9", stroke: "#ff3055", strokeWidth: "8" }, children: [{ tag: "use", props: { href: "#mic-dark-note" } }, { tag: "ellipse", props: { cx: "162", cy: "132", rx: "11", ry: "7.5", transform: "rotate(-32 162 132)" } }, { tag: "ellipse", props: { cx: "197", cy: "126", rx: "10.7", ry: "7.1", transform: "rotate(-32 197 126)" } }] }, "\n", { tag: "g", props: { stroke: "#ff3055", strokeWidth: "3.4" }, children: [{ tag: "use", props: { href: "#mic-dark-note" } }, { tag: "ellipse", props: { cx: "162", cy: "132", fill: "#170309", rx: "11", ry: "7.5", transform: "rotate(-32 162 132)" } }, { tag: "ellipse", props: { cx: "197", cy: "126", fill: "#170309", rx: "10.7", ry: "7.1", transform: "rotate(-32 197 126)" } }] }, "\n", { tag: "g", props: { stroke: "#fff0d9", strokeWidth: "1.35" }, children: [{ tag: "use", props: { href: "#mic-dark-note" } }, { tag: "ellipse", props: { cx: "162", cy: "132", rx: "11", ry: "7.5", transform: "rotate(-32 162 132)" } }, { tag: "ellipse", props: { cx: "197", cy: "126", rx: "10.7", ry: "7.1", transform: "rotate(-32 197 126)" } }] }, "\n"] }, "\n", { tag: "g", props: { opacity: ".12", transform: "translate(0 300) scale(1 -1)" }, children: [{ tag: "use", props: { fill: "none", href: "#mic-dark-note", stroke: "#ff3055", strokeWidth: "3" } }] }, "\n", { tag: "path", props: { className: "floor-glint", d: "M97 148Q137 156 182 149", fill: "none", pathLength: "100", stroke: "#fff0d9", strokeDasharray: "9 91", strokeWidth: "1" } }, "\n"] } };
|
|
62
|
+
|
|
63
|
+
// src/components/layout/shared.tsx
|
|
64
|
+
var icons = icons_default;
|
|
65
|
+
var illustrations = illustrations_default;
|
|
66
|
+
|
|
67
|
+
// src/components/layout/Icon/Icon.tsx
|
|
68
|
+
import { jsx } from "react/jsx-runtime";
|
|
69
|
+
var iconSizes = { xs: "1rem", sm: "1.25rem", md: "1.5rem", lg: "2rem" };
|
|
70
|
+
var Icon = ({
|
|
71
|
+
name = "music",
|
|
72
|
+
size,
|
|
73
|
+
surface = "none",
|
|
74
|
+
className,
|
|
75
|
+
style,
|
|
76
|
+
label,
|
|
77
|
+
...p
|
|
78
|
+
}) => /* @__PURE__ */ jsx(
|
|
79
|
+
"span",
|
|
80
|
+
{
|
|
81
|
+
...mark("Icon", { ...p, className, style }),
|
|
82
|
+
"data-ad-surface": surface,
|
|
83
|
+
style: {
|
|
84
|
+
"--ad-icon-size": typeof size === "number" ? `${size / 16}rem` : size && Object.hasOwn(iconSizes, size) ? iconSizes[size] : size || void 0,
|
|
85
|
+
...style
|
|
86
|
+
},
|
|
87
|
+
children: /* @__PURE__ */ jsx(
|
|
88
|
+
SvgAsset,
|
|
89
|
+
{
|
|
90
|
+
node: Object.hasOwn(icons, name) ? icons[name] : icons.info,
|
|
91
|
+
component: "IconAsset",
|
|
92
|
+
label
|
|
93
|
+
}
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
// src/components/layout/Avatar/HostSeal.tsx
|
|
99
|
+
import { createElement as createElement2, useMemo as useMemo2, useRef } from "react";
|
|
100
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
101
|
+
var facePhoto = (src) => ({
|
|
102
|
+
tag: "image",
|
|
103
|
+
props: {
|
|
104
|
+
className: "host-emblem__photo",
|
|
105
|
+
x: "20.65",
|
|
106
|
+
y: "19.15",
|
|
107
|
+
width: "88.7",
|
|
108
|
+
height: "88.7",
|
|
109
|
+
preserveAspectRatio: "xMidYMid slice",
|
|
110
|
+
clipPath: "url(#hostv2-face-clip)",
|
|
111
|
+
href: src
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
var withPerson = (seal, photo, name) => {
|
|
115
|
+
const person = name?.trim();
|
|
116
|
+
if (!photo && !person || !seal.children) return seal;
|
|
117
|
+
return {
|
|
118
|
+
...seal,
|
|
119
|
+
children: seal.children.map((child) => {
|
|
120
|
+
if (typeof child === "string") return child;
|
|
121
|
+
if (child.props?.className === "host-emblem__crown") {
|
|
122
|
+
if (photo) return facePhoto(photo);
|
|
123
|
+
const initial = Array.from(person ?? "")[0];
|
|
124
|
+
const text = { x: "65", y: "74", textAnchor: "middle", fontFamily: "Arial, Helvetica, sans-serif", fontSize: "48", fontWeight: "700" };
|
|
125
|
+
return {
|
|
126
|
+
tag: "g",
|
|
127
|
+
props: { className: "host-emblem__initial" },
|
|
128
|
+
children: [
|
|
129
|
+
{ tag: "text", props: { ...text, fill: "#ff7b12", filter: "url(#hostv2-gold-bloom)", opacity: ".7" }, children: [initial] },
|
|
130
|
+
{ tag: "text", props: { ...text, fill: "#ffe69b" }, children: [initial] }
|
|
131
|
+
]
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
if (person && child.props?.className === "host-emblem__label")
|
|
135
|
+
return {
|
|
136
|
+
...child,
|
|
137
|
+
children: child.children?.map((label) => typeof label === "string" || label.tag !== "text" ? label : {
|
|
138
|
+
...label,
|
|
139
|
+
props: { ...label.props, fontSize: Math.min(11.5, 75 / Array.from(person).length) },
|
|
140
|
+
children: [person]
|
|
141
|
+
})
|
|
142
|
+
};
|
|
143
|
+
return child;
|
|
144
|
+
})
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
var isOrbit = (node) => node.props?.["data-host-orbit"] !== void 0;
|
|
148
|
+
var spinOf = (node) => /host-motion__inner-(rear|front)/.test(String(node.props?.className ?? "")) ? 1 / 5.6 : -1 / 8.4;
|
|
149
|
+
var still = (node) => {
|
|
150
|
+
const { "data-host-orbit": _orbit, ...props } = node.props ?? {};
|
|
151
|
+
return { ...node, props };
|
|
152
|
+
};
|
|
153
|
+
var toLayers = (seal) => {
|
|
154
|
+
const layers2 = [];
|
|
155
|
+
const paint = (node) => {
|
|
156
|
+
const top = layers2[layers2.length - 1];
|
|
157
|
+
if (top && top.spin === void 0) top.nodes.push(node);
|
|
158
|
+
else layers2.push({ nodes: [node] });
|
|
159
|
+
};
|
|
160
|
+
for (const child of seal.children ?? []) {
|
|
161
|
+
if (typeof child === "string") continue;
|
|
162
|
+
if (isOrbit(child)) {
|
|
163
|
+
layers2.push({ nodes: [still(child)], spin: spinOf(child) });
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
const orbits = child.children?.filter((c) => typeof c !== "string" && isOrbit(c));
|
|
167
|
+
if (child.tag === "g" && orbits?.length) {
|
|
168
|
+
for (const orbit of orbits)
|
|
169
|
+
layers2.push({ nodes: [{ ...child, children: [still(orbit)] }], spin: spinOf(orbit) });
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
paint(child);
|
|
173
|
+
}
|
|
174
|
+
return layers2;
|
|
175
|
+
};
|
|
176
|
+
function HostSeal({ photo, name }) {
|
|
177
|
+
const ref = useRef(null);
|
|
178
|
+
const prefix = `svg-${useSvgId()}-`;
|
|
179
|
+
usePauseOffscreen(ref);
|
|
180
|
+
const layers2 = useMemo2(() => {
|
|
181
|
+
const seal = withPerson(illustrations.host, photo, name);
|
|
182
|
+
const root = vectorElement({ tag: "svg", props: seal.props }, prefix).props;
|
|
183
|
+
return toLayers(seal).map(
|
|
184
|
+
(layer, i) => createElement2(
|
|
185
|
+
"svg",
|
|
186
|
+
{
|
|
187
|
+
...root,
|
|
188
|
+
key: i,
|
|
189
|
+
"data-host-spin": layer.spin,
|
|
190
|
+
style: layer.spin === void 0 ? void 0 : {
|
|
191
|
+
animationDuration: `${1 / Math.abs(layer.spin)}s`,
|
|
192
|
+
animationDirection: layer.spin < 0 ? "reverse" : "normal"
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
layer.nodes.map((node, k) => vectorElement(node, prefix, k))
|
|
196
|
+
)
|
|
197
|
+
);
|
|
198
|
+
}, [photo, name, prefix]);
|
|
199
|
+
return /* @__PURE__ */ jsx2("span", { ref, className: "ad-host-seal", "aria-hidden": "true", children: layers2 });
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// src/components/layout/Avatar/Avatar.tsx
|
|
203
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
204
|
+
var initialOf = (name) => (name ?? "\u0414\u043C\u0438\u0442\u0440\u0438\u0439").trim().slice(0, 1).toUpperCase();
|
|
205
|
+
var Avatar = ({ variant = "initials", src, badge, presence, ...p }) => {
|
|
206
|
+
const tr = useTr();
|
|
207
|
+
return /* @__PURE__ */ jsxs(
|
|
208
|
+
"div",
|
|
209
|
+
{
|
|
210
|
+
...mark("Avatar", p, "tile"),
|
|
211
|
+
"data-variant": variant,
|
|
212
|
+
"data-photo": src ? "" : void 0,
|
|
213
|
+
role: "img",
|
|
214
|
+
"aria-label": p.name ?? tr("\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C"),
|
|
215
|
+
children: [
|
|
216
|
+
variant === "host" && /* @__PURE__ */ jsx3(HostSeal, { photo: src, name: p.name }),
|
|
217
|
+
variant !== "host" && (src ? /* @__PURE__ */ jsx3("img", { className: "ad-avatar-photo", src, alt: "", draggable: false }) : initialOf(p.name)),
|
|
218
|
+
badge && variant !== "host" && /* @__PURE__ */ jsx3("span", { className: "ad-avatar-badge", children: badge }),
|
|
219
|
+
presence && /* @__PURE__ */ jsx3("span", { className: "ad-avatar-presence", "data-presence": presence })
|
|
220
|
+
]
|
|
221
|
+
}
|
|
222
|
+
);
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
// src/components/feedback/Popover/Popover.tsx
|
|
226
|
+
import { useLayoutEffect, useRef as useRef2 } from "react";
|
|
227
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
228
|
+
var layers = [];
|
|
229
|
+
var Popover = (p) => {
|
|
230
|
+
const ref = useRef2(null);
|
|
231
|
+
const latest = useRef2(p);
|
|
232
|
+
latest.current = p;
|
|
233
|
+
const reposition = useRef2(void 0);
|
|
234
|
+
useLayoutEffect(() => {
|
|
235
|
+
reposition.current?.();
|
|
236
|
+
}, [p.align, p.matchAnchorWidth]);
|
|
237
|
+
useLayoutEffect(() => {
|
|
238
|
+
const node = ref.current;
|
|
239
|
+
if (!node || !p.open) return;
|
|
240
|
+
const position = () => {
|
|
241
|
+
const { align, matchAnchorWidth } = latest.current;
|
|
242
|
+
const target = p.anchorRef?.current?.getBoundingClientRect();
|
|
243
|
+
const gap = 8;
|
|
244
|
+
const viewport = window.visualViewport;
|
|
245
|
+
const width = viewport?.width ?? innerWidth, height = viewport?.height ?? innerHeight;
|
|
246
|
+
const x = viewport?.offsetLeft ?? 0, y = viewport?.offsetTop ?? 0;
|
|
247
|
+
node.style.setProperty("--ad-popover-available-width", cssRem(width - gap * 2));
|
|
248
|
+
node.style.setProperty("--ad-popover-available-height", cssRem(height - gap * 2));
|
|
249
|
+
node.style.minWidth = target && matchAnchorWidth ? cssRem(Math.min(target.width, width - gap * 2)) : "";
|
|
250
|
+
const measured = node.getBoundingClientRect();
|
|
251
|
+
const r = { width: node.offsetWidth || measured.width, height: node.offsetHeight || measured.height };
|
|
252
|
+
node.style.overflowY = node.scrollHeight > node.clientHeight ? "auto" : "";
|
|
253
|
+
const desired = target ? align === "start" ? target.left : target.right - r.width : x + width / 2 - r.width / 2;
|
|
254
|
+
const left = Math.max(x + gap, Math.min(x + width - r.width - gap, desired));
|
|
255
|
+
const roomBelow = target ? y + height - target.bottom : height / 2;
|
|
256
|
+
const roomAbove = target ? target.top - y : height / 2;
|
|
257
|
+
const placeAbove = !!target && roomBelow < r.height + gap + 8 && roomAbove > roomBelow;
|
|
258
|
+
const rawTop = target ? placeAbove ? target.top - r.height - gap : target.bottom + gap : y + height / 2 - r.height / 2;
|
|
259
|
+
const top = Math.max(y + gap, Math.min(y + height - r.height - gap, rawTop));
|
|
260
|
+
node.style.left = cssRem(left);
|
|
261
|
+
node.style.top = cssRem(top);
|
|
262
|
+
node.dataset.adSide = placeAbove ? "above" : "below";
|
|
263
|
+
if (target) {
|
|
264
|
+
const anchorX = Math.max(
|
|
265
|
+
24,
|
|
266
|
+
Math.min(r.width - 24, target.left + target.width / 2 - left)
|
|
267
|
+
);
|
|
268
|
+
node.style.setProperty("--ad-popover-anchor-x", cssRem(anchorX));
|
|
269
|
+
} else {
|
|
270
|
+
node.style.removeProperty("--ad-popover-anchor-x");
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
const supports = typeof node.showPopover === "function";
|
|
274
|
+
if (supports) node.showPopover();
|
|
275
|
+
const childIndex = layers.findIndex((layer) => node.contains(layer));
|
|
276
|
+
layers.splice(childIndex < 0 ? layers.length : childIndex, 0, node);
|
|
277
|
+
position();
|
|
278
|
+
reposition.current = position;
|
|
279
|
+
let frame = 0;
|
|
280
|
+
const schedulePosition = () => {
|
|
281
|
+
if (frame) return;
|
|
282
|
+
frame = requestAnimationFrame(() => {
|
|
283
|
+
frame = 0;
|
|
284
|
+
position();
|
|
285
|
+
});
|
|
286
|
+
};
|
|
287
|
+
if (p.autoFocus !== false)
|
|
288
|
+
(node.querySelector(
|
|
289
|
+
'[aria-selected="true"]:not(:disabled)'
|
|
290
|
+
) ?? node.querySelector(
|
|
291
|
+
'button:not(:disabled),input,[tabindex="0"]'
|
|
292
|
+
))?.focus();
|
|
293
|
+
const dismiss = (e) => {
|
|
294
|
+
if (layers.at(-1) !== node || e.defaultPrevented) return;
|
|
295
|
+
const path = e.composedPath();
|
|
296
|
+
if (!path.includes(node) && !path.includes(p.anchorRef?.current))
|
|
297
|
+
latest.current.onOpenChange?.(false);
|
|
298
|
+
};
|
|
299
|
+
const key = (e) => {
|
|
300
|
+
if (e.key === "Escape" && !e.defaultPrevented && layers.at(-1) === node) {
|
|
301
|
+
e.preventDefault();
|
|
302
|
+
latest.current.onOpenChange?.(false);
|
|
303
|
+
p.anchorRef?.current?.focus();
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
const observer = createResizeObserver(schedulePosition);
|
|
307
|
+
observer.observe(node);
|
|
308
|
+
if (p.anchorRef?.current) observer.observe(p.anchorRef.current);
|
|
309
|
+
document.addEventListener("pointerdown", dismiss);
|
|
310
|
+
document.addEventListener("keydown", key);
|
|
311
|
+
window.addEventListener("resize", schedulePosition);
|
|
312
|
+
window.addEventListener("scroll", schedulePosition, true);
|
|
313
|
+
window.visualViewport?.addEventListener("resize", schedulePosition);
|
|
314
|
+
window.visualViewport?.addEventListener("scroll", schedulePosition);
|
|
315
|
+
return () => {
|
|
316
|
+
layers.splice(layers.indexOf(node), 1);
|
|
317
|
+
reposition.current = void 0;
|
|
318
|
+
observer.disconnect();
|
|
319
|
+
if (frame) cancelAnimationFrame(frame);
|
|
320
|
+
document.removeEventListener("pointerdown", dismiss);
|
|
321
|
+
document.removeEventListener("keydown", key);
|
|
322
|
+
window.removeEventListener("resize", schedulePosition);
|
|
323
|
+
window.removeEventListener("scroll", schedulePosition, true);
|
|
324
|
+
window.visualViewport?.removeEventListener("resize", schedulePosition);
|
|
325
|
+
window.visualViewport?.removeEventListener("scroll", schedulePosition);
|
|
326
|
+
if (document.activeElement && node.contains(document.activeElement) && p.anchorRef?.current?.isConnected)
|
|
327
|
+
p.anchorRef.current.focus();
|
|
328
|
+
if (supports && node.matches(":popover-open")) node.hidePopover();
|
|
329
|
+
};
|
|
330
|
+
}, [p.open, p.anchorRef]);
|
|
331
|
+
if (!p.open) return null;
|
|
332
|
+
return /* @__PURE__ */ jsx4(
|
|
333
|
+
"div",
|
|
334
|
+
{
|
|
335
|
+
...mark("Popover", p, "dialog"),
|
|
336
|
+
ref,
|
|
337
|
+
role: p.role ?? "dialog",
|
|
338
|
+
"aria-label": p.label,
|
|
339
|
+
popover: "manual",
|
|
340
|
+
onKeyDown: p.onKeyDown,
|
|
341
|
+
style: { margin: 0, position: "fixed", ...p.style },
|
|
342
|
+
children: p.children
|
|
343
|
+
}
|
|
344
|
+
);
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
// src/components/controls/InputBase/InputBase.tsx
|
|
348
|
+
import { forwardRef } from "react";
|
|
349
|
+
import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
350
|
+
var InputBase = /* @__PURE__ */ forwardRef(function InputBase2({
|
|
351
|
+
startAdornment,
|
|
352
|
+
endAdornment,
|
|
353
|
+
disabled,
|
|
354
|
+
readOnly,
|
|
355
|
+
error,
|
|
356
|
+
multiline,
|
|
357
|
+
variant = "outlined",
|
|
358
|
+
label,
|
|
359
|
+
labelId,
|
|
360
|
+
filled,
|
|
361
|
+
onClick,
|
|
362
|
+
children,
|
|
363
|
+
...p
|
|
364
|
+
}, ref) {
|
|
365
|
+
return /* @__PURE__ */ jsxs2(
|
|
366
|
+
"div",
|
|
367
|
+
{
|
|
368
|
+
...mark("InputBase", p, "input"),
|
|
369
|
+
ref,
|
|
370
|
+
"data-disabled": disabled || void 0,
|
|
371
|
+
"data-readonly": readOnly || void 0,
|
|
372
|
+
"data-invalid": error || void 0,
|
|
373
|
+
"data-multiline": multiline || void 0,
|
|
374
|
+
"data-ad-variant": variant,
|
|
375
|
+
"data-floating": label ? "" : void 0,
|
|
376
|
+
"data-filled": filled || void 0,
|
|
377
|
+
onClick,
|
|
378
|
+
children: [
|
|
379
|
+
startAdornment && /* @__PURE__ */ jsx5("span", { className: "ad-input-adornment", "data-position": "start", children: startAdornment }),
|
|
380
|
+
/* @__PURE__ */ jsxs2("span", { className: "ad-input-base-content", children: [
|
|
381
|
+
label && /* @__PURE__ */ jsx5("span", { className: "ad-input-label", id: labelId, children: label }),
|
|
382
|
+
children
|
|
383
|
+
] }),
|
|
384
|
+
endAdornment && /* @__PURE__ */ jsx5("span", { className: "ad-input-adornment", "data-position": "end", children: endAdornment })
|
|
385
|
+
]
|
|
386
|
+
}
|
|
387
|
+
);
|
|
388
|
+
});
|
|
389
|
+
|
|
390
|
+
// src/components/controls/ColorPicker/color.ts
|
|
391
|
+
var normalizeHex = (value) => {
|
|
392
|
+
const raw = value.trim().replace(/^#/, "");
|
|
393
|
+
if (/^[0-9a-f]{3}$/i.test(raw)) return `#${raw.split("").map((c) => c + c).join("")}`.toLowerCase();
|
|
394
|
+
if (/^[0-9a-f]{6}$/i.test(raw)) return `#${raw}`.toLowerCase();
|
|
395
|
+
return null;
|
|
396
|
+
};
|
|
397
|
+
var hexToHsv = (hex) => {
|
|
398
|
+
const value = normalizeHex(hex) ?? "#ff244c";
|
|
399
|
+
const [r, g, b] = [1, 3, 5].map((i) => parseInt(value.slice(i, i + 2), 16) / 255);
|
|
400
|
+
const max = Math.max(r, g, b);
|
|
401
|
+
const delta = max - Math.min(r, g, b);
|
|
402
|
+
const h = !delta ? 0 : max === r ? (g - b) / delta % 6 : max === g ? (b - r) / delta + 2 : (r - g) / delta + 4;
|
|
403
|
+
return { h: (h * 60 + 360) % 360, s: max ? delta / max : 0, v: max };
|
|
404
|
+
};
|
|
405
|
+
var hsvToHex = ({ h, s, v }) => {
|
|
406
|
+
const f = (n) => {
|
|
407
|
+
const k = (n + h / 60) % 6;
|
|
408
|
+
return v - v * s * Math.max(0, Math.min(k, 4 - k, 1));
|
|
409
|
+
};
|
|
410
|
+
return `#${[f(5), f(3), f(1)].map((x) => Math.round(x * 255).toString(16).padStart(2, "0")).join("")}`;
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
// src/components/controls/ColorPicker/ColorPicker.tsx
|
|
414
|
+
import { useEffect, useRef as useRef3, useState } from "react";
|
|
415
|
+
|
|
416
|
+
// src/components/controls/internal.tsx
|
|
417
|
+
import { Fragment, useId as useId2, useLayoutEffect as useLayoutEffect2 } from "react";
|
|
418
|
+
import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
419
|
+
var variantMaterial = {
|
|
420
|
+
primary: "ruby",
|
|
421
|
+
secondary: "glass",
|
|
422
|
+
danger: "danger",
|
|
423
|
+
ghost: "ghost"
|
|
424
|
+
};
|
|
425
|
+
var toOption = (option) => typeof option === "string" ? { value: option, label: option } : option;
|
|
426
|
+
var fieldLabel = (label, required) => /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
427
|
+
label,
|
|
428
|
+
required && /* @__PURE__ */ jsx6("span", { className: "ad-field-required", "aria-hidden": "true", children: "*" })
|
|
429
|
+
] });
|
|
430
|
+
var useFieldIds = (label, message, controlId, aria = {}) => {
|
|
431
|
+
const id = useId2();
|
|
432
|
+
const ids = { label: `${id}label`, message: `${id}message`, control: controlId ?? `${id}control`, value: `${id}value` };
|
|
433
|
+
const labelledBy = aria["aria-labelledby"] ?? (!aria["aria-label"] && label ? ids.label : void 0);
|
|
434
|
+
const valueLabel = labelledBy ?? (aria["aria-label"] ? ids.control : void 0);
|
|
435
|
+
return {
|
|
436
|
+
...ids,
|
|
437
|
+
// Button fields expose their visible selection through the name, unlike native input values.
|
|
438
|
+
valueLabelledBy: valueLabel ? `${valueLabel} ${ids.value}` : void 0,
|
|
439
|
+
aria: {
|
|
440
|
+
"aria-label": aria["aria-label"],
|
|
441
|
+
"aria-labelledby": labelledBy,
|
|
442
|
+
"aria-describedby": aria["aria-describedby"] ?? (message ? ids.message : void 0)
|
|
443
|
+
}
|
|
444
|
+
};
|
|
445
|
+
};
|
|
446
|
+
function useActiveOption(listId, active, open) {
|
|
447
|
+
useLayoutEffect2(() => {
|
|
448
|
+
if (!open || typeof document === "undefined") return;
|
|
449
|
+
const option = document.getElementById(`${listId}-option-${active}`);
|
|
450
|
+
const list = option?.closest(".ad-option-list");
|
|
451
|
+
if (!option || !list) return;
|
|
452
|
+
const row = option.getBoundingClientRect(), viewport = list.getBoundingClientRect();
|
|
453
|
+
if (row.top < viewport.top) list.scrollTop -= viewport.top - row.top;
|
|
454
|
+
else if (row.bottom > viewport.bottom) list.scrollTop += row.bottom - viewport.bottom;
|
|
455
|
+
}, [listId, active, open]);
|
|
456
|
+
}
|
|
457
|
+
function FieldFrame({
|
|
458
|
+
className,
|
|
459
|
+
style,
|
|
460
|
+
label,
|
|
461
|
+
required,
|
|
462
|
+
description,
|
|
463
|
+
error,
|
|
464
|
+
ids,
|
|
465
|
+
children
|
|
466
|
+
}) {
|
|
467
|
+
return /* @__PURE__ */ jsxs3("label", { className: `ad-field ${className}`, style, htmlFor: ids.control, children: [
|
|
468
|
+
label && /* @__PURE__ */ jsx6("span", { className: "ad-field-label", id: ids.label, children: fieldLabel(label, required) }),
|
|
469
|
+
children,
|
|
470
|
+
(description || error) && /* @__PURE__ */ jsxs3("small", { id: ids.message, className: "ad-field-message", "data-error": !!error || void 0, children: [
|
|
471
|
+
error && /* @__PURE__ */ jsx6(Icon, { name: "warning" }),
|
|
472
|
+
error || description
|
|
473
|
+
] })
|
|
474
|
+
] });
|
|
475
|
+
}
|
|
476
|
+
function OptionList({
|
|
477
|
+
id,
|
|
478
|
+
options,
|
|
479
|
+
selected,
|
|
480
|
+
active,
|
|
481
|
+
onChoose,
|
|
482
|
+
onHover
|
|
483
|
+
}) {
|
|
484
|
+
return /* @__PURE__ */ jsx6(
|
|
485
|
+
"div",
|
|
486
|
+
{
|
|
487
|
+
className: "ad-option-list",
|
|
488
|
+
onKeyDown: (e) => {
|
|
489
|
+
const keys = ["ArrowDown", "ArrowUp", "Home", "End"];
|
|
490
|
+
if (!keys.includes(e.key)) return;
|
|
491
|
+
e.preventDefault();
|
|
492
|
+
const items = [
|
|
493
|
+
...e.currentTarget.querySelectorAll(
|
|
494
|
+
"button:not(:disabled)"
|
|
495
|
+
)
|
|
496
|
+
];
|
|
497
|
+
const at = items.indexOf(document.activeElement);
|
|
498
|
+
const next = e.key === "Home" ? 0 : e.key === "End" ? items.length - 1 : (at + (e.key === "ArrowDown" ? 1 : -1) + items.length) % items.length;
|
|
499
|
+
items[next]?.focus();
|
|
500
|
+
},
|
|
501
|
+
children: options.map((option, index) => /* @__PURE__ */ jsxs3(Fragment, { children: [
|
|
502
|
+
option.group && option.group !== options[index - 1]?.group && /* @__PURE__ */ jsx6("div", { className: "ad-option-group", role: "presentation", children: option.group }),
|
|
503
|
+
/* @__PURE__ */ jsxs3(
|
|
504
|
+
"button",
|
|
505
|
+
{
|
|
506
|
+
id: id ? `${id}-option-${index}` : void 0,
|
|
507
|
+
type: "button",
|
|
508
|
+
role: "option",
|
|
509
|
+
className: "ad-option",
|
|
510
|
+
"aria-selected": option.value === selected,
|
|
511
|
+
"data-active": index === active || void 0,
|
|
512
|
+
disabled: option.disabled,
|
|
513
|
+
tabIndex: active === void 0 ? void 0 : -1,
|
|
514
|
+
onPointerDown: active === void 0 ? void 0 : (event) => event.preventDefault(),
|
|
515
|
+
onPointerMove: () => onHover?.(index),
|
|
516
|
+
onClick: () => onChoose(option.value),
|
|
517
|
+
children: [
|
|
518
|
+
option.content ?? /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
519
|
+
option.avatar && /* @__PURE__ */ jsx6(Avatar, { size: "sm", name: option.avatar.name, src: option.avatar.src }),
|
|
520
|
+
option.icon && /* @__PURE__ */ jsx6(Icon, { name: option.icon, className: "ad-option-icon" }),
|
|
521
|
+
/* @__PURE__ */ jsxs3("span", { className: "ad-option-text", children: [
|
|
522
|
+
/* @__PURE__ */ jsx6("span", { className: "ad-option-label", children: option.label }),
|
|
523
|
+
option.description && /* @__PURE__ */ jsx6("span", { className: "ad-option-description", children: option.description })
|
|
524
|
+
] })
|
|
525
|
+
] }),
|
|
526
|
+
option.value === selected && /* @__PURE__ */ jsx6(Icon, { name: "check", className: "ad-option-check" })
|
|
527
|
+
]
|
|
528
|
+
}
|
|
529
|
+
)
|
|
530
|
+
] }, option.value))
|
|
531
|
+
}
|
|
532
|
+
);
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
// src/components/controls/ColorPicker/ColorPicker.tsx
|
|
536
|
+
import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
537
|
+
var defaultSwatches = ["#ff244c", "#ff7c97", "#e0a43a", "#10c99a", "#38bdf8", "#9b5cff", "#f472b6", "#f5f5f5"];
|
|
538
|
+
function ColorPanel({ value, onChange, swatches, disabled }) {
|
|
539
|
+
const tr = useTr();
|
|
540
|
+
const [hsv, setHsv] = useState(() => hexToHsv(value));
|
|
541
|
+
const [text, setText] = useState(value);
|
|
542
|
+
useEffect(() => {
|
|
543
|
+
if (hsvToHex(hsv) !== value) setHsv(hexToHsv(value));
|
|
544
|
+
setText(value);
|
|
545
|
+
}, [value]);
|
|
546
|
+
const update = (next) => {
|
|
547
|
+
if (disabled) return;
|
|
548
|
+
setHsv(next);
|
|
549
|
+
onChange(hsvToHex(next));
|
|
550
|
+
};
|
|
551
|
+
const drag = (handler) => ({
|
|
552
|
+
onPointerDown: (event) => {
|
|
553
|
+
if (disabled || event.button !== 0) return;
|
|
554
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
555
|
+
const box = event.currentTarget.getBoundingClientRect();
|
|
556
|
+
handler((event.clientX - box.left) / box.width, (event.clientY - box.top) / box.height);
|
|
557
|
+
},
|
|
558
|
+
onPointerMove: (event) => {
|
|
559
|
+
if (disabled || !event.currentTarget.hasPointerCapture(event.pointerId)) return;
|
|
560
|
+
const box = event.currentTarget.getBoundingClientRect();
|
|
561
|
+
handler((event.clientX - box.left) / box.width, (event.clientY - box.top) / box.height);
|
|
562
|
+
}
|
|
563
|
+
});
|
|
564
|
+
const clamp2 = (n) => Math.min(1, Math.max(0, n));
|
|
565
|
+
return /* @__PURE__ */ jsxs4("div", { className: "ad-color-panel", children: [
|
|
566
|
+
/* @__PURE__ */ jsx7(
|
|
567
|
+
"div",
|
|
568
|
+
{
|
|
569
|
+
className: "ad-color-area",
|
|
570
|
+
style: { "--ad-color-hue": `hsl(${hsv.h} 100% 50%)` },
|
|
571
|
+
role: "slider",
|
|
572
|
+
"aria-label": tr("\u041D\u0430\u0441\u044B\u0449\u0435\u043D\u043D\u043E\u0441\u0442\u044C \u0438 \u044F\u0440\u043A\u043E\u0441\u0442\u044C"),
|
|
573
|
+
"aria-valuemin": 0,
|
|
574
|
+
"aria-valuemax": 100,
|
|
575
|
+
"aria-valuenow": Math.round(hsv.s * 100),
|
|
576
|
+
"aria-valuetext": `${value}; ${Math.round(hsv.s * 100)}% / ${Math.round(hsv.v * 100)}%`,
|
|
577
|
+
"aria-disabled": disabled || void 0,
|
|
578
|
+
tabIndex: disabled ? -1 : 0,
|
|
579
|
+
...drag((x, y) => update({ ...hsv, s: clamp2(x), v: 1 - clamp2(y) })),
|
|
580
|
+
onKeyDown: (event) => {
|
|
581
|
+
const step = event.shiftKey ? 0.1 : 0.02;
|
|
582
|
+
const moves = {
|
|
583
|
+
ArrowLeft: { s: clamp2(hsv.s - step) },
|
|
584
|
+
ArrowRight: { s: clamp2(hsv.s + step) },
|
|
585
|
+
ArrowUp: { v: clamp2(hsv.v + step) },
|
|
586
|
+
ArrowDown: { v: clamp2(hsv.v - step) }
|
|
587
|
+
};
|
|
588
|
+
if (moves[event.key]) {
|
|
589
|
+
event.preventDefault();
|
|
590
|
+
update({ ...hsv, ...moves[event.key] });
|
|
591
|
+
}
|
|
592
|
+
},
|
|
593
|
+
children: /* @__PURE__ */ jsx7("i", { style: { left: `${hsv.s * 100}%`, top: `${(1 - hsv.v) * 100}%`, background: value } })
|
|
594
|
+
}
|
|
595
|
+
),
|
|
596
|
+
/* @__PURE__ */ jsx7(
|
|
597
|
+
"div",
|
|
598
|
+
{
|
|
599
|
+
className: "ad-color-hue",
|
|
600
|
+
role: "slider",
|
|
601
|
+
"aria-label": tr("\u041E\u0442\u0442\u0435\u043D\u043E\u043A"),
|
|
602
|
+
"aria-valuemin": 0,
|
|
603
|
+
"aria-valuemax": 360,
|
|
604
|
+
"aria-valuenow": Math.round(hsv.h),
|
|
605
|
+
"aria-disabled": disabled || void 0,
|
|
606
|
+
tabIndex: disabled ? -1 : 0,
|
|
607
|
+
...drag((x) => update({ ...hsv, h: clamp2(x) * 360 })),
|
|
608
|
+
onKeyDown: (event) => {
|
|
609
|
+
const step = event.shiftKey ? 15 : 3;
|
|
610
|
+
if (event.key === "ArrowLeft" || event.key === "ArrowRight") {
|
|
611
|
+
event.preventDefault();
|
|
612
|
+
update({ ...hsv, h: (hsv.h + (event.key === "ArrowRight" ? step : -step) + 360) % 360 });
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
children: /* @__PURE__ */ jsx7("i", { style: { left: `${hsv.h / 360 * 100}%`, background: `hsl(${hsv.h} 100% 50%)` } })
|
|
616
|
+
}
|
|
617
|
+
),
|
|
618
|
+
/* @__PURE__ */ jsxs4("label", { className: "ad-color-hex", children: [
|
|
619
|
+
/* @__PURE__ */ jsx7("span", { className: "ad-color-sample", style: { background: value } }),
|
|
620
|
+
/* @__PURE__ */ jsx7(
|
|
621
|
+
"input",
|
|
622
|
+
{
|
|
623
|
+
value: text,
|
|
624
|
+
disabled,
|
|
625
|
+
spellCheck: false,
|
|
626
|
+
"aria-label": tr("\u041A\u043E\u0434 \u0446\u0432\u0435\u0442\u0430"),
|
|
627
|
+
onChange: (event) => {
|
|
628
|
+
setText(event.currentTarget.value);
|
|
629
|
+
const hex = normalizeHex(event.currentTarget.value);
|
|
630
|
+
if (hex) {
|
|
631
|
+
setHsv(hexToHsv(hex));
|
|
632
|
+
onChange(hex);
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
onBlur: () => setText(value)
|
|
636
|
+
}
|
|
637
|
+
)
|
|
638
|
+
] }),
|
|
639
|
+
swatches.length > 0 && /* @__PURE__ */ jsx7("div", { className: "ad-color-swatches", children: swatches.map((swatch) => /* @__PURE__ */ jsx7(
|
|
640
|
+
"button",
|
|
641
|
+
{
|
|
642
|
+
type: "button",
|
|
643
|
+
"aria-label": swatch,
|
|
644
|
+
"aria-pressed": swatch.toLowerCase() === value,
|
|
645
|
+
disabled,
|
|
646
|
+
style: { background: swatch },
|
|
647
|
+
onClick: () => onChange(swatch.toLowerCase())
|
|
648
|
+
},
|
|
649
|
+
swatch
|
|
650
|
+
)) })
|
|
651
|
+
] });
|
|
652
|
+
}
|
|
653
|
+
function ColorPicker({ value: controlled, defaultValue = "#ff244c", onValueChange, swatches = defaultSwatches, inline, ...p }) {
|
|
654
|
+
const tr = useTr();
|
|
655
|
+
const [value, setValue] = useControllable(controlled, defaultValue, onValueChange);
|
|
656
|
+
const [open, setOpen] = useState(false);
|
|
657
|
+
useEffect(() => {
|
|
658
|
+
if (p.disabled) setOpen(false);
|
|
659
|
+
}, [p.disabled]);
|
|
660
|
+
const box = useRef3(null);
|
|
661
|
+
const ids = useFieldIds(p.label, p.description, void 0, p);
|
|
662
|
+
const hex = normalizeHex(value) ?? "#ff244c";
|
|
663
|
+
if (inline)
|
|
664
|
+
return /* @__PURE__ */ jsx7("div", { ...mark("ColorPicker", p), "data-inline": "", children: /* @__PURE__ */ jsx7(ColorPanel, { value: hex, onChange: setValue, swatches, disabled: p.disabled }) });
|
|
665
|
+
return /* @__PURE__ */ jsxs4("div", { ...mark("ColorPicker", p), children: [
|
|
666
|
+
/* @__PURE__ */ jsx7(FieldFrame, { ids, className: "", label: p.label, description: p.description, children: /* @__PURE__ */ jsx7(InputBase, { ref: box, size: p.size, disabled: p.disabled, startAdornment: /* @__PURE__ */ jsx7("span", { className: "ad-color-sample", style: { background: hex } }), children: /* @__PURE__ */ jsx7(
|
|
667
|
+
"button",
|
|
668
|
+
{
|
|
669
|
+
...ids.aria,
|
|
670
|
+
id: ids.control,
|
|
671
|
+
type: "button",
|
|
672
|
+
className: "ad-input-control ad-color-control",
|
|
673
|
+
disabled: p.disabled,
|
|
674
|
+
"aria-haspopup": "dialog",
|
|
675
|
+
"aria-expanded": open,
|
|
676
|
+
"aria-labelledby": ids.valueLabelledBy,
|
|
677
|
+
onClick: () => setOpen((v) => !v),
|
|
678
|
+
children: /* @__PURE__ */ jsx7("span", { id: ids.value, children: hex.toUpperCase() })
|
|
679
|
+
}
|
|
680
|
+
) }) }),
|
|
681
|
+
/* @__PURE__ */ jsx7(Popover, { open: open && !p.disabled, onOpenChange: setOpen, anchorRef: box, align: "start", label: tr("\u0412\u044B\u0431\u043E\u0440 \u0446\u0432\u0435\u0442\u0430"), className: "ad-color-popover", children: /* @__PURE__ */ jsx7(ColorPanel, { value: hex, onChange: setValue, swatches, disabled: p.disabled }) })
|
|
682
|
+
] });
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
// src/components/controls/shared.tsx
|
|
686
|
+
import { useEffect as useEffect2, useRef as useRef4 } from "react";
|
|
687
|
+
import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
688
|
+
function buttonView(p, name = "Button") {
|
|
689
|
+
const {
|
|
690
|
+
variant = "secondary",
|
|
691
|
+
icon,
|
|
692
|
+
endIcon,
|
|
693
|
+
loading,
|
|
694
|
+
round,
|
|
695
|
+
label,
|
|
696
|
+
children,
|
|
697
|
+
ref,
|
|
698
|
+
onPointerMove,
|
|
699
|
+
onPointerDown,
|
|
700
|
+
onPointerLeave,
|
|
701
|
+
...rest
|
|
702
|
+
} = p;
|
|
703
|
+
const { size: _s, tone: _t, material: _m, ...dom } = rest;
|
|
704
|
+
const trackLight = (event) => {
|
|
705
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
706
|
+
event.currentTarget.style.setProperty(
|
|
707
|
+
"--ad-button-x",
|
|
708
|
+
`${(event.clientX - rect.left) / Math.max(rect.width, 1) * 100}%`
|
|
709
|
+
);
|
|
710
|
+
event.currentTarget.style.setProperty(
|
|
711
|
+
"--ad-button-y",
|
|
712
|
+
`${(event.clientY - rect.top) / Math.max(rect.height, 1) * 100}%`
|
|
713
|
+
);
|
|
714
|
+
onPointerMove?.(event);
|
|
715
|
+
};
|
|
716
|
+
const resetLight = (event) => {
|
|
717
|
+
event.currentTarget.style.removeProperty("--ad-button-x");
|
|
718
|
+
event.currentTarget.style.removeProperty("--ad-button-y");
|
|
719
|
+
onPointerLeave?.(event);
|
|
720
|
+
};
|
|
721
|
+
const content = children ?? label;
|
|
722
|
+
return /* @__PURE__ */ jsxs5(
|
|
723
|
+
"button",
|
|
724
|
+
{
|
|
725
|
+
...dom,
|
|
726
|
+
...mark(name, p, variantMaterial[variant]),
|
|
727
|
+
ref,
|
|
728
|
+
type: p.type ?? "button",
|
|
729
|
+
disabled: p.disabled || loading,
|
|
730
|
+
"aria-busy": loading || void 0,
|
|
731
|
+
"data-ad-variant": variant,
|
|
732
|
+
"data-ad-round": round || void 0,
|
|
733
|
+
onPointerDown: (event) => {
|
|
734
|
+
ripple(event.currentTarget, event.clientX, event.clientY);
|
|
735
|
+
onPointerDown?.(event);
|
|
736
|
+
},
|
|
737
|
+
onPointerMove: trackLight,
|
|
738
|
+
onPointerLeave: resetLight,
|
|
739
|
+
children: [
|
|
740
|
+
/* @__PURE__ */ jsx8("span", { className: "ad-button-fx", "aria-hidden": "true" }),
|
|
741
|
+
/* @__PURE__ */ jsx8("span", { className: "ad-button-orbit", "aria-hidden": "true" }),
|
|
742
|
+
loading && /* @__PURE__ */ jsx8("span", { className: "ad-spinner", "aria-hidden": "true" }),
|
|
743
|
+
icon && /* @__PURE__ */ jsx8(Icon, { name: icon }),
|
|
744
|
+
" ",
|
|
745
|
+
content != null && /* @__PURE__ */ jsx8("span", { className: "ad-button-label", children: content }),
|
|
746
|
+
endIcon && /* @__PURE__ */ jsx8(Icon, { name: endIcon })
|
|
747
|
+
]
|
|
748
|
+
}
|
|
749
|
+
);
|
|
750
|
+
}
|
|
751
|
+
function BooleanControl({
|
|
752
|
+
kind,
|
|
753
|
+
...p
|
|
754
|
+
}) {
|
|
755
|
+
const [checked, setChecked] = useControllable(
|
|
756
|
+
p.checked,
|
|
757
|
+
p.defaultChecked ?? false,
|
|
758
|
+
p.onValueChange
|
|
759
|
+
);
|
|
760
|
+
const input = useRef4(null);
|
|
761
|
+
useEffect2(() => {
|
|
762
|
+
if (input.current) input.current.indeterminate = !!p.indeterminate;
|
|
763
|
+
}, [p.indeterminate]);
|
|
764
|
+
return /* @__PURE__ */ jsxs5("label", { ...mark(kind, p), children: [
|
|
765
|
+
/* @__PURE__ */ jsx8(
|
|
766
|
+
"input",
|
|
767
|
+
{
|
|
768
|
+
ref: input,
|
|
769
|
+
name: p.name,
|
|
770
|
+
type: "checkbox",
|
|
771
|
+
role: kind === "Switch" ? "switch" : void 0,
|
|
772
|
+
checked,
|
|
773
|
+
disabled: p.disabled,
|
|
774
|
+
required: p.required,
|
|
775
|
+
"aria-label": p["aria-label"],
|
|
776
|
+
"aria-labelledby": p["aria-labelledby"],
|
|
777
|
+
"aria-describedby": p["aria-describedby"],
|
|
778
|
+
onChange: (e) => setChecked(e.currentTarget.checked)
|
|
779
|
+
}
|
|
780
|
+
),
|
|
781
|
+
/* @__PURE__ */ jsx8("span", { className: "ad-toggle-track", "aria-hidden": "true", children: /* @__PURE__ */ jsx8("i", {}) }),
|
|
782
|
+
/* @__PURE__ */ jsx8("span", { children: p.label })
|
|
783
|
+
] });
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
// src/components/controls/Button/Button.tsx
|
|
787
|
+
import { forwardRef as forwardRef2 } from "react";
|
|
788
|
+
var Button = /* @__PURE__ */ forwardRef2(function Button2(p, ref) {
|
|
789
|
+
return buttonView({ ...p, ref });
|
|
790
|
+
});
|
|
791
|
+
|
|
792
|
+
// src/components/controls/FilePicker/FilePicker.tsx
|
|
793
|
+
import { useEffect as useEffect3, useRef as useRef5, useState as useState2 } from "react";
|
|
794
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
795
|
+
var FilePicker = (p) => {
|
|
796
|
+
const tr = useTr();
|
|
797
|
+
const input = useRef5(null), [names, setNames] = useState2(""), [preview, setPreview] = useState2(), [over, setOver] = useState2(false);
|
|
798
|
+
useEffect3(() => () => {
|
|
799
|
+
if (preview) URL.revokeObjectURL(preview);
|
|
800
|
+
}, [preview]);
|
|
801
|
+
useEffect3(() => setPreview(void 0), [p.src]);
|
|
802
|
+
const choose = () => p.onPick ? p.onPick() : input.current?.click();
|
|
803
|
+
const take = (files) => {
|
|
804
|
+
if (p.disabled) return;
|
|
805
|
+
const accepted = (p.accept ?? (p.variant === "avatar" ? "image/*" : "")).split(",").map((type) => type.trim().toLowerCase()).filter(Boolean);
|
|
806
|
+
const pickedFiles = files.filter(
|
|
807
|
+
(file) => (p.variant !== "avatar" || file.type.startsWith("image/")) && (accepted.length === 0 || accepted.some(
|
|
808
|
+
(type) => type.startsWith(".") ? file.name.toLowerCase().endsWith(type) : type.endsWith("/*") ? file.type.toLowerCase().startsWith(type.slice(0, -1)) : file.type.toLowerCase() === type
|
|
809
|
+
))
|
|
810
|
+
).slice(0, p.variant === "avatar" || !p.multiple ? 1 : void 0);
|
|
811
|
+
if (!pickedFiles.length) return;
|
|
812
|
+
setNames(pickedFiles.map((file) => file.name).join(", "));
|
|
813
|
+
if (p.variant === "avatar") setPreview(URL.createObjectURL(pickedFiles[0]));
|
|
814
|
+
p.onFiles?.(pickedFiles);
|
|
815
|
+
};
|
|
816
|
+
const picked = p.value ?? names;
|
|
817
|
+
const fileInput = /* @__PURE__ */ jsx9(
|
|
818
|
+
"input",
|
|
819
|
+
{
|
|
820
|
+
type: "file",
|
|
821
|
+
ref: input,
|
|
822
|
+
hidden: true,
|
|
823
|
+
accept: p.accept ?? (p.variant === "avatar" ? "image/*" : void 0),
|
|
824
|
+
multiple: p.variant === "avatar" ? false : p.multiple,
|
|
825
|
+
onChange: (e) => {
|
|
826
|
+
take(Array.from(e.currentTarget.files ?? []));
|
|
827
|
+
e.currentTarget.value = "";
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
);
|
|
831
|
+
if (p.variant === "avatar")
|
|
832
|
+
return /* @__PURE__ */ jsxs6("div", { ...mark("FilePicker", p), "data-variant": "avatar", "data-over": over || void 0, children: [
|
|
833
|
+
/* @__PURE__ */ jsxs6(
|
|
834
|
+
"button",
|
|
835
|
+
{
|
|
836
|
+
type: "button",
|
|
837
|
+
className: "ad-file-picker-avatar-button",
|
|
838
|
+
disabled: p.disabled,
|
|
839
|
+
"aria-label": [p.label ?? tr("\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0444\u043E\u0442\u043E"), p.name].filter(Boolean).join(": "),
|
|
840
|
+
onClick: choose,
|
|
841
|
+
onDragOver: (e) => {
|
|
842
|
+
e.preventDefault();
|
|
843
|
+
if (!p.disabled) setOver(true);
|
|
844
|
+
},
|
|
845
|
+
onDragLeave: () => setOver(false),
|
|
846
|
+
onDrop: (e) => {
|
|
847
|
+
e.preventDefault();
|
|
848
|
+
setOver(false);
|
|
849
|
+
if (!p.disabled) take(Array.from(e.dataTransfer.files));
|
|
850
|
+
},
|
|
851
|
+
children: [
|
|
852
|
+
/* @__PURE__ */ jsx9(Avatar, { name: p.name, src: preview ?? p.src, variant: p.avatarVariant ?? "host", size: p.size }),
|
|
853
|
+
/* @__PURE__ */ jsx9("span", { className: "ad-file-picker-avatar-edit", "aria-hidden": "true", children: /* @__PURE__ */ jsx9(Icon, { name: p.icon ?? "pencil" }) })
|
|
854
|
+
]
|
|
855
|
+
}
|
|
856
|
+
),
|
|
857
|
+
fileInput
|
|
858
|
+
] });
|
|
859
|
+
if (p.variant === "zone")
|
|
860
|
+
return /* @__PURE__ */ jsxs6(
|
|
861
|
+
"button",
|
|
862
|
+
{
|
|
863
|
+
type: "button",
|
|
864
|
+
...mark("FilePicker", p),
|
|
865
|
+
"data-variant": "zone",
|
|
866
|
+
"data-over": over || void 0,
|
|
867
|
+
disabled: p.disabled,
|
|
868
|
+
onClick: choose,
|
|
869
|
+
onDragOver: (e) => {
|
|
870
|
+
e.preventDefault();
|
|
871
|
+
if (!p.disabled) setOver(true);
|
|
872
|
+
},
|
|
873
|
+
onDragLeave: () => setOver(false),
|
|
874
|
+
onDrop: (e) => {
|
|
875
|
+
e.preventDefault();
|
|
876
|
+
setOver(false);
|
|
877
|
+
take(Array.from(e.dataTransfer.files));
|
|
878
|
+
},
|
|
879
|
+
children: [
|
|
880
|
+
/* @__PURE__ */ jsx9(Icon, { name: p.icon ?? "upload" }),
|
|
881
|
+
/* @__PURE__ */ jsxs6("span", { className: "ad-file-picker-text", children: [
|
|
882
|
+
/* @__PURE__ */ jsx9("strong", { children: p.label ?? tr("\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B") }),
|
|
883
|
+
/* @__PURE__ */ jsx9("small", { "data-picked": !!picked || void 0, children: picked || p.description || tr("\u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0435\u0433\u043E \u0441\u044E\u0434\u0430") }, picked)
|
|
884
|
+
] }),
|
|
885
|
+
fileInput
|
|
886
|
+
]
|
|
887
|
+
}
|
|
888
|
+
);
|
|
889
|
+
return /* @__PURE__ */ jsxs6("div", { ...mark("FilePicker", p), children: [
|
|
890
|
+
/* @__PURE__ */ jsx9(
|
|
891
|
+
Button,
|
|
892
|
+
{
|
|
893
|
+
size: p.size,
|
|
894
|
+
icon: p.icon ?? "folder",
|
|
895
|
+
disabled: p.disabled,
|
|
896
|
+
onClick: choose,
|
|
897
|
+
children: p.label ?? tr("\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B")
|
|
898
|
+
}
|
|
899
|
+
),
|
|
900
|
+
/* @__PURE__ */ jsx9("small", { "data-picked": !!picked || void 0, children: picked || p.description || tr("\u0424\u0430\u0439\u043B \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D") }, picked),
|
|
901
|
+
fileInput
|
|
902
|
+
] });
|
|
903
|
+
};
|
|
904
|
+
|
|
905
|
+
// src/components/controls/Slider/Slider.tsx
|
|
906
|
+
import { forwardRef as forwardRef3 } from "react";
|
|
907
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
908
|
+
var Slider = /* @__PURE__ */ forwardRef3(function Slider2(p, ref) {
|
|
909
|
+
const tr = useTr();
|
|
910
|
+
const min = p.min ?? 0, max = Math.max(min, p.max ?? 100);
|
|
911
|
+
const [value, setValue] = useControllable(
|
|
912
|
+
p.value,
|
|
913
|
+
p.defaultValue ?? 35,
|
|
914
|
+
p.onValueChange
|
|
915
|
+
);
|
|
916
|
+
const current = clamp(value, min, max), percent = max === min ? 0 : (current - min) / (max - min) * 100;
|
|
917
|
+
const ids = useFieldIds(p.label, void 0, p.id, p);
|
|
918
|
+
return /* @__PURE__ */ jsx10(FieldFrame, { ids, className: "ad-slider-field", label: p.label, children: /* @__PURE__ */ jsx10(
|
|
919
|
+
"input",
|
|
920
|
+
{
|
|
921
|
+
...mark("Slider", p),
|
|
922
|
+
...ids.aria,
|
|
923
|
+
id: ids.control,
|
|
924
|
+
ref,
|
|
925
|
+
type: "range",
|
|
926
|
+
value: current,
|
|
927
|
+
min,
|
|
928
|
+
max,
|
|
929
|
+
step: p.step ?? 1,
|
|
930
|
+
disabled: p.disabled,
|
|
931
|
+
"aria-label": p["aria-label"] ?? (p.label ? void 0 : tr("\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435")),
|
|
932
|
+
style: { "--ad-level": `${percent}%`, ...p.style },
|
|
933
|
+
onChange: (e) => setValue(Number(e.currentTarget.value))
|
|
934
|
+
}
|
|
935
|
+
) });
|
|
936
|
+
});
|
|
937
|
+
|
|
938
|
+
// src/components/controls/Switch/Switch.tsx
|
|
939
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
940
|
+
var Switch = (p) => /* @__PURE__ */ jsx11(BooleanControl, { kind: "Switch", ...p });
|
|
941
|
+
|
|
942
|
+
// src/core/responsive.ts
|
|
943
|
+
var BREAKPOINTS = ["base", "sm", "md", "lg", "xl"];
|
|
944
|
+
function spacing(value) {
|
|
945
|
+
if (typeof value !== "number") return value;
|
|
946
|
+
if (value === 0) return "0";
|
|
947
|
+
return `var(--ad-space-${value}, calc(var(--ad-space-unit, 0.25rem) * ${value}))`;
|
|
948
|
+
}
|
|
949
|
+
function responsiveVars(name, value, format = String, fallback) {
|
|
950
|
+
const values = value != null && typeof value === "object" && !Array.isArray(value) ? value : { base: value ?? fallback };
|
|
951
|
+
const result = {};
|
|
952
|
+
let current = values.base ?? fallback;
|
|
953
|
+
for (const bp of BREAKPOINTS) {
|
|
954
|
+
current = values[bp] ?? current;
|
|
955
|
+
if (current != null)
|
|
956
|
+
result[`--ad-${name}${bp === "base" ? "" : `-${bp}`}`] = format(current);
|
|
957
|
+
}
|
|
958
|
+
return result;
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
// src/components/layout/Grid/Grid.tsx
|
|
962
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
963
|
+
var distribution = {
|
|
964
|
+
between: "space-between",
|
|
965
|
+
around: "space-around",
|
|
966
|
+
evenly: "space-evenly"
|
|
967
|
+
};
|
|
968
|
+
var columnsValue = (value) => typeof value === "number" ? `repeat(${value}, minmax(0, 1fr))` : value;
|
|
969
|
+
var place = (name, value, format) => responsiveVars(
|
|
970
|
+
name,
|
|
971
|
+
value,
|
|
972
|
+
(v) => v === "auto" ? "auto" : format(v),
|
|
973
|
+
"auto"
|
|
974
|
+
);
|
|
975
|
+
function Grid({
|
|
976
|
+
as: Component = "div",
|
|
977
|
+
columns,
|
|
978
|
+
gap,
|
|
979
|
+
rowGap,
|
|
980
|
+
columnGap,
|
|
981
|
+
minChildWidth,
|
|
982
|
+
dense = false,
|
|
983
|
+
align,
|
|
984
|
+
justify,
|
|
985
|
+
span,
|
|
986
|
+
rowSpan,
|
|
987
|
+
columnStart,
|
|
988
|
+
rowStart,
|
|
989
|
+
className,
|
|
990
|
+
style,
|
|
991
|
+
...props
|
|
992
|
+
}) {
|
|
993
|
+
const isItem = (span != null || rowSpan != null || columnStart != null || rowStart != null) && columns == null && minChildWidth == null;
|
|
994
|
+
const container = isItem ? {} : {
|
|
995
|
+
...responsiveVars("grid-columns", columns, columnsValue, 12),
|
|
996
|
+
...responsiveVars("grid-row-gap", rowGap ?? gap, spacing, 0),
|
|
997
|
+
...responsiveVars("grid-column-gap", columnGap ?? gap, spacing, 0),
|
|
998
|
+
...responsiveVars("grid-align", align, String, "stretch"),
|
|
999
|
+
...responsiveVars("grid-justify", justify, (value) => distribution[value] ? "stretch" : value, "stretch"),
|
|
1000
|
+
...responsiveVars("grid-distribution", justify, (value) => distribution[value] ?? "normal", "stretch")
|
|
1001
|
+
};
|
|
1002
|
+
const item = isItem ? {
|
|
1003
|
+
...columnStart != null ? place("grid-column-start", columnStart, String) : place(
|
|
1004
|
+
"grid-column-start",
|
|
1005
|
+
span,
|
|
1006
|
+
(v) => v === "full" ? "1" : "auto"
|
|
1007
|
+
),
|
|
1008
|
+
...place(
|
|
1009
|
+
"grid-column-end",
|
|
1010
|
+
span,
|
|
1011
|
+
(v) => v === "full" ? "-1" : `span ${v}`
|
|
1012
|
+
),
|
|
1013
|
+
...place("grid-row-start", rowStart, String),
|
|
1014
|
+
...place("grid-row-end", rowSpan, (v) => `span ${v}`)
|
|
1015
|
+
} : {};
|
|
1016
|
+
return /* @__PURE__ */ jsx12(
|
|
1017
|
+
Component,
|
|
1018
|
+
{
|
|
1019
|
+
...props,
|
|
1020
|
+
className: classes(
|
|
1021
|
+
isItem ? "ad-grid-item" : "ad-grid",
|
|
1022
|
+
!isItem && !!minChildWidth && "ad-grid--auto-fit",
|
|
1023
|
+
!isItem && dense && "ad-grid--dense",
|
|
1024
|
+
className
|
|
1025
|
+
),
|
|
1026
|
+
style: {
|
|
1027
|
+
...container,
|
|
1028
|
+
...item,
|
|
1029
|
+
...minChildWidth && { "--ad-grid-min-child-width": minChildWidth },
|
|
1030
|
+
...style
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1033
|
+
);
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
// src/components/controls/IconButton/IconButton.tsx
|
|
1037
|
+
import { forwardRef as forwardRef4 } from "react";
|
|
1038
|
+
var IconButton = /* @__PURE__ */ forwardRef4(function IconButton2(p, ref) {
|
|
1039
|
+
return buttonView(
|
|
1040
|
+
{
|
|
1041
|
+
...p,
|
|
1042
|
+
ref,
|
|
1043
|
+
icon: p.icon ?? "more",
|
|
1044
|
+
children: p.children ?? null,
|
|
1045
|
+
label: void 0,
|
|
1046
|
+
"aria-label": p.label,
|
|
1047
|
+
title: p.title ?? p.label
|
|
1048
|
+
},
|
|
1049
|
+
"IconButton"
|
|
1050
|
+
);
|
|
1051
|
+
});
|
|
1052
|
+
|
|
1053
|
+
// src/components/controls/TextArea/TextArea.tsx
|
|
1054
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
1055
|
+
var TextArea = ({
|
|
1056
|
+
value,
|
|
1057
|
+
defaultValue = "",
|
|
1058
|
+
onValueChange,
|
|
1059
|
+
label,
|
|
1060
|
+
description,
|
|
1061
|
+
error,
|
|
1062
|
+
startAdornment,
|
|
1063
|
+
endAdornment,
|
|
1064
|
+
className,
|
|
1065
|
+
size,
|
|
1066
|
+
variant,
|
|
1067
|
+
labelPlacement = "top",
|
|
1068
|
+
resize = "vertical",
|
|
1069
|
+
tone: _tone,
|
|
1070
|
+
material: _material,
|
|
1071
|
+
style,
|
|
1072
|
+
...textarea
|
|
1073
|
+
}) => {
|
|
1074
|
+
const [current, setCurrent] = useControllable(
|
|
1075
|
+
value,
|
|
1076
|
+
defaultValue,
|
|
1077
|
+
onValueChange
|
|
1078
|
+
);
|
|
1079
|
+
const ids = useFieldIds(label, description || error, textarea.id, textarea);
|
|
1080
|
+
const floating = labelPlacement === "floating" && !!label;
|
|
1081
|
+
return /* @__PURE__ */ jsx13(
|
|
1082
|
+
FieldFrame,
|
|
1083
|
+
{
|
|
1084
|
+
ids,
|
|
1085
|
+
style,
|
|
1086
|
+
className: `ad-text-area ad-text-area--resize-${resize} ${className ?? ""}`,
|
|
1087
|
+
label: floating ? void 0 : label,
|
|
1088
|
+
required: textarea.required,
|
|
1089
|
+
description,
|
|
1090
|
+
error,
|
|
1091
|
+
children: /* @__PURE__ */ jsx13(
|
|
1092
|
+
InputBase,
|
|
1093
|
+
{
|
|
1094
|
+
size,
|
|
1095
|
+
variant,
|
|
1096
|
+
labelId: ids.label,
|
|
1097
|
+
label: floating ? fieldLabel(label, textarea.required) : void 0,
|
|
1098
|
+
filled: !!current,
|
|
1099
|
+
multiline: true,
|
|
1100
|
+
disabled: textarea.disabled,
|
|
1101
|
+
readOnly: textarea.readOnly,
|
|
1102
|
+
error: !!error,
|
|
1103
|
+
startAdornment,
|
|
1104
|
+
endAdornment,
|
|
1105
|
+
children: /* @__PURE__ */ jsx13(
|
|
1106
|
+
"textarea",
|
|
1107
|
+
{
|
|
1108
|
+
...ids.aria,
|
|
1109
|
+
...textarea,
|
|
1110
|
+
id: ids.control,
|
|
1111
|
+
value: current,
|
|
1112
|
+
"aria-invalid": !!error || textarea["aria-invalid"],
|
|
1113
|
+
onChange: (e) => setCurrent(e.currentTarget.value)
|
|
1114
|
+
}
|
|
1115
|
+
)
|
|
1116
|
+
}
|
|
1117
|
+
)
|
|
1118
|
+
}
|
|
1119
|
+
);
|
|
1120
|
+
};
|
|
1121
|
+
|
|
1122
|
+
// src/components/controls/TextField/TextField.tsx
|
|
1123
|
+
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1124
|
+
var TextField = ({
|
|
1125
|
+
label,
|
|
1126
|
+
description,
|
|
1127
|
+
error,
|
|
1128
|
+
clearable,
|
|
1129
|
+
startAdornment,
|
|
1130
|
+
endAdornment,
|
|
1131
|
+
value,
|
|
1132
|
+
defaultValue = "",
|
|
1133
|
+
onValueChange,
|
|
1134
|
+
inputRef,
|
|
1135
|
+
className,
|
|
1136
|
+
size,
|
|
1137
|
+
variant,
|
|
1138
|
+
labelPlacement = "top",
|
|
1139
|
+
tone: _tone,
|
|
1140
|
+
material: _material,
|
|
1141
|
+
style,
|
|
1142
|
+
children: _children,
|
|
1143
|
+
...input
|
|
1144
|
+
}) => {
|
|
1145
|
+
const tr = useTr();
|
|
1146
|
+
const [current, setCurrent] = useControllable(
|
|
1147
|
+
value,
|
|
1148
|
+
defaultValue,
|
|
1149
|
+
onValueChange
|
|
1150
|
+
);
|
|
1151
|
+
const ids = useFieldIds(label, description || error, input.id, input);
|
|
1152
|
+
const floating = labelPlacement === "floating" && !!label;
|
|
1153
|
+
return /* @__PURE__ */ jsx14(
|
|
1154
|
+
FieldFrame,
|
|
1155
|
+
{
|
|
1156
|
+
ids,
|
|
1157
|
+
style,
|
|
1158
|
+
className: `ad-text-field-shell ${className ?? ""}`,
|
|
1159
|
+
label: floating ? void 0 : label,
|
|
1160
|
+
required: input.required,
|
|
1161
|
+
description,
|
|
1162
|
+
error,
|
|
1163
|
+
children: /* @__PURE__ */ jsx14(
|
|
1164
|
+
InputBase,
|
|
1165
|
+
{
|
|
1166
|
+
size,
|
|
1167
|
+
variant,
|
|
1168
|
+
labelId: ids.label,
|
|
1169
|
+
label: floating ? fieldLabel(label, input.required) : void 0,
|
|
1170
|
+
filled: !!current,
|
|
1171
|
+
disabled: input.disabled,
|
|
1172
|
+
readOnly: input.readOnly,
|
|
1173
|
+
error: !!error,
|
|
1174
|
+
startAdornment,
|
|
1175
|
+
endAdornment: /* @__PURE__ */ jsxs7(Fragment3, { children: [
|
|
1176
|
+
clearable && current && /* @__PURE__ */ jsx14(
|
|
1177
|
+
IconButton,
|
|
1178
|
+
{
|
|
1179
|
+
size: "xs",
|
|
1180
|
+
variant: "ghost",
|
|
1181
|
+
icon: "close",
|
|
1182
|
+
label: tr("\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C"),
|
|
1183
|
+
disabled: input.disabled || input.readOnly,
|
|
1184
|
+
onClick: () => setCurrent("")
|
|
1185
|
+
}
|
|
1186
|
+
),
|
|
1187
|
+
endAdornment
|
|
1188
|
+
] }),
|
|
1189
|
+
children: /* @__PURE__ */ jsx14(
|
|
1190
|
+
"input",
|
|
1191
|
+
{
|
|
1192
|
+
...ids.aria,
|
|
1193
|
+
...input,
|
|
1194
|
+
id: ids.control,
|
|
1195
|
+
ref: inputRef,
|
|
1196
|
+
value: current,
|
|
1197
|
+
"aria-invalid": !!error || void 0,
|
|
1198
|
+
onChange: (e) => setCurrent(e.currentTarget.value)
|
|
1199
|
+
}
|
|
1200
|
+
)
|
|
1201
|
+
}
|
|
1202
|
+
)
|
|
1203
|
+
}
|
|
1204
|
+
);
|
|
1205
|
+
};
|
|
1206
|
+
|
|
1207
|
+
// src/components/controls/Chip/Chip.tsx
|
|
1208
|
+
import { Fragment as Fragment4, jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1209
|
+
function Chip({ label, icon, avatar, onRemove, removeLabel, onClick, selected, disabled, ...p }) {
|
|
1210
|
+
const tr = useTr();
|
|
1211
|
+
const removeText = removeLabel ?? tr("\u0423\u0431\u0440\u0430\u0442\u044C");
|
|
1212
|
+
const content = /* @__PURE__ */ jsxs8(Fragment4, { children: [
|
|
1213
|
+
avatar && /* @__PURE__ */ jsx15(Avatar, { size: "xs", name: avatar.name, src: avatar.src }),
|
|
1214
|
+
icon && /* @__PURE__ */ jsx15(Icon, { name: icon }),
|
|
1215
|
+
/* @__PURE__ */ jsx15("span", { className: "ad-chip-label", children: label })
|
|
1216
|
+
] });
|
|
1217
|
+
return /* @__PURE__ */ jsxs8("span", { ...mark("Chip", p), "data-selected": selected || void 0, "data-disabled": disabled || void 0, children: [
|
|
1218
|
+
onClick ? /* @__PURE__ */ jsx15("button", { type: "button", className: "ad-chip-body", "aria-pressed": selected, disabled, onClick, children: content }) : /* @__PURE__ */ jsx15("span", { className: "ad-chip-body", children: content }),
|
|
1219
|
+
onRemove && /* @__PURE__ */ jsx15(
|
|
1220
|
+
"button",
|
|
1221
|
+
{
|
|
1222
|
+
type: "button",
|
|
1223
|
+
className: "ad-chip-remove",
|
|
1224
|
+
"aria-label": typeof label === "string" ? `${removeText}: ${label}` : removeText,
|
|
1225
|
+
disabled,
|
|
1226
|
+
onClick: (event) => {
|
|
1227
|
+
event.stopPropagation();
|
|
1228
|
+
onRemove();
|
|
1229
|
+
},
|
|
1230
|
+
children: /* @__PURE__ */ jsx15(Icon, { name: "close" })
|
|
1231
|
+
}
|
|
1232
|
+
)
|
|
1233
|
+
] });
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
// src/components/controls/TagInput/TagInput.tsx
|
|
1237
|
+
import { useState as useState3 } from "react";
|
|
1238
|
+
|
|
1239
|
+
// src/components/controls/ChipField.tsx
|
|
1240
|
+
import { useRef as useRef6 } from "react";
|
|
1241
|
+
import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1242
|
+
function ChipField({
|
|
1243
|
+
className,
|
|
1244
|
+
label,
|
|
1245
|
+
description,
|
|
1246
|
+
error,
|
|
1247
|
+
required,
|
|
1248
|
+
disabled,
|
|
1249
|
+
size,
|
|
1250
|
+
variant,
|
|
1251
|
+
labelPlacement,
|
|
1252
|
+
chips,
|
|
1253
|
+
query,
|
|
1254
|
+
placeholder,
|
|
1255
|
+
startAdornment,
|
|
1256
|
+
boxRef,
|
|
1257
|
+
onQueryChange,
|
|
1258
|
+
onKeyDown,
|
|
1259
|
+
onFocus,
|
|
1260
|
+
onBlur,
|
|
1261
|
+
inputProps
|
|
1262
|
+
}) {
|
|
1263
|
+
const ids = useFieldIds(label, description || error, inputProps?.id, inputProps);
|
|
1264
|
+
const input = useRef6(null);
|
|
1265
|
+
const floating = labelPlacement === "floating" && !!label;
|
|
1266
|
+
const hasChips = Array.isArray(chips) ? chips.length > 0 : !!chips;
|
|
1267
|
+
return /* @__PURE__ */ jsx16(FieldFrame, { ids, className: `ad-chip-field ${className}`, label: floating ? void 0 : label, required, description, error, children: /* @__PURE__ */ jsx16(
|
|
1268
|
+
InputBase,
|
|
1269
|
+
{
|
|
1270
|
+
ref: boxRef,
|
|
1271
|
+
size,
|
|
1272
|
+
variant,
|
|
1273
|
+
labelId: ids.label,
|
|
1274
|
+
label: floating ? fieldLabel(label, required) : void 0,
|
|
1275
|
+
filled: hasChips || !!query,
|
|
1276
|
+
disabled,
|
|
1277
|
+
error: !!error,
|
|
1278
|
+
multiline: true,
|
|
1279
|
+
startAdornment,
|
|
1280
|
+
onClick: () => input.current?.focus(),
|
|
1281
|
+
children: /* @__PURE__ */ jsxs9("span", { className: "ad-chip-field-items", children: [
|
|
1282
|
+
chips,
|
|
1283
|
+
/* @__PURE__ */ jsx16(
|
|
1284
|
+
"input",
|
|
1285
|
+
{
|
|
1286
|
+
...inputProps,
|
|
1287
|
+
...ids.aria,
|
|
1288
|
+
id: ids.control,
|
|
1289
|
+
ref: input,
|
|
1290
|
+
className: "ad-chip-field-input",
|
|
1291
|
+
value: query,
|
|
1292
|
+
placeholder: hasChips ? void 0 : placeholder,
|
|
1293
|
+
disabled: disabled || inputProps?.disabled,
|
|
1294
|
+
"aria-invalid": !!error || void 0,
|
|
1295
|
+
onChange: (event) => onQueryChange(event.currentTarget.value),
|
|
1296
|
+
onKeyDown,
|
|
1297
|
+
onFocus,
|
|
1298
|
+
onBlur
|
|
1299
|
+
}
|
|
1300
|
+
)
|
|
1301
|
+
] })
|
|
1302
|
+
}
|
|
1303
|
+
) });
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
// src/components/controls/TagInput/TagInput.tsx
|
|
1307
|
+
import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1308
|
+
function TagInput({
|
|
1309
|
+
value: controlled,
|
|
1310
|
+
defaultValue = [],
|
|
1311
|
+
onValueChange,
|
|
1312
|
+
suggestions = [],
|
|
1313
|
+
max,
|
|
1314
|
+
validate,
|
|
1315
|
+
icon,
|
|
1316
|
+
placeholder,
|
|
1317
|
+
...p
|
|
1318
|
+
}) {
|
|
1319
|
+
const tr = useTr();
|
|
1320
|
+
const [tags, setTags] = useControllable(controlled, defaultValue, onValueChange);
|
|
1321
|
+
const [query, setQuery] = useState3("");
|
|
1322
|
+
const [refusal, setRefusal] = useState3();
|
|
1323
|
+
const full = max !== void 0 && tags.length >= max;
|
|
1324
|
+
const add = (raw) => {
|
|
1325
|
+
if (p.disabled || full) return;
|
|
1326
|
+
const seen = new Set(tags.map((tag) => tag.toLowerCase()));
|
|
1327
|
+
const fresh = raw.split(/[,\n;]/).map((tag) => tag.trim()).filter((tag) => {
|
|
1328
|
+
if (!tag || seen.has(tag.toLowerCase())) return false;
|
|
1329
|
+
seen.add(tag.toLowerCase());
|
|
1330
|
+
return true;
|
|
1331
|
+
});
|
|
1332
|
+
if (!fresh.length) return setQuery("");
|
|
1333
|
+
const problem = fresh.map((tag) => validate?.(tag)).find(Boolean);
|
|
1334
|
+
if (problem) return setRefusal(problem);
|
|
1335
|
+
setTags([...tags, ...fresh].slice(0, max ?? Infinity));
|
|
1336
|
+
setRefusal(void 0);
|
|
1337
|
+
setQuery("");
|
|
1338
|
+
};
|
|
1339
|
+
const offered = query ? suggestions.filter((s) => s.toLowerCase().includes(query.toLowerCase()) && !tags.includes(s)).slice(0, 6) : [];
|
|
1340
|
+
return /* @__PURE__ */ jsxs10("div", { ...mark("TagInput", p), children: [
|
|
1341
|
+
/* @__PURE__ */ jsx17(
|
|
1342
|
+
ChipField,
|
|
1343
|
+
{
|
|
1344
|
+
className: "",
|
|
1345
|
+
label: p.label,
|
|
1346
|
+
description: p.description,
|
|
1347
|
+
error: refusal ?? p.error,
|
|
1348
|
+
required: p.required,
|
|
1349
|
+
disabled: p.disabled,
|
|
1350
|
+
size: p.size,
|
|
1351
|
+
variant: p.variant,
|
|
1352
|
+
labelPlacement: p.labelPlacement,
|
|
1353
|
+
startAdornment: icon ? /* @__PURE__ */ jsx17(Icon, { name: icon }) : void 0,
|
|
1354
|
+
placeholder: full ? void 0 : placeholder ?? tr("\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0442\u0435\u0433 \u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 Enter"),
|
|
1355
|
+
query,
|
|
1356
|
+
onQueryChange: (next) => {
|
|
1357
|
+
setRefusal(void 0);
|
|
1358
|
+
if (/[,;]/.test(next)) add(next);
|
|
1359
|
+
else setQuery(next);
|
|
1360
|
+
},
|
|
1361
|
+
inputProps: {
|
|
1362
|
+
disabled: p.disabled || full,
|
|
1363
|
+
"aria-label": p["aria-label"],
|
|
1364
|
+
"aria-labelledby": p["aria-labelledby"],
|
|
1365
|
+
"aria-describedby": p["aria-describedby"],
|
|
1366
|
+
onPaste: (event) => {
|
|
1367
|
+
const text = event.clipboardData.getData("text");
|
|
1368
|
+
if (/[,;\n]/.test(text)) {
|
|
1369
|
+
event.preventDefault();
|
|
1370
|
+
add(text);
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
},
|
|
1374
|
+
onKeyDown: (event) => {
|
|
1375
|
+
if (event.nativeEvent?.isComposing) return;
|
|
1376
|
+
if (event.key === "Enter") {
|
|
1377
|
+
event.preventDefault();
|
|
1378
|
+
add(offered[0] && !query.includes(" ") && offered[0].toLowerCase().startsWith(query.toLowerCase()) ? offered[0] : query);
|
|
1379
|
+
} else if (event.key === "Backspace" && !query && tags.length) {
|
|
1380
|
+
setTags(tags.slice(0, -1));
|
|
1381
|
+
}
|
|
1382
|
+
},
|
|
1383
|
+
chips: tags.map((tag) => /* @__PURE__ */ jsx17(Chip, { label: tag, disabled: p.disabled, onRemove: () => setTags(tags.filter((t) => t !== tag)) }, tag))
|
|
1384
|
+
}
|
|
1385
|
+
),
|
|
1386
|
+
!p.disabled && !full && offered.length > 0 && /* @__PURE__ */ jsx17("div", { className: "ad-tag-input-suggestions", role: "listbox", "aria-label": tr("\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438"), children: offered.map((tag) => /* @__PURE__ */ jsx17(Chip, { label: tag, icon: "plus", onClick: () => add(tag) }, tag)) })
|
|
1387
|
+
] });
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1390
|
+
// src/components/controls/PeoplePicker/PeoplePicker.tsx
|
|
1391
|
+
import { useEffect as useEffect4, useId as useId3, useRef as useRef7, useState as useState4 } from "react";
|
|
1392
|
+
import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1393
|
+
var searchDelay = 220;
|
|
1394
|
+
function PeoplePicker({
|
|
1395
|
+
people = [],
|
|
1396
|
+
onSearch,
|
|
1397
|
+
value: controlled,
|
|
1398
|
+
defaultValue = [],
|
|
1399
|
+
onValueChange,
|
|
1400
|
+
single = false,
|
|
1401
|
+
max,
|
|
1402
|
+
placeholder,
|
|
1403
|
+
...p
|
|
1404
|
+
}) {
|
|
1405
|
+
const tr = useTr();
|
|
1406
|
+
const [chosen, setChosen] = useControllable(controlled, defaultValue, onValueChange);
|
|
1407
|
+
const [query, setQuery] = useState4("");
|
|
1408
|
+
const [open, setOpen] = useState4(false);
|
|
1409
|
+
const [active, setActive] = useState4(0);
|
|
1410
|
+
const [found, setFound] = useState4(null);
|
|
1411
|
+
const [loading, setLoading] = useState4(false);
|
|
1412
|
+
const [searchError, setSearchError] = useState4();
|
|
1413
|
+
const box = useRef7(null);
|
|
1414
|
+
const listId = `${useId3()}-people`;
|
|
1415
|
+
const search = useRef7(onSearch);
|
|
1416
|
+
search.current = onSearch;
|
|
1417
|
+
const remote = !!onSearch;
|
|
1418
|
+
const needle = query.trim().toLowerCase();
|
|
1419
|
+
const limit = single ? 1 : max;
|
|
1420
|
+
const full = limit !== void 0 && chosen.length >= limit;
|
|
1421
|
+
const visible = open && !full && !p.disabled;
|
|
1422
|
+
useEffect4(() => {
|
|
1423
|
+
if (p.disabled) setOpen(false);
|
|
1424
|
+
}, [p.disabled]);
|
|
1425
|
+
useEffect4(() => {
|
|
1426
|
+
if (!remote || !query.trim()) {
|
|
1427
|
+
setFound(null);
|
|
1428
|
+
setSearchError(void 0);
|
|
1429
|
+
setLoading(false);
|
|
1430
|
+
return;
|
|
1431
|
+
}
|
|
1432
|
+
let current = true;
|
|
1433
|
+
const controller = new AbortController();
|
|
1434
|
+
setLoading(true);
|
|
1435
|
+
setSearchError(void 0);
|
|
1436
|
+
const timer = setTimeout(async () => {
|
|
1437
|
+
try {
|
|
1438
|
+
const load = search.current;
|
|
1439
|
+
if (!load) return;
|
|
1440
|
+
const result = await load(query.trim(), controller.signal);
|
|
1441
|
+
if (current) setFound(result);
|
|
1442
|
+
} catch (error) {
|
|
1443
|
+
if (current) {
|
|
1444
|
+
setFound([]);
|
|
1445
|
+
setSearchError(error instanceof Error ? error.message : tr("\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u043F\u043E\u0438\u0441\u043A"));
|
|
1446
|
+
}
|
|
1447
|
+
} finally {
|
|
1448
|
+
if (current) setLoading(false);
|
|
1449
|
+
}
|
|
1450
|
+
}, searchDelay);
|
|
1451
|
+
return () => {
|
|
1452
|
+
current = false;
|
|
1453
|
+
clearTimeout(timer);
|
|
1454
|
+
controller.abort();
|
|
1455
|
+
};
|
|
1456
|
+
}, [query, remote]);
|
|
1457
|
+
const pool = onSearch ? found ?? [] : people;
|
|
1458
|
+
const options = pool.filter((person) => !chosen.some((c) => c.id === person.id)).filter((person) => onSearch || !needle || `${person.name} ${person.description ?? ""}`.toLowerCase().includes(needle)).slice(0, 50);
|
|
1459
|
+
const activeIndex = Math.max(0, Math.min(active, options.length - 1));
|
|
1460
|
+
useActiveOption(listId, activeIndex, visible && !loading && !searchError);
|
|
1461
|
+
const pick = (person) => {
|
|
1462
|
+
if (p.disabled || full || loading) return;
|
|
1463
|
+
setChosen(single ? [person] : [...chosen, person]);
|
|
1464
|
+
setQuery("");
|
|
1465
|
+
setActive(0);
|
|
1466
|
+
if (single || limit !== void 0 && chosen.length + 1 >= limit) setOpen(false);
|
|
1467
|
+
};
|
|
1468
|
+
return /* @__PURE__ */ jsxs11("div", { ...mark("PeoplePicker", p), children: [
|
|
1469
|
+
/* @__PURE__ */ jsx18(
|
|
1470
|
+
ChipField,
|
|
1471
|
+
{
|
|
1472
|
+
className: "",
|
|
1473
|
+
boxRef: box,
|
|
1474
|
+
label: p.label,
|
|
1475
|
+
description: p.description,
|
|
1476
|
+
error: p.error,
|
|
1477
|
+
required: p.required,
|
|
1478
|
+
disabled: p.disabled,
|
|
1479
|
+
size: p.size,
|
|
1480
|
+
variant: p.variant,
|
|
1481
|
+
labelPlacement: p.labelPlacement,
|
|
1482
|
+
startAdornment: /* @__PURE__ */ jsx18(Icon, { name: "users" }),
|
|
1483
|
+
placeholder: full ? void 0 : placeholder ?? tr("\u041D\u0430\u0447\u043D\u0438\u0442\u0435 \u0432\u0432\u043E\u0434\u0438\u0442\u044C \u0438\u043C\u044F"),
|
|
1484
|
+
query,
|
|
1485
|
+
onQueryChange: (next) => {
|
|
1486
|
+
setQuery(next);
|
|
1487
|
+
setActive(0);
|
|
1488
|
+
setOpen(true);
|
|
1489
|
+
},
|
|
1490
|
+
onFocus: () => !full && setOpen(true),
|
|
1491
|
+
inputProps: {
|
|
1492
|
+
disabled: p.disabled || full,
|
|
1493
|
+
role: "combobox",
|
|
1494
|
+
"aria-expanded": visible,
|
|
1495
|
+
"aria-autocomplete": "list",
|
|
1496
|
+
"aria-label": p["aria-label"],
|
|
1497
|
+
"aria-labelledby": p["aria-labelledby"],
|
|
1498
|
+
"aria-describedby": p["aria-describedby"],
|
|
1499
|
+
"aria-controls": visible ? listId : void 0,
|
|
1500
|
+
"aria-activedescendant": visible && !loading && !searchError && options[activeIndex] ? `${listId}-option-${activeIndex}` : void 0
|
|
1501
|
+
},
|
|
1502
|
+
onKeyDown: (event) => {
|
|
1503
|
+
if (p.disabled || full || event.nativeEvent?.isComposing) return;
|
|
1504
|
+
if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
1505
|
+
event.preventDefault();
|
|
1506
|
+
setOpen(true);
|
|
1507
|
+
setActive(visible ? (activeIndex + (event.key === "ArrowDown" ? 1 : -1) + options.length) % Math.max(1, options.length) : event.key === "ArrowDown" ? 0 : Math.max(0, options.length - 1));
|
|
1508
|
+
} else if (event.key === "Enter" && visible && options[activeIndex] && !loading && !searchError) {
|
|
1509
|
+
event.preventDefault();
|
|
1510
|
+
pick(options[activeIndex]);
|
|
1511
|
+
} else if (event.key === "Escape" || event.key === "Tab") {
|
|
1512
|
+
if (event.key === "Escape" && visible) event.preventDefault();
|
|
1513
|
+
setOpen(false);
|
|
1514
|
+
} else if (event.key === "Backspace" && !query && chosen.length) {
|
|
1515
|
+
setChosen(chosen.slice(0, -1));
|
|
1516
|
+
}
|
|
1517
|
+
},
|
|
1518
|
+
chips: chosen.map((person) => /* @__PURE__ */ jsx18(
|
|
1519
|
+
Chip,
|
|
1520
|
+
{
|
|
1521
|
+
label: person.name,
|
|
1522
|
+
avatar: { name: person.name, src: person.src },
|
|
1523
|
+
disabled: p.disabled,
|
|
1524
|
+
onRemove: () => setChosen(chosen.filter((c) => c.id !== person.id))
|
|
1525
|
+
},
|
|
1526
|
+
person.id
|
|
1527
|
+
))
|
|
1528
|
+
}
|
|
1529
|
+
),
|
|
1530
|
+
/* @__PURE__ */ jsx18(
|
|
1531
|
+
Popover,
|
|
1532
|
+
{
|
|
1533
|
+
id: listId,
|
|
1534
|
+
open: visible,
|
|
1535
|
+
onOpenChange: setOpen,
|
|
1536
|
+
anchorRef: box,
|
|
1537
|
+
role: "listbox",
|
|
1538
|
+
align: "start",
|
|
1539
|
+
matchAnchorWidth: true,
|
|
1540
|
+
autoFocus: false,
|
|
1541
|
+
className: "ad-option-popover",
|
|
1542
|
+
label: tr("\u041B\u044E\u0434\u0438"),
|
|
1543
|
+
children: /* @__PURE__ */ jsxs11("div", { className: "ad-option-list", children: [
|
|
1544
|
+
loading && /* @__PURE__ */ jsxs11("div", { className: "ad-option-empty", children: [
|
|
1545
|
+
/* @__PURE__ */ jsx18("span", { className: "ad-spinner", "aria-hidden": true }),
|
|
1546
|
+
" ",
|
|
1547
|
+
tr("\u0418\u0449\u0435\u043C\u2026")
|
|
1548
|
+
] }),
|
|
1549
|
+
!loading && (searchError || options.length === 0) && /* @__PURE__ */ jsx18("div", { className: "ad-option-empty", children: searchError ?? (onSearch && !needle ? tr("\u041D\u0430\u0447\u043D\u0438\u0442\u0435 \u0432\u0432\u043E\u0434\u0438\u0442\u044C \u0438\u043C\u044F") : tr("\u041D\u0438\u043A\u043E\u0433\u043E \u043D\u0435 \u043D\u0430\u0448\u043B\u0438")) }),
|
|
1550
|
+
!loading && !searchError && options.map((person, index) => /* @__PURE__ */ jsxs11(
|
|
1551
|
+
"button",
|
|
1552
|
+
{
|
|
1553
|
+
id: `${listId}-option-${index}`,
|
|
1554
|
+
type: "button",
|
|
1555
|
+
role: "option",
|
|
1556
|
+
tabIndex: -1,
|
|
1557
|
+
className: "ad-option",
|
|
1558
|
+
"aria-selected": false,
|
|
1559
|
+
"data-active": index === activeIndex || void 0,
|
|
1560
|
+
onPointerMove: () => setActive(index),
|
|
1561
|
+
onPointerDown: (event) => event.preventDefault(),
|
|
1562
|
+
onClick: () => pick(person),
|
|
1563
|
+
children: [
|
|
1564
|
+
/* @__PURE__ */ jsx18(Avatar, { size: "sm", name: person.name, src: person.src, presence: person.presence }),
|
|
1565
|
+
/* @__PURE__ */ jsxs11("span", { className: "ad-option-text", children: [
|
|
1566
|
+
/* @__PURE__ */ jsx18("span", { className: "ad-option-label", children: person.name }),
|
|
1567
|
+
person.description && /* @__PURE__ */ jsx18("span", { className: "ad-option-description", children: person.description })
|
|
1568
|
+
] })
|
|
1569
|
+
]
|
|
1570
|
+
},
|
|
1571
|
+
person.id
|
|
1572
|
+
))
|
|
1573
|
+
] })
|
|
1574
|
+
}
|
|
1575
|
+
)
|
|
1576
|
+
] });
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
// src/components/controls/DatePicker/DatePicker.tsx
|
|
1580
|
+
import { useEffect as useEffect5, useMemo as useMemo3, useRef as useRef8, useState as useState5 } from "react";
|
|
1581
|
+
import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1582
|
+
var iso = (date) => `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
|
|
1583
|
+
var calendarDate = (year, month, day) => {
|
|
1584
|
+
const date = /* @__PURE__ */ new Date(0);
|
|
1585
|
+
date.setFullYear(year, month - 1, day);
|
|
1586
|
+
return date.getFullYear() === year && date.getMonth() + 1 === month && date.getDate() === day ? date : null;
|
|
1587
|
+
};
|
|
1588
|
+
var parse = (value) => {
|
|
1589
|
+
const match = value && /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
|
|
1590
|
+
return match ? calendarDate(Number(match[1]), Number(match[2]), Number(match[3])) : null;
|
|
1591
|
+
};
|
|
1592
|
+
var parseTyped = (text) => {
|
|
1593
|
+
const match = /^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/.exec(text.trim());
|
|
1594
|
+
if (!match) return null;
|
|
1595
|
+
return calendarDate(Number(match[3]), Number(match[2]), Number(match[1]));
|
|
1596
|
+
};
|
|
1597
|
+
var intlLocale = (code) => ({ ru: "ru-RU", en: "en-GB", uk: "uk-UA" })[code] ?? code;
|
|
1598
|
+
function DatePicker({ value: controlled, defaultValue = "", onValueChange, min, max, locale: requestedLocale, placeholder, ...p }) {
|
|
1599
|
+
const tr = useTr();
|
|
1600
|
+
const inheritedLocale = useLocale();
|
|
1601
|
+
const locale = requestedLocale ?? intlLocale(inheritedLocale);
|
|
1602
|
+
const [value, setValue] = useControllable(controlled, defaultValue, onValueChange);
|
|
1603
|
+
const selected = parse(value);
|
|
1604
|
+
const [open, setOpen] = useState5(false);
|
|
1605
|
+
useEffect5(() => {
|
|
1606
|
+
if (p.disabled) setOpen(false);
|
|
1607
|
+
}, [p.disabled]);
|
|
1608
|
+
const [text, setText] = useState5(null);
|
|
1609
|
+
const [month, setMonth] = useState5(() => selected ?? /* @__PURE__ */ new Date());
|
|
1610
|
+
const box = useRef8(null);
|
|
1611
|
+
const ids = useFieldIds(p.label, p.description || p.error, void 0, p);
|
|
1612
|
+
const format = useMemo3(() => new Intl.DateTimeFormat(locale, { day: "2-digit", month: "2-digit", year: "numeric" }), [locale]);
|
|
1613
|
+
const weekdays = useMemo3(
|
|
1614
|
+
() => Array.from({ length: 7 }, (_, i) => new Intl.DateTimeFormat(locale, { weekday: "short" }).format(new Date(2024, 0, 1 + i))),
|
|
1615
|
+
[locale]
|
|
1616
|
+
);
|
|
1617
|
+
const today = iso(/* @__PURE__ */ new Date());
|
|
1618
|
+
const monthLabel = new Intl.DateTimeFormat(locale, { month: "long", year: "numeric" }).format(month);
|
|
1619
|
+
const allowed = (day) => (!min || day >= min) && (!max || day <= max);
|
|
1620
|
+
const first = new Date(month.getFullYear(), month.getMonth(), 1);
|
|
1621
|
+
const offset = (first.getDay() + 6) % 7;
|
|
1622
|
+
const days = Array.from({ length: 42 }, (_, i) => new Date(month.getFullYear(), month.getMonth(), 1 - offset + i));
|
|
1623
|
+
const choose = (date) => {
|
|
1624
|
+
const day = iso(date);
|
|
1625
|
+
if (!allowed(day)) return;
|
|
1626
|
+
setValue(day);
|
|
1627
|
+
setText(null);
|
|
1628
|
+
setOpen(false);
|
|
1629
|
+
};
|
|
1630
|
+
const shift = (months) => setMonth(new Date(month.getFullYear(), month.getMonth() + months, 1));
|
|
1631
|
+
return /* @__PURE__ */ jsxs12("div", { ...mark("DatePicker", p), children: [
|
|
1632
|
+
/* @__PURE__ */ jsx19(FieldFrame, { ids, className: "", label: p.label, required: p.required, description: p.description, error: p.error, children: /* @__PURE__ */ jsx19(
|
|
1633
|
+
InputBase,
|
|
1634
|
+
{
|
|
1635
|
+
ref: box,
|
|
1636
|
+
size: p.size,
|
|
1637
|
+
disabled: p.disabled,
|
|
1638
|
+
error: !!p.error,
|
|
1639
|
+
filled: !!selected,
|
|
1640
|
+
endAdornment: /* @__PURE__ */ jsx19(
|
|
1641
|
+
IconButton,
|
|
1642
|
+
{
|
|
1643
|
+
size: "xs",
|
|
1644
|
+
variant: "ghost",
|
|
1645
|
+
icon: "clock",
|
|
1646
|
+
label: tr("\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C"),
|
|
1647
|
+
disabled: p.disabled,
|
|
1648
|
+
onClick: () => {
|
|
1649
|
+
setMonth(selected ?? /* @__PURE__ */ new Date());
|
|
1650
|
+
setOpen((v) => !v);
|
|
1651
|
+
}
|
|
1652
|
+
}
|
|
1653
|
+
),
|
|
1654
|
+
children: /* @__PURE__ */ jsx19(
|
|
1655
|
+
"input",
|
|
1656
|
+
{
|
|
1657
|
+
...ids.aria,
|
|
1658
|
+
id: ids.control,
|
|
1659
|
+
value: text ?? (selected ? format.format(selected) : ""),
|
|
1660
|
+
placeholder: placeholder ?? tr("\u0434\u0434.\u043C\u043C.\u0433\u0433\u0433\u0433"),
|
|
1661
|
+
disabled: p.disabled,
|
|
1662
|
+
required: p.required,
|
|
1663
|
+
"aria-invalid": !!p.error || void 0,
|
|
1664
|
+
onChange: (event) => setText(event.currentTarget.value),
|
|
1665
|
+
onFocus: () => setMonth(selected ?? /* @__PURE__ */ new Date()),
|
|
1666
|
+
onBlur: () => {
|
|
1667
|
+
if (text === null) return;
|
|
1668
|
+
const typed = parseTyped(text);
|
|
1669
|
+
if (!text.trim()) setValue("");
|
|
1670
|
+
else if (typed && allowed(iso(typed))) setValue(iso(typed));
|
|
1671
|
+
setText(null);
|
|
1672
|
+
},
|
|
1673
|
+
onKeyDown: (event) => {
|
|
1674
|
+
if (event.key === "Enter") event.currentTarget.blur();
|
|
1675
|
+
if (event.key === "ArrowDown" && event.altKey) setOpen(true);
|
|
1676
|
+
}
|
|
1677
|
+
}
|
|
1678
|
+
)
|
|
1679
|
+
}
|
|
1680
|
+
) }),
|
|
1681
|
+
/* @__PURE__ */ jsx19(Popover, { open: open && !p.disabled, onOpenChange: setOpen, anchorRef: box, align: "start", label: tr("\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C"), className: "ad-date-popover", children: /* @__PURE__ */ jsxs12("div", { className: "ad-calendar", children: [
|
|
1682
|
+
/* @__PURE__ */ jsxs12("div", { className: "ad-calendar-head", children: [
|
|
1683
|
+
/* @__PURE__ */ jsx19(IconButton, { size: "xs", variant: "ghost", icon: "prev", label: tr("\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446"), onClick: () => shift(-1) }),
|
|
1684
|
+
/* @__PURE__ */ jsx19("strong", { children: monthLabel }),
|
|
1685
|
+
/* @__PURE__ */ jsx19(IconButton, { size: "xs", variant: "ghost", icon: "prev", className: "ad-calendar-next", label: tr("\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446"), onClick: () => shift(1) })
|
|
1686
|
+
] }),
|
|
1687
|
+
/* @__PURE__ */ jsxs12("div", { className: "ad-calendar-grid", role: "group", "aria-label": monthLabel, children: [
|
|
1688
|
+
weekdays.map((day) => /* @__PURE__ */ jsx19("span", { className: "ad-calendar-weekday", children: day }, day)),
|
|
1689
|
+
days.map((date) => {
|
|
1690
|
+
const day = iso(date);
|
|
1691
|
+
return /* @__PURE__ */ jsx19(
|
|
1692
|
+
"button",
|
|
1693
|
+
{
|
|
1694
|
+
type: "button",
|
|
1695
|
+
className: "ad-calendar-day",
|
|
1696
|
+
disabled: !allowed(day),
|
|
1697
|
+
"data-outside": date.getMonth() !== month.getMonth() || void 0,
|
|
1698
|
+
"data-today": day === today || void 0,
|
|
1699
|
+
"aria-pressed": day === value,
|
|
1700
|
+
"aria-label": format.format(date),
|
|
1701
|
+
onClick: () => choose(date),
|
|
1702
|
+
children: date.getDate()
|
|
1703
|
+
},
|
|
1704
|
+
day
|
|
1705
|
+
);
|
|
1706
|
+
})
|
|
1707
|
+
] }),
|
|
1708
|
+
/* @__PURE__ */ jsxs12("div", { className: "ad-calendar-foot", children: [
|
|
1709
|
+
/* @__PURE__ */ jsx19(Button, { size: "xs", variant: "ghost", icon: "clock", disabled: !allowed(today), onClick: () => choose(/* @__PURE__ */ new Date()), children: tr("\u0421\u0435\u0433\u043E\u0434\u043D\u044F") }),
|
|
1710
|
+
selected && /* @__PURE__ */ jsx19(Button, { size: "xs", variant: "ghost", icon: "close", onClick: () => {
|
|
1711
|
+
setValue("");
|
|
1712
|
+
setOpen(false);
|
|
1713
|
+
}, children: tr("\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C") })
|
|
1714
|
+
] })
|
|
1715
|
+
] }) })
|
|
1716
|
+
] });
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1719
|
+
// src/components/controls/Autocomplete/Autocomplete.tsx
|
|
1720
|
+
import { useEffect as useEffect6, useMemo as useMemo4, useRef as useRef9, useState as useState6 } from "react";
|
|
1721
|
+
import { Fragment as Fragment5, jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1722
|
+
var defaultOptions = ["WASAPI Shared", "WASAPI Exclusive", "ASIO"];
|
|
1723
|
+
var Autocomplete = ({
|
|
1724
|
+
options = defaultOptions,
|
|
1725
|
+
onOptionSelect,
|
|
1726
|
+
value,
|
|
1727
|
+
defaultValue = "",
|
|
1728
|
+
onValueChange,
|
|
1729
|
+
label,
|
|
1730
|
+
description,
|
|
1731
|
+
error,
|
|
1732
|
+
startAdornment,
|
|
1733
|
+
endAdornment,
|
|
1734
|
+
clearable,
|
|
1735
|
+
inputRef,
|
|
1736
|
+
className,
|
|
1737
|
+
size,
|
|
1738
|
+
variant,
|
|
1739
|
+
labelPlacement = "top",
|
|
1740
|
+
tone: _tone,
|
|
1741
|
+
material: _material,
|
|
1742
|
+
style,
|
|
1743
|
+
children: _children,
|
|
1744
|
+
...input
|
|
1745
|
+
}) => {
|
|
1746
|
+
const tr = useTr();
|
|
1747
|
+
const [current, setCurrent] = useControllable(
|
|
1748
|
+
value,
|
|
1749
|
+
defaultValue,
|
|
1750
|
+
onValueChange
|
|
1751
|
+
);
|
|
1752
|
+
const [open, setOpen] = useState6(false);
|
|
1753
|
+
const [active, setActive] = useState6(0);
|
|
1754
|
+
const inputNode = useRef9(null);
|
|
1755
|
+
const box = useRef9(null);
|
|
1756
|
+
const ids = useFieldIds(label, description || error, input.id, input);
|
|
1757
|
+
const locked = !!(input.disabled || input.readOnly);
|
|
1758
|
+
useEffect6(() => {
|
|
1759
|
+
if (locked) setOpen(false);
|
|
1760
|
+
}, [locked]);
|
|
1761
|
+
const all = useMemo4(() => options.map(toOption), [options]);
|
|
1762
|
+
const filtered = useMemo4(() => {
|
|
1763
|
+
const query = all.some((o) => o.value === current || o.label === current) ? "" : current.trim().toLocaleLowerCase();
|
|
1764
|
+
return all.filter((o) => !query || String(o.label).toLocaleLowerCase().includes(query) || o.value.toLocaleLowerCase().includes(query));
|
|
1765
|
+
}, [all, current]);
|
|
1766
|
+
const listId = `${input.id ?? ids.label}-listbox`;
|
|
1767
|
+
const visible = open && !locked && filtered.length > 0;
|
|
1768
|
+
const activeIndex = Math.max(0, Math.min(active, filtered.length - 1));
|
|
1769
|
+
useActiveOption(listId, activeIndex, visible);
|
|
1770
|
+
const choose = (next) => {
|
|
1771
|
+
if (locked) return;
|
|
1772
|
+
setCurrent(next);
|
|
1773
|
+
onOptionSelect?.(next);
|
|
1774
|
+
setOpen(false);
|
|
1775
|
+
inputNode.current?.focus();
|
|
1776
|
+
};
|
|
1777
|
+
const floating = labelPlacement === "floating" && !!label;
|
|
1778
|
+
return /* @__PURE__ */ jsxs13(
|
|
1779
|
+
FieldFrame,
|
|
1780
|
+
{
|
|
1781
|
+
ids,
|
|
1782
|
+
style,
|
|
1783
|
+
className: `ad-autocomplete-shell ${className ?? ""}`,
|
|
1784
|
+
label: floating ? void 0 : label,
|
|
1785
|
+
required: input.required,
|
|
1786
|
+
description,
|
|
1787
|
+
error,
|
|
1788
|
+
children: [
|
|
1789
|
+
/* @__PURE__ */ jsx20(
|
|
1790
|
+
InputBase,
|
|
1791
|
+
{
|
|
1792
|
+
ref: box,
|
|
1793
|
+
size,
|
|
1794
|
+
variant,
|
|
1795
|
+
labelId: ids.label,
|
|
1796
|
+
label: floating ? fieldLabel(label, input.required) : void 0,
|
|
1797
|
+
filled: !!current,
|
|
1798
|
+
disabled: input.disabled,
|
|
1799
|
+
readOnly: input.readOnly,
|
|
1800
|
+
error: !!error,
|
|
1801
|
+
startAdornment,
|
|
1802
|
+
endAdornment: /* @__PURE__ */ jsxs13(Fragment5, { children: [
|
|
1803
|
+
clearable && current && /* @__PURE__ */ jsx20(
|
|
1804
|
+
IconButton,
|
|
1805
|
+
{
|
|
1806
|
+
size: "xs",
|
|
1807
|
+
variant: "ghost",
|
|
1808
|
+
icon: "close",
|
|
1809
|
+
label: tr("\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C"),
|
|
1810
|
+
disabled: input.disabled || input.readOnly,
|
|
1811
|
+
onClick: () => {
|
|
1812
|
+
setCurrent("");
|
|
1813
|
+
setOpen(true);
|
|
1814
|
+
}
|
|
1815
|
+
}
|
|
1816
|
+
),
|
|
1817
|
+
endAdornment,
|
|
1818
|
+
/* @__PURE__ */ jsx20(
|
|
1819
|
+
IconButton,
|
|
1820
|
+
{
|
|
1821
|
+
size: "xs",
|
|
1822
|
+
variant: "ghost",
|
|
1823
|
+
icon: "chevron",
|
|
1824
|
+
label: tr("\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B"),
|
|
1825
|
+
disabled: input.disabled || input.readOnly,
|
|
1826
|
+
"aria-expanded": visible,
|
|
1827
|
+
onClick: () => {
|
|
1828
|
+
inputNode.current?.focus();
|
|
1829
|
+
setOpen(!visible);
|
|
1830
|
+
}
|
|
1831
|
+
}
|
|
1832
|
+
)
|
|
1833
|
+
] }),
|
|
1834
|
+
children: /* @__PURE__ */ jsx20(
|
|
1835
|
+
"input",
|
|
1836
|
+
{
|
|
1837
|
+
...ids.aria,
|
|
1838
|
+
...input,
|
|
1839
|
+
id: ids.control,
|
|
1840
|
+
className: "ad-autocomplete-input",
|
|
1841
|
+
ref: (n) => {
|
|
1842
|
+
inputNode.current = n;
|
|
1843
|
+
assignRef(inputRef, n);
|
|
1844
|
+
},
|
|
1845
|
+
value: current,
|
|
1846
|
+
role: "combobox",
|
|
1847
|
+
"aria-autocomplete": "list",
|
|
1848
|
+
"aria-expanded": visible,
|
|
1849
|
+
"aria-controls": visible ? listId : void 0,
|
|
1850
|
+
"aria-activedescendant": visible ? `${listId}-option-${activeIndex}` : void 0,
|
|
1851
|
+
"aria-invalid": !!error || input["aria-invalid"],
|
|
1852
|
+
onFocus: (event) => {
|
|
1853
|
+
input.onFocus?.(event);
|
|
1854
|
+
if (!locked && !event?.defaultPrevented) setOpen(true);
|
|
1855
|
+
},
|
|
1856
|
+
onChange: (e) => {
|
|
1857
|
+
setCurrent(e.currentTarget.value);
|
|
1858
|
+
setOpen(true);
|
|
1859
|
+
setActive(0);
|
|
1860
|
+
},
|
|
1861
|
+
onKeyDown: (e) => {
|
|
1862
|
+
input.onKeyDown?.(e);
|
|
1863
|
+
if (locked || e.defaultPrevented || e.nativeEvent?.isComposing) return;
|
|
1864
|
+
if (e.key === "ArrowDown") {
|
|
1865
|
+
e.preventDefault();
|
|
1866
|
+
setOpen(true);
|
|
1867
|
+
setActive(visible ? Math.min(filtered.length - 1, activeIndex + 1) : 0);
|
|
1868
|
+
} else if (e.key === "ArrowUp") {
|
|
1869
|
+
e.preventDefault();
|
|
1870
|
+
setOpen(true);
|
|
1871
|
+
setActive(visible ? Math.max(0, activeIndex - 1) : Math.max(0, filtered.length - 1));
|
|
1872
|
+
} else if (e.key === "Enter" && visible && filtered[activeIndex]) {
|
|
1873
|
+
e.preventDefault();
|
|
1874
|
+
choose(filtered[activeIndex].value);
|
|
1875
|
+
} else if (e.key === "Escape" || e.key === "Tab") {
|
|
1876
|
+
if (e.key === "Escape" && visible) e.preventDefault();
|
|
1877
|
+
setOpen(false);
|
|
1878
|
+
}
|
|
1879
|
+
}
|
|
1880
|
+
}
|
|
1881
|
+
)
|
|
1882
|
+
}
|
|
1883
|
+
),
|
|
1884
|
+
/* @__PURE__ */ jsx20(
|
|
1885
|
+
Popover,
|
|
1886
|
+
{
|
|
1887
|
+
id: listId,
|
|
1888
|
+
open: visible,
|
|
1889
|
+
onOpenChange: setOpen,
|
|
1890
|
+
anchorRef: box,
|
|
1891
|
+
autoFocus: false,
|
|
1892
|
+
role: "listbox",
|
|
1893
|
+
align: "start",
|
|
1894
|
+
matchAnchorWidth: true,
|
|
1895
|
+
className: "ad-option-popover ad-autocomplete-popover",
|
|
1896
|
+
label: typeof label === "string" ? label : tr("\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438"),
|
|
1897
|
+
children: /* @__PURE__ */ jsx20(
|
|
1898
|
+
OptionList,
|
|
1899
|
+
{
|
|
1900
|
+
id: listId,
|
|
1901
|
+
options: filtered,
|
|
1902
|
+
selected: current,
|
|
1903
|
+
active: activeIndex,
|
|
1904
|
+
onChoose: choose,
|
|
1905
|
+
onHover: setActive
|
|
1906
|
+
}
|
|
1907
|
+
)
|
|
1908
|
+
}
|
|
1909
|
+
)
|
|
1910
|
+
]
|
|
1911
|
+
}
|
|
1912
|
+
);
|
|
1913
|
+
};
|
|
1914
|
+
|
|
1915
|
+
// src/components/controls/Checkbox/Checkbox.tsx
|
|
1916
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1917
|
+
var Checkbox = (p) => /* @__PURE__ */ jsx21(BooleanControl, { kind: "Checkbox", ...p });
|
|
1918
|
+
|
|
1919
|
+
// src/components/controls/NumberField/NumberField.tsx
|
|
1920
|
+
import { Fragment as Fragment6, jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1921
|
+
var NumberField = ({
|
|
1922
|
+
value,
|
|
1923
|
+
defaultValue = 0,
|
|
1924
|
+
onValueChange,
|
|
1925
|
+
min,
|
|
1926
|
+
max,
|
|
1927
|
+
step = 1,
|
|
1928
|
+
endAdornment,
|
|
1929
|
+
className,
|
|
1930
|
+
controls = true,
|
|
1931
|
+
...p
|
|
1932
|
+
}) => {
|
|
1933
|
+
const tr = useTr();
|
|
1934
|
+
const [current, setCurrent] = useControllable(
|
|
1935
|
+
value,
|
|
1936
|
+
defaultValue,
|
|
1937
|
+
onValueChange
|
|
1938
|
+
);
|
|
1939
|
+
const low = min === void 0 ? -Infinity : Number(min);
|
|
1940
|
+
const high = max === void 0 ? Infinity : Number(max);
|
|
1941
|
+
const locked = p.disabled || p.readOnly;
|
|
1942
|
+
const increment = Number(step) > 0 && Number.isFinite(Number(step)) ? Number(step) : 1;
|
|
1943
|
+
const nudge = (direction) => setCurrent(
|
|
1944
|
+
clamp(
|
|
1945
|
+
Number(((current || 0) + direction * increment).toFixed(10)),
|
|
1946
|
+
low,
|
|
1947
|
+
high
|
|
1948
|
+
)
|
|
1949
|
+
);
|
|
1950
|
+
return /* @__PURE__ */ jsx22(
|
|
1951
|
+
TextField,
|
|
1952
|
+
{
|
|
1953
|
+
...p,
|
|
1954
|
+
className: classes("ad-number-field", className),
|
|
1955
|
+
type: "number",
|
|
1956
|
+
inputMode: "decimal",
|
|
1957
|
+
min,
|
|
1958
|
+
max,
|
|
1959
|
+
step,
|
|
1960
|
+
value: String(current),
|
|
1961
|
+
onValueChange: (v) => setCurrent(v === "" ? "" : Number(v)),
|
|
1962
|
+
endAdornment: /* @__PURE__ */ jsxs14(Fragment6, { children: [
|
|
1963
|
+
endAdornment,
|
|
1964
|
+
controls && /* @__PURE__ */ jsxs14(Fragment6, { children: [
|
|
1965
|
+
/* @__PURE__ */ jsx22(
|
|
1966
|
+
IconButton,
|
|
1967
|
+
{
|
|
1968
|
+
size: "xs",
|
|
1969
|
+
variant: "ghost",
|
|
1970
|
+
icon: "minus",
|
|
1971
|
+
label: tr("\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C"),
|
|
1972
|
+
disabled: locked || current !== "" && current <= low,
|
|
1973
|
+
onClick: () => nudge(-1)
|
|
1974
|
+
}
|
|
1975
|
+
),
|
|
1976
|
+
/* @__PURE__ */ jsx22(
|
|
1977
|
+
IconButton,
|
|
1978
|
+
{
|
|
1979
|
+
size: "xs",
|
|
1980
|
+
variant: "ghost",
|
|
1981
|
+
icon: "plus",
|
|
1982
|
+
label: tr("\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C"),
|
|
1983
|
+
disabled: locked || current !== "" && current >= high,
|
|
1984
|
+
onClick: () => nudge(1)
|
|
1985
|
+
}
|
|
1986
|
+
)
|
|
1987
|
+
] })
|
|
1988
|
+
] })
|
|
1989
|
+
}
|
|
1990
|
+
);
|
|
1991
|
+
};
|
|
1992
|
+
|
|
1993
|
+
// src/components/controls/Select/Select.tsx
|
|
1994
|
+
import { forwardRef as forwardRef5, useEffect as useEffect7, useMemo as useMemo5, useRef as useRef10, useState as useState7 } from "react";
|
|
1995
|
+
import { Fragment as Fragment7, jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1996
|
+
var defaultKey = (value) => typeof value === "object" && value !== null ? JSON.stringify(value) : String(value);
|
|
1997
|
+
var textOf = (option) => option.text ?? (typeof option.label === "string" || typeof option.label === "number" ? String(option.label) : "");
|
|
1998
|
+
var Select = /* @__PURE__ */ forwardRef5(function Select2(p, ref) {
|
|
1999
|
+
const tr = useTr();
|
|
2000
|
+
const floating = p.labelPlacement === "floating" && !!p.label;
|
|
2001
|
+
const keyOf = p.getKey ?? defaultKey;
|
|
2002
|
+
const options = useMemo5(
|
|
2003
|
+
() => (p.options ?? ["\u041F\u0435\u0440\u0432\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442", "\u0412\u0442\u043E\u0440\u043E\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442"].map((label) => ({ value: label, label: tr(label) }))).map(
|
|
2004
|
+
(option) => typeof option === "object" && option !== null && "value" in option ? option : { value: option, label: String(option) }
|
|
2005
|
+
),
|
|
2006
|
+
[p.options, tr]
|
|
2007
|
+
);
|
|
2008
|
+
const [value, setValue] = useControllable(
|
|
2009
|
+
p.value,
|
|
2010
|
+
p.defaultValue ?? (p.placeholder ? void 0 : options.find((option) => !option.disabled)?.value),
|
|
2011
|
+
p.onValueChange
|
|
2012
|
+
);
|
|
2013
|
+
const [open, setOpen] = useState7(false);
|
|
2014
|
+
const [query, setQuery] = useState7("");
|
|
2015
|
+
const [invalid, setInvalid] = useState7(false);
|
|
2016
|
+
useEffect7(() => {
|
|
2017
|
+
if (p.disabled) {
|
|
2018
|
+
setOpen(false);
|
|
2019
|
+
setQuery("");
|
|
2020
|
+
}
|
|
2021
|
+
}, [p.disabled]);
|
|
2022
|
+
const anchor = useRef10(null);
|
|
2023
|
+
const box = useRef10(null);
|
|
2024
|
+
const keyedOptions = useMemo5(() => options.map((option) => ({ option, key: keyOf(option.value) })), [options, keyOf]);
|
|
2025
|
+
const selectedKey = value === void 0 ? void 0 : keyOf(value);
|
|
2026
|
+
const selected = keyedOptions.find(({ key }) => key === selectedKey)?.option;
|
|
2027
|
+
const error = p.error || (invalid && p.required && !selected ? tr("\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435") : void 0);
|
|
2028
|
+
const ids = useFieldIds(p.label, error || p.description, p.id, p);
|
|
2029
|
+
const rows = useMemo5(() => {
|
|
2030
|
+
if (!open) return [];
|
|
2031
|
+
const needle = query.trim().toLowerCase();
|
|
2032
|
+
const groups = /* @__PURE__ */ new Map();
|
|
2033
|
+
for (const entry of keyedOptions) {
|
|
2034
|
+
const { option } = entry;
|
|
2035
|
+
if (needle && !`${textOf(option)} ${option.group ?? ""}`.toLowerCase().includes(needle)) continue;
|
|
2036
|
+
const group = option.group ?? "";
|
|
2037
|
+
const items = groups.get(group) ?? [];
|
|
2038
|
+
items.push(entry);
|
|
2039
|
+
groups.set(group, items);
|
|
2040
|
+
}
|
|
2041
|
+
return [...groups.values()].flatMap((group) => group.map(({ option, key }) => {
|
|
2042
|
+
return {
|
|
2043
|
+
value: key,
|
|
2044
|
+
label: option.label,
|
|
2045
|
+
disabled: option.disabled,
|
|
2046
|
+
icon: option.icon,
|
|
2047
|
+
avatar: option.avatar,
|
|
2048
|
+
description: option.description,
|
|
2049
|
+
group: option.group,
|
|
2050
|
+
content: p.renderOption?.(option, { selected: key === selectedKey })
|
|
2051
|
+
};
|
|
2052
|
+
}));
|
|
2053
|
+
}, [open, query, keyedOptions, selectedKey, p.renderOption]);
|
|
2054
|
+
const choose = (key) => {
|
|
2055
|
+
const option = keyedOptions.find((item) => item.key === key)?.option;
|
|
2056
|
+
if (!option) return;
|
|
2057
|
+
setValue(option.value);
|
|
2058
|
+
setOpen(false);
|
|
2059
|
+
setQuery("");
|
|
2060
|
+
anchor.current?.focus();
|
|
2061
|
+
};
|
|
2062
|
+
const shownValue = selected ? p.renderValue?.(selected) ?? /* @__PURE__ */ jsxs15(Fragment7, { children: [
|
|
2063
|
+
selected.avatar && /* @__PURE__ */ jsx23(Avatar, { size: "xs", name: selected.avatar.name, src: selected.avatar.src }),
|
|
2064
|
+
selected.icon && /* @__PURE__ */ jsx23(Icon, { name: selected.icon }),
|
|
2065
|
+
/* @__PURE__ */ jsx23("span", { className: "ad-select-value-text", children: selected.label })
|
|
2066
|
+
] }) : p.placeholder ?? tr("\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435");
|
|
2067
|
+
return /* @__PURE__ */ jsxs15(
|
|
2068
|
+
FieldFrame,
|
|
2069
|
+
{
|
|
2070
|
+
ids,
|
|
2071
|
+
style: p.style,
|
|
2072
|
+
className: `ad-select-shell ${p.className ?? ""}`,
|
|
2073
|
+
label: floating ? void 0 : p.label,
|
|
2074
|
+
required: p.required,
|
|
2075
|
+
description: p.description,
|
|
2076
|
+
error,
|
|
2077
|
+
children: [
|
|
2078
|
+
/* @__PURE__ */ jsx23(
|
|
2079
|
+
InputBase,
|
|
2080
|
+
{
|
|
2081
|
+
ref: box,
|
|
2082
|
+
size: p.size,
|
|
2083
|
+
variant: p.variant,
|
|
2084
|
+
labelId: ids.label,
|
|
2085
|
+
label: floating ? fieldLabel(p.label, p.required) : void 0,
|
|
2086
|
+
filled: !!selected,
|
|
2087
|
+
disabled: p.disabled,
|
|
2088
|
+
error: !!error,
|
|
2089
|
+
startAdornment: p.startAdornment ?? (p.icon ? /* @__PURE__ */ jsx23(Icon, { name: p.icon }) : void 0),
|
|
2090
|
+
endAdornment: /* @__PURE__ */ jsxs15(Fragment7, { children: [
|
|
2091
|
+
p.endAdornment,
|
|
2092
|
+
/* @__PURE__ */ jsx23(Icon, { name: "chevron", className: "ad-select-chevron" })
|
|
2093
|
+
] }),
|
|
2094
|
+
children: /* @__PURE__ */ jsx23(
|
|
2095
|
+
"button",
|
|
2096
|
+
{
|
|
2097
|
+
...mark("Select", { ...p, style: void 0 }),
|
|
2098
|
+
...ids.aria,
|
|
2099
|
+
ref: (n) => {
|
|
2100
|
+
anchor.current = n;
|
|
2101
|
+
assignRef(ref, n);
|
|
2102
|
+
},
|
|
2103
|
+
type: "button",
|
|
2104
|
+
id: ids.control,
|
|
2105
|
+
"aria-labelledby": ids.valueLabelledBy,
|
|
2106
|
+
className: "ad-input-control ad-select-control",
|
|
2107
|
+
disabled: p.disabled,
|
|
2108
|
+
"aria-haspopup": "listbox",
|
|
2109
|
+
"aria-expanded": open,
|
|
2110
|
+
"aria-required": p.required || void 0,
|
|
2111
|
+
"aria-invalid": !!error || void 0,
|
|
2112
|
+
"data-placeholder": !selected || void 0,
|
|
2113
|
+
onClick: () => setOpen((v) => !v),
|
|
2114
|
+
children: /* @__PURE__ */ jsx23("span", { className: "ad-select-value", id: ids.value, children: shownValue })
|
|
2115
|
+
}
|
|
2116
|
+
)
|
|
2117
|
+
}
|
|
2118
|
+
),
|
|
2119
|
+
p.name && /* @__PURE__ */ jsx23("input", { type: "hidden", name: p.name, disabled: p.disabled, value: selected ? selected.text ?? selectedKey ?? "" : "" }),
|
|
2120
|
+
p.required && /* @__PURE__ */ jsxs15(
|
|
2121
|
+
"select",
|
|
2122
|
+
{
|
|
2123
|
+
hidden: true,
|
|
2124
|
+
required: true,
|
|
2125
|
+
disabled: p.disabled,
|
|
2126
|
+
tabIndex: -1,
|
|
2127
|
+
"aria-hidden": "true",
|
|
2128
|
+
value: selected ? selectedKey : "",
|
|
2129
|
+
onChange: (event) => choose(event.currentTarget.value),
|
|
2130
|
+
onInvalid: (event) => {
|
|
2131
|
+
event.preventDefault();
|
|
2132
|
+
setInvalid(true);
|
|
2133
|
+
anchor.current?.focus();
|
|
2134
|
+
},
|
|
2135
|
+
children: [
|
|
2136
|
+
/* @__PURE__ */ jsx23("option", { value: "" }),
|
|
2137
|
+
keyedOptions.map(({ option, key }) => /* @__PURE__ */ jsx23("option", { value: key, disabled: option.disabled, children: textOf(option) }, key))
|
|
2138
|
+
]
|
|
2139
|
+
}
|
|
2140
|
+
),
|
|
2141
|
+
/* @__PURE__ */ jsxs15(
|
|
2142
|
+
Popover,
|
|
2143
|
+
{
|
|
2144
|
+
open: open && !p.disabled,
|
|
2145
|
+
onOpenChange: (next) => {
|
|
2146
|
+
setOpen(next);
|
|
2147
|
+
if (!next) {
|
|
2148
|
+
setQuery("");
|
|
2149
|
+
anchor.current?.focus();
|
|
2150
|
+
}
|
|
2151
|
+
},
|
|
2152
|
+
anchorRef: box,
|
|
2153
|
+
role: "listbox",
|
|
2154
|
+
align: "start",
|
|
2155
|
+
matchAnchorWidth: true,
|
|
2156
|
+
className: "ad-option-popover",
|
|
2157
|
+
label: typeof p.label === "string" ? p.label : tr("\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B"),
|
|
2158
|
+
autoFocus: !p.searchable,
|
|
2159
|
+
children: [
|
|
2160
|
+
p.searchable && /* @__PURE__ */ jsxs15("label", { className: "ad-option-search", children: [
|
|
2161
|
+
/* @__PURE__ */ jsx23(Icon, { name: "search" }),
|
|
2162
|
+
/* @__PURE__ */ jsx23(
|
|
2163
|
+
"input",
|
|
2164
|
+
{
|
|
2165
|
+
autoFocus: true,
|
|
2166
|
+
value: query,
|
|
2167
|
+
placeholder: p.searchPlaceholder ?? tr("\u041F\u043E\u0438\u0441\u043A"),
|
|
2168
|
+
"aria-label": p.searchPlaceholder ?? tr("\u041F\u043E\u0438\u0441\u043A"),
|
|
2169
|
+
onChange: (event) => setQuery(event.currentTarget.value),
|
|
2170
|
+
onKeyDown: (event) => {
|
|
2171
|
+
if (event.key === "Enter" && rows[0] && !rows[0].disabled) {
|
|
2172
|
+
event.preventDefault();
|
|
2173
|
+
choose(rows[0].value);
|
|
2174
|
+
}
|
|
2175
|
+
if (event.key === "ArrowDown") {
|
|
2176
|
+
event.preventDefault();
|
|
2177
|
+
event.currentTarget.closest(".ad-option-popover")?.querySelector(".ad-option:not(:disabled)")?.focus();
|
|
2178
|
+
}
|
|
2179
|
+
}
|
|
2180
|
+
}
|
|
2181
|
+
)
|
|
2182
|
+
] }),
|
|
2183
|
+
rows.length ? /* @__PURE__ */ jsx23(OptionList, { options: rows, selected: selectedKey, onChoose: choose }) : /* @__PURE__ */ jsx23("div", { className: "ad-option-empty", children: tr("\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E") })
|
|
2184
|
+
]
|
|
2185
|
+
}
|
|
2186
|
+
)
|
|
2187
|
+
]
|
|
2188
|
+
}
|
|
2189
|
+
);
|
|
2190
|
+
});
|
|
2191
|
+
|
|
2192
|
+
// src/components/media/RotaryKnob/RotaryKnob.tsx
|
|
2193
|
+
import {
|
|
2194
|
+
useEffect as useEffect8,
|
|
2195
|
+
useLayoutEffect as useLayoutEffect3,
|
|
2196
|
+
useMemo as useMemo6,
|
|
2197
|
+
useRef as useRef11,
|
|
2198
|
+
useState as useState8
|
|
2199
|
+
} from "react";
|
|
2200
|
+
|
|
2201
|
+
// src/core/noise.ts
|
|
2202
|
+
var clamp01 = (value, minimum = 0, maximum = 1) => Math.min(maximum, Math.max(minimum, value));
|
|
2203
|
+
function seeded(initialSeed) {
|
|
2204
|
+
let seed = initialSeed;
|
|
2205
|
+
return () => {
|
|
2206
|
+
seed |= 0;
|
|
2207
|
+
seed = seed + 1831565813 | 0;
|
|
2208
|
+
let value = Math.imul(seed ^ seed >>> 15, 1 | seed);
|
|
2209
|
+
value ^= value + Math.imul(value ^ value >>> 7, 61 | value);
|
|
2210
|
+
return ((value ^ value >>> 14) >>> 0) / 4294967296;
|
|
2211
|
+
};
|
|
2212
|
+
}
|
|
2213
|
+
var table = null;
|
|
2214
|
+
function noise(x, y) {
|
|
2215
|
+
table ??= Float32Array.from({ length: 65536 }, seeded(7149));
|
|
2216
|
+
const ix = Math.floor(x), iy = Math.floor(y);
|
|
2217
|
+
let fx = x - ix, fy = y - iy;
|
|
2218
|
+
fx = fx * fx * (3 - 2 * fx);
|
|
2219
|
+
fy = fy * fy * (3 - 2 * fy);
|
|
2220
|
+
const at = (a2, b2) => table[(a2 & 255) + ((b2 & 255) << 8)];
|
|
2221
|
+
const a = at(ix, iy), b = at(ix + 1, iy), c = at(ix, iy + 1), d = at(ix + 1, iy + 1);
|
|
2222
|
+
return (a + (b - a) * fx) * (1 - fy) + (c + (d - c) * fx) * fy;
|
|
2223
|
+
}
|
|
2224
|
+
function fbm(initialX, initialY, octaves = 5) {
|
|
2225
|
+
let x = initialX, y = initialY, value = 0, amplitude = 0.5;
|
|
2226
|
+
for (let i = 0; i < octaves; i += 1) {
|
|
2227
|
+
value += noise(x, y) * amplitude;
|
|
2228
|
+
x = x * 2.03 + 13.2;
|
|
2229
|
+
y = y * 2.07 - 7.4;
|
|
2230
|
+
amplitude *= 0.5;
|
|
2231
|
+
}
|
|
2232
|
+
return value;
|
|
2233
|
+
}
|
|
2234
|
+
var paintings = /* @__PURE__ */ new Map();
|
|
2235
|
+
var nextSlice = () => new Promise((resume) => {
|
|
2236
|
+
if (typeof requestIdleCallback === "function") {
|
|
2237
|
+
requestIdleCallback(resume, { timeout: 32 });
|
|
2238
|
+
} else {
|
|
2239
|
+
setTimeout(() => resume(void 0), 16);
|
|
2240
|
+
}
|
|
2241
|
+
});
|
|
2242
|
+
function paintCanvas(key, width, height, painting) {
|
|
2243
|
+
const id = `${key}:${width}x${height}`;
|
|
2244
|
+
let done = paintings.get(id);
|
|
2245
|
+
if (!done) {
|
|
2246
|
+
done = (async () => {
|
|
2247
|
+
const canvas = document.createElement("canvas");
|
|
2248
|
+
canvas.width = width;
|
|
2249
|
+
canvas.height = height;
|
|
2250
|
+
const context = canvas.getContext("2d");
|
|
2251
|
+
if (!context) return canvas;
|
|
2252
|
+
const image = context.createImageData(width, height);
|
|
2253
|
+
for (let row = 0; row < height; ) {
|
|
2254
|
+
const deadline = await nextSlice();
|
|
2255
|
+
const started = performance.now();
|
|
2256
|
+
const budget = Math.max(1, Math.min(4, deadline?.timeRemaining() ?? 4));
|
|
2257
|
+
do {
|
|
2258
|
+
painting.pixels(image, row, row + 1);
|
|
2259
|
+
row += 1;
|
|
2260
|
+
} while (row < height && performance.now() - started < budget);
|
|
2261
|
+
}
|
|
2262
|
+
await nextSlice();
|
|
2263
|
+
context.putImageData(image, 0, 0);
|
|
2264
|
+
painting.finish?.(context, width, height);
|
|
2265
|
+
return canvas;
|
|
2266
|
+
})();
|
|
2267
|
+
paintings.set(id, done);
|
|
2268
|
+
while (paintings.size > 24) paintings.delete(paintings.keys().next().value);
|
|
2269
|
+
}
|
|
2270
|
+
return done;
|
|
2271
|
+
}
|
|
2272
|
+
|
|
2273
|
+
// src/components/media/RotaryKnob/RotaryKnob.tsx
|
|
2274
|
+
import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2275
|
+
var RotaryKnob = (p) => {
|
|
2276
|
+
const tr = useTr();
|
|
2277
|
+
const rootRef = useRef11(null);
|
|
2278
|
+
const baseRef = useRef11(null);
|
|
2279
|
+
const feedbackRef = useRef11(null);
|
|
2280
|
+
const rotorRef = useRef11(null);
|
|
2281
|
+
const controlRef = useRef11(null);
|
|
2282
|
+
const readoutRef = useRef11(null);
|
|
2283
|
+
const controllerRef = useRef11(null);
|
|
2284
|
+
const onChangeRef = useRef11(p.onValueChange);
|
|
2285
|
+
const onCommitRef = useRef11(p.onValueCommit);
|
|
2286
|
+
const disabledRef = useRef11(!!p.disabled);
|
|
2287
|
+
const readOnlyRef = useRef11(!!p.readOnly);
|
|
2288
|
+
const numberFormat = useMemo6(
|
|
2289
|
+
() => new Intl.NumberFormat("ru-RU", { maximumFractionDigits: 1 }),
|
|
2290
|
+
[]
|
|
2291
|
+
);
|
|
2292
|
+
const min = p.min ?? 0;
|
|
2293
|
+
const span = (p.max ?? 100) - min || 1;
|
|
2294
|
+
const toPosition = (value) => clamp((value - min) / span * 100);
|
|
2295
|
+
const toValue = (position) => Math.round((min + position / 100 * span) * 1e6) / 1e6;
|
|
2296
|
+
const controlledPosition = useRef11(void 0);
|
|
2297
|
+
controlledPosition.current = p.value === void 0 ? void 0 : toPosition(p.value);
|
|
2298
|
+
const displayScale = p.displayScale ?? 1;
|
|
2299
|
+
const format = (value) => `${numberFormat.format(value * displayScale)}${p.suffix ?? "%"}`;
|
|
2300
|
+
const scale = useRef11({ toValue, format });
|
|
2301
|
+
scale.current = { toValue, format };
|
|
2302
|
+
const stepRef = useRef11(1);
|
|
2303
|
+
const fineStepRef = useRef11(0.1);
|
|
2304
|
+
onChangeRef.current = p.onValueChange;
|
|
2305
|
+
onCommitRef.current = p.onValueCommit;
|
|
2306
|
+
disabledRef.current = !!p.disabled;
|
|
2307
|
+
readOnlyRef.current = !!p.readOnly;
|
|
2308
|
+
stepRef.current = Math.max(1e-3, (p.step ?? span / 100) / span * 100);
|
|
2309
|
+
fineStepRef.current = Math.max(1e-3, (p.fineStep ?? span / 1e3) / span * 100);
|
|
2310
|
+
const initial = toPosition(p.value ?? p.defaultValue ?? min + span * 0.67);
|
|
2311
|
+
const initialRef = useRef11(initial);
|
|
2312
|
+
const resetRef = useRef11(void 0);
|
|
2313
|
+
resetRef.current = p.resetValue === void 0 ? void 0 : toPosition(p.resetValue);
|
|
2314
|
+
const diameter = p.diameter ?? { xs: 84, sm: 124, md: 220, lg: 320 }[normalizeSize(p.size) ?? "md"];
|
|
2315
|
+
useLayoutEffect3(() => {
|
|
2316
|
+
const root = rootRef.current;
|
|
2317
|
+
const canvas = baseRef.current;
|
|
2318
|
+
const rotor = rotorRef.current;
|
|
2319
|
+
const feedback = feedbackRef.current;
|
|
2320
|
+
const control = controlRef.current;
|
|
2321
|
+
if (!root || !canvas || !rotor || !feedback || !control) return;
|
|
2322
|
+
const paintable = canPaint();
|
|
2323
|
+
const rotorCtx = paintable ? rotor.getContext("2d") : null;
|
|
2324
|
+
const feedbackCtx = paintable ? feedback.getContext("2d") : null;
|
|
2325
|
+
let ctx = paintable ? canvas.getContext("2d", { alpha: true }) : null;
|
|
2326
|
+
const painted = Boolean(rotorCtx && feedbackCtx && ctx);
|
|
2327
|
+
const TAU = Math.PI * 2;
|
|
2328
|
+
const localClamp = (value2, min2 = 0, max = 1) => Math.max(min2, Math.min(max, value2));
|
|
2329
|
+
const mix = (a, b, amount) => a + (b - a) * amount;
|
|
2330
|
+
const fract = (value2) => value2 - Math.floor(value2);
|
|
2331
|
+
const noise2 = (value2) => fract(Math.sin(value2 * 127.1 + 311.7) * 43758.5453123);
|
|
2332
|
+
const defaultValue = localClamp(Number(initialRef.current) || 0, 0, 100);
|
|
2333
|
+
const startAngle = -135;
|
|
2334
|
+
const sweepAngle = 270;
|
|
2335
|
+
const valueAngle = (value2) => startAngle + value2 * sweepAngle / 100;
|
|
2336
|
+
const initialAngle = valueAngle(defaultValue);
|
|
2337
|
+
const degrees = 180 / Math.PI;
|
|
2338
|
+
const reducedMotion = reducedMotionQuery();
|
|
2339
|
+
const listeners = new AbortController();
|
|
2340
|
+
let value = defaultValue;
|
|
2341
|
+
let requestedValue = value;
|
|
2342
|
+
let visualValue = value;
|
|
2343
|
+
let drag = null;
|
|
2344
|
+
let renderTimer = 0;
|
|
2345
|
+
let animationFrame = 0;
|
|
2346
|
+
let hoverFrame = 0;
|
|
2347
|
+
let latestHover = null;
|
|
2348
|
+
let previousFrame = 0;
|
|
2349
|
+
let disposed = false;
|
|
2350
|
+
async function render() {
|
|
2351
|
+
if (disposed || !painted) return;
|
|
2352
|
+
const cssSize = root.getBoundingClientRect().width;
|
|
2353
|
+
const size = Math.round(
|
|
2354
|
+
Math.min(
|
|
2355
|
+
1800,
|
|
2356
|
+
cssSize * Math.max(2, Math.min(devicePixelRatio || 1, 2.5))
|
|
2357
|
+
)
|
|
2358
|
+
);
|
|
2359
|
+
if (!size || canvas.width === size && canvas.height === size) return;
|
|
2360
|
+
canvas.width = canvas.height = size;
|
|
2361
|
+
const center = size / 2;
|
|
2362
|
+
const radius = size * 0.445;
|
|
2363
|
+
const brush = new Float32Array(Math.ceil(radius * 5) + 8);
|
|
2364
|
+
for (let i = 0; i < brush.length; i++) brush[i] = noise2(i + 17) - 0.5;
|
|
2365
|
+
const picture = await paintCanvas("rotary-knob-base", size, size, {
|
|
2366
|
+
pixels(image, from, to) {
|
|
2367
|
+
const data = image.data;
|
|
2368
|
+
for (let y = from; y < to; y++) {
|
|
2369
|
+
const yy = (y + 0.5 - center) / radius;
|
|
2370
|
+
for (let x = 0; x < size; x++) {
|
|
2371
|
+
const xx = (x + 0.5 - center) / radius;
|
|
2372
|
+
const r = Math.hypot(xx, yy);
|
|
2373
|
+
if (r > 1.055) continue;
|
|
2374
|
+
const index = (y * size + x) * 4;
|
|
2375
|
+
if (r > 1) {
|
|
2376
|
+
const a = Math.exp(-(r - 1) * 135) * 0.09;
|
|
2377
|
+
data[index] = 130;
|
|
2378
|
+
data[index + 1] = 0;
|
|
2379
|
+
data[index + 2] = 9;
|
|
2380
|
+
data[index + 3] = a * 255;
|
|
2381
|
+
continue;
|
|
2382
|
+
}
|
|
2383
|
+
const angle = Math.atan2(yy, xx);
|
|
2384
|
+
const ringPosition = r * radius * 1.8;
|
|
2385
|
+
const bi = Math.floor(ringPosition);
|
|
2386
|
+
const grain = mix(
|
|
2387
|
+
brush[bi] ?? 0,
|
|
2388
|
+
brush[bi + 1] ?? 0,
|
|
2389
|
+
ringPosition - bi
|
|
2390
|
+
);
|
|
2391
|
+
const grain2 = Math.sin(
|
|
2392
|
+
r * radius * 4.8 + Math.sin(angle * 17) * 0.3
|
|
2393
|
+
);
|
|
2394
|
+
const directional = Math.pow(Math.abs(Math.cos(angle + 0.77)), 16);
|
|
2395
|
+
const broad = Math.pow(Math.abs(Math.cos(angle - 0.86)), 5);
|
|
2396
|
+
const edgeLight = 0.5 + 0.5 * Math.cos(angle + 2.15);
|
|
2397
|
+
const grainAmount = grain * 9.5 + grain2 * 2.2;
|
|
2398
|
+
let red = 0, green = 0, blue = 0, v = 0;
|
|
2399
|
+
if (r < 0.704) {
|
|
2400
|
+
const radialLight = 0.7 + 0.3 * Math.sqrt(r / 0.704);
|
|
2401
|
+
const satin = 84 * Math.max(0, Math.cos(angle - 1.01)) ** 28 + 76 * Math.max(0, Math.cos(angle - 2.23)) ** 27 + 116 * Math.max(0, Math.cos(angle - 4.07)) ** 29 + 108 * Math.max(0, Math.cos(angle - 5.31)) ** 30;
|
|
2402
|
+
v = 7 + radialLight * satin + 11 * Math.abs(Math.cos(angle)) ** 14;
|
|
2403
|
+
v += grainAmount * (0.48 + v / 55);
|
|
2404
|
+
v += 9 * Math.exp(-r * 90);
|
|
2405
|
+
v *= 1 - 0.35 * Math.exp(-Math.pow((r - 0.699) / 9e-3, 2));
|
|
2406
|
+
red = v;
|
|
2407
|
+
green = v * 0.995;
|
|
2408
|
+
blue = v * 1.025;
|
|
2409
|
+
} else if (r < 0.709) {
|
|
2410
|
+
v = 8 + 17 * edgeLight;
|
|
2411
|
+
red = v;
|
|
2412
|
+
green = v;
|
|
2413
|
+
blue = v;
|
|
2414
|
+
} else if (r < 0.715) {
|
|
2415
|
+
v = 85 + 133 * edgeLight + 25 * directional;
|
|
2416
|
+
red = v;
|
|
2417
|
+
green = v * 0.96;
|
|
2418
|
+
blue = v * 0.93;
|
|
2419
|
+
} else if (r < 0.729) {
|
|
2420
|
+
const t = (r - 0.715) / 0.014;
|
|
2421
|
+
v = (21 + 111 * directional + 55 * broad) * (1 - t * 0.55) + grainAmount;
|
|
2422
|
+
red = v + 5;
|
|
2423
|
+
green = v;
|
|
2424
|
+
blue = v * 0.98;
|
|
2425
|
+
} else if (r < 0.735) {
|
|
2426
|
+
v = 100 + 106 * edgeLight;
|
|
2427
|
+
red = v;
|
|
2428
|
+
green = v * 0.96;
|
|
2429
|
+
blue = v * 0.94;
|
|
2430
|
+
} else if (r < 0.743) {
|
|
2431
|
+
v = 5 + 11 * edgeLight;
|
|
2432
|
+
red = v + 10;
|
|
2433
|
+
green = v;
|
|
2434
|
+
blue = v;
|
|
2435
|
+
} else if (r < 0.814) {
|
|
2436
|
+
v = 9 + 8 * edgeLight + grainAmount;
|
|
2437
|
+
red = v + 8;
|
|
2438
|
+
green = v;
|
|
2439
|
+
blue = v;
|
|
2440
|
+
} else if (r < 0.819) {
|
|
2441
|
+
v = 72 + 115 * directional + 49 * edgeLight;
|
|
2442
|
+
red = v;
|
|
2443
|
+
green = v * 0.87;
|
|
2444
|
+
blue = v * 0.85;
|
|
2445
|
+
} else if (r < 0.872) {
|
|
2446
|
+
const t = (r - 0.819) / 0.053;
|
|
2447
|
+
const arc = Math.exp(-Math.pow((t - 0.39) / 0.16, 2));
|
|
2448
|
+
const thin = Math.exp(-Math.pow((t - 0.39) / 0.025, 2));
|
|
2449
|
+
const outerRim = Math.exp(-Math.pow((t - 0.94) / 0.035, 2));
|
|
2450
|
+
const bright = 0.4 + 0.6 * Math.pow(Math.abs(Math.sin(angle)), 12);
|
|
2451
|
+
const side = Math.pow(Math.abs(Math.cos(angle)), 34) * 0.65;
|
|
2452
|
+
const reflection = localClamp(bright + side);
|
|
2453
|
+
red = 29 + arc * 197 * reflection + thin * 83 + outerRim * 148;
|
|
2454
|
+
green = 1 + arc * 11 * reflection + thin * 95 * reflection + outerRim * 2;
|
|
2455
|
+
blue = 4 + arc * 13 * reflection + thin * 94 * reflection + outerRim * 6;
|
|
2456
|
+
} else if (r < 0.882) {
|
|
2457
|
+
v = 2 + 8 * edgeLight;
|
|
2458
|
+
red = v + 8;
|
|
2459
|
+
green = v;
|
|
2460
|
+
blue = v;
|
|
2461
|
+
} else if (r < 0.988) {
|
|
2462
|
+
v = 12 + 22 * directional + 11 * broad + grainAmount * 0.7;
|
|
2463
|
+
const innerEdge = Math.exp(-Math.pow((r - 0.885) / 3e-3, 2));
|
|
2464
|
+
red = v + 9 * innerEdge;
|
|
2465
|
+
green = v;
|
|
2466
|
+
blue = v * 1.035;
|
|
2467
|
+
} else if (r < 0.9965) {
|
|
2468
|
+
v = 12 + 24 * edgeLight + 22 * directional;
|
|
2469
|
+
red = v;
|
|
2470
|
+
green = v;
|
|
2471
|
+
blue = v;
|
|
2472
|
+
} else {
|
|
2473
|
+
const t = (r - 0.9965) / 35e-4;
|
|
2474
|
+
v = (50 + 140 * edgeLight) * (1 - t);
|
|
2475
|
+
red = v;
|
|
2476
|
+
green = v;
|
|
2477
|
+
blue = v;
|
|
2478
|
+
}
|
|
2479
|
+
data[index] = localClamp(red, 0, 255);
|
|
2480
|
+
data[index + 1] = localClamp(green, 0, 255);
|
|
2481
|
+
data[index + 2] = localClamp(blue, 0, 255);
|
|
2482
|
+
data[index + 3] = 255;
|
|
2483
|
+
}
|
|
2484
|
+
}
|
|
2485
|
+
},
|
|
2486
|
+
finish(baseCtx) {
|
|
2487
|
+
const instanceCtx = ctx;
|
|
2488
|
+
ctx = baseCtx;
|
|
2489
|
+
try {
|
|
2490
|
+
ctx.save();
|
|
2491
|
+
ctx.translate(center, center);
|
|
2492
|
+
ctx.scale(radius, radius);
|
|
2493
|
+
drawKnurl();
|
|
2494
|
+
drawReflections();
|
|
2495
|
+
drawTicks();
|
|
2496
|
+
ctx.restore();
|
|
2497
|
+
} finally {
|
|
2498
|
+
ctx = instanceCtx;
|
|
2499
|
+
}
|
|
2500
|
+
}
|
|
2501
|
+
});
|
|
2502
|
+
if (disposed || canvas.width !== size || canvas.height !== size) return;
|
|
2503
|
+
ctx.drawImage(picture, 0, 0);
|
|
2504
|
+
rotor.width = rotor.height = size;
|
|
2505
|
+
feedback.width = feedback.height = size;
|
|
2506
|
+
rotorCtx.save();
|
|
2507
|
+
rotorCtx.beginPath();
|
|
2508
|
+
rotorCtx.arc(center, center, radius * 0.819, 0, TAU);
|
|
2509
|
+
rotorCtx.clip();
|
|
2510
|
+
rotorCtx.drawImage(canvas, 0, 0);
|
|
2511
|
+
rotorCtx.restore();
|
|
2512
|
+
paintFeedback();
|
|
2513
|
+
}
|
|
2514
|
+
function drawKnurl() {
|
|
2515
|
+
const columns = 96;
|
|
2516
|
+
const rows = 6;
|
|
2517
|
+
const start = 0.744;
|
|
2518
|
+
const end = 0.813;
|
|
2519
|
+
const step = (end - start) / rows;
|
|
2520
|
+
const pitch = TAU / columns;
|
|
2521
|
+
const point = (radius, angle) => [
|
|
2522
|
+
Math.cos(angle) * radius,
|
|
2523
|
+
Math.sin(angle) * radius
|
|
2524
|
+
];
|
|
2525
|
+
ctx.save();
|
|
2526
|
+
ctx.beginPath();
|
|
2527
|
+
ctx.arc(0, 0, end, 0, TAU);
|
|
2528
|
+
ctx.arc(0, 0, start, TAU, 0, true);
|
|
2529
|
+
ctx.clip("evenodd");
|
|
2530
|
+
for (let row = -1; row <= rows; row++) {
|
|
2531
|
+
const r = start + (row + 0.5) * step;
|
|
2532
|
+
for (let column = 0; column < columns; column++) {
|
|
2533
|
+
const a = (column + (row % 2 ? 0.5 : 0)) * pitch;
|
|
2534
|
+
const middle = point(r, a);
|
|
2535
|
+
const vertices = [
|
|
2536
|
+
point(r - step * 0.94, a),
|
|
2537
|
+
point(r, a + pitch * 0.47),
|
|
2538
|
+
point(r + step * 0.94, a),
|
|
2539
|
+
point(r, a - pitch * 0.47)
|
|
2540
|
+
];
|
|
2541
|
+
const globalLight = 0.52 + 0.48 * Math.cos(a + 1.9);
|
|
2542
|
+
const variation = 0.88 + noise2(column * 19 + row * 317) * 0.2;
|
|
2543
|
+
for (let side = 0; side < 4; side++) {
|
|
2544
|
+
const p1 = vertices[side];
|
|
2545
|
+
const p2 = vertices[(side + 1) % 4];
|
|
2546
|
+
const direction = a + [-2.36, -0.78, 0.78, 2.36][side];
|
|
2547
|
+
const light = Math.max(0, Math.cos(direction + 2.15));
|
|
2548
|
+
const metal = (6 + light ** 5 * 228 + globalLight * 10) * variation;
|
|
2549
|
+
const ruby = Math.pow(Math.max(0, Math.sin(a)), 3) * 27;
|
|
2550
|
+
ctx.fillStyle = `rgb(${metal + ruby},${metal * 0.96},${metal * 0.93})`;
|
|
2551
|
+
ctx.beginPath();
|
|
2552
|
+
ctx.moveTo(...middle);
|
|
2553
|
+
ctx.lineTo(...p1);
|
|
2554
|
+
ctx.lineTo(...p2);
|
|
2555
|
+
ctx.closePath();
|
|
2556
|
+
ctx.fill();
|
|
2557
|
+
}
|
|
2558
|
+
}
|
|
2559
|
+
}
|
|
2560
|
+
ctx.restore();
|
|
2561
|
+
}
|
|
2562
|
+
function drawReflections() {
|
|
2563
|
+
const r = 0.8395;
|
|
2564
|
+
const glow = ctx.createRadialGradient(0, 0, 0.809, 0, 0, 0.896);
|
|
2565
|
+
glow.addColorStop(0, "#ff001800");
|
|
2566
|
+
glow.addColorStop(0.3, "#f8002020");
|
|
2567
|
+
glow.addColorStop(0.47, "#ff123f55");
|
|
2568
|
+
glow.addColorStop(0.7, "#d900141d");
|
|
2569
|
+
glow.addColorStop(1, "#ff001800");
|
|
2570
|
+
ctx.fillStyle = glow;
|
|
2571
|
+
ctx.beginPath();
|
|
2572
|
+
ctx.arc(0, 0, 0.896, 0, TAU);
|
|
2573
|
+
ctx.arc(0, 0, 0.809, TAU, 0, true);
|
|
2574
|
+
ctx.fill("evenodd");
|
|
2575
|
+
for (const angle of [-Math.PI / 2, Math.PI / 2, Math.PI, 0]) {
|
|
2576
|
+
const pointX = Math.cos(angle) * r;
|
|
2577
|
+
const py = Math.sin(angle) * r;
|
|
2578
|
+
const halo = ctx.createRadialGradient(pointX, py, 0, pointX, py, 0.055);
|
|
2579
|
+
halo.addColorStop(0, "#fff1f1b8");
|
|
2580
|
+
halo.addColorStop(0.2, "#ff315b72");
|
|
2581
|
+
halo.addColorStop(1, "#ff001800");
|
|
2582
|
+
ctx.fillStyle = halo;
|
|
2583
|
+
ctx.beginPath();
|
|
2584
|
+
ctx.arc(pointX, py, 0.055, 0, TAU);
|
|
2585
|
+
ctx.fill();
|
|
2586
|
+
}
|
|
2587
|
+
}
|
|
2588
|
+
function roundRect(x, y, width, height, radius) {
|
|
2589
|
+
ctx.beginPath();
|
|
2590
|
+
ctx.roundRect(x, y, width, height, radius);
|
|
2591
|
+
ctx.fill();
|
|
2592
|
+
}
|
|
2593
|
+
function drawTicks() {
|
|
2594
|
+
const scale2 = canvas.width * 0.445;
|
|
2595
|
+
for (let i = 0; i < 16; i++) {
|
|
2596
|
+
const major = i % 4 === 0;
|
|
2597
|
+
const width = major ? 0.012 : 0.01;
|
|
2598
|
+
const length = major ? 0.078 : 0.066;
|
|
2599
|
+
ctx.save();
|
|
2600
|
+
ctx.rotate(i * TAU / 16);
|
|
2601
|
+
ctx.fillStyle = "#020101";
|
|
2602
|
+
roundRect(
|
|
2603
|
+
-width / 2 - 4e-3,
|
|
2604
|
+
-0.933 - length / 2 - 4e-3,
|
|
2605
|
+
width + 8e-3,
|
|
2606
|
+
length + 8e-3,
|
|
2607
|
+
6e-3
|
|
2608
|
+
);
|
|
2609
|
+
ctx.strokeStyle = "#71312c";
|
|
2610
|
+
ctx.lineWidth = 17e-4;
|
|
2611
|
+
ctx.stroke();
|
|
2612
|
+
ctx.shadowColor = major ? "#ff1029" : "#e9152470";
|
|
2613
|
+
ctx.shadowBlur = scale2 * (major ? 0.034 : 0.01);
|
|
2614
|
+
ctx.fillStyle = major ? "#ff2447" : "#ff6c7d";
|
|
2615
|
+
roundRect(-width / 2, -0.933 - length / 2, width, length, 3e-3);
|
|
2616
|
+
ctx.shadowBlur = 0;
|
|
2617
|
+
const fill = ctx.createLinearGradient(-width / 2, 0, width / 2, 0);
|
|
2618
|
+
fill.addColorStop(0, "#ff2539");
|
|
2619
|
+
fill.addColorStop(0.38, major ? "#fff8eb" : "#ffa19c");
|
|
2620
|
+
fill.addColorStop(0.7, major ? "#fff6e9" : "#ff938d");
|
|
2621
|
+
fill.addColorStop(1, "#f82538");
|
|
2622
|
+
ctx.fillStyle = fill;
|
|
2623
|
+
roundRect(
|
|
2624
|
+
-width * 0.34,
|
|
2625
|
+
-0.933 - length * 0.47,
|
|
2626
|
+
width * 0.68,
|
|
2627
|
+
length * 0.94,
|
|
2628
|
+
2e-3
|
|
2629
|
+
);
|
|
2630
|
+
ctx.restore();
|
|
2631
|
+
}
|
|
2632
|
+
}
|
|
2633
|
+
function paintFeedback() {
|
|
2634
|
+
if (!painted || !feedback.width || disposed) return;
|
|
2635
|
+
const scale2 = feedback.width * 0.445;
|
|
2636
|
+
const start = (startAngle - 90) / degrees;
|
|
2637
|
+
const end = (valueAngle(visualValue) - 90) / degrees;
|
|
2638
|
+
feedbackCtx.clearRect(0, 0, feedback.width, feedback.height);
|
|
2639
|
+
feedbackCtx.save();
|
|
2640
|
+
feedbackCtx.translate(feedback.width / 2, feedback.height / 2);
|
|
2641
|
+
feedbackCtx.scale(scale2, scale2);
|
|
2642
|
+
feedbackCtx.beginPath();
|
|
2643
|
+
feedbackCtx.arc(0, 0, 0.846, end, start + TAU);
|
|
2644
|
+
feedbackCtx.strokeStyle = "rgba(0, 0, 0, 0.78)";
|
|
2645
|
+
feedbackCtx.lineWidth = 0.052;
|
|
2646
|
+
feedbackCtx.stroke();
|
|
2647
|
+
if (visualValue > 0) paintValue(start, end, scale2);
|
|
2648
|
+
feedbackCtx.restore();
|
|
2649
|
+
}
|
|
2650
|
+
function paintValue(start, end, scale2) {
|
|
2651
|
+
const sweep = Math.max(1e-4, (end - start) / TAU);
|
|
2652
|
+
const tube = feedbackCtx.createConicGradient(start, 0, 0);
|
|
2653
|
+
tube.addColorStop(0, "rgba(110, 0, 22, 0.9)");
|
|
2654
|
+
tube.addColorStop(sweep * 0.65, "rgba(255, 36, 72, 1)");
|
|
2655
|
+
tube.addColorStop(sweep, "rgba(255, 238, 242, 1)");
|
|
2656
|
+
tube.addColorStop(Math.min(1, sweep + 1e-4), "rgba(255, 238, 242, 0)");
|
|
2657
|
+
const stroke = (width, alpha, blur) => {
|
|
2658
|
+
feedbackCtx.beginPath();
|
|
2659
|
+
feedbackCtx.arc(0, 0, 0.8395, start, end);
|
|
2660
|
+
feedbackCtx.lineCap = "round";
|
|
2661
|
+
feedbackCtx.lineWidth = width;
|
|
2662
|
+
feedbackCtx.globalAlpha = alpha;
|
|
2663
|
+
feedbackCtx.shadowColor = "#ff163d";
|
|
2664
|
+
feedbackCtx.shadowBlur = scale2 * blur;
|
|
2665
|
+
feedbackCtx.strokeStyle = tube;
|
|
2666
|
+
feedbackCtx.stroke();
|
|
2667
|
+
};
|
|
2668
|
+
stroke(0.05, 0.35, 0.06);
|
|
2669
|
+
stroke(0.017, 0.95, 0.03);
|
|
2670
|
+
stroke(6e-3, 1, 0.012);
|
|
2671
|
+
feedbackCtx.globalAlpha = 1;
|
|
2672
|
+
feedbackCtx.shadowBlur = 0;
|
|
2673
|
+
const tipX = Math.cos(end) * 0.8395;
|
|
2674
|
+
const tipY = Math.sin(end) * 0.8395;
|
|
2675
|
+
const head = feedbackCtx.createRadialGradient(
|
|
2676
|
+
tipX,
|
|
2677
|
+
tipY,
|
|
2678
|
+
0,
|
|
2679
|
+
tipX,
|
|
2680
|
+
tipY,
|
|
2681
|
+
0.12
|
|
2682
|
+
);
|
|
2683
|
+
head.addColorStop(0, "rgba(255, 255, 255, 1)");
|
|
2684
|
+
head.addColorStop(0.12, "rgba(255, 220, 228, 0.9)");
|
|
2685
|
+
head.addColorStop(0.35, "rgba(255, 60, 100, 0.45)");
|
|
2686
|
+
head.addColorStop(1, "rgba(255, 0, 40, 0)");
|
|
2687
|
+
feedbackCtx.fillStyle = head;
|
|
2688
|
+
feedbackCtx.beginPath();
|
|
2689
|
+
feedbackCtx.arc(tipX, tipY, 0.12, 0, TAU);
|
|
2690
|
+
feedbackCtx.fill();
|
|
2691
|
+
const reached = valueAngle(visualValue);
|
|
2692
|
+
for (let i = 0; i < 16; i += 1) {
|
|
2693
|
+
const angle = normalizeAngle(i * 22.5);
|
|
2694
|
+
if (angle < startAngle || angle > -startAngle) continue;
|
|
2695
|
+
const x = Math.sin(angle / degrees) * 0.933;
|
|
2696
|
+
const y = -Math.cos(angle / degrees) * 0.933;
|
|
2697
|
+
if (angle > reached - 0.5) {
|
|
2698
|
+
const shade = feedbackCtx.createRadialGradient(x, y, 0, x, y, 0.05);
|
|
2699
|
+
shade.addColorStop(0, "rgba(8, 3, 4, 0.72)");
|
|
2700
|
+
shade.addColorStop(0.55, "rgba(8, 3, 4, 0.55)");
|
|
2701
|
+
shade.addColorStop(1, "rgba(8, 3, 4, 0)");
|
|
2702
|
+
feedbackCtx.fillStyle = shade;
|
|
2703
|
+
feedbackCtx.beginPath();
|
|
2704
|
+
feedbackCtx.arc(x, y, 0.05, 0, TAU);
|
|
2705
|
+
feedbackCtx.fill();
|
|
2706
|
+
continue;
|
|
2707
|
+
}
|
|
2708
|
+
const heat = 0.5 + 0.5 * Math.exp(-(reached - angle) / 28);
|
|
2709
|
+
const glow = feedbackCtx.createRadialGradient(x, y, 0, x, y, 0.075);
|
|
2710
|
+
glow.addColorStop(0, `rgba(255, 255, 255, ${heat})`);
|
|
2711
|
+
glow.addColorStop(0.16, `rgba(255, 210, 220, ${0.85 * heat})`);
|
|
2712
|
+
glow.addColorStop(0.42, `rgba(255, 40, 76, ${0.55 * heat})`);
|
|
2713
|
+
glow.addColorStop(1, "rgba(255, 0, 40, 0)");
|
|
2714
|
+
feedbackCtx.fillStyle = glow;
|
|
2715
|
+
feedbackCtx.beginPath();
|
|
2716
|
+
feedbackCtx.arc(x, y, 0.075, 0, TAU);
|
|
2717
|
+
feedbackCtx.fill();
|
|
2718
|
+
}
|
|
2719
|
+
}
|
|
2720
|
+
function paint() {
|
|
2721
|
+
root.style.setProperty("--angle", `${valueAngle(visualValue)}deg`);
|
|
2722
|
+
root.style.setProperty(
|
|
2723
|
+
"--rotation",
|
|
2724
|
+
`${valueAngle(visualValue) - initialAngle}deg`
|
|
2725
|
+
);
|
|
2726
|
+
paintFeedback();
|
|
2727
|
+
}
|
|
2728
|
+
function animate(timestamp) {
|
|
2729
|
+
animationFrame = 0;
|
|
2730
|
+
if (disposed) return;
|
|
2731
|
+
const elapsed = previousFrame ? Math.min(64, timestamp - previousFrame) : 16;
|
|
2732
|
+
previousFrame = timestamp;
|
|
2733
|
+
const immediate = !!drag && !drag.glide || reducedMotion.matches;
|
|
2734
|
+
visualValue = immediate ? value : visualValue + (value - visualValue) * (1 - Math.exp(-elapsed / 42));
|
|
2735
|
+
if (Math.abs(value - visualValue) < 5e-3) visualValue = value;
|
|
2736
|
+
paint();
|
|
2737
|
+
if (visualValue !== value)
|
|
2738
|
+
animationFrame = requestAnimationFrame(animate);
|
|
2739
|
+
else previousFrame = 0;
|
|
2740
|
+
}
|
|
2741
|
+
function schedulePaint() {
|
|
2742
|
+
if (!animationFrame && !disposed)
|
|
2743
|
+
animationFrame = requestAnimationFrame(animate);
|
|
2744
|
+
}
|
|
2745
|
+
function setValue(next, notify = true) {
|
|
2746
|
+
if (disposed) return false;
|
|
2747
|
+
const numeric = Number(next);
|
|
2748
|
+
if (!Number.isFinite(numeric)) return false;
|
|
2749
|
+
const nextValue = Math.round(localClamp(numeric, 0, 100) * 1e3) / 1e3;
|
|
2750
|
+
const changed = nextValue !== value || nextValue !== requestedValue;
|
|
2751
|
+
requestedValue = nextValue;
|
|
2752
|
+
value = notify ? controlledPosition.current ?? nextValue : nextValue;
|
|
2753
|
+
const shown = scale.current.toValue(value);
|
|
2754
|
+
const text = scale.current.format(shown);
|
|
2755
|
+
root.dataset.value = String(shown);
|
|
2756
|
+
control.setAttribute("aria-valuenow", String(shown));
|
|
2757
|
+
control.setAttribute("aria-valuetext", text);
|
|
2758
|
+
control.title = tr("{label}: {value} \xB7 \u0432\u0435\u0434\u0438\u0442\u0435 \u043F\u043E \u043A\u0440\u0443\u0433\u0443 \u0438\u043B\u0438 \u0442\u044F\u043D\u0438\u0442\u0435 \u0437\u0430 \u0446\u0435\u043D\u0442\u0440", { label: p.label ?? tr("\u0413\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C"), value: text });
|
|
2759
|
+
if (readoutRef.current) readoutRef.current.textContent = text;
|
|
2760
|
+
schedulePaint();
|
|
2761
|
+
if (changed && notify) onChangeRef.current?.(scale.current.toValue(nextValue));
|
|
2762
|
+
return changed;
|
|
2763
|
+
}
|
|
2764
|
+
function commit() {
|
|
2765
|
+
if (!disposed) onCommitRef.current?.(scale.current.toValue(requestedValue));
|
|
2766
|
+
}
|
|
2767
|
+
function geometry() {
|
|
2768
|
+
const rect = control.getBoundingClientRect();
|
|
2769
|
+
return {
|
|
2770
|
+
x: rect.left + rect.width / 2,
|
|
2771
|
+
y: rect.top + rect.height / 2,
|
|
2772
|
+
radius: rect.width / 2
|
|
2773
|
+
};
|
|
2774
|
+
}
|
|
2775
|
+
function polar(event, center) {
|
|
2776
|
+
return Math.atan2(event.clientY - center.y, event.clientX - center.x) * degrees;
|
|
2777
|
+
}
|
|
2778
|
+
function normalizeAngle(angle) {
|
|
2779
|
+
return ((angle + 180) % 360 + 360) % 360 - 180;
|
|
2780
|
+
}
|
|
2781
|
+
function pointerDown(event) {
|
|
2782
|
+
if (disabledRef.current || readOnlyRef.current || event.button !== 0 || !event.isPrimary || drag || disposed)
|
|
2783
|
+
return;
|
|
2784
|
+
const center = geometry();
|
|
2785
|
+
const distance = Math.hypot(event.clientX - center.x, event.clientY - center.y) / center.radius;
|
|
2786
|
+
if (distance > 1.04) return;
|
|
2787
|
+
event.preventDefault();
|
|
2788
|
+
control.focus({ preventScroll: true });
|
|
2789
|
+
drag = {
|
|
2790
|
+
id: event.pointerId,
|
|
2791
|
+
x: event.clientX,
|
|
2792
|
+
y: event.clientY,
|
|
2793
|
+
center,
|
|
2794
|
+
angle: polar(event, center),
|
|
2795
|
+
mode: distance >= 0.8 ? "circular" : "linear",
|
|
2796
|
+
value,
|
|
2797
|
+
start: value,
|
|
2798
|
+
distance: localClamp(center.radius * 0.8, 80, 240),
|
|
2799
|
+
glide: false
|
|
2800
|
+
};
|
|
2801
|
+
control.setPointerCapture(event.pointerId);
|
|
2802
|
+
root.classList.add("is-dragging");
|
|
2803
|
+
resetHover();
|
|
2804
|
+
if (distance >= 0.8) {
|
|
2805
|
+
drag.glide = true;
|
|
2806
|
+
let angle = normalizeAngle((drag.angle ?? 0) + 90);
|
|
2807
|
+
if (Math.abs(angle) > 179.99) angle = value >= 50 ? 180 : -180;
|
|
2808
|
+
drag.value = localClamp(
|
|
2809
|
+
(angle - startAngle) / sweepAngle * 100,
|
|
2810
|
+
0,
|
|
2811
|
+
100
|
|
2812
|
+
);
|
|
2813
|
+
setValue(drag.value);
|
|
2814
|
+
}
|
|
2815
|
+
}
|
|
2816
|
+
function tilt(x, y) {
|
|
2817
|
+
root.style.setProperty("--tilt-x", `${(-y * 7).toFixed(2)}deg`);
|
|
2818
|
+
root.style.setProperty("--tilt-y", `${(x * 7).toFixed(2)}deg`);
|
|
2819
|
+
}
|
|
2820
|
+
function resetHover() {
|
|
2821
|
+
latestHover = null;
|
|
2822
|
+
if (hoverFrame) cancelAnimationFrame(hoverFrame);
|
|
2823
|
+
hoverFrame = 0;
|
|
2824
|
+
tilt(0, 0);
|
|
2825
|
+
}
|
|
2826
|
+
function hover(event) {
|
|
2827
|
+
if (drag || disabledRef.current || reducedMotion.matches || document.documentElement.dataset.adMotion === "off")
|
|
2828
|
+
return;
|
|
2829
|
+
latestHover = { x: event.clientX, y: event.clientY };
|
|
2830
|
+
if (hoverFrame) return;
|
|
2831
|
+
hoverFrame = requestAnimationFrame(() => {
|
|
2832
|
+
hoverFrame = 0;
|
|
2833
|
+
if (!latestHover || drag || disposed || disabledRef.current) return;
|
|
2834
|
+
const center = geometry();
|
|
2835
|
+
tilt(
|
|
2836
|
+
localClamp((latestHover.x - center.x) / center.radius, -1, 1),
|
|
2837
|
+
localClamp((latestHover.y - center.y) / center.radius, -1, 1)
|
|
2838
|
+
);
|
|
2839
|
+
});
|
|
2840
|
+
}
|
|
2841
|
+
function pointerMove(event) {
|
|
2842
|
+
if (!drag || event.pointerId !== drag.id || disabledRef.current || readOnlyRef.current) return;
|
|
2843
|
+
drag.glide = false;
|
|
2844
|
+
event.preventDefault();
|
|
2845
|
+
const precision = event.shiftKey ? 0.1 : 1;
|
|
2846
|
+
const angle = polar(event, drag.center);
|
|
2847
|
+
const radius = Math.hypot(
|
|
2848
|
+
event.clientX - drag.center.x,
|
|
2849
|
+
event.clientY - drag.center.y
|
|
2850
|
+
);
|
|
2851
|
+
let delta = 0;
|
|
2852
|
+
if (drag.mode === "circular") {
|
|
2853
|
+
if (radius > drag.center.radius * 0.12 && drag.angle !== null)
|
|
2854
|
+
delta = normalizeAngle(angle - drag.angle) / sweepAngle * 100;
|
|
2855
|
+
drag.angle = radius > drag.center.radius * 0.12 ? angle : null;
|
|
2856
|
+
} else {
|
|
2857
|
+
delta = (event.clientX - drag.x - (event.clientY - drag.y)) / drag.distance * 100;
|
|
2858
|
+
}
|
|
2859
|
+
drag.x = event.clientX;
|
|
2860
|
+
drag.y = event.clientY;
|
|
2861
|
+
drag.value = localClamp(drag.value + delta * precision, 0, 100);
|
|
2862
|
+
const step = event.shiftKey ? fineStepRef.current : stepRef.current;
|
|
2863
|
+
setValue(Math.round(drag.value / step) * step);
|
|
2864
|
+
}
|
|
2865
|
+
function finishDrag(cancelled2 = false) {
|
|
2866
|
+
if (!drag) return;
|
|
2867
|
+
const gesture = drag;
|
|
2868
|
+
drag = null;
|
|
2869
|
+
root.classList.remove("is-dragging");
|
|
2870
|
+
if (control.hasPointerCapture(gesture.id))
|
|
2871
|
+
control.releasePointerCapture(gesture.id);
|
|
2872
|
+
if (disabledRef.current || readOnlyRef.current) return;
|
|
2873
|
+
if (cancelled2) setValue(gesture.start);
|
|
2874
|
+
else if (requestedValue !== gesture.start) commit();
|
|
2875
|
+
}
|
|
2876
|
+
function pointerEnd(event) {
|
|
2877
|
+
if (!drag || event.pointerId !== drag.id) return;
|
|
2878
|
+
finishDrag(event.type === "pointercancel");
|
|
2879
|
+
}
|
|
2880
|
+
function keyDown(event) {
|
|
2881
|
+
if (disabledRef.current || readOnlyRef.current) return;
|
|
2882
|
+
if (event.key === "Escape" && drag) {
|
|
2883
|
+
event.preventDefault();
|
|
2884
|
+
finishDrag(true);
|
|
2885
|
+
return;
|
|
2886
|
+
}
|
|
2887
|
+
if (drag || event.ctrlKey || event.altKey || event.metaKey) return;
|
|
2888
|
+
const step = event.shiftKey ? fineStepRef.current : stepRef.current;
|
|
2889
|
+
const keys = {
|
|
2890
|
+
ArrowUp: value + step,
|
|
2891
|
+
ArrowRight: value + step,
|
|
2892
|
+
ArrowDown: value - step,
|
|
2893
|
+
ArrowLeft: value - step,
|
|
2894
|
+
PageUp: value + 10,
|
|
2895
|
+
PageDown: value - 10,
|
|
2896
|
+
Home: 0,
|
|
2897
|
+
End: 100
|
|
2898
|
+
};
|
|
2899
|
+
if (!Object.hasOwn(keys, event.key)) return;
|
|
2900
|
+
event.preventDefault();
|
|
2901
|
+
if (setValue(keys[event.key])) commit();
|
|
2902
|
+
}
|
|
2903
|
+
function wheel(event) {
|
|
2904
|
+
if (disabledRef.current || readOnlyRef.current || event.ctrlKey || event.metaKey || event.deltaY === 0 || drag || disposed)
|
|
2905
|
+
return;
|
|
2906
|
+
event.preventDefault();
|
|
2907
|
+
control.focus({ preventScroll: true });
|
|
2908
|
+
const step = event.shiftKey ? fineStepRef.current : stepRef.current;
|
|
2909
|
+
if (setValue(value - Math.sign(event.deltaY) * Math.max(step, event.shiftKey ? 0.5 : 5))) commit();
|
|
2910
|
+
}
|
|
2911
|
+
function doubleClick(event) {
|
|
2912
|
+
if (disabledRef.current || readOnlyRef.current) return;
|
|
2913
|
+
event.preventDefault();
|
|
2914
|
+
finishDrag();
|
|
2915
|
+
if (setValue(resetRef.current ?? defaultValue)) commit();
|
|
2916
|
+
}
|
|
2917
|
+
function scheduleRender() {
|
|
2918
|
+
clearTimeout(renderTimer);
|
|
2919
|
+
if (!disposed) renderTimer = window.setTimeout(render, 80);
|
|
2920
|
+
}
|
|
2921
|
+
const events = {
|
|
2922
|
+
pointerdown: pointerDown,
|
|
2923
|
+
pointermove: pointerMove,
|
|
2924
|
+
pointerup: pointerEnd,
|
|
2925
|
+
pointercancel: pointerEnd,
|
|
2926
|
+
lostpointercapture: pointerEnd,
|
|
2927
|
+
keydown: keyDown,
|
|
2928
|
+
dblclick: doubleClick
|
|
2929
|
+
};
|
|
2930
|
+
for (const [event, handler] of Object.entries(events))
|
|
2931
|
+
control.addEventListener(event, handler, { signal: listeners.signal });
|
|
2932
|
+
control.addEventListener("wheel", wheel, {
|
|
2933
|
+
passive: false,
|
|
2934
|
+
signal: listeners.signal
|
|
2935
|
+
});
|
|
2936
|
+
root.addEventListener("pointermove", hover, {
|
|
2937
|
+
signal: listeners.signal
|
|
2938
|
+
});
|
|
2939
|
+
root.addEventListener("pointerleave", resetHover, {
|
|
2940
|
+
signal: listeners.signal
|
|
2941
|
+
});
|
|
2942
|
+
window.addEventListener("blur", () => finishDrag(true), {
|
|
2943
|
+
signal: listeners.signal
|
|
2944
|
+
});
|
|
2945
|
+
document.addEventListener(
|
|
2946
|
+
"visibilitychange",
|
|
2947
|
+
() => {
|
|
2948
|
+
if (document.hidden) finishDrag(true);
|
|
2949
|
+
},
|
|
2950
|
+
{ signal: listeners.signal }
|
|
2951
|
+
);
|
|
2952
|
+
window.addEventListener("resize", scheduleRender, {
|
|
2953
|
+
signal: listeners.signal
|
|
2954
|
+
});
|
|
2955
|
+
const observer = createResizeObserver(scheduleRender);
|
|
2956
|
+
observer.observe(root);
|
|
2957
|
+
controllerRef.current = {
|
|
2958
|
+
get value() {
|
|
2959
|
+
return value;
|
|
2960
|
+
},
|
|
2961
|
+
setValue(next, notify = false) {
|
|
2962
|
+
setValue(next, notify);
|
|
2963
|
+
},
|
|
2964
|
+
reset() {
|
|
2965
|
+
if (setValue(resetRef.current ?? defaultValue)) commit();
|
|
2966
|
+
},
|
|
2967
|
+
commit
|
|
2968
|
+
};
|
|
2969
|
+
setValue(value, false);
|
|
2970
|
+
render();
|
|
2971
|
+
paint();
|
|
2972
|
+
return () => {
|
|
2973
|
+
disposed = true;
|
|
2974
|
+
finishDrag();
|
|
2975
|
+
listeners.abort();
|
|
2976
|
+
observer.disconnect();
|
|
2977
|
+
clearTimeout(renderTimer);
|
|
2978
|
+
cancelAnimationFrame(animationFrame);
|
|
2979
|
+
cancelAnimationFrame(hoverFrame);
|
|
2980
|
+
animationFrame = 0;
|
|
2981
|
+
controllerRef.current = null;
|
|
2982
|
+
};
|
|
2983
|
+
}, []);
|
|
2984
|
+
useEffect8(() => {
|
|
2985
|
+
if (p.value !== void 0)
|
|
2986
|
+
controllerRef.current?.setValue(toPosition(p.value), false);
|
|
2987
|
+
}, [p.value, min, span]);
|
|
2988
|
+
const [draft, setDraft] = useState8(null);
|
|
2989
|
+
const cancelled = useRef11(false);
|
|
2990
|
+
const editable = !p.disabled && !p.readOnly;
|
|
2991
|
+
const applyDraft = () => {
|
|
2992
|
+
if (cancelled.current) return;
|
|
2993
|
+
const next = Number(draft?.replace(",", ".").replace(/[^\d.+-]/g, ""));
|
|
2994
|
+
setDraft(null);
|
|
2995
|
+
const controller = controllerRef.current;
|
|
2996
|
+
if (!draft?.trim() || !controller || !Number.isFinite(next)) return;
|
|
2997
|
+
const position = Math.round(toPosition(next / displayScale) * 1e3) / 1e3;
|
|
2998
|
+
const changed = position !== controller.value;
|
|
2999
|
+
controller.setValue(position, true);
|
|
3000
|
+
if (changed) controller.commit();
|
|
3001
|
+
};
|
|
3002
|
+
const rootProps = mark("RotaryKnob", p, void 0, "knob");
|
|
3003
|
+
return /* @__PURE__ */ jsxs16(
|
|
3004
|
+
"div",
|
|
3005
|
+
{
|
|
3006
|
+
...rootProps,
|
|
3007
|
+
ref: rootRef,
|
|
3008
|
+
"data-value": toValue(initial),
|
|
3009
|
+
"data-disabled": p.disabled || void 0,
|
|
3010
|
+
"data-readonly": p.readOnly || void 0,
|
|
3011
|
+
"data-labelled": p.showLabel || void 0,
|
|
3012
|
+
style: {
|
|
3013
|
+
...p.style,
|
|
3014
|
+
"--size": `${diameter / 16}rem`,
|
|
3015
|
+
"--angle": `${-135 + initial * 2.7}deg`,
|
|
3016
|
+
"--rotation": "0deg"
|
|
3017
|
+
},
|
|
3018
|
+
children: [
|
|
3019
|
+
/* @__PURE__ */ jsx24(
|
|
3020
|
+
"canvas",
|
|
3021
|
+
{
|
|
3022
|
+
className: "knob__surface knob__base",
|
|
3023
|
+
"aria-hidden": "true",
|
|
3024
|
+
ref: baseRef
|
|
3025
|
+
}
|
|
3026
|
+
),
|
|
3027
|
+
/* @__PURE__ */ jsx24(
|
|
3028
|
+
"canvas",
|
|
3029
|
+
{
|
|
3030
|
+
className: "knob__surface knob__feedback",
|
|
3031
|
+
"aria-hidden": "true",
|
|
3032
|
+
ref: feedbackRef
|
|
3033
|
+
}
|
|
3034
|
+
),
|
|
3035
|
+
/* @__PURE__ */ jsx24("span", { className: "knob__surface knob__rotor-frame", "aria-hidden": "true", children: /* @__PURE__ */ jsx24("canvas", { className: "knob__rotor", ref: rotorRef }) }),
|
|
3036
|
+
/* @__PURE__ */ jsx24("span", { className: "knob__sheen", "aria-hidden": "true" }),
|
|
3037
|
+
/* @__PURE__ */ jsx24(
|
|
3038
|
+
"div",
|
|
3039
|
+
{
|
|
3040
|
+
ref: controlRef,
|
|
3041
|
+
className: "knob__control",
|
|
3042
|
+
role: p.readOnly ? "meter" : "slider",
|
|
3043
|
+
tabIndex: p.disabled || p.readOnly ? -1 : 0,
|
|
3044
|
+
"aria-disabled": p.disabled || void 0,
|
|
3045
|
+
"aria-readonly": p.readOnly || void 0,
|
|
3046
|
+
"aria-label": p.label ?? tr("\u0413\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C"),
|
|
3047
|
+
"aria-valuemin": min,
|
|
3048
|
+
"aria-valuemax": min + span,
|
|
3049
|
+
"aria-valuenow": toValue(initial),
|
|
3050
|
+
"aria-valuetext": format(toValue(initial)),
|
|
3051
|
+
"aria-orientation": p.readOnly ? void 0 : "vertical",
|
|
3052
|
+
children: /* @__PURE__ */ jsx24("div", { className: "knob__indicator", "aria-hidden": "true", children: /* @__PURE__ */ jsx24("div", { className: "knob__slot" }) })
|
|
3053
|
+
}
|
|
3054
|
+
),
|
|
3055
|
+
p.showValue !== false && /* @__PURE__ */ jsx24(
|
|
3056
|
+
"div",
|
|
3057
|
+
{
|
|
3058
|
+
ref: readoutRef,
|
|
3059
|
+
className: "knob__value",
|
|
3060
|
+
"data-editable": editable || void 0,
|
|
3061
|
+
"data-editing": draft !== null || void 0,
|
|
3062
|
+
title: editable ? tr("\u041D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u0432\u0435\u0441\u0442\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435") : void 0,
|
|
3063
|
+
onClick: () => {
|
|
3064
|
+
if (!editable) return;
|
|
3065
|
+
cancelled.current = false;
|
|
3066
|
+
setDraft(
|
|
3067
|
+
numberFormat.format(toValue(controllerRef.current?.value ?? initial) * displayScale)
|
|
3068
|
+
);
|
|
3069
|
+
},
|
|
3070
|
+
children: format(toValue(initial))
|
|
3071
|
+
}
|
|
3072
|
+
),
|
|
3073
|
+
draft !== null && /* @__PURE__ */ jsx24(
|
|
3074
|
+
"input",
|
|
3075
|
+
{
|
|
3076
|
+
className: "knob__input",
|
|
3077
|
+
"aria-label": tr("{label}, \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", { label: p.label ?? tr("\u0413\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C") }),
|
|
3078
|
+
inputMode: "decimal",
|
|
3079
|
+
autoFocus: true,
|
|
3080
|
+
value: draft,
|
|
3081
|
+
onFocus: (event) => event.currentTarget.select(),
|
|
3082
|
+
onChange: (event) => setDraft(event.currentTarget.value),
|
|
3083
|
+
onBlur: applyDraft,
|
|
3084
|
+
onKeyDown: (event) => {
|
|
3085
|
+
if (event.key === "Enter") event.currentTarget.blur();
|
|
3086
|
+
if (event.key === "Escape") {
|
|
3087
|
+
cancelled.current = true;
|
|
3088
|
+
setDraft(null);
|
|
3089
|
+
}
|
|
3090
|
+
}
|
|
3091
|
+
}
|
|
3092
|
+
),
|
|
3093
|
+
p.showLabel && p.label && /* @__PURE__ */ jsx24("span", { className: "knob__label", "aria-hidden": "true", children: p.label }),
|
|
3094
|
+
/* @__PURE__ */ jsx24("span", { className: "ad-sr-only", children: "\u0417\u0430\u0436\u043C\u0438\u0442\u0435 \u0440\u0443\u0447\u043A\u0443 \u0431\u043B\u0438\u0436\u0435 \u043A \u043A\u0440\u0430\u044E \u0438 \u0432\u0435\u0434\u0438\u0442\u0435 \u043C\u044B\u0448\u044C\u044E \u043F\u043E \u043A\u0440\u0443\u0433\u0443. \u0417\u0430 \u0446\u0435\u043D\u0442\u0440 \u043C\u043E\u0436\u043D\u043E \u0442\u044F\u043D\u0443\u0442\u044C \u0432\u0432\u0435\u0440\u0445 \u0438\u043B\u0438 \u0432\u043D\u0438\u0437. \u041D\u0430\u0436\u0430\u0442\u0438\u0435 \u043D\u0430 \u0432\u043D\u0435\u0448\u043D\u044E\u044E \u0448\u043A\u0430\u043B\u0443 \u0443\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435. \u041A\u043E\u043B\u0435\u0441\u043E \u043C\u044B\u0448\u0438 \u0438 \u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u043C\u0435\u043D\u044F\u044E\u0442 \u0433\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C. Shift \u2014 \u0442\u043E\u0447\u043D\u0430\u044F \u0440\u0435\u0433\u0443\u043B\u0438\u0440\u043E\u0432\u043A\u0430. \u0414\u0432\u043E\u0439\u043D\u043E\u0439 \u0449\u0435\u043B\u0447\u043E\u043A \u2014 \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435." })
|
|
3095
|
+
]
|
|
3096
|
+
}
|
|
3097
|
+
);
|
|
3098
|
+
};
|
|
3099
|
+
|
|
3100
|
+
// src/components/forms/Form/Form.tsx
|
|
3101
|
+
import {
|
|
3102
|
+
createContext,
|
|
3103
|
+
useContext,
|
|
3104
|
+
useEffect as useEffect9,
|
|
3105
|
+
useMemo as useMemo7,
|
|
3106
|
+
useRef as useRef12,
|
|
3107
|
+
useState as useState9
|
|
3108
|
+
} from "react";
|
|
3109
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
3110
|
+
var getPath = (value, path) => path.split(".").reduce((current, key) => current == null ? void 0 : Reflect.get(Object(current), key), value);
|
|
3111
|
+
var setPath = (value, path, next) => {
|
|
3112
|
+
const keys = path.split(".");
|
|
3113
|
+
const root = { ...value };
|
|
3114
|
+
let cursor = root;
|
|
3115
|
+
let source = value;
|
|
3116
|
+
for (const key of keys.slice(0, -1)) {
|
|
3117
|
+
source = getPath(source, key);
|
|
3118
|
+
const branch = Array.isArray(source) ? [...source] : Object.assign({}, source);
|
|
3119
|
+
Reflect.set(cursor, key, branch);
|
|
3120
|
+
cursor = branch;
|
|
3121
|
+
}
|
|
3122
|
+
Reflect.set(cursor, keys[keys.length - 1], next);
|
|
3123
|
+
return root;
|
|
3124
|
+
};
|
|
3125
|
+
function useForm(options) {
|
|
3126
|
+
const [values, setValues] = useState9(options.initialValues), [errors, setErrors] = useState9({}), [touched, setTouchedState] = useState9({}), [submitting, setSubmitting] = useState9(false), latest = useRef12(values), touchedRef = useRef12(touched), validationId = useRef12(0), submittingRef = useRef12(false), settings = useRef12(options), initialKey = useMemo7(() => JSON.stringify(options.initialValues), [options.initialValues]);
|
|
3127
|
+
const previousInitialKey = useRef12(initialKey);
|
|
3128
|
+
settings.current = options;
|
|
3129
|
+
useEffect9(() => {
|
|
3130
|
+
if (previousInitialKey.current === initialKey) return;
|
|
3131
|
+
previousInitialKey.current = initialKey;
|
|
3132
|
+
if (settings.current.reinitialize !== false) {
|
|
3133
|
+
latest.current = settings.current.initialValues;
|
|
3134
|
+
setValues(settings.current.initialValues);
|
|
3135
|
+
setErrors({});
|
|
3136
|
+
touchedRef.current = {};
|
|
3137
|
+
setTouchedState(touchedRef.current);
|
|
3138
|
+
}
|
|
3139
|
+
}, [initialKey]);
|
|
3140
|
+
const methods = useMemo7(() => {
|
|
3141
|
+
const validate = async (next) => {
|
|
3142
|
+
const id = ++validationId.current;
|
|
3143
|
+
const result = await settings.current.validate?.(next) ?? {};
|
|
3144
|
+
if (id === validationId.current && next === latest.current) setErrors(result);
|
|
3145
|
+
return result;
|
|
3146
|
+
};
|
|
3147
|
+
const setValue = (path, value) => {
|
|
3148
|
+
if (Object.is(getPath(latest.current, path), value)) return;
|
|
3149
|
+
const next = setPath(latest.current, path, value);
|
|
3150
|
+
latest.current = next;
|
|
3151
|
+
setValues(next);
|
|
3152
|
+
if (settings.current.validateOnChange) void validate(next);
|
|
3153
|
+
};
|
|
3154
|
+
const setTouched = (path, state = true) => {
|
|
3155
|
+
if ((Object.hasOwn(touchedRef.current, path) && Boolean(touchedRef.current[path])) !== state) {
|
|
3156
|
+
touchedRef.current = { ...touchedRef.current, [path]: state };
|
|
3157
|
+
setTouchedState(touchedRef.current);
|
|
3158
|
+
}
|
|
3159
|
+
if (state && settings.current.validateOnBlur !== false) void validate(latest.current);
|
|
3160
|
+
};
|
|
3161
|
+
const reset = (next = settings.current.initialValues) => {
|
|
3162
|
+
validationId.current += 1;
|
|
3163
|
+
latest.current = next;
|
|
3164
|
+
setValues(next);
|
|
3165
|
+
setErrors({});
|
|
3166
|
+
touchedRef.current = {};
|
|
3167
|
+
setTouchedState(touchedRef.current);
|
|
3168
|
+
};
|
|
3169
|
+
return { validate, setValue, setTouched, reset };
|
|
3170
|
+
}, []);
|
|
3171
|
+
const api = useMemo7(
|
|
3172
|
+
() => ({
|
|
3173
|
+
values,
|
|
3174
|
+
errors,
|
|
3175
|
+
touched,
|
|
3176
|
+
submitting,
|
|
3177
|
+
setValue: methods.setValue,
|
|
3178
|
+
setTouched: methods.setTouched,
|
|
3179
|
+
reset: methods.reset,
|
|
3180
|
+
submit: async () => {
|
|
3181
|
+
if (submittingRef.current) return false;
|
|
3182
|
+
submittingRef.current = true;
|
|
3183
|
+
setSubmitting(true);
|
|
3184
|
+
try {
|
|
3185
|
+
const next = latest.current;
|
|
3186
|
+
const result = await methods.validate(next);
|
|
3187
|
+
if (next !== latest.current) return false;
|
|
3188
|
+
const invalid = Object.keys(result).filter((path) => result[path]);
|
|
3189
|
+
if (invalid.length) {
|
|
3190
|
+
touchedRef.current = { ...touchedRef.current, ...Object.fromEntries(invalid.map((path) => [path, true])) };
|
|
3191
|
+
setTouchedState(touchedRef.current);
|
|
3192
|
+
return false;
|
|
3193
|
+
}
|
|
3194
|
+
await settings.current.onSubmit?.(latest.current, api);
|
|
3195
|
+
return true;
|
|
3196
|
+
} finally {
|
|
3197
|
+
submittingRef.current = false;
|
|
3198
|
+
setSubmitting(false);
|
|
3199
|
+
}
|
|
3200
|
+
},
|
|
3201
|
+
field: (path) => {
|
|
3202
|
+
const error = errors[path] ?? getPath(errors, path);
|
|
3203
|
+
return {
|
|
3204
|
+
value: getPath(values, path),
|
|
3205
|
+
error: typeof error === "string" ? error : void 0,
|
|
3206
|
+
touched: Object.hasOwn(touched, path) && !!touched[path],
|
|
3207
|
+
onValueChange: (value) => methods.setValue(path, value),
|
|
3208
|
+
onBlur: () => methods.setTouched(path)
|
|
3209
|
+
};
|
|
3210
|
+
}
|
|
3211
|
+
}),
|
|
3212
|
+
[values, errors, touched, submitting, methods]
|
|
3213
|
+
);
|
|
3214
|
+
return api;
|
|
3215
|
+
}
|
|
3216
|
+
var Context = createContext(null);
|
|
3217
|
+
function Form({
|
|
3218
|
+
form,
|
|
3219
|
+
children,
|
|
3220
|
+
className
|
|
3221
|
+
}) {
|
|
3222
|
+
return /* @__PURE__ */ jsx25(Context.Provider, { value: form, children: /* @__PURE__ */ jsx25(
|
|
3223
|
+
"form",
|
|
3224
|
+
{
|
|
3225
|
+
className,
|
|
3226
|
+
onSubmit: (event) => {
|
|
3227
|
+
event.preventDefault();
|
|
3228
|
+
void form.submit();
|
|
3229
|
+
},
|
|
3230
|
+
children
|
|
3231
|
+
}
|
|
3232
|
+
) });
|
|
3233
|
+
}
|
|
3234
|
+
function useFormContext() {
|
|
3235
|
+
const value = useContext(Context);
|
|
3236
|
+
if (!value) throw new Error("useFormContext must be used inside <Form>");
|
|
3237
|
+
return value;
|
|
3238
|
+
}
|
|
3239
|
+
|
|
3240
|
+
// src/components/forms/FormFields/FormFields.tsx
|
|
3241
|
+
import { memo } from "react";
|
|
3242
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
3243
|
+
var defaultFieldRegistry = {
|
|
3244
|
+
text: TextField,
|
|
3245
|
+
number: NumberField,
|
|
3246
|
+
textarea: TextArea,
|
|
3247
|
+
select: Select,
|
|
3248
|
+
autocomplete: Autocomplete,
|
|
3249
|
+
checkbox: Checkbox,
|
|
3250
|
+
switch: Switch,
|
|
3251
|
+
color: ColorPicker,
|
|
3252
|
+
date: DatePicker,
|
|
3253
|
+
file: FilePicker,
|
|
3254
|
+
people: PeoplePicker,
|
|
3255
|
+
slider: Slider,
|
|
3256
|
+
rotary: RotaryKnob,
|
|
3257
|
+
tags: TagInput
|
|
3258
|
+
};
|
|
3259
|
+
var bindings = {
|
|
3260
|
+
checked: (field) => ({ checked: Boolean(field.value), onValueChange: field.onValueChange }),
|
|
3261
|
+
file: (field) => {
|
|
3262
|
+
let value = "";
|
|
3263
|
+
if (Array.isArray(field.value)) value = field.value.map((file) => file.name).join(", ");
|
|
3264
|
+
else if (typeof field.value === "string") value = field.value;
|
|
3265
|
+
return { value, onFiles: field.onValueChange };
|
|
3266
|
+
},
|
|
3267
|
+
rotary: (field) => ({ value: Number(field.value ?? 0), onValueChange: field.onValueChange }),
|
|
3268
|
+
value: (field, kind) => {
|
|
3269
|
+
const emptyValue = { people: [], tags: [], slider: 0 };
|
|
3270
|
+
return {
|
|
3271
|
+
value: field.value ?? emptyValue[kind] ?? "",
|
|
3272
|
+
onValueChange: field.onValueChange,
|
|
3273
|
+
error: field.touched ? field.error : void 0,
|
|
3274
|
+
onBlur: field.onBlur
|
|
3275
|
+
};
|
|
3276
|
+
}
|
|
3277
|
+
};
|
|
3278
|
+
var bindingKind = {
|
|
3279
|
+
checkbox: "checked",
|
|
3280
|
+
switch: "checked",
|
|
3281
|
+
file: "file",
|
|
3282
|
+
rotary: "rotary"
|
|
3283
|
+
};
|
|
3284
|
+
function FormFields({
|
|
3285
|
+
fields,
|
|
3286
|
+
registry = defaultFieldRegistry,
|
|
3287
|
+
columns = 12,
|
|
3288
|
+
gap = 3
|
|
3289
|
+
}) {
|
|
3290
|
+
const form = useFormContext();
|
|
3291
|
+
return /* @__PURE__ */ jsx26(Grid, { columns, gap, align: "center", className: "ad-form-fields", children: fields.filter((field) => field.showWhen?.(form.values) ?? true).map((field) => /* @__PURE__ */ jsx26(
|
|
3292
|
+
StableSlot,
|
|
3293
|
+
{
|
|
3294
|
+
field,
|
|
3295
|
+
form,
|
|
3296
|
+
registry
|
|
3297
|
+
},
|
|
3298
|
+
field.name
|
|
3299
|
+
)) });
|
|
3300
|
+
}
|
|
3301
|
+
function Slot({
|
|
3302
|
+
field,
|
|
3303
|
+
form,
|
|
3304
|
+
registry
|
|
3305
|
+
}) {
|
|
3306
|
+
const kind = field.kind ?? "text", Component = registry[kind] ?? registry.text, props = bindings[bindingKind[kind] ?? "value"](form.field(field.name), kind);
|
|
3307
|
+
return /* @__PURE__ */ jsx26(Grid, { span: field.span ?? "full", className: "ad-form-field", children: /* @__PURE__ */ jsx26(Component, { label: field.label, ...field.props, ...props }) });
|
|
3308
|
+
}
|
|
3309
|
+
var StableSlot = /* @__PURE__ */ memo(Slot, (previous, next) => {
|
|
3310
|
+
if (previous.field !== next.field || previous.registry !== next.registry) return false;
|
|
3311
|
+
const before = previous.form.field(previous.field.name);
|
|
3312
|
+
const after = next.form.field(next.field.name);
|
|
3313
|
+
return Object.is(before.value, after.value) && before.error === after.error && before.touched === after.touched;
|
|
3314
|
+
});
|
|
3315
|
+
|
|
3316
|
+
export {
|
|
3317
|
+
useSvgId,
|
|
3318
|
+
vectorElement,
|
|
3319
|
+
SvgAsset,
|
|
3320
|
+
icons,
|
|
3321
|
+
illustrations,
|
|
3322
|
+
Icon,
|
|
3323
|
+
Avatar,
|
|
3324
|
+
Popover,
|
|
3325
|
+
variantMaterial,
|
|
3326
|
+
InputBase,
|
|
3327
|
+
normalizeHex,
|
|
3328
|
+
hexToHsv,
|
|
3329
|
+
hsvToHex,
|
|
3330
|
+
ColorPicker,
|
|
3331
|
+
buttonView,
|
|
3332
|
+
BooleanControl,
|
|
3333
|
+
Button,
|
|
3334
|
+
FilePicker,
|
|
3335
|
+
Slider,
|
|
3336
|
+
Switch,
|
|
3337
|
+
spacing,
|
|
3338
|
+
responsiveVars,
|
|
3339
|
+
Grid,
|
|
3340
|
+
IconButton,
|
|
3341
|
+
TextArea,
|
|
3342
|
+
TextField,
|
|
3343
|
+
Chip,
|
|
3344
|
+
TagInput,
|
|
3345
|
+
PeoplePicker,
|
|
3346
|
+
DatePicker,
|
|
3347
|
+
Autocomplete,
|
|
3348
|
+
Checkbox,
|
|
3349
|
+
NumberField,
|
|
3350
|
+
Select,
|
|
3351
|
+
clamp01,
|
|
3352
|
+
seeded,
|
|
3353
|
+
noise,
|
|
3354
|
+
fbm,
|
|
3355
|
+
paintCanvas,
|
|
3356
|
+
RotaryKnob,
|
|
3357
|
+
useForm,
|
|
3358
|
+
Form,
|
|
3359
|
+
useFormContext,
|
|
3360
|
+
defaultFieldRegistry,
|
|
3361
|
+
FormFields
|
|
3362
|
+
};
|