oasis-editor 0.0.155 → 0.0.157

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,10 +12,15 @@
12
12
 
13
13
  # Oasis Editor
14
14
 
15
- Oasis Editor is a browser-based document editor built for applications that need
16
- more than a textarea: paged editing, rich formatting, tables, import/export
17
- workflows, command-driven UI, and a plugin surface that can grow with your
18
- product.
15
+ Oasis Editor is a canvas-first, browser-based document editor for applications
16
+ that need a real paged document surface—not a `contenteditable` region or a
17
+ textarea stretched into a page. The document lives in a typed editor model;
18
+ layout, pagination, hit testing, selection, and caret geometry are computed by
19
+ Oasis and rendered onto Canvas.
20
+
21
+ Text input is handled separately through a hidden textarea for keyboard,
22
+ composition, and clipboard events. This keeps the DOM lightweight while giving
23
+ the editor precise control over document layout, interaction, and rendering.
19
24
 
20
25
  It ships as a TypeScript package with a vanilla embed API, React and Vue
21
26
  adapters, a headless runtime, public command and plugin primitives, and a CSS
@@ -23,20 +28,30 @@ bundle you can import into your app.
23
28
 
24
29
  Try the [Playground](https://celsowm.github.io/oasis-editor/).
25
30
 
26
- ## Why Oasis
27
-
28
- - **Embed-first API**: mount the editor into any DOM node and receive a stable
29
- `OasisEditorClient`.
30
- - **Command-driven runtime**: execute built-in or plugin commands from your own
31
- buttons, menus, shortcuts, or app chrome.
32
- - **Paged document UI**: use a document shell with toolbar, menubar, canvas
33
- editing, persistence hooks, and import/export flows.
34
- - **Plugin-ready architecture**: register commands, toolbar items, menubar
35
- items, keymaps, lifecycle hooks, and dependencies.
36
- - **Typed package surface**: core document types, editor state, toolbar
37
- registries, menu registries, command refs, and UI primitives are exported.
38
- - **Framework-friendly**: use the vanilla API directly or mount through the
39
- React and Vue adapters.
31
+ ## Why Oasis?
32
+
33
+ Oasis is built around a document model and rendering pipeline that are separate
34
+ from the DOM:
35
+
36
+ - **Canvas-first editing:** pages, text, tables, images, and document objects
37
+ are painted by a dedicated renderer. DOM overlays are reserved for the caret,
38
+ selection, and interaction layers rather than storing the document content.
39
+ - **Real document layout:** the layout engine handles pages, sections, columns,
40
+ headers, footers, footnotes, endnotes, hyphenation, nested tables, floating
41
+ objects, images, and text boxes.
42
+ - **Word-compatible document handling:** DOCX documents can be imported and
43
+ exported, while PDF export follows the same document layout. Source-backed
44
+ OOXML export preserves unrelated package parts and unknown markup instead of
45
+ silently discarding content Oasis does not edit semantically.
46
+ - **Structured editing model:** state, selection, history, commands, document
47
+ queries, and edit operations work against typed document structures rather
48
+ than HTML extracted from the DOM.
49
+ - **Product-level extensibility:** plugins can contribute commands, shortcuts,
50
+ toolbar items, menubar items, floating actions, side panels, UI primitives,
51
+ and lifecycle behavior.
52
+ - **Embeddable runtime:** use the same core through JavaScript, React, Vue, or a
53
+ headless runtime, with events, persistence, read-only mode, and configurable
54
+ document, inline, or balloon shells.
40
55
 
41
56
  ## Installation
42
57
 
@@ -0,0 +1,10 @@
1
+ import { EditorDocxSourcePackage, EditorSdtDataBinding } from '../../core/model.js';
2
+
3
+ export interface ResolvedCustomXmlBinding {
4
+ storeItemId: string;
5
+ itemPartPath: string;
6
+ itemPropsPartPath: string;
7
+ value: string;
8
+ kind: "element" | "attribute";
9
+ }
10
+ export declare function resolveCustomXmlBinding(sourcePackage: EditorDocxSourcePackage | undefined, binding: EditorSdtDataBinding | undefined): ResolvedCustomXmlBinding | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oasis-editor",
3
- "version": "0.0.155",
3
+ "version": "0.0.157",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {