@lit-pigeon/core 0.3.0 → 0.3.1

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.
Files changed (2) hide show
  1. package/README.md +57 -0
  2. package/package.json +18 -2
package/README.md ADDED
@@ -0,0 +1,57 @@
1
+ # @lit-pigeon/core
2
+
3
+ The pure TypeScript engine behind the [Lit Pigeon](https://github.com/snxstudio/lit-pigeon)
4
+ email editor — document schema, immutable `EditorState` + `Transaction`
5
+ system, commands, undo/redo history, a ProseMirror-inspired plugin registry,
6
+ and the starter-template / brand-kit / asset / row-library storage
7
+ interfaces. Zero runtime UI dependencies, so it runs in the browser, Node, or
8
+ an edge worker.
9
+
10
+ ## Install
11
+
12
+ ```bash
13
+ npm install @lit-pigeon/core
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ ```ts
19
+ import {
20
+ createDefaultDocument,
21
+ EditorState,
22
+ createHistoryPlugin,
23
+ validateDocument,
24
+ getStarterTemplates,
25
+ } from '@lit-pigeon/core';
26
+
27
+ // Start from a blank document, or a starter template.
28
+ const doc = createDefaultDocument();
29
+ const [welcome] = getStarterTemplates(); // welcome / newsletter / transactional / promo
30
+ // welcome.document is a PigeonDocument
31
+
32
+ // Drive edits through immutable transactions (with undo/redo history).
33
+ let state = EditorState.create({ doc, plugins: [createHistoryPlugin()] });
34
+ const tr = state.createTransaction();
35
+ // ...apply command steps to `tr`, then:
36
+ state = state.apply(tr);
37
+
38
+ // Validate before rendering / persisting.
39
+ const errors = validateDocument(state.doc);
40
+ ```
41
+
42
+ `PigeonDocument` is a plain JSON tree (`body → rows → columns → blocks`), so it
43
+ serialises anywhere. Render it to email HTML with
44
+ [`@lit-pigeon/renderer-mjml`](../renderer-mjml) or
45
+ [`@lit-pigeon/ssr`](../ssr).
46
+
47
+ Also exported: the command set (`insertBlock`, `moveBlock`, `insertRow`,
48
+ `resizeColumns`, …), `createBlock`/`createRow` factories, `undo`/`redo`, the
49
+ block registry (`registerBlock`, `getBlockDefinition`), and in-memory storage
50
+ adapters (`InMemoryTemplateStorage`, `InMemoryBrandKitStorage`,
51
+ `InMemoryAssetStorage`, `InMemoryRowLibraryStorage`).
52
+
53
+ Part of [Lit Pigeon](https://github.com/snxstudio/lit-pigeon) — open-source drag-and-drop email editor.
54
+
55
+ ## License
56
+
57
+ MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lit-pigeon/core",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Pure TypeScript engine for the Pigeon email editor",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -14,7 +14,9 @@
14
14
  }
15
15
  },
16
16
  "files": [
17
- "dist"
17
+ "dist",
18
+ "README.md",
19
+ "LICENSE"
18
20
  ],
19
21
  "dependencies": {
20
22
  "immer": "^10.1.0",
@@ -37,6 +39,20 @@
37
39
  "directory": "packages/core"
38
40
  },
39
41
  "license": "MIT",
42
+ "homepage": "https://github.com/snxstudio/lit-pigeon/tree/main/packages/core#readme",
43
+ "bugs": "https://github.com/snxstudio/lit-pigeon/issues",
44
+ "author": "Lit Pigeon Contributors",
45
+ "keywords": [
46
+ "email",
47
+ "email-template",
48
+ "email-editor",
49
+ "mjml",
50
+ "html-email",
51
+ "lit",
52
+ "web-components",
53
+ "drag-and-drop",
54
+ "no-code"
55
+ ],
40
56
  "scripts": {
41
57
  "build": "vite build",
42
58
  "dev": "vite build --watch",