@texonom/nreact 1.6.5 → 1.6.7

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.
@@ -1,18 +1,42 @@
1
1
  import { default as React } from 'react';
2
- import { Block } from '@texonom/ntypes';
2
+ import { Block, Decoration } from '@texonom/ntypes';
3
3
  /**
4
- * A text block the owner can edit in place.
4
+ * Whether a piece of a title is kept whole while the owner types: a mention, an
5
+ * equation, a link into the workspace, the lone comma `Text` draws as a gap.
6
+ * It is drawn by `Text` like the rest, inside an element the caret cannot
7
+ * enter, and read back exactly as it was.
8
+ */
9
+ export declare function isTitleIsland(segment: Decoration, rootDomain?: string): boolean;
10
+ /**
11
+ * A block title the owner types into where it stands.
5
12
  *
6
- * Rendered only in edit mode (`ctx.editable`) and only where nutils'
7
- * `isEditableBlock` allows, which is plain titles: the editor edits plain text,
8
- * so a formatted title stays read-only rather than lose what it does not show. The
9
- * public render path keeps using `<Text>`, so a page nobody edits is
10
- * byte-identical to before. The node is uncontrolled: React never reconciles
11
- * it, so the caret is never reset while someone is typing. On blur the plain
12
- * text is handed to `onChangeBlock`, which the host persists — this package
13
- * stays a renderer and never writes anything itself.
13
+ * Drawn by `Text`, segment by segment, so the page looks the same with editing
14
+ * on as off: the only additions are this span and the wrappers around kept
15
+ * pieces, and neither draws anything. React never reconciles the inside, so
16
+ * while the owner types the browser owns the DOM, and neither the caret nor an
17
+ * IME composition is ever reset. The host reads the text back with
18
+ * `readTitle`, writes what it read into `data-title` and hands that title back;
19
+ * a title equal to `data-title` is already on screen and nothing is redrawn.
20
+ * Any other title, an undo or a change made in Notion, redraws it from scratch.
14
21
  */
15
22
  export declare const EditableText: React.FC<{
16
23
  block: Block;
17
24
  }>;
25
+ /**
26
+ * A title read back out of an `EditableText`, in Notion's shape: runs of text
27
+ * with the formats around them, and kept pieces exactly as they were drawn.
28
+ */
29
+ export declare function readTitle(root: HTMLElement): Decoration[];
30
+ /**
31
+ * Where a DOM position falls in a title, counted in the title's characters.
32
+ * A position inside an island counts as just past it: the caret cannot stand in one.
33
+ */
34
+ export declare function titleOffset(root: HTMLElement, node: Node, offset: number): number;
35
+ /** The DOM position for a character offset in a title; just past an island when the offset meets one. */
36
+ export declare function titlePosition(root: HTMLElement, offset: number): {
37
+ node: Node;
38
+ offset: number;
39
+ };
40
+ /** Select a range of a title's characters; with no end, place the caret. */
41
+ export declare function selectTitle(root: HTMLElement, start: number, end?: number): void;
18
42
  //# sourceMappingURL=editable-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editable-text.d.ts","sourceRoot":"","sources":["../../src/components/editable-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAsCnD,CAAA"}
1
+ {"version":3,"file":"editable-text.d.ts","sourceRoot":"","sources":["../../src/components/editable-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAWxD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAQ/E;AAoBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAiCnD,CAAA;AAuED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,UAAU,EAAE,CAwCzD;AAuBD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAmBjF;AAED,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAc/F;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAQ,QAUxE"}
@@ -26,7 +26,6 @@ export interface NotionContext {
26
26
  defaultPageCoverPosition?: number;
27
27
  zoom: any;
28
28
  editable?: boolean;
29
- onChangeBlock?: (blockId: string, title: string) => void;
30
29
  }
31
30
  export interface PartialNotionContext {
32
31
  children?: React.ReactNode;
@@ -54,7 +53,6 @@ export interface PartialNotionContext {
54
53
  defaultPageCoverPosition?: number;
55
54
  zoom?: any;
56
55
  editable?: boolean;
57
- onChangeBlock?: (blockId: string, title: string) => void;
58
56
  }
59
57
  export declare const dummyLink: ({ href, rel, target, title, ...rest }: {
60
58
  [x: string]: any;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,iBAAiB,CAAA;IAC5B,UAAU,EAAE,gBAAgB,CAAA;IAE5B,UAAU,EAAE,YAAY,CAAA;IACxB,WAAW,EAAE,aAAa,CAAA;IAC1B,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IAEzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,OAAO,CAAA;IACtB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,0BAA0B,EAAE,OAAO,CAAA;IACnC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,wBAAwB,EAAE,OAAO,CAAA;IACjC,6BAA6B,EAAE,OAAO,CAAA;IAEtC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IAEjC,IAAI,EAAE,GAAG,CAAA;IAIT,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAEtC,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,WAAW,CAAC,EAAE,aAAa,CAAA;IAC3B,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IAEzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,0BAA0B,CAAC,EAAE,OAAO,CAAA;IACpC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,6BAA6B,CAAC,EAAE,OAAO,CAAA;IAEvC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAEhC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IAEjC,IAAI,CAAC,EAAE,GAAG,CAAA;IAEV,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AA0BD,eAAO,MAAM,SAAS,GAAI;;;;;;CAAqC,sBAAuB,CAAA;AAyFtF,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2ChE,CAAA;AAED,eAAO,MAAM,qBAAqB,+BAAe,CAAA;AAEjD,eAAO,MAAM,gBAAgB,QAAO,aAEnC,CAAA"}
package/build/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './utils';
5
5
  export * from './context';
6
6
  export * from './renderer';
7
7
  export * from './components/text';
8
+ export * from './components/editable-text';
8
9
  export * from './components/header';
9
10
  export * from './components/page-icon';
10
11
  export * from './components/search-dialog';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uCAAuC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uCAAuC,CAAA"}