@thangph2146/lexical-editor 0.0.4 → 0.0.6

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 (101) hide show
  1. package/README.md +47 -0
  2. package/dist/editor-x/editor.cjs +732 -443
  3. package/dist/editor-x/editor.cjs.map +1 -1
  4. package/dist/editor-x/editor.css +1418 -1120
  5. package/dist/editor-x/editor.css.map +1 -1
  6. package/dist/editor-x/editor.d.cts +2 -1
  7. package/dist/editor-x/editor.d.ts +2 -1
  8. package/dist/editor-x/editor.js +736 -447
  9. package/dist/editor-x/editor.js.map +1 -1
  10. package/dist/index.cjs +772 -482
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.css +1418 -1120
  13. package/dist/index.css.map +1 -1
  14. package/dist/index.d.cts +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.js +775 -485
  17. package/dist/index.js.map +1 -1
  18. package/package.json +86 -84
  19. package/src/components/lexical-editor.tsx +140 -123
  20. package/src/editor-x/editor.tsx +20 -5
  21. package/src/editor-x/plugins.tsx +385 -380
  22. package/src/nodes/list-with-color-node.tsx +160 -160
  23. package/src/plugins/autocomplete-plugin.tsx +2574 -2574
  24. package/src/plugins/context-menu-plugin.tsx +239 -9
  25. package/src/plugins/floating-text-format-plugin.tsx +84 -92
  26. package/src/plugins/images-plugin.tsx +4 -4
  27. package/src/plugins/list-color-plugin.tsx +178 -178
  28. package/src/plugins/tab-focus-plugin.tsx +66 -66
  29. package/src/plugins/table-column-resizer-plugin.tsx +329 -190
  30. package/src/plugins/toolbar/block-format/block-format-data.tsx +4 -0
  31. package/src/plugins/toolbar/block-format/format-bulleted-list.tsx +40 -40
  32. package/src/plugins/toolbar/block-format/format-list-with-marker.tsx +74 -74
  33. package/src/plugins/toolbar/block-format/format-numbered-list.tsx +40 -40
  34. package/src/plugins/toolbar/block-format-toolbar-plugin.tsx +118 -117
  35. package/src/plugins/toolbar/element-format-toolbar-plugin.tsx +37 -53
  36. package/src/plugins/toolbar/font-format-toolbar-plugin.tsx +8 -15
  37. package/src/plugins/toolbar/font-size-toolbar-plugin.tsx +2 -3
  38. package/src/plugins/toolbar/history-toolbar-plugin.tsx +2 -5
  39. package/src/plugins/toolbar/subsuper-toolbar-plugin.tsx +15 -23
  40. package/src/themes/_mixins.scss +158 -10
  41. package/src/themes/_variables.scss +168 -0
  42. package/src/themes/core/_code.scss +59 -0
  43. package/src/themes/core/_images.scss +80 -0
  44. package/src/themes/core/_lists.scss +214 -0
  45. package/src/themes/core/_misc.scss +46 -0
  46. package/src/themes/core/_reset.scss +119 -0
  47. package/src/themes/core/_tables.scss +145 -0
  48. package/src/themes/core/_text.scss +35 -0
  49. package/src/themes/core/_typography.scss +73 -0
  50. package/src/themes/editor-theme.scss +9 -623
  51. package/src/themes/editor-theme.ts +118 -118
  52. package/src/themes/plugins/_auto-embed.scss +11 -0
  53. package/src/themes/plugins/_color-picker.scss +103 -0
  54. package/src/themes/plugins/_draggable-block.scss +32 -0
  55. package/src/themes/plugins/_floating-link-editor.scss +47 -0
  56. package/src/themes/plugins/_floating-toolbars.scss +61 -0
  57. package/src/themes/plugins/_image-resizer.scss +38 -0
  58. package/src/themes/plugins/_image.scss +57 -0
  59. package/src/themes/plugins/_layout.scss +39 -0
  60. package/src/themes/plugins/_list-color.scss +23 -0
  61. package/src/themes/plugins/_mentions.scss +21 -0
  62. package/src/themes/plugins/_menus-and-pickers.scss +153 -0
  63. package/src/themes/plugins/_table.scss +20 -0
  64. package/src/themes/plugins/_toolbar.scss +36 -0
  65. package/src/themes/plugins/_tree-view.scss +11 -0
  66. package/src/themes/plugins.scss +20 -1165
  67. package/src/themes/ui-components/_animations.scss +31 -0
  68. package/src/themes/ui-components/_backgrounds.scss +27 -0
  69. package/src/themes/ui-components/_borders.scss +20 -0
  70. package/src/themes/ui-components/_button.scss +176 -0
  71. package/src/themes/ui-components/_checkbox.scss +14 -0
  72. package/src/themes/ui-components/_cursors.scss +31 -0
  73. package/src/themes/ui-components/_dialog.scss +86 -0
  74. package/src/themes/ui-components/_display-sizing.scss +100 -0
  75. package/src/themes/ui-components/_flex.scss +124 -0
  76. package/src/themes/ui-components/_form-layout.scss +15 -0
  77. package/src/themes/ui-components/_icons.scss +23 -0
  78. package/src/themes/ui-components/_input.scss +86 -0
  79. package/src/themes/ui-components/_label.scss +19 -0
  80. package/src/themes/ui-components/_loader.scss +9 -0
  81. package/src/themes/ui-components/_margins-paddings.scss +45 -0
  82. package/src/themes/ui-components/_popover.scss +16 -0
  83. package/src/themes/ui-components/_positioning.scss +73 -0
  84. package/src/themes/ui-components/_rounded.scss +19 -0
  85. package/src/themes/ui-components/_scroll-area.scss +11 -0
  86. package/src/themes/ui-components/_select.scss +110 -0
  87. package/src/themes/ui-components/_separator.scss +19 -0
  88. package/src/themes/ui-components/_shadow.scss +15 -0
  89. package/src/themes/ui-components/_tabs.scss +46 -0
  90. package/src/themes/ui-components/_text-utilities.scss +48 -0
  91. package/src/themes/ui-components/_toggle-toolbar.scss +128 -0
  92. package/src/themes/ui-components/_toggle.scss +80 -0
  93. package/src/themes/ui-components/_typography.scss +22 -0
  94. package/src/themes/ui-components.scss +27 -937
  95. package/src/transformers/markdown-list-transformer.ts +51 -51
  96. package/src/ui/button.tsx +11 -2
  97. package/src/ui/collapsible.tsx +1 -1
  98. package/src/ui/dialog.tsx +2 -2
  99. package/src/ui/flex.tsx +4 -4
  100. package/src/ui/popover.tsx +1 -1
  101. package/src/ui/tooltip.tsx +2 -2
@@ -0,0 +1,153 @@
1
+ @use "../variables" as *;
2
+ @use "../mixins" as *;
3
+
4
+ .editor-component-picker-menu {
5
+ position: fixed;
6
+ z-index: $editor-z-index-popover;
7
+ width: $editor-component-picker-width;
8
+ @include rounded-md;
9
+ border: $editor-border-width solid var(--border);
10
+ background-color: var(--popover);
11
+ color: var(--popover-foreground);
12
+ @include shadow-lg;
13
+ overflow: hidden;
14
+
15
+ // Base visibility
16
+ visibility: visible;
17
+ opacity: 1;
18
+ max-height: $editor-popover-max-height;
19
+ }
20
+
21
+ .editor-command {
22
+ @include flex-col;
23
+ height: 100%;
24
+ width: 100%;
25
+ overflow: hidden;
26
+ border-radius: inherit;
27
+ }
28
+
29
+ .editor-command-list {
30
+ max-height: $editor-popover-max-height;
31
+ overflow-y: auto;
32
+ overflow-x: hidden;
33
+ padding: $editor-gap-1;
34
+ }
35
+
36
+ .editor-command-group {
37
+ overflow: hidden;
38
+ color: var(--foreground);
39
+
40
+ & > [cmdk-group-heading] {
41
+ padding: $editor-gap-2 $editor-gap-2 4px;
42
+ font-size: $editor-font-size-xs;
43
+ font-weight: $editor-font-weight-medium;
44
+ color: var(--muted-foreground);
45
+ }
46
+ }
47
+
48
+ .editor-command-item {
49
+ position: relative;
50
+ @include flex-center;
51
+ cursor: pointer;
52
+ user-select: none;
53
+ @include rounded-sm;
54
+ padding: calc($editor-gap-1 + 2px) $editor-gap-2;
55
+ border: $editor-border-width solid transparent; // Added for hover border
56
+ @include text-sm;
57
+ outline: none;
58
+ gap: $editor-gap-2;
59
+
60
+ @include editor-dropdown-item-interactive;
61
+
62
+ &[data-disabled="true"] {
63
+ pointer-events: none;
64
+ opacity: $editor-opacity-disabled;
65
+ }
66
+
67
+ svg {
68
+ @include icon-size($editor-icon-size-sm);
69
+ }
70
+ }
71
+
72
+ .editor-context-menu {
73
+ background-color: var(--popover);
74
+ color: var(--popover-foreground);
75
+ z-index: $editor-z-index-floating !important;
76
+ overflow: hidden;
77
+ @include rounded-md;
78
+ border: $editor-border-width solid var(--border);
79
+ @include shadow-md;
80
+ outline: none;
81
+
82
+ &:has(*) {
83
+ z-index: $editor-z-index-layer-10 !important;
84
+ }
85
+ }
86
+
87
+ .editor-context-menu-item {
88
+ position: relative;
89
+ width: 100%;
90
+ @include flex-center;
91
+ cursor: default;
92
+ gap: $editor-gap-2;
93
+ @include rounded-sm;
94
+ padding: calc($editor-gap-1 + 2px) $editor-gap-2;
95
+ border: $editor-border-width solid transparent; // Added for hover border
96
+ @include text-sm;
97
+ outline: none;
98
+ user-select: none;
99
+
100
+ @include editor-dropdown-item-interactive;
101
+
102
+ &[data-disabled="true"] {
103
+ pointer-events: none;
104
+ opacity: $editor-opacity-disabled;
105
+ }
106
+ }
107
+
108
+ .editor-context-menu-separator {
109
+ background-color: var(--border);
110
+ margin-left: -0.25rem; // -mx-1
111
+ margin-right: -0.25rem;
112
+ height: $editor-border-width;
113
+ }
114
+
115
+ .editor-actions-bar {
116
+ clear: both;
117
+ @include flex-center;
118
+ width: 100%;
119
+ @include flex-center-between;
120
+ gap: $editor-gap-3;
121
+ overflow-x: auto;
122
+ flex-wrap: nowrap;
123
+ border-top: $editor-border-width solid var(--border);
124
+ padding: $editor-gap-1-5 $editor-gap-3;
125
+ @include backdrop-blur($editor-dialog-overlay-blur * 2, color-mix(in srgb, var(--background), transparent 50%));
126
+
127
+ @include scrollbar-hide;
128
+
129
+ // Ẩn nội dung tooltip mặc định trong actions bar nếu nó đang bị hiển thị sai
130
+ .editor-tooltip-content {
131
+ display: none !important;
132
+ }
133
+
134
+ // Chỉ hiển thị tooltip khi hover vào trigger
135
+ .editor-tooltip-group:hover .editor-tooltip-content {
136
+ display: block !important;
137
+ position: absolute;
138
+ bottom: 100%;
139
+ left: 50%;
140
+ transform: translateX(-50%);
141
+ margin-bottom: $editor-gap-2;
142
+ background: var(--popover);
143
+ color: var(--popover-foreground);
144
+ padding: $editor-gap-1 $editor-gap-2;
145
+ @include rounded-sm;
146
+ font-size: 0.75rem;
147
+ white-space: nowrap;
148
+ border: $editor-border-width solid var(--border);
149
+ @include shadow-sm;
150
+ z-index: $editor-z-index-floating;
151
+ pointer-events: none;
152
+ }
153
+ }
@@ -0,0 +1,20 @@
1
+ @use "../variables" as *;
2
+ @use "../mixins" as *;
3
+
4
+ .editor-table-dialog {
5
+ display: grid;
6
+ gap: $editor-gap-5;
7
+ padding: $editor-gap-2 0;
8
+ animation: editor-fade-in $editor-transition-slow;
9
+
10
+ &__group {
11
+ @include flex-col;
12
+ gap: $editor-gap-2;
13
+ }
14
+
15
+ &__checkbox-group {
16
+ @include flex-center;
17
+ gap: $editor-gap-3;
18
+ margin-top: $editor-gap-2;
19
+ }
20
+ }
@@ -0,0 +1,36 @@
1
+ @use "../variables" as *;
2
+ @use "../mixins" as *;
3
+
4
+ .editor-toolbar {
5
+ position: sticky;
6
+ top: 0; // Will be overridden by inline style from ToolbarPlugin
7
+ z-index: $editor-z-index-toolbar;
8
+ @include flex-center;
9
+ flex-wrap: wrap;
10
+ gap: $editor-gap-1;
11
+ border-bottom: $editor-border-width solid var(--border);
12
+ border-top-left-radius: $editor-border-radius;
13
+ border-top-right-radius: $editor-border-radius;
14
+ @include backdrop-blur($editor-dialog-overlay-blur, rgba(255, 255, 255, 0.8));
15
+ padding: $editor-gap-1;
16
+ @include shadow-sm;
17
+ width: 100%;
18
+ overflow-x: visible;
19
+ overflow-y: visible;
20
+ white-space: normal;
21
+ }
22
+
23
+ .editor-toolbar-group {
24
+ @include flex-center;
25
+ gap: $editor-gap-1;
26
+ padding: $editor-gap-1;
27
+ @include rounded-md;
28
+ }
29
+
30
+ // Note: Toolbar items and select triggers are defined in ui-components.scss
31
+
32
+ .editor-toolbar-separator {
33
+ height: $editor-icon-size-lg !important; // h-6 (standard separator height)
34
+ margin-left: $editor-gap-1;
35
+ margin-right: $editor-gap-1;
36
+ }
@@ -0,0 +1,11 @@
1
+ @use "../variables" as *;
2
+ @use "../mixins" as *;
3
+
4
+ .editor-tree-view-scroll-area {
5
+ background-color: var(--foreground);
6
+ color: var(--background);
7
+ height: 24rem; // h-96
8
+ overflow: hidden;
9
+ @include rounded-lg;
10
+ padding: $editor-gap-2;
11
+ }