@alpaca-editor/core 1.0.3956 → 1.0.3960

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 (247) hide show
  1. package/build.css +1 -1
  2. package/dist/components/ui/badge.d.ts +9 -0
  3. package/dist/components/ui/badge.js +23 -0
  4. package/dist/components/ui/badge.js.map +1 -0
  5. package/dist/components/ui/button.js +3 -3
  6. package/dist/components/ui/button.js.map +1 -1
  7. package/dist/components/ui/command.d.ts +18 -0
  8. package/dist/components/ui/command.js +35 -0
  9. package/dist/components/ui/command.js.map +1 -0
  10. package/dist/components/ui/dialog.d.ts +15 -0
  11. package/dist/components/ui/dialog.js +37 -0
  12. package/dist/components/ui/dialog.js.map +1 -0
  13. package/dist/components/ui/dropdown-menu.d.ts +25 -0
  14. package/dist/components/ui/dropdown-menu.js +52 -0
  15. package/dist/components/ui/dropdown-menu.js.map +1 -0
  16. package/dist/components/ui/input.d.ts +3 -0
  17. package/dist/components/ui/input.js +7 -0
  18. package/dist/components/ui/input.js.map +1 -0
  19. package/dist/components/ui/menubar.d.ts +26 -0
  20. package/dist/components/ui/menubar.js +55 -0
  21. package/dist/components/ui/menubar.js.map +1 -0
  22. package/dist/components/ui/popover.d.ts +9 -0
  23. package/dist/components/ui/popover.js +63 -0
  24. package/dist/components/ui/popover.js.map +1 -0
  25. package/dist/components/ui/switch.d.ts +4 -0
  26. package/dist/components/ui/switch.js +9 -0
  27. package/dist/components/ui/switch.js.map +1 -0
  28. package/dist/components/ui/tooltip.d.ts +7 -0
  29. package/dist/components/ui/tooltip.js +18 -0
  30. package/dist/components/ui/tooltip.js.map +1 -0
  31. package/dist/config/config.js +79 -63
  32. package/dist/config/config.js.map +1 -1
  33. package/dist/config/types.d.ts +3 -3
  34. package/dist/editor/ContentTree.js +1 -1
  35. package/dist/editor/ContentTree.js.map +1 -1
  36. package/dist/editor/Editor.js +6 -2
  37. package/dist/editor/Editor.js.map +1 -1
  38. package/dist/editor/FieldList.js +1 -1
  39. package/dist/editor/FieldList.js.map +1 -1
  40. package/dist/editor/FieldListField.js +1 -1
  41. package/dist/editor/FieldListField.js.map +1 -1
  42. package/dist/editor/ImageEditor.js +16 -6
  43. package/dist/editor/ImageEditor.js.map +1 -1
  44. package/dist/editor/MainLayout.js +4 -4
  45. package/dist/editor/MainLayout.js.map +1 -1
  46. package/dist/editor/MobileLayout.js +3 -3
  47. package/dist/editor/MobileLayout.js.map +1 -1
  48. package/dist/editor/PictureEditor.js +29 -15
  49. package/dist/editor/PictureEditor.js.map +1 -1
  50. package/dist/editor/Titlebar.js +6 -11
  51. package/dist/editor/Titlebar.js.map +1 -1
  52. package/dist/editor/ai/GhostWriter.js +1 -1
  53. package/dist/editor/ai/GhostWriter.js.map +1 -1
  54. package/dist/editor/client/EditorClient.d.ts +4 -2
  55. package/dist/editor/client/EditorClient.js +32 -11
  56. package/dist/editor/client/EditorClient.js.map +1 -1
  57. package/dist/editor/client/editContext.d.ts +4 -1
  58. package/dist/editor/client/editContext.js.map +1 -1
  59. package/dist/editor/client/operations.js +2 -2
  60. package/dist/editor/client/pageModelBuilder.js +3 -6
  61. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  62. package/dist/editor/commands/itemCommands.d.ts +2 -0
  63. package/dist/editor/commands/itemCommands.js +180 -0
  64. package/dist/editor/commands/itemCommands.js.map +1 -1
  65. package/dist/editor/field-types/MultiLineText.js +1 -1
  66. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  67. package/dist/editor/field-types/SingleLineText.js +1 -1
  68. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  69. package/dist/editor/menubar/ActiveUsers.js +98 -4
  70. package/dist/editor/menubar/ActiveUsers.js.map +1 -1
  71. package/dist/editor/menubar/{ActionsMenu.d.ts → ItemActionsMenu.d.ts} +1 -1
  72. package/dist/editor/menubar/ItemActionsMenu.js +23 -0
  73. package/dist/editor/menubar/ItemActionsMenu.js.map +1 -0
  74. package/dist/editor/menubar/ItemLanguageVersion.js +2 -2
  75. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  76. package/dist/editor/menubar/LanguageSelector.d.ts +1 -2
  77. package/dist/editor/menubar/LanguageSelector.js +23 -23
  78. package/dist/editor/menubar/LanguageSelector.js.map +1 -1
  79. package/dist/editor/menubar/PageSelector.js +7 -8
  80. package/dist/editor/menubar/PageSelector.js.map +1 -1
  81. package/dist/editor/menubar/PageViewerControls.js +22 -19
  82. package/dist/editor/menubar/PageViewerControls.js.map +1 -1
  83. package/dist/editor/menubar/PreviewSecondaryControls.js +2 -3
  84. package/dist/editor/menubar/PreviewSecondaryControls.js.map +1 -1
  85. package/dist/editor/menubar/User.js +1 -1
  86. package/dist/editor/menubar/User.js.map +1 -1
  87. package/dist/editor/menubar/VersionSelector.js +36 -31
  88. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  89. package/dist/editor/menubar/WorkflowButton.d.ts +1 -0
  90. package/dist/editor/menubar/WorkflowButton.js +41 -0
  91. package/dist/editor/menubar/WorkflowButton.js.map +1 -0
  92. package/dist/editor/page-editor-chrome/FrameMenu.js +5 -5
  93. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  94. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +2 -2
  95. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  96. package/dist/editor/page-viewer/EditorForm.d.ts +2 -1
  97. package/dist/editor/page-viewer/EditorForm.js +61 -49
  98. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  99. package/dist/editor/page-viewer/PageViewer.d.ts +2 -1
  100. package/dist/editor/page-viewer/PageViewer.js +28 -44
  101. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  102. package/dist/editor/page-viewer/PageViewerFrame.js +1 -1
  103. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  104. package/dist/editor/reviews/Comments.js +9 -9
  105. package/dist/editor/reviews/Comments.js.map +1 -1
  106. package/dist/editor/reviews/SuggestedEdit.js +3 -3
  107. package/dist/editor/services/contentService.d.ts +18 -0
  108. package/dist/editor/services/contentService.js +6 -0
  109. package/dist/editor/services/contentService.js.map +1 -1
  110. package/dist/editor/services/editService.d.ts +5 -0
  111. package/dist/editor/services/editService.js +4 -0
  112. package/dist/editor/services/editService.js.map +1 -1
  113. package/dist/editor/services/systemService.d.ts +2 -1
  114. package/dist/editor/services/systemService.js +4 -1
  115. package/dist/editor/services/systemService.js.map +1 -1
  116. package/dist/editor/sidebar/ComponentTree.js +26 -10
  117. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  118. package/dist/editor/sidebar/Divider.d.ts +6 -0
  119. package/dist/editor/sidebar/Divider.js +6 -0
  120. package/dist/editor/sidebar/Divider.js.map +1 -0
  121. package/dist/editor/sidebar/LeftToolbar.d.ts +1 -0
  122. package/dist/editor/sidebar/LeftToolbar.js +16 -0
  123. package/dist/editor/sidebar/LeftToolbar.js.map +1 -0
  124. package/dist/editor/sidebar/SEOInfo.d.ts +1 -0
  125. package/dist/editor/sidebar/SEOInfo.js +169 -0
  126. package/dist/editor/sidebar/SEOInfo.js.map +1 -0
  127. package/dist/editor/sidebar/Sidebar.js +1 -1
  128. package/dist/editor/sidebar/Sidebar.js.map +1 -1
  129. package/dist/editor/sidebar/SidebarView.d.ts +3 -2
  130. package/dist/editor/sidebar/SidebarView.js +22 -60
  131. package/dist/editor/sidebar/SidebarView.js.map +1 -1
  132. package/dist/editor/sidebar/ViewSelector.js +66 -20
  133. package/dist/editor/sidebar/ViewSelector.js.map +1 -1
  134. package/dist/editor/ui/Icons.d.ts +4 -0
  135. package/dist/editor/ui/Icons.js +15 -3
  136. package/dist/editor/ui/Icons.js.map +1 -1
  137. package/dist/editor/ui/Section.js +1 -1
  138. package/dist/editor/ui/Section.js.map +1 -1
  139. package/dist/editor/ui/SimpleIconButton.d.ts +1 -2
  140. package/dist/editor/ui/SimpleIconButton.js +8 -13
  141. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  142. package/dist/editor/ui/SimpleTabs.js +2 -2
  143. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  144. package/dist/editor/ui/SimpleToolbar.js +1 -1
  145. package/dist/editor/ui/SimpleToolbar.js.map +1 -1
  146. package/dist/editor/ui/Splitter.d.ts +4 -0
  147. package/dist/editor/ui/Splitter.js +6 -7
  148. package/dist/editor/ui/Splitter.js.map +1 -1
  149. package/dist/editor/views/CompareView.js +16 -4
  150. package/dist/editor/views/CompareView.js.map +1 -1
  151. package/dist/editor/views/SingleEditView.d.ts +2 -1
  152. package/dist/editor/views/SingleEditView.js +2 -2
  153. package/dist/editor/views/SingleEditView.js.map +1 -1
  154. package/dist/page-wizard/steps/ContentStep.js +1 -1
  155. package/dist/page-wizard/steps/ContentStep.js.map +1 -1
  156. package/dist/revision.d.ts +2 -2
  157. package/dist/revision.js +2 -2
  158. package/dist/splash-screen/NewPage.js +8 -6
  159. package/dist/splash-screen/NewPage.js.map +1 -1
  160. package/dist/splash-screen/RecentPages.js +3 -8
  161. package/dist/splash-screen/RecentPages.js.map +1 -1
  162. package/dist/styles.css +1519 -543
  163. package/dist/tour/Tour.js +79 -10
  164. package/dist/tour/Tour.js.map +1 -1
  165. package/dist/tour/default-tour.js +55 -45
  166. package/dist/tour/default-tour.js.map +1 -1
  167. package/dist/types.d.ts +19 -1
  168. package/package.json +13 -5
  169. package/src/components/ui/badge.tsx +46 -0
  170. package/src/components/ui/button.tsx +3 -3
  171. package/src/components/ui/command.tsx +184 -0
  172. package/src/components/ui/dialog.tsx +143 -0
  173. package/src/components/ui/dropdown-menu.tsx +257 -0
  174. package/src/components/ui/input.tsx +21 -0
  175. package/src/components/ui/menubar.tsx +276 -0
  176. package/src/components/ui/popover.tsx +113 -0
  177. package/src/components/ui/switch.tsx +31 -0
  178. package/src/components/ui/tooltip.tsx +61 -0
  179. package/src/config/config.tsx +102 -65
  180. package/src/config/types.ts +3 -3
  181. package/src/editor/ContentTree.tsx +1 -1
  182. package/src/editor/Editor.tsx +8 -2
  183. package/src/editor/FieldList.tsx +2 -2
  184. package/src/editor/FieldListField.tsx +1 -1
  185. package/src/editor/ImageEditor.tsx +44 -21
  186. package/src/editor/MainLayout.tsx +21 -16
  187. package/src/editor/MobileLayout.tsx +3 -2
  188. package/src/editor/PictureEditor.tsx +74 -45
  189. package/src/editor/Titlebar.tsx +12 -24
  190. package/src/editor/ai/GhostWriter.tsx +1 -1
  191. package/src/editor/client/EditorClient.tsx +55 -13
  192. package/src/editor/client/editContext.ts +5 -0
  193. package/src/editor/client/operations.ts +2 -2
  194. package/src/editor/client/pageModelBuilder.ts +3 -7
  195. package/src/editor/commands/itemCommands.tsx +272 -0
  196. package/src/editor/field-types/MultiLineText.tsx +1 -1
  197. package/src/editor/field-types/SingleLineText.tsx +1 -1
  198. package/src/editor/menubar/ActiveUsers.tsx +271 -5
  199. package/src/editor/menubar/ItemActionsMenu.tsx +89 -0
  200. package/src/editor/menubar/ItemLanguageVersion.tsx +7 -5
  201. package/src/editor/menubar/LanguageSelector.tsx +105 -134
  202. package/src/editor/menubar/PageSelector.tsx +25 -27
  203. package/src/editor/menubar/PageViewerControls.tsx +126 -78
  204. package/src/editor/menubar/PreviewSecondaryControls.tsx +0 -2
  205. package/src/editor/menubar/User.tsx +2 -2
  206. package/src/editor/menubar/VersionSelector.tsx +124 -99
  207. package/src/editor/menubar/WorkflowButton.tsx +115 -0
  208. package/src/editor/page-editor-chrome/FrameMenu.tsx +5 -5
  209. package/src/editor/page-editor-chrome/SuggestionHighlightings.tsx +2 -2
  210. package/src/editor/page-viewer/EditorForm.tsx +112 -87
  211. package/src/editor/page-viewer/PageViewer.tsx +75 -92
  212. package/src/editor/page-viewer/PageViewerFrame.tsx +1 -1
  213. package/src/editor/reviews/Comments.tsx +19 -20
  214. package/src/editor/reviews/SuggestedEdit.tsx +3 -3
  215. package/src/editor/services/contentService.ts +28 -0
  216. package/src/editor/services/editService.ts +12 -0
  217. package/src/editor/services/systemService.ts +5 -2
  218. package/src/editor/sidebar/ComponentTree.tsx +34 -12
  219. package/src/editor/sidebar/Divider.tsx +22 -0
  220. package/src/editor/sidebar/LeftToolbar.tsx +36 -0
  221. package/src/editor/sidebar/SEOInfo.tsx +265 -0
  222. package/src/editor/sidebar/Sidebar.tsx +1 -0
  223. package/src/editor/sidebar/SidebarView.tsx +77 -111
  224. package/src/editor/sidebar/ViewSelector.tsx +211 -43
  225. package/src/editor/ui/Icons.tsx +155 -10
  226. package/src/editor/ui/Section.tsx +1 -1
  227. package/src/editor/ui/SimpleIconButton.tsx +30 -28
  228. package/src/editor/ui/SimpleTabs.tsx +3 -3
  229. package/src/editor/ui/SimpleToolbar.tsx +1 -1
  230. package/src/editor/ui/Splitter.tsx +14 -7
  231. package/src/editor/views/CompareView.tsx +23 -11
  232. package/src/editor/views/SingleEditView.tsx +3 -0
  233. package/src/page-wizard/steps/ContentStep.tsx +0 -1
  234. package/src/revision.ts +2 -2
  235. package/src/splash-screen/NewPage.tsx +18 -13
  236. package/src/splash-screen/RecentPages.tsx +4 -10
  237. package/src/tour/Tour.tsx +125 -34
  238. package/src/tour/default-tour.tsx +55 -45
  239. package/src/types.ts +21 -1
  240. package/styles.css +301 -1
  241. package/dist/editor/menubar/ActionsMenu.js +0 -49
  242. package/dist/editor/menubar/ActionsMenu.js.map +0 -1
  243. package/dist/editor/menubar/SecondaryControls.d.ts +0 -1
  244. package/dist/editor/menubar/SecondaryControls.js +0 -17
  245. package/dist/editor/menubar/SecondaryControls.js.map +0 -1
  246. package/src/editor/menubar/ActionsMenu.tsx +0 -94
  247. package/src/editor/menubar/SecondaryControls.tsx +0 -45
package/styles.css CHANGED
@@ -1,4 +1,4 @@
1
- /* Override default fonts to ensure Inter is used throughout */
1
+ @import "tw-animate-css";
2
2
  * {
3
3
  font-family:
4
4
  var(--font-inter),
@@ -34,6 +34,141 @@ body {
34
34
  sans-serif;
35
35
  }
36
36
 
37
+ @theme {
38
+ --font-inter: "Inter";
39
+ --color-dark: #111111;
40
+ --color-gray-2: #767676;
41
+ --color-gray-3: #e4e2e2;
42
+ --color-gray-4: #f2f2f2;
43
+ --color-gray-5: #f5f5f5;
44
+ --color-component-blue: #209cfc;
45
+ --color-dark-lighter: #333333;
46
+ --color-dark-lightest: #444444;
47
+ --color-dark-darkest: #000000;
48
+ --color-dark-darker: #111111;
49
+ --color-dark-darkest: #222222;
50
+ --color-theme-secondary: #9650fb;
51
+ --color-theme-secondary-light: #f6eeff;
52
+ --color-neutral-350: #b4b4b4;
53
+ --text-2xs: 0.7rem;
54
+ --text-3xs: 0.6rem;
55
+ --animate-sparkle: "sparkle 1.5s ease-in-out infinite";
56
+ --animate-slideUp: "slideUp 0.3s cubic-bezier(0.4, 0, 0.2, 1)";
57
+ --animate-fadeBottom: "fadeBottom 0.3s cubic-bezier(0.4, 0, 0.2, 1)";
58
+ --animate-fadeIn: "fadeIn 0.5s ease-in-out";
59
+ --animate-fadeLeft: "fadeLeft 0.8s ease-in-out";
60
+ --animate-fadeRight: "fadeRight 0.8s ease-in-out";
61
+ --animate-bounceDots: "bounceDots .6s infinite alternate";
62
+
63
+ @keyframes sparkle {
64
+ "0%, 100%": {
65
+ opacity: 0.8;
66
+ transform: scale(1);
67
+ }
68
+ "50%": {
69
+ opacity: 1;
70
+ transform: scale(1.3);
71
+ }
72
+ }
73
+ @keyframes slideUp {
74
+ "0%": {
75
+ transform: translateY(70px);
76
+ opacity: 0;
77
+ }
78
+ "100%": {
79
+ transform: translateY(0);
80
+ opacity: 1;
81
+ }
82
+ }
83
+ @keyframes fadeIn {
84
+ "0%": {
85
+ opacity: 0;
86
+ }
87
+ "100%": {
88
+ opacity: 1;
89
+ }
90
+ }
91
+ @keyframes fadeLeft {
92
+ "0%": {
93
+ transform: translateX(-50%);
94
+ opacity: 0;
95
+ }
96
+ "100%": {
97
+ transform: translateX(0);
98
+ opacity: 1;
99
+ }
100
+ }
101
+ @keyframes fadeRight {
102
+ "0%": {
103
+ transform: translateX(50%);
104
+ opacity: 0;
105
+ }
106
+ "100%": {
107
+ transform: translateX(0);
108
+ opacity: 1;
109
+ }
110
+ }
111
+ @keyframes fadeBottom {
112
+ "0%": {
113
+ transform: translateY(50%);
114
+ opacity: 0;
115
+ }
116
+ "100%": {
117
+ transform: translateY(0);
118
+ opacity: 1;
119
+ }
120
+ }
121
+ @keyframes bounceDots {
122
+ "0%": {
123
+ opacity: 1;
124
+ transform: translateY(0);
125
+ }
126
+ "100%": {
127
+ opacity: 0.3;
128
+ transform: translateY(-2px);
129
+ }
130
+ }
131
+ }
132
+
133
+ button {
134
+ cursor: pointer;
135
+ }
136
+
137
+ Override default fonts to ensure Inter is used throughout * {
138
+ font-family:
139
+ var(--font-inter),
140
+ Inter,
141
+ -apple-system,
142
+ BlinkMacSystemFont,
143
+ "Segoe UI",
144
+ "Roboto",
145
+ "Oxygen",
146
+ "Ubuntu",
147
+ "Cantarell",
148
+ "Fira Sans",
149
+ "Droid Sans",
150
+ "Helvetica Neue",
151
+ sans-serif;
152
+ }
153
+
154
+ html,
155
+ body {
156
+ font-family:
157
+ var(--font-inter),
158
+ Inter,
159
+ -apple-system,
160
+ BlinkMacSystemFont,
161
+ "Segoe UI",
162
+ "Roboto",
163
+ "Oxygen",
164
+ "Ubuntu",
165
+ "Cantarell",
166
+ "Fira Sans",
167
+ "Droid Sans",
168
+ "Helvetica Neue",
169
+ sans-serif;
170
+ }
171
+
37
172
  @theme {
38
173
  --font-geist-sans: "GeistSans";
39
174
  --font-geist-mono: "GeistMono";
@@ -125,6 +260,8 @@ body {
125
260
  }
126
261
  }
127
262
 
263
+ /*LEGACY REMOVE*/
264
+
128
265
  :root {
129
266
  --background: oklch(1 0 0);
130
267
  --foreground: oklch(0.145 0 0);
@@ -763,3 +900,166 @@ body {
763
900
  button {
764
901
  cursor: pointer;
765
902
  }
903
+
904
+ /* Animation utilities for popover and other UI components */
905
+ @keyframes fade-in {
906
+ from {
907
+ opacity: 0;
908
+ }
909
+ to {
910
+ opacity: 1;
911
+ }
912
+ }
913
+
914
+ @keyframes fade-out {
915
+ from {
916
+ opacity: 1;
917
+ }
918
+ to {
919
+ opacity: 0;
920
+ }
921
+ }
922
+
923
+ @keyframes zoom-in {
924
+ from {
925
+ opacity: 0;
926
+ transform: scale(0.95);
927
+ }
928
+ to {
929
+ opacity: 1;
930
+ transform: scale(1);
931
+ }
932
+ }
933
+
934
+ @keyframes zoom-out {
935
+ from {
936
+ opacity: 1;
937
+ transform: scale(1);
938
+ }
939
+ to {
940
+ opacity: 0;
941
+ transform: scale(0.95);
942
+ }
943
+ }
944
+
945
+ @keyframes slide-in-from-top {
946
+ from {
947
+ transform: translateY(-2px);
948
+ }
949
+ to {
950
+ transform: translateY(0);
951
+ }
952
+ }
953
+
954
+ @keyframes slide-in-from-bottom {
955
+ from {
956
+ transform: translateY(2px);
957
+ }
958
+ to {
959
+ transform: translateY(0);
960
+ }
961
+ }
962
+
963
+ @keyframes slide-in-from-left {
964
+ from {
965
+ transform: translateX(-2px);
966
+ }
967
+ to {
968
+ transform: translateX(0);
969
+ }
970
+ }
971
+
972
+ @keyframes slide-in-from-right {
973
+ from {
974
+ transform: translateX(2px);
975
+ }
976
+ to {
977
+ transform: translateX(0);
978
+ }
979
+ }
980
+
981
+ /* Animation utility classes */
982
+ .animate-in {
983
+ animation-duration: 150ms;
984
+ animation-fill-mode: both;
985
+ }
986
+
987
+ .animate-out {
988
+ animation-duration: 150ms;
989
+ animation-fill-mode: both;
990
+ }
991
+
992
+ .fade-in-0 {
993
+ animation-name: fade-in;
994
+ }
995
+
996
+ .fade-out-0 {
997
+ animation-name: fade-out;
998
+ }
999
+
1000
+ .zoom-in-95 {
1001
+ animation-name: zoom-in;
1002
+ }
1003
+
1004
+ .zoom-out-95 {
1005
+ animation-name: zoom-out;
1006
+ }
1007
+
1008
+ .slide-in-from-top-2 {
1009
+ animation-name: slide-in-from-top;
1010
+ }
1011
+
1012
+ .slide-in-from-bottom-2 {
1013
+ animation-name: slide-in-from-bottom;
1014
+ }
1015
+
1016
+ .slide-in-from-left-2 {
1017
+ animation-name: slide-in-from-left;
1018
+ }
1019
+
1020
+ .slide-in-from-right-2 {
1021
+ animation-name: slide-in-from-right;
1022
+ }
1023
+
1024
+ /* Data attribute selectors for state-based animations */
1025
+ [data-state="open"].animate-in {
1026
+ animation-duration: 150ms;
1027
+ animation-fill-mode: both;
1028
+ }
1029
+
1030
+ [data-state="closed"].animate-out {
1031
+ animation-duration: 150ms;
1032
+ animation-fill-mode: both;
1033
+ }
1034
+
1035
+ [data-state="open"].fade-in-0 {
1036
+ animation-name: fade-in;
1037
+ }
1038
+
1039
+ [data-state="closed"].fade-out-0 {
1040
+ animation-name: fade-out;
1041
+ }
1042
+
1043
+ [data-state="open"].zoom-in-95 {
1044
+ animation-name: zoom-in;
1045
+ }
1046
+
1047
+ [data-state="closed"].zoom-out-95 {
1048
+ animation-name: zoom-out;
1049
+ }
1050
+
1051
+ [data-side="top"].slide-in-from-bottom-2 {
1052
+ animation-name: slide-in-from-bottom;
1053
+ }
1054
+
1055
+ [data-side="bottom"].slide-in-from-top-2 {
1056
+ animation-name: slide-in-from-top;
1057
+ }
1058
+
1059
+ [data-side="left"].slide-in-from-right-2 {
1060
+ animation-name: slide-in-from-right;
1061
+ }
1062
+
1063
+ [data-side="right"].slide-in-from-left-2 {
1064
+ animation-name: slide-in-from-left;
1065
+ }
@@ -1,49 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEditContext } from "../client/editContext";
3
- import { useRef } from "react";
4
- import { OverlayPanel } from "primereact/overlaypanel";
5
- import { Menu } from "primereact/menu";
6
- export function ActionsMenu({ isMobile }) {
7
- const overlaypanel = useRef(null);
8
- const editContext = useEditContext();
9
- if (!editContext)
10
- return null;
11
- const itemGroups = editContext.configuration.editor.actionsMenu?.itemsFactory(editContext) ||
12
- [];
13
- // Enhance menu items to close overlay panel after clicking
14
- const enhancedItemGroups = itemGroups.map((group) => ({
15
- ...group,
16
- items: group.items.map((item) => {
17
- const originalCommand = item.command;
18
- return {
19
- ...item,
20
- command: (e) => {
21
- if (originalCommand) {
22
- originalCommand(e);
23
- }
24
- overlaypanel.current?.hide();
25
- },
26
- };
27
- }),
28
- }));
29
- if (isMobile) {
30
- console.log("isMobile", itemGroups);
31
- return (_jsx("div", { className: "text-sm text-gray-200", children: itemGroups.map((group, groupIndex) => (_jsx("div", { className: "mb-3 flex flex-row flex-wrap items-center justify-end gap-3", children: group.items
32
- .filter((x) => !x.disabled)
33
- .map((item) => (_jsxs("div", { className: "flex items-center gap-1", onClick: () => {
34
- item.command?.({});
35
- }, children: [typeof item.icon === "string" ? (_jsx("i", { className: item.icon, style: { fontSize: "1rem" } })) : (_jsx(_Fragment, { children: item.icon })), item.label] }, item.id))) }, `group-${group.id || groupIndex}`))) }));
36
- }
37
- return (_jsxs(_Fragment, { children: [_jsx("div", { id: "actions-menu", className: "ml-2 flex h-11 cursor-pointer items-center gap-2 bg-blue-500 px-4 text-white hover:bg-blue-600", onClick: async (ev) => {
38
- overlaypanel.current.toggle(ev);
39
- }, children: _jsx("i", { className: "pi pi-sort-down-fill" }) }), _jsx(OverlayPanel, { dismissable: true, ref: overlaypanel, closeOnEscape: true, children: _jsx("div", { className: "flex flex-col gap-2", children: _jsx(Menu, { model: enhancedItemGroups.reduce((acc, group, index) => {
40
- // Add the group items
41
- acc.push(...group.items);
42
- // Add a separator if not the last group
43
- if (index < enhancedItemGroups.length - 1) {
44
- acc.push({ separator: true });
45
- }
46
- return acc;
47
- }, []) }) }) })] }));
48
- }
49
- //# sourceMappingURL=ActionsMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionsMenu.js","sourceRoot":"","sources":["../../../src/editor/menubar/ActionsMenu.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function SecondaryControls(): import("react/jsx-runtime").JSX.Element;
@@ -1,17 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEditContext } from "../client/editContext";
3
- import { ItemLanguageVersion } from "./ItemLanguageVersion";
4
- import { ActiveUsers } from "./ActiveUsers";
5
- import { ActionsMenu } from "./ActionsMenu";
6
- import { Separator } from "../menubar/Separator";
7
- export function SecondaryControls() {
8
- const editContext = useEditContext();
9
- if (editContext?.isMobile) {
10
- return (_jsxs("div", { className: "flex flex-col items-end gap-4", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Headline, { title: "Current Page" }), _jsx(ItemLanguageVersion, {})] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Headline, { title: "Active Users" }), _jsx(ActiveUsers, {})] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Headline, { title: "Actions" }), _jsx(ActionsMenu, { isMobile: true })] })] }));
11
- }
12
- return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(ItemLanguageVersion, {}), _jsx(Separator, { size: "large" }), _jsx(ActiveUsers, {}), _jsx(ActionsMenu, { isMobile: false })] }));
13
- }
14
- function Headline({ title }) {
15
- return (_jsx("div", { className: "flex flex-col items-end gap-2", children: _jsx("div", { className: "text-sm font-bold text-gray-300", children: title }) }));
16
- }
17
- //# sourceMappingURL=SecondaryControls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SecondaryControls.js","sourceRoot":"","sources":["../../../src/editor/menubar/SecondaryControls.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,IAAI,WAAW,EAAE,QAAQ,EAAE,CAAC;QAC1B,OAAO,CACL,eAAK,SAAS,EAAC,+BAA+B,aAC5C,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,QAAQ,IAAC,KAAK,EAAC,cAAc,GAAG,EACjC,KAAC,mBAAmB,KAAG,IACnB,EACN,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,QAAQ,IAAC,KAAK,EAAC,cAAc,GAAG,EACjC,KAAC,WAAW,KAAG,IACX,EACN,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,QAAQ,IAAC,KAAK,EAAC,SAAS,GAAG,EAC5B,KAAC,WAAW,IAAC,QAAQ,EAAE,IAAI,GAAI,IAC3B,IACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,mBAAmB,KAAG,EACvB,KAAC,SAAS,IAAC,IAAI,EAAC,OAAO,GAAG,EAC1B,KAAC,WAAW,KAAG,EACf,KAAC,WAAW,IAAC,QAAQ,EAAE,KAAK,GAAI,IAC5B,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAqB;IAC5C,OAAO,CACL,cAAK,SAAS,EAAC,+BAA+B,YAC5C,cAAK,SAAS,EAAC,iCAAiC,YAAE,KAAK,GAAO,GAC1D,CACP,CAAC;AACJ,CAAC"}
@@ -1,94 +0,0 @@
1
- import { useEditContext } from "../client/editContext";
2
- import { useRef } from "react";
3
- import { OverlayPanel } from "primereact/overlaypanel";
4
- import { Menu } from "primereact/menu";
5
- import { MenuItemGroup } from "../../config/types";
6
-
7
- export function ActionsMenu({ isMobile }: { isMobile: boolean }) {
8
- const overlaypanel = useRef<OverlayPanel>(null);
9
- const editContext = useEditContext();
10
- if (!editContext) return null;
11
-
12
- const itemGroups: MenuItemGroup[] =
13
- editContext.configuration.editor.actionsMenu?.itemsFactory(editContext) ||
14
- [];
15
-
16
- // Enhance menu items to close overlay panel after clicking
17
- const enhancedItemGroups = itemGroups.map((group) => ({
18
- ...group,
19
- items: group.items.map((item) => {
20
- const originalCommand = item.command;
21
- return {
22
- ...item,
23
- command: (e: any) => {
24
- if (originalCommand) {
25
- originalCommand(e);
26
- }
27
- overlaypanel.current?.hide();
28
- },
29
- };
30
- }),
31
- }));
32
-
33
- if (isMobile) {
34
- console.log("isMobile", itemGroups);
35
- return (
36
- <div className="text-sm text-gray-200">
37
- {itemGroups.map((group, groupIndex) => (
38
- <div
39
- key={`group-${group.id || groupIndex}`}
40
- className="mb-3 flex flex-row flex-wrap items-center justify-end gap-3"
41
- >
42
- {group.items
43
- .filter((x) => !x.disabled)
44
- .map((item) => (
45
- <div
46
- key={item.id}
47
- className="flex items-center gap-1"
48
- onClick={() => {
49
- item.command?.({});
50
- }}
51
- >
52
- {typeof item.icon === "string" ? (
53
- <i className={item.icon} style={{ fontSize: "1rem" }} />
54
- ) : (
55
- <>{item.icon}</>
56
- )}
57
- {item.label}
58
- </div>
59
- ))}
60
- </div>
61
- ))}
62
- </div>
63
- );
64
- }
65
-
66
- return (
67
- <>
68
- <div
69
- id="actions-menu"
70
- className="ml-2 flex h-11 cursor-pointer items-center gap-2 bg-blue-500 px-4 text-white hover:bg-blue-600"
71
- onClick={async (ev) => {
72
- overlaypanel.current!.toggle(ev);
73
- }}
74
- >
75
- <i className="pi pi-sort-down-fill"></i>
76
- </div>
77
- <OverlayPanel dismissable={true} ref={overlaypanel} closeOnEscape>
78
- <div className="flex flex-col gap-2">
79
- <Menu
80
- model={enhancedItemGroups.reduce((acc, group, index) => {
81
- // Add the group items
82
- acc.push(...group.items);
83
- // Add a separator if not the last group
84
- if (index < enhancedItemGroups.length - 1) {
85
- acc.push({ separator: true });
86
- }
87
- return acc;
88
- }, [] as any[])}
89
- />
90
- </div>
91
- </OverlayPanel>
92
- </>
93
- );
94
- }
@@ -1,45 +0,0 @@
1
- import { useEditContext } from "../client/editContext";
2
- import { ItemLanguageVersion } from "./ItemLanguageVersion";
3
- import { ActiveUsers } from "./ActiveUsers";
4
- import { ActionsMenu } from "./ActionsMenu";
5
- import { Separator } from "../menubar/Separator";
6
-
7
- export function SecondaryControls() {
8
- const editContext = useEditContext();
9
-
10
- if (editContext?.isMobile) {
11
- return (
12
- <div className="flex flex-col items-end gap-4">
13
- <div className="flex flex-col gap-2">
14
- <Headline title="Current Page" />
15
- <ItemLanguageVersion />
16
- </div>
17
- <div className="flex flex-col gap-2">
18
- <Headline title="Active Users" />
19
- <ActiveUsers />
20
- </div>
21
- <div className="flex flex-col gap-2">
22
- <Headline title="Actions" />
23
- <ActionsMenu isMobile={true} />
24
- </div>
25
- </div>
26
- );
27
- }
28
-
29
- return (
30
- <div className="flex items-center gap-2">
31
- <ItemLanguageVersion />
32
- <Separator size="large" />
33
- <ActiveUsers />
34
- <ActionsMenu isMobile={false} />
35
- </div>
36
- );
37
- }
38
-
39
- function Headline({ title }: { title: string }) {
40
- return (
41
- <div className="flex flex-col items-end gap-2">
42
- <div className="text-sm font-bold text-gray-300">{title}</div>
43
- </div>
44
- );
45
- }