lakelib 0.2.6 → 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 (126) hide show
  1. package/README.md +6 -6
  2. package/dist/lake.css +377 -363
  3. package/dist/lake.min.js +40 -40
  4. package/dist/lake.min.js.map +1 -1
  5. package/lib/css/index.d.ts +0 -11
  6. package/lib/editor.d.ts +19 -19
  7. package/lib/i18n/en-US/index.d.ts +24 -0
  8. package/lib/i18n/ja/index.d.ts +24 -0
  9. package/lib/i18n/ko/index.d.ts +24 -0
  10. package/lib/i18n/types.d.ts +182 -2
  11. package/lib/i18n/zh-CN/index.d.ts +24 -0
  12. package/lib/index.d.ts +8 -8
  13. package/lib/lake.css +126 -112
  14. package/lib/lake.js +5709 -4679
  15. package/lib/lake.js.map +1 -1
  16. package/lib/managers/command.d.ts +4 -4
  17. package/lib/managers/selection.d.ts +6 -10
  18. package/lib/operations/insert-block.d.ts +3 -0
  19. package/lib/operations/insert-contents.d.ts +4 -0
  20. package/lib/operations/split-block.d.ts +1 -1
  21. package/lib/operations/split-marks.d.ts +1 -1
  22. package/lib/plugins/align.d.ts +1 -1
  23. package/lib/plugins/arrow-keys.d.ts +1 -1
  24. package/lib/plugins/backspace-key.d.ts +1 -1
  25. package/lib/plugins/block-quote.d.ts +1 -1
  26. package/lib/plugins/bold.d.ts +1 -1
  27. package/lib/plugins/code-block/code-block-box.d.ts +4 -0
  28. package/lib/plugins/code-block/index.d.ts +5 -0
  29. package/lib/plugins/code.d.ts +1 -1
  30. package/lib/plugins/copy.d.ts +1 -1
  31. package/lib/plugins/cut.d.ts +1 -1
  32. package/lib/plugins/delete-key.d.ts +1 -1
  33. package/lib/plugins/drop.d.ts +1 -1
  34. package/lib/plugins/emoji/emoji-box.d.ts +4 -0
  35. package/lib/plugins/emoji/index.d.ts +5 -0
  36. package/lib/plugins/enter-key.d.ts +1 -1
  37. package/lib/plugins/equation/equation-box.d.ts +4 -0
  38. package/lib/plugins/equation/index.d.ts +5 -0
  39. package/lib/plugins/escape-key.d.ts +1 -1
  40. package/lib/plugins/file/file-box.d.ts +4 -0
  41. package/lib/plugins/file/index.d.ts +5 -0
  42. package/lib/plugins/font-color.d.ts +1 -1
  43. package/lib/plugins/font-family.d.ts +1 -1
  44. package/lib/plugins/font-size.d.ts +1 -1
  45. package/lib/plugins/format-painter.d.ts +1 -1
  46. package/lib/plugins/heading.d.ts +1 -1
  47. package/lib/plugins/highlight.d.ts +1 -1
  48. package/lib/plugins/hr/hr-box.d.ts +4 -0
  49. package/lib/plugins/hr/index.d.ts +5 -0
  50. package/lib/{boxes/image.d.ts → plugins/image/image-box.d.ts} +2 -1
  51. package/lib/plugins/image/index.d.ts +5 -0
  52. package/lib/plugins/indent.d.ts +1 -1
  53. package/lib/plugins/italic.d.ts +1 -1
  54. package/lib/plugins/{link.d.ts → link/index.d.ts} +1 -1
  55. package/lib/plugins/link/insert-link.d.ts +3 -0
  56. package/lib/{ui → plugins/link}/link-popup.d.ts +3 -2
  57. package/lib/plugins/list.d.ts +1 -1
  58. package/lib/plugins/markdown.d.ts +1 -1
  59. package/lib/plugins/mention/index.d.ts +5 -0
  60. package/lib/plugins/mention/mention-box.d.ts +4 -0
  61. package/lib/{ui → plugins/mention}/mention-menu.d.ts +4 -3
  62. package/lib/plugins/paste.d.ts +1 -1
  63. package/lib/plugins/redo.d.ts +1 -1
  64. package/lib/plugins/remove-format.d.ts +1 -1
  65. package/lib/plugins/select-all.d.ts +1 -1
  66. package/lib/plugins/shift-enter-key.d.ts +1 -1
  67. package/lib/plugins/{mention.d.ts → slash/index.d.ts} +1 -1
  68. package/lib/{config → plugins/slash}/slash-items.d.ts +1 -1
  69. package/lib/{ui → plugins/slash}/slash-menu.d.ts +5 -4
  70. package/lib/{types/slash.d.ts → plugins/slash/types.d.ts} +2 -2
  71. package/lib/plugins/special-character.d.ts +1 -1
  72. package/lib/plugins/strikethrough.d.ts +1 -1
  73. package/lib/plugins/subscript.d.ts +1 -1
  74. package/lib/plugins/superscript.d.ts +1 -1
  75. package/lib/plugins/tab-key.d.ts +1 -1
  76. package/lib/plugins/table/delete-column.d.ts +2 -0
  77. package/lib/plugins/table/delete-row.d.ts +2 -0
  78. package/lib/plugins/table/delete-table.d.ts +2 -0
  79. package/lib/plugins/{slash.d.ts → table/index.d.ts} +2 -1
  80. package/lib/plugins/table/insert-column.d.ts +4 -0
  81. package/lib/plugins/table/insert-row.d.ts +4 -0
  82. package/lib/plugins/table/insert-table.d.ts +3 -0
  83. package/lib/plugins/table/merge-cells.d.ts +3 -0
  84. package/lib/plugins/table/split-cell.d.ts +3 -0
  85. package/lib/plugins/table/utils.d.ts +6 -0
  86. package/lib/plugins/underline.d.ts +1 -1
  87. package/lib/plugins/undo.d.ts +1 -1
  88. package/lib/plugins/unlink.d.ts +1 -1
  89. package/lib/plugins/video/index.d.ts +5 -0
  90. package/lib/plugins/video/video-box.d.ts +4 -0
  91. package/lib/storage/editors.d.ts +1 -1
  92. package/lib/types/dropdown.d.ts +1 -0
  93. package/lib/types/native.d.ts +0 -8
  94. package/lib/types/node.d.ts +12 -0
  95. package/lib/types/object.d.ts +0 -24
  96. package/lib/types/selection.d.ts +14 -0
  97. package/lib/types/toolbar.d.ts +5 -5
  98. package/lib/ui/toolbar.d.ts +2 -2
  99. package/lib/utils/indent-block.d.ts +2 -0
  100. package/lib/utils/remove-empty-marks.d.ts +2 -0
  101. package/lib/utils/unsafe-template.d.ts +1 -0
  102. package/lib/utils/visible-info.d.ts +10 -0
  103. package/package.json +19 -18
  104. package/lib/boxes/code-block.d.ts +0 -3
  105. package/lib/boxes/emoji.d.ts +0 -3
  106. package/lib/boxes/equation.d.ts +0 -3
  107. package/lib/boxes/file.d.ts +0 -3
  108. package/lib/boxes/hr.d.ts +0 -3
  109. package/lib/boxes/mention.d.ts +0 -3
  110. package/lib/boxes/video.d.ts +0 -3
  111. package/lib/operations/fix-list.d.ts +0 -2
  112. package/lib/operations/insert-fragment.d.ts +0 -3
  113. package/lib/operations/insert-link.d.ts +0 -3
  114. package/lib/operations/insert-node.d.ts +0 -3
  115. package/lib/plugins/code-block.d.ts +0 -3
  116. package/lib/plugins/emoji.d.ts +0 -3
  117. package/lib/plugins/equation.d.ts +0 -3
  118. package/lib/plugins/file.d.ts +0 -3
  119. package/lib/plugins/hr.d.ts +0 -3
  120. package/lib/plugins/image.d.ts +0 -3
  121. package/lib/plugins/video.d.ts +0 -3
  122. package/lib/utils/index.d.ts +0 -33
  123. package/lib/utils/is-visible.d.ts +0 -8
  124. package/lib/utils/safe-template.d.ts +0 -1
  125. package/lib/utils/set-block-indent.d.ts +0 -2
  126. /package/lib/{types/mention.d.ts → plugins/mention/types.d.ts} +0 -0
@@ -0,0 +1,14 @@
1
+ import { KeyValue } from './object';
2
+ import type { Nodes } from '../models/nodes';
3
+ export type ActiveItem = {
4
+ node: Nodes;
5
+ name: string;
6
+ attributes: KeyValue;
7
+ styles: KeyValue;
8
+ };
9
+ export type SelectionState = {
10
+ activeItems: ActiveItem[];
11
+ disabledNameMap?: Map<string, boolean>;
12
+ selectedNameMap?: Map<string, boolean>;
13
+ selectedValuesMap?: Map<string, string[]>;
14
+ };
@@ -1,21 +1,21 @@
1
1
  import type { Editor } from '../editor';
2
2
  import { TranslationFunctions } from '../i18n/types';
3
3
  import { DropdownItem } from './dropdown';
4
- import { AppliedItem } from './object';
4
+ import { ActiveItem } from './selection';
5
5
  export type ToolbarButtonItem = {
6
6
  name: string;
7
7
  type: 'button';
8
8
  icon?: string;
9
9
  tooltip: string | ((locale: TranslationFunctions) => string);
10
- isSelected?: (appliedItems: AppliedItem[]) => boolean;
11
- isDisabled?: (appliedItems: AppliedItem[]) => boolean;
10
+ isSelected?: (activeItems: ActiveItem[]) => boolean;
11
+ isDisabled?: (activeItems: ActiveItem[]) => boolean;
12
12
  onClick: (editor: Editor, value: string) => void;
13
13
  };
14
14
  export type ToolbarDropdownItem = DropdownItem & {
15
15
  name: string;
16
16
  type: 'dropdown';
17
- selectedValues?: (appliedItems: AppliedItem[]) => string[];
18
- isDisabled?: (appliedItems: AppliedItem[]) => boolean;
17
+ selectedValues?: (activeItems: ActiveItem[]) => string[];
18
+ isDisabled?: (activeItems: ActiveItem[]) => boolean;
19
19
  onSelect: (editor: Editor, value: string) => void;
20
20
  };
21
21
  export type ToolbarUploadItem = {
@@ -1,5 +1,5 @@
1
1
  import type { Editor } from '../editor';
2
- import { SelectionState } from '../types/object';
2
+ import { SelectionState } from '../types/selection';
3
3
  import { ToolbarItem } from '../types/toolbar';
4
4
  import { Nodes } from '../models/nodes';
5
5
  type ToolbarPlacement = 'top' | 'bottom';
@@ -22,7 +22,7 @@ export declare class Toolbar {
22
22
  private appendNormalButton;
23
23
  private appendDropdown;
24
24
  private appendUploadButton;
25
- updateState(state: SelectionState): void;
25
+ updateState(state?: SelectionState): void;
26
26
  render(editor: Editor): void;
27
27
  unmount(): void;
28
28
  }
@@ -0,0 +1,2 @@
1
+ import type { Nodes } from '../models/nodes';
2
+ export declare function indentBlock(block: Nodes, type: 'increase' | 'decrease'): void;
@@ -0,0 +1,2 @@
1
+ import type { Nodes } from '../models/nodes';
2
+ export declare function removeEmptyMarks(node: Nodes): void;
@@ -0,0 +1 @@
1
+ export declare function unsafeTemplate(strings: TemplateStringsArray, ...keys: any[]): string;
@@ -0,0 +1,10 @@
1
+ import { Nodes } from '../models/nodes';
2
+ import { Range } from '../models/range';
3
+ type VisibleType = -1 | 0 | 1;
4
+ export declare function visibleInfo(target: Nodes | Range): {
5
+ left: VisibleType;
6
+ right: VisibleType;
7
+ top: VisibleType;
8
+ bottom: VisibleType;
9
+ };
10
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lakelib",
3
- "version": "0.2.6",
3
+ "version": "0.3.1",
4
4
  "description": "Lake is a browser-based rich text editor designed for creating content like blogs, comments, and emails.",
5
5
  "keywords": [
6
6
  "rich text",
@@ -37,41 +37,42 @@
37
37
  "typesafe-i18n": "^5.26.2"
38
38
  },
39
39
  "devDependencies": {
40
- "@rollup/plugin-commonjs": "^28.0.1",
40
+ "@rollup/plugin-alias": "^5.1.1",
41
+ "@rollup/plugin-commonjs": "^28.0.2",
41
42
  "@rollup/plugin-json": "^6.1.0",
42
- "@rollup/plugin-node-resolve": "^15.3.0",
43
+ "@rollup/plugin-node-resolve": "^16.0.0",
43
44
  "@rollup/plugin-terser": "^0.4.4",
44
- "@rollup/plugin-typescript": "^12.1.1",
45
- "@types/chai": "^4.3.20",
46
- "@types/mocha": "^10.0.9",
45
+ "@rollup/plugin-typescript": "^12.1.2",
46
+ "@types/chai": "^5.0.1",
47
+ "@types/mocha": "^10.0.10",
47
48
  "@types/sinon": "^17.0.3",
48
49
  "@typescript-eslint/eslint-plugin": "^7.18.0",
49
50
  "@typescript-eslint/parser": "^7.18.0",
50
- "chai": "^4.5.0",
51
+ "chai": "^5.1.2",
51
52
  "conventional-changelog-cli": "^5.0.0",
52
53
  "eslint": "^8.57.1",
53
54
  "eslint-config-airbnb-base": "^15.0.0",
54
55
  "eslint-config-prettier": "^9.1.0",
55
- "execa": "^9.4.1",
56
- "express": "^4.21.1",
57
- "katex": "^0.16.11",
56
+ "execa": "^9.5.2",
57
+ "express": "^4.21.2",
58
+ "katex": "^0.16.15",
58
59
  "lake-codemirror": "^2.0.0",
59
- "mocha": "^10.7.3",
60
+ "mocha": "^10.8.2",
60
61
  "multer": "1.4.5-lts.1",
61
- "npm-run-all2": "^7.0.0",
62
+ "npm-run-all2": "^7.0.2",
62
63
  "picocolors": "^1.1.1",
63
64
  "prompts": "^2.4.2",
64
- "puppeteer": "^23.6.0",
65
+ "puppeteer": "^23.10.4",
65
66
  "rimraf": "^6.0.1",
66
- "rollup": "^4.24.0",
67
- "rollup-plugin-import-css": "^3.5.5",
67
+ "rollup": "^4.28.1",
68
+ "rollup-plugin-import-css": "^3.5.8",
68
69
  "rollup-plugin-svg-import": "^3.0.0",
69
70
  "semver": "^7.6.3",
70
71
  "simple-git-hooks": "^2.11.1",
71
72
  "sinon": "^19.0.2",
72
- "sort-package-json": "^2.10.1",
73
- "tslib": "^2.8.0",
74
- "typescript": "^5.6.3",
73
+ "sort-package-json": "^2.12.0",
74
+ "tslib": "^2.8.1",
75
+ "typescript": "^5.7.2",
75
76
  "wait-on": "^8.0.1"
76
77
  },
77
78
  "scripts": {
@@ -1,3 +0,0 @@
1
- import { BoxComponent } from '../types/box';
2
- declare const _default: BoxComponent;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import { BoxComponent } from '../types/box';
2
- declare const _default: BoxComponent;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import { BoxComponent } from '../types/box';
2
- declare const _default: BoxComponent;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import { BoxComponent } from '../types/box';
2
- declare const _default: BoxComponent;
3
- export default _default;
package/lib/boxes/hr.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { BoxComponent } from '../types/box';
2
- declare const _default: BoxComponent;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import { BoxComponent } from '../types/box';
2
- declare const _default: BoxComponent;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import { BoxComponent } from '../types/box';
2
- declare const _default: BoxComponent;
3
- export default _default;
@@ -1,2 +0,0 @@
1
- import { Range } from '../models/range';
2
- export declare function fixList(range: Range): void;
@@ -1,3 +0,0 @@
1
- import { Range } from '../models/range';
2
- import { Fragment } from '../models/fragment';
3
- export declare function insertFragment(range: Range, fragment: DocumentFragment | Fragment): void;
@@ -1,3 +0,0 @@
1
- import { Nodes } from '../models/nodes';
2
- import { Range } from '../models/range';
3
- export declare function insertLink(range: Range, value: string | Nodes): Nodes | null;
@@ -1,3 +0,0 @@
1
- import { Nodes } from '../models/nodes';
2
- import { Range } from '../models/range';
3
- export declare function insertNode(range: Range, node: Node | Nodes): void;
@@ -1,3 +0,0 @@
1
- import { type Editor } from '..';
2
- declare const _default: (editor: Editor) => void;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import type { Editor } from '..';
2
- declare const _default: (editor: Editor) => void;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import type { Editor } from '..';
2
- declare const _default: (editor: Editor) => void;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import type { Editor } from '..';
2
- declare const _default: (editor: Editor) => void;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import type { Editor } from '..';
2
- declare const _default: (editor: Editor) => void;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import type { Editor } from '..';
2
- declare const _default: (editor: Editor) => void;
3
- export default _default;
@@ -1,3 +0,0 @@
1
- import type { Editor } from '..';
2
- declare const _default: (editor: Editor) => void;
3
- export default _default;
@@ -1,33 +0,0 @@
1
- export * from './template';
2
- export * from './safe-template';
3
- export * from './camel-case';
4
- export * from './in-string';
5
- export * from './encode';
6
- export * from './to-base64';
7
- export * from './from-base64';
8
- export * from './to-hex';
9
- export * from './parse-style';
10
- export * from './normalize-value';
11
- export * from './denormalize-value';
12
- export * from './modifier-text';
13
- export * from './file-size';
14
- export * from './get-css';
15
- export * from './to-node-list';
16
- export * from './query';
17
- export * from './split-nodes';
18
- export * from './merge-nodes';
19
- export * from './wrap-node-list';
20
- export * from './get-deep-element';
21
- export * from './remove-zws';
22
- export * from './change-tag-name';
23
- export * from './fix-numbered-list';
24
- export * from './append-break';
25
- export * from './remove-break';
26
- export * from './set-block-indent';
27
- export * from './morph';
28
- export * from './is-visible';
29
- export * from './scroll-to-node';
30
- export * from './get-box';
31
- export * from './request';
32
- export * from './upload-file';
33
- export * from './debug';
@@ -1,8 +0,0 @@
1
- import { Nodes } from '../models/nodes';
2
- import { Range } from '../models/range';
3
- export declare function isVisible(target: Nodes | Range): {
4
- left: boolean;
5
- right: boolean;
6
- top: boolean;
7
- bottom: boolean;
8
- };
@@ -1 +0,0 @@
1
- export declare function safeTemplate(strings: TemplateStringsArray, ...keys: any[]): string;
@@ -1,2 +0,0 @@
1
- import type { Nodes } from '../models/nodes';
2
- export declare function setBlockIndent(block: Nodes, type: 'increase' | 'decrease'): void;