Delete attempted demo
This commit is contained in:
parent
a9a85fb61d
commit
a32b4ea9a6
25 changed files with 0 additions and 1508 deletions
12
packages/loro-demo/.gitignore
vendored
12
packages/loro-demo/.gitignore
vendored
|
|
@ -1,12 +0,0 @@
|
|||
.DS_Store
|
||||
node_modules
|
||||
/build
|
||||
/.svelte-kit
|
||||
/package
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
.vercel
|
||||
.output
|
||||
vite.config.js.timestamp-*
|
||||
vite.config.ts.timestamp-*
|
||||
|
|
@ -1 +0,0 @@
|
|||
engine-strict=true
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
# build the sapper app
|
||||
FROM node AS base
|
||||
ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
RUN corepack enable
|
||||
COPY ./../.. /app/
|
||||
WORKDIR /app
|
||||
|
||||
# FROM base AS prod-deps
|
||||
# RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
|
||||
|
||||
FROM base AS build
|
||||
ENV CI=1
|
||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
||||
# RUN cd packages/website; --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
||||
|
||||
RUN cd packages/website; pnpm run build
|
||||
|
||||
|
||||
# copy node_modules/ and other build files over
|
||||
FROM node:alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=build /app/packages/website/build .
|
||||
COPY --from=build /app/packages/website/package.json ./package.json
|
||||
|
||||
EXPOSE 3000
|
||||
CMD ["node", "."]
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
{
|
||||
"name": "website",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "vite dev",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@collabs/collabs": "^0.13.4",
|
||||
"@collabs/ws-client": "^0.13.4",
|
||||
"@fontsource/fira-mono": "^4.5.10",
|
||||
"@neoconfetti/svelte": "^1.0.0",
|
||||
"@sveltejs/adapter-auto": "^3.0.0",
|
||||
"@sveltejs/adapter-node": "^4.0.1",
|
||||
"@sveltejs/kit": "^2.0.0",
|
||||
"@sveltejs/vite-plugin-svelte": "^3.0.0",
|
||||
"@types/color-hash": "^1.0.5",
|
||||
"@types/lodash": "^4.14.202",
|
||||
"@types/quill": "^2.0.14",
|
||||
"@types/uuid": "^9.0.8",
|
||||
"svelte": "^4.2.7",
|
||||
"svelte-check": "^3.6.0",
|
||||
"tslib": "^2.4.1",
|
||||
"typescript": "^5.0.0",
|
||||
"vite": "^5.0.3",
|
||||
"vite-plugin-top-level-await": "^1.4.1",
|
||||
"vite-plugin-wasm": "^3.3.0"
|
||||
},
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@steeze-ui/svelte-icon": "^1.5.0",
|
||||
"color-hash": "^2.0.2",
|
||||
"lodash": "^4.17.21",
|
||||
"loro-crdt": "^0.11.1",
|
||||
"prosemirror-commands": "^1.5.2",
|
||||
"prosemirror-dropcursor": "^1.8.1",
|
||||
"prosemirror-gapcursor": "^1.3.2",
|
||||
"prosemirror-history": "^1.3.2",
|
||||
"prosemirror-inputrules": "^1.4.0",
|
||||
"prosemirror-keymap": "^1.2.2",
|
||||
"prosemirror-model": "^1.19.4",
|
||||
"prosemirror-schema-basic": "^1.2.2",
|
||||
"prosemirror-schema-list": "^1.3.0",
|
||||
"prosemirror-state": "^1.4.3",
|
||||
"prosemirror-transform": "^1.8.0",
|
||||
"prosemirror-view": "^1.33.1",
|
||||
"quill": "^1.3.7",
|
||||
"uuid": "^9.0.1"
|
||||
}
|
||||
}
|
||||
13
packages/loro-demo/src/app.d.ts
vendored
13
packages/loro-demo/src/app.d.ts
vendored
|
|
@ -1,13 +0,0 @@
|
|||
// See https://kit.svelte.dev/docs/types#app
|
||||
// for information about these interfaces
|
||||
declare global {
|
||||
namespace App {
|
||||
// interface Error {}
|
||||
// interface Locals {}
|
||||
// interface PageData {}
|
||||
// interface PageState {}
|
||||
// interface Platform {}
|
||||
}
|
||||
}
|
||||
|
||||
export {};
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<!-- <link rel="icon" href="%sveltekit.assets%/favicon.png" /> -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
%sveltekit.head%
|
||||
</head>
|
||||
<body data-sveltekit-preload-data="hover">
|
||||
<div style="display: contents">%sveltekit.body%</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
<script lang="ts">
|
||||
import url from "./logo.svg?url";
|
||||
</script>
|
||||
|
||||
<div class="hero card edge">
|
||||
<div class="logo">
|
||||
<img src={url} alt="Logo" />
|
||||
</div>
|
||||
<div class="content">
|
||||
<h1 class="title">JadedBlueEyes</h1>
|
||||
<div class="description">Finally, a website!</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.hero {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: var(--spacing);
|
||||
margin: 48px auto;
|
||||
max-width: 320px;
|
||||
padding: 3rem 0;
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: calc(var(--spacing) / 2);
|
||||
}
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 32px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.description {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 540px) {
|
||||
.hero {
|
||||
flex-direction: row;
|
||||
margin: 96px auto;
|
||||
max-width: 520px;
|
||||
}
|
||||
.title,
|
||||
.description {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,211 +0,0 @@
|
|||
<script lang="ts">
|
||||
// import { Publisher } from "./peritext/pubsub"
|
||||
// import type { Change } from "./peritext/micromerge"
|
||||
// import type { Editor } from "./peritext/bridge"
|
||||
// import { Mark } from "prosemirror-model"
|
||||
// import Micromerge from "./peritext/micromerge"
|
||||
|
||||
// import {createEditor, initializeDocs} from "./peritext/bridge"
|
||||
|
||||
import menu from "./menu";
|
||||
|
||||
// import Hero from "$lib/Hero.svelte";
|
||||
let editorNode: Element;
|
||||
let changesNode: Element;
|
||||
let marksNode: Element;
|
||||
// const publisher = new Publisher<Array<Change>>()
|
||||
|
||||
// const editors: { [key: string]: Editor } = {}
|
||||
|
||||
// const renderMarks = (domNode: Element, marks: readonly Mark[]): void => {
|
||||
// domNode.innerHTML = marks
|
||||
// .map(m => `• ${m.type.name} ${Object.keys(m.attrs).length !== 0 ? JSON.stringify(m.attrs) : ""}`)
|
||||
// .join("<br/>")
|
||||
// }
|
||||
|
||||
// const aliceDoc = new Micromerge("alice")
|
||||
|
||||
|
||||
// const aliceNode = document.querySelector("#alice")
|
||||
// const aliceEditor = aliceNode?.querySelector(".editor")
|
||||
// const aliceChanges = aliceNode?.querySelector(".changes")
|
||||
// const aliceMarks = aliceNode?.querySelector(".marks")
|
||||
|
||||
|
||||
|
||||
for (const editor of Object.values(editors)) {
|
||||
editor.queue.drop()
|
||||
}
|
||||
|
||||
// Add a button for syncing the two editors
|
||||
// document.querySelector("#sync")?.addEventListener("click", () => {
|
||||
// for (const editor of Object.values(editors)) {
|
||||
// editor.queue.flush()
|
||||
// }
|
||||
// })
|
||||
|
||||
// import type { Loro, LoroText } from "loro-crdt";
|
||||
import { onMount } from "svelte";
|
||||
|
||||
// import { EditorView } from "prosemirror-view";
|
||||
|
||||
// import { EditorState, TextSelection, Plugin } from "prosemirror-state";
|
||||
// import { DOMParser, DOMSerializer, Node, Schema } from "prosemirror-model";
|
||||
// import { richTextSchema, EXPAND_CONFIG } from "./prosemirror/schema";
|
||||
|
||||
// import { keymap } from "prosemirror-keymap";
|
||||
// import { baseKeymap } from "prosemirror-commands";
|
||||
// import { history, redo, undo } from "prosemirror-history";
|
||||
import { dropCursor } from "prosemirror-dropcursor";
|
||||
import { gapCursor } from "prosemirror-gapcursor";
|
||||
|
||||
// import { richTextKeyMapPlugin } from "./prosemirror/keymap";
|
||||
|
||||
// let loroState: Loro | null = null;
|
||||
// onMount(() => {
|
||||
// let view: Editor;
|
||||
// (async () => {
|
||||
// // let b = import(`loro-crdt`);
|
||||
|
||||
// // const Loro = (await b).Loro;
|
||||
// // loroState = new Loro();
|
||||
|
||||
// // let pkgbridge = import(`./peritext/bridge`)
|
||||
// // const { createEditor, initializeDocs } = await pkgbridge
|
||||
|
||||
|
||||
// initializeDocs(
|
||||
// [aliceDoc],
|
||||
// [
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "insert",
|
||||
// index: 0,
|
||||
// values: "This is the Peritext editor demo. Press sync to synchronize the editors. Ctrl-B for bold, Ctrl-i for italic, Ctrl-k for link, Ctrl-e for comment".split(
|
||||
// "",
|
||||
// ),
|
||||
// },
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "addMark",
|
||||
// markType: "strong",
|
||||
// startIndex: 84,
|
||||
// endIndex: 88,
|
||||
// },
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "addMark",
|
||||
// markType: "em",
|
||||
// startIndex: 100,
|
||||
// endIndex: 107,
|
||||
// },
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "addMark",
|
||||
// markType: "link",
|
||||
// attrs: { url: "http://inkandswitch.com" },
|
||||
// startIndex: 120,
|
||||
// endIndex: 124,
|
||||
// },
|
||||
// {
|
||||
// path: [Micromerge.contentKey],
|
||||
// action: "addMark",
|
||||
// markType: "comment",
|
||||
// attrs: { id: "1" },
|
||||
// startIndex: 137,
|
||||
// endIndex: 144,
|
||||
// },
|
||||
// ],
|
||||
// )
|
||||
|
||||
// view = createEditor({
|
||||
// actorId: "alice",
|
||||
// editorNode,
|
||||
// changesNode,
|
||||
// doc: aliceDoc,
|
||||
// publisher,
|
||||
|
||||
// plugins: [
|
||||
// // history(),
|
||||
// // keymap({}), // {"Mod-z": undo, "Mod-y": redo, "Mod-Shift-z": redo}
|
||||
// // keymap(baseKeymap),
|
||||
// dropCursor(),
|
||||
// gapCursor(),
|
||||
// // richTextKeyMapPlugin,
|
||||
// menu,
|
||||
// // ...plugins
|
||||
// ],
|
||||
// editable: true,
|
||||
// handleClickOn: (view, pos, node, nodePos, event, direct) => {
|
||||
// // Prosemirror calls this once per node that overlaps w/ the clicked pos.
|
||||
// // We only want to run our callback once, on the innermost clicked node.
|
||||
// if (!direct) return false
|
||||
|
||||
// const marksAtPosition = view.state.doc.resolve(pos).marks()
|
||||
// renderMarks(marksNode, marksAtPosition)
|
||||
// return false
|
||||
// },
|
||||
// })
|
||||
// // let state = EditorState.create({
|
||||
// // schema: richTextSchema,
|
||||
// // // doc,
|
||||
// // // selection,
|
||||
// // });
|
||||
|
||||
// // view = new EditorView(editorNode, {
|
||||
// // state,
|
||||
// // nodeViews: {
|
||||
// // // image(node, view, getPos) {
|
||||
// // // return new ImageView(node, view, getPos);
|
||||
// // // }
|
||||
// // },
|
||||
// // });
|
||||
// })();
|
||||
|
||||
// return () => {
|
||||
// if (view) {
|
||||
// view.view.destroy()
|
||||
// }
|
||||
// };
|
||||
// });
|
||||
|
||||
</script>
|
||||
|
||||
<div class="content card edge">
|
||||
<!-- <div>Test</div> -->
|
||||
<!-- {#if state}
|
||||
<Editor state={state} document={document}/>
|
||||
{/if} -->
|
||||
<div bind:this={editorNode}></div>
|
||||
</div>
|
||||
<div bind:this={changesNode}></div>
|
||||
<div bind:this={marksNode}></div>
|
||||
|
||||
<style>
|
||||
.content {
|
||||
margin: 48px auto;
|
||||
max-width: calc(100% - 2 * var(--spacing));
|
||||
width: 520px;
|
||||
padding: var(--spacing);
|
||||
}
|
||||
|
||||
@media screen and (min-width: 540px) {
|
||||
.content {
|
||||
margin: 96px auto;
|
||||
}
|
||||
}
|
||||
|
||||
:global(.ProseMirror) {
|
||||
margin: auto;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
:global(.ProseMirror h1) {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
:global(.ProseMirror p) {
|
||||
font-size: 1em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,387 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="512"
|
||||
height="512"
|
||||
version="1.1"
|
||||
id="svg212793"
|
||||
sodipodi:docname="geode.svg"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
inkscape:export-filename="geode.png"
|
||||
inkscape:export-xdpi="192.75"
|
||||
inkscape:export-ydpi="192.75"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs212797" />
|
||||
<sodipodi:namedview
|
||||
id="namedview212795"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#ffffff"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="168"
|
||||
inkscape:cy="183.5"
|
||||
inkscape:current-layer="layer2" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="shell"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#eff3fc;stroke:none"
|
||||
d="m 358,28.5687 c -22.314,4.8151 -43.362,14.3332 -66,18.6273 -11.712,2.2216 -30.505,1.1445 -40.826,6.9823 -6.227,3.5216 -27.27989,-2.040724 -31.63089,3.556176 -10.544,13.5633 -15.24118,50.652094 -27.71418,62.513094 -13.649,12.98 -34.91579,7.93112 -48.74379,19.95912 -6.883,5.987 -36.50301,-1.20092 -41.84801,6.14808 -11.013003,15.14 -6.895308,27.95394 -17.97371,46.95347 C 70.34622,208.81524 73.2506,235.732 59,250 c -5.553,5.56 -16.1838,13.147 -18.3966,21.001 -1.5853,5.626 2.7806,10.998 4.5617,16 5.404,15.173 11.93,30.04 17.9128,44.999 4.0708,10.178 7.3728,21.969 13.7608,30.985 20.9293,29.54 54.9253,45.673 84.1613,65.182 18.197,12.143 37.211,30.728 57.424,39.015 5.772,2.366 14.418,0.818 20.576,0.818 13.272,0 29.046,4.44 41.999,1.61 6.483,-1.417 11.961,-7.069 17.172,-10.879 10.382,-7.593 21.227,-14.68 31.999,-21.696 11.03,-7.184 23.027,-13.844 34.83,-19.662 6.434,-3.171 15.141,-5.108 20.502,-10.072 8.001,-7.411 11.871,-22.704 16.767,-32.286 7.719,-15.109 19.713,-33.516 23.213,-50.015 1.635,-7.706 0.214,-16.164 0.557,-24 1.103,-25.185 -0.972,-52.031 2.146,-77 1.925,-15.411 14.007,-28.63 19,-43 1.786,-5.139 0.815,-11.628 0.815,-17 0,-16.952 0.978,-36.37 -2.275,-52.999 C 443.726,100.776 431.165,91.317 425.275,83 417.613,72.1811 414.021,54.6241 404.606,45.6096 398.169,39.4451 385.299,36.75 377,33.6813 c -5.618,-2.0771 -12.876,-6.434 -19,-5.1126 z"
|
||||
id="path212571"
|
||||
sodipodi:nodetypes="cscscscccccccccsccscccccccsccccc" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Inner crystals"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#0050dc;stroke:none"
|
||||
d="m 255.99582,136.24692 c -13.28325,3.13564 -23.96249,17.05477 -29.45978,29.55285 -7.83152,9.21825 -20.73659,12.69624 -27.22374,23.30923 -7.80712,9.56771 -12.45139,22.61213 -24.40613,27.99813 -8.9165,6.50572 -15.18475,16.83023 -24.31444,23.15662 -7.49933,8.7785 -9.79295,20.66701 -11.86171,32.15178 -0.59871,14.13299 11.03896,24.47538 19.01228,34.79576 7.83515,8.18656 10.53435,19.15916 11.78624,29.97498 3.91648,14.32454 21.0672,9.27785 29.0169,18.13391 1.93155,2.63536 10.71773,12.96393 10.48045,7.51081 -4.24181,-9.98405 -17.28154,-13.36069 -23.69493,-18.55586 -1.70966,-9.77325 8.86086,-22.42721 18.04466,-15.38059 10.56155,3.99802 23.1208,11.06031 34.00268,4.10733 7.22764,-9.33734 -12.89517,-12.85673 -9.05407,-24.00526 -0.64439,-12.19441 -0.2895,-26.63161 -7.9351,-37.06001 -4.70022,-13.18538 16.96154,-22.6174 26.14203,-26.51669 12.48137,-4.27105 6.25379,-13.33803 0.77433,-22.76358 -3.65216,-10.86026 -9.59206,-20.57054 -15.1732,-30.4357 -4.75347,-9.6475 6.26105,-14.53668 13.62472,-16.75571 8.99759,-3.04339 19.27257,-9.58524 18.4482,-20.44754 -0.35505,-5.59721 -4.3945,-15.53456 -8.20939,-18.77046 z"
|
||||
id="path212631"
|
||||
sodipodi:nodetypes="ccscccccccccscccccccc" />
|
||||
<path
|
||||
style="fill:#0054dc;stroke:none"
|
||||
d="M 253.59191,137.06128 339,125 c 0.122,5.912 3.474,13.406 1.015,19 -9.879,22.469 -35.14666,28.31496 -35.22166,55.70896 l 25.60833,-5.84021 23.05008,-7.01621 8.87739,27.72018 c 2.86536,6.57179 7.94269,-2.34106 14.12384,-4.87639 l 1.07777,-19.96429 c 14.592,-26.006 7.75436,-63.6374 -10.36964,-86.5754 -3.456,-4.374003 -12.3457,-7.344649 -17.3887,-10.094649 -6.827,-3.7233 -23.69013,-0.244866 -30.93413,0.742134 -25.862,3.522 -56.79537,14.010155 -65.24637,43.257155 z"
|
||||
id="path212609"
|
||||
sodipodi:nodetypes="cccccccccsccc" />
|
||||
<path
|
||||
style="fill:#0074e4;stroke:none"
|
||||
d="M 255.046,135.4849 C 255.049,159.3279 273.804,178.62 279,201 l 25.45709,0.43085 c 0.17019,-7.40966 5.04158,-16.16319 9.84958,-22.43119 C 322.84967,167.86566 335.678,158.011 340.412,144 342.405,138.101 339.259,131.021 339,125 Z"
|
||||
id="path212629"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:#007ce8;stroke:none"
|
||||
d="M 263.62659,146.57473 231.08439,165.24947 218.01385,180.9759 232.986,193.996 245,219 c 5.406,0 17.29,2.245 21,-2 h 1 l 1,3 c 3.736,-5.355 10.6287,-12.48173 10.9277,-19.18773 0.414,-9.284 -10.02411,-46.85654 -15.30111,-54.23754 z"
|
||||
id="path212649"
|
||||
sodipodi:nodetypes="ccccccccsc" />
|
||||
<path
|
||||
style="fill:#0064e0;stroke:none"
|
||||
d="m 305,197 -1.09282,4.03029 3.14539,69.16759 6.72751,1.76179 L 311,267 l 64.49588,5.76923 2.25403,-93.17752 C 362.02991,183.18671 334.828,187.02 320,193.333 c -4,1.702 -11.874,8.261 -15,3.667 z"
|
||||
id="path212655"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<path
|
||||
style="fill:#00b8f8;stroke:none"
|
||||
d="M 267.45004,216.08795 246,219 l 7,22 c 5.144,-4.201 17.21204,-18.05905 14.45004,-24.91205 z"
|
||||
id="path212665"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<path
|
||||
style="fill:#35417e;stroke:none;fill-opacity:1"
|
||||
d="m 267,220 c -2.972,7.065 -8.917,16.331 -15,21 l -1,3 v 1 c 6.242,12.633 2.772,39.998 21,40 3.111,9.036 21.132,13.081 29,17.004 2.955,1.473 8.192,6.301 11,3.996 h 1 l -2,6 c 5.31,-3.752 2.23934,-12.84635 1.57334,-18.40635 -2.121,-17.713 -3.53239,-35.8557 -6.64639,-53.4727 -0.753,-4.261 -0.11166,-14.21085 -1.07687,-18.97632 C 304.22987,218.08252 294.91,220 292,220 Z"
|
||||
id="path212667"
|
||||
sodipodi:nodetypes="cccccccccccssc" />
|
||||
<path
|
||||
style="fill:#1e2a55;stroke:none;fill-opacity:1"
|
||||
d="m 315.78816,312.98257 0.62063,-2.67144 -2.55738,-3.77842 L 313,306 h -1 c -3.72,0.509 -7.617,-2.839 -11,-4.489 -8.764,-4.275 -23.943,-7.535 -29,-16.511 L 265.26361,282.34063 259.91,273.001 256.63164,255.49069 251.92177,245.33226 251,244 l 2,-2 c -8.932,2.627 -16.67357,6.7997 -24.67757,11.4487 -2.872,1.668 -7.69643,5.4703 -9.11043,8.7363 -2.642,6.106 6.02994,30.74744 8.05194,36.70444 3.853,11.352 5.05252,22.32956 12.84252,31.32456 5.744,6.631 25.46054,11.601 33.89354,13.724 5.678,1.429 9.766,-2.889 14,-6.065 8.982,-6.735 30.09016,-12.29043 27.78816,-24.89043 z"
|
||||
id="path212669"
|
||||
sodipodi:nodetypes="cccccccccccccccccccc" />
|
||||
<path
|
||||
style="fill:#0064e0;stroke:none"
|
||||
d="M 309.172,264.26212 313.155,302 l 0.897,14.671 -9.882,8.304 -30.9445,18.90698 c 5.566,10.009 6.6495,29.20102 5.1985,40.11802 -0.609,4.585 0.839,10.237 -3.424,13 l -0.69209,2.5109 c 4.1,0.326 9.65209,0.7801 13.69209,-0.3029 9.122,-2.447 20.71,-16.98 28.039,-23.352 4.019,-3.494 15.73936,-3.33123 16.75436,-8.66723 8.768,-3.949 21.73564,-16.47077 27.35364,-24.27877 13.524,-18.799 10.90262,-54.02665 10.90262,-75.61065 z"
|
||||
id="path212683"
|
||||
sodipodi:nodetypes="cccccccccccccc" />
|
||||
<path
|
||||
style="fill:#0074e4;stroke:none"
|
||||
d="m 144.0889,281.90094 c 3.881,10.475 10.56629,12.35841 14.92929,22.87041 3.967,9.555 6.67243,29.10544 13.23243,37.39344 1.893,2.391 14.46034,5.01371 17.08434,6.01971 4.785,1.833 14.8396,10.71061 22.66504,14.8155 l -0.72168,2.64874 C 218.79332,368.14274 234.136,377.144 238,384 h 1 l 3.907,-19 -0.9053,-32.78526 L 227.13508,298.50099 211.685,326 188.399,303 176,288 Z"
|
||||
id="path212691"
|
||||
sodipodi:nodetypes="ccccccccccccccc" />
|
||||
<path
|
||||
style="fill:#191f58;stroke:none;fill-opacity:1"
|
||||
d="m 266.84546,220.3284 38.02813,0.96688 L 304,201 c -6.741,-0.817 -20.02581,-4.14237 -25.78481,0.27663 -4.482,3.439 -8.87973,13.96677 -11.36973,19.05177 z"
|
||||
id="path212663"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#0088e8;stroke:none"
|
||||
d="m 239.26322,332.35036 c 0,0 4.234,22.307 2.816,34 -1.112,9.169 -7.751,18.644 1.061,26.397 5.832,5.131 27.35697,6.64431 35.08997,6.80431 0,-12.407 1.03303,-25.76431 1.03303,-38.20131 0,-3.686 1.232,-10.193 -1.028,-13.351 -6.674,-9.327 -36.694,-16.615 -36.694,-16.615 z"
|
||||
id="path1905"
|
||||
sodipodi:nodetypes="csccsccc" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer5"
|
||||
inkscape:label="Inner filler"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#88acce;stroke:none"
|
||||
d="m 352.667,48.3333 0.666,0.3334 z"
|
||||
id="path212573" />
|
||||
<path
|
||||
style="fill:#1a417c;stroke:none"
|
||||
d="m 273.98523,64.014313 1.021,3.60001 c -0.44929,0.994654 -2.89038,14.235152 2.6033,22.390425 l -0.27106,1.134885 c 5.372,0.0595 8.99733,-4.011724 13.96633,-5.069059 5.204,-0.599 6.14478,-19.332186 0.79979,-23.454313 -3.47202,0.06783 -13.75636,1.053651 -18.11936,1.398052 z"
|
||||
id="path212595"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:#28528e;stroke:none"
|
||||
d="m 292.04892,62.610936 0.51145,0.794689 c 3.51816,5.61039 1.97342,8.942019 0.0608,10.537622 0.74047,1.521032 3.16211,0.514251 1.45362,6.785381 l -5,5 v 1 l 8,-2 c 8.478,1.837 14.799,-4.5504 23,-5.517 8.352,-0.9844 16.829,3.3142 26,2.2315 5.579,-0.6586 17.591,-3.9679 21,1.2855 l 3,1 h 1 c 2.618,-7.9158 11.368,-18.0951 18,-23 l 1,-4 c -10.259,-3.3382 -24.149,-10.4603 -35,-9.787 -8.667,0.5377 -16.964,5.2542 -25,8.0879 -12.04,4.2456 -25.2259,7.546208 -38.0259,7.581408 z"
|
||||
id="path212575"
|
||||
sodipodi:nodetypes="cccccccssccccccsc" />
|
||||
<path
|
||||
style="display:inline;fill:#28528e;stroke:none"
|
||||
d="m 275.48062,66.706137 -0.21755,-0.909933 -1.08163,-1.791685 c -4.164,-0.9055 -21.47348,1.181002 -25.85357,3.800654 2.60896,21.335702 0.35407,32.231387 13.89257,28.548146 l 15.357,-5.2863 0.604,-8.0625 c -2.99545,-9.36264 -5.16506,-5.353006 -2.70082,-16.298382 z"
|
||||
id="path212575-6"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<path
|
||||
style="fill:#819ab9;stroke:none"
|
||||
d="m 332.667,55.3333 0.666,0.3334 z"
|
||||
id="path212577" />
|
||||
<path
|
||||
style="fill:#7390b2;stroke:none"
|
||||
d="m 329.667,56.3333 0.666,0.3334 z"
|
||||
id="path212579" />
|
||||
<path
|
||||
style="fill:#7b99bb;stroke:none"
|
||||
d="m 326.667,57.3333 0.666,0.3334 z"
|
||||
id="path212581" />
|
||||
<path
|
||||
style="fill:#184179;stroke:none"
|
||||
d="m 389.97471,56.755293 -1.22446,3.868314 c -3.811,1.8705 -7.72578,4.895807 -10.30878,8.200807 -2.884,3.6919 -8.83296,9.05098 -7.98529,14.504652 7.28197,8.102816 18.51182,21.645934 23.01082,29.955934 4.126,7.623 0.944,15.952 6.533,23.715 l 10,-5 c 3.251,-5.438 6.311,-5.803 5,-13 l 15.19714,-7.72329 C 425.85529,105.38499 422.657,103.599 418,98.9962 410.065,91.1522 404.866,82.5122 399.201,73 396.314,68.1523 395.01571,59.595093 389.97471,56.755293 Z"
|
||||
id="path212583"
|
||||
sodipodi:nodetypes="ccccccccccsc" />
|
||||
<path
|
||||
style="fill:#83a3ba;stroke:none"
|
||||
d="m 304.667,62.3333 0.666,0.3334 z"
|
||||
id="path212587" />
|
||||
<path
|
||||
style="fill:#768baa;stroke:none"
|
||||
d="m 299.667,63.3333 0.666,0.3334 z"
|
||||
id="path212589" />
|
||||
<path
|
||||
style="fill:#9db9de;stroke:none"
|
||||
d="m 290.667,64.3333 0.666,0.3334 z"
|
||||
id="path212591" />
|
||||
<path
|
||||
style="fill:#133773;stroke:none"
|
||||
d="m 221.72724,93.508349 4.76138,4.1377 c 7.60069,9.607861 4.56733,17.501811 10.19927,8.741731 l 5.80073,-5.74173 5.15506,0.12113 3.2439,-3.800466 c 3.2915,-0.41015 1.45314,-0.281562 4.64714,-0.268062 l -7.0461,-29.052603 c -3.9935,2.0403 -13.07061,1.659981 -17.54024,7.565244 -4.46962,5.905262 -8.22578,14.401369 -9.22114,18.297056 z"
|
||||
id="path212603"
|
||||
sodipodi:nodetypes="ccccccccsc" />
|
||||
<path
|
||||
style="fill:#284893;stroke:none"
|
||||
d="m 299.667,102.333 0.666,0.334 z"
|
||||
id="path212611" />
|
||||
<path
|
||||
style="fill:#0e2d66;stroke:none"
|
||||
d="m 221.7552,93.376736 c -1.54044,5.73816 -6.36069,11.552144 -9.09249,18.903624 l 3.83532,9.36018 c -2.857,4.296 1.40843,13.69436 5.66143,14.59436 1.311,6.409 13.99482,-2.48016 17.36527,-6.24709 l -3.0267,-25.34727 -3,1 v -4 l -6,-4.000004 z"
|
||||
id="path212613"
|
||||
sodipodi:nodetypes="cccccccccc" />
|
||||
<path
|
||||
style="fill:#3f71b0;stroke:none"
|
||||
d="m 238.43464,129.03125 c -4.02998,7.52189 -11.11005,7.32511 -15.67741,9.59018 -5.224,6.865 -4.83707,16.90784 -14.49907,19.41084 l -2.88673,3.72391 -2.47008,3.69304 -3.83488,1.54533 c -8.53345,-0.61946 -37.80397,11.31994 -40.24297,20.00794 l 5.63643,25.7116 15.34953,-9.62083 23.9476,-26.37143 12.96012,-8.12176 8.26559,-4.02232 -3.85325,-4.27751 L 234,152 v -1 c -3.92,-8.108 8.897,-9.239 14,-9 -0.932,-7.572 1.95,-9.595 5,-16 l -4,2 4,-15 6,2 -1,-5 4,-1 -2,-3 3,-1 -7.52726,-8.34891 -4.47354,-0.973144 -3.59353,4.357484 -4.76169,0.41133 -5.95859,5.92131 z"
|
||||
id="path212615"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
|
||||
<path
|
||||
style="fill:#5181c1;stroke:none"
|
||||
d="m 297.93373,84.809341 c -1.23292,-0.578554 -0.44396,-0.256304 -1.12947,-0.144816 l -7.7128,2.038247 -3.09509,0.853057 c -6.56804,3.222197 -19.93753,7.591632 -30.51419,9.206613 l 3.96846,11.273508 -2.31287,1.43474 0.65142,3.87462 -5.29282,-1.31816 -4.61878,15.04443 2.08343,1.67705 c -4.117,5.906 -14.76691,13.58403 -14.76691,13.58403 l -2.53938,5.89627 L 234,152 l -14,8 -2,5 h 6 l 1,-4 10,2 c 7.81,-11.422 17.509,-21.599 25.481,-32.961 4.64,-6.613 9.77,-16.587 16.562,-21.044 10.969,-7.199 30.199,-8.118 42.957,-10.4194 7.838,-1.4141 23.594,-7.1644 31,-3.544 9.299,4.5463 14.434,17.4464 21,24.9684 7.58,-12.434 13.974,-1.605 14,8 l -5,4 -2,-2 4.315,17 -2.241,17 0.926,8 c -0.703,6.416 -6.019,23.094 0,27 0.68879,0.49568 1.77385,1.11569 0.87012,2.01056 l 0.40364,0.85349 L 380,201 c 0.385,6.327 -0.095,16.672 6,20 1.425,-11.269 7.51189,-27.36842 9.59875,-37.72392 l 4.79221,-20.42487 2.51396,-19.49455 c -3.65922,-5.19082 -6.24637,-18.83229 -7.49852,-28.9525 l -20.08831,-28.133706 -4.51582,-2.586635 c -3.99631,-4.474522 -13.19294,-4.235434 -17.67194,-3.789634 -5.138,0.5114 -10.79238,1.685055 -15.97838,1.108855 -4.285,-0.4761 -10.73318,-2.834322 -15.30218,-2.506422 -8.604,0.6174 -15.25504,7.804723 -23.91604,6.312723 z"
|
||||
id="path212605"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccsscc" />
|
||||
<path
|
||||
style="fill:#768ba8;stroke:none"
|
||||
d="m 224,110 1,1 z"
|
||||
id="path212617" />
|
||||
<path
|
||||
style="fill:#92a1b6;stroke:none"
|
||||
d="m 223,111 1,1 z"
|
||||
id="path212619" />
|
||||
<path
|
||||
style="fill:#305e99;stroke:none"
|
||||
d="m 430,111 -15,8 -5,13 -10,5 c 4.11,9.716 -1.105,24.064 -3.525,34 -0.997,4.093 -0.902,8.621 -3.475,12 L 385.94846,218.08282 385,280 l 24.11713,-9.37845 1.13709,-3.37441 1.7085,-2.33943 2.96593,-0.72917 C 415.95248,260.31763 415.97547,251.82111 416,249 c 0,-9.983 -1.95,-22.352 0.789,-32 3.847,-13.555 14.588,-24.491 18.422,-38 2.651,-9.338 -0.142,-20.553 -1.041,-30 -0.978,-10.279 3.737,-30.257 -4.17,-38 z"
|
||||
id="path212621"
|
||||
sodipodi:nodetypes="ccccccccccccccccc" />
|
||||
<path
|
||||
style="fill:#5daaf0;stroke:none"
|
||||
d="m 378.37917,130.26341 3.26734,5.89182 L 386,128 c -0.003,-3.79 -1.03582,-22.11649 -5.10783,-22.76325 -4.41248,-0.70083 -19.42154,-7.241684 -19.82254,-2.32168 -0.342,4.198 15.45054,23.78834 17.30954,27.34834 z"
|
||||
id="path212623"
|
||||
sodipodi:nodetypes="cccscc" />
|
||||
<path
|
||||
style="fill:#224b8b;stroke:none"
|
||||
d="m 212.73348,112.10637 c 0,0 -8.42095,13.24142 -14.11262,17.39516 -5.69168,4.15374 -20.28251,9.81654 -20.28251,9.81654 l -0.11184,7.08987 10.07635,11.72158 5.30268,6.61997 3.33204,3.00603 c 4.19844,-0.49879 6.43501,-3.15249 10.16483,-2.89714 l 2.04788,-5.37844 c 12.07682,-2.33041 6.98729,-16.91942 15.78729,-21.72442 l -1.03204,-1.52424 -1.11714,-5.49279 c -2.41719,-2.63399 -4.54365,-4.35987 -3.21265,-8.81587 l -2.63817,-4.1671 z"
|
||||
id="path212625"
|
||||
sodipodi:nodetypes="csccccccccccccc" />
|
||||
<path
|
||||
style="fill:#3367a0;stroke:none"
|
||||
d="m 158.14877,185.96042 -25.28848,19.34864 c 0,0 -8.12052,7.9095 -13.52431,16.7002 -2.7019,4.39535 -8.14015,12.17729 -9.04867,21.82613 -0.90852,9.64885 2.29516,22.83022 2.29516,22.83022 1.168,10.454 1.1233,17.77286 8.32306,25.55027 l 5.78047,-9.04588 -3.369,-14.131 0.75077,-18.40667 0.0472,-5.68032 2.61459,-3.93204 1.37653,-10.17197 c 7.41,-0.179 13.44385,-8.38474 14.34685,-16.29374 h 1 v 3 c 10.145,-3.244 27.01079,-23.14484 14.69579,-31.59384 z"
|
||||
id="path212659"
|
||||
sodipodi:nodetypes="ccsscccccccccccc" />
|
||||
<path
|
||||
style="fill:#12326d;stroke:none"
|
||||
d="m 80.67469,258.37719 c 10.138915,-1.55942 20.38011,-7.7734 30.14958,-8.90056 -2.25984,-17.44558 18.43205,-40.47728 32.23905,-51.64628 18.275,-14.784 32.98328,-18.47872 54.11428,-30.27572 -6.30524,-6.77022 -10.37614,-10.24453 -9.99433,-16.39914 l -8.77936,-11.86052 c -11.784,3.395 -22.44982,2.28678 -31.14747,11.94431 -14.0268,5.27547 -31.12869,4.05138 -36.87556,9.52967 -10.781002,15.085 -5.14539,38.92029 -17.206342,49.20882 -7.367949,6.28518 -8.995531,27.4032 -15.766031,34.3172 -1.6899,1.726 -7.197383,5.68771 -5.647783,8.59771 2.2995,4.319 8.745766,6.94551 8.913966,5.48451 z"
|
||||
id="path212635"
|
||||
sodipodi:nodetypes="ccccccccsccc" />
|
||||
<path
|
||||
style="fill:#467cba;stroke:none"
|
||||
d="m 162.0298,196.90064 -11.70098,5.68908 -12.34038,16.2625 -9.88701,6.13801 -2.53148,11.58503 -3.11383,8.72599 0.82862,23.49053 30.04177,-35.75633 8,5 c -2.643,-9.795 8.74551,-29.11357 0.70329,-41.13481 z"
|
||||
id="path1604"
|
||||
sodipodi:nodetypes="cccccccccc" />
|
||||
<path
|
||||
style="fill:#5598dc;stroke:none"
|
||||
d="M 224.29593,160.54433 224,165 l -5,2 h -1 -1 l -4,-2 -33.07772,35.15003 c -0.95276,4.12631 0.55622,5.85655 5.339,12.11246 C 189.6261,207.25302 195.668,202.324 200,198.001 c 10.169,-10.149 28.01107,-22.79739 35.20283,-35.31608 L 233,161 Z"
|
||||
id="path212645"
|
||||
sodipodi:nodetypes="cccccccccccc" />
|
||||
<path
|
||||
style="fill:#829dba;stroke:none"
|
||||
d="m 157,162 1,1 z"
|
||||
id="path212647" />
|
||||
<path
|
||||
style="fill:#7b92b2;stroke:none"
|
||||
d="m 133,196 1,1 z"
|
||||
id="path212657" />
|
||||
<path
|
||||
style="fill:#336aa3;stroke:none"
|
||||
d="m 139.71309,305.30651 -8,7 c 4.02861,9.73272 -2.81239,20.8819 10.46361,18.0099 0,8.429 7.42868,14.73926 18.25668,16.32626 -5.383,-12.685 -2.84029,-37.57916 -20.72029,-41.33616 z"
|
||||
id="path212703"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#1f4c87;stroke:none"
|
||||
d="m 92.957688,249.35342 c -10.635604,3.32616 -11.133231,2.77842 -21.434114,1.62832 -2.415644,15.61032 -2.857801,6.96596 -8.356857,26.7974 -1.1853,11.523 7.596683,24.43486 11.328683,35.22086 3.0705,8.874 4.6271,19.962 9.51,28 5.3241,8.765 14.4195,15.845 20.7636,24.015 5.553,7.152 10.616,16.491 17.415,22.456 13.329,11.692 31.55,18.921 45.816,29.764 10.401,7.905 20.845,15.75 31,23.962 4.899,3.962 9.972,9.911 16,12.075 9.595,3.446 23.861,2.721 34,2.728 v -1 c 9.47218,-8.98608 16.17423,-26.62337 -2.05771,-25.61063 L 252,416 c -6.71,0 -17.101,1.957 -22.985,-1.742 -8.28354,-1.43843 -2.47107,-4.6419 -7.26043,-6.02943 C 207.62057,412.74757 182.13,417.848 170,406 c -3.32684,-6.77705 -7.37401,-5.2969 -15,-5 l 3,-3 -4,-1 c 1.55552,-3.53261 4.48683,-5.27457 -0.41151,-4.55361 l -3.87437,-0.0692 L 149,377 l 5,-2 3,4 -9,-23 4.79499,-1.98934 c 3.67425,-9.7943 4.09101,-0.92676 2.456,-9.16546 -10.12,-2.641 -10.64688,-9.10556 -10.64688,-17.63656 L 139,324 138.25798,322.88131 C 138.06111,321.20774 137.55128,322.94132 137,320 l -22.954,-42 -2.24082,-21.68635 c -1.03167,-4.84381 -0.67751,-3.5193 -1.00609,-7.05892 -3.0973,0.25842 -7.80683,1.66094 -17.841402,0.0987 z"
|
||||
id="path212671"
|
||||
sodipodi:nodetypes="cccscccccccccccccccccccccccccccccccc" />
|
||||
<path
|
||||
style="fill:#6e8bad;stroke:none"
|
||||
d="m 70,263 1,1 z"
|
||||
id="path212675" />
|
||||
<path
|
||||
style="fill:#163d78;stroke:none"
|
||||
d="M 410.02119,266.15303 409,269 c -7.409,0.219 -18.59579,10.41276 -23.99355,9.64883 -2.071,4.329 -1.40445,13.84517 -1.09645,18.35117 0.625,9.126 1.672,21.133 -0.674,30 -2.321,8.773 -7.275,21.05 -13.171,27.957 -5.645,6.612 -21.07143,21.04934 -21.07143,21.04934 0,0 3.45199,9.80011 2.18699,15.47211 1.45477,4.74079 4.1322,7.63283 4.1322,12.69684 l 1.35059,4.96573 C 379.29235,406.82302 383.624,388.662 392.245,371 c 4.516,-9.252 8.16,-18.935 13.064,-28 3.25,-6.009 8.401,-12.289 10.014,-19 C 416.602,318.68 415,311.544 415,306 v -42 h -1 c -2.5449,-1.52206 -3.60892,0.10423 -3.97881,2.15303 z"
|
||||
id="path212679"
|
||||
sodipodi:nodetypes="ccccccccccsccsccc" />
|
||||
<path
|
||||
style="fill:#6a7d9d;stroke:none"
|
||||
d="m 67,266 1,1 z"
|
||||
id="path212681" />
|
||||
<path
|
||||
style="fill:#2c75d1;stroke:none"
|
||||
d="m 372,271 c -5.367,7.717 -3,19.931 -3,29 h 3 l 1.27992,5.73088 c 4.289,-1.423 2.74304,-7.79538 3.71004,-11.79438 C 370.46696,289.7075 374.557,277.869 372,271 Z"
|
||||
id="path212685"
|
||||
sodipodi:nodetypes="cccccc" />
|
||||
<path
|
||||
style="fill:#467cba;stroke:none"
|
||||
d="m 125,288 -1.11077,-0.5972 -2.52377,3.96769 L 132,312 l 9,-5 8,5 c -2.643,-9.795 -14.587,-24.048 -24,-24 z"
|
||||
id="path212693"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:#94b1c3;stroke:none"
|
||||
d="m 65.3333,288.667 0.3334,0.666 z"
|
||||
id="path212695" />
|
||||
<path
|
||||
style="fill:#9aaecf;stroke:none"
|
||||
d="m 68.3333,296.667 0.3334,0.666 z"
|
||||
id="path212697" />
|
||||
<path
|
||||
style="fill:#58a6ee;stroke:none"
|
||||
d="m 253.28483,394.10231 c -1.94103,13.00448 30.38287,20.47826 40.44772,7.9704 l 11.01919,-4.25964 13.75012,-11.77317 c 2.312,-8 11.52899,-11.27271 18.98699,-10.90271 L 362.139,351.972 369,346 h 1 l 5,-21 -4,-4 c -4.969,1.633 -5.326,7.485 -6.95,12 -2.448,6.809 -5.108,11.234 -11.051,15.575 -12.367,9.034 -26.535,17.129 -37.909,27.281 -7.895,7.045 -16.825,19.497 -27.09,22.884 -9.839,3.246 -23.10875,-4.29127 -34.71517,-4.63769 z"
|
||||
id="path212713"
|
||||
sodipodi:nodetypes="ccccccccccccccc" />
|
||||
<path
|
||||
style="fill:#3d98e7;stroke:none"
|
||||
d="m 180,200 c -4.538,8.395 -10.5675,5.9359 -16.8105,13.2379 -1.704,1.992 -4.08049,2.82905 -10.1895,12.7621 h -1 c -5.11269,13.2298 -9.38838,6.49987 -16.36209,16.88961 l -5.39326,5.89475 c 0,0 -5.37726,14.95456 -7.09665,20.25464 l 0.60666,20.29756 c 9.052,-2.063 9.31534,3.56744 14.43434,8.77944 6.387,6.502 13.32122,16.38948 16.57622,25.05248 2.817,7.498 0.67712,16.75204 6.35012,23.11204 6.561,7.355 22.42166,7.12848 30.84066,11.48448 5.999,3.104 10.96861,14.47445 14.83861,20.04045 4.019,5.78 9.10639,5.28755 14.28539,9.24955 4.93,3.771 7.548,9.2 11.974,13.311 2.341,2.173 4.751,3.106 6.946,0.634 h 1 c 3.912,4.546 19.39669,8.14357 24.55969,5.36557 L 254,397 l 0.18923,-2.83638 -2.5691,-0.93187 L 245.376,391.973 235.621,379.63 213.285,363.2 196.829,347.136 176,344 c -0.458,-19.571 -10.935,-34.459 -21.14,-50 -4.137,-6.301 -13.866,-16.982 -13.037,-25 1.962,-18.993 21.396,-30.961 32.892,-44 4.079,-4.628 11.011,-9.563 11.285,-16 -5.835,-0.135 -5.403,-4.394 -4,-9 z"
|
||||
id="path212661"
|
||||
sodipodi:nodetypes="cccccccccccccccccccccccccccccccc" />
|
||||
<path
|
||||
style="fill:#288fdc;stroke:none"
|
||||
d="M 369,300 366.14137,326.08159 371,321 l 4,4 c 0.269,-5.343 6.34202,-18.70989 -1.10898,-20.29789 L 372,300 Z"
|
||||
id="path212699"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:#95aac7;stroke:none"
|
||||
d="m 71.3333,304.667 0.3334,0.666 z"
|
||||
id="path212701" />
|
||||
<path
|
||||
style="fill:#889fbe;stroke:none"
|
||||
d="m 74.3333,312.667 0.3334,0.666 z"
|
||||
id="path212705" />
|
||||
<path
|
||||
style="fill:#869fc7;stroke:none"
|
||||
d="m 76.3333,318.667 0.3334,0.666 z"
|
||||
id="path212709" />
|
||||
<path
|
||||
style="fill:#447dc4;stroke:none"
|
||||
d="m 373.01678,326.31308 -2.87591,10.32042 0.68644,7.40302 -1.69035,-1.32581 -17,20 5,1 c 7.184,-10.842 24.22987,-24.40675 15.87982,-37.39763 z"
|
||||
id="path212715"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:#99b1dd;stroke:none"
|
||||
d="m 81.3333,334.667 0.3334,0.666 z"
|
||||
id="path212717" />
|
||||
<path
|
||||
style="fill:#4d5ed4;stroke:none"
|
||||
d="m 260.667,338.333 0.666,0.334 z"
|
||||
id="path212719" />
|
||||
<path
|
||||
style="fill:#3a4dc3;stroke:none"
|
||||
d="m 262.667,339.333 0.666,0.334 z"
|
||||
id="path212721" />
|
||||
<path
|
||||
style="fill:#4d7eb9;stroke:none"
|
||||
d="m 163.49042,346.98048 c -1.77498,-1.75773 -2.36661,-3.19958 -8.53261,-2.20758 l -2.22909,8.92201 L 148,356 c 0.128,10.95 10.041,22.296 15,32 9.709,-2.3 21.97045,-6.44548 31.99845,-2.62848 4.644,1.768 7.91857,7.95374 12.51457,10.06574 L 208,388 c 6.139,-3.995 -1.399,-12.712 -4.531,-16.914 -2.664,-3.575 -6.12,-10.37 -9.697,-12.808 -8.66,-5.904 -20.95058,-6.10352 -30.28158,-11.29752 z"
|
||||
id="path212725"
|
||||
sodipodi:nodetypes="ccccccccccc" />
|
||||
<path
|
||||
style="fill:#528fd0;stroke:none"
|
||||
d="M 337.67122,374.67242 C 330.43722,373.45342 318.301,376.815 317,385 l -6.27062,8.12985 -0.92768,2.40553 4.48003,0.90664 6.26123,-1.21932 2.08135,-2.04569 c 3.166,-6.208 8.47375,-8.26648 16.29149,-12.79583 l 21.34723,-27.16167 z"
|
||||
id="path212729"
|
||||
sodipodi:nodetypes="cccccccccc" />
|
||||
<path
|
||||
style="fill:#3664a0;stroke:none"
|
||||
d="m 152,375 -3.5288,1.78499 L 149,393 l 5.48694,2.06978 c 1.613,-4.815 4.08369,-6.16852 8.81369,-7.64352 L 158,376 c -2.89337,-0.86806 -1.93606,1.75192 -4,-1 z"
|
||||
id="path212731"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<path
|
||||
style="fill:#204a84;stroke:none"
|
||||
d="m 349,376 c -4.169,7.738 -12.905,8.825 -19.715,12.995 -9.907,6.068 -27.55262,20.15708 -37.20862,22.42732 l 4.92884,1.58713 c 4.485,3.373 16.28716,9.62385 17.64016,0.41885 l 3.25415,-0.76988 c -2.055,3.757 -3.51823,5.24623 1.52477,6.92723 l -0.59938,4.72726 c -4.042,-2.03 -5.51809,-1.84154 -9.37909,0.27046 -3.322,-3.443 -4.59965,-1.5067 -7.30565,0.5483 l -2.89519,1.37918 -7.99033,11.49286 0.29424,2.89433 c -2.504,2.193 -2.00781,8.51194 -0.59681,11.23194 L 357,409 l 0.56143,-3.30039 -0.99905,-2.21786 -1.97398,-4.69298 c 2.18793,-5.23849 0.1237,-4.99419 -0.89991,-9.45723 C 351.58593,383.95439 351.825,381.483 349,376 Z"
|
||||
id="path212733"
|
||||
sodipodi:nodetypes="cccccccccccccccccccc" />
|
||||
<path
|
||||
style="fill:#153d7a;stroke:none"
|
||||
d="m 154,397 1.3869,1.72614 L 155,401 l 2.55685,0.22154 c 6.44333,1.9104 4.22496,0.79936 11.18086,5.54002 3.619,5.226 12.09844,5.77886 17.96144,6.28886 12.283,1.071 22.60678,0.56425 34.67478,-4.62875 l -2.10658,-3.04401 -1.20355,-1.8516 -1.19242,-3.05785 C 210.68488,395.51869 211.53464,397.39542 203,390 c -7.88,-10.479 -24.933,-6.498 -36,-3.511 -3.192,0.862 -7.499,0.473 -10.107,2.79 -2.048,1.82 -2.263,5.215 -2.893,7.721 z"
|
||||
id="path212735"
|
||||
sodipodi:nodetypes="cccccccccccccc" />
|
||||
<path
|
||||
style="fill:#518ecd;stroke:none"
|
||||
d="m 209.59503,380.52295 -3.8759,9.297 C 206.54613,396.51495 210.431,398.26 217,401 c 1.36409,2.71133 2.04267,1.72613 2,0 h 2 v -4 l 3,2 6.05388,-3.88682 c -4.298,-7.349 -12.57385,-12.68023 -20.45885,-14.59023 z"
|
||||
id="path212737"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<path
|
||||
style="fill:#2351c9;stroke:none"
|
||||
d="m 297,393 9,-9 z"
|
||||
id="path212739" />
|
||||
<path
|
||||
style="fill:#3a6aaa;stroke:none"
|
||||
d="m 311.63336,391.68993 -25.46217,20.59968 c 15.992,0 19.906,-9.025 33,-16 v -1 l -5,-1 v -1 l 9.2e-4,-1.83229 z"
|
||||
id="path212741"
|
||||
sodipodi:nodetypes="cccccccc" />
|
||||
<path
|
||||
style="fill:#4172ac;stroke:none"
|
||||
d="M 226.27901,397.35978 220.94279,396.891 217,399 c -0.279,5.985 5.998,13.533 11.158,16.169 4.794,2.449 12.50587,1.41116 17.72487,1.53916 2.9941,1.86618 13.41402,0.71643 17.11713,0.29184 l 1,-5 5,1 c -3.781,-10.545 -20.779,-6.445 -28,-12 h -1 c -4.489,2.973 -8.22,-1.995 -10,-6 z"
|
||||
id="path212743"
|
||||
sodipodi:nodetypes="cccscccccccc" />
|
||||
<path
|
||||
style="fill:#5592d5;stroke:none"
|
||||
d="m 292,399 c 0.38,13.477 -25.403,6.2 -34,6 v 1 l 11,7 -5,-1 -1,5 7.80935,-1.03827 c 17.1474,1.92365 25.171,-11.28537 34.33253,-19.05345 C 300.96988,394.09028 296.406,397.879 292,399 Z"
|
||||
id="path212745"
|
||||
sodipodi:nodetypes="ccccccccc" />
|
||||
<path
|
||||
style="fill:#123473;stroke:none"
|
||||
d="m 314.69895,411.71511 c -5.26779,1.95345 -7.52695,0.95789 -12.73795,-0.39711 -4.279,-1.112 -13.0984,0.41096 -17.80353,1.34998 -0.91604,23.56279 -15.92812,31.38793 1.77627,41.66923 C 298.8701,450.23509 289.162,447.582 293,442 l 5.34265,-4.13795 C 298.31079,435.5539 298.90819,433.92398 300,432 l 10,-6 10,-1 1,-6 c -4.185,-2.397 -3.18419,-4.58946 -1.69819,-8.50546 z"
|
||||
id="path212747"
|
||||
sodipodi:nodetypes="cccccccccccc" />
|
||||
<path
|
||||
style="fill:#2f609b;stroke:none"
|
||||
d="m 274.69766,414.3416 -5.42085,1.69039 c -5.039,-0.014 -5.93819,0.40048 -12.33528,0.44246 -4.09625,0.21244 -4.86223,-1.30591 -10.7581,0.5024 L 246,437 c -0.15389,3.51505 1.95277,4.82411 1,8 h 1 c -1.5651,3.28925 -1.4506,6.78475 -1.67203,10.34725 13.007,3.441 27.88243,3.31378 40.67203,-1.34725 l -7,-5 7,-16 0.32383,-3.17335 L 285,428 l 3,-16 z"
|
||||
id="path212749"
|
||||
sodipodi:nodetypes="ccccccccccccccc" />
|
||||
<path
|
||||
style="display:inline;fill:#3e70af;stroke:none"
|
||||
d="m 381.08533,164.02236 c -2.78685,7.86875 -4.35917,21.97964 -5.31517,28.86664 -2.045,14.72 -2.778,30.135 -2.778,45 0,8.961 1.407,19.309 -0.806,28 -1.253,4.923 -2.246,26.917 2.806,28 l -2.706,46.907 -17.294,22.093 c -7.601,-1.894 -14.31056,9.88224 -17.94256,16.20624 -9.97699,2.10285 -17.27019,10.88882 -18.67519,17.43982 28.19093,-9.09138 59.76234,-42.16689 66.04034,-71.11289 2.903,-13.383 -0.54821,-27.68366 0.53479,-41.04466 0.898,-11.071 0.13145,-22.92515 0.89145,-34.02015 0.634,-9.265 1.87073,-19.12336 0.39373,-28.37836 -1.9536,-7.59077 -0.31948,-10.02848 -1.31548,-18.24848 3.84883,-4.71372 -2.41932,-5.81138 -3.92708,-6.84152 -4.90987,-4.84814 4.10296,-23.508 0.0932,-32.86664 z"
|
||||
id="path212653"
|
||||
sodipodi:nodetypes="ccsccccccccccccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 30 KiB |
|
|
@ -1,46 +0,0 @@
|
|||
<script lang="ts">
|
||||
import MenuIcon from "./MenuIcon.svelte";
|
||||
import type { Command } from "prosemirror-state";
|
||||
export let items: { command: Command; name: string; text: string }[];
|
||||
export let onCommand: Function;
|
||||
</script>
|
||||
|
||||
<div class="menubar">
|
||||
{#each items as item}
|
||||
<button on:click|preventDefault={(e) => onCommand(item.command)}>
|
||||
<MenuIcon name={item.name} text={item.text} />
|
||||
</button>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
<style>
|
||||
@import "../styles.css";
|
||||
|
||||
.menubar {
|
||||
max-width: 480px;
|
||||
margin: auto;
|
||||
padding: 0.5em;
|
||||
margin: 1em auto;
|
||||
|
||||
background-color: var(--surface-color);
|
||||
border: 0.15em var(--shadow-color) solid;
|
||||
border-radius: 0.25em;
|
||||
|
||||
display: flex;
|
||||
gap: 0.25em;
|
||||
}
|
||||
.menubar button {
|
||||
background-color: var(--background-color);
|
||||
/* border: black 1px solid; */
|
||||
border: none;
|
||||
border-radius: 0.25em;
|
||||
width: 2.5em;
|
||||
padding: 0.25em 0.5em;
|
||||
font-size: 1em;
|
||||
}
|
||||
.menubar button:hover {
|
||||
background-color: #444;
|
||||
color: white;
|
||||
border: black 1px solid;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
<script lang="ts">
|
||||
export let name: string;
|
||||
export let text: string;
|
||||
</script>
|
||||
|
||||
<span class={`menuicon-${name}`} title={name}>
|
||||
{text}
|
||||
</span>
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
import { Plugin, type Command } from "prosemirror-state";
|
||||
import { setBlockType, toggleMark } from "prosemirror-commands";
|
||||
import { richTextSchema as schema } from "../prosemirror/schema";
|
||||
|
||||
import Menu from "./Menu.svelte";
|
||||
import type { EditorView } from "prosemirror-view";
|
||||
|
||||
class MenuView {
|
||||
items: { command: Command; text: string; name: string; }[];
|
||||
editorView: EditorView;
|
||||
dom: HTMLDivElement;
|
||||
menu: Menu;
|
||||
constructor(items: { command: Command; text: string; name: string; }[], editorView: EditorView) {
|
||||
this.items = items;
|
||||
this.editorView = editorView;
|
||||
this.update();
|
||||
|
||||
const onCommand = (command: (arg0: any, arg1: any, arg2: any) => void) => {
|
||||
editorView.focus();
|
||||
command(editorView.state, editorView.dispatch, editorView);
|
||||
};
|
||||
|
||||
this.dom = document.createElement("div");
|
||||
this.menu = new Menu({
|
||||
target: this.dom,
|
||||
props: {
|
||||
items,
|
||||
onCommand
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
update() {
|
||||
// this.items.forEach(({ command, dom }) => {
|
||||
// let active = command(this.editorView.state, null, this.editorView);
|
||||
// dom.style.display = active ? "" : "none";
|
||||
// });
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this.dom.remove();
|
||||
}
|
||||
}
|
||||
|
||||
function menuPlugin(items: { command: Command; text: string; name: string; }[]) {
|
||||
return new Plugin({
|
||||
view(editorView) {
|
||||
let menuView = new MenuView(items, editorView);
|
||||
editorView.dom?.parentNode?.insertBefore(menuView.dom, editorView.dom);
|
||||
return menuView;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
let menu = menuPlugin([
|
||||
{ command: toggleMark(schema.marks.strong), text: "B", name: "strong" },
|
||||
{ command: toggleMark(schema.marks.em), text: "i", name: "em" },
|
||||
{ command: toggleMark(schema.marks.code), text: "</", name: "code" },
|
||||
{ command: setBlockType(schema.nodes.heading), text: "H", name: "heading" },
|
||||
{ command: setBlockType(schema.nodes.paragraph), text: "p", name: "paragraph" },
|
||||
// {
|
||||
// command: setBlockType(schema.nodes.paragraph),
|
||||
// dom: icon("p", "paragraph")
|
||||
// },
|
||||
]);
|
||||
|
||||
export default menu;
|
||||
|
|
@ -1,216 +0,0 @@
|
|||
<!-- <script lang="ts">
|
||||
import { onMount, onDestroy, createEventDispatcher } from 'svelte'
|
||||
// import { createSingleLineEditor } from './state'
|
||||
import { EditorView } from "prosemirror-view"
|
||||
import { EditorState } from "prosemirror-state"
|
||||
import { createRichTextEditor } from './editor';
|
||||
import type { LoroText } from 'loro-crdt';
|
||||
|
||||
|
||||
const dispatch = createEventDispatcher()
|
||||
|
||||
/** @type string */
|
||||
export let className = "ui-editor"
|
||||
|
||||
/** @type Loro */
|
||||
export let state;
|
||||
/** @type string */
|
||||
export let document;
|
||||
|
||||
/** @type EditorState */
|
||||
export let editorState = createRichTextEditor(document, state)
|
||||
|
||||
/** @type string */
|
||||
export let placeholder = ''
|
||||
|
||||
/** Reference to the editor view
|
||||
* @type EditorView|null */
|
||||
export let view: EditorView | null = null
|
||||
|
||||
/** Debounce change events (set to zero for immediate updates) */
|
||||
export let debounceChangeEventsInterval = 50
|
||||
|
||||
/** Reference to the editor component
|
||||
* @type HTMLDivElement | null */
|
||||
export let editor: HTMLDivElement | null = null
|
||||
|
||||
/** Initial EditorView props */
|
||||
export let editorViewProps = {}
|
||||
|
||||
/** Focus the content-editable div */
|
||||
export function focus() {
|
||||
view && view.focus()
|
||||
}
|
||||
|
||||
/** Blur the content-editable div */
|
||||
export function blur() {
|
||||
editor && editor.blur()
|
||||
}
|
||||
|
||||
/**
|
||||
* Tracks the timeout id of the last time the change event was dispatched
|
||||
* @type {number | undefined}
|
||||
*/
|
||||
let dispatchLastEditTimeout: number | undefined
|
||||
|
||||
/** Tracks whether changes to editor state were not yet dispatched */
|
||||
let isDirty = false
|
||||
|
||||
// @ts-ignore
|
||||
$: if (view && editorState && !isDirty) {
|
||||
view.updateState(editorState) // necessary to keep the DOM in sync with the editor state on external updates
|
||||
}
|
||||
|
||||
/**
|
||||
* Tracks whether the editor is empty (i.e. has a content size of 0)
|
||||
* @type {boolean}
|
||||
*/
|
||||
let editorIsEmpty: boolean
|
||||
// @ts-ignore
|
||||
$: editorIsEmpty = editorState ? editorState.doc.content.size === 0
|
||||
|| (editorState.doc.textContent === "" && editorState.doc.content.size < 3) : true
|
||||
|
||||
/** Dispatches a change event and resets whether the editor state is dirty */
|
||||
const dispatchChangeEvent = () => {
|
||||
if (isDirty) {
|
||||
dispatch('change', {editorState})
|
||||
isDirty = false
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Captures custom events from plugins and dispatches them with a new event type (based on event.detail.type)
|
||||
* @param event {CustomEvent}
|
||||
*/
|
||||
const onCustomEvent = (event: CustomEvent) => {
|
||||
if (event.detail) {
|
||||
const {type, ...detail} = event.detail
|
||||
dispatch(type || 'custom', detail)
|
||||
}
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
// @ts-ignore
|
||||
view = new EditorView({mount: editor}, {
|
||||
...editorViewProps,
|
||||
state: editorState,
|
||||
dispatchTransaction: (transaction) => {
|
||||
// @ts-ignore
|
||||
editorState = view.state.apply(transaction)
|
||||
|
||||
// @ts-ignore
|
||||
const contentHasChanged = !editorState.doc.eq(view.state.doc)
|
||||
|
||||
if (contentHasChanged) {
|
||||
isDirty = true
|
||||
if (debounceChangeEventsInterval > 0) {
|
||||
if (dispatchLastEditTimeout) clearTimeout(dispatchLastEditTimeout)
|
||||
dispatchLastEditTimeout = setTimeout(dispatchChangeEvent, 50)
|
||||
} else {
|
||||
setTimeout(dispatchChangeEvent, 0)
|
||||
}
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
view.updateState(editorState)
|
||||
|
||||
dispatch('transaction', {view, editorState, isDirty, contentHasChanged})
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
onDestroy(() => {
|
||||
// @ts-ignore
|
||||
if (view)
|
||||
view.destroy()
|
||||
})
|
||||
|
||||
</script> -->
|
||||
<!-- svelte-ignore a11y-no-static-element-interactions -->
|
||||
<!-- @ts-ignore -->
|
||||
<!-- <div class={className}
|
||||
class:ProseMirror={true}
|
||||
class:editor_empty={editorIsEmpty}
|
||||
data-placeholder={placeholder}
|
||||
bind:this={editor}
|
||||
on:focus
|
||||
on:blur
|
||||
on:keydown
|
||||
></div> -->
|
||||
|
||||
<style>
|
||||
|
||||
:global(body) {
|
||||
--ui-color-placeholder: #AAAAAA;
|
||||
}
|
||||
|
||||
:global(.ProseMirror) {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
:global(.ProseMirror) {
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
-webkit-font-variant-ligatures: none;
|
||||
font-variant-ligatures: none;
|
||||
}
|
||||
|
||||
:global(.ProseMirror) pre {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
:global(.ProseMirror) li {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
:global(.ProseMirror-hideselection *::selection) {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
:global(.ProseMirror-hideselection *::-moz-selection) {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
:global(.ProseMirror-hideselection) {
|
||||
caret-color: transparent;
|
||||
}
|
||||
|
||||
:global(.ProseMirror-selectednode) {
|
||||
outline: 2px solid #8cf;
|
||||
}
|
||||
|
||||
/* Make sure li selections wrap around markers */
|
||||
|
||||
:global(li.ProseMirror-selectednode) {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
:global(li.ProseMirror-selectednode:after) {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: -32px;
|
||||
right: -2px;
|
||||
top: -2px;
|
||||
bottom: -2px;
|
||||
border: 2px solid #8cf;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
:global(.ProseMirror .empty-node::before) {
|
||||
position: absolute;
|
||||
color: #aaa;
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
:global(.ProseMirror .empty-node:hover::before) {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
:global(.ProseMirror.editor_empty::before) {
|
||||
position: absolute;
|
||||
content: attr(data-placeholder);
|
||||
pointer-events: none;
|
||||
color: var(--ui-color-placeholder);
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -1,100 +0,0 @@
|
|||
// import type { Delta, Loro, LoroText } from "loro-crdt";
|
||||
|
||||
// import { EditorState, TextSelection, Plugin } from "prosemirror-state";
|
||||
// import { DOMParser, DOMSerializer, Node, Schema } from "prosemirror-model";
|
||||
// import { richTextSchema, EXPAND_CONFIG } from "./schema";
|
||||
|
||||
// import { keymap } from "prosemirror-keymap";
|
||||
// import { baseKeymap } from "prosemirror-commands";
|
||||
// import { history, redo, undo } from "prosemirror-history";
|
||||
// import { dropCursor } from "prosemirror-dropcursor"
|
||||
// import { gapCursor } from "prosemirror-gapcursor"
|
||||
|
||||
// import { richTextKeyMapPlugin } from "./keymap";
|
||||
|
||||
|
||||
// import { PluginKey } from 'prosemirror-state'
|
||||
// const syncPluginKey = new PluginKey('loro-sync')
|
||||
|
||||
// /**
|
||||
// * Create an empty editor state with rich text editing capabilities
|
||||
// * @param html {string}
|
||||
// * @param plugins {array<Plugin>}
|
||||
// * @return {EditorState}
|
||||
// */
|
||||
// export const createRichTextEditor = (document: string, state: Loro, plugins = []) => {
|
||||
// state.configTextStyle(EXPAND_CONFIG)
|
||||
|
||||
|
||||
// const syncPlugin = new Plugin({
|
||||
// key: syncPluginKey,
|
||||
// state: {
|
||||
// init(config, instance) {
|
||||
// let richtext = state.getText(document);
|
||||
// richtext.
|
||||
// instance.doc = new Node()
|
||||
// richtext.subscribe(state, (event) => {
|
||||
// for (const change of event.events) {
|
||||
// console.log(change)
|
||||
// }
|
||||
// // if (!event.local && event.diff.type == "text") {
|
||||
// // console.log(state.peerId, "CRDT_EVENT", event);
|
||||
// // const eventDelta = event.diff.diff;
|
||||
// // const delta: Delta<string>[] = [];
|
||||
// // let index = 0;
|
||||
// // for (let i = 0; i < eventDelta.length; i++) {
|
||||
// // const d = eventDelta[i];
|
||||
// // const length = d.delete || d.retain || d.insert!.length;
|
||||
// // // skip the last newline that quill automatically appends
|
||||
// // if (
|
||||
// // d.insert &&
|
||||
// // d.insert === "\n" &&
|
||||
// // // index === quill.getLength() - 1 &&
|
||||
// // i === eventDelta.length - 1 &&
|
||||
// // d.attributes != null &&
|
||||
// // Object.keys(d.attributes).length > 0
|
||||
// // ) {
|
||||
// // delta.push({
|
||||
// // retain: 1,
|
||||
// // attributes: d.attributes,
|
||||
// // });
|
||||
// // index += length;
|
||||
// // continue;
|
||||
// // }
|
||||
|
||||
// // delta.push(d);
|
||||
// // index += length;
|
||||
// // }
|
||||
|
||||
// // // quill.updateContents(new Delta(delta), "this" as any);
|
||||
// // // const a = this.richtext.toDelta();
|
||||
// // // const b = this.quill.getContents().ops;
|
||||
// // // console.log(this.doc.peerId, "COMPARE AFTER CRDT_EVENT");
|
||||
// // // if (!assertEqual(a, b as any)) {
|
||||
// // // quill.setContents(new Delta(a), "this" as any);
|
||||
// // // }
|
||||
// // }
|
||||
// });
|
||||
// },
|
||||
// apply(tr, value, oldState, newState) {
|
||||
// console.log(tr, value, oldState, newState)
|
||||
// },
|
||||
// }
|
||||
// });
|
||||
|
||||
// return EditorState.create({
|
||||
// schema: richTextSchema,
|
||||
// // doc,
|
||||
// // selection,
|
||||
// plugins: [
|
||||
// // history(),
|
||||
// keymap({}), // {"Mod-z": undo, "Mod-y": redo, "Mod-Shift-z": redo}
|
||||
// keymap(baseKeymap),
|
||||
// dropCursor(),
|
||||
// gapCursor(),
|
||||
// syncPlugin,
|
||||
// richTextKeyMapPlugin,
|
||||
// ...plugins
|
||||
// ]
|
||||
// });
|
||||
// }
|
||||
|
|
@ -1,111 +0,0 @@
|
|||
import {
|
||||
wrapIn, setBlockType, chainCommands, toggleMark, exitCode,
|
||||
joinUp, joinDown, lift, selectParentNode
|
||||
} from "prosemirror-commands";
|
||||
import { wrapInList, splitListItem, liftListItem, sinkListItem } from "prosemirror-schema-list";
|
||||
import { undo, redo } from "prosemirror-history";
|
||||
import { undoInputRule } from "prosemirror-inputrules";
|
||||
import { richTextSchema } from "./schema";
|
||||
import { keymap } from "prosemirror-keymap"
|
||||
|
||||
import type { Command, EditorState, Transaction } from "prosemirror-state";
|
||||
import type { EditorView } from "prosemirror-view";
|
||||
import type { Schema } from "prosemirror-model";
|
||||
const mac = typeof navigator != "undefined" ? /Mac/.test(navigator.platform) : false;
|
||||
type keyMap = { [x: string]: { combo: string, command: Command }[] };
|
||||
|
||||
const addKey = (keyMap: keyMap, name: string, combo: string, command: Command) => {
|
||||
if (!keyMap[name]) keyMap[name] = [];
|
||||
keyMap[name].push({ combo, command });
|
||||
}
|
||||
|
||||
const createKeyMapConfiguration = (schema: Schema) => {
|
||||
let config: keyMap = {}
|
||||
|
||||
addKey(config, 'undo', "Mod-z", undo)
|
||||
|
||||
addKey(config, "redo", "Shift-Mod-z", redo);
|
||||
addKey(config, "undoInputRule", "Backspace", undoInputRule);
|
||||
|
||||
if (!mac) addKey(config, "redo", "Mod-y", redo);
|
||||
|
||||
addKey(config, "joinUp", "Alt-ArrowUp", joinUp);
|
||||
addKey(config, "joinDown", "Alt-ArrowDown", joinDown);
|
||||
addKey(config, "lift", "Mod-BracketLeft", lift);
|
||||
addKey(config, "selectParentNode", "Escape", selectParentNode);
|
||||
|
||||
if (!!schema.marks.strong) {
|
||||
addKey(config, "toggleMarkStrong", "Mod-b", toggleMark(schema.marks.strong));
|
||||
addKey(config, "toggleMarkStrong", "Mod-B", toggleMark(schema.marks.strong));
|
||||
}
|
||||
|
||||
if (!!schema.marks.em) {
|
||||
addKey(config, "toggleMarkEm", "Mod-i", toggleMark(schema.marks.em));
|
||||
addKey(config, "toggleMarkEm", "Mod-I", toggleMark(schema.marks.em));
|
||||
}
|
||||
if (!!schema.marks.code)
|
||||
addKey(config, "toggleMarkCode", "Mod-`", toggleMark(schema.marks.code));
|
||||
|
||||
if (!!schema.nodes.bullet_list)
|
||||
addKey(config, "wrapInListUnordered", "Shift-Ctrl-8", wrapInList(schema.nodes.bullet_list));
|
||||
|
||||
if (!!schema.nodes.ordered_list)
|
||||
addKey(config, "wrapInListOrdered", "Shift-Ctrl-9", wrapInList(schema.nodes.ordered_list));
|
||||
|
||||
if (!!schema.nodes.blockquote)
|
||||
addKey(config, "wrapInBlockquote", "Ctrl->", wrapIn(schema.nodes.blockquote));
|
||||
|
||||
if (!!schema.nodes.hard_break) {
|
||||
let br = schema.nodes.hard_break
|
||||
const cmd = chainCommands(exitCode, (state, dispatch) => {
|
||||
if (dispatch)
|
||||
dispatch(state.tr.replaceSelectionWith(br.create()).scrollIntoView())
|
||||
return true
|
||||
})
|
||||
|
||||
addKey(config, "hardBreak", "Mod-Enter", cmd);
|
||||
addKey(config, "hardBreak", "Shift-Enter", cmd);
|
||||
if (mac) addKey(config, "hardBreak", "Ctrl-Enter", cmd);
|
||||
}
|
||||
|
||||
if (!!schema.nodes.list_item) {
|
||||
addKey(config, "splitListItem", "Enter", splitListItem(schema.nodes.list_item));
|
||||
addKey(config, "liftListItem", "Mod-[", liftListItem(schema.nodes.list_item));
|
||||
addKey(config, "sinkListItem", "Mod-]", sinkListItem(schema.nodes.list_item));
|
||||
}
|
||||
if (!!schema.nodes.paragraph)
|
||||
addKey(config, "setBlockTypeParagraph", "Shift-Ctrl-0", setBlockType(schema.nodes.paragraph));
|
||||
|
||||
if (!!schema.nodes.code_block)
|
||||
addKey(config, "setBlockTypeCode", "Shift-Ctrl-\\", setBlockType(schema.nodes.code_block));
|
||||
|
||||
if (!!schema.nodes.heading)
|
||||
for (let i = 1; i <= 6; i++) {
|
||||
addKey(config, `setHeading${i}`, `Shift-Ctrl-${i}`, setBlockType(schema.nodes.heading, { level: i }));
|
||||
}
|
||||
|
||||
if (!!schema.nodes.horizontal_rule) {
|
||||
addKey(config, "insertHorizontalRuler", "Mod-_", (state, dispatch) => {
|
||||
let hr = schema.nodes.horizontal_rule;
|
||||
if (dispatch)
|
||||
dispatch(state.tr.replaceSelectionWith(hr.create()).scrollIntoView());
|
||||
return true;
|
||||
})
|
||||
}
|
||||
|
||||
return config
|
||||
}
|
||||
|
||||
const getKeyMapFromConfig = (config: keyMap) => {
|
||||
const keys = Object.keys(config);
|
||||
let bindings: { [ combo: string]: Command} = {};
|
||||
keys.forEach(key => {
|
||||
config[key].forEach(entry => {
|
||||
bindings[entry.combo] = entry.command;
|
||||
})
|
||||
})
|
||||
return keymap(bindings);
|
||||
}
|
||||
|
||||
const richTextKeyMapConfiguration = createKeyMapConfiguration(richTextSchema);
|
||||
export const richTextKeyMapPlugin = getKeyMapFromConfig(richTextKeyMapConfiguration);
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
|
||||
import { dev } from '$app/environment';
|
||||
|
||||
|
||||
|
||||
export const SITE_TITLE = 'JadedBlueEyes';
|
||||
|
||||
export const SITE_URL = dev ? "http://localhost:5173" : "https://jade.ellis.link"
|
||||
|
||||
export const SITE_DOMAIN = 'jade.ellis.link';
|
||||
export const SITE_DEFAULT_DESCRIPTION =
|
||||
"Jade's website.";
|
||||
|
||||
export const RSS_DEFAULT_POSTS_PER_PAGE = 15;
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
|
||||
import { Schema } from 'prosemirror-model';
|
||||
import { nodes, marks } from 'prosemirror-schema-basic';
|
||||
|
||||
|
||||
export const EXPAND_CONFIG: { [key in string]: { expand: "before" | "after" | "both" | "none"; } } = {
|
||||
bold: { expand: "after" },
|
||||
italic: { expand: "after" },
|
||||
underline: { expand: "after" },
|
||||
link: { expand: "none" },
|
||||
heading: { expand: "none" },
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Schema to represent rich text
|
||||
* @type {Schema}
|
||||
*/
|
||||
export const richTextSchema = new Schema({
|
||||
nodes,
|
||||
marks
|
||||
});
|
||||
// richTextSchema.nodes.heading
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
:root {
|
||||
color-scheme: light;
|
||||
--spacing: 24px;
|
||||
--theme: #242424;
|
||||
--background-color: #f8f8f8;
|
||||
--surface-color: #fff;
|
||||
--backdrop-color: rgba(247, 247, 247, .54);
|
||||
--shadow-color: rgba(0, 0, 0, .12);
|
||||
--font-color: rgba(0, 0, 0, .87);
|
||||
--font-color-contrast: rgba(255, 255, 255, 1);
|
||||
--font-color-secondary: rgba(0, 0, 0, .6);
|
||||
--font-family-base: Roboto, sans-serif;
|
||||
--font-family-heading: "Sen", Roboto, sans-serif;
|
||||
--border-radius: 8px;
|
||||
--shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
color-scheme: dark;
|
||||
--theme: #eee;
|
||||
--background-color: #141414;
|
||||
--backdrop-color: rgba(20, 20, 20, .54);
|
||||
--shadow-color: rgba(255, 255, 255, .12);
|
||||
--surface-color: #242424;
|
||||
--font-color: rgba(255, 255, 255, .87);
|
||||
--font-color-contrast: rgba(0, 0, 0, .87);
|
||||
--font-color-secondary: rgba(255, 255, 255, .6)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
html {
|
||||
font-family: var(--font-family-base);
|
||||
background-color: var(--background-color);
|
||||
color: var(--font-color);
|
||||
font-size: 16px;
|
||||
line-height: 1.5
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 0;
|
||||
margin: 0
|
||||
}
|
||||
|
||||
iframe,
|
||||
img,
|
||||
svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.main {
|
||||
max-width: 1056px;
|
||||
margin: 0 auto;
|
||||
padding: 0 var(--spacing);
|
||||
--edge-border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 320px) {
|
||||
.main {
|
||||
padding: 0 0;
|
||||
--edge-border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.card {
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: var(--shadow);
|
||||
background-color: var(--surface-color);
|
||||
}
|
||||
|
||||
|
||||
.edge {
|
||||
border-radius: var(--edge-border-radius);
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
<script lang="ts">
|
||||
import "$lib/styles.css";
|
||||
</script>
|
||||
|
||||
<main class="main">
|
||||
<slot />
|
||||
|
||||
</main>
|
||||
|
|
@ -1 +0,0 @@
|
|||
export const ssr = false;
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<script lang="ts">
|
||||
// import { editor } from "$lib/editor";
|
||||
// import Editor from "$lib/prosemirror/Editor.svelte";
|
||||
import LiveEditor from "$lib/LiveEditor.svelte";
|
||||
|
||||
</script>
|
||||
|
||||
<LiveEditor />
|
||||
<!-- <Hero /> -->
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
import adapter from '@sveltejs/adapter-node';
|
||||
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
||||
|
||||
/** @type {import('@sveltejs/kit').Config} */
|
||||
const config = {
|
||||
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
|
||||
// for more information about preprocessors
|
||||
preprocess: vitePreprocess(),
|
||||
|
||||
kit: {
|
||||
adapter: adapter(),
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
export default config;
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
"extends": "./.svelte-kit/tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"checkJs": true,
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"resolveJsonModule": true,
|
||||
"skipLibCheck": true,
|
||||
"sourceMap": true,
|
||||
"strict": true,
|
||||
"moduleResolution": "bundler"
|
||||
}
|
||||
// Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
|
||||
//
|
||||
// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
|
||||
// from the referenced tsconfig.json - TypeScript does not merge them in
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
import { sveltekit } from '@sveltejs/kit/vite';
|
||||
import { defineConfig } from 'vite';
|
||||
|
||||
import wasm from "vite-plugin-wasm";
|
||||
import topLevelAwait from "vite-plugin-top-level-await";
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [wasm(), topLevelAwait(), sveltekit()]
|
||||
});
|
||||
Loading…
Add table
Reference in a new issue