@haklex/rich-ext-code-snippet 0.4.0 → 0.5.0

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 (41) hide show
  1. package/dist/CodeEditorModal.d.ts +1 -1
  2. package/dist/CodeEditorModal.d.ts.map +1 -1
  3. package/dist/CodeSnippetEditDecorator.d.ts +1 -1
  4. package/dist/CodeSnippetEditDecorator.d.ts.map +1 -1
  5. package/dist/CodeSnippetEditRenderer.d.ts +1 -1
  6. package/dist/CodeSnippetEditRenderer.d.ts.map +1 -1
  7. package/dist/CodeSnippetNode-DD50J5NW.js +103 -0
  8. package/dist/{transformer-BK2M_fTu.js → CodeSnippetRenderer-BNGQYBtp.js} +7 -101
  9. package/dist/CodeSnippetRenderer.d.ts +1 -1
  10. package/dist/CodeSnippetRenderer.d.ts.map +1 -1
  11. package/dist/augment.d.ts +9 -0
  12. package/dist/augment.d.ts.map +1 -0
  13. package/dist/edit-BpfJ1A_-.js +416 -0
  14. package/dist/edit.d.ts +6 -0
  15. package/dist/edit.d.ts.map +1 -0
  16. package/dist/edit.mjs +2 -0
  17. package/dist/index.d.ts +3 -8
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.mjs +6 -416
  20. package/dist/node-DEOtFSlD.js +6 -0
  21. package/dist/node.d.ts +8 -0
  22. package/dist/node.d.ts.map +1 -0
  23. package/dist/node.mjs +3 -0
  24. package/dist/nodes/CodeSnippetEditNode.d.ts +1 -1
  25. package/dist/nodes/CodeSnippetEditNode.d.ts.map +1 -1
  26. package/dist/nodes/CodeSnippetNode.d.ts +1 -1
  27. package/dist/nodes/CodeSnippetNode.d.ts.map +1 -1
  28. package/dist/renderer.d.ts +5 -0
  29. package/dist/renderer.d.ts.map +1 -0
  30. package/dist/renderer.mjs +5 -0
  31. package/dist/rich-ext-code-snippet.css +1 -1
  32. package/dist/slot.d.ts +8 -0
  33. package/dist/slot.d.ts.map +1 -0
  34. package/dist/static.d.ts +2 -6
  35. package/dist/static.d.ts.map +1 -1
  36. package/dist/static.mjs +5 -5
  37. package/dist/types.d.ts +10 -0
  38. package/dist/types.d.ts.map +1 -0
  39. package/package.json +20 -8
  40. package/dist/nodes/index.d.ts +0 -7
  41. package/dist/nodes/index.d.ts.map +0 -1
@@ -0,0 +1,416 @@
1
+ import { C as modalSidebar, D as semanticClassNames, E as renameInput, O as sidebarAddButton, S as modalIconButton, T as modalTitlebar, _ as fileList, a as breadcrumbLeft, b as modalBody, c as dragOverlay, d as editOverlay, f as editorContainer, g as fileItem, h as fileIcon, k as sidebarHeader, l as editContainer, m as fileDragHandle, n as getLanguageFromFilename, r as breadcrumb, s as codeSnippetDialogPopup, t as CodeSnippetRenderer, u as editLabel, v as fileName, w as modalTitle, x as modalEditor, y as modal } from "./CodeSnippetRenderer-BNGQYBtp.js";
2
+ import { i as _defineProperty, n as $isCodeSnippetNode, r as CodeSnippetNode } from "./CodeSnippetNode-DD50J5NW.js";
3
+ import { $getNodeByKey, $insertNodes } from "lexical";
4
+ import { FileCode, GripVertical, Pencil, Plus, Trash2, X } from "lucide-react";
5
+ import { createContext, createElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
6
+ import { useColorScheme } from "@haklex/rich-editor";
7
+ import { presentDialog } from "@haklex/rich-editor-ui";
8
+ import { usePortalTheme } from "@haklex/rich-style-token";
9
+ import { defaultKeymap, history, historyKeymap, indentWithTab } from "@codemirror/commands";
10
+ import { Compartment, EditorState } from "@codemirror/state";
11
+ import { EditorView, keymap, lineNumbers } from "@codemirror/view";
12
+ import { DndContext, DragOverlay, PointerSensor, closestCenter, useSensor, useSensors } from "@dnd-kit/core";
13
+ import { SortableContext, arrayMove, useSortable, verticalListSortingStrategy } from "@dnd-kit/sortable";
14
+ import { CSS } from "@dnd-kit/utilities";
15
+ import { getThemeExtensions, loadLanguageExtension } from "@haklex/cm-editor";
16
+ import { normalizeLanguage } from "@haklex/rich-renderer-codeblock/constants";
17
+ import { FileIcon } from "@haklex/rich-renderer-codeblock/icons";
18
+ import { createPortal } from "react-dom";
19
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
20
+ //#region ../../node_modules/.pnpm/@lexical+react@0.44.0_react-dom@19.2.5_react@19.2.5__react@19.2.5_yjs@13.6.29/node_modules/@lexical/react/LexicalComposerContext.prod.mjs
21
+ /**
22
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
23
+ *
24
+ * This source code is licensed under the MIT license found in the
25
+ * LICENSE file in the root directory of this source tree.
26
+ *
27
+ */
28
+ var r = createContext(null);
29
+ function o() {
30
+ const n = useContext(r);
31
+ return n ?? function(n, ...e) {
32
+ const r = new URL("https://lexical.dev/docs/error"), t = new URLSearchParams();
33
+ t.append("code", n);
34
+ for (const n of e) t.append("v", n);
35
+ throw r.search = t.toString(), Error(`Minified Lexical error #${n}; visit ${r.toString()} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`);
36
+ }(8), n;
37
+ }
38
+ //#endregion
39
+ //#region src/CodeEditorModal.tsx
40
+ var SortableFileItem = ({ file, isActive, isEditing, editValue, canDelete, onSelect, onStartRename, onEditChange, onCommitRename, onCancelRename, onDelete }) => {
41
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: file.filename });
42
+ const style = {
43
+ transform: CSS.Transform.toString(transform),
44
+ transition
45
+ };
46
+ return /* @__PURE__ */ jsxs("div", {
47
+ className: `${fileItem({
48
+ active: isActive,
49
+ dragging: isDragging
50
+ })} ${semanticClassNames.fileItem} ${isActive ? semanticClassNames.fileItemActive : ""} ${isDragging ? semanticClassNames.fileItemDragging : ""}`.trim(),
51
+ ref: setNodeRef,
52
+ style,
53
+ onClick: onSelect,
54
+ onDoubleClick: onStartRename,
55
+ children: [
56
+ /* @__PURE__ */ jsx("span", {
57
+ className: `${fileDragHandle} ${semanticClassNames.fileDragHandle}`,
58
+ ...attributes,
59
+ ...listeners,
60
+ onClick: (e) => e.stopPropagation(),
61
+ children: /* @__PURE__ */ jsx(GripVertical, { size: 12 })
62
+ }),
63
+ /* @__PURE__ */ jsx(FileIcon, {
64
+ className: `${fileIcon} ${semanticClassNames.fileIcon}`,
65
+ filename: file.filename,
66
+ size: 14
67
+ }),
68
+ isEditing ? /* @__PURE__ */ jsx("input", {
69
+ autoFocus: true,
70
+ className: `${renameInput} ${semanticClassNames.renameInput}`,
71
+ value: editValue,
72
+ onBlur: onCommitRename,
73
+ onChange: (e) => onEditChange(e.target.value),
74
+ onClick: (e) => e.stopPropagation(),
75
+ onKeyDown: (e) => {
76
+ if (e.key === "Enter") onCommitRename();
77
+ if (e.key === "Escape") onCancelRename();
78
+ }
79
+ }) : /* @__PURE__ */ jsx("span", {
80
+ className: `${fileName} ${semanticClassNames.fileName}`,
81
+ children: file.filename
82
+ }),
83
+ canDelete && /* @__PURE__ */ jsx("button", {
84
+ "aria-label": `Delete ${file.filename}`,
85
+ className: `hjkryc11 ${semanticClassNames.fileDelete}`,
86
+ type: "button",
87
+ onClick: (e) => {
88
+ e.stopPropagation();
89
+ onDelete();
90
+ },
91
+ children: /* @__PURE__ */ jsx(Trash2, { size: 12 })
92
+ })
93
+ ]
94
+ });
95
+ };
96
+ var CodeEditorModal = ({ files: initialFiles, onFilesChange, dismiss, colorScheme }) => {
97
+ const [editFiles, setEditFiles] = useState(() => initialFiles.map((f) => ({ ...f })));
98
+ const [activeFilename, setActiveFilename] = useState(initialFiles[0]?.filename ?? "");
99
+ const [editingFilename, setEditingFilename] = useState(null);
100
+ const [newFilenameInput, setNewFilenameInput] = useState("");
101
+ const [dragActiveId, setDragActiveId] = useState(null);
102
+ const containerRef = useRef(null);
103
+ const editorRef = useRef(null);
104
+ const languageCompartmentRef = useRef(null);
105
+ const themeCompartmentRef = useRef(null);
106
+ if (!languageCompartmentRef.current) languageCompartmentRef.current = new Compartment();
107
+ if (!themeCompartmentRef.current) themeCompartmentRef.current = new Compartment();
108
+ const onCodeChangeRef = useRef(void 0);
109
+ const editFilesRef = useRef(editFiles);
110
+ editFilesRef.current = editFiles;
111
+ const activeFile = editFiles.find((f) => f.filename === activeFilename) ?? editFiles[0];
112
+ onCodeChangeRef.current = (code) => {
113
+ setEditFiles((prev) => prev.map((f) => f.filename === activeFilename ? {
114
+ ...f,
115
+ code
116
+ } : f));
117
+ };
118
+ useEffect(() => {
119
+ const container = containerRef.current;
120
+ if (!container) return;
121
+ const file = editFilesRef.current.find((f) => f.filename === activeFilename);
122
+ if (!file) return;
123
+ let cancelled = false;
124
+ const lang = normalizeLanguage(file.language ?? getLanguageFromFilename(file.filename));
125
+ const editor = new EditorView({
126
+ parent: container,
127
+ state: EditorState.create({
128
+ doc: file.code,
129
+ extensions: [
130
+ history(),
131
+ keymap.of([
132
+ ...defaultKeymap,
133
+ ...historyKeymap,
134
+ indentWithTab
135
+ ]),
136
+ EditorView.updateListener.of((update) => {
137
+ if (!update.docChanged) return;
138
+ onCodeChangeRef.current?.(update.state.doc.toString());
139
+ }),
140
+ lineNumbers(),
141
+ themeCompartmentRef.current.of(getThemeExtensions(colorScheme)),
142
+ languageCompartmentRef.current.of([])
143
+ ]
144
+ })
145
+ });
146
+ editorRef.current = editor;
147
+ (async () => {
148
+ const extension = await loadLanguageExtension(lang);
149
+ if (cancelled) return;
150
+ editor.dispatch({ effects: languageCompartmentRef.current.reconfigure(extension) });
151
+ })();
152
+ return () => {
153
+ cancelled = true;
154
+ editor.destroy();
155
+ editorRef.current = null;
156
+ };
157
+ }, [activeFilename]);
158
+ useEffect(() => {
159
+ const editor = editorRef.current;
160
+ if (!editor) return;
161
+ editor.dispatch({ effects: themeCompartmentRef.current.reconfigure(getThemeExtensions(colorScheme)) });
162
+ }, [colorScheme]);
163
+ const handleDismiss = useCallback(() => {
164
+ onFilesChange?.(editFiles);
165
+ dismiss();
166
+ }, [
167
+ editFiles,
168
+ onFilesChange,
169
+ dismiss
170
+ ]);
171
+ const handleAddFile = useCallback(() => {
172
+ const name = `untitled-${editFiles.length + 1}.ts`;
173
+ const newFile = {
174
+ filename: name,
175
+ code: "",
176
+ language: "typescript"
177
+ };
178
+ setEditFiles((prev) => [...prev, newFile]);
179
+ setActiveFilename(name);
180
+ }, [editFiles.length]);
181
+ const handleDeleteFile = useCallback((filename) => {
182
+ if (editFiles.length <= 1) return;
183
+ const newFiles = editFiles.filter((f) => f.filename !== filename);
184
+ setEditFiles(newFiles);
185
+ if (activeFilename === filename) setActiveFilename(newFiles[0]?.filename ?? "");
186
+ }, [editFiles, activeFilename]);
187
+ const handleRenameFile = useCallback((oldName, newName) => {
188
+ if (!newName.trim() || editFiles.some((f) => f.filename === newName && f.filename !== oldName)) {
189
+ setEditingFilename(null);
190
+ return;
191
+ }
192
+ setEditFiles((prev) => prev.map((f) => f.filename === oldName ? {
193
+ ...f,
194
+ filename: newName,
195
+ language: void 0
196
+ } : f));
197
+ if (activeFilename === oldName) setActiveFilename(newName);
198
+ setEditingFilename(null);
199
+ }, [editFiles, activeFilename]);
200
+ const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));
201
+ const fileIds = useMemo(() => editFiles.map((f) => f.filename), [editFiles]);
202
+ const handleDragEnd = useCallback((event) => {
203
+ const { active, over } = event;
204
+ setDragActiveId(null);
205
+ if (!over || active.id === over.id) return;
206
+ const oldIndex = editFiles.findIndex((f) => f.filename === active.id);
207
+ const newIndex = editFiles.findIndex((f) => f.filename === over.id);
208
+ if (oldIndex === -1 || newIndex === -1) return;
209
+ setEditFiles(arrayMove(editFiles, oldIndex, newIndex));
210
+ }, [editFiles]);
211
+ const dragActiveFile = dragActiveId ? editFiles.find((f) => f.filename === dragActiveId) : null;
212
+ const { className: portalThemeClassName } = usePortalTheme();
213
+ const language = activeFile ? activeFile.language ?? getLanguageFromFilename(activeFile.filename) : "";
214
+ return /* @__PURE__ */ jsxs("div", {
215
+ className: `${modal} ${semanticClassNames.modal}`,
216
+ children: [/* @__PURE__ */ jsxs("div", {
217
+ className: `${modalTitlebar} ${semanticClassNames.modalTitlebar}`,
218
+ children: [/* @__PURE__ */ jsx("span", {
219
+ className: `${modalTitle} ${semanticClassNames.modalTitle}`,
220
+ children: "Code Snippet"
221
+ }), /* @__PURE__ */ jsx("button", {
222
+ className: `${modalIconButton} ${semanticClassNames.modalIconButton}`,
223
+ type: "button",
224
+ onClick: handleDismiss,
225
+ children: /* @__PURE__ */ jsx(X, { size: 14 })
226
+ })]
227
+ }), /* @__PURE__ */ jsxs("div", {
228
+ className: `${modalBody} ${semanticClassNames.modalBody}`,
229
+ children: [/* @__PURE__ */ jsxs("div", {
230
+ className: `${modalSidebar} ${semanticClassNames.modalSidebar}`,
231
+ children: [/* @__PURE__ */ jsxs("div", {
232
+ className: `${sidebarHeader} ${semanticClassNames.sidebarHeader}`,
233
+ children: [/* @__PURE__ */ jsx("span", { children: "Files" }), /* @__PURE__ */ jsx("button", {
234
+ "aria-label": "Add file",
235
+ className: `${sidebarAddButton} ${semanticClassNames.sidebarAddButton}`,
236
+ type: "button",
237
+ onClick: handleAddFile,
238
+ children: /* @__PURE__ */ jsx(Plus, { size: 14 })
239
+ })]
240
+ }), /* @__PURE__ */ jsx("div", {
241
+ className: `${fileList} ${semanticClassNames.fileList}`,
242
+ children: /* @__PURE__ */ jsxs(DndContext, {
243
+ collisionDetection: closestCenter,
244
+ sensors,
245
+ onDragCancel: () => setDragActiveId(null),
246
+ onDragEnd: handleDragEnd,
247
+ onDragStart: (event) => setDragActiveId(event.active.id),
248
+ children: [/* @__PURE__ */ jsx(SortableContext, {
249
+ items: fileIds,
250
+ strategy: verticalListSortingStrategy,
251
+ children: editFiles.map((file) => /* @__PURE__ */ jsx(SortableFileItem, {
252
+ canDelete: editFiles.length > 1,
253
+ editValue: newFilenameInput,
254
+ file,
255
+ isActive: file.filename === activeFilename,
256
+ isEditing: editingFilename === file.filename,
257
+ onCancelRename: () => setEditingFilename(null),
258
+ onCommitRename: () => handleRenameFile(file.filename, newFilenameInput),
259
+ onDelete: () => handleDeleteFile(file.filename),
260
+ onEditChange: setNewFilenameInput,
261
+ onSelect: () => setActiveFilename(file.filename),
262
+ onStartRename: () => {
263
+ setEditingFilename(file.filename);
264
+ setNewFilenameInput(file.filename);
265
+ }
266
+ }, file.filename))
267
+ }), typeof document !== "undefined" ? createPortal(/* @__PURE__ */ jsx(DragOverlay, { children: /* @__PURE__ */ jsx("div", {
268
+ className: portalThemeClassName,
269
+ style: { display: "contents" },
270
+ children: dragActiveFile ? /* @__PURE__ */ jsxs("div", {
271
+ className: `${fileItem()} ${semanticClassNames.fileItem} ${dragOverlay} ${semanticClassNames.dragOverlay}`,
272
+ children: [/* @__PURE__ */ jsx(FileIcon, {
273
+ className: `${fileIcon} ${semanticClassNames.fileIcon}`,
274
+ filename: dragActiveFile.filename,
275
+ size: 14
276
+ }), /* @__PURE__ */ jsx("span", {
277
+ className: `${fileName} ${semanticClassNames.fileName}`,
278
+ children: dragActiveFile.filename
279
+ })]
280
+ }) : null
281
+ }) }), document.body) : null]
282
+ })
283
+ })]
284
+ }), /* @__PURE__ */ jsxs("div", {
285
+ className: `${modalEditor} ${semanticClassNames.modalEditor}`,
286
+ children: [/* @__PURE__ */ jsx("div", {
287
+ className: `${breadcrumb} ${semanticClassNames.breadcrumb}`,
288
+ children: /* @__PURE__ */ jsx("div", {
289
+ className: `${breadcrumbLeft} ${semanticClassNames.breadcrumbLeft}`,
290
+ children: activeFile && /* @__PURE__ */ jsxs(Fragment, { children: [
291
+ /* @__PURE__ */ jsx(FileIcon, {
292
+ className: `hjkrycf ${semanticClassNames.fileIcon}`,
293
+ filename: activeFile.filename,
294
+ size: 14
295
+ }),
296
+ /* @__PURE__ */ jsx("span", {
297
+ className: `hjkryc16 ${semanticClassNames.breadcrumbName}`,
298
+ children: activeFile.filename
299
+ }),
300
+ language && /* @__PURE__ */ jsx("span", {
301
+ className: `hjkryc17 ${semanticClassNames.breadcrumbLang}`,
302
+ children: language
303
+ })
304
+ ] })
305
+ })
306
+ }), /* @__PURE__ */ jsx("div", {
307
+ className: `${editorContainer} ${semanticClassNames.editorContainer}`,
308
+ ref: containerRef
309
+ })]
310
+ })]
311
+ })]
312
+ });
313
+ };
314
+ //#endregion
315
+ //#region src/CodeSnippetEditRenderer.tsx
316
+ var CodeSnippetEditRenderer = ({ files, onFilesChange }) => {
317
+ const { className: portalClassName } = usePortalTheme();
318
+ const colorScheme = useColorScheme();
319
+ const handleEdit = useCallback(() => {
320
+ presentDialog({
321
+ content: ({ dismiss }) => /* @__PURE__ */ jsx(CodeEditorModal, {
322
+ colorScheme,
323
+ dismiss,
324
+ files,
325
+ onFilesChange
326
+ }),
327
+ className: codeSnippetDialogPopup,
328
+ portalClassName,
329
+ theme: colorScheme,
330
+ showCloseButton: false,
331
+ clickOutsideToDismiss: false
332
+ });
333
+ }, [
334
+ files,
335
+ onFilesChange,
336
+ portalClassName,
337
+ colorScheme
338
+ ]);
339
+ return /* @__PURE__ */ jsxs("div", {
340
+ className: `${editContainer} ${semanticClassNames.editContainer}`,
341
+ children: [/* @__PURE__ */ jsx(CodeSnippetRenderer, { files }), /* @__PURE__ */ jsx("button", {
342
+ "aria-label": "Edit code snippet",
343
+ className: `${editOverlay} ${semanticClassNames.editOverlay}`,
344
+ type: "button",
345
+ onClick: handleEdit,
346
+ children: /* @__PURE__ */ jsxs("span", {
347
+ className: `${editLabel} ${semanticClassNames.editLabel}`,
348
+ children: [/* @__PURE__ */ jsx(Pencil, { size: 14 }), "Edit"]
349
+ })
350
+ })]
351
+ });
352
+ };
353
+ //#endregion
354
+ //#region src/CodeSnippetEditDecorator.tsx
355
+ var CodeSnippetEditDecorator = ({ nodeKey, files }) => {
356
+ const [editor] = o();
357
+ return /* @__PURE__ */ jsx(CodeSnippetEditRenderer, {
358
+ files,
359
+ onFilesChange: useCallback((newFiles) => {
360
+ editor.update(() => {
361
+ const node = $getNodeByKey(nodeKey);
362
+ if ($isCodeSnippetNode(node)) node.setFiles(newFiles);
363
+ });
364
+ }, [editor, nodeKey])
365
+ });
366
+ };
367
+ //#endregion
368
+ //#region src/nodes/CodeSnippetEditNode.ts
369
+ var CodeSnippetEditNode = class CodeSnippetEditNode extends CodeSnippetNode {
370
+ static clone(node) {
371
+ return new CodeSnippetEditNode(node.__files, node.__key);
372
+ }
373
+ static importJSON(serializedNode) {
374
+ return new CodeSnippetEditNode(serializedNode.files);
375
+ }
376
+ decorate(_editor, _config) {
377
+ return createElement(CodeSnippetEditDecorator, {
378
+ nodeKey: this.__key,
379
+ files: this.__files
380
+ });
381
+ }
382
+ };
383
+ _defineProperty(CodeSnippetEditNode, "commandItems", [{
384
+ title: "Code Snippet",
385
+ icon: createElement(FileCode, { size: 20 }),
386
+ description: "Multi-file code snippet with tabs",
387
+ keywords: [
388
+ "code",
389
+ "snippet",
390
+ "files",
391
+ "tabs"
392
+ ],
393
+ section: "MEDIA",
394
+ placement: ["slash", "toolbar"],
395
+ group: "insert",
396
+ onSelect: (editor) => {
397
+ editor.update(() => {
398
+ $insertNodes([$createCodeSnippetEditNode([{
399
+ filename: "index.ts",
400
+ code: "",
401
+ language: "typescript"
402
+ }])]);
403
+ });
404
+ }
405
+ }]);
406
+ function $createCodeSnippetEditNode(files) {
407
+ return new CodeSnippetEditNode(files);
408
+ }
409
+ function $isCodeSnippetEditNode(node) {
410
+ return node instanceof CodeSnippetEditNode;
411
+ }
412
+ //#endregion
413
+ //#region src/edit.ts
414
+ var codeSnippetEditNodes = [CodeSnippetEditNode];
415
+ //#endregion
416
+ export { CodeSnippetEditRenderer as a, CodeSnippetEditNode as i, $createCodeSnippetEditNode as n, $isCodeSnippetEditNode as r, codeSnippetEditNodes as t };
package/dist/edit.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { Klass, LexicalNode } from 'lexical';
2
+ export type { CodeSnippetEditRendererProps } from './CodeSnippetEditRenderer';
3
+ export { CodeSnippetEditRenderer } from './CodeSnippetEditRenderer';
4
+ export { $createCodeSnippetEditNode, $isCodeSnippetEditNode, CodeSnippetEditNode, } from './nodes/CodeSnippetEditNode';
5
+ export declare const codeSnippetEditNodes: Array<Klass<LexicalNode>>;
6
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../src/edit.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIjD,YAAY,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AAEpC,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAyB,CAAA"}
package/dist/edit.mjs ADDED
@@ -0,0 +1,2 @@
1
+ import { a as CodeSnippetEditRenderer, i as CodeSnippetEditNode, n as $createCodeSnippetEditNode, r as $isCodeSnippetEditNode, t as codeSnippetEditNodes } from "./edit-BpfJ1A_-.js";
2
+ export { $createCodeSnippetEditNode, $isCodeSnippetEditNode, CodeSnippetEditNode, CodeSnippetEditRenderer, codeSnippetEditNodes };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,4 @@
1
- export type { CodeSnippetEditRendererProps } from './CodeSnippetEditRenderer';
2
- export { CodeSnippetEditRenderer } from './CodeSnippetEditRenderer';
3
- export { CodeSnippetRenderer } from './CodeSnippetRenderer';
4
- export { codeSnippetEditNodes, codeSnippetNodes } from './nodes';
5
- export { $createCodeSnippetEditNode, $isCodeSnippetEditNode, CodeSnippetEditNode, } from './nodes/CodeSnippetEditNode';
6
- export type { SerializedCodeSnippetNode } from './nodes/CodeSnippetNode';
7
- export { $createCodeSnippetNode, $isCodeSnippetNode, CodeSnippetNode, } from './nodes/CodeSnippetNode';
8
- export { CODE_SNIPPET_BLOCK_TRANSFORMER } from './transformer';
1
+ export * from './edit';
2
+ export * from './node';
3
+ export * from './renderer';
9
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,YAAY,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AACpC,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,GAChB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA"}