From 86b21b2324d52d16c8e1f672427b63f5b312de31 Mon Sep 17 00:00:00 2001 From: Niko PLP Date: Sun, 20 Apr 2025 04:44:47 +0300 Subject: [PATCH] webapp framework with auth from wallet. first version 0.1.1 --- Cargo.lock | 106 +- Cargo.toml | 6 +- DEV.md | 15 +- README.md | 3 +- common/.gitignore | 28 + common/.vscode/extensions.json | 6 + common/README.md | 2 + common/package.json | 68 + {ngaccount/web => common}/postcss.config.cjs | 0 common/src/App.svelte | 310 + common/src/api.ts | 44 + {ngaccount/web => common}/src/app.postcss | 0 {ngaccount/web => common}/src/assets/EU.svg | 0 common/src/assets/nextgraph-nofill.svg | 16 + .../web => common}/src/assets/nextgraph.svg | 0 common/src/assets/pazzle/emoji_u1f308.svg | 17 + common/src/assets/pazzle/emoji_u1f30c.svg | 190 + common/src/assets/pazzle/emoji_u1f319.svg | 13 + common/src/assets/pazzle/emoji_u1f321.svg | 25 + common/src/assets/pazzle/emoji_u1f327.svg | 33 + common/src/assets/pazzle/emoji_u1f332.svg | 67 + common/src/assets/pazzle/emoji_u1f334.svg | 51 + common/src/assets/pazzle/emoji_u1f335.svg | 84 + common/src/assets/pazzle/emoji_u1f336.svg | 19 + common/src/assets/pazzle/emoji_u1f339.svg | 37 + common/src/assets/pazzle/emoji_u1f33b.svg | 31 + common/src/assets/pazzle/emoji_u1f33d.svg | 78 + common/src/assets/pazzle/emoji_u1f340.svg | 46 + common/src/assets/pazzle/emoji_u1f342.svg | 43 + common/src/assets/pazzle/emoji_u1f344.svg | 25 + common/src/assets/pazzle/emoji_u1f346.svg | 20 + common/src/assets/pazzle/emoji_u1f347.svg | 59 + common/src/assets/pazzle/emoji_u1f349.svg | 32 + common/src/assets/pazzle/emoji_u1f34b.svg | 23 + common/src/assets/pazzle/emoji_u1f34c.svg | 33 + common/src/assets/pazzle/emoji_u1f34d.svg | 44 + common/src/assets/pazzle/emoji_u1f34e.svg | 23 + common/src/assets/pazzle/emoji_u1f352.svg | 29 + common/src/assets/pazzle/emoji_u1f353.svg | 53 + common/src/assets/pazzle/emoji_u1f355.svg | 57 + common/src/assets/pazzle/emoji_u1f366.svg | 40 + common/src/assets/pazzle/emoji_u1f36a.svg | 82 + common/src/assets/pazzle/emoji_u1f36b.svg | 47 + common/src/assets/pazzle/emoji_u1f36c.svg | 47 + common/src/assets/pazzle/emoji_u1f370.svg | 40 + common/src/assets/pazzle/emoji_u1f373.svg | 35 + common/src/assets/pazzle/emoji_u1f377.svg | 69 + common/src/assets/pazzle/emoji_u1f37e.svg | 43 + common/src/assets/pazzle/emoji_u1f381.svg | 41 + common/src/assets/pazzle/emoji_u1f388.svg | 18 + common/src/assets/pazzle/emoji_u1f3a8.svg | 52 + common/src/assets/pazzle/emoji_u1f3aa.svg | 62 + common/src/assets/pazzle/emoji_u1f3af.svg | 36 + common/src/assets/pazzle/emoji_u1f3b2.svg | 35 + common/src/assets/pazzle/emoji_u1f3b5.svg | 9 + common/src/assets/pazzle/emoji_u1f3b7.svg | 28 + common/src/assets/pazzle/emoji_u1f3b8.svg | 102 + common/src/assets/pazzle/emoji_u1f3be.svg | 91 + common/src/assets/pazzle/emoji_u1f3c0.svg | 32 + common/src/assets/pazzle/emoji_u1f3c4.svg | 211 + common/src/assets/pazzle/emoji_u1f3c7.svg | 137 + common/src/assets/pazzle/emoji_u1f3ca.svg | 131 + common/src/assets/pazzle/emoji_u1f3cb.svg | 298 + common/src/assets/pazzle/emoji_u1f3cd.svg | 65 + common/src/assets/pazzle/emoji_u1f3d3.svg | 25 + common/src/assets/pazzle/emoji_u1f3d4.svg | 100 + common/src/assets/pazzle/emoji_u1f3d5.svg | 88 + common/src/assets/pazzle/emoji_u1f3d6.svg | 33 + common/src/assets/pazzle/emoji_u1f3db.svg | 48 + common/src/assets/pazzle/emoji_u1f3e1.svg | 73 + common/src/assets/pazzle/emoji_u1f406.svg | 135 + common/src/assets/pazzle/emoji_u1f407.svg | 54 + common/src/assets/pazzle/emoji_u1f40c.svg | 38 + common/src/assets/pazzle/emoji_u1f40d.svg | 43 + common/src/assets/pazzle/emoji_u1f410.svg | 56 + common/src/assets/pazzle/emoji_u1f411.svg | 38 + common/src/assets/pazzle/emoji_u1f413.svg | 37 + common/src/assets/pazzle/emoji_u1f416.svg | 33 + common/src/assets/pazzle/emoji_u1f418.svg | 39 + common/src/assets/pazzle/emoji_u1f419.svg | 63 + common/src/assets/pazzle/emoji_u1f41a.svg | 32 + common/src/assets/pazzle/emoji_u1f41c.svg | 53 + common/src/assets/pazzle/emoji_u1f41d.svg | 46 + common/src/assets/pazzle/emoji_u1f41e.svg | 42 + common/src/assets/pazzle/emoji_u1f41f.svg | 43 + common/src/assets/pazzle/emoji_u1f422.svg | 34 + common/src/assets/pazzle/emoji_u1f423.svg | 34 + common/src/assets/pazzle/emoji_u1f427.svg | 36 + common/src/assets/pazzle/emoji_u1f42a.svg | 42 + common/src/assets/pazzle/emoji_u1f42c.svg | 25 + common/src/assets/pazzle/emoji_u1f433.svg | 40 + common/src/assets/pazzle/emoji_u1f434.svg | 39 + common/src/assets/pazzle/emoji_u1f436.svg | 34 + .../assets/pazzle/emoji_u1f43b_200d_2744.svg | 49 + common/src/assets/pazzle/emoji_u1f441.svg | 31 + common/src/assets/pazzle/emoji_u1f442.svg | 24 + common/src/assets/pazzle/emoji_u1f443.svg | 28 + common/src/assets/pazzle/emoji_u1f444.svg | 21 + common/src/assets/pazzle/emoji_u1f445.svg | 37 + common/src/assets/pazzle/emoji_u1f44d.svg | 36 + common/src/assets/pazzle/emoji_u1f450.svg | 58 + common/src/assets/pazzle/emoji_u1f455.svg | 44 + common/src/assets/pazzle/emoji_u1f456.svg | 111 + common/src/assets/pazzle/emoji_u1f457.svg | 50 + common/src/assets/pazzle/emoji_u1f45f.svg | 77 + common/src/assets/pazzle/emoji_u1f477.svg | 187 + common/src/assets/pazzle/emoji_u1f478.svg | 119 + common/src/assets/pazzle/emoji_u1f47b.svg | 92 + common/src/assets/pazzle/emoji_u1f48b.svg | 17 + common/src/assets/pazzle/emoji_u1f48c.svg | 30 + common/src/assets/pazzle/emoji_u1f490.svg | 57 + common/src/assets/pazzle/emoji_u1f495.svg | 53 + common/src/assets/pazzle/emoji_u1f4a1.svg | 60 + common/src/assets/pazzle/emoji_u1f4a5.svg | 17 + common/src/assets/pazzle/emoji_u1f4a6.svg | 34 + common/src/assets/pazzle/emoji_u1f4aa.svg | 46 + common/src/assets/pazzle/emoji_u1f4af.svg | 28 + common/src/assets/pazzle/emoji_u1f4cc.svg | 37 + common/src/assets/pazzle/emoji_u1f4ce.svg | 41 + common/src/assets/pazzle/emoji_u1f4da.svg | 73 + common/src/assets/pazzle/emoji_u1f4e6.svg | 714 ++ common/src/assets/pazzle/emoji_u1f50d.svg | 46 + common/src/assets/pazzle/emoji_u1f511.svg | 26 + common/src/assets/pazzle/emoji_u1f513.svg | 34 + common/src/assets/pazzle/emoji_u1f525.svg | 36 + common/src/assets/pazzle/emoji_u1f590.svg | 32 + common/src/assets/pazzle/emoji_u1f600.svg | 55 + common/src/assets/pazzle/emoji_u1f602.svg | 75 + common/src/assets/pazzle/emoji_u1f607.svg | 53 + common/src/assets/pazzle/emoji_u1f60d.svg | 57 + common/src/assets/pazzle/emoji_u1f60e.svg | 38 + common/src/assets/pazzle/emoji_u1f618.svg | 56 + common/src/assets/pazzle/emoji_u1f61d.svg | 61 + common/src/assets/pazzle/emoji_u1f624.svg | 78 + common/src/assets/pazzle/emoji_u1f62d.svg | 124 + common/src/assets/pazzle/emoji_u1f631.svg | 116 + common/src/assets/pazzle/emoji_u1f634.svg | 72 + common/src/assets/pazzle/emoji_u1f635.svg | 38 + common/src/assets/pazzle/emoji_u1f637.svg | 64 + common/src/assets/pazzle/emoji_u1f638.svg | 76 + common/src/assets/pazzle/emoji_u1f63f.svg | 86 + common/src/assets/pazzle/emoji_u1f640.svg | 100 + common/src/assets/pazzle/emoji_u1f644.svg | 55 + common/src/assets/pazzle/emoji_u1f648.svg | 43 + common/src/assets/pazzle/emoji_u1f649.svg | 32 + common/src/assets/pazzle/emoji_u1f64a.svg | 37 + common/src/assets/pazzle/emoji_u1f64f.svg | 30 + common/src/assets/pazzle/emoji_u1f680.svg | 58 + common/src/assets/pazzle/emoji_u1f681.svg | 54 + common/src/assets/pazzle/emoji_u1f682.svg | 132 + common/src/assets/pazzle/emoji_u1f695.svg | 44 + common/src/assets/pazzle/emoji_u1f6a3.svg | 114 + common/src/assets/pazzle/emoji_u1f6b4.svg | 169 + common/src/assets/pazzle/emoji_u1f6c1.svg | 113 + common/src/assets/pazzle/emoji_u1f6d2.svg | 66 + common/src/assets/pazzle/emoji_u1f6f4.svg | 53 + common/src/assets/pazzle/emoji_u1f6fc.svg | 106 + common/src/assets/pazzle/emoji_u1f910.svg | 54 + common/src/assets/pazzle/emoji_u1f912.svg | 89 + common/src/assets/pazzle/emoji_u1f915.svg | 77 + common/src/assets/pazzle/emoji_u1f917.svg | 141 + common/src/assets/pazzle/emoji_u1f91d.svg | 56 + common/src/assets/pazzle/emoji_u1f921.svg | 101 + common/src/assets/pazzle/emoji_u1f925.svg | 84 + common/src/assets/pazzle/emoji_u1f927.svg | 70 + common/src/assets/pazzle/emoji_u1f92d.svg | 90 + common/src/assets/pazzle/emoji_u1f92e.svg | 79 + common/src/assets/pazzle/emoji_u1f92f.svg | 128 + common/src/assets/pazzle/emoji_u1f93a.svg | 227 + common/src/assets/pazzle/emoji_u1f93c.svg | 271 + common/src/assets/pazzle/emoji_u1f93f.svg | 57 + common/src/assets/pazzle/emoji_u1f942.svg | 139 + common/src/assets/pazzle/emoji_u1f94b.svg | 59 + common/src/assets/pazzle/emoji_u1f950.svg | 114 + common/src/assets/pazzle/emoji_u1f951.svg | 18 + common/src/assets/pazzle/emoji_u1f955.svg | 31 + common/src/assets/pazzle/emoji_u1f956.svg | 57 + common/src/assets/pazzle/emoji_u1f95d.svg | 85 + common/src/assets/pazzle/emoji_u1f968.svg | 64 + common/src/assets/pazzle/emoji_u1f970.svg | 117 + common/src/assets/pazzle/emoji_u1f971.svg | 57 + common/src/assets/pazzle/emoji_u1f973.svg | 111 + common/src/assets/pazzle/emoji_u1f975.svg | 126 + common/src/assets/pazzle/emoji_u1f976.svg | 145 + common/src/assets/pazzle/emoji_u1f981.svg | 39 + common/src/assets/pazzle/emoji_u1f985.svg | 48 + common/src/assets/pazzle/emoji_u1f986.svg | 38 + common/src/assets/pazzle/emoji_u1f987.svg | 43 + common/src/assets/pazzle/emoji_u1f989.svg | 60 + common/src/assets/pazzle/emoji_u1f98b.svg | 116 + common/src/assets/pazzle/emoji_u1f98e.svg | 1947 ++++++ common/src/assets/pazzle/emoji_u1f98f.svg | 60 + common/src/assets/pazzle/emoji_u1f992.svg | 99 + common/src/assets/pazzle/emoji_u1f993.svg | 56 + common/src/assets/pazzle/emoji_u1f994.svg | 78 + common/src/assets/pazzle/emoji_u1f9a9.svg | 48 + common/src/assets/pazzle/emoji_u1f9b4.svg | 41 + common/src/assets/pazzle/emoji_u1f9b5.svg | 44 + common/src/assets/pazzle/emoji_u1f9b6.svg | 49 + common/src/assets/pazzle/emoji_u1f9b7.svg | 19 + common/src/assets/pazzle/emoji_u1f9c0.svg | 37 + common/src/assets/pazzle/emoji_u1f9d0.svg | 88 + .../assets/pazzle/emoji_u1f9d1_200d_1f692.svg | 224 + common/src/assets/pazzle/emoji_u1f9d9.svg | 178 + common/src/assets/pazzle/emoji_u1f9da.svg | 323 + common/src/assets/pazzle/emoji_u1f9dc.svg | 238 + common/src/assets/pazzle/emoji_u1f9e0.svg | 124 + common/src/assets/pazzle/emoji_u1f9e8.svg | 31 + common/src/assets/pazzle/emoji_u1f9e9.svg | 33 + common/src/assets/pazzle/emoji_u1f9ed.svg | 75 + common/src/assets/pazzle/emoji_u1f9f8.svg | 68 + common/src/assets/pazzle/emoji_u1f9f9.svg | 57 + common/src/assets/pazzle/emoji_u1f9fd.svg | 125 + common/src/assets/pazzle/emoji_u1fa81.svg | 50 + common/src/assets/pazzle/emoji_u1fa82.svg | 207 + common/src/assets/pazzle/emoji_u1fa90.svg | 66 + common/src/assets/pazzle/emoji_u1fa91.svg | 30 + common/src/assets/pazzle/emoji_u1fab4.svg | 168 + common/src/assets/pazzle/emoji_u1fad0.svg | 44 + common/src/assets/pazzle/emoji_u2600.svg | 28 + common/src/assets/pazzle/emoji_u2614.svg | 81 + common/src/assets/pazzle/emoji_u2615.svg | 38 + common/src/assets/pazzle/emoji_u2639.svg | 37 + common/src/assets/pazzle/emoji_u265f.svg | 46 + common/src/assets/pazzle/emoji_u2693.svg | 35 + common/src/assets/pazzle/emoji_u26a1.svg | 17 + common/src/assets/pazzle/emoji_u26bd.svg | 55 + common/src/assets/pazzle/emoji_u26c4.svg | 35 + common/src/assets/pazzle/emoji_u26f2.svg | 70 + common/src/assets/pazzle/emoji_u26f5.svg | 63 + common/src/assets/pazzle/emoji_u26f7.svg | 150 + common/src/assets/pazzle/emoji_u2702.svg | 48 + common/src/assets/pazzle/emoji_u2708.svg | 67 + common/src/assets/pazzle/emoji_u270a.svg | 43 + common/src/assets/pazzle/emoji_u270c.svg | 37 + common/src/assets/pazzle/emoji_u270d.svg | 40 + common/src/assets/pazzle/emoji_u270f.svg | 40 + common/src/assets/pazzle/emoji_u2744.svg | 77 + common/src/assets/pazzle/emoji_u2764.svg | 28 + common/src/assets/pazzle/emoji_u2b50.svg | 19 + common/src/base64url.js | 59 + common/src/classes.ts | 962 +++ common/src/lang.ts | 48 + common/src/lib/CenteredLayout.svelte | 110 + common/src/lib/Install.svelte | 197 + common/src/lib/Login.svelte | 765 +++ common/src/lib/NoWallet.svelte | 86 + common/src/lib/Test.svelte | 33 + common/src/lib/component.ts | 1 + .../src/lib/components/CopyToClipboard.svelte | 91 + common/src/lib/components/Logo.svelte | 40 + .../src/lib/components/LogoSimple.svelte | 20 +- common/src/lib/components/Message.svelte | 64 + .../src/lib/components/PasswordInput.svelte | 98 + common/src/lib/components/Spinner.svelte | 38 + common/src/lib/icons/BrailleIcon.svelte | 3 + common/src/lib/icons/BranchIcon.svelte | 13 + common/src/lib/icons/ChemistryIcon.svelte | 8 + common/src/lib/icons/DataClassIcon.svelte | 191 + common/src/lib/icons/DeviceIcon.svelte | 57 + common/src/lib/icons/GraphQLIcon.svelte | 3 + common/src/lib/icons/GuitarIcon.svelte | 4 + common/src/lib/icons/JsIcon.svelte | 3 + common/src/lib/icons/JsonIcon.svelte | 4 + common/src/lib/icons/JsonLdIcon.svelte | 10 + common/src/lib/icons/MarkdownIcon.svelte | 6 + common/src/lib/icons/NavIcon.svelte | 64 + common/src/lib/icons/PdfIcon.svelte | 3 + common/src/lib/icons/RdfIcon.svelte | 9 + common/src/lib/icons/ReactIcon.svelte | 3 + common/src/lib/icons/RustIcon.svelte | 3 + common/src/lib/icons/SvelteIcon.svelte | 3 + common/src/lib/icons/TsIcon.svelte | 3 + common/src/lib/icons/TurtleIcon.svelte | 35 + common/src/lib/icons/TxtIcon.svelte | 5 + common/src/lib/icons/ZeraIcon.svelte | 130 + common/src/lib/index.ts | 2 + common/src/locales/de.json | 599 ++ common/src/locales/en.json | 940 +++ common/src/locales/es.json | 231 + common/src/locales/fr.json | 231 + common/src/locales/it.json | 231 + common/src/locales/pt.json | 231 + common/src/locales/ru.json | 231 + common/src/locales/zh.json | 231 + .../app-web/index.js => common/src/main.ts | 9 +- common/src/routes/AccountInfo.svelte | 386 ++ common/src/routes/Install.svelte | 26 + common/src/routes/Invitation.svelte | 18 + common/src/routes/NotFound.svelte | 40 + common/src/routes/ScanQRTauri.svelte | 92 + common/src/routes/ScanQRWeb.svelte | 129 + common/src/routes/Test.svelte | 41 + common/src/routes/User.svelte | 392 ++ common/src/routes/UserRegistered.svelte | 128 + common/src/routes/WalletCreate.svelte | 1978 ++++++ common/src/routes/WalletInfo.svelte | 657 ++ common/src/routes/WalletLogin.svelte | 502 ++ common/src/routes/WalletLoginQr.svelte | 233 + common/src/routes/WalletLoginTextCode.svelte | 141 + common/src/routes/WalletLoginUsername.svelte | 319 + common/src/routes/index.ts | 14 + common/src/store.ts | 800 +++ common/src/styles.css | 226 + common/src/tab.ts | 667 ++ {ngaccount/web => common}/src/vite-env.d.ts | 0 common/src/wallet_emojis.ts | 1834 ++++++ common/src/workertest.js | 1 + common/src/zeras.ts | 776 +++ common/svelte.config.js | 13 + common/tailwind.config.cjs | 37 + common/tsconfig.json | 19 + common/vite.config.ts | 78 + helpers/app-api-tauri/.gitignore | 28 + helpers/app-api-tauri/main.ts | 340 + helpers/app-api-tauri/package.json | 14 + helpers/app-api-web/.gitignore | 28 + helpers/app-api-web/main.ts | 61 + helpers/app-api-web/package.json | 13 + helpers/app-api-web/worker.js | 43 + helpers/app-auth/dist/index.gzip | Bin 0 -> 10329627 bytes helpers/app-auth/dist/index.sha256 | 1 + helpers/app-auth/index.html | 57 + .../web => helpers/app-auth}/jsconfig.json | 0 helpers/app-auth/package.json | 41 + helpers/app-auth/pnpm-lock.yaml | 1930 ++++++ .../app-auth}/postcss.config.cjs | 0 helpers/app-auth/prepare-app-file.cjs | 32 + helpers/app-auth/src/App.svelte | 276 + .../web => helpers/app-auth}/src/app.postcss | 0 .../app-auth}/src/assets/EU.svg | 0 .../app-auth}/src/assets/nextgraph.svg | 0 helpers/app-auth/src/lib/Home.svelte | 32 + helpers/app-auth/src/main.ts | 95 + helpers/app-auth/src/routes/Home.svelte | 54 + helpers/app-auth/src/store.ts | 25 + .../app-auth}/src/vite-env.d.ts | 0 helpers/app-auth/src/worker.js | 26 + helpers/app-auth/svelte.config.js | 13 + helpers/app-auth/tailwind.config.cjs | 38 + helpers/app-auth/vite.config.js | 70 + helpers/net-auth/dist/index.html | 112 + helpers/net-auth/index.html | 89 + helpers/net-auth/jsconfig.json | 32 + helpers/net-auth/package.json | 41 + helpers/net-auth/pnpm-lock.yaml | 1930 ++++++ helpers/net-auth/postcss.config.cjs | 13 + helpers/net-auth/prepare-app-file.cjs | 32 + helpers/net-auth/src/App.svelte | 180 + helpers/net-auth/src/app.postcss | 4 + helpers/net-auth/src/assets/EU.svg | 4 + helpers/net-auth/src/assets/nextgraph.svg | 16 + helpers/net-auth/src/lib/Home.svelte | 160 + helpers/net-auth/src/main.ts | 95 + helpers/net-auth/src/routes/Home.svelte | 99 + helpers/net-auth/src/store.ts | 53 + helpers/net-auth/src/vite-env.d.ts | 2 + helpers/net-auth/src/worker.js | 26 + helpers/net-auth/svelte.config.js | 13 + helpers/net-auth/tailwind.config.cjs | 38 + helpers/net-auth/vite.config.js | 70 + helpers/net-bootstrap/dist/index.html | 37 + .../net-bootstrap}/index.html | 16 +- helpers/net-bootstrap/jsconfig.json | 32 + helpers/net-bootstrap/package.json | 23 + helpers/net-bootstrap/src/main.ts | 206 + helpers/net-bootstrap/src/vite-env.d.ts | 1 + helpers/net-bootstrap/vite.config.js | 19 + .../web => helpers/nextgraphweb}/.gitignore | 0 helpers/nextgraphweb/LICENSE-APACHE2 | 16 + helpers/nextgraphweb/LICENSE-MIT | 22 + helpers/nextgraphweb/README.md | 166 + helpers/nextgraphweb/package.json | 69 + helpers/nextgraphweb/src/index.ts | 169 + helpers/nextgraphweb/src/vite-env.d.ts | 1 + helpers/nextgraphweb/tsconfig.json | 24 + helpers/nextgraphweb/vite.config.ts | 16 + {ngaccount => helpers/ngaccount}/.env | 0 {ngaccount => helpers/ngaccount}/.gitignore | 0 {ngaccount => helpers/ngaccount}/Cargo.toml | 6 +- {ngaccount => helpers/ngaccount}/README.md | 7 +- {ngaccount => helpers/ngaccount}/src/main.rs | 0 {ngaccount => helpers/ngaccount}/src/types.rs | 0 {ngone => helpers/ngaccount}/web/.gitignore | 0 .../ngaccount}/web/.vscode/extensions.json | 0 .../ngaccount}/web/index.html | 0 helpers/ngaccount/web/jsconfig.json | 32 + .../ngaccount}/web/package.json | 0 helpers/ngaccount/web/pnpm-lock.yaml | 1751 +++++ helpers/ngaccount/web/postcss.config.cjs | 13 + .../ngaccount}/web/public/robots.txt | 0 .../ngaccount}/web/src/App.svelte | 0 helpers/ngaccount/web/src/app.postcss | 4 + helpers/ngaccount/web/src/assets/EU.svg | 4 + .../ngaccount/web/src/assets/nextgraph.svg | 16 + {ngone => helpers/ngaccount}/web/src/main.js | 2 +- .../ngaccount}/web/src/routes/Create.svelte | 10 +- .../ngaccount}/web/src/routes/Delete.svelte | 8 +- .../ngaccount}/web/src/routes/Home.svelte | 0 .../ngaccount}/web/src/routes/NotFound.svelte | 0 helpers/ngaccount/web/src/vite-env.d.ts | 2 + .../ngaccount}/web/svelte.config.js | 0 .../ngaccount}/web/tailwind.config.cjs | 0 helpers/ngaccount/web/vite.config.js | 40 + {ngone => helpers/ngapp}/.gitignore | 0 {ngone => helpers/ngapp}/Cargo.toml | 12 +- helpers/ngapp/README.md | 37 + helpers/ngapp/src/main.rs | 74 + {ngone => helpers/ngapp}/src/store/dynpeer.rs | 0 {ngone => helpers/ngapp}/src/store/mod.rs | 0 .../ngapp}/src/store/wallet_record.rs | 0 {ngone => helpers/ngapp}/src/types.rs | 0 helpers/ngapp/web/.gitignore | 24 + .../ngapp}/web/.vscode/extensions.json | 0 {ngone => helpers/ngapp}/web/index.html | 0 {ngone => helpers/ngapp}/web/jsconfig.json | 0 {ngone => helpers/ngapp}/web/package.json | 2 +- helpers/ngapp/web/pnpm-lock.yaml | 1714 +++++ helpers/ngapp/web/postcss.config.cjs | 13 + .../ngapp}/web/public/robots.txt | 0 {ngone => helpers/ngapp}/web/src/App.svelte | 0 helpers/ngapp/web/src/app.postcss | 4 + helpers/ngapp/web/src/assets/EU.svg | 4 + helpers/ngapp/web/src/assets/nextgraph.svg | 16 + {ngaccount => helpers/ngapp}/web/src/main.js | 0 .../ngapp}/web/src/routes/Home.svelte | 0 .../ngapp}/web/src/routes/Install.svelte | 0 .../ngapp}/web/src/routes/NotFound.svelte | 0 .../ngapp}/web/src/routes/WalletCreate.svelte | 0 helpers/ngapp/web/src/vite-env.d.ts | 2 + {ngone => helpers/ngapp}/web/svelte.config.js | 0 .../ngapp}/web/tailwind.config.cjs | 1 - {ngone => helpers/ngapp}/web/vite.config.js | 0 helpers/ngnet/.gitignore | 1 + helpers/ngnet/Cargo.toml | 28 + helpers/ngnet/README.md | 47 + helpers/ngnet/src/main.rs | 204 + helpers/ngnet/src/types.rs | 37 + helpers/ngnet/web/.gitignore | 24 + helpers/ngnet/web/.vscode/extensions.json | 3 + helpers/ngnet/web/index.html | 96 + helpers/ngnet/web/jsconfig.json | 32 + helpers/ngnet/web/package.json | 28 + helpers/ngnet/web/postcss.config.cjs | 13 + helpers/ngnet/web/public/robots.txt | 2 + helpers/ngnet/web/src/App.svelte | 38 + helpers/ngnet/web/src/app.postcss | 4 + helpers/ngnet/web/src/assets/EU.svg | 4 + helpers/ngnet/web/src/assets/nextgraph.svg | 16 + helpers/ngnet/web/src/main.js | 9 + helpers/ngnet/web/src/routes/Home.svelte | 24 + helpers/ngnet/web/src/routes/NotFound.svelte | 21 + helpers/ngnet/web/src/vite-env.d.ts | 2 + helpers/ngnet/web/svelte.config.js | 7 + helpers/ngnet/web/tailwind.config.cjs | 22 + .../ngnet}/web/vite.config.js | 5 +- helpers/wasm-tools/.gitignore | 3 + helpers/wasm-tools/Cargo.toml | 45 + helpers/wasm-tools/LICENSE-APACHE2 | 16 + helpers/wasm-tools/LICENSE-MIT | 22 + helpers/wasm-tools/prepare-web.cjs | 10 + helpers/wasm-tools/src/lib.rs | 37 + nextgraph/README.md | 3 +- nextgraph/src/local_broker.rs | 6 +- ng-app/.gitignore | 1 + ng-app/README.md | 9 +- ng-app/package.json | 9 +- ng-app/src/App.svelte | 2 + ng-app/src/api.ts | 7 +- ng-app/src/classes.ts | 6 +- ng-app/src/lib/Login.svelte | 52 +- ng-app/src/lib/NoWallet.svelte | 4 + ng-app/src/lib/icons/DataClassIcon.svelte | 2 +- ng-app/src/locales/de.json | 16 +- ng-app/src/locales/en.json | 38 +- ng-app/src/main-web.ts | 17 +- ng-app/src/routes/WalletCreate.svelte | 248 +- ng-app/src/routes/WalletLogin.svelte | 16 +- ng-app/src/routes/WalletLoginQr.svelte | 2 +- ng-app/src/routes/WalletLoginTextCode.svelte | 2 +- ng-app/src/routes/WalletLoginUsername.svelte | 2 +- ng-app/src/store.ts | 42 +- ng-app/src/worker.js | 2 +- ng-app/src/zeras.ts | 2 +- ng-app/vite.config.ts | 1 + ng-broker/Cargo.toml | 1 + ng-broker/src/server_ws.rs | 75 +- ng-client-ws/Cargo.toml | 2 +- ng-net/Cargo.toml | 1 + ng-net/src/bsps.rs | 53 + ng-net/src/lib.rs | 3 + ng-net/src/types.rs | 126 +- ng-net/src/utils.rs | 4 +- ng-oxigraph/src/oxigraph/sparql/dataset.rs | 8 +- ng-repo/Cargo.toml | 2 +- ng-repo/src/types.rs | 4 +- ng-sdk-js/Cargo.toml | 11 +- ng-sdk-js/DEV.md | 25 +- ng-sdk-js/app-node/README.md | 2 +- ng-sdk-js/app-node/index.js | 8 +- ng-sdk-js/app-react/README.md | 2 +- ng-sdk-js/app-react/package.json | 2 +- ng-sdk-js/app-web/package-lock.json | 5845 ----------------- ng-sdk-js/app-web/test.js | 8 - ng-sdk-js/app-web/webpack.config.js | 14 - .../.gitignore | 0 .../LICENSE-APACHE | 0 .../LICENSE-MIT | 0 .../README.md | 46 +- ng-sdk-js/example-webapp-vite/index.html | 27 + .../example-webapp-vite/package-lock.json | 1535 +++++ .../package.json | 29 +- ng-sdk-js/example-webapp-vite/src/main.js | 72 + ng-sdk-js/example-webapp-vite/vite.config.ts | 10 + ng-sdk-js/js/browser.js | 48 +- ng-sdk-js/prepare-web.js | 11 + ng-sdk-js/src/lib.rs | 59 +- ng-sdk-js/src/model.rs | 4 + ng-wallet/src/lib.rs | 6 +- ng-wallet/src/permissions.rs | 232 + ng-wallet/src/types.rs | 20 +- ngaccount/web/pnpm-lock.yaml | 1378 ---- ngone/README.md | 37 - ngone/src/main.rs | 225 - ngone/web/pnpm-lock.yaml | 1310 ---- package.json | 2 +- pnpm-lock.yaml | 1600 ++++- pnpm-workspace.yaml | 12 +- 528 files changed, 49565 insertions(+), 9221 deletions(-) create mode 100644 common/.gitignore create mode 100644 common/.vscode/extensions.json create mode 100644 common/README.md create mode 100644 common/package.json rename {ngaccount/web => common}/postcss.config.cjs (100%) create mode 100644 common/src/App.svelte create mode 100644 common/src/api.ts rename {ngaccount/web => common}/src/app.postcss (100%) rename {ngaccount/web => common}/src/assets/EU.svg (100%) create mode 100644 common/src/assets/nextgraph-nofill.svg rename {ngaccount/web => common}/src/assets/nextgraph.svg (100%) create mode 100644 common/src/assets/pazzle/emoji_u1f308.svg create mode 100644 common/src/assets/pazzle/emoji_u1f30c.svg create mode 100644 common/src/assets/pazzle/emoji_u1f319.svg create mode 100644 common/src/assets/pazzle/emoji_u1f321.svg create mode 100644 common/src/assets/pazzle/emoji_u1f327.svg create mode 100644 common/src/assets/pazzle/emoji_u1f332.svg create mode 100644 common/src/assets/pazzle/emoji_u1f334.svg create mode 100644 common/src/assets/pazzle/emoji_u1f335.svg create mode 100644 common/src/assets/pazzle/emoji_u1f336.svg create mode 100644 common/src/assets/pazzle/emoji_u1f339.svg create mode 100644 common/src/assets/pazzle/emoji_u1f33b.svg create mode 100644 common/src/assets/pazzle/emoji_u1f33d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f340.svg create mode 100644 common/src/assets/pazzle/emoji_u1f342.svg create mode 100644 common/src/assets/pazzle/emoji_u1f344.svg create mode 100644 common/src/assets/pazzle/emoji_u1f346.svg create mode 100644 common/src/assets/pazzle/emoji_u1f347.svg create mode 100644 common/src/assets/pazzle/emoji_u1f349.svg create mode 100644 common/src/assets/pazzle/emoji_u1f34b.svg create mode 100644 common/src/assets/pazzle/emoji_u1f34c.svg create mode 100644 common/src/assets/pazzle/emoji_u1f34d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f34e.svg create mode 100644 common/src/assets/pazzle/emoji_u1f352.svg create mode 100644 common/src/assets/pazzle/emoji_u1f353.svg create mode 100644 common/src/assets/pazzle/emoji_u1f355.svg create mode 100644 common/src/assets/pazzle/emoji_u1f366.svg create mode 100644 common/src/assets/pazzle/emoji_u1f36a.svg create mode 100644 common/src/assets/pazzle/emoji_u1f36b.svg create mode 100644 common/src/assets/pazzle/emoji_u1f36c.svg create mode 100644 common/src/assets/pazzle/emoji_u1f370.svg create mode 100644 common/src/assets/pazzle/emoji_u1f373.svg create mode 100644 common/src/assets/pazzle/emoji_u1f377.svg create mode 100644 common/src/assets/pazzle/emoji_u1f37e.svg create mode 100644 common/src/assets/pazzle/emoji_u1f381.svg create mode 100644 common/src/assets/pazzle/emoji_u1f388.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3a8.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3aa.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3af.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3b2.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3b5.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3b7.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3b8.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3be.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3c0.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3c4.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3c7.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3ca.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3cb.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3cd.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3d3.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3d4.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3d5.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3d6.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3db.svg create mode 100644 common/src/assets/pazzle/emoji_u1f3e1.svg create mode 100644 common/src/assets/pazzle/emoji_u1f406.svg create mode 100644 common/src/assets/pazzle/emoji_u1f407.svg create mode 100644 common/src/assets/pazzle/emoji_u1f40c.svg create mode 100644 common/src/assets/pazzle/emoji_u1f40d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f410.svg create mode 100644 common/src/assets/pazzle/emoji_u1f411.svg create mode 100644 common/src/assets/pazzle/emoji_u1f413.svg create mode 100644 common/src/assets/pazzle/emoji_u1f416.svg create mode 100644 common/src/assets/pazzle/emoji_u1f418.svg create mode 100644 common/src/assets/pazzle/emoji_u1f419.svg create mode 100644 common/src/assets/pazzle/emoji_u1f41a.svg create mode 100644 common/src/assets/pazzle/emoji_u1f41c.svg create mode 100644 common/src/assets/pazzle/emoji_u1f41d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f41e.svg create mode 100644 common/src/assets/pazzle/emoji_u1f41f.svg create mode 100644 common/src/assets/pazzle/emoji_u1f422.svg create mode 100644 common/src/assets/pazzle/emoji_u1f423.svg create mode 100644 common/src/assets/pazzle/emoji_u1f427.svg create mode 100644 common/src/assets/pazzle/emoji_u1f42a.svg create mode 100644 common/src/assets/pazzle/emoji_u1f42c.svg create mode 100644 common/src/assets/pazzle/emoji_u1f433.svg create mode 100644 common/src/assets/pazzle/emoji_u1f434.svg create mode 100755 common/src/assets/pazzle/emoji_u1f436.svg create mode 100644 common/src/assets/pazzle/emoji_u1f43b_200d_2744.svg create mode 100644 common/src/assets/pazzle/emoji_u1f441.svg create mode 100644 common/src/assets/pazzle/emoji_u1f442.svg create mode 100644 common/src/assets/pazzle/emoji_u1f443.svg create mode 100644 common/src/assets/pazzle/emoji_u1f444.svg create mode 100644 common/src/assets/pazzle/emoji_u1f445.svg create mode 100644 common/src/assets/pazzle/emoji_u1f44d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f450.svg create mode 100644 common/src/assets/pazzle/emoji_u1f455.svg create mode 100644 common/src/assets/pazzle/emoji_u1f456.svg create mode 100644 common/src/assets/pazzle/emoji_u1f457.svg create mode 100755 common/src/assets/pazzle/emoji_u1f45f.svg create mode 100755 common/src/assets/pazzle/emoji_u1f477.svg create mode 100755 common/src/assets/pazzle/emoji_u1f478.svg create mode 100644 common/src/assets/pazzle/emoji_u1f47b.svg create mode 100644 common/src/assets/pazzle/emoji_u1f48b.svg create mode 100644 common/src/assets/pazzle/emoji_u1f48c.svg create mode 100644 common/src/assets/pazzle/emoji_u1f490.svg create mode 100644 common/src/assets/pazzle/emoji_u1f495.svg create mode 100644 common/src/assets/pazzle/emoji_u1f4a1.svg create mode 100644 common/src/assets/pazzle/emoji_u1f4a5.svg create mode 100644 common/src/assets/pazzle/emoji_u1f4a6.svg create mode 100644 common/src/assets/pazzle/emoji_u1f4aa.svg create mode 100644 common/src/assets/pazzle/emoji_u1f4af.svg create mode 100644 common/src/assets/pazzle/emoji_u1f4cc.svg create mode 100644 common/src/assets/pazzle/emoji_u1f4ce.svg create mode 100644 common/src/assets/pazzle/emoji_u1f4da.svg create mode 100644 common/src/assets/pazzle/emoji_u1f4e6.svg create mode 100644 common/src/assets/pazzle/emoji_u1f50d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f511.svg create mode 100644 common/src/assets/pazzle/emoji_u1f513.svg create mode 100644 common/src/assets/pazzle/emoji_u1f525.svg create mode 100644 common/src/assets/pazzle/emoji_u1f590.svg create mode 100644 common/src/assets/pazzle/emoji_u1f600.svg create mode 100644 common/src/assets/pazzle/emoji_u1f602.svg create mode 100644 common/src/assets/pazzle/emoji_u1f607.svg create mode 100644 common/src/assets/pazzle/emoji_u1f60d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f60e.svg create mode 100644 common/src/assets/pazzle/emoji_u1f618.svg create mode 100644 common/src/assets/pazzle/emoji_u1f61d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f624.svg create mode 100644 common/src/assets/pazzle/emoji_u1f62d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f631.svg create mode 100644 common/src/assets/pazzle/emoji_u1f634.svg create mode 100644 common/src/assets/pazzle/emoji_u1f635.svg create mode 100644 common/src/assets/pazzle/emoji_u1f637.svg create mode 100644 common/src/assets/pazzle/emoji_u1f638.svg create mode 100644 common/src/assets/pazzle/emoji_u1f63f.svg create mode 100644 common/src/assets/pazzle/emoji_u1f640.svg create mode 100644 common/src/assets/pazzle/emoji_u1f644.svg create mode 100644 common/src/assets/pazzle/emoji_u1f648.svg create mode 100644 common/src/assets/pazzle/emoji_u1f649.svg create mode 100644 common/src/assets/pazzle/emoji_u1f64a.svg create mode 100644 common/src/assets/pazzle/emoji_u1f64f.svg create mode 100644 common/src/assets/pazzle/emoji_u1f680.svg create mode 100644 common/src/assets/pazzle/emoji_u1f681.svg create mode 100644 common/src/assets/pazzle/emoji_u1f682.svg create mode 100644 common/src/assets/pazzle/emoji_u1f695.svg create mode 100644 common/src/assets/pazzle/emoji_u1f6a3.svg create mode 100644 common/src/assets/pazzle/emoji_u1f6b4.svg create mode 100644 common/src/assets/pazzle/emoji_u1f6c1.svg create mode 100644 common/src/assets/pazzle/emoji_u1f6d2.svg create mode 100644 common/src/assets/pazzle/emoji_u1f6f4.svg create mode 100644 common/src/assets/pazzle/emoji_u1f6fc.svg create mode 100644 common/src/assets/pazzle/emoji_u1f910.svg create mode 100644 common/src/assets/pazzle/emoji_u1f912.svg create mode 100644 common/src/assets/pazzle/emoji_u1f915.svg create mode 100644 common/src/assets/pazzle/emoji_u1f917.svg create mode 100644 common/src/assets/pazzle/emoji_u1f91d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f921.svg create mode 100644 common/src/assets/pazzle/emoji_u1f925.svg create mode 100644 common/src/assets/pazzle/emoji_u1f927.svg create mode 100644 common/src/assets/pazzle/emoji_u1f92d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f92e.svg create mode 100644 common/src/assets/pazzle/emoji_u1f92f.svg create mode 100644 common/src/assets/pazzle/emoji_u1f93a.svg create mode 100644 common/src/assets/pazzle/emoji_u1f93c.svg create mode 100644 common/src/assets/pazzle/emoji_u1f93f.svg create mode 100644 common/src/assets/pazzle/emoji_u1f942.svg create mode 100644 common/src/assets/pazzle/emoji_u1f94b.svg create mode 100644 common/src/assets/pazzle/emoji_u1f950.svg create mode 100644 common/src/assets/pazzle/emoji_u1f951.svg create mode 100644 common/src/assets/pazzle/emoji_u1f955.svg create mode 100644 common/src/assets/pazzle/emoji_u1f956.svg create mode 100644 common/src/assets/pazzle/emoji_u1f95d.svg create mode 100644 common/src/assets/pazzle/emoji_u1f968.svg create mode 100644 common/src/assets/pazzle/emoji_u1f970.svg create mode 100644 common/src/assets/pazzle/emoji_u1f971.svg create mode 100755 common/src/assets/pazzle/emoji_u1f973.svg create mode 100644 common/src/assets/pazzle/emoji_u1f975.svg create mode 100644 common/src/assets/pazzle/emoji_u1f976.svg create mode 100644 common/src/assets/pazzle/emoji_u1f981.svg create mode 100644 common/src/assets/pazzle/emoji_u1f985.svg create mode 100644 common/src/assets/pazzle/emoji_u1f986.svg create mode 100644 common/src/assets/pazzle/emoji_u1f987.svg create mode 100644 common/src/assets/pazzle/emoji_u1f989.svg create mode 100644 common/src/assets/pazzle/emoji_u1f98b.svg create mode 100644 common/src/assets/pazzle/emoji_u1f98e.svg create mode 100644 common/src/assets/pazzle/emoji_u1f98f.svg create mode 100644 common/src/assets/pazzle/emoji_u1f992.svg create mode 100644 common/src/assets/pazzle/emoji_u1f993.svg create mode 100644 common/src/assets/pazzle/emoji_u1f994.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9a9.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9b4.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9b5.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9b6.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9b7.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9c0.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9d0.svg create mode 100755 common/src/assets/pazzle/emoji_u1f9d1_200d_1f692.svg create mode 100755 common/src/assets/pazzle/emoji_u1f9d9.svg create mode 100755 common/src/assets/pazzle/emoji_u1f9da.svg create mode 100755 common/src/assets/pazzle/emoji_u1f9dc.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9e0.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9e8.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9e9.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9ed.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9f8.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9f9.svg create mode 100644 common/src/assets/pazzle/emoji_u1f9fd.svg create mode 100644 common/src/assets/pazzle/emoji_u1fa81.svg create mode 100644 common/src/assets/pazzle/emoji_u1fa82.svg create mode 100644 common/src/assets/pazzle/emoji_u1fa90.svg create mode 100644 common/src/assets/pazzle/emoji_u1fa91.svg create mode 100644 common/src/assets/pazzle/emoji_u1fab4.svg create mode 100644 common/src/assets/pazzle/emoji_u1fad0.svg create mode 100644 common/src/assets/pazzle/emoji_u2600.svg create mode 100644 common/src/assets/pazzle/emoji_u2614.svg create mode 100644 common/src/assets/pazzle/emoji_u2615.svg create mode 100644 common/src/assets/pazzle/emoji_u2639.svg create mode 100644 common/src/assets/pazzle/emoji_u265f.svg create mode 100644 common/src/assets/pazzle/emoji_u2693.svg create mode 100644 common/src/assets/pazzle/emoji_u26a1.svg create mode 100644 common/src/assets/pazzle/emoji_u26bd.svg create mode 100644 common/src/assets/pazzle/emoji_u26c4.svg create mode 100644 common/src/assets/pazzle/emoji_u26f2.svg create mode 100644 common/src/assets/pazzle/emoji_u26f5.svg create mode 100644 common/src/assets/pazzle/emoji_u26f7.svg create mode 100644 common/src/assets/pazzle/emoji_u2702.svg create mode 100644 common/src/assets/pazzle/emoji_u2708.svg create mode 100644 common/src/assets/pazzle/emoji_u270a.svg create mode 100644 common/src/assets/pazzle/emoji_u270c.svg create mode 100644 common/src/assets/pazzle/emoji_u270d.svg create mode 100644 common/src/assets/pazzle/emoji_u270f.svg create mode 100644 common/src/assets/pazzle/emoji_u2744.svg create mode 100644 common/src/assets/pazzle/emoji_u2764.svg create mode 100644 common/src/assets/pazzle/emoji_u2b50.svg create mode 100644 common/src/base64url.js create mode 100644 common/src/classes.ts create mode 100644 common/src/lang.ts create mode 100644 common/src/lib/CenteredLayout.svelte create mode 100644 common/src/lib/Install.svelte create mode 100644 common/src/lib/Login.svelte create mode 100644 common/src/lib/NoWallet.svelte create mode 100644 common/src/lib/Test.svelte create mode 100644 common/src/lib/component.ts create mode 100644 common/src/lib/components/CopyToClipboard.svelte create mode 100644 common/src/lib/components/Logo.svelte rename ng-sdk-js/app-web/bootstrap.js => common/src/lib/components/LogoSimple.svelte (61%) create mode 100644 common/src/lib/components/Message.svelte create mode 100644 common/src/lib/components/PasswordInput.svelte create mode 100644 common/src/lib/components/Spinner.svelte create mode 100644 common/src/lib/icons/BrailleIcon.svelte create mode 100644 common/src/lib/icons/BranchIcon.svelte create mode 100644 common/src/lib/icons/ChemistryIcon.svelte create mode 100644 common/src/lib/icons/DataClassIcon.svelte create mode 100644 common/src/lib/icons/DeviceIcon.svelte create mode 100644 common/src/lib/icons/GraphQLIcon.svelte create mode 100644 common/src/lib/icons/GuitarIcon.svelte create mode 100644 common/src/lib/icons/JsIcon.svelte create mode 100644 common/src/lib/icons/JsonIcon.svelte create mode 100644 common/src/lib/icons/JsonLdIcon.svelte create mode 100644 common/src/lib/icons/MarkdownIcon.svelte create mode 100644 common/src/lib/icons/NavIcon.svelte create mode 100644 common/src/lib/icons/PdfIcon.svelte create mode 100644 common/src/lib/icons/RdfIcon.svelte create mode 100644 common/src/lib/icons/ReactIcon.svelte create mode 100644 common/src/lib/icons/RustIcon.svelte create mode 100644 common/src/lib/icons/SvelteIcon.svelte create mode 100644 common/src/lib/icons/TsIcon.svelte create mode 100644 common/src/lib/icons/TurtleIcon.svelte create mode 100644 common/src/lib/icons/TxtIcon.svelte create mode 100644 common/src/lib/icons/ZeraIcon.svelte create mode 100644 common/src/lib/index.ts create mode 100644 common/src/locales/de.json create mode 100644 common/src/locales/en.json create mode 100644 common/src/locales/es.json create mode 100644 common/src/locales/fr.json create mode 100644 common/src/locales/it.json create mode 100644 common/src/locales/pt.json create mode 100644 common/src/locales/ru.json create mode 100644 common/src/locales/zh.json rename ng-sdk-js/app-web/index.js => common/src/main.ts (75%) create mode 100644 common/src/routes/AccountInfo.svelte create mode 100644 common/src/routes/Install.svelte create mode 100644 common/src/routes/Invitation.svelte create mode 100644 common/src/routes/NotFound.svelte create mode 100644 common/src/routes/ScanQRTauri.svelte create mode 100644 common/src/routes/ScanQRWeb.svelte create mode 100644 common/src/routes/Test.svelte create mode 100644 common/src/routes/User.svelte create mode 100644 common/src/routes/UserRegistered.svelte create mode 100644 common/src/routes/WalletCreate.svelte create mode 100644 common/src/routes/WalletInfo.svelte create mode 100644 common/src/routes/WalletLogin.svelte create mode 100644 common/src/routes/WalletLoginQr.svelte create mode 100644 common/src/routes/WalletLoginTextCode.svelte create mode 100644 common/src/routes/WalletLoginUsername.svelte create mode 100644 common/src/routes/index.ts create mode 100644 common/src/store.ts create mode 100644 common/src/styles.css create mode 100644 common/src/tab.ts rename {ngaccount/web => common}/src/vite-env.d.ts (100%) create mode 100644 common/src/wallet_emojis.ts create mode 100644 common/src/workertest.js create mode 100644 common/src/zeras.ts create mode 100644 common/svelte.config.js create mode 100644 common/tailwind.config.cjs create mode 100644 common/tsconfig.json create mode 100644 common/vite.config.ts create mode 100644 helpers/app-api-tauri/.gitignore create mode 100644 helpers/app-api-tauri/main.ts create mode 100644 helpers/app-api-tauri/package.json create mode 100644 helpers/app-api-web/.gitignore create mode 100644 helpers/app-api-web/main.ts create mode 100644 helpers/app-api-web/package.json create mode 100644 helpers/app-api-web/worker.js create mode 100644 helpers/app-auth/dist/index.gzip create mode 100644 helpers/app-auth/dist/index.sha256 create mode 100644 helpers/app-auth/index.html rename {ngaccount/web => helpers/app-auth}/jsconfig.json (100%) create mode 100644 helpers/app-auth/package.json create mode 100644 helpers/app-auth/pnpm-lock.yaml rename {ngone/web => helpers/app-auth}/postcss.config.cjs (100%) create mode 100644 helpers/app-auth/prepare-app-file.cjs create mode 100644 helpers/app-auth/src/App.svelte rename {ngone/web => helpers/app-auth}/src/app.postcss (100%) rename {ngone/web => helpers/app-auth}/src/assets/EU.svg (100%) mode change 100755 => 100644 rename {ngone/web => helpers/app-auth}/src/assets/nextgraph.svg (100%) create mode 100644 helpers/app-auth/src/lib/Home.svelte create mode 100644 helpers/app-auth/src/main.ts create mode 100644 helpers/app-auth/src/routes/Home.svelte create mode 100644 helpers/app-auth/src/store.ts rename {ngone/web => helpers/app-auth}/src/vite-env.d.ts (100%) create mode 100644 helpers/app-auth/src/worker.js create mode 100644 helpers/app-auth/svelte.config.js create mode 100644 helpers/app-auth/tailwind.config.cjs create mode 100644 helpers/app-auth/vite.config.js create mode 100644 helpers/net-auth/dist/index.html create mode 100644 helpers/net-auth/index.html create mode 100644 helpers/net-auth/jsconfig.json create mode 100644 helpers/net-auth/package.json create mode 100644 helpers/net-auth/pnpm-lock.yaml create mode 100644 helpers/net-auth/postcss.config.cjs create mode 100644 helpers/net-auth/prepare-app-file.cjs create mode 100644 helpers/net-auth/src/App.svelte create mode 100644 helpers/net-auth/src/app.postcss create mode 100644 helpers/net-auth/src/assets/EU.svg create mode 100644 helpers/net-auth/src/assets/nextgraph.svg create mode 100644 helpers/net-auth/src/lib/Home.svelte create mode 100644 helpers/net-auth/src/main.ts create mode 100644 helpers/net-auth/src/routes/Home.svelte create mode 100644 helpers/net-auth/src/store.ts create mode 100644 helpers/net-auth/src/vite-env.d.ts create mode 100644 helpers/net-auth/src/worker.js create mode 100644 helpers/net-auth/svelte.config.js create mode 100644 helpers/net-auth/tailwind.config.cjs create mode 100644 helpers/net-auth/vite.config.js create mode 100644 helpers/net-bootstrap/dist/index.html rename {ng-sdk-js/app-web => helpers/net-bootstrap}/index.html (67%) create mode 100644 helpers/net-bootstrap/jsconfig.json create mode 100644 helpers/net-bootstrap/package.json create mode 100644 helpers/net-bootstrap/src/main.ts create mode 100644 helpers/net-bootstrap/src/vite-env.d.ts create mode 100644 helpers/net-bootstrap/vite.config.js rename {ngaccount/web => helpers/nextgraphweb}/.gitignore (100%) create mode 100644 helpers/nextgraphweb/LICENSE-APACHE2 create mode 100644 helpers/nextgraphweb/LICENSE-MIT create mode 100644 helpers/nextgraphweb/README.md create mode 100644 helpers/nextgraphweb/package.json create mode 100644 helpers/nextgraphweb/src/index.ts create mode 100644 helpers/nextgraphweb/src/vite-env.d.ts create mode 100644 helpers/nextgraphweb/tsconfig.json create mode 100644 helpers/nextgraphweb/vite.config.ts rename {ngaccount => helpers/ngaccount}/.env (100%) rename {ngaccount => helpers/ngaccount}/.gitignore (100%) rename {ngaccount => helpers/ngaccount}/Cargo.toml (73%) rename {ngaccount => helpers/ngaccount}/README.md (75%) rename {ngaccount => helpers/ngaccount}/src/main.rs (100%) rename {ngaccount => helpers/ngaccount}/src/types.rs (100%) rename {ngone => helpers/ngaccount}/web/.gitignore (100%) rename {ngaccount => helpers/ngaccount}/web/.vscode/extensions.json (100%) rename {ngaccount => helpers/ngaccount}/web/index.html (100%) create mode 100644 helpers/ngaccount/web/jsconfig.json rename {ngaccount => helpers/ngaccount}/web/package.json (100%) create mode 100644 helpers/ngaccount/web/pnpm-lock.yaml create mode 100644 helpers/ngaccount/web/postcss.config.cjs rename {ngaccount => helpers/ngaccount}/web/public/robots.txt (100%) rename {ngaccount => helpers/ngaccount}/web/src/App.svelte (100%) create mode 100644 helpers/ngaccount/web/src/app.postcss create mode 100755 helpers/ngaccount/web/src/assets/EU.svg create mode 100644 helpers/ngaccount/web/src/assets/nextgraph.svg rename {ngone => helpers/ngaccount}/web/src/main.js (76%) rename {ngaccount => helpers/ngaccount}/web/src/routes/Create.svelte (96%) rename {ngaccount => helpers/ngaccount}/web/src/routes/Delete.svelte (97%) rename {ngaccount => helpers/ngaccount}/web/src/routes/Home.svelte (100%) rename {ngaccount => helpers/ngaccount}/web/src/routes/NotFound.svelte (100%) create mode 100644 helpers/ngaccount/web/src/vite-env.d.ts rename {ngaccount => helpers/ngaccount}/web/svelte.config.js (100%) rename {ngaccount => helpers/ngaccount}/web/tailwind.config.cjs (100%) create mode 100644 helpers/ngaccount/web/vite.config.js rename {ngone => helpers/ngapp}/.gitignore (100%) rename {ngone => helpers/ngapp}/Cargo.toml (62%) create mode 100644 helpers/ngapp/README.md create mode 100644 helpers/ngapp/src/main.rs rename {ngone => helpers/ngapp}/src/store/dynpeer.rs (100%) rename {ngone => helpers/ngapp}/src/store/mod.rs (100%) rename {ngone => helpers/ngapp}/src/store/wallet_record.rs (100%) rename {ngone => helpers/ngapp}/src/types.rs (100%) create mode 100644 helpers/ngapp/web/.gitignore rename {ngone => helpers/ngapp}/web/.vscode/extensions.json (100%) rename {ngone => helpers/ngapp}/web/index.html (100%) rename {ngone => helpers/ngapp}/web/jsconfig.json (100%) rename {ngone => helpers/ngapp}/web/package.json (94%) create mode 100644 helpers/ngapp/web/pnpm-lock.yaml create mode 100644 helpers/ngapp/web/postcss.config.cjs rename {ngone => helpers/ngapp}/web/public/robots.txt (100%) rename {ngone => helpers/ngapp}/web/src/App.svelte (100%) create mode 100644 helpers/ngapp/web/src/app.postcss create mode 100755 helpers/ngapp/web/src/assets/EU.svg create mode 100644 helpers/ngapp/web/src/assets/nextgraph.svg rename {ngaccount => helpers/ngapp}/web/src/main.js (100%) rename {ngone => helpers/ngapp}/web/src/routes/Home.svelte (100%) rename {ngone => helpers/ngapp}/web/src/routes/Install.svelte (100%) rename {ngone => helpers/ngapp}/web/src/routes/NotFound.svelte (100%) rename {ngone => helpers/ngapp}/web/src/routes/WalletCreate.svelte (100%) create mode 100644 helpers/ngapp/web/src/vite-env.d.ts rename {ngone => helpers/ngapp}/web/svelte.config.js (100%) rename {ngone => helpers/ngapp}/web/tailwind.config.cjs (91%) rename {ngone => helpers/ngapp}/web/vite.config.js (100%) create mode 100644 helpers/ngnet/.gitignore create mode 100644 helpers/ngnet/Cargo.toml create mode 100644 helpers/ngnet/README.md create mode 100644 helpers/ngnet/src/main.rs create mode 100644 helpers/ngnet/src/types.rs create mode 100644 helpers/ngnet/web/.gitignore create mode 100644 helpers/ngnet/web/.vscode/extensions.json create mode 100644 helpers/ngnet/web/index.html create mode 100644 helpers/ngnet/web/jsconfig.json create mode 100644 helpers/ngnet/web/package.json create mode 100644 helpers/ngnet/web/postcss.config.cjs create mode 100644 helpers/ngnet/web/public/robots.txt create mode 100644 helpers/ngnet/web/src/App.svelte create mode 100644 helpers/ngnet/web/src/app.postcss create mode 100755 helpers/ngnet/web/src/assets/EU.svg create mode 100644 helpers/ngnet/web/src/assets/nextgraph.svg create mode 100644 helpers/ngnet/web/src/main.js create mode 100644 helpers/ngnet/web/src/routes/Home.svelte create mode 100644 helpers/ngnet/web/src/routes/NotFound.svelte create mode 100644 helpers/ngnet/web/src/vite-env.d.ts create mode 100644 helpers/ngnet/web/svelte.config.js create mode 100644 helpers/ngnet/web/tailwind.config.cjs rename {ngaccount => helpers/ngnet}/web/vite.config.js (93%) create mode 100644 helpers/wasm-tools/.gitignore create mode 100644 helpers/wasm-tools/Cargo.toml create mode 100644 helpers/wasm-tools/LICENSE-APACHE2 create mode 100644 helpers/wasm-tools/LICENSE-MIT create mode 100644 helpers/wasm-tools/prepare-web.cjs create mode 100644 helpers/wasm-tools/src/lib.rs create mode 100644 ng-net/src/bsps.rs delete mode 100644 ng-sdk-js/app-web/package-lock.json delete mode 100644 ng-sdk-js/app-web/test.js delete mode 100644 ng-sdk-js/app-web/webpack.config.js rename ng-sdk-js/{app-web => example-webapp-vite}/.gitignore (100%) rename ng-sdk-js/{app-web => example-webapp-vite}/LICENSE-APACHE (100%) rename ng-sdk-js/{app-web => example-webapp-vite}/LICENSE-MIT (100%) rename ng-sdk-js/{app-web => example-webapp-vite}/README.md (55%) create mode 100644 ng-sdk-js/example-webapp-vite/index.html create mode 100644 ng-sdk-js/example-webapp-vite/package-lock.json rename ng-sdk-js/{app-web => example-webapp-vite}/package.json (52%) create mode 100644 ng-sdk-js/example-webapp-vite/src/main.js create mode 100644 ng-sdk-js/example-webapp-vite/vite.config.ts create mode 100644 ng-sdk-js/prepare-web.js create mode 100644 ng-wallet/src/permissions.rs delete mode 100644 ngaccount/web/pnpm-lock.yaml delete mode 100644 ngone/README.md delete mode 100644 ngone/src/main.rs delete mode 100644 ngone/web/pnpm-lock.yaml diff --git a/Cargo.lock b/Cargo.lock index 5ea42ea..d2ede13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1397,9 +1397,9 @@ checksum = "8f215f9b7224f49fb73256115331f677d868b34d18b65dbe4db392e6021eea90" [[package]] name = "deranged" -version = "0.3.11" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", "serde", @@ -1519,7 +1519,7 @@ dependencies = [ "rust_decimal", "serde", "thiserror", - "time 0.3.36", + "time 0.3.41", ] [[package]] @@ -3323,6 +3323,7 @@ dependencies = [ "serde_bare", "serde_json", "tempfile", + "urlencoding", ] [[package]] @@ -3369,6 +3370,7 @@ dependencies = [ "serde_bare", "serde_bytes", "serde_json", + "time 0.3.41", "unique_id", "url", "web-time", @@ -3433,7 +3435,7 @@ dependencies = [ "serde_bytes", "serde_json", "slice_as_array", - "time 0.3.36", + "time 0.3.41", "wasm-bindgen", "web-time", "zeroize", @@ -3610,6 +3612,26 @@ dependencies = [ "warp-embed", ] +[[package]] +name = "ngapp" +version = "0.1.1-alpha" +dependencies = [ + "base64-url", + "bytes", + "env_logger", + "log", + "ng-net", + "ng-repo", + "ng-storage-rocksdb", + "ng-wallet", + "rust-embed", + "serde_bare", + "serde_json", + "tokio", + "warp", + "warp-embed", +] + [[package]] name = "ngcli" version = "0.1.1-alpha" @@ -3651,20 +3673,18 @@ dependencies = [ ] [[package]] -name = "ngone" +name = "ngnet" version = "0.1.1-alpha" dependencies = [ - "base64-url", - "bytes", + "anyhow", + "duration-str", "env_logger", "log", + "ng-client-ws", "ng-net", "ng-repo", - "ng-storage-rocksdb", - "ng-wallet", "rust-embed", - "serde_bare", - "serde_json", + "serde", "tokio", "warp", "warp-embed", @@ -4298,7 +4318,7 @@ dependencies = [ "line-wrap", "quick-xml 0.28.2", "serde", - "time 0.3.36", + "time 0.3.41", ] [[package]] @@ -5183,7 +5203,7 @@ dependencies = [ "serde", "serde_json", "serde_with_macros", - "time 0.3.36", + "time 0.3.41", ] [[package]] @@ -5753,7 +5773,7 @@ dependencies = [ "sha2 0.10.8", "tauri-utils", "thiserror", - "time 0.3.36", + "time 0.3.41", "url", "uuid", "walkdir", @@ -5973,9 +5993,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa 1.0.6", @@ -5991,15 +6011,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -6365,6 +6385,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "usvg" version = "0.42.0" @@ -6552,11 +6578,13 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "serde", "serde_json", "wasm-bindgen-macro", @@ -6564,13 +6592,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", "syn 2.0.98", @@ -6591,9 +6618,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6601,9 +6628,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", @@ -6614,9 +6641,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-bindgen-test" @@ -6655,6 +6685,20 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasm-tools" +version = "0.1.1" +dependencies = [ + "ng-wallet", + "serde", + "serde-wasm-bindgen", + "serde_bare", + "sys-locale", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test", +] + [[package]] name = "web-sys" version = "0.3.64" diff --git a/Cargo.toml b/Cargo.toml index cfdf724..88fbb89 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,12 +10,14 @@ members = [ "ng-verifier", "ng-wallet", "ng-storage-rocksdb", - "ngone", - "ngaccount", "ng-sdk-js", "ng-sdk-python", "ng-app/src-tauri", "ng-oxigraph", + "helpers/wasm-tools", + "helpers/ngnet", + "helpers/ngapp", + "helpers/ngaccount", ] default-members = [ "nextgraph", "ngcli", "ngd" ] diff --git a/DEV.md b/DEV.md index a5bd944..4e6a0bd 100644 --- a/DEV.md +++ b/DEV.md @@ -9,7 +9,7 @@ On OpenBSD, for LLVM you need to choose llvm-17. Until this [PR](https://github.com/rustwasm/wasm-pack/pull/1271) is accepted, will have to install wasm-pack this way: ``` -cargo install wasm-pack --git https://github.com/rustwasm/wasm-pack.git --rev c2b663f25abe50631a236d57a8c6d7fd806413b2 +cargo install wasm-pack --git https://git.nextgraph.org/NextGraph/wasm-pack.git --branch master ``` On Debian distros @@ -27,11 +27,10 @@ cd nextgraph-rs npm install -g pnpm cd ng-sdk-js cargo run-script app -npm install --no-save pkg -cd ../ng-app -pnpm install -pnpm webfilebuild cd .. +pnpm -C ./ng-app install +pnpm -C ./ng-app webfilebuild +pnpm -C ./helpers/app-auth run build ``` For building the native apps, see the [ng-app/README](ng-app/README.md) @@ -50,6 +49,8 @@ If you are developing also the front-end, you should run it with this command in ``` cd ng-app +pnpm -C ../helpers/net-auth run builddev +pnpm -C ../helpers/net-bootstrap run builddev pnpm webdev ``` @@ -116,8 +117,7 @@ The crates are organized as follow : - ng-broker : Core and Server Broker library - ng-client-ws : Websocket client library - ng-storage-rocksdb : RocksDB backed stores. see also dependency [repo here](https://git.nextgraph.org/NextGraph/rust-rocksdb) -- ngone : server for nextgraph.one. helps user bootstrap into the right app. Not useful to you. Published here for transparency -- ngaccount : server for nextgraph's Broker Service Provider account manager. Not useful to you. Published here for transparency +- helpers : all kind of servers and front end code needed for our infrastructure. ### Test @@ -177,7 +177,6 @@ cargo install cargo-run-script npm install -g pnpm cd ng-sdk-js cargo run-script app -npm install --no-save pkg cd ../ng-app pnpm install pnpm webfilebuild diff --git a/README.md b/README.md index bdf6686..d2046e0 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,8 @@ [![project chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://forum.nextgraph.org) [![Crates.io Version](https://img.shields.io/crates/v/nextgraph)](https://crates.io/crates/nextgraph) [![docs.rs](https://img.shields.io/docsrs/nextgraph)](https://docs.rs/nextgraph) -[![NPM Version](https://img.shields.io/npm/v/nextgraph)](https://www.npmjs.com/package/nextgraph) +[node:![NPM Version node](https://img.shields.io/npm/v/nextgraph)](https://www.npmjs.com/package/nextgraph) +[web:![NPM Version web](https://img.shields.io/npm/v/nextgraphweb)](https://www.npmjs.com/package/nextgraphweb) [![PyPI - Version](https://img.shields.io/pypi/v/nextgraphpy)](https://pypi.org/project/nextgraphpy/) Rust implementation of NextGraph diff --git a/common/.gitignore b/common/.gitignore new file mode 100644 index 0000000..2007f51 --- /dev/null +++ b/common/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +index.html + +node_modules +dist +dist-web +dist-file +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/common/.vscode/extensions.json b/common/.vscode/extensions.json new file mode 100644 index 0000000..81db86a --- /dev/null +++ b/common/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "svelte.svelte-vscode", + "rust-lang.rust-analyzer" + ] +} diff --git a/common/README.md b/common/README.md new file mode 100644 index 0000000..8f20ebc --- /dev/null +++ b/common/README.md @@ -0,0 +1,2 @@ +# NextGraph common Svelte components + diff --git a/common/package.json b/common/package.json new file mode 100644 index 0000000..54884b1 --- /dev/null +++ b/common/package.json @@ -0,0 +1,68 @@ +{ + "name": "@nextgraph-monorepo/common", + "private": true, + "version": "0.1.1-alpha", + "type": "module", + "scripts": { + "dev": "vite", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.json" + }, + "main": "src/main.ts", + "exports": { + ".": "./src/main.ts", + "./store": "./src/store.ts", + "./api": "./src/api.ts", + "./routes": "./src/routes/index.ts", + "./lib": "./src/lib/index.ts", + "./lang": "./src/lang.ts", + "./components": "./src/lib/component.ts" + }, + "dependencies": { + "@sindresorhus/is": "4.6.0", + "@tailwindcss/typography": "^0.5.13", + "async-proxy": "^0.4.1", + "char-regex": "1.0.2", + "classnames": "^2.3.2", + "debug": "^4.3.6", + "emojilib": "2.4.0", + "extend": "3.0.2", + "flowbite": "^1.6.5", + "flowbite-svelte": "^0.43.3", + "html5-qrcode": "^2.3.8", + "immutable-json-patch": "^6.0.1", + "lodash.debounce": "4.0.8", + "skin-tone": "2.0.0", + "style-mod": "^4.1.2", + "svelte-i18n": "^4.0.0", + "svelte-inview": "^4.0.2", + "svelte-spa-router": "^3.3.0", + "vite-plugin-top-level-await": "1.3.1", + "xml-beautifier": "^0.5.0" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "2.0.0", + "@swc/core": "~1.6.0", + "@tsconfig/svelte": "^3.0.0", + "@types/node": "^18.7.10", + "autoprefixer": "^10.4.14", + "dayjs": "^1.11.10", + "internal-ip": "^7.0.0", + "postcss": "^8.4.23", + "postcss-load-config": "^4.0.1", + "prettier": "^3.3.2", + "prettier-plugin-svelte": "^3.2.5", + "shx": "^0.3.4", + "svelte": "^3.54.0", + "svelte-check": "^3.0.0", + "svelte-heros-v2": "^0.10.12", + "svelte-preprocess": "^5.0.3", + "svelte-time": "^0.8.0", + "tailwindcss": "^3.3.1", + "tslib": "^2.4.1", + "typescript": "^4.9.5", + "vite": "4.2.1", + "vite-plugin-svelte-svg": "2.2.1", + "vite-plugin-wasm": "3.2.2" + } +} diff --git a/ngaccount/web/postcss.config.cjs b/common/postcss.config.cjs similarity index 100% rename from ngaccount/web/postcss.config.cjs rename to common/postcss.config.cjs diff --git a/common/src/App.svelte b/common/src/App.svelte new file mode 100644 index 0000000..5efea6a --- /dev/null +++ b/common/src/App.svelte @@ -0,0 +1,310 @@ + + + + + + +{#if $isLoading} +

Loading translations...

+{:else} + +{/if} diff --git a/common/src/api.ts b/common/src/api.ts new file mode 100644 index 0000000..25f74ca --- /dev/null +++ b/common/src/api.ts @@ -0,0 +1,44 @@ +// Copyright (c) 2022-2025 Niko Bonnieure, Par le Peuple, NextGraph.org developers +// All rights reserved. +// Licensed under the Apache License, Version 2.0 +// +// or the MIT license , +// at your option. All files in the project carrying such +// notice may not be copied, modified, or distributed except +// according to those terms. +import {createAsyncProxy} from "async-proxy"; + +let proxy = null; + +let api = createAsyncProxy({},{ + async apply(target, path, caller, args) { + if (proxy) { + //console.log("calling ",path, args); + return Reflect.apply(proxy[path], caller, args) + } + else + throw new Error("You must call init_api() before using the API. load an API from @nextgraph-monorepo/app_api_tauri or @nextgraph-monorepo/app_api_web"); + } +}); + +export default api; + +export const NG_EU_BSP = "https://nextgraph.eu"; +export const NG_EU_BSP_REGISTER = import.meta.env.PROD +? "https://account.nextgraph.eu/#/create" +: "http://account-dev.nextgraph.eu:5173/#/create"; + +export const NG_NET_BSP = "https://nextgraph.net"; +export const NG_NET_BSP_REGISTER = import.meta.env.PROD +? "https://account.nextgraph.net/#/create" +: "http://account-dev.nextgraph.net:5173/#/create"; + +export const APP_ACCOUNT_REGISTERED_SUFFIX = "/#/user/registered"; +export const APP_WALLET_CREATE_SUFFIX = "/#/wallet/create"; + +export const LINK_NG_BOX = "https://nextgraph.org/ng-box/"; +export const LINK_SELF_HOST = "https://nextgraph.org/self-host/"; + +export const init_api = function (a) { + proxy = a; +} diff --git a/ngaccount/web/src/app.postcss b/common/src/app.postcss similarity index 100% rename from ngaccount/web/src/app.postcss rename to common/src/app.postcss diff --git a/ngaccount/web/src/assets/EU.svg b/common/src/assets/EU.svg similarity index 100% rename from ngaccount/web/src/assets/EU.svg rename to common/src/assets/EU.svg diff --git a/common/src/assets/nextgraph-nofill.svg b/common/src/assets/nextgraph-nofill.svg new file mode 100644 index 0000000..2cf436e --- /dev/null +++ b/common/src/assets/nextgraph-nofill.svg @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/ngaccount/web/src/assets/nextgraph.svg b/common/src/assets/nextgraph.svg similarity index 100% rename from ngaccount/web/src/assets/nextgraph.svg rename to common/src/assets/nextgraph.svg diff --git a/common/src/assets/pazzle/emoji_u1f308.svg b/common/src/assets/pazzle/emoji_u1f308.svg new file mode 100644 index 0000000..b5ee709 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f308.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f30c.svg b/common/src/assets/pazzle/emoji_u1f30c.svg new file mode 100644 index 0000000..d81874e --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f30c.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f319.svg b/common/src/assets/pazzle/emoji_u1f319.svg new file mode 100644 index 0000000..175db6c --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f319.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f321.svg b/common/src/assets/pazzle/emoji_u1f321.svg new file mode 100644 index 0000000..d220f19 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f321.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f327.svg b/common/src/assets/pazzle/emoji_u1f327.svg new file mode 100644 index 0000000..5de20d7 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f327.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f332.svg b/common/src/assets/pazzle/emoji_u1f332.svg new file mode 100644 index 0000000..b0beffe --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f332.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f334.svg b/common/src/assets/pazzle/emoji_u1f334.svg new file mode 100644 index 0000000..d1f81ed --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f334.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f335.svg b/common/src/assets/pazzle/emoji_u1f335.svg new file mode 100644 index 0000000..c16e7a2 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f335.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f336.svg b/common/src/assets/pazzle/emoji_u1f336.svg new file mode 100644 index 0000000..3309c71 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f336.svg @@ -0,0 +1,19 @@ + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f339.svg b/common/src/assets/pazzle/emoji_u1f339.svg new file mode 100644 index 0000000..9944e20 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f339.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f33b.svg b/common/src/assets/pazzle/emoji_u1f33b.svg new file mode 100644 index 0000000..c996064 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f33b.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f33d.svg b/common/src/assets/pazzle/emoji_u1f33d.svg new file mode 100644 index 0000000..59637f3 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f33d.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f340.svg b/common/src/assets/pazzle/emoji_u1f340.svg new file mode 100644 index 0000000..8ac5cc6 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f340.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f342.svg b/common/src/assets/pazzle/emoji_u1f342.svg new file mode 100644 index 0000000..bb62029 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f342.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f344.svg b/common/src/assets/pazzle/emoji_u1f344.svg new file mode 100644 index 0000000..bda8301 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f344.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f346.svg b/common/src/assets/pazzle/emoji_u1f346.svg new file mode 100644 index 0000000..f688a3a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f346.svg @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f347.svg b/common/src/assets/pazzle/emoji_u1f347.svg new file mode 100644 index 0000000..ae77baa --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f347.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f349.svg b/common/src/assets/pazzle/emoji_u1f349.svg new file mode 100644 index 0000000..cccec56 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f349.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f34b.svg b/common/src/assets/pazzle/emoji_u1f34b.svg new file mode 100644 index 0000000..2d946d0 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f34b.svg @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f34c.svg b/common/src/assets/pazzle/emoji_u1f34c.svg new file mode 100644 index 0000000..2a91024 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f34c.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f34d.svg b/common/src/assets/pazzle/emoji_u1f34d.svg new file mode 100644 index 0000000..444033d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f34d.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f34e.svg b/common/src/assets/pazzle/emoji_u1f34e.svg new file mode 100644 index 0000000..6a25a22 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f34e.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f352.svg b/common/src/assets/pazzle/emoji_u1f352.svg new file mode 100644 index 0000000..38f0a5f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f352.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f353.svg b/common/src/assets/pazzle/emoji_u1f353.svg new file mode 100644 index 0000000..f22928e --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f353.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f355.svg b/common/src/assets/pazzle/emoji_u1f355.svg new file mode 100644 index 0000000..f877c6a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f355.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f366.svg b/common/src/assets/pazzle/emoji_u1f366.svg new file mode 100644 index 0000000..25f6bd3 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f366.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f36a.svg b/common/src/assets/pazzle/emoji_u1f36a.svg new file mode 100644 index 0000000..835417a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f36a.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f36b.svg b/common/src/assets/pazzle/emoji_u1f36b.svg new file mode 100644 index 0000000..330caf0 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f36b.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f36c.svg b/common/src/assets/pazzle/emoji_u1f36c.svg new file mode 100644 index 0000000..6d3ec22 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f36c.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f370.svg b/common/src/assets/pazzle/emoji_u1f370.svg new file mode 100644 index 0000000..489c821 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f370.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f373.svg b/common/src/assets/pazzle/emoji_u1f373.svg new file mode 100644 index 0000000..40a9afb --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f373.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f377.svg b/common/src/assets/pazzle/emoji_u1f377.svg new file mode 100644 index 0000000..235a524 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f377.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f37e.svg b/common/src/assets/pazzle/emoji_u1f37e.svg new file mode 100644 index 0000000..f732526 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f37e.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f381.svg b/common/src/assets/pazzle/emoji_u1f381.svg new file mode 100644 index 0000000..73a6e7b --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f381.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f388.svg b/common/src/assets/pazzle/emoji_u1f388.svg new file mode 100644 index 0000000..39d20d0 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f388.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3a8.svg b/common/src/assets/pazzle/emoji_u1f3a8.svg new file mode 100644 index 0000000..fe5bdca --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3a8.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3aa.svg b/common/src/assets/pazzle/emoji_u1f3aa.svg new file mode 100644 index 0000000..8b2ca71 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3aa.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3af.svg b/common/src/assets/pazzle/emoji_u1f3af.svg new file mode 100644 index 0000000..fc7b9b2 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3af.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3b2.svg b/common/src/assets/pazzle/emoji_u1f3b2.svg new file mode 100644 index 0000000..52f6bdb --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3b2.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3b5.svg b/common/src/assets/pazzle/emoji_u1f3b5.svg new file mode 100644 index 0000000..4977a8f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3b5.svg @@ -0,0 +1,9 @@ + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3b7.svg b/common/src/assets/pazzle/emoji_u1f3b7.svg new file mode 100644 index 0000000..f384d47 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3b7.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3b8.svg b/common/src/assets/pazzle/emoji_u1f3b8.svg new file mode 100644 index 0000000..4fbd30e --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3b8.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3be.svg b/common/src/assets/pazzle/emoji_u1f3be.svg new file mode 100644 index 0000000..decae68 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3be.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3c0.svg b/common/src/assets/pazzle/emoji_u1f3c0.svg new file mode 100644 index 0000000..f22cb72 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3c0.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3c4.svg b/common/src/assets/pazzle/emoji_u1f3c4.svg new file mode 100644 index 0000000..c656dc7 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3c4.svg @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3c7.svg b/common/src/assets/pazzle/emoji_u1f3c7.svg new file mode 100644 index 0000000..2bc7a47 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3c7.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3ca.svg b/common/src/assets/pazzle/emoji_u1f3ca.svg new file mode 100644 index 0000000..3c3fcb3 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3ca.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3cb.svg b/common/src/assets/pazzle/emoji_u1f3cb.svg new file mode 100644 index 0000000..96cbb65 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3cb.svg @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3cd.svg b/common/src/assets/pazzle/emoji_u1f3cd.svg new file mode 100644 index 0000000..9187d65 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3cd.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3d3.svg b/common/src/assets/pazzle/emoji_u1f3d3.svg new file mode 100644 index 0000000..8d0d537 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3d3.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3d4.svg b/common/src/assets/pazzle/emoji_u1f3d4.svg new file mode 100644 index 0000000..a1ca56a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3d4.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3d5.svg b/common/src/assets/pazzle/emoji_u1f3d5.svg new file mode 100644 index 0000000..541b3a7 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3d5.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3d6.svg b/common/src/assets/pazzle/emoji_u1f3d6.svg new file mode 100644 index 0000000..9bf0b09 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3d6.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3db.svg b/common/src/assets/pazzle/emoji_u1f3db.svg new file mode 100644 index 0000000..1f7f8ee --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3db.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f3e1.svg b/common/src/assets/pazzle/emoji_u1f3e1.svg new file mode 100644 index 0000000..d638585 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f3e1.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f406.svg b/common/src/assets/pazzle/emoji_u1f406.svg new file mode 100644 index 0000000..2d18170 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f406.svg @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f407.svg b/common/src/assets/pazzle/emoji_u1f407.svg new file mode 100644 index 0000000..aa27feb --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f407.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f40c.svg b/common/src/assets/pazzle/emoji_u1f40c.svg new file mode 100644 index 0000000..d8910bd --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f40c.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f40d.svg b/common/src/assets/pazzle/emoji_u1f40d.svg new file mode 100644 index 0000000..06dd404 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f40d.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f410.svg b/common/src/assets/pazzle/emoji_u1f410.svg new file mode 100644 index 0000000..bbf0ca1 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f410.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f411.svg b/common/src/assets/pazzle/emoji_u1f411.svg new file mode 100644 index 0000000..3072eec --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f411.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f413.svg b/common/src/assets/pazzle/emoji_u1f413.svg new file mode 100644 index 0000000..4999124 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f413.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f416.svg b/common/src/assets/pazzle/emoji_u1f416.svg new file mode 100644 index 0000000..806d988 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f416.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f418.svg b/common/src/assets/pazzle/emoji_u1f418.svg new file mode 100644 index 0000000..a839332 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f418.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f419.svg b/common/src/assets/pazzle/emoji_u1f419.svg new file mode 100644 index 0000000..2955602 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f419.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f41a.svg b/common/src/assets/pazzle/emoji_u1f41a.svg new file mode 100644 index 0000000..d06a960 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f41a.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f41c.svg b/common/src/assets/pazzle/emoji_u1f41c.svg new file mode 100644 index 0000000..236e068 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f41c.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f41d.svg b/common/src/assets/pazzle/emoji_u1f41d.svg new file mode 100644 index 0000000..7411501 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f41d.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f41e.svg b/common/src/assets/pazzle/emoji_u1f41e.svg new file mode 100644 index 0000000..78ae415 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f41e.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f41f.svg b/common/src/assets/pazzle/emoji_u1f41f.svg new file mode 100644 index 0000000..52d3f31 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f41f.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f422.svg b/common/src/assets/pazzle/emoji_u1f422.svg new file mode 100644 index 0000000..787db2f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f422.svg @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f423.svg b/common/src/assets/pazzle/emoji_u1f423.svg new file mode 100644 index 0000000..4b4b8bf --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f423.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f427.svg b/common/src/assets/pazzle/emoji_u1f427.svg new file mode 100644 index 0000000..7224a0d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f427.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f42a.svg b/common/src/assets/pazzle/emoji_u1f42a.svg new file mode 100644 index 0000000..91a8c3f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f42a.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f42c.svg b/common/src/assets/pazzle/emoji_u1f42c.svg new file mode 100644 index 0000000..db95f11 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f42c.svg @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f433.svg b/common/src/assets/pazzle/emoji_u1f433.svg new file mode 100644 index 0000000..52ad3f5 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f433.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f434.svg b/common/src/assets/pazzle/emoji_u1f434.svg new file mode 100644 index 0000000..6cc65dd --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f434.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f436.svg b/common/src/assets/pazzle/emoji_u1f436.svg new file mode 100755 index 0000000..51b2e46 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f436.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f43b_200d_2744.svg b/common/src/assets/pazzle/emoji_u1f43b_200d_2744.svg new file mode 100644 index 0000000..672964c --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f43b_200d_2744.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f441.svg b/common/src/assets/pazzle/emoji_u1f441.svg new file mode 100644 index 0000000..4086d5e --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f441.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f442.svg b/common/src/assets/pazzle/emoji_u1f442.svg new file mode 100644 index 0000000..4875a19 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f442.svg @@ -0,0 +1,24 @@ + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f443.svg b/common/src/assets/pazzle/emoji_u1f443.svg new file mode 100644 index 0000000..c976808 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f443.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f444.svg b/common/src/assets/pazzle/emoji_u1f444.svg new file mode 100644 index 0000000..3f7b842 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f444.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f445.svg b/common/src/assets/pazzle/emoji_u1f445.svg new file mode 100644 index 0000000..84cdec4 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f445.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f44d.svg b/common/src/assets/pazzle/emoji_u1f44d.svg new file mode 100644 index 0000000..1ab4a46 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f44d.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f450.svg b/common/src/assets/pazzle/emoji_u1f450.svg new file mode 100644 index 0000000..455c73d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f450.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f455.svg b/common/src/assets/pazzle/emoji_u1f455.svg new file mode 100644 index 0000000..3900fdb --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f455.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f456.svg b/common/src/assets/pazzle/emoji_u1f456.svg new file mode 100644 index 0000000..1d870ca --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f456.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f457.svg b/common/src/assets/pazzle/emoji_u1f457.svg new file mode 100644 index 0000000..0713080 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f457.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f45f.svg b/common/src/assets/pazzle/emoji_u1f45f.svg new file mode 100755 index 0000000..8a4aa85 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f45f.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f477.svg b/common/src/assets/pazzle/emoji_u1f477.svg new file mode 100755 index 0000000..466693c --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f477.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f478.svg b/common/src/assets/pazzle/emoji_u1f478.svg new file mode 100755 index 0000000..c7ce99f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f478.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f47b.svg b/common/src/assets/pazzle/emoji_u1f47b.svg new file mode 100644 index 0000000..02c3add --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f47b.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f48b.svg b/common/src/assets/pazzle/emoji_u1f48b.svg new file mode 100644 index 0000000..37abc79 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f48b.svg @@ -0,0 +1,17 @@ + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f48c.svg b/common/src/assets/pazzle/emoji_u1f48c.svg new file mode 100644 index 0000000..b33f82d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f48c.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f490.svg b/common/src/assets/pazzle/emoji_u1f490.svg new file mode 100644 index 0000000..87008df --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f490.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f495.svg b/common/src/assets/pazzle/emoji_u1f495.svg new file mode 100644 index 0000000..275c579 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f495.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f4a1.svg b/common/src/assets/pazzle/emoji_u1f4a1.svg new file mode 100644 index 0000000..44bd7b8 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f4a1.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f4a5.svg b/common/src/assets/pazzle/emoji_u1f4a5.svg new file mode 100644 index 0000000..2383877 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f4a5.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f4a6.svg b/common/src/assets/pazzle/emoji_u1f4a6.svg new file mode 100644 index 0000000..da032a8 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f4a6.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f4aa.svg b/common/src/assets/pazzle/emoji_u1f4aa.svg new file mode 100644 index 0000000..def6dcb --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f4aa.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f4af.svg b/common/src/assets/pazzle/emoji_u1f4af.svg new file mode 100644 index 0000000..f4035af --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f4af.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f4cc.svg b/common/src/assets/pazzle/emoji_u1f4cc.svg new file mode 100644 index 0000000..6d9ecd4 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f4cc.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f4ce.svg b/common/src/assets/pazzle/emoji_u1f4ce.svg new file mode 100644 index 0000000..21f9f8c --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f4ce.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f4da.svg b/common/src/assets/pazzle/emoji_u1f4da.svg new file mode 100644 index 0000000..b7532f4 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f4da.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f4e6.svg b/common/src/assets/pazzle/emoji_u1f4e6.svg new file mode 100644 index 0000000..945ba61 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f4e6.svg @@ -0,0 +1,714 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f50d.svg b/common/src/assets/pazzle/emoji_u1f50d.svg new file mode 100644 index 0000000..3e2470b --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f50d.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f511.svg b/common/src/assets/pazzle/emoji_u1f511.svg new file mode 100644 index 0000000..c24fe44 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f511.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f513.svg b/common/src/assets/pazzle/emoji_u1f513.svg new file mode 100644 index 0000000..7787e24 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f513.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f525.svg b/common/src/assets/pazzle/emoji_u1f525.svg new file mode 100644 index 0000000..e94a652 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f525.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f590.svg b/common/src/assets/pazzle/emoji_u1f590.svg new file mode 100644 index 0000000..573811a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f590.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f600.svg b/common/src/assets/pazzle/emoji_u1f600.svg new file mode 100644 index 0000000..3cb84a6 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f600.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f602.svg b/common/src/assets/pazzle/emoji_u1f602.svg new file mode 100644 index 0000000..d4134c8 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f602.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f607.svg b/common/src/assets/pazzle/emoji_u1f607.svg new file mode 100644 index 0000000..62d2c67 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f607.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f60d.svg b/common/src/assets/pazzle/emoji_u1f60d.svg new file mode 100644 index 0000000..0f78589 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f60d.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f60e.svg b/common/src/assets/pazzle/emoji_u1f60e.svg new file mode 100644 index 0000000..fcff42b --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f60e.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f618.svg b/common/src/assets/pazzle/emoji_u1f618.svg new file mode 100644 index 0000000..5762862 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f618.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f61d.svg b/common/src/assets/pazzle/emoji_u1f61d.svg new file mode 100644 index 0000000..3a043f1 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f61d.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f624.svg b/common/src/assets/pazzle/emoji_u1f624.svg new file mode 100644 index 0000000..f0ca113 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f624.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f62d.svg b/common/src/assets/pazzle/emoji_u1f62d.svg new file mode 100644 index 0000000..3566792 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f62d.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f631.svg b/common/src/assets/pazzle/emoji_u1f631.svg new file mode 100644 index 0000000..72d2224 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f631.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f634.svg b/common/src/assets/pazzle/emoji_u1f634.svg new file mode 100644 index 0000000..2ede810 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f634.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f635.svg b/common/src/assets/pazzle/emoji_u1f635.svg new file mode 100644 index 0000000..d015488 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f635.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f637.svg b/common/src/assets/pazzle/emoji_u1f637.svg new file mode 100644 index 0000000..9c97533 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f637.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f638.svg b/common/src/assets/pazzle/emoji_u1f638.svg new file mode 100644 index 0000000..ebb496c --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f638.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f63f.svg b/common/src/assets/pazzle/emoji_u1f63f.svg new file mode 100644 index 0000000..f1fbe1c --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f63f.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f640.svg b/common/src/assets/pazzle/emoji_u1f640.svg new file mode 100644 index 0000000..d25641f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f640.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f644.svg b/common/src/assets/pazzle/emoji_u1f644.svg new file mode 100644 index 0000000..2f50cdd --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f644.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f648.svg b/common/src/assets/pazzle/emoji_u1f648.svg new file mode 100644 index 0000000..f4f361f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f648.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f649.svg b/common/src/assets/pazzle/emoji_u1f649.svg new file mode 100644 index 0000000..86358b7 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f649.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f64a.svg b/common/src/assets/pazzle/emoji_u1f64a.svg new file mode 100644 index 0000000..edb2970 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f64a.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f64f.svg b/common/src/assets/pazzle/emoji_u1f64f.svg new file mode 100644 index 0000000..b835fdc --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f64f.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f680.svg b/common/src/assets/pazzle/emoji_u1f680.svg new file mode 100644 index 0000000..4a4f061 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f680.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f681.svg b/common/src/assets/pazzle/emoji_u1f681.svg new file mode 100644 index 0000000..b6fb879 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f681.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f682.svg b/common/src/assets/pazzle/emoji_u1f682.svg new file mode 100644 index 0000000..d65ca15 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f682.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f695.svg b/common/src/assets/pazzle/emoji_u1f695.svg new file mode 100644 index 0000000..0f6848e --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f695.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f6a3.svg b/common/src/assets/pazzle/emoji_u1f6a3.svg new file mode 100644 index 0000000..291b7ba --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f6a3.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f6b4.svg b/common/src/assets/pazzle/emoji_u1f6b4.svg new file mode 100644 index 0000000..8b3079e --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f6b4.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f6c1.svg b/common/src/assets/pazzle/emoji_u1f6c1.svg new file mode 100644 index 0000000..04ee852 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f6c1.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f6d2.svg b/common/src/assets/pazzle/emoji_u1f6d2.svg new file mode 100644 index 0000000..2e53cf1 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f6d2.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f6f4.svg b/common/src/assets/pazzle/emoji_u1f6f4.svg new file mode 100644 index 0000000..61a0974 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f6f4.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f6fc.svg b/common/src/assets/pazzle/emoji_u1f6fc.svg new file mode 100644 index 0000000..42ffdfb --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f6fc.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f910.svg b/common/src/assets/pazzle/emoji_u1f910.svg new file mode 100644 index 0000000..3c93809 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f910.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f912.svg b/common/src/assets/pazzle/emoji_u1f912.svg new file mode 100644 index 0000000..8bdab4d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f912.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f915.svg b/common/src/assets/pazzle/emoji_u1f915.svg new file mode 100644 index 0000000..4ec522a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f915.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f917.svg b/common/src/assets/pazzle/emoji_u1f917.svg new file mode 100644 index 0000000..c6d87f9 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f917.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f91d.svg b/common/src/assets/pazzle/emoji_u1f91d.svg new file mode 100644 index 0000000..bfcfbb2 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f91d.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f921.svg b/common/src/assets/pazzle/emoji_u1f921.svg new file mode 100644 index 0000000..088c955 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f921.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f925.svg b/common/src/assets/pazzle/emoji_u1f925.svg new file mode 100644 index 0000000..1e25e1f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f925.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f927.svg b/common/src/assets/pazzle/emoji_u1f927.svg new file mode 100644 index 0000000..b0a0dc2 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f927.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f92d.svg b/common/src/assets/pazzle/emoji_u1f92d.svg new file mode 100644 index 0000000..7692782 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f92d.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f92e.svg b/common/src/assets/pazzle/emoji_u1f92e.svg new file mode 100644 index 0000000..6e3707b --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f92e.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f92f.svg b/common/src/assets/pazzle/emoji_u1f92f.svg new file mode 100644 index 0000000..84afe47 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f92f.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f93a.svg b/common/src/assets/pazzle/emoji_u1f93a.svg new file mode 100644 index 0000000..6a53cbe --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f93a.svg @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f93c.svg b/common/src/assets/pazzle/emoji_u1f93c.svg new file mode 100644 index 0000000..6c1569b --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f93c.svg @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f93f.svg b/common/src/assets/pazzle/emoji_u1f93f.svg new file mode 100644 index 0000000..3912b8b --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f93f.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f942.svg b/common/src/assets/pazzle/emoji_u1f942.svg new file mode 100644 index 0000000..d896645 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f942.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f94b.svg b/common/src/assets/pazzle/emoji_u1f94b.svg new file mode 100644 index 0000000..8154f8c --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f94b.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f950.svg b/common/src/assets/pazzle/emoji_u1f950.svg new file mode 100644 index 0000000..2899b99 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f950.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f951.svg b/common/src/assets/pazzle/emoji_u1f951.svg new file mode 100644 index 0000000..3f71933 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f951.svg @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f955.svg b/common/src/assets/pazzle/emoji_u1f955.svg new file mode 100644 index 0000000..91b9347 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f955.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f956.svg b/common/src/assets/pazzle/emoji_u1f956.svg new file mode 100644 index 0000000..676cf5f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f956.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f95d.svg b/common/src/assets/pazzle/emoji_u1f95d.svg new file mode 100644 index 0000000..1ce988a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f95d.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f968.svg b/common/src/assets/pazzle/emoji_u1f968.svg new file mode 100644 index 0000000..dac4f3d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f968.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f970.svg b/common/src/assets/pazzle/emoji_u1f970.svg new file mode 100644 index 0000000..8fc9388 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f970.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f971.svg b/common/src/assets/pazzle/emoji_u1f971.svg new file mode 100644 index 0000000..16288d8 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f971.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f973.svg b/common/src/assets/pazzle/emoji_u1f973.svg new file mode 100755 index 0000000..f7e3b6e --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f973.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f975.svg b/common/src/assets/pazzle/emoji_u1f975.svg new file mode 100644 index 0000000..0cc7a05 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f975.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f976.svg b/common/src/assets/pazzle/emoji_u1f976.svg new file mode 100644 index 0000000..6c2bc82 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f976.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f981.svg b/common/src/assets/pazzle/emoji_u1f981.svg new file mode 100644 index 0000000..16500cf --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f981.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f985.svg b/common/src/assets/pazzle/emoji_u1f985.svg new file mode 100644 index 0000000..2161bcb --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f985.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f986.svg b/common/src/assets/pazzle/emoji_u1f986.svg new file mode 100644 index 0000000..797f0eb --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f986.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f987.svg b/common/src/assets/pazzle/emoji_u1f987.svg new file mode 100644 index 0000000..ff61e50 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f987.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f989.svg b/common/src/assets/pazzle/emoji_u1f989.svg new file mode 100644 index 0000000..a2d02b5 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f989.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f98b.svg b/common/src/assets/pazzle/emoji_u1f98b.svg new file mode 100644 index 0000000..bd87d87 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f98b.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f98e.svg b/common/src/assets/pazzle/emoji_u1f98e.svg new file mode 100644 index 0000000..4c2ec4f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f98e.svg @@ -0,0 +1,1947 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f98f.svg b/common/src/assets/pazzle/emoji_u1f98f.svg new file mode 100644 index 0000000..8a4de6e --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f98f.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f992.svg b/common/src/assets/pazzle/emoji_u1f992.svg new file mode 100644 index 0000000..72aaa25 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f992.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f993.svg b/common/src/assets/pazzle/emoji_u1f993.svg new file mode 100644 index 0000000..c91924b --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f993.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f994.svg b/common/src/assets/pazzle/emoji_u1f994.svg new file mode 100644 index 0000000..5e6b765 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f994.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9a9.svg b/common/src/assets/pazzle/emoji_u1f9a9.svg new file mode 100644 index 0000000..20a122d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9a9.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9b4.svg b/common/src/assets/pazzle/emoji_u1f9b4.svg new file mode 100644 index 0000000..f55b71d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9b4.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9b5.svg b/common/src/assets/pazzle/emoji_u1f9b5.svg new file mode 100644 index 0000000..cdf45fd --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9b5.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9b6.svg b/common/src/assets/pazzle/emoji_u1f9b6.svg new file mode 100644 index 0000000..1b32114 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9b6.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9b7.svg b/common/src/assets/pazzle/emoji_u1f9b7.svg new file mode 100644 index 0000000..0738b56 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9b7.svg @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9c0.svg b/common/src/assets/pazzle/emoji_u1f9c0.svg new file mode 100644 index 0000000..774ec34 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9c0.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9d0.svg b/common/src/assets/pazzle/emoji_u1f9d0.svg new file mode 100644 index 0000000..648b28f --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9d0.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9d1_200d_1f692.svg b/common/src/assets/pazzle/emoji_u1f9d1_200d_1f692.svg new file mode 100755 index 0000000..de8b3cf --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9d1_200d_1f692.svg @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9d9.svg b/common/src/assets/pazzle/emoji_u1f9d9.svg new file mode 100755 index 0000000..eb54944 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9d9.svg @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9da.svg b/common/src/assets/pazzle/emoji_u1f9da.svg new file mode 100755 index 0000000..c83bc3c --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9da.svg @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9dc.svg b/common/src/assets/pazzle/emoji_u1f9dc.svg new file mode 100755 index 0000000..697d99a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9dc.svg @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9e0.svg b/common/src/assets/pazzle/emoji_u1f9e0.svg new file mode 100644 index 0000000..d69b287 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9e0.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9e8.svg b/common/src/assets/pazzle/emoji_u1f9e8.svg new file mode 100644 index 0000000..f55a94a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9e8.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9e9.svg b/common/src/assets/pazzle/emoji_u1f9e9.svg new file mode 100644 index 0000000..5e8121a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9e9.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9ed.svg b/common/src/assets/pazzle/emoji_u1f9ed.svg new file mode 100644 index 0000000..4475dca --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9ed.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9f8.svg b/common/src/assets/pazzle/emoji_u1f9f8.svg new file mode 100644 index 0000000..24ab0ea --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9f8.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9f9.svg b/common/src/assets/pazzle/emoji_u1f9f9.svg new file mode 100644 index 0000000..fd7936a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9f9.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1f9fd.svg b/common/src/assets/pazzle/emoji_u1f9fd.svg new file mode 100644 index 0000000..9f9049d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1f9fd.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1fa81.svg b/common/src/assets/pazzle/emoji_u1fa81.svg new file mode 100644 index 0000000..2fb1c26 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1fa81.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1fa82.svg b/common/src/assets/pazzle/emoji_u1fa82.svg new file mode 100644 index 0000000..f8a077a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1fa82.svg @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1fa90.svg b/common/src/assets/pazzle/emoji_u1fa90.svg new file mode 100644 index 0000000..4a5be78 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1fa90.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1fa91.svg b/common/src/assets/pazzle/emoji_u1fa91.svg new file mode 100644 index 0000000..f384c37 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1fa91.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1fab4.svg b/common/src/assets/pazzle/emoji_u1fab4.svg new file mode 100644 index 0000000..976a134 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1fab4.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u1fad0.svg b/common/src/assets/pazzle/emoji_u1fad0.svg new file mode 100644 index 0000000..a5a4d4b --- /dev/null +++ b/common/src/assets/pazzle/emoji_u1fad0.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2600.svg b/common/src/assets/pazzle/emoji_u2600.svg new file mode 100644 index 0000000..f5f2669 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2600.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2614.svg b/common/src/assets/pazzle/emoji_u2614.svg new file mode 100644 index 0000000..3fd889a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2614.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2615.svg b/common/src/assets/pazzle/emoji_u2615.svg new file mode 100644 index 0000000..f260144 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2615.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2639.svg b/common/src/assets/pazzle/emoji_u2639.svg new file mode 100644 index 0000000..59291e8 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2639.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u265f.svg b/common/src/assets/pazzle/emoji_u265f.svg new file mode 100644 index 0000000..e55720a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u265f.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2693.svg b/common/src/assets/pazzle/emoji_u2693.svg new file mode 100644 index 0000000..e9c44db --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2693.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u26a1.svg b/common/src/assets/pazzle/emoji_u26a1.svg new file mode 100644 index 0000000..e82079a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u26a1.svg @@ -0,0 +1,17 @@ + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u26bd.svg b/common/src/assets/pazzle/emoji_u26bd.svg new file mode 100644 index 0000000..c2161e2 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u26bd.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u26c4.svg b/common/src/assets/pazzle/emoji_u26c4.svg new file mode 100644 index 0000000..639a0fb --- /dev/null +++ b/common/src/assets/pazzle/emoji_u26c4.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u26f2.svg b/common/src/assets/pazzle/emoji_u26f2.svg new file mode 100644 index 0000000..87c48e8 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u26f2.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u26f5.svg b/common/src/assets/pazzle/emoji_u26f5.svg new file mode 100644 index 0000000..739ab19 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u26f5.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u26f7.svg b/common/src/assets/pazzle/emoji_u26f7.svg new file mode 100644 index 0000000..286d85a --- /dev/null +++ b/common/src/assets/pazzle/emoji_u26f7.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2702.svg b/common/src/assets/pazzle/emoji_u2702.svg new file mode 100644 index 0000000..c9a493c --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2702.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2708.svg b/common/src/assets/pazzle/emoji_u2708.svg new file mode 100644 index 0000000..e942b8d --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2708.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u270a.svg b/common/src/assets/pazzle/emoji_u270a.svg new file mode 100644 index 0000000..4d19e22 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u270a.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u270c.svg b/common/src/assets/pazzle/emoji_u270c.svg new file mode 100644 index 0000000..6b3fdcc --- /dev/null +++ b/common/src/assets/pazzle/emoji_u270c.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u270d.svg b/common/src/assets/pazzle/emoji_u270d.svg new file mode 100644 index 0000000..6319363 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u270d.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u270f.svg b/common/src/assets/pazzle/emoji_u270f.svg new file mode 100644 index 0000000..7052c81 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u270f.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2744.svg b/common/src/assets/pazzle/emoji_u2744.svg new file mode 100644 index 0000000..18fca4e --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2744.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2764.svg b/common/src/assets/pazzle/emoji_u2764.svg new file mode 100644 index 0000000..8951fc9 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2764.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + diff --git a/common/src/assets/pazzle/emoji_u2b50.svg b/common/src/assets/pazzle/emoji_u2b50.svg new file mode 100644 index 0000000..15b2118 --- /dev/null +++ b/common/src/assets/pazzle/emoji_u2b50.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/common/src/base64url.js b/common/src/base64url.js new file mode 100644 index 0000000..bf8a2b4 --- /dev/null +++ b/common/src/base64url.js @@ -0,0 +1,59 @@ +/* + * Base64URL-ArrayBuffer + * https://github.com/herrjemand/Base64URL-ArrayBuffer + * + * Copyright (c) 2017 Yuriy Ackermann + * Copyright (c) 2012 Niklas von Hertzen + * Licensed under the MIT license. + * + */ +const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; + +// Use a lookup table to find the index. +var lookup = new Uint8Array(256); +for (var i = 0; i < chars.length; i++) { + lookup[chars.charCodeAt(i)] = i; +} + +export const encode = function(arraybuffer) { + var bytes = new Uint8Array(arraybuffer), + i, len = bytes.length, base64 = ""; + + for (i = 0; i < len; i+=3) { + base64 += chars[bytes[i] >> 2]; + base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)]; + base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)]; + base64 += chars[bytes[i + 2] & 63]; + } + + if ((len % 3) === 2) { + base64 = base64.substring(0, base64.length - 1); + } else if (len % 3 === 1) { + base64 = base64.substring(0, base64.length - 2); + } + + return base64; +}; + +export const decode = function(base64) { + var bufferLength = base64.length * 0.75, + len = base64.length, i, p = 0, + encoded1, encoded2, encoded3, encoded4; + + var arraybuffer = new ArrayBuffer(bufferLength), + bytes = new Uint8Array(arraybuffer); + + for (i = 0; i < len; i+=4) { + encoded1 = lookup[base64.charCodeAt(i)]; + encoded2 = lookup[base64.charCodeAt(i+1)]; + encoded3 = lookup[base64.charCodeAt(i+2)]; + encoded4 = lookup[base64.charCodeAt(i+3)]; + + bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); + bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); + bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); + } + + return arraybuffer; +}; + diff --git a/common/src/classes.ts b/common/src/classes.ts new file mode 100644 index 0000000..0d852b5 --- /dev/null +++ b/common/src/classes.ts @@ -0,0 +1,962 @@ +// Copyright (c) 2022-2025 Niko Bonnieure, Par le Peuple, NextGraph.org developers +// All rights reserved. +// Licensed under the Apache License, Version 2.0 +// +// or the MIT license , +// at your option. All files in the project carrying such +// notice may not be copied, modified, or distributed except +// according to those terms. + +// "post:rich", "post:md", "post:text", "post:html", "post:asciidoc", "page", "code", "code:*", "app", "app:z", "class", "schema", "schema:owl|rdfs|shacl|shex", "service", "service:rust", "service:deno", "contract", "app:n:xxx.xx.xx:", "app:o:", +// "query:sparql", "query:graphql", "query:text", "query:web", +// "data:graph", "data:json", "data:array", "data:map", "data:xml", "data:table", "data:collection", "data:board", "data:grid", "data:geomap", +// "e:mail", "e:web", "e:http://[url of class in ontology]", "e:rdf" (read-only cache of RDF fetched from web2.0) +// "mc:text", "mc:link", "mc:card", "mc:pad", +// "diagram","chart", "doc:pdf", "doc:odf", "doc:latex", "doc:ps", "doc:music", "doc:maths", "doc:chemistry", "doc:braille", "doc:ancientscript", +// "media:image", "media:reel", "media:album", "media:video", "media:audio", "media:song", "media:subtitle", "media:overlay", +// "social:channel", "social:stream", "social:contact", "social:event", "social:calendar", "social:scheduler", "social:reaction", "social:chatroom", +// "prod:task", "prod:project", "prod:issue", "prod:form", "prod:filling", "prod:cad", "prod:slides", "prod:question", "prod:answer", "prod:poll", "prod:vote" +// "file", "file:iana:*", "file:gimp", "file:inkscape", "file:kdenlive", "file:blender", "file:openscad", "file:lyx", "file:scribus", "file:libreoffice", "file:audacity", "file:godot", "file:obsstudio", "file:ardor", "file:krita" + + +// application/vnd.api+json + +// application/activity+json + +// epub, dejavu, +// animation: snap, lottie, smil editor: https://github.com/HaikuTeam/animator/ + +export const has_toc = (class_name) => { + return class_name === "post:rich" || class_name === "post:md" || class_name === "post:html" || class_name === "post:asciidoc" || class_name === "app:z" || class_name === "class" + || class_name.startsWith("schema") || class_name === "doc:pdf" || class_name === "doc:odf" || class_name === "doc:latex" || class_name === "doc:ps" || class_name === "prod:project" || class_name === "prod:slides" +}; + +export const official_classes = { + "post:rich": { + "ng:crdt": "YXml", + "ng:n": "Post - Rich Text", // editor: y-ProseMirror, viewer: https://www.npmjs.com/package/prosemirror-to-html-js or https://prosemirror.net/docs/ref/version/0.4.0.html#toDOM https://prosemirror.net/docs/ref/version/0.4.0.html#toHTML + "ng:a": "A Post with Rich Text, including images, links, formatted text, and embeds of other content", + "ng:o": "n:g:z:post:rich", + "ng:w": "n:g:z:post_rich_editor", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Article"], + }, + "post:md": { + "ng:crdt": "YXml", + "ng:n": "Post - MarkDown", // editor y-MilkDown, viewer: https://github.com/wooorm/markdown-rs + "ng:a": "A Post with MarkDown, including images, links, formatted text, and embeds of other content", + "ng:o": "n:g:z:post:md", + "ng:w": "n:g:z:post_md_editor", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:text:markdown", "code:markdown","as:Article"], + }, + "post:text": { + "ng:crdt": "YText", + "ng:n": "Post - Plain Text", + "ng:a": "A Post with Plain Text", + "ng:o": "n:g:z:post:text", + "ng:w": "n:g:z:code_editor", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:text:plain", "code:plaintext","as:Article"], + }, + "post:html": { + "ng:crdt": "YXml", + "ng:n": "Post - TinyMCE", + "ng:x": { + "as":true, + }, + "ng:a": "A Post based on TinyMCE, including images, links, formatted text, and embeds of other content", + "ng:compat": ["as:Article"], + }, + "post:asciidoc": { // display with https://github.com/asciidoctor/asciidoctor.js/ + "ng:crdt": "YText", + "ng:n": "Post - AsciiDoc", + "ng:a": "A Post based on AsciiDoc format", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Article"], + }, + "page": { + "ng:crdt": "YXml", + "ng:n": "Page", // based on GrapeJS, VvvebJs, or Astro ? + "ng:a": "A Page and Site builder", + "ng:compat": [], + }, + "code": { + "ng:crdt": "YText", + "ng:n": "Source Code", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A Source Code file. many languages supported", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": ["code:*","file:iana:text:javascript","file:iana:text:css","file:iana:text:html","file:iana:text:markdown", "file:iana:application:xml", + "file:iana:application:yaml", "file:iana:text:xml", "file:iana:application:xhtml+xml"], + }, + "code:js": { + "ng:crdt": "YText", + "ng:n": "JavaScript", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A JavaScript Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": ["file:iana:text:javascript"], + "implemented": true + }, + "code:ts": { + "ng:crdt": "YText", + "ng:n": "TypeScript", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A TypeScript Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": ["file:iana:text:typescript"], + "implemented": true + }, + "code:rust": { + "ng:crdt": "YText", + "ng:n": "Rust", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A Rust Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": [], + "implemented": true + }, + "code:svelte": { + "ng:crdt": "YText", + "ng:n": "Svelte", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A Svelte Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": [], + "implemented": true + }, + "code:react": { + "ng:crdt": "YText", + "ng:n": "React", // edited with CodeMirror, displayed with highlight.js + "ng:a": "A React Source Code file", + "ng:o": "n:g:z:pre", + "ng:w": "n:g:z:code_editor", + "ng:compat": [], + "implemented": true + }, + "app": { + "ng:n": "Official App", + "ng:a": "App provided by NextGraph platform", + }, + "app:z": { + "ng:crdt": "Elmer", + "ng:n": "Application", // Editor: Monaco + "ng:a": "Create an Application based on NextGraph Framework", + "ng:o": "n:g:z:app_store", + "ng:w": "n:g:z:app_editor", + "ng:include": ["schema:*","service:*","code","file"], + "ng:compat": ["code:svelte"], + }, + "class": { + "ng:crdt": "Graph", + "ng:n": "Class", + "ng:a": "Define a custom Class for your data", + "ng:x": { + "rdfs":true, + }, + "ng:compat": ["rdfs:Class"], + }, + "schema": { // display with https://github.com/VisualDataWeb/WebVOWL + "ng:crdt": "Graph", + "ng:n": "Schema - RDFS/OWL", + "ng:a": "Define the Schema, Ontology or Vocabulary for your data and the relations between them, with RDFS and/or OWL", + "ng:o": "n:g:z:ontology_viewer", // default viewer + "ng:w": "n:g:z:ontology_editor", // default editor + "ng:x": { + "rdfs":true, + "owl":true, + }, + "ng:include": ["data:graph"], + "ng:compat": ["rdfs:*","class","owl:Ontology"], + }, + "schema:shacl": { + "ng:crdt": "Graph", + "ng:n": "Schema - SHACL", + "ng:a": "Define the rules for your data with SHACL", + "ng:o": "n:g:z:ontology_viewer", // default viewer + "ng:w": "n:g:z:ontology_editor", // default editor + "ng:x": { + "sh":true, + }, + "ng:include": ["data:graph"], + "ng:compat": ["sh:Shape", "file:iana:text:shaclc" ], + }, + "schema:shex": { + "ng:crdt": "Graph", + "ng:n": "Schema - SHEX", + "ng:a": "Define the rules for your data with SHEX", + "ng:o": "n:g:z:ontology_viewer", // default viewer + "ng:w": "n:g:z:ontology_editor", // default editor + "ng:x": { + "shex":true, + }, + "ng:include": ["data:graph"], + "ng:compat": ["shex:*", "file:iana:text:shex", "code:shexc" ], + }, + "service": { + "ng:n": "Internal Service", + "ng:a": "Service provided by NextGraph framework", + "ng:o": "n:g:z:service_invoke", // default viewer + }, + "service:rust": { + "ng:crdt": "YText", + "ng:n": "Service - Rust", // edited with CodeMirror, displayed with highlight.js + "ng:a": "Service written in Rust and compiled to WASM", + "ng:o": "external_service_invoke", // default viewer + "ng:w": "n:g:z:service_editor", // default editor + "ng:compat": ["code:rust", "file:iana:application:wasm"], + }, + "service:deno": { + "ng:crdt": "YText", + "ng:n": "Service - Deno/JS", // edited with CodeMirror, displayed with highlight.js + "ng:a": "Service written in JS/TS for Deno or NodeJS", + "ng:o": "external_service_invoke", // default viewer + "ng:w": "n:g:z:service_editor", // default editor + "ng:compat": ["code:javascript", "code:typescript", "file:iana:text:javascript", "file:iana:application:node"], + }, + "contract": { + "ng:crdt": "YText", + "ng:n": "Smart Contract", // edited with CodeMirror, displayed with highlight.js + "ng:a": "Smart Contract with Rust or JS code", + "ng:compat": ["code:rust", "file:iana:application:wasm", "code:javascript", "code:typescript", "file:iana:text:javascript", "file:iana:application:node"], + }, + "query:sparql": { + "ng:crdt": "YText",// uses ng:default_graph and ng:named_graph predicates + "ng:n": "SPARQL Query", // edited with YASGUI or Sparnatural, displayed with highlight.js https://github.com/highlightjs/highlightjs-turtle/tree/master + "ng:a": "Saved SPARQL Query that can be invoked", + "ng:o": "n:g:z:sparql:invoke", + "ng:w": "n:g:z:sparql_query", + "ng:compat": ["code:sparql", "file:iana:application:sparql-query","file:iana:application:x-sparql-query"], + }, + "query:sparql_update": { + "ng:crdt": "YText",// uses ng:default_graph and ng:named_graph predicates + "ng:n": "SPARQL Update", // edited with YASGUI, displayed with highlight.js https://github.com/highlightjs/highlightjs-turtle/tree/master + "ng:a": "Saved SPARQL Update that can be invoked", + "ng:o": "n:g:z:sparql:invoke", + "ng:w": "n:g:z:sparql_update", + "ng:compat": ["code:sparql", "file:iana:application:sparql-update"], + }, + "query:graphql": { + "ng:crdt": "YText", // uses ng:default_graph predicate + "ng:n": "GraphQL Query", // edited with https://github.com/graphql/graphiql or https://github.com/graphql-editor/graphql-editor, displayed with highlight.js + "ng:a": "Saved GraphQL Query that can be invoked", + "ng:o": "n:g:z:graphql:invoke", + "ng:w": "n:g:z:graphql_query", + "ng:compat": ["code:graphql", "file:iana:application:graphql+json"], + }, + "query:text": { + "ng:crdt": "Graph", + "ng:n": "Text Search", + "ng:a": "Saved Text Search and its results", + "ng:compat": [], + }, + "query:web": { + "ng:crdt": "Graph", + "ng:n": "Web Search", + "ng:a": "Saved Web Search and its results", + "ng:compat": [], + }, + "data:graph": { + "ng:crdt": "Graph", // https://github.com/highlightjs/highlightjs-turtle/tree/master + "ng:n": "Graph", + "ng:a": "Define the Graph of your data with Semantic Web / Linked Data", + //"ng:o": "n:g:z:json_ld_viewer", // default viewer + //"ng:w": "n:g:z:json_ld_editor", // default editor + "ng:x": { + "rdf":true, + "xsd":true, + }, + "ng:compat": [ "rdf:*", "xsd:*", "file:iana:text:n3", "file:iana:text:rdf+n3", "file:iana:text:turtle", "file:iana:application:n-quads", "file:iana:application:trig", "file:iana:application:n-triples", + "file:iana:application:rdf+xml", "file:iana:application:ld+json"], + "implemented": true + }, + "data:json": { + "ng:crdt": "Automerge", + "ng:n": "JSON (Automerge)", + "ng:a": "Automerge JSON Data CRDT", + "ng:o": "n:g:z:json_automerge_viewer", // default viewer + "ng:w": "n:g:z:json_automerge_editor", // default editor + "ng:compat": ["file:iana:application:json", "code:json"], + "implemented": true + }, + "data:array": { + "ng:crdt": "YArray", + "ng:n": "Array (Yjs)", + "ng:a": "Yjs Array CRDT", + "ng:o": "n:g:z:json_yarray_viewer", // default viewer + "ng:w": "n:g:z:json_yarray_editor", // default editor + "ng:compat": ["file:iana:application:json", "code:json"], + "implemented": true + }, + "data:map": { + "ng:crdt": "YMap", + "ng:n": "Object (Yjs)", + "ng:a": "Yjs Map CRDT (JSON Object)", + "ng:o": "n:g:z:json_ymap_viewer", // default viewer + "ng:w": "n:g:z:json_ymap_editor", // default editor + "ng:compat": ["file:iana:application:json", "code:json"], + "implemented": true + }, + "data:xml": { + "ng:crdt": "YXml", + "ng:n": "XML (Yjs)", + "ng:a": "Yjs XML CRDT", + "ng:compat": ["file:iana:text:xml","file:iana:application:xml", "code:xml"], + }, + "data:table": { + "ng:crdt": "Automerge", // see https://github.com/frappe/datatable + "ng:n": "Table", // see https://specs.frictionlessdata.io/table-schema displayed with pivot table see https://activetable.io/docs/data https://www.npmjs.com/package/pivottable https://socket.dev/npm/package/svelte-pivottable/alerts/0.2.0?tab=dependencies + "ng:a": "Data in a Table (columns and rows)", + "ng:o": "n:g:z:pivot", + "ng:compat": ["file:iana:application:sparql-results+json","file:iana:application:sparql-results+xml","file:iana:text:csv"], + }, + "data:collection": { + "ng:crdt": "Graph", + "ng:n": "Collection", + "ng:a": "An ordered list of items", + "ng:o": "n:g:z:container", + "ng:x": { + "as": true, + "rdf": true, + }, + "ng:compat": ["as:Collection","rdf:List","rdf:Seq"], + }, + "data:container": { + "ng:crdt": "Graph", + "ng:n": "Container", + "ng:a": "An unordered set of items", + "ng:o": "n:g:z:container", + "ng:x": { + "rdf": true, + "rdfs": true, + "ldp": true, + }, + "ng:compat": ["rdfs:member","ldp:contains","rdf:Bag","rdf:Alt"], + "implemented": true + }, + "data:plato": { + "ng:crdt": "Graph", + "ng:n": "Plato", + "ng:a": "A tree of files and folders", + "ng:o": "n:g:z:tree", + "ng:compat": ["ng:plato","ng:has_plato"], + }, + "data:board": { + "ng:crdt": "Graph", + "ng:n": "Board", + "ng:a": "Whiteboard, infinite canvas to arrange your content in 2D", + "ng:o": "n:g:z:board", + "ng:include": [], + "ng:compat": [], //https://jsoncanvas.org/ https://www.canvasprotocol.org/ https://github.com/orgs/ocwg/discussions/25 https://infinitecanvas.tools/gallery/ + }, + "data:grid": { + "ng:crdt": "Graph", + "ng:n": "Grid", + "ng:a": "Grid representation of a collection or container", + "ng:o": "n:g:z:grid", + "ng:include": ["data:container","data:collection","data:table","media:album"], + "ng:compat": [], + }, + "data:geomap": { // https://github.com/leaflet/leaflet + "ng:crdt": "Graph", + "ng:n": "Geo Map", + "ng:a": "Geographical Map", + "ng:x": { + "wgs": true, + "gn": true, + "as": true, + }, + "ng:compat": ["as:Place","wgs:*","gn:*", "file:iana:application:geo+json", "file:iana:application:vnd.mapbox-vector-tile"], // see also https://github.com/topojson/topojson + }, + "e:mail": { + "ng:crdt": "Graph", + "ng:n": "Email", + "ng:a": "Email content and headers", + "ng:x": { + "email": "http://www.invincea.com/ontologies/icas/1.0/email#" //https://raw.githubusercontent.com/twosixlabs/icas-ontology/master/ontology/email.ttl // https://www.semanticdesktop.org/ontologies/2007/03/22/nmo/ + }, + "ng:compat": ["file:iana:message:rfc822","file:iana:multipart:related"], + }, + "e:link": { + "ng:crdt": "Graph", + "ng:n": "Web Link", + "ng:a": "HTTP link to a page on the Web", + "ng:compat": [], + }, + "e:web": { + "ng:crdt": "Graph", + //https://www.npmjs.com/package/warcio https://github.com/N0taN3rd/node-warc + "ng:n": "Web Archive", + "ng:a": "Archive the content of a web page", + "ng:compat": ["file:iana:application:warc","file:iana:multipart:related"], + }, + "e:rdf": { + "ng:crdt": "Graph", + "ng:n": "RDF Archive", + "ng:a": "Archive the triples of an RDF resource dereferenced with HTTP", + "ng:include": ["data:graph"], + }, + "mc:text": { + "ng:crdt": "Graph", + "ng:n": "Text Selection", + "ng:a": "Text Selection copied into Magic Carpet", + }, + "mc:link": { + "ng:crdt": "Graph", + "ng:n": "Link", + "ng:a": "Link to a document. kept in Magic Carpet", + }, + "plato:card": { + "ng:crdt": "Graph", + "ng:n": "Card", + "ng:a": "Card representation of a document", + "ng:o": "n:g:z:card", + }, + "plato:pad": { + "ng:crdt": "Graph", + "ng:n": "Pad", + "ng:a": "Pad representation of a document", + "ng:o": "n:g:z:pad", + }, + "doc:compose" : { + "ng:crdt": "YArray", + "ng:n": "Composition", + "ng:a": "Compose several blocks into a single document", + "ng:o": "n:g:z:compose:viewer", + "ng:w": "n:g:z:compose:editor", + }, + "diagram:mermaid" : { + "ng:crdt": "YText", + "ng:n": "Diagram - Mermaid", + "ng:a": "Describe Diagrams with Mermaid", + "ng:compat": ["file:iana:application:vnd.mermaid"] + }, + "diagram:drawio" : { + "ng:crdt": "YXml", + "ng:n": "Diagram - DrawIo", + "ng:a": "Draw Diagrams with DrawIo", + "ng:compat": ["file:iana:application:vnd.jgraph.mxfile","file:iana:application:x-drawio"] + }, + "diagram:graphviz" : { + "ng:crdt": "YText", + "ng:n": "Diagram - Graphviz", + "ng:a": "Describe Diagrams with Graphviz", + "ng:compat": ["file:iana:text:vnd.graphviz"] + }, + "diagram:excalidraw" : { + "ng:crdt": "Automerge", + "ng:n": "Diagram - Excalidraw", + "ng:a": "Collaborate on Diagrams with Excalidraw", + "ng:compat": ["file:iana:application:vnd.excalidraw+json"] + }, + "diagram:gantt" : { //https://github.com/frappe/gantt + "ng:crdt": "Automerge", + "ng:n": "Diagram - Gantt", + "ng:a": "Interactive gantt chart", + "ng:compat": [] + }, + "diagram:flowchart" : { //https://github.com/adrai/flowchart.js + "ng:crdt": "YText", + "ng:n": "Diagram - Flowchart", + "ng:a": "flow chart diagrams", + "ng:compat": [] + }, + "diagram:sequence" : { //https://github.com/bramp/js-sequence-diagrams + "ng:crdt": "YText", + "ng:n": "Diagram - Sequence", + "ng:a": "sequence diagrams", + "ng:compat": [] + }, + // checkout https://www.mindmaps.app/ but it is AGPL + "diagram:markmap" : { //https://github.com/markmap/markmap + "ng:crdt": "YText", + "ng:n": "Diagram - Markmap", + "ng:a": "mindmaps with markmap", + "ng:compat": [] + }, + "diagram:mymind" : { //https://github.com/markmap/markmap + "ng:crdt": "YText", // see MyMind format, MindMup JSON, FreeMind XML and MindMap Architect XML + "ng:n": "Diagram - Mymind", + "ng:a": "mindmaps with mymind", + "ng:compat": [] // https://github.com/ondras/my-mind/wiki/Saving-and-loading#file-formats + }, + "diagram:jsmind" : { //https://github.com/hizzgdev/jsmind + "ng:crdt": "Automerge", + "ng:n": "Diagram - jsmind", + "ng:a": "mindmaps with jsmind", + "ng:compat": [] // https://hizzgdev.github.io/jsmind/docs/en/1.usage.html + }, + // DC and C3 have Crossfilter https://github.com/dc-js/dc.js http://crossfilter.github.io/crossfilter/ https://github.com/c3js/c3 http://dc-js.github.io/dc.js/ + // take inspiration from https://github.com/metabase/metabase + // have a look at https://github.com/observablehq + // another open source dashboard with many data sources https://github.com/getredash/redash + // and another one https://github.com/apache/superset + // https://github.com/Rich-Harris/pancake + // https://github.com/williamngan/pts + // https://visjs.org/ + "viz:cytoscape" : { + "ng:crdt": "Automerge", + "ng:n": "Viz - Cytoscape", + "ng:a": "Graph theory (network) visualization", + "ng:compat": [] // https://github.com/cytoscape/cytoscape.js + }, + "viz:vega" : { + "ng:crdt": "Automerge", + "ng:n": "Viz - Vega", + "ng:a": "Grammar for interactive graphics", + "ng:compat": [] // https://vega.github.io/vega-lite/docs/ https://github.com/vega/editor + }, + "viz:vizzu" : { + "ng:crdt": "Automerge", + "ng:n": "Viz - Vizzu", + "ng:a": "Animated data visualizations and data stories", + "ng:compat": [] // https://github.com/vizzuhq/vizzu-lib + }, + "viz:plotly" : { //https://github.com/plotly/plotly.js + "ng:crdt": "Automerge", + "ng:n": "Viz - Plotly", + "ng:a": "Declarative charts", + "ng:compat": [] + }, + "viz:avail" : { + "ng:crdt": "Automerge", + "ng:n": "Viz - Avail", + "ng:a": "Time Data Availability Visualization", + "ng:compat": [] // https://github.com/flrs/visavail + }, + "chart:frappecharts" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - Frappe", + "ng:a": "GitHub-inspired responsive charts", + "ng:compat": [] // https://github.com/frappe/charts + }, + "chart:financial" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - Financial", + "ng:a": "Financial charts", + "ng:compat": [] //https://github.com/tradingview/lightweight-charts + }, + // have a look at https://github.com/cube-js/cube and https://awesome.cube.dev/ and https://frappe.io/products + "chart:apexcharts" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - ApexCharts", + "ng:a": "Interactive data visualizations", + "ng:compat": [] // https://github.com/apexcharts/apexcharts.js + }, + //realtime data with https://github.com/square/cubism + "chart:billboard" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - BillBoard", + "ng:a": "Interactive data visualizations based on D3", + "ng:compat": [] // https://github.com/naver/billboard.js + }, + "chart:echarts" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - ECharts", + "ng:a": "Interactive charting and data visualization with Apache ECharts", + "ng:compat": [] // https://github.com/apache/echarts + }, + "chart:chartjs" : { + "ng:crdt": "Automerge", + "ng:n": "Charts - Chart.js", + "ng:a": "Simple yet flexible charting for designers & developers with Chart.js", + "ng:compat": [] // https://github.com/chartjs/Chart.js + }, + // see if to provide plain D3, and also all the https://github.com/antvis libraries: G2, G6, L7, S2, X6. Have a look at AVA + "doc:pdf": { + "ng:crdt": "Graph", + "ng:n": "PDF", + "ng:a": "upload and display a PDF file", + "ng:compat": ["file:iana:application:pdf"] // https://github.com/mozilla/pdf.js https://viewerjs.org/ + }, + "doc:odf": { //!!! becareful: AGPL + "ng:crdt": "Graph", + "ng:n": "ODF", + "ng:a": "upload and display an ODF file", + "ng:compat": ["file:iana:application:vnd.oasis.opendocument*"] // https://webodf.org/ https://github.com/webodf/WebODF https://viewerjs.org/ + }, + // see also https://github.com/Mathpix/mathpix-markdown-it + "doc:latex": { + "ng:crdt": "Graph", + "ng:n": "Latex", + "ng:a": "upload and display a Latex or Tex file", + "ng:compat": ["file:iana:application:x-tex","file:iana:text:x-tex"] // https://github.com/michael-brade/LaTeX.js https://github.com/mathjax/MathJax + }, + "doc:ps": { //!!! becareful: AGPL https://github.com/ochachacha/ps-wasm + "ng:crdt": "Graph", + "ng:n": "Postscript", + "ng:a": "upload and display a PostScript file", + "ng:compat": ["file:iana:application:postscript"] // https://www.npmjs.com/package/ghostscript4js + }, + "doc:music:abc": { //https://github.com/paulrosen/abcjs + "ng:crdt": "YText", + "ng:n": "Musical Notation", + "ng:a": "sheet music notation", + "ng:compat": [] + }, + "doc:music:guitar": { //https://github.com/birdca/fretboard + "ng:crdt": "YText", + "ng:n": "Music - Guitar", + "ng:a": "charts for guitar chords and scales", + "ng:compat": [] + }, + "doc:maths": { //https://github.com/KaTeX/KaTeX + "ng:crdt": "YText", + "ng:n": "Maths", + "ng:a": "TeX math rendering", + "ng:compat": ["file:iana:application:x-tex","file:iana:text:x-tex"] + }, + "doc:chemistry": { //GPL!! https://github.com/aeris-data/ChemDoodle/tree/master/ChemDoodleWeb-8.0.0 or https://github.com/aseevia/smiles-3d-vue + "ng:crdt": "YText", + "ng:n": "Molecules (SMILES)", + "ng:a": "simplified molecular-input line-entry system (SMILES)", + "ng:compat": ["file:iana:chemical:x-daylight-smiles"] // https://en.wikipedia.org/wiki/SYBYL_line_notation and http://fileformats.archiveteam.org/wiki/Chemical_data + }, + "doc:ancientscript": { //https://dn-works.com/ufas/ + "ng:crdt": "YText", // use Unicode and special fonts + "ng:n": "Ancient Script", + "ng:a": "Ancient Script", + "ng:compat": [] + }, + "doc:braille": { //https://en.wikipedia.org/wiki/Braille_Patterns + "ng:crdt": "YText", // use Unicode and special fonts + "ng:n": "Braille Patterns", + "ng:a": "Braille Patterns", + "ng:compat": [] + }, + "media:image": { + "ng:crdt": "Graph", + "ng:n": "Image", + "ng:a": "upload and display an image", + "ng:o": "n:g:z:media", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:image*","as:Image"] + }, + "media:reel": { + "ng:crdt": "Graph", + "ng:n": "Reel", + "ng:a": "upload and display a Reel (video from mobile)", + "ng:o": "n:g:z:media", + "ng:compat": ["file:iana:video*"] + }, + "media:video": { + "ng:crdt": "Graph", + "ng:n": "Video", + "ng:a": "upload and display a Video (and film)", + "ng:o": "n:g:z:media", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:video*","as:Video"] + }, + "media:album": { + "ng:crdt": "Graph", + "ng:n": "Album", + "ng:a": "Assemble several images and/or videos into an ordered Album", + "ng:o": "n:g:z:gallery", + "ng:include": ["data:collection"], + "ng:compat": [] + }, + "media:audio": { + "ng:crdt": "Graph", + "ng:n": "Audio", + "ng:a": "upload and play an Audio file, Audio note or Voice message", + "ng:o": "n:g:z:media", + "ng:x": { + "as":true, + }, + "ng:compat": ["file:iana:audio*","as:Audio"] + }, + "media:song": { + "ng:crdt": "Graph", + "ng:n": "Song", + "ng:a": "A song from an artist,album and/or lyrics", + "ng:o": "n:g:z:media", + "ng:x": { + "music": "http://purl.org/ontology/mo/", + }, + "ng:compat": ["music:MusicalWork","music:MusicArtist", "music:Lyrics"] + // see also https://polifonia-project.eu/wp-content/uploads/2022/01/Polifonia_D2.1_V1.0.pdf + // Music ontology http://musicontology.com/docs/faq.html with data based on existing databases https://musicbrainz.org/doc/MusicBrainz_Database/Schema https://github.com/megaconfidence/open-song-database https://www.discogs.com/developers + }, + "media:subtitle": { //https://captioneasy.com/subtitle-file-formats/ + "ng:crdt": "YText", + "ng:n": "Subtitles", + "ng:a": "Subtitles", + "ng:compat": [] // TBD + }, + "media:overlay": { + "ng:crdt": "Graph", + "ng:n": "Overlay", + "ng:a": "Composition of an image, reel, text, icon, link, mention or other content into a layered content", + "ng:o": "n:g:z:media", + "ng:compat": [] + }, + "social:activity": { + "ng:crdt": "Graph", + "ng:n": "Activity", + "ng:a": "Activity sent in a Stream", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Activity"] + }, + "social:channel": { + "ng:crdt": "Graph", + "ng:n": "Channel", + "ng:a": "Broadcast channel with subscribers", + "ng:compat": [] + }, + "social:stream": { + "ng:crdt": "Graph", + "ng:n": "Stream", + "ng:a": "A document or store's stream branch", + "ng:compat": [] + }, + "social:contact": { + "ng:crdt": "Graph", + "ng:n": "Contact", + "ng:a": "Contact: an Individual, Organization or Group", + "ng:x": { + "vcard":true, + "foaf": true, + }, + "ng:include": ["data:graph"], + "ng:compat": ["foaf:Person","foaf:Agent","vcard:Individual", "vcard:Organization", "vcard:Group", "file:iana:text:vcard", "file:iana:application:vcard+json", "file:iana:application:vcard+xml" ], + }, + "social:event": { + "ng:crdt": "Graph", + "ng:n": "Event", + "ng:a": "An event occuring in specific location and time", + "ng:x": { + "as":true, + }, + "ng:include": ["post:*"], + "ng:compat": ["as:Event"] + }, + "social:calendar": { + "ng:crdt": "Graph", + "ng:n": "Calendar", + "ng:a": "A calendar where events are gathered", + "ng:x": { + "as":true, + "time": true, + }, + "ng:include": ["data:collection"], + "ng:compat": ["time:TemporalEntity", "file:iana:text:calendar", "file:iana:application:calendar+xml", "file:iana:application:calendar+json"] //https://www.rfc-editor.org/rfc/rfc5545 + }, + "social:scheduler": { + "ng:crdt": "Graph", + "ng:n": "Scheduler", + "ng:a": "Helps finding a common time slot for several participants to a future event", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Invite","as:Reject","as:Accept","as:TentativeAccept","as:TentativeReject"] + }, + "social:reaction": { + "ng:crdt": "Graph", + "ng:n": "Reaction", + "ng:a": "A reaction by user to some content", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Like", "as:Dislike", "as:Listen", "as:Read", "as:View"] + }, + "social:chatroom": { + "ng:crdt": "Graph", + "ng:n": "ChatRoom", + "ng:a": "A room for group chat", + }, + "social:live": { + "ng:crdt": "Graph", + "ng:n": "Live", + "ng:a": "A live session of video or audio, with optional chat", + }, + "prod:task": { + "ng:crdt": "Graph", + "ng:n": "Task", + "ng:a": "A task to be done", + "ng:x": { + "as":true, + "pair": "http://virtual-assembly.org/ontologies/pair#", + }, + "ng:include": ["post:*"], + "ng:compat": ["pair:Task"] //see VTODO in iCalendar https://www.cs.utexas.edu/~mfkb/RKF/tree/components/specs/ontologies/Calendar-onto.html + // see todo and todoList of Mobilizon https://framagit.org/framasoft/mobilizon/-/blob/main/lib/federation/activity_stream/converter/todo.ex + // https://framagit.org/framasoft/mobilizon/-/blob/main/lib/federation/activity_stream/converter/todo_list.ex + }, + "prod:project": { + "ng:crdt": "Graph", + "ng:n": "Project", + "ng:a": "A project management / KanBan", + "ng:x": { + "as":true, + "pair": "http://virtual-assembly.org/ontologies/pair#", + }, + "ng:include": ["post:*"], + "ng:compat": ["pair:Project"] + }, + // see SRO https://www.researchgate.net/publication/350158531_From_a_Scrum_Reference_Ontology_to_the_Integration_of_Applications_for_Data-Driven_Software_Development + // https://ceur-ws.org/Vol-1442/paper_4.pdf + // see focalbaord, specially for their import scripts https://github.com/mattermost/focalboard/tree/main/import + // and their data model https://github.com/mattermost/focalboard/tree/main/server/model + // https://github.com/leif81/bzkanban + // https://github.com/HigorLoren/donko (react) + // https://github.com/trobonox/kanri (GPL, Vue) + // https://github.com/waterrmalann/kards (vanilla JS) + // see also https://github.com/wekan/wekan + // see also https://taiga.io/ (for inspiration. as it is AGPL and python) + // see also https://github.com/plankanban/planka (for inspiration. as it is AGPL and React) + // see also https://kolaente.dev/vikunja/vikunja (for inspiration. AGPL. Vue and Go) + // see also https://github.com/laurent22/joplin/ (for inspiration. AGPL) + // see also https://github.com/SrGMC/kanbana + /// svelte: https://github.com/V-Py/svelte-kanban + // https://github.com/supabase-community/svelte-kanban + // https://github.com/therosbif/kanban + "prod:issue": { + "ng:crdt": "Graph", + "ng:n": "Issue", + "ng:a": "An issue to be solved", + "ng:x": { + "as":true, + "pair": "http://virtual-assembly.org/ontologies/pair#", + }, + "ng:include": ["prod:task"], + "ng:compat": ["pair:Challenge"] + }, + //https://github.com/go-gitea/gitea/issues/20232 + // datamodel of gitea issues: https://github.com/go-gitea/gitea/blob/165346c15c6d021028a65121e692a17ffc927e2c/models/issue.go#L35-L79 + "prod:form": { + "ng:crdt": "Graph", + "ng:n": "Form", + "ng:a": "A form to be filled-in", + "ng:x": { + "form" : "http://rdf.danielbeeke.nl/form/form-dev.ttl#", + }, + "ng:compat": ["form:*","file:iana:application:schema+json"] + }, + // https://jsonforms.io/docs/ + // https://github.com/jsonform/jsonform + // https://jsonforms.io/docs/integrations/vue + // >>> https://github.com/json-editor/json-editor + // or >>> https://github.com/webgme/svelte-jsonschema-form + // or >>> https://github.com/restspace/svelte-schema-form + // see https://ceur-ws.org/Vol-1515/regular14.pdf + // and https://github.com/protegeproject/facsimile + // https://www.drupal.org/project/webform + // see https://www.semantic-mediawiki.org/wiki/Extension:Page_Forms + // https://www.mediawiki.org/wiki/Extension:Page_Forms + // https://rdf-form.danielbeeke.nl/ + // consider using Shapes + "prod:filling": { + "ng:crdt": "Graph", + "ng:n": "Form filling", + "ng:a": "A form that has been filled-in", + "ng:compat": [] + }, + "prod:cad": { // https://mattferraro.dev/posts/cadmium + "ng:crdt": "Automerge", + "ng:n": "CAD", + "ng:a": "CADmium", + "ng:compat": [] + }, + "prod:spreadsheet": { + "ng:crdt": "Automerge", + "ng:n": "Spreadsheet", + "ng:a": "Spreadsheet", + "ng:compat": [] + }, + "prod:slides": { //https://github.com/hakimel/reveal.js + //https://pandoc.org/MANUAL.html#slide-shows + "ng:crdt": "Graph", + "ng:n": "Slides", + "ng:a": "Slides and presentations", + "ng:include": ["post:*"], + "ng:compat": [] + }, + "prod:question" : { + "ng:crdt": "Graph", + "ng:n": "Question", + "ng:a": "A question that needs answers", + "ng:x": { + "as":true, + }, + "ng:include": ["post:*"], + "ng:compat": ["as:Question"] + }, + "prod:answer" :{ + "ng:crdt": "Graph", + "ng:n": "Answer", + "ng:a": "An answer to a question", + "ng:x": { + "as":true, + }, + "ng:include": ["post:*"], + "ng:compat": ["as:Note"] + }, + "prod:poll" : { + "ng:crdt": "Graph", + "ng:n": "Poll", + "ng:a": "A poll where people will vote", + "ng:x": { + "as":true, + }, + "ng:include": ["post:*"], + "ng:compat": ["as:Question"] + }, + "prod:vote" : { + "ng:crdt": "Graph", + "ng:n": "Vote", + "ng:a": "A vote cast for a Poll", + "ng:x": { + "as":true, + }, + "ng:compat": ["as:Note"] + }, + "file" : { + "ng:crdt": "Graph", + "ng:n": "File", + "ng:a": "Binary file", + "ng:o": "n:g:z:file_viewer", + "ng:compat": [] + }, + "file:ng:wallet" : { + "ng:n": "NextGraph Wallet File", + "ng:a": "NextGraph Wallet File (.ngw)", + "ng:compat": [] + }, + "file:ng:doc" : { + "ng:n": "NextGraph Document File", + "ng:a": "NextGraph Document File (.ngd)", + "ng:compat": [] + }, + "file:ng:html" : { + "ng:n": "NextGraph Document Html", + "ng:a": "NextGraph Document Html standalone file", + "ng:compat": [] + }, + "file:text" : { + "ng:crdt": "Graph", + "ng:n": "File", + "ng:a": "Text file", + "ng:o": "n:g:z:file_viewer", + "ng:compat": ["file:iana:text:*", "file:iana:image:svg+xml", "file:iana:application:n-quads", "file:iana:application:trig", "file:iana:application:n-triples", "file:iana:application:rdf+xml", "file:iana:application:ld+json", + "file:iana:application:xml", "file:iana:application:yaml", "file:iana:application:xhtml+xml", "file:iana:application:node","file:iana:application:sparql-results+json","file:iana:application:sparql-results+xml", + "file:iana:message:rfc822","file:iana:multipart:related", "file:iana:text:vnd.graphviz", "file:iana:application:vnd.excalidraw+json", "file:iana:application:x-tex","file:iana:text:x-tex", + "file:iana:application:vcard+json", "file:iana:application:vcard+xml", "file:iana:text:calendar", "file:iana:application:calendar+xml", "file:iana:application:calendar+json", + "file:iana:application:schema+json", "file:iana:application:geo+json", "file:iana:application:json" ] + }, + +}; \ No newline at end of file diff --git a/common/src/lang.ts b/common/src/lang.ts new file mode 100644 index 0000000..a7a7591 --- /dev/null +++ b/common/src/lang.ts @@ -0,0 +1,48 @@ +// Copyright (c) 2022-2025 Niko Bonnieure, Par le Peuple, NextGraph.org developers +// All rights reserved. +// Licensed under the Apache License, Version 2.0 +// +// or the MIT license , +// at your option. All files in the project carrying such +// notice may not be copied, modified, or distributed except +// according to those terms. + +import { register, init, locale, format } from "svelte-i18n"; + +// Make sure that a file named `locales/.json` exists when adding it here. +export const available_languages = { + en: "English", + de: "Deutsch", + //fr: "Français", + //ru: "Русский", + //es: "Español", + //it: "Italiano", + //zh: "中文", + //pt: "Português", +}; + +export const select_default_lang = async (get_locales: Function) => { + + for (const lang of Object.keys(available_languages)) { + register(lang, () => import(`./locales/${lang}.json`)) + } + + init({ + fallbackLocale: "en", + initialLocale: "en", + }); + + let locales = await (get_locales)(); + for (let lo of locales) { + if (available_languages[lo]) { + // exact match (if locales is a 2 chars lang code, or if we support regionalized translations) + locale.set(lo); + return; + } + lo = lo.substr(0, 2); + if (available_languages[lo]) { + locale.set(lo); + return; + } + } +}; \ No newline at end of file diff --git a/common/src/lib/CenteredLayout.svelte b/common/src/lib/CenteredLayout.svelte new file mode 100644 index 0000000..0d380ab --- /dev/null +++ b/common/src/lib/CenteredLayout.svelte @@ -0,0 +1,110 @@ + + + + +
+ {#if !changingLang} +
+ +
+ {#if displayFooter} +
+
+ +
+ +
+
+ {/if} + {:else} +
+
    + {#each Object.entries(available_languages) as lang} + + {/each} +
+
+ {/if} +
+ + diff --git a/common/src/lib/Install.svelte b/common/src/lib/Install.svelte new file mode 100644 index 0000000..e01989f --- /dev/null +++ b/common/src/lib/Install.svelte @@ -0,0 +1,197 @@ + + + + + + +
+
+ + +
+ +

+ {@html $t("pages.install.app_availability")} +

+ {#if display_has_wallets_warning} + + {@html $t("pages.install.has_wallet_warning")} + + {/if} + + + + + + + + + + + +
diff --git a/common/src/lib/Login.svelte b/common/src/lib/Login.svelte new file mode 100644 index 0000000..d1311e7 --- /dev/null +++ b/common/src/lib/Login.svelte @@ -0,0 +1,765 @@ + + + + + + +
640} + class:flex={height > 640} + bind:this={top} +> + {#if step == "load"} +
+

+ {$t("pages.login.heading")} +

+

{$t("pages.login.with_pazzle")}

+
    +
  • + {$t("pages.login.pazzle_steps.1")} +
  • +
  • + {$t("pages.login.pazzle_steps.2")} +
  • +
  • + {$t("pages.login.pazzle_steps.3")} +
  • +
  • + {$t("pages.login.pazzle_steps.4")} +
  • +
  • + {$t("pages.login.pazzle_steps.5")} +
  • +
  • + {$t("pages.login.pazzle_steps.6")} +
  • +
+ +

+ {$t("pages.login.with_mnemonic")} +

+
    +
  • + {$t("pages.login.mnemonic_steps.1")} +
  • +
  • + {$t("pages.login.mnemonic_steps.2")} +
  • +
+ + + {#if for_import} +
+ {$t("pages.wallet_create.save_wallet_options.trust")} +
+

+ {$t("pages.wallet_create.save_wallet_options.trust_description")} + {#if !tauri_platform} + {$t("pages.login.trust_device_allow_cookies")}{/if}
+

+
+ {$t("pages.login.trust_device_yes")} +
+
+ {/if} + +
+
+ + {#if for_import && trusted} + + + {/if} + + {#if !loaded} + {$t("pages.login.loading_pazzle")}... + + {:else} + + {/if} + + + {$t("pages.login.open_with_mnemonic")} + +
+
+
+ + {:else if step == "pazzle" || step == "order" || step == "pin" || step == "mnemonic"} +
640} + class:min-w-[300px]={mobile} + class:min-w-[500px]={!mobile} + class:max-w-[370px]={mobile} + class:max-w-[600px]={!mobile} + > +
+ + + {#if step == "mnemonic"} +
+ + +
+ +
+ + {:else if step == "pazzle"} +

+ + {@html $t("pages.login.select_emoji", { + values: { + category: $t( + "emojis.category." + + emoji_cat[shuffle.category_indices[pazzlePage]] + ), + }, + })} +

+ {#each [0, 1, 2, 3, 4] as row} +
+ {#each emojis2[pazzlePage]?.slice(0 + row * 3, 3 + row * 3) || [] as emoji, i (pazzlePage + "-" + row + "-" + i)} +
select(row * 3 + i)} + on:keypress={() => select(row * 3 + i)} + > + +
+ {/each} +
+ {/each} + {:else if step == "order"} +

+ {$t("pages.login.order_emojis")} +

+ {#each [0, 1, 2] as row} +
+ {#each selection.slice(0 + row * 3, 3 + row * 3) || [] as emoji, i} + {#if !emoji.sel} +
select_order(emoji)} + on:keypress={() => select_order(emoji)} + title={$t( + "emojis.codes." + + emojis[emoji_cat[emoji.cat]][emoji.index].code + )} + > + +
+ {:else} +
+ + {emoji.sel} +
+ {/if} + {/each} +
+ {/each} + {:else if step == "pin"} +

+ {$t("pages.login.enter_pin")} +

+ + {#each [0, 1, 2] as row} +
+ {#each shuffle_pin.slice(0 + row * 3, 3 + row * 3) as num} + + {/each} +
+ {/each} +
+
+ + +
+ {#each pin_code as pin_key}*{/each} + {/if} +
+ +
+ + +
+
+ {:else if step == "opening"} +
+ {@html $t("pages.login.opening_wallet")} + +
+ {:else if step == "end"} + {#if error} +
+
+ {$t("errors.an_error_occurred")} + + + {display_error(error)} + +
+
+ + +
+
+ {:else} +
+ {@html $t("pages.login.wallet_opened")} + +
+ {/if} + {/if} +
+ + + + diff --git a/common/src/lib/NoWallet.svelte b/common/src/lib/NoWallet.svelte new file mode 100644 index 0000000..6f954d0 --- /dev/null +++ b/common/src/lib/NoWallet.svelte @@ -0,0 +1,86 @@ + + + + + + + +
+
+
+

{$t("pages.no_wallet.welcome")}

+ +

+ {@html $t("pages.no_wallet.description")} +

+ + +
+
diff --git a/common/src/lib/Test.svelte b/common/src/lib/Test.svelte new file mode 100644 index 0000000..b6c4e6e --- /dev/null +++ b/common/src/lib/Test.svelte @@ -0,0 +1,33 @@ + + + + + diff --git a/common/src/lib/component.ts b/common/src/lib/component.ts new file mode 100644 index 0000000..fe9d3fb --- /dev/null +++ b/common/src/lib/component.ts @@ -0,0 +1 @@ +export { default as LogoSimple } from "./components/LogoSimple.svelte"; diff --git a/common/src/lib/components/CopyToClipboard.svelte b/common/src/lib/components/CopyToClipboard.svelte new file mode 100644 index 0000000..0dd40f6 --- /dev/null +++ b/common/src/lib/components/CopyToClipboard.svelte @@ -0,0 +1,91 @@ + + + + +
+
+