Giter Club home page Giter Club logo

svelte-slate's Introduction

svelte slate

examples license npm (scoped) build

Tools

tries to mimic the react api from slate-react as much as possible

<script lang="ts">
	import { Slate, Editable, withSvelte } from 'svelte-slate';
	import { createEditor } from 'slate';

	const editor = withSvelte(createEditor());
	let value = [
		{
			children: [{ text: 'This is editable ' }]
		}
	];
</script>

<Slate {editor} bind:value>
	<Editable placeholder="Enter some plain text..." />
</Slate>

Vite Problems

using the plugin imports can result in mutiple instances of svelte witch can cause context errors, exclude svelte-slate from deps here

export default defineConfig({
	optimizeDeps: {
		exclude: ['svelte-slate']
	}
});

Custom Rendering

Default components for elements, leafs, and placeholders are provided but can easily be overridden and then can be used in the editable component like <Editable {Element} {Leaf} />

svelte-slate's People

Contributors

datadaode avatar nathanfaucett avatar tellsworth avatar tim-quebic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

svelte-slate's Issues

[firefox] Cannot leave node with keyboard on firefox

This gif shows the issue:

Kapture 2022-09-11 at 13 05 55

It seems the caret is stuck in a non-editable part of the document, can't get out of it unless you click somewhere in the text.
This reproduces on the any of the other editors (rich editor, etc) if you click at the end of a line.

Importanly, this does not happen on the React version of slate (slate official examples, for instance).

No errors are shown in the console, just a lack of ability to edit. Works fine on Chrome/Safari.

Svelte 4 support?

Hey, any plans to update this package to support svelte 4? I tested it out with npm install --force and it seemed to work fine, although I haven't tested it super in depth. Svelte 3 no longer receives updates, so it would be helpful to have official support for Svelte 4.

Maximum call stack size exceeded when rendering Editable with Element/Leaf props

image

The code is basic:

<script>
let value = [{
	type: 'paragraph',
	children: [
		{ text: 'This is editable ' },
		{ text: 'rich', bold: true },
		{ text: ' text, ' },
		{ text: 'much', italic: true },
		{ text: ' better than a ' },
		{ text: '<textarea>', code: true },
		{ text: '!' }
	]
}];
</script>

...

<Slate {editor} bind:value>
    <Editable placeholder="Enter some text..." 
        {Element}
        {Leaf}      
    />
</Slate>

[firefox] error when selecting first character and trying to type

This seems to only happen in Firefox and may be caused by #5 with the additional whitespace being inserted. If the first character in the editor is highlighted, and you try to type, you get an error:

Uncaught Error: Cannot resolve a Slate point from DOM point: [object Text],0

This does not happen in Chromium. See the following GIF: https://gyazo.com/1e59a43c34826eec4ae56085839ae499

Yes, I have addons installed, but I also tested this in a clean-install of Firefox Developer Edition and can confirm the same still happens.

I modified toSlateRange in utils.js to simply log what is being passed for domRange. It seems that the starting element is an invisible empty text node whereas it is correctly the first text node in Chromium. It seems the next sibling node is the correct element so perhaps a fix for this specific issue could be an IS_FIREFOX check selecting the sibling node as the start to the range.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.