From 01dc30b81d9e096abd424e5caf8b4296780f3607 Mon Sep 17 00:00:00 2001 From: Ravi Lamkoti <44892121+RavenColEvol@users.noreply.github.com> Date: Thu, 26 Sep 2024 12:54:11 +0530 Subject: [PATCH] Add Javascript Examples Support (#5722) * chore: moved all ts files for examples to examples/ts * add: tsc to eject js and jsx output * example: add js transpiled examples * example: update example site to show both js and ts code * chore: fix yarn lint * fix(example): getAllExamplesPath --- package.json | 1 + site/examples/Readme.md | 20 +- site/examples/js/check-lists.jsx | 176 +++++ site/examples/js/code-highlighting.jsx | 455 ++++++++++++ site/examples/js/components/index.jsx | 140 ++++ site/examples/js/custom-placeholder.jsx | 31 + site/examples/js/editable-voids.jsx | 141 ++++ site/examples/js/embeds.jsx | 130 ++++ site/examples/js/forced-layout.jsx | 100 +++ site/examples/js/hovering-toolbar.jsx | 147 ++++ site/examples/js/huge-document.jsx | 38 + site/examples/js/iframe.jsx | 140 ++++ site/examples/js/images.jsx | 188 +++++ site/examples/js/inlines.jsx | 386 ++++++++++ site/examples/js/markdown-preview.jsx | 117 +++ site/examples/js/markdown-shortcuts.jsx | 210 ++++++ site/examples/js/mentions.jsx | 692 ++++++++++++++++++ site/examples/js/paste-html.jsx | 235 ++++++ site/examples/js/plaintext.jsx | 22 + site/examples/js/read-only.jsx | 23 + site/examples/js/richtext.jsx | 247 +++++++ site/examples/js/scroll-into-view.jsx | 64 ++ site/examples/js/search-highlighting.jsx | 127 ++++ site/examples/js/shadow-dom.jsx | 39 + site/examples/js/styling.jsx | 45 ++ site/examples/js/tables.jsx | 190 +++++ site/examples/js/utils/environment.js | 4 + site/examples/js/utils/normalize-tokens.js | 89 +++ site/examples/{ => ts}/check-lists.tsx | 0 site/examples/{ => ts}/code-highlighting.tsx | 4 +- .../ts/components/index.tsx} | 0 site/examples/{ => ts}/custom-placeholder.tsx | 0 site/examples/{ => ts}/custom-types.d.ts | 0 site/examples/{ => ts}/editable-voids.tsx | 2 +- site/examples/{ => ts}/embeds.tsx | 0 site/examples/{ => ts}/forced-layout.tsx | 0 site/examples/{ => ts}/hovering-toolbar.tsx | 2 +- site/examples/{ => ts}/huge-document.tsx | 0 site/examples/{ => ts}/iframe.tsx | 2 +- site/examples/{ => ts}/images.tsx | 2 +- site/examples/{ => ts}/inlines.tsx | 2 +- site/examples/{ => ts}/markdown-preview.tsx | 0 site/examples/{ => ts}/markdown-shortcuts.tsx | 0 site/examples/{ => ts}/mentions.tsx | 4 +- site/examples/{ => ts}/paste-html.tsx | 0 site/examples/{ => ts}/plaintext.tsx | 0 site/examples/{ => ts}/read-only.tsx | 0 site/examples/{ => ts}/richtext.tsx | 2 +- site/examples/{ => ts}/scroll-into-view.tsx | 0 .../examples/{ => ts}/search-highlighting.tsx | 2 +- site/examples/{ => ts}/shadow-dom.tsx | 0 site/examples/{ => ts}/styling.tsx | 0 site/examples/{ => ts}/tables.tsx | 0 site/{ => examples/ts}/utils/environment.ts | 0 .../ts}/utils/normalize-tokens.ts | 0 site/pages/api/index.ts | 2 +- site/pages/examples/[example].tsx | 67 +- site/tsconfig.example.json | 21 + 58 files changed, 4262 insertions(+), 47 deletions(-) create mode 100644 site/examples/js/check-lists.jsx create mode 100644 site/examples/js/code-highlighting.jsx create mode 100644 site/examples/js/components/index.jsx create mode 100644 site/examples/js/custom-placeholder.jsx create mode 100644 site/examples/js/editable-voids.jsx create mode 100644 site/examples/js/embeds.jsx create mode 100644 site/examples/js/forced-layout.jsx create mode 100644 site/examples/js/hovering-toolbar.jsx create mode 100644 site/examples/js/huge-document.jsx create mode 100644 site/examples/js/iframe.jsx create mode 100644 site/examples/js/images.jsx create mode 100644 site/examples/js/inlines.jsx create mode 100644 site/examples/js/markdown-preview.jsx create mode 100644 site/examples/js/markdown-shortcuts.jsx create mode 100644 site/examples/js/mentions.jsx create mode 100644 site/examples/js/paste-html.jsx create mode 100644 site/examples/js/plaintext.jsx create mode 100644 site/examples/js/read-only.jsx create mode 100644 site/examples/js/richtext.jsx create mode 100644 site/examples/js/scroll-into-view.jsx create mode 100644 site/examples/js/search-highlighting.jsx create mode 100644 site/examples/js/shadow-dom.jsx create mode 100644 site/examples/js/styling.jsx create mode 100644 site/examples/js/tables.jsx create mode 100644 site/examples/js/utils/environment.js create mode 100644 site/examples/js/utils/normalize-tokens.js rename site/examples/{ => ts}/check-lists.tsx (100%) rename site/examples/{ => ts}/code-highlighting.tsx (99%) rename site/{components.tsx => examples/ts/components/index.tsx} (100%) rename site/examples/{ => ts}/custom-placeholder.tsx (100%) rename site/examples/{ => ts}/custom-types.d.ts (100%) rename site/examples/{ => ts}/editable-voids.tsx (98%) rename site/examples/{ => ts}/embeds.tsx (100%) rename site/examples/{ => ts}/forced-layout.tsx (100%) rename site/examples/{ => ts}/hovering-toolbar.tsx (98%) rename site/examples/{ => ts}/huge-document.tsx (100%) rename site/examples/{ => ts}/iframe.tsx (98%) rename site/examples/{ => ts}/images.tsx (98%) rename site/examples/{ => ts}/inlines.tsx (99%) rename site/examples/{ => ts}/markdown-preview.tsx (100%) rename site/examples/{ => ts}/markdown-shortcuts.tsx (100%) rename site/examples/{ => ts}/mentions.tsx (99%) rename site/examples/{ => ts}/paste-html.tsx (100%) rename site/examples/{ => ts}/plaintext.tsx (100%) rename site/examples/{ => ts}/read-only.tsx (100%) rename site/examples/{ => ts}/richtext.tsx (99%) rename site/examples/{ => ts}/scroll-into-view.tsx (100%) rename site/examples/{ => ts}/search-highlighting.tsx (98%) rename site/examples/{ => ts}/shadow-dom.tsx (100%) rename site/examples/{ => ts}/styling.tsx (100%) rename site/examples/{ => ts}/tables.tsx (100%) rename site/{ => examples/ts}/utils/environment.ts (100%) rename site/{ => examples/ts}/utils/normalize-tokens.ts (100%) create mode 100644 site/tsconfig.example.json diff --git a/package.json b/package.json index 6214a2ea7..ba65c15db 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "test:integration-local": "run-p -r serve playwright", "test:mocha": "mocha --require ./config/babel/register.cjs ./packages/{slate,slate-history,slate-hyperscript}/test/**/*.{js,ts}", "test:jest": "jest --config jest.config.js", + "tsc:examples": "tsc --project ./site/tsconfig.example.json", "watch": "yarn build:rollup --watch", "playwright": "playwright test" }, diff --git a/site/examples/Readme.md b/site/examples/Readme.md index c069b03c0..5bf8cc317 100644 --- a/site/examples/Readme.md +++ b/site/examples/Readme.md @@ -2,16 +2,16 @@ This directory contains a set of examples that give you an idea for how you might use Slate to implement your own editor. Take a look around! -- [**Plain text**](./plaintext.tsx) — showing the most basic case: a glorified `