Compare commits

...

422 Commits

Author SHA1 Message Date
7e7d3e0514 Revert "feat: rewrite preview to use React.Suspense"
This reverts commit cd021716f1.
2023-09-25 12:50:03 +02:00
cd021716f1 feat: rewrite preview to use React.Suspense 2023-09-22 18:45:03 +02:00
22fde9d808 feat: prevent flickering before when switching type of background 2023-09-21 21:19:40 +02:00
13ea98e2e5 fix: returned initial appState, added missing constant 2023-09-21 10:18:05 +02:00
8b9dd3c422 docs: couple of comments 2023-09-21 10:18:04 +02:00
9f17998427 feat: content background type by constant 2023-09-21 10:18:02 +02:00
f6cb510f6a fix: take padding for logo from constant 2023-09-21 10:18:01 +02:00
04295d7096 feat: move aspect ratio into constant 2023-09-21 10:17:51 +02:00
5afa3fe31d Merge branch 'master' of github.com:excalidraw/excalidraw into arnost/export-image-background 2023-09-20 10:11:45 +02:00
6957398364 feat: replace multiple useState with useReduce in export dialog 2023-09-19 17:52:13 +02:00
fff2b6ea19 fix: making linter happy 2023-09-19 17:51:32 +02:00
0a588a880b docs: release @excalidraw/excalidraw@0.16.0 🎉 (#6993) 2023-09-19 19:59:53 +05:30
3d617958cc fix: improperly disabling UI pointer-events on canvas interaction (#7005)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-09-19 16:01:40 +02:00
99dbc0acb9 docs: Add docs for Excalidraw Element Skeleton (#6879)
* docs: Add docs for Excalidraw Element Skeleton

* fix

* upgrade package

* tweaks

* fix

* tweak

* Update dev-docs/docs/@excalidraw/excalidraw/api/excalidraw-element-skeleton.mdx

Co-authored-by: David Luzar <luzar.david@gmail.com>

* fix

---------

Co-authored-by: David Luzar <luzar.david@gmail.com>
2023-09-19 18:28:53 +05:30
4b11f43117 feat: zen-mode/go-to-plus button style tweaks (#7006) 2023-09-19 14:20:59 +02:00
bb847e391c feat: reuse dropdown instead of radix select 2023-09-18 23:14:33 +02:00
c578e4b640 fix: scale selector 2023-09-18 17:24:57 +02:00
e3f4f567b8 feat: holding down CMD/CTRL will disable snap to grid when grid is active (#6983)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-09-18 17:10:28 +02:00
22b58e68ec fix: disable frame clip on export with fancy bcg 2023-09-18 14:32:05 +02:00
c8180308c2 fix: respect clip frame during exports 2023-09-18 14:10:09 +02:00
0c4d6fbe95 fix: proper canvas size on frame export 2023-09-18 12:01:44 +02:00
eb020d0410 fix: generic element's labels not flipping with them (#6967) 2023-09-17 13:26:02 +02:00
c1952fd6cc fix: several eyeDropper fixes (#7002) 2023-09-17 13:24:50 +02:00
1f94f204dd fix: isBindableElement to affirm frames (#6900)
fix isBindableElement to affirm frames
2023-09-15 16:15:06 -05:00
a34216f9fc docs: new Sidebar API (#6976)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-09-15 13:03:23 +00:00
c9efb12e5b fix: use device.isMobile for sidebar trigger label breakpoint (#6994) 2023-09-15 12:08:51 +00:00
2e1da5537d feat: use new logo 2023-09-14 23:36:54 +02:00
d73cd14dfb docs: add mermaid docs (#6971)
* docs: add mermaid docs

* fix link

* add development.mdx

* add codebase

* add parseEdge

* add subgraph

* convertors

* tweaks

* structure the codebase

* add docs for new diagram type

* decouple docs for flowchart parser

* fix broken links

* use diagram instead of chart

* revert package.json

* tweaks

* point root folder of mermaid-to-excalidraw to installation

* remove installation from sidebar children

* fix link

* update flowchart parser diagram

* update parser overview diagram

* update more diagrams

* remove note about change in element stroke

* update diagram

* increase size limit for excalidraw production bundle

* tweaks

* add link

* move codebase after introduction

* dummy

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-09-13 21:01:34 +05:30
6abf194281 fix: export to plus url (#6980) 2023-09-11 21:13:16 +00:00
5302490372 feat: update logo (#6979) 2023-09-11 17:47:41 +02:00
4331be0f5b feat: add missing param to actionExport 2023-09-11 09:23:09 +02:00
4a9adc703a feat: export changeProperty() and getFormValue(). (#6957) 2023-09-09 08:13:15 -05:00
d80d81cc61 Merge branch 'arnost/export-image-background' of github.com:excalidraw/excalidraw into arnost/export-image-background 2023-09-08 00:20:47 +02:00
47de794c44 fix: frame export with fancy background 2023-09-08 00:13:57 +02:00
75cd5c20b6 fix: ImageExportDialog on mobile 2023-09-07 18:32:24 +02:00
56c21529db docs: Adding the json Schema to the documentation (#6817)
Co-authored-by: Rajni2002 <rajnikant.dash@everlytics.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-09-07 12:43:37 +02:00
a13aed92f2 fix: z-index inconsistencies during addition / deletion in frames (#6914)
Co-authored-by: Marcel Mraz <marcel.mraz@adacta-fintech.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-09-06 22:41:44 +00:00
134df7bfbb fix: update size-limit so react is not installed as dependency (#6964) 2023-09-06 10:39:04 +05:30
17de9725d0 add radius to fancy background 2023-09-05 22:58:49 +02:00
5191cdbe26 fix: stale labeled arrow bounds cache after editing the label (#6893)
* fix stale labeled arrow bounds cache after editing the label

* add arrow bounds test

* fix test to check the arrow version

* fix

* fix test - remove unused import

* Update src/element/textWysiwyg.test.tsx

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-09-05 21:20:27 +05:30
33e031c9fa feat: set logo via constant 2023-09-05 15:29:02 +02:00
27fd150a20 fix: canvas flickering due to resetting canvas on skipped frames (#6960) 2023-09-05 12:06:48 +02:00
0189120f79 feat: logo in svg 2023-08-31 23:10:51 +02:00
bcd239b91a fix: export into svg without logo 2023-08-31 16:53:14 +02:00
db622871f0 feat: use tmp logo 2023-08-30 15:33:28 +02:00
4b5ce5283b fix: position of background and content on y axis 2023-08-30 14:49:25 +02:00
97ff1222d9 chore: unite usage of normalizedCanvasDimensions and canvasDimensions 2023-08-30 10:05:34 +02:00
95baf540f2 fix: proper scaling (none) for fancyBackground in svg export 2023-08-30 09:57:23 +02:00
8ac95a713b fix: logo in dark svg 2023-08-29 23:12:32 +02:00
ab9c85cd2b feat: clean console.logs 2023-08-29 15:25:58 +02:00
425f1a5461 fix: padding 2023-08-29 15:04:02 +02:00
780af522a2 feat: add logo into export 2023-08-28 10:21:37 +02:00
188921c247 fix: grid jittery after partition PR (#6935) 2023-08-27 19:30:47 +02:00
9caa05825d feat: centered content bcg on svg export 2023-08-24 15:48:22 +02:00
a76aa5f7a1 fix: preview size when maxWidthOrHeight is hit 2023-08-23 16:03:09 +02:00
ae8d62f5c9 fix: proper background centering on scaled image 2023-08-23 14:05:03 +02:00
7795d1aaef feat: solid background position in roundRect fallback 2023-08-23 00:50:40 +02:00
38fd4fb165 feat: center and scale solid background on top of fancyBackground 2023-08-23 00:42:31 +02:00
e00764a937 feat: center content in canvas expanded to aspect ratio 2023-08-22 21:33:04 +02:00
c49bf04801 feat: resize canvas to aspect ratio when exporting with fancy bcg 2023-08-22 17:59:25 +02:00
4eabb8d021 test: fix selector in tests 2023-08-21 10:40:50 +02:00
4c2831bb8f test: update snapshots 2023-08-21 09:59:27 +02:00
26cd98efb1 feat: correct path in SVG exports for production 2023-08-21 09:52:48 +02:00
06ae04c0be fix: correct border radius in SVG 2023-08-18 19:10:39 +02:00
5ff4e0d640 fix: cleanup after rebase 2023-08-18 19:00:38 +02:00
c2870a6df5 fix: upscaling behavior after change of background 2023-08-18 17:44:48 +02:00
8b86ef4c60 fix: padding in preview 2023-08-18 17:44:47 +02:00
f096841add feat: show original labels in the scale radio group 2023-08-18 17:44:46 +02:00
dc0744a140 feat: scale fancyBackground radius and shadow 2023-08-18 17:44:45 +02:00
1f62bd8c67 fix: add missing hook dependency 2023-08-18 17:44:44 +02:00
4c8cf9c91c feat: scale up small exports with fancy background 2023-08-18 17:44:41 +02:00
d27856a967 chore: use width/height instead of w/h in Dimensions type 2023-08-18 17:43:38 +02:00
a216e7cce4 fix: remove unused import 2023-08-18 17:43:37 +02:00
9aa83da376 feat: recover background image from appState in ImageExportDialog 2023-08-18 17:43:36 +02:00
787f5d68cf feat: dark theme export background 2023-08-18 17:43:33 +02:00
baa133cbb7 feat: add dark export image backgrounds 2023-08-18 17:41:06 +02:00
e8cc787edc feat: fancyBackgrounds in svg 2023-08-18 17:41:03 +02:00
94f20566d1 feat: scale padding 2023-08-18 17:38:56 +02:00
d4d9ecf6c6 feat: simplify the rendering 2023-08-18 17:38:52 +02:00
77e88c09b8 fix: don't open export image dialog on load 2023-08-18 17:36:22 +02:00
6edcb99c89 feat: center content 2023-08-18 17:36:21 +02:00
b77b7ccce1 feat: use elements dimensions for scaling 2023-08-18 17:36:20 +02:00
c731bd13b6 feat: update renderConfig to move and scale content 2023-08-18 17:36:15 +02:00
70c7185f32 feat: export background => fancy background 2023-08-18 17:32:31 +02:00
d6515e26b9 feat: separate fancyBackground from renderScene 2023-08-18 17:32:11 +02:00
3c56efb9fe feat: hide background image select when background is not checked 2023-08-18 17:24:48 +02:00
a289e36397 feat: async renderScene 2023-08-18 17:24:39 +02:00
de1ebad755 fix: regression in indexing when adding elements to frame (#6904) 2023-08-18 16:34:01 +02:00
9cd5e15917 fix: stabilize selectedElementIds when box selecting (#6912) 2023-08-18 16:14:57 +02:00
5d9d2afcb7 fix: initial state 2023-08-18 13:51:21 +02:00
6e7c302974 feat: export with solid color only 2023-08-18 13:50:57 +02:00
67573ba079 feat: render backgrounds with rounded corners 2023-08-18 13:48:05 +02:00
f57cd7e2d5 feat: select the export bcg image and bcg color from appState 2023-08-18 13:47:11 +02:00
f15417f864 feat: render svg background on export 2023-08-18 13:43:36 +02:00
53b4885b0a feat: update export dialog 2023-08-18 12:20:13 +02:00
8101a351db fix: resetting deleted elements on duplication (#6906) 2023-08-18 00:28:26 +02:00
49e9a2ab33 build(deps): bump @excalidraw/excalidraw from 0.15.2 to 0.15.3 in /dev-docs (#6896)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-17 13:47:32 +02:00
d140d1b8b3 fix: make canvas compos memoize appState on props they declare (#6897) 2023-08-17 13:39:15 +02:00
1bd416002c fix: scope --color-selection retrieval to given instance (#6886)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-08-16 21:59:37 +00:00
991f5570ce build(deps): bump word-wrap from 1.2.3 to 1.2.5 (#6892)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.5.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.5)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-16 16:11:43 +05:30
3cf8259e71 build(deps): bump semver from 6.3.0 to 6.3.1 in /src/packages/utils (#6755)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-16 11:38:36 +02:00
9b727025fd build(deps): bump semver from 6.3.0 to 6.3.1 in /src/packages/excalidraw (#6754)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-16 11:38:16 +02:00
59b53eb9cb build(deps): bump protobufjs from 6.11.3 to 6.11.4 (#6890)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-16 11:25:31 +02:00
9e0bfd178e refactor: factor out shape generation from renderElement.ts pt 2 (#6878) 2023-08-14 13:52:25 +02:00
c29f19a88b perf: Limiting the suggested binding to fix performance issue (#6877) 2023-08-14 13:11:08 +02:00
2b14a5c233 build: increase limit for bundle by 1kb (#6880) 2023-08-14 15:47:18 +05:30
a376bd9495 feat: partition main canvas vertically (#6759)
Co-authored-by: Marcel Mraz <marcel.mraz@adacta-fintech.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-08-12 22:56:59 +02:00
3ea07076ad feat: support creating containers, linear elements, text containers, labelled arrows and arrow bindings programatically (#6546)
* feat: support creating text containers programatically

* fix

* fix

* fix

* fix

* update api to use label

* fix api and support individual shapes and text element

* update test case in package example

* support creating arrows and line

* support labelled arrows

* add in package example

* fix alignment

* better types

* fix

* keep element as is unless we support prog api

* fix tests

* fix lint

* ignore

* support arrow bindings via start and end in api

* fix lint

* fix coords

* support id as well for elements

* preserve bindings if present and fix testcases

* preserve bindings for labelled arrows

* support ids, clean up code and move the api related stuff to transform.ts

* allow multiple arrows to bind to single element

* fix singular elements

* fix single text element, unique id and tests

* fix lint

* fix

* support binding arrow to text element

* fix creation of regular text

* use same stroke color as parent for text containers and height 0 for linear element by default

* fix types

* fix

* remove more ts ignore

* remove ts ignore

* remove

* Add coverage script

* Add tests

* fix tests

* make type optional when id present

* remove type when id provided in tests

* Add more tests

* tweak

* let host call convertToExcalidrawElements when using programmatic API

* remove convertToExcalidrawElements call from restore

* lint

* update snaps

* Add new type excalidraw-api/clipboard for programmatic api

* cleanup

* rename tweak

* tweak

* make image attributes optional and better ts check

* support image via programmatic API

* fix lint

* more types

* make fileId mandatory for image and export convertToExcalidrawElements

* fix

* small tweaks

* update snaps

* fix

* use Object.assign instead of mutateElement

* lint

* preserve z-index by pushing all elements first and then add bindings

* instantiate instead of closure for storing elements

* use element API to create regular text, diamond, ellipse and rectangle

* fix snaps

* udpdate api

* ts fixes

* make `convertToExcalidrawElements` more typesafe

* update snaps

* refactor the approach so that order of elements doesn't matter

* Revert "update snaps"

This reverts commit 621dfadccf.

* review fixes

* rename ExcalidrawProgrammaticElement -> ExcalidrawELementSkeleton

* Add tests

* give preference to first element when duplicate ids found

* use console.error

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-08-09 16:41:15 +05:30
ded0222e8d docs: add note for tests that have requisites (#6856)
Co-authored-by: David Luzar <luzar.david@gmail.com>
2023-08-05 09:51:50 +00:00
e7983bc493 fix: webpack config exclude statement to system agnostic (#6857) 2023-08-05 11:49:57 +02:00
083bcf802c fix: remove embeddable from generic elements (#6853) 2023-08-04 15:16:55 +02:00
bb985eba3a fix: resizing arrow labels (#6789)
* fix arrow labels resizing

- min arrow labels width based on font size
- labels width and padding in % of container's width
- resize labels simply multiplying by scale

* remove no longer needed getContainerDims

* fix arrow labels font size not updated on change font size action

* fix bound arrows not updated right after resize

* fix test

* fix 3+ point arrow label resizing with shift

* fix bound text not scaling when resizing with shift & n or s handle

* fix arrow labels width not updating when moving a 2-point arrow point with shift

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-08-02 15:34:21 +05:30
23c88a38d0 build(deps): bump semver from 5.7.1 to 5.7.2 in /dev-docs (#6757)
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-01 16:14:08 +05:30
b85d5fa12b test: add coverage report for PR (#6840)
* test: add coverage report for PR

* gh token

* fix

* fix

* add reporter

* fix

* enable v8 for coverage

* no watch

* test

* add threshold

* fix

* change name so the action isn't required

* change job name

* rename job so it doesn't collid with test required check

* remove log
2023-08-01 16:13:04 +05:30
9391a09e54 build(deps): bump word-wrap from 1.2.3 to 1.2.5 (#6811)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.5.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.5)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-01 11:07:16 +05:30
50450a7dab chore: update required node version to 18 (#6837) 2023-07-31 23:47:41 +02:00
fc9a9a2571 fix: eye-dropper not working with app offset correctly on non-1 dPR (#6835) 2023-07-31 16:36:30 +02:00
6126c34dc0 fix: add self destroying service-worker.js to migrate everyone from CRA to Vite (#6833)
* fix: add self destroying service-worker.js to migrate everyone from CRA to VITE

* add comment

* don't add service-worker.js to app pre-cache
2023-07-31 19:56:50 +05:30
12e37e3dd2 fix: forgotten REACT_APP env variables (#6834) 2023-07-31 15:29:24 +02:00
9ca27c62c7 feat: add support for simplePDF in Web-Embeds (#6810) 2023-07-29 10:02:15 +02:00
1acc646534 feat: add support for val.town embeds (#6821) 2023-07-28 16:55:40 +02:00
66bac50de3 fix: refresh sw when browser refreshed (#6824)
* fix: refresh sw when browser refreshed

* dummy test

* enable immediate reload

* test

* fix

* autoupdate

* don't immediate

* test

* testing testing

* test

* test

* its same

* revert logs

* fix types

---------
2023-07-28 20:17:24 +05:30
5dd1efde8a build: update to node 18 in docker (#6822) 2023-07-28 12:06:33 +05:30
a7c590d459 feat: render bold lines in grid (#6779)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-07-27 22:41:44 +00:00
48924688c7 build: migrate to Vite 🚀 (#6818)
* init

* add: vite dev build working

* fix: href serving from public

* feat: add ejs plugin

* feat: migrated env files and ejs templating

* chore: add types related to envs

* chore: add vite-env types

* feat: support vite pwa

* chore: upgrade vite pwa

* chore: pin node version to 16.18.1

* chore: preserve use of nodejs 14

* refactor: preserve REACT_APP as env prefix

* chore: support esm environment variables

* fix ts config

* use VITE prefix and remove vite-plugin-env-compatible

* introduce import-meta-loader for building pacakge as webpack isn't compatible with import.meta syntax

* lint

* remove import.meta.env in main.js

* set debug flag to false

* migrate to vitest and use jest-canvas-mock 2.4.0 so its comp
atible with vite

* integrate vitest-ui

* fix most of teh test

* snaps

* Add script for testing with vite ui

* fix all tests related to mocking

* fix more test

* fix more

* fix flip.test.tsx

* fix contentxmenu snaps

* fix regression snaps

* fix excalidraw.test.tsx and this makes all tests finally pass :)

* use node 16

* specify node version

* use node 16 in lint as well

* fix mobile.test.tsx

* use node 16

* add style-loader

* upgrade to node 18

* fix lint package.json

* support eslint with vite

* fix lint

* fix lint

* fix ts

* remove pwa/sw stuff

* use env vars in EJS the vite way

* fix lint

* move remainig jest mock/spy to vite

* don't cache locales

* fix regex

* add fonts cache

* tweak

* add custom service worker

* upgrade vite and create font cache again

* cache fonts.css and locales

* tweak

* use manifestTransforms for filtering locales

* use assets js pattern for locales

* add font.css to globIgnore so its pushed to fonts cache

* create a separate chunk for locales with rollup

* remove manifestTransforms and fix glob pattern for locales to filter from workbox pre-cache

* push sourcemaps in production

* add comments in config

* lint

* use node 18

* disable pwa in dev

* fix

* fix

* increase limit of bundle

* upgrade vite-pwa to latest

* remove public/workbox so workbox assets are not precached

* fon't club en.json and percentages.json with manual locales chunk to fix first load+offline mode

* tweak regex

* remove happy-dom as its not used

* add comment

* use any instead of ts-ignore

* cleanup

* remove jest-canvas-mock resolution as vite-canvas-mock was patched locking deps at 2.4.0

* use same theme color present in entry point

* remove vite-plugin-eslint as it improves DX significantly

* integrate vite-plugin-checker for ts errors

* add nabla/vite-plugin-eslint

* use eslint from checker only

* add env variable VITE_APP_COLLAPSE_OVERLAY for collapsing the checker overlay

* tweak vite checker overlay badge position

* Enable eslint behind flag as its not working well with windows with non WSL

* make port configurable

* open the browser when server ready

* enable eslint by default

---------

Co-authored-by: Weslley Braga <weslley@bambee.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-07-27 23:50:11 +05:30
8af9ea3cf3 fix: adding to selection via shift box-select (#6815) 2023-07-27 12:50:08 +02:00
cbd908097f chore: typo - Collab.ts (#6812) 2023-07-26 23:30:25 +02:00
c1247742ea fix: prevent binding focus NaN value (#6803)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-07-26 23:28:11 +02:00
8104068bd5 revert: "build: Migrate to Vite 🚀" (#6814)
Revert "build: Migrate to Vite 🚀 (#6713)"

This reverts commit e93bbc5776.
2023-07-26 22:34:06 +05:30
dcc75ed007 feat: adds support for stackblitz.com embeds (#6813)
feat: adds stackblitz.com embeds
2023-07-26 21:01:18 +05:30
e93bbc5776 build: Migrate to Vite 🚀 (#6713)
* init

* add: vite dev build working

* fix: href serving from public

* feat: add ejs plugin

* feat: migrated env files and ejs templating

* chore: add types related to envs

* chore: add vite-env types

* feat: support vite pwa

* chore: upgrade vite pwa

* chore: pin node version to 16.18.1

* chore: preserve use of nodejs 14

* refactor: preserve REACT_APP as env prefix

* chore: support esm environment variables

* fix ts config

* use VITE prefix and remove vite-plugin-env-compatible

* introduce import-meta-loader for building pacakge as webpack isn't compatible with import.meta syntax

* lint

* remove import.meta.env in main.js

* set debug flag to false

* migrate to vitest and use jest-canvas-mock 2.4.0 so its comp
atible with vite

* integrate vitest-ui

* fix most of teh test

* snaps

* Add script for testing with vite ui

* fix all tests related to mocking

* fix more test

* fix more

* fix flip.test.tsx

* fix contentxmenu snaps

* fix regression snaps

* fix excalidraw.test.tsx and this makes all tests finally pass :)

* use node 16

* specify node version

* use node 16 in lint as well

* fix mobile.test.tsx

* use node 16

* add style-loader

* upgrade to node 18

* fix lint package.json

* support eslint with vite

* fix lint

* fix lint

* fix ts

* remove pwa/sw stuff

* use env vars in EJS the vite way

* fix lint

* move remainig jest mock/spy to vite

* don't cache locales

* fix regex

* add fonts cache

* tweak

* add custom service worker

* upgrade vite and create font cache again

* cache fonts.css and locales

* tweak

* use manifestTransforms for filtering locales

* use assets js pattern for locales

* add font.css to globIgnore so its pushed to fonts cache

* create a separate chunk for locales with rollup

* remove manifestTransforms and fix glob pattern for locales to filter from workbox pre-cache

* push sourcemaps in production

* add comments in config

* lint

* use node 18

* disable pwa in dev

* fix

* fix

* increase limit of bundle

* upgrade vite-pwa to latest

* remove public/workbox so workbox assets are not precached

* fon't club en.json and percentages.json with manual locales chunk to fix first load+offline mode

* tweak regex

* remove happy-dom as its not used

* add comment

* use any instead of ts-ignore

* cleanup

* remove jest-canvas-mock resolution as vite-canvas-mock was patched locking deps at 2.4.0

* use same theme color present in entry point

---------

Co-authored-by: Weslley Braga <weslley@bambee.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-07-26 15:55:20 +05:30
2a2495175b build: increase limit to 290 kB for prod bundle (#6809) 2023-07-26 08:49:39 +05:30
b57b3b573d feat: introducing Web-Embeds (alias iframe element) (#6691)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-07-24 16:51:53 +02:00
744e5b2ab3 fix: use pull request in semantic workflow for better security (#6799)
* fix: use pull request in semantic workflow for security

* add types
2023-07-24 13:01:42 +05:30
d36c72c435 fix: don't show canvasBackground label when UIOptions.canvasActions.changeViewBackgroundColor is false (#6781)
* fix(components/main-menu): not show canvasBackground

* chore(components/main-menu): add data-testid attr to canvasBackground label

* test(tests/packages/excalidraw): check whether canvasbackground label is rendered when changeviewbackground is false

* test: update snapshots

* fix(tests/packages/excalidraw): change to lowercase canvas background test id

* change to pull request target for size-limit

* Revert "change to pull request target for size-limit"

This reverts commit baf1ca2677.

* Add test

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-07-24 12:33:54 +05:30
e57dc405fa chore: add style-loader as deps instead of using from react-scripts (#6791) 2023-07-21 13:48:48 +05:30
41ed019bc2 chore: remove size-limit deps from root package.json (#6790)
* chore: remove size-limit deps from root package.json

* add size limit preset
2023-07-21 13:35:20 +05:30
f7c3644342 refactor: add typeScript support to enforce valid translation keys (#6776) 2023-07-20 18:15:32 +02:00
5e3550fc14 ci: structured build output from size-limit (#6788)
* ci: better build output from size-limit

* add size-limit.json

* try with pull request target

* fix

* revert pull request target
2023-07-20 13:54:13 +05:30
70888327a3 fix: use subdirectory for @excalidraw/excalidraw size limit (#6787)
* fix: use subdirectory for @excalidraw/excalidraw size limit

* fix

* update yml

* update path

* fix

* fix

* better
2023-07-19 22:07:18 +05:30
9fc15d81a0 ci: introduce bundle size for package @excalidraw/excalidraw (#6785)
* ci: update bundle size limit

* change the size script to track bundle size on the package excalidraw

* fix build command

* fix

* remove

* fix

* update script

* fix
2023-07-19 21:19:10 +05:30
a80ac4c748 ci: add bundle size limit action (#6783)
* ci: add bundle size limit action

* chore: fix lint

* ci: fix

* ci: fix workflow

* ci: fix workflow

* add size limit deps

* use node 18

---------

Co-authored-by: Nitin Kumar <nitin.kumar@razorpay.com>
2023-07-19 13:55:50 +05:30
9f76f8677b feat: cache most of element selection (#6747) 2023-07-17 01:09:44 +02:00
2e46e27490 fix: use actual dock state to not close docked library on insert (#6766) 2023-07-14 20:21:02 +02:00
cf0413338e feat: support customizing what parts of frames are rendered (#6752) 2023-07-10 17:13:44 +02:00
49e4289878 feat: make appState.selectedElementIds more stable (#6745) 2023-07-08 23:33:34 +02:00
3ddcc48e4c fix: UI disappears when pressing the eyedropper shortcut on mobile (#6725) 2023-06-29 12:39:44 +02:00
29a5e982c3 feat: support scrollToContent opts.fitToViewport (#6581)
Co-authored-by: dwelle <luzar.david@gmail.com>
Co-authored-by: Arnošt Pleskot <arnostpleskot@gmail.com>
2023-06-29 12:36:38 +02:00
b33fa6d6f6 fix: stronger enforcement of normalizeLink (#6728)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-06-29 12:14:42 +02:00
b7350f9707 fix: elements in non-existing frame getting removed (#6708)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-06-22 22:10:08 +00:00
8dfa2a98bb fix: scrollbars renders but disable (#6706) 2023-06-22 14:35:01 +02:00
fb01ce2a00 fix: typo in chart.ts (#6696)
fix: typo
2023-06-21 11:43:37 +05:30
3d57112480 chore: Update translations from Crowdin (#6677) 2023-06-19 17:10:09 +02:00
Are
7558a4e2be feat: overwrite confirmation dialogs (#6658)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-06-19 17:08:12 +02:00
6d56634289 fix: do not bind text to container using text tool when it has text already (#6694)
* fix: do not bind text to container using text tool when it has text already

* Update src/element/textWysiwyg.test.tsx
2023-06-19 17:28:45 +05:30
0aa1e66486 feat: simple analitycs (#6683)
* Simple analytics for iframe and webpage

* added logic for tracking specific categories of events to reduce it

* enviroment vars clean up

* fix: lint for index.html
2023-06-19 11:18:28 +02:00
7f7128ec09 fix: don't allow binding text to images (#6693) 2023-06-19 13:47:28 +05:30
6de6a96abf docs: add info about roadmap (#6687) 2023-06-16 20:55:33 +05:30
28ab6531c9 fix: updated link for documentation page under help section (#6654)
* fix: updated link for documentation page under help section

* Update docs link

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-06-15 14:58:11 +05:30
81ebf82979 feat: introduce frames (#6123)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-06-14 18:42:01 +02:00
4d7d96eb7b feat: add canvas-roundrect-polyfill package (#6675)
* feat: add canvas-roundrect-polyfill instead of maintaining a copy of it and transplile it since its not transpiled in the package

* transform canvas-roundrect-polyfill in jest
2023-06-14 17:26:29 +05:30
1747e93957 feat: polyfill CanvasRenderingContext2D.roundRect (#6673) 2023-06-13 16:34:24 +02:00
3bd5d87cac feat: disable collab feature when running in iframe (#6646)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-06-12 17:44:31 +02:00
74d2fc6406 fix: collab username style fixes (#6668) 2023-06-12 17:43:31 +02:00
ce9acfbc55 chore: Update translations from Crowdin (#6641) 2023-06-12 16:08:28 +02:00
16c7945ca0 feat: assign random user name when not set (#6663) 2023-06-12 16:05:07 +02:00
5ca3613cc3 feat: redesigned collab cursors (#6659)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-06-12 15:43:14 +02:00
b4abfad638 fix: bound arrows not updated when rotating multiple elements (#6662) 2023-06-09 13:22:40 +02:00
a39640ead1 fix: delete setCursor when resize (#6660) 2023-06-08 11:41:22 +02:00
84bd9bd4ff fix: creating text while color picker open (#6651)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-06-06 22:04:06 +02:00
ae7ff76126 fix: cleanup textWysiwyg and getAdjustedDimensions (#6520)
* fix: cleanup textWysiwyg and getAdjustedDimensions

* fix lint

* fix test
2023-06-06 14:36:18 +05:30
952aa63f86 chore: Update translations from Crowdin (#6625) 2023-06-02 17:41:05 +02:00
a065ec67a9 fix: eye dropper not accounting for offsets (#6640) 2023-06-02 17:35:25 +02:00
079aa72475 feat: eye dropper (#6615) 2023-06-02 17:06:11 +02:00
644685a5a8 fix: color picker input closing problem (#6599) 2023-06-01 23:17:22 +02:00
Are
7bf4de5892 feat: redesign of Live Collaboration dialog (#6635)
* feat: redesiged Live Collaboration dialog

* fix: address lints

* fix: inactive dialog dark mode improvements

* fix: follow styleguide with event parameter, add FilledButton size prop

* fix: change timer to be imperative

* fix: add spacing after emoji

* fix: remove unused useEffect

* fix: change margin into whitespace

* fix: add share button check back
2023-05-31 18:27:29 +02:00
253c5c7866 perf: memoize rendering of library (#6622)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-05-31 15:37:13 +02:00
82d8d02697 test: Add coverage script (#6634)
Add coverage script
2023-05-31 17:30:14 +05:30
1e3c94a37a feat: recover scrolled position after Library re-opening (#6624)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-05-31 10:22:02 +02:00
a91e401554 feat: clearing library cache (#6621)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-05-29 16:01:44 +02:00
Are
08563e7d7b feat: update design of ImageExportDialog (#6614)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-05-26 16:16:55 +02:00
6459ccda6a feat: add flipping for multiple elements (#5578)
* feat: add flipping when resizing multiple elements

* fix: image elements not flipping its content

* test: fix accidental resizing in grouping test

* fix: angles not flipping vertically when resizing

* feat: add flipping multiple elements with a command

* revert: image elements not flipping its content

This reverts commit cb989a6c66e62a02a8c04ce41f12507806c8d0a0.

* fix: add special cases for flipping text & images

* fix: a few corner cases for flipping

* fix: remove angle flip

* fix: bound text scaling when resizing

* fix: linear elements drifting away after multiple flips

* revert: fix linear elements drifting away after multiple flips

This reverts commit bffc33dd3f.

* fix: linear elements unstable bounds

* revert: linear elements unstable bounds

This reverts commit 22ae9b02c4.

* fix: hand-drawn lines shift after flipping

* test: fix flipping tests

* test: fix the number of context menu items

* fix: incorrect scaling due to ignoring bound text when finding selection bounds

* fix: bound text coordinates not being updated

* fix: lines bound text rotation

* fix: incorrect placement of bound lines on flip

* remove redundant predicates in actionFlip

* update test

* refactor resizeElement with some renaming and comments

* fix grouped bounded text elements not being flipped correctly

* combine mutation for bounded text element

* remove incorrect return

* fix: linear elements bindings after flipping

* revert: remove incorrect return

This reverts commit e6b205ca90.

* fix: minimum size for all elements in selection

---------

Co-authored-by: Ryan Di <ryan.weihao.di@gmail.com>
2023-05-25 16:27:41 +02:00
75bea48b54 fix: export dialog shortcut toggles console on firefox (#6620) 2023-05-24 22:52:21 +02:00
13780f390a fix: add react v17 useTransition polyfill (#6618) 2023-05-24 15:24:54 +00:00
fecbde3f5c chore: Update translations from Crowdin (#6598)
* New translations en.json (Greek)

* New translations en.json (Slovenian)

* New translations en.json (Portuguese, Brazilian)

* Auto commit: Calculate translation coverage

* New translations en.json (German)

* Auto commit: Calculate translation coverage

* New translations en.json (Korean)

* New translations en.json (Chinese Traditional)

* Auto commit: Calculate translation coverage

* New translations en.json (Norwegian Bokmal)

* Auto commit: Calculate translation coverage

* New translations en.json (Indonesian)

* New translations en.json (Indonesian)

* Auto commit: Calculate translation coverage

* New translations en.json (Indonesian)

* Auto commit: Calculate translation coverage

* New translations en.json (Indonesian)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* Auto commit: Calculate translation coverage

* New translations en.json (Russian)

* Auto commit: Calculate translation coverage

* New translations en.json (Slovak)

* Auto commit: Calculate translation coverage

* New translations en.json (Italian)

* Auto commit: Calculate translation coverage

* New translations en.json (Italian)

* Auto commit: Calculate translation coverage

* New translations en.json (Kurdish)

* New translations en.json (Swedish)

* Auto commit: Calculate translation coverage

* New translations en.json (Portuguese)

* Auto commit: Calculate translation coverage

* New translations en.json (Portuguese)

* Auto commit: Calculate translation coverage

* New translations en.json (Khmer)

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage

* New translations en.json (Khmer)

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage
2023-05-24 16:50:11 +02:00
7340c70a06 perf: improve rendering performance for Library (#6587)
* perf: improve rendering performance for Library

* fix: return onDrag and onToggle functionality to Library Items

* perf: cache exportToSvg output

* fix: lint warning

* fix: add onClick handler into LibraryUnit

* feat: better spinner

* fix: useCallback for getInsertedElements to fix linter error

* feat: different batch size when svgs are cached

* fix: library items alignment in row

* feat: skeleton instead of spinner

* fix: remove unused variables

* feat: use css vars instead of hadcoded colors

* feat: reverting skeleton, removing spinner

* cleanup and unrelated refactor

* change ROWS_RENDERED_PER_BATCH to 6

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-05-24 14:40:20 +00:00
a4f05339aa fix: Library dropdown visibility issue for mobile (#6613)
Fix: Library dropdown visibility issue for mobile

Co-authored-by: Rounik Prashar <rounik.prashar@increff.com>
2023-05-23 22:37:19 +02:00
a8f0a14610 fix: withInternalFallback leaking state in multi-instance scenarios (#6602) 2023-05-19 15:47:01 +02:00
a89952e32f chore: Update translations from Crowdin (#6589) 2023-05-18 16:23:09 +02:00
5b7596582f feat: color picker redesign (#6216)
Co-authored-by: Maielo <maielo.mv@gmail.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-05-18 16:06:27 +02:00
6977c32631 style: Removes extra spaces (#6558)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-05-13 21:09:16 +00:00
f6f9ed0396 refactor: simplify ImageExportDialog (#6578) 2023-05-13 22:58:35 +02:00
b1b325b9a7 feat: add "unlock all elements" to canvas contextMenu (#5894) 2023-05-13 22:52:03 +02:00
5bf27a463c fix: language list containing duplicate en lang (#6583) 2023-05-13 22:50:14 +02:00
306e133651 fix: garbled text displayed on avatars (#6575)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-05-13 19:49:09 +02:00
e0f2869374 fix: assign the original text to text editor only during init (#6580) 2023-05-13 19:17:29 +02:00
2c511e30cd chore: Update translations from Crowdin (#6571)
* New translations en.json (Karakalpak)

* New translations en.json (Karakalpak)

* Auto commit: Calculate translation coverage

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* New translations en.json (Spanish)

* New translations en.json (Italian)

* New translations en.json (Slovak)

* New translations en.json (Bengali)

* New translations en.json (Khmer)

* New translations en.json (Karakalpak)

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Arabic)

* New translations en.json (Bulgarian)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Basque)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Kurdish)

* New translations en.json (Lithuanian)

* New translations en.json (Dutch)

* New translations en.json (Punjabi)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Slovenian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Galician)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Indonesian)

* New translations en.json (Persian)

* New translations en.json (Tamil)

* New translations en.json (Marathi)

* New translations en.json (Thai)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Kazakh)

* New translations en.json (Latvian)

* New translations en.json (Hindi)

* New translations en.json (Burmese)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Sinhala)

* New translations en.json (Norwegian Bokmal)

* New translations en.json (Occitan)

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* New translations en.json (Spanish)

* New translations en.json (Italian)

* New translations en.json (Slovak)

* New translations en.json (Bengali)

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Arabic)

* New translations en.json (Bulgarian)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Basque)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Kurdish)

* New translations en.json (Lithuanian)

* New translations en.json (Dutch)

* New translations en.json (Punjabi)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Slovenian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Galician)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Indonesian)

* New translations en.json (Persian)

* New translations en.json (Tamil)

* New translations en.json (Marathi)

* New translations en.json (Thai)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Latvian)

* New translations en.json (Hindi)

* New translations en.json (Burmese)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Norwegian Bokmal)

* New translations en.json (Occitan)

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* New translations en.json (Ukrainian)

* Auto commit: Calculate translation coverage

* New translations en.json (Ukrainian)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* New translations en.json (Hindi)

* New translations en.json (Hindi)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Ukrainian)

* New translations en.json (Khmer)

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage

* New translations en.json (German)

* New translations en.json (Punjabi)

* Auto commit: Calculate translation coverage

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-05-13 17:16:58 +00:00
fff9d1522a feat: library sidebar design tweaks (#6582) 2023-05-13 13:18:14 +02:00
e619e06055 fix: i18n: Apply Trans component to publish library dialogue (#6564) 2023-05-10 10:39:21 +02:00
d8965ee823 chore: Update translations from Crowdin (#6530)
* New translations en.json (Bengali)

* New translations en.json (Bengali)

* Auto commit: Calculate translation coverage

* New translations en.json (Khmer)

* Auto commit: Calculate translation coverage

* New translations en.json (Slovak)

* Auto commit: Calculate translation coverage

* New translations en.json (Karakalpak)

* Auto commit: Calculate translation coverage

* New translations en.json (Karakalpak)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* New translations en.json (Spanish)

* New translations en.json (Italian)

* New translations en.json (Slovak)

* New translations en.json (Bengali)

* New translations en.json (Khmer)

* New translations en.json (Karakalpak)

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Arabic)

* New translations en.json (Bulgarian)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Basque)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Kurdish)

* New translations en.json (Lithuanian)

* New translations en.json (Dutch)

* New translations en.json (Punjabi)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Slovenian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Galician)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Indonesian)

* New translations en.json (Persian)

* New translations en.json (Tamil)

* New translations en.json (Marathi)

* New translations en.json (Thai)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Kazakh)

* New translations en.json (Latvian)

* New translations en.json (Hindi)

* New translations en.json (Burmese)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Sinhala)

* New translations en.json (Norwegian Bokmal)

* New translations en.json (Occitan)

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* New translations en.json (Korean)

* New translations en.json (Russian)

* New translations en.json (Slovenian)

* New translations en.json (Norwegian Bokmal)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* New translations en.json (German)

* New translations en.json (Chinese Traditional)

* Auto commit: Calculate translation coverage

* New translations en.json (Karakalpak)

* Auto commit: Calculate translation coverage

* New translations en.json (Karakalpak)

* Auto commit: Calculate translation coverage

* New translations en.json (Vietnamese)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* New translations en.json (Spanish)

* New translations en.json (Italian)

* New translations en.json (Slovak)

* New translations en.json (Bengali)

* New translations en.json (Khmer)

* New translations en.json (Karakalpak)

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Arabic)

* New translations en.json (Bulgarian)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Basque)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Kurdish)

* New translations en.json (Lithuanian)

* New translations en.json (Dutch)

* New translations en.json (Punjabi)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Slovenian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Galician)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Indonesian)

* New translations en.json (Persian)

* New translations en.json (Tamil)

* New translations en.json (Marathi)

* New translations en.json (Thai)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Kazakh)

* New translations en.json (Latvian)

* New translations en.json (Hindi)

* New translations en.json (Burmese)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Sinhala)

* New translations en.json (Norwegian Bokmal)

* New translations en.json (Occitan)

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Kurdish)

* New translations en.json (Slovenian)

* New translations en.json (Norwegian Bokmal)

* Auto commit: Calculate translation coverage

* New translations en.json (German)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* Auto commit: Calculate translation coverage

* New translations en.json (Russian)

* Auto commit: Calculate translation coverage

* New translations en.json (Korean)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* Auto commit: Calculate translation coverage

* New translations en.json (Swedish)

* Auto commit: Calculate translation coverage

* New translations en.json (Slovak)

* New translations en.json (Persian)

* Auto commit: Calculate translation coverage
2023-05-09 18:15:27 +05:30
560231d365 perf: use UIAppState where possible to reduce UI rerenders (#6560) 2023-05-08 10:14:02 +02:00
026949204d fix: fix brave error i18n string and remove unused (#6561) 2023-05-06 10:36:42 +02:00
1184a8c0e9 feat: Add Trans component for interpolating JSX in translations (#6534)
* feat: add Trans component

* Add comments

* tweak

* Move brave to trans component

* fix test and tweaks

* remove any

* fix

* fix

* comment

* replace render function type

* Use tags for Trans

* Fix a typo

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>

* Cleanup, add comments, add support for kebab case

* tweaks

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-05-05 21:35:18 +05:30
e9cae918a7 feat: sidebar tabs support (#6213)
* feat: Sidebar tabs support [wip]

* tab trigger styling tweaks

* add `:hover` & `:active` states

* replace `@dwelle/tunnel-rat` with `tunnel-rat`

* make stuff more explicit

- remove `Sidebar.Header` fallback (host apps need to render manually), and stop tunneling it (render in place)
- make `docked` state explicit
- stop tunneling `Sidebar.TabTriggers` (render in place)

* redesign sidebar / library as per latest spec

* support no label on `Sidebar.Trigger`

* add Sidebar `props.onStateChange`

* style fixes

* make `appState.isSidebarDocked` into a soft user preference

* px -> rem & refactor

* remove `props.renderSidebar`

* update tests

* remove

* refactor

* rename constants

* tab triggers styling fixes

* factor out library-related logic from generic sidebar trigger

* change `props.onClose` to `onToggle`

* rename `props.value` -> `props.tab`

* add displayNames

* allow HTMLAttributes on applicable compos

* fix example App

* more styling tweaks and fixes

* fix not setting `dockable`

* more style fixes

* fix and align sidebar header button styling

* make DefaultSidebar dockable on if host apps supplies `onDock`

* stop `Sidebar.Trigger` hiding label on mobile

this should be only the default sidebar trigger behavior, and for that we don't need to use `device` hook as we handle in CSS

* fix `dockable` prop of defaultSidebar

* remove extra `typescript` dep

* remove `defaultTab` prop

in favor of explicit `tab` value in `<Sidebar.Trigger/>` and `toggleSidebar()`, to reduce API surface area and solve inconsistency of `appState.openSidebar.tab` not reflecting actual UI value if `defaultTab` was supported (without additional syncing logic which feels like the wrong solution).

* remove `onToggle` in favor of `onStateChange`

reducing API surface area

* fix restore

* comment no longer applies

* reuse `Button` component in sidebar buttons

* fix tests

* split Sidebar sub-components into files

* remove `props.dockable` in favor of `props.onDock` only

* split tests

* fix sidebar showing dock button if no `props.docked` supplied & add more tests

* reorder and group sidebar tests

* clarify

* rename classes & dedupe css

* refactor tests

* update changelog

* update changelog

---------

Co-authored-by: barnabasmolnar <barnabas@excalidraw.com>
2023-05-04 17:33:31 +00:00
b1311a407a fix: Revert add version tags to Docker build (#6540)
Revert "build: Add version tags to Docker build (#6508)"

This reverts commit 1815cf3213.
2023-05-02 12:49:11 +05:30
2a39d0b9a7 chore: Update translations from Crowdin (#6471) 2023-04-27 19:27:36 +02:00
6b0218b012 feat: testing simple analytics and fathom analytics for better privacy of the users (#6529)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-04-27 19:11:42 +02:00
45a57d70de fix: don't refresh dimensions for text containers on font load (#6523) 2023-04-26 21:35:06 +05:30
da8dd389a9 fix: cleanup getMaxContainerHeight and getMaxContainerWidth (#6519)
* fix: cleanup getMaxContainerHeight and getMaxContainerWidth

* rename getMaxContainerWidth -> getBoundTextMaxMaxWidth and getMaxContainerHeight -> getBoundTextMaxHeight

* add specs
2023-04-25 18:06:23 +05:30
dae81c0a2c fix: cleanup redrawTextBoundingBox (#6518)
* chore: cleanup redrawTextBoundingBox

* fix
2023-04-25 17:57:53 +05:30
1e9943323a style: fix font family inconsistencies (#6501)
style: font fix for four components

The browser default font was showing up in various locations. Fixed them to show the desired ui font.
2023-04-25 17:20:19 +05:30
1815cf3213 build: Add version tags to Docker build (#6508)
ci: Add version tags
2023-04-25 16:51:25 +05:30
d35386755f feat: retain seed on shift-paste (#6509)
thanks for the review 👍
2023-04-24 10:26:21 +02:00
9d5cfbbfb7 fix: text jumps when editing on Android Chrome (#6503)
* debug logging

* debug

* debugging

* Update textWysiwyg.tsx

* Update textWysiwyg.tsx

* extended debug information

* debug

* debug

* trace

* further debug

* don't drag while editing

* removing all console.logs

* revert all changes to textWysiwyt.tsx

* updated comment
2023-04-22 14:17:13 +02:00
fee760d38c feat: allow avif, jfif, webp, bmp, ico image types (#6500
* feat: allow `avif`, `jfif`, `webp`, `bmp`, `ico` image types

* dedupe for SSOT

* more SSOT
2023-04-21 22:53:49 +02:00
2a4799d8c8 chore: upgrade excalidraw version to 0.15.2 (#6496)
chore: updragde excalidraw version to 0.15.2
2023-04-20 17:40:08 +05:30
c4445c181b docs: release @excalidraw/excalidraw@0.15.2 🎉 (#6495) 2023-04-20 17:34:06 +05:30
d12a9fdd40 build(deps): bump ua-parser-js from 0.7.31 to 0.7.33 in /dev-docs (#6164)
Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.31 to 0.7.33.
- [Release notes](https://github.com/faisalman/ua-parser-js/releases)
- [Changelog](https://github.com/faisalman/ua-parser-js/blob/master/changelog.md)
- [Commits](https://github.com/faisalman/ua-parser-js/compare/0.7.31...0.7.33)

---
updated-dependencies:
- dependency-name: ua-parser-js
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-20 17:07:56 +05:30
9368a9ce3e build(deps): bump webpack from 5.75.0 to 5.76.1 (#6357)
Bumps [webpack](https://github.com/webpack/webpack) from 5.75.0 to 5.76.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.75.0...v5.76.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-20 17:05:03 +05:30
851b9b7aec fix: rotate the text element when binding to a rotated container (#6477)
* Updated logic to update the bound child angle from the parent

* update angle when generating text element

* add test

* remove

* fix

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-04-20 16:34:39 +05:30
5ddb28d378 fix: support breaking words containing hyphen - (#6014)
* fix: support breaking words containing hyphen -

* fix

* add spec

* fix

* fix

* fix

* fix and add spec

* improve code and add more tests
2023-04-20 11:10:46 +05:30
404a79e241 chore: typo (collab) - reconciliation.ts (#6447) 2023-04-19 19:18:03 +02:00
eea30da05a fix: incorrect background fill button active state (#6491) 2023-04-19 16:23:24 +02:00
98a77d7426 chore: show bounding box only when flag is true (#6490) 2023-04-19 17:02:20 +05:30
ff3c2e5a16 docs: fix docs link in readme (#6486)
* docs: fix docs link in readme

* update changelog
2023-04-18 21:52:08 +05:30
b64beaf5ba docs: release @excalidraw/excalidraw@0.15.1 🎉 (#6485) 2023-04-18 21:32:33 +05:30
89304c9f66 fix: add readme back to npm package which was mistakenly removed (#6484)
* fix: remove update readme script from release

* update docs

* remove

* fix
2023-04-18 21:23:47 +05:30
1d0653ce50 docs: update docs for next version (#6251)
* update docs for opts param inr estore utils

* docs: add docs for `useI18n` hook (#6269)

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>

* upgrade excal

---------

Co-authored-by: David Luzar <luzar.david@gmail.com>
2023-04-18 21:03:17 +05:30
c9c79646c5 docs: release @excalidraw/excalidraw@0.15.0 🎉 (#6481) 2023-04-18 20:48:30 +05:30
979312f779 fix: center align text when wrapped in container via context menu (#6480)
* rename action to wrapTextInContainer

* fix: center align text when wrapped in container via context menu

* revert translation key

* fix tests
2023-04-18 19:44:14 +05:30
4d0d844e39 feat: constrain export dialog preview size (#6475) 2023-04-18 15:27:51 +02:00
801412bf6b fix: restore original container height when unbinding text which was binded via context menu (#6444)
* fix: restore original container height when unbinding text which was binded via context menu

* remove flag

* comment
2023-04-18 18:50:25 +05:30
21726e22cc fix: mark more props as optional for element (#6448)
* fix: mark more props as optional for element

* fix
2023-04-18 18:42:48 +05:30
c3e8ddaf58 fix: improperly cache-busting on canvas scale instead of zoom (#6473) 2023-04-17 11:41:27 +02:00
f640ddc2aa fix: incorrectly duplicating items on paste/library insert (#6467
* fix: incorrectly duplicating items on paste/library insert

* fix: deduplicate element ids on restore

* tests
2023-04-16 17:22:16 +02:00
e7e54814e7 chore: Update translations from Crowdin (#6290)
* New translations en.json (Occitan)

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Slovenian)

* New translations en.json (Norwegian Bokmal)

* Auto commit: Calculate translation coverage

* New translations en.json (Dutch)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Traditional)

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Galician)

* Auto commit: Calculate translation coverage

* New translations en.json (German)

* Auto commit: Calculate translation coverage

* New translations en.json (Marathi)

* New translations en.json (Hindi)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Basque)

* Auto commit: Calculate translation coverage

* New translations en.json (Swedish)

* Auto commit: Calculate translation coverage

* New translations en.json (Spanish)

* Auto commit: Calculate translation coverage

* New translations en.json (Hebrew)

* Auto commit: Calculate translation coverage

* New translations en.json (Hebrew)

* Auto commit: Calculate translation coverage

* New translations en.json (Hebrew)

* New translations en.json (Chinese Simplified)

* Auto commit: Calculate translation coverage

* New translations en.json (Slovak)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Turkish)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* New translations en.json (Spanish)

* New translations en.json (Catalan)

* New translations en.json (Basque)

* New translations en.json (Finnish)

* New translations en.json (Portuguese)

* New translations en.json (Slovak)

* New translations en.json (Chinese Simplified)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Tamil)

* New translations en.json (Marathi)

* New translations en.json (Hindi)

* New translations en.json (French)

* New translations en.json (Arabic)

* New translations en.json (Bulgarian)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Kurdish)

* New translations en.json (Lithuanian)

* New translations en.json (Dutch)

* New translations en.json (Punjabi)

* New translations en.json (Polish)

* New translations en.json (Russian)

* New translations en.json (Slovenian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Galician)

* New translations en.json (Indonesian)

* New translations en.json (Persian)

* New translations en.json (Bengali)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Kazakh)

* New translations en.json (Latvian)

* New translations en.json (Burmese)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Sinhala)

* New translations en.json (Norwegian Bokmal)

* New translations en.json (Occitan)

* New translations en.json (Kabyle)

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* New translations en.json (Greek)

* New translations en.json (Slovenian)

* New translations en.json (Swedish)

* New translations en.json (Norwegian Bokmal)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Traditional)

* Auto commit: Calculate translation coverage

* New translations en.json (Portuguese)

* Auto commit: Calculate translation coverage

* New translations en.json (Portuguese)

* New translations en.json (German)

* Auto commit: Calculate translation coverage

* New translations en.json (Galician)

* Auto commit: Calculate translation coverage

* New translations en.json (Galician)

* Auto commit: Calculate translation coverage

* New translations en.json (Hebrew)

* Auto commit: Calculate translation coverage

* New translations en.json (Hebrew)

* New translations en.json (French)

* Auto commit: Calculate translation coverage

* New translations en.json (Indonesian)

* Auto commit: Calculate translation coverage

* New translations en.json (Indonesian)

* Auto commit: Calculate translation coverage

* New translations en.json (Italian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Marathi)

* New translations en.json (Hindi)

* Auto commit: Calculate translation coverage

* New translations en.json (Hindi)

* Auto commit: Calculate translation coverage

* New translations en.json (Slovak)

* Auto commit: Calculate translation coverage

* New translations en.json (Spanish)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Thai)

* Auto commit: Calculate translation coverage

* New translations en.json (Japanese)

* Auto commit: Calculate translation coverage

* New translations en.json (Dutch)

* Auto commit: Calculate translation coverage

* New translations en.json (Dutch)

* Auto commit: Calculate translation coverage

* New translations en.json (Basque)

* Auto commit: Calculate translation coverage

* New translations en.json (Basque)

* Auto commit: Calculate translation coverage

* New translations en.json (Marathi)

* Auto commit: Calculate translation coverage

* New translations en.json (Marathi)

* Auto commit: Calculate translation coverage

* New translations en.json (Marathi)

* New translations en.json (Hindi)

* Auto commit: Calculate translation coverage

* New translations en.json (Polish)

* Auto commit: Calculate translation coverage

* New translations en.json (Polish)

* New translations en.json (Chinese Simplified)

* New translations en.json (Vietnamese)

* Auto commit: Calculate translation coverage

* New translations en.json (Vietnamese)

* Auto commit: Calculate translation coverage

* New translations en.json (Polish)

* Auto commit: Calculate translation coverage

* New translations en.json (Korean)

* Auto commit: Calculate translation coverage

* New translations en.json (Dutch)

* New translations en.json (Basque)

* New translations en.json (Marathi)

* New translations en.json (Hindi)

* New translations en.json (Polish)

* New translations en.json (Chinese Simplified)

* New translations en.json (Vietnamese)

* New translations en.json (Korean)

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Spanish)

* New translations en.json (Arabic)

* New translations en.json (Bulgarian)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Kurdish)

* New translations en.json (Lithuanian)

* New translations en.json (Punjabi)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Slovak)

* New translations en.json (Slovenian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Traditional)

* New translations en.json (Galician)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Indonesian)

* New translations en.json (Persian)

* New translations en.json (Tamil)

* New translations en.json (Bengali)

* New translations en.json (Thai)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Kazakh)

* New translations en.json (Latvian)

* New translations en.json (Burmese)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Sinhala)

* New translations en.json (Norwegian Bokmal)

* New translations en.json (Occitan)

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Slovenian)

* New translations en.json (Norwegian Bokmal)

* Auto commit: Calculate translation coverage

* New translations en.json (Japanese)

* Auto commit: Calculate translation coverage

* New translations en.json (German)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Traditional)

* Auto commit: Calculate translation coverage

* New translations en.json (Marathi)

* New translations en.json (Hindi)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* Auto commit: Calculate translation coverage

* New translations en.json (Italian)

* Auto commit: Calculate translation coverage

* New translations en.json (Turkish)

* Auto commit: Calculate translation coverage
2023-04-16 17:12:37 +02:00
e9064a4a87 fix: library ids cross-contamination on multiple insert (#6466) 2023-04-16 17:09:51 +02:00
034113772d fix: color picker keyboard handling not working (#6464) 2023-04-16 15:33:30 +02:00
d34cd3072f fix: abort freedraw line if second touch is detected (#6440) 2023-04-16 15:33:16 +02:00
e31230f78c refactor: inline SingleLibraryItem into PublishLibrary (#6462
refactor: inline `SingleLibraryItem` into `PublishLibrary` to reduce api surface area
2023-04-16 11:57:13 +02:00
399c92d882 fix: utils leaking Scene state (#6461
* fix: utils leaking Scene state

* remove debug

* doc

* add tests for group duplicating

* tweaks
2023-04-16 11:56:25 +02:00
b0b23353cf fix: split "Edit selected shape" shortcut (#6457)
Co-authored-by: David Luzar <luzar.david@gmail.com>
2023-04-14 21:34:26 +00:00
6164b5273c fix: center align text when bind to container via context menu (#6451) 2023-04-14 15:22:39 +02:00
ca3be2c678 fix: exporting labelled arrows via export utils (#6443)
* fix: exporting labelled arrows via export utils

* add comments

* lint

* update changelog

* fix lint

* initialize scene in the utils so it can be availabe in the helper functions

* fix library rendering

* add comments
2023-04-13 17:19:46 +05:30
13b27afe0f fix: update coords when text unbinded from its container (#6445)
* fix: update coords when text unbinded from its container

* Add specs
2023-04-13 11:45:58 +05:30
372743f59f fix: autoredirect to plus in prod only (#6446) 2023-04-12 10:57:00 +02:00
fc601347cf fix: fixing popover overflow on small screen (#6433)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-04-11 23:23:36 +02:00
e4d8ba226f feat: zigzag fill easter egg (#6439) 2023-04-10 15:38:50 +02:00
ec215362a1 fix: introduce baseline to fix the layout shift when switching to text editor (#6397)
* fix: introduce baseline to fix the layout shift when switching to text editor

* uncomment

* change offset to 8pixels

* [debug]

* introduce DOM baseline in canvas rendering instead

* introduce baseline in element making it backward compat

* fix

* lint

* fix

* update baseline when resizing text element

* fix safari backward compat

* fix for safari

* lint

* reduce safari LS

* floor line height and height when dom height increases than canvas height

* Revert "floor line height and height when dom height increases than canvas height"

This reverts commit 8de6516823.

* cleanup

* use DOM height only for safari to fix LS

* Revert "use DOM height only for safari to fix LS"

This reverts commit d75889238d.

* fix lint and test

* fix

* calculate line height by rounding off instead of DOM

* cleanup

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-04-10 18:52:46 +05:30
0b8fc4f4b6 fix: don't refresh dimensions for deleted text elements (#6438) 2023-04-10 16:31:58 +05:30
c170403b13 docs: fix closing tag in readme (#6424
Update README.md
2023-04-07 17:43:50 +02:00
705ac9c1ab fix: element vanishes when zoomed in (#6417)
Co-authored-by: David Luzar <luzar.david@gmail.com>
2023-04-07 15:30:44 +00:00
68692b9d4c feat: add container to multiple text elements (#6428)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-04-07 13:50:36 +00:00
d61b3cf83d fix: don't jump text to end when out of viewport in safari (#6416) 2023-04-05 12:17:18 +05:30
d2b8f4d2f8 fix: getDefaultLineHeight should return default font family line height for unknown font (#6399)
* fix(getDefaultLineHeight): make getDefaultLineHeight always has a default value

* test: add getDefaultLineHeight test case when using unknown font

* test: add getDefaultLineHeight test case when using unknown font

* Revert "test: add getDefaultLineHeight test case when using unknown font"

This reverts commit d41da5493b6edab9e599a13a23c387d38345bf03.

* test: add getDefaultLineHeight test case when using unknown font

* newline

* newline

* tweaks

* trigger action

* trigger action

* fix

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-03-30 00:46:23 +05:30
f8e65bb77e fix: Revert use ideographic textBaseline to improve layout shift when editing text" (#6400)
Revert "fix: use `ideographic` textBaseline to improve layout shift when editing text (#6384)"

This reverts commit 9e52c30ce8.
2023-03-29 18:53:03 +05:30
3030e96d62 feat: starting migration from GA to Matomo for better privacy (#6398)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-03-29 11:13:06 +02:00
44453b725d fix: call stack size exceeded when paste large text (#6373) (#6396)
* fix: call stack size exceeded when paste large text (#6373)

* fix: add test case for paste multi-line text

* fix

* tweak

* add missing assertion

* add comments

* lint

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-03-29 13:45:30 +05:30
25bb6738ea feat: Add fitToContent and animate to scrollToContent (#6319)
Co-authored-by: Brice Leroy <brice@brigalabs.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-03-25 23:26:58 +01:00
9e52c30ce8 fix: use ideographic textBaseline to improve layout shift when editing text (#6384) 2023-03-22 18:33:37 +01:00
83383977f5 feat: add line height attribute to text element (#6360)
* feat: add line height attribute to text element

* lint

* update line height when redrawing text bounding box

* fix tests

* retain line height when pasting styles

* fix test

* create a util for calculating ling height using old algo

* update line height when resizing multiple text elements

* make line height backward compatible

* udpate line height for older element when font size updated

* remove logs

* Add specs

* lint

* review fixes

* simplify by changing `lineHeight` from px to unitless

* make param non-optional

* update comment

* fix: jumping text due to font size being calculated incorrectly

* update line height when font family is updated

* lint

* Add spec

* more specs

* rename to getDefaultLineHeight

* fix getting lineHeight for potentially undefined fontFamily

* reduce duplication

* fix fallback

* refactor and comment tweaks

* fix

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-03-22 11:32:38 +05:30
ac4c8b3ca7 fix: chrome crashing when embedding scene on chrome arm (#6383) 2023-03-21 18:48:49 +01:00
5c8941467d fix: division by zero in findFocusPointForEllipse leads to infinite loop in wrapText freezing Excalidraw (#6377)
* Update collision.ts

* Update textElement.ts

* Update textElement.ts

* tweak

* fix

* remove unnecessary `Math.sign`

* change check and add doc

* Add a case for negative max width and specs

* fix

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-03-20 17:50:09 +05:30
0726911fa6 fix: containerizing text incorrectly updates arrow bindings (#6369)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-03-18 15:00:28 +00:00
7e330c8ee1 build(deps-dev): bump webpack from 5.73.0 to 5.76.0 in /src/packages/utils (#6354)
build(deps-dev): bump webpack in /src/packages/utils

Bumps [webpack](https://github.com/webpack/webpack) from 5.73.0 to 5.76.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.73.0...v5.76.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-15 11:04:13 +05:30
7d21747644 build(deps-dev): bump webpack from 5.73.0 to 5.76.0 in /src/packages/excalidraw (#6355)
build(deps-dev): bump webpack in /src/packages/excalidraw

Bumps [webpack](https://github.com/webpack/webpack) from 5.73.0 to 5.76.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.73.0...v5.76.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-15 11:04:01 +05:30
e718136aea build(deps): bump webpack from 5.74.0 to 5.76.1 in /dev-docs (#6356)
Bumps [webpack](https://github.com/webpack/webpack) from 5.74.0 to 5.76.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.74.0...v5.76.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-15 11:03:40 +05:30
fe83e2922d build: move TS and types to devDependencies (#6346) 2023-03-14 12:06:57 +00:00
20edddcd4e fix: ensure export preview is centered (#6337) 2023-03-14 13:03:55 +01:00
f6e8be399e fix: hide text align for labelled arrows (#6339)
* fix: hide text align for labelled arrows

* lintttt

* since we fetch seledcted Elements including the bound text hence this block can be removed

* fix
2023-03-14 17:21:46 +05:30
ab49cad6b1 perf: break early if the line width <= max width of the container (#6347)
* fix: break early if the line width <= max width of the container

* Remove dead code

* remove dead code

* lint

* remove
2023-03-14 17:18:16 +05:30
6aeb18b784 fix: refresh dimensions when elements loaded from shareable link and blob (#6333)
* fix: refresh dimensions when elements loaded from shareable link

* refresh text dimensions when loading from file

* remove log
2023-03-14 17:08:23 +05:30
023313e92f fix: show error message when measureText API breaks in brave (#6336)
* fix: show error message when measureText API breaks in brave

* Add docs

* Add assets

* tweak message

* fix

* tweak message

* add translations

* lint

* fix

* fix

* lint

* lint

* lint please work now

* tweak doc

* fix

* split error component to new file

* add specs

* tweaks

Co-authored-by: David Luzar <luzar.david@gmail.com>

* wrap in div with a width of 30rem

* fix spec

* fix

* Fix typo

---------

Co-authored-by: David Luzar <luzar.david@gmail.com>
Co-authored-by: Daniel J. Geiger <1852529+DanielJGeiger@users.noreply.github.com>
2023-03-13 19:46:09 +05:30
1eee488dab feat: add thai lang support (#6314) 2023-03-11 22:15:52 +01:00
dd4c333925 fix: add an offset of 0.5px for text editor in containers (#6328)
* fix: add an offset of 0.5px for text editor in containers

* fix specs and lint
2023-03-09 13:07:36 +05:30
8542c95a7a fix: move utility types out of .d.ts file to fix exported declaration files (#6315) 2023-03-04 19:21:57 +01:00
cef6094d4c fix: more jotai scopes missing (#6313) 2023-03-03 16:19:02 +01:00
3322f0fa6f build(deps): bump @sideway/formula from 3.0.0 to 3.0.1 in /dev-docs (#6309)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-03 14:45:29 +01:00
34a7d48b95 fix: provide HelpButton title prop (#6209)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-03-03 12:50:18 +00:00
5c0b15ce2b fix: respect text align when wrapping in a container (#6310)
* fix: respect text align when wrapping in a container

* fix
2023-03-03 18:07:26 +05:30
9f9666110e chore: Add debug flag to enable text container bounding box (#6296)
* debug: Add debug flag to enable text container bounding box

* newline

* fix
2023-03-03 18:01:55 +05:30
05ffce62ef build(deps): bump dns-packet from 5.3.1 to 5.4.0 in /src/packages/excalidraw (#6305)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-03 13:20:53 +01:00
0f06fa3851 feat: create bound container from text (#6301)
* feat: create container from text

* fix lint and spec

* fix

* round off dims

* ceil

* review fixes

* fix

* Add specs

* fix

* fix z-index and type

* consider group

* consider linear bindings

* lint
2023-03-03 17:40:42 +05:30
1ce933d2f5 fix: compute bounding box correctly for text element when multiple element resizing (#6307) 2023-03-03 17:34:11 +05:30
15655acb5a fix: use jotai scope for editor-specific atoms (#6308) 2023-03-03 11:58:36 +00:00
d5b264c2d2 build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 in /dev-docs (#6192)
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-01 14:51:36 +05:30
bd4424bbe3 fix: consider arrow for bound text element (#6297)
* fix: consider arrow for bound text element

* add spec
2023-02-28 19:53:30 +05:30
38fc51b4e3 fix: text never goes beyond max width for unbound text elements (#6288) 2023-02-27 16:54:29 +05:30
e1dc748aef fix: svg text baseline (#6285
* fix: svg text baseline

* fix for multiline
2023-02-26 12:51:44 +01:00
0e95e2b386 fix: compute container height from bound text correctly (#6273)
* fix: compute container height from bound text correctly

* fix specs

* Add tests
2023-02-23 17:39:02 +05:30
9659254fd6 feat: improve text measurements in bound containers (#6187)
* feat: move to canvas measureText

* calcualte height with better heuristic

* improve heuristic more

* remove vertical offset as its not needed

* lint

* calculate width of individual char and ceil to calculate width and remove adjustment factor

* push the word if equal to max width

* update height when text overflows for vertical alignment top/bottom

* remove the hack of updating height when line mismatch as its not needed

* remove scroll height and calculate the height instead

* remove unused code

* fix

* remove

* use math.ceil for whole width instead of individual chars

* fix tests

* fix

* fix

* redraw text bounding box instead when font loaded to fix alignment as well

* fix

* fix

* fix

* Add a 0.05px extra only for firefox

* Add spec

* stop taking ceil and increase firefox editor width by 0.05px

* Ad 0.05px in safari too

* lint

* lint

* remove baseline from measureFontSizeFromWH

* don't redraw on font load

* lint

* refactor name and signature
2023-02-23 16:33:10 +05:30
39b96cb011 fix: fit mobile toolbar and make scrollable (#6270)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-02-23 11:24:04 +01:00
04a8c22f39 fix: rerender i18n in host components on lang change (#6224) 2023-02-22 14:01:23 +00:00
e4506be3e8 chore: Update translations from Crowdin (#6191) 2023-02-22 11:23:10 +00:00
1e816e87bf fix: indenting via tab clashing with IME compositor (#6258) 2023-02-22 12:10:29 +01:00
5368ddef74 fix: improve text wrapping inside rhombus and more fixes (#6265)
* fix: improve text wrapping inside rhombus

* Add comments

* specs

* fix: shift resize and multiple element regression for ellipse and rhombus

* use container width for scaling font size

* fix

* fix multiple resize

* lint

* redraw on submit

* redraw only newly pasted elements

* no padding when center

* fix tests

* fix

* dont add padding in rhombus when aligning

* refactor

* fix

* move getMaxContainerHeight and getMaxContainerWidth to textElement.ts

* Add specs
2023-02-22 16:28:12 +05:30
88ff32e9b3 fix: improve text wrapping in ellipse and alignment (#6172)
* fix: improve text wrapping in ellipse

* compute height when font properties updated

* fix alignment

* fix alignment when resizing

* fix

* ad padding

* always compute height when redrawing bounding box and refactor

* lint

* fix specs

* fix

* redraw text bounding box when pasted or refreshed

* fix

* Add specs

* fix

* restore on font load

* add comments
2023-02-21 12:36:43 +05:30
0fcbddda8e docs: Fix outdated link in README.md (#6263) 2023-02-20 09:44:25 +00:00
b9ba407f96 feat: Bind text to container if double clicked on filled shape or stroke (#6250)
* feat: bind text to container when clicked on filled shape or element stroke

* Bind if double clicked on stroke as well

* remove

* specs

* remove

* shuffle

* fix

* back to normal
2023-02-16 20:46:51 +05:30
5acb99777a docs: fix typo (#6252) 2023-02-16 19:45:41 +05:30
b107c9af2a docs: fix next.js example (#6241) 2023-02-15 15:14:15 +01:00
c587b85b4e docs: new readme (#6240)
Co-authored-by: David Luzar <luzar.david@gmail.com>
2023-02-15 14:45:06 +01:00
9686141113 docs: Fixed broken codesandbox link in the dev-docs (#6229)
fixed broken link
2023-02-15 05:31:07 +00:00
0d7ee891e0 feat: Make repair and refreshDimensions configurable in restoreElements (#6238)
* fix: don't repair during reconcilation

* Add opts to restoreElement and enable refreshDimensions and repair via config

* remove

* update changelog

* fix tests

* rename to repairBindings
2023-02-15 10:41:11 +05:30
71fb60394a docs: enable Algolia for search (#6230) 2023-02-13 17:39:11 +05:30
c9d18ecab6 fix: don't allow blank space in collab name (#6211)
* don't allow blank space in collab name

* add spec

* prevent blank
2023-02-09 15:51:49 +05:30
8c1168ef33 refactor: Make the example React app reusable without duplication (#6188) 2023-02-07 12:41:20 +05:30
c3c45a8c37 fix: docker build architecture:linux/amd64 error occur on linux/arm64 instance (#6197)
fix docker build
when in linux/arm64 use docker buildx plugin to build linux/amd64 image, a build error will occur causing the build to break
2023-02-07 11:44:31 +05:30
a8e6028c33 feat: show error message when not connected to internet while collabo… (#6165)
Co-authored-by: dwelle <luzar.david@gmail.com>
Resolves https://github.com/excalidraw/excalidraw/issues/5994
2023-02-04 15:03:39 +01:00
11e2f90ca1 feat: shortcut for clearCanvas confirmDialog (#6114)
Co-authored-by: dwelle <luzar.david@gmail.com>
resolve https://github.com/excalidraw/excalidraw/issues/5818
2023-02-04 13:33:40 +01:00
4db87a0b6a chore: Update translations from Crowdin (#6150) 2023-02-04 10:04:15 +01:00
4414069617 feat: disable canvas smoothing (antialiasing) for right-angled elements (#6186)Co-authored-by: Ignacio Cuadra <67276174+ignacio-cuadra@users.noreply.github.com>
* feat: disable canvas smoothing for text and other types

* disable smoothing for all right-angled elements

* Update src/renderer/renderElement.ts

Co-authored-by: Ignacio Cuadra <67276174+ignacio-cuadra@users.noreply.github.com>

* Update src/renderer/renderElement.ts

Co-authored-by: Ignacio Cuadra <67276174+ignacio-cuadra@users.noreply.github.com>

* fix lint

* always enable smoothing while zooming

---------

Co-authored-by: Ignacio Cuadra <67276174+ignacio-cuadra@users.noreply.github.com>
2023-02-03 17:07:14 +01:00
a9c5bdb878 fix: sort bound text elements to fix text duplication z-index error (#5130)
* fix: sort bound text elements to fix text duplication z-index error

* improve & sort groups & add tests

* fix backtracking and discontiguous groups

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-02-02 16:23:39 +08:00
5a0334f37f fix: hide welcome screen on mobile once user interacts (#6185)
* fix: hide welcome screen on mobile once started drawing

* Add specs
2023-02-02 12:58:45 +05:30
d8a4ca6911 docs: show last updated time and author (#6183)
docs:show last updated time and author
2023-02-01 21:09:23 +05:30
eb9eeefc63 fix: edit link in docs (#6182) 2023-02-01 20:27:31 +05:30
f23cdc47ee docs: migrating dev docs to docusaurus :) (#6073)
* docs: migrating existing docs to docosaraus :)

* log broken links

* lint :p

* fix

* divide the doc into diff categories

* fix

* order sidebars and more

* fix lint

* point to installation

* making docs better :)

* fix

* renaming git

* renaming git

* fix links

* fix

* update readme

* fix

* resolve duplicate url and make /docs as base url

* fix

* move main docs as well

* making docs better

* support mdx

* update og

* fix title

* upgrade docusarus to stable version

* use draculla theme

* fix

* make entire sidebar collapsable

* live editor for footer wohoo

* render excalidraw only on client to fix the prod build

* migrate MainMenu to live editor too :)

* lint :p

* cleanup integration and use live editor and tabs

* fix

* Add welcome screen doc

* Live Collaboration comp docs

* Add collaborator example

* Add example

* add more

* remove isCollaborating

* Rewrite ref and move to sidebar

* change color of links inside pre

* add initial data

* fix lint

* Add styling

* fix lint

* Add example for customizing styles

* fix lint

* fix

* fix lint

* Add link to livecollabtrigger

* fix

* rewrite UIOptions to sidebar

* move initialdata to sidebar

* move render props to sidebar and rewrite renderTopRightUI and renderCustomStats

* rewrite renderSidebar

* update og

* update url for testing

* fix url

* update readme

* fix style

* tweaks

* Add highlight comp to highlight text

* Add bash syntax highlight

* fix

* tweaks

* fix

* rewrite export utilities

* fix restore

* rewrite utils

* move constants to sidebar

* update readme

* add copyright

* fix links style

* Add linkedin

* tweaks

* rename package to @excalidraw/excalidraw

* enable algolia with dummy creds

* tweaks to integration doc

* tweak WelcomeScreen docs to reflect upcoming API changes

* tweak components intro

* tweak nomenclature

* fix admonition

* rename `components` sidebar item and change order of components list

* uncollapse package section in sidebar

* show level 4 haeadings in TOC

* remove algolia

* remove unused assets

* capitalize C

* tweak

* rename components to App

* rename components -> children-components in the routes

* move notable used tools to intro

* update MainMenu docs with `onSelect` preventDefault behavior

* change sidebar label for children components

* use code

* tweak README & docs intro

* tweak package development doc

* make scrollbar gutter stable

* tweak api intro

* add admonition for export utils

* use next

* wip

* wip

* make excalidraw examples use current color theme & prefer system

* fix welcomescreen docs

* use latest temp release

* fix component order

* revert wip changes

* use next

* tweak

* increase height to fix welcome screen hint

* tweak editor height

* update excal version

* wrap Excal with forwardRef to fix refs

* migrate contributing.md

* fix broken links

---------

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-02-01 19:57:54 +05:30
f68f4cb9e0 docs: release @excalidraw/excalidraw@0.14.2 🎉 (#6181) 2023-02-01 19:08:56 +05:30
71fb573750 fix: horizontal padding when aligning bound text containers (#6180)
* fix: horizontal padding when aligning bound text containers

* Add specs

* fix
2023-02-01 18:54:08 +05:30
7562d9b533 fix: make tunnels work in multi-instance scenarios (#6178)
* fix: make tunnels work in multi-instance scenarios

* factor tunnels out

* use tunnel-rat fork until upsteam updated
2023-02-01 10:46:17 +05:30
e6de1fe4a4 feat: rewrite public UI component rendering using tunnels (#6117)
* feat: rewrite public UI component rendering using tunnels

* factor out into components

* comments

* fix variable naming

* fix not hiding welcomeScreen

* factor out AppFooter and memoize components

* remove `UIOptions.welcomeScreen` and render only from host app

* factor out tunnels into own file

* update changelog. Keep `UIOptions.welcomeScreen` as deprecated

* update changelog

* lint

---------

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-01-31 13:53:20 +01:00
3a141ca77a fix: add 1px width to the container to calculate more accurately (#6174)
* fix: add 1px width to the container to calculate accurately

* fix tests
2023-01-30 18:52:56 +05:30
5ae39c9292 fix: quick typo fix (#6167) 2023-01-29 14:22:25 +01:00
e41ea9562b fix: set the width correctly using measureText in editor (#6162) 2023-01-28 12:09:53 +01:00
b52c8943e4 fix: 🐛 broken emojis when wrap text (#6153)
* fix: 🐛 broken emojis when wrap text

* refactor: Delete unnecessary "else" (reduce indentation)

* fix: remove code block that causes the emojis to disappear

* Apply suggestions from code review

Co-authored-by: David Luzar <luzar.david@gmail.com>

* fix: 🚑 possibly undefined value

* Add spec

Co-authored-by: David Luzar <luzar.david@gmail.com>
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2023-01-26 11:49:21 +05:30
cf38c0f933 fix: declare css variable for font in excalidraw so its available in host (#6160)
declar css variable for font in excalidraw so its available in host
2023-01-25 15:44:20 +05:30
1db078a3dc feat: close MainMenu and Library dropdown on item select (#6152) 2023-01-23 16:54:35 +01:00
d4afd66268 feat: add hand/panning tool (#6141)
* feat: add hand/panning tool

* move hand tool right of tool lock separator

* tweak i18n

* rename `panning` -> `hand`

* toggle between last tool and hand on `H` shortcut

* hide properties sidebar when `hand` active

* revert to rendering HandButton manually due to mobile toolbar
2023-01-23 16:12:28 +01:00
849e6a0c86 fix: button background and svg sizes (#6155)
* fix: button background color fallback

* fix svg width/height
2023-01-23 16:10:04 +01:00
f03f5c948d style: change in ExportButton style (#6147) (#6148)
Co-authored-by: David Luzar <luzar.david@gmail.com>
2023-01-22 12:37:18 +00:00
d2b698093c feat: show copy-as-png export button on firefox and show steps how to enable it (#6125)
* feat: hide copy-as-png shortcut from help dialog if not supported

* fix: support firefox if clipboard.write supported

* show shrotcut in firefox and instead show error message how to enable the flag support

* widen to TypeError because minification

* show copy-as-png on firefox even if it will throw
2023-01-22 12:33:15 +01:00
0f1720be61 chore: Update translations from Crowdin (#6077) 2023-01-22 12:19:21 +01:00
d0b33d35db build: temporarily disable pre-commit (#6132) 2023-01-19 13:50:42 +01:00
d6a5ef1936 docs: release @excalidraw/excalidraw@0.14.1 🎉 (#6112) 2023-01-16 16:08:03 +05:30
c7a11f5cd2 docs: release @excalidraw/excalidraw@0.14.0 🎉 (#6109) 2023-01-13 16:08:29 +05:30
893c487add fix: remove overflow hidden from button (#6110)
remove overflow hidden from button
2023-01-13 15:44:33 +05:30
99fdffdab7 fix: mobile tools positioning (#6107)
* fix: mobile tools positioning

* add var for padding

* use css var

* new line

* stupid mistake

* lint
2023-01-13 00:57:25 +05:30
faad8a65f1 feat: new Live Collaboration Component API (#6104)
* feat: new Live Collaboration Component API

* namespace export icons into `icons` dictionary and lowercase

* update readme and changelog

* review fixes

* fix

* fix

* update docs

* remove

* allow button rest props

* update docs

* docs

* add `WelcomeScreen.Center.MenuItemLiveCollaborationTrigger`

* fix lint

* update changelog

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-01-12 23:28:57 +05:30
9d04479f98 fix: renamed folder MainMenu->main-menu and support rest props (#6103)
* renamed folder MainMenu -> main-menu

* rename ariaLabel -> aria-label and dataTestId -> data-testid

* allow rest props

* fix

* lint

* add ts check

* ts for div

* fix

* fix

* fix
2023-01-12 20:40:09 +05:30
599a8f3c6f feat: support WelcomeScreen customization API (#6048) 2023-01-12 15:49:28 +01:00
0982da38fe feat: render unknown supplied children to UI (#6096) 2023-01-12 15:20:16 +01:00
699897f71b feat: generic button export (#6092)
Co-authored-by: dwelle <luzar.david@gmail.com>
2023-01-12 13:06:00 +01:00
328ff6c32d fix: use position absolute for mobile misc tools (#6099) 2023-01-11 19:47:40 +05:30
618442299f fix: React.memo resolvers not accounting for all props (#6042) 2023-01-09 10:24:17 +01:00
06b45e0cfc fix: image horizontal flip fix + improved tests (#5799)
Co-authored-by: Antonio Della Fortuna <a.dellafortuna00@gmail.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
fixes https://github.com/excalidraw/excalidraw/issues/5784
2023-01-08 16:19:13 +00:00
809d5ba17f fix: png-exporting does not preserve angles correctly for flipped images (#6085)
* fix: png-exporting does not preserve angles correctly for flipped images

* refactor related code

* simplify further and comment
2023-01-08 16:22:04 +01:00
40d53d9231 fix: stale appState of MainMenu defaultItems rendered from Actions (#6074) 2023-01-06 14:32:55 +01:00
9803a85381 build(deps): bump loader-utils from 2.0.3 to 2.0.4 in /src/packages/excalidraw (#5892)
build(deps): bump loader-utils in /src/packages/excalidraw

Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v2.0.3...v2.0.4)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 12:31:06 +05:30
72784f9d29 build(deps): bump loader-utils from 2.0.3 to 2.0.4 (#5905)
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v2.0.3...v2.0.4)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 12:30:43 +05:30
e3249f930c build(deps): bump json5 from 1.0.1 to 1.0.2 (#6076)
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 06:59:44 +00:00
cbe0d34f1a build(deps): bump decode-uri-component from 0.2.0 to 0.2.2 (#5963)
Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)

---
updated-dependencies:
- dependency-name: decode-uri-component
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 12:26:23 +05:30
bed8093e47 build(deps): bump json5 from 2.2.1 to 2.2.3 in /dev-docs (#6060)
Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 12:25:48 +05:30
1255ca2e84 build(deps): bump json5 from 2.2.1 to 2.2.3 in /src/packages/utils (#6061)
Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 12:25:35 +05:30
14d02dcaea build(deps): bump json5 from 2.2.1 to 2.2.3 in /src/packages/excalidraw (#6062)
Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-06 12:25:20 +05:30
9747223705 chore: Update translations from Crowdin (#6052)
* New translations en.json (German)

* Auto commit: Calculate translation coverage

* New translations en.json (Hindi)

* New translations en.json (Marathi)

* New translations en.json (Hindi)

* Auto commit: Calculate translation coverage

* New translations en.json (Galician)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* New translations en.json (French)

* New translations en.json (Spanish)

* New translations en.json (Arabic)

* New translations en.json (Bulgarian)

* New translations en.json (Catalan)

* New translations en.json (Czech)

* New translations en.json (Danish)

* New translations en.json (German)

* New translations en.json (Greek)

* New translations en.json (Basque)

* New translations en.json (Finnish)

* New translations en.json (Hebrew)

* New translations en.json (Hungarian)

* New translations en.json (Italian)

* New translations en.json (Japanese)

* New translations en.json (Korean)

* New translations en.json (Kurdish)

* New translations en.json (Lithuanian)

* New translations en.json (Dutch)

* New translations en.json (Punjabi)

* New translations en.json (Polish)

* New translations en.json (Portuguese)

* New translations en.json (Russian)

* New translations en.json (Slovak)

* New translations en.json (Slovenian)

* New translations en.json (Swedish)

* New translations en.json (Turkish)

* New translations en.json (Ukrainian)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Traditional)

* New translations en.json (Vietnamese)

* New translations en.json (Galician)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Indonesian)

* New translations en.json (Persian)

* New translations en.json (Tamil)

* New translations en.json (Bengali)

* New translations en.json (Marathi)

* New translations en.json (Norwegian Nynorsk)

* New translations en.json (Kazakh)

* New translations en.json (Latvian)

* New translations en.json (Hindi)

* New translations en.json (Burmese)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Sinhala)

* New translations en.json (Norwegian Bokmal)

* New translations en.json (Occitan)

* New translations en.json (Kabyle)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Simplified)

* Auto commit: Calculate translation coverage

* New translations en.json (Chinese Traditional)

* New translations en.json (Chinese Traditional)

* New translations en.json (Norwegian Bokmal)

* Auto commit: Calculate translation coverage

* New translations en.json (Latvian)

* Auto commit: Calculate translation coverage

* New translations en.json (Romanian)

* Auto commit: Calculate translation coverage

* New translations en.json (Slovenian)

* Auto commit: Calculate translation coverage

* New translations en.json (Spanish)

* New translations en.json (Russian)

* Auto commit: Calculate translation coverage

* New translations en.json (German)

* Auto commit: Calculate translation coverage

* New translations en.json (Vietnamese)

* Auto commit: Calculate translation coverage

* New translations en.json (Hindi)

* Auto commit: Calculate translation coverage

* New translations en.json (Dutch)

* Auto commit: Calculate translation coverage

* New translations en.json (Marathi)

* Auto commit: Calculate translation coverage

* New translations en.json (Latvian)

* New translations en.json (French)

* Auto commit: Calculate translation coverage

* New translations en.json (French)

* Auto commit: Calculate translation coverage

* New translations en.json (Portuguese, Brazilian)

* Auto commit: Calculate translation coverage

* New translations en.json (Japanese)

* Auto commit: Calculate translation coverage
2023-01-06 12:23:14 +05:30
0f11f7da15 fix: HelpDialog (#6072) 2023-01-05 17:43:19 +01:00
8420aecb34 feat: new Menu Component API (#6034)
* feat: new Menu Component API

* allow valid children types

* introduce menu group to group items

* Add lang footer

* use display name

* displayName

* define types inside

* fix default menu

* add json export to menu

* fix

* simplify expression

* put open menu into own compo to optimize perf

So that we don't rerun `useOutsideClickHook` (and rebind event listeners
all the time)

* naming tweaks

* rename MenuComponents->MenuDefaultItems and export default items from Menu.Items

* import Menu.scss in Menu.tsx

* move menu scss to excal app

* Don't filter children inside menu group

* move E+ out of socials

* support style prop for MenuItem and MenuGroup

* Support header in menu group and add Excalidraw links header for default items in social section

* rename header to title

* fix padding for lang

* render menu in mobile

* review fixes

* tweaks

* Export collaborators and show in mobile menu

* revert .env

* lint :p

* again lint

* show correct actions in view mode for mobile

* Whitelist Collaborators Comp

* mobile styling

* padding

* don't show nerds when menu open in mobile

* lint :(

* hide shortcuts

* refactor userlist to support mobile and keep a wrapper comp for excal app

* use only UserList

* render only on mobile for default items

* remove unused hooks

* Show collab button in menu when onCollabButtonClick present and hide export when UIOptions.canvasActions.export is false

* fix tests

* lint

* inject userlist inside menu on mobile

* revert userlist

* move menu socials to default menu

* fix collab

* use meny in library

* Make Menu generic and create hamburgemenu for public excal menu and use menu in library as well

* use appState.openMenu for mobile

* fix tests

* styling fixes and support style and class name in menu content

* fix test

* rename MenuDefaultItems->DefaultItems

* move footer css to its own comp

* rename HamburgerMenu -> MainMenu

* rename menu -> dropdownMenu and update classes, onClick->onToggle

* close main menu when dialog closes

* by bye filtering

* update docs

* fix lint

* update example, docs for useDevice and footer in mobile, rename menu ->DropDownMenu everywhere

* spec

* remove isMenuOpenAtom and set openMenu as canvas for main menu, render decreases in specs :)

* [temp] remove cyclic depenedency to fix build

* hack- update appstate to sync lang change

* Add more specs

* wip: rewrite MainMenu footer

* fix margin

* fix snaps

* not needed as lang list no more imported

* simplify custom footer rendering

* Add DropdownMenuItemLink and DropdownMenuItemCustom and update API, docs

* fix `MainMenu.ItemCustom`

* naming

* use onSelect and base class for custom items

* fix lint

* fix snap

* use custom item for lang

* update docs

* fix

* properly use `MainMenu.ItemCustom` for `LanguageList`

* add margin top to custom items

* flex

Co-authored-by: dwelle <luzar.david@gmail.com>
2023-01-05 22:04:23 +05:30
08afb857c3 fix: show error message on collab save failure (#6063)
* fix: show error message on collab save failure

* comment
2023-01-02 23:53:51 +01:00
9230c8f4d2 fix: remove ga from docker build (#6059)
* fix: remove ga from docker build

* lint

* fix debug
2023-01-02 21:21:57 +01:00
dba8f812f1 chore: Update translations from Crowdin (#5807)
Co-authored-by: David Luzar <luzar.david@gmail.com>
2023-01-01 17:01:46 +00:00
fdd8552637 feat: Scroll using PageUp and PageDown (#6038)
* feat: Scroll using PageUp and PageDown

* support x-axis via `shift` & enable in viewMode

* tweak test

Co-authored-by: dwelle <luzar.david@gmail.com>
2022-12-31 15:54:37 -06:00
c8370b394c fix: use displayName since name gets stripped off when uglifying/minifiyng in production (#6036)
fix: use displayName since name gets stripped off when uglifying/minifiy in production
2022-12-27 15:17:13 +05:30
5fcf6a4845 fix: remove background from wysiwyg when editing arrow label (#6033)
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2022-12-23 19:40:52 +01:00
af3b93c410 fix: use canvas measureText to calculate width in measureText (#6030)
* fix: use canvas measureText to calculate width in measureText

* calculate multiline width correctly using canvas measure text and rename functions

* set correct width when pasting in bound container

* take existing value + new pasted

* remove debugger :p

* fix snaps
2022-12-23 21:45:49 +05:30
2595e0de82 fix: restoring deleted bindings (#6029)
* fix: restoring deleted bindings

* add tests

* add one more test

* merge restore tests files
2022-12-23 11:48:14 +01:00
8ec5f7b982 feat: support shrinking text containers to original height when text removed (#6025)
* fix:cache bind text containers height so that it could autoshrink to original height when text deleted

* revert

* rename

* reset cache when resized

* safe check

* restore original containr height when text is unbind

* update cache when redrawing bounding box

* reset cache when unbind

* make type-safe

* add specs

* skip one test

* remoe mock

* fix

Co-authored-by: dwelle <luzar.david@gmail.com>
2022-12-23 11:57:48 +05:30
9086674b27 chore: bump typescript @ 4.9.4 (#6024) 2022-12-22 19:32:21 +01:00
6273d56524 fix: ColorPicker getColor (#5949)
Co-authored-by: dwelle <luzar.david@gmail.com>
2022-12-22 12:53:49 +00:00
7e135c4e22 feat: move contextMenu into the component tree and control via appState (#6021) 2022-12-21 12:47:09 +01:00
b704705ed8 feat: render footer as a component instead of render prop (#5970)
* feat: render footer as a component instead of render prop

* Export FooterCenter as footer

* remove useDevice export

* revert some changes

* remove

* add spec

* update specs

* parse children into a dictionary

* factor app footer components into a single file

* Add docs

* split app footer components

Co-authored-by: dwelle <luzar.david@gmail.com>
2022-12-21 14:29:06 +05:30
d2e371cdf0 fix: don't push whitespace to next line when exceeding max width during wrapping and make sure to use same width of text editor on DOM when measuring dimensions (#5996)
* fix: don't push whitespace to next line when exceeding max width during wrapping

* add a helper function and never push empty line

* use width same as in text area so dimensions are same

* add tests

* make sure dom element has exact same width as text editor
2022-12-21 12:32:43 +05:30
6ab3f0eb74 fix: showing grabbing cursor when holding spacebar (#6015) 2022-12-20 13:22:20 +01:00
539505affd fix: resize sometimes throwing on missing null-checks (#6013) 2022-12-18 23:06:01 +01:00
95d669390f fix: PWA not working after CRA@5 update (#6012)
* fix: PWA not working after CRA@5 update

* fix: fallback to default locale when fetch fails
2022-12-18 22:23:30 +01:00
73a45e1988 fix: not properly restoring element stroke and bg colors (#6002) 2022-12-16 18:19:26 +01:00
88c2812949 fix: Avatar outline on safari & center (#5997) 2022-12-16 18:18:34 +01:00
bdb14723b3 fix: chart pasting not working due to removing tab characters (#5987) 2022-12-16 18:18:27 +01:00
cc9e764585 feat: allow readonly actions to be used in viewMode (#5982) 2022-12-11 22:57:03 +01:00
8466eb0eef fix: apply the right type of roundness when pasting styles (#5979)
* fix: only paste roundness when target and source elements are of the same type

* apply roundness when pasting across different types

* simplify

Co-authored-by: dwelle <luzar.david@gmail.com>
2022-12-10 20:12:09 +08:00
0ebe6292a3 chore: add display name to context providers (#5974)
* chore: add display name to context providers

* fix typo
2022-12-08 16:19:44 +00:00
5854ac3eed feat: better default radius sizes for rectangles (#5553)
Co-authored-by: Ryan <diweihao@bytedance.com>
Co-authored-by: dwelle <luzar.david@gmail.com>
2022-12-08 16:48:49 +01:00
65d84a5d5a fix: remove editor onpaste handler (#5971) 2022-12-07 23:05:57 +05:30
808366d112 fix: remove blank space (#5950) 2022-12-06 17:40:53 +05:30
Fer
9311c99d3c fix: Galego and Kurdî missing in languages plus two locale typos (#5954) 2022-12-06 17:34:22 +05:30
d131b31084 fix: ExcalidrawArrowElement rather than ExcalidrawArrowEleement (#5955) 2022-12-06 17:30:03 +05:30
0111ca2050 fix: renderFooter styling (#5962) 2022-12-06 16:42:54 +05:30
a1dcd6d984 build: move release scripts to use release branch (#5958) 2022-12-06 16:33:02 +05:30
fffd4957db fix: repair element bindings on restore (#5956)
* fix: repair element bindings on restore

* fix dropping non-text bound elements

* be more conservative
2022-12-06 00:23:47 +01:00
760fd7b3a6 feat: Support labels for arrow 🔥 (#5723)
* feat: support arrow with text

* render arrow -> clear rect-> render text

* move bound text when linear elements move

* fix centering cursor when linear element rotated

* fix y coord when new line added and container has 3 points

* update text position when 2nd point moved

* support adding label on top of 2nd point when 3 points are present

* change linear element editor shortcut to cmd+enter and fix tests

* scale bound text points when resizing via bounding box

* ohh yeah rotation works :)

* fix coords when updating text properties

* calculate new position after rotation always from original position

* rotate the bound text by same angle as parent

* don't rotate text and make sure dimensions and coords are always calculated from original point

* hardcoding the text width for now

* Move the linear element when bound text hit

* Rotation working yaay

* consider text element angle when editing

* refactor

* update x2 coords if needed when text updated

* simplify

* consider bound text to be part of bounding box when hit

* show bounding box correctly when multiple element selected

* fix typo

* support rotating multiple elements

* support multiple element resizing

* shift bound text to mid point when odd points

* Always render linear element handles inside editor after element rendered so point is visible for bound text

* Delete bound text when point attached to it deleted

* move bound to mid segement mid point when points are even

* shift bound text when points nearby deleted and handle segment deletion

* Resize working :)

* more resize fixes

* don't update cache-its breaking delete points, look for better soln

* update mid point cache for bound elements when updated

* introduce wrapping when resizing

* wrap when resize for 2 pointer linear elements

* support adding text for linear elements with more than 3 points

* export to svg  working :)

* clip from nearest enclosing element with non transparent color if present when exporting and fill with correct color in canvas

* fix snap

* use visible elements

* Make export to svg work with Mask :)

* remove id

* mask canvas linear element area where label is added

* decide the position of bound text during render

* fix coords when editing

* fix multiple resize

* update cache when bound text version changes

* fix masking when rotated

* render text in correct position in preview

* remove unnecessary code

* fix masking when rotating linear element

* fix masking with zoom

* fix mask in preview for export

* fix offsets in export view

* fix coords on svg export

* fix mask when element rotated in svg

* enable double-click to enter text

* fix hint

* Position cursor correctly and text dimensiosn when height of element is negative

* don't allow 2 pointer linear element with bound text width to go beyond min width

* code cleanup

* fix freedraw

* Add padding

* don't show vertical align action for linear element containers

* Add specs for getBoundTextElementPosition

* more specs

* move some utils to linearElementEditor.ts

* remove only :p

* check absoulte coods in test

* Add test to hide vertical align for linear eleemnt with bound text

* improve export preview

* support labels only for arrows

* spec

* fix large texts

* fix tests

* fix zooming

* enter line editor with cmd+double click

* Allow points to move beyond min width/height for 2 pointer arrow with bound text

* fix hint for line editing

* attempt to fix arrow getting deselected

* fix hint and shortcut

* Add padding of 5px when creating bound text and add spec

* Wrap bound text when arrow binding containers moved

* Add spec

* remove

* set boundTextElementVersion to null if not present

* dont use cache when version mismatch

* Add a padding of 5px vertically when creating text

* Add box sizing content box

* Set bound elements when text element created to fix the padding

* fix zooming in editor

* fix zoom in export

* remove globalCompositeOperation and use clearRect instead of fillRect
2022-12-05 21:03:13 +05:30
1933116261 fix: don't allow whitespaces for bound text (#5939)
* fix: don't allow whitespaces for bound text

* fix

* remove

* remove empty else

* fix

* fix

* fix
2022-12-02 16:47:50 +05:30
8b33ca3a1a fix: bindings do not survive history serialization (#5942) 2022-12-02 10:36:18 +00:00
a86224c797 fix: Dedupe boundElement ids when container duplicated with alt+drag (#5938)
* Dedupe boundElement ids when container duplicated with alt+drag and add spec

* set to null by default
2022-12-01 20:44:33 +05:30
66bbfda460 fix: scale font correctly when using shift (#5935)
* fix: scale font correctly when using shift

* fix

* Empty-Commit

* Add spec

* fix
2022-11-30 15:55:01 +05:30
88b2f4707d refactor: remove unnecessary code (#5933) 2022-11-29 16:41:02 +05:30
25c6056b03 feat: Don't add midpoint until dragged beyond a threshold (#5927)
* Don't add midpoint until dragged beyond a threshold

* remove unnecessary code

* fix tests

* fix

* add spec

* remove isMidpoint

* cleanup

* fix threshold for zoom

* split into shouldAddMidpoint and addMidpoint

* wrap in flushSync for synchronous updates

* remove threshold for line editor and add spec

* [unrelated] fix stack overflow state update

* fix tests

* don't drag arrow when dragging to add mid point

* add specs

Co-authored-by: dwelle <luzar.david@gmail.com>
2022-11-29 00:01:53 +05:30
baf9651d34 feat: changed text copy/paste behaviour (#5786)
Co-authored-by: dwelle <luzar.david@gmail.com>
Co-authored-by: Antonio Della Fortuna <a.dellafortuna00@gmail.com>
2022-11-26 23:44:26 +01:00
d2181847be fix: Always bind to container selected by user (#5880)
* fix: Always bind to container selected by user

* Don't bind to container when using text tool

* adjust z-index for bound text

* fix

* Add spec

* Add test

* Allow double click on transparent container and add spec

* fix spec

* adjust z-index only when binding

* update index

* fix

* add index check

* Update src/scene/Scene.ts

Co-authored-by: dwelle <luzar.david@gmail.com>
2022-11-25 15:45:34 +05:30
1f117995d9 fix: fonts not rendered on init if loadingdone not fired (#5923)
* fix: fonts not rendered on init if `loadingdone` not fired

* remove unnecessary check
2022-11-23 21:15:32 +01:00
52c96a6870 chore: bump create-react-app to 5.0.1 (from 4.0.3) (#5904) 2022-11-19 18:28:21 +01:00
81fd2350a9 fix: stop replacing del word with Delete (#5897) 2022-11-19 18:28:08 +01:00
8ed0fc2c87 fix: remove legacy React.render() from the editor (#5893) 2022-11-19 18:27:54 +01:00
96a5d6548b fix: allow adding text via enter only for text containers (#5891)
* fix: allow adding text via enter only for text containers

* fix

* fix

* fix

* move check isTextElement outside
2022-11-17 15:26:18 +05:30
4709b953e7 build(deps): bump loader-utils from 2.0.3 to 2.0.4 in /dev-docs (#5885)
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v2.0.3...v2.0.4)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-17 15:14:29 +05:30
bbe0c35f66 fix: stop font loadingdone loop when rendering element SVGs (#5883)
* fix: stop font `loadingdone` loop when rendering element SVGs

* update snaps

* stop updating scene elements array if no change was made

* always re-render if invalidating element shape
2022-11-15 21:02:57 +01:00
d273acb7e4 fix: refresh text dimensions only after font load done (#5878)
* fix: refresh text dimensions only after font load done

* fix snaps
2022-11-15 00:15:02 +01:00
3c0b29d85f build(deps): bump loader-utils from 2.0.0 to 2.0.4 in /src/packages/utils (#5874)
build(deps): bump loader-utils in /src/packages/utils

Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.0 to 2.0.4.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.4/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v2.0.0...v2.0.4)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-14 15:49:05 +05:30
bfbaeae67f fix: Correctly paste contents parsed by JSON.parse() as text. (#5868)
* Fix #5867

* Add test.

* Add tests to clipboard.test.ts

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2022-11-14 14:02:54 +05:30
74b9885955 build(deps): bump minimatch from 3.0.4 to 3.1.2 in /src/packages/excalidraw (#5861)
build(deps): bump minimatch in /src/packages/excalidraw

Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-14 13:51:10 +05:30
2cbe869a13 build(deps): bump socket.io-parser from 3.3.2 to 3.3.3 (#5862)
Bumps [socket.io-parser](https://github.com/socketio/socket.io-parser) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/socketio/socket.io-parser/releases)
- [Changelog](https://github.com/socketio/socket.io-parser/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io-parser/compare/3.3.2...3.3.3)

---
updated-dependencies:
- dependency-name: socket.io-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-14 13:50:15 +05:30
a48607eb25 build(deps): bump loader-utils from 2.0.2 to 2.0.3 in /src/packages/excalidraw (#5851)
build(deps): bump loader-utils in /src/packages/excalidraw

Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.3/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-14 13:49:39 +05:30
7831b6e74b fix: SVG element attributes in icons.tsx (#5871)
Update icons.tsx
2022-11-14 11:42:28 +05:30
640affe7c0 build(deps): bump loader-utils from 2.0.2 to 2.0.3 in /dev-docs (#5853)
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.3/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-10 15:02:18 +05:30
335aff8838 fix: merge existing text with new when pasted (#5856)
* Fix #5855.

* fix test

* tweak

* Add specs

* Add more snaps

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2022-11-09 23:39:53 +05:30
dc97dc30bf fix: disable FAST_REFRESH to fix live reload (#5852) 2022-11-09 17:13:20 +05:30
a0ecfed4cd fix: Paste clipboard contents into unbound text elements (#5849)
* Fix #5848.

* Add test.

* some tweaks

Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
2022-11-09 11:30:22 +05:30
e201e79cd0 fix: compute dimensions of container correctly when text pasted on container (#5845)
* fix: compute dimensions of container correctly when text pasted on container

* add test

* remove only
2022-11-08 19:50:41 +05:30
e1c5c706c6 build: stops ignoring .env files from docker context so env variables get set during react app build. (#5809)
build: stops ignoring .env.development and .env.production files from docker context so env variables get set during react app build.
* this fixes the issue where Browse Libraries button link was broken in
  docker/self-hosted versions of excalidraw
2022-11-07 16:48:38 +05:30
bdc56090d7 feat: reintroduce x shortcut for freedraw (#5840) 2022-11-06 23:07:15 +01:00
58accc9310 feat: tweak toolbar shortcuts & remove library shortcut (#5832) 2022-11-06 20:14:53 +01:00
b91158198e feat: clean unused images only after 24hrs (local-only) (#5839)
* feat: clean unused images only after 24hrs (local-only)

* fix test

* make optional for now
2022-11-06 19:41:14 +01:00
938ce241ff feat: refetch errored/pending images on collab room init load (#5833) 2022-11-05 15:55:14 +01:00
0228646507 fix: line editor points rendering below elements (#5781)
* fix: line editor points rendering below elements

* add test
2022-11-05 11:35:53 +01:00
574 changed files with 71429 additions and 43260 deletions

5
.codesandbox/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM node:18-bullseye
# Vite wants to open the browser using `open`, so we
# need to install those utils.
RUN apt update -y && apt install -y xdg-utils

View File

@ -27,7 +27,10 @@
"start": {
"name": "Start Excalidraw",
"command": "yarn start",
"runAtStart": true
"runAtStart": true,
"preview": {
"port": 3000
}
},
"test": {
"name": "Run Tests",
@ -37,7 +40,11 @@
"install-deps": {
"name": "Install Dependencies",
"command": "yarn install",
"restartOn": { "files": ["yarn.lock"] }
"restartOn": {
"files": ["yarn.lock"],
"branch": false,
"resume": false
}
}
}
}

View File

@ -1,5 +1,6 @@
*
!.env
!.env.development
!.env.production
!.eslintrc.json
!.npmrc
!.prettierrc

View File

@ -1,22 +1,42 @@
REACT_APP_BACKEND_V2_GET_URL=https://json-dev.excalidraw.com/api/v2/
REACT_APP_BACKEND_V2_POST_URL=https://json-dev.excalidraw.com/api/v2/post/
VITE_APP_BACKEND_V2_GET_URL=https://json-dev.excalidraw.com/api/v2/
VITE_APP_BACKEND_V2_POST_URL=https://json-dev.excalidraw.com/api/v2/post/
REACT_APP_LIBRARY_URL=https://libraries.excalidraw.com
REACT_APP_LIBRARY_BACKEND=https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries
VITE_APP_LIBRARY_URL=https://libraries.excalidraw.com
VITE_APP_LIBRARY_BACKEND=https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries
# collaboration WebSocket server (https://github.com/excalidraw/excalidraw-room)
REACT_APP_WS_SERVER_URL=http://localhost:3002
VITE_APP_WS_SERVER_URL=http://localhost:3002
# set this only if using the collaboration workflow we use on excalidraw.com
REACT_APP_PORTAL_URL=
VITE_APP_PORTAL_URL=
REACT_APP_FIREBASE_CONFIG='{"apiKey":"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8","authDomain":"excalidraw-oss-dev.firebaseapp.com","projectId":"excalidraw-oss-dev","storageBucket":"excalidraw-oss-dev.appspot.com","messagingSenderId":"664559512677","appId":"1:664559512677:web:a385181f2928d328a7aa8c"}'
VITE_APP_PLUS_LP=https://plus.excalidraw.com
VITE_APP_PLUS_APP=https://app.excalidraw.com
VITE_APP_FIREBASE_CONFIG='{"apiKey":"AIzaSyCMkxA60XIW8KbqMYL7edC4qT5l4qHX2h8","authDomain":"excalidraw-oss-dev.firebaseapp.com","projectId":"excalidraw-oss-dev","storageBucket":"excalidraw-oss-dev.appspot.com","messagingSenderId":"664559512677","appId":"1:664559512677:web:a385181f2928d328a7aa8c"}'
# put these in your .env.local, or make sure you don't commit!
# must be lowercase `true` when turned on
#
# whether to enable Service Workers in development
REACT_APP_DEV_ENABLE_SW=
VITE_APP_DEV_ENABLE_SW=
# whether to disable live reload / HMR. Usuaully what you want to do when
# debugging Service Workers.
REACT_APP_DEV_DISABLE_LIVE_RELOAD=
VITE_APP_DEV_DISABLE_LIVE_RELOAD=
VITE_APP_DISABLE_TRACKING=true
FAST_REFRESH=false
# The port the run the dev server
VITE_APP_PORT=3000
#Debug flags
# To enable bounding box for text containers
VITE_APP_DEBUG_ENABLE_TEXT_CONTAINER_BOUNDING_BOX=
# Set this flag to false if you want to open the overlay by default
VITE_APP_COLLAPSE_OVERLAY=true
# Set this flag to false to disable eslint
VITE_APP_ENABLE_ESLINT=true

View File

@ -1,17 +1,18 @@
REACT_APP_BACKEND_V2_GET_URL=https://json.excalidraw.com/api/v2/
REACT_APP_BACKEND_V2_POST_URL=https://json.excalidraw.com/api/v2/post/
VITE_APP_BACKEND_V2_GET_URL=https://json.excalidraw.com/api/v2/
VITE_APP_BACKEND_V2_POST_URL=https://json.excalidraw.com/api/v2/post/
REACT_APP_LIBRARY_URL=https://libraries.excalidraw.com
REACT_APP_LIBRARY_BACKEND=https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries
VITE_APP_LIBRARY_URL=https://libraries.excalidraw.com
VITE_APP_LIBRARY_BACKEND=https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries
VITE_APP_PORTAL_URL=https://portal.excalidraw.com
VITE_APP_PLUS_LP=https://plus.excalidraw.com
VITE_APP_PLUS_APP=https://app.excalidraw.com
REACT_APP_PORTAL_URL=https://portal.excalidraw.com
# Fill to set socket server URL used for collaboration.
# Meant for forks only: excalidraw.com uses custom REACT_APP_PORTAL_URL flow
REACT_APP_WS_SERVER_URL=
# Meant for forks only: excalidraw.com uses custom VITE_APP_PORTAL_URL flow
VITE_APP_WS_SERVER_URL=
REACT_APP_FIREBASE_CONFIG='{"apiKey":"AIzaSyAd15pYlMci_xIp9ko6wkEsDzAAA0Dn0RU","authDomain":"excalidraw-room-persistence.firebaseapp.com","databaseURL":"https://excalidraw-room-persistence.firebaseio.com","projectId":"excalidraw-room-persistence","storageBucket":"excalidraw-room-persistence.appspot.com","messagingSenderId":"654800341332","appId":"1:654800341332:web:4a692de832b55bd57ce0c1"}'
VITE_APP_FIREBASE_CONFIG='{"apiKey":"AIzaSyAd15pYlMci_xIp9ko6wkEsDzAAA0Dn0RU","authDomain":"excalidraw-room-persistence.firebaseapp.com","databaseURL":"https://excalidraw-room-persistence.firebaseio.com","projectId":"excalidraw-room-persistence","storageBucket":"excalidraw-room-persistence.appspot.com","messagingSenderId":"654800341332","appId":"1:654800341332:web:4a692de832b55bd57ce0c1"}'
# production-only vars
REACT_APP_GOOGLE_ANALYTICS_ID=UA-387204-13
REACT_APP_PLUS_APP=https://app.excalidraw.com
VITE_APP_DISABLE_TRACKING=

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@ -2,7 +2,7 @@ name: Auto release excalidraw next
on:
push:
branches:
- master
- release
jobs:
Auto-release-excalidraw-next:
@ -12,10 +12,10 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 2
- name: Setup Node.js 14.x
- name: Setup Node.js 18.x
uses: actions/setup-node@v2
with:
node-version: 14.x
node-version: 18.x
- name: Set up publish access
run: |
npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}

View File

@ -32,10 +32,10 @@ jobs:
with:
ref: ${{ steps.sha.outputs.result }}
fetch-depth: 2
- name: Setup Node.js 14.x
- name: Setup Node.js 18.x
uses: actions/setup-node@v2
with:
node-version: 14.x
node-version: 18.x
- name: Set up publish access
run: |
npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}

View File

@ -3,7 +3,7 @@ name: Build Docker image
on:
push:
branches:
- master
- release
jobs:
build-docker:

View File

@ -3,7 +3,7 @@ name: Cancel previous runs
on:
push:
branches:
- master
- release
pull_request:
jobs:

View File

@ -9,10 +9,10 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Setup Node.js 14.x
- name: Setup Node.js 18.x
uses: actions/setup-node@v2
with:
node-version: 14.x
node-version: 18.x
- name: Install and lint
run: |

View File

@ -14,10 +14,10 @@ jobs:
with:
token: ${{ secrets.PUSH_TRANSLATIONS_COVERAGE_PAT }}
- name: Setup Node.js 14.x
- name: Setup Node.js 18.x
uses: actions/setup-node@v2
with:
node-version: 14.x
node-version: 18.x
- name: Create report file
run: |

View File

@ -3,7 +3,7 @@ name: Publish Docker
on:
push:
branches:
- master
- release
jobs:
publish-docker:

View File

@ -1,7 +1,7 @@
name: Semantic PR title
on:
pull_request_target:
pull_request:
types:
- opened
- edited

View File

@ -3,17 +3,17 @@ name: New Sentry production release
on:
push:
branches:
- master
- release
jobs:
sentry:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Node.js 14.x
- name: Setup Node.js 18.x
uses: actions/setup-node@v2
with:
node-version: 14.x
node-version: 18.x
- name: Install and build
run: |
yarn --frozen-lockfile

30
.github/workflows/size-limit.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: "Bundle Size check @excalidraw/excalidraw"
on:
pull_request:
branches:
- master
jobs:
size:
runs-on: ubuntu-latest
env:
CI_JOB_NUMBER: 1
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install
run: yarn --frozen-lockfile
- name: Install in src/packages/excalidraw
run: yarn --frozen-lockfile
working-directory: src/packages/excalidraw
env:
CI: true
- uses: andresz1/size-limit-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
build_script: build:umd
skip_step: install
directory: src/packages/excalidraw

26
.github/workflows/test-coverage-pr.yml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Test Coverage PR
on:
pull_request:
jobs:
coverage:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v2
- name: "Install Node"
uses: actions/setup-node@v2
with:
node-version: "18.x"
- name: "Install Deps"
run: yarn --frozen-lockfile
- name: "Test Coverage"
run: yarn test:coverage
- name: "Report Coverage"
if: always() # Also generate the report if tests are failing
uses: davelosert/vitest-coverage-report-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -7,10 +7,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Node.js 14.x
- name: Setup Node.js 18.x
uses: actions/setup-node@v2
with:
node-version: 14.x
node-version: 18.x
- name: Install and test
run: |
yarn --frozen-lockfile

3
.gitignore vendored
View File

@ -25,3 +25,6 @@ src/packages/excalidraw/types
src/packages/excalidraw/example/public/bundle.js
src/packages/excalidraw/example/public/excalidraw-assets-dev
src/packages/excalidraw/example/public/excalidraw.development.js
coverage
dev-dist
html

View File

@ -1,2 +1,2 @@
#!/bin/sh
yarn lint-staged
# yarn lint-staged

1
.npmrc
View File

@ -1 +1,2 @@
save-exact=true
legacy-peer-deps=true

2
.nvmrc
View File

@ -1 +1 @@
14
18

View File

@ -1,63 +1,3 @@
# Contributing
## Setup
### Option 1 - Manual
1. Fork and clone the repo
1. Run `yarn` to install dependencies
1. Create a branch for your PR with `git checkout -b your-branch-name`
> To keep `master` branch pointing to remote repository and make pull requests from branches on your fork. To do this, run:
>
> ```sh
> git remote add upstream https://github.com/excalidraw/excalidraw.git
> git fetch upstream
> git branch --set-upstream-to=upstream/master master
> ```
### Option 2 - CodeSandbox
1. Go to https://codesandbox.io/s/github/excalidraw/excalidraw
1. Connect your GitHub account
1. Go to Git tab on left side
1. Tap on `Fork Sandbox`
1. Write your code
1. Commit and PR automatically
## Pull Request Guidelines
Don't worry if you get any of the below wrong, or if you don't know how. We'll gladly help out.
### Title
Make sure the title starts with a semantic prefix:
- **feat**: A new feature
- **fix**: A bug fix
- **docs**: Documentation only changes
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **perf**: A code change that improves performance
- **test**: Adding missing tests or correcting existing tests
- **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
- **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
- **chore**: Other changes that don't modify src or test files
- **revert**: Reverts a previous commit
### Changelog
Add a brief description of your pull request to the changelog located here: [`src/packages/excalidraw/CHANGELOG.md`](src/packages/excalidraw/CHANGELOG.md)
Notes:
- Make sure to prepend to the section corresponding with the semantic prefix you selected in the title
- Link to your pull request - this will require updating the CHANGELOG _after_ creating the pull request
### Testing
Once you submit your pull request it will automatically be tested. Be sure to check the results of the test and fix any issues that arise.
It's also a good idea to consider if your change should include additional tests. This is highly recommended for new features or bug-fixes. For example, it's good practice to create a test for each bug you fix which ensures that we don't regress the code in the future.
Finally - always manually test your changes using the convenient staging environment deployed for each pull request. As much as local development attempts to replicate production, there can still be subtle differences in behavior. For larger features consider testing your change in multiple browsers as well.
Head over to the [docs](https://docs.excalidraw.com/docs/introduction/contributing)

View File

@ -1,9 +1,9 @@
FROM node:14-alpine AS build
FROM node:18 AS build
WORKDIR /opt/node_app
COPY package.json yarn.lock ./
RUN yarn --ignore-optional
RUN yarn --ignore-optional --network-timeout 600000
ARG NODE_ENV=production

301
README.md
View File

@ -1,201 +1,126 @@
<div align="center" style="display:flex;flex-direction:column;">
<a href="https://excalidraw.com">
<img width="540" src="./public/og-image-sm.png" alt="Excalidraw logo: Sketch handrawn like diagrams." />
</a>
<h3>Virtual whiteboard for sketching hand-drawn like diagrams.<br>Collaborative and end-to-end encrypted.</h3>
<p>
<a href="https://twitter.com/Excalidraw">
<img alt="Follow Excalidraw on Twitter" src="https://img.shields.io/twitter/follow/excalidraw.svg?label=follow+excalidraw&style=social&logo=twitter">
</a>
<a target="_blank" href="https://crowdin.com/project/excalidraw">
<img src="https://badges.crowdin.net/excalidraw/localized.svg">
</a>
</p>
<p>Ask questions or hang out on our <a target="_blank" href="https://discord.gg/UexuTaE">discord.gg/UexuTaE</a>.</p>
<a href="https://excalidraw.com/" target="_blank" rel="noopener">
<picture>
<source media="(prefers-color-scheme: dark)" alt="Excalidraw" srcset="https://excalidraw.nyc3.cdn.digitaloceanspaces.com/github/excalidraw_github_cover_2_dark.png" />
<img alt="Excalidraw" src="https://excalidraw.nyc3.cdn.digitaloceanspaces.com/github/excalidraw_github_cover_2.png" />
</picture>
</a>
<h4 align="center">
<a href="https://excalidraw.com">Excalidraw Editor</a> |
<a href="https://blog.excalidraw.com">Blog</a> |
<a href="https://docs.excalidraw.com">Documentation</a> |
<a href="https://plus.excalidraw.com">Excalidraw+</a>
</h4>
<div align="center">
<h2>
An open source virtual hand-drawn style whiteboard. </br>
Collaborative and end-to-end encrypted. </br>
<br />
</h2>
</div>
## Try it now
<br />
<p align="center">
<a href="https://github.com/excalidraw/excalidraw/blob/master/LICENSE">
<img alt="Excalidraw is released under the MIT license." src="https://img.shields.io/badge/license-MIT-blue.svg" />
</a>
<a href="https://docs.excalidraw.com/docs/introduction/contributing">
<img alt="PRs welcome!" src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat" />
</a>
<a href="https://discord.gg/UexuTaE">
<img alt="Chat on Discord" src="https://img.shields.io/discord/723672430744174682?color=738ad6&label=Chat%20on%20Discord&logo=discord&logoColor=ffffff&widge=false"/>
</a>
<a href="https://twitter.com/excalidraw">
<img alt="Follow Excalidraw on Twitter" src="https://img.shields.io/twitter/follow/excalidraw.svg?label=follow+@excalidraw&style=social&logo=twitter"/>
</a>
</p>
Go to [excalidraw.com](https://excalidraw.com) to start sketching.
<div align="center">
<figure>
<a href="https://excalidraw.com" target="_blank" rel="noopener">
<img src="https://excalidraw.nyc3.cdn.digitaloceanspaces.com/github%2Fproduct_showcase.png" alt="Product showcase" />
</a>
<figcaption>
<p align="center">
Create beautiful hand-drawn like diagrams, wireframes, or whatever you like.
</p>
</figcaption>
</figure>
</div>
Read the latest news and updates on our [blog](https://blog.excalidraw.com). A good start is to see all the updates of [One Year of Excalidraw](https://blog.excalidraw.com/one-year-of-excalidraw/).
## Features
## Supporting Excalidraw
The Excalidraw editor (npm package) supports:
If you like the project, you can become a sponsor at [Open Collective](https://opencollective.com/excalidraw).
- 💯&nbsp;Free & open-source.
- 🎨&nbsp;Infinite, canvas-based whiteboard.
- ✍️&nbsp;Hand-drawn like style.
- 🌓&nbsp;Dark mode.
- 🏗️&nbsp;Customizable.
- 📷&nbsp;Image support.
- 😀&nbsp;Shape libraries support.
- 👅&nbsp;Localization (i18n) support.
- 🖼️&nbsp;Export to PNG, SVG & clipboard.
- 💾&nbsp;Open format - export drawings as an `.excalidraw` json file.
- ⚒️&nbsp;Wide range of tools - rectangle, circle, diamond, arrow, line, free-draw, eraser...
- ➡️&nbsp;Arrow-binding & labeled arrows.
- 🔙&nbsp;Undo / Redo.
- 🔍&nbsp;Zoom and panning support.
[<img src="https://opencollective.com/excalidraw/tiers/sponsors/0/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/0/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/1/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/1/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/2/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/2/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/3/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/3/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/4/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/4/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/5/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/5/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/6/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/6/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/7/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/7/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/8/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/8/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/9/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/9/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/10/avatar.svg?avatarHeight=120">](https://opencollective.com/excalidraw/tiers/sponsors/10/website)
## Excalidraw.com
The app hosted at [excalidraw.com](https://excalidraw.com) is a minimal showcase of what you can build with Excalidraw. Its [source code](https://github.com/excalidraw/excalidraw/tree/master/src/excalidraw-app) is part of this repository as well, and the app features:
- 📡&nbsp;PWA support (works offline).
- 🤼&nbsp;Real-time collaboration.
- 🔒&nbsp;End-to-end encryption.
- 💾&nbsp;Local-first support (autosaves to the browser).
- 🔗&nbsp;Shareable links (export to a readonly link you can share with others).
We'll be adding these features as drop-in plugins for the npm package in the future.
## Quick start
Install the [Excalidraw npm package](https://www.npmjs.com/package/@excalidraw/excalidraw):
```
npm install react react-dom @excalidraw/excalidraw
```
or via yarn
```
yarn add react react-dom @excalidraw/excalidraw
```
Don't forget to check out our [Documentation](https://docs.excalidraw.com)!
## Contributing
- Missing something or found a bug? [Report here](https://github.com/excalidraw/excalidraw/issues).
- Want to contribute? Check out our [contribution guide](https://docs.excalidraw.com/docs/introduction/contributing) or let us know on [Discord](https://discord.gg/UexuTaE).
- Want to help with translations? See the [translation guide](https://docs.excalidraw.com/docs/introduction/contributing#translating).
## Integrations
- [VScode extension](https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor)
- [npm package](https://www.npmjs.com/package/@excalidraw/excalidraw)
## Who's integrating Excalidraw
[Google Cloud](https://googlecloudcheatsheet.withgoogle.com/architecture) • [Meta](https://meta.com/) • [CodeSandbox](https://codesandbox.io/) • [Obsidian Excalidraw](https://github.com/zsviczian/obsidian-excalidraw-plugin) • [Replit](https://replit.com/) • [Slite](https://slite.com/) • [Notion](https://notion.so/) • [HackerRank](https://www.hackerrank.com/) • and many others
## Sponsors & support
If you like the project, you can become a sponsor at [Open Collective](https://opencollective.com/excalidraw) or use [Excalidraw+](https://plus.excalidraw.com/).
## Thank you for supporting Excalidraw
[<img src="https://opencollective.com/excalidraw/tiers/sponsors/0/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/0/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/1/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/1/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/2/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/2/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/3/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/3/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/4/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/4/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/5/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/5/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/6/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/6/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/7/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/7/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/8/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/8/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/9/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/9/website) [<img src="https://opencollective.com/excalidraw/tiers/sponsors/10/avatar.svg?avatarHeight=120"/>](https://opencollective.com/excalidraw/tiers/sponsors/10/website)
<a href="https://opencollective.com/excalidraw#category-CONTRIBUTE" target="_blank"><img src="https://opencollective.com/excalidraw/tiers/backers.svg?avatarHeight=32"/></a>
Last but not least, we're thankful to these companies for offering their services for free:
[![Vercel](./.github/assets/vercel.svg)](https://vercel.com) [![Sentry](./.github/assets/sentry.svg)](https://sentry.io) [![Crowdin](./.github/assets/crowdin.svg)](https://crowdin.com)
## Who's integrating Excalidraw
[Google Cloud](https://googlecloudcheatsheet.withgoogle.com/architecture) • [Meta](https://meta.com/) • [CodeSandbox](https://codesandbox.io/) • [Obsidian Excalidraw](https://github.com/zsviczian/obsidian-excalidraw-plugin) • [Replit](https://replit.com/) • [Slite](https://slite.com/) • [Notion](https://notion.so/) • [HackerRank](https://www.hackerrank.com/) •
## Documentation
### Shortcuts
You can almost do anything with shortcuts. Click on the help icon on the bottom right corner to see them all.
### Curved lines and arrows
Choose line or arrow and click click click instead of drag.
### Charts
You can easily create charts by copy pasting data from Excel or just plain comma separated text.
### Translating
To translate Excalidraw into other languages, please visit [our Crowdin page](https://crowdin.com/project/excalidraw). To add a new language, [open an issue](https://github.com/excalidraw/excalidraw/issues/new) so we can get things set up on our end first.
Translations will be available on the app if they exceed a certain threshold of completion (currently 85%).
### Create a collaboration session manually
In order to create a session manually, you just need to generate a link of this form:
```
https://excalidraw.com/#room=[0-9a-f]{20},[a-zA-Z0-9_-]{22}
```
#### Example
```
https://excalidraw.com/#room=91bd46ae3aa84dff9d20,pfLqgEoY1c2ioq8LmGwsFA
```
The first set of digits is the room. This is visible from the server thats going to dispatch messages to everyone that knows this number.
The second set of digits is the encryption key. The Excalidraw server doesnt know about it. This is what all the participants use to encrypt/decrypt the messages.
> Note: Please ensure that the encryption key is 22 characters long.
## Shape libraries
Find a growing list of libraries containing assets for your drawings at [libraries.excalidraw.com](https://libraries.excalidraw.com).
## Embedding Excalidraw in your App?
Try out [`@excalidraw/excalidraw`](https://www.npmjs.com/package/@excalidraw/excalidraw). This package allows you to easily embed Excalidraw as a React component into your apps.
## Development
### Code Sandbox
- Go to https://codesandbox.io/p/github/excalidraw/excalidraw
- You may need to sign in with GitHub and reload the page
- You can start coding instantly, and even send PRs from there!
### Local Installation
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
#### Requirements
- [Node.js](https://nodejs.org/en/)
- [Yarn](https://yarnpkg.com/getting-started/install) (v1 or v2.4.2+)
- [Git](https://git-scm.com/downloads)
#### Clone the repo
```bash
git clone https://github.com/excalidraw/excalidraw.git
```
#### Install the dependencies
```bash
yarn
```
#### Start the server
```bash
yarn start
```
Now you can open [http://localhost:3000](http://localhost:3000) and start coding in your favorite code editor.
#### Collaboration
For collaboration, you will need to set up [collab server](https://github.com/excalidraw/excalidraw-room) in local.
#### Commands
##### Install the dependencies
```
yarn
```
##### Run the project
```
yarn start
```
##### Reformat all files with Prettier
```
yarn fix
```
##### Run tests
```
yarn test
```
##### Update test snapshots
```
yarn test:update
```
##### Test for formatting with Prettier
```
yarn test:code
```
#### Docker Compose
You can use docker-compose to work on Excalidraw locally if you don't want to setup a Node.js env.
```sh
docker-compose up --build -d
```
### Self-hosting
We publish a Docker image with the Excalidraw client at [excalidraw/excalidraw](https://hub.docker.com/r/excalidraw/excalidraw). You can use it to self-host your own client under your own domain, on Kubernetes, AWS ECS, etc.
```sh
docker build -t excalidraw/excalidraw .
docker run --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest
```
The Docker image is free of analytics and other tracking libraries.
**At the moment, self-hosting your own instance doesn't support sharing or collaboration features.**
We are working towards providing a full-fledged solution for self-hosting your own Excalidraw.
## Contributing
Pull requests are welcome. For major changes, please [open an issue](https://github.com/excalidraw/excalidraw/issues/new) first to discuss what you would like to change.
## Notable used tools
- [Create React App](https://github.com/facebook/create-react-app)
- [Rough.js](https://roughjs.com)
- [TypeScript](https://www.typescriptlang.org)
- [Vercel](https://vercel.com)
And the main source of inspiration for starting the project is the awesome [Zwibbler](https://zwibbler.com/demo/) app.

View File

@ -0,0 +1,11 @@
---
slug: /@excalidraw/excalidraw/api
---
# API
Currently the **API** is divided into 3 broad categories 👇
- [Props](/docs/@excalidraw/excalidraw/api/props) - The `props` you can pass to the `Excalidraw` component.
- [Children components](/docs/@excalidraw/excalidraw/api/children-components) - Official components you can use to customize the UI.
- [Utils](/docs/@excalidraw/excalidraw/api/utils) - Utilities and helpers you can use to export, restore and more.

View File

@ -0,0 +1,22 @@
---
sidebar_label: Children Components
slug: /@excalidraw/excalidraw/api/children-components
---
# `<Excalidraw/>` children
We expose several components you can render as children of the `<Excalidraw/>` component to customize the UI.
:::info
We have only recently started migrating to this type of component API. Some UI components are still using render props, and some UI customization isn't supported yet (such as the toolbar or the element properties panel). Stay tuned for more updates!
:::
Below are the currently supported components:
- [MainMenu](/docs/@excalidraw/excalidraw/api/children-components/main-menu)
- [WelcomeScreen](/docs/@excalidraw/excalidraw/api/children-components/welcome-screen)
- [Sidebar](/docs/@excalidraw/excalidraw/api/children-components/sidebar)
- [Footer](/docs/@excalidraw/excalidraw/api/children-components/footer)
- [LiveCollaborationTrigger](/docs/@excalidraw/excalidraw/api/children-components/live-collaboration-trigger)

View File

@ -0,0 +1,68 @@
# Footer
Earlier we were using `renderFooter` prop to render custom footer which was removed in [#5970](https://github.com/excalidraw/excalidraw/pull/5970). Now you can pass a `Footer` component instead to render the custom UI for footer.
You will need to import the `Footer` component from the package and wrap your component with the Footer component. The `Footer` should a valid React Node.
**Usage**
```jsx live
function App() {
return (
<div style={{ height: "500px"}}>
<Excalidraw>
<Footer>
<button
className="custom-footer"
onClick={() => alert("This is dummy footer")}
>
custom footer
</button>
</Footer>
</Excalidraw>
</div>
);
}
```
This will only for `Desktop` devices.
For `mobile` you will need to render it inside the [MainMenu](#mainmenu). You can use the [`useDevice`](#useDevice) hook to check the type of device, this will be available only inside the `children` of `Excalidraw` component.
Open the `Menu` in the below playground and you will see the `custom footer` rendered.
```jsx live noInline
const MobileFooter = ({}) => {
const device = useDevice();
if (device.isMobile) {
return (
<Footer>
<button
className="custom-footer"
style= {{ marginLeft: '20px', height: '2rem'}}
onClick={() => alert("This is custom footer in mobile menu")}
>
custom footer
</button>
</Footer>
);
}
return null;
};
const App = () => (
<div style={{ height: "400px" }}>
<Excalidraw>
<MainMenu>
<MainMenu.Item> Item1 </MainMenu.Item>
<MainMenu.Item> Item 2 </MainMenu.Item>
<MobileFooter />
</MainMenu>
</Excalidraw>
</div>
);
// Need to render when code is span across multiple components
// in Live Code blocks editor
render(<App />);
```

View File

@ -0,0 +1,62 @@
# LiveCollaborationTrigger
If you implement live collaboration support and want to expose the same UI button as on [excalidraw.com](https://excalidraw.com), you can render the `<LiveCollaborationTrigger/>` component using the [renderTopRightUI](/docs/@excalidraw/excalidraw/api/props#rendertoprightui) prop.
You'll need to supply `onSelect()` to handle opening of your collaboration dialog, but the button will display `appState.collaborators` count provided you have supplied it.
| Prop | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `onSelect` | `function` | Yes | | Handler called when the user clicks on the button |
| `isCollaborating` | `boolean` | Yes | false | Whether live collaboration session is in effect. Modifies button style. |
```tsx live
function App() {
const [excalidrawAPI, setExcalidrawAPI] = useState(null);
const [isCollaborating, setIsCollaborating] = useState(false);
return (
<div style={{ height: "500px" }}>
<p style={{ fontSize: "16px" }}>
Selecting the checkbox to see the collaborator count
</p>
<label style={{ fontSize: "16px", fontWeight: "bold" }}>
<input
type="checkbox"
checked={isCollaborating}
onChange={() => {
if (!isCollaborating) {
const collaborators = new Map();
collaborators.set("id1", {
username: "Doremon",
avatarUrl: "../../../../img/doremon.png",
});
collaborators.set("id3", {
username: "Pika",
avatarUrl: "../../../../img/pika.jpeg",
});
excalidrawAPI.updateScene({ collaborators });
} else {
excalidrawAPI.updateScene({
collaborators: new Map(),
});
}
setIsCollaborating(!isCollaborating);
}}
/>
Show Collaborators
</label>
<Excalidraw
ref={(api) => setExcalidrawAPI(api)}
renderTopRightUI={() => (
<LiveCollaborationTrigger
isCollaborating={isCollaborating}
onSelect={() => {
window.alert("You clicked on collab button");
setIsCollaborating(true);
}}
/>
)}
></Excalidraw>
</div>
);
}
```

View File

@ -0,0 +1,167 @@
# MainMenu
By default Excalidraw will render the `MainMenu` with default options. If you want to customise the `MainMenu`, you can pass the `MainMenu` component with the list options.
**Usage**
```jsx live
function App() {
return (
<div style={{ height: "300px" }}>
<Excalidraw>
<MainMenu>
<MainMenu.Item onSelect={() => window.alert("Item1")}>
Item1
</MainMenu.Item>
<MainMenu.Item onSelect={() => window.alert("Item2")}>
Item 2
</MainMenu.Item>
</MainMenu>
</Excalidraw>
</div>
);
}
```
### `<MainMenu>`
This is the `MainMenu` component. If you render it, you will need to populate the menu with your own items as we will not render any ourselves at that point.
| Prop | Type | Required | Default | Description |
| --- | --- | :-: | :-: | --- |
| `onSelect` | `function` | No | - | Triggered when any item is selected (via mouse). Calling `event.preventDefault()` will stop menu from closing. |
### MainMenu.Item
To render an item, its recommended to use `MainMenu.Item`.
| Prop | Type | Required | Default | Description |
| --- | --- | :-: | :-: | --- |
| `onSelect` | `function` | Yes | - | Triggered when selected (via mouse). Calling `event.preventDefault()` will stop menu from closing. |
| `children` | `React.ReactNode` | Yes | - | The content of the menu item |
| `icon` | `JSX.Element` | No | - | The icon used in the menu item |
| `shortcut` | `string` | No | - | The shortcut to be shown for the menu item |
### MainMenu.ItemLink
To render an item as a link, its recommended to use `MainMenu.ItemLink`.
**Usage**
```jsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw>
<MainMenu>
<MainMenu.ItemLink href="https://google.com">
Google
</MainMenu.ItemLink>
<MainMenu.ItemLink href="https://excalidraw.com">
Excalidraw
</MainMenu.ItemLink>
</MainMenu>
</Excalidraw>
</div>
);
}
```
| Prop | Type | Required | Default | Description |
| --- | --- | :-: | :-: | --- |
| `onSelect` | `function` | No | - | Triggered when selected (via mouse). Calling `event.preventDefault()` will stop menu from closing. |
| `href` | `string` | Yes | - | The `href` attribute to be added to the `anchor` element. |
| `children` | `React.ReactNode` | Yes | - | The content of the menu item |
| `icon` | `JSX.Element` | No | - | The icon used in the menu item |
| `shortcut` | `string` | No | - | The shortcut to be shown for the menu item |
### MainMenu.ItemCustom
To render a custom item, you can use `MainMenu.ItemCustom`.
**Usage**
```jsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw>
<MainMenu>
<MainMenu.ItemCustom>
<button
style={{ height: "2rem" }}
onClick={() => window.alert("custom menu item")}
>
custom item
</button>
</MainMenu.ItemCustom>
</MainMenu>
</Excalidraw>
</div>
);
}
```
| Prop | Type | Required | Default | Description |
| --- | --- | :-: | :-: | --- |
| `children` | `React.ReactNode` | Yes | - | The content of the menu item |
### MainMenu.DefaultItems
For the items which are shown in the menu in [excalidraw.com](https://excalidraw.com), you can use `MainMenu.DefaultItems`
```jsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw>
<MainMenu>
<MainMenu.DefaultItems.Socials />
<MainMenu.DefaultItems.Export />
<MainMenu.Item onSelect={() => window.alert("Item1")}>
Item1
</MainMenu.Item>
<MainMenu.Item onSelect={() => window.alert("Item2")}>
Item 2
</MainMenu.Item>
</MainMenu>
</Excalidraw>
</div>
);
}
```
Here is a [complete list](https://github.com/excalidraw/excalidraw/blob/master/src/components/mainMenu/DefaultItems.tsx) of the default items.
### MainMenu.Group
To Group item in the main menu, you can use `MainMenu.Group`
```jsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw>
<MainMenu>
<MainMenu.Group title="Excalidraw items">
<MainMenu.DefaultItems.Socials />
<MainMenu.DefaultItems.Export />
</MainMenu.Group>
<MainMenu.Group title="custom items">
<MainMenu.Item onSelect={() => window.alert("Item1")}>
Item1
</MainMenu.Item>
<MainMenu.Item onSelect={() => window.alert("Item2")}>
Item 2
</MainMenu.Item>
</MainMenu.Group>
</MainMenu>
</Excalidraw>
</div>
);
}
```
| Prop | Type | Required | Default | Description |
| --- | --- | :-: | :-: | --- |
| `children ` | `React.ReactNode` | Yes | - | The content of the `Menu Group` |

View File

@ -0,0 +1,129 @@
# Sidebar
The editor comes with a default sidebar on the right in LTR (Left to Right) mode which contains the library. You can also add your own custom sidebar(s) by rendering this component as a child of `<Excalidraw>`.
## Props
| Prop | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | Sidebar name that uniquely identifies it. |
| `children` | `React.ReactNode` | Yes | Content you want to render inside the sidebar. |
| `onStateChange` | `(state: AppState["openSidebar"]) => void` | No | Invoked on open/close or tab change. No need to act on this event, as the editor manages the sidebar open state on its own. |
| `onDock` | `(docked: boolean) => void` | No | Invoked when the user toggles the `dock` button. Passed the current docked state. |
| `docked` | `boolean` | No | Indicates whether the sidebar is `docked`. By default, the sidebar is `undocked`. If passed, the docking becomes controlled. |
| `className` | `string` | No | |
| `style` | `React.CSSProperties` | No | |
At minimum, each sidebar needs to have a unique `name` prop, and render some content inside it, which can be either composed from the exported sidebar sub-components, or custom elements.
Unless `docked={true}` is passed, the sidebar will close when the user clicks outside of it. It can also be closed using the close button in the header, if you render the `<Sidebar.Header>` component.
Further, if the sidebader doesn't comfortably fit in the editor, it won't be dockable. To decide the breakpoint for docking you can use [UIOptions.dockedSidebarBreakpoint](/docs/@excalidraw/excalidraw/api/props/ui-options#dockedsidebarbreakpoint).
To make your sidebar user-dockable, you need to supply `props.docked` (current docked state) alongside `props.onDock` callback (to listen for and handle docked state changes). The component doesn't track local state for the `docked` prop, so you need to manage it yourself.
## Sidebar.Header
| Prop | Type | Required | Description |
| --- | --- | --- | --- |
| `children` | `React.ReactNode` | No | Content you want to render inside the sidebar header next to the `close` / `dock` buttons. |
| `className` | `string` | No | |
Renders a sidebar header which contains a close button, and a dock button (when applicable). You can also render custom content in addition.
Can be nested inside specific tabs, or rendered as direct child of `<Sidebar>` for the whole sidebar component.
## Sidebar.Tabs
| Prop | Type | Required | Description |
| ---------- | ----------------- | -------- | ------------------------------ |
| `children` | `React.ReactNode` | No | Container for individual tabs. |
Sidebar may contain inner tabs. Each `<Sidebar.Tab>` must be rendered inside this `<Sidebar.Tabs>` container component.
## Sidebar.Tab
| Prop | Type | Required | Description |
| ---------- | ----------------- | -------- | ---------------- |
| `tab` | `string` | Yes | Unique tab name. |
| `children` | `React.ReactNode` | No | Tab content. |
Content of a given sidebar tab. It must be rendered inside `<Sidebar.Tabs>`.
## Sidebar.TabTriggers
| Prop | Type | Required | Description |
| --- | --- | --- | --- |
| `children` | `React.ReactNode` | No | Container for individual tab triggers. |
Container component for tab trigger buttons to switch between tabs.
## Sidebar.TabTrigger
| Prop | Type | Required | Description |
| --- | --- | --- | --- |
| `tab` | `string` | Yes | Tab name to toggle. |
| `children` | `React.ReactNode` | No | Tab trigger content, such as a label. |
A given tab trigger button that switches to a given sidebar tab. It must be rendered inside `<Sidebar.TabTriggers>`.
## Sidebar.Trigger
| Prop | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | Sidebar name the trigger will control. |
| `tab` | `string` | No | Optional tab to open. |
| `onToggle` | `(open: boolean) => void` | No | Callback invoked on toggle. |
| `title` | `string` | No | A11y title. |
| `children` | `React.ReactNode` | No | Content (usually label) you want to render inside the button. |
| `icon` | `JSX.Element` | No | Trigger icon if any. |
| `className` | `string` | No | |
| `style` | `React.CSSProperties` | No | |
You can use the [`ref.toggleSidebar({ name: "custom" })`](/docs/@excalidraw/excalidraw/api/props/ref#toggleSidebar) api to control the sidebar, but we export a trigger button to make UI use cases easier.
## Example
```tsx live
function App() {
const [docked, setDocked] = useState(false);
return (
<div style={{ height: "580px" }}>
<Excalidraw
UIOptions={{
// this effectively makes the sidebar dockable on any screen size,
// ignoring if it fits or not
dockedSidebarBreakpoint: 0,
}}
>
<Sidebar name="custom" docked={docked} onDock={setDocked}>
<Sidebar.Header />
<Sidebar.Tabs style={{ padding: "0.5rem" }}>
<Sidebar.Tab tab="one">Tab one!</Sidebar.Tab>
<Sidebar.Tab tab="two">Tab two!</Sidebar.Tab>
<Sidebar.TabTriggers>
<Sidebar.TabTrigger tab="one">One</Sidebar.TabTrigger>
<Sidebar.TabTrigger tab="two">Two</Sidebar.TabTrigger>
</Sidebar.TabTriggers>
</Sidebar.Tabs>
</Sidebar>
<Footer>
<Sidebar.Trigger
name="custom"
tab="one"
style={{
marginLeft: "0.5rem",
background: "#70b1ec",
color: "white",
}}
>
Toggle Custom Sidebar
</Sidebar.Trigger>
</Footer>
</Excalidraw>
</div>
);
}
```

View File

@ -0,0 +1,140 @@
# WelcomeScreen
When the canvas is empty, Excalidraw can show a welcome _splash_ screen with a logo, a few quick action items, and hints explaining what some of the UI buttons do. Once the user picks a tool, or has created an element on the canvas, the welcome screen will disappear.
You can enable this behavior by rendering a `WelcomeScreen` component like this:
```jsx live
function App() {
return (
<div style={{ height: "46rem" }}>
<Excalidraw>
<WelcomeScreen />
</Excalidraw>
</div>
);
}
```
You can also customize the welcome screen by passing children to the `WelcomeScreen` component. See below.
## <WelcomeScreen/>
This is the main component. If you render it without any children, we will render the default welcome screen.
You can customize which welcome screen subcomponents are rendered by passing them as children.
The welcome screen consists of two main groups of subcomponents:
1. [WelcomeScreen.Center](#welcomescreencenterlogo).
2. [WeelcomeScreen.Hints](#welcomescreenhints).
<img
src={require("@site/static/img/welcome-screen-overview.png").default}
alt="Excalidraw logo: Sketch handrawn like diagrams."
/>
### Center
`<WelcomeScreen.Center/>` subcomponent is the center piece of the welcome screen, containing the `logo`, `heading`, and `menu`. All three subcomponents are optional, and you can render whatever you wish into the center component.
```jsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw>
<WelcomeScreen>
<WelcomeScreen.Center>
<WelcomeScreen.Center.Logo />
<WelcomeScreen.Center.Heading>
Welcome Screen Heading!
</WelcomeScreen.Center.Heading>
<WelcomeScreen.Center.Menu>
<WelcomeScreen.Center.MenuItemLink href="https://github.com/excalidraw/excalidraw">
Excalidraw GitHub
</WelcomeScreen.Center.MenuItemLink>
<WelcomeScreen.Center.MenuItemHelp />
</WelcomeScreen.Center.Menu>
</WelcomeScreen.Center>
</WelcomeScreen>
</Excalidraw>
</div>
);
}
```
#### Logo
Use the `<WelcomeScreen.Center.Logo/>` to render a logo. By default it renders the Excalidraw logo and name. Supply `children` to customize.
#### Heading
Use the `<WelcomeScreen.Center.Heading/>` to render a heading below the logo. Supply `children` to change the default message.
#### Menu
`<WelcomeScreen.Center.Menu/>` is a wrapper component for the menu items. You can build your menu using the `<WelcomeScreen.Center.MenuItem>` and `<WelcomeScreen.Center.MenuItemLink>` components, render your own, or render one of the default menu items.
The default menu items are:
- `<WelcomeScreen.Center.MenuItemHelp/>` - opens the help dialog.
- `<WelcomeScreen.Center.MenuItemLoadScene/>` - open the load file dialog.
- `<WelcomeScreen.Center.MenuItemLiveCollaborationTrigger/>` - intended to open the live collaboration dialog. Works similarly to [`<LiveCollaborationTrigger>`](/docs/@excalidraw/excalidraw/api/children-components/live-collaboration-trigger) and you must supply `onSelect()` handler to integrate with your collaboration implementation.
#### MenuItem
The `<WelcomeScreen.Center.MenuItem/>` component can be used to render a menu item.
| Prop | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `onSelect` | `function` | Yes | | The handler is triggered when the item is selected. |
| `children` | `React.ReactNode` | Yes | | The content of the menu item |
| `icon` | `JSX.Element` | No | | The icon used in the menu item |
| `shortcut` | `string` | No | | The keyboard shortcut (label-only, does not affect behavior) |
**WelcomeScreen.Center.MenuItemLink**
To render an external link in a menu item, you can use this component.
| Prop | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `href` | `string` | Yes | | The `href` attribute to be added to the `anchor` element. |
| `children` | `React.ReactNode` | Yes | | The content of the menu item |
| `icon` | `JSX.Element` | No | | The icon used in the menu item |
| `shortcut` | `string` | No | | The keyboard shortcut (label-only, does not affect behavior) |
### Hints
These `<WelcomeScreen.Hints.*>` subcomponents render the UI hints. Text of each hint can be customized by supplying `children`.
```jsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw>
<WelcomeScreen>
<WelcomeScreen.Hints.ToolbarHint>
<p> ToolBar Hints </p>
</WelcomeScreen.Hints.ToolbarHint>
<WelcomeScreen.Hints.MenuHint />
<WelcomeScreen.Hints.HelpHint />
</WelcomeScreen>
</Excalidraw>
</div>
);
}
```
#### MenuHint
`<WelcomeScreen.Hints.MenuHint>` hint subcomponent for the main menu. Supply `children` to customize the hint text.
#### ToolbarHint
`<WelcomeScreen.Hints.ToolbarHint>` hint subcomponent for the toolbar. Supply `children` to customize the hint text.
#### Help
`<WelcomeScreen.Hints.Help>` hint subcomponent for the help dialog. Supply `children` to customize the hint text.

View File

@ -0,0 +1,46 @@
# Constants
### FONT_FAMILY
**How to use**
```js
import { FONT_FAMILY } from "@excalidraw/excalidraw";
```
`FONT_FAMILY` contains all the font families used in `Excalidraw` as explained below
| Font Family | Description |
| ----------- | ---------------------- |
| `Virgil` | The `handwritten` font |
| `Helvetica` | The `Normal` Font |
| `Cascadia` | The `Code` Font |
Defaults to `FONT_FAMILY.Virgil` unless passed in `initialData.appState.currentItemFontFamily`.
### THEME
**How to use**
```js
import { THEME } from "@excalidraw/excalidraw";
```
`THEME` contains all the themes supported by `Excalidraw` as explained below
| Theme | Description |
| ------- | ----------------- |
| `LIGHT` | The `light` theme |
| `DARK` | The `Dark` theme |
Defaults to `THEME.LIGHT` unless passed in `initialData.appState.theme`
### MIME_TYPES
[`MIME_TYPES`](https://github.com/excalidraw/excalidraw/blob/master/src/constants.ts#L101) contains all the mime types supported by `Excalidraw`.
**How to use **
```js
import { MIME_TYPES } from "@excalidraw/excalidraw";
```

View File

@ -0,0 +1,429 @@
# Creating Elements programmatically
We support a simplified API to make it easier to generate Excalidraw elements programmatically. This API is in beta and subject to change before stable. You can check the [PR](https://github.com/excalidraw/excalidraw/pull/6546) for more details.
For this purpose we introduced a new type [`ExcalidrawElementSkeleton`](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L133). This is the simplified version of [`ExcalidrawElement`](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L134) type with the minimum possible attributes so that creating elements programmatically is much easier (especially for cases like binding arrows or creating text containers).
The [`ExcalidrawElementSkeleton`](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L133) can be converted to fully qualified Excalidraw elements by using [`convertToExcalidrawElements`](/docs/@excalidraw/excalidraw/api/excalidraw-element-skeleton#converttoexcalidrawelements).
## convertToExcalidrawElements
**_Signature_**
<pre>
convertToExcalidrawElements(elements:{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L133">
ExcalidrawElementSkeleton
</a>
)
</pre>
**_How to use_**
```js
import { convertToExcalidrawElements } from "@excalidraw/excalidraw";
```
This function converts the Excalidraw Element Skeleton to excalidraw elements which could be then rendered on the canvas. Hence calling this function is necessary before passing it to APIs like [`initialData`](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/props/initialdata), [`updateScene`](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/props/ref#updatescene) if you are using the Skeleton API
## Supported Features
### Rectangle, Ellipse, and Diamond
To create these shapes you need to pass its `type` and `x` and `y` coordinates for position. The rest of the attributes are optional_.
For the Skeleton API to work, `convertToExcalidrawElements` needs to be called before passing it to Excalidraw Component via initialData, updateScene or any such API.
```jsx live
function App() {
const elements = convertToExcalidrawElements([
{
type: "rectangle",
x: 100,
y: 250,
},
{
type: "ellipse",
x: 250,
y: 250,
},
{
type: "diamond",
x: 380,
y: 250,
},
]);
return (
<div style={{ height: "500px" }}>
<Excalidraw
initialData={{
elements,
appState: { zenModeEnabled: true, viewBackgroundColor: "#a5d8ff" },
scrollToContent: true,
}}
/>
</div>
);
}
```
You can pass additional [`properties`](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L27) as well to decorate the shapes.
:::info
You can copy the below test examples and replace the elements in the live editor above to test it out.
:::
```js
convertToExcalidrawElements([
{
type: "rectangle",
x: 50,
y: 250,
width: 200,
height: 100,
backgroundColor: "#c0eb75",
strokeWidth: 2,
},
{
type: "ellipse",
x: 300,
y: 250,
width: 200,
height: 100,
backgroundColor: "#ffc9c9",
strokeStyle: "dotted",
fillStyle: "solid",
strokeWidth: 2,
},
{
type: "diamond",
x: 550,
y: 250,
width: 200,
height: 100,
backgroundColor: "#a5d8ff",
strokeColor: "#1971c2",
strokeStyle: "dashed",
fillStyle: "cross-hatch",
strokeWidth: 2,
},
]);
```
![image](https://github.com/excalidraw/excalidraw/assets/11256141/70ca7063-88fb-434c-838a-cd466e1bc3c2)
### Text Element
The `type`, `x`, `y` and `text` properties are required to create a text element, rest of the attributes are optional
```js
convertToExcalidrawElements([
{
type: "text",
x: 100,
y: 100,
text: "HELLO WORLD!",
},
{
type: "text",
x: 100,
y: 150,
text: "STYLED HELLO WORLD!",
fontSize: 20,
strokeColor: "#5f3dc4",
},
]);
```
![image](https://github.com/excalidraw/excalidraw/assets/11256141/085c7ac3-7952-4f22-b9c3-6beb51438526)
### Lines and Arrows
The `type`, `x`, and `y` properties are required, rest of the attributes are optional
```js
convertToExcalidrawElements([
{
type: "arrow",
x: 100,
y: 20,
},
{
type: "line",
x: 100,
y: 60,
},
]);
```
![image](https://github.com/excalidraw/excalidraw/assets/11256141/0c22a06b-b568-4ab5-9848-a5f0160f66a6)
#### With Addtional properties
```js
convertToExcalidrawElements([
{
type: "arrow",
x: 450,
y: 20,
startArrowhead: "dot",
endArrowhead: "triangle",
strokeColor: "#1971c2",
strokeWidth: 2,
},
{
type: "line",
x: 450,
y: 60,
strokeColor: "#2f9e44",
strokeWidth: 2,
strokeStyle: "dotted",
},
]);
```
![image](https://github.com/excalidraw/excalidraw/assets/11256141/14f1bf3f-ad81-4096-8c1c-f35235084ec5)
### Text Containers
In addition to `type`, `x` and `y` properties, [`label`](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L124C7-L130C59) property is required for text containers. The `text` property in `label` is required, rest of the attributes are optional.
If you don't provide the dimensions of container, we calculate it based of the label dimensions.
```js
convertToExcalidrawElements([
{
type: "rectangle",
x: 300,
y: 290,
label: {
text: "RECTANGLE TEXT CONTAINER",
},
},
{
type: "ellipse",
x: 500,
y: 100,
label: {
text: "ELLIPSE\n TEXT CONTAINER",
},
},
{
type: "diamond",
x: 100,
y: 100,
label: {
text: "DIAMOND\nTEXT CONTAINER",
},
},
]);
```
![image](https://github.com/excalidraw/excalidraw/assets/11256141/1e2c7b5d-fcb4-4f86-946d-0bfb0e97d532)
#### With Additional properties
```js
convertToExcalidrawElements([
{
type: "diamond",
x: -120,
y: 100,
width: 270,
backgroundColor: "#fff3bf",
strokeWidth: 2,
label: {
text: "STYLED DIAMOND TEXT CONTAINER",
strokeColor: "#099268",
fontSize: 20,
},
},
{
type: "rectangle",
x: 180,
y: 150,
width: 200,
strokeColor: "#c2255c",
label: {
text: "TOP LEFT ALIGNED RECTANGLE TEXT CONTAINER",
textAlign: "left",
verticalAlign: "top",
fontSize: 20,
},
},
{
type: "ellipse",
x: 400,
y: 130,
strokeColor: "#f08c00",
backgroundColor: "#ffec99",
width: 200,
label: {
text: "STYLED ELLIPSE TEXT CONTAINER",
strokeColor: "#c2255c",
},
},
]);
```
![image](https://github.com/excalidraw/excalidraw/assets/11256141/f8123cd1-c9aa-452d-b96b-05c846c5030d)
### Labelled Arrows
Similar to Text Containers, you can create labelled arrows as well.
```js
convertToExcalidrawElements([
{
type: "arrow",
x: 100,
y: 100,
label: {
text: "LABELED ARROW",
},
},
{
type: "arrow",
x: 100,
y: 200,
label: {
text: "STYLED LABELED ARROW",
strokeColor: "#099268",
fontSize: 20,
},
},
{
type: "arrow",
x: 100,
y: 300,
strokeColor: "#1098ad",
strokeWidth: 2,
label: {
text: "ANOTHER STYLED LABELLED ARROW",
},
},
{
type: "arrow",
x: 100,
y: 400,
strokeColor: "#1098ad",
strokeWidth: 2,
label: {
text: "ANOTHER STYLED LABELLED ARROW",
strokeColor: "#099268",
},
},
]);
```
![image](https://github.com/excalidraw/excalidraw/assets/11256141/70635e9b-f1c8-4839-89e1-73b813abeb93)
### Arrow bindings
To bind arrow to a shape you need to specify its [`start`](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L86) and [`end`](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L54) properties. You need to pass either `type` or `id` property in `start` and `end` properties, rest of the attributes are optional
```js
convertToExcalidrawElements([
{
type: "arrow",
x: 255,
y: 239,
label: {
text: "HELLO WORLD!!",
},
start: {
type: "rectangle",
},
end: {
type: "ellipse",
},
},
]);
```
When position for `start` and `end ` properties are not specified, we compute it according to arrow position.
![image](https://github.com/excalidraw/excalidraw/assets/11256141/5aff09fd-b7e8-4c63-98be-da40b0698704)
```js
convertToExcalidrawElements([
{
type: "arrow",
x: 255,
y: 239,
label: {
text: "HELLO WORLD!!",
},
start: {
type: "text",
text: "HEYYYYY",
},
end: {
type: "text",
text: "WHATS UP ?",
},
},
]);
```
![image](https://github.com/excalidraw/excalidraw/assets/11256141/2a9f03ac-e45c-4fbd-9be0-5d9f8c8e0343)
#### When passing `id`
Useful when you want to bind multiple arrows to one diagram / use some existing diagram
```js
convertToExcalidrawElements([
{
type: "ellipse",
id: "ellipse-1",
strokeColor: "#66a80f",
x: 390,
y: 356,
width: 150,
height: 150,
backgroundColor: "#d8f5a2",
},
{
type: "diamond",
id: "diamond-1",
strokeColor: "#9c36b5",
width: 100,
x: -30,
y: 380,
},
{
type: "arrow",
x: 100,
y: 440,
width: 295,
height: 35,
strokeColor: "#1864ab",
start: {
type: "rectangle",
width: 150,
height: 150,
},
end: {
id: "ellipse-1",
},
},
{
type: "arrow",
x: 60,
y: 420,
width: 330,
strokeColor: "#e67700",
start: {
id: "diamond-1",
},
end: {
id: "ellipse-1",
},
},
]);
```
![image](https://github.com/excalidraw/excalidraw/assets/11256141/a8b047c8-2eed-4aea-82a2-e1e6bbddb8d4)

View File

@ -0,0 +1,55 @@
# initialData
<pre>
&#123; elements?: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement[]</a>, appState?: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">AppState</a> &#125;
</pre>
This helps to load Excalidraw with `initialData`. It must be an object or a [promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/Promise) which resolves to an object containing the below optional fields.
| Name | Type | Description |
| --- | --- | --- |
| `elements` | [ExcalidrawElement[]](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114) | The `elements` with which `Excalidraw` should be mounted. |
| `appState` | [AppState](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95) | The `AppState` with which `Excalidraw` should be mounted. |
| `scrollToContent` | `boolean` | This attribute indicates whether to `scroll` to the nearest element to center once `Excalidraw` is mounted. By default, it will not scroll the nearest element to the center. Make sure you pass `initialData.appState.scrollX` and `initialData.appState.scrollY` when `scrollToContent` is false so that scroll positions are retained |
| `libraryItems` | [LibraryItems](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L247) &#124; Promise&lt;[LibraryItems](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L200)&gt; | This library items with which `Excalidraw` should be mounted. |
| `files` | [BinaryFiles](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L82) | The `files` added to the scene. |
You might want to use this when you want to load excalidraw with some initial elements and app state.
```jsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw
initialData={{
elements: [
{
type: "rectangle",
version: 141,
versionNonce: 361174001,
isDeleted: false,
id: "oDVXy8D6rom3H1-LLH2-f",
fillStyle: "hachure",
strokeWidth: 1,
strokeStyle: "solid",
roughness: 1,
opacity: 100,
angle: 0,
x: 100.50390625,
y: 93.67578125,
strokeColor: "#000000",
backgroundColor: "transparent",
width: 186.47265625,
height: 141.9765625,
seed: 1968410350,
groupIds: [],
},
],
appState: { zenModeEnabled: true, viewBackgroundColor: "#a5d8ff" },
scrollToContent: true
}}
/>
</div>
);
}
```

View File

@ -0,0 +1,239 @@
# Props
All `props` are *optional*.
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| [`initialData`](/docs/@excalidraw/excalidraw/api/props/initialdata) | `object` &#124; `null` &#124; <code>Promise<object &#124; null></code> | `null` | The initial data with which app loads. |
| [`ref`](/docs/@excalidraw/excalidraw/api/props/ref) | `object` | _ | `Ref` to be passed to Excalidraw |
| [`isCollaborating`](#iscollaborating) | `boolean` | _ | This indicates if the app is in `collaboration` mode |
| [`onChange`](#onchange) | `function` | _ | This callback is triggered whenever the component updates due to any change. This callback will receive the excalidraw `elements` and the current `app state`. |
| [`onPointerUpdate`](#onpointerupdate) | `function` | _ | Callback triggered when mouse pointer is updated. |
| [`onPointerDown`](#onpointerdown) | `function` | _ | This prop if passed gets triggered on pointer down evenets |
| [`onScrollChange`](#onscrollchange) | `function` | _ | This prop if passed gets triggered when scrolling the canvas. |
| [`onPaste`](#onpaste) | `function` | _ | Callback to be triggered if passed when the something is pasted in to the scene |
| [`onLibraryChange`](#onlibrarychange) | `function` | _ | The callback if supplied is triggered when the library is updated and receives the library items. |
| [`onLinkOpen`](#onlinkopen) | `function` | _ | The callback if supplied is triggered when any link is opened. |
| [`langCode`](#langcode) | `string` | `en` | Language code string to be used in Excalidraw |
| [`renderTopRightUI`](/docs/@excalidraw/excalidraw/api/props/render-props#rendertoprightui) | `function` | _ | Render function that renders custom UI in top right corner |
| [`renderCustomStats`](/docs/@excalidraw/excalidraw/api/props/render-props#rendercustomstats) | `function` | _ | Render function that can be used to render custom stats on the stats dialog. |
| [`viewModeEnabled`](#viewmodeenabled) | `boolean` | _ | This indicates if the app is in `view` mode. |
| [`zenModeEnabled`](#zenmodeenabled) | `boolean` | _ | This indicates if the `zen` mode is enabled |
| [`gridModeEnabled`](#gridmodeenabled) | `boolean` | _ | This indicates if the `grid` mode is enabled |
| [`libraryReturnUrl`](#libraryreturnurl) | `string` | _ | What URL should [libraries.excalidraw.com](https://libraries.excalidraw.com) be installed to |
| [`theme`](#theme) | `"light"` &#124; `"dark"` | `"light"` | The theme of the Excalidraw component |
| [`name`](#name) | `string` | | Name of the drawing |
| [`UIOptions`](/docs/@excalidraw/excalidraw/api/props/ui-options) | `object` | [DEFAULT UI OPTIONS](https://github.com/excalidraw/excalidraw/blob/master/src/constants.ts#L151) | To customise UI options. Currently we support customising [`canvas actions`](#canvasactions) |
| [`detectScroll`](#detectscroll) | `boolean` | `true` | Indicates whether to update the offsets when nearest ancestor is scrolled. |
| [`handleKeyboardGlobally`](#handlekeyboardglobally) | `boolean` | `false` | Indicates whether to bind the keyboard events to document. |
| [`autoFocus`](#autofocus) | `boolean` | `false` | indicates whether to focus the Excalidraw component on page load |
| [`generateIdForFile`](#generateidforfile) | `function` | _ | Allows you to override `id` generation for files added on canvas |
| [`validateEmbeddable`](#validateEmbeddable) | string[] | `boolean | RegExp | RegExp[] | ((link: string) => boolean | undefined)` | \_ | use for custom src url validation |
| [`renderEmbeddable`](/docs/@excalidraw/excalidraw/api/props/render-props#renderEmbeddable) | `function` | \_ | Render function that can override the built-in `<iframe>` |
### Storing custom data on Excalidraw elements
Beyond attributes that Excalidraw elements already support, you can store `custom` data on each `element` in a `customData` object. The type of the attribute is [`Record<string, any>`](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L66) and is optional.
You can use this to add any extra information you need to keep track of.
You can add `customData` to elements when passing them as [`initialData`](/docs/@excalidraw/excalidraw/api/props/initialdata), or using [`updateScene`](/docs/@excalidraw/excalidraw/api/props/ref#updatescene) / [`updateLibrary`](/docs/@excalidraw/excalidraw/api/props/ref#updatelibrary) afterwards.
```js showLineNumbers
{
type: "rectangle",
id: "oDVXy8D6rom3H1-LLH2-f",
customData: {customId: '162'},
}
```
### isCollaborating
This prop indicates if the app is in `collaboration` mode.
### onChange
Every time component updates, this callback if passed will get triggered and has the below signature.
```js
(excalidrawElements, appState, files) => void;
```
1. `excalidrawElements`: Array of [excalidrawElements](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114) in the scene.
2. `appState`: [AppState](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95) of the scene.
3. `files`: The [BinaryFiles](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L64) which are added to the scene.
Here you can try saving the data to your backend or local storage for example.
### onPointerUpdate
This callback is triggered when mouse pointer is updated.
```js
({ x, y }, button, pointersMap}) => void;
```
1.`{x, y}`: Pointer coordinates
2.`button`: The position of the button. This will be one of `["down", "up"]`
3.`pointersMap`: [`pointers`](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L131) map of the scene
```js
(exportedElements, appState, canvas) => void
```
1. `exportedElements`: An array of [non deleted elements](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L87) which needs to be exported.
2. `appState`: [AppState](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95) of the scene.
3. `canvas`: The `HTMLCanvasElement` of the scene.
### onPointerDown
This prop if passed will be triggered on pointer down events and has the below signature.
<pre>
(activeTool: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L115"> AppState["activeTool"]</a>, pointerDownState: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L424">PointerDownState</a>) => void
</pre>
### onScrollChange
This prop if passed will be triggered when canvas is scrolled and has the below signature.
```ts
(scrollX: number, scrollY: number) => void
```
### onPaste
This callback is triggered if passed when something is pasted into the scene. You can use this callback in case you want to do something additional when the paste event occurs.
<pre>
(data: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/clipboard.ts#L18">ClipboardData</a>, event: ClipboardEvent &#124; null) => boolean
</pre>
This callback must return a `boolean` value or a [promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/Promise) which resolves to a boolean value.
In case you want to prevent the excalidraw paste action you must return `false`, it will stop the native excalidraw clipboard management flow (nothing will be pasted into the scene).
### onLibraryChange
This callback if supplied will get triggered when the library is updated and has the below signature.
<pre>
(items:{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L200">
LibraryItems
</a>
) => void | Promise&lt;any&gt;
</pre>
It is invoked with empty items when user clears the library. You can use this callback when you want to do something additional when library is updated for example persisting it to local storage.
### onLinkOpen
This prop if passed will be triggered when clicked on `link`. To handle the redirect yourself (such as when using your own router for internal links), you must call `event.preventDefault()`.
<pre>
(element: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement</a>,
event: CustomEvent&lt;&#123; nativeEvent: MouseEvent }&gt;) => void
</pre>
Example:
```js showLineNumbers
const history = useHistory();
// open internal links using the app's router, but opens external links in
// a new tab/window
const onLinkOpen: ExcalidrawProps["onLinkOpen"] = useCallback(
(element, event) => {
const link = element.link;
const { nativeEvent } = event.detail;
const isNewTab = nativeEvent.ctrlKey || nativeEvent.metaKey;
const isNewWindow = nativeEvent.shiftKey;
const isInternalLink =
link.startsWith("/") || link.includes(window.location.origin);
if (isInternalLink && !isNewTab && !isNewWindow) {
history.push(link.replace(window.location.origin, ""));
// signal that we're handling the redirect ourselves
event.preventDefault();
}
},
[history],
);
```
### langCode
Determines the `language` of the UI. It should be one of the [available language codes](https://github.com/excalidraw/excalidraw/blob/master/src/i18n.ts#L14). Defaults to `en` (English). We also export default language and supported languages which you can import as shown below.
```js
import { defaultLang, languages } from "@excalidraw/excalidraw";
```
| name | type |
| --- | --- |
| `defaultLang` | `string` |
| `languages` | [`Language[]`](https://github.com/excalidraw/excalidraw/blob/master/src/i18n.ts#L15) |
### viewModeEnabled
This prop indicates whether the app is in `view mode`. When supplied, the value takes precedence over *intialData.appState.viewModeEnabled*, the `view mode` will be fully controlled by the host app, and users won't be able to toggle it from within the app.
### zenModeEnabled
This prop indicates whether the app is in `zen mode`. When supplied, the value takes precedence over *intialData.appState.zenModeEnabled*, the `zen mode` will be fully controlled by the host app, and users won't be able to toggle it from within the app.
### gridModeEnabled
This prop indicates whether the shows the grid. When supplied, the value takes precedence over *intialData.appState.gridModeEnabled*, the grid will be fully controlled by the host app, and users won't be able to toggle it from within the app.
### libraryReturnUrl
If supplied, this URL will be used when user tries to install a library from [libraries.excalidraw.com](https://libraries.excalidraw.com).
Defaults to *window.location.origin + window.location.pathname*. To install the libraries in the same tab from which it was opened, you need to set `window.name` (to any alphanumeric string) — if it's not set it will open in a new tab.
### theme
This prop controls Excalidraw's theme. When supplied, the value takes precedence over *intialData.appState.theme*, the theme will be fully controlled by the host app, and users won't be able to toggle it from within the app unless *UIOptions.canvasActions.toggleTheme* is set to `true`, in which case the `theme` prop will control Excalidraw's default theme with ability to allow theme switching (you must take care of updating the `theme` prop when you detect a change to `appState.theme` from the [onChange](#onchange) callback).
You can use [`THEME`](/docs/@excalidraw/excalidraw/api/utils#theme) to specify the theme.
### name
This prop sets the `name` of the drawing which will be used when exporting the drawing. When supplied, the value takes precedence over *intialData.appState.name*, the `name` will be fully controlled by host app and the users won't be able to edit from within Excalidraw.
### detectScroll
Indicates whether Excalidraw should listen for `scroll` event on the nearest scrollable container in the DOM tree and recompute the coordinates (e.g. to correctly handle the cursor) when the component's position changes. You can disable this when you either know this doesn't affect your app or you want to take care of it yourself (calling the [`refresh()`](#ref) method).
### handleKeyboardGlobally
Indicates whether to bind keyboard events to `document`. Disabled by default, meaning the keyboard events are bound to the Excalidraw component. This allows for multiple Excalidraw components to live on the same page, and ensures that Excalidraw keyboard handling doesn't collide with your app's (or the browser) when the component isn't focused.
Enable this if you want Excalidraw to handle keyboard even if the component isn't focused (e.g. a user is interacting with the navbar, sidebar, or similar).
### autoFocus
This prop indicates whether to `focus` the Excalidraw component on page load. Defaults to false.
### generateIdForFile
Allows you to override `id` generation for files added on canvas (images). By default, an SHA-1 digest of the file is used.
```tsx
(file: File) => string | Promise<string>
```
### validateEmbeddable
```tsx
validateEmbeddable?: boolean | string[] | RegExp | RegExp[] | ((link: string) => boolean | undefined)
```
This is an optional property. By default we support a handful of well-known sites. You may allow additional sites or disallow the default ones by supplying a custom validator. If you pass `true`, all URLs will be allowed. You can also supply a list of hostnames, RegExp (or list of RegExp objects), or a function. If the function returns `undefined`, the built-in validator will be used.
Supplying a list of hostnames (with or without `www.`) is the preferred way to allow a specific list of domains.

View File

@ -0,0 +1,423 @@
# ref
<pre>
<a href="https://reactjs.org/docs/refs-and-the-dom.html#creating-refs">
createRef
</a>{" "}
&#124;{" "}
<a href="https://reactjs.org/docs/hooks-reference.html#useref">useRef</a>{" "}
&#124;{" "}
<a href="https://reactjs.org/docs/refs-and-the-dom.html#callback-refs">
callbackRef
</a>{" "}
&#124; <br />
&#123; current: &#123; readyPromise: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/utils.ts#L460">
resolvablePromise
</a> } }
</pre>
You can pass a `ref` when you want to access some excalidraw APIs. We expose the below APIs:
| API | Signature | Usage |
| --- | --- | --- |
| ready | `boolean` | This is set to true once Excalidraw is rendered |
| [readyPromise](#readypromise) | `function` | This promise will be resolved with the api once excalidraw has rendered. This will be helpful when you want do some action on the host app once this promise resolves. For this to work you will have to pass ref as shown [here](#readypromise) |
| [updateScene](#updatescene) | `function` | updates the scene with the sceneData |
| [updateLibrary](#updatelibrary) | `function` | updates the scene with the sceneData |
| [addFiles](#addfiles) | `function` | add files data to the appState |
| [resetScene](#resetscene) | `function` | Resets the scene. If `resetLoadingState` is passed as true then it will also force set the loading state to false. |
| [getSceneElementsIncludingDeleted](#getsceneelementsincludingdeleted) | `function` | Returns all the elements including the deleted in the scene |
| [getSceneElements](#getsceneelements) | `function` | Returns all the elements excluding the deleted in the scene |
| [getAppState](#getappstate) | `function` | Returns current appState |
| [history](#history) | `object` | This is the history API. `history.clear()` will clear the history |
| [scrollToContent](#scrolltocontent) | `function` | Scroll the nearest element out of the elements supplied to the center. Defaults to the elements on the scene. |
| [refresh](#refresh) | `function` | Updates the offsets for the Excalidraw component so that the coordinates are computed correctly (for example the cursor position). |
| [setToast](#settoast) | `function` | This API can be used to show the toast with custom message. |
| [id](#id) | `string` | Unique ID for the excalidraw component. |
| [getFiles](#getfiles) | `function` | This API can be used to get the files present in the scene. |
| [setActiveTool](#setactivetool) | `function` | This API can be used to set the active tool |
| [setCursor](#setcursor) | `function` | This API can be used to set customise the mouse cursor on the canvas |
| [resetCursor](#resetcursor) | `function` | This API can be used to reset to default mouse cursor on the canvas |
| [toggleMenu](#togglemenu) | `function` | Toggles specific menus on/off |
## readyPromise
<pre>
const excalidrawRef = &#123; current:&#123; readyPromise:
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/utils.ts#L460">
&nbsp;resolvablePromise
</a>
&nbsp;&#125; &#125;
</pre>
Since plain object is passed as a `ref`, the `readyPromise` is resolved as soon as the component is mounted. Most of the time you will not need this unless you have a specific use case where you can't pass the `ref` in the react way and want to do some action on the host when this promise resolves.
```jsx showLineNumbers
const resolvablePromise = () => {
let resolve;
let reject;
const promise = new Promise((_resolve, _reject) => {
resolve = _resolve;
reject = _reject;
});
promise.resolve = resolve;
promise.reject = reject;
return promise;
};
const App = () => {
const excalidrawRef = useMemo(
() => ({
current: {
readyPromise: resolvablePromise(),
},
}),
[],
);
useEffect(() => {
excalidrawRef.current.readyPromise.then((api) => {
console.log("loaded", api);
});
}, [excalidrawRef]);
return (
<div style={{ height: "500px" }}>
<Excalidraw ref={excalidrawRef} />
</div>
);
};
```
## updateScene
<pre>
(scene:{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L339">
sceneData
</a>
) => void
</pre>
You can use this function to update the scene with the sceneData. It accepts the below attributes.
| Name | Type | Description |
| --- | --- | --- |
| `elements` | [`ImportedDataState["elements"]`](https://github.com/excalidraw/excalidraw/blob/master/src/data/types.ts#L38) | The `elements` to be updated in the scene |
| `appState` | [`ImportedDataState["appState"]`](https://github.com/excalidraw/excalidraw/blob/master/src/data/types.ts#L39) | The `appState` to be updated in the scene. |
| `collaborators` | <code>Map<string, <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L37">Collaborator></a></code> | The list of collaborators to be updated in the scene. |
| `commitToHistory` | `boolean` | Implies if the `history (undo/redo)` should be recorded. Defaults to `false`. |
```jsx live
function App() {
const updateScene = () => {
const sceneData = {
elements: [
{
type: "rectangle",
version: 141,
versionNonce: 361174001,
isDeleted: false,
id: "oDVXy8D6rom3H1-LLH2-f",
fillStyle: "hachure",
strokeWidth: 1,
strokeStyle: "solid",
roughness: 1,
opacity: 100,
angle: 0,
x: 100.50390625,
y: 93.67578125,
strokeColor: "#c92a2a",
backgroundColor: "transparent",
width: 186.47265625,
height: 141.9765625,
seed: 1968410350,
groupIds: [],
boundElements: null,
locked: false,
link: null,
updated: 1,
roundness: {
type: 3,
value: 32,
},
},
],
appState: {
viewBackgroundColor: "#edf2ff",
},
};
excalidrawAPI.updateScene(sceneData);
};
const [excalidrawAPI, setExcalidrawAPI] = useState(null);
return (
<div style={{ height: "500px" }}>
<p style={{ fontSize: "16px" }}> Click to update the scene</p>
<button className="custom-button" onClick={updateScene}>
Update Scene
</button>
<Excalidraw ref={(api) => setExcalidrawAPI(api)} />
</div>
);
}
```
### updateLibrary
<pre>
(opts: &#123; <br /> libraryItems:{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L249">
LibraryItemsSource
</a>
;<br /> merge?: boolean; <br /> prompt?: boolean;
<br /> openLibraryMenu?: boolean;
<br /> defaultStatus?: "unpublished" | "published"; <br /> &#125;) => Promise&lt;
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L246">
LibraryItems
</a>
&gt;
</pre>
You can use this function to update the library. It accepts the below attributes.
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `libraryItems` | [LibraryItemsSource](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L249) | \_ | The `libraryItems` to be replaced/merged with current library |
| `merge` | boolean | `false` | Whether to merge with existing library items. |
| `prompt` | boolean | `false` | Whether to prompt user for confirmation. |
| `openLibraryMenu` | boolean | `false` | Keep the library menu open after library is updated. |
| `defaultStatus` | <code>"unpublished" &#124; "published"</code> | `"unpublished"` | Default library item's `status` if not present. |
```tsx live
function App() {
const [excalidrawAPI, setExcalidrawAPI] = useState(null);
useEffect(() => {
if (!excalidrawAPI) {
return;
}
// to open the library sidebar
excalidrawAPI.updateScene({ appState: { openSidebar: "library" } });
}, [excalidrawAPI]);
return (
<div style={{ height: "500px" }}>
<p style={{ fontSize: "16px" }}> Click to update the library items</p>
<button
className="custom-button"
onClick={() => {
const libraryItems = [
{
status: "published",
id: "1",
created: 1,
elements: initialData.libraryItems[1],
},
{
status: "unpublished",
id: "2",
created: 2,
elements: initialData.libraryItems[1],
},
];
excalidrawAPI.updateLibrary({
libraryItems,
openLibraryMenu: true,
});
}}
>
Update Library
</button>
<Excalidraw
ref={(api) => setExcalidrawAPI(api)}
// initial data retrieved from https://github.com/excalidraw/excalidraw/blob/master/dev-docs/src/initialData.js
initialData={{
libraryItems: initialData.libraryItems,
appState: { openSidebar: "library" },
}}
/>
</div>
);
}
```
### addFiles
<pre>
(files:{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L59">
BinaryFileData
</a>
) => void
</pre>
Adds supplied files data to the `appState.files` cache on top of existing files present in the cache.
## resetScene
```tsx
(opts?: { resetLoadingState: boolean }) => void
```
Resets the scene. If `resetLoadingState` is passed as true then it will also force set the loading state to false.
## getSceneElementsIncludingDeleted
<pre>
() =>{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L115">
ExcalidrawElement[]
</a>
</pre>
Returns all the elements including the deleted in the scene.
## getSceneElements
<pre>
() => NonDeleted&#60;
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L115">
ExcalidrawElement
</a>
[]&#62;
</pre>
Returns all the elements excluding the deleted in the scene
## getAppState
<pre>
() =>{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">
AppState
</a>
</pre>
Returns current appState.
## history
```tsx
{
clear: () => void
}
```
This is the history API. history.clear() will clear the history.
## scrollToContent
```tsx
(
target?: ExcalidrawElement | ExcalidrawElement[],
opts?:
| {
fitToContent?: boolean;
animate?: boolean;
duration?: number;
}
| {
fitToViewport?: boolean;
viewportZoomFactor?: number;
animate?: boolean;
duration?: number;
}
) => void
```
Scroll the nearest element out of the elements supplied to the center of the viewport. Defaults to the elements on the scene.
| Attribute | type | default | Description |
| --- | --- | --- | --- |
| target | [ExcalidrawElement](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L115) &#124; [ExcalidrawElement[]](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L115) | All scene elements | The element(s) to scroll to. |
| opts.fitToContent | boolean | false | Whether to fit the elements to viewport by automatically changing zoom as needed. Note that the zoom range is between 10%-100%. |
| opts.fitToViewport | boolean | false | Similar to fitToContent but the zoom range is not limited. If elements are smaller than the viewport, zoom will go above 100%. |
| opts.viewportZoomFactor | number | 0.7 | when fitToViewport=true, how much screen should the content cover, between 0.1 (10%) and 1 (100%) |
| opts.animate | boolean | false | Whether to animate between starting and ending position. Note that for larger scenes the animation may not be smooth due to performance issues. |
| opts.duration | number | 500 | Duration of the animation if `opts.animate` is `true`. |
## refresh
```tsx
() => void
```
Updates the `offsets` for the `Excalidraw` component so that the coordinates are computed correctly (for example the cursor position).
You don't have to call this when the position is changed on page scroll or when the excalidraw container resizes (we handle that ourselves).
For any other cases if the position of excalidraw is updated (example due to scroll on parent container and not page scroll) you should call this API.
## setToast
This API can be used to show the toast with custom message.
```tsx
({ message: string, closable?:boolean,duration?:number
} | null) => void
```
| Attribute | type | Description |
| --- | --- | --- |
| message | string | The message to be shown on the toast. |
| closable | boolean | Indicates whether to show the closable button on toast to dismiss the toast. |
| duration | number | Determines the duration after which the toast should auto dismiss. To prevent autodimiss you can pass `Infinity`. |
To dismiss an existing toast you can simple pass `null`
```js
setToast(null);
```
## id
The unique id of the excalidraw component. This can be used to identify the excalidraw component, for example importing the library items to the excalidraw component from where it was initiated when you have multiple excalidraw components rendered on the same page as shown in [multiple excalidraw demo](https://codesandbox.io/s/multiple-excalidraw-k1xx5).
## getFiles
<pre>
() =>{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L82">
files
</a>
</pre>
This API can be used to get the files present in the scene. It may contain files that aren't referenced by any element, so if you're persisting the files to a storage, you should compare them against stored elements.
## setActiveTool
This API has the below signature. It sets the `tool` passed in param as the active tool.
<pre>
(tool: <br /> &#123; type:{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/shapes.tsx#L15">
SHAPES
</a>
[number]["value"]&#124; "eraser" &#125; &#124;
<br /> &#123; type: "custom"; customType: string &#125;) => void
</pre>
## setCursor
This API can be used to customise the mouse cursor on the canvas and has the below signature. It sets the mouse cursor to the cursor passed in param.
```tsx
(cursor: string) => void
```
## toggleSidebar
```tsx
(opts: { name: string; tab?: string; force?: boolean }) => boolean;
```
This API can be used to toggle sidebar, optionally opening a specific sidebar tab. It returns whether the sidebar was toggled on or off. If the `force` flag passed, it will force the sidebar to be toggled either on/off.
This API is especially useful when you render a custom [`<Sidebar/>`](/docs/@excalidraw/excalidraw/api/children-components/sidebar), and you want to toggle it from your app based on a user action.
## resetCursor
```tsx
() => void
```
This API can be used to reset to default mouse cursor.

View File

@ -0,0 +1,80 @@
# Render Props
## renderTopRightUI
<pre>
(isMobile: boolean, appState:
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">
AppState
</a>) => JSX | null
</pre>
A function returning `JSX` to render `custom` UI in the top right corner of the app.
```jsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw
renderTopRightUI={() => {
return (
<button
style={{
background: "#70b1ec",
border: "none",
color: "#fff",
width: "max-content",
fontWeight: "bold",
}}
onClick={() => window.alert("This is dummy top right UI")}
>
Click me
</button>
);
}}
/>
</div>
);
}
```
## renderCustomStats
A function that can be used to render custom stats (returns JSX) in the `nerd stats` dialog.
![Nerd Stats](../../../../assets/nerd-stats.png)
For example you can use this prop to render the size of the elements in the storage as do in [excalidraw.com](https://excalidraw.com).
```jsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw
renderCustomStats={() => (
<p style={{ color: "#70b1ec", fontWeight: "bold" }}>
Dummy stats will be shown here
</p>
)}
/>
</div>
);
}
```
## renderEmbeddable
<pre>
(element: NonDeleted&lt;ExcalidrawEmbeddableElement&gt;, appState:{" "}
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">
AppState
</a>
) => JSX.Element | null
</pre>
Allows you to replace the renderer for embeddable elements (which renders `<iframe>` elements).
| Parameter | Type | Description |
| --- | --- | --- |
| `element` | `NonDeleted<ExcalidrawEmbeddableElement>` | The embeddable element to be rendered. |
| `appState` | `AppState` | The current state of the UI. |

View File

@ -0,0 +1,72 @@
# UIOptions
This prop can be used to customise UI of Excalidraw. Currently we support customising [`canvasActions`](#canvasactions), [`dockedSidebarBreakpoint`](#dockedsidebarbreakpoint) and [`welcomeScreen`](#welcmescreen).
<pre>
&#123;
<br /> canvasActions?: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L372">
CanvasActions
</a>, <br /> dockedSidebarBreakpoint?: number, <br /> welcomeScreen?: boolean <br />
}
</pre>
## canvasActions
This `prop` controls the visibility of the canvas actions inside the `menu`.
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `changeViewBackgroundColor` | `boolean` | `true` | Indicates whether to show `Background color picker`. |
| `clearCanvas` | `boolean` | `true` | Indicates whether to show `Clear canvas` button. |
| `export` | `false` &#124; [`exportOpts`](#exportopts) | `object` | This prop allows to customize the UI inside the export dialog. By default it shows the `save file to disk`. For more details visit [`exportOpts`](#exportopts). |
| `loadScene` | `boolean` | `true` | Indicates whether to show `Load` button. |
| `saveToActiveFile` | `boolean` | `true` | Indicates whether to show `Save` button to save to current file. |
| `toggleTheme` | `boolean` &#124; `null` | `null` | Indicates whether to show `Theme toggle`. When defined as `boolean`, takes precedence over [`props.theme`](/docs/@excalidraw/excalidraw/api/props#theme) to show `Theme toggle`. |
| `saveAsImage` | `boolean` | `true` | Indicates whether to show `Save as image` button. |
```tsx live
function App() {
const UIOptions = {
canvasActions: {
changeViewBackgroundColor: false,
clearCanvas: false,
loadScene: false,
},
};
return (
<div style={{ height: "500px" }}>
<Excalidraw UIOptions={UIOptions} />
</div>
);
}
```
### exportOpts
The below attributes can be set in `UIOptions.canvasActions.export` to customize the export dialog.
If `UIOptions.canvasActions.export` is `false` the export button will not be rendered.
| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `saveFileToDisk` | `boolean` | `true` | Indicates whether `save file to disk` button should be shown |
| `onExportToBackend` | `object` | \_ | This callback is triggered when the shareable-link button is clicked in the export dialog. The link button will only be shown if this callback is passed. |
| `renderCustomUI` | `object` | \_ | This callback should be supplied if you want to render custom UI in the export dialog. |
## dockedSidebarBreakpoint
This prop indicates at what point should we break to a docked, permanent sidebar. If not passed it defaults to [`MQ_RIGHT_SIDEBAR_MAX_WIDTH_PORTRAIT`](https://github.com/excalidraw/excalidraw/blob/master/src/constants.ts#L161).
If the _width_ of the _excalidraw_ container exceeds _dockedSidebarBreakpoint_, the sidebar will be `dockable` and the button to `dock` the sidebar will be shown
If user choses to `dock` the sidebar, it will push the right part of the UI towards the left, making space for the sidebar as shown below.
![image](https://user-images.githubusercontent.com/11256141/174664866-c698c3fa-197b-43ff-956c-d79852c7b326.png)
```tsx live
function App() {
return (
<div style={{ height: "500px" }}>
<Excalidraw UIOptions={{dockedSidebarBreakpoint: 200}}/>
</div>
);
}
```

View File

@ -0,0 +1,196 @@
---
title: Export Utilities
id: "export"
---
:::info
We're working on much improved export utilities. Stay tuned!
:::
### exportToCanvas
**_Signature_**
<pre>
exportToCanvas(&#123;<br/>&nbsp;
elements,<br/>&nbsp;
appState<br/>&nbsp;
getDimensions,<br/>&nbsp;
files,<br/>&nbsp;
exportPadding?: number;<br/>
&#125;: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/packages/utils.ts#L21">ExportOpts</a>
</pre>
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `elements` | [Excalidraw Element []](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114) | | The elements to be exported to canvas. |
| `appState` | [AppState](https://github.com/excalidraw/excalidraw/blob/master/src/packages/utils.ts#L23) | [Default App State](https://github.com/excalidraw/excalidraw/blob/master/src/appState.ts#L17) | The app state of the scene. |
| [`getDimensions`](#getdimensions) | `function` | _ | A function which returns the `width`, `height`, and optionally `scale` (defaults to `1`), with which canvas is to be exported. |
| `maxWidthOrHeight` | `number` | _ | The maximum `width` or `height` of the exported image. If provided, `getDimensions` is ignored. |
| `files` | [BinaryFiles](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L59) | _ | The files added to the scene. |
| `exportPadding` | `number` | `10` | The `padding` to be added on canvas. |
#### getDimensions
```tsx
(width: number, height: number) => {
width: number,
height: number,
scale?: number
}
```
A function which returns the `width`, `height`, and optionally `scale` (defaults to `1`), with which canvas is to be exported.
**How to use**
```js
import { exportToCanvas } from "@excalidraw/excalidraw";
```
This function returns the canvas with the exported elements, appState and dimensions.
```jsx live
function App() {
const [canvasUrl, setCanvasUrl] = useState("");
const [excalidrawAPI, setExcalidrawAPI] = useState(null);
return (
<>
<button
className="custom-button"
onClick={async () => {
if (!excalidrawAPI) {
return
}
const elements = excalidrawAPI.getSceneElements();
if (!elements || !elements.length) {
return
}
const canvas = await exportToCanvas({
elements,
appState: {
...initialData.appState,
exportWithDarkMode: false,
},
files: excalidrawAPI.getFiles(),
getDimensions: () => { return {width: 350, height: 350}}
});
const ctx = canvas.getContext("2d");
ctx.font = "30px Virgil";
ctx.strokeText("My custom text", 50, 60);
setCanvasUrl(canvas.toDataURL());
}}
>
Export to Canvas
</button>
<div className="export export-canvas">
<img src={canvasUrl} alt="" />
</div>
<div style={{ height: "400px" }}>
<Excalidraw ref={(api) => setExcalidrawAPI(api)}
/>
</div>
</>
)
}
```
### exportToBlob
**_Signature_**
<pre>
exportToBlob(<br/>&nbsp;
opts: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/packages/utils.ts#L14">ExportOpts</a> & &#123;<br/>&nbsp;
mimeType?: string,<br/>&nbsp;
quality?: number,<br/>&nbsp;
exportPadding?: number;<br/>
})
</pre>
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `opts` | `object` | _ | This param is passed to `exportToCanvas`. You can refer to [`exportToCanvas`](#exporttocanvas) |
| `mimeType` | `string` | `image/png` | Indicates the image format. |
| `quality` | `number` | `0.92` | A value between `0` and `1` indicating the [image quality](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob#parameters). Applies only to `image/jpeg`/`image/webp` MIME types. |
| `exportPadding` | `number` | `10` | The padding to be added on canvas. |
**How to use**
```js
import { exportToBlob } from "@excalidraw/excalidraw";
```
Returns a promise which resolves with a [blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob). It internally uses [canvas.ToBlob](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob).
### exportToSvg
**_Signature_**
<pre>
exportToSvg(&#123;<br/>&nbsp;
elements:&nbsp;
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">
ExcalidrawElement[]
</a>,<br/>&nbsp;
appState:
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95"> AppState
</a>,<br/>&nbsp;
exportPadding: number,<br/>&nbsp;
metadata: string,<br/>&nbsp;
files:&nbsp;
<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L59">
BinaryFiles
</a>,<br/>
&#125;);
</pre>
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| elements | [Excalidraw Element []](https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114) | | The elements to exported as `svg `|
| appState | [AppState](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95) | [defaultAppState](https://github.com/excalidraw/excalidraw/blob/master/src/appState.ts#L11) | The `appState` of the scene |
| exportPadding | number | 10 | The `padding` to be added on canvas |
| files | [BinaryFiles](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L64) | undefined | The `files` added to the scene. |
This function returns a promise which resolves to `svg` of the exported drawing.
### exportToClipboard
**_Signature_**
<pre>
exportToClipboard(<br/>&nbsp;
opts: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/packages/utils.ts#L21">ExportOpts</a> & &#123;<br/>&nbsp;
mimeType?: string,<br/>&nbsp;
quality?: number;<br/>&nbsp;
type: 'png' | 'svg' |'json'<br/>
})
</pre>
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `opts` | | | This param is same as the params passed to `exportToCanvas`. You can refer to [`exportToCanvas`](#exporttocanvas). |
| `mimeType` | `string` | `image/png` | Indicates the image format, this will be used when exporting as `png`. |
| `quality` | `number` | `0.92` | A value between `0` and `1` indicating the [image quality](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob#parameters). Applies only to `image/jpeg` / `image/webp` MIME types. This will be used when exporting as `png`. |
| `type` | 'png' &#124; 'svg' &#124; 'json' | _ | This determines the format to which the scene data should be `exported`. |
**How to use**
```js
import { exportToClipboard } from "@excalidraw/excalidraw";
```
Copies the scene data in the specified format (determined by `type`) to clipboard.
### Additional attributes of appState for export\* APIs
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `exportBackground` | `boolean` | `true` | Indicates whether `background` should be exported |
| `viewBackgroundColor` | `string` | `#fff` | The default background color |
| `exportWithDarkMode` | `boolean` | `false` | Indicates whether to export with `dark` mode |
| `exportEmbedScene` | `boolean` | `false` | Indicates whether scene data should be embedded in `svg/png`. This will increase the image size. |

View File

@ -0,0 +1,108 @@
---
title: Restore Utilities
id: "restore"
---
### restoreAppState
**_Signature_**
<pre>
restoreAppState(appState: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/data/types.ts#L34">ImportedDataState["appState"]</a>,<br/>&nbsp; localAppState: Partial&lt;<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">AppState</a>> | null): <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">AppState</a>
</pre>
**_How to use_**
```js
import { restoreAppState } from "@excalidraw/excalidraw";
```
This function will make sure all the `keys` have appropriate `values` in [appState](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95) and if any key is missing, it will be set to its `default` value.
When `localAppState` is supplied, it's used in place of values that are missing (`undefined`) in `appState` instead of the defaults.
Use this as a way to not override user's defaults if you persist them.
You can pass `null` / `undefined` if not applicable.
### restoreElements
**_Signature_**
<pre>
restoreElements(
elements: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ImportedDataState["elements"]</a>,<br/>&nbsp;
localElements: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement[]</a> | null | undefined): <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement[]</a>,<br/>&nbsp;
opts: &#123; refreshDimensions?: boolean, repairBindings?: boolean }<br/>
)
</pre>
| Prop | Type | Description |
| ---- | ---- | ---- |
| `elements` | <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ImportedDataState["elements"]</a> | The `elements` to be restored |
| [`localElements`](#localelements) | <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement[]</a> &#124; null &#124; undefined | When `localElements` are supplied, they are used to ensure that existing restored elements reuse `version` (and increment it), and regenerate `versionNonce`. |
| [`opts`](#opts) | `Object` | The extra optional parameter to configure restored elements
#### localElements
When `localElements` are supplied, they are used to ensure that existing restored elements reuse `version` (and increment it), and regenerate `versionNonce`.
Use this when you `import` elements which may already be present in the scene to ensure that you do not disregard the newly imported elements if you're using element version to detect the update
#### opts
The extra optional parameter to configure restored elements. It has the following attributes
| Prop | Type | Description|
| --- | --- | ------|
| `refreshDimensions` | `boolean` | Indicates whether we should also `recalculate` text element dimensions. Since this is a potentially costly operation, you may want to disable it if you restore elements in tight loops, such as during collaboration. |
| `repairBindings` |`boolean` | Indicates whether the `bindings` for the elements should be repaired. This is to make sure there are no containers with non existent bound text element id and no bound text elements with non existent container id. |
**_How to use_**
```js
import { restoreElements } from "@excalidraw/excalidraw";
```
This function will make sure all properties of element is correctly set and if any attribute is missing, it will be set to its default value.
Parameter `refreshDimensions` indicates whether we should also `recalculate` text element dimensions. Defaults to `false`. Since this is a potentially costly operation, you may want to disable it if you restore elements in tight loops, such as during collaboration.
### restore
**_Signature_**
<pre>
restore(
data: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/data/types.ts#L34">ImportedDataState</a>,<br/>&nbsp;
localAppState: Partial&lt;<a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">AppState</a>> | null | undefined,<br/>&nbsp;
localElements: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement[]</a> | null | undefined<br/>): <a href="https://github.com/excalidraw/excalidraw/blob/master/src/data/types.ts#L4">DataState</a><br/>
opts: &#123; refreshDimensions?: boolean, repairBindings?: boolean }<br/>
)
</pre>
See [`restoreAppState()`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#restoreAppState) about `localAppState`, and [`restoreElements()`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#restoreElements) about `localElements`.
**_How to use_**
```js
import { restore } from "@excalidraw/excalidraw";
```
This function makes sure elements and state is set to appropriate values and set to default value if not present. It is a combination of [restoreElements](#restoreelements) and [restoreAppState](#restoreappstate).
### restoreLibraryItems
**_Signature_**
<pre>
restoreLibraryItems(libraryItems: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/data/types.ts#L34">ImportedDataState["libraryItems"]</a>,<br/>&nbsp;
defaultStatus: "published" | "unpublished")
</pre>
**_How to use_**
```js
import { restoreLibraryItems } from "@excalidraw/excalidraw";
restoreLibraryItems(libraryItems, "unpublished");
```
This function normalizes library items elements, adding missing values when needed.

View File

@ -0,0 +1,385 @@
---
slug: /@excalidraw/excalidraw/api/utils
---
# Utils
These are pure Javascript functions exported from the @excalidraw/excalidraw [`@excalidraw/excalidraw`](https://npmjs.com/@excalidraw/excalidraw). If you want to export your drawings in different formats eg `png`, `svg` and more you can check out [Export Utilities](/docs/@excalidraw/excalidraw/API/utils/export). If you want to restore your drawings you can check out [Restore Utilities](/docs/@excalidraw/excalidraw/API/utils/restore).
### serializeAsJSON
Takes the scene elements and state and returns a JSON string. `Deleted` elements as well as most properties from `AppState` are removed from the resulting JSON. (see [`serializeAsJSON()`](https://github.com/excalidraw/excalidraw/blob/master/src/data/json.ts#L42) source for details).
If you want to overwrite the `source` field in the `JSON` string, you can set `window.EXCALIDRAW_EXPORT_SOURCE` to the desired value.
**_Signature_**
<pre>
serializeAsJSON(&#123;<br/>&nbsp;
elements: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement[]</a>,<br/>&nbsp;
appState: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">AppState</a>,<br/>
}): string
</pre>
**How to use**
```js
import { serializeAsJSON } from "@excalidraw/excalidraw";
```
### serializeLibraryAsJSON
Takes the `library` items and returns a `JSON` string.
If you want to overwrite the source field in the JSON string, you can set `window.EXCALIDRAW_EXPORT_SOURCE` to the desired value.
**_Signature_**
<pre>
serializeLibraryAsJSON(
libraryItems: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L200">LibraryItems[]</a>)
</pre>
**How to use**
```js
import { serializeLibraryAsJSON } from "@excalidraw/excalidraw";
```
#### isInvisiblySmallElement
Returns `true` if element is invisibly small (e.g. width & height are zero).
**_Signature_**
<pre>
isInvisiblySmallElement(element: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement</a>): boolean
</pre>
**How to use**
```js
import { isInvisiblySmallElement } from "@excalidraw/excalidraw";
```
### loadFromBlob
This function loads the scene data from the blob (or file). If you pass `localAppState`, `localAppState` value will be preferred over the `appState` derived from `blob`. Throws if blob doesn't contain valid scene data.
**How to use**
```js
import { loadFromBlob } from "@excalidraw/excalidraw";
const scene = await loadFromBlob(file, null, null);
excalidrawAPI.updateScene(scene);
```
**Signature**
<pre>
loadFromBlob(<br/>&nbsp;
blob: <a href="https://developer.mozilla.org/en-US/docs/Web/API/Blob">Blob</a>,<br/>&nbsp;
localAppState: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">AppState</a> | null,<br/>&nbsp;
localElements: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement[]</a> | null,<br/>&nbsp;
fileHandle?: FileSystemHandle | null <br/>
) => Promise&lt;<a href="https://github.com/excalidraw/excalidraw/blob/master/src/data/restore.ts#L61">RestoredDataState</a>>
</pre>
### loadLibraryFromBlob
This function loads the library from the blob. Additonally takes `defaultStatus` param which sets the default status for library item if not present, defaults to `unpublished`.
**How to use **
```js
import { loadLibraryFromBlob } from "@excalidraw/excalidraw";
```
**_Signature_**
<pre>
loadLibraryFromBlob(blob: <a href="https://developer.mozilla.org/en-US/docs/Web/API/Blob">Blob</a>, defaultStatus: "published" | "unpublished")
</pre>
### loadSceneOrLibraryFromBlob
This function loads either scene or library data from the supplied blob. If the blob contains scene data, and you pass `localAppState`, `localAppState` value will be preferred over the `appState` derived from `blob`.
:::caution
Throws if blob doesn't contain valid `scene` data or `library` data.
:::
**How to use**
```js showLineNumbers
import { loadSceneOrLibraryFromBlob, MIME_TYPES } from "@excalidraw/excalidraw";
const contents = await loadSceneOrLibraryFromBlob(file, null, null);
if (contents.type === MIME_TYPES.excalidraw) {
excalidrawAPI.updateScene(contents.data);
} else if (contents.type === MIME_TYPES.excalidrawlib) {
excalidrawAPI.updateLibrary(contents.data);
}
```
**_Signature_**
<pre>
loadSceneOrLibraryFromBlob(<br/>&nbsp;
blob: <a href="https://developer.mozilla.org/en-US/docs/Web/API/Blob">Blob</a>,
localAppState: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">AppState</a> | null,<br/>&nbsp;
localElements: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement[]</a> | null,<br/>&nbsp;
fileHandle?: FileSystemHandle | null<br/>
) => Promise&lt;&#123; type: string, data: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/data/restore.ts#L53">RestoredDataState</a> | <a href="https://github.com/excalidraw/excalidraw/blob/master/src/data/types.ts#L33">ImportedLibraryState</a>}>
</pre>
### getFreeDrawSvgPath
This function returns the `free draw` svg path for the element.
**How to use**
```js
import { getFreeDrawSvgPath } from "@excalidraw/excalidraw";
```
**Signature**
<pre>
getFreeDrawSvgPath(element: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L182">ExcalidrawFreeDrawElement</a>)
</pre>
### isLinearElement
This function returns true if the element is `linear` type (`arrow` |`line`) else returns `false`.
**How to use**
```js
import { isLinearElement } from "@excalidraw/excalidraw";
```
**Signature**
```tsx
isLinearElement(elementType?: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L80">ExcalidrawElement</a>): boolean
```
### getNonDeletedElements
This function returns an array of `deleted` elements.
**How to use**
```js
import { getNonDeletedElements } from "@excalidraw/excalidraw";
```
**Signature**
<pre>
getNonDeletedElements(elements:<a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114"> readonly ExcalidrawElement[]</a>): as readonly <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L125">NonDeletedExcalidrawElement[]</a>
</pre>
### mergeLibraryItems
This function merges two `LibraryItems` arrays, where unique items from `otherItems` are sorted first in the returned array.
```js
import { mergeLibraryItems } from "@excalidraw/excalidraw";
```
**_Signature_**
<pre>
mergeLibraryItems(localItems: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L250">LibraryItems</a>,<br/>&nbsp;
otherItems: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L200">LibraryItems</a>) => <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L250">LibraryItems</a>
</pre>
### parseLibraryTokensFromUrl
Parses library parameters from URL if present (expects the `#addLibrary` hash key), and returns an object with the `libraryUrl` and `idToken`. Returns `null` if `#addLibrary` hash key not found.
**How to use**
```js
import { parseLibraryTokensFromUrl } from "@excalidraw/excalidraw";
```
**Signature**
```tsx
parseLibraryTokensFromUrl(): {
libraryUrl: string;
idToken: string | null;
} | null
```
### useHandleLibrary
A hook that automatically imports library from url if `#addLibrary` hash key exists on initial load, or when it changes during the editing session (e.g. when a user installs a new library), and handles initial library load if `getInitialLibraryItems` getter is supplied.
**How to use**
```js
import { useHandleLibrary } from "@excalidraw/excalidraw";
export const App = () => {
// ...
useHandleLibrary({ excalidrawAPI });
};
```
**Signature**
<pre>
useHandleLibrary(opts: &#123;<br/>&nbsp;
excalidrawAPI: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L494">ExcalidrawAPI</a>,<br/>&nbsp;
getInitialLibraryItems?: () => <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L253">LibraryItemsSource</a><br/>
});
</pre>
In the future, we will be adding support for handling `library` persistence to `browser storage` (or elsewhere).
### getSceneVersion
This function returns the current `scene` version.
**_Signature_**
<pre>
getSceneVersion(elements: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/element/types.ts#L114">ExcalidrawElement[]</a>)
</pre>
**How to use**
```js
import { getSceneVersion } from "@excalidraw/excalidraw";
```
### sceneCoordsToViewportCoords
This function returns equivalent `viewport` coords for the provided `scene` coords in params.
```js
import { sceneCoordsToViewportCoords } from "@excalidraw/excalidraw";
```
**_Signature_**
<pre>
sceneCoordsToViewportCoords(&#123; sceneX: number, sceneY: number },<br/>&nbsp;
appState: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">AppState</a><br/>): &#123; x: number, y: number }
</pre>
### viewportCoordsToSceneCoords
This function returns equivalent `scene` coords for the provided `viewport` coords in params.
```js
import { viewportCoordsToSceneCoords } from "@excalidraw/excalidraw";
```
**_Signature_**
<pre>
viewportCoordsToSceneCoords(&#123; clientX: number, clientY: number },<br/>&nbsp;
appState: <a href="https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L95">AppState</a><br/>): &#123;x: number, y: number}
</pre>
### useDevice
This hook can be used to check the type of device which is being used. It can only be used inside the `children` of `Excalidraw` component.
Open the `main menu` in the below example to view the footer.
```jsx live noInline
const MobileFooter = ({}) => {
const device = useDevice();
if (device.isMobile) {
return (
<Footer>
<button
className="custom-footer"
style={{ marginLeft: "20px", height: "2rem" }}
onClick={() => alert("This is custom footer in mobile menu")}
>
custom footer
</button>
</Footer>
);
}
return null;
};
const App = () => (
<div style={{ height: "400px" }}>
<Excalidraw>
<MainMenu>
<MainMenu.Item> Item1 </MainMenu.Item>
<MainMenu.Item> Item 2 </MainMenu.Item>
<MobileFooter />
</MainMenu>
</Excalidraw>
</div>
);
// Need to render when code is span across multiple components
// in Live Code blocks editor
render(<App />);
```
The `device` has the following `attributes`
| Name | Type | Description |
| --- | --- | --- |
| `isSmScreen` | `boolean` | Set to `true` when the device small screen is small (Width < `640px` ) |
| `isMobile` | `boolean` | Set to `true` when the device is `mobile` |
| `isTouchScreen` | `boolean` | Set to `true` for `touch` devices |
| `canDeviceFitSidebar` | `boolean` | Implies whether there is enough space to fit the `sidebar` |
### i18n
To help with localization, we export the following.
| name | type |
| --- | --- |
| `defaultLang` | `string` |
| `languages` | [`Language[]`](https://github.com/excalidraw/excalidraw/blob/master/src/i18n.ts#L15) |
| `useI18n` | [`() => { langCode, t }`](https://github.com/excalidraw/excalidraw/blob/master/src/i18n.ts#L15) |
```js
import { defaultLang, languages, useI18n } from "@excalidraw/excalidraw";
```
#### defaultLang
Default language code, `en`.
#### languages
List of supported language codes. You can pass any of these to `Excalidraw`'s [`langCode` prop](/docs/@excalidraw/excalidraw/api/props/#langcode).
#### useI18n
A hook that returns the current language code and translation helper function. You can use this to translate strings in the components you render as children of `<Excalidraw>`.
```jsx live
function App() {
const { t } = useI18n();
return (
<div style={{ height: "500px" }}>
<Excalidraw>
<button
style={{ position: "absolute", zIndex: 10, height: "2rem" }}
onClick={() => window.alert(t("labels.madeWithExcalidraw"))}
>
{t("buttons.confirm")}
</button>
</Excalidraw>
</div>
);
}
```

View File

@ -0,0 +1,49 @@
# Customizing Styles
Excalidraw is using CSS variables to style certain components. To override them, you should set your own on the `.excalidraw` and `.excalidraw.theme--dark` (for dark mode variables) selectors.
Make sure the selector has higher specificity, e.g. by prefixing it with your app's selector:
```css
.your-app .excalidraw {
--color-primary: red;
}
.your-app .excalidraw.theme--dark {
--color-primary: pink;
}
```
Most notably, you can customize the primary colors, by overriding these variables:
- `--color-primary`
- `--color-primary-darker`
- `--color-primary-darkest`
- `--color-primary-light`
- `--color-primary-contrast-offset` — a slightly darker (in light mode), or lighter (in dark mode) `--color-primary` color to fix contrast issues (see [Chubb illusion](https://en.wikipedia.org/wiki/Chubb_illusion)). It will fall back to `--color-primary` if not present.
For a complete list of variables, check [theme.scss](https://github.com/excalidraw/excalidraw/blob/master/src/css/theme.scss), though most of them will not make sense to override.
```css showLineNumbers
.custom-styles .excalidraw {
--color-primary: #fcc6d9;
--color-primary-darker: #f783ac;
--color-primary-darkest: #e64980;
--color-primary-light: #f2a9c4;
}
.custom-styles .excalidraw.theme--dark {
--color-primary: #d494aa;
--color-primary-darker: #d64c7e;
--color-primary-darkest: #e86e99;
--color-primary-light: #dcbec9;
}
```
```tsx live
function App() {
return (
<div style={{ height: "500px" }} className="custom-styles">
<Excalidraw />
</div>
);
}
```

View File

@ -0,0 +1,59 @@
---
pagination_prev: "@excalidraw/excalidraw/installation"
---
# Development
This page relates to developing the `@excalidraw/excalidraw` package itself.
## Example app
To start the example app using the `@excalidraw/excalidraw` package, follow the below steps:
1. Install the dependencies
```bash
cd src/packages/excalidraw && yarn
```
2. Start the example app
```bash
yarn start
```
[http://localhost:3001](http://localhost:3001) will open in your default browser.
The example is same as the [codesandbox example](https://ehlz3.csb.app/)
## Releasing
### Create a test release
You can create a test release by posting the below comment in your pull request:
```bash
@excalibot trigger release
```
Once the version is released `@excalibot` will post a comment with the release version.
### Creating a production release
To release the next stable version follow the below steps:
```bash
yarn prerelease version
```
You need to pass the `version` for which you want to create the release. This will make the changes needed before making the release like updating `package.json`, `changelog` and more.
The next step is to run the `release` script:
```bash
yarn release
```
This will publish the package.
Right now there are two steps to create a production release but once this works fine these scripts will be combined and more automation will be done.

View File

@ -0,0 +1,37 @@
# FAQ
### Does this package support collaboration ?
No, Excalidraw package doesn't come with collaboration built in, since the implementation is specific to each host app. We expose APIs which you can use to communicate with Excalidraw which you can use to implement it. You can check our own implementation [here](https://github.com/excalidraw/excalidraw/blob/master/src/excalidraw-app/index.tsx). Here is a [detailed answer](https://github.com/excalidraw/excalidraw/discussions/3879#discussioncomment-1110524) on how you can achieve the same.
### Turning off Aggressive Anti-Fingerprinting in Brave browser
When *Aggressive Anti-Fingerprinting* is turned on, the `measureText` API breaks which in turn breaks the Text Elements in your drawings. Here is more [info](https://github.com/excalidraw/excalidraw/pull/6336) on the same.
We strongly recommend turning it off. You can follow the steps below on how to do so.
1. Open [excalidraw.com](https://excalidraw.com) in Brave and click on the **Shield** button
![Shield button](../../assets/brave-shield.png)
<div style={{width:'30rem'}}>
2. Once opened, look for **Aggressively Block Fingerprinting**
![Aggresive block fingerprinting](../../assets/aggressive-block-fingerprint.png)
3. Switch to **Block Fingerprinting**
![Block filtering](../../assets/block-fingerprint.png)
4. Thats all. All text elements should be fixed now 🎉
</div>
If disabling this setting doesn't fix the display of text elements, please consider opening an [issue](https://github.com/excalidraw/excalidraw/issues/new) on our GitHub, or message us on [Discord](https://discord.gg/UexuTaE).
## Need help?
Check out the existing [Q&A](https://github.com/excalidraw/excalidraw/discussions?discussions_q=label%3Apackage%3Aexcalidraw). If you have any queries or need help, ask us [here](https://github.com/excalidraw/excalidraw/discussions?discussions_q=label%3Apackage%3Aexcalidraw).

View File

@ -0,0 +1,43 @@
# Installation
**Excalidraw** is published to npm as a component you can directly embed in your projects.
Using `npm`:
```bash
npm install react react-dom @excalidraw/excalidraw
```
or `yarn`:
```bash
yarn add react react-dom @excalidraw/excalidraw
```
:::tip
**If you don't want to wait for the next stable release and try out the unreleased changes you can use `@excalidraw/excalidraw@next`.**
:::
### Static assets
Excalidraw depends on assets such as localization files (if you opt to use them), fonts, and others.
By default these assets are loaded from a public CDN [`https://unpkg.com/@excalidraw/excalidraw/dist/`](https://unpkg.com/@excalidraw/excalidraw/dist), so you don't need to do anything on your end.
However, if you want to host these files yourself, you can find them in your `node_modules/@excalidraw/excalidraw/dist` directory, in folders `excalidraw-assets` (for production) and `excalidraw-assets-dev` (for development).
Copy these folders to your static assets directory, and add a `window.EXCALIDRAW_ASSET_PATH` variable in your `index.html` or `index.js` entry file pointing to your public assets path (relative). For example, if you serve your assets from the root of your hostname, you would do:
```js
window.EXCALIDRAW_ASSET_PATH = "/";
```
### Dimensions of Excalidraw
Excalidraw takes _100%_ of `width` and `height` of the containing block so make sure the container in which you render Excalidraw has non zero dimensions.
### Demo
[Try here](https://codesandbox.io/s/excalidraw-ehlz3).

View File

@ -0,0 +1,131 @@
# Integration
## Module bundler
If you are using a module bundler (for instance, Webpack), you can import it as an ES6 module as shown below
```js
import { Excalidraw } from "@excalidraw/excalidraw";
```
:::info
Throughout the documentation we use live, editable Excalidraw examples like the one shown below.
While we aim for the examples to closely reflect what you'd get if you rendered it yourself, we actually initialize it with some props behind the scenes.
For example, we're passing a `theme` prop to it based on the current color theme of the docs you're just reading.
:::
```jsx live
function App() {
return (
<>
<h1 style={{ textAlign: "center" }}>Excalidraw Example</h1>
<div style={{ height: "500px" }}>
<Excalidraw />
</div>
</>
);
}
```
### Rendering Excalidraw only on client
Since _Excalidraw_ doesn't support server side rendering, you should render the component once the host is `mounted`.
The following worfklow shows one way how to render Excalidraw on Next.js. We'll add more detailed and alternative Next.js examples, soon.
```jsx showLineNumbers
import { useState, useEffect } from "react";
export default function App() {
const [Excalidraw, setExcalidraw] = useState(null);
useEffect(() => {
import("@excalidraw/excalidraw").then((comp) => setExcalidraw(comp.Excalidraw));
}, []);
return <>{Excalidraw && <Excalidraw />}</>;
}
```
The `types` are available at `@excalidraw/excalidraw/types`, you can view [example for typescript](https://codesandbox.io/s/excalidraw-types-9h2dm)
## Browser
To use it in a browser directly:
For development use :point_down:
```js
<script
type="text/javascript"
src="https://unpkg.com/@excalidraw/excalidraw/dist/excalidraw.development.js"
></script>
```
For production use :point_down:
```js
<script
type="text/javascript"
src="https://unpkg.com/@excalidraw/excalidraw/dist/excalidraw.production.min.js"
></script>
```
You will need to make sure `react`, `react-dom` is available as shown in the below example. For prod please use the production versions of `react`, `react-dom`.
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
<Tabs>
<TabItem value="html" label="html">
```html
<!DOCTYPE html>
<html>
<head>
<title>Excalidraw in browser</title>
<meta charset="UTF-8" />
<script src="https://unpkg.com/react@18.2.0/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18.2.0/umd/react-dom.development.js"></script>
<script
type="text/javascript"
src="https://unpkg.com/@excalidraw/excalidraw/dist/excalidraw.development.js"
></script>
</head>
<body>
<div class="container">
<h1>Excalidraw Embed Example</h1>
<div id="app"></div>
</div>
<script type="text/javascript" src="src/index.js"></script>
</body>
</html>
```
</TabItem>
<TabItem value="js" label="Javascript">
```js showLineNumbers
const App = () => {
return React.createElement(
React.Fragment,
null,
React.createElement(
"div",
{
style: { height: "500px" },
},
React.createElement(ExcalidrawLib.Excalidraw),
),
);
};
const excalidrawWrapper = document.getElementById("app");
const root = ReactDOM.createRoot(excalidrawWrapper);
root.render(React.createElement(App));
```
</TabItem>
</Tabs>

View File

@ -0,0 +1,155 @@
# API
At the moment the mermaid-to-excalidraw works in two steps. First, you call `parseMermaidToExcalidraw(mermaidSyntax)` on the mermaid diagram definition string, which resolves with elements in a skeleton format — a simplified excalidraw JSON format (docs coming soon). You then pass them to `convertToExcalidrawElements(elements)` to get the fully qualified excalidraw elements you can render in the editor.
The need for these two steps is due to the [@excalidraw/excalidraw](/docs/@excalidraw/excalidraw/installation) being a **UMD** build so we currently cannot import the `convertToExcalidrawElements()` util alone, until we support a tree-shakeable **ESM** build.
## parseMermaidToExcalidraw
This API receives the mermaid syntax as the input, and resolves to skeleton Excalidraw elements. You will need to call `convertToExcalidraw` API to convert them to fully qualified elements that you can render in Excalidraw.
** Example **
```ts
import { parseMermaidToExcalidraw } from "@excalidraw/mermaid-to-excalidraw";
import { convertToExcalidrawElements} from "@excalidraw/excalidraw"
try {
const { elements, files } = await parseMermaid(mermaidSyntax: string, {
fontSize: number,
});
const excalidrawElements = convertToExcalidrawElements(elements);
// Render elements and files on Excalidraw
} catch (e) {
// Parse error, displaying error message to users
}
```
## Supported Diagram Types
Currently only [flowcharts](https://mermaid.js.org/syntax/flowchart.html) are supported. Oother diagram types will be rendered as an image in Excalidraw.
### Flowchart
#### Excalidraw Regular Shapes
**Rectangles**, **Circle**, **Diamond**, and **Arrows** are fully supported in Excalidraw
```
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[Car]
```
<img src="https://github.com/excalidraw/excalidraw/assets/11256141/c8ea84fc-e9fb-4652-9a12-154136d1a798" width="250" height="200"/>
```
flowchart LR
id1((Hello from Circle))
```
<img src="https://github.com/excalidraw/excalidraw/assets/11256141/6202a8b9-8aa7-451e-9478-4d8d75c0f2fa" width="250" height="200"/>
#### Subgraphs
Subgraphs are grouped diagrams hence they are also supported in Excalidraw
```
flowchart TB
c1-->a2
subgraph one
a1-->a2
end
subgraph two
b1-->b2
end
subgraph three
c1-->c2
end
```
<img src="https://github.com/excalidraw/excalidraw/assets/11256141/098bce52-8f93-437c-9a06-c6972e27c70a" width="350" height="200"/>
#### Unsupported shapes fallback to Rectangle
**Subroutine**, **Cylindrical**, **Asymmetric**, **Hexagon**, **Parallelogram**, **Trapezoid** are not supported in Excalidraw hence they fallback to the closest shape **Rectangle**
```
flowchart LR
id1[[Subroutine fallback to Rectangle]]
id2[(Cylindrical fallback to Rectangle)]
id3>Asymmetric fallback to Rectangle]
id4{{Hexagon fallback to Rectangle}}
id5[/Parallelogram fallback to Rectangle /]
id6[/Trapezoid fallback to Rectangle\]
```
The above shapes are not supported in Excalidraw hence they fallback to Rectangle
<img src="https://github.com/excalidraw/excalidraw/assets/11256141/cb269473-16c5-4c35-bd7a-d631d8cc5b47" width="350" height="200"/>
#### Markdown fallback to Regular text
Since we don't support wysiwyg text editor yet, hence [Markdown Strings](https://mermaid.js.org/syntax/flowchart.html#markdown-strings) will fallback to regular text.
```
flowchart LR
A("`Hello **World**`") --> B("`Whats **up** ?`")
```
<img src="https://github.com/excalidraw/excalidraw/assets/11256141/107bd428-9ab9-42d4-ba12-b1e29c8db478" width="250" height="200"/>
#### Basic FontAwesome fallback to text
The [FontAwesome](https://mermaid.js.org/syntax/flowchart.html#basic-support-for-fontawesome) icons aren't support so they won't be rendered in Excalidraw
```
flowchart TD
B["fab:fa-twitter for peace"]
B-->C[fa:fa-ban forbidden]
B-->E(A fa:fa-camera-retro perhaps?)
```
<img src="https://github.com/excalidraw/excalidraw/assets/11256141/7a693863-c3f9-42ff-b325-4b3f8303c7af" width="250" height="200"/>
#### Cross Arrow head fallback to Bar Arrow head
```
flowchart LR
Start x--x Stop
```
<img src="https://github.com/excalidraw/excalidraw/assets/11256141/217dd1ad-7f4e-4c80-8c1c-03647b42d821" width="250" height="200"/>
## Unsupported Diagram Types
Currently only [flowcharts](https://mermaid.js.org/syntax/flowchart.html) are supported. All other diagram types will be rendered as an image in Excalidraw.
```
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
```
<img src="https://github.com/excalidraw/excalidraw/assets/11256141/c1d3fdb3-32ef-4bf3-a38a-02ac3d7d2cb9" width="300" height="200"/>
```
gitGraph
commit
commit
branch develop
checkout develop
commit
commit
checkout main
merge develop
commit
commit
```
<img src="https://github.com/excalidraw/excalidraw/assets/11256141/e5dcec0b-d570-4eb4-b981-412a996aa96c" width="400" height="300"/>

View File

@ -0,0 +1,7 @@
# Codebase
The Codebase is divided into 2 Sections
* [How Parser Works under the hood](/docs/@excalidraw/mermaid-to-excalidraw/codebase/parser) - If you are interested in understanding and deep diving into inner workings of the Parser, then make sure to checkout this section.
* [Adding a new diagram type](/docs/@excalidraw/mermaid-to-excalidraw/codebase/new-diagram-type) - If you want to help us make the mermaid to Excalidraw Parser more powerful, you will find all information in this section to do so.

View File

@ -0,0 +1,54 @@
# Adding a new Diagram Type
To add a new diagram type to the parser you can follow the below steps :point_down:
All the code for the parser resides in [`src`](https://github.com/excalidraw/mermaid-to-excalidraw/tree/master/src) folder and for playground resides in [`playground`](https://github.com/excalidraw/mermaid-to-excalidraw/tree/master/playground) folder.
lets run the playground server in local :point_down:
```bash
yarn start
```
This will start the playground server in port `1234` and open it in browser so you start playing with the playground.
## Update Supported Diagram Types
First step is to add the new diagram type in [`SUPPORTED_DIAGRAM_TYPES`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/constants.ts#L2).
Once this is done the new diagram type won't be rendered as an image but start throwing error since we don't support parsing the data yet.
## Writing the Diagram Parser
Once the diagram type is added in previous step. Next step is to write the parser to parse the mermaid diagram.
For this create a file named `{{diagramType}}.ts` in [`src/parser`](https://github.com/excalidraw/mermaid-to-excalidraw/tree/master/src/parser) and write a function `parseMermaid{{diagramType}}Diagram` similar to how we [`parseMermaidFlowChartDiagram`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/parser/flowchart.ts#L256) for parsing flowchart diagram.
The main aim of the parser is :point_down:
1. Determine how elements are connected in the diagram and thus finding arrow and text bindings.
For this you might have to dig in to the parser `diagram.parser.yy` and which attributes to parse for the new diagram.
2. Determine the position and dimensions of each element, for this would be using the `svg`
Once the parser is ready, lets start using it.
Add the diagram type in switch case in [`parseMermaid`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/parseMermaid.ts#L97) and call the parser for the same.
## Writing the Excalidraw Skeleton Convertor
With the completion of previous step, we have all the data, now we need to transform it so to [ExcalidrawElementSkeleton](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L133) format.
Similar to [`FlowChartToExcalidrawSkeletonConverter`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/converter/types/flowchart.ts#L24), you have to write the `{{diagramType}}ToExcalidrawSkeletonConverter` which parses the data received in previous step and returns the [ExcalidrawElementSkeleton](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L133).
Thats it, you have added the new diagram type 🥳, now lets test it out!
## Updating the Playground
1. Create a file named `{{diagramType}}.ts` in [`playround/testcases/`](https://github.com/excalidraw/mermaid-to-excalidraw/tree/master/playground/testcases). For reference you can check [`flowchart.ts`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/playground/testcases/flowchart.ts).
2. Incase the new diagram type added is present in [`unsupported.ts`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/playground/testcases/unsupported.ts) then remove it from there.
3. Verify if the test cases are running fine in playground.

View File

@ -0,0 +1,177 @@
# Flowchart Parser
As mentioned in the previous section, we use [getDiagramFromText](https://github.com/mermaid-js/mermaid/blob/00d06c7282a701849793680c1e97da1cfdfcce62/packages/mermaid/src/Diagram.ts#L80) to parse the full defination and get the [Diagram](https://github.com/mermaid-js/mermaid/blob/00d06c7282a701849793680c1e97da1cfdfcce62/packages/mermaid/src/Diagram.ts#L15) json from it.
In this section we will be diving into how the [flowchart parser](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/parser/flowchart.ts#L256) works behind the scenes.
![image](https://github.com/excalidraw/excalidraw/assets/11256141/2a097bbb-64bf-49d6-bf7f-21172bdb538d)
We use `diagram.parser.yy` attribute to parse the data. If you want to know more about how the `diagram.parse.yy` attribute looks like, you can check it [here](https://github.com/mermaid-js/mermaid/blob/00d06c7282a701849793680c1e97da1cfdfcce62/packages/mermaid/src/diagrams/flowchart/flowDb.js#L768), however for scope of flowchart we are using **3** APIs from this parser to compute `vertices`, `edges` and `clusters` as we need these data to transform to [ExcalidrawElementSkeleton](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L133C13-L133C38).
For computing `vertices` and `edge`s lets consider the below svg generated by mermaid
![image](https://github.com/excalidraw/excalidraw/assets/11256141/d7013305-0b90-4fa0-a66e-b4f4604ad0b2)
## Computing the vertices
We use `getVertices` API from `diagram.parse.yy` to get the vertices for a given flowchart.
Considering the same example this is the response from the API
```js
{
"start": {
"id": "start",
"labelType": "text",
"domId": "flowchart-start-1414",
"styles": [],
"classes": [],
"text": "start",
"props": {}
},
"stop": {
"id": "stop",
"labelType": "text",
"domId": "flowchart-stop-1415",
"styles": [],
"classes": [],
"text": "stop",
"props": {}
}
}
```
The dimensions and position is missing in this response and we need that to transform to [ExcalidrawElementSkeleton](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L133C13-L133C38), for this we have our own parser [`parseVertex`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/parseMermaid.ts#L178) which takes the above response and uses the `svg` together to compute position, dimensions and cleans up the response.
The final output from `parseVertex` looks like :point_down:
```js
{
"start": {
"id": "start",
"labelType": "text",
"text": "start",
"x": 0,
"y": 0,
"width": 67.796875,
"height": 44,
"containerStyle": {},
"labelStyle": {}
},
"stop": {
"id": "stop",
"labelType": "text",
"text": "stop",
"x": 117.796875,
"y": 0,
"width": 62.3828125,
"height": 44,
"containerStyle": {},
"labelStyle": {}
}
}
```
## Computing the edges
The lines and arrows are considered as `edges` in mermaid as shown in the above diagram.
We use `getEdges` API from `diagram.parse.yy` to get the edges for a given flowchart.
Considering the same example this is the response from the API
```js
[
{
"start": "start",
"end": "stop",
"type": "arrow_point",
"text": "",
"labelType": "text",
"stroke": "normal",
"length": 1
}
]
```
Similarly here the dimensions and position is missing and we compute that from the svg. The [`parseEdge`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/parseMermaid.ts#L245) takes the above response along with `svg` and computes the position, dimensions and cleans up the response.
The final output from `parseEdge` looks like :point_down:
```js
[
{
"start": "start",
"end": "stop",
"type": "arrow_point",
"text": "",
"labelType": "text",
"stroke": "normal",
"startX": 67.797,
"startY": 22,
"endX": 117.797,
"endY": 22,
"reflectionPoints": [
{
"x": 67.797,
"y": 22
},
{
"x": 117.797,
"y": 22
}
]
}
]
```
## Computing the Subgraphs
`Subgraphs` is collection of elements grouped together. The Subgraphs map to `grouping` elements in Excalidraw.
Lets consider the below example :point_down:
![image](https://github.com/excalidraw/excalidraw/assets/11256141/5243ce4c-beaa-43d2-812a-0577b0a574d7)
We use `getSubgraphs` API to get the subgraph data for a given flowchart.
Considering the same example this is the response from the API
```js
[
{
"id": "one",
"nodes": [
"flowchart-a2-1399",
"flowchart-a1-1400"
],
"title": "one",
"classes": [],
"labelType": "text"
}
]
```
For position and dimensions we use the svg to compute. The [`parseSubgraph`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/parseMermaid.ts#L139) takes the above response along with `svg` and computes the position, dimensions and cleans up the response.
```js
[
{
"id": "one",
"nodes": [
"flowchart-a2-1399",
"flowchart-a1-1400"
],
"title": "one",
"labelType": "text",
"nodeIds": [
"a2",
"a1"
],
"x": 75.4921875,
"y": 0,
"width": 121.25,
"height": 188,
"text": "one"
}
]
```

View File

@ -0,0 +1,65 @@
# How the Parser works under the hood ?
[This](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/index.ts) is the entry point of the library.
`parseMermaidToExcalidraw` function is the only function exposed which receives mermaid syntax as the input, parses the mermaid syntax and resolves to Excalidraw Skeleton.
Lets look at the high level overview at how the parse works :point_down:
![image](https://github.com/excalidraw/excalidraw/assets/11256141/8e060de7-b867-44ad-864b-0c1b24466b67)
Lets dive deeper into individual section now to understand better.
## Parsing Mermaid diagram
One of the dependencies of the library is [`mermaid`](https://www.npmjs.com/package/mermaid) library.
We need the mermaid diagram in some extractable format so we can parse it to Excalidraw Elements.
Parsing is broken into two steps
1. [`Rendering Mermaid to Svg`](/docs/@excalidraw/mermaid-to-excalidraw/codebase/parser#rendering-mermaid-to-svg) - This helps in determining the position and dimensions of each element in the diagram
2. [`Parsing the mermaid syntax`](/docs/@excalidraw/mermaid-to-excalidraw/codebase/parser#parsing-the-mermaid-syntax) - We also need to know how elements are connected which isn't possible with svg alone hence we also parse the mermaid syntax which helps in determining the connections and bindings between elements in the diagram.
### Rendering Mermaid to Svg
![image](https://github.com/excalidraw/excalidraw/assets/11256141/2c24cf7b-f096-4c12-88db-55520de27558)
The [`mermaid`](https://www.npmjs.com/package/mermaid) library provides the API `mermaid.render` API which gives the output of the diagram in `svg`.
If the diagram isn't supported, this svg is converted to `dataURL` and can be rendered as an image in Excalidraw.
### Parsing the mermaid syntax
For this we first need to process the options along with mermaid defination for diagram provided by the user.
[`processMermaidTextWithOptions`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/parseMermaid.ts#L13) takes the mermaid defination and options and returns the full defination including the mermaid [directives ](https://mermaid.js.org/config/directives.html).
![image](https://github.com/excalidraw/excalidraw/assets/11256141/3a4825d8-9704-468c-a02f-7e507f4d5b7a)
Next we use mermaid api [getDiagramFromText](https://github.com/mermaid-js/mermaid/blob/00d06c7282a701849793680c1e97da1cfdfcce62/packages/mermaid/src/Diagram.ts#L80) to parse the full defination and get the [Diagram](https://github.com/mermaid-js/mermaid/blob/00d06c7282a701849793680c1e97da1cfdfcce62/packages/mermaid/src/Diagram.ts#L15) json from it.
```js
const diagram = await mermaid.mermaidAPI.getDiagramFromText(fullDefinition);
```
Next we write our own parser to parse this diagram.
### Parsing the Diagram
For each diagram type, we need a parser as the result of every diagram would differ and dependinng on the data we have to write the parser. Since currently we support flowchart, so here is the [`parseMermaidFlowChartDiagram`](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/parser/flowchart.ts#L256) to parse the flowchart diagram.
If you want to understand how flowchart parser works, you can navigate to [Flowchart Parser](http://localhost:3003/docs/@excalidraw/mermaid-to-excalidraw/codebase/parser/flowchart).
## Converting to ExcalidrawElementSkeleton
Now we have all the data, we just need to transform it to [ExcalidrawElementSkeleton](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L133C13-L133C38) API so it can be rendered in Excalidraw.
For this we have `converters` which takes the parsed mermaid data and gives back the Excalidraw Skeleton.
For Unsupported types, we have already mentioned above that we convert it to `dataURL` and return the ExcalidrawImageSkeleton.
For supported types, currently only flowchart, we have [flowchartConverter](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/src/converter/types/flowchart.ts#L24) which parses the data and converts to [ExcalidrawElementSkeleton](https://github.com/excalidraw/excalidraw/blob/master/src/data/transform.ts#L133C13-L133C38).
![image](https://github.com/excalidraw/excalidraw/assets/11256141/00226e9d-043d-4a08-989a-3ad9d2a574f1)

View File

@ -0,0 +1,60 @@
# Development
This page relates to developing the `@excalidraw/mermaid-to-excalidraw` package itself.
## Setting up in Local
To set up the library in local, follow the below steps 👇🏼
### Clone the Repository
Go to [@excalidraw/mermaid-to-excalidraw](https://github.com/excalidraw/mermaid-to-excalidraw) and clone the repository to your local.
```bash
git clone git@github.com:excalidraw/mermaid-to-excalidraw.git
```
### Install the dependencies
Using `npm`
```bash
npm install @excalidraw/mermaid-to-excalidraw
```
Using `yarn`
```bash
yarn add @excalidraw/mermaid-to-excalidraw
```
### Run the playground server
```bash
yarn start
```
This will start the playground server in port `1234` and you start playing with the playground.
## Creating a test release
We will soon simplify creating release via commenting on GitHub PR similar till then you can create a release by following the below steps
1. Create the build
```bash
yarn build
```
This will create the dist folder which we need to publish next.
2. Publish the library
Update the package name and version in [package.json](https://github.com/excalidraw/mermaid-to-excalidraw/blob/master/package.json) and run the below command to publish it
```bash
yarn publish
```
And thats all your test release is successfully created 🎉

View File

@ -0,0 +1,42 @@
# Installation
`@excalidraw/mermaid-to-excalidraw` is published to npm. This library is used in [excalidraw](https://excalidraw.com) to transform mermaid syntax to Excalidraw diagrams.
Using `npm`
```bash
npm install @excalidraw/mermaid-to-excalidraw
```
Using `yarn`
```bash
yarn add @excalidraw/mermaid-to-excalidraw
```
## Usage
Once the library is installed, its ready to use.
```js
import { parseMermaidToExcalidraw } from "@excalidraw/mermaid-to-excalidraw";
import { convertToExcalidrawElements} from "@excalidraw/excalidraw"
try {
const { elements, files } = await parseMermaid(diagramDefinition, {
fontSize: DEFAULT_FONT_SIZE,
});
// currently the elements returned from the parser are in a "skeleton" format
// which we need to convert to fully qualified excalidraw elements first
const excalidrawElements = convertToExcalidrawElements(elements);
// Render elements and files on Excalidraw
} catch (e) {
// Error handling
}
```
## Playground
Try it out [here](https://mermaid-to-excalidraw.vercel.app)

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -0,0 +1,75 @@
# JSON Schema
The Excalidraw data format uses plaintext JSON.
## Excalidraw files
When saving an Excalidraw scene locally to a file, the JSON file (`.excalidraw`) is using the below format.
### Attributes
| Attribute | Description | Value |
| --- | --- | --- |
| `type` | The type of the Excalidraw schema | `"excalidraw"` |
| `version` | The version of the Excalidraw schema | number |
| `source` | The source URL of the Excalidraw application | `"https://excalidraw.com"` |
| `elements` | An array of objects representing excalidraw elements on canvas | Array containing excalidraw element objects |
| `appState` | Additional application state/configuration | Object containing application state properties |
| `files` | Data for excalidraw `image` elements | Object containing image data |
### JSON Schema example
```json
{
// schema information
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
// elements on canvas
"elements": [
// example element
{
"id": "pologsyG-tAraPgiN9xP9b",
"type": "rectangle",
"x": 928,
"y": 319,
"width": 134,
"height": 90
/* ...other element properties */
}
/* other elements */
],
// editor state (canvas config, preferences, ...)
"appState": {
"gridSize": null,
"viewBackgroundColor": "#ffffff"
},
// files data for "image" elements, using format `{ [fileId]: fileData }`
"files": {
// example of an image data object
"3cebd7720911620a3938ce77243696149da03861": {
"mimeType": "image/png",
"id": "3cebd7720911620a3938c.77243626149da03861",
"dataURL": "data:image/png;base64,iVBORWOKGgoAAAANSUhEUgA=",
"created": 1690295874454,
"lastRetrieved": 1690295874454
}
/* ...other image data objects */
}
}
```
## Excalidraw clipboard format
When copying selected excalidraw elements to clipboard, the JSON schema is similar to `.excalidraw` format, except it differs in attributes.
### Attributes
| Attribute | Description | Example Value |
| --- | --- | --- |
| `type` | The type of the Excalidraw document. | "excalidraw/clipboard" |
| `elements` | An array of objects representing excalidraw elements on canvas. | Array containing excalidraw element objects (see example below) |
| `files` | Data for excalidraw `image` elements. | Object containing image data |

View File

@ -1,6 +0,0 @@
---
sidebar_position: 1
title: Overview
---
In development. For now, refer to [excalidraw Readme](https://github.com/excalidraw/excalidraw/blob/master/README.md).

View File

@ -1,8 +0,0 @@
---
sidebar_position: 1
title: Introduction
---
Want to integrate Excalidraw into your app? Head over to the [package docs](/docs/package/overview).
If you're looking into the Excalidraw codebase itself, start [here](/docs/codebase/overview).

View File

@ -0,0 +1,81 @@
# Contributing
Pull requests are welcome. For major changes, please [open an issue](https://github.com/excalidraw/excalidraw/issues/new) first to discuss what you would like to change.
We have a [roadmap](https://github.com/orgs/excalidraw/projects/3) which we strongly recommend to go through and check if something interests you.
For new contributors we would recommend to start with *Easy* tasks.
In case you want to pick up something from the roadmap, comment on that issue and one of the project maintainers will assign it to you, post which you can discuss in the issue and start working on it.
## Setup
### Option 1 - Manual
1. Fork and clone the repo
1. Run `yarn` to install dependencies
1. Create a branch for your PR with `git checkout -b your-branch-name`
> To keep `master` branch pointing to remote repository and make pull requests from branches on your fork. To do this, run:
>
> ```bash
> git remote add upstream https://github.com/excalidraw/excalidraw.git
> git fetch upstream
> git branch --set-upstream-to=upstream/master master
> ```
### Option 2 - CodeSandbox
1. Go to https://codesandbox.io/p/github/excalidraw/excalidraw
1. Connect your GitHub account
1. Go to Git tab on left side
1. Tap on `Fork Sandbox`
1. Write your code
1. Commit and PR automatically
## Pull Request Guidelines
Don't worry if you get any of the below wrong, or if you don't know how. We'll gladly help out.
### Title
Make sure the title starts with a semantic prefix:
- **feat**: A new feature
- **fix**: A bug fix
- **docs**: Documentation only changes
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **perf**: A code change that improves performance
- **test**: Adding missing tests or correcting existing tests
- **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
- **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
- **chore**: Other changes that don't modify src or test files
- **revert**: Reverts a previous commit
### Changelog
Add a brief description of your pull request to the changelog located here: [changelog](https://github.com/excalidraw/excalidraw/blob/master/CHANGELOG.md)
Notes:
- Make sure to prepend to the section corresponding with the semantic prefix you selected in the title
- Link to your pull request - this will require updating the CHANGELOG _after_ creating the pull request
### Testing
Once you submit your pull request it will automatically be tested. Be sure to check the results of the test and fix any issues that arise.
It's also a good idea to consider if your change should include additional tests. This is highly recommended for new features or bug-fixes. For example, it's good practice to create a test for each bug you fix which ensures that we don't regress the code in the future.
Finally - always manually test your changes using the convenient staging environment deployed for each pull request. As much as local development attempts to replicate production, there can still be subtle differences in behavior. For larger features consider testing your change in multiple browsers as well.
:::note
Some checks, such as the `lint` and `test`, require approval from the maintainers to run.
They will appear as `Expected — Waiting for status to be reported` in the PR checks when they are waiting for approval.
:::
## Translating
To translate Excalidraw into other languages, please visit [our Crowdin page](https://crowdin.com/project/excalidraw). To add a new language, [open an issue](https://github.com/excalidraw/excalidraw/issues/new) so we can get things set up on our end first.
Translations will be available on the app if they exceed a certain threshold of completion (currently **85%**).

View File

@ -0,0 +1,102 @@
# Development
## Code Sandbox
- Go to https://codesandbox.io/p/github/excalidraw/excalidraw
- You may need to sign in with GitHub and reload the page
- You can start coding instantly, and even send PRs from there!
## Local Installation
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
### Requirements
- [Node.js](https://nodejs.org/en/)
- [Yarn](https://yarnpkg.com/getting-started/install) (v1 or v2.4.2+)
- [Git](https://git-scm.com/downloads)
### Clone the repo
```bash
git clone https://github.com/excalidraw/excalidraw.git
```
### Install the dependencies
```bash
yarn
```
### Start the server
```bash
yarn start
```
Now you can open [http://localhost:3000](http://localhost:3000) and start coding in your favorite code editor.
## Collaboration
For collaboration, you will need to set up [collab server](https://github.com/excalidraw/excalidraw-room) in local.
## Commands
### Install the dependencies
```bash
yarn
```
### Run the project
```bash
yarn start
```
### Reformat all files with Prettier
```bash
yarn fix
```
### Run tests
```bash
yarn test
```
### Update test snapshots
```bash
yarn test:update
```
### Test for formatting with Prettier
```bash
yarn test:code
```
### Docker Compose
You can use docker-compose to work on Excalidraw locally if you don't want to setup a Node.js env.
```bash
docker-compose up --build -d
```
## Self-hosting
We publish a Docker image with the Excalidraw client at [excalidraw/excalidraw](https://hub.docker.com/r/excalidraw/excalidraw). You can use it to self-host your own client under your own domain, on Kubernetes, AWS ECS, etc.
```bash
docker build -t excalidraw/excalidraw .
docker run --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest
```
The Docker image is free of analytics and other tracking libraries.
**At the moment, self-hosting your own instance doesn't support sharing or collaboration features.**
We are working towards providing a full-fledged solution for self-hosting your own Excalidraw.

View File

@ -0,0 +1,17 @@
---
title: Introduction
slug: ../
---
## Try now
Go to [excalidraw.com](https://excalidraw.com) to start sketching.
## How are these docs structured
These docs are focused on developers, and structured in the following way:
- [Introduction](/docs/) — development setup and introduction.
- [@excalidraw/excalidraw](/docs/@excalidraw/excalidraw/installation) — docs for the npm package to help you integrate Excalidraw into your own app.
- Editor — IN PROGRESS. Docs describing the internals of the Excalidraw editor to help in contributing to the codebase.
- [@excalidraw/mermaid-to-excalidraw](/docs/@excalidraw/mermaid-to-excalidraw/installation) - Docs for the mermaid to excalidraw parser

View File

@ -1,6 +0,0 @@
---
sidebar_position: 1
title: Overview
---
In development. For now, refer to [excalidraw package readme](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md).

View File

@ -1,19 +1,16 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
const lightCodeTheme = require("prism-react-renderer/themes/github");
const darkCodeTheme = require("prism-react-renderer/themes/dracula");
/** @type {import('@docusaurus/types').Config} */
const config = {
title: "Excalidraw developer docs",
tagline:
"For Excalidraw contributors or those integrating the Excalidraw editor",
url: "https://docs.excalidraw.com.com",
url: "https://docs.excalidraw.com",
baseUrl: "/",
onBrokenLinks: "throw",
onBrokenMarkdownLinks: "warn",
favicon: "img/favicon.ico",
favicon: "img/favicon.png",
organizationName: "Excalidraw", // Usually your GitHub org/user name.
projectName: "excalidraw", // Usually your repo name.
@ -33,10 +30,16 @@ const config = {
docs: {
sidebarPath: require.resolve("./sidebars.js"),
// Please change this to your repo.
editUrl: "https://github.com/excalidraw/docs/tree/master/",
editUrl:
"https://github.com/excalidraw/excalidraw/tree/master/dev-docs/",
showLastUpdateAuthor: true,
showLastUpdateTime: true,
},
theme: {
customCss: require.resolve("./src/css/custom.css"),
customCss: [
require.resolve("./src/css/custom.scss"),
require.resolve("../src/packages/excalidraw/example/App.scss"),
],
},
}),
],
@ -45,18 +48,20 @@ const config = {
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
colorMode: {
respectPrefersColorScheme: true,
},
navbar: {
title: "Excalidraw Docs",
title: "Excalidraw",
logo: {
alt: "Excalidraw Logo",
src: "img/logo.svg",
},
items: [
{
type: "doc",
docId: "get-started",
to: "/docs",
position: "left",
label: "Get started",
label: "Docs",
},
{
to: "https://blog.excalidraw.com",
@ -78,7 +83,7 @@ const config = {
items: [
{
label: "Get Started",
to: "/docs/get-started",
to: "/docs",
},
],
},
@ -93,6 +98,10 @@ const config = {
label: "Twitter",
href: "https://twitter.com/excalidraw",
},
{
label: "Linkedin",
href: "https://www.linkedin.com/company/excalidraw",
},
],
},
{
@ -109,13 +118,28 @@ const config = {
],
},
],
copyright: `Made with ❤️ Built with Docusaurus`,
copyright: `Copyright © 2023 Excalidraw community. Built with Docusaurus ❤️`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
theme: require("prism-react-renderer/themes/dracula"),
},
image: "img/og-image-2.png",
docs: {
sidebar: {
hideable: true,
},
},
tableOfContents: {
maxHeadingLevel: 4,
},
algolia: {
appId: "8FEAOD28DI",
apiKey: "4b07cca33ff2d2919bc95ff98f148e9e",
indexName: "excalidraw",
},
}),
themes: ["@docusaurus/theme-live-codeblock"],
plugins: ["docusaurus-plugin-sass"],
};
module.exports = config;

View File

@ -15,13 +15,17 @@
"typecheck": "tsc"
},
"dependencies": {
"@docusaurus/core": "2.0.0-rc.1",
"@docusaurus/preset-classic": "2.0.0-rc.1",
"@docusaurus/core": "2.2.0",
"@docusaurus/preset-classic": "2.2.0",
"@docusaurus/theme-live-codeblock": "2.2.0",
"@excalidraw/excalidraw": "0.15.2-eb020d0",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"docusaurus-plugin-sass": "0.2.3",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
"react-dom": "^17.0.2"
"react-dom": "^17.0.2",
"sass": "1.57.1"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.0.0-rc.1",

View File

@ -13,19 +13,117 @@
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
const sidebars = {
// By default, Docusaurus generates a sidebar from the docs folder structure
tutorialSidebar: [{ type: "autogenerated", dirName: "." }],
// But you can create a sidebar manually
/*
tutorialSidebar: [
docs: [
{
type: 'category',
label: 'Tutorial',
items: ['hello'],
type: "category",
label: "Introduction",
link: {
type: "doc",
id: "introduction/get-started",
},
items: ["introduction/development", "introduction/contributing"],
},
{ type: "category", label: "Codebase", items: ["codebase/json-schema"] },
{
type: "category",
label: "@excalidraw/excalidraw",
collapsed: false,
items: [
"@excalidraw/excalidraw/installation",
"@excalidraw/excalidraw/integration",
"@excalidraw/excalidraw/customizing-styles",
{
type: "category",
label: "API",
link: {
type: "doc",
id: "@excalidraw/excalidraw/api/api-intro",
},
items: [
{
type: "category",
label: "Props",
link: {
type: "doc",
id: "@excalidraw/excalidraw/api/props/props",
},
items: [
"@excalidraw/excalidraw/api/props/initialdata",
"@excalidraw/excalidraw/api/props/ref",
"@excalidraw/excalidraw/api/props/render-props",
"@excalidraw/excalidraw/api/props/ui-options",
],
},
{
type: "category",
label: "Children Components",
link: {
type: "doc",
id: "@excalidraw/excalidraw/api/children-components/children-components-intro",
},
items: [
"@excalidraw/excalidraw/api/children-components/main-menu",
"@excalidraw/excalidraw/api/children-components/welcome-screen",
"@excalidraw/excalidraw/api/children-components/sidebar",
"@excalidraw/excalidraw/api/children-components/footer",
"@excalidraw/excalidraw/api/children-components/live-collaboration-trigger",
],
},
{
type: "category",
label: "Utils",
link: {
type: "doc",
id: "@excalidraw/excalidraw/api/utils/utils-intro",
},
items: [
"@excalidraw/excalidraw/api/utils/export",
"@excalidraw/excalidraw/api/utils/restore",
],
},
"@excalidraw/excalidraw/api/constants",
"@excalidraw/excalidraw/api/excalidraw-element-skeleton",
],
},
"@excalidraw/excalidraw/faq",
"@excalidraw/excalidraw/development",
],
},
{
type: "category",
label: "@excalidraw/mermaid-to-excalidraw",
link: {
type: "doc",
id: "@excalidraw/mermaid-to-excalidraw/installation",
},
items: [
"@excalidraw/mermaid-to-excalidraw/api",
"@excalidraw/mermaid-to-excalidraw/development",
{
type: "category",
label: "Codebase",
link: {
type: "doc",
id: "@excalidraw/mermaid-to-excalidraw/codebase/codebase",
},
items: [
{
type: "category",
label: "How Parser works under the hood?",
link: {
type: "doc",
id: "@excalidraw/mermaid-to-excalidraw/codebase/parser/parser",
},
items: [
"@excalidraw/mermaid-to-excalidraw/codebase/parser/flowchart",
],
},
"@excalidraw/mermaid-to-excalidraw/codebase/new-diagram-type",
],
},
],
},
],
*/
};
module.exports = sidebars;

View File

@ -0,0 +1,15 @@
import React from "react";
export default function Highlight({ children }) {
return (
<span
style={{
backgroundColor: "#7874e8",
borderRadius: "2px",
color: "#fff",
padding: "0.2rem",
}}
>
{children}
</span>
);
}

View File

@ -14,11 +14,13 @@
--ifm-color-primary-lighter: #5b57d1;
--ifm-color-primary-lightest: #5b57d1;
--ifm-code-font-size: 95%;
scrollbar-gutter: stable;
}
/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme="dark"] {
--ifm-color-primary: #5650f0;
--ifm-color-primary: #8784e3;
--ifm-color-primary-dark: #4b46d8;
--ifm-color-primary-darker: #4b46d8;
--ifm-color-primary-darkest: #3e39be;
@ -41,3 +43,59 @@
[data-theme="dark"] .navbar__logo {
filter: invert(93%) hue-rotate(180deg);
}
pre a {
color: #5dccff;
&:hover {
color: #8fd3f3;
}
}
.custom-button {
height: 40px;
max-width: 200px;
margin: 10px 0;
padding: 5px;
background: #70b1ec;
color: white;
font-weight: bold;
border: none;
}
.custom-styles .excalidraw {
--color-primary: #fcc6d9;
--color-primary-darker: #f783ac;
--color-primary-darkest: #e64980;
--color-primary-light: #f2a9c4;
}
.custom-styles .excalidraw.theme--dark {
--color-primary: #d494aa;
--color-primary-darker: #d64c7e;
--color-primary-darkest: #e86e99;
--color-primary-light: #dcbec9;
}
/* The global css conflicts with Excal css hence overriding */
.excalidraw .context-menu-item__shortcut {
background-color: transparent;
border: none;
box-shadow: none;
padding: 0;
}
.excalidraw .Stats table td,
.excalidraw .Stats table th,
.excalidraw .Stats table tr {
border: none;
background: none;
padding: 0;
}
.excalidraw .Stats .close {
padding: 0;
}
.excalidraw .Stats table {
display: table;
}

1230
dev-docs/src/initialData.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,42 +0,0 @@
import React from "react";
import clsx from "clsx";
import Layout from "@theme/Layout";
import Link from "@docusaurus/Link";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import styles from "./index.module.css";
import HomepageFeatures from "@site/src/components/Homepage";
function HomepageHeader() {
const { siteConfig } = useDocusaurusContext();
return (
<header className={clsx("hero hero--primary", styles.heroBanner)}>
<div className="container">
<h1 className="hero__title">{siteConfig.title}</h1>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link
className="button button--secondary button--lg"
to="/docs/get-started"
>
Get started
</Link>
</div>
</div>
</header>
);
}
export default function Home() {
const { siteConfig } = useDocusaurusContext();
return (
<Layout
title={`Hello from ${siteConfig.title}`}
description="Description will go into a meta tag in <head />"
>
<HomepageHeader />
<main>
<HomepageFeatures />
</main>
</Layout>
);
}

View File

@ -14,10 +14,7 @@ function HomepageHeader() {
<h1 className="hero__title">{siteConfig.title}</h1>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link
className="button button--secondary button--lg"
to="/docs/get-started"
>
<Link className="button button--secondary button--lg" to="/docs">
Get started
</Link>
</div>
@ -27,12 +24,8 @@ function HomepageHeader() {
}
export default function Home() {
const { siteConfig } = useDocusaurusContext();
return (
<Layout
title={`Hello from ${siteConfig.title}`}
description="Description will go into a meta tag in <head />"
>
<Layout description="For Excalidraw contributors or those integrating the Excalidraw editor">
<HomepageHeader />
<main>
<HomepageFeatures />

View File

@ -0,0 +1,11 @@
// Import the original mapper
import MDXComponents from "@theme-original/MDXComponents";
import Highlight from "@site/src/components/Highlight";
export default {
// Re-use the default mapping
...MDXComponents,
// Map the "highlight" tag to our <Highlight /> component!
// `Highlight` will receive all props that were passed to `highlight` in MDX
highlight: Highlight,
};

View File

@ -0,0 +1,31 @@
import React from "react";
import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
import initialData from "@site/src/initialData";
import { useColorMode } from "@docusaurus/theme-common";
let ExcalidrawComp = {};
if (ExecutionEnvironment.canUseDOM) {
ExcalidrawComp = require("@excalidraw/excalidraw");
}
const Excalidraw = React.forwardRef((props, ref) => {
const { colorMode } = useColorMode();
return <ExcalidrawComp.Excalidraw theme={colorMode} {...props} ref={ref} />;
});
// Add react-live imports you need here
const ExcalidrawScope = {
React,
...React,
Excalidraw,
Footer: ExcalidrawComp.Footer,
useDevice: ExcalidrawComp.useDevice,
MainMenu: ExcalidrawComp.MainMenu,
WelcomeScreen: ExcalidrawComp.WelcomeScreen,
LiveCollaborationTrigger: ExcalidrawComp.LiveCollaborationTrigger,
Sidebar: ExcalidrawComp.Sidebar,
exportToCanvas: ExcalidrawComp.exportToCanvas,
initialData,
useI18n: ExcalidrawComp.useI18n,
convertToExcalidrawElements: ExcalidrawComp.convertToExcalidrawElements,
};
export default ExcalidrawScope;

View File

Before

Width:  |  Height:  |  Size: 197 KiB

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,4 +1,7 @@
<svg viewBox="0 0 80 180" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path d="M22.197 150.382c-4.179-3.359-10.618-9.051-15.702-13.946l-4.01-3.813.734-5.009c.396-2.732 1.13-8.083 1.582-11.839.508-3.757 1.017-7.286 1.186-7.798.226-.683 0-1.025-.621-1.025-1.073 0-1.13.285 1.807-9.107a617.602 617.602 0 0 1 2.203-7.229c.113-.398.565-.569 1.073-.398.508.227.791.683.621 1.081-.169.455.113.911.565 1.082.621.227.565.683-.395 2.333-1.525 2.562-5.422 24.419-5.648 31.477-.17 5.009-.17 5.066 1.92 7.912 2.033 2.789 6.721 7.001 13.951 12.351 2.033 1.537 4.067 3.245 4.631 3.814.848 1.024 1.243.74 8.36-6.887 4.123-4.383 8.698-8.88 10.166-10.018l2.711-2.049-2.089-4.44c-1.13-2.391-5.705-11.612-10.223-20.377-9.433-18.442-7.513-16.678-18.47-16.849l-7.117-.056-2.372-2.733c-2.485-2.903-2.824-3.984-1.638-5.805.452-.627.791-1.651.791-2.277 0-1.025.395-1.196 2.655-1.309 1.412-.057 2.711-.228 2.88-.399.17-.171.396-3.7.565-7.855l.226-7.513-3.784-8.197C2.485 39.844 0 33.583 0 31.533c0-1.081.226-1.992.452-1.992.565 0 .565.057 23.553 48.382 10.675 22.426 20.785 43.544 22.479 47.016 1.695 3.472 3.22 6.659 3.333 7.115.113.512-3.785 4.439-9.998 9.961-5.591 5.008-10.505 9.562-10.957 10.074-1.299 1.594-3.219 1.082-6.665-1.707Zm1.921-65.458c-2.599-5.066-2.712-5.123-9.828-5.464-6.27-.342-6.383-.285-6.383.911 0 .683-.226 1.593-.508 2.049-.339.512-.113 1.423.678 2.675l1.242 1.935h5.649c3.106.057 6.664.285 7.907.512 1.243.228 2.316.342 2.429.285.113-.057-.452-1.366-1.186-2.903Zm-4.745-9.107c-.452-1.195-1.638-3.7-2.598-5.578-1.581-3.188-1.751-3.301-2.146-1.992-.226.797-.396 3.13-.452 5.236-.057 4.155-.17 4.098 4.575 4.383l1.525.057-.904-2.106Z" style="fill-rule:nonzero;stroke:#000;stroke-width:2px" transform="matrix(1.01351 0 0 -1 9.088 166.517)" />
<path d="M23.892 136.835c-1.017-.74-1.299-1.48-1.299-3.358 0-2.22.169-2.562 1.694-3.188 1.525-.626 1.92-.569 3.671.626 2.316 1.594 2.373 1.992.678 4.554-1.468 2.22-2.937 2.618-4.744 1.366Zm3.219-2.049c.904-1.594.339-2.789-1.355-2.789-1.525 0-2.203 1.536-1.356 3.073.678 1.253 1.977 1.139 2.711-.284ZM59.306 124.028c0-.285-.339-.569-.735-.569-.339 0-1.299-1.594-2.033-3.529-2.259-5.92-24.852-50.943-24.908-49.52 0 .74-.339 1.252-.904 1.252-.791 0-.904-.456-.565-2.675.339-2.562.113-3.131-7.907-18.841-4.519-8.936-9.376-18.271-10.788-20.775-1.469-2.619-2.598-5.465-2.711-6.66-.17-2.049.056-2.334 4.97-6.603 2.824-2.504 6.439-5.635 8.02-7.058C28.862 2.504 32.194-.114 33.098.057c1.356.228 22.31 22.369 22.367 23.622 0 .569-1.017 9.221-2.259 19.238-2.147 17.076-4.18 37.055-3.954 38.99.169 1.196-.678 7.229-1.299 9.847-.509 2.05-.283 2.903 3.784 12.238 2.372 5.521 5.479 12.295 6.834 15.027 1.299 2.732 2.429 5.123 2.429 5.294 0 .17-.395.284-.847.284-.452 0-.847-.228-.847-.569ZM46.315 81.509c.621-3.984 1.864-13.547 2.767-21.231 1.751-14.116 3.785-29.769 4.349-33.753.339-1.993.113-2.391-3.558-6.489-6.382-7.229-13.16-14.344-15.476-16.165l-2.146-1.708-11.014 10.359C11.07 21.971 10.223 22.939 10.844 24.077c.339.626 3.22 5.92 6.383 11.725 3.163 5.806 7.342 13.547 9.263 17.19 1.977 3.7 3.784 6.887 4.123 7.058.395.228.508-5.521.395-17.759-.226-18.271-.169-18.328 1.638-17.929.226 0 .396 9.221.396 20.434v20.377l5.93 11.953c3.276 6.603 5.987 11.896 6.1 11.84.113-.058.678-3.416 1.243-7.457Z" style="fill-rule:nonzero;stroke:#000;stroke-width:2px" transform="matrix(1.01351 0 0 -1 9.088 166.517)" />
<svg xmlns="http://www.w3.org/2000/svg" width="1000" height="1000">
<rect width="1000" height="1000" rx="200" ry="200" fill="#fff" />
<svg viewBox="0 0 107 101" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2">
<path style="fill:none" d="M24 17h121v121H24z" transform="matrix(.8843 0 0 .83471 -21.223 -14.19)" />
<path d="M119.81 105.98a.549.549 0 0 0-.53-.12c-4.19-6.19-9.52-12.06-14.68-17.73l-.85-.93c0-.11-.05-.21-.12-.3a.548.548 0 0 0-.34-.2l-.17-.18-.12-.09c-.15-.32-.53-.56-.95-.35-1.58.81-3 1.97-4.4 3.04-1.87 1.43-3.7 2.92-5.42 4.52-.7.65-1.39 1.33-1.97 2.09-.28.37-.07.72.27.87-1.22 1.2-2.45 2.45-3.68 3.74-.11.12-.17.28-.16.44.01.16.09.31.22.41l2.16 1.65s.01.03.03.04c3.09 3.05 8.51 7.28 14.25 11.76.85.67 1.71 1.34 2.57 2.01.39.47.76.94 1.12 1.4.19.25.55.3.8.11.13.1.26.21.39.31a.57.57 0 0 0 .8-.1c.07-.09.1-.2.11-.31.04 0 .07.03.1.03.15 0 .31-.06.42-.18l10.18-11.12a.56.56 0 0 0-.04-.8l.01-.01Zm-29.23-3.85c.07.09.14.17.21.25 1.16.98 2.4 2.04 3.66 3.12l-5.12-3.91s-.32-.22-.52-.36c-.11-.08-.21-.16-.31-.24l-.38-.32s.07-.07.1-.11l.35-.35c1.72-1.74 4.67-4.64 6.19-6.06-1.61 1.62-4.87 6.37-4.17 7.98h-.01Zm17.53 13.81-4.22-3.22c-1.65-1.71-3.43-3.4-5.24-5.03 2.28 1.76 4.23 3.25 4.52 3.51 2.21 1.97 2.11 1.61 3.63 2.91l1.83 1.33c-.18.16-.36.33-.53.49l.01.01Zm1.06.81-.08-.06c.16-.13.33-.25.49-.38l-.4.44h-.01ZM42.24 51.45c.14.72.27 1.43.4 2.11.69 3.7 1.33 7.03 2.55 9.56l.48 1.92c.19.73.46 1.64.71 1.83 2.85 2.52 7.22 6.28 11.89 9.82.21.16.5.15.7-.01.01.02.03.03.04.04.11.1.24.15.38.15.16 0 .31-.06.42-.19 5.98-6.65 10.43-12.12 13.6-16.7.2-.25.3-.54.29-.84.2-.24.41-.48.6-.68a.558.558 0 0 0-.1-.86.578.578 0 0 0-.17-.36c-1.39-1.34-2.42-2.31-3.46-3.28-1.84-1.72-3.74-3.5-7.77-7.51-.02-.02-.05-.04-.07-.06a.555.555 0 0 0-.22-.14c-1.11-.39-3.39-.78-6.26-1.28-4.22-.72-10-1.72-15.2-3.27h-.04v-.01s-.02 0-.03.02h-.01l.04-.02s-.31.01-.37.04c-.08.04-.14.09-.19.15-.05.06-.09.12-.47.2-.38.08.08 0 .11 0h-.11v.03c.07.34.05.58.16.97-.02.1.21 1.02.24 1.11l1.83 7.26h.03Zm30.95 6.54s-.03.04-.04.05l-.64-.71c.22.21.44.42.68.66Zm-7.09 9.39s-.07.08-.1.12l-.02-.02c.04-.03.08-.07.13-.1h-.01Zm-7.07 8.47Zm3.02-28.57c.35.35 1.74 1.65 2.06 1.97-1.45-.66-5.06-2.34-6.74-2.88 1.65.29 3.93.66 4.68.91Zm-19.18-2.77c.84 1.44 1.5 6.49 2.16 11.4-.37-1.58-.69-3.12-.99-4.6-.52-2.56-1-4.85-1.67-6.88.14.01.31.03.49.05 0 .01 0 .02.02.03h-.01Zm-.29-1.21c-.23-.02-.44-.04-.62-.05-.02-.04-.03-.08-.04-.12l.66.18v-.01Zm-2.22.45v-.02.02ZM118.9 42.57c.04-.23-1.1-1.24-.74-1.26.85-.04.86-1.35 0-1.31-1.13.06-2.27.32-3.37.53-1.98.37-3.95.78-5.92 1.21-4.39.94-8.77 1.93-13.1 3.11-1.36.37-2.86.7-4.11 1.36-.42.22-.4.67-.17.95-.09.05-.18.08-.28.09-.37.07-.74.13-1.11.19a.566.566 0 0 0-.39.86c-2.32 3.1-4.96 6.44-7.82 9.95-2.81 3.21-5.73 6.63-8.72 10.14-9.41 11.06-20.08 23.6-31.9 34.64-.23.21-.24.57-.03.8.05.06.12.1.19.13-.16.15-.32.3-.48.44-.1.09-.14.2-.16.32-.08.08-.16.17-.23.25-.21.23-.2.59.03.8.23.21.59.2.8-.03.04-.04.08-.09.12-.13a.84.84 0 0 1 1.22 0c.69.74 1.34 1.44 1.95 2.09l-1.38-1.15a.57.57 0 0 0-.8.07c-.2.24-.17.6.07.8l14.82 12.43c.11.09.24.13.37.13.15 0 .29-.06.4-.17l.36-.36a.56.56 0 0 0 .63-.12c20.09-20.18 36.27-35.43 54.8-49.06.17-.12.25-.32.23-.51a.57.57 0 0 0 .48-.39c3.42-10.46 4.08-19.72 4.28-24.27 0-.03.01-.05.02-.07.02-.05.03-.1.04-.14.03-.11.05-.19.05-.19.26-.78.17-1.53-.15-2.15v.02ZM82.98 58.94c.9-1.03 1.79-2.04 2.67-3.02-5.76 7.58-15.3 19.26-28.81 33.14 9.2-10.18 18.47-20.73 26.14-30.12Zm-32.55 52.81-.03-.03c.11.02.19.04.2.04a.47.47 0 0 0-.17 0v-.01Zm6.9 6.42-.05-.04.03-.03c.02 0 .03.02.04.02 0 .02-.02.03-.03.05h.01Zm8.36-7.21 1.38-1.44c.01.01.02.03.03.05-.47.46-.94.93-1.42 1.39h.01Zm2.24-2.21c.26-.3.56-.65.87-1.02.01-.01.02-.03.04-.04 3.29-3.39 6.68-6.82 10.18-10.25.02-.02.05-.04.07-.06.86-.66 1.82-1.39 2.72-2.08-4.52 4.32-9.11 8.78-13.88 13.46v-.01Zm21.65-55.88c-1.86 2.42-3.9 5.56-5.63 8.07-5.46 7.91-23.04 27.28-23.43 27.65-2.71 2.62-10.88 10.46-16.09 15.37-.14.13-.25.24-.34.35a.794.794 0 0 1 .03-1.13c24.82-23.4 39.88-42.89 46-51.38-.13.33-.24.69-.55 1.09l.01-.02Zm16.51 7.1-.01.02c0-.02-.02-.07.01-.02Zm-.91-5.13Zm-5.89 9.45c-2.26-1.31-3.32-3.27-2.71-5.25l.19-.66c.08-.19.17-.38.28-.57.59-.98 1.49-1.85 2.52-2.36.05-.02.1-.03.15-.04a.795.795 0 0 1-.04-.43c.05-.31.25-.58.66-.58.67 0 2.75.62 3.54 1.3.24.19.47.4.68.63.3.35.74.92.96 1.33.13.06.23.62.38.91.14.46.2.93.18 1.4 0 .02 0 .02.01.03-.03.07 0 .37-.04.4-.1.72-.36 1.43-.75 2.05-.04.05-.07.11-.11.16 0 .01-.02.02-.03.04-.3.43-.65.83-1.08 1.13-1.26.89-2.73 1.16-4.2.79a6.33 6.33 0 0 1-.57-.25l-.02-.03Zm16.27-1.63c-.49 2.05-1.09 4.19-1.8 6.38-.03.08-.03.16-.03.23-.1.01-.19.05-.27.11-4.44 3.26-8.73 6.62-12.98 10.11 3.67-3.32 7.39-6.62 11.23-9.95a6.409 6.409 0 0 0 2.11-3.74l.56-3.37.03-.1c.25-.71 1.34-.4 1.17.33h-.02Z" style="fill:#6965db;fill-rule:nonzero" transform="matrix(1 0 0 1 -26.41 -29.49)" />
</svg>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

View File

@ -1191,10 +1191,10 @@
"@docsearch/css" "3.1.1"
algoliasearch "^4.0.0"
"@docusaurus/core@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-rc.1.tgz#828d93d241171565d8947a9ab404091e04759141"
integrity sha512-b9FX0Z+EddfQ6wAiNh+Wx4fysKfcvEcWJrZ5USROn3C+EVU5P4luaa8mwWK//O+hTwD9ur7/A44IZ/tWCTAoLQ==
"@docusaurus/core@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.2.0.tgz#64c9ee31502c23b93c869f8188f73afaf5fd4867"
integrity sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==
dependencies:
"@babel/core" "^7.18.6"
"@babel/generator" "^7.18.7"
@ -1206,13 +1206,13 @@
"@babel/runtime" "^7.18.6"
"@babel/runtime-corejs3" "^7.18.6"
"@babel/traverse" "^7.18.8"
"@docusaurus/cssnano-preset" "2.0.0-rc.1"
"@docusaurus/logger" "2.0.0-rc.1"
"@docusaurus/mdx-loader" "2.0.0-rc.1"
"@docusaurus/cssnano-preset" "2.2.0"
"@docusaurus/logger" "2.2.0"
"@docusaurus/mdx-loader" "2.2.0"
"@docusaurus/react-loadable" "5.5.2"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/utils-common" "2.0.0-rc.1"
"@docusaurus/utils-validation" "2.0.0-rc.1"
"@docusaurus/utils" "2.2.0"
"@docusaurus/utils-common" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
"@slorber/static-site-generator-webpack-plugin" "^4.0.7"
"@svgr/webpack" "^6.2.1"
autoprefixer "^10.4.7"
@ -1268,33 +1268,33 @@
webpack-merge "^5.8.0"
webpackbar "^5.0.2"
"@docusaurus/cssnano-preset@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-rc.1.tgz#76bbd7f6912779a0667f8f2fd8fc1a05618a6148"
integrity sha512-9/KmQvF+eTlMqUqG6UcXbRgxbGed/8bQInXuKEs+95/jI6jO/3xSzuRwuHHHP0naUvSVWjnNI9jngPrQerXE5w==
"@docusaurus/cssnano-preset@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz#fc05044659051ae74ab4482afcf4a9936e81d523"
integrity sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==
dependencies:
cssnano-preset-advanced "^5.3.8"
postcss "^8.4.14"
postcss-sort-media-queries "^4.2.1"
tslib "^2.4.0"
"@docusaurus/logger@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.0.0-rc.1.tgz#db95e9b15bc243695830a5b791c0eff705ef1b54"
integrity sha512-daa3g+SXuO9K60PVMiSUmDEK9Vro+Ed7i7uF8CH6QQJLcNZy/zJc0Xz62eH7ip1x77fmeb6Rg4Us1TqTFc9AbQ==
"@docusaurus/logger@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.2.0.tgz#ea2f7feda7b8675485933b87f06d9c976d17423f"
integrity sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==
dependencies:
chalk "^4.1.2"
tslib "^2.4.0"
"@docusaurus/mdx-loader@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-rc.1.tgz#e78d7d416aacc289f2427c5ccdb9145820acb0cb"
integrity sha512-8Fg0c/ceu39knmr7w0dutm7gq3YxKYCqWVS2cB/cPATzChCCNH/AGLfBT6sz/Z4tjVXE+NyREq2pfOFvkhjVXg==
"@docusaurus/mdx-loader@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz#fd558f429e5d9403d284bd4214e54d9768b041a0"
integrity sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==
dependencies:
"@babel/parser" "^7.18.8"
"@babel/traverse" "^7.18.8"
"@docusaurus/logger" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/logger" "2.2.0"
"@docusaurus/utils" "2.2.0"
"@mdx-js/mdx" "^1.6.22"
escape-html "^1.0.3"
file-loader "^6.2.0"
@ -1323,18 +1323,32 @@
react-helmet-async "*"
react-loadable "npm:@docusaurus/react-loadable@5.5.2"
"@docusaurus/plugin-content-blog@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-rc.1.tgz#8ae5d5ec2da08c583a057bf2754a5b9278b3eb08"
integrity sha512-BVVrAGZujpjS/0rarY2o24rlylRRh2NZuM65kg0JNkkViF79SeEHsepog7IuHyoqGWPm1N/I7LpEp7k+gowZzQ==
"@docusaurus/module-type-aliases@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.2.0.tgz#1e23e54a1bbb6fde1961e4fa395b1b69f4803ba5"
integrity sha512-wDGW4IHKoOr9YuJgy7uYuKWrDrSpsUSDHLZnWQYM9fN7D5EpSmYHjFruUpKWVyxLpD/Wh0rW8hYZwdjJIQUQCQ==
dependencies:
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/logger" "2.0.0-rc.1"
"@docusaurus/mdx-loader" "2.0.0-rc.1"
"@docusaurus/types" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/utils-common" "2.0.0-rc.1"
"@docusaurus/utils-validation" "2.0.0-rc.1"
"@docusaurus/react-loadable" "5.5.2"
"@docusaurus/types" "2.2.0"
"@types/history" "^4.7.11"
"@types/react" "*"
"@types/react-router-config" "*"
"@types/react-router-dom" "*"
react-helmet-async "*"
react-loadable "npm:@docusaurus/react-loadable@5.5.2"
"@docusaurus/plugin-content-blog@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.2.0.tgz#dc55982e76771f4e678ac10e26d10e1da2011dc1"
integrity sha512-0mWBinEh0a5J2+8ZJXJXbrCk1tSTNf7Nm4tYAl5h2/xx+PvH/Bnu0V+7mMljYm/1QlDYALNIIaT/JcoZQFUN3w==
dependencies:
"@docusaurus/core" "2.2.0"
"@docusaurus/logger" "2.2.0"
"@docusaurus/mdx-loader" "2.2.0"
"@docusaurus/types" "2.2.0"
"@docusaurus/utils" "2.2.0"
"@docusaurus/utils-common" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
cheerio "^1.0.0-rc.12"
feed "^4.2.2"
fs-extra "^10.1.0"
@ -1345,18 +1359,18 @@
utility-types "^3.10.0"
webpack "^5.73.0"
"@docusaurus/plugin-content-docs@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-rc.1.tgz#2dda88166bf21b0eeb3821ef748059b20c8c49f7"
integrity sha512-Yk5Hu6uaw3tRplzJnbDygwRhmZ3PCzEXD4SJpBA6cPC73ylfqOEh6qhiU+BWhMTtDXNhY+athk5Kycfk3DW1aQ==
"@docusaurus/plugin-content-docs@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.2.0.tgz#0fcb85226fcdb80dc1e2d4a36ef442a650dcc84d"
integrity sha512-BOazBR0XjzsHE+2K1wpNxz5QZmrJgmm3+0Re0EVPYFGW8qndCWGNtXW/0lGKhecVPML8yyFeAmnUCIs7xM2wPw==
dependencies:
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/logger" "2.0.0-rc.1"
"@docusaurus/mdx-loader" "2.0.0-rc.1"
"@docusaurus/module-type-aliases" "2.0.0-rc.1"
"@docusaurus/types" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/utils-validation" "2.0.0-rc.1"
"@docusaurus/core" "2.2.0"
"@docusaurus/logger" "2.2.0"
"@docusaurus/mdx-loader" "2.2.0"
"@docusaurus/module-type-aliases" "2.2.0"
"@docusaurus/types" "2.2.0"
"@docusaurus/utils" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
"@types/react-router-config" "^5.0.6"
combine-promises "^1.1.0"
fs-extra "^10.1.0"
@ -1367,84 +1381,84 @@
utility-types "^3.10.0"
webpack "^5.73.0"
"@docusaurus/plugin-content-pages@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-rc.1.tgz#2be82f53d6c77e6aa66787726c30dc60b210e6f8"
integrity sha512-FdO79WC5hfWDQu3/CTFLRQzTNc0e5n+HNzavm2MNkSzGV08BFJ6RAkbPbtra5CWef+6iXZav6D/tzv2jDPvLzA==
"@docusaurus/plugin-content-pages@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.2.0.tgz#e3f40408787bbe229545dd50595f87e1393bc3ae"
integrity sha512-+OTK3FQHk5WMvdelz8v19PbEbx+CNT6VSpx7nVOvMNs5yJCKvmqBJBQ2ZSxROxhVDYn+CZOlmyrC56NSXzHf6g==
dependencies:
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/mdx-loader" "2.0.0-rc.1"
"@docusaurus/types" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/utils-validation" "2.0.0-rc.1"
"@docusaurus/core" "2.2.0"
"@docusaurus/mdx-loader" "2.2.0"
"@docusaurus/types" "2.2.0"
"@docusaurus/utils" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
fs-extra "^10.1.0"
tslib "^2.4.0"
webpack "^5.73.0"
"@docusaurus/plugin-debug@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-rc.1.tgz#73c06ad08d66810941e456d50b07be008f5235cb"
integrity sha512-aOsyYrPMbnsyqHwsVZ+0frrMRtnYqm4eaJpG4sC/6LYAJ07IDRQ9j3GOku2dKr5GsFK1Vx7VlE6ZLwe0MaGstg==
"@docusaurus/plugin-debug@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.2.0.tgz#b38741d2c492f405fee01ee0ef2e0029cedb689a"
integrity sha512-p9vOep8+7OVl6r/NREEYxf4HMAjV8JMYJ7Bos5fCFO0Wyi9AZEo0sCTliRd7R8+dlJXZEgcngSdxAUo/Q+CJow==
dependencies:
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/types" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/core" "2.2.0"
"@docusaurus/types" "2.2.0"
"@docusaurus/utils" "2.2.0"
fs-extra "^10.1.0"
react-json-view "^1.21.3"
tslib "^2.4.0"
"@docusaurus/plugin-google-analytics@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-rc.1.tgz#0136cc7534573ca56e023178ec2bda5c1e89ce71"
integrity sha512-f+G8z5OJWfg5QqWDLIdcN2SDoK5J5Gg8HMrqCI6Pfl+rxPb5I1niA+/UkAM+kMCpnekvhSt5AWz2fgkRenkPLA==
"@docusaurus/plugin-google-analytics@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.2.0.tgz#63c7137eff5a1208d2059fea04b5207c037d7954"
integrity sha512-+eZVVxVeEnV5nVQJdey9ZsfyEVMls6VyWTIj8SmX0k5EbqGvnIfET+J2pYEuKQnDIHxy+syRMoRM6AHXdHYGIg==
dependencies:
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/types" "2.0.0-rc.1"
"@docusaurus/utils-validation" "2.0.0-rc.1"
"@docusaurus/core" "2.2.0"
"@docusaurus/types" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
tslib "^2.4.0"
"@docusaurus/plugin-google-gtag@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-rc.1.tgz#61698fdc41a4ace912fb8f6c834efd288edad3c0"
integrity sha512-yE1Et9hhhX9qMRnMJzpNq0854qIYiSEc2dZaXNk537HN7Q0rKkr/YONUHz2iqNYwPX2hGOY4LdpTxlMP88uVhA==
"@docusaurus/plugin-google-gtag@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.2.0.tgz#7b086d169ac5fe9a88aca10ab0fd2bf00c6c6b12"
integrity sha512-6SOgczP/dYdkqUMGTRqgxAS1eTp6MnJDAQMy8VCF1QKbWZmlkx4agHDexihqmYyCujTYHqDAhm1hV26EET54NQ==
dependencies:
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/types" "2.0.0-rc.1"
"@docusaurus/utils-validation" "2.0.0-rc.1"
"@docusaurus/core" "2.2.0"
"@docusaurus/types" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
tslib "^2.4.0"
"@docusaurus/plugin-sitemap@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-rc.1.tgz#0b638e774b253d90e9f2d11663e961250f557bc4"
integrity sha512-5JmbNpssUF03odFM4ArvIsrO9bv7HnAJ0VtefXhh0WBpaFs8NgI3rTkCTFimvtRQjDR9U2bh23fXz2vjQQz6oA==
"@docusaurus/plugin-sitemap@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.2.0.tgz#876da60937886032d63143253d420db6a4b34773"
integrity sha512-0jAmyRDN/aI265CbWZNZuQpFqiZuo+5otk2MylU9iVrz/4J7gSc+ZJ9cy4EHrEsW7PV8s1w18hIEsmcA1YgkKg==
dependencies:
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/logger" "2.0.0-rc.1"
"@docusaurus/types" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/utils-common" "2.0.0-rc.1"
"@docusaurus/utils-validation" "2.0.0-rc.1"
"@docusaurus/core" "2.2.0"
"@docusaurus/logger" "2.2.0"
"@docusaurus/types" "2.2.0"
"@docusaurus/utils" "2.2.0"
"@docusaurus/utils-common" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
fs-extra "^10.1.0"
sitemap "^7.1.1"
tslib "^2.4.0"
"@docusaurus/preset-classic@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-rc.1.tgz#5e5b1cf80b3dd4e2c3f824c78a111f105858d853"
integrity sha512-5jjTVZkhArjyoNHwCI9x4PSG0zPmBJILjZLVrxPcHpm/K0ltkYcp6J3GxYpf5EbMuOh5+yCWM63cSshGcNOo3Q==
"@docusaurus/preset-classic@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.2.0.tgz#bece5a043eeb74430f7c6c7510000b9c43669eb7"
integrity sha512-yKIWPGNx7BT8v2wjFIWvYrS+nvN04W+UameSFf8lEiJk6pss0kL6SG2MRvyULiI3BDxH+tj6qe02ncpSPGwumg==
dependencies:
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/plugin-content-blog" "2.0.0-rc.1"
"@docusaurus/plugin-content-docs" "2.0.0-rc.1"
"@docusaurus/plugin-content-pages" "2.0.0-rc.1"
"@docusaurus/plugin-debug" "2.0.0-rc.1"
"@docusaurus/plugin-google-analytics" "2.0.0-rc.1"
"@docusaurus/plugin-google-gtag" "2.0.0-rc.1"
"@docusaurus/plugin-sitemap" "2.0.0-rc.1"
"@docusaurus/theme-classic" "2.0.0-rc.1"
"@docusaurus/theme-common" "2.0.0-rc.1"
"@docusaurus/theme-search-algolia" "2.0.0-rc.1"
"@docusaurus/types" "2.0.0-rc.1"
"@docusaurus/core" "2.2.0"
"@docusaurus/plugin-content-blog" "2.2.0"
"@docusaurus/plugin-content-docs" "2.2.0"
"@docusaurus/plugin-content-pages" "2.2.0"
"@docusaurus/plugin-debug" "2.2.0"
"@docusaurus/plugin-google-analytics" "2.2.0"
"@docusaurus/plugin-google-gtag" "2.2.0"
"@docusaurus/plugin-sitemap" "2.2.0"
"@docusaurus/theme-classic" "2.2.0"
"@docusaurus/theme-common" "2.2.0"
"@docusaurus/theme-search-algolia" "2.2.0"
"@docusaurus/types" "2.2.0"
"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2":
version "5.5.2"
@ -1454,23 +1468,23 @@
"@types/react" "*"
prop-types "^15.6.2"
"@docusaurus/theme-classic@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-rc.1.tgz#4ab30745e6b03b0f277837debae786a0a83aee6a"
integrity sha512-qNiz7ieeq3AC+V8TbW6S63pWLJph1CbzWDDPTqxDLHgA8VQaNaSmJM8S92pH+yKALRb9u14ogjjYYc75Nj2JmQ==
"@docusaurus/theme-classic@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.2.0.tgz#a048bb1bc077dee74b28bec25f4b84b481863742"
integrity sha512-kjbg/qJPwZ6H1CU/i9d4l/LcFgnuzeiGgMQlt6yPqKo0SOJIBMPuz7Rnu3r/WWbZFPi//o8acclacOzmXdUUEg==
dependencies:
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/mdx-loader" "2.0.0-rc.1"
"@docusaurus/module-type-aliases" "2.0.0-rc.1"
"@docusaurus/plugin-content-blog" "2.0.0-rc.1"
"@docusaurus/plugin-content-docs" "2.0.0-rc.1"
"@docusaurus/plugin-content-pages" "2.0.0-rc.1"
"@docusaurus/theme-common" "2.0.0-rc.1"
"@docusaurus/theme-translations" "2.0.0-rc.1"
"@docusaurus/types" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/utils-common" "2.0.0-rc.1"
"@docusaurus/utils-validation" "2.0.0-rc.1"
"@docusaurus/core" "2.2.0"
"@docusaurus/mdx-loader" "2.2.0"
"@docusaurus/module-type-aliases" "2.2.0"
"@docusaurus/plugin-content-blog" "2.2.0"
"@docusaurus/plugin-content-docs" "2.2.0"
"@docusaurus/plugin-content-pages" "2.2.0"
"@docusaurus/theme-common" "2.2.0"
"@docusaurus/theme-translations" "2.2.0"
"@docusaurus/types" "2.2.0"
"@docusaurus/utils" "2.2.0"
"@docusaurus/utils-common" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
"@mdx-js/react" "^1.6.22"
clsx "^1.2.1"
copy-text-to-clipboard "^3.0.1"
@ -1485,17 +1499,17 @@
tslib "^2.4.0"
utility-types "^3.10.0"
"@docusaurus/theme-common@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-rc.1.tgz#ea5d9732a16b03b488555e50107161bfa2abad98"
integrity sha512-1r9ZLKD9SeoCYVzWzcdR79Dia4ANlrlRjNl6uzETOEybjK6FF7yEa9Yra8EJcOCbi3coyYz5xFh/r1YHFTFHug==
"@docusaurus/theme-common@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.2.0.tgz#2303498d80448aafdd588b597ce9d6f4cfa930e4"
integrity sha512-R8BnDjYoN90DCL75gP7qYQfSjyitXuP9TdzgsKDmSFPNyrdE3twtPNa2dIN+h+p/pr+PagfxwWbd6dn722A1Dw==
dependencies:
"@docusaurus/mdx-loader" "2.0.0-rc.1"
"@docusaurus/module-type-aliases" "2.0.0-rc.1"
"@docusaurus/plugin-content-blog" "2.0.0-rc.1"
"@docusaurus/plugin-content-docs" "2.0.0-rc.1"
"@docusaurus/plugin-content-pages" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/mdx-loader" "2.2.0"
"@docusaurus/module-type-aliases" "2.2.0"
"@docusaurus/plugin-content-blog" "2.2.0"
"@docusaurus/plugin-content-docs" "2.2.0"
"@docusaurus/plugin-content-pages" "2.2.0"
"@docusaurus/utils" "2.2.0"
"@types/history" "^4.7.11"
"@types/react" "*"
"@types/react-router-config" "*"
@ -1505,19 +1519,34 @@
tslib "^2.4.0"
utility-types "^3.10.0"
"@docusaurus/theme-search-algolia@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-rc.1.tgz#e78c0aeaea6a3717ae3a6ecd75a8652bd7c8e974"
integrity sha512-H5yq6V/B4qo6GZrDKMbeSpk3T9e9K2MliDzLonRu0w3QHW9orVGe0c/lZvRbGlDZjnsOo7XGddhXXIDWGwnpaA==
"@docusaurus/theme-live-codeblock@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-live-codeblock/-/theme-live-codeblock-2.2.0.tgz#a507e496a1a74d261beee30ad072e4341310809a"
integrity sha512-4XRFxfZGcyqmbLmNbnbZ2ZOsoY7FYCJUZKsYW5yzhZYjmjGg7lkdJH5trt9otUoKBsZopBpPWvcDZwCu1SENYg==
dependencies:
"@docusaurus/core" "2.2.0"
"@docusaurus/theme-common" "2.2.0"
"@docusaurus/theme-translations" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
"@philpl/buble" "^0.19.7"
clsx "^1.2.1"
fs-extra "^10.1.0"
react-live "2.2.3"
tslib "^2.4.0"
"@docusaurus/theme-search-algolia@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.2.0.tgz#77fd9f7a600917e6024fe3ac7fb6cfdf2ce84737"
integrity sha512-2h38B0tqlxgR2FZ9LpAkGrpDWVdXZ7vltfmTdX+4RsDs3A7khiNsmZB+x/x6sA4+G2V2CvrsPMlsYBy5X+cY1w==
dependencies:
"@docsearch/react" "^3.1.1"
"@docusaurus/core" "2.0.0-rc.1"
"@docusaurus/logger" "2.0.0-rc.1"
"@docusaurus/plugin-content-docs" "2.0.0-rc.1"
"@docusaurus/theme-common" "2.0.0-rc.1"
"@docusaurus/theme-translations" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/utils-validation" "2.0.0-rc.1"
"@docusaurus/core" "2.2.0"
"@docusaurus/logger" "2.2.0"
"@docusaurus/plugin-content-docs" "2.2.0"
"@docusaurus/theme-common" "2.2.0"
"@docusaurus/theme-translations" "2.2.0"
"@docusaurus/utils" "2.2.0"
"@docusaurus/utils-validation" "2.2.0"
algoliasearch "^4.13.1"
algoliasearch-helper "^3.10.0"
clsx "^1.2.1"
@ -1527,10 +1556,10 @@
tslib "^2.4.0"
utility-types "^3.10.0"
"@docusaurus/theme-translations@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.0.0-rc.1.tgz#bd647f78c741ee7f6c6d2cbbd3e3f282ef2f89ad"
integrity sha512-JLhNdlnbQhxVQzOnLyiCaTzKFa1lpVrM3nCrkGQKscoG2rY6ARGYMgMN2DkoH6hm7TflQ8+PE1S5MzzASeLs4Q==
"@docusaurus/theme-translations@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.2.0.tgz#5fbd4693679806f80c26eeae1381e1f2c23d83e7"
integrity sha512-3T140AG11OjJrtKlY4pMZ5BzbGRDjNs2co5hJ6uYJG1bVWlhcaFGqkaZ5lCgKflaNHD7UHBHU9Ec5f69jTdd6w==
dependencies:
fs-extra "^10.1.0"
tslib "^2.4.0"
@ -1549,30 +1578,44 @@
webpack "^5.73.0"
webpack-merge "^5.8.0"
"@docusaurus/utils-common@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-rc.1.tgz#3e233a28794325d5d9d3af3f7b1c22b59aa8b847"
integrity sha512-+iZICpeFPZJ9oGJXuG92WTWee6WRnVx5BdzlcfuKf/f5KQX8PvwXR2tDME78FGGhShB8zr+vjuNEXuLvXT7j2A==
"@docusaurus/types@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.2.0.tgz#02c577a4041ab7d058a3c214ccb13647e21a9857"
integrity sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw==
dependencies:
"@types/history" "^4.7.11"
"@types/react" "*"
commander "^5.1.0"
joi "^17.6.0"
react-helmet-async "^1.3.0"
utility-types "^3.10.0"
webpack "^5.73.0"
webpack-merge "^5.8.0"
"@docusaurus/utils-common@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.2.0.tgz#a401c1b93a8697dd566baf6ac64f0fdff1641a78"
integrity sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==
dependencies:
tslib "^2.4.0"
"@docusaurus/utils-validation@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-rc.1.tgz#dded12f036cda8a54a19e01694b35859fe0cf1d5"
integrity sha512-lj36gm9Ksu4tt/EUeLDWoMbXe3sfBxeIPIUUdqYcBYkF/rpQkh+uL/dncjNGiw6uvBOqXhOfsFVP045HtgShVw==
"@docusaurus/utils-validation@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz#04d4d103137ad0145883971d3aa497f4a1315f25"
integrity sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==
dependencies:
"@docusaurus/logger" "2.0.0-rc.1"
"@docusaurus/utils" "2.0.0-rc.1"
"@docusaurus/logger" "2.2.0"
"@docusaurus/utils" "2.2.0"
joi "^17.6.0"
js-yaml "^4.1.0"
tslib "^2.4.0"
"@docusaurus/utils@2.0.0-rc.1":
version "2.0.0-rc.1"
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-rc.1.tgz#53584b800df9e13864d5ef1a76aa7655a90ec86e"
integrity sha512-ym9I1OwIYbKs1LGaUajaA/vDG8VweJj/6YoZjHp+eDQHhTRIrHXiYoGDqorafRhftKwnA1EnyomuXpNd9bq8Gg==
"@docusaurus/utils@2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.2.0.tgz#3d6f9b7a69168d5c92d371bf21c556a4f50d1da6"
integrity sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==
dependencies:
"@docusaurus/logger" "2.0.0-rc.1"
"@docusaurus/logger" "2.2.0"
"@svgr/webpack" "^6.2.1"
file-loader "^6.2.0"
fs-extra "^10.1.0"
@ -1588,6 +1631,11 @@
url-loader "^4.1.1"
webpack "^5.73.0"
"@excalidraw/excalidraw@0.15.2-eb020d0":
version "0.15.2-eb020d0"
resolved "https://registry.yarnpkg.com/@excalidraw/excalidraw/-/excalidraw-0.15.2-eb020d0.tgz#25bd61e6f23da7c084fb16a3e0fe0dd9ad8e6533"
integrity sha512-TKGLzpOVqFQcwK1GFKTDXgg1s2U6tc5KE3qXuv87osbzOtftQn3x4+VH61vwdj11l00nEN80SMdXUC43T9uJqQ==
"@hapi/hoek@^9.0.0":
version "9.3.0"
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
@ -1709,6 +1757,21 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
"@philpl/buble@^0.19.7":
version "0.19.7"
resolved "https://registry.yarnpkg.com/@philpl/buble/-/buble-0.19.7.tgz#27231e6391393793b64bc1c982fc7b593198b893"
integrity sha512-wKTA2DxAGEW+QffRQvOhRQ0VBiYU2h2p8Yc1oBNlqSKws48/8faxqKNIuub0q4iuyTuLwtB8EkwiKwhlfV1PBA==
dependencies:
acorn "^6.1.1"
acorn-class-fields "^0.2.1"
acorn-dynamic-import "^4.0.0"
acorn-jsx "^5.0.1"
chalk "^2.4.2"
magic-string "^0.25.2"
minimist "^1.2.0"
os-homedir "^1.0.1"
regexpu-core "^4.5.4"
"@polka/url@^1.0.0-next.20":
version "1.0.0-next.21"
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1"
@ -1722,9 +1785,9 @@
"@hapi/hoek" "^9.0.0"
"@sideway/formula@^3.0.0":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c"
integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==
version "3.0.1"
resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f"
integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==
"@sideway/pinpoint@^2.0.0":
version "2.0.0"
@ -2242,16 +2305,36 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
mime-types "~2.1.34"
negotiator "0.6.3"
acorn-class-fields@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/acorn-class-fields/-/acorn-class-fields-0.2.1.tgz#748058bceeb0ef25164bbc671993984083f5a085"
integrity sha512-US/kqTe0H8M4LN9izoL+eykVAitE68YMuYZ3sHn3i1fjniqR7oQ3SPvuMK/VT1kjOQHrx5Q88b90TtOKgAv2hQ==
acorn-dynamic-import@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948"
integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==
acorn-import-assertions@^1.7.6:
version "1.8.0"
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
acorn-jsx@^5.0.1:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn-walk@^8.0.0:
version "8.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
acorn@^6.1.1:
version "6.4.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
acorn@^8.0.4, acorn@^8.5.0, acorn@^8.7.1:
version "8.8.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
@ -2618,6 +2701,18 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4
node-releases "^2.0.6"
update-browserslist-db "^1.0.4"
buble@0.19.6:
version "0.19.6"
resolved "https://registry.yarnpkg.com/buble/-/buble-0.19.6.tgz#915909b6bd5b11ee03b1c885ec914a8b974d34d3"
integrity sha512-9kViM6nJA1Q548Jrd06x0geh+BG2ru2+RMDkIHHgJY/8AcyCs34lTHwra9BX7YdPrZXd5aarkpr/SY8bmPgPdg==
dependencies:
chalk "^2.4.1"
magic-string "^0.25.1"
minimist "^1.2.0"
os-homedir "^1.0.1"
regexpu-core "^4.2.0"
vlq "^1.0.0"
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
@ -2697,7 +2792,7 @@ ccount@^1.0.0:
resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043"
integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==
chalk@^2.0.0:
chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@ -2754,7 +2849,7 @@ cheerio@^1.0.0-rc.12:
parse5 "^7.0.0"
parse5-htmlparser2-tree-adapter "^7.0.0"
chokidar@^3.4.2, chokidar@^3.5.3:
"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.2, chokidar@^3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
@ -2905,6 +3000,16 @@ commondir@^1.0.1:
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
component-props@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/component-props/-/component-props-1.1.1.tgz#f9b7df9b9927b6e6d97c9bd272aa867670f34944"
integrity sha512-69pIRJs9fCCHRqCz3390YF2LV1Lu6iEMZ5zuVqqUn+G20V9BNXlMs0cWawWeW9g4Ynmg29JmkG6R7/lUJoGd1Q==
component-xor@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/component-xor/-/component-xor-0.0.4.tgz#c55d83ccc1b94cd5089a4e93fa7891c7263e59aa"
integrity sha512-ZIt6sla8gfo+AFVRZoZOertcnD5LJaY2T9CKE2j13NJxQt/mUafD69Bl7/Y4AnpI2LGjiXH7cOfJDx/n2G9edA==
compressible@~2.0.16:
version "2.0.18"
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
@ -3016,6 +3121,11 @@ core-js-pure@^3.20.2:
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.24.0.tgz#10eeb90dbf0d670a6b22b081aecc7deb2faec7e1"
integrity sha512-uzMmW8cRh7uYw4JQtzqvGWRyC2T5+4zipQLQdi2FmiRqP83k3d6F3stv2iAlNhOs6cXN401FCD5TL0vvleuHgA==
core-js@^2.4.1:
version "2.6.12"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^3.23.3:
version "3.24.0"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.24.0.tgz#4928d4e99c593a234eb1a1f9abd3122b04d3ac57"
@ -3345,6 +3455,13 @@ dns-packet@^5.2.2:
dependencies:
"@leichtgewicht/ip-codec" "^2.0.1"
docusaurus-plugin-sass@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/docusaurus-plugin-sass/-/docusaurus-plugin-sass-0.2.3.tgz#5b61f7e560d236cfc1531ed497ac32fc166fc5e2"
integrity sha512-FbaE06K8NF8SPUYTwiG+83/jkXrwHJ/Afjqz3SUIGon6QvFwSSoKOcoxGQmUBnjTOk+deUONDx8jNWsegFJcBQ==
dependencies:
sass-loader "^10.1.1"
dom-converter@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
@ -3352,6 +3469,14 @@ dom-converter@^0.2.0:
dependencies:
utila "~0.4"
dom-iterator@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/dom-iterator/-/dom-iterator-1.0.0.tgz#9c09899846ec41c2d257adc4d6015e4759ef05ad"
integrity sha512-7dsMOQI07EMU98gQM8NSB3GsAiIeBYIPKpnxR3c9xOvdvBjChAcOM0iJ222I3p5xyiZO9e5oggkNaCusuTdYig==
dependencies:
component-props "1.1.1"
component-xor "0.0.4"
dom-serializer@^1.0.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
@ -4251,9 +4376,9 @@ htmlparser2@^8.0.1:
entities "^4.3.0"
http-cache-semantics@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
version "4.1.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
http-deceiver@^1.2.7:
version "1.2.7"
@ -4340,6 +4465,11 @@ immer@^9.0.7:
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc"
integrity sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==
immutable@^4.0.0:
version "4.2.2"
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16"
integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==
import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@ -4692,9 +4822,9 @@ json-schema-traverse@^1.0.0:
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
json5@^2.1.2, json5@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
jsonfile@^6.0.1:
version "6.1.0"
@ -4722,7 +4852,7 @@ kleur@^3.0.3:
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
klona@^2.0.5:
klona@^2.0.4, klona@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc"
integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==
@ -4755,9 +4885,9 @@ loader-runner@^4.2.0:
integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==
loader-utils@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
version "2.0.4"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c"
integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==
dependencies:
big.js "^5.2.2"
emojis-list "^3.0.0"
@ -4851,6 +4981,13 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
magic-string@^0.25.1, magic-string@^0.25.2:
version "0.25.9"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
dependencies:
sourcemap-codec "^1.4.8"
make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
@ -5208,6 +5345,11 @@ opener@^1.5.2:
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
os-homedir@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==
p-cancelable@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
@ -5737,7 +5879,7 @@ pretty-time@^1.1.0:
resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e"
integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==
prism-react-renderer@^1.3.5:
prism-react-renderer@^1.0.1, prism-react-renderer@^1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz#786bb69aa6f73c32ba1ee813fbe17a0115435085"
integrity sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==
@ -5767,7 +5909,7 @@ prompts@^2.4.2:
kleur "^3.0.3"
sisteransi "^1.0.5"
prop-types@^15.6.2, prop-types@^15.7.2:
prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
@ -5967,6 +6109,19 @@ react-lifecycles-compat@^3.0.4:
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
react-live@2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/react-live/-/react-live-2.2.3.tgz#260f99194213799f0005e473e7a4154c699d6a7c"
integrity sha512-tpKruvfytNETuzO3o1mrQUj180GVrq35IE8F5gH1NJVPt4szYCx83/dOSCOyjgRhhc3gQvl0pQ3k/CjOjwJkKQ==
dependencies:
buble "0.19.6"
core-js "^2.4.1"
dom-iterator "^1.0.0"
prism-react-renderer "^1.0.1"
prop-types "^15.5.8"
react-simple-code-editor "^0.10.0"
unescape "^1.0.1"
react-loadable-ssr-addon-v5-slorber@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883"
@ -6010,6 +6165,11 @@ react-router@5.3.3, react-router@^5.3.3:
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
react-simple-code-editor@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/react-simple-code-editor/-/react-simple-code-editor-0.10.0.tgz#73e7ac550a928069715482aeb33ccba36efe2373"
integrity sha512-bL5W5mAxSW6+cLwqqVWY47Silqgy2DKDTR4hDBrLrUqC5BXc29YVx17l2IZk5v36VcDEq1Bszu2oHm1qBwKqBA==
react-textarea-autosize@^8.3.2:
version "8.3.4"
resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz#270a343de7ad350534141b02c9cb78903e553524"
@ -6082,6 +6242,13 @@ regenerate-unicode-properties@^10.0.1:
dependencies:
regenerate "^1.4.2"
regenerate-unicode-properties@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326"
integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==
dependencies:
regenerate "^1.4.2"
regenerate@^1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
@ -6099,6 +6266,18 @@ regenerator-transform@^0.15.0:
dependencies:
"@babel/runtime" "^7.8.4"
regexpu-core@^4.2.0, regexpu-core@^4.5.4:
version "4.8.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0"
integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==
dependencies:
regenerate "^1.4.2"
regenerate-unicode-properties "^9.0.0"
regjsgen "^0.5.2"
regjsparser "^0.7.0"
unicode-match-property-ecmascript "^2.0.0"
unicode-match-property-value-ecmascript "^2.0.0"
regexpu-core@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d"
@ -6125,11 +6304,23 @@ registry-url@^5.0.0:
dependencies:
rc "^1.2.8"
regjsgen@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
regjsgen@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d"
integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
regjsparser@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968"
integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==
dependencies:
jsesc "~0.5.0"
regjsparser@^0.8.2:
version "0.8.4"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f"
@ -6317,6 +6508,26 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sass-loader@^10.1.1:
version "10.4.1"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.4.1.tgz#bea4e173ddf512c9d7f53e9ec686186146807cbf"
integrity sha512-aX/iJZTTpNUNx/OSYzo2KsjIUQHqvWsAhhUijFjAPdZTEhstjZI9zTNvkTTwsx+uNUJqUwOw5gacxQMx4hJxGQ==
dependencies:
klona "^2.0.4"
loader-utils "^2.0.0"
neo-async "^2.6.2"
schema-utils "^3.0.0"
semver "^7.3.2"
sass@1.57.1:
version "1.57.1"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5"
integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
source-map-js ">=0.6.2 <2.0.0"
sax@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@ -6400,19 +6611,19 @@ semver@7.0.0:
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
semver@^5.4.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
version "5.7.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
version "6.3.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7:
version "7.3.7"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
dependencies:
lru-cache "^6.0.0"
@ -6594,7 +6805,7 @@ sort-css-media-queries@2.0.4:
resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.0.4.tgz#b2badfa519cb4a938acbc6d3aaa913d4949dc908"
integrity sha512-PAIsEK/XupCQwitjv7XxoMvYhT7EAfyzI3hsy/MyDgTvc+Ft55ctdkctJLOy6cQejaIC+zjpUL4djFVm2ivOOw==
source-map-js@^1.0.2:
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
@ -6617,6 +6828,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
sourcemap-codec@^1.4.8:
version "1.4.8"
resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
space-separated-tokens@^1.0.0:
version "1.1.5"
resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899"
@ -6943,9 +7159,16 @@ typescript@^4.7.4:
integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==
ua-parser-js@^0.7.30:
version "0.7.31"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6"
integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==
version "0.7.33"
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.33.tgz#1d04acb4ccef9293df6f70f2c3d22f3030d8b532"
integrity sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==
unescape@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/unescape/-/unescape-1.0.1.tgz#956e430f61cad8a4d57d82c518f5e6cc5d0dda96"
integrity sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==
dependencies:
extend-shallow "^2.0.1"
unherit@^1.0.4:
version "1.1.3"
@ -7203,6 +7426,11 @@ vfile@^4.0.0:
unist-util-stringify-position "^2.0.0"
vfile-message "^2.0.0"
vlq@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468"
integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==
wait-on@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-6.0.1.tgz#16bbc4d1e4ebdd41c5b4e63a2e16dbd1f4e5601e"
@ -7314,9 +7542,9 @@ webpack-sources@^3.2.2, webpack-sources@^3.2.3:
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
webpack@^5.73.0:
version "5.74.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980"
integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==
version "5.76.1"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.1.tgz#7773de017e988bccb0f13c7d75ec245f377d295c"
integrity sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==
dependencies:
"@types/eslint-scope" "^3.7.3"
"@types/estree" "^0.0.51"

View File

@ -20,7 +20,7 @@
name="description"
content="Excalidraw is a virtual collaborative whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them."
/>
<meta name="image" content="https://excalidraw.com/og-general-v1.png" />
<meta name="image" content="https://excalidraw.com/og-image-2.png" />
<!-- Open Graph / Facebook -->
<meta property="og:site_name" content="Excalidraw" />
@ -35,7 +35,7 @@
property="og:description"
content="Excalidraw is a virtual collaborative whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them."
/>
<meta property="og:image" content="https://excalidraw.com/og-fb-v1.png" />
<meta property="og:image" content="https://excalidraw.com/og-image-2.png" />
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image" />
@ -51,7 +51,7 @@
/>
<meta
property="twitter:image"
content="https://excalidraw.com/og-twitter-v1.png"
content="https://excalidraw.com/og-twitter-v2.png"
/>
<!-- General tags -->
@ -78,7 +78,7 @@
}
</style>
<!------------------------------------------------------------------------->
<% if ("%PROD%" === "true") { %>
<script>
// Redirect Excalidraw+ users which have auto-redirect enabled.
//
@ -97,42 +97,39 @@
window.location.href = "https://app.excalidraw.com";
}
</script>
<% } %>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<!-- Excalidraw version -->
<meta name="version" content="{version}" />
<link
rel="preload"
href="Virgil.woff2"
href="/Virgil.woff2"
as="font"
type="font/woff2"
crossorigin="anonymous"
/>
<link
rel="preload"
href="Cascadia.woff2"
href="/Cascadia.woff2"
as="font"
type="font/woff2"
crossorigin="anonymous"
/>
<link
rel="manifest"
href="manifest.json"
style="--pwacompat-splash-font: 24px Virgil"
/>
<link rel="stylesheet" href="fonts.css" type="text/css" />
<% if (process.env.REACT_APP_DEV_DISABLE_LIVE_RELOAD==="true" ) { %>
<link rel="stylesheet" href="/fonts.css" type="text/css" />
<% if ("%VITE_APP_DEV_DISABLE_LIVE_RELOAD%"==="true" ) { %>
<script>
{
const _WebSocket = window.WebSocket;
window.WebSocket = function (url) {
if (/ws:\/\/localhost:.+?\/sockjs-node/.test(url)) {
console.info(
"[!!!] Live reload is disabled via process.env.REACT_APP_DEV_DISABLE_LIVE_RELOAD [!!!]",
"[!!!] Live reload is disabled via VITE_APP_DEV_DISABLE_LIVE_RELOAD [!!!]",
);
} else {
return new _WebSocket(url);
@ -146,29 +143,12 @@
// setting this so that libraries installation reuses this window tab.
window.name = "_excalidraw";
</script>
<% if (process.env.REACT_APP_GOOGLE_ANALYTICS_ID) { %>
<script
async
src="https://www.googletagmanager.com/gtag/js?id=%REACT_APP_GOOGLE_ANALYTICS_ID%"
></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "%REACT_APP_GOOGLE_ANALYTICS_ID%");
</script>
<% } %>
<!-- FIXME: remove this when we update CRA (fix SW caching) -->
<style>
body,
html {
margin: 0;
--ui-font: Assistant, system-ui, BlinkMacSystemFont, -apple-system,
Segoe UI, Roboto, Helvetica, Arial, sans-serif;
font-family: var(--ui-font);
-webkit-text-size-adjust: 100%;
width: 100%;
@ -215,5 +195,40 @@
<h1 class="visually-hidden">Excalidraw</h1>
</header>
<div id="root"></div>
<script type="module" src="/src/index.tsx"></script>
<% if ("%VITE_APP_DEV_DISABLE_LIVE_RELOAD%" !== 'true') { %>
<!-- 100% privacy friendly analytics -->
<script>
// need to load this script dynamically bcs. of iframe embed tracking
var scriptEle = document.createElement("script");
scriptEle.setAttribute(
"src",
"https://scripts.simpleanalyticscdn.com/latest.js",
);
scriptEle.setAttribute("type", "text/javascript");
scriptEle.setAttribute("defer", true);
scriptEle.setAttribute("async", true);
// if iframe
if (window.self !== window.top) {
scriptEle.setAttribute("data-auto-collect", true);
}
document.body.appendChild(scriptEle);
// if iframe
if (window.self !== window.top) {
scriptEle.addEventListener("load", () => {
if (window.sa_pageview) {
window.window.sa_event(action, {
category: "iframe",
label: "embed",
value: window.location.pathname,
});
}
});
}
</script>
<!-- end LEGACY GOOGLE ANALYTICS -->
<% } %>
</body>
</html>

View File

@ -19,24 +19,26 @@
]
},
"dependencies": {
"@braintree/sanitize-url": "6.0.2",
"@excalidraw/random-username": "1.0.0",
"@radix-ui/react-popover": "1.0.3",
"@radix-ui/react-tabs": "1.0.2",
"@sentry/browser": "6.2.5",
"@sentry/integrations": "6.2.5",
"@testing-library/jest-dom": "5.16.2",
"@testing-library/react": "12.1.5",
"@tldraw/vec": "1.7.1",
"@types/jest": "27.4.0",
"@types/pica": "5.1.3",
"@types/react": "18.0.15",
"@types/react-dom": "18.0.6",
"@types/socket.io-client": "1.4.36",
"browser-fs-access": "0.29.1",
"canvas-roundrect-polyfill": "0.0.1",
"clsx": "1.1.1",
"cross-env": "7.0.3",
"eslint-plugin-react": "7.32.2",
"fake-indexeddb": "3.1.7",
"firebase": "8.3.3",
"i18next-browser-languagedetector": "6.1.4",
"idb-keyval": "6.0.3",
"image-blob-reduce": "3.0.1",
"jotai": "1.6.4",
"jotai": "1.13.1",
"lodash.throttle": "4.1.1",
"nanoid": "3.3.3",
"open-color": "1.9.1",
@ -50,51 +52,60 @@
"pwacompat": "2.0.17",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-scripts": "4.0.3",
"roughjs": "4.5.2",
"sass": "1.51.0",
"socket.io-client": "2.3.1",
"typescript": "4.5.5"
"tunnel-rat": "0.1.2"
},
"devDependencies": {
"@excalidraw/eslint-config": "1.0.0",
"@excalidraw/eslint-config": "1.0.3",
"@excalidraw/prettier-config": "1.0.2",
"@types/chai": "4.3.0",
"@types/jest": "27.4.0",
"@types/lodash.throttle": "4.1.7",
"@types/pako": "1.0.3",
"@types/pica": "5.1.3",
"@types/react": "18.0.15",
"@types/react-dom": "18.0.6",
"@types/resize-observer-browser": "0.1.7",
"@types/socket.io-client": "1.4.36",
"@vitejs/plugin-react": "3.1.0",
"@vitest/coverage-v8": "0.33.0",
"@vitest/ui": "0.32.2",
"chai": "4.3.6",
"dotenv": "16.0.1",
"eslint-config-prettier": "8.5.0",
"eslint-config-react-app": "7.0.1",
"eslint-plugin-prettier": "3.3.1",
"http-server": "14.1.1",
"husky": "7.0.4",
"jest-canvas-mock": "2.4.0",
"jsdom": "22.1.0",
"lint-staged": "12.3.7",
"pepjs": "0.5.3",
"prettier": "2.6.2",
"rewire": "6.0.0"
"rewire": "6.0.0",
"typescript": "4.9.4",
"vite": "4.4.2",
"vite-plugin-checker": "0.6.1",
"vite-plugin-ejs": "1.6.4",
"vite-plugin-pwa": "0.16.4",
"vite-plugin-svgr": "2.4.0",
"vitest": "0.34.1",
"vitest-canvas-mock": "0.3.2"
},
"engines": {
"node": ">=14.0.0"
"node": ">=18.0.0"
},
"homepage": ".",
"jest": {
"transformIgnorePatterns": [
"node_modules/(?!(roughjs|points-on-curve|path-data-parser|points-on-path|browser-fs-access)/)"
],
"resetMocks": false
},
"name": "excalidraw",
"prettier": "@excalidraw/prettier-config",
"private": true,
"scripts": {
"build-node": "node ./scripts/build-node.js",
"build:app:docker": "REACT_APP_DISABLE_SENTRY=true react-scripts build",
"build:app": "REACT_APP_GIT_SHA=$VERCEL_GIT_COMMIT_SHA react-scripts build",
"build:app:docker": "cross-env VITE_APP_DISABLE_SENTRY=true VITE_APP_DISABLE_TRACKING=true vite build",
"build:app": "cross-env VITE_APP_GIT_SHA=$VERCEL_GIT_COMMIT_SHA vite build",
"build:version": "node ./scripts/build-version.js",
"build:prebuild": "node ./scripts/prebuild.js",
"build": "yarn build:prebuild && yarn build:app && yarn build:version",
"eject": "react-scripts eject",
"build": "yarn build:app && yarn build:version",
"fix:code": "yarn test:code --fix",
"fix:other": "yarn prettier --write",
"fix": "yarn fix:other && yarn fix:code",
@ -102,17 +113,21 @@
"locales-coverage:description": "node scripts/locales-coverage-description.js",
"prepare": "husky install",
"prettier": "prettier \"**/*.{css,scss,json,md,html,yml}\" --ignore-path=.eslintignore",
"start": "react-scripts start",
"test:all": "yarn test:typecheck && yarn test:code && yarn test:other && yarn test:app --watchAll=false",
"test:app": "react-scripts test --passWithNoTests",
"start": "vite",
"start:production": "npm run build && npx http-server build -a localhost -p 5001 -o",
"test:all": "yarn test:typecheck && yarn test:code && yarn test:other && yarn test:app --watch=false",
"test:app": "vitest --config vitest.config.ts",
"test:code": "eslint --max-warnings=0 --ext .js,.ts,.tsx .",
"test:debug": "react-scripts --inspect-brk test --runInBand --no-cache",
"test:other": "yarn prettier --list-different",
"test:typecheck": "tsc",
"test:update": "yarn test:app --updateSnapshot --watchAll=false",
"test:update": "yarn test:app --update --watch=false",
"test": "yarn test:app",
"test:coverage": "vitest --coverage",
"test:coverage:watch": "vitest --coverage --watch",
"test:ui": "yarn test --ui",
"autorelease": "node scripts/autorelease.js",
"prerelease": "node scripts/prerelease.js",
"build:preview": "yarn build && vite preview --port 5000",
"release": "node scripts/release.js"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1,32 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17344_46416)">
<rect width="480" height="360" fill="#FFFBF0"/>
<path d="M375.625 346.219L446.207 346.115L447.362 346.27L448.426 347.494L448.861 348.724L449.483 364.45L449.121 366.473L447.698 367.887L445.498 368.16L375.275 367.759L373.815 368.136L372.511 366.745L372 365.099L372.548 349.01L373.272 347.506L373.757 346.769L375.718 346.506" fill="#FFF0C9"/>
<path d="M375.441 346.425C395.74 346.168 416.114 346.067 445.882 346.425M375.441 346.425C395.04 345.937 414.622 345.785 445.882 346.425M375.441 346.425C373.395 346.411 372.006 347.719 372.107 349.755M375.441 346.425C373.401 346.428 371.947 347.409 372.107 349.755M445.882 346.425C447.824 346.636 449.124 347.25 449.216 349.755M445.882 346.425C447.755 346.66 449.434 347.375 449.216 349.755M449.216 349.755C449.546 354.766 449.344 359.987 449.216 364.627M449.216 349.755C448.848 352.937 448.902 355.874 449.216 364.627M449.216 364.627C449.037 366.525 447.79 368.095 445.882 367.957M449.216 364.627C448.974 366.618 448.175 368.384 445.882 367.957M445.882 367.957C422.989 368.317 399.942 368.157 375.441 367.957M445.882 367.957C425.919 367.876 405.944 367.942 375.441 367.957M375.441 367.957C373.055 368.098 371.788 366.954 372.107 364.627M375.441 367.957C372.757 367.864 372.226 366.502 372.107 364.627M372.107 364.627C371.89 360.051 372.16 355.774 372.107 349.755M372.107 364.627C372.234 359.799 371.92 355.144 372.107 349.755" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M53.8832 316.705L124.022 316.652L125.502 317.46L126.198 317.597L127.549 319.387L127.448 335.607L126.911 337.072L125.648 338.283L123.836 338.349L53.3915 338.935L52.0363 338.428L50.5352 336.939L50.6664 336.035L50.6091 319.814L50.8341 317.985L52.378 317.305L53.5155 317.12" fill="#FFF0C9"/>
<path d="M53.5584 317.016C79.0128 316.682 104.668 316.644 124 317.016M53.5584 317.016C81.6837 316.434 109.837 316.554 124 317.016M53.5584 317.016C51.1958 316.907 50.401 318.113 50.2249 320.346M53.5584 317.016C51.4375 316.618 50.4072 318.128 50.2249 320.346M124 317.016C126.132 316.731 127.03 318.331 127.334 320.346M124 317.016C126.44 316.857 127.563 318.532 127.334 320.346M127.334 320.346C127.264 323.556 126.995 326.662 127.334 335.218M127.334 320.346C127.077 323.761 127.061 327.011 127.334 335.218M127.334 335.218C127.018 337.575 126.013 338.349 124 338.548M127.334 335.218C127.405 337.865 126.347 338.625 124 338.548M124 338.548C100.114 338.998 76.2158 339.028 53.5584 338.548M124 338.548C104.042 338.677 83.9411 338.633 53.5584 338.548M53.5584 338.548C51.0177 338.655 49.8239 337.357 50.2249 335.218M53.5584 338.548C51.4552 338.204 50.2718 337.375 50.2249 335.218M50.2249 335.218C50.4208 331.04 50.4645 326.193 50.2249 320.346M50.2249 335.218C49.8416 330.728 49.9447 326.633 50.2249 320.346" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M15.9086 346.082L86.0474 346.029L87.5277 346.837L88.2236 346.974L89.5747 348.764L89.4736 364.984L88.9361 366.449L87.6735 367.66L85.8609 367.726L15.4169 368.312L14.0617 367.805L12.5605 366.316L12.6918 365.412L12.6345 349.191L12.8595 347.361L14.4033 346.682L15.5409 346.497" fill="#FFF0C9"/>
<path d="M15.5838 346.393C41.0382 346.059 66.6936 346.021 86.0258 346.393M15.5838 346.393C43.7091 345.811 71.8626 345.931 86.0258 346.393M15.5838 346.393C13.2212 346.283 12.4264 347.49 12.2503 349.723M15.5838 346.393C13.4629 345.995 12.4326 347.505 12.2503 349.723M86.0258 346.393C88.1571 346.108 89.0551 347.708 89.3592 349.723M86.0258 346.393C88.4655 346.234 89.5884 347.909 89.3592 349.723M89.3592 349.723C89.2895 352.933 89.0207 356.039 89.3592 364.595M89.3592 349.723C89.1019 353.138 89.0863 356.388 89.3592 364.595M89.3592 364.595C89.0436 366.952 88.0383 367.726 86.0258 367.925M89.3592 364.595C89.4301 367.241 88.3727 368.002 86.0258 367.925M86.0258 367.925C62.1392 368.375 38.2412 368.405 15.5838 367.925M86.0258 367.925C66.0675 368.054 45.9665 368.01 15.5838 367.925M15.5838 367.925C13.0431 368.032 11.8493 366.734 12.2503 364.595M15.5838 367.925C13.4806 367.581 12.2972 366.752 12.2503 364.595M12.2503 364.595C12.4462 360.417 12.4899 355.57 12.2503 349.723M12.2503 364.595C11.867 360.105 11.9701 356.009 12.2503 349.723" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M-31.4727 316.623L38.9911 317.223L40.1036 316.944L41.7151 317.641L42.3433 319.925L42.0662 335.586L41.6891 336.848L40.8141 337.852L38.7806 338.906L-31.5582 338.607L-33.1114 338.003L-33.9697 337.254L-34.4437 336.219L-35 319.673L-33.7166 317.9L-32.9957 317.299L-31.2311 316.747" fill="#FFF0C9"/>
<path d="M-31.4941 316.987C-6.25752 316.958 19.2177 316.976 38.9478 316.987M-31.4941 316.987C-4.11158 317.552 23.3658 317.453 38.9478 316.987M-31.4941 316.987C-33.5578 316.989 -34.9672 317.987 -34.8276 320.317M-31.4941 316.987C-33.8161 316.75 -34.7266 317.699 -34.8276 320.317M38.9478 316.987C40.8666 317.192 42.4698 317.958 42.2813 320.317M38.9478 316.987C41.3989 317.393 41.9146 318.185 42.2813 320.317M42.2813 320.317C41.799 323.862 41.8979 327.821 42.2813 335.189M42.2813 320.317C42.0865 325.498 42.0177 331.069 42.2813 335.189M42.2813 335.189C42.0709 337.21 41.2312 338.89 38.9478 338.519M42.2813 335.189C42.4063 337.486 41.3573 338.728 38.9478 338.519M38.9478 338.519C11.9194 338.462 -15.0809 338.518 -31.4941 338.519M38.9478 338.519C17.0905 339.043 -4.76578 339.036 -31.4941 338.519M-31.4941 338.519C-34.1172 338.437 -34.7235 337.109 -34.8276 335.189M-31.4941 338.519C-33.6703 338.457 -34.8037 337.115 -34.8276 335.189M-34.8276 335.189C-34.7797 330.672 -34.8714 326.379 -34.8276 320.317M-34.8276 335.189C-34.6589 331.981 -34.5193 328.584 -34.8276 320.317" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M14.5569 288.533L84.653 288.046L86.6812 288.327L87.5698 289.518L88.0219 291.244L87.9053 306.702L87.9157 307.757L86.8198 309.748L84.8916 309.918L14.3548 309.521L13.4444 309.657L11.9808 308.778L11.0078 307.417L11.5099 290.928L11.9704 289.233L13.3183 288.265L14.759 288" fill="#FFF0C9"/>
<path d="M14.5144 288.296C35.6623 288.411 56.6279 288.349 84.9564 288.296M14.5144 288.296C29.087 287.954 43.6346 288.052 84.9564 288.296M14.5144 288.296C12.38 287.951 11.3393 289.409 11.181 291.627M14.5144 288.296C12.7685 288.739 11.0809 289.17 11.181 291.627M84.9564 288.296C87.368 288.158 88.4888 289.76 88.2899 291.627M84.9564 288.296C86.8127 288.385 88.1024 289.263 88.2899 291.627M88.2899 291.627C87.7148 295.42 88.2555 299.578 88.2899 306.498M88.2899 291.627C88.0044 296.165 88.0565 300.465 88.2899 306.498M88.2899 306.498C88.3513 309.09 87.2867 309.895 84.9564 309.829M88.2899 306.498C88.4763 308.928 87.5773 309.808 84.9564 309.829M84.9564 309.829C64.6471 309.93 44.4065 309.974 14.5144 309.829M84.9564 309.829C57.5655 310.04 30.2215 310.003 14.5144 309.829M14.5144 309.829C12.3956 309.529 11.2216 308.664 11.181 306.498M14.5144 309.829C12.3164 309.535 11.2143 308.735 11.181 306.498M11.181 306.498C11.106 301.081 10.8143 294.714 11.181 291.627M11.181 306.498C11.3414 303.114 11.183 299.688 11.181 291.627" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M135.013 17L199.498 17.5062L200.864 17.1811L201.678 18.1556L202.281 19.4354L202.636 33.5292L202.321 34.9143L201.056 36.5334L199.551 36.7382L135.397 37.1582L133.45 36.6273L132.148 35.7362L132.142 34.3199L132.139 19.5255L132.736 17.9527L134.102 17.2759L135.219 17.5792" fill="#FFF0C9"/>
<path d="M135.081 17.2911C158.035 17.4295 180.919 17.3944 199.244 17.2911M135.081 17.2911C153.669 17.0484 172.16 17.1072 199.244 17.2911M135.081 17.2911C133.105 17.0295 131.785 17.9414 132.045 20.3247M135.081 17.2911C133.343 17.5186 132.135 18.1879 132.045 20.3247M199.244 17.2911C201.496 17.5565 202.286 17.9433 202.28 20.3247M199.244 17.2911C201.473 17.4096 201.871 18.1538 202.28 20.3247M202.28 20.3247C201.709 23.1649 202.024 26.3577 202.28 33.8706M202.28 20.3247C202.05 24.202 202.102 28.4177 202.28 33.8706M202.28 33.8706C202.469 35.613 201.418 37.2758 199.244 36.9042M202.28 33.8706C202.29 35.6794 201.658 36.6283 199.244 36.9042M199.244 36.9042C183.153 36.798 167.097 36.5856 135.081 36.9042M199.244 36.9042C185.627 37.1317 172.103 37.1592 135.081 36.9042M135.081 36.9042C132.859 36.9819 132.034 35.7239 132.045 33.8706M135.081 36.9042C133.358 36.7857 131.962 35.9846 132.045 33.8706M132.045 33.8706C131.933 30.4426 132.069 27.811 132.045 20.3247M132.045 33.8706C132.141 30.8247 132.297 27.792 132.045 20.3247" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M423.013 17L487.498 17.5062L488.864 17.1811L489.678 18.1556L490.281 19.4354L490.636 33.5292L490.321 34.9143L489.056 36.5334L487.551 36.7382L423.397 37.1582L421.45 36.6273L420.148 35.7362L420.142 34.3199L420.139 19.5255L420.736 17.9527L422.102 17.2759L423.219 17.5792" fill="#FFF0C9"/>
<path d="M423.081 17.2911C446.035 17.4295 468.919 17.3944 487.244 17.2911M423.081 17.2911C441.669 17.0484 460.16 17.1072 487.244 17.2911M423.081 17.2911C421.105 17.0295 419.785 17.9414 420.045 20.3247M423.081 17.2911C421.343 17.5186 420.135 18.1879 420.045 20.3247M487.244 17.2911C489.496 17.5565 490.286 17.9433 490.28 20.3247M487.244 17.2911C489.473 17.4096 489.871 18.1538 490.28 20.3247M490.28 20.3247C489.709 23.1649 490.024 26.3577 490.28 33.8706M490.28 20.3247C490.05 24.202 490.102 28.4177 490.28 33.8706M490.28 33.8706C490.469 35.613 489.418 37.2758 487.244 36.9042M490.28 33.8706C490.29 35.6794 489.658 36.6283 487.244 36.9042M487.244 36.9042C471.153 36.798 455.097 36.5856 423.081 36.9042M487.244 36.9042C473.627 37.1317 460.103 37.1592 423.081 36.9042M423.081 36.9042C420.859 36.9819 420.034 35.7239 420.045 33.8706M423.081 36.9042C421.358 36.7857 419.962 35.9846 420.045 33.8706M420.045 33.8706C419.933 30.4426 420.069 27.811 420.045 20.3247M420.045 33.8706C420.141 30.8247 420.297 27.792 420.045 20.3247" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M471.013 44L535.498 44.5062L536.864 44.1811L537.678 45.1556L538.281 46.4354L538.636 60.5292L538.321 61.9143L537.056 63.5334L535.551 63.7382L471.397 64.1582L469.45 63.6273L468.148 62.7362L468.142 61.3199L468.139 46.5255L468.736 44.9527L470.102 44.2759L471.219 44.5792" fill="#FFF0C9"/>
<path d="M471.081 44.2911C494.035 44.4295 516.919 44.3944 535.244 44.2911M471.081 44.2911C489.669 44.0484 508.16 44.1072 535.244 44.2911M471.081 44.2911C469.105 44.0295 467.785 44.9414 468.045 47.3247M471.081 44.2911C469.343 44.5186 468.135 45.1879 468.045 47.3247M535.244 44.2911C537.496 44.5565 538.286 44.9433 538.28 47.3247M535.244 44.2911C537.473 44.4096 537.871 45.1538 538.28 47.3247M538.28 47.3247C537.709 50.1649 538.024 53.3577 538.28 60.8706M538.28 47.3247C538.05 51.202 538.102 55.4177 538.28 60.8706M538.28 60.8706C538.469 62.613 537.418 64.2758 535.244 63.9042M538.28 60.8706C538.29 62.6794 537.658 63.6283 535.244 63.9042M535.244 63.9042C519.153 63.798 503.097 63.5856 471.081 63.9042M535.244 63.9042C521.627 64.1317 508.103 64.1592 471.081 63.9042M471.081 63.9042C468.859 63.9819 468.034 62.7239 468.045 60.8706M471.081 63.9042C469.358 63.7857 467.962 62.9846 468.045 60.8706M468.045 60.8706C467.933 57.4426 468.069 54.811 468.045 47.3247M468.045 60.8706C468.141 57.8247 468.297 54.792 468.045 47.3247" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M392.013 44L456.498 44.5062L457.864 44.1811L458.678 45.1556L459.281 46.4354L459.636 60.5292L459.321 61.9143L458.056 63.5334L456.551 63.7382L392.397 64.1582L390.45 63.6273L389.148 62.7362L389.142 61.3199L389.139 46.5255L389.736 44.9527L391.102 44.2759L392.219 44.5792" fill="#FFF0C9"/>
<path d="M392.081 44.2911C415.035 44.4295 437.919 44.3944 456.244 44.2911M392.081 44.2911C410.669 44.0484 429.16 44.1072 456.244 44.2911M392.081 44.2911C390.105 44.0295 388.785 44.9414 389.045 47.3247M392.081 44.2911C390.343 44.5186 389.135 45.1879 389.045 47.3247M456.244 44.2911C458.496 44.5565 459.286 44.9433 459.28 47.3247M456.244 44.2911C458.473 44.4096 458.871 45.1538 459.28 47.3247M459.28 47.3247C458.709 50.1649 459.024 53.3577 459.28 60.8706M459.28 47.3247C459.05 51.202 459.102 55.4177 459.28 60.8706M459.28 60.8706C459.469 62.613 458.418 64.2758 456.244 63.9042M459.28 60.8706C459.29 62.6794 458.658 63.6283 456.244 63.9042M456.244 63.9042C440.153 63.798 424.097 63.5856 392.081 63.9042M456.244 63.9042C442.627 64.1317 429.103 64.1592 392.081 63.9042M392.081 63.9042C389.859 63.9819 389.034 62.7239 389.045 60.8706M392.081 63.9042C390.358 63.7857 388.962 62.9846 389.045 60.8706M389.045 60.8706C388.933 57.4426 389.069 54.811 389.045 47.3247M389.045 60.8706C389.141 57.8247 389.297 54.792 389.045 47.3247" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M171.391 -9.71045L235.309 -9.48483L236.749 -8.91603L238.082 -8.38231L238.797 -6.93093L238.852 7.52125L238.675 8.93566L237.415 9.63907L235.305 10.3112L171.07 10.26L170.04 10.4562L168.938 8.98116L168.322 7.617L168.41 -6.91481L169.134 -8.5302L170.092 -9.41183L171.303 -9.42415" fill="#FFF0C9"/>
<path d="M171.297 -9.33995C195.65 -9.45466 220.061 -9.49068 235.46 -9.33995M171.297 -9.33995C194.113 -9.39304 216.926 -9.34658 235.46 -9.33995M171.297 -9.33995C169.305 -9.04607 168.276 -8.05257 168.261 -6.30636M171.297 -9.33995C169.3 -9.58737 167.889 -8.37205 168.261 -6.30636M235.46 -9.33995C237.347 -9.36554 238.462 -8.50287 238.496 -6.30636M235.46 -9.33995C237.36 -9.6471 238.347 -8.37584 238.496 -6.30636M238.496 -6.30636C238.615 -1.47728 238.553 3.69593 238.496 7.23953M238.496 -6.30636C238.82 -1.28579 238.506 3.72626 238.496 7.23953M238.496 7.23953C238.175 9.4986 237.761 10.4769 235.46 10.2731M238.496 7.23953C238.8 9.2635 237.839 10.3518 235.46 10.2731M235.46 10.2731C215.54 10.7528 195.791 10.8893 171.297 10.2731M235.46 10.2731C210.414 10.4836 185.45 10.4106 171.297 10.2731M171.297 10.2731C169.114 10.5111 168.12 9.23411 168.261 7.23953M171.297 10.2731C169.701 10.2779 168.612 9.36683 168.261 7.23953M168.261 7.23953C168.313 2.89866 167.715 -1.8944 168.261 -6.30636M168.261 7.23953C168.366 3.95757 168.519 0.546689 168.261 -6.30636" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
<path d="M91.8001 -9.82272L156.309 -10L157.767 -9.28237L158.847 -9.2454L159.618 -7.39017L159.39 6.60128L158.988 8.42712L158.236 9.59505L156.056 9.67847L92.4216 9.63013L91.1558 9.50594L89.2866 8.46125L89.4706 7.55307L89 -7.50677L89.7192 -8.89653L91.1463 -9.61891L91.987 -9.88434" fill="#FFF0C9"/>
<path d="M92.1234 -9.7847C114.71 -9.34672 137.222 -9.29743 156.286 -9.7847M92.1234 -9.7847C114.125 -9.78091 136.093 -9.65008 156.286 -9.7847M92.1234 -9.7847C90.3851 -9.94301 89.3983 -8.64995 89.0871 -6.75112M92.1234 -9.7847C89.8566 -10.1895 89.1611 -8.76086 89.0871 -6.75112M156.286 -9.7847C158.314 -9.71834 159.096 -8.60824 159.322 -6.75112M156.286 -9.7847C158.642 -10.0615 159.091 -8.55989 159.322 -6.75112M159.322 -6.75112C159.338 -2.60364 159.32 1.87374 159.322 6.79478M159.322 -6.75112C159.407 -3.69099 159.545 -0.287687 159.322 6.79478M159.322 6.79478C158.995 8.48032 158.195 9.68901 156.286 9.82836M159.322 6.79478C158.889 8.89269 158.251 10.0341 156.286 9.82836M156.286 9.82836C142.989 9.49657 129.71 9.58947 92.1234 9.82836M156.286 9.82836C139.169 10.3592 121.913 10.3545 92.1234 9.82836M92.1234 9.82836C89.7323 10.0578 89.4306 8.86141 89.0871 6.79478M92.1234 9.82836C89.7143 9.85965 89.144 8.8908 89.0871 6.79478M89.0871 6.79478C89.0235 3.59056 89.3272 1.22152 89.0871 -6.75112M89.0871 6.79478C89.2512 3.60573 89.1326 0.450801 89.0871 -6.75112" stroke="#FFF0C9" stroke-width="2" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17344_46416">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,32 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17628_50628)">
<rect width="480" height="360" fill="#181610"/>
<path d="M375.625 346.219L446.207 346.115L447.362 346.27L448.426 347.494L448.861 348.724L449.483 364.45L449.121 366.473L447.698 367.887L445.498 368.16L375.275 367.759L373.815 368.136L372.511 366.745L372 365.099L372.548 349.01L373.272 347.506L373.757 346.769L375.718 346.506" fill="#423B24"/>
<path d="M375.441 346.425C395.74 346.168 416.114 346.067 445.882 346.425M375.441 346.425C395.04 345.937 414.622 345.785 445.882 346.425M375.441 346.425C373.395 346.411 372.006 347.719 372.107 349.755M375.441 346.425C373.401 346.428 371.947 347.409 372.107 349.755M445.882 346.425C447.824 346.636 449.124 347.25 449.216 349.755M445.882 346.425C447.755 346.66 449.434 347.375 449.216 349.755M449.216 349.755C449.546 354.766 449.344 359.987 449.216 364.627M449.216 349.755C448.848 352.937 448.902 355.874 449.216 364.627M449.216 364.627C449.037 366.525 447.79 368.095 445.882 367.957M449.216 364.627C448.974 366.618 448.175 368.384 445.882 367.957M445.882 367.957C422.989 368.317 399.942 368.157 375.441 367.957M445.882 367.957C425.919 367.876 405.944 367.942 375.441 367.957M375.441 367.957C373.055 368.098 371.788 366.954 372.107 364.627M375.441 367.957C372.757 367.864 372.226 366.502 372.107 364.627M372.107 364.627C371.89 360.051 372.16 355.774 372.107 349.755M372.107 364.627C372.234 359.799 371.92 355.144 372.107 349.755" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M53.8832 316.705L124.022 316.652L125.502 317.46L126.198 317.597L127.549 319.387L127.448 335.607L126.911 337.072L125.648 338.283L123.836 338.349L53.3915 338.935L52.0363 338.428L50.5352 336.939L50.6664 336.035L50.6091 319.814L50.8341 317.985L52.378 317.305L53.5155 317.12" fill="#423B24"/>
<path d="M53.5584 317.016C79.0128 316.682 104.668 316.644 124 317.016M53.5584 317.016C81.6837 316.434 109.837 316.554 124 317.016M53.5584 317.016C51.1958 316.907 50.401 318.113 50.2249 320.346M53.5584 317.016C51.4375 316.618 50.4072 318.128 50.2249 320.346M124 317.016C126.132 316.731 127.03 318.331 127.334 320.346M124 317.016C126.44 316.857 127.563 318.532 127.334 320.346M127.334 320.346C127.264 323.556 126.995 326.662 127.334 335.218M127.334 320.346C127.077 323.761 127.061 327.011 127.334 335.218M127.334 335.218C127.018 337.575 126.013 338.349 124 338.548M127.334 335.218C127.405 337.865 126.347 338.625 124 338.548M124 338.548C100.114 338.998 76.2158 339.028 53.5584 338.548M124 338.548C104.042 338.677 83.9411 338.633 53.5584 338.548M53.5584 338.548C51.0177 338.655 49.8239 337.357 50.2249 335.218M53.5584 338.548C51.4552 338.204 50.2718 337.375 50.2249 335.218M50.2249 335.218C50.4208 331.04 50.4645 326.193 50.2249 320.346M50.2249 335.218C49.8416 330.728 49.9447 326.633 50.2249 320.346" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M15.9086 346.082L86.0474 346.029L87.5277 346.837L88.2236 346.974L89.5747 348.764L89.4736 364.984L88.9361 366.449L87.6735 367.66L85.8609 367.726L15.4169 368.312L14.0617 367.805L12.5605 366.316L12.6918 365.412L12.6345 349.191L12.8595 347.361L14.4033 346.682L15.5409 346.497" fill="#423B24"/>
<path d="M15.5838 346.393C41.0382 346.059 66.6936 346.021 86.0258 346.393M15.5838 346.393C43.7091 345.811 71.8626 345.931 86.0258 346.393M15.5838 346.393C13.2212 346.283 12.4264 347.49 12.2503 349.723M15.5838 346.393C13.4629 345.995 12.4326 347.505 12.2503 349.723M86.0258 346.393C88.1571 346.108 89.0551 347.708 89.3592 349.723M86.0258 346.393C88.4655 346.234 89.5884 347.909 89.3592 349.723M89.3592 349.723C89.2895 352.933 89.0207 356.039 89.3592 364.595M89.3592 349.723C89.1019 353.138 89.0863 356.388 89.3592 364.595M89.3592 364.595C89.0436 366.952 88.0383 367.726 86.0258 367.925M89.3592 364.595C89.4301 367.241 88.3727 368.002 86.0258 367.925M86.0258 367.925C62.1392 368.375 38.2412 368.405 15.5838 367.925M86.0258 367.925C66.0675 368.054 45.9665 368.01 15.5838 367.925M15.5838 367.925C13.0431 368.032 11.8493 366.734 12.2503 364.595M15.5838 367.925C13.4806 367.581 12.2972 366.752 12.2503 364.595M12.2503 364.595C12.4462 360.417 12.4899 355.57 12.2503 349.723M12.2503 364.595C11.867 360.105 11.9701 356.009 12.2503 349.723" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M-31.4727 316.623L38.9911 317.223L40.1036 316.944L41.7151 317.641L42.3433 319.925L42.0662 335.586L41.6891 336.848L40.8141 337.852L38.7806 338.906L-31.5582 338.607L-33.1114 338.003L-33.9697 337.254L-34.4437 336.219L-35 319.673L-33.7166 317.9L-32.9957 317.299L-31.2311 316.747" fill="#423B24"/>
<path d="M-31.4941 316.987C-6.25752 316.958 19.2177 316.976 38.9478 316.987M-31.4941 316.987C-4.11158 317.552 23.3658 317.453 38.9478 316.987M-31.4941 316.987C-33.5578 316.989 -34.9672 317.987 -34.8276 320.317M-31.4941 316.987C-33.8161 316.75 -34.7266 317.699 -34.8276 320.317M38.9478 316.987C40.8666 317.192 42.4698 317.958 42.2813 320.317M38.9478 316.987C41.3989 317.393 41.9146 318.185 42.2813 320.317M42.2813 320.317C41.799 323.862 41.8979 327.821 42.2813 335.189M42.2813 320.317C42.0865 325.498 42.0177 331.069 42.2813 335.189M42.2813 335.189C42.0709 337.21 41.2312 338.89 38.9478 338.519M42.2813 335.189C42.4063 337.486 41.3573 338.728 38.9478 338.519M38.9478 338.519C11.9194 338.462 -15.0809 338.518 -31.4941 338.519M38.9478 338.519C17.0905 339.043 -4.76578 339.036 -31.4941 338.519M-31.4941 338.519C-34.1172 338.437 -34.7235 337.109 -34.8276 335.189M-31.4941 338.519C-33.6703 338.457 -34.8037 337.115 -34.8276 335.189M-34.8276 335.189C-34.7797 330.672 -34.8714 326.379 -34.8276 320.317M-34.8276 335.189C-34.6589 331.981 -34.5193 328.584 -34.8276 320.317" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M14.5569 288.533L84.653 288.046L86.6812 288.327L87.5698 289.518L88.0219 291.244L87.9053 306.702L87.9157 307.757L86.8198 309.748L84.8916 309.918L14.3548 309.521L13.4444 309.657L11.9808 308.778L11.0078 307.417L11.5099 290.928L11.9704 289.233L13.3183 288.265L14.759 288" fill="#423B24"/>
<path d="M14.5144 288.296C35.6623 288.411 56.6279 288.349 84.9564 288.296M14.5144 288.296C29.087 287.954 43.6346 288.052 84.9564 288.296M14.5144 288.296C12.38 287.951 11.3393 289.409 11.181 291.627M14.5144 288.296C12.7685 288.739 11.0809 289.17 11.181 291.627M84.9564 288.296C87.368 288.158 88.4888 289.76 88.2899 291.627M84.9564 288.296C86.8127 288.385 88.1024 289.263 88.2899 291.627M88.2899 291.627C87.7148 295.42 88.2555 299.578 88.2899 306.498M88.2899 291.627C88.0044 296.165 88.0565 300.465 88.2899 306.498M88.2899 306.498C88.3513 309.09 87.2867 309.895 84.9564 309.829M88.2899 306.498C88.4763 308.928 87.5773 309.808 84.9564 309.829M84.9564 309.829C64.6471 309.93 44.4065 309.974 14.5144 309.829M84.9564 309.829C57.5655 310.04 30.2215 310.003 14.5144 309.829M14.5144 309.829C12.3956 309.529 11.2216 308.664 11.181 306.498M14.5144 309.829C12.3164 309.535 11.2143 308.735 11.181 306.498M11.181 306.498C11.106 301.081 10.8143 294.714 11.181 291.627M11.181 306.498C11.3414 303.114 11.183 299.688 11.181 291.627" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M135.013 17L199.498 17.5062L200.864 17.1811L201.678 18.1556L202.281 19.4354L202.636 33.5292L202.321 34.9143L201.056 36.5334L199.551 36.7382L135.397 37.1582L133.45 36.6273L132.148 35.7362L132.142 34.3199L132.139 19.5255L132.736 17.9527L134.102 17.2759L135.219 17.5792" fill="#423B24"/>
<path d="M135.081 17.2911C158.035 17.4295 180.919 17.3944 199.244 17.2911M135.081 17.2911C153.669 17.0484 172.16 17.1072 199.244 17.2911M135.081 17.2911C133.105 17.0295 131.785 17.9414 132.045 20.3247M135.081 17.2911C133.343 17.5186 132.135 18.1879 132.045 20.3247M199.244 17.2911C201.496 17.5565 202.286 17.9433 202.28 20.3247M199.244 17.2911C201.473 17.4096 201.871 18.1538 202.28 20.3247M202.28 20.3247C201.709 23.1649 202.024 26.3577 202.28 33.8706M202.28 20.3247C202.05 24.202 202.102 28.4177 202.28 33.8706M202.28 33.8706C202.469 35.613 201.418 37.2758 199.244 36.9042M202.28 33.8706C202.29 35.6794 201.658 36.6283 199.244 36.9042M199.244 36.9042C183.153 36.798 167.097 36.5856 135.081 36.9042M199.244 36.9042C185.627 37.1317 172.103 37.1592 135.081 36.9042M135.081 36.9042C132.859 36.9819 132.034 35.7239 132.045 33.8706M135.081 36.9042C133.358 36.7857 131.962 35.9846 132.045 33.8706M132.045 33.8706C131.933 30.4426 132.069 27.811 132.045 20.3247M132.045 33.8706C132.141 30.8247 132.297 27.792 132.045 20.3247" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M423.013 17L487.498 17.5062L488.864 17.1811L489.678 18.1556L490.281 19.4354L490.636 33.5292L490.321 34.9143L489.056 36.5334L487.551 36.7382L423.397 37.1582L421.45 36.6273L420.148 35.7362L420.142 34.3199L420.139 19.5255L420.736 17.9527L422.102 17.2759L423.219 17.5792" fill="#423B24"/>
<path d="M423.081 17.2911C446.035 17.4295 468.919 17.3944 487.244 17.2911M423.081 17.2911C441.669 17.0484 460.16 17.1072 487.244 17.2911M423.081 17.2911C421.105 17.0295 419.785 17.9414 420.045 20.3247M423.081 17.2911C421.343 17.5186 420.135 18.1879 420.045 20.3247M487.244 17.2911C489.496 17.5565 490.286 17.9433 490.28 20.3247M487.244 17.2911C489.473 17.4096 489.871 18.1538 490.28 20.3247M490.28 20.3247C489.709 23.1649 490.024 26.3577 490.28 33.8706M490.28 20.3247C490.05 24.202 490.102 28.4177 490.28 33.8706M490.28 33.8706C490.469 35.613 489.418 37.2758 487.244 36.9042M490.28 33.8706C490.29 35.6794 489.658 36.6283 487.244 36.9042M487.244 36.9042C471.153 36.798 455.097 36.5856 423.081 36.9042M487.244 36.9042C473.627 37.1317 460.103 37.1592 423.081 36.9042M423.081 36.9042C420.859 36.9819 420.034 35.7239 420.045 33.8706M423.081 36.9042C421.358 36.7857 419.962 35.9846 420.045 33.8706M420.045 33.8706C419.933 30.4426 420.069 27.811 420.045 20.3247M420.045 33.8706C420.141 30.8247 420.297 27.792 420.045 20.3247" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M471.013 44L535.498 44.5062L536.864 44.1811L537.678 45.1556L538.281 46.4354L538.636 60.5292L538.321 61.9143L537.056 63.5334L535.551 63.7382L471.397 64.1582L469.45 63.6273L468.148 62.7362L468.142 61.3199L468.139 46.5255L468.736 44.9527L470.102 44.2759L471.219 44.5792" fill="#423B24"/>
<path d="M471.081 44.2911C494.035 44.4295 516.919 44.3944 535.244 44.2911M471.081 44.2911C489.669 44.0484 508.16 44.1072 535.244 44.2911M471.081 44.2911C469.105 44.0295 467.785 44.9414 468.045 47.3247M471.081 44.2911C469.343 44.5186 468.135 45.1879 468.045 47.3247M535.244 44.2911C537.496 44.5565 538.286 44.9433 538.28 47.3247M535.244 44.2911C537.473 44.4096 537.871 45.1538 538.28 47.3247M538.28 47.3247C537.709 50.1649 538.024 53.3577 538.28 60.8706M538.28 47.3247C538.05 51.202 538.102 55.4177 538.28 60.8706M538.28 60.8706C538.469 62.613 537.418 64.2758 535.244 63.9042M538.28 60.8706C538.29 62.6794 537.658 63.6283 535.244 63.9042M535.244 63.9042C519.153 63.798 503.097 63.5856 471.081 63.9042M535.244 63.9042C521.627 64.1317 508.103 64.1592 471.081 63.9042M471.081 63.9042C468.859 63.9819 468.034 62.7239 468.045 60.8706M471.081 63.9042C469.358 63.7857 467.962 62.9846 468.045 60.8706M468.045 60.8706C467.933 57.4426 468.069 54.811 468.045 47.3247M468.045 60.8706C468.141 57.8247 468.297 54.792 468.045 47.3247" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M392.013 44L456.498 44.5062L457.864 44.1811L458.678 45.1556L459.281 46.4354L459.636 60.5292L459.321 61.9143L458.056 63.5334L456.551 63.7382L392.397 64.1582L390.45 63.6273L389.148 62.7362L389.142 61.3199L389.139 46.5255L389.736 44.9527L391.102 44.2759L392.219 44.5792" fill="#423B24"/>
<path d="M392.081 44.2911C415.035 44.4295 437.919 44.3944 456.244 44.2911M392.081 44.2911C410.669 44.0484 429.16 44.1072 456.244 44.2911M392.081 44.2911C390.105 44.0295 388.785 44.9414 389.045 47.3247M392.081 44.2911C390.343 44.5186 389.135 45.1879 389.045 47.3247M456.244 44.2911C458.496 44.5565 459.286 44.9433 459.28 47.3247M456.244 44.2911C458.473 44.4096 458.871 45.1538 459.28 47.3247M459.28 47.3247C458.709 50.1649 459.024 53.3577 459.28 60.8706M459.28 47.3247C459.05 51.202 459.102 55.4177 459.28 60.8706M459.28 60.8706C459.469 62.613 458.418 64.2758 456.244 63.9042M459.28 60.8706C459.29 62.6794 458.658 63.6283 456.244 63.9042M456.244 63.9042C440.153 63.798 424.097 63.5856 392.081 63.9042M456.244 63.9042C442.627 64.1317 429.103 64.1592 392.081 63.9042M392.081 63.9042C389.859 63.9819 389.034 62.7239 389.045 60.8706M392.081 63.9042C390.358 63.7857 388.962 62.9846 389.045 60.8706M389.045 60.8706C388.933 57.4426 389.069 54.811 389.045 47.3247M389.045 60.8706C389.141 57.8247 389.297 54.792 389.045 47.3247" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M171.391 -9.71045L235.309 -9.48483L236.749 -8.91603L238.082 -8.38231L238.797 -6.93093L238.852 7.52125L238.675 8.93566L237.415 9.63907L235.305 10.3112L171.07 10.26L170.04 10.4562L168.938 8.98116L168.322 7.617L168.41 -6.91481L169.134 -8.5302L170.092 -9.41183L171.303 -9.42415" fill="#423B24"/>
<path d="M171.297 -9.33995C195.65 -9.45466 220.061 -9.49068 235.46 -9.33995M171.297 -9.33995C194.113 -9.39304 216.926 -9.34658 235.46 -9.33995M171.297 -9.33995C169.305 -9.04607 168.276 -8.05257 168.261 -6.30636M171.297 -9.33995C169.3 -9.58737 167.889 -8.37205 168.261 -6.30636M235.46 -9.33995C237.347 -9.36554 238.462 -8.50287 238.496 -6.30636M235.46 -9.33995C237.36 -9.6471 238.347 -8.37584 238.496 -6.30636M238.496 -6.30636C238.615 -1.47728 238.553 3.69593 238.496 7.23953M238.496 -6.30636C238.82 -1.28579 238.506 3.72626 238.496 7.23953M238.496 7.23953C238.175 9.4986 237.761 10.4769 235.46 10.2731M238.496 7.23953C238.8 9.2635 237.839 10.3518 235.46 10.2731M235.46 10.2731C215.54 10.7528 195.791 10.8893 171.297 10.2731M235.46 10.2731C210.414 10.4836 185.45 10.4106 171.297 10.2731M171.297 10.2731C169.114 10.5111 168.12 9.23411 168.261 7.23953M171.297 10.2731C169.701 10.2779 168.612 9.36683 168.261 7.23953M168.261 7.23953C168.313 2.89866 167.715 -1.8944 168.261 -6.30636M168.261 7.23953C168.366 3.95757 168.519 0.546689 168.261 -6.30636" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
<path d="M91.8001 -9.82272L156.309 -10L157.767 -9.28237L158.847 -9.2454L159.618 -7.39017L159.39 6.60128L158.988 8.42712L158.236 9.59505L156.056 9.67847L92.4216 9.63013L91.1558 9.50594L89.2866 8.46125L89.4706 7.55307L89 -7.50677L89.7192 -8.89653L91.1463 -9.61891L91.987 -9.88434" fill="#423B24"/>
<path d="M92.1234 -9.7847C114.71 -9.34672 137.222 -9.29743 156.286 -9.7847M92.1234 -9.7847C114.125 -9.78091 136.093 -9.65008 156.286 -9.7847M92.1234 -9.7847C90.3851 -9.94301 89.3983 -8.64995 89.0871 -6.75112M92.1234 -9.7847C89.8566 -10.1895 89.1611 -8.76086 89.0871 -6.75112M156.286 -9.7847C158.314 -9.71834 159.096 -8.60824 159.322 -6.75112M156.286 -9.7847C158.642 -10.0615 159.091 -8.55989 159.322 -6.75112M159.322 -6.75112C159.338 -2.60364 159.32 1.87374 159.322 6.79478M159.322 -6.75112C159.407 -3.69099 159.545 -0.287687 159.322 6.79478M159.322 6.79478C158.995 8.48032 158.195 9.68901 156.286 9.82836M159.322 6.79478C158.889 8.89269 158.251 10.0341 156.286 9.82836M156.286 9.82836C142.989 9.49657 129.71 9.58947 92.1234 9.82836M156.286 9.82836C139.169 10.3592 121.913 10.3545 92.1234 9.82836M92.1234 9.82836C89.7323 10.0578 89.4306 8.86141 89.0871 6.79478M92.1234 9.82836C89.7143 9.85965 89.144 8.8908 89.0871 6.79478M89.0871 6.79478C89.0235 3.59056 89.3272 1.22152 89.0871 -6.75112M89.0871 6.79478C89.2512 3.60573 89.1326 0.450801 89.0871 -6.75112" stroke="#423B24" stroke-width="2" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17628_50628">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,25 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17019_8101)">
<rect width="480" height="360" fill="#FFFBF0"/>
<path d="M102.132 140.598C107.487 143.723 110.409 150.637 113.81 155.78C117.211 160.922 120.131 165.924 122.533 171.453C124.936 176.984 126.846 182.971 128.223 188.959C129.597 194.947 130.45 201.178 130.787 207.379C131.124 213.58 131.054 220.039 130.247 226.17C129.437 232.298 128.056 238.306 125.939 244.158C123.819 250.009 120.694 255.861 117.537 261.276C114.38 266.689 110.904 271.958 106.994 276.642C103.083 281.327 98.8593 285.431 94.0748 289.381C89.2926 293.33 83.683 297.329 78.2922 300.343C72.9037 303.354 67.6542 305.665 61.7368 307.458C55.8195 309.25 49.0087 310.316 42.7904 311.098C36.5699 311.877 30.5409 312.466 24.423 312.139C18.3073 311.814 12.0982 310.553 6.08973 309.144C0.0812149 307.732 -5.97289 306.226 -11.6281 303.681C-17.281 301.133 -22.7493 297.411 -27.8369 293.864C-32.9246 290.319 -37.8458 286.665 -42.1539 282.407C-46.4642 278.146 -50.2549 273.494 -53.6945 268.309C-57.1364 263.121 -60.3823 256.942 -62.8007 251.284C-65.2192 245.626 -66.9105 240.313 -68.2052 234.355C-69.5022 228.399 -70.3319 221.797 -70.5781 215.537C-70.822 209.277 -70.5803 202.823 -69.6754 196.792C-68.7728 190.761 -67.0564 185.191 -65.1531 179.354C-63.2521 173.518 -61.2599 167.158 -58.2647 161.774C-55.2719 156.391 -51.2008 151.78 -47.1868 147.056C-43.1751 142.334 -39.0197 137.389 -34.1919 133.435C-29.3641 129.479 -23.7295 126.243 -18.2224 123.332C-12.7154 120.419 -7.00774 117.892 -1.15195 115.961C4.70157 114.027 10.881 112.523 16.9078 111.741C22.9368 110.957 28.7903 110.996 35.0154 111.268C41.2382 111.541 48.1721 111.995 54.2513 113.382C60.3327 114.768 65.9127 116.915 71.4927 119.587C77.0727 122.258 81.7181 124.753 87.7357 129.406C93.7534 134.06 103.733 143.161 107.603 147.508C111.473 151.855 112.319 154.398 110.956 155.489M68.4657 118.69C74.7021 119.494 80.51 124.366 85.8233 127.698C91.1389 131.031 95.8983 134.567 100.352 138.685C104.806 142.805 109.046 147.324 112.552 152.41C116.057 157.496 118.774 163.533 121.391 169.198C124.006 174.866 126.597 180.597 128.243 186.407C129.889 192.218 130.855 197.849 131.261 204.064C131.669 210.279 131.573 217.421 130.684 223.695C129.795 229.969 127.789 235.802 125.929 241.701C124.072 247.603 122.394 253.568 119.531 259.096C116.668 264.625 112.615 270.127 108.754 274.871C104.891 279.616 101.009 283.681 96.3542 287.563C91.7019 291.444 86.1516 295.05 80.8314 298.154C75.5136 301.256 70.2185 303.994 64.4402 306.18C58.6619 308.369 52.4027 310.309 46.1617 311.275C39.9207 312.241 33.2922 312.189 26.9964 311.977C20.7007 311.766 14.4437 311.175 8.38965 310.007C2.33783 308.841 -3.63194 307.326 -9.31678 304.983C-15.0016 302.638 -20.7434 299.397 -25.7194 295.943C-30.6953 292.487 -34.7162 288.406 -39.1701 284.252C-43.6218 280.096 -48.6388 275.971 -52.4363 271.017C-56.2338 266.066 -59.4318 260.167 -61.9551 254.54C-64.4807 248.914 -66.0079 243.165 -67.5852 237.263C-69.1626 231.36 -71.0545 225.263 -71.4192 219.121C-71.7816 212.981 -70.5006 206.609 -69.762 200.416C-69.0235 194.222 -68.734 187.825 -66.9834 181.962C-65.2351 176.097 -62.1283 170.821 -59.2699 165.233C-56.4116 159.645 -53.5851 153.273 -49.8355 148.431C-46.0881 143.586 -41.5134 140.134 -36.7836 136.169C-32.0538 132.202 -26.8386 127.87 -21.4614 124.632C-16.0843 121.394 -10.42 118.719 -4.5209 116.733C1.37592 114.747 7.70811 113.784 13.9286 112.718C20.1491 111.65 26.5816 110.257 32.8066 110.332C39.0294 110.407 45.3092 111.795 51.2721 113.166C57.235 114.536 65.7874 117.336 68.5819 118.554C71.3765 119.772 68.5637 118.994 68.044 120.471" fill="#FFDAD6"/>
<path d="M25.7556 110.821C31.5909 108.85 38.698 110.932 44.9345 111.832C51.1709 112.734 57.2889 114.256 63.1743 116.227C69.0597 118.197 74.9155 120.549 80.247 123.653C85.5786 126.755 90.5158 130.806 95.1612 134.847C99.8066 138.885 104.174 143.102 108.117 147.888C112.063 152.673 115.895 158.091 118.824 163.558C121.755 169.026 123.895 174.816 125.703 180.69C127.511 186.564 128.853 192.733 129.671 198.803C130.49 204.87 130.825 211.019 130.615 217.1C130.405 223.181 129.824 229.224 128.415 235.286C127.007 241.347 124.732 247.791 122.161 253.47C119.587 259.146 116.588 264.334 112.979 269.352C109.373 274.369 104.903 279.287 100.518 283.579C96.1322 287.872 91.7193 291.733 86.6704 295.109C81.6215 298.486 75.9321 301.427 70.2222 303.84C64.5146 306.255 58.5562 308.23 52.4178 309.596C46.2816 310.961 39.6303 311.725 33.4007 312.03C27.1711 312.334 21.0441 312.302 15.0447 311.425C9.04526 310.546 3.29204 308.791 -2.59566 306.76C-8.48337 304.731 -14.8931 302.279 -20.2861 299.24C-25.6792 296.205 -30.2152 292.512 -34.9564 288.535C-39.6975 284.561 -44.7578 280.198 -48.7308 275.385C-52.7038 270.57 -55.8471 265.061 -58.7944 259.653C-61.7439 254.245 -64.4724 248.748 -66.419 242.935C-68.3656 237.125 -69.7128 230.905 -70.4695 224.781C-71.2263 218.657 -71.3676 212.376 -70.9596 206.197C-70.5493 200.016 -69.5464 193.72 -68.0146 187.702C-66.4851 181.685 -64.2467 175.659 -61.7736 170.094C-59.2981 164.529 -56.6176 159.413 -53.1688 154.316C-49.7224 149.217 -45.485 143.838 -41.088 139.507C-36.691 135.176 -31.9453 131.652 -26.787 128.322C-21.6264 124.993 -15.896 122.028 -10.1314 119.533C-4.36676 117.036 -1.36023 114.538 7.80298 113.343C16.9662 112.148 35.7075 111.414 44.8524 112.363C53.9951 113.313 62.7914 117.492 62.6683 119.042M22.6601 111.77C28.443 109.739 35.8989 111.175 42.2585 111.811C48.6157 112.445 54.9183 113.777 60.8083 115.581C66.696 117.385 72.276 119.831 77.5893 122.639C82.9048 125.448 87.8147 128.566 92.6949 132.429C97.5751 136.292 102.774 141.023 106.871 145.815C110.967 150.61 114.165 155.93 117.269 161.186C120.374 166.442 123.499 171.698 125.496 177.352C127.49 183.005 128.436 188.884 129.243 195.108C130.05 201.334 130.362 208.338 130.339 214.698C130.316 221.057 130.36 227.294 129.108 233.264C127.857 239.233 125.386 244.803 122.835 250.511C120.283 256.222 117.226 262.36 113.793 267.525C110.36 272.692 106.378 277.071 102.236 281.509C98.0971 285.947 93.9349 290.692 88.9475 294.157C83.9625 297.62 77.9768 299.827 72.3216 302.297C66.6663 304.767 60.9154 307.237 55.014 308.982C49.1104 310.725 43.1338 312.266 36.911 312.764C30.6905 313.259 23.9503 312.827 17.6842 311.959C11.4204 311.091 5.06998 309.441 -0.676401 307.557C-6.42506 305.674 -11.4375 303.597 -16.7941 300.654C-22.1507 297.711 -27.8811 293.823 -32.8183 289.896C-37.7578 285.97 -42.255 281.754 -46.4218 277.094C-50.5885 272.435 -54.81 267.309 -57.8234 261.935C-60.8367 256.558 -62.5395 250.641 -64.502 244.846C-66.4623 239.054 -68.4887 233.218 -69.5919 227.176C-70.6952 221.134 -71.2149 214.794 -71.1169 208.592C-71.0188 202.391 -70.2097 196.04 -69.0061 189.973C-67.8026 183.903 -66.3028 177.804 -63.898 172.182C-61.4932 166.558 -58.1858 161.252 -54.5752 156.232C-50.9646 151.21 -46.4491 146.422 -42.2322 142.057C-38.0131 137.692 -34.2019 133.749 -29.2624 130.036C-24.323 126.323 -18.3418 122.387 -12.5886 119.776C-6.83536 117.165 -0.644495 115.833 5.25233 114.37C11.1469 112.907 19.7129 111.136 22.7878 110.996C25.8627 110.855 23.597 111.82 23.6996 113.518" stroke="#FFDAD6" stroke-width="8" stroke-linecap="round"/>
<path d="M69.7808 -100.904C76.6919 -104.194 85.1234 -102.697 92.7435 -102.422C100.361 -102.149 107.968 -100.849 115.494 -99.2583C123.021 -97.6676 130.7 -95.3895 137.903 -92.8816C145.104 -90.3738 151.958 -87.859 158.7 -84.211C165.445 -80.5629 172.217 -75.6791 178.363 -70.9979C184.508 -66.3166 190.284 -61.5216 195.57 -56.1235C200.856 -50.7276 205.686 -44.9199 210.078 -38.6115C214.471 -32.3008 218.649 -25.098 221.924 -18.2684C225.2 -11.4388 227.488 -4.88007 229.731 2.37052C231.974 9.62339 234.197 17.716 235.382 25.242C236.567 32.7679 236.811 39.9571 236.845 47.5285C236.879 55.1023 236.677 63.0993 235.585 70.6822C234.495 78.2628 232.633 85.7682 230.299 93.0188C227.967 100.269 225.081 107.331 221.585 114.186C218.086 121.04 213.664 127.968 209.312 134.142C204.963 140.316 200.712 145.817 195.481 151.235C190.252 156.654 184.068 161.899 177.934 166.653C171.798 171.41 165.395 176.055 158.668 179.769C151.942 183.48 144.81 186.391 137.57 188.936C130.333 191.48 122.804 193.571 115.243 195.037C107.68 196.502 99.7572 197.529 92.1942 197.727C84.6311 197.927 77.3848 197.192 69.8628 196.232C62.3431 195.271 54.4472 193.874 47.0642 191.965C39.6812 190.057 32.4692 187.816 25.5603 184.782C18.6514 181.749 12.0411 177.921 5.60866 173.761C-0.821545 169.603 -7.23124 164.972 -13.0232 159.828C-18.8152 154.685 -24.3405 148.789 -29.1432 142.899C-33.9436 137.007 -37.9941 130.979 -41.8349 124.488C-45.678 117.995 -49.2407 111.031 -52.1971 103.949C-55.1535 96.8649 -57.8773 89.5278 -59.5709 81.9905C-61.2645 74.4531 -61.8754 66.3446 -62.3564 58.7276C-62.8373 51.1129 -63.0516 43.8737 -62.4544 36.2908C-61.8572 28.7102 -60.5716 20.6677 -58.7777 13.2373C-56.9815 5.80465 -54.4879 -1.24567 -51.6865 -8.30282C-48.8874 -15.3577 -45.7714 -22.565 -41.9762 -29.1033C-38.1787 -35.6416 -33.7635 -41.6792 -28.9129 -47.5279C-24.0646 -53.3766 -18.6465 -59.041 -12.8773 -64.1956C-7.11043 -69.3525 -0.705296 -74.2545 5.69071 -78.4669C12.0867 -82.6771 18.5716 -86.357 25.4965 -89.4703C32.4236 -92.5812 38.3341 -95.0231 47.2443 -97.1442C56.1567 -99.2629 72.2402 -101.939 78.9622 -102.19C85.6842 -102.442 87.494 -101.159 87.5761 -98.653M206.741 -42.4962C213.069 -38.1518 214.648 -29.736 218.343 -23.0202C222.038 -16.3044 226.321 -9.31326 228.908 -2.20149C231.495 4.908 232.514 12.1358 233.868 19.6481C235.22 27.1604 236.779 35.3873 237.025 42.8701C237.271 50.3528 236.335 56.9843 235.345 64.5422C234.358 72.1 233.077 80.7911 231.099 88.2169C229.12 95.6405 226.572 102.258 223.474 109.09C220.379 115.92 216.606 122.706 212.522 129.199C208.437 135.694 203.942 142.453 198.966 148.054C193.99 153.654 188.526 158.044 182.666 162.81C176.806 167.575 170.464 172.671 163.804 176.646C157.144 180.622 149.836 183.836 142.706 186.66C135.576 189.484 128.341 191.944 121.029 193.592C113.719 195.242 106.377 195.938 98.8386 196.555C91.3006 197.169 83.5461 197.793 75.8007 197.288C68.053 196.78 59.838 195.406 52.357 193.514C44.8783 191.625 37.9466 188.913 30.9215 185.941C23.8963 182.968 16.7116 179.493 10.2108 175.681C3.70991 171.872 -2.22338 167.944 -8.08601 163.074C-13.9509 158.206 -19.8455 152.111 -24.9719 146.47C-30.0982 140.83 -34.7072 135.482 -38.842 129.231C-42.9746 122.979 -46.5236 115.961 -49.7741 108.963C-53.0245 101.965 -56.357 94.6824 -58.3401 87.2384C-60.3231 79.7921 -60.8588 71.8451 -61.6726 64.2896C-62.484 56.734 -63.3958 49.3742 -63.2203 41.9074C-63.0425 34.4383 -62.1421 26.9829 -60.6103 19.4888C-59.0786 11.9947 -56.6259 4.15699 -54.0274 -3.05946C-51.4266 -10.2759 -48.5956 -17.1942 -45.0101 -23.8053C-41.4269 -30.4164 -37.1553 -36.6634 -32.5258 -42.7283C-27.894 -48.7932 -22.8315 -54.7444 -17.2242 -60.1948C-11.6168 -65.6453 -5.20484 -71.0684 1.11823 -75.4288C7.4413 -79.7892 13.949 -83.1118 20.7097 -86.357C27.4704 -89.6045 34.3725 -92.6313 41.6825 -94.9025C48.9926 -97.176 56.9477 -98.8965 64.5655 -99.9957C72.1832 -101.097 79.8785 -101.493 87.3892 -101.505C94.8998 -101.518 102.185 -101.058 109.627 -100.066C117.072 -99.074 124.685 -97.7472 132.047 -95.5511C139.41 -93.3573 146.87 -90.3783 153.806 -86.8964C160.743 -83.4122 167.433 -79.2248 173.662 -74.6505C179.894 -70.0762 185.7 -64.6917 191.193 -59.4507C196.684 -54.2073 204.407 -46.2899 206.616 -43.1949C208.824 -40.0975 206.363 -42.4393 204.443 -40.8736" fill="#FCEECA"/>
<path d="M203.455 -47.1637C210.07 -43.1151 212.796 -34.8791 216.696 -28.3454C220.596 -21.8117 224.093 -15.1027 226.858 -7.96139C229.625 -0.817764 231.677 7.01542 233.293 14.5072C234.911 21.9968 235.987 29.3725 236.561 36.9827C237.136 44.5928 237.398 52.5171 236.737 60.1682C236.076 67.817 234.487 75.4613 232.597 82.8826C230.708 90.3039 228.276 97.691 225.399 104.698C222.52 111.703 219.14 118.469 215.331 124.921C211.522 131.372 207.376 137.485 202.543 143.409C197.711 149.333 192.092 155.363 186.339 160.461C180.586 165.557 174.52 169.919 168.022 173.986C161.523 178.053 154.304 181.815 147.348 184.862C140.389 187.909 133.566 190.36 126.279 192.274C118.99 194.186 111.233 195.538 103.617 196.339C95.9995 197.142 88.3065 197.42 80.5771 197.09C72.8476 196.76 64.7694 195.777 57.236 194.354C49.7048 192.934 42.4267 191.154 35.3787 188.565C28.3285 185.973 21.6636 182.509 14.937 178.808C8.2128 175.11 1.0851 171.012 -4.97584 166.367C-11.0345 161.72 -16.1426 156.454 -21.4217 150.937C-26.6986 145.421 -32.2239 139.556 -36.6436 133.261C-41.0611 126.966 -44.5987 120.016 -47.9312 113.171C-51.2637 106.328 -54.3455 99.4252 -56.6386 92.1973C-58.9294 84.9695 -60.607 77.3525 -61.6852 69.8061C-62.761 62.2596 -63.2146 54.5584 -63.1007 46.9164C-62.9867 39.2721 -62.2732 31.4981 -61.0013 23.9448C-59.7294 16.3938 -57.7441 8.8019 -55.4738 1.60365C-53.2012 -5.59232 -50.7053 -12.3878 -47.3728 -19.2401C-44.038 -26.0901 -39.8827 -33.2838 -35.4697 -39.5012C-31.0568 -45.7186 -26.245 -51.1964 -20.8952 -56.5444C-15.5454 -61.8948 -9.54833 -66.9538 -3.36658 -71.5941C2.81516 -76.2344 9.51662 -80.7677 16.1953 -84.3861C22.8739 -88.0046 29.5936 -90.847 36.7031 -93.3003C43.8148 -95.7559 51.2183 -97.6015 58.8521 -99.1195C66.4858 -100.637 74.8147 -102.11 82.5077 -102.408C90.1984 -102.708 97.4789 -101.825 105.005 -100.917C112.532 -100.009 120.243 -99.0398 127.667 -96.962C135.089 -94.8843 142.595 -91.7482 149.543 -88.4484C156.49 -85.1463 163.037 -81.3321 169.355 -77.1629C175.676 -72.9937 180.041 -70.9022 187.461 -63.4332C194.878 -55.9641 208.502 -40.4866 213.865 -32.3485C219.231 -24.2126 221.752 -15.9744 219.648 -14.6089M142.258 -92.0555C149.743 -91.5229 156.028 -84.9574 162.741 -80.886C169.456 -76.8124 176.597 -72.3951 182.546 -67.6229C188.496 -62.8506 193.51 -57.944 198.441 -52.2478C203.369 -46.5493 207.991 -39.8358 212.122 -33.4386C216.25 -27.0414 219.926 -20.8013 223.215 -13.8625C226.502 -6.92137 229.76 0.977812 231.85 8.20109C233.942 15.4266 234.911 22.0446 235.759 29.4841C236.607 36.9235 237.124 45.0025 236.942 52.8334C236.762 60.6666 236.156 68.9003 234.674 76.4786C233.19 84.0569 230.735 91.2529 228.05 98.2986C225.367 105.342 222.044 112.081 218.57 118.746C215.096 125.412 211.718 132.271 207.212 138.298C202.705 144.321 197.118 149.679 191.532 154.897C185.943 160.118 180.034 165.206 173.679 169.614C167.324 174.02 160.128 177.991 153.397 181.344C146.668 184.698 140.452 187.399 133.297 189.734C126.145 192.069 118.146 194.117 110.478 195.349C102.808 196.58 94.9806 197.137 87.2785 197.121C79.5787 197.106 71.9131 196.436 64.2702 195.255C56.6274 194.072 48.6905 192.242 41.4215 190.028C34.1547 187.814 27.3028 185.199 20.6675 181.969C14.0344 178.74 7.93699 174.942 1.61392 170.652C-4.71143 166.362 -11.6727 161.633 -17.2823 156.233C-22.8897 150.835 -27.5374 144.31 -32.0369 138.25C-36.5388 132.192 -40.5254 126.498 -44.2865 119.877C-48.0498 113.255 -51.9931 105.684 -54.6099 98.5262C-57.2244 91.3712 -58.494 84.3983 -59.9756 76.9429C-61.4549 69.4875 -63.1098 61.5063 -63.4973 53.7915C-63.8825 46.0767 -63.3377 38.2708 -62.2938 30.6515C-61.2521 23.0345 -59.2234 15.3333 -57.238 8.0782C-55.255 0.823058 -53.3129 -5.99058 -50.3884 -12.877C-47.464 -19.7635 -43.9856 -26.7456 -39.6912 -33.2429C-35.3945 -39.7402 -29.7188 -46.0714 -24.6106 -51.8586C-19.5025 -57.6459 -14.7226 -63.1032 -9.0423 -67.9619C-3.35974 -72.823 2.96561 -77.2539 9.47787 -81.0203C15.9924 -84.7867 22.9036 -87.8362 30.0335 -90.5671C37.1658 -93.2958 44.7972 -95.4851 52.2669 -97.4058C59.7388 -99.3243 67.2198 -101.32 74.8558 -102.085C82.494 -102.849 90.4036 -102.67 98.0897 -101.991C105.774 -101.313 113.578 -99.7385 120.968 -98.0134C128.36 -96.2907 138.893 -93.3049 142.429 -91.6436C145.962 -89.98 143.026 -90.3009 142.173 -88.0388" stroke="#FCEECA" stroke-width="8" stroke-linecap="round"/>
<path d="M293.558 163.643C297.069 156.779 304.949 153.769 311.231 149.496C317.513 145.224 324.39 141.478 331.253 138.007C338.116 134.536 345.091 130.976 352.413 128.671C359.734 126.367 367.552 125.283 375.175 124.177C382.797 123.07 390.52 122.126 398.149 122.037C405.778 121.947 413.407 122.387 420.954 123.64C428.504 124.894 436.267 127.23 443.436 129.553C450.607 131.874 457.186 134.172 463.967 137.567C470.75 140.962 477.867 145.512 484.13 149.927C490.396 154.342 496.022 158.775 501.556 164.053C507.089 169.332 512.632 175.439 517.334 181.597C522.035 187.753 526.147 194.269 529.76 201C533.375 207.73 536.552 214.729 539.018 221.98C541.485 229.229 543.069 237.023 544.56 244.5C546.05 251.978 547.612 259.247 547.963 266.847C548.314 274.443 547.612 282.327 546.666 290.088C545.722 297.85 544.341 305.94 542.292 313.413C540.242 320.888 537.555 327.96 534.373 334.932C531.189 341.903 527.423 348.785 523.199 355.241C518.976 361.697 514.045 368.027 509.026 373.663C504.005 379.296 498.912 384.252 493.077 389.047C487.244 393.839 480.613 398.392 474.021 402.424C467.431 406.453 460.564 410.282 453.534 413.23C446.504 416.179 439.308 418.392 431.848 420.119C424.385 421.849 416.475 423.09 408.766 423.599C401.057 424.11 393.155 423.778 385.594 423.175C378.033 422.573 370.782 421.677 363.406 419.982C356.028 418.289 348.515 415.899 341.33 413.012C334.148 410.124 326.815 406.699 320.3 402.655C313.784 398.611 308.017 393.656 302.232 388.751C296.446 383.846 290.652 378.939 285.585 373.223C280.52 367.505 275.929 360.907 271.836 354.449C267.744 347.993 264.204 341.472 261.031 334.478C257.858 327.484 254.923 319.873 252.798 312.483C250.674 305.094 249.162 297.733 248.283 290.139C247.405 282.544 247.161 274.668 247.526 266.913C247.893 259.156 249.033 251.204 250.48 243.598C251.927 235.994 253.664 228.5 256.21 221.284C258.756 214.065 262.025 207.006 265.757 200.289C269.486 193.572 271.963 188.656 278.587 180.979C285.211 173.304 298.626 159.884 305.5 154.236C312.377 148.591 318.238 145.242 319.845 147.1M435.506 127.705C443.21 127.187 451.387 132.183 458.4 135.194C465.414 138.206 471.231 141.631 477.588 145.773C483.946 149.918 490.832 155.132 496.542 160.053C502.254 164.974 507.048 169.435 511.857 175.299C516.667 181.167 521.385 188.605 525.401 195.247C529.415 201.888 532.996 208.177 535.95 215.151C538.905 222.125 541.248 229.524 543.126 237.087C545.006 244.647 546.468 252.954 547.229 260.519C547.992 268.086 548.186 274.902 547.705 282.485C547.224 290.065 546.11 298.434 544.343 306.013C542.577 313.594 539.942 320.831 537.106 327.96C534.268 335.09 531.043 342.238 527.323 348.792C523.603 355.349 519.518 361.282 514.786 367.292C510.052 373.299 504.72 379.599 498.928 384.843C493.136 390.089 486.453 394.682 480.03 398.767C473.609 402.852 467.283 406.263 460.393 409.352C453.504 412.44 445.987 415.104 438.695 417.297C431.405 419.489 424.207 421.574 416.649 422.511C409.088 423.448 401.026 423.086 393.337 422.916C385.646 422.749 378.017 422.74 370.513 421.498C363.012 420.257 355.663 418.039 348.314 415.468C340.968 412.898 333.143 409.778 326.432 406.075C319.719 402.376 314.105 397.844 308.042 393.262C301.979 388.68 295.523 383.919 290.053 378.586C284.58 373.253 279.599 367.514 275.218 361.262C270.837 355.007 267.206 347.963 263.764 341.067C260.325 334.173 257.017 327.11 254.576 319.892C252.135 312.673 250.355 305.346 249.115 297.761C247.877 290.175 247.116 282.228 247.147 274.379C247.179 266.53 248.134 258.244 249.306 250.663C250.475 243.082 252.019 236.106 254.173 228.897C256.329 221.685 258.875 214.289 262.23 207.396C265.588 200.502 269.898 193.806 274.309 187.54C278.717 181.277 283.566 175.409 288.69 169.808C293.814 164.209 299.116 158.83 305.049 153.938C310.982 149.047 317.522 144.307 324.287 140.465C331.052 136.623 338.374 133.45 345.638 130.884C352.903 128.319 360.395 126.417 367.872 125.07C375.35 123.723 382.877 123.219 390.504 122.807C398.133 122.394 405.983 121.842 413.64 122.593C421.296 123.345 432.734 126.067 436.445 127.311C440.154 128.555 436.682 127.576 435.898 130.06" fill="#D3FFD2"/>
<path d="M335.765 135.377C341.381 130.057 350.125 129.246 357.426 127.23C364.729 125.214 372.08 124.14 379.579 123.278C387.076 122.417 394.753 121.801 402.417 122.06C410.078 122.319 418.083 123.361 425.553 124.836C433.02 126.309 440.139 128.337 447.228 130.903C454.319 133.466 461.353 136.639 468.096 140.22C474.836 143.801 481.457 147.851 487.682 152.39C493.908 156.93 500.064 161.888 505.446 167.46C510.828 173.029 515.573 179.501 519.973 185.81C524.374 192.12 528.491 198.498 531.846 205.313C535.204 212.131 537.745 219.442 540.116 226.713C542.484 233.985 544.772 241.433 546.063 248.943C547.355 256.455 547.845 264.132 547.859 271.777C547.872 279.419 547.371 287.211 546.145 294.803C544.916 302.398 542.805 309.935 540.496 317.335C538.185 324.735 535.509 332.288 532.281 339.207C529.051 346.128 525.514 352.579 521.117 358.856C516.72 365.136 511.174 371.312 505.897 376.879C500.618 382.446 495.51 387.569 489.449 392.259C483.386 396.946 476.279 401.345 469.529 405.012C462.782 408.678 456.113 411.617 448.96 414.256C441.805 416.893 434.121 419.287 426.606 420.841C419.088 422.396 411.443 423.253 403.864 423.583C396.283 423.911 388.638 423.668 381.12 422.809C373.603 421.947 366.067 420.44 358.759 418.421C351.449 416.403 344.324 413.739 337.269 410.696C330.212 407.652 322.948 404.334 316.424 400.158C309.903 395.984 303.876 390.726 298.134 385.645C292.394 380.563 286.839 375.447 281.978 369.667C277.113 363.89 272.807 357.599 268.955 350.971C265.103 344.343 261.802 337.016 258.862 329.901C255.922 322.785 253.18 315.66 251.308 308.281C249.439 300.899 248.14 293.376 247.645 285.621C247.15 277.864 247.736 269.444 248.34 261.742C248.947 254.038 249.626 246.883 251.274 239.394C252.92 231.905 255.334 223.921 258.222 216.805C261.11 209.691 264.738 203.178 268.602 196.706C272.468 190.234 276.651 183.925 281.412 177.968C286.172 172.014 291.519 166.207 297.163 160.972C302.809 155.735 308.141 151.086 315.28 146.557C322.419 142.025 334.826 135.819 340.002 133.787C345.176 131.757 345.297 132.057 346.334 134.374M309.706 150.58C314.311 144.513 323.479 142.264 330.342 138.745C337.203 135.224 343.786 131.81 350.879 129.459C357.975 127.107 365.415 125.853 372.912 124.632C380.411 123.411 388.088 122.206 395.87 122.138C403.65 122.071 411.999 123.237 419.601 124.227C427.203 125.219 434.235 125.957 441.483 128.083C448.734 130.209 456.14 133.416 463.101 136.983C470.06 140.55 477.013 145.029 483.242 149.487C489.472 153.943 495.063 158.582 500.484 163.723C505.904 168.864 510.93 174.305 515.762 180.33C520.595 186.358 525.673 193.217 529.478 199.879C533.284 206.544 536.061 213.187 538.595 220.308C541.13 227.428 543.298 235.073 544.688 242.601C546.079 250.129 546.48 257.857 546.933 265.474C547.389 273.092 548.114 280.666 547.417 288.311C546.721 295.955 544.845 303.88 542.753 311.344C540.66 318.806 537.993 326.098 534.859 333.09C531.723 340.08 528.137 346.852 523.943 353.285C519.747 359.72 514.709 365.86 509.692 371.695C504.675 377.53 499.476 383.232 493.841 388.295C488.204 393.361 482.476 398.027 475.875 402.08C469.276 406.133 461.39 409.821 454.237 412.614C447.084 415.409 440.239 417.049 432.963 418.845C425.685 420.644 418.281 422.683 410.577 423.397C402.873 424.112 394.368 423.645 386.734 423.129C379.103 422.612 372.242 421.968 364.786 420.3C357.33 418.634 349.181 416.043 342.003 413.129C334.826 410.217 328.126 406.742 321.721 402.827C315.316 398.914 309.517 394.38 303.57 389.645C297.623 384.911 291.341 380.029 286.037 374.419C280.733 368.808 275.782 362.474 271.745 355.979C267.708 349.482 264.95 342.499 261.816 335.438C258.682 328.38 255.217 320.991 252.942 313.614C250.665 306.235 249.134 298.64 248.158 291.172C247.185 283.701 246.804 276.329 247.096 268.796C247.385 261.266 248.466 253.689 249.902 245.98C251.338 238.271 253.161 229.948 255.712 222.544C258.263 215.139 261.538 208.211 265.206 201.558C268.871 194.903 273.177 188.752 277.71 182.619C282.242 176.488 286.874 170.076 292.399 164.768C297.924 159.46 307.564 152.889 310.864 150.77C314.167 148.651 310.944 150.142 312.212 152.058" stroke="#D3FFD2" stroke-width="8" stroke-linecap="round"/>
<path d="M386.373 19.5247C389.583 14.5303 396.268 10.9995 401.473 7.89729C406.675 4.79247 411.891 2.81929 417.596 0.903603C423.298 -1.00947 429.704 -2.8964 435.694 -3.58898C441.68 -4.27894 447.633 -4.05679 453.523 -3.24661C459.416 -2.43643 465.39 -0.648807 471.04 1.27472C476.691 3.19824 482.214 5.31517 487.426 8.29454C492.639 11.2765 497.91 14.8857 502.315 19.164C506.72 23.4449 510.573 28.9411 513.863 33.9694C517.151 38.9978 519.902 43.8797 522.046 49.3315C524.188 54.7832 525.766 60.7655 526.725 66.6824C527.684 72.5967 528.028 78.7724 527.798 84.8304C527.566 90.8885 526.858 97.1974 525.339 103.028C523.82 108.859 521.642 114.483 518.691 119.817C515.739 125.151 511.652 130.399 507.629 135.033C503.607 139.669 499.259 144.034 494.557 147.627C489.854 151.223 484.866 154.041 479.416 156.607C473.966 159.171 467.68 161.683 461.854 163.021C456.029 164.359 450.512 164.79 444.465 164.631C438.419 164.471 431.533 163.402 425.575 162.062C419.617 160.718 414.089 159.119 408.717 156.578C403.346 154.038 398.109 150.429 393.342 146.825C388.577 143.218 384.013 139.562 380.121 134.947C376.231 130.329 372.811 124.474 370.003 119.119C367.194 113.764 364.821 108.464 363.268 102.809C361.716 97.1556 360.973 91.291 360.687 85.1911C360.397 79.0912 360.507 72.1498 361.538 66.212C362.57 60.2715 364.555 55.0785 366.879 49.5536C369.205 44.0287 368.888 40.4273 375.489 33.0599C382.088 25.6951 397.51 10.861 406.48 5.35175C415.447 -0.157472 428.79 -1.23423 429.303 0.0097909M460.515 -1.35967C466.291 -1.41979 472.692 1.71117 478.267 4.11035C483.839 6.50953 489.143 9.65093 493.955 13.038C498.767 16.4251 503.133 19.8278 507.137 24.4354C511.138 29.043 515.171 35.2918 517.972 40.6861C520.77 46.0777 522.354 51.1217 523.93 56.793C525.508 62.4668 526.78 68.747 527.439 74.7267C528.098 80.7037 528.624 86.7932 527.879 92.6657C527.134 98.5355 525.146 104.437 522.966 109.951C520.785 115.466 518.06 120.601 514.801 125.752C511.545 130.904 507.866 136.543 503.422 140.858C498.98 145.176 493.374 148.508 488.14 151.652C482.907 154.796 477.477 157.624 472.02 159.73C466.559 161.839 461.195 163.598 455.389 164.299C449.584 164.999 443.186 164.662 437.186 163.941C431.189 163.219 425.242 161.711 419.404 159.966C413.566 158.222 407.368 156.401 402.163 153.471C396.961 150.541 392.495 146.642 388.181 142.385C383.864 138.13 379.738 132.79 376.271 127.932C372.803 123.071 369.885 118.612 367.379 113.221C364.876 107.829 362.33 101.504 361.236 95.5875C360.145 89.6706 360.564 83.6544 360.825 77.7217C361.085 71.7891 361.304 65.9166 362.797 59.9866C364.292 54.0593 367.043 47.7033 369.789 42.147C372.537 36.5933 375.447 31.3298 379.279 26.6569C383.114 21.984 388.022 17.724 392.792 14.1148C397.562 10.5055 402.645 7.64117 407.899 5.00155C413.157 2.35931 418.609 -0.269852 424.325 -1.73079C430.043 -3.19173 436.196 -3.80067 442.199 -3.76669C448.204 -3.73533 457.363 -2.10974 460.349 -1.53216C463.332 -0.951971 460.148 -1.57659 460.104 -0.301214" fill="#FFE3C7"/>
<path d="M409.327 3.74958C413.868 0.158652 420.287 -0.209849 426.055 -1.45125C431.822 -2.69266 437.895 -3.69624 443.936 -3.70408C449.978 -3.70931 456.472 -2.8364 462.3 -1.49568C468.128 -0.154966 473.575 1.8156 478.908 4.34284C484.238 6.86747 489.482 10.0821 494.288 13.6599C499.098 17.2378 503.703 21.3226 507.749 25.8126C511.795 30.3052 515.671 35.2107 518.566 40.6049C521.457 45.9992 523.515 52.316 525.107 58.1806C526.699 64.0479 527.853 69.8289 528.116 75.7955C528.379 81.7621 527.613 88.0737 526.686 93.9854C525.761 99.8971 524.675 105.733 522.562 111.26C520.452 116.785 517.406 122.18 514.017 127.14C510.63 132.1 506.697 136.867 502.231 141.025C497.766 145.181 492.413 148.887 487.223 152.088C482.034 155.29 476.639 158.267 471.092 160.235C465.543 162.203 459.953 163.251 453.94 163.893C447.93 164.536 441.006 164.714 435.019 164.089C429.032 163.465 423.731 162.046 418.02 160.143C412.307 158.24 405.972 155.799 400.748 152.669C395.525 149.535 391.034 145.471 386.683 141.347C382.333 137.223 378.06 132.837 374.645 127.919C371.23 123.003 368.372 117.447 366.189 111.846C364.003 106.248 362.445 100.294 361.539 94.3277C360.635 88.3638 360.371 82.0966 360.754 76.0516C361.137 70.0066 362.325 63.8022 363.834 58.0604C365.342 52.316 367.111 46.9662 369.805 41.5928C372.498 36.2195 376.135 30.4254 379.993 25.8152C383.854 21.205 385.816 18.3093 392.956 13.9317C400.097 9.55674 415.342 2.17888 422.837 -0.439836C430.335 -3.05593 437.635 -3.11082 437.934 -1.7701M379.17 26.6515C381.681 21.2861 388.298 17.8206 393.027 14.2506C397.753 10.6805 402.077 7.82139 407.53 5.23404C412.98 2.64669 419.643 0.195241 425.739 -1.27354C431.836 -2.74232 438.114 -3.46886 444.103 -3.57863C450.09 -3.6884 455.954 -3.06377 461.662 -1.93214C467.37 -0.797883 472.822 0.728392 478.348 3.21904C483.873 5.70969 489.938 9.26926 494.815 13.0092C499.691 16.7491 503.68 21.1894 507.603 25.6558C511.524 30.1223 515.572 34.6932 518.344 39.8078C521.114 44.9198 522.752 50.4003 524.227 56.3407C525.704 62.2812 526.649 69.2148 527.199 75.4479C527.749 81.6811 528.384 87.8567 527.53 93.7423C526.676 99.6253 524.422 105.108 522.07 110.751C519.717 116.391 516.779 122.561 513.418 127.595C510.057 132.626 506.058 136.765 501.911 140.947C497.766 145.126 493.593 149.65 488.536 152.671C483.48 155.692 477.298 157.242 471.574 159.074C465.853 160.909 460.06 162.707 454.203 163.669C448.344 164.63 442.464 165.326 436.434 164.842C430.403 164.359 423.869 162.785 418.02 160.768C412.172 158.748 406.336 155.826 401.34 152.731C396.343 149.634 392.316 146.344 388.033 142.191C383.753 138.038 379.191 132.861 375.653 127.82C372.115 122.778 369.229 117.504 366.806 111.94C364.386 106.376 362.044 100.42 361.127 94.4323C360.212 88.4474 360.911 82.0208 361.309 76.0203C361.708 70.0223 362.117 64.1995 363.516 58.4367C364.917 52.6714 367.025 46.8224 369.703 41.4308C372.384 36.0392 377.823 28.4758 379.597 26.0844C381.371 23.6957 379.256 26.121 380.35 27.0906" stroke="#FFE3C7" stroke-width="8" stroke-linecap="round"/>
<path d="M13.3778 276.18C18.8365 270.706 24.7351 262.829 31.6187 255.671M13.2266 276.218C18.4196 269.936 24.1601 263.89 31.0391 256.822M11.4627 283.931C20.4858 274.382 27.8619 266.386 43.0126 249.424M11.7743 283.712C18.5433 276.414 25.5804 269.044 41.9383 249.075M11.3322 289.121C24.9092 274.903 38.1334 259.457 53.0803 242.766M11.2543 289.74C27.1861 271.697 42.9119 253.792 52.6222 243.313M11 295.351C26.0591 278.543 39.7072 262.714 58.0603 243.169M11.6849 294.779C24.8817 280.235 37.9708 264.757 57.8267 242.59M11.2474 301.176C31.1147 276.806 52.3679 253.992 63.2602 242.502M11.1878 300.778C21.4594 288.738 31.6049 277.061 63.3175 242M12.8028 304.427C28.0406 287.33 42.0391 270.875 67.3995 242.246M13.2541 304.343C32.4479 283.104 51.4974 261.324 67.6217 242.863M14.4429 308.274C25.7522 294.32 38.3007 279.926 71.2891 242.984M13.9825 308.58C36.3765 284.235 58.3695 259.049 71.9466 243.383M15.1737 313.365C32.2898 293.509 50.2627 273.285 76.0836 244.246M15.4211 312.885C28.233 298.41 41.3519 283.956 76.1569 244.131M15.9594 317.081C30.0472 300.942 44.1695 285.555 80.8918 243.953M16.0189 317.372C39.1116 291.132 61.5101 265.983 80.6627 244.291M18.4219 320.298C39.2719 295.892 60.3006 271.839 83.8239 245.94M18.06 320.566C38.0991 297.674 58.074 275.108 83.9705 246.041M19.7253 324.157C38.7221 303.348 57.2792 282.332 87.2508 247.735M19.9406 323.853C41.2167 300.194 62.3439 276.443 87.2645 247.766M21.1112 328.09C45.844 300.293 70.6477 272.515 90.6136 249.42M21.6312 327.777C36.1474 312.187 50.4781 295.948 90.838 249.564M24.1349 330.331C42.2979 309.727 59.941 289.085 93.8366 251.084M23.7501 330.432C43.2577 309.035 61.9614 287.688 93.8137 251.319M26.3592 332.971C51.2913 303.99 77.1694 275.671 96.6152 253.384M26.3455 333.189C49.6351 307.785 72.281 282.154 96.8443 253.308M28.9225 335.669C47.7132 313.185 67.0101 292.292 99.868 256.042M28.8973 335.629C57.8244 303.697 86.0115 271.695 99.7168 255.567M31.8294 338.636C56.0605 311.087 80.4749 284.039 102.658 257.79M31.4469 338.156C46.4762 321.057 62.1103 303.204 102.397 257.849M34.8257 340.238C49.3442 324.497 63.6565 308.288 105.073 259.881M34.9494 340.044C54.1065 318.242 73.4218 296.525 105.35 260.387M38.3694 341.949C59.153 317.991 79.6159 295.203 107.693 263.633M38.0945 341.63C57.1142 320.393 75.7835 299.433 107.748 263.075M41.8306 343.202C67.3697 314.464 93.328 286.314 109.803 266.003M41.6428 343.278C58.4016 324.274 74.9634 305.817 109.723 266.467M45.143 344.995C62.7288 325.959 79.3593 307.121 111.995 269.85M45.5187 344.452C59.4164 328.626 73.2821 312.788 111.631 269.623M49.1655 346.094C69.0168 322.992 89.6927 300.352 113.727 273.502M49.335 345.984C65.1707 326.871 81.382 308.188 113.255 273.191M52.8054 347.579C68.6686 328.95 84.0209 312.385 114.886 276.847M52.6428 347.216C76.7616 319.89 100.993 292.554 114.941 276.646M56.4385 349.518C77.8199 324.627 99.6321 299.564 116.725 280.991M56.1476 348.993C71.2823 333.122 86.1031 316.329 116.407 280.94M60.5824 348.856C78.7454 328.833 96.1708 308.362 117.108 285.888M60.745 348.998C79.2104 328.414 97.9621 307.366 116.881 285.731M65.6609 350C79.2814 334.462 93.2983 318.028 117.284 290.281M65.5349 349.588C83.1069 329.502 100.548 310.333 117.44 290.524M70.5859 349.153C85.0655 331.806 101.398 313.619 118.647 294.664M70.1026 349.272C87.9517 330.869 105.029 311.256 119 294.304M75.5499 348.437C91.6352 328.68 108.88 310.506 118.004 300.178M75.9622 348.493C84.6554 337.212 93.6739 327.52 118.107 301.12M82.8847 346.63C95.3782 332.554 107.352 318.647 116.657 307.328M82.3235 346.851C93.4861 333.525 105.803 319.931 116.732 307.418M94.013 338.742C100.464 332.908 104.617 326.698 110.618 319.136M94.1664 339.143C100.821 331.662 107.379 324.132 111.289 320.066" stroke="#D1ECFF" stroke-linecap="round"/>
<path d="M440.735 401.702C439.549 392.172 440.242 383.477 439.641 367.783M441.338 400.76C440.965 392.853 440.284 384.713 438.438 367.859M445.546 416.786C444.582 404.264 443.797 389.715 441.343 352.488M445.474 415.872C445.064 402.095 443.899 389.06 441.491 352.255M449.576 421.906C448.259 405.212 447.496 388.812 445.209 345.523M449.202 421.33C448.444 402.837 447.572 385.869 444.685 345.224M453.755 426.871C451.581 394.863 450.539 362.69 447.791 337.717M453.576 426.801C451.561 397.454 449.553 366.844 448.159 338.446M457.667 428.67C455.185 395.428 452.815 361.373 451.787 334.221M456.891 428.584C455.301 396.615 453.639 366.038 451.529 333.381M461.016 431.722C458.502 400.777 456.754 367.329 455.339 329.394M460.931 431.606C459.785 408.686 458.326 385.579 455.209 329.171M465.203 438.464C462.965 406.712 461.24 372.878 458.315 324.831M464.899 438.824C462.45 394.688 460.022 351.616 458.126 325.653M469.028 440.465C466.304 395.373 463.116 349.426 462.178 322.849M468.836 440.535C466.345 402.334 464.033 365.116 461.925 323.134M472.506 443.204C470.156 410.931 468.338 377.891 465.149 320.585M472.705 442.645C471.144 414.153 469.333 385.68 465.5 320.49M476.222 444.393C473.873 405.876 471.269 367.335 469.057 318.229M476.359 444.311C473.565 412.081 471.87 379.854 468.775 318.403M479.75 445.325C477.653 404.077 474.992 364.084 472.916 316.726M479.811 445.15C477.554 402.954 474.756 361.57 472.469 316.785M483.623 445.995C482.287 416.284 480.784 386.819 476.526 315.143M483.605 445.901C482.071 410.859 480.149 376.423 476.131 315.087M487.44 446.88C485.291 409.287 482.951 371.146 480.04 313.525M487.262 447.021C485.114 411.309 483.375 375.925 479.593 313.737M491.538 447.664C489.158 406.229 486.561 363.958 482.732 311.064M491.229 447.931C488.289 398.738 485.236 350.719 483.057 310.873M494.973 448.143C492.048 415.162 490.376 380.926 486.892 311.337M495.084 448.309C492.322 411.519 490.363 375.402 486.564 311.098M498.509 447.662C496.148 405.079 493.513 361.789 490.046 310.667M498.517 447.576C495.202 403.772 492.473 359.117 490.475 310.797M502.237 447.004C499.881 409.268 497.877 371.327 493.75 310.477M501.991 447.475C499.844 404.325 497.404 360.652 493.933 310.595M505.848 446.935C503.375 415.807 501.562 384.314 497.678 310.971M505.754 446.737C503.011 397.681 500.084 347.53 497.479 310.633M509.305 446.178C506.697 410.594 504.976 374.09 501.776 311.068M509.469 446.441C507.874 418.468 506.257 390.611 501.578 311.196M512.725 445.171C509.871 410.607 508.436 376.354 505.121 312.172M512.88 445.007C510.541 411.191 508.581 376.884 504.977 311.648M516.573 443.383C514.282 402.181 511.347 359.811 508.583 312.584M516.494 443.549C513.757 403.295 511.462 364.082 508.659 311.987M519.836 441.214C516.974 390.938 514.163 338.94 512.814 312.609M520.085 441.363C517.164 395.188 514.592 349.066 512.482 312.888M523.45 438.719C521.279 395.006 518.142 351.345 515.981 314.317M523.663 438.78C521.027 395.617 518.415 351.088 516.228 314.681M526.912 436.022C524.828 403.568 523.115 370.03 519.706 316.382M527.067 436.114C525.397 410.418 523.658 384.145 519.959 316.102M530.548 434.385C529.167 401.637 527.881 369.719 523.8 319.961M530.601 434.036C528.925 397.925 526.519 361.476 523.755 319.236M534.425 432.3C532.552 395.853 530.208 359.243 527.515 323.454M534.207 432.489C531.733 390.741 529.428 349.701 527.475 323.01M537.901 428.418C534.992 402.217 533.677 375.705 531.738 326.693M537.324 428.54C534.666 396.613 532.895 364.376 531.884 326.844M540.923 425.254C539.808 404.823 537.664 384.393 535.5 330.241M540.749 424.41C539.249 389.999 537.218 356.547 535.319 329.253M543.649 420.49C544.303 401.387 542.857 381.73 540.037 335.069M544.685 420.561C543.33 397.248 541.863 373.262 539.287 335.499M547.474 414.189C545.731 387.119 545.348 360.355 542.99 341.132M547.495 413.955C546.07 393.707 545.201 373.092 543.148 340.544M550.931 406.702C548.624 382.603 547.867 358.213 547.032 342.101M550.899 405.996C549.928 386.527 548.892 367.567 547.438 341.826M552.888 390.354C552.483 381.062 552.322 373.603 551.935 358.728M553.374 389.495C552.253 382.514 552.443 375.463 551.695 358.203" stroke="#0B6513" stroke-linecap="round"/>
<path d="M413.642 208.557C418.893 208.154 423.301 207.61 433.991 206.015M414.639 209.537C418.161 208.695 422.983 208.146 433.886 207.725M410.319 213.589C417.163 212.925 423.616 212.868 442.57 210.274M409.835 214.124C421.457 212.734 432.896 211.691 442.055 210.972M406.517 217.906C416.737 217.012 428.463 216.151 445.206 215.354M406.77 217.991C421.469 217.294 436.287 215.662 446.221 215.099M400.21 223.997C411.183 221.933 420.761 222.717 449.941 219.593M401.026 223.367C418.829 221.464 437.222 220.087 449.052 219.088M400.187 227.87C414.578 225.74 431.87 224.667 451.633 222.977M400.155 227.724C416.272 225.676 432.368 224.745 451.151 222.987M398.822 233.053C413.312 230.702 428.087 228.587 452.927 228.15M398.994 232.506C414.214 230.631 430.722 229.665 452.71 227.559M398.079 236.438C416.141 235.046 434.779 233.359 454.28 230.763M398.364 236.291C414.958 235.618 429.714 234.155 453.784 231.545M398.761 241.945C417.533 239.312 435.547 237.952 455.499 235.924M398.722 240.629C411.025 239.651 422.512 239.126 454.924 235.877M398.621 245.236C418.26 244.052 438.02 241.779 455.294 240.365M399.093 244.964C415.584 244.155 432.834 242.178 454.927 240.562M398.822 250.015C417.56 247.509 437.102 246.268 455.847 245.208M398.642 249.621C417.501 247.892 436.257 246.253 455.318 244.735M401.116 254.149C415.142 252.153 428.247 250.697 453.92 248.495M400.618 253.937C413.254 252.43 425.414 251.701 454.52 249.293M403.041 257.474C412.956 256.545 424.746 255.883 453.083 253.687M403.22 257.797C416.626 256.386 430.328 255.69 452.398 254.043M407.576 261.572C416.756 260.505 429.111 259.51 449.794 258.533M406.675 261.224C418.212 261.597 429.296 259.956 449.219 257.775M410.107 266.31C423.335 264.71 435.34 264.168 445.72 262.286M410.135 265.728C420.271 264.937 430.052 264.551 446.137 262.487M417.529 270.113C422.471 268.522 428.028 267.573 439.95 268.428M417.071 269.099C422.216 269.132 428.19 268.426 440.186 267.341" stroke="#D3FFD2" stroke-linecap="round"/>
<path d="M465.252 79.806C465.563 74.7795 464.96 71.754 464.312 63.4445M465.6 78.5813C465.049 73.4575 464.812 67.7175 464.464 61.9489M470.149 84.5827C469.017 76.3952 468.877 69.4954 467.692 55.7511M469.52 86.0325C468.635 75.7676 467.839 65.5276 467.478 54.9899M473.611 88.1995C472.536 79.4913 472.894 70.598 470.974 52.863M473.445 87.2323C473.101 79.5351 472.65 72.3587 471.114 51.1404M477.047 88.6077C477.366 79.5886 475.908 72.2805 474.997 50.3144M476.743 88.995C476.132 75.3918 475.735 62.1874 474.941 49.2404M480.762 88.8538C480.166 80.2696 478.906 72.4408 478.868 48.2084M480.707 88.4685C480.35 79.4035 479.41 69.8788 477.882 48.0672M484.571 88.1194C483.999 80.0788 482.551 69.6633 482.115 45.8659M484.648 88.0316C483.751 74.8291 482.308 61.4167 482.308 46.4839M487.408 86.0515C486.681 78.0072 486.71 70.7353 485.071 47.1287M488.083 86.0687C486.536 76.1835 485.886 65.106 485.386 47.4454M491.458 84.6685C490.667 74.1748 489.87 62.7902 489.651 49.0821M491.645 84.4282C490.591 74.0927 489.389 62.9638 488.891 48.4068M495.334 79.2376C493.687 70.0009 494.559 60.1672 493.528 52.9335M494.767 80.2219C494.64 70.1669 494.137 60.0375 493.37 52.4185" stroke="#FCEECA" stroke-linecap="round"/>
<path d="M387.28 -4.29409C391.641 -4.96063 394.751 -3.39795 403.26 -2.28765M386.902 -4.86966C392.721 -3.38284 398.037 -2.86243 403.752 -1.0261M379.197 -2.84709C389.618 0.881663 399.563 0.763146 410.914 3.79168M378.746 -1.92503C385.972 -0.408072 392.827 1.07548 410.644 4.33949M375.969 1.16729C385.976 3.55612 395.48 5.77063 413.393 8.87933M375.653 1.80324C385.983 3.68377 396.966 5.42843 413.049 8.82146M372.352 4.27352C383.914 6.3008 394.954 10.1221 414.382 12.5591M372.076 5.86204C384.943 8.03768 398.647 10.2279 415.339 12.1785M369.608 9.30127C387.317 12.2953 403.017 13.8935 416.631 16.9309M370.273 9.289C381.069 10.0792 392.555 12.4663 415.584 16.9925M368.147 14.0185C381.819 14.1368 393.742 17.0199 417.046 20.3296M368.527 12.9841C383.51 15.7087 399.198 18.2813 417.179 20.8077M367.674 17.1708C382.298 18.9009 398.99 21.2995 415.882 25.5516M367.538 17.0605C380.906 19.1449 394.339 21.7143 416.468 24.8694M366.374 20.2147C381.503 23.0025 397.5 26.3978 415.657 28.7338M366.291 20.9081C377.582 22.1038 388.979 24.098 414.893 29.0023M365.94 24.9765C382.226 27.9659 400.479 31.2424 414.725 32.1378M365.674 24.7218C378.287 26.3017 391.382 29.0516 414.281 33.5316M365.575 29.402C376.079 30.1069 385.338 31.8207 412.54 37.874M366.099 28.6913C378.644 29.9464 390.526 32.6768 412.407 36.8686M366.664 32.9091C377.827 35.0124 389.235 37.2835 411.184 40.3503M367.046 33.3189C380.366 35.7653 394.778 37.6969 410.647 40.4156M366.711 37.2247C380.386 39.1892 391.508 41.1878 408.191 43.9561M366.951 37.0803C382.182 39.8237 398.835 42.9878 407.233 44.6675M370.995 42.4029C381.961 43.7731 394.113 46.6259 402.475 47.6821M371.314 42.0694C382.534 44.5056 394.078 45.7933 403.47 47.3908M377.031 47.8803C382.363 48.268 389.843 49.62 394.761 50.3983M377.184 47.1418C381.792 47.8727 386.658 49.0101 395.32 50.0667" stroke="#FCEECA" stroke-linecap="round"/>
<path d="M91.6715 60.8309C90.8483 54.2358 91.2097 49.9776 89.5428 37.3954M91.5019 60.0435C90.6437 52.1011 90.2158 43.7143 89.8621 35.9263M96.2397 70.1815C94.4514 59.6963 93.4387 49.2699 92.2901 28.463M95.1266 69.5188C94.1323 53.5843 93.5033 38.3888 92.6607 28.8866M98.2911 73.9266C97.4901 55.7643 96.064 36.4989 96.4989 25.9311M99.4951 73.9057C99.3048 59.7895 98.2322 47.2898 96.8855 25.3857M104.299 77.8955C101.402 61.9958 101.569 45.5157 99.1745 21.4748M103.387 78.0166C101.429 56.4934 100.776 35.9587 99.5325 21.9477M107.224 79.8777C105.615 64.3279 104.468 49.2496 103.004 16.4084M107.415 79.3732C106.169 61.1879 104.933 43.3161 103.201 17.175M110.512 81.816C108.761 55.0915 107.676 31.3893 106.701 14.425M110.501 80.7766C109.071 54.8269 107.529 29.1446 106.281 15.2344M114.314 80.8915C114.48 68.2609 112.692 53.1776 110.212 11.2115M114.408 82.1459C112.976 58.8316 111.054 36.5523 110.345 12.4053M118.26 81.3869C117.676 67.6033 117.077 53.6999 114.385 11.8619M118.02 82.1439C116.909 67.9075 116.013 52.9862 114.017 11.7443M121.474 83.8284C120.337 64.2699 119.289 43.5964 117.028 12.4159M121.629 83.5118C119.893 57.6158 118.249 32.8659 117.414 12.0358M125.304 81.2149C124.251 59.4394 123.049 38.3948 120.658 11.9846M125.563 81.9381C124.128 57.136 122.223 32.8599 120.579 11.5814M128.846 80.158C128.449 59.2901 126.686 40.2739 125.228 12.711M128.713 80.1859C127.427 58.5727 126.582 37.9896 124.905 12.5973M132.548 79.0734C131.295 63.0142 130.883 47.9394 128.968 13.6748M132.755 79.1257C130.689 55.6316 129.955 32.2389 128.381 13.4193M135.023 76.5447C134.805 58.1457 133.136 37.1388 131.57 12.9992M135.818 76.5542C134.494 57.2589 133.005 38.4378 131.892 13.2249M138.762 72.8934C138.233 53.4403 136.964 35.1371 135.582 15.8738M139.722 73.2C138.248 53.5677 136.959 34.5025 135.808 17.1745M142.258 66.5048C140.913 49.3945 140.985 31.1488 139.388 20.1554M142.557 67.4182C142.405 54.6645 141.089 42.331 139.312 20.6262M146.074 62.0615C144.652 49.9403 143.62 37.5757 143.42 28.9468M145.996 63.1651C146.008 56.3212 145.648 48.4458 144.276 29.2035" stroke="#FFDAD6" stroke-linecap="round"/>
<path d="M9.79487 105.338C16.0326 105.338 24.1639 103.743 32.4528 103.527M9.66678 105.252C16.3239 104.42 23.1395 104.185 31.2709 103.999M4.01235 110.024C15.1339 109.589 23.8693 109.144 42.9254 107.741M4.4138 110.104C12.6536 109.625 21.188 109.404 42.3877 106.468M1.31778 114.009C15.9787 113.872 31.3857 112.158 48.2039 110.8M0.778261 114.509C18.9031 113.014 36.5709 111.428 47.4331 110.891M-2.63939 118.795C15.3123 117.516 31.3586 115.827 52.0401 115.092M-1.66962 118.888C13.4601 117.963 29.1298 116.066 52.3143 114.344M-6.90571 123.83C17.9471 120.25 42.6644 119.237 55.1219 118.743M-6.63808 123.4C5.90518 122.114 18.0484 120.915 55.564 118.326M-8.25652 127.67C10.8583 126.157 28.593 124.131 60.1258 121.547M-7.84761 128C15.6905 126.345 39.5967 124.135 59.8176 122.317M-9.04267 132.062C5.40872 130.004 21.1691 128.503 61.3233 125.266M-9.64637 131.925C17.3401 130.443 44.7092 127.865 61.5199 126.253M-11.5388 136.801C9.5304 134.582 31.6169 132.82 62.802 130.34M-10.9471 136.568C4.57691 135.216 20.2348 134.246 62.9565 130.296M-11.5316 140.122C5.3223 138.613 21.5932 137.801 64.8012 133.998M-11.7327 140.481C15.7907 138.071 41.9469 136.045 64.3161 134.116M-11.4979 144.749C13.2012 141.983 37.682 139.665 64.8402 137.954M-12.0491 144.66C11.5836 142.539 34.9753 140.597 64.8785 138.211M-13.1023 148.875C8.89872 147.608 30.732 145.744 65.7453 142.195M-12.6404 148.777C11.9587 147.093 36.4901 145.176 65.7314 142.244M-12.7283 152.992C15.4095 150.779 43.3927 148.708 66.4127 146.275M-11.9594 153.21C3.90521 152.452 20.1937 151.053 66.4849 146.679M-11.3228 157.196C9.01383 155.504 28.9852 153.105 67.0541 150.175M-11.778 156.884C9.91249 155.663 30.9737 153.691 66.8099 150.413M-11.1137 160.968C16.7254 157.922 44.7218 156.58 66.4088 154.316M-11.341 161.201C14.0207 159.801 39.0373 157.674 66.7005 154.485M-9.24938 165.06C11.5519 162.124 31.3901 161.486 65.8535 159.424M-9.23385 164.983C21.353 163.065 51.4774 160.399 66.1833 158.683M-7.63917 169.93C17.5213 167.531 42.4939 166.077 65.8745 162.915M-7.53149 168.883C7.60786 167.61 23.8718 166.047 65.5489 162.672M-6.1788 173.386C8.03927 172.89 22.2241 171.673 63.9696 166.429M-5.84202 173.294C13.2236 171.544 32.5407 170.069 63.7184 167.413M-3.04816 177.549C16.6681 175.408 35.0273 174.297 60.4298 172.327M-2.99483 176.778C14.5506 175.582 31.7702 174.326 61.1069 171.668M0.0430368 181.039C21.5398 179.022 42.7274 178.758 57.6616 175.8M-0.256418 180.897C14.0041 179.657 27.9415 178.828 57.0449 176.319M0.676424 185.193C15.134 184.541 28.1234 183.414 54.0373 181.298M1.72222 184.952C12.6898 184.086 23.707 182.963 53.8868 180.505M6.02507 189.086C20.8285 187.119 36.0162 186.782 53.5338 185.637M6.34159 189.16C18.3404 187.19 30.3618 185.744 53.3558 184.584M10.8131 193.003C20.6029 191.544 27.7822 192.054 43.5529 189.541M11.0703 192.224C23.8555 191.371 36.2656 190.429 43.8744 189.325" stroke="#FF9494" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17019_8101">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,20 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17344_6287)">
<rect width="480" height="360" fill="#FFF0F0"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-129.705 103.753L-85.7352 156.891L-65.1941 182.572L-53.3297 199.384L-49.0527 208.143L-45.0712 215.448L-42.194 222.952L-39.1565 229.336L-36.6975 242.805L-36.2167 248.48L-35.205 261.842L-37.306 274.041L-38.7784 286.182L-47.0794 320.426L-50.0168 331.305L-53.3647 342.023L-57.9547 352.351L-74.8924 390.396L-80.0534 404.852L-85.8779 417.314L-87.4179 422.31L-88.5122 427.494L-88.4947 432.693L-86.8846 437.483L-86.1308 439.823L-79.4699 448.703L-72.9418 456.457L-64.1924 465.141L-55.3029 473.689L-45.2815 479.532L-40.997 482.248L-36.4646 483.102L-31.817 483.739L-26.621 483.786L-23.0101 481.992L-18.7831 478.359L-15.325 474.225L-10.9128 467.621L-3.20515 451.624L0.182877 441.219L7.90302 420.073L18.7808 384.363L28.1161 348.776L35.4356 317.523L37.9422 300.172L41.0197 283.722L42.1465 269.025L43.6164 253.674L43.4136 238.14L43.0881 223.894L41.6332 208.516L39.3595 192.839L32.7411 159.292L29.3731 141.448L23.7089 122.832L17.8743 106.289L14.4337 97.3871L11.1558 89.6428L7.04662 82.4146L2.42154 75.3141L-2.20602 69.3211L-8.25842 62.9122L-14.5737 57.9139L-21.0318 52.8804L-29.413 47.4912L-38.9286 43.4249L-48.344 38.4792L-58.115 34.7009L-78.7212 27.147L-98.6188 22.3817L-116.861 18.1625L-131.69 17L-137.142 17.3533L-142.335 18.4381L-143.728 18.7162L-145.39 20.1093L-147.677 23.1333L-148.29 27.1896L-148.738 32.0853L-148.713 38.3814L-147.218 44.5047L-143.815 57.8011L-131.465 95.9164L-129.695 103.117" fill="#FFE599"/>
<path d="M-129.294 103.455C-114.753 123.321 -55.8737 186.556 -42.0686 222.734C-28.261 258.915 -40.4685 291.321 -46.4533 320.539C-52.4406 349.758 -71.6646 377.749 -77.9849 398.043C-84.3077 418.337 -94.234 428.882 -84.3829 442.304C-74.5317 455.723 -38.8133 499.37 -18.8857 478.567C1.04442 457.765 25.527 365.064 35.1928 317.488C44.8611 269.909 46.2834 235.507 39.1117 193.098C31.94 150.69 22.2892 92.1358 -7.83511 63.0376C-37.9594 33.9394 -121.393 11.8063 -141.632 18.5134C-161.87 25.2204 -131.275 89.1819 -129.264 103.282M-129.612 103.245C-114.988 123.013 -55.3979 186.075 -41.5453 222.344C-27.6951 258.612 -40.446 291.669 -46.5059 320.863C-52.5683 350.056 -71.5418 377.255 -77.9123 397.506C-84.2802 417.758 -94.6171 428.9 -84.7284 442.376C-74.8372 455.853 -38.5954 499.1 -18.5702 478.365C1.4576 457.627 25.845 365.507 35.4282 317.956C45.0113 270.405 46.2008 235.457 38.9289 193.055C31.6595 150.653 21.9937 92.6369 -8.20071 63.5412C-38.3926 34.4455 -122.08 11.8289 -142.233 18.4858C-162.388 25.1453 -131.312 89.267 -129.124 103.49" stroke="#FFE599" stroke-width="4" stroke-linecap="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M417.003 222.546L461.253 210.025L475.408 206.617L497.137 201.446L515.343 198.569L526.014 197L537.244 197.169L546.7 197.153L566.683 198.72L575.547 199.872L592.782 202.876L608.642 206.59L615.566 208.728L622.805 211.717L635.835 216.959L647.435 224.222L659.97 232.556L671.781 242.687L677.376 248.365L682.831 253.944L687.169 259.627L691.496 265.608L698.86 277.662L702.709 284.158L705.44 291.135L708.103 297.393L709.25 304.682L709.737 311.284L707.92 334.973L707.38 344.384L704.764 353.359L703.419 357.385L701.109 362.146L698.993 365.978L695.745 370.163L691.514 373.332L687.014 377.27L681.79 380.505L675.752 383.285L668.883 385.391L659.835 387.745L640.417 392.024L628.794 394.704L605.226 397.894L592.403 398.756L567.201 401.449L542.223 402.511L530.284 402.715L507.828 402.918L498.475 402.478L488.46 400.935L479.246 400.104L461.07 395.556L444.006 390.438L427.556 384.606L412.289 378.124L392.799 369.186L377.02 361.041L370.076 357.446L366.596 354.186L364.371 350.799L363.281 348.44L363.935 342.01L364.029 338.783L363.473 336.469L354.055 312.898L350.031 300.603L347.825 290.885L347.471 284.009L347 281.417L348.546 276.17L349.657 273.954L353.611 268.08L361.069 260.363L370.404 251.668L384.959 240.086L389.629 236.778L397.77 231.374L405.45 227.524L416.881 222.049" fill="#FFDAD6"/>
<path d="M416.892 222.463C433.298 218.455 486.262 201.495 515.644 198.274C545.027 195.056 571.155 198.824 593.189 203.141C615.224 207.459 631.497 213.763 647.854 224.177C664.213 234.591 681.016 249.87 691.336 265.62C701.657 281.372 712.346 299.107 709.781 318.679C707.216 338.253 711.209 369.174 675.945 383.059C640.681 396.942 547.94 405.595 498.196 401.981C448.451 398.369 400.016 372.637 377.474 361.382C354.93 350.126 367.881 346.209 362.935 334.448C357.988 322.688 349.316 301.824 347.796 290.824C346.276 279.823 346.904 277.45 353.818 268.445C360.732 259.438 378.727 244.509 389.284 236.79C399.841 229.071 412.49 224.587 417.163 222.134M417.212 222.365C433.6 218.39 486.26 201.853 515.565 198.584C544.87 195.314 570.983 198.449 593.044 202.748C615.103 207.049 631.472 213.881 647.923 224.381C664.376 234.88 681.509 249.955 691.752 265.746C701.995 281.537 711.985 299.613 709.384 319.126C706.782 338.636 711.362 369.03 676.136 382.819C640.911 396.608 547.849 405.466 498.031 401.859C448.212 398.249 399.714 372.425 377.234 361.17C354.751 349.914 368.05 346.031 363.14 334.323C358.233 322.617 349.273 301.904 347.782 290.925C346.29 279.947 347.289 277.505 354.193 268.459C361.097 259.413 378.737 244.387 389.211 236.649C399.684 228.912 412.323 224.377 417.037 222.037" stroke="#FFDAD6" stroke-width="4" stroke-linecap="round"/>
<path d="M-21.6216 287.855C-15.7997 285.716 -7.78293 285.235 -0.518707 284.607C6.743 283.979 14.5189 283.904 21.9512 284.087C29.3835 284.27 36.896 284.785 44.075 285.701C51.2539 286.619 58.4604 287.945 65.0248 289.587C71.5892 291.231 77.7748 293.233 83.4612 295.56C89.1502 297.887 94.5532 300.632 99.1511 303.55C103.751 306.465 107.843 309.715 111.058 313.061C114.274 316.406 116.795 320.01 118.448 323.626C120.101 327.241 120.838 331.125 120.976 334.756C121.112 338.387 120.683 341.792 119.263 345.411C117.846 349.026 115.455 353.005 112.468 356.456C109.48 359.909 105.705 363.204 101.338 366.125C96.9738 369.047 91.8542 371.607 86.2706 373.979C80.687 376.354 74.3283 378.551 67.8342 380.368C61.34 382.184 54.3316 383.808 47.3132 384.884C40.2923 385.958 33.0507 386.528 25.7188 386.811C18.3843 387.091 10.6611 387.096 3.31406 386.576C-4.03543 386.058 -11.4828 385.007 -18.3757 383.693C-25.2662 382.377 -31.8381 380.713 -38.0388 378.689C-44.2395 376.664 -50.4075 374.224 -55.5848 371.545C-60.7595 368.867 -65.2219 365.784 -69.0948 362.621C-72.9702 359.461 -76.3164 356.048 -78.8273 352.575C-81.3406 349.101 -83.2069 345.421 -84.1625 341.782C-85.1207 338.146 -85.2562 334.375 -84.5714 330.752C-83.8891 327.129 -82.3064 323.556 -80.0639 320.042C-77.8239 316.529 -74.8615 312.921 -71.1241 309.668C-67.3891 306.415 -62.6082 303.252 -57.6416 300.522C-52.6776 297.792 -48.7796 295.665 -41.3323 293.285C-33.8849 290.908 -19.2737 287.452 -12.9552 286.256C-6.63911 285.058 -3.97272 285.27 -3.4259 286.104M34.8693 284.74C42.0482 284.45 49.8542 286.086 56.7221 287.482C63.59 288.879 70.0014 291.031 76.0791 293.12C82.1544 295.21 88.1017 297.424 93.1862 300.021C98.2731 302.616 102.778 305.547 106.596 308.702C110.414 311.855 113.795 315.411 116.098 318.946C118.4 322.485 119.742 326.24 120.417 329.919C121.089 333.597 120.976 337.336 120.133 341.017C119.291 344.7 117.65 348.446 115.358 352.007C113.062 355.57 110.133 359.263 106.37 362.381C102.61 365.501 97.9019 368.149 92.7848 370.726C87.6678 373.304 81.8107 375.781 75.6703 377.843C69.5273 379.907 62.8475 381.734 55.9345 383.105C49.0239 384.476 41.4964 385.492 34.1995 386.073C26.9002 386.653 19.488 386.786 12.146 386.593C4.80404 386.398 -2.72356 385.838 -9.85985 384.902C-16.9961 383.966 -24.1048 382.692 -30.6667 380.976C-37.2286 379.259 -43.6751 377.062 -49.2286 374.607C-54.7821 372.155 -59.6483 369.17 -63.9903 366.255C-68.3323 363.337 -72.2077 360.454 -75.2804 357.109C-78.3557 353.766 -80.8716 349.89 -82.4318 346.181C-83.992 342.475 -84.614 338.562 -84.6442 334.871C-84.6743 331.178 -84.2428 327.624 -82.6099 324.026C-80.9769 320.43 -77.9794 316.602 -74.8415 313.286C-71.7035 309.968 -68.1943 306.975 -63.7846 304.128C-59.3724 301.28 -53.9819 298.615 -48.3682 296.2C-42.757 293.786 -36.604 291.356 -30.1048 289.642C-23.6032 287.928 -16.5547 286.834 -9.3657 285.911C-2.17422 284.99 5.6318 284.292 13.0365 284.112C20.4412 283.932 31.4654 284.52 35.0624 284.828C38.6619 285.135 34.9019 285.155 34.626 285.961" fill="#D1ECFF"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192.809 -83.8075L185.717 -70.5175L182.923 -65.1959L180.927 -60.394L181.111 -52.8758L180.186 -45.4368L184.554 -25.4591L190.424 -1.12006L198.8 24.3251L204.116 36.379L208.883 47.2189L220.807 67.7925L233.966 85.2916L247.23 102.626L263.516 118.103L272.145 125.973L291.08 141.367L301.521 148.359L321.377 160.822L331.844 166.306L341.569 170.54L352.105 174.321L361.555 177.786L381.747 180.781L401.21 183.183L421.918 183.114L445.424 183L471.628 182.141L494.757 179.031L505.601 176.29L514.113 174.454L522.526 170.99L529.391 167.973L534.938 163.339L540.279 159.944L544.708 155.554L548.072 150.632L550.632 144.683L550.343 138.952L550.575 132.768L548.297 127.513L546.342 120.448L542.088 112.471L537.425 105.748L531 97.5229L523.138 89.1585L507.71 76.7148L488.637 62.3535L455.431 40.4677L387.867 -1.25002L293.427 -66.6443L280.489 -74.9042L268.477 -81.3733L257.789 -86.5206L248.773 -89.4937L239.554 -92.565L225.305 -94.042L210.15 -94.0927L205.795 -94.4128L201.863 -92.6981L197.682 -90.2924L193.484 -84.0706" fill="#D1ECFF"/>
<path d="M193.406 -84.4794C191.296 -77.985 178.039 -67.1324 180.719 -45.1959C183.399 -23.2594 195.633 19.8339 209.489 47.146C223.349 74.4549 241.814 98.0967 263.875 118.661C285.936 139.228 315.391 159.684 341.861 170.537C368.332 181.393 393.909 183.25 422.705 183.786C451.498 184.325 493.326 181.228 514.633 173.76C535.937 166.29 550.804 154.42 550.535 138.968C550.269 123.52 540.116 104.502 513.027 81.054C485.939 57.6087 428.765 25.406 387.998 -1.71272C347.231 -28.8315 298.123 -66.1657 268.427 -81.6648C238.732 -97.164 222.367 -94.2955 209.835 -94.7076C197.299 -95.1196 196.001 -85.8613 193.226 -84.1403M192.972 -84.8439C190.802 -78.4858 177.643 -67.8424 180.37 -45.7981C183.098 -23.7538 195.396 19.948 209.34 47.4249C223.289 74.9018 242.026 98.5404 264.046 119.066C286.066 139.589 315.112 159.827 341.462 170.578C367.813 181.326 393.241 183.114 422.148 183.567C451.058 184.017 493.396 180.759 514.912 173.282C536.428 165.805 551.475 154.125 551.247 138.705C551.016 123.288 540.727 104.195 513.528 80.775C486.328 57.3552 428.886 25.2222 388.055 -1.81415C347.225 -28.8505 298.303 -65.9153 268.554 -81.443C238.802 -96.9738 222.094 -94.5142 209.543 -94.9833C196.989 -95.4492 196.01 -86.0166 193.235 -84.2544" stroke="#D1ECFF" stroke-width="4" stroke-linecap="round"/>
<path d="M-30.2679 302.585C-31.5074 294.51 -31.3958 284.704 -33.2161 273.05M-30.7743 303.52C-31.5499 294.963 -32.0545 287.18 -33.0868 273.052M-26.8807 310.626C-26.4787 292.979 -27.8244 275.961 -30.1475 257.525M-25.6164 310.661C-26.716 294.095 -27.6208 278.255 -29.5473 257.729M-22.2539 316.155C-22.8294 293.597 -24.8497 271.145 -27.0418 243.955M-21.6784 315.409C-24.3557 293.381 -25.4517 271.44 -27.0418 243.239M-17.0853 319.41C-18.0025 301.18 -20.3593 282.944 -23.7182 238.521M-17.1632 319.711C-18.8047 290.307 -21.2021 260.831 -22.801 238.581M-13.073 324.551C-15.5449 290.656 -17.7352 257.508 -18.8064 234.333M-12.8959 324.186C-13.8167 301.088 -15.6883 277.176 -19.3093 233.674M-8.78269 327.302C-11.0633 297.266 -13.3351 268.915 -15.4616 231.5M-8.55959 326.477C-11.6901 290.832 -14.1637 255.174 -15.474 231.332M-4.10106 329.099C-7.06161 295.126 -9.67865 260.108 -11.1448 227.716M-4.61455 329.439C-6.41886 295.227 -8.52595 262.197 -11.6158 228.202M-0.29236 331.421C-2.64734 295.879 -5.32104 260.932 -7.9611 224.846M-0.634098 331.586C-2.72702 299.828 -5.07669 266.991 -7.69019 225.099M3.50217 335.101C0.644321 298.195 -1.2857 262.638 -4.43925 221.673M4.00858 334.775C1.34196 303.509 -0.763355 271.463 -3.83369 221.659M7.93238 336.086C5.4021 299.263 3.19939 263.008 0.291957 219.739M8.08819 335.933C5.18253 297.303 2.48227 257.688 -0.147166 219.707M11.6844 337.154C9.27631 289.969 5.95454 242.677 3.31094 218.036M12.074 337.076C9.95978 300.567 7.03464 264.656 3.55175 218.217M16.1305 337.485C13.7472 306.681 11.3055 276.016 7.91113 216.573M16.3413 337.983C14.691 308.659 12.5361 279.252 7.67563 216.1M19.81 338.463C17.0017 301.568 14.1934 265.037 11.9606 214.778M20.2296 338.362C16.5343 296.774 13.8446 254.887 11.6012 214.939M24.5678 338.972C21.3221 291.59 18.2058 244.306 15.0133 214.271M24.2154 338.91C21.4567 294.58 18.2607 250.023 15.2665 214.273M28.403 339.68C25.809 295.941 22.8909 252.862 18.9583 213.513M28.2862 339.404C25.8975 297.057 23.022 254.606 19.4523 213.508M32.4897 340.322C29.2016 299.339 25.9808 257.8 23.1583 212.411M32.3782 340.465C30.4747 311.235 28.1126 281.408 23.2061 212.434M36.2754 339.326C33.4352 304.698 30.5721 269.229 27.3194 212.447M36.3179 339.549C34.6322 310.321 32.5074 281.55 27.5177 212.33M40.3709 338.75C36.8916 296.761 34.1559 255.849 31.2644 212.999M40.1585 338.485C36.8066 289.657 33.6637 241.457 31.4185 212.622M43.8344 337.344C42.478 305.38 39.9548 273.542 35.645 212.602M44.293 337.19C41.3537 296.014 38.5542 254.971 35.5335 212.803M48.2026 336.226C45.7927 305.139 43.7919 273.817 39.7105 212.425M48.1017 336.305C45.4563 295.835 42.5294 254.515 39.2767 212.551M52.3513 334.913C49.9626 306.016 48.045 278.487 43.6042 214.078M51.8838 334.676C48.9038 291.553 45.8635 248.526 43.7476 214.172M56.075 333.179C53.8315 288.653 50.8869 245.827 47.489 215.237M56.0148 333.062C52.3141 289.303 49.0596 245.363 47.6484 215.131M59.9881 330.755C56.1511 285.595 53.4632 240.21 52.0201 216.833M59.7137 331.359C56.5212 286.008 53.9572 240.399 51.7722 216.5M63.1187 330.22C61.4613 289.147 58.0723 247.762 55.4393 217.058M63.6994 329.954C60.2661 285.701 57.5127 241.009 55.7987 217.145M67.9384 326.868C64.4661 290.91 61.888 254.701 60.5459 219.29M67.3045 327.12C65.6631 290.888 63.0372 255.026 60.1616 219.292M71.3699 324.866C69.5214 290.355 67.2319 255.243 64.622 222.132M71.1114 324.384C69.123 296.069 67.3151 268.203 64.089 222.031M75.3203 321.105C72.6572 296.678 71.0866 273.096 68.8999 225.264M75.3929 320.625C72.7617 298.303 70.713 275.564 68.7016 224.906M79.1892 315.381C78.0312 282.188 75.0069 249.201 72.6537 229.059M78.5712 315.195C77.3831 290.826 75.6373 267.501 72.528 228.731M82.704 309.685C80.3331 283.8 78.2136 256.604 77.2645 232.471M82.4065 310.188C80.3136 282.059 78.3304 253.812 76.7563 232.434M86.1249 308.321C85.0625 290.789 83.9842 273.773 80.7456 235.033M85.962 307.637C85.707 289.84 83.8602 271.707 81.1777 234.866M90.2311 294.051C88.6941 280.852 87.0828 268.635 86.6012 249.704M89.1439 293.594C88.1771 277.869 87.3272 261.924 86.1284 249.287" stroke="#A2F1A6" stroke-linecap="round"/>
<path d="M380.315 30.153C378.789 21.5251 377.502 15.4163 378.141 7.46413M378.803 31.1094C378.969 24.2416 376.71 17.7214 376.93 7.94793M385.422 41.186C385.208 30.2892 384.947 21.4305 382.429 -6.69137M386.378 40.4964C385.217 28.2567 384.533 18.1245 382.21 -5.13707M391.708 47.1918C391.397 28.3123 388.674 12.5802 388.596 -6.73308M391.681 46.6079C391.144 30.9676 389.824 15.522 388.29 -8.00654M399.392 47.5672C398.77 30.4727 396.224 13.0557 393.912 -10.6619M398.364 46.9777C397.083 32.6721 396.208 19.2618 394.979 -9.71099M405.709 47.8035C404.57 33.6063 402.986 21.2943 401.877 -9.93899M404.528 48.2067C403.986 26.2825 401.013 1.93094 400.179 -10.6369M412.846 48.5487C408.532 26.9609 406.093 3.20441 407.813 -12.7473M411.77 47.5005C409.75 35.0077 409.338 20.5658 407.721 -12.1495M417.295 43.9359C416.725 28.6459 416.489 14.2458 412.871 -9.54416M417.867 45.7487C416.341 33.851 415.472 21.3193 413.582 -9.65538M423.3 39.2841C421.497 22.6818 421.113 8.07305 420.835 -8.8824M423.55 41.0136C421.724 21.881 420.171 4.05524 420.463 -8.14279M429.628 37.6353C427.961 27.1806 429.067 17.3599 426.207 -0.49365M429.286 36.5092C429.203 25.5596 428.105 15.6638 426.999 0.582404" stroke="#FFE599" stroke-linecap="round"/>
<path d="M124.665 0.0690471C131.819 -0.112195 140.416 2.58409 151.373 4.77361M123.486 -0.380819C131.081 1.52948 139.058 2.17419 151.421 4.87626M117.955 2.17215C133.532 5.88408 147.724 8.06193 156.088 10.3637M117.895 2.30822C128.289 4.20386 138.399 6.50944 155.314 9.63353M113.954 5.15504C125.186 8.68391 137.613 10.8456 157.799 13.4395M113.626 5.88526C128.267 8.48058 143.434 11.1161 157.388 14.8224M111.252 9.06209C128.406 13.8734 145.338 16.4666 159.05 17.8888M111.425 9.14707C128.53 12.9456 145.69 16.8249 159.809 18.8881M109.192 13.5411C123.478 15.3058 137.282 19.1884 161.897 23.7652M108.633 12.9091C125.474 16.114 144.468 19.6944 161.554 23.5703M106.689 17.0815C127.543 21.7398 149.536 25.5718 161.06 27.2053M106.76 16.8493C126.89 21.1045 146.156 24.3396 161.48 27.5673M104.839 20.9563C121.328 22.6771 138.218 26.8051 160.733 31.3343M105.449 20.3146C125.159 25.2572 144.835 28.9504 161.786 31.9466M104.799 24.3205C119.044 27.6792 134.628 30.0909 160.322 36.1709M103.644 24.5392C120.492 27.6673 136.82 30.3609 160.022 35.2798M104.456 28.4268C124.345 33.2778 143.922 36.2698 159.211 39.4827M103.9 28.2649C126.216 33.1024 148.293 37.5603 159.094 38.8679M103.664 32.0259C121.187 36.0191 136.631 38.4336 157.639 42.3958M104.348 32.6952C115.656 35.3934 127.832 38.0674 157.973 43.4353M103.337 37.1672C119.597 40.6001 134.57 42.8903 154.942 46.5921M103.407 36.8891C120.581 40.1009 137.335 43.0753 155.145 46.9548M107.82 41.8957C118.615 43.4788 131.158 45.2664 152.421 49.3995M108.715 41.6533C123.718 43.8687 138.951 46.9694 152.361 50.2988M112.788 45.5489C125.173 48.4606 137.181 51.8194 147.978 53.5628M112.451 46.8398C123.653 48.9135 134.581 50.4021 146.714 53.7432M113.568 50.9795C121.906 52.1356 129.527 54.5517 143.095 55.6951M114.145 50.8169C123.309 53.5789 131.653 55.2645 143.066 56.7531" stroke="#FFE599" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17344_6287">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,20 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17628_45023)">
<rect width="480" height="360" fill="#181010"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-129.705 103.753L-85.7352 156.891L-65.1941 182.572L-53.3297 199.384L-49.0527 208.143L-45.0712 215.448L-42.194 222.952L-39.1565 229.336L-36.6975 242.805L-36.2167 248.48L-35.205 261.842L-37.306 274.041L-38.7784 286.182L-47.0794 320.426L-50.0168 331.305L-53.3647 342.023L-57.9547 352.351L-74.8924 390.396L-80.0534 404.852L-85.8779 417.314L-87.4179 422.31L-88.5122 427.494L-88.4947 432.693L-86.8846 437.483L-86.1308 439.823L-79.4699 448.703L-72.9418 456.457L-64.1924 465.141L-55.3029 473.689L-45.2815 479.532L-40.997 482.248L-36.4646 483.102L-31.817 483.739L-26.621 483.786L-23.0101 481.992L-18.7831 478.359L-15.325 474.225L-10.9128 467.621L-3.20515 451.624L0.182877 441.219L7.90302 420.073L18.7808 384.363L28.1161 348.776L35.4356 317.523L37.9422 300.172L41.0197 283.722L42.1465 269.025L43.6164 253.674L43.4136 238.14L43.0881 223.894L41.6332 208.516L39.3595 192.839L32.7411 159.292L29.3731 141.448L23.7089 122.832L17.8743 106.289L14.4337 97.3871L11.1558 89.6428L7.04662 82.4146L2.42154 75.3141L-2.20602 69.3211L-8.25842 62.9122L-14.5737 57.9139L-21.0318 52.8804L-29.413 47.4912L-38.9286 43.4249L-48.344 38.4792L-58.115 34.7009L-78.7212 27.147L-98.6188 22.3817L-116.861 18.1625L-131.69 17L-137.142 17.3533L-142.335 18.4381L-143.728 18.7162L-145.39 20.1093L-147.677 23.1333L-148.29 27.1896L-148.738 32.0853L-148.713 38.3814L-147.218 44.5047L-143.815 57.8011L-131.465 95.9164L-129.695 103.117" fill="#FFE79E"/>
<path d="M-129.294 103.455C-114.753 123.321 -55.8737 186.556 -42.0686 222.734C-28.261 258.915 -40.4685 291.321 -46.4533 320.539C-52.4406 349.758 -71.6646 377.749 -77.9849 398.043C-84.3077 418.337 -94.234 428.882 -84.3829 442.304C-74.5317 455.723 -38.8133 499.37 -18.8857 478.567C1.04442 457.765 25.527 365.064 35.1928 317.488C44.8611 269.909 46.2834 235.507 39.1117 193.098C31.94 150.69 22.2892 92.1358 -7.83511 63.0376C-37.9594 33.9394 -121.393 11.8063 -141.632 18.5134C-161.87 25.2204 -131.275 89.1819 -129.264 103.282M-129.612 103.245C-114.988 123.013 -55.3979 186.075 -41.5453 222.344C-27.6951 258.612 -40.446 291.669 -46.5059 320.863C-52.5683 350.056 -71.5418 377.255 -77.9123 397.506C-84.2802 417.758 -94.6171 428.9 -84.7284 442.376C-74.8372 455.853 -38.5954 499.1 -18.5702 478.365C1.4576 457.627 25.845 365.507 35.4282 317.956C45.0113 270.405 46.2008 235.457 38.9289 193.055C31.6595 150.653 21.9937 92.6369 -8.20071 63.5412C-38.3926 34.4455 -122.08 11.8289 -142.233 18.4858C-162.388 25.1453 -131.312 89.267 -129.124 103.49" stroke="#FFE79E" stroke-width="4" stroke-linecap="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M417.003 222.546L461.253 210.025L475.408 206.617L497.137 201.446L515.343 198.569L526.014 197L537.244 197.169L546.7 197.153L566.683 198.72L575.547 199.872L592.782 202.876L608.642 206.59L615.566 208.728L622.805 211.717L635.835 216.959L647.435 224.222L659.97 232.556L671.781 242.687L677.376 248.365L682.831 253.944L687.169 259.627L691.496 265.608L698.86 277.662L702.709 284.158L705.44 291.135L708.103 297.393L709.25 304.682L709.737 311.284L707.92 334.973L707.38 344.384L704.764 353.359L703.419 357.385L701.109 362.146L698.993 365.978L695.745 370.163L691.514 373.332L687.014 377.27L681.79 380.505L675.752 383.285L668.883 385.391L659.835 387.745L640.417 392.024L628.794 394.704L605.226 397.894L592.403 398.756L567.201 401.449L542.223 402.511L530.284 402.715L507.828 402.918L498.475 402.478L488.46 400.935L479.246 400.104L461.07 395.556L444.006 390.438L427.556 384.606L412.289 378.124L392.799 369.186L377.02 361.041L370.076 357.446L366.596 354.186L364.371 350.799L363.281 348.44L363.935 342.01L364.029 338.783L363.473 336.469L354.055 312.898L350.031 300.603L347.825 290.885L347.471 284.009L347 281.417L348.546 276.17L349.657 273.954L353.611 268.08L361.069 260.363L370.404 251.668L384.959 240.086L389.629 236.778L397.77 231.374L405.45 227.524L416.881 222.049" fill="#422424"/>
<path d="M416.892 222.463C433.298 218.455 486.262 201.495 515.644 198.274C545.027 195.056 571.155 198.824 593.189 203.141C615.224 207.459 631.497 213.763 647.854 224.177C664.213 234.591 681.016 249.87 691.336 265.62C701.657 281.372 712.346 299.107 709.781 318.679C707.216 338.253 711.209 369.174 675.945 383.059C640.681 396.942 547.94 405.595 498.196 401.981C448.451 398.369 400.016 372.637 377.474 361.382C354.93 350.126 367.881 346.209 362.935 334.448C357.988 322.688 349.316 301.824 347.796 290.824C346.276 279.823 346.904 277.45 353.818 268.445C360.732 259.438 378.727 244.509 389.284 236.79C399.841 229.071 412.49 224.587 417.163 222.134M417.212 222.365C433.6 218.39 486.26 201.853 515.565 198.584C544.87 195.314 570.983 198.449 593.044 202.748C615.103 207.049 631.472 213.881 647.923 224.381C664.376 234.88 681.509 249.955 691.752 265.746C701.995 281.537 711.985 299.613 709.384 319.126C706.782 338.636 711.362 369.03 676.136 382.819C640.911 396.608 547.849 405.466 498.031 401.859C448.212 398.249 399.714 372.425 377.234 361.17C354.751 349.914 368.05 346.031 363.14 334.323C358.233 322.617 349.273 301.904 347.782 290.925C346.29 279.947 347.289 277.505 354.193 268.459C361.097 259.413 378.737 244.387 389.211 236.649C399.684 228.912 412.323 224.377 417.037 222.037" stroke="#422424" stroke-width="4" stroke-linecap="round"/>
<path d="M-21.6216 287.855C-15.7997 285.716 -7.78293 285.235 -0.518707 284.607C6.743 283.979 14.5189 283.904 21.9512 284.087C29.3835 284.27 36.896 284.785 44.075 285.701C51.2539 286.619 58.4604 287.945 65.0248 289.587C71.5892 291.231 77.7748 293.233 83.4612 295.56C89.1502 297.887 94.5532 300.632 99.1511 303.55C103.751 306.465 107.843 309.715 111.058 313.061C114.274 316.406 116.795 320.01 118.448 323.626C120.101 327.241 120.838 331.125 120.976 334.756C121.112 338.387 120.683 341.792 119.263 345.411C117.846 349.026 115.455 353.005 112.468 356.456C109.48 359.909 105.705 363.204 101.338 366.125C96.9738 369.047 91.8542 371.607 86.2706 373.979C80.687 376.354 74.3283 378.551 67.8342 380.368C61.34 382.184 54.3316 383.808 47.3132 384.884C40.2923 385.958 33.0507 386.528 25.7188 386.811C18.3843 387.091 10.6611 387.096 3.31406 386.576C-4.03543 386.058 -11.4828 385.007 -18.3757 383.693C-25.2662 382.377 -31.8381 380.713 -38.0388 378.689C-44.2395 376.664 -50.4075 374.224 -55.5848 371.545C-60.7595 368.867 -65.2219 365.784 -69.0948 362.621C-72.9702 359.461 -76.3164 356.048 -78.8273 352.575C-81.3406 349.101 -83.2069 345.421 -84.1625 341.782C-85.1207 338.146 -85.2562 334.375 -84.5714 330.752C-83.8891 327.129 -82.3064 323.556 -80.0639 320.042C-77.8239 316.529 -74.8615 312.921 -71.1241 309.668C-67.3891 306.415 -62.6082 303.252 -57.6416 300.522C-52.6776 297.792 -48.7796 295.665 -41.3323 293.285C-33.8849 290.908 -19.2737 287.452 -12.9552 286.256C-6.63911 285.058 -3.97272 285.27 -3.4259 286.104M34.8693 284.74C42.0482 284.45 49.8542 286.086 56.7221 287.482C63.59 288.879 70.0014 291.031 76.0791 293.12C82.1544 295.21 88.1017 297.424 93.1862 300.021C98.2731 302.616 102.778 305.547 106.596 308.702C110.414 311.855 113.795 315.411 116.098 318.946C118.4 322.485 119.742 326.24 120.417 329.919C121.089 333.597 120.976 337.336 120.133 341.017C119.291 344.7 117.65 348.446 115.358 352.007C113.062 355.57 110.133 359.263 106.37 362.381C102.61 365.501 97.9019 368.149 92.7848 370.726C87.6678 373.304 81.8107 375.781 75.6703 377.843C69.5273 379.907 62.8475 381.734 55.9345 383.105C49.0239 384.476 41.4964 385.492 34.1995 386.073C26.9002 386.653 19.488 386.786 12.146 386.593C4.80404 386.398 -2.72356 385.838 -9.85985 384.902C-16.9961 383.966 -24.1048 382.692 -30.6667 380.976C-37.2286 379.259 -43.6751 377.062 -49.2286 374.607C-54.7821 372.155 -59.6483 369.17 -63.9903 366.255C-68.3323 363.337 -72.2077 360.454 -75.2804 357.109C-78.3557 353.766 -80.8716 349.89 -82.4318 346.181C-83.992 342.475 -84.614 338.562 -84.6442 334.871C-84.6743 331.178 -84.2428 327.624 -82.6099 324.026C-80.9769 320.43 -77.9794 316.602 -74.8415 313.286C-71.7035 309.968 -68.1943 306.975 -63.7846 304.128C-59.3724 301.28 -53.9819 298.615 -48.3682 296.2C-42.757 293.786 -36.604 291.356 -30.1048 289.642C-23.6032 287.928 -16.5547 286.834 -9.3657 285.911C-2.17422 284.99 5.6318 284.292 13.0365 284.112C20.4412 283.932 31.4654 284.52 35.0624 284.828C38.6619 285.135 34.9019 285.155 34.626 285.961" fill="#243642"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M192.809 -83.8075L185.717 -70.5175L182.923 -65.1959L180.927 -60.394L181.111 -52.8758L180.186 -45.4368L184.554 -25.4591L190.424 -1.12006L198.8 24.3251L204.116 36.379L208.883 47.2189L220.807 67.7925L233.966 85.2916L247.23 102.626L263.516 118.103L272.145 125.973L291.08 141.367L301.521 148.359L321.377 160.822L331.844 166.306L341.569 170.54L352.105 174.321L361.555 177.786L381.747 180.781L401.21 183.183L421.918 183.114L445.424 183L471.628 182.141L494.757 179.031L505.601 176.29L514.113 174.454L522.526 170.99L529.391 167.973L534.938 163.339L540.279 159.944L544.708 155.554L548.072 150.632L550.632 144.683L550.343 138.952L550.575 132.768L548.297 127.513L546.342 120.448L542.088 112.471L537.425 105.748L531 97.5229L523.138 89.1585L507.71 76.7148L488.637 62.3535L455.431 40.4677L387.867 -1.25002L293.427 -66.6443L280.489 -74.9042L268.477 -81.3733L257.789 -86.5206L248.773 -89.4937L239.554 -92.565L225.305 -94.042L210.15 -94.0927L205.795 -94.4128L201.863 -92.6981L197.682 -90.2924L193.484 -84.0706" fill="#243642"/>
<path d="M193.406 -84.4794C191.296 -77.985 178.039 -67.1324 180.719 -45.1959C183.399 -23.2594 195.633 19.8339 209.489 47.146C223.349 74.4549 241.814 98.0967 263.875 118.661C285.936 139.228 315.391 159.684 341.861 170.537C368.332 181.393 393.909 183.25 422.705 183.786C451.498 184.325 493.326 181.228 514.633 173.76C535.937 166.29 550.804 154.42 550.535 138.968C550.269 123.52 540.116 104.502 513.027 81.054C485.939 57.6087 428.765 25.406 387.998 -1.71272C347.231 -28.8315 298.123 -66.1657 268.427 -81.6648C238.732 -97.164 222.367 -94.2955 209.835 -94.7076C197.299 -95.1196 196.001 -85.8613 193.226 -84.1403M192.972 -84.8439C190.802 -78.4858 177.643 -67.8424 180.37 -45.7981C183.098 -23.7538 195.396 19.948 209.34 47.4249C223.289 74.9018 242.026 98.5404 264.046 119.066C286.066 139.589 315.112 159.827 341.462 170.578C367.813 181.326 393.241 183.114 422.148 183.567C451.058 184.017 493.396 180.759 514.912 173.282C536.428 165.805 551.475 154.125 551.247 138.705C551.016 123.288 540.727 104.195 513.528 80.775C486.328 57.3552 428.886 25.2222 388.055 -1.81415C347.225 -28.8505 298.303 -65.9153 268.554 -81.443C238.802 -96.9738 222.094 -94.5142 209.543 -94.9833C196.989 -95.4492 196.01 -86.0166 193.235 -84.2544" stroke="#243642" stroke-width="4" stroke-linecap="round"/>
<path d="M-30.2679 302.585C-31.5074 294.51 -31.3958 284.704 -33.2161 273.05M-30.7743 303.52C-31.5499 294.963 -32.0545 287.18 -33.0868 273.052M-26.8807 310.626C-26.4787 292.979 -27.8244 275.961 -30.1475 257.525M-25.6164 310.661C-26.716 294.095 -27.6208 278.255 -29.5473 257.729M-22.2539 316.155C-22.8294 293.597 -24.8497 271.145 -27.0418 243.955M-21.6784 315.409C-24.3557 293.381 -25.4517 271.44 -27.0418 243.239M-17.0853 319.41C-18.0025 301.18 -20.3593 282.944 -23.7182 238.521M-17.1632 319.711C-18.8047 290.307 -21.2021 260.831 -22.801 238.581M-13.073 324.551C-15.5449 290.656 -17.7352 257.508 -18.8064 234.333M-12.8959 324.186C-13.8167 301.088 -15.6883 277.176 -19.3093 233.674M-8.78269 327.302C-11.0633 297.266 -13.3351 268.915 -15.4616 231.5M-8.55959 326.477C-11.6901 290.832 -14.1637 255.174 -15.474 231.332M-4.10106 329.099C-7.06161 295.126 -9.67865 260.108 -11.1448 227.716M-4.61455 329.439C-6.41886 295.227 -8.52595 262.197 -11.6158 228.202M-0.29236 331.421C-2.64734 295.879 -5.32104 260.932 -7.9611 224.846M-0.634098 331.586C-2.72702 299.828 -5.07669 266.991 -7.69019 225.099M3.50217 335.101C0.644321 298.195 -1.2857 262.638 -4.43925 221.673M4.00858 334.775C1.34196 303.509 -0.763355 271.463 -3.83369 221.659M7.93238 336.086C5.4021 299.263 3.19939 263.008 0.291957 219.739M8.08819 335.933C5.18253 297.303 2.48227 257.688 -0.147166 219.707M11.6844 337.154C9.27631 289.969 5.95454 242.677 3.31094 218.036M12.074 337.076C9.95978 300.567 7.03464 264.656 3.55175 218.217M16.1305 337.485C13.7472 306.681 11.3055 276.016 7.91113 216.573M16.3413 337.983C14.691 308.659 12.5361 279.252 7.67563 216.1M19.81 338.463C17.0017 301.568 14.1934 265.037 11.9606 214.778M20.2296 338.362C16.5343 296.774 13.8446 254.887 11.6012 214.939M24.5678 338.972C21.3221 291.59 18.2058 244.306 15.0133 214.271M24.2154 338.91C21.4567 294.58 18.2607 250.023 15.2665 214.273M28.403 339.68C25.809 295.941 22.8909 252.862 18.9583 213.513M28.2862 339.404C25.8975 297.057 23.022 254.606 19.4523 213.508M32.4897 340.322C29.2016 299.339 25.9808 257.8 23.1583 212.411M32.3782 340.465C30.4747 311.235 28.1126 281.408 23.2061 212.434M36.2754 339.326C33.4352 304.698 30.5721 269.229 27.3194 212.447M36.3179 339.549C34.6322 310.321 32.5074 281.55 27.5177 212.33M40.3709 338.75C36.8916 296.761 34.1559 255.849 31.2644 212.999M40.1585 338.485C36.8066 289.657 33.6637 241.457 31.4185 212.622M43.8344 337.344C42.478 305.38 39.9548 273.542 35.645 212.602M44.293 337.19C41.3537 296.014 38.5542 254.971 35.5335 212.803M48.2026 336.226C45.7927 305.139 43.7919 273.817 39.7105 212.425M48.1017 336.305C45.4563 295.835 42.5294 254.515 39.2767 212.551M52.3513 334.913C49.9626 306.016 48.045 278.487 43.6042 214.078M51.8838 334.676C48.9038 291.553 45.8635 248.526 43.7476 214.172M56.075 333.179C53.8315 288.653 50.8869 245.827 47.489 215.237M56.0148 333.062C52.3141 289.303 49.0596 245.363 47.6484 215.131M59.9881 330.755C56.1511 285.595 53.4632 240.21 52.0201 216.833M59.7137 331.359C56.5212 286.008 53.9572 240.399 51.7722 216.5M63.1187 330.22C61.4613 289.147 58.0723 247.762 55.4393 217.058M63.6994 329.954C60.2661 285.701 57.5127 241.009 55.7987 217.145M67.9384 326.868C64.4661 290.91 61.888 254.701 60.5459 219.29M67.3045 327.12C65.6631 290.888 63.0372 255.026 60.1616 219.292M71.3699 324.866C69.5214 290.355 67.2319 255.243 64.622 222.132M71.1114 324.384C69.123 296.069 67.3151 268.203 64.089 222.031M75.3203 321.105C72.6572 296.678 71.0866 273.096 68.8999 225.264M75.3929 320.625C72.7617 298.303 70.713 275.564 68.7016 224.906M79.1892 315.381C78.0312 282.188 75.0069 249.201 72.6537 229.059M78.5712 315.195C77.3831 290.826 75.6373 267.501 72.528 228.731M82.704 309.685C80.3331 283.8 78.2136 256.604 77.2645 232.471M82.4065 310.188C80.3136 282.059 78.3304 253.812 76.7563 232.434M86.1249 308.321C85.0625 290.789 83.9842 273.773 80.7456 235.033M85.962 307.637C85.707 289.84 83.8602 271.707 81.1777 234.866M90.2311 294.051C88.6941 280.852 87.0828 268.635 86.6012 249.704M89.1439 293.594C88.1771 277.869 87.3272 261.924 86.1284 249.287" stroke="#A2F1A6" stroke-linecap="round"/>
<path d="M380.315 30.153C378.789 21.5251 377.502 15.4163 378.141 7.46413M378.803 31.1094C378.969 24.2416 376.71 17.7214 376.93 7.94793M385.422 41.186C385.208 30.2892 384.947 21.4305 382.429 -6.69137M386.378 40.4964C385.217 28.2567 384.533 18.1245 382.21 -5.13707M391.708 47.1918C391.397 28.3123 388.674 12.5802 388.596 -6.73308M391.681 46.6079C391.144 30.9676 389.824 15.522 388.29 -8.00654M399.392 47.5672C398.77 30.4727 396.224 13.0557 393.912 -10.6619M398.364 46.9777C397.083 32.6721 396.208 19.2618 394.979 -9.71099M405.709 47.8035C404.57 33.6063 402.986 21.2943 401.877 -9.93899M404.528 48.2067C403.986 26.2825 401.013 1.93094 400.179 -10.6369M412.846 48.5487C408.532 26.9609 406.093 3.20441 407.813 -12.7473M411.77 47.5005C409.75 35.0077 409.338 20.5658 407.721 -12.1495M417.295 43.9359C416.725 28.6459 416.489 14.2458 412.871 -9.54416M417.867 45.7487C416.341 33.851 415.472 21.3193 413.582 -9.65538M423.3 39.2841C421.497 22.6818 421.113 8.07305 420.835 -8.8824M423.55 41.0136C421.724 21.881 420.171 4.05524 420.463 -8.14279M429.628 37.6353C427.961 27.1806 429.067 17.3599 426.207 -0.49365M429.286 36.5092C429.203 25.5596 428.105 15.6638 426.999 0.582404" stroke="#FFE79E" stroke-linecap="round"/>
<path d="M124.665 0.0690471C131.819 -0.112195 140.416 2.58409 151.373 4.77361M123.486 -0.380819C131.081 1.52948 139.058 2.17419 151.421 4.87626M117.955 2.17215C133.532 5.88408 147.724 8.06193 156.088 10.3637M117.895 2.30822C128.289 4.20386 138.399 6.50944 155.314 9.63353M113.954 5.15504C125.186 8.68391 137.613 10.8456 157.799 13.4395M113.626 5.88526C128.267 8.48058 143.434 11.1161 157.388 14.8224M111.252 9.06209C128.406 13.8734 145.338 16.4666 159.05 17.8888M111.425 9.14707C128.53 12.9456 145.69 16.8249 159.809 18.8881M109.192 13.5411C123.478 15.3058 137.282 19.1884 161.897 23.7652M108.633 12.9091C125.474 16.114 144.468 19.6944 161.554 23.5703M106.689 17.0815C127.543 21.7398 149.536 25.5718 161.06 27.2053M106.76 16.8493C126.89 21.1045 146.156 24.3396 161.48 27.5673M104.839 20.9563C121.328 22.6771 138.218 26.8051 160.733 31.3343M105.449 20.3146C125.159 25.2572 144.835 28.9504 161.786 31.9466M104.799 24.3205C119.044 27.6792 134.628 30.0909 160.322 36.1709M103.644 24.5392C120.492 27.6673 136.82 30.3609 160.022 35.2798M104.456 28.4268C124.345 33.2778 143.922 36.2698 159.211 39.4827M103.9 28.2649C126.216 33.1024 148.293 37.5603 159.094 38.8679M103.664 32.0259C121.187 36.0191 136.631 38.4336 157.639 42.3958M104.348 32.6952C115.656 35.3934 127.832 38.0674 157.973 43.4353M103.337 37.1672C119.597 40.6001 134.57 42.8903 154.942 46.5921M103.407 36.8891C120.581 40.1009 137.335 43.0753 155.145 46.9548M107.82 41.8957C118.615 43.4788 131.158 45.2664 152.421 49.3995M108.715 41.6533C123.718 43.8687 138.951 46.9694 152.361 50.2988M112.788 45.5489C125.173 48.4606 137.181 51.8194 147.978 53.5628M112.451 46.8398C123.653 48.9135 134.581 50.4021 146.714 53.7432M113.568 50.9795C121.906 52.1356 129.527 54.5517 143.095 55.6951M114.145 50.8169C123.309 53.5789 131.653 55.2645 143.066 56.7531" stroke="#FFE79E" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17628_45023">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,25 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17628_43774)">
<rect width="480" height="360" fill="#181610"/>
<path d="M102.132 140.598C107.487 143.723 110.409 150.637 113.81 155.78C117.211 160.922 120.131 165.924 122.533 171.453C124.936 176.984 126.846 182.971 128.223 188.959C129.597 194.947 130.45 201.178 130.787 207.379C131.124 213.58 131.054 220.039 130.247 226.17C129.437 232.298 128.056 238.306 125.939 244.158C123.819 250.009 120.694 255.861 117.537 261.276C114.38 266.689 110.904 271.958 106.994 276.642C103.083 281.327 98.8593 285.431 94.0748 289.381C89.2926 293.33 83.683 297.329 78.2922 300.343C72.9037 303.354 67.6542 305.665 61.7368 307.458C55.8195 309.25 49.0087 310.316 42.7904 311.098C36.5699 311.877 30.5409 312.466 24.423 312.139C18.3073 311.814 12.0982 310.553 6.08973 309.144C0.0812149 307.732 -5.97289 306.226 -11.6281 303.681C-17.281 301.133 -22.7493 297.411 -27.8369 293.864C-32.9246 290.319 -37.8458 286.665 -42.1539 282.407C-46.4642 278.146 -50.2549 273.494 -53.6945 268.309C-57.1364 263.121 -60.3823 256.942 -62.8007 251.284C-65.2192 245.626 -66.9105 240.313 -68.2052 234.355C-69.5022 228.399 -70.3319 221.797 -70.5781 215.537C-70.822 209.277 -70.5803 202.823 -69.6754 196.792C-68.7728 190.761 -67.0564 185.191 -65.1531 179.354C-63.2521 173.518 -61.2599 167.158 -58.2647 161.774C-55.2719 156.391 -51.2008 151.78 -47.1868 147.056C-43.1751 142.334 -39.0197 137.389 -34.1919 133.435C-29.3641 129.479 -23.7295 126.243 -18.2224 123.332C-12.7154 120.419 -7.00774 117.892 -1.15195 115.961C4.70157 114.027 10.881 112.523 16.9078 111.741C22.9368 110.957 28.7903 110.996 35.0154 111.268C41.2382 111.541 48.1721 111.995 54.2513 113.382C60.3327 114.768 65.9127 116.915 71.4927 119.587C77.0727 122.258 81.7181 124.753 87.7357 129.406C93.7534 134.06 103.733 143.161 107.603 147.508C111.473 151.855 112.319 154.398 110.956 155.489M68.4657 118.69C74.7021 119.494 80.51 124.366 85.8233 127.698C91.1389 131.031 95.8983 134.567 100.352 138.685C104.806 142.805 109.046 147.324 112.552 152.41C116.057 157.496 118.774 163.533 121.391 169.198C124.006 174.866 126.597 180.597 128.243 186.407C129.889 192.218 130.855 197.849 131.261 204.064C131.669 210.279 131.573 217.421 130.684 223.695C129.795 229.969 127.789 235.802 125.929 241.701C124.072 247.603 122.394 253.568 119.531 259.096C116.668 264.625 112.615 270.127 108.754 274.871C104.891 279.616 101.009 283.681 96.3542 287.563C91.7019 291.444 86.1516 295.05 80.8314 298.154C75.5136 301.256 70.2185 303.994 64.4402 306.18C58.6619 308.369 52.4027 310.309 46.1617 311.275C39.9207 312.241 33.2922 312.189 26.9964 311.977C20.7007 311.766 14.4437 311.175 8.38965 310.007C2.33783 308.841 -3.63194 307.326 -9.31678 304.983C-15.0016 302.638 -20.7434 299.397 -25.7194 295.943C-30.6953 292.487 -34.7162 288.406 -39.1701 284.252C-43.6218 280.096 -48.6388 275.971 -52.4363 271.017C-56.2338 266.066 -59.4318 260.167 -61.9551 254.54C-64.4807 248.914 -66.0079 243.165 -67.5852 237.263C-69.1626 231.36 -71.0545 225.263 -71.4192 219.121C-71.7816 212.981 -70.5006 206.609 -69.762 200.416C-69.0235 194.222 -68.734 187.825 -66.9834 181.962C-65.2351 176.097 -62.1283 170.821 -59.2699 165.233C-56.4116 159.645 -53.5851 153.273 -49.8355 148.431C-46.0881 143.586 -41.5134 140.134 -36.7836 136.169C-32.0538 132.202 -26.8386 127.87 -21.4614 124.632C-16.0843 121.394 -10.42 118.719 -4.5209 116.733C1.37592 114.747 7.70811 113.784 13.9286 112.718C20.1491 111.65 26.5816 110.257 32.8066 110.332C39.0294 110.407 45.3092 111.795 51.2721 113.166C57.235 114.536 65.7874 117.336 68.5819 118.554C71.3765 119.772 68.5637 118.994 68.044 120.471" fill="#422424"/>
<path d="M25.7556 110.821C31.5909 108.85 38.698 110.932 44.9345 111.832C51.1709 112.734 57.2889 114.256 63.1743 116.227C69.0597 118.197 74.9155 120.549 80.247 123.653C85.5786 126.755 90.5158 130.806 95.1612 134.847C99.8066 138.885 104.174 143.102 108.117 147.888C112.063 152.673 115.895 158.091 118.824 163.558C121.755 169.026 123.895 174.816 125.703 180.69C127.511 186.564 128.853 192.733 129.671 198.803C130.49 204.87 130.825 211.019 130.615 217.1C130.405 223.181 129.824 229.224 128.415 235.286C127.007 241.347 124.732 247.791 122.161 253.47C119.587 259.146 116.588 264.334 112.979 269.352C109.373 274.369 104.903 279.287 100.518 283.579C96.1322 287.872 91.7193 291.733 86.6704 295.109C81.6215 298.486 75.9321 301.427 70.2222 303.84C64.5146 306.255 58.5562 308.23 52.4178 309.596C46.2816 310.961 39.6303 311.725 33.4007 312.03C27.1711 312.334 21.0441 312.302 15.0447 311.425C9.04526 310.546 3.29204 308.791 -2.59566 306.76C-8.48337 304.731 -14.8931 302.279 -20.2861 299.24C-25.6792 296.205 -30.2152 292.512 -34.9564 288.535C-39.6975 284.561 -44.7578 280.198 -48.7308 275.385C-52.7038 270.57 -55.8471 265.061 -58.7944 259.653C-61.7439 254.245 -64.4724 248.748 -66.419 242.935C-68.3656 237.125 -69.7128 230.905 -70.4695 224.781C-71.2263 218.657 -71.3676 212.376 -70.9596 206.197C-70.5493 200.016 -69.5464 193.72 -68.0146 187.702C-66.4851 181.685 -64.2467 175.659 -61.7736 170.094C-59.2981 164.529 -56.6176 159.413 -53.1688 154.316C-49.7224 149.217 -45.485 143.838 -41.088 139.507C-36.691 135.176 -31.9453 131.652 -26.787 128.322C-21.6264 124.993 -15.896 122.028 -10.1314 119.533C-4.36676 117.036 -1.36023 114.538 7.80298 113.343C16.9662 112.148 35.7075 111.414 44.8524 112.363C53.9951 113.313 62.7914 117.492 62.6683 119.042M22.6601 111.77C28.443 109.739 35.8989 111.175 42.2585 111.811C48.6157 112.445 54.9183 113.777 60.8083 115.581C66.696 117.385 72.276 119.831 77.5893 122.639C82.9048 125.448 87.8147 128.566 92.6949 132.429C97.5751 136.292 102.774 141.023 106.871 145.815C110.967 150.61 114.165 155.93 117.269 161.186C120.374 166.442 123.499 171.698 125.496 177.352C127.49 183.005 128.436 188.884 129.243 195.108C130.05 201.334 130.362 208.338 130.339 214.698C130.316 221.057 130.36 227.294 129.108 233.264C127.857 239.233 125.386 244.803 122.835 250.511C120.283 256.222 117.226 262.36 113.793 267.525C110.36 272.692 106.378 277.071 102.236 281.509C98.0971 285.947 93.9349 290.692 88.9475 294.157C83.9625 297.62 77.9768 299.827 72.3216 302.297C66.6663 304.767 60.9154 307.237 55.014 308.982C49.1104 310.725 43.1338 312.266 36.911 312.764C30.6905 313.259 23.9503 312.827 17.6842 311.959C11.4204 311.091 5.06998 309.441 -0.676401 307.557C-6.42506 305.674 -11.4375 303.597 -16.7941 300.654C-22.1507 297.711 -27.8811 293.823 -32.8183 289.896C-37.7578 285.97 -42.255 281.754 -46.4218 277.094C-50.5885 272.435 -54.81 267.309 -57.8234 261.935C-60.8367 256.558 -62.5395 250.641 -64.502 244.846C-66.4623 239.054 -68.4887 233.218 -69.5919 227.176C-70.6952 221.134 -71.2149 214.794 -71.1169 208.592C-71.0188 202.391 -70.2097 196.04 -69.0061 189.973C-67.8026 183.903 -66.3028 177.804 -63.898 172.182C-61.4932 166.558 -58.1858 161.252 -54.5752 156.232C-50.9646 151.21 -46.4491 146.422 -42.2322 142.057C-38.0131 137.692 -34.2019 133.749 -29.2624 130.036C-24.323 126.323 -18.3418 122.387 -12.5886 119.776C-6.83536 117.165 -0.644495 115.833 5.25233 114.37C11.1469 112.907 19.7129 111.136 22.7878 110.996C25.8627 110.855 23.597 111.82 23.6996 113.518" stroke="#422424" stroke-width="8" stroke-linecap="round"/>
<path d="M69.7808 -100.904C76.6919 -104.194 85.1234 -102.697 92.7435 -102.422C100.361 -102.149 107.968 -100.849 115.494 -99.2583C123.021 -97.6676 130.7 -95.3895 137.903 -92.8816C145.104 -90.3738 151.958 -87.859 158.7 -84.211C165.445 -80.5629 172.217 -75.6791 178.363 -70.9979C184.508 -66.3166 190.284 -61.5216 195.57 -56.1235C200.856 -50.7276 205.686 -44.9199 210.078 -38.6115C214.471 -32.3008 218.649 -25.098 221.924 -18.2684C225.2 -11.4388 227.488 -4.88007 229.731 2.37052C231.974 9.62339 234.197 17.716 235.382 25.242C236.567 32.7679 236.811 39.9571 236.845 47.5285C236.879 55.1023 236.677 63.0993 235.585 70.6822C234.495 78.2628 232.633 85.7682 230.299 93.0188C227.967 100.269 225.081 107.331 221.585 114.186C218.086 121.04 213.664 127.968 209.312 134.142C204.963 140.316 200.712 145.817 195.481 151.235C190.252 156.654 184.068 161.899 177.934 166.653C171.798 171.41 165.395 176.055 158.668 179.769C151.942 183.48 144.81 186.391 137.57 188.936C130.333 191.48 122.804 193.571 115.243 195.037C107.68 196.502 99.7572 197.529 92.1942 197.727C84.6311 197.927 77.3848 197.192 69.8628 196.232C62.3431 195.271 54.4472 193.874 47.0642 191.965C39.6812 190.057 32.4692 187.816 25.5603 184.782C18.6514 181.749 12.0411 177.921 5.60866 173.761C-0.821545 169.603 -7.23124 164.972 -13.0232 159.828C-18.8152 154.685 -24.3405 148.789 -29.1432 142.899C-33.9436 137.007 -37.9941 130.979 -41.8349 124.488C-45.678 117.995 -49.2407 111.031 -52.1971 103.949C-55.1535 96.8649 -57.8773 89.5278 -59.5709 81.9905C-61.2645 74.4531 -61.8754 66.3446 -62.3564 58.7276C-62.8373 51.1129 -63.0516 43.8737 -62.4544 36.2908C-61.8572 28.7102 -60.5716 20.6677 -58.7777 13.2373C-56.9815 5.80465 -54.4879 -1.24567 -51.6865 -8.30282C-48.8874 -15.3577 -45.7714 -22.565 -41.9762 -29.1033C-38.1787 -35.6416 -33.7635 -41.6792 -28.9129 -47.5279C-24.0646 -53.3766 -18.6465 -59.041 -12.8773 -64.1956C-7.11043 -69.3525 -0.705296 -74.2545 5.69071 -78.4669C12.0867 -82.6771 18.5716 -86.357 25.4965 -89.4703C32.4236 -92.5812 38.3341 -95.0231 47.2443 -97.1442C56.1567 -99.2629 72.2402 -101.939 78.9622 -102.19C85.6842 -102.442 87.494 -101.159 87.5761 -98.653M206.741 -42.4962C213.069 -38.1518 214.648 -29.736 218.343 -23.0202C222.038 -16.3044 226.321 -9.31326 228.908 -2.20149C231.495 4.908 232.514 12.1358 233.868 19.6481C235.22 27.1604 236.779 35.3873 237.025 42.8701C237.271 50.3528 236.335 56.9843 235.345 64.5422C234.358 72.1 233.077 80.7911 231.099 88.2169C229.12 95.6405 226.572 102.258 223.474 109.09C220.379 115.92 216.606 122.706 212.522 129.199C208.437 135.694 203.942 142.453 198.966 148.054C193.99 153.654 188.526 158.044 182.666 162.81C176.806 167.575 170.464 172.671 163.804 176.646C157.144 180.622 149.836 183.836 142.706 186.66C135.576 189.484 128.341 191.944 121.029 193.592C113.719 195.242 106.377 195.938 98.8386 196.555C91.3006 197.169 83.5461 197.793 75.8007 197.288C68.053 196.78 59.838 195.406 52.357 193.514C44.8783 191.625 37.9466 188.913 30.9215 185.941C23.8963 182.968 16.7116 179.493 10.2108 175.681C3.70991 171.872 -2.22338 167.944 -8.08601 163.074C-13.9509 158.206 -19.8455 152.111 -24.9719 146.47C-30.0982 140.83 -34.7072 135.482 -38.842 129.231C-42.9746 122.979 -46.5236 115.961 -49.7741 108.963C-53.0245 101.965 -56.357 94.6824 -58.3401 87.2384C-60.3231 79.7921 -60.8588 71.8451 -61.6726 64.2896C-62.484 56.734 -63.3958 49.3742 -63.2203 41.9074C-63.0425 34.4383 -62.1421 26.9829 -60.6103 19.4888C-59.0786 11.9947 -56.6259 4.15699 -54.0274 -3.05946C-51.4266 -10.2759 -48.5956 -17.1942 -45.0101 -23.8053C-41.4269 -30.4164 -37.1553 -36.6634 -32.5258 -42.7283C-27.894 -48.7932 -22.8315 -54.7444 -17.2242 -60.1948C-11.6168 -65.6453 -5.20484 -71.0684 1.11823 -75.4288C7.4413 -79.7892 13.949 -83.1118 20.7097 -86.357C27.4704 -89.6045 34.3725 -92.6313 41.6825 -94.9025C48.9926 -97.176 56.9477 -98.8965 64.5655 -99.9957C72.1832 -101.097 79.8785 -101.493 87.3892 -101.505C94.8998 -101.518 102.185 -101.058 109.627 -100.066C117.072 -99.074 124.685 -97.7472 132.047 -95.5511C139.41 -93.3573 146.87 -90.3783 153.806 -86.8964C160.743 -83.4122 167.433 -79.2248 173.662 -74.6505C179.894 -70.0762 185.7 -64.6917 191.193 -59.4507C196.684 -54.2073 204.407 -46.2899 206.616 -43.1949C208.824 -40.0975 206.363 -42.4393 204.443 -40.8736" fill="#FCEECA"/>
<path d="M203.455 -47.1637C210.07 -43.1151 212.796 -34.8791 216.696 -28.3454C220.596 -21.8117 224.093 -15.1027 226.858 -7.96139C229.625 -0.817764 231.677 7.01542 233.293 14.5072C234.911 21.9968 235.987 29.3725 236.561 36.9827C237.136 44.5928 237.398 52.5171 236.737 60.1682C236.076 67.817 234.487 75.4613 232.597 82.8826C230.708 90.3039 228.276 97.691 225.399 104.698C222.52 111.703 219.14 118.469 215.331 124.921C211.522 131.372 207.376 137.485 202.543 143.409C197.711 149.333 192.092 155.363 186.339 160.461C180.586 165.557 174.52 169.919 168.022 173.986C161.523 178.053 154.304 181.815 147.348 184.862C140.389 187.909 133.566 190.36 126.279 192.274C118.99 194.186 111.233 195.538 103.617 196.339C95.9995 197.142 88.3065 197.42 80.5771 197.09C72.8476 196.76 64.7694 195.777 57.236 194.354C49.7048 192.934 42.4267 191.154 35.3787 188.565C28.3285 185.973 21.6636 182.509 14.937 178.808C8.2128 175.11 1.0851 171.012 -4.97584 166.367C-11.0345 161.72 -16.1426 156.454 -21.4217 150.937C-26.6986 145.421 -32.2239 139.556 -36.6436 133.261C-41.0611 126.966 -44.5987 120.016 -47.9312 113.171C-51.2637 106.328 -54.3455 99.4252 -56.6386 92.1973C-58.9294 84.9695 -60.607 77.3525 -61.6852 69.8061C-62.761 62.2596 -63.2146 54.5584 -63.1007 46.9164C-62.9867 39.2721 -62.2732 31.4981 -61.0013 23.9448C-59.7294 16.3938 -57.7441 8.8019 -55.4738 1.60365C-53.2012 -5.59232 -50.7053 -12.3878 -47.3728 -19.2401C-44.038 -26.0901 -39.8827 -33.2838 -35.4697 -39.5012C-31.0568 -45.7186 -26.245 -51.1964 -20.8952 -56.5444C-15.5454 -61.8948 -9.54833 -66.9538 -3.36658 -71.5941C2.81516 -76.2344 9.51662 -80.7677 16.1953 -84.3861C22.8739 -88.0046 29.5936 -90.847 36.7031 -93.3003C43.8148 -95.7559 51.2183 -97.6015 58.8521 -99.1195C66.4858 -100.637 74.8147 -102.11 82.5077 -102.408C90.1984 -102.708 97.4789 -101.825 105.005 -100.917C112.532 -100.009 120.243 -99.0398 127.667 -96.962C135.089 -94.8843 142.595 -91.7482 149.543 -88.4484C156.49 -85.1463 163.037 -81.3321 169.355 -77.1629C175.676 -72.9937 180.041 -70.9022 187.461 -63.4332C194.878 -55.9641 208.502 -40.4866 213.865 -32.3485C219.231 -24.2126 221.752 -15.9744 219.648 -14.6089M142.258 -92.0555C149.743 -91.5229 156.028 -84.9574 162.741 -80.886C169.456 -76.8124 176.597 -72.3951 182.546 -67.6229C188.496 -62.8506 193.51 -57.944 198.441 -52.2478C203.369 -46.5493 207.991 -39.8358 212.122 -33.4386C216.25 -27.0414 219.926 -20.8013 223.215 -13.8625C226.502 -6.92137 229.76 0.977812 231.85 8.20109C233.942 15.4266 234.911 22.0446 235.759 29.4841C236.607 36.9235 237.124 45.0025 236.942 52.8334C236.762 60.6666 236.156 68.9003 234.674 76.4786C233.19 84.0569 230.735 91.2529 228.05 98.2986C225.367 105.342 222.044 112.081 218.57 118.746C215.096 125.412 211.718 132.271 207.212 138.298C202.705 144.321 197.118 149.679 191.532 154.897C185.943 160.118 180.034 165.206 173.679 169.614C167.324 174.02 160.128 177.991 153.397 181.344C146.668 184.698 140.452 187.399 133.297 189.734C126.145 192.069 118.146 194.117 110.478 195.349C102.808 196.58 94.9806 197.137 87.2785 197.121C79.5787 197.106 71.9131 196.436 64.2702 195.255C56.6274 194.072 48.6905 192.242 41.4215 190.028C34.1547 187.814 27.3028 185.199 20.6675 181.969C14.0344 178.74 7.93699 174.942 1.61392 170.652C-4.71143 166.362 -11.6727 161.633 -17.2823 156.233C-22.8897 150.835 -27.5374 144.31 -32.0369 138.25C-36.5388 132.192 -40.5254 126.498 -44.2865 119.877C-48.0498 113.255 -51.9931 105.684 -54.6099 98.5262C-57.2244 91.3712 -58.494 84.3983 -59.9756 76.9429C-61.4549 69.4875 -63.1098 61.5063 -63.4973 53.7915C-63.8825 46.0767 -63.3377 38.2708 -62.2938 30.6515C-61.2521 23.0345 -59.2234 15.3333 -57.238 8.0782C-55.255 0.823058 -53.3129 -5.99058 -50.3884 -12.877C-47.464 -19.7635 -43.9856 -26.7456 -39.6912 -33.2429C-35.3945 -39.7402 -29.7188 -46.0714 -24.6106 -51.8586C-19.5025 -57.6459 -14.7226 -63.1032 -9.0423 -67.9619C-3.35974 -72.823 2.96561 -77.2539 9.47787 -81.0203C15.9924 -84.7867 22.9036 -87.8362 30.0335 -90.5671C37.1658 -93.2958 44.7972 -95.4851 52.2669 -97.4058C59.7388 -99.3243 67.2198 -101.32 74.8558 -102.085C82.494 -102.849 90.4036 -102.67 98.0897 -101.991C105.774 -101.313 113.578 -99.7385 120.968 -98.0134C128.36 -96.2907 138.893 -93.3049 142.429 -91.6436C145.962 -89.98 143.026 -90.3009 142.173 -88.0388" stroke="#FCEECA" stroke-width="8" stroke-linecap="round"/>
<path d="M293.558 163.643C297.069 156.779 304.949 153.769 311.231 149.496C317.513 145.224 324.39 141.478 331.253 138.007C338.116 134.536 345.091 130.976 352.413 128.671C359.734 126.367 367.552 125.283 375.175 124.177C382.797 123.07 390.52 122.126 398.149 122.037C405.778 121.947 413.407 122.387 420.954 123.64C428.504 124.894 436.267 127.23 443.436 129.553C450.607 131.874 457.186 134.172 463.967 137.567C470.75 140.962 477.867 145.512 484.13 149.927C490.396 154.342 496.022 158.775 501.556 164.053C507.089 169.332 512.632 175.439 517.334 181.597C522.035 187.753 526.147 194.269 529.76 201C533.375 207.73 536.552 214.729 539.018 221.98C541.485 229.229 543.069 237.023 544.56 244.5C546.05 251.978 547.612 259.247 547.963 266.847C548.314 274.443 547.612 282.327 546.666 290.088C545.722 297.85 544.341 305.94 542.292 313.413C540.242 320.888 537.555 327.96 534.373 334.932C531.189 341.903 527.423 348.785 523.199 355.241C518.976 361.697 514.045 368.027 509.026 373.663C504.005 379.296 498.912 384.252 493.077 389.047C487.244 393.839 480.613 398.392 474.021 402.424C467.431 406.453 460.564 410.282 453.534 413.23C446.504 416.179 439.308 418.392 431.848 420.119C424.385 421.849 416.475 423.09 408.766 423.599C401.057 424.11 393.155 423.778 385.594 423.175C378.033 422.573 370.782 421.677 363.406 419.982C356.028 418.289 348.515 415.899 341.33 413.012C334.148 410.124 326.815 406.699 320.3 402.655C313.784 398.611 308.017 393.656 302.232 388.751C296.446 383.846 290.652 378.939 285.585 373.223C280.52 367.505 275.929 360.907 271.836 354.449C267.744 347.993 264.204 341.472 261.031 334.478C257.858 327.484 254.923 319.873 252.798 312.483C250.674 305.094 249.162 297.733 248.283 290.139C247.405 282.544 247.161 274.668 247.526 266.913C247.893 259.156 249.033 251.204 250.48 243.598C251.927 235.994 253.664 228.5 256.21 221.284C258.756 214.065 262.025 207.006 265.757 200.289C269.486 193.572 271.963 188.656 278.587 180.979C285.211 173.304 298.626 159.884 305.5 154.236C312.377 148.591 318.238 145.242 319.845 147.1M435.506 127.705C443.21 127.187 451.387 132.183 458.4 135.194C465.414 138.206 471.231 141.631 477.588 145.773C483.946 149.918 490.832 155.132 496.542 160.053C502.254 164.974 507.048 169.435 511.857 175.299C516.667 181.167 521.385 188.605 525.401 195.247C529.415 201.888 532.996 208.177 535.95 215.151C538.905 222.125 541.248 229.524 543.126 237.087C545.006 244.647 546.468 252.954 547.229 260.519C547.992 268.086 548.186 274.902 547.705 282.485C547.224 290.065 546.11 298.434 544.343 306.013C542.577 313.594 539.942 320.831 537.106 327.96C534.268 335.09 531.043 342.238 527.323 348.792C523.603 355.349 519.518 361.282 514.786 367.292C510.052 373.299 504.72 379.599 498.928 384.843C493.136 390.089 486.453 394.682 480.03 398.767C473.609 402.852 467.283 406.263 460.393 409.352C453.504 412.44 445.987 415.104 438.695 417.297C431.405 419.489 424.207 421.574 416.649 422.511C409.088 423.448 401.026 423.086 393.337 422.916C385.646 422.749 378.017 422.74 370.513 421.498C363.012 420.257 355.663 418.039 348.314 415.468C340.968 412.898 333.143 409.778 326.432 406.075C319.719 402.376 314.105 397.844 308.042 393.262C301.979 388.68 295.523 383.919 290.053 378.586C284.58 373.253 279.599 367.514 275.218 361.262C270.837 355.007 267.206 347.963 263.764 341.067C260.325 334.173 257.017 327.11 254.576 319.892C252.135 312.673 250.355 305.346 249.115 297.761C247.877 290.175 247.116 282.228 247.147 274.379C247.179 266.53 248.134 258.244 249.306 250.663C250.475 243.082 252.019 236.106 254.173 228.897C256.329 221.685 258.875 214.289 262.23 207.396C265.588 200.502 269.898 193.806 274.309 187.54C278.717 181.277 283.566 175.409 288.69 169.808C293.814 164.209 299.116 158.83 305.049 153.938C310.982 149.047 317.522 144.307 324.287 140.465C331.052 136.623 338.374 133.45 345.638 130.884C352.903 128.319 360.395 126.417 367.872 125.07C375.35 123.723 382.877 123.219 390.504 122.807C398.133 122.394 405.983 121.842 413.64 122.593C421.296 123.345 432.734 126.067 436.445 127.311C440.154 128.555 436.682 127.576 435.898 130.06" fill="#244236"/>
<path d="M335.765 135.377C341.381 130.057 350.125 129.246 357.426 127.23C364.729 125.214 372.08 124.14 379.579 123.278C387.076 122.417 394.753 121.801 402.417 122.06C410.078 122.319 418.083 123.361 425.553 124.836C433.02 126.309 440.139 128.337 447.228 130.903C454.319 133.466 461.353 136.639 468.096 140.22C474.836 143.801 481.457 147.851 487.682 152.39C493.908 156.93 500.064 161.888 505.446 167.46C510.828 173.029 515.573 179.501 519.973 185.81C524.374 192.12 528.491 198.498 531.846 205.313C535.204 212.131 537.745 219.442 540.116 226.713C542.484 233.985 544.772 241.433 546.063 248.943C547.355 256.455 547.845 264.132 547.859 271.777C547.872 279.419 547.371 287.211 546.145 294.803C544.916 302.398 542.805 309.935 540.496 317.335C538.185 324.735 535.509 332.288 532.281 339.207C529.051 346.128 525.514 352.579 521.117 358.856C516.72 365.136 511.174 371.312 505.897 376.879C500.618 382.446 495.51 387.569 489.449 392.259C483.386 396.946 476.279 401.345 469.529 405.012C462.782 408.678 456.113 411.617 448.96 414.256C441.805 416.893 434.121 419.287 426.606 420.841C419.088 422.396 411.443 423.253 403.864 423.583C396.283 423.911 388.638 423.668 381.12 422.809C373.603 421.947 366.067 420.44 358.759 418.421C351.449 416.403 344.324 413.739 337.269 410.696C330.212 407.652 322.948 404.334 316.424 400.158C309.903 395.984 303.876 390.726 298.134 385.645C292.394 380.563 286.839 375.447 281.978 369.667C277.113 363.89 272.807 357.599 268.955 350.971C265.103 344.343 261.802 337.016 258.862 329.901C255.922 322.785 253.18 315.66 251.308 308.281C249.439 300.899 248.14 293.376 247.645 285.621C247.15 277.864 247.736 269.444 248.34 261.742C248.947 254.038 249.626 246.883 251.274 239.394C252.92 231.905 255.334 223.921 258.222 216.805C261.11 209.691 264.738 203.178 268.602 196.706C272.468 190.234 276.651 183.925 281.412 177.968C286.172 172.014 291.519 166.207 297.163 160.972C302.809 155.735 308.141 151.086 315.28 146.557C322.419 142.025 334.826 135.819 340.002 133.787C345.176 131.757 345.297 132.057 346.334 134.374M309.706 150.58C314.311 144.513 323.479 142.264 330.342 138.745C337.203 135.224 343.786 131.81 350.879 129.459C357.975 127.107 365.415 125.853 372.912 124.632C380.411 123.411 388.088 122.206 395.87 122.138C403.65 122.071 411.999 123.237 419.601 124.227C427.203 125.219 434.235 125.957 441.483 128.083C448.734 130.209 456.14 133.416 463.101 136.983C470.06 140.55 477.013 145.029 483.242 149.487C489.472 153.943 495.063 158.582 500.484 163.723C505.904 168.864 510.93 174.305 515.762 180.33C520.595 186.358 525.673 193.217 529.478 199.879C533.284 206.544 536.061 213.187 538.595 220.308C541.13 227.428 543.298 235.073 544.688 242.601C546.079 250.129 546.48 257.857 546.933 265.474C547.389 273.092 548.114 280.666 547.417 288.311C546.721 295.955 544.845 303.88 542.753 311.344C540.66 318.806 537.993 326.098 534.859 333.09C531.723 340.08 528.137 346.852 523.943 353.285C519.747 359.72 514.709 365.86 509.692 371.695C504.675 377.53 499.476 383.232 493.841 388.295C488.204 393.361 482.476 398.027 475.875 402.08C469.276 406.133 461.39 409.821 454.237 412.614C447.084 415.409 440.239 417.049 432.963 418.845C425.685 420.644 418.281 422.683 410.577 423.397C402.873 424.112 394.368 423.645 386.734 423.129C379.103 422.612 372.242 421.968 364.786 420.3C357.33 418.634 349.181 416.043 342.003 413.129C334.826 410.217 328.126 406.742 321.721 402.827C315.316 398.914 309.517 394.38 303.57 389.645C297.623 384.911 291.341 380.029 286.037 374.419C280.733 368.808 275.782 362.474 271.745 355.979C267.708 349.482 264.95 342.499 261.816 335.438C258.682 328.38 255.217 320.991 252.942 313.614C250.665 306.235 249.134 298.64 248.158 291.172C247.185 283.701 246.804 276.329 247.096 268.796C247.385 261.266 248.466 253.689 249.902 245.98C251.338 238.271 253.161 229.948 255.712 222.544C258.263 215.139 261.538 208.211 265.206 201.558C268.871 194.903 273.177 188.752 277.71 182.619C282.242 176.488 286.874 170.076 292.399 164.768C297.924 159.46 307.564 152.889 310.864 150.77C314.167 148.651 310.944 150.142 312.212 152.058" stroke="#244236" stroke-width="8" stroke-linecap="round"/>
<path d="M386.373 19.5247C389.583 14.5303 396.268 10.9995 401.473 7.89729C406.675 4.79247 411.891 2.81929 417.596 0.903603C423.298 -1.00947 429.704 -2.8964 435.694 -3.58898C441.68 -4.27894 447.633 -4.05679 453.523 -3.24661C459.416 -2.43643 465.39 -0.648807 471.04 1.27472C476.691 3.19824 482.214 5.31517 487.426 8.29454C492.639 11.2765 497.91 14.8857 502.315 19.164C506.72 23.4449 510.573 28.9411 513.863 33.9694C517.151 38.9978 519.902 43.8797 522.046 49.3315C524.188 54.7832 525.766 60.7655 526.725 66.6824C527.684 72.5967 528.028 78.7724 527.798 84.8304C527.566 90.8885 526.858 97.1974 525.339 103.028C523.82 108.859 521.642 114.483 518.691 119.817C515.739 125.151 511.652 130.399 507.629 135.033C503.607 139.669 499.259 144.034 494.557 147.627C489.854 151.223 484.866 154.041 479.416 156.607C473.966 159.171 467.68 161.683 461.854 163.021C456.029 164.359 450.512 164.79 444.465 164.631C438.419 164.471 431.533 163.402 425.575 162.062C419.617 160.718 414.089 159.119 408.717 156.578C403.346 154.038 398.109 150.429 393.342 146.825C388.577 143.218 384.013 139.562 380.121 134.947C376.231 130.329 372.811 124.474 370.003 119.119C367.194 113.764 364.821 108.464 363.268 102.809C361.716 97.1556 360.973 91.291 360.687 85.1911C360.397 79.0912 360.507 72.1498 361.538 66.212C362.57 60.2715 364.555 55.0785 366.879 49.5536C369.205 44.0287 368.888 40.4273 375.489 33.0599C382.088 25.6951 397.51 10.861 406.48 5.35175C415.447 -0.157472 428.79 -1.23423 429.303 0.0097909M460.515 -1.35967C466.291 -1.41979 472.692 1.71117 478.267 4.11035C483.839 6.50953 489.143 9.65093 493.955 13.038C498.767 16.4251 503.133 19.8278 507.137 24.4354C511.138 29.043 515.171 35.2918 517.972 40.6861C520.77 46.0777 522.354 51.1217 523.93 56.793C525.508 62.4668 526.78 68.747 527.439 74.7267C528.098 80.7037 528.624 86.7932 527.879 92.6657C527.134 98.5355 525.146 104.437 522.966 109.951C520.785 115.466 518.06 120.601 514.801 125.752C511.545 130.904 507.866 136.543 503.422 140.858C498.98 145.176 493.374 148.508 488.14 151.652C482.907 154.796 477.477 157.624 472.02 159.73C466.559 161.839 461.195 163.598 455.389 164.299C449.584 164.999 443.186 164.662 437.186 163.941C431.189 163.219 425.242 161.711 419.404 159.966C413.566 158.222 407.368 156.401 402.163 153.471C396.961 150.541 392.495 146.642 388.181 142.385C383.864 138.13 379.738 132.79 376.271 127.932C372.803 123.071 369.885 118.612 367.379 113.221C364.876 107.829 362.33 101.504 361.236 95.5875C360.145 89.6706 360.564 83.6544 360.825 77.7217C361.085 71.7891 361.304 65.9166 362.797 59.9866C364.292 54.0593 367.043 47.7033 369.789 42.147C372.537 36.5933 375.447 31.3298 379.279 26.6569C383.114 21.984 388.022 17.724 392.792 14.1148C397.562 10.5055 402.645 7.64117 407.899 5.00155C413.157 2.35931 418.609 -0.269852 424.325 -1.73079C430.043 -3.19173 436.196 -3.80067 442.199 -3.76669C448.204 -3.73533 457.363 -2.10974 460.349 -1.53216C463.332 -0.951971 460.148 -1.57659 460.104 -0.301214" fill="#423324"/>
<path d="M409.327 3.74958C413.868 0.158652 420.287 -0.209849 426.055 -1.45125C431.822 -2.69266 437.895 -3.69624 443.936 -3.70408C449.978 -3.70931 456.472 -2.8364 462.3 -1.49568C468.128 -0.154966 473.575 1.8156 478.908 4.34284C484.238 6.86747 489.482 10.0821 494.288 13.6599C499.098 17.2378 503.703 21.3226 507.749 25.8126C511.795 30.3052 515.671 35.2107 518.566 40.6049C521.457 45.9992 523.515 52.316 525.107 58.1806C526.699 64.0479 527.853 69.8289 528.116 75.7955C528.379 81.7621 527.613 88.0737 526.686 93.9854C525.761 99.8971 524.675 105.733 522.562 111.26C520.452 116.785 517.406 122.18 514.017 127.14C510.63 132.1 506.697 136.867 502.231 141.025C497.766 145.181 492.413 148.887 487.223 152.088C482.034 155.29 476.639 158.267 471.092 160.235C465.543 162.203 459.953 163.251 453.94 163.893C447.93 164.536 441.006 164.714 435.019 164.089C429.032 163.465 423.731 162.046 418.02 160.143C412.307 158.24 405.972 155.799 400.748 152.669C395.525 149.535 391.034 145.471 386.683 141.347C382.333 137.223 378.06 132.837 374.645 127.919C371.23 123.003 368.372 117.447 366.189 111.846C364.003 106.248 362.445 100.294 361.539 94.3277C360.635 88.3638 360.371 82.0966 360.754 76.0516C361.137 70.0066 362.325 63.8022 363.834 58.0604C365.342 52.316 367.111 46.9662 369.805 41.5928C372.498 36.2195 376.135 30.4254 379.993 25.8152C383.854 21.205 385.816 18.3093 392.956 13.9317C400.097 9.55674 415.342 2.17888 422.837 -0.439836C430.335 -3.05593 437.635 -3.11082 437.934 -1.7701M379.17 26.6515C381.681 21.2861 388.298 17.8206 393.027 14.2506C397.753 10.6805 402.077 7.82139 407.53 5.23404C412.98 2.64669 419.643 0.195241 425.739 -1.27354C431.836 -2.74232 438.114 -3.46886 444.103 -3.57863C450.09 -3.6884 455.954 -3.06377 461.662 -1.93214C467.37 -0.797883 472.822 0.728392 478.348 3.21904C483.873 5.70969 489.938 9.26926 494.815 13.0092C499.691 16.7491 503.68 21.1894 507.603 25.6558C511.524 30.1223 515.572 34.6932 518.344 39.8078C521.114 44.9198 522.752 50.4003 524.227 56.3407C525.704 62.2812 526.649 69.2148 527.199 75.4479C527.749 81.6811 528.384 87.8567 527.53 93.7423C526.676 99.6253 524.422 105.108 522.07 110.751C519.717 116.391 516.779 122.561 513.418 127.595C510.057 132.626 506.058 136.765 501.911 140.947C497.766 145.126 493.593 149.65 488.536 152.671C483.48 155.692 477.298 157.242 471.574 159.074C465.853 160.909 460.06 162.707 454.203 163.669C448.344 164.63 442.464 165.326 436.434 164.842C430.403 164.359 423.869 162.785 418.02 160.768C412.172 158.748 406.336 155.826 401.34 152.731C396.343 149.634 392.316 146.344 388.033 142.191C383.753 138.038 379.191 132.861 375.653 127.82C372.115 122.778 369.229 117.504 366.806 111.94C364.386 106.376 362.044 100.42 361.127 94.4323C360.212 88.4474 360.911 82.0208 361.309 76.0203C361.708 70.0223 362.117 64.1995 363.516 58.4367C364.917 52.6714 367.025 46.8224 369.703 41.4308C372.384 36.0392 377.823 28.4758 379.597 26.0844C381.371 23.6957 379.256 26.121 380.35 27.0906" stroke="#423324" stroke-width="8" stroke-linecap="round"/>
<path d="M13.3778 276.18C18.8365 270.706 24.7351 262.829 31.6187 255.671M13.2266 276.218C18.4196 269.936 24.1601 263.89 31.0391 256.822M11.4627 283.931C20.4858 274.382 27.8619 266.386 43.0126 249.424M11.7743 283.712C18.5433 276.414 25.5804 269.044 41.9383 249.075M11.3322 289.121C24.9092 274.903 38.1334 259.457 53.0803 242.766M11.2543 289.74C27.1861 271.697 42.9119 253.792 52.6222 243.313M11 295.351C26.0591 278.543 39.7072 262.714 58.0603 243.169M11.6849 294.779C24.8817 280.235 37.9708 264.757 57.8267 242.59M11.2474 301.176C31.1147 276.806 52.3679 253.992 63.2602 242.502M11.1878 300.778C21.4594 288.738 31.6049 277.061 63.3175 242M12.8028 304.427C28.0406 287.33 42.0391 270.875 67.3995 242.246M13.2541 304.343C32.4479 283.104 51.4974 261.324 67.6217 242.863M14.4429 308.274C25.7522 294.32 38.3007 279.926 71.2891 242.984M13.9825 308.58C36.3765 284.235 58.3695 259.049 71.9466 243.383M15.1737 313.365C32.2898 293.509 50.2627 273.285 76.0836 244.246M15.4211 312.885C28.233 298.41 41.3519 283.956 76.1569 244.131M15.9594 317.081C30.0472 300.942 44.1695 285.555 80.8918 243.953M16.0189 317.372C39.1116 291.132 61.5101 265.983 80.6627 244.291M18.4219 320.298C39.2719 295.892 60.3006 271.839 83.8239 245.94M18.06 320.566C38.0991 297.674 58.074 275.108 83.9705 246.041M19.7253 324.157C38.7221 303.348 57.2792 282.332 87.2508 247.735M19.9406 323.853C41.2167 300.194 62.3439 276.443 87.2645 247.766M21.1112 328.09C45.844 300.293 70.6477 272.515 90.6136 249.42M21.6312 327.777C36.1474 312.187 50.4781 295.948 90.838 249.564M24.1349 330.331C42.2979 309.727 59.941 289.085 93.8366 251.084M23.7501 330.432C43.2577 309.035 61.9614 287.688 93.8137 251.319M26.3592 332.971C51.2913 303.99 77.1694 275.671 96.6152 253.384M26.3455 333.189C49.6351 307.785 72.281 282.154 96.8443 253.308M28.9225 335.669C47.7132 313.185 67.0101 292.292 99.868 256.042M28.8973 335.629C57.8244 303.697 86.0115 271.695 99.7168 255.567M31.8294 338.636C56.0605 311.087 80.4749 284.039 102.658 257.79M31.4469 338.156C46.4762 321.057 62.1103 303.204 102.397 257.849M34.8257 340.238C49.3442 324.497 63.6565 308.288 105.073 259.881M34.9494 340.044C54.1065 318.242 73.4218 296.525 105.35 260.387M38.3694 341.949C59.153 317.991 79.6159 295.203 107.693 263.633M38.0945 341.63C57.1142 320.393 75.7835 299.433 107.748 263.075M41.8306 343.202C67.3697 314.464 93.328 286.314 109.803 266.003M41.6428 343.278C58.4016 324.274 74.9634 305.817 109.723 266.467M45.143 344.995C62.7288 325.959 79.3593 307.121 111.995 269.85M45.5187 344.452C59.4164 328.626 73.2821 312.788 111.631 269.623M49.1655 346.094C69.0168 322.992 89.6927 300.352 113.727 273.502M49.335 345.984C65.1707 326.871 81.382 308.188 113.255 273.191M52.8054 347.579C68.6686 328.95 84.0209 312.385 114.886 276.847M52.6428 347.216C76.7616 319.89 100.993 292.554 114.941 276.646M56.4385 349.518C77.8199 324.627 99.6321 299.564 116.725 280.991M56.1476 348.993C71.2823 333.122 86.1031 316.329 116.407 280.94M60.5824 348.856C78.7454 328.833 96.1708 308.362 117.108 285.888M60.745 348.998C79.2104 328.414 97.9621 307.366 116.881 285.731M65.6609 350C79.2814 334.462 93.2983 318.028 117.284 290.281M65.5349 349.588C83.1069 329.502 100.548 310.333 117.44 290.524M70.5859 349.153C85.0655 331.806 101.398 313.619 118.647 294.664M70.1026 349.272C87.9517 330.869 105.029 311.256 119 294.304M75.5499 348.437C91.6352 328.68 108.88 310.506 118.004 300.178M75.9622 348.493C84.6554 337.212 93.6739 327.52 118.107 301.12M82.8847 346.63C95.3782 332.554 107.352 318.647 116.657 307.328M82.3235 346.851C93.4861 333.525 105.803 319.931 116.732 307.418M94.013 338.742C100.464 332.908 104.617 326.698 110.618 319.136M94.1664 339.143C100.821 331.662 107.379 324.132 111.289 320.066" stroke="#243642" stroke-linecap="round"/>
<path d="M440.735 401.702C439.549 392.172 440.242 383.477 439.641 367.783M441.338 400.76C440.965 392.853 440.284 384.713 438.438 367.859M445.546 416.786C444.582 404.264 443.797 389.715 441.343 352.488M445.474 415.872C445.064 402.095 443.899 389.06 441.491 352.255M449.576 421.906C448.259 405.212 447.496 388.812 445.209 345.523M449.202 421.33C448.444 402.837 447.572 385.869 444.685 345.224M453.755 426.871C451.581 394.863 450.539 362.69 447.791 337.717M453.576 426.801C451.561 397.454 449.553 366.844 448.159 338.446M457.667 428.67C455.185 395.428 452.815 361.373 451.787 334.221M456.891 428.584C455.301 396.615 453.639 366.038 451.529 333.381M461.016 431.722C458.502 400.777 456.754 367.329 455.339 329.394M460.931 431.606C459.785 408.686 458.326 385.579 455.209 329.171M465.203 438.464C462.965 406.712 461.24 372.878 458.315 324.831M464.899 438.824C462.45 394.688 460.022 351.616 458.126 325.653M469.028 440.465C466.304 395.373 463.116 349.426 462.178 322.849M468.836 440.535C466.345 402.334 464.033 365.116 461.925 323.134M472.506 443.204C470.156 410.931 468.338 377.891 465.149 320.585M472.705 442.645C471.144 414.153 469.333 385.68 465.5 320.49M476.222 444.393C473.873 405.876 471.269 367.335 469.057 318.229M476.359 444.311C473.565 412.081 471.87 379.854 468.775 318.403M479.75 445.325C477.653 404.077 474.992 364.084 472.916 316.726M479.811 445.15C477.554 402.954 474.756 361.57 472.469 316.785M483.623 445.995C482.287 416.284 480.784 386.819 476.526 315.143M483.605 445.901C482.071 410.859 480.149 376.423 476.131 315.087M487.44 446.88C485.291 409.287 482.951 371.146 480.04 313.525M487.262 447.021C485.114 411.309 483.375 375.925 479.593 313.737M491.538 447.664C489.158 406.229 486.561 363.958 482.732 311.064M491.229 447.931C488.289 398.738 485.236 350.719 483.057 310.873M494.973 448.143C492.048 415.162 490.376 380.926 486.892 311.337M495.084 448.309C492.322 411.519 490.363 375.402 486.564 311.098M498.509 447.662C496.148 405.079 493.513 361.789 490.046 310.667M498.517 447.576C495.202 403.772 492.473 359.117 490.475 310.797M502.237 447.004C499.881 409.268 497.877 371.327 493.75 310.477M501.991 447.475C499.844 404.325 497.404 360.652 493.933 310.595M505.848 446.935C503.375 415.807 501.562 384.314 497.678 310.971M505.754 446.737C503.011 397.681 500.084 347.53 497.479 310.633M509.305 446.178C506.697 410.594 504.976 374.09 501.776 311.068M509.469 446.441C507.874 418.468 506.257 390.611 501.578 311.196M512.725 445.171C509.871 410.607 508.436 376.354 505.121 312.172M512.88 445.007C510.541 411.191 508.581 376.884 504.977 311.648M516.573 443.383C514.282 402.181 511.347 359.811 508.583 312.584M516.494 443.549C513.757 403.295 511.462 364.082 508.659 311.987M519.836 441.214C516.974 390.938 514.163 338.94 512.814 312.609M520.085 441.363C517.164 395.188 514.592 349.066 512.482 312.888M523.45 438.719C521.279 395.006 518.142 351.345 515.981 314.317M523.663 438.78C521.027 395.617 518.415 351.088 516.228 314.681M526.912 436.022C524.828 403.568 523.115 370.03 519.706 316.382M527.067 436.114C525.397 410.418 523.658 384.145 519.959 316.102M530.548 434.385C529.167 401.637 527.881 369.719 523.8 319.961M530.601 434.036C528.925 397.925 526.519 361.476 523.755 319.236M534.425 432.3C532.552 395.853 530.208 359.243 527.515 323.454M534.207 432.489C531.733 390.741 529.428 349.701 527.475 323.01M537.901 428.418C534.992 402.217 533.677 375.705 531.738 326.693M537.324 428.54C534.666 396.613 532.895 364.376 531.884 326.844M540.923 425.254C539.808 404.823 537.664 384.393 535.5 330.241M540.749 424.41C539.249 389.999 537.218 356.547 535.319 329.253M543.649 420.49C544.303 401.387 542.857 381.73 540.037 335.069M544.685 420.561C543.33 397.248 541.863 373.262 539.287 335.499M547.474 414.189C545.731 387.119 545.348 360.355 542.99 341.132M547.495 413.955C546.07 393.707 545.201 373.092 543.148 340.544M550.931 406.702C548.624 382.603 547.867 358.213 547.032 342.101M550.899 405.996C549.928 386.527 548.892 367.567 547.438 341.826M552.888 390.354C552.483 381.062 552.322 373.603 551.935 358.728M553.374 389.495C552.253 382.514 552.443 375.463 551.695 358.203" stroke="#DAFBDD" stroke-linecap="round"/>
<path d="M413.642 208.557C418.893 208.154 423.301 207.61 433.991 206.015M414.639 209.537C418.161 208.695 422.983 208.146 433.886 207.725M410.319 213.589C417.163 212.925 423.616 212.868 442.57 210.274M409.835 214.124C421.457 212.734 432.896 211.691 442.055 210.972M406.517 217.906C416.737 217.012 428.463 216.151 445.206 215.354M406.77 217.991C421.469 217.294 436.287 215.662 446.221 215.099M400.21 223.997C411.183 221.933 420.761 222.717 449.941 219.593M401.026 223.367C418.829 221.464 437.222 220.087 449.052 219.088M400.187 227.87C414.578 225.74 431.87 224.667 451.633 222.977M400.155 227.724C416.272 225.676 432.368 224.745 451.151 222.987M398.822 233.053C413.312 230.702 428.087 228.587 452.927 228.15M398.994 232.506C414.214 230.631 430.722 229.665 452.71 227.559M398.079 236.438C416.141 235.046 434.779 233.359 454.28 230.763M398.364 236.291C414.958 235.618 429.714 234.155 453.784 231.545M398.761 241.945C417.533 239.312 435.547 237.952 455.499 235.924M398.722 240.629C411.025 239.651 422.512 239.126 454.924 235.877M398.621 245.236C418.26 244.052 438.02 241.779 455.294 240.365M399.093 244.964C415.584 244.155 432.834 242.178 454.927 240.562M398.822 250.015C417.56 247.509 437.102 246.268 455.847 245.208M398.642 249.621C417.501 247.892 436.257 246.253 455.318 244.735M401.116 254.149C415.142 252.153 428.247 250.697 453.92 248.495M400.618 253.937C413.254 252.43 425.414 251.701 454.52 249.293M403.041 257.474C412.956 256.545 424.746 255.883 453.083 253.687M403.22 257.797C416.626 256.386 430.328 255.69 452.398 254.043M407.576 261.572C416.756 260.505 429.111 259.51 449.794 258.533M406.675 261.224C418.212 261.597 429.296 259.956 449.219 257.775M410.107 266.31C423.335 264.71 435.34 264.168 445.72 262.286M410.135 265.728C420.271 264.937 430.052 264.551 446.137 262.487M417.529 270.113C422.471 268.522 428.028 267.573 439.95 268.428M417.071 269.099C422.216 269.132 428.19 268.426 440.186 267.341" stroke="#244236" stroke-linecap="round"/>
<path d="M465.252 79.806C465.563 74.7795 464.96 71.754 464.312 63.4445M465.6 78.5813C465.049 73.4575 464.812 67.7175 464.464 61.9489M470.149 84.5827C469.017 76.3952 468.877 69.4954 467.692 55.7511M469.52 86.0325C468.635 75.7676 467.839 65.5276 467.478 54.9899M473.611 88.1995C472.536 79.4913 472.894 70.598 470.974 52.863M473.445 87.2323C473.101 79.5351 472.65 72.3587 471.114 51.1404M477.047 88.6077C477.366 79.5886 475.908 72.2805 474.997 50.3144M476.743 88.995C476.132 75.3918 475.735 62.1874 474.941 49.2404M480.762 88.8538C480.166 80.2696 478.906 72.4408 478.868 48.2084M480.707 88.4685C480.35 79.4035 479.41 69.8788 477.882 48.0672M484.571 88.1194C483.999 80.0788 482.551 69.6633 482.115 45.8659M484.648 88.0316C483.751 74.8291 482.308 61.4167 482.308 46.4839M487.408 86.0515C486.681 78.0072 486.71 70.7353 485.071 47.1287M488.083 86.0687C486.536 76.1835 485.886 65.106 485.386 47.4454M491.458 84.6685C490.667 74.1748 489.87 62.7902 489.651 49.0821M491.645 84.4282C490.591 74.0927 489.389 62.9638 488.891 48.4068M495.334 79.2376C493.687 70.0009 494.559 60.1672 493.528 52.9335M494.767 80.2219C494.64 70.1669 494.137 60.0375 493.37 52.4185" stroke="#FCEECA" stroke-linecap="round"/>
<path d="M387.28 -4.29409C391.641 -4.96063 394.751 -3.39795 403.26 -2.28765M386.902 -4.86966C392.721 -3.38284 398.037 -2.86243 403.752 -1.0261M379.197 -2.84709C389.618 0.881663 399.563 0.763146 410.914 3.79168M378.746 -1.92503C385.972 -0.408072 392.827 1.07548 410.644 4.33949M375.969 1.16729C385.976 3.55612 395.48 5.77063 413.393 8.87933M375.653 1.80324C385.983 3.68377 396.966 5.42843 413.049 8.82146M372.352 4.27352C383.914 6.3008 394.954 10.1221 414.382 12.5591M372.076 5.86204C384.943 8.03768 398.647 10.2279 415.339 12.1785M369.608 9.30127C387.317 12.2953 403.017 13.8935 416.631 16.9309M370.273 9.289C381.069 10.0792 392.555 12.4663 415.584 16.9925M368.147 14.0185C381.819 14.1368 393.742 17.0199 417.046 20.3296M368.527 12.9841C383.51 15.7087 399.198 18.2813 417.179 20.8077M367.674 17.1708C382.298 18.9009 398.99 21.2995 415.882 25.5516M367.538 17.0605C380.906 19.1449 394.339 21.7143 416.468 24.8694M366.374 20.2147C381.503 23.0025 397.5 26.3978 415.657 28.7338M366.291 20.9081C377.582 22.1038 388.979 24.098 414.893 29.0023M365.94 24.9765C382.226 27.9659 400.479 31.2424 414.725 32.1378M365.674 24.7218C378.287 26.3017 391.382 29.0516 414.281 33.5316M365.575 29.402C376.079 30.1069 385.338 31.8207 412.54 37.874M366.099 28.6913C378.644 29.9464 390.526 32.6768 412.407 36.8686M366.664 32.9091C377.827 35.0124 389.235 37.2835 411.184 40.3503M367.046 33.3189C380.366 35.7653 394.778 37.6969 410.647 40.4156M366.711 37.2247C380.386 39.1892 391.508 41.1878 408.191 43.9561M366.951 37.0803C382.182 39.8237 398.835 42.9878 407.233 44.6675M370.995 42.4029C381.961 43.7731 394.113 46.6259 402.475 47.6821M371.314 42.0694C382.534 44.5056 394.078 45.7933 403.47 47.3908M377.031 47.8803C382.363 48.268 389.843 49.62 394.761 50.3983M377.184 47.1418C381.792 47.8727 386.658 49.0101 395.32 50.0667" stroke="#FCEECA" stroke-linecap="round"/>
<path d="M91.6715 60.8309C90.8483 54.2358 91.2097 49.9776 89.5428 37.3954M91.5019 60.0435C90.6437 52.1011 90.2158 43.7143 89.8621 35.9263M96.2397 70.1815C94.4514 59.6963 93.4387 49.2699 92.2901 28.463M95.1266 69.5188C94.1323 53.5843 93.5033 38.3888 92.6607 28.8866M98.2911 73.9266C97.4901 55.7643 96.064 36.4989 96.4989 25.9311M99.4951 73.9057C99.3048 59.7895 98.2322 47.2898 96.8855 25.3857M104.299 77.8955C101.402 61.9958 101.569 45.5157 99.1745 21.4748M103.387 78.0166C101.429 56.4934 100.776 35.9587 99.5325 21.9477M107.224 79.8777C105.615 64.3279 104.468 49.2496 103.004 16.4084M107.415 79.3732C106.169 61.1879 104.933 43.3161 103.201 17.175M110.512 81.816C108.761 55.0915 107.676 31.3893 106.701 14.425M110.501 80.7766C109.071 54.8269 107.529 29.1446 106.281 15.2344M114.314 80.8915C114.48 68.2609 112.692 53.1776 110.212 11.2115M114.408 82.1459C112.976 58.8316 111.054 36.5523 110.345 12.4053M118.26 81.3869C117.676 67.6033 117.077 53.6999 114.385 11.8619M118.02 82.1439C116.909 67.9075 116.013 52.9862 114.017 11.7443M121.474 83.8284C120.337 64.2699 119.289 43.5964 117.028 12.4159M121.629 83.5118C119.893 57.6158 118.249 32.8659 117.414 12.0358M125.304 81.2149C124.251 59.4394 123.049 38.3948 120.658 11.9846M125.563 81.9381C124.128 57.136 122.223 32.8599 120.579 11.5814M128.846 80.158C128.449 59.2901 126.686 40.2739 125.228 12.711M128.713 80.1859C127.427 58.5727 126.582 37.9896 124.905 12.5973M132.548 79.0734C131.295 63.0142 130.883 47.9394 128.968 13.6748M132.755 79.1257C130.689 55.6316 129.955 32.2389 128.381 13.4193M135.023 76.5447C134.805 58.1457 133.136 37.1388 131.57 12.9992M135.818 76.5542C134.494 57.2589 133.005 38.4378 131.892 13.2249M138.762 72.8934C138.233 53.4403 136.964 35.1371 135.582 15.8738M139.722 73.2C138.248 53.5677 136.959 34.5025 135.808 17.1745M142.258 66.5048C140.913 49.3945 140.985 31.1488 139.388 20.1554M142.557 67.4182C142.405 54.6645 141.089 42.331 139.312 20.6262M146.074 62.0615C144.652 49.9403 143.62 37.5757 143.42 28.9468M145.996 63.1651C146.008 56.3212 145.648 48.4458 144.276 29.2035" stroke="#422424" stroke-linecap="round"/>
<path d="M9.79487 105.338C16.0326 105.338 24.1639 103.743 32.4528 103.527M9.66678 105.252C16.3239 104.42 23.1395 104.185 31.2709 103.999M4.01235 110.024C15.1339 109.589 23.8693 109.144 42.9254 107.741M4.4138 110.104C12.6536 109.625 21.188 109.404 42.3877 106.468M1.31778 114.009C15.9787 113.872 31.3857 112.158 48.2039 110.8M0.778261 114.509C18.9031 113.014 36.5709 111.428 47.4331 110.891M-2.63939 118.795C15.3123 117.516 31.3586 115.827 52.0401 115.092M-1.66962 118.888C13.4601 117.963 29.1298 116.066 52.3143 114.344M-6.90571 123.83C17.9471 120.25 42.6644 119.237 55.1219 118.743M-6.63808 123.4C5.90518 122.114 18.0484 120.915 55.564 118.326M-8.25652 127.67C10.8583 126.157 28.593 124.131 60.1258 121.547M-7.84761 128C15.6905 126.345 39.5967 124.135 59.8176 122.317M-9.04267 132.062C5.40872 130.004 21.1691 128.503 61.3233 125.266M-9.64637 131.925C17.3401 130.443 44.7092 127.865 61.5199 126.253M-11.5388 136.801C9.5304 134.582 31.6169 132.82 62.802 130.34M-10.9471 136.568C4.57691 135.216 20.2348 134.246 62.9565 130.296M-11.5316 140.122C5.3223 138.613 21.5932 137.801 64.8012 133.998M-11.7327 140.481C15.7907 138.071 41.9469 136.045 64.3161 134.116M-11.4979 144.749C13.2012 141.983 37.682 139.665 64.8402 137.954M-12.0491 144.66C11.5836 142.539 34.9753 140.597 64.8785 138.211M-13.1023 148.875C8.89872 147.608 30.732 145.744 65.7453 142.195M-12.6404 148.777C11.9587 147.093 36.4901 145.176 65.7314 142.244M-12.7283 152.992C15.4095 150.779 43.3927 148.708 66.4127 146.275M-11.9594 153.21C3.90521 152.452 20.1937 151.053 66.4849 146.679M-11.3228 157.196C9.01383 155.504 28.9852 153.105 67.0541 150.175M-11.778 156.884C9.91249 155.663 30.9737 153.691 66.8099 150.413M-11.1137 160.968C16.7254 157.922 44.7218 156.58 66.4088 154.316M-11.341 161.201C14.0207 159.801 39.0373 157.674 66.7005 154.485M-9.24938 165.06C11.5519 162.124 31.3901 161.486 65.8535 159.424M-9.23385 164.983C21.353 163.065 51.4774 160.399 66.1833 158.683M-7.63917 169.93C17.5213 167.531 42.4939 166.077 65.8745 162.915M-7.53149 168.883C7.60786 167.61 23.8718 166.047 65.5489 162.672M-6.1788 173.386C8.03927 172.89 22.2241 171.673 63.9696 166.429M-5.84202 173.294C13.2236 171.544 32.5407 170.069 63.7184 167.413M-3.04816 177.549C16.6681 175.408 35.0273 174.297 60.4298 172.327M-2.99483 176.778C14.5506 175.582 31.7702 174.326 61.1069 171.668M0.0430368 181.039C21.5398 179.022 42.7274 178.758 57.6616 175.8M-0.256418 180.897C14.0041 179.657 27.9415 178.828 57.0449 176.319M0.676424 185.193C15.134 184.541 28.1234 183.414 54.0373 181.298M1.72222 184.952C12.6898 184.086 23.707 182.963 53.8868 180.505M6.02507 189.086C20.8285 187.119 36.0162 186.782 53.5338 185.637M6.34159 189.16C18.3404 187.19 30.3618 185.744 53.3558 184.584M10.8131 193.003C20.6029 191.544 27.7822 192.054 43.5529 189.541M11.0703 192.224C23.8555 191.371 36.2656 190.429 43.8744 189.325" stroke="#FF9494" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17628_43774">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,22 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17344_16823)">
<rect width="480" height="360" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-67.4172 94.5377L-38.9725 93L-21.4872 93.0809L-9.2605 94.5971L-0.343468 98.5952L5.81093 101.363L11.4069 104.724L20.9371 112.17L29.3481 121.936L35.7669 131.071L38.4976 135.614L41.9851 146.621L43.6285 151.668L45.1352 157.361L45.8441 164.877L45.9285 175.592L44.6611 190.508L43.0131 199.964L34.3947 245.578L31.069 269.911L30.0775 276.405L28.8808 301.559L29.2295 305.382L30.0205 310.038L31.3266 313.057L34.3468 316.491L37.9916 320.451L43.086 322.863L48.919 325.647L55.4678 328.229L68.1982 332.551L79.5998 335.178L84.0629 336.039L87.5595 335.562L101.215 333.268L105.829 332.904L109.975 334.731L120.134 337.698L132.167 341.953L138.276 344.977L143.02 347.658L148.009 352.212L162.443 366.702L170.746 377.892L174.635 384.011L175.704 387.469L176.292 390.812L176.406 394.594L175.251 397.551L173.165 399.704L169.914 402.223L161.777 404.829L145.242 407.392L115.785 410.273L74.4256 412.71L46.0652 412.143L18.1721 411.35L5.25931 410.492L-11.6014 408.609L-21.6947 407.203L-33.445 403.235L-47.9375 396.876L-53.636 394.003L-59.5784 390.388L-64.6934 387.038L-69.512 381.923L-73.3118 377.407L-77.6518 372.548L-80.7951 367.29L-86.8469 356.402L-90.1839 350.486L-94.7017 336.538L-96.3497 329.33L-97.323 320.937L-98.0912 311.368L-98.9141 300.955L-98.5676 290.9L-96.9834 268.239L-94.3005 243.33L-80.1113 146.928L-75.712 124.915L-67.2622 94.8615" fill="#FFDAD6"/>
<path d="M-67.4011 95.0098C-57.219 95.2176 -23.0826 90.8849 -6.43609 96.0889C10.2104 101.296 23.7979 113.659 32.4756 126.236C41.1556 138.813 45.4249 151.021 45.6392 171.548C45.8557 192.075 36.4008 230.68 33.7749 249.4C31.149 268.123 29.8224 272.633 29.8885 283.87C29.9569 295.109 25.879 308.338 34.1761 316.823C42.4731 325.31 67.1158 331.906 79.6684 334.787C92.2211 337.671 97.3999 330.641 109.494 334.124C121.591 337.606 143.1 344.119 152.242 355.687C161.387 367.252 194.024 395.174 164.36 403.526C134.696 411.876 17.7097 418.262 -25.7381 405.787C-69.1858 393.313 -86.8512 369.599 -96.3267 328.685C-105.8 287.771 -87.4256 199.214 -82.5865 160.298C-77.7473 121.383 -69.8081 106.098 -67.2916 95.1906M-67.7521 94.7373C-57.4628 94.8695 -22.5811 90.3481 -5.89815 95.633C10.7871 100.918 23.7592 113.77 32.3548 126.447C40.9527 139.126 45.4888 151.191 45.6825 171.697C45.874 192.205 36.2253 230.837 33.515 249.489C30.8026 268.142 29.3984 272.296 29.4121 283.611C29.4281 294.925 25.2704 308.73 33.6062 317.381C41.9397 326.033 66.71 332.634 79.4245 335.518C92.1391 338.402 97.7168 331.364 109.887 334.687C122.059 338.008 143.38 343.941 152.448 355.452C161.515 366.963 194.04 395.36 164.294 403.75C134.547 412.14 17.4179 418.353 -26.0276 405.79C-69.473 393.226 -87.0427 369.273 -96.3791 328.372C-105.716 287.471 -86.915 199.257 -82.0462 160.387C-77.1797 121.515 -69.6326 106.022 -67.1754 95.1474" stroke="#FFDAD6" stroke-width="4" stroke-linecap="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M256.257 14.4479L265.664 27.8666L272.049 35.9572L278.8 42.3698L281.458 45.4128L285.88 47.6763L293.742 51.24L301.537 54.4396L316.215 59.5222L322.405 61.0869L329.114 61.4807L335.494 60.5203L339.348 60.2074L342.277 57.8873L364.315 45.545L381.46 38.7925L393.635 34.3412L404.71 31.7109L410.951 30.7316L417.069 30.9555L422.727 32.736L426.435 36.057L429.729 40.9696L435.113 51.5691L437.315 58.1382L443.747 80.6457L450.838 103.935L452.929 111.244L458.639 122.259L467.854 134.668L470.795 138.68L474.253 141.82L495.399 154.532L500.917 156.577L505.314 156.679L509.499 155.8L513.116 153.609L516.932 148.675L519.79 142.773L523.768 134.86L527.397 126.394L529.441 116.882L532.644 106.973L533.822 97.2612L534.919 87.0609L535.117 76.4318L535.4 64.0868L533.845 50.3956L532.288 37.1496L530.966 24.1841L527.167 5.79885L523.659 -3.82678L521.965 -7.895L517.26 -14.8849L513.588 -20.2184L509.187 -23.2939L504.218 -26.4125L498.163 -28.425L491.752 -30.273L466.124 -34.816L451.965 -36.2081L426.608 -38.8087L390.17 -40.5838L300.808 -44.0127L278.128 -43.5811L264.682 -42.8823L256.923 -41.1558L252.029 -38.6253L249.692 -36.7719L248.11 -34.6245L246.843 -30.4106L245.959 -27.8315L245.838 -21.7669L249.606 -6.63515L250.239 0.621838L251.167 3.55431L253.139 7.44988L256.337 13.9083" fill="#D3FFD2"/>
<path d="M256.65 13.6655C260.272 18.4864 269.679 35.4932 278.391 42.7043C287.105 49.9127 299.347 53.9621 308.932 56.9269C318.517 59.8918 326.668 62.3278 335.905 60.4961C345.143 58.6643 354.149 50.5305 364.356 45.9335C374.561 41.3365 387.412 35.102 397.138 32.9114C406.867 30.7208 416.363 29.5851 422.716 32.7927C429.068 36.003 431.79 44.1827 435.252 52.1627C438.713 60.1399 440.513 70.7988 443.479 80.6645C446.447 90.533 449.521 102.908 453.05 111.362C456.579 119.815 460.287 125.752 464.65 131.388C469.013 137.024 471.153 141.513 479.229 145.176C487.305 148.842 503.833 163.07 513.103 153.375C522.374 143.679 533.49 113.869 534.856 87.0016C536.221 60.1319 531.715 12.2843 521.295 -7.83566C510.876 -27.9556 502.488 -27.9961 472.345 -33.7153C442.2 -39.4373 376.751 -41.1234 340.429 -42.1647C304.107 -43.2061 269.478 -46.5297 254.409 -39.9634C239.34 -33.3997 249.659 -11.7987 250.021 -2.76925C250.381 6.26017 255.476 11.4102 256.579 14.2159M256.344 14.2348C259.923 19.1096 269.428 35.8681 278.163 43.0253C286.897 50.1825 299.106 54.2399 308.755 57.1805C318.403 60.1211 326.839 62.5221 336.055 60.6687C345.273 58.818 353.839 50.7463 364.057 46.0711C374.274 41.3959 387.679 34.8754 397.362 32.6173C407.042 30.362 415.857 29.2775 422.146 32.531C428.435 35.7872 431.485 44.0343 435.1 52.1519C438.715 60.2694 440.837 71.3815 443.834 81.2338C446.834 91.086 449.624 102.999 453.089 111.26C456.553 119.523 460.198 125.172 464.623 130.811C469.045 136.449 471.541 141.224 479.632 145.093C487.724 148.961 504.013 163.71 513.176 154.022C522.339 144.332 533.271 113.941 534.616 86.9584C535.963 59.9727 531.591 12.1926 521.25 -7.88152C510.908 -27.9583 502.629 -27.8261 472.571 -33.4941C442.515 -39.1621 377.296 -40.8239 340.906 -41.8949C304.515 -42.966 269.421 -46.465 254.227 -39.9202C239.03 -33.3781 249.324 -11.6017 249.732 -2.63437C250.14 6.33571 255.565 11.1458 256.679 13.8922" stroke="#D3FFD2" stroke-width="4" stroke-linecap="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336.97 62.1901L337.33 68.1791L338.629 71.8508L340.908 76.3992L343.917 81.0151L358.911 97.4391L373.52 115.377L378.708 122.348L388.238 138.305L392.254 147.755L393.189 152.344L394.493 156.496L395.001 161.694L394.926 167.271L393.335 179.206L387.798 211.862L382.195 235.594L379.93 253.942L378.4 268.45L378.143 282.395L378.915 294.711L380.718 305.41L383.369 314.528L390.777 331.662L395.099 338.986L397.978 345.437L410.408 362.392L417.3 376.008L420.273 380.75L424.125 384.84L428.798 387.373L435.704 390.492L449.531 394.779L466.743 397.447L479.628 399.834L493.102 400.897L505.855 399.61L512.09 399.548L517.316 397.795L523.003 395.61L527.649 393.91L532.675 391.007L542.438 382.852L546.837 379.383L555.69 369.153L563.982 357.023L571.892 344.884L575.375 338.762L580.784 326.023L584.882 312.729L585.619 306.556L586.745 299.952L586.519 293.197L585.48 285.808L584.616 278.316L580.72 263.419L575.443 247.467L560.408 203.073L556.711 190.124L554.794 177.587L552.813 166.82L549.264 137.808L548.159 128.582L546.219 117.408L543.039 104.971L536.509 84.5896L528.032 59.2846L500.287 -15.1549L499.386 -17.6125L499.329 -22.2689L500.56 -23.4046L501.971 -24.5539L502.224 -24.1924L501.691 -23.41L501.155 -22.6789L497.948 -24.0602L471.844 -31.2174L438.615 -39.7747L418.793 -42.8636L403.1 -45.8285L387.582 -46.2925L374.094 -44.4391L362.795 -41.8007L350.3 -36.7316L344.726 -33.0896L343.439 -30.7426L341.451 -28.2741L339.837 -20.6421L337.672 -11.6532L336.967 -3.29819L336.254 13.3308L336.976 61.7342" fill="#FFF0C9"/>
<path d="M336.523 62.1739C337.205 64.5587 337.086 70.3319 340.779 76.1996C344.472 82.0672 352.39 89.5724 358.682 97.3744C364.97 105.176 372.59 113.078 378.521 123.011C384.455 132.944 392.36 143.943 394.274 156.976C396.189 170.009 392.189 187.124 390.01 201.209C387.833 215.291 383.128 225.882 381.209 241.481C379.29 257.077 376.864 279.781 378.499 294.791C380.131 309.805 386.199 320.998 391.006 331.546C395.815 342.094 399.838 348.304 407.347 358.084C414.853 367.863 415.915 384.29 436.049 390.222C456.185 396.152 503.184 407.617 528.153 393.665C553.122 379.712 581.079 340.494 585.865 306.505C590.652 272.516 564.042 223.276 556.876 189.73C549.709 156.186 552.119 138.739 542.867 105.23C533.617 71.724 509.334 10.366 501.363 -11.3106C493.394 -32.9844 511.354 -19.1449 495.047 -24.821C478.738 -30.4971 427.034 -43.1253 403.515 -45.3645C379.999 -47.6036 364.802 -43.3169 353.943 -38.2585C343.086 -33.2002 341.217 -31.6787 338.37 -15.0146C335.523 1.64681 337.157 48.9171 336.859 61.7153M336.984 62.0309C337.622 64.3159 336.865 69.8733 340.572 75.6789C344.28 81.4845 352.899 89.076 359.229 96.8645C365.559 104.653 372.638 112.374 378.547 122.412C384.455 132.451 392.836 143.862 394.676 157.095C396.515 170.327 391.808 187.644 389.588 201.802C387.37 215.96 383.258 226.576 381.359 242.045C379.463 257.514 376.536 279.754 378.202 294.619C379.866 309.481 386.481 320.666 391.355 331.222C396.228 341.778 400.098 348.11 407.44 357.96C414.782 367.809 415.318 384.39 435.406 390.319C455.495 396.246 502.877 407.507 527.971 393.527C553.062 379.547 581.161 340.405 585.968 306.44C590.777 272.473 564.008 223.139 556.821 189.724C549.636 156.307 552.075 139.546 542.853 105.945C533.63 72.3472 509.384 9.90737 501.491 -11.869C493.6 -33.6427 511.855 -19.1476 495.496 -24.7104C479.139 -30.2732 426.859 -42.8609 403.34 -45.2458C379.821 -47.6306 365.201 -43.9886 354.383 -39.0139C343.565 -34.0392 341.372 -32.283 338.434 -15.4004C335.493 1.48225 337.045 49.3271 336.745 62.2791" stroke="#FFF0C9" stroke-width="4" stroke-linecap="round"/>
<path d="M-15.2578 154.834C-4.14343 158.188 40.8247 156.405 51.3692 174.701C61.9137 192.994 47.77 239.261 48.0116 264.604C48.2533 289.949 43.9908 312.29 52.8143 326.769C61.6379 341.245 88.9999 342.146 100.953 351.472C112.906 360.798 120.545 377.557 124.536 382.728M-14.1888 156.259C-3.15189 159.804 40.4828 157.476 50.7469 175.669C61.0134 193.866 47.0497 240.486 47.4008 265.432C47.7518 290.378 44.0227 310.941 52.8554 325.339C61.6858 339.737 88.3275 342.022 100.386 351.82C112.446 361.621 121.046 378.838 125.206 384.131" stroke="#46464F" stroke-width="2" stroke-linecap="round"/>
<path d="M24.5274 280.87C31.0191 281.191 36.8886 283.967 42.6692 285.998C48.4497 288.029 54.3032 290.32 59.2085 293.058C64.1161 295.794 68.3558 299.079 72.1077 302.417C75.8618 305.754 79.2217 309.417 81.7268 313.078C84.2318 316.739 86.0303 320.457 87.1381 324.379C88.2458 328.302 88.6539 332.602 88.3781 336.613C88.1022 340.625 87.2156 344.602 85.4855 348.446C83.7554 352.29 81.1273 356.126 77.9931 359.677C74.8612 363.227 70.993 366.726 66.6918 369.745C62.3883 372.766 57.4944 375.445 52.1743 377.798C46.8564 380.153 40.8342 382.19 34.7778 383.87C28.7215 385.551 22.3369 386.997 15.8405 387.887C9.34196 388.777 2.52882 389.139 -4.20682 389.212C-10.9402 389.285 -17.979 389.161 -24.5665 388.33C-31.1539 387.499 -37.6685 385.91 -43.734 384.229C-49.7972 382.548 -55.596 380.56 -60.9503 378.243C-66.3047 375.923 -71.4812 373.333 -75.8599 370.322C-80.2387 367.314 -84.0612 363.745 -87.225 360.184C-90.3911 356.625 -93.0056 352.811 -94.8496 348.967C-96.6914 345.125 -97.863 341.119 -98.2824 337.123C-98.6996 333.131 -98.3622 328.952 -97.357 325.005C-96.3518 321.055 -94.706 317.063 -92.2511 313.432C-89.7962 309.8 -86.4204 306.528 -82.6298 303.215C-78.8414 299.902 -74.3738 296.357 -69.5186 293.56C-64.6658 290.765 -59.2203 288.493 -53.5081 286.44C-47.7959 284.387 -41.5868 282.548 -35.2455 281.239C-28.9042 279.931 -22.0933 278.995 -15.4557 278.587C-8.81577 278.18 -2.81866 278.169 4.59168 278.795C12.002 279.421 24.288 281.428 29.0018 282.348C33.7156 283.268 33.4193 283.459 32.8723 284.317M38.6756 284.884C45.042 285.882 50.6539 289.192 55.7347 291.682C60.8178 294.175 65.0803 296.676 69.165 299.827C73.2474 302.978 77.2956 306.946 80.2315 310.588C83.1651 314.233 85.3487 317.84 86.7757 321.689C88.2025 325.536 88.8431 329.656 88.7884 333.676C88.7337 337.698 87.8766 341.958 86.4542 345.813C85.0296 349.671 83.0465 353.251 80.2429 356.812C77.4415 360.373 73.6918 363.996 69.6345 367.179C65.5772 370.362 60.9317 373.303 55.9057 375.912C50.8796 378.523 45.3543 381.002 39.4734 382.837C33.5948 384.674 27.1646 385.826 20.6296 386.921C14.0945 388.017 7.05116 389.082 0.267647 389.411C-6.51358 389.741 -13.4361 389.589 -20.0601 388.896C-26.6863 388.203 -33.3148 386.811 -39.4852 385.249C-45.6555 383.689 -51.5751 381.696 -57.0822 379.532C-62.5869 377.369 -67.923 375.102 -72.516 372.264C-77.109 369.426 -81.1436 365.917 -84.6334 362.499C-88.1231 359.08 -91.2163 355.53 -93.4547 351.756C-95.693 347.982 -97.3205 343.808 -98.0636 339.851C-98.809 335.89 -98.6882 331.93 -97.9177 328.002C-97.1496 324.077 -95.5517 320.103 -93.4455 316.294C-91.3394 312.482 -88.7203 308.522 -85.2807 305.139C-81.8411 301.753 -77.4418 298.853 -72.8055 295.988C-68.1669 293.125 -62.9425 290.196 -57.456 287.954C-51.9672 285.715 -46.0385 284.091 -39.8818 282.548C-33.7228 281.007 -27.1399 279.407 -20.5091 278.703C-13.8783 278.002 -6.80078 278.026 -0.0993347 278.334C6.60212 278.644 13.2603 279.472 19.695 280.551C26.1298 281.63 35.5095 283.921 38.5092 284.808C41.5089 285.699 38.393 285.102 37.6886 285.882" fill="#D1ECFF"/>
<path d="M-28.4188 280.125C-22.62 278.318 -14.8974 278.639 -8.20964 278.474C-1.52187 278.309 5.12716 278.42 11.7055 279.146C18.2862 279.869 25.0811 281.258 31.2674 282.817C37.4537 284.374 43.314 286.249 48.8234 288.496C54.3304 290.741 59.7736 293.393 64.3165 296.285C68.857 299.179 72.7206 302.392 76.0714 305.854C79.4198 309.318 82.3489 313.208 84.414 317.055C86.4791 320.902 87.881 324.962 88.4577 328.936C89.0366 332.912 88.7335 337.016 87.881 340.911C87.0262 344.807 85.5537 348.538 83.3358 352.312C81.118 356.089 78.1707 360.2 74.5692 363.567C70.9678 366.934 66.4568 369.702 61.7225 372.507C56.9882 375.313 51.7638 378.227 46.1678 380.404C40.5696 382.581 34.4198 384.162 28.1378 385.57C21.8534 386.978 15.0745 388.216 8.46649 388.85C1.85849 389.487 -4.86119 389.63 -11.5079 389.382C-18.1547 389.134 -24.9792 388.508 -31.4163 387.359C-37.8556 386.209 -44.2402 384.437 -50.1347 382.492C-56.0316 380.544 -61.746 378.275 -66.7926 375.68C-71.8392 373.085 -76.4664 370.128 -80.4144 366.92C-84.3623 363.713 -87.7928 360.133 -90.4779 356.431C-93.1654 352.727 -95.2328 348.592 -96.5366 344.702C-97.8381 340.809 -98.3601 337.01 -98.2963 333.077C-98.2325 329.146 -97.7059 324.986 -96.1514 321.11C-94.5945 317.236 -91.9504 313.407 -88.9576 309.825C-85.9647 306.239 -82.2949 302.778 -78.1942 299.608C-74.0913 296.438 -69.4778 293.358 -64.3491 290.8C-59.2204 288.243 -54.7255 286.165 -47.4177 284.261C-40.1099 282.356 -26.3241 280.128 -20.507 279.37C-14.6877 278.614 -12.789 278.865 -12.5109 279.729M9.65862 279.097C16.18 278.733 23.2576 280.578 29.5533 281.984C35.8467 283.389 41.9076 285.307 47.4261 287.536C52.9468 289.761 58.0823 292.421 62.6685 295.34C67.2546 298.259 71.4487 301.559 74.9453 305.044C78.4419 308.533 81.4736 312.487 83.6481 316.259C85.8227 320.03 87.1835 323.815 87.9904 327.676C88.7973 331.536 89.2167 335.475 88.4941 339.419C87.7715 343.366 85.8204 347.558 83.6549 351.351C81.4918 355.147 78.8614 358.77 75.5084 362.183C72.1554 365.598 68.0957 368.911 63.5415 371.836C58.9872 374.757 53.7446 377.447 48.1851 379.729C42.6257 382.012 36.4393 384.113 30.1869 385.535C23.9345 386.954 17.2855 387.612 10.6661 388.257C4.049 388.902 -2.78694 389.579 -9.52714 389.403C-16.2651 389.228 -23.3153 388.27 -29.7705 387.207C-36.2235 386.142 -42.3209 384.828 -48.2542 383.015C-54.1852 381.2 -60.1504 378.839 -65.3657 376.317C-70.5787 373.797 -75.4407 371.069 -79.5345 367.886C-83.6283 364.7 -87.1181 360.918 -89.9286 357.214C-92.7368 353.507 -94.9273 349.544 -96.3862 345.646C-97.8472 341.747 -98.6747 337.703 -98.6883 333.824C-98.6997 329.942 -97.943 326.181 -96.4637 322.367C-94.9843 318.552 -92.575 314.573 -89.8146 310.936C-87.052 307.297 -83.8494 303.731 -79.8947 300.536C-75.9399 297.345 -71.185 294.41 -66.086 291.777C-60.987 289.141 -55.2292 286.616 -49.2982 284.727C-43.3672 282.842 -36.9507 281.501 -30.4954 280.449C-24.0401 279.397 -17.2817 278.679 -10.5688 278.415C-3.85369 278.15 6.41047 278.633 9.78855 278.857C13.1689 279.081 9.93443 278.79 9.71105 279.761" stroke="#D1ECFF" stroke-width="4" stroke-linecap="round"/>
<path d="M525.703 288.216C531.172 292.126 535.951 298.283 540.59 303.831C545.228 309.378 549.623 315.608 553.535 321.504C557.444 327.398 561.079 333.411 564.049 339.201C567.015 344.992 569.457 350.637 571.34 356.238C573.224 361.836 574.694 367.655 575.353 372.8C576.011 377.945 575.853 382.741 575.291 387.107C574.73 391.471 573.726 395.57 571.984 398.989C570.243 402.404 567.677 405.267 564.84 407.604C562.006 409.94 558.804 411.897 554.973 413.006C551.142 414.115 546.543 414.414 541.857 414.265C537.174 414.116 532.047 413.522 526.866 412.109C521.686 410.697 516.286 408.386 510.771 405.784C505.256 403.178 499.427 400.162 493.775 396.486C488.122 392.812 482.293 388.339 476.858 383.736C471.421 379.131 466.164 374.078 461.155 368.867C456.147 363.656 451.168 358.14 446.811 352.47C442.452 346.802 438.449 340.766 435.009 334.853C431.57 328.943 428.565 322.738 426.171 317.006C423.777 311.274 421.912 305.802 420.646 300.465C419.378 295.127 418.643 289.806 418.571 284.986C418.498 280.165 419.039 275.512 420.212 271.543C421.387 267.576 423.32 264.056 425.616 261.178C427.91 258.301 430.625 255.962 433.98 254.28C437.336 252.599 441.508 251.587 445.748 251.084C449.987 250.583 454.484 250.551 459.419 251.274C464.355 251.998 469.895 253.379 475.363 255.426C480.83 257.47 486.576 260.382 492.225 263.546C497.875 266.711 503.106 269.724 509.26 274.411C515.413 279.096 525.294 287.978 529.143 291.66C532.991 295.343 532.86 295.797 532.353 296.505M490.096 262.801C495.361 264.491 501.828 268.933 507.423 272.839C513.017 276.741 518.462 281.297 523.667 286.224C528.872 291.152 533.889 296.985 538.654 302.403C543.419 307.825 548.217 313.061 552.254 318.747C556.289 324.436 559.796 330.521 562.867 336.532C565.941 342.543 568.715 349.092 570.683 354.812C572.65 360.531 573.803 365.736 574.678 370.848C575.556 375.959 576.279 381.044 575.935 385.48C575.593 389.914 574.357 393.902 572.624 397.464C570.889 401.024 568.26 404.365 565.528 406.84C562.799 409.314 559.846 411.027 556.236 412.31C552.63 413.592 548.408 414.455 543.881 414.536C539.357 414.614 534.312 414.067 529.081 412.784C523.847 411.501 518.049 409.298 512.488 406.832C506.929 404.368 501.311 401.477 495.722 397.996C490.135 394.517 484.429 390.491 478.966 385.959C473.502 381.422 468.03 375.997 462.942 370.796C457.853 365.595 452.899 360.381 448.43 354.749C443.962 349.119 439.699 342.901 436.132 337.008C432.566 331.116 429.486 325.158 427.032 319.39C424.576 313.619 422.778 307.903 421.404 302.386C420.029 296.869 419.024 291.154 418.782 286.287C418.543 281.422 419.004 277.126 419.958 273.187C420.913 269.249 422.347 265.706 424.509 262.658C426.668 259.61 429.578 256.848 432.919 254.903C436.26 252.957 440.395 251.625 444.55 250.993C448.708 250.359 452.998 250.49 457.864 251.098C462.728 251.708 468.339 252.713 473.736 254.645C479.131 256.577 487.509 261.212 490.237 262.69C492.968 264.166 490.021 262.452 490.111 263.502" fill="#FFE3C7"/>
<path d="M529.62 292.151C535.001 296.356 539.755 303.044 544.229 308.665C548.702 314.287 552.786 320.042 556.46 325.886C560.137 331.731 563.613 337.894 566.288 343.731C568.961 349.564 570.952 355.375 572.504 360.895C574.059 366.414 575.222 371.944 575.606 376.843C575.992 381.743 575.699 386.221 574.816 390.298C573.931 394.376 572.31 398.121 570.302 401.299C568.295 404.477 565.889 407.289 562.774 409.367C559.661 411.443 555.759 412.945 551.622 413.759C547.485 414.575 542.78 414.776 537.961 414.258C533.143 413.737 527.97 412.373 522.713 410.639C517.455 408.906 511.975 406.743 506.42 403.857C500.865 400.971 495.005 397.2 489.385 393.322C483.766 389.445 478.062 385.334 472.701 380.591C467.341 375.848 462.05 370.308 457.229 364.86C452.409 359.413 447.956 353.662 443.777 347.905C439.599 342.146 435.356 336.204 432.157 330.312C428.961 324.42 426.668 318.261 424.588 312.559C422.507 306.857 420.645 301.359 419.676 296.102C418.709 290.843 418.488 285.624 418.776 281.007C419.063 276.392 419.955 272.07 421.403 268.406C422.85 264.744 424.867 261.627 427.46 259.033C430.057 256.439 433.381 254.238 436.977 252.842C440.573 251.449 444.587 250.737 449.04 250.666C453.493 250.599 458.574 251.367 463.697 252.426C468.818 253.483 474.287 254.765 479.773 257.018C485.259 259.272 491.016 262.505 496.618 265.946C502.221 269.388 507.239 272.624 513.383 277.666C519.526 282.703 529.627 292.255 533.484 296.188C537.338 300.119 537.103 300.644 536.515 301.261M523.885 286.613C529.381 290.504 534.632 297.081 539.367 302.62C544.102 308.16 548.278 314.062 552.293 319.846C556.308 325.629 560.408 331.501 563.457 337.321C566.507 343.143 568.683 349.211 570.59 354.772C572.497 360.333 574.098 365.588 574.897 370.69C575.695 375.794 575.8 380.787 575.381 385.387C574.961 389.986 574.04 394.671 572.378 398.283C570.716 401.896 568.153 404.689 565.413 407.063C562.672 409.44 559.682 411.28 555.936 412.536C552.188 413.79 547.478 414.573 542.929 414.592C538.381 414.614 533.757 413.915 528.644 412.661C523.531 411.407 517.798 409.644 512.247 407.066C506.697 404.486 501.004 400.805 495.339 397.187C489.675 393.568 483.764 389.752 478.258 385.351C472.75 380.949 467.334 375.945 462.293 370.78C457.255 365.617 452.335 360.036 448.025 354.372C443.716 348.707 439.965 342.735 436.44 336.789C432.914 330.842 429.39 324.512 426.872 318.692C424.353 312.872 422.761 307.228 421.331 301.866C419.899 296.502 418.507 291.298 418.283 286.517C418.062 281.735 418.871 277.283 419.995 273.184C421.118 269.087 422.818 264.939 425.027 261.925C427.235 258.912 429.972 256.894 433.245 255.103C436.517 253.314 440.459 251.84 444.66 251.188C448.863 250.535 453.643 250.534 458.454 251.191C463.266 251.851 468.195 253.172 473.528 255.139C478.859 257.104 484.815 260.034 490.444 262.984C496.069 265.934 501.775 268.861 507.285 272.835C512.797 276.811 520.851 284.42 523.51 286.831C526.17 289.241 523.614 286.559 523.248 287.301" stroke="#FFE3C7" stroke-width="4" stroke-linecap="round"/>
<path d="M491.674 335.082C478.44 314.562 436.77 244.536 412.565 211.872C388.362 179.205 360.772 160.687 346.453 139.086C332.132 117.488 329.184 107.989 326.64 82.2712C324.097 56.5534 330.511 0.971275 331.19 -15.218M492.773 334.572C479.734 314.158 438.324 245.27 413.837 212.8C389.349 180.332 360.36 161.44 345.84 139.755C331.32 118.068 329.248 108.469 326.722 82.6893C324.197 56.9095 329.891 1.41104 330.689 -14.9212" stroke="#46464F" stroke-width="2" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17344_16823">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,18 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17344_59895)">
<rect width="480" height="360" fill="#FFF4EB"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M286.171 -83.5032L287.709 -55.0585L287.628 -37.5732L286.112 -25.3464L282.114 -16.4294L279.346 -10.275L275.984 -4.67907L268.539 4.85112L258.773 13.2621L249.638 19.6809L245.095 22.4116L234.088 25.8992L229.041 27.5426L223.348 29.0493L215.832 29.7582L205.117 29.8425L190.791 32.8331L177.291 32.8331L128.791 32.8331L104.304 37.9141L87.791 44.4141L67.6522 60.9141L64.218 63.5139L61.291 67.4141L57.8458 71.4736L51.3793 84.4141L47.8048 89.743L45.9784 93.8892L43.0108 104.049L38.7564 116.082L35.7322 122.19L33.0507 126.934L28.4968 131.923L14.0071 146.357L2.81679 154.66L-3.30171 158.549L-6.76027 159.618L-10.1028 160.206L-13.8851 160.32L-16.8418 159.165L-18.9946 157.079L-21.5143 153.828L-24.1204 145.691L-26.6833 129.156L-29.5645 99.6994L-32.0006 58.3396L-31.434 29.9793L-30.6409 2.08618L-29.783 -10.8266L-27.8999 -27.6874L-26.4944 -37.7806L-22.526 -49.5309L-16.1674 -64.0234L-13.2943 -69.7219L-9.67923 -75.6643L-6.32861 -80.7793L-1.21362 -85.598L3.30243 -89.3977L8.1611 -93.7377L13.419 -96.881L24.3072 -102.933L30.2234 -106.27L44.1709 -110.788L51.3793 -112.436L59.772 -113.409L69.341 -114.177L79.7544 -115L89.809 -114.654L112.47 -113.069L137.379 -110.386L233.781 -96.1972L255.794 -91.7979L285.848 -83.3482" fill="#FFF0F0"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M379.716 6.48256L380.076 12.4716L381.375 16.1433L383.655 20.6917L386.663 25.3076L401.657 41.7316L416.266 59.669L421.454 66.64L430.984 82.5973L435 92.0476L435.935 96.6365L437.239 100.788L437.747 105.987L437.672 111.563L436.081 123.498L430.544 156.155L424.941 179.887L422.676 198.234L421.146 212.743L420.889 226.688L421.661 239.003L423.464 249.702L426.115 258.821L433.523 275.954L437.845 283.279L440.724 289.729L453.154 306.685L460.047 320.3L463.019 325.043L466.871 329.133L471.544 331.666L478.45 334.784L492.277 339.071L509.489 341.739L522.375 344.127L535.848 345.19L548.601 343.903L554.836 343.841L560.062 342.087L565.749 339.902L570.395 338.203L575.421 335.3L585.184 327.144L589.583 323.675L598.436 313.445L606.729 301.316L614.638 289.176L618.121 283.055L623.53 270.316L627.628 257.021L628.365 250.849L629.491 244.245L629.265 237.49L628.226 230.1L627.362 222.609L623.466 207.712L618.189 191.76L603.154 147.365L599.457 134.416L597.54 121.879L595.559 111.113L592.01 82.1009L590.905 72.8746L588.965 61.7004L585.785 49.2637L579.255 28.8821L570.778 3.57706L543.033 -70.8624L542.132 -73.3201L542.076 -77.9764L543.306 -79.1122L544.717 -80.2614L544.97 -79.8999L544.437 -79.1176L543.901 -78.3865L540.694 -79.7677L514.59 -86.9249L481.361 -95.4822L461.54 -98.5711L445.846 -101.536L430.328 -102L416.84 -100.147L405.541 -97.5082L393.046 -92.4391L387.473 -88.7971L386.185 -86.4501L384.197 -83.9816L382.583 -76.3496L380.418 -67.3607L379.713 -59.0057L379 -42.3767L379.723 6.02663" fill="#FFF0C9"/>
<path d="M379.27 6.46662C379.951 8.85144 379.833 14.6247 383.525 20.4923C387.218 26.3599 395.136 33.8651 401.428 41.6671C407.717 49.469 415.337 57.3708 421.268 67.3039C427.201 77.2371 435.106 88.2359 437.021 101.269C438.935 114.302 434.935 131.416 432.756 145.501C430.579 159.584 425.874 170.175 423.955 185.774C422.036 201.369 419.61 224.074 421.245 239.084C422.877 254.097 428.945 265.29 433.752 275.839C438.561 286.387 442.585 292.597 450.093 302.376C457.599 312.156 458.661 328.583 478.795 334.515C498.931 340.445 545.931 351.91 570.899 337.957C595.868 324.004 623.825 284.787 628.611 250.798C633.398 216.809 606.788 167.569 599.622 134.022C592.455 100.478 594.865 83.0319 585.613 49.523C576.363 16.0167 552.08 -45.3413 544.109 -67.0178C536.14 -88.6917 554.1 -74.8521 537.793 -80.5282C521.484 -86.2043 469.78 -98.8326 446.261 -101.072C422.745 -103.311 407.548 -99.0241 396.689 -93.9658C385.832 -88.9075 383.963 -87.386 381.116 -70.7219C378.269 -54.0605 379.903 -6.7902 379.605 6.008M379.73 6.32363C380.368 8.60864 379.611 14.166 383.318 19.9716C387.026 25.7772 395.645 33.3687 401.975 41.1572C408.305 48.9456 415.384 56.6667 421.293 66.705C427.201 76.7434 435.582 88.155 437.422 101.388C439.261 114.62 434.554 131.937 432.334 146.095C430.116 160.253 426.004 170.868 424.105 186.337C422.209 201.806 419.282 224.047 420.948 238.912C422.612 253.774 429.227 264.958 434.101 275.515C438.974 286.071 442.844 292.403 450.186 302.252C457.528 312.102 458.064 328.682 478.152 334.612C498.241 340.539 545.623 351.8 570.717 337.82C595.808 323.84 623.907 284.698 628.714 250.733C633.524 216.766 606.754 167.432 599.567 134.017C592.383 100.6 594.821 83.8385 585.599 50.2379C576.377 16.6399 552.131 -45.7999 544.237 -67.5763C536.346 -89.3499 554.601 -74.8548 538.242 -80.4176C521.885 -85.9804 469.605 -98.5682 446.086 -100.953C422.567 -103.338 407.947 -99.6959 397.129 -94.7212C386.311 -89.7465 384.118 -87.9903 381.18 -71.1076C378.239 -54.225 379.792 -6.38014 379.491 6.57183" stroke="#FFF0C9" stroke-width="4" stroke-linecap="round"/>
<path d="M38.2158 274.741C44.7076 275.062 50.5771 277.838 56.3576 279.869C62.1382 281.901 67.9917 284.191 72.897 286.929C77.8046 289.665 82.0442 292.951 85.7961 296.288C89.5503 299.625 92.9102 303.289 95.4152 306.949C97.9203 310.61 99.7188 314.328 100.827 318.25C101.934 322.173 102.342 326.473 102.067 330.485C101.791 334.496 100.904 338.473 99.174 342.317C97.4439 346.162 94.8158 349.998 91.6816 353.548C88.5497 357.098 84.6815 360.597 80.3803 363.616C76.0768 366.638 71.1829 369.316 65.8627 371.669C60.5449 374.024 54.5227 376.061 48.4663 377.742C42.41 379.422 36.0253 380.868 29.529 381.759C23.0304 382.649 16.2173 383.01 9.48166 383.083C2.7483 383.156 -4.29051 383.032 -10.878 382.201C-17.4655 381.37 -23.98 379.781 -30.0455 378.1C-36.1087 376.42 -41.9075 374.431 -47.2619 372.114C-52.6162 369.794 -57.7927 367.204 -62.1714 364.193C-66.5502 361.185 -70.3727 357.616 -73.5366 354.055C-76.7027 350.497 -79.3171 346.682 -81.1612 342.838C-83.0029 338.996 -84.1745 334.99 -84.594 330.995C-85.0111 327.002 -84.6737 322.823 -83.6685 318.876C-82.6633 314.927 -81.0176 310.934 -78.5627 307.303C-76.1077 303.672 -72.7319 300.399 -68.9413 297.086C-65.1529 293.774 -60.6853 290.229 -55.8301 287.431C-50.9773 284.636 -45.5318 282.365 -39.8196 280.312C-34.1074 278.259 -27.8983 276.419 -21.557 275.11C-15.2157 273.802 -8.40484 272.866 -1.7672 272.459C4.8727 272.051 10.8698 272.04 18.2802 272.666C25.6905 273.292 37.9765 275.299 42.6903 276.219C47.4041 277.139 47.1078 277.331 46.5607 278.189M52.3641 278.755C58.7305 279.753 64.3424 283.063 69.4232 285.553C74.5063 288.046 78.7687 290.547 82.8534 293.698C86.9359 296.849 90.9841 300.817 93.9199 304.459C96.8535 308.104 99.0372 311.711 100.464 315.561C101.891 319.408 102.532 323.527 102.477 327.547C102.422 331.569 101.565 335.829 100.143 339.684C98.7181 343.542 96.735 347.122 93.9313 350.683C91.1299 354.244 87.3803 357.867 83.323 361.05C79.2657 364.234 74.6202 367.174 69.5941 369.783C64.5681 372.395 59.0428 374.874 53.1619 376.708C47.2833 378.545 40.8531 379.697 34.3181 380.793C27.783 381.888 20.7396 382.954 13.9561 383.283C7.1749 383.612 0.252342 383.461 -6.3716 382.767C-12.9978 382.074 -19.6264 380.682 -25.7967 379.12C-31.967 377.561 -37.8867 375.567 -43.3937 373.404C-48.8985 371.24 -54.2346 368.974 -58.8276 366.136C-63.4206 363.298 -67.4551 359.788 -70.9449 356.37C-74.4346 352.952 -77.5278 349.402 -79.7662 345.627C-82.0046 341.853 -83.632 337.68 -84.3751 333.722C-85.1205 329.762 -84.9997 325.801 -84.2293 321.874C-83.4611 317.948 -81.8632 313.974 -79.7571 310.165C-77.6509 306.353 -75.0319 302.393 -71.5922 299.01C-68.1526 295.624 -63.7534 292.724 -59.117 289.859C-54.4785 286.997 -49.2541 284.067 -43.7675 281.825C-38.2787 279.586 -32.35 277.962 -26.1933 276.419C-20.0344 274.878 -13.4514 273.279 -6.82065 272.575C-0.189865 271.873 6.8877 271.897 13.5891 272.205C20.2906 272.515 26.9487 273.343 33.3835 274.423C39.8183 275.502 49.198 277.792 52.1977 278.68C55.1974 279.57 52.0815 278.974 51.3771 279.753" fill="#D1ECFF"/>
<path d="M-14.7304 273.996C-8.93156 272.188 -1.20894 272.509 5.47883 272.345C12.1666 272.18 18.8156 272.291 25.394 273.017C31.9746 273.74 38.7695 275.129 44.9559 276.688C51.1422 278.245 57.0025 280.12 62.5118 282.367C68.0189 284.612 73.4621 287.264 78.0049 290.156C82.5455 293.05 86.4091 296.263 89.7598 299.725C93.1083 303.188 96.0373 307.079 98.1025 310.926C100.168 314.773 101.569 318.833 102.146 322.807C102.725 326.783 102.422 330.886 101.569 334.782C100.715 338.678 99.2422 342.409 97.0243 346.183C94.8064 349.96 91.8592 354.071 88.2577 357.438C84.6563 360.805 80.1453 363.573 75.411 366.378C70.6767 369.184 65.4523 372.097 59.8563 374.275C54.2581 376.452 48.1083 378.033 41.8262 379.441C35.5419 380.849 28.763 382.087 22.155 382.721C15.547 383.358 8.82729 383.501 2.18054 383.253C-4.4662 383.005 -11.2907 382.379 -17.7278 381.229C-24.1671 380.08 -30.5517 378.308 -36.4463 376.363C-42.3431 374.415 -48.0576 372.146 -53.1042 369.551C-58.1508 366.956 -62.778 363.999 -66.7259 360.791C-70.6738 357.584 -74.1043 354.004 -76.7895 350.302C-79.4769 346.598 -81.5443 342.463 -82.8481 338.572C-84.1497 334.679 -84.6716 330.881 -84.6078 326.948C-84.544 323.017 -84.0174 318.857 -82.4629 314.98C-80.9061 311.106 -78.262 307.278 -75.2691 303.696C-72.2762 300.11 -68.6064 296.649 -64.5057 293.479C-60.4028 290.309 -55.7893 287.228 -50.6606 284.671C-45.532 282.114 -41.037 280.036 -33.7292 278.132C-26.4214 276.227 -12.6356 273.999 -6.81855 273.241C-0.999231 272.485 0.89951 272.736 1.1776 273.599M23.3471 272.968C29.8685 272.604 36.946 274.449 43.2417 275.855C49.5352 277.26 55.5961 279.178 61.1146 281.407C66.6353 283.632 71.7708 286.292 76.3569 289.211C80.9431 292.13 85.1372 295.43 88.6338 298.915C92.1304 302.403 95.162 306.358 97.3366 310.13C99.5111 313.901 100.872 317.686 101.679 321.547C102.486 325.407 102.905 329.346 102.183 333.29C101.46 337.237 99.5089 341.429 97.3434 345.222C95.1803 349.018 92.5498 352.641 89.1968 356.054C85.8438 359.469 81.7842 362.782 77.23 365.706C72.6757 368.628 67.4331 371.318 61.8736 373.6C56.3141 375.882 50.1278 377.984 43.8754 379.406C37.623 380.825 30.974 381.483 24.3546 382.128C17.7375 382.773 10.9015 383.45 4.16134 383.274C-2.57658 383.099 -9.62678 382.141 -16.0821 381.078C-22.5351 380.013 -28.6325 378.699 -34.5658 376.886C-40.4968 375.07 -46.462 372.71 -51.6773 370.187C-56.8903 367.668 -61.7522 364.94 -65.846 361.757C-69.9398 358.571 -73.4296 354.789 -76.2401 351.085C-79.0483 347.378 -81.2389 343.415 -82.6977 339.517C-84.1588 335.618 -84.9862 331.574 -84.9999 327.695C-85.0113 323.813 -84.2545 320.052 -82.7752 316.238C-81.2958 312.423 -78.8865 308.444 -76.1261 304.807C-73.3635 301.168 -70.1609 297.601 -66.2062 294.407C-62.2514 291.216 -57.4966 288.281 -52.3975 285.648C-47.2985 283.012 -41.5407 280.487 -35.6097 278.598C-29.6787 276.713 -23.2622 275.372 -16.8069 274.32C-10.3516 273.268 -3.59319 272.55 3.11965 272.286C9.83478 272.021 20.0989 272.504 23.477 272.728C26.8574 272.952 23.6229 272.661 23.3995 273.632" stroke="#D1ECFF" stroke-width="4" stroke-linecap="round"/>
<path d="M-5 268C6.11438 271.353 37.5 274.187 61.627 287.866C79.5 298 107.5 301 89 352C74.3613 381.076 54.2486 425.455 63.0722 439.934C71.8957 454.41 99.2577 455.311 111.211 464.637C123.164 473.964 130.802 490.722 134.794 495.894M-3.93096 269.424C7.10592 272.969 27.8613 275.129 61.0047 288.835C82.3613 298.703 93.5208 310.054 93.8718 335C94.2228 359.946 54.2805 424.106 63.1132 438.504C71.9436 452.902 98.5853 455.187 110.643 464.985C122.704 474.786 131.304 492.004 135.464 497.297" stroke="#46464F" stroke-width="2" stroke-linecap="round"/>
<path d="M483.795 315.292C440.795 275.792 421.795 221.292 436.295 170.792C460.795 98.7925 448.614 79.3936 434.295 57.7926C419.973 36.1943 395.839 22.5104 393.295 -3.20743C390.751 -28.9252 392.616 -68.5182 393.295 -84.7075M489.795 311.292C476.757 290.878 414.295 264.292 438.295 168.792C464.295 101.792 448.815 74.4771 434.295 52.7925C419.775 31.1051 394.321 22.5724 391.795 -3.20743C389.269 -28.9873 393.497 -69.3752 394.295 -85.7075" stroke="#46464F" stroke-width="2" stroke-linecap="round"/>
<path d="M303.889 -53.2046C276.865 -1.44642 229.139 31.0117 176.607 30.0761C100.719 25.0459 85.1341 41.8326 67.9752 61.2546C50.8195 80.6782 43.8484 107.532 19.6653 116.646C-4.51778 125.759 -43.2443 134.205 -59.0577 137.739M298.473 -57.9649C282.129 -40.0874 272.615 27.1269 174.158 28.6619C102.711 20.8887 80.3333 42.9113 63.1455 62.5488C45.9551 82.1869 44.3013 108.982 20.0535 118.094C-4.19425 127.206 -44.3003 133.575 -60.2826 137.032" stroke="#46464F" stroke-width="2" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17344_59895">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,18 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17628_50357)">
<rect width="480" height="360" fill="#181410"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M286.171 -83.5032L287.709 -55.0585L287.628 -37.5732L286.112 -25.3464L282.114 -16.4294L279.346 -10.275L275.984 -4.67907L268.539 4.85112L258.773 13.2621L249.638 19.6809L245.095 22.4116L234.088 25.8992L229.041 27.5426L223.348 29.0493L215.832 29.7582L205.117 29.8425L190.791 32.8331L177.291 32.8331L128.791 32.8331L104.304 37.9141L87.791 44.4141L67.6522 60.9141L64.218 63.5139L61.291 67.4141L57.8458 71.4736L51.3793 84.4141L47.8048 89.743L45.9784 93.8892L43.0108 104.049L38.7564 116.082L35.7322 122.19L33.0507 126.934L28.4968 131.923L14.0071 146.357L2.81679 154.66L-3.30171 158.549L-6.76027 159.618L-10.1028 160.206L-13.8851 160.32L-16.8418 159.165L-18.9946 157.079L-21.5143 153.828L-24.1204 145.691L-26.6833 129.156L-29.5645 99.6994L-32.0006 58.3396L-31.434 29.9793L-30.6409 2.08618L-29.783 -10.8266L-27.8999 -27.6874L-26.4944 -37.7806L-22.526 -49.5309L-16.1674 -64.0234L-13.2943 -69.7219L-9.67923 -75.6643L-6.32861 -80.7793L-1.21362 -85.598L3.30243 -89.3977L8.1611 -93.7377L13.419 -96.881L24.3072 -102.933L30.2234 -106.27L44.1709 -110.788L51.3793 -112.436L59.772 -113.409L69.341 -114.177L79.7544 -115L89.809 -114.654L112.47 -113.069L137.379 -110.386L233.781 -96.1972L255.794 -91.7979L285.848 -83.3482" fill="#181010"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M379.716 6.48256L380.076 12.4716L381.375 16.1433L383.655 20.6917L386.663 25.3076L401.657 41.7316L416.266 59.669L421.454 66.64L430.984 82.5973L435 92.0476L435.935 96.6365L437.239 100.788L437.747 105.987L437.672 111.563L436.081 123.498L430.544 156.155L424.941 179.887L422.676 198.234L421.146 212.743L420.889 226.688L421.661 239.003L423.464 249.702L426.115 258.821L433.523 275.954L437.845 283.279L440.724 289.729L453.154 306.685L460.047 320.3L463.019 325.043L466.871 329.133L471.544 331.666L478.45 334.784L492.277 339.071L509.489 341.739L522.375 344.127L535.848 345.19L548.601 343.903L554.836 343.841L560.062 342.087L565.749 339.902L570.395 338.203L575.421 335.3L585.184 327.144L589.583 323.675L598.436 313.445L606.729 301.316L614.638 289.176L618.121 283.055L623.53 270.316L627.628 257.021L628.365 250.849L629.491 244.245L629.265 237.49L628.226 230.1L627.362 222.609L623.466 207.712L618.189 191.76L603.154 147.365L599.457 134.416L597.54 121.879L595.559 111.113L592.01 82.1009L590.905 72.8746L588.965 61.7004L585.785 49.2637L579.255 28.8821L570.778 3.57706L543.033 -70.8624L542.132 -73.3201L542.076 -77.9764L543.306 -79.1122L544.717 -80.2614L544.97 -79.8999L544.437 -79.1176L543.901 -78.3865L540.694 -79.7677L514.59 -86.9249L481.361 -95.4822L461.54 -98.5711L445.846 -101.536L430.328 -102L416.84 -100.147L405.541 -97.5082L393.046 -92.4391L387.473 -88.7971L386.185 -86.4501L384.197 -83.9816L382.583 -76.3496L380.418 -67.3607L379.713 -59.0057L379 -42.3767L379.723 6.02663" fill="#423B24"/>
<path d="M379.27 6.46662C379.951 8.85144 379.833 14.6247 383.525 20.4923C387.218 26.3599 395.136 33.8651 401.428 41.6671C407.717 49.469 415.337 57.3708 421.268 67.3039C427.201 77.2371 435.106 88.2359 437.021 101.269C438.935 114.302 434.935 131.416 432.756 145.501C430.579 159.584 425.874 170.175 423.955 185.774C422.036 201.369 419.61 224.074 421.245 239.084C422.877 254.097 428.945 265.29 433.752 275.839C438.561 286.387 442.585 292.597 450.093 302.376C457.599 312.156 458.661 328.583 478.795 334.515C498.931 340.445 545.931 351.91 570.899 337.957C595.868 324.004 623.825 284.787 628.611 250.798C633.398 216.809 606.788 167.569 599.622 134.022C592.455 100.478 594.865 83.0319 585.613 49.523C576.363 16.0167 552.08 -45.3413 544.109 -67.0178C536.14 -88.6917 554.1 -74.8521 537.793 -80.5282C521.484 -86.2043 469.78 -98.8326 446.261 -101.072C422.745 -103.311 407.548 -99.0241 396.689 -93.9658C385.832 -88.9075 383.963 -87.386 381.116 -70.7219C378.269 -54.0605 379.903 -6.7902 379.605 6.008M379.73 6.32363C380.368 8.60864 379.611 14.166 383.318 19.9716C387.026 25.7772 395.645 33.3687 401.975 41.1572C408.305 48.9456 415.384 56.6667 421.293 66.705C427.201 76.7434 435.582 88.155 437.422 101.388C439.261 114.62 434.554 131.937 432.334 146.095C430.116 160.253 426.004 170.868 424.105 186.337C422.209 201.806 419.282 224.047 420.948 238.912C422.612 253.774 429.227 264.958 434.101 275.515C438.974 286.071 442.844 292.403 450.186 302.252C457.528 312.102 458.064 328.682 478.152 334.612C498.241 340.539 545.623 351.8 570.717 337.82C595.808 323.84 623.907 284.698 628.714 250.733C633.524 216.766 606.754 167.432 599.567 134.017C592.383 100.6 594.821 83.8385 585.599 50.2379C576.377 16.6399 552.131 -45.7999 544.237 -67.5763C536.346 -89.3499 554.601 -74.8548 538.242 -80.4176C521.885 -85.9804 469.605 -98.5682 446.086 -100.953C422.567 -103.338 407.947 -99.6959 397.129 -94.7212C386.311 -89.7465 384.118 -87.9903 381.18 -71.1076C378.239 -54.225 379.792 -6.38014 379.491 6.57183" stroke="#423B24" stroke-width="4" stroke-linecap="round"/>
<path d="M38.2158 274.741C44.7076 275.062 50.5771 277.838 56.3576 279.869C62.1382 281.901 67.9917 284.191 72.897 286.929C77.8046 289.665 82.0442 292.951 85.7961 296.288C89.5503 299.625 92.9102 303.289 95.4152 306.949C97.9203 310.61 99.7188 314.328 100.827 318.25C101.934 322.173 102.342 326.473 102.067 330.485C101.791 334.496 100.904 338.473 99.174 342.317C97.4439 346.162 94.8158 349.998 91.6816 353.548C88.5497 357.098 84.6815 360.597 80.3803 363.616C76.0768 366.638 71.1829 369.316 65.8627 371.669C60.5449 374.024 54.5227 376.061 48.4663 377.742C42.41 379.422 36.0253 380.868 29.529 381.759C23.0304 382.649 16.2173 383.01 9.48166 383.083C2.7483 383.156 -4.29051 383.032 -10.878 382.201C-17.4655 381.37 -23.98 379.781 -30.0455 378.1C-36.1087 376.42 -41.9075 374.431 -47.2619 372.114C-52.6162 369.794 -57.7927 367.204 -62.1714 364.193C-66.5502 361.185 -70.3727 357.616 -73.5366 354.055C-76.7027 350.497 -79.3171 346.682 -81.1612 342.838C-83.0029 338.996 -84.1745 334.99 -84.594 330.995C-85.0111 327.002 -84.6737 322.823 -83.6685 318.876C-82.6633 314.927 -81.0176 310.934 -78.5627 307.303C-76.1077 303.672 -72.7319 300.399 -68.9413 297.086C-65.1529 293.774 -60.6853 290.229 -55.8301 287.431C-50.9773 284.636 -45.5318 282.365 -39.8196 280.312C-34.1074 278.259 -27.8983 276.419 -21.557 275.11C-15.2157 273.802 -8.40484 272.866 -1.7672 272.459C4.8727 272.051 10.8698 272.04 18.2802 272.666C25.6905 273.292 37.9765 275.299 42.6903 276.219C47.4041 277.139 47.1078 277.331 46.5607 278.189M52.3641 278.755C58.7305 279.753 64.3424 283.063 69.4232 285.553C74.5063 288.046 78.7687 290.547 82.8534 293.698C86.9359 296.849 90.9841 300.817 93.9199 304.459C96.8535 308.104 99.0372 311.711 100.464 315.561C101.891 319.408 102.532 323.527 102.477 327.547C102.422 331.569 101.565 335.829 100.143 339.684C98.7181 343.542 96.735 347.122 93.9313 350.683C91.1299 354.244 87.3803 357.867 83.323 361.05C79.2657 364.234 74.6202 367.174 69.5941 369.783C64.5681 372.395 59.0428 374.874 53.1619 376.708C47.2833 378.545 40.8531 379.697 34.3181 380.793C27.783 381.888 20.7396 382.954 13.9561 383.283C7.1749 383.612 0.252342 383.461 -6.3716 382.767C-12.9978 382.074 -19.6264 380.682 -25.7967 379.12C-31.967 377.561 -37.8867 375.567 -43.3937 373.404C-48.8985 371.24 -54.2346 368.974 -58.8276 366.136C-63.4206 363.298 -67.4551 359.788 -70.9449 356.37C-74.4346 352.952 -77.5278 349.402 -79.7662 345.627C-82.0046 341.853 -83.632 337.68 -84.3751 333.722C-85.1205 329.762 -84.9997 325.801 -84.2293 321.874C-83.4611 317.948 -81.8632 313.974 -79.7571 310.165C-77.6509 306.353 -75.0319 302.393 -71.5922 299.01C-68.1526 295.624 -63.7534 292.724 -59.117 289.859C-54.4785 286.997 -49.2541 284.067 -43.7675 281.825C-38.2787 279.586 -32.35 277.962 -26.1933 276.419C-20.0344 274.878 -13.4514 273.279 -6.82065 272.575C-0.189865 271.873 6.8877 271.897 13.5891 272.205C20.2906 272.515 26.9487 273.343 33.3835 274.423C39.8183 275.502 49.198 277.792 52.1977 278.68C55.1974 279.57 52.0815 278.974 51.3771 279.753" fill="#243642"/>
<path d="M-14.7304 273.996C-8.93156 272.188 -1.20894 272.509 5.47883 272.345C12.1666 272.18 18.8156 272.291 25.394 273.017C31.9746 273.74 38.7695 275.129 44.9559 276.688C51.1422 278.245 57.0025 280.12 62.5118 282.367C68.0189 284.612 73.4621 287.264 78.0049 290.156C82.5455 293.05 86.4091 296.263 89.7598 299.725C93.1083 303.188 96.0373 307.079 98.1025 310.926C100.168 314.773 101.569 318.833 102.146 322.807C102.725 326.783 102.422 330.886 101.569 334.782C100.715 338.678 99.2422 342.409 97.0243 346.183C94.8064 349.96 91.8592 354.071 88.2577 357.438C84.6563 360.805 80.1453 363.573 75.411 366.378C70.6767 369.184 65.4523 372.097 59.8563 374.275C54.2581 376.452 48.1083 378.033 41.8262 379.441C35.5419 380.849 28.763 382.087 22.155 382.721C15.547 383.358 8.82729 383.501 2.18054 383.253C-4.4662 383.005 -11.2907 382.379 -17.7278 381.229C-24.1671 380.08 -30.5517 378.308 -36.4463 376.363C-42.3431 374.415 -48.0576 372.146 -53.1042 369.551C-58.1508 366.956 -62.778 363.999 -66.7259 360.791C-70.6738 357.584 -74.1043 354.004 -76.7895 350.302C-79.4769 346.598 -81.5443 342.463 -82.8481 338.572C-84.1497 334.679 -84.6716 330.881 -84.6078 326.948C-84.544 323.017 -84.0174 318.857 -82.4629 314.98C-80.9061 311.106 -78.262 307.278 -75.2691 303.696C-72.2762 300.11 -68.6064 296.649 -64.5057 293.479C-60.4028 290.309 -55.7893 287.228 -50.6606 284.671C-45.532 282.114 -41.037 280.036 -33.7292 278.132C-26.4214 276.227 -12.6356 273.999 -6.81855 273.241C-0.999231 272.485 0.89951 272.736 1.1776 273.599M23.3471 272.968C29.8685 272.604 36.946 274.449 43.2417 275.855C49.5352 277.26 55.5961 279.178 61.1146 281.407C66.6353 283.632 71.7708 286.292 76.3569 289.211C80.9431 292.13 85.1372 295.43 88.6338 298.915C92.1304 302.403 95.162 306.358 97.3366 310.13C99.5111 313.901 100.872 317.686 101.679 321.547C102.486 325.407 102.905 329.346 102.183 333.29C101.46 337.237 99.5089 341.429 97.3434 345.222C95.1803 349.018 92.5498 352.641 89.1968 356.054C85.8438 359.469 81.7842 362.782 77.23 365.706C72.6757 368.628 67.4331 371.318 61.8736 373.6C56.3141 375.882 50.1278 377.984 43.8754 379.406C37.623 380.825 30.974 381.483 24.3546 382.128C17.7375 382.773 10.9015 383.45 4.16134 383.274C-2.57658 383.099 -9.62678 382.141 -16.0821 381.078C-22.5351 380.013 -28.6325 378.699 -34.5658 376.886C-40.4968 375.07 -46.462 372.71 -51.6773 370.187C-56.8903 367.668 -61.7522 364.94 -65.846 361.757C-69.9398 358.571 -73.4296 354.789 -76.2401 351.085C-79.0483 347.378 -81.2389 343.415 -82.6977 339.517C-84.1588 335.618 -84.9862 331.574 -84.9999 327.695C-85.0113 323.813 -84.2545 320.052 -82.7752 316.238C-81.2958 312.423 -78.8865 308.444 -76.1261 304.807C-73.3635 301.168 -70.1609 297.601 -66.2062 294.407C-62.2514 291.216 -57.4966 288.281 -52.3975 285.648C-47.2985 283.012 -41.5407 280.487 -35.6097 278.598C-29.6787 276.713 -23.2622 275.372 -16.8069 274.32C-10.3516 273.268 -3.59319 272.55 3.11965 272.286C9.83478 272.021 20.0989 272.504 23.477 272.728C26.8574 272.952 23.6229 272.661 23.3995 273.632" stroke="#243642" stroke-width="4" stroke-linecap="round"/>
<path d="M-5 268C6.11438 271.353 37.5 274.187 61.627 287.866C79.5 298 107.5 301 89 352C74.3613 381.076 54.2486 425.455 63.0722 439.934C71.8957 454.41 99.2577 455.311 111.211 464.637C123.164 473.964 130.802 490.722 134.794 495.894M-3.93096 269.424C7.10592 272.969 27.8613 275.129 61.0047 288.835C82.3613 298.703 93.5208 310.054 93.8718 335C94.2228 359.946 54.2805 424.106 63.1132 438.504C71.9436 452.902 98.5853 455.187 110.643 464.985C122.704 474.786 131.304 492.004 135.464 497.297" stroke="#B9B9C6" stroke-width="2" stroke-linecap="round"/>
<path d="M483.795 315.292C440.795 275.792 421.795 221.292 436.295 170.792C460.795 98.7925 448.614 79.3936 434.295 57.7926C419.973 36.1943 395.839 22.5104 393.295 -3.20743C390.751 -28.9252 392.616 -68.5182 393.295 -84.7075M489.795 311.292C476.757 290.878 414.295 264.292 438.295 168.792C464.295 101.792 448.815 74.4771 434.295 52.7925C419.775 31.1051 394.321 22.5724 391.795 -3.20743C389.269 -28.9873 393.497 -69.3752 394.295 -85.7075" stroke="#B9B9C6" stroke-width="2" stroke-linecap="round"/>
<path d="M303.889 -53.2046C276.865 -1.44642 229.139 31.0117 176.607 30.0761C100.719 25.0459 85.1341 41.8326 67.9752 61.2546C50.8195 80.6782 43.8484 107.532 19.6653 116.646C-4.51778 125.759 -43.2443 134.205 -59.0577 137.739M298.473 -57.9649C282.129 -40.0874 272.615 27.1269 174.158 28.6619C102.711 20.8887 80.3333 42.9113 63.1455 62.5488C45.9551 82.1869 44.3013 108.982 20.0535 118.094C-4.19425 127.206 -44.3003 133.575 -60.2826 137.032" stroke="#B9B9C6" stroke-width="2" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17628_50357">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,22 @@
<svg width="480" height="360" viewBox="0 0 480 360" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17628_45291)">
<rect width="480" height="360" fill="#121212"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M-67.4172 94.5377L-38.9725 93L-21.4872 93.0809L-9.2605 94.5971L-0.343468 98.5952L5.81093 101.363L11.4069 104.724L20.9371 112.17L29.3481 121.936L35.7669 131.071L38.4976 135.614L41.9851 146.621L43.6285 151.668L45.1352 157.361L45.8441 164.877L45.9285 175.592L44.6611 190.508L43.0131 199.964L34.3947 245.578L31.069 269.911L30.0775 276.405L28.8808 301.559L29.2295 305.382L30.0205 310.038L31.3266 313.057L34.3468 316.491L37.9916 320.451L43.086 322.863L48.919 325.647L55.4678 328.229L68.1982 332.551L79.5998 335.178L84.0629 336.039L87.5595 335.562L101.215 333.268L105.829 332.904L109.975 334.731L120.134 337.698L132.167 341.953L138.276 344.977L143.02 347.658L148.009 352.212L162.443 366.702L170.746 377.892L174.635 384.011L175.704 387.469L176.292 390.812L176.406 394.594L175.251 397.551L173.165 399.704L169.914 402.223L161.777 404.829L145.242 407.392L115.785 410.273L74.4256 412.71L46.0652 412.143L18.1721 411.35L5.25931 410.492L-11.6014 408.609L-21.6947 407.203L-33.445 403.235L-47.9375 396.876L-53.636 394.003L-59.5784 390.388L-64.6934 387.038L-69.512 381.923L-73.3118 377.407L-77.6518 372.548L-80.7951 367.29L-86.8469 356.402L-90.1839 350.486L-94.7017 336.538L-96.3497 329.33L-97.323 320.937L-98.0912 311.368L-98.9141 300.955L-98.5676 290.9L-96.9834 268.239L-94.3005 243.33L-80.1113 146.928L-75.712 124.915L-67.2622 94.8615" fill="#422424"/>
<path d="M-67.4011 95.0098C-57.219 95.2176 -23.0826 90.8849 -6.43609 96.0889C10.2104 101.296 23.7979 113.659 32.4756 126.236C41.1556 138.813 45.4249 151.021 45.6392 171.548C45.8557 192.075 36.4008 230.68 33.7749 249.4C31.149 268.123 29.8224 272.633 29.8885 283.87C29.9569 295.109 25.879 308.338 34.1761 316.823C42.4731 325.31 67.1158 331.906 79.6684 334.787C92.2211 337.671 97.3999 330.641 109.494 334.124C121.591 337.606 143.1 344.119 152.242 355.687C161.387 367.252 194.024 395.174 164.36 403.526C134.696 411.876 17.7097 418.262 -25.7381 405.787C-69.1858 393.313 -86.8512 369.599 -96.3267 328.685C-105.8 287.771 -87.4256 199.214 -82.5865 160.298C-77.7473 121.383 -69.8081 106.098 -67.2916 95.1906M-67.7521 94.7373C-57.4628 94.8695 -22.5811 90.3481 -5.89815 95.633C10.7871 100.918 23.7592 113.77 32.3548 126.447C40.9527 139.126 45.4888 151.191 45.6825 171.697C45.874 192.205 36.2253 230.837 33.515 249.489C30.8026 268.142 29.3984 272.296 29.4121 283.611C29.4281 294.925 25.2704 308.73 33.6062 317.381C41.9397 326.033 66.71 332.634 79.4245 335.518C92.1391 338.402 97.7168 331.364 109.887 334.687C122.059 338.008 143.38 343.941 152.448 355.452C161.515 366.963 194.04 395.36 164.294 403.75C134.547 412.14 17.4179 418.353 -26.0276 405.79C-69.473 393.226 -87.0427 369.273 -96.3791 328.372C-105.716 287.471 -86.915 199.257 -82.0462 160.387C-77.1797 121.515 -69.6326 106.022 -67.1754 95.1474" stroke="#422424" stroke-width="4" stroke-linecap="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M256.257 14.4479L265.664 27.8666L272.049 35.9572L278.8 42.3698L281.458 45.4128L285.88 47.6763L293.742 51.24L301.537 54.4396L316.215 59.5222L322.405 61.0869L329.114 61.4807L335.494 60.5203L339.348 60.2074L342.277 57.8873L364.315 45.545L381.46 38.7925L393.635 34.3412L404.71 31.7109L410.951 30.7316L417.069 30.9555L422.727 32.736L426.435 36.057L429.729 40.9696L435.113 51.5691L437.315 58.1382L443.747 80.6457L450.838 103.935L452.929 111.244L458.639 122.259L467.854 134.668L470.795 138.68L474.253 141.82L495.399 154.532L500.917 156.577L505.314 156.679L509.499 155.8L513.116 153.609L516.932 148.675L519.79 142.773L523.768 134.86L527.397 126.394L529.441 116.882L532.644 106.973L533.822 97.2612L534.919 87.0609L535.117 76.4318L535.4 64.0868L533.845 50.3956L532.288 37.1496L530.966 24.1841L527.167 5.79885L523.659 -3.82678L521.965 -7.895L517.26 -14.8849L513.588 -20.2184L509.187 -23.2939L504.218 -26.4125L498.163 -28.425L491.752 -30.273L466.124 -34.816L451.965 -36.2081L426.608 -38.8087L390.17 -40.5838L300.808 -44.0127L278.128 -43.5811L264.682 -42.8823L256.923 -41.1558L252.029 -38.6253L249.692 -36.7719L248.11 -34.6245L246.843 -30.4106L245.959 -27.8315L245.838 -21.7669L249.606 -6.63515L250.239 0.621838L251.167 3.55431L253.139 7.44988L256.337 13.9083" fill="#244236"/>
<path d="M256.65 13.6655C260.272 18.4864 269.679 35.4932 278.391 42.7043C287.105 49.9127 299.347 53.9621 308.932 56.9269C318.517 59.8918 326.668 62.3278 335.905 60.4961C345.143 58.6643 354.149 50.5305 364.356 45.9335C374.561 41.3365 387.412 35.102 397.138 32.9114C406.867 30.7208 416.363 29.5851 422.716 32.7927C429.068 36.003 431.79 44.1827 435.252 52.1627C438.713 60.1399 440.513 70.7988 443.479 80.6645C446.447 90.533 449.521 102.908 453.05 111.362C456.579 119.815 460.287 125.752 464.65 131.388C469.013 137.024 471.153 141.513 479.229 145.176C487.305 148.842 503.833 163.07 513.103 153.375C522.374 143.679 533.49 113.869 534.856 87.0016C536.221 60.1319 531.715 12.2843 521.295 -7.83566C510.876 -27.9556 502.488 -27.9961 472.345 -33.7153C442.2 -39.4373 376.751 -41.1234 340.429 -42.1647C304.107 -43.2061 269.478 -46.5297 254.409 -39.9634C239.34 -33.3997 249.659 -11.7987 250.021 -2.76925C250.381 6.26017 255.476 11.4102 256.579 14.2159M256.344 14.2348C259.923 19.1096 269.428 35.8681 278.163 43.0253C286.897 50.1825 299.106 54.2399 308.755 57.1805C318.403 60.1211 326.839 62.5221 336.055 60.6687C345.273 58.818 353.839 50.7463 364.057 46.0711C374.274 41.3959 387.679 34.8754 397.362 32.6173C407.042 30.362 415.857 29.2775 422.146 32.531C428.435 35.7872 431.485 44.0343 435.1 52.1519C438.715 60.2694 440.837 71.3815 443.834 81.2338C446.834 91.086 449.624 102.999 453.089 111.26C456.553 119.523 460.198 125.172 464.623 130.811C469.045 136.449 471.541 141.224 479.632 145.093C487.724 148.961 504.013 163.71 513.176 154.022C522.339 144.332 533.271 113.941 534.616 86.9584C535.963 59.9727 531.591 12.1926 521.25 -7.88152C510.908 -27.9583 502.629 -27.8261 472.571 -33.4941C442.515 -39.1621 377.296 -40.8239 340.906 -41.8949C304.515 -42.966 269.421 -46.465 254.227 -39.9202C239.03 -33.3781 249.324 -11.6017 249.732 -2.63437C250.14 6.33571 255.565 11.1458 256.679 13.8922" stroke="#244236" stroke-width="4" stroke-linecap="round"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M336.97 62.1901L337.33 68.1791L338.629 71.8508L340.908 76.3992L343.917 81.0151L358.911 97.4391L373.52 115.377L378.708 122.348L388.238 138.305L392.254 147.755L393.189 152.344L394.493 156.496L395.001 161.694L394.926 167.271L393.335 179.206L387.798 211.862L382.195 235.594L379.93 253.942L378.4 268.45L378.143 282.395L378.915 294.711L380.718 305.41L383.369 314.528L390.777 331.662L395.099 338.986L397.978 345.437L410.408 362.392L417.3 376.008L420.273 380.75L424.125 384.84L428.798 387.373L435.704 390.492L449.531 394.779L466.743 397.447L479.628 399.834L493.102 400.897L505.855 399.61L512.09 399.548L517.316 397.795L523.003 395.61L527.649 393.91L532.675 391.007L542.438 382.852L546.837 379.383L555.69 369.153L563.982 357.023L571.892 344.884L575.375 338.762L580.784 326.023L584.882 312.729L585.619 306.556L586.745 299.952L586.519 293.197L585.48 285.808L584.616 278.316L580.72 263.419L575.443 247.467L560.408 203.073L556.711 190.124L554.794 177.587L552.813 166.82L549.264 137.808L548.159 128.582L546.219 117.408L543.039 104.971L536.509 84.5896L528.032 59.2846L500.287 -15.1549L499.386 -17.6125L499.329 -22.2689L500.56 -23.4046L501.971 -24.5539L502.224 -24.1924L501.691 -23.41L501.155 -22.6789L497.948 -24.0602L471.844 -31.2174L438.615 -39.7747L418.793 -42.8636L403.1 -45.8285L387.582 -46.2925L374.094 -44.4391L362.795 -41.8007L350.3 -36.7316L344.726 -33.0896L343.439 -30.7426L341.451 -28.2741L339.837 -20.6421L337.672 -11.6532L336.967 -3.29819L336.254 13.3308L336.976 61.7342" fill="#423B24"/>
<path d="M336.523 62.1739C337.205 64.5587 337.086 70.3319 340.779 76.1996C344.472 82.0672 352.39 89.5724 358.682 97.3744C364.97 105.176 372.59 113.078 378.521 123.011C384.455 132.944 392.36 143.943 394.274 156.976C396.189 170.009 392.189 187.124 390.01 201.209C387.833 215.291 383.128 225.882 381.209 241.481C379.29 257.077 376.864 279.781 378.499 294.791C380.131 309.805 386.199 320.998 391.006 331.546C395.815 342.094 399.838 348.304 407.347 358.084C414.853 367.863 415.915 384.29 436.049 390.222C456.185 396.152 503.184 407.617 528.153 393.665C553.122 379.712 581.079 340.494 585.865 306.505C590.652 272.516 564.042 223.276 556.876 189.73C549.709 156.186 552.119 138.739 542.867 105.23C533.617 71.724 509.334 10.366 501.363 -11.3106C493.394 -32.9844 511.354 -19.1449 495.047 -24.821C478.738 -30.4971 427.034 -43.1253 403.515 -45.3645C379.999 -47.6036 364.802 -43.3169 353.943 -38.2585C343.086 -33.2002 341.217 -31.6787 338.37 -15.0146C335.523 1.64681 337.157 48.9171 336.859 61.7153M336.984 62.0309C337.622 64.3159 336.865 69.8733 340.572 75.6789C344.28 81.4845 352.899 89.076 359.229 96.8645C365.559 104.653 372.638 112.374 378.547 122.412C384.455 132.451 392.836 143.862 394.676 157.095C396.515 170.327 391.808 187.644 389.588 201.802C387.37 215.96 383.258 226.576 381.359 242.045C379.463 257.514 376.536 279.754 378.202 294.619C379.866 309.481 386.481 320.666 391.355 331.222C396.228 341.778 400.098 348.11 407.44 357.96C414.782 367.809 415.318 384.39 435.406 390.319C455.495 396.246 502.877 407.507 527.971 393.527C553.062 379.547 581.161 340.405 585.968 306.44C590.777 272.473 564.008 223.139 556.821 189.724C549.636 156.307 552.075 139.546 542.853 105.945C533.63 72.3472 509.384 9.90737 501.491 -11.869C493.6 -33.6427 511.855 -19.1476 495.496 -24.7104C479.139 -30.2732 426.859 -42.8609 403.34 -45.2458C379.821 -47.6306 365.201 -43.9886 354.383 -39.0139C343.565 -34.0392 341.372 -32.283 338.434 -15.4004C335.493 1.48225 337.045 49.3271 336.745 62.2791" stroke="#423B24" stroke-width="4" stroke-linecap="round"/>
<path d="M-15.2578 154.834C-4.14343 158.188 40.8247 156.405 51.3692 174.701C61.9137 192.994 47.77 239.261 48.0116 264.604C48.2533 289.949 43.9908 312.29 52.8143 326.769C61.6379 341.245 88.9999 342.146 100.953 351.472C112.906 360.798 120.545 377.557 124.536 382.728M-14.1888 156.259C-3.15189 159.804 40.4828 157.476 50.7469 175.669C61.0134 193.866 47.0497 240.486 47.4008 265.432C47.7518 290.378 44.0227 310.941 52.8554 325.339C61.6858 339.737 88.3275 342.022 100.386 351.82C112.446 361.621 121.046 378.838 125.206 384.131" stroke="#B9B9C6" stroke-width="2" stroke-linecap="round"/>
<path d="M24.5264 280.87C31.0181 281.191 36.8876 283.967 42.6682 285.998C48.4487 288.029 54.3023 290.32 59.2075 293.058C64.1151 295.794 68.3548 299.079 72.1067 302.417C75.8609 305.754 79.2207 309.417 81.7258 313.078C84.2309 316.739 86.0293 320.457 87.1371 324.379C88.2449 328.302 88.6529 332.602 88.3771 336.613C88.1013 340.625 87.2146 344.602 85.4845 348.446C83.7544 352.29 81.1263 356.126 77.9921 359.677C74.8602 363.227 70.9921 366.726 66.6908 369.745C62.3873 372.766 57.4934 375.445 52.1733 377.798C46.8554 380.153 40.8333 382.19 34.7769 383.87C28.7205 385.551 22.3359 386.997 15.8396 387.887C9.34099 388.777 2.52785 389.139 -4.20779 389.212C-10.9412 389.285 -17.98 389.161 -24.5674 388.33C-31.1549 387.499 -37.6695 385.91 -43.735 384.229C-49.7982 382.548 -55.597 380.56 -60.9513 378.243C-66.3056 375.923 -71.4822 373.333 -75.8609 370.322C-80.2396 367.314 -84.0622 363.745 -87.226 360.184C-90.3921 356.625 -93.0066 352.811 -94.8506 348.967C-96.6924 345.125 -97.864 341.119 -98.2834 337.123C-98.7005 333.131 -98.3632 328.952 -97.358 325.005C-96.3528 321.055 -94.707 317.063 -92.2521 313.432C-89.7972 309.8 -86.4214 306.528 -82.6307 303.215C-78.8424 299.902 -74.3747 296.357 -69.5196 293.56C-64.6667 290.765 -59.2212 288.493 -53.509 286.44C-47.7969 284.387 -41.5878 282.548 -35.2465 281.239C-28.9052 279.931 -22.0943 278.995 -15.4567 278.587C-8.81675 278.18 -2.81964 278.169 4.59071 278.795C12.0011 279.421 24.287 281.428 29.0009 282.348C33.7147 283.268 33.4184 283.459 32.8713 284.317M38.6747 284.884C45.041 285.882 50.6529 289.192 55.7337 291.682C60.8168 294.175 65.0793 296.676 69.164 299.827C73.2464 302.978 77.2946 306.946 80.2305 310.588C83.1641 314.233 85.3478 317.84 86.7747 321.689C88.2016 325.536 88.8421 329.656 88.7874 333.676C88.7327 337.698 87.8756 341.958 86.4533 345.813C85.0286 349.671 83.0455 353.251 80.2419 356.812C77.4405 360.373 73.6909 363.996 69.6335 367.179C65.5762 370.362 60.9308 373.303 55.9047 375.912C50.8786 378.523 45.3533 381.002 39.4724 382.837C33.5939 384.674 27.1637 385.826 20.6286 386.921C14.0936 388.017 7.05019 389.082 0.26667 389.411C-6.51456 389.741 -13.4371 389.589 -20.0611 388.896C-26.6873 388.203 -33.3158 386.811 -39.4862 385.249C-45.6565 383.689 -51.5761 381.696 -57.0832 379.532C-62.5879 377.369 -67.924 375.102 -72.517 372.264C-77.11 369.426 -81.1446 365.917 -84.6343 362.499C-88.1241 359.08 -91.2173 355.53 -93.4556 351.756C-95.694 347.982 -97.3215 343.808 -98.0646 339.851C-98.81 335.89 -98.6891 331.93 -97.9187 328.002C-97.1505 324.077 -95.5527 320.103 -93.4465 316.294C-91.3403 312.482 -88.7213 308.522 -85.2817 305.139C-81.8421 301.753 -77.4428 298.853 -72.8065 295.988C-68.1679 293.125 -62.9435 290.196 -57.457 287.954C-51.9682 285.715 -46.0394 284.091 -39.8828 282.548C-33.7238 281.007 -27.1409 279.407 -20.5101 278.703C-13.8793 278.002 -6.80176 278.026 -0.100311 278.334C6.60114 278.644 13.2593 279.472 19.6941 280.551C26.1288 281.63 35.5086 283.921 38.5083 284.808C41.508 285.699 38.392 285.102 37.6877 285.882" fill="#243642"/>
<path d="M-28.4198 280.125C-22.621 278.318 -14.8984 278.639 -8.21062 278.474C-1.52284 278.309 5.12619 278.42 11.7045 279.146C18.2852 279.869 25.0801 281.258 31.2664 282.817C37.4527 284.374 43.3131 286.249 48.8224 288.496C54.3294 290.741 59.7726 293.393 64.3155 296.285C68.8561 299.179 72.7197 302.392 76.0704 305.854C79.4188 309.318 82.3479 313.208 84.413 317.055C86.4782 320.902 87.88 324.962 88.4567 328.936C89.0356 332.912 88.7325 337.016 87.88 340.911C87.0252 344.807 85.5527 348.538 83.3348 352.312C81.117 356.089 78.1697 360.2 74.5683 363.567C70.9668 366.934 66.4559 369.702 61.7215 372.507C56.9872 375.313 51.7628 378.227 46.1669 380.404C40.5687 382.581 34.4188 384.162 28.1368 385.57C21.8525 386.978 15.0735 388.216 8.46551 388.85C1.85751 389.487 -4.86217 389.63 -11.5089 389.382C-18.1557 389.134 -24.9802 388.508 -31.4172 387.359C-37.8566 386.209 -44.2412 384.437 -50.1357 382.492C-56.0325 380.544 -61.747 378.275 -66.7936 375.68C-71.8402 373.085 -76.4674 370.128 -80.4153 366.92C-84.3633 363.713 -87.7938 360.133 -90.4789 356.431C-93.1663 352.727 -95.2337 348.592 -96.5376 344.702C-97.8391 340.809 -98.3611 337.01 -98.2973 333.077C-98.2334 329.146 -97.7069 324.986 -96.1523 321.11C-94.5955 317.236 -91.9514 313.407 -88.9585 309.825C-85.9657 306.239 -82.2958 302.778 -78.1952 299.608C-74.0923 296.438 -69.4787 293.358 -64.3501 290.8C-59.2214 288.243 -54.7264 286.165 -47.4187 284.261C-40.1109 282.356 -26.325 280.128 -20.508 279.37C-14.6887 278.614 -12.7899 278.865 -12.5119 279.729M9.65764 279.097C16.179 278.733 23.2566 280.578 29.5523 281.984C35.8457 283.389 41.9067 285.307 47.4251 287.536C52.9458 289.761 58.0813 292.421 62.6675 295.34C67.2536 298.259 71.4478 301.559 74.9444 305.044C78.441 308.533 81.4726 312.487 83.6471 316.259C85.8217 320.03 87.1825 323.815 87.9894 327.676C88.7963 331.536 89.2157 335.475 88.4931 339.419C87.7706 343.366 85.8194 347.558 83.654 351.351C81.4908 355.147 78.8604 358.77 75.5074 362.183C72.1544 365.598 68.0948 368.911 63.5405 371.836C58.9863 374.757 53.7436 377.447 48.1842 379.729C42.6247 382.012 36.4384 384.113 30.186 385.535C23.9336 386.954 17.2845 387.612 10.6651 388.257C4.04803 388.902 -2.78791 389.579 -9.52812 389.403C-16.266 389.228 -23.3162 388.27 -29.7715 387.207C-36.2245 386.142 -42.3219 384.828 -48.2552 383.015C-54.1862 381.2 -60.1514 378.839 -65.3667 376.317C-70.5797 373.797 -75.4417 371.069 -79.5355 367.886C-83.6293 364.7 -87.1191 360.918 -89.9296 357.214C-92.7378 353.507 -94.9283 349.544 -96.3871 345.646C-97.8482 341.747 -98.6756 337.703 -98.6893 333.824C-98.7007 329.942 -97.944 326.181 -96.4646 322.367C-94.9853 318.552 -92.576 314.573 -89.8156 310.936C-87.053 307.297 -83.8504 303.731 -79.8956 300.536C-75.9409 297.345 -71.186 294.41 -66.087 291.777C-60.988 289.141 -55.2302 286.616 -49.2992 284.727C-43.3682 282.842 -36.9516 281.501 -30.4964 280.449C-24.0411 279.397 -17.2826 278.679 -10.5698 278.415C-3.85467 278.15 6.40949 278.633 9.78757 278.857C13.1679 279.081 9.93345 278.79 9.71007 279.761" stroke="#243642" stroke-width="4" stroke-linecap="round"/>
<path d="M525.703 288.216C531.172 292.126 535.951 298.283 540.59 303.831C545.228 309.378 549.623 315.608 553.535 321.504C557.444 327.398 561.079 333.411 564.049 339.201C567.015 344.992 569.457 350.637 571.34 356.238C573.224 361.836 574.694 367.655 575.353 372.8C576.011 377.945 575.853 382.741 575.291 387.107C574.73 391.471 573.726 395.57 571.984 398.989C570.243 402.404 567.677 405.267 564.84 407.604C562.006 409.94 558.804 411.897 554.973 413.006C551.142 414.115 546.543 414.414 541.857 414.265C537.174 414.116 532.047 413.522 526.866 412.109C521.686 410.697 516.286 408.386 510.771 405.784C505.256 403.178 499.427 400.162 493.775 396.486C488.122 392.812 482.293 388.339 476.858 383.736C471.421 379.131 466.164 374.078 461.155 368.867C456.147 363.656 451.168 358.14 446.811 352.47C442.452 346.802 438.449 340.766 435.009 334.853C431.57 328.943 428.565 322.738 426.171 317.006C423.777 311.274 421.912 305.802 420.646 300.465C419.378 295.127 418.643 289.806 418.571 284.986C418.498 280.165 419.039 275.512 420.212 271.543C421.387 267.576 423.32 264.056 425.616 261.178C427.91 258.301 430.625 255.962 433.98 254.28C437.336 252.599 441.508 251.587 445.748 251.084C449.987 250.583 454.484 250.551 459.419 251.274C464.355 251.998 469.895 253.379 475.363 255.426C480.83 257.47 486.576 260.382 492.225 263.546C497.875 266.711 503.106 269.724 509.26 274.411C515.413 279.096 525.294 287.978 529.143 291.66C532.991 295.343 532.86 295.797 532.353 296.505M490.096 262.801C495.361 264.491 501.828 268.933 507.423 272.839C513.017 276.741 518.462 281.297 523.667 286.224C528.872 291.152 533.889 296.985 538.654 302.403C543.419 307.825 548.217 313.061 552.254 318.747C556.289 324.436 559.796 330.521 562.867 336.532C565.941 342.543 568.715 349.092 570.683 354.812C572.65 360.531 573.803 365.736 574.678 370.848C575.556 375.959 576.279 381.044 575.935 385.48C575.593 389.914 574.357 393.902 572.624 397.464C570.889 401.024 568.26 404.365 565.528 406.84C562.799 409.314 559.846 411.027 556.236 412.31C552.63 413.592 548.408 414.455 543.881 414.536C539.357 414.614 534.312 414.067 529.081 412.784C523.847 411.501 518.049 409.298 512.488 406.832C506.929 404.368 501.311 401.477 495.722 397.996C490.135 394.517 484.429 390.491 478.966 385.959C473.502 381.422 468.03 375.997 462.942 370.796C457.853 365.595 452.899 360.381 448.43 354.749C443.962 349.119 439.699 342.901 436.132 337.008C432.566 331.116 429.486 325.158 427.032 319.39C424.576 313.619 422.778 307.903 421.404 302.386C420.029 296.869 419.024 291.154 418.782 286.287C418.543 281.422 419.004 277.126 419.958 273.187C420.913 269.249 422.347 265.706 424.509 262.658C426.668 259.61 429.578 256.848 432.919 254.903C436.26 252.957 440.395 251.625 444.55 250.993C448.708 250.359 452.998 250.49 457.864 251.098C462.728 251.708 468.339 252.713 473.736 254.645C479.131 256.577 487.509 261.212 490.237 262.69C492.968 264.166 490.021 262.452 490.111 263.502" fill="#423324"/>
<path d="M529.62 292.151C535.001 296.356 539.755 303.044 544.229 308.665C548.702 314.287 552.786 320.042 556.46 325.886C560.137 331.731 563.613 337.894 566.288 343.731C568.961 349.564 570.952 355.375 572.504 360.895C574.059 366.414 575.222 371.944 575.606 376.843C575.992 381.743 575.699 386.221 574.816 390.298C573.931 394.376 572.31 398.121 570.302 401.299C568.295 404.477 565.889 407.289 562.774 409.367C559.661 411.443 555.759 412.945 551.622 413.759C547.485 414.575 542.78 414.776 537.961 414.258C533.143 413.737 527.97 412.373 522.713 410.639C517.455 408.906 511.975 406.743 506.42 403.857C500.865 400.971 495.005 397.2 489.385 393.322C483.766 389.445 478.062 385.334 472.701 380.591C467.341 375.848 462.05 370.308 457.229 364.86C452.409 359.413 447.956 353.662 443.777 347.905C439.599 342.146 435.356 336.204 432.157 330.312C428.961 324.42 426.668 318.261 424.588 312.559C422.507 306.857 420.645 301.359 419.676 296.102C418.709 290.843 418.488 285.624 418.776 281.007C419.063 276.392 419.955 272.07 421.403 268.406C422.85 264.744 424.867 261.627 427.46 259.033C430.057 256.439 433.381 254.238 436.977 252.842C440.573 251.449 444.587 250.737 449.04 250.666C453.493 250.599 458.574 251.367 463.697 252.426C468.818 253.483 474.287 254.765 479.773 257.018C485.259 259.272 491.016 262.505 496.618 265.946C502.221 269.388 507.239 272.624 513.383 277.666C519.526 282.703 529.627 292.255 533.484 296.188C537.338 300.119 537.103 300.644 536.515 301.261M523.885 286.613C529.381 290.504 534.632 297.081 539.367 302.62C544.102 308.16 548.278 314.062 552.293 319.846C556.308 325.629 560.408 331.501 563.457 337.321C566.507 343.143 568.683 349.211 570.59 354.772C572.497 360.333 574.098 365.588 574.897 370.69C575.695 375.794 575.8 380.787 575.381 385.387C574.961 389.986 574.04 394.671 572.378 398.283C570.716 401.896 568.153 404.689 565.413 407.063C562.672 409.44 559.682 411.28 555.936 412.536C552.188 413.79 547.478 414.573 542.929 414.592C538.381 414.614 533.757 413.915 528.644 412.661C523.531 411.407 517.798 409.644 512.247 407.066C506.697 404.486 501.004 400.805 495.339 397.187C489.675 393.568 483.764 389.752 478.258 385.351C472.75 380.949 467.334 375.945 462.293 370.78C457.255 365.617 452.335 360.036 448.025 354.372C443.716 348.707 439.965 342.735 436.44 336.789C432.914 330.842 429.39 324.512 426.872 318.692C424.353 312.872 422.761 307.228 421.331 301.866C419.899 296.502 418.507 291.298 418.283 286.517C418.062 281.735 418.871 277.283 419.995 273.184C421.118 269.087 422.818 264.939 425.027 261.925C427.235 258.912 429.972 256.894 433.245 255.103C436.517 253.314 440.459 251.84 444.66 251.188C448.863 250.535 453.643 250.534 458.454 251.191C463.266 251.851 468.195 253.172 473.528 255.139C478.859 257.104 484.815 260.034 490.444 262.984C496.069 265.934 501.775 268.861 507.285 272.835C512.797 276.811 520.851 284.42 523.51 286.831C526.17 289.241 523.614 286.559 523.248 287.301" stroke="#423324" stroke-width="4" stroke-linecap="round"/>
<path d="M491.674 335.082C478.44 314.562 436.77 244.536 412.565 211.872C388.362 179.205 360.772 160.687 346.453 139.086C332.132 117.488 329.184 107.989 326.64 82.2712C324.097 56.5534 330.511 0.971275 331.19 -15.218M492.773 334.572C479.734 314.158 438.324 245.27 413.837 212.8C389.349 180.332 360.36 161.44 345.84 139.755C331.32 118.068 329.248 108.469 326.722 82.6893C324.197 56.9095 329.891 1.41104 330.689 -14.9212" stroke="#B9B9C6" stroke-width="2" stroke-linecap="round"/>
</g>
<defs>
<clipPath id="clip0_17628_45291">
<rect width="480" height="360" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,82 @@
<svg width="140" height="20" viewBox="0 0 140 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_17766_58387)">
<path d="M138.862 3.88884C138.903 3.58329 138.987 3.63884 137.626 3.47218C136.251 3.30551 136.598 3.12495 136.473 3.76384C136.306 4.72218 136.028 5.80551 135.973 6.12495C135.848 6.86107 135.445 8.01384 135.084 9.4444C134.487 8.02773 133.987 7.1944 133.695 6.6944C132.64 4.93051 133.056 4.9444 131.945 5.3194C131.501 5.47217 131.084 5.5694 131.195 5.83329C131.32 6.12495 131.39 6.18051 131.376 6.1944C130.778 7.05551 130.028 8.15273 129.834 8.45829C129.515 8.9444 129.334 9.23606 129.223 9.41662L129.001 7.77773L128.89 6.76384C128.848 6.30551 128.792 5.95829 128.765 5.73606C128.723 5.45829 128.695 5.1944 128.653 4.9444C128.528 4.12495 128.556 4.26384 128.084 4.26384C127.765 4.26384 127.07 4.4444 126.723 4.49995C125.709 4.68051 126.14 5.40273 126.278 6.1944C126.348 6.61107 126.39 6.80551 126.417 6.91662C126.667 9.02773 126.792 10.9305 126.778 12.5833C126.765 12.8333 126.751 13.0833 126.751 13.3333C126.737 13.6388 126.709 14.3472 126.737 14.5555C126.848 15.1805 127.403 15.0416 128.32 15.0416C128.806 15.0416 129.14 15.0694 129.195 14.9305C129.334 14.5416 129.848 13.4444 130.57 11.9027C131.001 11 131.473 9.99995 131.973 9.16662C132.126 8.93051 132.265 8.68051 132.292 8.65273C132.306 8.66662 132.667 9.37495 132.695 9.41662C132.876 9.6944 133.542 11.1666 134.112 12.4722C135.001 14.5138 135.195 15.9166 135.917 15.6805C136.681 15.4305 137.32 15.4583 137.265 14.8472C137.195 14.0138 137.445 12.9861 137.473 12.7222L138.001 9.87495C138.431 7.20829 138.778 5.51384 138.806 4.68051C138.834 4.5694 138.862 3.98606 138.862 3.88884Z" fill="#030064"/>
<path d="M128.57 4.18048C127.709 4.13882 126.862 4.41659 126.028 4.55548C125.917 4.56937 125.959 4.73604 126.07 4.72215C126.889 4.59715 127.723 4.31937 128.57 4.36104C128.681 4.36104 128.681 4.19437 128.57 4.18048Z" fill="#030064"/>
<path d="M132.862 5.01396C132.598 5.0834 132.334 5.16673 132.07 5.25006C131.834 5.3334 131.612 5.41673 131.389 5.51396C131.292 5.55562 131.334 5.72229 131.431 5.68062C131.653 5.5834 131.889 5.50007 132.112 5.41673C132.375 5.3334 132.639 5.25006 132.903 5.18062C133.014 5.13895 132.959 4.97229 132.862 5.01396Z" fill="#030064"/>
<path d="M137.043 15.3332C136.779 15.4026 136.515 15.486 136.252 15.5693C136.015 15.6526 135.793 15.736 135.571 15.8332C135.474 15.8749 135.515 16.0415 135.613 15.9999C135.835 15.9026 136.071 15.8193 136.293 15.736C136.557 15.6526 136.821 15.5693 137.085 15.4999C137.196 15.4721 137.154 15.3054 137.043 15.3332Z" fill="#030064"/>
<path d="M131.626 6.15263C131.584 6.0693 131.529 5.97208 131.487 5.88875C131.417 5.77764 131.348 5.66653 131.279 5.55541C131.251 5.51375 131.195 5.49986 131.154 5.52763C131.112 5.55541 131.098 5.61097 131.126 5.65264C131.195 5.76375 131.265 5.87486 131.334 5.98597C131.39 6.0693 131.431 6.16653 131.473 6.24986C131.501 6.29153 131.556 6.30542 131.598 6.27764C131.626 6.24986 131.64 6.1943 131.626 6.15263Z" fill="#030064"/>
<path d="M135.695 15.8055C135.64 15.7638 135.556 15.625 135.515 15.5555C135.404 15.375 135.306 15.1944 135.209 15C134.918 14.4583 134.654 13.9027 134.39 13.3472C133.82 12.1388 133.265 10.9166 132.723 9.68051C132.584 9.36106 132.418 9.02773 132.306 8.68051C132.279 8.5694 132.112 8.62495 132.14 8.72217C132.223 9.01384 132.362 9.29162 132.487 9.56939C132.723 10.1388 132.973 10.6944 133.223 11.25C133.779 12.5 134.348 13.7499 134.987 14.9722C135.098 15.1944 135.223 15.4166 135.348 15.6388C135.418 15.75 135.487 15.8888 135.598 15.9583C135.709 16.0138 135.793 15.8749 135.695 15.8055Z" fill="#030064"/>
<path d="M125.889 4.62489C125.945 4.77767 125.973 4.93045 126.001 5.08323C126.042 5.34712 126.07 5.611 126.098 5.87489C126.181 6.63878 126.237 7.41656 126.278 8.19434C126.389 9.87489 126.473 11.5554 126.57 13.236C126.598 13.7221 126.598 14.2221 126.681 14.7082C126.695 14.8193 126.862 14.7777 126.848 14.6666C126.778 14.2916 126.778 13.8332 126.751 13.4443C126.709 12.6804 126.667 11.9166 126.626 11.1527C126.528 9.47211 126.445 7.77767 126.292 6.09711C126.264 5.77767 126.223 5.45823 126.181 5.13878C126.153 4.95823 126.139 4.76378 126.056 4.59712C126.014 4.486 125.848 4.52767 125.889 4.62489Z" fill="#030064"/>
<path d="M136.668 3.56944C136.418 4.31944 136.14 5.05556 135.862 5.79167C135.501 6.75 135.126 7.72222 134.682 8.65278C134.557 8.93055 134.418 9.29167 134.182 9.5C134.098 9.56944 134.223 9.69444 134.307 9.625C134.501 9.44444 134.626 9.16666 134.751 8.93055C134.96 8.51389 135.14 8.08333 135.321 7.65278C135.737 6.66667 136.112 5.66667 136.473 4.66667C136.598 4.31944 136.723 3.98611 136.835 3.63889C136.876 3.5 136.71 3.45833 136.668 3.56944Z" fill="#030064"/>
<path d="M136.556 3.22211C136.417 3.47211 136.334 3.76378 136.236 4.04156C136.084 4.51378 135.945 4.986 135.806 5.45822C135.5 6.49989 135.223 7.55545 134.945 8.611C134.848 8.97211 134.764 9.31934 134.681 9.68045C134.653 9.79156 134.82 9.83322 134.848 9.72211C135.028 8.94434 135.236 8.16656 135.445 7.40267C135.723 6.361 136 5.31934 136.334 4.29156C136.431 3.97211 136.528 3.611 136.695 3.31934C136.764 3.20822 136.611 3.12489 136.556 3.22211Z" fill="#030064"/>
<path d="M129.25 15.0832C130.153 13.0276 131.098 10.9859 132.25 9.05538C132.306 8.95816 132.153 8.87483 132.098 8.97205C130.945 10.9026 130 12.9443 129.098 14.9998C129.056 15.097 129.195 15.1804 129.25 15.0832Z" fill="#030064"/>
<path d="M125.043 13.9447L124.279 12.3891C123.599 11.0141 122.988 9.61133 122.432 8.19466L120.779 3.93077C120.529 3.37521 120.724 3.23633 120.238 3.23633C119.946 3.23633 118.515 3.29188 118.279 3.43077C117.904 3.66688 118.168 3.88911 118.238 4.30577C118.265 4.43077 118.293 4.55577 118.349 4.69466L116.501 9.18077C116.029 10.3197 115.293 11.7502 114.404 13.4724C114.057 14.153 114.002 14.4169 114.043 14.4586C114.321 14.7086 114.474 14.8474 114.779 14.9863C115.21 15.1808 115.182 15.1669 115.488 15.2224C116.071 15.3197 115.988 15.0697 116.377 14.8613C118.14 13.9585 119.835 13.2224 121.349 12.8335C121.849 14.0697 122.154 14.8336 122.293 15.0974C122.613 15.7224 123.029 16.028 123.515 16.028C123.918 16.028 123.96 16.0141 124.418 15.8891C125.835 15.5141 125.946 15.7224 125.043 13.9447ZM120.668 11.0558C119.724 11.2086 118.807 11.4308 117.918 11.7085C118.557 10.153 119.085 8.84744 119.488 7.84744C119.863 8.90299 120.251 9.97244 120.668 11.0558Z" fill="#030064"/>
<path d="M118.764 5.20865C118.597 4.97254 118.486 4.69476 118.389 4.41698C118.264 4.05587 118.166 3.69476 118.111 3.31976C118.097 3.20865 117.93 3.25031 117.944 3.36143C118 3.75031 118.097 4.12531 118.236 4.48642C118.333 4.7642 118.458 5.04198 118.625 5.29198C118.68 5.3892 118.819 5.29198 118.764 5.20865Z" fill="#030064"/>
<path d="M121.709 12.9305C120 13.4028 118.264 13.9305 116.653 14.6944C116.389 14.8194 116.125 14.9583 115.875 15.1111C115.778 15.1666 115.861 15.3194 115.959 15.2639C116.625 14.8472 117.375 14.5416 118.125 14.2639C119.306 13.8194 120.528 13.4444 121.75 13.0972C121.861 13.0694 121.82 12.8889 121.709 12.9305Z" fill="#030064"/>
<path d="M125.083 15.736C124.792 15.8055 124.5 15.8749 124.208 15.9166C123.833 15.9721 123.458 15.9721 123.083 15.986C122.972 15.986 122.972 16.1666 123.083 16.1527C123.472 16.1527 123.861 16.1388 124.236 16.0832C124.542 16.0416 124.833 15.9721 125.139 15.9027C125.236 15.8749 125.194 15.7082 125.083 15.736Z" fill="#030064"/>
<path d="M120.626 3.12508C120.224 3.11119 119.835 3.06953 119.432 3.06953C118.946 3.05564 118.46 3.0973 117.974 3.18064C117.862 3.19452 117.904 3.36119 118.015 3.3473C118.487 3.27786 118.974 3.23619 119.46 3.25008C119.849 3.26397 120.224 3.29175 120.612 3.30564C120.737 3.30564 120.737 3.12508 120.626 3.12508Z" fill="#030064"/>
<path d="M119.625 7.25002C119.486 7.88891 119.264 8.51391 119.056 9.12502C118.792 9.91668 118.514 10.7084 118.167 11.4722C118.056 11.7222 117.945 12 117.764 12.2083C117.695 12.2917 117.806 12.4167 117.889 12.3333C118.056 12.1528 118.153 11.9167 118.25 11.7083C118.417 11.3611 118.556 11.0139 118.695 10.6528C119 9.84724 119.278 9.0278 119.542 8.20835C119.639 7.9028 119.722 7.61113 119.792 7.30557C119.82 7.19446 119.653 7.13891 119.625 7.25002Z" fill="#030064"/>
<path d="M120.612 3.36103C120.737 3.86103 120.974 4.34714 121.168 4.83325C121.557 5.77769 121.946 6.72214 122.335 7.66659C123.21 9.74992 124.085 11.8333 124.96 13.9166C125.196 14.486 125.46 15.0555 125.668 15.6388C125.71 15.7499 125.876 15.6944 125.835 15.5971C125.668 15.111 125.446 14.6388 125.251 14.1527C124.862 13.2083 124.46 12.2777 124.071 11.3333C123.196 9.24992 122.307 7.16658 121.46 5.06936C121.307 4.68047 121.154 4.30547 121.001 3.91659C120.918 3.72214 120.835 3.51381 120.779 3.30547C120.751 3.20825 120.585 3.24992 120.612 3.36103Z" fill="#030064"/>
<path d="M117.611 6.34716C117.459 6.7916 117.25 7.22216 117.056 7.65271C116.764 8.27771 116.459 8.90271 116.153 9.52771C115.542 10.7777 114.917 12.0138 114.334 13.2777C114.236 13.486 114.125 13.7083 114.042 13.9305C114 14.0416 113.931 14.1666 113.917 14.2777C113.903 14.3888 114.07 14.4305 114.084 14.3194C114.097 14.2222 114.153 14.1249 114.181 14.0416C114.264 13.861 114.347 13.6666 114.431 13.486C114.695 12.9305 114.959 12.3888 115.222 11.8333C115.861 10.5138 116.514 9.20827 117.139 7.88882C117.361 7.40271 117.611 6.90271 117.778 6.40271C117.806 6.27771 117.639 6.23605 117.611 6.34716Z" fill="#030064"/>
<path d="M113.931 14.5697C114.223 14.7503 114.528 14.917 114.848 15.0836C115.153 15.2364 115.459 15.3892 115.778 15.4864C115.89 15.5142 115.931 15.3475 115.82 15.3197C115.501 15.2364 115.195 15.0697 114.903 14.9308C114.598 14.7781 114.306 14.6114 114.015 14.4308C113.931 14.3614 113.834 14.5142 113.931 14.5697Z" fill="#030064"/>
<path d="M121.403 13.111C121.625 13.6666 121.889 14.2083 122.153 14.736C122.306 15.0694 122.473 15.3888 122.639 15.7221C122.75 15.9305 122.861 16.1388 123 16.3194C123.07 16.4027 123.195 16.2777 123.125 16.1944C122.986 16.0138 122.889 15.8055 122.778 15.5971C122.611 15.2777 122.459 14.9583 122.306 14.6388C122.056 14.111 121.792 13.5971 121.584 13.0555C121.528 12.9583 121.361 12.9999 121.403 13.111Z" fill="#030064"/>
<path d="M112.054 13.8053C111.166 13.0969 110.124 12.347 108.846 11.7358C111.221 10.0553 112.443 8.38862 112.513 6.76362C112.527 6.56917 112.513 6.38862 112.485 6.20806C112.318 5.24973 111.61 4.54139 110.374 4.08306C109.513 3.77751 108.513 3.61084 107.402 3.61084C105.763 3.61084 103.791 3.99973 102.388 4.43028C101.777 4.61084 101.902 4.86084 102.138 5.4164C102.263 5.72195 102.346 6.06917 102.582 6.22195C102.902 6.43028 102.93 6.40251 102.971 6.4164C103.027 8.76362 102.652 13.8886 102.638 14.2358C102.61 14.6525 102.568 15.2497 102.985 15.3053C103.707 15.3608 103.818 15.347 104.166 15.347C105.027 15.347 105.485 14.7775 105.554 13.6525C105.541 13.5136 105.541 13.4997 105.916 13.472C105.999 13.472 106.346 13.4303 106.429 13.4303C107.166 13.4164 106.818 13.2497 107.763 13.972C108.777 14.722 109.638 15.3886 110.332 15.9581C110.652 16.2219 110.957 16.5136 111.207 16.1803C111.457 15.8608 112.902 14.4858 112.513 14.1525C112.249 13.9581 112.429 14.0969 112.054 13.8053ZM109.11 5.83306C109.541 5.99973 109.777 6.30528 109.832 6.63862C109.943 7.30528 109.457 7.94417 108.291 8.95806C107.513 9.61084 106.61 10.1664 105.568 10.5414C105.554 9.22195 105.513 7.70806 105.429 5.93029C106.457 5.69417 107.235 5.65251 107.929 5.65251C108.374 5.6664 108.777 5.70806 109.11 5.83306Z" fill="#030064"/>
<path d="M102.86 6.5276C102.693 6.2776 102.568 5.98594 102.471 5.70816C102.346 5.34705 102.249 4.95816 102.179 4.56927C102.165 4.45816 101.999 4.49983 102.013 4.61094C102.068 5.01372 102.179 5.4026 102.304 5.7776C102.401 6.06927 102.526 6.34705 102.693 6.61094C102.763 6.70816 102.915 6.62483 102.86 6.5276Z" fill="#030064"/>
<path d="M105.333 15.2363C105.514 14.639 105.611 13.9863 105.527 13.3613C105.514 13.2502 105.347 13.2918 105.361 13.4029C105.444 14.0002 105.333 14.6251 105.166 15.1946C105.125 15.3057 105.305 15.3474 105.333 15.2363Z" fill="#030064"/>
<path d="M104.832 6.15268C104.47 6.19434 104.109 6.2499 103.762 6.31935C103.443 6.38879 103.137 6.43046 102.818 6.47212C102.707 6.48601 102.707 6.65268 102.818 6.63879C103.498 6.56934 104.165 6.38879 104.845 6.31935C104.943 6.30546 104.943 6.13879 104.832 6.15268Z" fill="#030064"/>
<path d="M105.555 15.1248C105.083 15.1803 104.625 15.222 104.153 15.222C103.722 15.222 103.278 15.1803 102.847 15.1526C102.736 15.1387 102.736 15.3192 102.847 15.3192C103.278 15.347 103.722 15.3887 104.153 15.3887C104.625 15.3887 105.083 15.347 105.555 15.2915C105.666 15.2915 105.666 15.1109 105.555 15.1248Z" fill="#030064"/>
<path d="M112.874 14.4858C112.694 14.7497 112.499 14.9997 112.291 15.2358C111.93 15.6525 111.555 16.0553 111.166 16.4303C111.083 16.5136 111.208 16.6247 111.291 16.5553C111.694 16.1664 112.069 15.7636 112.43 15.347C112.638 15.097 112.847 14.847 113.027 14.5831C113.083 14.4858 112.93 14.4025 112.874 14.4858Z" fill="#030064"/>
<path d="M102.958 7.06917C102.889 8.11084 102.875 9.15251 102.833 10.1942C102.792 11.5136 102.75 12.847 102.694 14.1664C102.68 14.4025 102.68 14.6386 102.667 14.8747C102.667 14.9581 102.653 15.0275 102.653 15.1108C102.653 15.1386 102.653 15.1664 102.653 15.1942C102.653 15.2081 102.639 15.2636 102.653 15.2358C102.639 15.347 102.805 15.3886 102.819 15.2775C102.861 14.9858 102.861 14.6803 102.875 14.3886C102.903 13.8053 102.917 13.2081 102.944 12.6247C102.986 11.2497 103.028 9.87473 103.083 8.51362C103.097 8.02751 103.111 7.55528 103.139 7.06917C103.139 6.95806 102.958 6.95806 102.958 7.06917Z" fill="#030064"/>
<path d="M105.484 6.02765C105.595 6.47209 105.609 6.94431 105.623 7.40265C105.665 8.12487 105.679 8.84709 105.692 9.56931C105.706 11.0693 105.706 12.5693 105.609 14.0554C105.595 14.3193 105.567 14.5971 105.526 14.861C105.512 14.9443 105.498 15.0276 105.47 15.1249C105.456 15.1665 105.429 15.236 105.429 15.2499C105.359 15.3332 105.484 15.4582 105.554 15.3749C105.623 15.2776 105.651 15.1526 105.665 15.0415C105.706 14.8332 105.734 14.611 105.748 14.3888C105.804 13.7221 105.831 13.0554 105.845 12.3888C105.887 10.8054 105.887 9.22209 105.804 7.65265C105.776 7.11098 105.762 6.54154 105.637 5.99987C105.623 5.87487 105.456 5.91654 105.484 6.02765Z" fill="#030064"/>
<path d="M113.082 14.5414C112.541 14.0692 111.999 13.6109 111.43 13.1803C110.61 12.5692 109.763 11.9997 108.916 11.4303C108.819 11.3747 108.735 11.5136 108.832 11.5831C109.666 12.1525 110.513 12.7081 111.319 13.3053C111.888 13.7359 112.43 14.1942 112.957 14.6664C113.055 14.7359 113.18 14.6247 113.082 14.5414Z" fill="#030064"/>
<path d="M111.235 16.4167C109.888 15.5139 108.61 14.5417 107.277 13.625C107.027 13.4584 106.791 13.2917 106.527 13.1389C106.43 13.0834 106.347 13.2361 106.444 13.2917C106.972 13.6111 107.472 13.9723 107.972 14.3334C108.68 14.8334 109.374 15.3334 110.083 15.8334C110.43 16.0834 110.791 16.3334 111.152 16.5695C111.235 16.625 111.333 16.4723 111.235 16.4167Z" fill="#030064"/>
<path d="M105.596 10.5834C106.485 10.2361 107.346 9.80558 108.11 9.22225C108.651 8.80558 109.179 8.33336 109.526 7.72225C109.748 7.33336 109.901 6.84725 109.707 6.4167C109.498 5.94447 108.971 5.75003 108.498 5.68058C107.429 5.50003 106.304 5.73614 105.276 6.00003C105.165 6.02781 105.221 6.19447 105.318 6.16669C106.235 5.93058 107.207 5.73614 108.165 5.80558C108.623 5.84725 109.221 5.95836 109.485 6.37503C109.721 6.73614 109.596 7.18059 109.415 7.52781C109.123 8.08336 108.651 8.54169 108.165 8.93058C107.373 9.55558 106.471 10.0278 105.526 10.3889C105.457 10.4445 105.498 10.625 105.596 10.5834Z" fill="#030064"/>
<path d="M112.513 7.77772C112.972 6.91661 112.874 5.90272 112.277 5.13883C111.402 4.02772 109.847 3.6805 108.499 3.61105C107.194 3.54161 105.874 3.72216 104.597 4.01383C104.486 4.04161 104.527 4.20828 104.638 4.1805C106.513 3.76383 108.638 3.49994 110.486 4.15272C111.458 4.49994 112.416 5.20828 112.597 6.27772C112.68 6.76383 112.583 7.26383 112.347 7.69439C112.319 7.79161 112.472 7.87494 112.513 7.77772Z" fill="#030064"/>
<path d="M97.5276 4.6527C95.7915 4.04159 93.986 3.66659 91.4582 3.45825C90.6249 3.38881 90.4999 3.47214 90.3749 3.54159C89.9304 3.7777 90.0832 5.05548 90.1804 5.22214C90.2777 5.37492 90.6804 5.47214 90.986 5.5277C91.0138 7.33325 90.6526 14.486 90.7082 15.611C91.6804 15.4721 95.3749 16.9444 99.986 12.4305C101.611 10.8055 102.014 8.41659 100.986 7.01381C100.403 6.22214 99.5971 5.38881 97.5276 4.6527ZM98.8888 9.16659C98.4443 11.0416 94.9721 13.3471 93.2499 13.0971C93.236 11.736 93.486 7.58325 93.4165 5.95825C95.1249 6.22214 96.0415 6.49992 96.9165 6.86103C98.3332 7.44436 99.111 8.24992 98.8888 9.16659Z" fill="#030064"/>
<path d="M89.9999 5.38867C90.2361 4.77756 90.3055 4.12478 90.236 3.47201C90.2222 3.36089 90.0555 3.36089 90.0694 3.47201C90.1388 4.11089 90.0694 4.74978 89.8472 5.34701C89.7916 5.45812 89.9583 5.49978 89.9999 5.38867Z" fill="#030064"/>
<path d="M101.125 7.79132C101.389 8.73577 101.417 9.72188 101.097 10.6524C100.806 11.5274 100.25 12.2913 99.5834 12.9302C98.0973 14.333 96.0834 15.1385 94.0834 15.4719C92.9723 15.6524 91.8334 15.6941 90.7223 15.4997C90.6112 15.4858 90.5695 15.6524 90.6806 15.6663C92.7362 16.0274 94.9306 15.6663 96.8473 14.8608C98.6389 14.1108 100.403 12.8469 101.167 10.9997C101.583 9.95799 101.611 8.83299 101.306 7.76354C101.264 7.63854 101.097 7.68021 101.125 7.79132Z" fill="#030064"/>
<path d="M92.7635 5.87465C92.319 5.79132 91.8607 5.73576 91.4024 5.66632C90.9301 5.58298 90.4718 5.45798 90.0274 5.26354C89.9301 5.22187 89.8329 5.36076 89.944 5.41632C90.3885 5.61076 90.8329 5.74965 91.319 5.83298C91.7913 5.91632 92.2635 5.95798 92.7218 6.05521C92.8329 6.05521 92.8746 5.88854 92.7635 5.87465Z" fill="#030064"/>
<path d="M98.9303 8.97201C98.7914 9.79145 98.0414 10.472 97.4442 10.972C96.6109 11.6526 95.6526 12.222 94.6387 12.597C94.1387 12.7776 93.6248 12.9165 93.097 12.9442C92.9859 12.9442 92.9859 13.1248 93.097 13.1109C94.1248 13.0692 95.1248 12.6387 96.0137 12.1387C96.9303 11.6248 97.8331 10.9859 98.4998 10.1526C98.7637 9.81923 99.0276 9.43034 99.097 9.01368C99.1109 8.91645 98.9442 8.8609 98.9303 8.97201Z" fill="#030064"/>
<path d="M93.2645 8.05527C93.3617 8.76361 93.3756 9.49972 93.4173 10.2081C93.4589 11.1108 93.4867 12.0275 93.445 12.9442C93.4312 13.2358 93.4312 13.5692 93.3339 13.8608C93.2923 13.9719 93.4589 14.0136 93.5006 13.9025C93.5839 13.6664 93.5978 13.3886 93.6117 13.1247C93.6395 12.6942 93.6395 12.2775 93.6395 11.8469C93.6395 10.9025 93.5978 9.97194 93.5423 9.02749C93.5145 8.68027 93.5006 8.34694 93.445 8.01361C93.4173 7.9025 93.2506 7.94416 93.2645 8.05527Z" fill="#030064"/>
<path d="M90.9158 8.97201C90.763 9.88868 90.7214 10.8192 90.6658 11.7359C90.6102 12.7359 90.5547 13.7359 90.5547 14.7359C90.5547 14.8887 90.5547 15.0553 90.5686 15.222C90.5686 15.3053 90.5686 15.3887 90.6102 15.4581C90.6658 15.5553 90.8047 15.472 90.763 15.3748C90.7769 15.4026 90.763 15.347 90.763 15.3331C90.763 15.2915 90.7491 15.2498 90.7491 15.2081C90.7491 15.0692 90.7352 14.9303 90.7352 14.7915C90.7352 14.3609 90.7491 13.9303 90.763 13.5137C90.8047 12.4581 90.8602 11.4165 90.9436 10.3609C90.9852 9.91645 91.013 9.45812 91.0963 9.01368C91.0963 8.91645 90.9297 8.8609 90.9158 8.97201Z" fill="#030064"/>
<path d="M101.527 8.59679C101.457 7.90234 101.263 7.2079 100.874 6.62457C100.499 6.04123 99.9852 5.5829 99.4019 5.22179C97.8602 4.27734 95.9852 3.94401 94.2213 3.72179C92.8602 3.55512 91.4991 3.4579 90.138 3.40234C90.0269 3.40234 90.0269 3.56901 90.138 3.56901C92.3186 3.66623 94.5269 3.80512 96.6519 4.3329C98.0825 4.68012 99.6241 5.24957 100.541 6.4579C101.013 7.0829 101.263 7.81901 101.346 8.59679C101.36 8.69401 101.541 8.7079 101.527 8.59679Z" fill="#030064"/>
<path d="M88.2213 9.83346C88.1935 7.23624 88.1657 5.47235 88.1657 4.86124C88.1102 4.45846 88.2213 4.13902 87.9991 3.95846C87.8185 3.7918 87.4435 3.77791 87.0546 3.73624C85.9852 3.61124 85.4018 3.55569 85.3324 3.9168C85.2491 4.4168 85.2352 12.1668 85.2352 12.8474C85.2491 14.264 85.2352 14.4585 85.2352 14.5557C85.2213 15.014 85.1657 15.3196 85.4852 15.5279C85.7768 15.7362 86.4157 15.7362 86.7629 15.7224C87.5963 15.6946 87.9435 15.7223 88.1518 15.1112C88.3185 14.6529 88.2491 13.5279 88.2352 12.2918L88.2213 9.83346Z" fill="#030064"/>
<path d="M85.1388 15.6252C85.0971 15.2085 85.1527 14.7641 85.1666 14.3474C85.2082 13.5279 85.2499 12.7085 85.3054 11.9029C85.4166 9.94461 85.5416 7.98627 85.5832 6.01405C85.5971 5.23627 85.6249 4.44461 85.5555 3.66683C85.5416 3.55572 85.3749 3.55572 85.3888 3.66683C85.4443 4.3335 85.4304 5.02794 85.4304 5.69461C85.4166 6.63905 85.3749 7.5835 85.3193 8.52794C85.236 10.3752 85.111 12.2363 85.0138 14.0835C84.986 14.5835 84.9166 15.1113 84.9721 15.5974C84.9721 15.7363 85.1527 15.7363 85.1388 15.6252Z" fill="#030064"/>
<path d="M88.0137 15.4306C87.4442 15.514 86.8748 15.5556 86.3053 15.5417C85.8609 15.5279 85.4164 15.4584 84.972 15.4306C84.8609 15.4167 84.8609 15.5973 84.972 15.5973C85.4303 15.6251 85.8887 15.6945 86.347 15.7084C86.9303 15.7362 87.4998 15.6806 88.0692 15.5973C88.1664 15.5834 88.1248 15.4029 88.0137 15.4306Z" fill="#030064"/>
<path d="M87.8756 3.69461C87.4451 3.69461 87.0007 3.68072 86.5701 3.65294C86.2229 3.63906 85.8757 3.59739 85.5423 3.56961C85.4312 3.55572 85.4312 3.73628 85.5423 3.73628C85.8895 3.76405 86.2229 3.79183 86.5701 3.81961C87.0007 3.84739 87.4451 3.84739 87.8756 3.86128C87.9868 3.87516 87.9868 3.7085 87.8756 3.69461Z" fill="#030064"/>
<path d="M83.1382 12.0553C83.1243 12.0553 83.1105 12.0414 83.0827 12.0414C82.7077 11.9303 82.166 11.8747 81.4577 11.8747C79.9994 11.8747 78.0271 12.2914 76.5827 12.7497V9.36082C76.4993 6.97193 76.6521 4.97193 76.6243 4.2636C76.6105 3.97193 76.6105 3.61082 76.4577 3.56915C76.291 3.49971 74.3605 3.30526 74.0827 3.73582C73.9993 3.84693 74.0271 4.31915 74.0132 4.5136C74.0132 4.68026 73.8466 12.9025 73.791 14.5414C73.791 14.708 73.8049 14.8192 73.8049 14.9025C73.7632 15.6664 74.0271 16.1386 75.3882 15.8747C75.666 15.8608 76.0688 15.6803 76.7216 15.5136C77.7493 15.2497 78.1521 15.1386 78.2632 15.0969C79.8605 14.6803 79.9438 14.6108 81.1799 14.4858C81.3188 14.4719 82.3743 14.3886 82.6799 14.4164C82.8466 14.4303 82.9716 14.4303 83.0966 14.4442C83.5966 14.4858 83.5549 12.1803 83.1382 12.0553Z" fill="#030064"/>
<path d="M76.8744 12.944C76.9021 12.5273 76.8883 12.1107 76.8744 11.7079C76.8466 11.0273 76.8188 10.3607 76.7632 9.68011C76.666 8.22178 76.541 6.76345 76.291 5.33289C76.2077 4.88844 76.1521 4.34678 75.8882 3.97178C75.8188 3.87456 75.6799 3.97178 75.7355 4.05511C75.9577 4.37456 76.0132 4.83289 76.0827 5.20789C76.2077 5.86067 76.291 6.52733 76.3744 7.194C76.5271 8.62456 76.6382 10.069 76.6938 11.5134C76.7077 11.9857 76.7355 12.4718 76.7077 12.944C76.6938 13.0551 76.8605 13.0551 76.8744 12.944Z" fill="#030064"/>
<path d="M77.0406 12.8747C77.0406 11.8608 77.0129 10.8331 76.9712 9.81918C76.9295 8.40251 76.874 6.98585 76.749 5.56918C76.7073 5.06918 76.6795 4.55529 76.5545 4.06918C76.5268 3.95807 76.3601 4.01362 76.3879 4.11085C76.499 4.52751 76.5268 4.95807 76.5684 5.37474C76.624 6.0414 76.6657 6.69418 76.7073 7.36084C76.7768 8.74973 76.8184 10.1386 76.8601 11.5275C76.874 11.972 76.874 12.4303 76.8879 12.8747C76.8601 12.9858 77.0406 12.9858 77.0406 12.8747Z" fill="#030064"/>
<path d="M74.0131 13.9857C74.0131 12.7496 74.0687 11.4996 74.0965 10.2635C74.152 8.6524 74.1937 7.0274 74.2492 5.41629C74.2631 4.81907 74.2909 4.22184 74.2909 3.63851C74.2909 3.5274 74.1242 3.5274 74.1242 3.63851C74.1104 4.9024 74.0548 6.18018 74.0131 7.44407C73.9576 9.05518 73.9159 10.6663 73.8742 12.2774C73.8604 12.8468 73.8465 13.4302 73.8465 13.9996C73.8326 14.0968 74.0131 14.0968 74.0131 13.9857Z" fill="#030064"/>
<path d="M83.3184 14.4303C83.4156 14.097 83.4712 13.7498 83.5129 13.4164C83.5823 12.9164 83.5962 12.4025 83.5129 11.9164C83.499 11.8053 83.3323 11.847 83.3462 11.9581C83.4295 12.4442 83.4018 12.9303 83.3323 13.4164C83.2907 13.7359 83.2351 14.0692 83.1379 14.3887C83.1101 14.4859 83.2768 14.5414 83.3184 14.4303Z" fill="#030064"/>
<path d="M83.0697 11.6111C81.4308 11.6944 79.8058 11.9167 78.1808 12.1389C77.8058 12.1944 77.4169 12.25 77.0419 12.3056C76.9308 12.3194 76.9725 12.4861 77.0836 12.4722C78.6947 12.1944 80.3197 12.0278 81.9447 11.875C82.3197 11.8333 82.6947 11.8056 83.0558 11.7917C83.1808 11.7778 83.1808 11.5972 83.0697 11.6111Z" fill="#030064"/>
<path d="M74.1237 3.76366C74.4709 3.66644 74.8182 3.61088 75.1654 3.56922C75.4432 3.54144 75.7348 3.49977 76.0265 3.51366C76.1376 3.51366 76.1376 3.347 76.0265 3.347C75.7348 3.33311 75.4293 3.37477 75.1376 3.40255C74.7765 3.44422 74.4154 3.49977 74.0682 3.597C73.9709 3.62477 74.0126 3.79144 74.1237 3.76366Z" fill="#030064"/>
<path d="M83.6378 12.0691C83.5684 11.9163 83.2767 11.9025 83.1378 11.8886C82.7628 11.833 82.3879 11.833 82.0129 11.833C80.9156 11.833 79.8323 11.9163 78.749 12.0552C78.1656 12.1247 77.5684 12.2219 76.999 12.3608C76.8878 12.3886 76.9295 12.5552 77.0406 12.5275C78.0545 12.2913 79.0962 12.1663 80.124 12.083C81.0406 12.0136 81.9573 11.958 82.874 12.0275C83.0267 12.0413 83.1656 12.0552 83.3184 12.083C83.3601 12.0969 83.4017 12.0969 83.4434 12.1247C83.4851 12.1386 83.4851 12.1525 83.4851 12.1525C83.5406 12.2636 83.6795 12.1802 83.6378 12.0691Z" fill="#030064"/>
<path d="M72.9449 14.8333C72.9171 14.7083 72.8893 14.5971 72.8477 14.4999L72.0421 12.861C71.3338 11.4166 70.681 9.93048 70.0977 8.44437L68.3615 3.95826C68.3338 3.87492 68.0143 3.59715 67.6254 3.36103C67.431 3.24992 67.4449 3.24992 67.0282 3.34715C66.7088 3.41659 66.2643 3.56937 65.6254 3.83326C65.5421 4.01381 65.6532 4.13881 65.6949 4.37492C65.7227 4.49992 65.7504 4.63881 65.806 4.7777L63.8615 9.48603C63.3615 10.6805 62.6254 12.1944 61.6532 13.9999C61.5282 14.2221 61.4727 14.4305 61.4727 14.6388C61.7227 15.1388 63.181 15.8055 63.3893 15.6388C63.5421 15.5277 63.8754 15.236 64.0838 14.861C65.7365 14.236 67.3754 13.7221 68.9727 13.3194C69.5004 14.6388 69.8199 15.4166 69.9588 15.7083C70.0977 15.9721 70.2504 16.1805 70.4171 16.3333C70.7504 16.4721 72.1532 16.3194 72.7088 15.8471C72.931 15.5416 73.0143 15.1944 72.9449 14.8333ZM65.3477 12.1388C66.0282 10.4999 66.5699 9.13881 66.9865 8.08326C67.3893 9.19437 67.806 10.3194 68.2365 11.4583C67.2504 11.611 66.2782 11.8471 65.3477 12.1388Z" fill="#030064"/>
<path d="M68.2215 12.0556C68.1521 11.6667 68.0132 11.2778 67.8882 10.8889C67.6938 10.2501 67.4854 9.62505 67.2771 9.00005C66.8326 7.66672 66.3743 6.33339 65.9576 5.00006C65.8743 4.75006 65.8049 4.51395 65.7354 4.26395C65.6938 4.13895 65.6521 3.95839 65.6382 3.86117C65.6243 3.75005 65.4576 3.75005 65.4715 3.86117C65.4993 4.18061 65.6382 4.50006 65.7354 4.8195C65.916 5.41672 66.1243 6.01395 66.3188 6.61117C66.7771 7.98617 67.2354 9.34728 67.6799 10.7223C67.8188 11.1806 67.9854 11.6389 68.0826 12.1112C68.0687 12.2223 68.2354 12.1667 68.2215 12.0556Z" fill="#030064"/>
<path d="M61.3745 14.6111C61.5828 14.1111 61.8189 13.6249 62.055 13.1527C62.43 12.3611 62.8189 11.5833 63.1939 10.7916C63.9717 9.19439 64.7634 7.59717 65.4717 5.97217C65.5967 5.69439 65.7217 5.41661 65.8328 5.12494C65.8884 4.98605 65.9717 4.83328 65.9578 4.6805C65.9578 4.56939 65.7772 4.56939 65.7911 4.6805C65.7911 4.76383 65.7217 4.9305 65.68 5.02772C65.5828 5.27772 65.4856 5.51383 65.3745 5.74994C65.055 6.47217 64.7217 7.1805 64.3884 7.88883C63.5967 9.5555 62.7911 11.1944 61.9856 12.8611C61.7217 13.4166 61.43 13.9861 61.2078 14.5555C61.1661 14.6666 61.3328 14.7083 61.3745 14.6111Z" fill="#030064"/>
<path d="M61.3187 14.6528C61.652 14.9861 62.027 15.2778 62.4159 15.5417C62.5826 15.6528 62.7492 15.7639 62.9159 15.8472C63.0131 15.9028 63.1242 15.9722 63.2492 15.9722C63.3603 15.9722 63.3603 15.8055 63.2492 15.8055C63.2492 15.8055 63.2353 15.8055 63.2076 15.7917C63.1798 15.7917 63.1659 15.7778 63.1381 15.7639C63.0687 15.7361 63.0131 15.7083 62.9576 15.6667C62.7909 15.5694 62.6381 15.4722 62.4715 15.3611C62.0965 15.1111 61.7492 14.8194 61.4298 14.5139C61.3603 14.4444 61.2353 14.5694 61.3187 14.6528Z" fill="#030064"/>
<path d="M63.1805 15.9026C63.2499 15.986 63.3472 15.861 63.4027 15.8193C63.5 15.7221 63.5972 15.611 63.7083 15.4999C63.9583 15.2221 64.2222 14.9443 64.4583 14.6387C64.5416 14.5276 64.6388 14.4165 64.6944 14.2915C64.7361 14.1943 64.5833 14.0971 64.5416 14.2082C64.4999 14.3054 64.4305 14.3887 64.375 14.4582C64.2777 14.5832 64.1666 14.7221 64.0555 14.8471C63.8333 15.0971 63.6111 15.361 63.375 15.5971C63.3333 15.6387 63.2916 15.6804 63.2499 15.7221C63.2361 15.736 63.2222 15.7499 63.2083 15.7637C63.2083 15.7637 63.1944 15.7637 63.1944 15.7776C63.2083 15.7499 63.2916 15.7637 63.3055 15.7776C63.2361 15.6943 63.1111 15.8193 63.1805 15.9026Z" fill="#030064"/>
<path d="M71.2625 11.4026C71.1653 11.0138 71.0403 10.6249 70.9153 10.236C70.7069 9.59709 70.4986 8.9582 70.2764 8.3332C69.8042 6.9582 69.3042 5.5832 68.7069 4.24987C68.5125 3.81931 68.3181 3.31931 67.9847 2.98598C67.9014 2.90264 67.7903 3.02764 67.8597 3.11098C68.1375 3.38875 68.3042 3.80542 68.4708 4.16653C68.7625 4.77764 69.0125 5.40264 69.2486 6.02764C69.7625 7.37487 70.2486 8.73598 70.6792 10.111C70.8181 10.5554 70.9708 10.9999 71.0819 11.4582C71.1236 11.5693 71.2903 11.5138 71.2625 11.4026Z" fill="#030064"/>
<path d="M66.1377 5.12489C66.1238 5.08323 66.1238 5.04156 66.1099 4.9999C66.1099 4.97212 66.1099 5.01378 66.1099 4.9999V4.98601C66.1099 4.97212 66.1099 4.97212 66.1099 4.95823C66.1099 4.93045 66.1099 4.91656 66.1099 4.90267C66.1099 4.87489 66.096 4.84712 66.0822 4.81934C66.0405 4.72212 65.9988 4.61101 65.971 4.51378C65.8599 4.22212 65.7627 3.94434 65.6655 3.65267C65.6238 3.54156 65.4572 3.59712 65.4988 3.69434C65.6377 4.08323 65.7627 4.45823 65.9155 4.84712C65.9294 4.87489 65.9294 4.91656 65.9572 4.94434C65.9572 4.95823 65.9572 4.91656 65.9572 4.93045C65.9572 4.94434 65.9572 4.94434 65.9572 4.95823C65.9572 5.02767 65.971 5.111 65.9849 5.18045C65.9988 5.27767 66.1655 5.23601 66.1377 5.12489Z" fill="#030064"/>
<path d="M69.8603 8.48599C69.8603 8.27766 69.8047 8.05544 69.7631 7.8471C69.6797 7.49988 69.5825 7.15266 69.4853 6.80544C69.2353 5.94432 68.9297 5.0971 68.5825 4.27766C68.4019 3.8471 68.2075 3.41655 67.9714 2.99988C67.9158 2.90266 67.7631 2.98599 67.8186 3.08321C68.2353 3.83321 68.5547 4.62488 68.8464 5.43044C69.1242 6.18044 69.3742 6.94433 69.5547 7.7221C69.6103 7.95821 69.6797 8.2221 69.6797 8.4721C69.6936 8.5971 69.8603 8.5971 69.8603 8.48599Z" fill="#030064"/>
<path d="M68.041 3.16634C68.1104 3.05523 68.0271 2.95801 67.9021 2.95801C67.7076 2.95801 67.5132 3.05523 67.3326 3.11078C66.7076 3.33301 66.0965 3.56912 65.4715 3.77745C65.3604 3.80523 65.416 3.9719 65.5132 3.94412C66.0549 3.77745 66.5826 3.56912 67.1104 3.37467C67.3049 3.30523 67.5132 3.2219 67.7215 3.16634C67.7771 3.15245 67.8465 3.13856 67.9021 3.12467C67.9299 3.12467 67.9299 3.12467 67.9299 3.12467C67.9299 3.13856 67.8882 3.06912 67.9021 3.06912C67.9021 3.06912 67.916 3.05523 67.8882 3.06912C67.8326 3.18023 67.9715 3.26356 68.041 3.16634Z" fill="#030064"/>
<path d="M60.2361 13.0694C60.1389 12.7916 60.0417 12.4027 59.7222 11.736C59.4583 11.1944 59.4444 10.8749 59.1111 11.0138C58.7361 11.1527 58.375 11.3333 57.9861 11.5416C56.5694 12.2638 55.6667 13.0277 53.8472 12.8888C52.4583 12.7777 51.6528 11.1666 51.5 10.5972C51.2222 9.52771 51.7917 8.48605 52.5556 7.69438C53.4444 6.7916 54 6.51383 55.375 6.31938C56.1389 6.20827 56.9444 6.51383 57.7083 6.90272C58.2222 7.29161 58.4306 7.27772 58.8333 6.88883C59.0417 6.68049 59.4028 6.56938 59.4028 6.34716C59.4167 6.13883 59.2639 5.73605 58.8056 5.26383C58.1944 4.63883 57.8611 4.40271 57.3889 4.20827C57.1111 4.08327 56.6111 3.94438 56.2917 3.90272C55.4722 3.79161 53.6389 3.59716 51.7639 4.93049C49.8333 6.2916 48.7917 7.98605 48.7222 10.0555C48.7083 10.5694 48.7361 11.0416 48.8056 11.4722C48.9861 12.5138 49.4444 13.4583 50.1528 14.2916C51.2083 15.5277 52.5833 16.1666 54.2222 16.1666C55.5972 16.1666 56.9583 15.5972 58.4583 14.7083C60.5833 13.4722 60.5 13.8472 60.2361 13.0694Z" fill="#030064"/>
<path d="M59.2501 6.31944C59.0001 6.68055 58.6807 6.99999 58.3196 7.26388C58.2779 7.29166 58.264 7.33333 58.2918 7.38888C58.3196 7.43055 58.3751 7.44444 58.4168 7.41666C58.7918 7.13888 59.139 6.79166 59.4029 6.40277C59.4585 6.31944 59.3057 6.22221 59.2501 6.31944Z" fill="#030064"/>
<path d="M56.8887 4.34723C57.5137 4.52779 58.0831 4.93057 58.5692 5.37501C58.7637 5.55557 58.9581 5.75001 59.1109 5.97223C59.1664 6.04168 59.2081 6.12501 59.2498 6.20835C59.2637 6.23612 59.2637 6.2639 59.2776 6.27779C59.2776 6.30557 59.2776 6.31946 59.2776 6.30557C59.2081 6.3889 59.3331 6.5139 59.4025 6.43057C59.5831 6.19445 59.222 5.80557 59.0831 5.6389C58.722 5.22223 58.2914 4.86112 57.8192 4.56946C57.5414 4.40279 57.2637 4.2639 56.9442 4.16668C56.8192 4.1389 56.7776 4.30557 56.8887 4.34723Z" fill="#030064"/>
<path d="M60.1248 13.5553C60.0137 13.6803 59.8609 13.7636 59.7081 13.8609C59.472 14.0136 59.222 14.1386 58.9859 14.2775C58.472 14.5553 57.9442 14.8192 57.4164 15.0831C57.2498 15.1664 57.0831 15.2498 56.9303 15.3053C56.8331 15.347 56.8748 15.5136 56.972 15.472C57.3748 15.3192 57.7498 15.1109 58.1248 14.9164C58.6665 14.6386 59.2081 14.3609 59.7359 14.0414C59.9026 13.9303 60.1109 13.8331 60.2359 13.6803C60.3192 13.597 60.1942 13.472 60.1248 13.5553Z" fill="#030064"/>
<path d="M59.3047 11.3331C59.5547 11.6942 59.6936 12.1525 59.8325 12.5553C59.9019 12.7775 59.9853 12.9997 60.0408 13.2358C60.0547 13.3192 60.0825 13.4025 60.0964 13.4858C60.0964 13.5136 60.0964 13.5275 60.1103 13.5553C60.1103 13.5692 60.1103 13.5831 60.1103 13.5831C60.1103 13.5969 60.1103 13.5692 60.1103 13.5969C60.0825 13.7081 60.2492 13.7497 60.2769 13.6386C60.3186 13.5136 60.263 13.3469 60.2353 13.2219C60.1797 12.9858 60.1103 12.7636 60.0269 12.5275C59.9436 12.2775 59.8464 12.0275 59.7492 11.7914C59.6658 11.5969 59.5825 11.4025 59.4714 11.2358C59.388 11.1664 59.2353 11.2497 59.3047 11.3331Z" fill="#030064"/>
<path d="M58.1937 7.19435C56.2215 6.11102 53.416 6.22213 51.9437 8.11102C51.5687 8.59713 51.3187 9.18046 51.2215 9.79157C51.2076 9.90268 51.3743 9.94435 51.3882 9.83324C51.5549 8.79157 52.166 7.88879 53.0549 7.33324C53.9715 6.76379 55.0965 6.56935 56.166 6.70824C56.8465 6.79157 57.4854 7.0138 58.0826 7.34713C58.2076 7.40268 58.3049 7.24991 58.1937 7.19435Z" fill="#030064"/>
<path d="M51.209 9.44417C51.2507 10.6664 51.6118 12.0414 52.7923 12.6247C53.6812 13.0692 54.7507 12.972 55.6673 12.6942C56.1257 12.5553 56.5701 12.3747 56.9729 12.1247C57.0701 12.0692 56.9868 11.9164 56.8895 11.972C55.459 12.847 53.0423 13.3053 51.9729 11.6664C51.5423 11.0136 51.4173 10.2081 51.3895 9.44417C51.3895 9.33306 51.209 9.33306 51.209 9.44417Z" fill="#030064"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.3613 14.153C48.212 13.944 48.0989 13.7912 47.9507 13.5911L47.9507 13.5911L47.9504 13.5908L47.9503 13.5906L47.9502 13.5904L47.9499 13.59C47.8224 13.4179 47.669 13.2108 47.4446 12.903C46.5557 11.7224 45.7779 10.6391 45.1252 9.66687C47.1788 6.26908 47.5594 5.40307 47.6663 5.15987C47.6787 5.13168 47.6874 5.11186 47.6946 5.09743C47.7363 5.0141 47.9585 4.52799 47.8474 4.47243C47.7643 4.42257 47.7085 4.38763 47.6582 4.35607C47.5402 4.28215 47.452 4.22682 47.1113 4.04187C46.8196 3.87521 46.3613 3.6391 45.9863 3.5141C45.6554 3.3967 45.6526 3.40231 45.4674 3.77037L45.4674 3.77038C45.4116 3.88132 45.3392 4.02518 45.2363 4.20854C45.2083 4.25841 45.1802 4.30785 45.1522 4.35686L44.6529 5.05577C44.5565 5.19481 44.46 5.33443 44.3633 5.47439L44.3633 5.47439L44.3633 5.4744L44.3633 5.4744L44.3633 5.4744L44.3632 5.47444L44.3632 5.47444L44.3632 5.47447C43.9959 6.00611 43.6251 6.54269 43.2379 7.07124C42.3184 5.84505 41.5262 4.88732 40.8613 4.22243C40.8196 4.18076 40.7918 4.15299 40.7502 4.12521C40.4287 3.80376 38.9526 4.99404 38.7793 5.51415C38.7601 5.53247 38.7411 5.55097 38.7224 5.56966C38.6581 5.63396 38.7178 5.71479 38.7867 5.71647C38.8332 5.88019 38.9108 6.04236 39.0279 6.19465C39.983 7.45065 40.8149 8.62037 41.5002 9.669C41.2578 10.1885 40.9238 10.6664 40.5912 11.1424L40.5912 11.1424L40.5912 11.1424L40.5911 11.1424L40.5911 11.1424L40.5911 11.1424L40.5911 11.1425L40.5911 11.1425C40.5046 11.2662 40.4182 11.3899 40.3335 11.5141C40.1995 11.7131 40.0635 11.9111 39.9273 12.1092L39.9273 12.1093L39.9272 12.1093C39.8321 12.2476 39.737 12.386 39.6426 12.5248C39.5746 12.6139 39.5133 12.6937 39.4585 12.7641C39.4301 12.8031 39.3963 12.8476 39.3594 12.8961C39.185 13.1254 38.9426 13.444 38.8868 13.6987C38.8613 13.7439 38.8335 13.7902 38.8051 13.8375C38.6946 14.022 38.5748 14.222 38.5418 14.4308C38.5279 14.5419 38.6946 14.5835 38.7085 14.4724C38.7116 14.4477 38.7162 14.4229 38.7222 14.3982C39.0696 14.6682 39.4178 14.9364 39.7779 15.1808L39.8363 15.2214C40.1379 15.4315 40.4518 15.6501 40.7779 15.8197C40.8295 15.8491 40.8811 15.8199 40.9016 15.7778C40.9659 15.7988 41.0312 15.8174 41.0974 15.8335C41.2085 15.8613 41.2502 15.6946 41.1391 15.6669C40.6391 15.5419 40.2085 15.278 39.8335 14.9169C39.7409 14.8243 39.6607 14.7317 39.5804 14.6391C39.5465 14.5999 39.5125 14.5608 39.4776 14.5216L39.4863 14.528C39.7369 14.7301 40.058 14.9463 40.3676 15.1547C40.5899 15.3044 40.8063 15.45 40.9863 15.5835C41.2503 15.7842 41.5223 15.3506 41.7901 14.9236C41.8746 14.789 41.9586 14.6551 42.0418 14.5419C42.5002 13.8891 43.0279 13.0835 43.4168 12.4863L46.0002 16.0974C46.1537 16.2816 46.2638 16.381 46.3646 16.4233C46.3495 16.4841 46.3904 16.5572 46.4585 16.528C46.8335 16.3891 47.2224 16.2363 47.5835 16.0558C47.7696 15.9731 47.9591 15.8835 48.1419 15.782C48.2201 15.7027 48.2641 15.6268 48.2641 15.5558C48.2779 15.2502 47.9168 14.2086 47.9168 14.2086L48.4724 15.4586C48.4886 15.4909 48.5015 15.5215 48.5109 15.5506C48.5644 15.5123 48.6165 15.4724 48.6668 15.4308C48.6794 15.4218 48.6882 15.4122 48.6939 15.4023C48.8366 15.3088 48.9122 15.23 48.9304 15.1396C48.9614 14.9855 48.8256 14.7977 48.5712 14.4461L48.5711 14.446L48.5709 14.4457C48.508 14.3588 48.4379 14.2619 48.3613 14.153ZM39.122 14.1967C39.0934 14.1638 39.0675 14.1323 39.0424 14.1016C39.0153 14.0684 38.9889 14.0362 38.9606 14.0042C39.3111 13.4127 39.8568 12.6567 40.4248 11.8697L40.4248 11.8696C40.8453 11.2871 41.278 10.6876 41.6529 10.1252C40.8891 10.8891 39.4724 12.903 38.9724 13.6808C38.8891 13.8197 38.8196 13.9724 38.7641 14.1252C38.7502 14.1669 38.7363 14.2224 38.7502 14.2641L38.7918 14.3058C38.7998 14.2905 38.808 14.275 38.8163 14.2594C39.0222 14.4251 39.2285 14.5826 39.4373 14.7344C39.4071 14.6982 39.3773 14.6617 39.3475 14.6253L39.3475 14.6253L39.3474 14.6252C39.3276 14.6021 39.3078 14.5783 39.2879 14.5542L39.2878 14.5541C39.2237 14.4767 39.1576 14.3971 39.0835 14.3335C39.0255 14.2852 39.0617 14.2099 39.122 14.1967ZM41.602 9.8255L41.6115 9.84022C41.5892 9.87153 41.567 9.90287 41.5449 9.93426C41.5644 9.89819 41.5834 9.86194 41.602 9.8255ZM44.1791 6.1665C43.9075 6.58339 43.6298 7.00946 43.278 7.36133C43.1946 7.44466 43.0696 7.31966 43.153 7.25022C43.3891 7.00023 43.5835 6.72246 43.7779 6.44469L43.778 6.44466C43.9367 6.21176 44.0915 5.97685 44.2461 5.74223L44.2461 5.74222C44.4971 5.3612 44.7476 4.98094 45.0141 4.61133L45.0764 4.52779L45.0764 4.52779C45.2229 4.33096 45.3733 4.12878 45.5557 3.95855C45.6669 3.84744 45.8196 3.70855 46.0002 3.72244C46.1113 3.72244 46.1113 3.8891 46.0002 3.8891C45.8269 3.8891 45.6647 4.0765 45.5528 4.20578L45.5528 4.20583L45.5527 4.20598C45.539 4.22174 45.5261 4.23663 45.5141 4.25022C45.1469 4.66332 44.846 5.13331 44.5489 5.59752C44.4864 5.69517 44.424 5.79255 44.3613 5.8891C44.3004 5.98043 44.24 6.07315 44.1793 6.16632L44.1792 6.16646L44.1791 6.1665Z" fill="#030064"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M35.8741 3.31962C35.8817 3.33601 35.8892 3.3525 35.8965 3.36911C35.6538 3.26402 35.3607 3.23151 35.0963 3.20851C34.5546 3.16685 34.013 3.18073 33.4713 3.20851C32.0546 3.29185 30.638 3.52796 29.263 3.90296C28.7017 4.0533 28.1477 4.23256 27.6113 4.44598C27.1861 4.54929 26.9774 4.63509 26.9081 4.78523C26.8334 4.94698 26.9204 5.18341 27.0726 5.59686L27.0726 5.59687L27.0726 5.59691C27.1095 5.69727 27.1503 5.80806 27.1935 5.93074C27.2137 5.99146 27.2405 6.09149 27.2659 6.18628L27.2659 6.18629L27.2659 6.1863L27.2659 6.1863L27.2659 6.1863L27.2659 6.18631C27.2928 6.28667 27.3181 6.38114 27.3324 6.41685C27.5162 6.95605 27.5811 6.95463 27.9373 6.94682L27.9889 6.94575C27.8838 7.53952 27.8617 8.1568 27.8401 8.76006L27.8324 8.97241C27.7911 9.82669 27.7771 10.6946 27.7633 11.5491L27.763 11.5696V11.5698C27.763 11.801 27.763 12.0322 27.7536 12.2541C27.903 11.9233 27.9578 11.5521 27.9991 11.1946C28.0381 10.8627 28.06 10.5291 28.0714 10.195C28.0704 10.2136 28.0695 10.232 28.0685 10.2502C28.0587 10.4553 28.0146 10.8733 27.941 11.4945C27.9431 11.3807 27.9448 11.2668 27.9466 11.153C27.9497 10.9539 27.9528 10.7548 27.9574 10.5557C27.9629 10.3783 27.9678 10.2014 27.9727 10.0247L27.9727 10.0247L27.9727 10.0246C27.9923 9.32059 28.0117 8.62177 28.0645 7.91475C28.0618 7.7035 28.0602 7.49319 28.0685 7.27795C28.0742 7.24403 28.0752 7.20321 28.0764 7.15922C28.078 7.09516 28.0798 7.02439 28.0963 6.95851H28.2769C28.2717 6.97402 28.2684 6.99146 28.265 7.0101C28.2591 7.04154 28.2526 7.07642 28.2352 7.11129C28.2213 7.27796 28.2213 7.43073 28.2213 7.58351C28.2213 7.90595 28.2271 8.23034 28.233 8.55521C28.2428 9.09795 28.2526 9.64206 28.2352 10.1807C28.2213 10.6252 28.1935 11.0696 28.1241 11.5141C28.0865 11.7771 27.9473 11.9836 27.7981 12.205C27.7831 12.2272 27.768 12.2497 27.7528 12.2723C27.7517 12.2975 27.7505 12.3225 27.7491 12.3474C27.7491 12.4009 27.7877 12.4287 27.8278 12.4306C27.7334 13.2874 27.6801 14.0094 27.7074 14.5835V14.6669C27.7074 14.7409 27.7136 14.8027 27.7177 14.8438C27.7197 14.8644 27.7213 14.8798 27.7213 14.8891C27.7308 14.978 27.7323 15.0712 27.7339 15.1631C27.739 15.4735 27.7439 15.7692 28.0546 15.8335C28.4574 15.9169 28.9296 15.9724 29.2629 15.9724C29.3509 15.9724 29.4347 15.9661 29.5145 15.954C29.9087 15.9779 30.3227 15.9196 30.7074 15.8613C31.1281 15.8035 31.5439 15.7311 31.9577 15.6469C32.4672 15.6188 33.002 15.5754 33.5546 15.4863C35.1796 15.2224 36.9574 14.5835 36.9574 14.5835C37.0994 14.5272 37.2238 14.4811 37.3317 14.4411L37.3318 14.4411C37.8894 14.2345 38.0092 14.1901 37.8463 13.7363C37.7907 13.5835 37.7213 13.3613 37.6241 13.0419L37.5795 12.8913C37.3833 12.227 37.0919 11.2404 36.8602 11.2918C36.8316 11.2918 36.6003 11.3834 36.2965 11.5036C36.1575 11.5587 36.0032 11.6197 35.8463 11.6807C35.0824 11.9724 34.3741 12.2085 33.3324 12.3891C33.2176 12.4055 33.1 12.4235 32.9782 12.4421C32.378 12.5339 31.6749 12.6414 30.6935 12.653C30.7074 11.8198 30.7074 11.1533 30.7074 10.6672V10.6668C32.6935 10.5002 33.7768 10.1391 34.7768 9.77796C35.0546 9.68074 35.4435 9.52796 35.4296 9.33352C35.4144 9.26101 35.3309 9.07108 35.2134 8.83487C35.0806 8.48871 34.9357 8.14375 34.7491 7.81962C34.6102 7.58351 34.3741 7.20851 34.0407 7.27796C33.9964 7.29459 33.9764 7.33114 33.9754 7.36729L33.9697 7.36943C33.9577 7.36806 33.9443 7.36969 33.9296 7.37518C33.2848 7.59012 32.6263 7.75487 31.9698 7.91911L31.9698 7.91912C31.5229 8.03093 31.0769 8.14251 30.6368 8.26953C30.6094 7.42514 30.582 6.74316 30.5546 6.25018C31.5654 6.02556 32.5426 5.92427 33.4962 5.82543C33.604 5.81426 33.7114 5.80313 33.8185 5.79185C34.733 5.69486 35.3848 5.81903 35.6775 5.87478L35.6796 5.87518L35.7177 5.88213C35.8445 5.90528 35.9079 5.91685 35.9713 5.91685C35.9783 5.91766 35.9851 5.91821 35.9919 5.91851C35.9596 6.00997 36.0993 6.09147 36.1519 5.98629C36.1593 5.97111 36.1666 5.95587 36.1738 5.94057C36.2082 5.99742 36.3111 6.00202 36.3324 5.91685C36.3635 5.81323 36.3714 5.69416 36.3792 5.57693L36.3792 5.5769V5.57688C36.3818 5.53698 36.3844 5.4973 36.388 5.45851C36.3912 5.4028 36.393 5.34632 36.3935 5.28943C36.528 4.67017 36.4752 4.01084 36.2352 3.43074C36.2118 3.36844 36.1492 3.35417 36.106 3.37324C36.0858 3.3224 36.0641 3.27209 36.0407 3.2224C35.9713 3.12518 35.8324 3.2224 35.8741 3.31962ZM28.0798 9.84275C28.0798 9.74267 28.0804 9.64248 28.082 9.54235C28.0819 9.64247 28.0812 9.74261 28.0798 9.84275ZM34.8676 3.37603C35.0857 3.3847 35.3393 3.39479 35.5721 3.44955L35.4773 3.44788C35.4225 3.44696 35.3649 3.446 35.3046 3.44463C33.1976 3.37666 31.5163 3.64131 29.167 4.10836C29.8217 3.9279 30.4883 3.78628 31.1518 3.66684C32.3602 3.45851 33.6241 3.30573 34.8463 3.37518L34.8676 3.37603ZM30.0059 15.7872C30.2253 15.7726 30.4446 15.7414 30.6572 15.7072C30.4544 15.7183 30.258 15.7318 30.0685 15.7502C30.048 15.763 30.0271 15.7753 30.0059 15.7872Z" fill="#030064"/>
<path d="M20.4842 16.4441C20.4425 16.4163 20.4008 16.4024 20.3453 16.4163C19.3036 14.8746 17.9703 13.4163 16.6925 11.9996L16.4842 11.7635C16.4842 11.7357 16.4703 11.708 16.4564 11.6941C16.4286 11.6663 16.4008 11.6524 16.373 11.6385L16.3314 11.5969C16.3175 11.583 16.3175 11.583 16.3036 11.5691C16.2619 11.4857 16.1647 11.4302 16.0675 11.4857C15.6786 11.6802 15.3175 11.9719 14.9703 12.2496C14.5119 12.6107 14.0536 12.9719 13.623 13.3746C13.4425 13.5413 13.2758 13.708 13.1369 13.8885C13.0675 13.9857 13.123 14.0691 13.2064 14.1107C12.9008 14.4163 12.5953 14.7219 12.2897 15.0413C12.2619 15.0691 12.248 15.1107 12.248 15.1524C12.248 15.1941 12.2758 15.2357 12.3036 15.2496L12.8453 15.6663C12.8453 15.6663 12.8453 15.6663 12.8453 15.6802C13.6092 16.4441 14.9564 17.4857 16.3869 18.6107C16.5953 18.7774 16.8175 18.9441 17.0258 19.1107C17.123 19.2219 17.2203 19.3469 17.3036 19.458C17.3453 19.5135 17.4425 19.5274 17.498 19.4857C17.5258 19.5135 17.5675 19.5413 17.5953 19.5691C17.623 19.583 17.6508 19.5969 17.6786 19.5969C17.7203 19.5969 17.7619 19.583 17.7897 19.5413C17.8036 19.5135 17.8175 19.4857 17.8175 19.458C17.8314 19.458 17.8314 19.4719 17.8453 19.4719C17.8869 19.4719 17.9286 19.458 17.9564 19.4302L20.4842 16.6663C20.5536 16.5969 20.5397 16.4996 20.4842 16.4441ZM13.2064 15.4857C13.2203 15.5135 13.2342 15.5274 13.2619 15.5552C13.5536 15.8052 13.8592 16.0552 14.1786 16.333L12.9008 15.3607C12.9008 15.3607 12.8175 15.3052 12.7758 15.2774C12.748 15.2635 12.7203 15.2357 12.6925 15.2219L12.5953 15.1385C12.6092 15.1246 12.6092 15.1246 12.623 15.1107C12.6369 15.0969 12.6369 15.0969 12.6508 15.083C12.6647 15.0691 12.6925 15.0413 12.7064 15.0274C13.1369 14.5969 13.873 13.8746 14.248 13.5135C13.8453 13.9163 13.0397 15.0969 13.2064 15.4857ZM17.5675 18.9302L16.5119 18.1246C16.0953 17.6941 15.6647 17.2774 15.2064 16.8746C15.7758 17.3052 16.2619 17.6802 16.3314 17.7496C16.8869 18.2357 16.8592 18.1524 17.2342 18.4719L17.6925 18.8052C17.6647 18.8469 17.623 18.8885 17.5675 18.9302ZM17.8453 19.1385L17.8175 19.1246C17.8592 19.0969 17.9008 19.0691 17.9425 19.0274L17.8453 19.1385Z" fill="#6965DB"/>
<path d="M1.17947 2.87495C1.20725 3.0555 1.24892 3.23606 1.27669 3.40272C1.44336 4.31939 1.61003 5.15273 1.91558 5.77773L2.04058 6.24995C2.08225 6.4305 2.15169 6.65272 2.22114 6.70828C2.92947 7.33328 4.01281 8.26383 5.17947 9.15272C5.23503 9.19439 5.30447 9.19439 5.36003 9.15272C5.36003 9.15272 5.36003 9.16661 5.37392 9.16661C5.40169 9.19439 5.42947 9.20828 5.47114 9.20828C5.5128 9.20828 5.55447 9.19439 5.58225 9.16661C7.06836 7.51384 8.17947 6.15273 8.97114 5.01384C9.02669 4.95828 9.04058 4.87495 9.04058 4.8055C9.09614 4.74995 9.1378 4.6805 9.19336 4.63883C9.24892 4.58328 9.24892 4.48606 9.19336 4.44439L9.17947 4.4305C9.17947 4.40272 9.16558 4.36106 9.13781 4.34717C8.79058 4.01383 8.54058 3.77772 8.27669 3.52772C7.81836 3.09717 7.34614 2.65272 6.34614 1.65272L6.33225 1.63884C6.31836 1.62495 6.30447 1.61106 6.27669 1.61106C5.99892 1.51384 5.42947 1.41661 4.72114 1.29161C3.66558 1.11106 2.23503 0.861057 0.943362 0.472168C0.943362 0.472168 0.860027 0.472169 0.846138 0.486058C0.832249 0.499947 0.818362 0.513836 0.804473 0.527725C0.790584 0.541614 0.776693 0.555502 0.693359 0.58328C0.707248 0.58328 0.70725 0.58328 0.721139 0.58328H0.693359C0.707248 0.666613 0.707251 0.722168 0.735029 0.81939C0.735029 0.847168 0.790583 1.06939 0.790583 1.09717L1.17947 2.87495ZM8.8878 4.51384L8.72114 4.34717C8.76281 4.40272 8.81836 4.44439 8.8878 4.51384ZM7.12392 6.84717C7.11003 6.86106 7.11003 6.86106 7.09614 6.87495C7.09614 6.86106 7.11003 6.84717 7.12392 6.84717ZM6.11003 1.84717C6.19336 1.9305 6.54058 2.26384 6.62392 2.33328C6.2628 2.16661 5.36003 1.74995 4.94336 1.61106C5.36003 1.69439 5.92947 1.77772 6.11003 1.84717ZM1.34614 1.15272C1.55447 1.51384 1.72114 2.76384 1.8878 3.98606C1.79058 3.59717 1.72114 3.20828 1.63781 2.84717C1.51281 2.20828 1.38781 1.63884 1.22114 1.13884C1.24892 1.13884 1.29058 1.13884 1.34614 1.15272ZM1.2628 0.861057C1.20725 0.861057 1.15169 0.84717 1.11003 0.84717C1.11003 0.833281 1.11003 0.81939 1.09614 0.81939C1.16558 0.81939 1.20725 0.83328 1.2628 0.861057ZM0.721139 0.972169C0.721139 0.95828 0.721139 0.95828 0.721139 0.972169V0.972169Z" fill="#6965DB"/>
<path d="M20.2625 0.666449C20.2764 0.610894 19.9847 0.360893 20.082 0.347004C20.2903 0.333115 20.2903 0.0136719 20.082 0.0136719C19.8042 0.0275608 19.5125 0.0970044 19.2486 0.138671C18.7625 0.235893 18.2625 0.333115 17.7764 0.444226C16.6792 0.680337 15.5958 0.930338 14.5125 1.222C14.1792 1.31923 13.8042 1.38867 13.4847 1.55534C13.3736 1.61089 13.3875 1.722 13.4431 1.79145C13.4153 1.80534 13.4014 1.80534 13.3736 1.81923C13.2764 1.83312 13.1931 1.847 13.0958 1.86089C13.0125 1.87478 12.9708 1.94423 12.9847 2.02756C12.9847 2.04145 12.9986 2.06923 12.9986 2.08312C12.4153 2.86089 11.7625 3.68034 11.0542 4.55534C10.3597 5.36089 9.62362 6.20812 8.88751 7.08312C6.54029 9.83311 3.88751 12.9581 0.956957 15.7081C0.901402 15.7637 0.901402 15.847 0.956957 15.9026C0.970846 15.9164 0.984737 15.9303 0.998626 15.9303C0.95696 15.972 0.915294 15.9998 0.873627 16.0414C0.845849 16.0692 0.831958 16.097 0.831958 16.1248C0.818069 16.1387 0.790292 16.1664 0.776403 16.1942C0.720848 16.2498 0.720849 16.347 0.790293 16.3887C0.845849 16.4442 0.94307 16.4442 0.984737 16.3748C0.998626 16.3609 0.998627 16.347 1.01252 16.347C1.09585 16.2637 1.23474 16.2637 1.31807 16.347C1.48474 16.5276 1.6514 16.7081 1.80418 16.8609L1.45696 16.5692C1.4014 16.5137 1.30418 16.5276 1.26251 16.5831C1.20696 16.6387 1.22085 16.7359 1.2764 16.7776L4.97085 19.8748C4.99863 19.9026 5.0264 19.9026 5.06807 19.9026C5.10974 19.9026 5.13752 19.8887 5.16529 19.8609C5.19307 19.8331 5.22085 19.8053 5.24863 19.7776C5.26252 19.7914 5.29029 19.7914 5.30418 19.7914C5.34585 19.7914 5.37362 19.7776 5.4014 19.7498C10.4014 14.722 14.4292 10.9303 19.0403 7.54145C19.082 7.51367 19.0958 7.45811 19.0958 7.41645C19.1514 7.41645 19.1931 7.37478 19.2208 7.31923C20.0681 4.72201 20.2347 2.41645 20.2903 1.27756V1.26367C20.2903 1.24978 20.3042 1.23589 20.3042 1.222C20.3181 1.19423 20.3181 1.18034 20.3181 1.18034C20.3597 1.01367 20.332 0.819227 20.2625 0.666449ZM11.3181 4.74978C11.5403 4.49978 11.7625 4.23589 11.9847 3.99978C10.5542 5.88867 8.17918 8.79145 4.81807 12.2498C7.10974 9.70812 9.41529 7.08312 11.3181 4.74978ZM3.22085 17.8887C3.23474 17.8887 3.26251 17.8887 3.26251 17.8887C3.24862 17.8887 3.23474 17.8887 3.22085 17.8887ZM4.94307 19.4859C4.92918 19.472 4.92918 19.472 4.94307 19.472C4.94307 19.472 4.94307 19.472 4.94307 19.4859ZM7.01251 17.6942C7.12362 17.5692 7.23474 17.4581 7.35974 17.3331C7.35974 17.3331 7.35974 17.347 7.37363 17.347C7.24863 17.4581 7.13751 17.5692 7.01251 17.6942ZM7.58196 17.1387C7.6514 17.0692 7.72085 16.972 7.80418 16.8887C7.80418 16.8887 7.80418 16.8887 7.81807 16.8748C8.63752 16.0276 9.48474 15.1803 10.3458 14.3192L10.3597 14.3053C10.5681 14.1387 10.8181 13.9581 11.0403 13.7914C9.9014 14.8609 8.76252 15.972 7.58196 17.1387ZM12.9708 3.23589C12.5125 3.83312 11.9986 4.62478 11.5681 5.24978C10.207 7.222 5.83196 12.0414 5.73474 12.1248C5.05418 12.7776 3.0264 14.722 1.73474 15.9442C1.70696 15.972 1.67918 15.9998 1.6514 16.0276C1.58196 15.9442 1.58196 15.8192 1.66529 15.7498C7.84585 9.93034 11.5958 5.08312 13.1097 2.95812C13.0681 3.05534 13.0403 3.13867 12.9708 3.23589ZM15.3736 6.08311C14.8181 5.76367 14.5542 5.26367 14.707 4.77756L14.7486 4.61089C14.7625 4.56923 14.7903 4.51367 14.8181 4.47201C14.9708 4.22201 15.1931 4.01367 15.4431 3.88867C15.457 3.88867 15.4708 3.88867 15.4847 3.87478C15.4708 3.847 15.4708 3.80534 15.4708 3.76367C15.4847 3.68034 15.5403 3.62478 15.6375 3.62478C15.8042 3.62478 16.3181 3.77756 16.5125 3.94423C16.5681 3.98589 16.6236 4.04145 16.6792 4.097C16.7486 4.18034 16.8597 4.31923 16.9153 4.43034C16.9431 4.44423 16.9708 4.58312 17.0125 4.65256C17.0403 4.76367 17.0681 4.88867 17.0542 4.99978C17.0403 5.01367 17.0542 5.09701 17.0403 5.09701C17.0125 5.27756 16.957 5.45811 16.8597 5.61089C16.8458 5.62478 16.8458 5.63867 16.832 5.65256C16.832 5.65256 16.832 5.65256 16.8181 5.66645C16.7486 5.77756 16.6514 5.87478 16.5542 5.94422C16.2347 6.16645 15.8736 6.23589 15.5125 6.13867C15.5125 6.13867 15.4153 6.097 15.3736 6.08311ZM19.4292 5.66645C19.3042 6.18034 19.1653 6.70812 18.9847 7.24978C18.9847 7.26367 18.9708 7.29145 18.9847 7.30534C18.957 7.30534 18.9431 7.31922 18.9153 7.33311C17.8181 8.13867 16.7486 8.98589 15.6792 9.847C16.5958 9.02756 17.5125 8.19423 18.4708 7.37478C18.7486 7.12478 18.9431 6.80534 18.9986 6.44423L19.1375 5.61089C19.1375 5.597 19.1375 5.59701 19.1375 5.58312C19.207 5.41645 19.4708 5.48589 19.4292 5.66645Z" fill="#6965DB"/>
</g>
<defs>
<clipPath id="clip0_17766_58387">
<rect width="139" height="20" fill="white" transform="translate(0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 51 KiB

Some files were not shown because too many files have changed in this diff Show More