@sciflow/editor-start 0.0.3 → 0.1.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.
- package/LICENSE +21 -0
- package/README.md +50 -29
- package/dist/bundle/sciflow-editor.css +1 -1
- package/dist/bundle/sciflow-editor.js +4446 -3980
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/lib/default-features.d.ts +21 -0
- package/dist/lib/default-features.d.ts.map +1 -0
- package/dist/lib/default-features.js +34 -0
- package/dist/lib/editor-element.d.ts +97 -1
- package/dist/lib/editor-element.d.ts.map +1 -1
- package/dist/lib/editor-element.js +435 -25
- package/dist/lib/format-bar.d.ts +22 -0
- package/dist/lib/format-bar.d.ts.map +1 -1
- package/dist/lib/format-bar.js +37 -1
- package/dist/lib/outline.d.ts +44 -0
- package/dist/lib/outline.d.ts.map +1 -1
- package/dist/lib/outline.js +120 -6
- package/dist/lib/range-decorations.d.ts +120 -0
- package/dist/lib/range-decorations.d.ts.map +1 -0
- package/dist/lib/range-decorations.js +131 -0
- package/dist/lib/read-only.d.ts +95 -0
- package/dist/lib/read-only.d.ts.map +1 -0
- package/dist/lib/read-only.js +123 -0
- package/dist/testing/external-widget-simulator.d.ts +217 -0
- package/dist/testing/external-widget-simulator.d.ts.map +1 -0
- package/dist/testing/external-widget-simulator.js +350 -0
- package/package.json +25 -13
- package/dist/tsconfig.lib.tsbuildinfo +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export * from './lib/editor-element.js';
|
|
9
9
|
export { ghostCursorFeature } from './lib/ghost-cursor.js';
|
|
10
|
+
export { createRangeDecorationsFeature, type RangeDecorationSpec } from './lib/range-decorations.js';
|
|
11
|
+
export { createReadOnlyFeature } from './lib/read-only.js';
|
|
10
12
|
export * from './lib/format-bar.js';
|
|
11
13
|
export { materialIcons } from './lib/icons-generated.js';
|
|
12
14
|
export * from './lib/outline.js';
|
|
@@ -14,8 +16,8 @@ export * from './lib/reference-list.js';
|
|
|
14
16
|
export * from './lib/selection-editor.js';
|
|
15
17
|
export * from './lib/theme.js';
|
|
16
18
|
export { defaultCitationSourceAdapter, getCitationSourceAdapter, setCitationSourceAdapter, type CitationItem, type CitationSourceEditorAdapter, type CitationSourceEditorContext, } from './lib/citation-source-adapter.js';
|
|
17
|
-
export { SourceField, t, getLocale, setLocale, registerTranslations, LOCALE_CHANGE_EVENT, getCitedReferenceIds, validateDocumentResources, defaultTranslations } from '@sciflow/editor-core';
|
|
18
|
-
export type { MissingResource, TranslationDictionary } from '@sciflow/editor-core';
|
|
19
|
+
export { SourceField, t, getLocale, setLocale, registerTranslations, LOCALE_CHANGE_EVENT, getCitedReferenceIds, findCitationsByReferenceId, validateDocumentResources, defaultTranslations } from '@sciflow/editor-core';
|
|
20
|
+
export type { MissingResource, CitationLocation, TranslationDictionary } from '@sciflow/editor-core';
|
|
19
21
|
export { generateJatsBody } from '@sciflow/schema-prosemirror';
|
|
20
22
|
export type { Locale, TranslationKey } from '@sciflow/editor-core';
|
|
21
23
|
export { citationFeature, crossReferenceFeature, createFigureFeature, listFeature, blockquoteFeature, copyPasteFeature, installMockImageServer, configureImageUploadHandlers, requestImageFile, uploadImageFile, promptForFigureOptions, figureFeature, footnoteFeature, headingFeature, hyperlinkFeature, markFormattingFeature, mathFeature, paragraphFeature, tableFeature, } from '@sciflow/editor-core';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,GACjC,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,6BAA6B,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,YAAY,EACjB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,GACjC,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzN,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,YAAY,GACb,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export * from './lib/editor-element.js';
|
|
9
9
|
export { ghostCursorFeature } from './lib/ghost-cursor.js';
|
|
10
|
+
export { createRangeDecorationsFeature } from './lib/range-decorations.js';
|
|
11
|
+
export { createReadOnlyFeature } from './lib/read-only.js';
|
|
10
12
|
export * from './lib/format-bar.js';
|
|
11
13
|
export { materialIcons } from './lib/icons-generated.js';
|
|
12
14
|
export * from './lib/outline.js';
|
|
@@ -15,6 +17,6 @@ export * from './lib/selection-editor.js';
|
|
|
15
17
|
export * from './lib/theme.js';
|
|
16
18
|
export { defaultCitationSourceAdapter, getCitationSourceAdapter, setCitationSourceAdapter, } from './lib/citation-source-adapter.js';
|
|
17
19
|
// Convenience re-exports: allow downstream bundles to pull these from here.
|
|
18
|
-
export { SourceField, t, getLocale, setLocale, registerTranslations, LOCALE_CHANGE_EVENT, getCitedReferenceIds, validateDocumentResources, defaultTranslations } from '@sciflow/editor-core';
|
|
20
|
+
export { SourceField, t, getLocale, setLocale, registerTranslations, LOCALE_CHANGE_EVENT, getCitedReferenceIds, findCitationsByReferenceId, validateDocumentResources, defaultTranslations } from '@sciflow/editor-core';
|
|
19
21
|
export { generateJatsBody } from '@sciflow/schema-prosemirror';
|
|
20
22
|
export { citationFeature, crossReferenceFeature, createFigureFeature, listFeature, blockquoteFeature, copyPasteFeature, installMockImageServer, configureImageUploadHandlers, requestImageFile, uploadImageFile, promptForFigureOptions, figureFeature, footnoteFeature, headingFeature, hyperlinkFeature, markFormattingFeature, mathFeature, paragraphFeature, tableFeature, } from '@sciflow/editor-core';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Feature } from '@sciflow/editor-core';
|
|
2
|
+
/**
|
|
3
|
+
* The feature set `<sciflow-editor>` activates when no `features` property is
|
|
4
|
+
* set. Exported so consumers can *extend* rather than replace the defaults
|
|
5
|
+
* (resolves CHANGEREQUEST #1):
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { DEFAULT_EDITOR_FEATURES } from '@sciflow/editor-start';
|
|
9
|
+
*
|
|
10
|
+
* editor.features = [...DEFAULT_EDITOR_FEATURES, myCustomFeature];
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Lives in its own module (rather than directly in the barrel `index.ts`) so
|
|
14
|
+
* `editor-element.ts` can import it without an `index.ts` → `editor-element.ts`
|
|
15
|
+
* → `index.ts` import cycle; the barrel re-exports it from here.
|
|
16
|
+
*
|
|
17
|
+
* `editor-element.ts`'s private `getDefaultFeatures()` delegates to this
|
|
18
|
+
* constant — keep the two in sync.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_EDITOR_FEATURES: readonly Feature[];
|
|
21
|
+
//# sourceMappingURL=default-features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-features.d.ts","sourceRoot":"","sources":["../../src/lib/default-features.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,OAAO,EACb,MAAM,sBAAsB,CAAC;AAI9B;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,OAAO,EAarD,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { bibliographyFeature, citationFeature, crossReferenceFeature, figureFeature, footnoteFeature, headingFeature, hyperlinkFeature, markFormattingFeature, mathFeature, paragraphFeature, tableFeature, } from '@sciflow/editor-core';
|
|
2
|
+
import { ghostCursorFeature } from './ghost-cursor.js';
|
|
3
|
+
/**
|
|
4
|
+
* The feature set `<sciflow-editor>` activates when no `features` property is
|
|
5
|
+
* set. Exported so consumers can *extend* rather than replace the defaults
|
|
6
|
+
* (resolves CHANGEREQUEST #1):
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { DEFAULT_EDITOR_FEATURES } from '@sciflow/editor-start';
|
|
10
|
+
*
|
|
11
|
+
* editor.features = [...DEFAULT_EDITOR_FEATURES, myCustomFeature];
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
* Lives in its own module (rather than directly in the barrel `index.ts`) so
|
|
15
|
+
* `editor-element.ts` can import it without an `index.ts` → `editor-element.ts`
|
|
16
|
+
* → `index.ts` import cycle; the barrel re-exports it from here.
|
|
17
|
+
*
|
|
18
|
+
* `editor-element.ts`'s private `getDefaultFeatures()` delegates to this
|
|
19
|
+
* constant — keep the two in sync.
|
|
20
|
+
*/
|
|
21
|
+
export const DEFAULT_EDITOR_FEATURES = [
|
|
22
|
+
citationFeature,
|
|
23
|
+
crossReferenceFeature,
|
|
24
|
+
footnoteFeature,
|
|
25
|
+
hyperlinkFeature,
|
|
26
|
+
markFormattingFeature,
|
|
27
|
+
paragraphFeature,
|
|
28
|
+
headingFeature,
|
|
29
|
+
figureFeature,
|
|
30
|
+
tableFeature,
|
|
31
|
+
mathFeature,
|
|
32
|
+
bibliographyFeature,
|
|
33
|
+
ghostCursorFeature,
|
|
34
|
+
];
|
|
@@ -22,12 +22,33 @@
|
|
|
22
22
|
*
|
|
23
23
|
* The rest of this file is heavily documented to map those steps to concrete
|
|
24
24
|
* code. Treat it as a cookbook for your own integration.
|
|
25
|
+
*
|
|
26
|
+
* Light-DOM editable surface
|
|
27
|
+
* --------------------------
|
|
28
|
+
* The ProseMirror `contenteditable` (`view.dom`) is mounted on a **light-DOM
|
|
29
|
+
* child** of the host element (class `sf-editable-surface`), projected
|
|
30
|
+
* visually into the shadow root via a `<slot>`. All chrome (formatbar,
|
|
31
|
+
* selection editor, node-view popovers) continues to live in the shadow root
|
|
32
|
+
* and is fully encapsulated.
|
|
33
|
+
*
|
|
34
|
+
* Why: external proofreading / AI writing extensions (Grammarly, LanguageTool
|
|
35
|
+
* browser add-on) walk the page's flat document tree for `[contenteditable]`
|
|
36
|
+
* and never enter shadow roots. Mounting the editable in the light DOM makes
|
|
37
|
+
* it discoverable by those tools without sacrificing shadow encapsulation for
|
|
38
|
+
* the surrounding chrome.
|
|
39
|
+
*
|
|
40
|
+
* Consequence for theming: `.ProseMirror` content styles and inline node-view
|
|
41
|
+
* styles (figures, citations, footnotes, marks) are injected into a `<style>`
|
|
42
|
+
* element appended to `document.head` (scoped to `.sf-editable-surface`) so
|
|
43
|
+
* they reach PM's nested DOM. Shadow-scoped `::part` / `:host` rules that
|
|
44
|
+
* applied to the editable content must be migrated to the
|
|
45
|
+
* `.sf-editable-surface .ProseMirror { … }` selector instead.
|
|
25
46
|
*/
|
|
26
47
|
import { LitElement } from 'lit';
|
|
27
48
|
import type { PropertyValues } from 'lit';
|
|
28
49
|
import type { Node as ProsemirrorNode, ResolvedPos } from 'prosemirror-model';
|
|
29
50
|
import type { PluginKey } from 'prosemirror-state';
|
|
30
|
-
import { Editor, type CommandRunner, type Feature, type Locale, type Operation, type SciFlowDocJSON, type SnapshotFile, type SnapshotReference, type SelectionJSON, type Version } from '@sciflow/editor-core';
|
|
51
|
+
import { Editor, type CommandRunner, type Feature, type Locale, type Operation, type SciFlowDocJSON, type SnapshotFile, type SnapshotReference, type SelectionJSON, type SyncStrategy, type Version } from '@sciflow/editor-core';
|
|
31
52
|
/**
|
|
32
53
|
* Detail payload emitted with the `editor-change` event.
|
|
33
54
|
* Consumers receive both the latest document snapshot and the batch of
|
|
@@ -127,6 +148,61 @@ export declare class SciFlowEditorElement extends LitElement {
|
|
|
127
148
|
* ```
|
|
128
149
|
*/
|
|
129
150
|
locale: Locale | null;
|
|
151
|
+
/**
|
|
152
|
+
* Sync strategy that owns loading and persisting this document.
|
|
153
|
+
*
|
|
154
|
+
* Unset (the default) means the element uses a built-in in-memory strategy:
|
|
155
|
+
* the document stays in the page and nothing is persisted. Set it to hand
|
|
156
|
+
* loading, persistence and — with `clientID` — collaborative concurrency to
|
|
157
|
+
* your own implementation.
|
|
158
|
+
*
|
|
159
|
+
* When a strategy is supplied and neither `doc` nor `initialContent` is set,
|
|
160
|
+
* the editor starts from the strategy's `load(docId)`.
|
|
161
|
+
*
|
|
162
|
+
* Note that tearing the editor down (element disconnect, or a change to any
|
|
163
|
+
* binding property) disposes the strategy via its `dispose()`. Supply a
|
|
164
|
+
* fresh strategy whenever you change the binding.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```js
|
|
168
|
+
* editor.docId = 'doc-123';
|
|
169
|
+
* editor.partId = 'chapter-2';
|
|
170
|
+
* editor.clientID = 'tab-7';
|
|
171
|
+
* editor.sync = myStrategy;
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
sync: SyncStrategy | null;
|
|
175
|
+
/**
|
|
176
|
+
* Stable identifier of the document this editor is bound to. Handed to the
|
|
177
|
+
* sync strategy's `load()` and `bind()`.
|
|
178
|
+
*
|
|
179
|
+
* Defaults to a fresh random id per mount, which is only meaningful for the
|
|
180
|
+
* built-in in-memory strategy — set it whenever you supply your own `sync`.
|
|
181
|
+
*/
|
|
182
|
+
docId: string | null;
|
|
183
|
+
/**
|
|
184
|
+
* Stable client identifier for collaborative editing. Setting it activates
|
|
185
|
+
* step-based concurrency (`prosemirror-collab`) in the editor runtime, so
|
|
186
|
+
* remote changes rebase local edits instead of replacing the document.
|
|
187
|
+
*
|
|
188
|
+
* Should stay stable across reloads of the same client (for example one id
|
|
189
|
+
* per browser tab) so the server and other clients can recognize this
|
|
190
|
+
* client's own confirmed changes. Only useful together with a `sync`
|
|
191
|
+
* strategy that speaks a step protocol.
|
|
192
|
+
*
|
|
193
|
+
* Set as an attribute (`client-id`) the value is always a string; set as a
|
|
194
|
+
* property it may also be a number.
|
|
195
|
+
*/
|
|
196
|
+
clientID: string | number | null;
|
|
197
|
+
/**
|
|
198
|
+
* Part of the document this editor is bound to, for backends whose
|
|
199
|
+
* concurrency unit is narrower than a document — one document holding
|
|
200
|
+
* several parts, each with its own version counter and change log.
|
|
201
|
+
*
|
|
202
|
+
* The editor never interprets it; it is forwarded to the sync strategy's
|
|
203
|
+
* `bind()` so the strategy can address the right part.
|
|
204
|
+
*/
|
|
205
|
+
partId: string | null;
|
|
130
206
|
private view;
|
|
131
207
|
private editor?;
|
|
132
208
|
private docUnsub?;
|
|
@@ -141,6 +217,20 @@ export declare class SciFlowEditorElement extends LitElement {
|
|
|
141
217
|
private themeUnsub?;
|
|
142
218
|
private themeStyleElements;
|
|
143
219
|
private _hostDragoverBound;
|
|
220
|
+
/**
|
|
221
|
+
* The light-DOM container that ProseMirror mounts into.
|
|
222
|
+
* A direct child of the host element (not the shadow root), projected
|
|
223
|
+
* visually via the shadow root's `<slot>`.
|
|
224
|
+
*/
|
|
225
|
+
private lightDomMount;
|
|
226
|
+
/**
|
|
227
|
+
* Unique identifier for this element instance. Used to key the per-element
|
|
228
|
+
* width `<style>` in `document.head` so that each instance can update or
|
|
229
|
+
* remove its own rule without affecting other instances.
|
|
230
|
+
*/
|
|
231
|
+
private readonly _instanceId;
|
|
232
|
+
/** The `<style>` element in `document.head` that holds this instance's width rules. */
|
|
233
|
+
private _widthStyleEl;
|
|
144
234
|
/** Access the underlying ProseMirror view instance. */
|
|
145
235
|
get editorView(): ReturnType<Editor['getView']> | null;
|
|
146
236
|
/** Access SciFlow command helpers bound to the current editor view. */
|
|
@@ -269,6 +359,12 @@ export declare class SciFlowEditorElement extends LitElement {
|
|
|
269
359
|
private destroyEditor;
|
|
270
360
|
private capturePendingOps;
|
|
271
361
|
private applyShadowStyles;
|
|
362
|
+
/**
|
|
363
|
+
* Inject (or replace) the per-element width style in `document.head`.
|
|
364
|
+
* Keyed by `data-sf-width-<instanceId>` so each instance manages its own rule.
|
|
365
|
+
* SSR-safe.
|
|
366
|
+
*/
|
|
367
|
+
private applyWidthStyles;
|
|
272
368
|
private getEditorWidthStyles;
|
|
273
369
|
private normalizeShadowStyles;
|
|
274
370
|
private extractCssFromSheet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-element.d.ts","sourceRoot":"","sources":["../../src/lib/editor-element.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"editor-element.d.ts","sourceRoot":"","sources":["../../src/lib/editor-element.ts"],"names":[],"mappings":"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"}
|