<!DOCTYPE html>
<html>
<head>
    <title>Yjs Prosemirror Example</title>
    <link rel=stylesheet href="https://prosemirror.net/css/editor.css">
    <style>
      placeholder {
        display: inline;
        border: 1px solid #ccc;
        color: #ccc;
      }
      placeholder:after {
        content: "☁";
        font-size: 200%;
        line-height: 0.1;
        font-weight: bold;
      }
      .ProseMirror img { max-width: 100px }
      .ProseMirror-yjs-cursor {
        position: absolute;
        border-left: black;
        border-left-style: solid;
        border-left-width: 2px;
        border-color: orange;
        height: 1em;
      }
      .ProseMirror-yjs-cursor > div {
        position: relative;
        top: -1.05em;
        font-size: 13px;
        background-color: rgb(250, 129, 0);
        font-family: serif;
        font-style: normal;
        font-weight: normal;
        line-height: normal;
        user-select: none;
        color: white;
        padding-left: 2px;
        padding-right: 2px;
      }
    </style>
</head>
<body>
  <p>This example shows how to bind a YXmlFragment type to a <a href="http://prosemirror.net">Prosemirror</a> editor.</p>
  <p>The content of this editor is shared with every client who visits this domain.</p>
  <div class="code-html">

<div id="editor" style="margin-bottom: 23px"></div>
<div style="display: none" id="content"></div>
  </div>
  <script class="code-js" src="./build/prosemirror.js">
import * as Y from 'yjs'
import { WebsocketProvider } from '../provider/websocket.js'
import { prosemirrorPlugin, cursorPlugin } from '../bindings/prosemirror'

import { EditorState } from 'prosemirror-state'
import { EditorView } from 'prosemirror-view'
import { DOMParser } from 'prosemirror-model'
import { schema } from 'prosemirror-schema-basic'
import { exampleSetup } from 'prosemirror-example-setup'

const provider = new WebsocketProvider('wss://api.yjs.website')
const ydocument = provider.get('prosemirror')
const type = ydocument.define('prosemirror', Y.XmlFragment)

const prosemirrorView = new EditorView(document.querySelector('#editor'), {
  state: EditorState.create({
    doc: DOMParser.fromSchema(schema).parse(document.querySelector('#content')),
    plugins: exampleSetup({schema}).concat([prosemirrorPlugin(type), cursorPlugin])
  })
})

window.example = { provider, ydocument, type, prosemirrorView }
  </script>
</body>
</html>