@etrepum/lexical-builder-list 0.0.27

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 ADDED
@@ -0,0 +1,3 @@
1
+ # `@etrepum/lexical-builder-list`
2
+
3
+ **EXPERIMENTAL** Lexical Builder List
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export declare const CheckListPlan: import('@etrepum/lexical-builder').LexicalPlan<import('@etrepum/lexical-builder').PlanConfigBase, "@etrepum/lexical-builder-list/CheckList", unknown, unknown>;
9
+ //# sourceMappingURL=CheckListPlan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckListPlan.d.ts","sourceRoot":"","sources":["../src/CheckListPlan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgCH,eAAO,MAAM,aAAa,gKAIxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const ListPlan: import('@etrepum/lexical-builder').LexicalPlan<import('@etrepum/lexical-builder').PlanConfigBase, "@etrepum/lexical-builder-list/List", unknown, unknown>;
2
+ //# sourceMappingURL=ListPlan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPlan.d.ts","sourceRoot":"","sources":["../src/ListPlan.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,2JAInB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export declare const PACKAGE_VERSION: string;
9
+ export { ListPlan } from './ListPlan';
10
+ export { CheckListPlan } from './CheckListPlan';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,eAAe,EAAE,MAAwC,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,174 @@
1
+ import { definePlan as E } from "@etrepum/lexical-builder";
2
+ import { INSERT_ORDERED_LIST_COMMAND as I, insertList as g, INSERT_UNORDERED_LIST_COMMAND as M, REMOVE_LIST_COMMAND as O, removeList as R, $handleListInsertParagraph as D, ListNode as A, ListItemNode as S, INSERT_CHECK_LIST_COMMAND as v, $isListItemNode as c, $isListNode as h } from "@lexical/list";
3
+ import { mergeRegister as p, $findMatchingParent as P, isHTMLElement as N, calculateZoomLevel as T } from "@lexical/utils";
4
+ import { COMMAND_PRIORITY_LOW as o, INSERT_PARAGRAPH_COMMAND as k, KEY_ARROW_DOWN_COMMAND as y, KEY_ARROW_UP_COMMAND as b, KEY_ESCAPE_COMMAND as K, KEY_SPACE_COMMAND as x, $getNearestNodeFromDOMNode as f, KEY_ARROW_LEFT_COMMAND as $, $getSelection as Y, $isRangeSelection as w, $isElementNode as F } from "lexical";
5
+ function W(e) {
6
+ return p(
7
+ e.registerCommand(
8
+ I,
9
+ () => (g(e, "number"), !0),
10
+ o
11
+ ),
12
+ e.registerCommand(
13
+ M,
14
+ () => (g(e, "bullet"), !0),
15
+ o
16
+ ),
17
+ e.registerCommand(
18
+ O,
19
+ () => (R(e), !0),
20
+ o
21
+ ),
22
+ e.registerCommand(
23
+ k,
24
+ () => D(),
25
+ o
26
+ )
27
+ );
28
+ }
29
+ const U = E({
30
+ name: "@etrepum/lexical-builder-list/List",
31
+ nodes: [A, S],
32
+ register: W
33
+ }), j = E({
34
+ name: "@etrepum/lexical-builder-list/CheckList",
35
+ dependencies: [U],
36
+ register: B
37
+ });
38
+ function B(e) {
39
+ function l(t) {
40
+ L(t, () => {
41
+ const n = t.target;
42
+ e.isEditable() && e.update(() => {
43
+ if (t.target) {
44
+ const i = f(n);
45
+ c(i) && (n.focus(), i.toggleChecked());
46
+ }
47
+ });
48
+ });
49
+ }
50
+ function r(t) {
51
+ L(t, () => {
52
+ t.preventDefault();
53
+ });
54
+ }
55
+ return p(
56
+ e.registerCommand(
57
+ v,
58
+ () => (g(e, "check"), !0),
59
+ o
60
+ ),
61
+ e.registerCommand(
62
+ y,
63
+ (t) => _(t, e, !1),
64
+ o
65
+ ),
66
+ e.registerCommand(
67
+ b,
68
+ (t) => _(t, e, !0),
69
+ o
70
+ ),
71
+ e.registerCommand(
72
+ K,
73
+ (t) => {
74
+ if (C() != null) {
75
+ const i = e.getRootElement();
76
+ return i != null && i.focus(), !0;
77
+ }
78
+ return !1;
79
+ },
80
+ o
81
+ ),
82
+ e.registerCommand(
83
+ x,
84
+ (t) => {
85
+ const n = C();
86
+ return n != null && e.isEditable() ? (e.update(() => {
87
+ const i = f(n);
88
+ c(i) && (t.preventDefault(), i.toggleChecked());
89
+ }), !0) : !1;
90
+ },
91
+ o
92
+ ),
93
+ e.registerCommand(
94
+ $,
95
+ (t) => e.getEditorState().read(() => {
96
+ const n = Y();
97
+ if (w(n) && n.isCollapsed()) {
98
+ const { anchor: i } = n, s = i.type === "element";
99
+ if (s || i.offset === 0) {
100
+ const d = i.getNode(), u = P(
101
+ d,
102
+ (a) => F(a) && !a.isInline()
103
+ );
104
+ if (c(u)) {
105
+ const a = u.getParent();
106
+ if (h(a) && a.getListType() === "check" && (s || u.getFirstDescendant() === d)) {
107
+ const m = e.getElementByKey(u.__key);
108
+ if (m != null && document.activeElement !== m)
109
+ return m.focus(), t.preventDefault(), !0;
110
+ }
111
+ }
112
+ }
113
+ }
114
+ return !1;
115
+ }),
116
+ o
117
+ ),
118
+ e.registerRootListener((t, n) => {
119
+ t !== null && (t.addEventListener("click", l), t.addEventListener("pointerdown", r)), n !== null && (n.removeEventListener("click", l), n.removeEventListener("pointerdown", r));
120
+ })
121
+ );
122
+ }
123
+ function L(e, l) {
124
+ const r = e.target;
125
+ if (r === null || !N(r))
126
+ return;
127
+ const t = r.firstChild;
128
+ if (t != null && N(t) && (t.tagName === "UL" || t.tagName === "OL"))
129
+ return;
130
+ const n = r.parentNode;
131
+ if (!n || n.__lexicalListType !== "check")
132
+ return;
133
+ const i = r.getBoundingClientRect(), s = e.pageX / T(r);
134
+ (r.dir === "rtl" ? s < i.right && s > i.right - 20 : s > i.left && s < i.left + 20) && l();
135
+ }
136
+ function C() {
137
+ const e = document.activeElement;
138
+ return e != null && e.tagName === "LI" && e.parentNode != null && // @ts-ignore internal field
139
+ e.parentNode.__lexicalListType === "check" ? e : null;
140
+ }
141
+ function H(e, l) {
142
+ let r = l ? e.getPreviousSibling() : e.getNextSibling(), t = e;
143
+ for (; r == null && c(t); )
144
+ t = t.getParentOrThrow().getParent(), t != null && (r = l ? t.getPreviousSibling() : t.getNextSibling());
145
+ for (; c(r); ) {
146
+ const n = l ? r.getLastChild() : r.getFirstChild();
147
+ if (!h(n))
148
+ return r;
149
+ r = l ? n.getLastChild() : n.getFirstChild();
150
+ }
151
+ return null;
152
+ }
153
+ function _(e, l, r) {
154
+ const t = C();
155
+ return t != null && l.update(() => {
156
+ const n = f(t);
157
+ if (!c(n))
158
+ return;
159
+ const i = H(n, r);
160
+ if (i != null) {
161
+ i.selectStart();
162
+ const s = l.getElementByKey(i.__key);
163
+ s != null && (e.preventDefault(), setTimeout(() => {
164
+ s.focus();
165
+ }, 0));
166
+ }
167
+ }), !1;
168
+ }
169
+ const q = "0.0.27";
170
+ export {
171
+ j as CheckListPlan,
172
+ U as ListPlan,
173
+ q as PACKAGE_VERSION
174
+ };
@@ -0,0 +1,4 @@
1
+ import { LexicalEditor } from 'lexical';
2
+
3
+ export declare function registerList(editor: LexicalEditor): () => void;
4
+ //# sourceMappingURL=registerList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerList.d.ts","sourceRoot":"","sources":["../src/registerList.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAa7C,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,cAgCjD"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export default function invariant(cond?: boolean, message?: string, ...args: string[]): asserts cond;
9
+ //# sourceMappingURL=invariant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../../src/shared/invariant.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,IAAI,CAQd"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@etrepum/lexical-builder-list",
3
+ "description": "[EXPERIMENTAL] Lexical Builder @etrepum/lexical-builder-list",
4
+ "type": "module",
5
+ "keywords": [
6
+ "lexical",
7
+ "lexical-builder",
8
+ "plug-in",
9
+ "plan"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsc --noEmit && vite build",
13
+ "dev": "vite",
14
+ "test": "vitest run",
15
+ "test:watch": "vitest",
16
+ "lint": "eslint"
17
+ },
18
+ "version": "0.0.27",
19
+ "license": "MIT",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/etrepum/lexical-builder.git",
23
+ "directory": "packages/lexical-builder-list"
24
+ },
25
+ "bugs": {
26
+ "url": "https://github.com/etrepum/lexical-builder/issues"
27
+ },
28
+ "homepage": "https://github.com/etrepum/lexical-builder",
29
+ "dependencies": {
30
+ "@etrepum/lexical-builder": "*"
31
+ },
32
+ "peerDependencies": {
33
+ "lexical": ">=0.16.1-nightly.20240626",
34
+ "@lexical/list": ">=0.16.1-nightly.20240626"
35
+ },
36
+ "sideEffects": false,
37
+ "devDependencies": {
38
+ "@testing-library/dom": "^10.1.0",
39
+ "@testing-library/jest-dom": "^6.4.5",
40
+ "@testing-library/user-event": "^14.5.2",
41
+ "@repo/eslint-config": "*",
42
+ "eslint": "^8.57.0",
43
+ "jsdom": "^24.1.0",
44
+ "tslib": "^2.6.2",
45
+ "typescript": "^5.4.5",
46
+ "vite": "^5.2.11",
47
+ "vite-plugin-dts": "^3.9.1",
48
+ "vite-plugin-package-version": "^1.1.0",
49
+ "vitest": "^1.6.0"
50
+ },
51
+ "module": "dist/index.js",
52
+ "types": "dist/index.d.ts",
53
+ "files": [
54
+ "dist"
55
+ ]
56
+ }