gitextract_28a2ptz2/ ├── .all-contributorsrc ├── .changeset/ │ ├── README.md │ └── config.json ├── .eslintignore ├── .eslintrc.js ├── .github/ │ ├── .kodiak.toml │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── feature_request.md │ │ └── improve-documentation.md │ └── workflows/ │ ├── pull-request.yml │ └── release.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .yarn/ │ └── releases/ │ └── yarn-3.6.3.cjs ├── .yarnrc.yml ├── CODEOWNERS ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── cypress/ │ ├── integration/ │ │ ├── frame.ts │ │ ├── history.ts │ │ ├── props.ts │ │ └── toolbox.ts │ ├── plugins/ │ │ └── index.js │ ├── support/ │ │ ├── commands.ts │ │ ├── dnd.ts │ │ └── index.ts │ └── tsconfig.json ├── cypress.json ├── examples/ │ ├── basic/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── components/ │ │ │ ├── Header.js │ │ │ ├── SettingsPanel.js │ │ │ ├── Toolbox.js │ │ │ ├── Topbar.js │ │ │ └── user/ │ │ │ ├── Button.js │ │ │ ├── Card.js │ │ │ ├── Container.js │ │ │ └── Text.js │ │ ├── next.config.js │ │ ├── package.json │ │ ├── pages/ │ │ │ ├── _app.js │ │ │ ├── _document.js │ │ │ └── index.js │ │ ├── src/ │ │ │ ├── Link.js │ │ │ └── theme.js │ │ └── styles/ │ │ └── main.css │ └── landing/ │ ├── .babelrc │ ├── .gitignore │ ├── README.md │ ├── components/ │ │ ├── editor/ │ │ │ ├── RenderNode.tsx │ │ │ ├── Toolbar/ │ │ │ │ ├── ToolbarDropdown.tsx │ │ │ │ ├── ToolbarItem.tsx │ │ │ │ ├── ToolbarRadio.tsx │ │ │ │ ├── ToolbarSection.tsx │ │ │ │ ├── ToolbarTextInput.tsx │ │ │ │ └── index.tsx │ │ │ ├── Viewport/ │ │ │ │ ├── Header.tsx │ │ │ │ ├── Sidebar/ │ │ │ │ │ ├── SidebarItem.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Toolbox.tsx │ │ │ │ └── index.tsx │ │ │ └── index.ts │ │ └── selectors/ │ │ ├── Button/ │ │ │ ├── ButtonSettings.tsx │ │ │ └── index.tsx │ │ ├── Container/ │ │ │ ├── ContainerSettings.tsx │ │ │ └── index.tsx │ │ ├── Custom1/ │ │ │ └── index.tsx │ │ ├── Custom2/ │ │ │ └── index.tsx │ │ ├── Custom3/ │ │ │ └── index.tsx │ │ ├── Resizer.tsx │ │ ├── Text/ │ │ │ ├── TextSettings.tsx │ │ │ └── index.tsx │ │ ├── Video/ │ │ │ ├── VideoSettings.tsx │ │ │ └── index.tsx │ │ └── index.ts │ ├── next-env.d.ts │ ├── next.config.js │ ├── package.json │ ├── pages/ │ │ ├── _app.tsx │ │ ├── _document.tsx │ │ └── index.tsx │ ├── postcss.config.js │ ├── seo/ │ │ ├── googlee6ec608adf0c9ed0.html │ │ ├── sitemap.xml │ │ └── urllist.txt │ ├── styles/ │ │ └── app.css │ ├── tailwind.config.js │ ├── tsconfig.json │ ├── types/ │ │ └── svg.d.ts │ └── utils/ │ ├── numToMeasurement.ts │ └── text.ts ├── experimental/ │ ├── README.md │ └── slate/ │ ├── .npmignore │ ├── LICENSE │ ├── README.md │ ├── nodemon.json │ ├── package.json │ ├── rollup.config.js │ ├── src/ │ │ ├── extend/ │ │ │ ├── editable/ │ │ │ │ ├── Editable.tsx │ │ │ │ ├── Element.tsx │ │ │ │ ├── Leaf.tsx │ │ │ │ ├── RenderEditable.tsx │ │ │ │ ├── index.ts │ │ │ │ └── useCraftStateSync.tsx │ │ │ ├── index.ts │ │ │ └── slate/ │ │ │ ├── Slate.tsx │ │ │ ├── SlateNodeContext.tsx │ │ │ ├── index.ts │ │ │ └── useSlateNode.ts │ │ ├── index.ts │ │ ├── interfaces/ │ │ │ ├── index.ts │ │ │ ├── nodes.ts │ │ │ └── slate.ts │ │ ├── normalization/ │ │ │ ├── deleteNodes.ts │ │ │ ├── getSplitOperations.ts │ │ │ ├── index.ts │ │ │ ├── mergeElements.ts │ │ │ ├── normalizeSlate.ts │ │ │ ├── removeInvalidNodes.ts │ │ │ ├── splitSlate.ts │ │ │ ├── tests/ │ │ │ │ ├── fixtures.ts │ │ │ │ ├── getSplitOperations.test.ts │ │ │ │ ├── removeInvalidNodes.test.ts │ │ │ │ ├── splitSlate.test.ts │ │ │ │ └── wrapRogueElement.test.ts │ │ │ └── wrapRogueElement.ts │ │ ├── setup/ │ │ │ ├── SlateSetupContext.tsx │ │ │ └── index.ts │ │ └── utils/ │ │ ├── applyIdOnOperation.ts │ │ └── formats.ts │ └── tsconfig.json ├── jest/ │ └── setup.js ├── jest.config.js ├── lerna.json ├── package.json ├── packages/ │ ├── core/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── nodemon.json │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── editor/ │ │ │ │ ├── Editor.tsx │ │ │ │ ├── EditorContext.tsx │ │ │ │ ├── EventHelpers.ts │ │ │ │ ├── NodeHelpers.ts │ │ │ │ ├── actions.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── query.tsx │ │ │ │ ├── store.tsx │ │ │ │ ├── tests/ │ │ │ │ │ ├── EventHelpers.test.ts │ │ │ │ │ ├── NodeHelpers.test.ts │ │ │ │ │ ├── actions.test.ts │ │ │ │ │ └── query.test.tsx │ │ │ │ └── useInternalEditor.ts │ │ │ ├── events/ │ │ │ │ ├── CoreEventHandlers.ts │ │ │ │ ├── DefaultEventHandlers.ts │ │ │ │ ├── EventContext.ts │ │ │ │ ├── Events.tsx │ │ │ │ ├── Positioner.ts │ │ │ │ ├── RenderEditorIndicator.tsx │ │ │ │ ├── createShadow.ts │ │ │ │ ├── defineEventListener.ts │ │ │ │ ├── findPosition.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── isEventBlockedByDescendant.ts │ │ │ │ └── movePlaceholder.ts │ │ │ ├── hooks/ │ │ │ │ ├── index.ts │ │ │ │ ├── legacy/ │ │ │ │ │ ├── connectEditor.tsx │ │ │ │ │ └── connectNode.tsx │ │ │ │ ├── tests/ │ │ │ │ │ ├── EditorContext.test.tsx │ │ │ │ │ └── useEditor.test.tsx │ │ │ │ ├── useEditor.tsx │ │ │ │ └── useNode.ts │ │ │ ├── index.tsx │ │ │ ├── interfaces/ │ │ │ │ ├── editor.ts │ │ │ │ ├── events.ts │ │ │ │ ├── index.ts │ │ │ │ └── nodes.ts │ │ │ ├── nodes/ │ │ │ │ ├── Canvas.tsx │ │ │ │ ├── Element.tsx │ │ │ │ ├── NodeContext.tsx │ │ │ │ ├── NodeElement.tsx │ │ │ │ ├── index.ts │ │ │ │ └── useInternalNode.ts │ │ │ ├── render/ │ │ │ │ ├── DefaultRender.tsx │ │ │ │ ├── Frame.tsx │ │ │ │ ├── RenderNode.tsx │ │ │ │ ├── RenderPlaceholder.tsx │ │ │ │ ├── SimpleElement.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── tests/ │ │ │ │ ├── Frame.test.tsx │ │ │ │ └── RenderNode.test.tsx │ │ │ ├── tests/ │ │ │ │ └── fixtures.ts │ │ │ └── utils/ │ │ │ ├── createNode.ts │ │ │ ├── createTestNode.ts │ │ │ ├── deserializeNode.tsx │ │ │ ├── fromEntries.ts │ │ │ ├── getNodesFromSelector.ts │ │ │ ├── isObject.ts │ │ │ ├── mapChildrenToNodes.ts │ │ │ ├── mergeTrees.tsx │ │ │ ├── parseNodeFromJSX.tsx │ │ │ ├── removeNodeFromEvents.ts │ │ │ ├── resolveComponent.ts │ │ │ ├── serializeNode.tsx │ │ │ ├── testHelpers.ts │ │ │ └── tests/ │ │ │ ├── createNode.test.tsx │ │ │ ├── getNodesFromSelector.test.ts │ │ │ └── parseNodeFromJSX.test.tsx │ │ └── tsconfig.json │ ├── layers/ │ │ ├── .npmignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── package.json │ │ ├── rollup.config.js │ │ ├── src/ │ │ │ ├── events/ │ │ │ │ ├── LayerEventContext.tsx │ │ │ │ ├── LayerEventContextProvider.tsx │ │ │ │ ├── LayerHandlers.ts │ │ │ │ ├── RenderLayerIndicator.tsx │ │ │ │ └── index.tsx │ │ │ ├── index.tsx │ │ │ ├── interfaces.tsx │ │ │ ├── layers/ │ │ │ │ ├── DefaultLayer/ │ │ │ │ │ ├── DefaultLayer.tsx │ │ │ │ │ ├── DefaultLayerHeader.tsx │ │ │ │ │ ├── EditableLayerName.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── LayerContext.tsx │ │ │ │ ├── LayerContextProvider.tsx │ │ │ │ ├── LayerIndicator.tsx │ │ │ │ ├── LayerNode.tsx │ │ │ │ ├── index.ts │ │ │ │ └── useLayer.tsx │ │ │ └── manager/ │ │ │ ├── LayerManagerProvider.tsx │ │ │ ├── actions.tsx │ │ │ ├── context.tsx │ │ │ ├── index.tsx │ │ │ └── useLayerManager.tsx │ │ ├── svg.d.ts │ │ └── tsconfig.json │ └── utils/ │ ├── .gitignore │ ├── .npmignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── nodemon.json │ ├── package.json │ ├── rollup.config.js │ ├── src/ │ │ ├── EventHandlers/ │ │ │ ├── ConnectorRegistry.ts │ │ │ ├── DerivedEventHandlers.ts │ │ │ ├── EventHandlers.ts │ │ │ ├── index.ts │ │ │ ├── interfaces.ts │ │ │ ├── isEventBlockedByDescendant.ts │ │ │ ├── tests/ │ │ │ │ ├── DerivedEventHandlers.test.ts │ │ │ │ ├── EventHandlers.test.ts │ │ │ │ └── fixtures.ts │ │ │ └── wrapConnectorHooks.tsx │ │ ├── History.ts │ │ ├── RenderIndicator.tsx │ │ ├── constants.ts │ │ ├── deprecate.ts │ │ ├── getDOMInfo.ts │ │ ├── getRandomId.ts │ │ ├── index.ts │ │ ├── platform.ts │ │ ├── tests/ │ │ │ └── History.test.ts │ │ ├── useCollector.tsx │ │ ├── useEffectOnce.tsx │ │ ├── useMethods.ts │ │ └── utilityTypes.ts │ └── tsconfig.json ├── rollup.config.js ├── scripts/ │ ├── build.sh │ ├── deploy.sh │ ├── dev.sh │ ├── publish.sh │ └── yalc.sh ├── site/ │ ├── .gitignore │ ├── docs/ │ │ ├── acknowledgements.md │ │ ├── additional/ │ │ │ └── layers.md │ │ ├── api/ │ │ │ ├── Editor.md │ │ │ ├── EditorState.md │ │ │ ├── Element.md │ │ │ ├── Frame.md │ │ │ ├── Node.md │ │ │ ├── NodeHelpers.md │ │ │ ├── NodeTree.md │ │ │ ├── UserComponent.md │ │ │ ├── useEditor.md │ │ │ └── useNode.md │ │ ├── concepts/ │ │ │ ├── editor.md │ │ │ ├── nodes.md │ │ │ └── user-components.md │ │ ├── guides/ │ │ │ ├── basic-tutorial.md │ │ │ └── save-load.md │ │ ├── migrating/ │ │ │ └── 0.1.x.md │ │ ├── overview.md │ │ └── sponsor.md │ ├── docusaurus.config.js │ ├── package.json │ ├── sidebars.js │ └── src/ │ ├── components/ │ │ ├── API.js │ │ ├── Badge.js │ │ ├── Image.js │ │ └── index.js │ ├── css/ │ │ └── custom.css │ ├── pages/ │ │ ├── index.js │ │ └── styles.module.css │ └── theme/ │ ├── DocSidebar/ │ │ ├── Desktop/ │ │ │ ├── CollapseButton/ │ │ │ │ ├── index.js │ │ │ │ └── styles.module.css │ │ │ ├── Content/ │ │ │ │ ├── index.js │ │ │ │ └── styles.module.css │ │ │ ├── index.js │ │ │ └── styles.module.css │ │ ├── Mobile/ │ │ │ └── index.js │ │ └── index.js │ └── Root/ │ └── index.js ├── tsconfig.base.json ├── tsconfig.jest.json └── tsconfig.json