@thangph2146/lexical-editor 0.0.3 → 0.0.5

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 (100) hide show
  1. package/dist/editor-x/editor.cjs +724 -435
  2. package/dist/editor-x/editor.cjs.map +1 -1
  3. package/dist/editor-x/editor.css +1391 -1091
  4. package/dist/editor-x/editor.css.map +1 -1
  5. package/dist/editor-x/editor.js +728 -439
  6. package/dist/editor-x/editor.js.map +1 -1
  7. package/dist/index.cjs +760 -472
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.css +1391 -1091
  10. package/dist/index.css.map +1 -1
  11. package/dist/index.js +763 -475
  12. package/dist/index.js.map +1 -1
  13. package/package.json +1 -1
  14. package/src/components/lexical-editor.tsx +138 -123
  15. package/src/editor-ui/content-editable.tsx +3 -3
  16. package/src/editor-x/editor.tsx +16 -3
  17. package/src/editor-x/plugins.tsx +385 -380
  18. package/src/nodes/list-with-color-node.tsx +160 -160
  19. package/src/plugins/autocomplete-plugin.tsx +2574 -2574
  20. package/src/plugins/context-menu-plugin.tsx +239 -9
  21. package/src/plugins/floating-text-format-plugin.tsx +84 -92
  22. package/src/plugins/images-plugin.tsx +4 -4
  23. package/src/plugins/list-color-plugin.tsx +178 -178
  24. package/src/plugins/tab-focus-plugin.tsx +66 -66
  25. package/src/plugins/table-column-resizer-plugin.tsx +329 -190
  26. package/src/plugins/toolbar/block-format/block-format-data.tsx +4 -0
  27. package/src/plugins/toolbar/block-format/format-bulleted-list.tsx +40 -40
  28. package/src/plugins/toolbar/block-format/format-list-with-marker.tsx +74 -74
  29. package/src/plugins/toolbar/block-format/format-numbered-list.tsx +40 -40
  30. package/src/plugins/toolbar/block-format-toolbar-plugin.tsx +118 -117
  31. package/src/plugins/toolbar/element-format-toolbar-plugin.tsx +37 -53
  32. package/src/plugins/toolbar/font-format-toolbar-plugin.tsx +8 -15
  33. package/src/plugins/toolbar/font-size-toolbar-plugin.tsx +2 -3
  34. package/src/plugins/toolbar/history-toolbar-plugin.tsx +2 -5
  35. package/src/plugins/toolbar/subsuper-toolbar-plugin.tsx +15 -23
  36. package/src/themes/_mixins.scss +158 -10
  37. package/src/themes/_variables.scss +168 -0
  38. package/src/themes/core/_code.scss +59 -0
  39. package/src/themes/core/_images.scss +80 -0
  40. package/src/themes/core/_lists.scss +214 -0
  41. package/src/themes/core/_misc.scss +46 -0
  42. package/src/themes/core/_reset.scss +119 -0
  43. package/src/themes/core/_tables.scss +145 -0
  44. package/src/themes/core/_text.scss +35 -0
  45. package/src/themes/core/_typography.scss +73 -0
  46. package/src/themes/editor-theme copy.scss +763 -0
  47. package/src/themes/editor-theme.scss +9 -621
  48. package/src/themes/editor-theme.ts +118 -118
  49. package/src/themes/plugins/_auto-embed.scss +11 -0
  50. package/src/themes/plugins/_color-picker.scss +103 -0
  51. package/src/themes/plugins/_draggable-block.scss +32 -0
  52. package/src/themes/plugins/_floating-link-editor.scss +47 -0
  53. package/src/themes/plugins/_floating-toolbars.scss +61 -0
  54. package/src/themes/plugins/_image-resizer.scss +38 -0
  55. package/src/themes/plugins/_image.scss +57 -0
  56. package/src/themes/plugins/_layout.scss +39 -0
  57. package/src/themes/plugins/_list-color.scss +23 -0
  58. package/src/themes/plugins/_mentions.scss +21 -0
  59. package/src/themes/plugins/_menus-and-pickers.scss +153 -0
  60. package/src/themes/plugins/_table.scss +20 -0
  61. package/src/themes/plugins/_toolbar.scss +36 -0
  62. package/src/themes/plugins/_tree-view.scss +11 -0
  63. package/src/themes/plugins copy.scss +656 -0
  64. package/src/themes/plugins.scss +20 -1165
  65. package/src/themes/ui-components/_animations.scss +31 -0
  66. package/src/themes/ui-components/_backgrounds.scss +27 -0
  67. package/src/themes/ui-components/_borders.scss +20 -0
  68. package/src/themes/ui-components/_button.scss +176 -0
  69. package/src/themes/ui-components/_checkbox.scss +14 -0
  70. package/src/themes/ui-components/_cursors.scss +31 -0
  71. package/src/themes/ui-components/_dialog.scss +86 -0
  72. package/src/themes/ui-components/_display-sizing.scss +100 -0
  73. package/src/themes/ui-components/_flex.scss +124 -0
  74. package/src/themes/ui-components/_form-layout.scss +15 -0
  75. package/src/themes/ui-components/_icons.scss +23 -0
  76. package/src/themes/ui-components/_input.scss +86 -0
  77. package/src/themes/ui-components/_label.scss +19 -0
  78. package/src/themes/ui-components/_loader.scss +9 -0
  79. package/src/themes/ui-components/_margins-paddings.scss +45 -0
  80. package/src/themes/ui-components/_popover.scss +16 -0
  81. package/src/themes/ui-components/_positioning.scss +73 -0
  82. package/src/themes/ui-components/_rounded.scss +19 -0
  83. package/src/themes/ui-components/_scroll-area.scss +11 -0
  84. package/src/themes/ui-components/_select.scss +110 -0
  85. package/src/themes/ui-components/_separator.scss +19 -0
  86. package/src/themes/ui-components/_shadow.scss +15 -0
  87. package/src/themes/ui-components/_tabs.scss +46 -0
  88. package/src/themes/ui-components/_text-utilities.scss +48 -0
  89. package/src/themes/ui-components/_toggle-toolbar.scss +128 -0
  90. package/src/themes/ui-components/_toggle.scss +80 -0
  91. package/src/themes/ui-components/_typography.scss +22 -0
  92. package/src/themes/ui-components copy.scss +1335 -0
  93. package/src/themes/ui-components.scss +27 -937
  94. package/src/transformers/markdown-list-transformer.ts +51 -51
  95. package/src/ui/button.tsx +11 -2
  96. package/src/ui/collapsible.tsx +1 -1
  97. package/src/ui/dialog.tsx +2 -2
  98. package/src/ui/flex.tsx +4 -4
  99. package/src/ui/popover.tsx +1 -1
  100. 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
+ }