@silexlabs/silex 3.0.1-alpha.0 → 3.0.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 (323) hide show
  1. package/.env.default +20 -0
  2. package/.silex.js +67 -8
  3. package/LICENSE +661 -203
  4. package/README.md +37 -35
  5. package/dist/client/client/api.d.ts +90 -0
  6. package/dist/client/client/assetUrl.d.ts +54 -0
  7. package/dist/client/client/config.d.ts +102 -0
  8. package/dist/client/client/events.d.ts +23 -0
  9. package/dist/client/client/expose.d.ts +8 -0
  10. package/dist/client/client/grapesjs/LoginDialog.d.ts +15 -0
  11. package/dist/client/client/grapesjs/PublicationManager.d.ts +73 -0
  12. package/dist/client/client/grapesjs/PublicationUi.d.ts +59 -0
  13. package/dist/client/client/grapesjs/blocks.d.ts +1 -0
  14. package/dist/client/client/grapesjs/breadcrumbs.d.ts +1 -0
  15. package/dist/client/client/grapesjs/css-props.d.ts +6 -0
  16. package/dist/client/client/grapesjs/footer.d.ts +2 -0
  17. package/dist/client/client/grapesjs/img.d.ts +6 -0
  18. package/dist/client/client/grapesjs/index.d.ts +9 -0
  19. package/dist/client/client/grapesjs/internal-links.d.ts +1 -0
  20. package/dist/client/client/grapesjs/keymaps.d.ts +123 -0
  21. package/dist/client/client/grapesjs/new-page-dialog.d.ts +2 -0
  22. package/dist/client/client/grapesjs/openImport.d.ts +9 -0
  23. package/dist/client/client/grapesjs/page-panel.d.ts +9 -0
  24. package/dist/client/client/grapesjs/project-bar.d.ts +21 -0
  25. package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
  26. package/dist/client/client/grapesjs/rich-text.d.ts +4 -0
  27. package/dist/client/client/grapesjs/semantic.d.ts +1 -0
  28. package/dist/client/client/grapesjs/settings-sections.d.ts +16 -0
  29. package/dist/client/client/grapesjs/settings.d.ts +4 -0
  30. package/dist/client/client/grapesjs/storage.d.ts +2 -0
  31. package/dist/client/client/grapesjs/symbolDialogs.d.ts +3 -0
  32. package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
  33. package/dist/client/client/index.d.ts +10 -0
  34. package/dist/client/client/publication-transformers.d.ts +42 -0
  35. package/dist/client/client/publish-custom-code-block.d.ts +4 -0
  36. package/dist/client/client/publish-fonts.d.ts +4 -0
  37. package/dist/client/client/utils.d.ts +22 -0
  38. package/dist/client/constants.d.ts +32 -0
  39. package/dist/client/css/admin.css +1114 -328
  40. package/dist/client/css/admin.css.map +1 -0
  41. package/dist/client/grapesjs-filter-styles/dist/index.d.ts +4 -0
  42. package/dist/client/grapesjs-fonts/dist/index.d.ts +4 -0
  43. package/dist/client/grapesjs-fonts/src/commands.d.ts +3 -0
  44. package/dist/client/grapesjs-fonts/src/fonts.d.ts +4 -0
  45. package/dist/client/grapesjs-storage-rate-limit/dist/index.d.ts +4 -0
  46. package/dist/client/grapesjs-ui-suggest-classes/dist/index.d.ts +4 -0
  47. package/dist/client/index.html +3 -2
  48. package/dist/client/js/main.js +356 -131
  49. package/dist/client/js/main.js.LICENSE.txt +15 -1
  50. package/dist/client/page.d.ts +2 -0
  51. package/dist/client/silex-lib/src/ts/client/api.d.ts +90 -0
  52. package/dist/client/silex-lib/src/ts/client/assetUrl.d.ts +54 -0
  53. package/dist/client/silex-lib/src/ts/client/config.d.ts +102 -0
  54. package/dist/client/silex-lib/src/ts/client/events.d.ts +23 -0
  55. package/dist/client/silex-lib/src/ts/client/expose.d.ts +8 -0
  56. package/dist/client/silex-lib/src/ts/client/grapesjs/LoginDialog.d.ts +15 -0
  57. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationManager.d.ts +73 -0
  58. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationUi.d.ts +59 -0
  59. package/dist/client/silex-lib/src/ts/client/grapesjs/blocks.d.ts +1 -0
  60. package/dist/client/silex-lib/src/ts/client/grapesjs/breadcrumbs.d.ts +1 -0
  61. package/dist/client/silex-lib/src/ts/client/grapesjs/css-props.d.ts +6 -0
  62. package/dist/client/silex-lib/src/ts/client/grapesjs/footer.d.ts +2 -0
  63. package/dist/client/silex-lib/src/ts/client/grapesjs/img.d.ts +6 -0
  64. package/dist/client/silex-lib/src/ts/client/grapesjs/index.d.ts +9 -0
  65. package/dist/client/silex-lib/src/ts/client/grapesjs/internal-links.d.ts +1 -0
  66. package/dist/client/silex-lib/src/ts/client/grapesjs/keymaps.d.ts +123 -0
  67. package/dist/client/silex-lib/src/ts/client/grapesjs/new-page-dialog.d.ts +2 -0
  68. package/dist/client/silex-lib/src/ts/client/grapesjs/openImport.d.ts +9 -0
  69. package/dist/client/silex-lib/src/ts/client/grapesjs/page-panel.d.ts +9 -0
  70. package/dist/client/silex-lib/src/ts/client/grapesjs/project-bar.d.ts +21 -0
  71. package/dist/client/silex-lib/src/ts/client/grapesjs/resize-panel.d.ts +1 -0
  72. package/dist/client/silex-lib/src/ts/client/grapesjs/rich-text.d.ts +4 -0
  73. package/dist/client/silex-lib/src/ts/client/grapesjs/semantic.d.ts +1 -0
  74. package/dist/client/silex-lib/src/ts/client/grapesjs/settings-sections.d.ts +16 -0
  75. package/dist/client/silex-lib/src/ts/client/grapesjs/settings.d.ts +4 -0
  76. package/dist/client/silex-lib/src/ts/client/grapesjs/storage.d.ts +2 -0
  77. package/dist/client/silex-lib/src/ts/client/grapesjs/symbolDialogs.d.ts +3 -0
  78. package/dist/client/silex-lib/src/ts/client/grapesjs/view-buttons.d.ts +1 -0
  79. package/dist/client/silex-lib/src/ts/client/index.d.ts +10 -0
  80. package/dist/client/silex-lib/src/ts/client/publication-transformers.d.ts +42 -0
  81. package/dist/client/silex-lib/src/ts/client/publish-custom-code-block.d.ts +4 -0
  82. package/dist/client/silex-lib/src/ts/client/publish-fonts.d.ts +4 -0
  83. package/dist/client/silex-lib/src/ts/client/utils.d.ts +22 -0
  84. package/dist/client/silex-lib/src/ts/constants.d.ts +32 -0
  85. package/dist/client/silex-lib/src/ts/page.d.ts +2 -0
  86. package/dist/client/silex-lib/src/ts/types.d.ts +339 -0
  87. package/dist/client/types.d.ts +339 -0
  88. package/dist/plugins/client/client/events.d.ts +23 -0
  89. package/dist/plugins/client/client/events.js +43 -0
  90. package/dist/plugins/client/client/events.js.map +1 -0
  91. package/dist/plugins/client/plugins/client/template.d.ts +2 -0
  92. package/dist/plugins/client/plugins/client/template.js +234 -0
  93. package/dist/plugins/client/plugins/client/template.js.map +1 -0
  94. package/dist/plugins/client/plugins/client/website-info.d.ts +1 -0
  95. package/dist/plugins/client/plugins/client/website-info.js +72 -0
  96. package/dist/plugins/client/plugins/client/website-info.js.map +1 -0
  97. package/dist/plugins/client/types.d.ts +339 -0
  98. package/dist/plugins/client/types.js +80 -0
  99. package/dist/plugins/client/types.js.map +1 -0
  100. package/dist/plugins/server/constants.d.ts +32 -0
  101. package/dist/plugins/server/constants.js +76 -0
  102. package/dist/plugins/server/constants.js.map +1 -0
  103. package/dist/plugins/server/plugins/server/Cache.d.ts +2 -0
  104. package/dist/plugins/server/plugins/server/Cache.js +36 -0
  105. package/dist/plugins/server/plugins/server/Cache.js.map +1 -0
  106. package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
  107. package/dist/plugins/server/plugins/server/DownloadConnector.js +127 -0
  108. package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
  109. package/dist/plugins/server/plugins/server/FtpConnector.d.ts +86 -0
  110. package/dist/plugins/server/plugins/server/FtpConnector.js +536 -0
  111. package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -0
  112. package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +135 -0
  113. package/dist/plugins/server/plugins/server/GitlabConnector.js +649 -0
  114. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -0
  115. package/dist/plugins/server/plugins/server/GitlabHostingConnector.d.ts +16 -0
  116. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js +209 -0
  117. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js.map +1 -0
  118. package/dist/plugins/server/plugins/server/PublicationOptimizer.d.ts +0 -0
  119. package/dist/plugins/server/plugins/server/PublicationOptimizer.js +14 -0
  120. package/dist/plugins/server/plugins/server/PublicationOptimizer.js.map +1 -0
  121. package/dist/plugins/server/plugins/server/SslPlugin.d.ts +1 -0
  122. package/dist/plugins/server/plugins/server/SslPlugin.js +86 -0
  123. package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -0
  124. package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +8 -0
  125. package/dist/plugins/server/plugins/server/StaticPlugin.js +45 -0
  126. package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -0
  127. package/dist/plugins/server/server/config.d.ts +59 -0
  128. package/dist/plugins/server/server/config.js +181 -0
  129. package/dist/plugins/server/server/config.js.map +1 -0
  130. package/dist/plugins/server/server/connectors/FsHosting.d.ts +14 -0
  131. package/dist/plugins/server/server/connectors/FsHosting.js +66 -0
  132. package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -0
  133. package/dist/plugins/server/server/connectors/FsStorage.d.ts +44 -0
  134. package/dist/plugins/server/server/connectors/FsStorage.js +261 -0
  135. package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -0
  136. package/dist/plugins/server/server/connectors/connectors.d.ts +86 -0
  137. package/dist/plugins/server/server/connectors/connectors.js +126 -0
  138. package/dist/plugins/server/server/connectors/connectors.js.map +1 -0
  139. package/dist/plugins/server/server/events.d.ts +26 -0
  140. package/dist/plugins/server/server/events.js +31 -0
  141. package/dist/plugins/server/server/events.js.map +1 -0
  142. package/dist/plugins/server/server/jobs.d.ts +12 -0
  143. package/dist/plugins/server/server/jobs.js +79 -0
  144. package/dist/plugins/server/server/jobs.js.map +1 -0
  145. package/dist/plugins/server/server/utils/validation.d.ts +7 -0
  146. package/dist/plugins/server/server/utils/validation.js +37 -0
  147. package/dist/plugins/server/server/utils/validation.js.map +1 -0
  148. package/dist/plugins/server/types.d.ts +339 -0
  149. package/dist/plugins/server/types.js +84 -0
  150. package/dist/plugins/server/types.js.map +1 -0
  151. package/dist/server/constants.js +55 -0
  152. package/dist/server/plugins/server/Cache.js +19 -0
  153. package/dist/server/server/api/api.js +20 -0
  154. package/dist/server/server/api/connectorApi.js +334 -0
  155. package/dist/server/server/api/publicationApi.js +106 -0
  156. package/dist/server/server/api/websiteApi.js +315 -0
  157. package/dist/server/server/cli.js +71 -0
  158. package/dist/server/server/config.js +120 -0
  159. package/dist/server/server/connectors/FsHosting.js +47 -0
  160. package/dist/server/server/connectors/FsStorage.js +228 -0
  161. package/dist/server/server/connectors/connectors.js +88 -0
  162. package/dist/server/server/events.js +14 -0
  163. package/dist/server/server/expose.js +27 -0
  164. package/dist/server/server/express.js +46 -0
  165. package/dist/server/server/index.js +94 -0
  166. package/dist/server/server/jobs.js +50 -0
  167. package/dist/server/server/utils/validation.js +14 -0
  168. package/dist/server/types.js +40 -0
  169. package/package.json +99 -49
  170. package/public/assets/download.png +0 -0
  171. package/public/assets/favicon.ico +0 -0
  172. package/public/assets/favicon.png +0 -0
  173. package/public/assets/ftp.png +0 -0
  174. package/public/assets/gitlab.png +0 -0
  175. package/public/assets/gitlab2.png +0 -0
  176. package/public/assets/laptop.png +0 -0
  177. package/public/assets/logo-silex-small.png +0 -0
  178. package/public/silex.js +22 -23
  179. package/src/css/_variables.scss +24 -20
  180. package/src/css/dialog.scss +35 -2
  181. package/src/css/fonts.scss +31 -0
  182. package/src/css/footer.scss +12 -0
  183. package/src/css/grapesjs-light.scss +180 -0
  184. package/src/css/grapesjs-plugins.scss +227 -0
  185. package/src/css/grapesjs.scss +159 -1
  186. package/src/css/index.scss +12 -1
  187. package/src/css/light.scss +7 -0
  188. package/src/css/loader.scss +2 -0
  189. package/src/css/project-bar.scss +32 -16
  190. package/src/css/silex.scss +79 -5
  191. package/src/css/website-info.scss +14 -0
  192. package/src/html/index.pug +3 -3
  193. package/src/html/templates/includes.pug +0 -1
  194. package/src/ts/client/api.ts +156 -0
  195. package/src/ts/client/assetUrl.test.ts +164 -0
  196. package/src/ts/client/assetUrl.ts +254 -0
  197. package/src/ts/client/config.ts +175 -13
  198. package/src/ts/client/events.ts +43 -0
  199. package/src/ts/client/expose.ts +27 -1
  200. package/src/ts/client/grapesjs/LoginDialog.ts +204 -0
  201. package/src/ts/client/grapesjs/PublicationManager.ts +433 -0
  202. package/src/ts/client/grapesjs/PublicationUi.ts +366 -0
  203. package/src/ts/client/grapesjs/blocks.ts +17 -0
  204. package/src/ts/client/grapesjs/breadcrumbs.ts +79 -0
  205. package/src/ts/client/grapesjs/css-props.ts +910 -0
  206. package/src/ts/client/grapesjs/eleventy.ts +30 -7
  207. package/src/ts/client/grapesjs/footer.ts +42 -0
  208. package/src/ts/client/grapesjs/img.ts +147 -0
  209. package/src/ts/client/grapesjs/index.ts +311 -122
  210. package/src/ts/client/grapesjs/internal-links.test.ts +19 -1
  211. package/src/ts/client/grapesjs/internal-links.ts +31 -7
  212. package/src/ts/client/grapesjs/keymaps.ts +207 -0
  213. package/src/ts/client/grapesjs/new-page-dialog.ts +19 -3
  214. package/src/ts/client/grapesjs/openImport.ts +22 -0
  215. package/src/ts/client/grapesjs/page-panel.ts +109 -7
  216. package/src/ts/client/grapesjs/project-bar.ts +133 -72
  217. package/src/ts/client/grapesjs/resize-panel.ts +20 -0
  218. package/src/ts/client/grapesjs/rich-text.ts +38 -13
  219. package/src/ts/client/grapesjs/semantic.ts +20 -3
  220. package/src/ts/client/grapesjs/settings-sections.ts +117 -0
  221. package/src/ts/client/grapesjs/settings.ts +191 -96
  222. package/src/ts/client/grapesjs/storage.ts +187 -0
  223. package/src/ts/client/grapesjs/symbolDialogs.ts +21 -5
  224. package/src/ts/client/grapesjs/view-buttons.ts +42 -0
  225. package/src/ts/client/index.ts +80 -21
  226. package/src/ts/client/publication-transformers.test.ts +207 -0
  227. package/src/ts/client/publication-transformers.ts +280 -0
  228. package/src/ts/client/publish-custom-code-block.ts +31 -0
  229. package/src/ts/client/publish-fonts.ts +36 -0
  230. package/src/ts/client/utils.ts +70 -1
  231. package/src/ts/constants.ts +78 -0
  232. package/src/ts/externs.ts +17 -0
  233. package/src/ts/page.ts +20 -3
  234. package/src/ts/plugins/client/template.ts +246 -0
  235. package/src/ts/plugins/client/website-info.ts +84 -0
  236. package/src/ts/plugins/server/Cache.ts +32 -0
  237. package/src/ts/plugins/server/DownloadConnector.ts +146 -0
  238. package/src/ts/plugins/server/FtpConnector.test.ts +82 -0
  239. package/src/ts/plugins/server/FtpConnector.ts +621 -0
  240. package/src/ts/plugins/server/GitlabConnector.ts +749 -0
  241. package/src/ts/plugins/server/GitlabHostingConnector.ts +215 -0
  242. package/src/ts/plugins/server/PublicationOptimizer.ts +14 -0
  243. package/src/ts/plugins/server/SslPlugin.ts +84 -0
  244. package/src/ts/plugins/server/StaticPlugin.ts +45 -0
  245. package/src/ts/server/api/api.ts +19 -0
  246. package/src/ts/server/api/connectorApi.ts +464 -0
  247. package/src/ts/server/api/publicationApi.ts +159 -0
  248. package/src/ts/server/api/websiteApi.ts +462 -0
  249. package/src/ts/server/cli.ts +48 -14
  250. package/src/ts/server/config.ts +158 -60
  251. package/src/ts/server/connectors/FsHosting.ts +66 -0
  252. package/src/ts/server/connectors/FsStorage.test.ts +51 -0
  253. package/src/ts/server/connectors/FsStorage.ts +290 -0
  254. package/src/ts/server/connectors/connectors.ts +203 -0
  255. package/src/ts/server/events.ts +37 -0
  256. package/src/ts/server/expose.ts +19 -0
  257. package/src/ts/server/express.ts +57 -5
  258. package/src/ts/server/index.ts +79 -16
  259. package/src/ts/server/jobs.test.ts +75 -0
  260. package/src/ts/server/jobs.ts +89 -0
  261. package/src/ts/server/utils/BackwardCompat.ts +546 -528
  262. package/src/ts/server/utils/validation.ts +34 -0
  263. package/src/ts/types.ts +295 -85
  264. package/.dockerignore +0 -5
  265. package/.editorconfig +0 -14
  266. package/.eslintrc.json +0 -43
  267. package/.github/FUNDING.yml +0 -13
  268. package/.github/workflows/docker-hub-publish.yml +0 -36
  269. package/.github/workflows/npm-publish.yml +0 -19
  270. package/.github/workflows/test.yml +0 -26
  271. package/.nvmrc +0 -1
  272. package/.silex/default/.silex.data.json +0 -1
  273. package/CODE_OF_CONDUCT.md +0 -128
  274. package/CONTRIBUTING.md +0 -131
  275. package/Dockerfile +0 -15
  276. package/directus.silex.js +0 -7
  277. package/dist/constants.js +0 -4
  278. package/dist/events.js +0 -5
  279. package/dist/page.js +0 -15
  280. package/dist/server/cli.js +0 -43
  281. package/dist/server/config.js +0 -70
  282. package/dist/server/express.js +0 -18
  283. package/dist/server/index.js +0 -58
  284. package/dist/types.js +0 -34
  285. package/jest.config.js +0 -10
  286. package/logos/logo_by_ceubri/silex-icon-2018@200px.png +0 -0
  287. package/logos/logo_by_ceubri/silex-icon-2018@4x.png +0 -0
  288. package/logos/logo_by_ceubri/silex-logo-2018-white-transp.pdf +0 -0
  289. package/logos/logo_by_ceubri/silex-logo-2018-white.jpg +0 -0
  290. package/logos/logo_by_ceubri/silex-logo-2018-white.pdf +0 -0
  291. package/logos/logo_by_ceubri/silex-logo-2018-white.png +0 -0
  292. package/logos/logo_by_ceubri/silex-logo-2018-white@0.5x.png +0 -0
  293. package/logos/logo_by_ceubri/silex-logo-2018-white@0.75x.png +0 -0
  294. package/logos/logo_by_ceubri/silex-logo-2018-white@4x.jpg +0 -0
  295. package/logos/logo_by_ceubri/silex-logo-2018-white@4x.png +0 -0
  296. package/logos/logo_by_ceubri/silex-logo-2018.ai +5 -2521
  297. package/logos/logo_by_ceubri/silex-logo-2018.jpg +0 -0
  298. package/logos/logo_by_ceubri/silex-logo-2018.pdf +0 -0
  299. package/logos/logo_by_ceubri/silex-logo-2018.png +0 -0
  300. package/logos/logo_by_ceubri/silex-logo-2018@0.5x.png +0 -0
  301. package/logos/logo_by_ceubri/silex-logo-2018@0.75x.png +0 -0
  302. package/logos/logo_by_ceubri/silex-logo-2018@4x.jpg +0 -0
  303. package/logos/logo_by_ceubri/silex-logo-2018@4x.png +0 -0
  304. package/logos/silexlabs.png +0 -0
  305. package/src/example-client-config.js +0 -47
  306. package/src/plugins/AuthPlugin.js +0 -21
  307. package/src/plugins/Cache.js +0 -11
  308. package/src/plugins/DefaultBackend.js +0 -149
  309. package/src/plugins/ExpressPlugin.js +0 -39
  310. package/src/plugins/HooksPlugin.js +0 -58
  311. package/src/plugins/PublishPlugin.js +0 -69
  312. package/src/plugins/SslPlugin.js +0 -66
  313. package/src/plugins/StaticPlugin.js +0 -48
  314. package/src/plugins/WebsitePlugin.js +0 -207
  315. package/src/ts/client/grapesjs/publish.ts +0 -386
  316. package/src/ts/client/grapesjs/template.ts +0 -166
  317. package/src/ts/events.ts +0 -2
  318. package/tsconfig-server-debug.json +0 -19
  319. package/tsconfig-server-release.json +0 -19
  320. package/tsconfig.jest.json +0 -9
  321. package/tsconfig.json +0 -26
  322. package/webpack.config.js +0 -28
  323. package/webpack.debug.config.js +0 -8
package/package.json CHANGED
@@ -1,19 +1,30 @@
1
1
  {
2
2
  "name": "@silexlabs/silex",
3
3
  "description": "Free and easy website builder for everyone.",
4
- "version": "3.0.1-alpha.0",
4
+ "version": "3.0.1",
5
5
  "version:backwardcompat": "3.0.0",
6
6
  "author": {
7
7
  "name": "Alex Hoyau",
8
8
  "url": "https://lexoyo.me/"
9
9
  },
10
- "main": "dist/server/index.js",
10
+ "main": "dist/server/server/index.js",
11
11
  "bin": {
12
- "silex": "./dist/server/cli.js"
12
+ "silex": "./dist/server/server/cli.js"
13
13
  },
14
- "license": "GPL-3.0",
14
+ "files": [
15
+ "dist/",
16
+ "src/",
17
+ "public",
18
+ ".silex.js",
19
+ ".env.default",
20
+ "package.json",
21
+ "package-lock.json",
22
+ "README.md",
23
+ "LICENSE"
24
+ ],
25
+ "license": "AGPL-3.0-or-later",
15
26
  "engines": {
16
- "node": ">=12"
27
+ "node": ">=18"
17
28
  },
18
29
  "watch": {
19
30
  "build:css:debug": {
@@ -30,32 +41,49 @@
30
41
  },
31
42
  "build:client:debug": {
32
43
  "patterns": [
33
- "src/ts/client/"
44
+ "src/ts/client/",
45
+ "src/ts/plugins/client/"
34
46
  ],
35
47
  "extensions": [
36
- "ts",
37
- "js"
48
+ "ts"
38
49
  ]
39
50
  },
40
51
  "build:server:debug": {
41
52
  "patterns": [
42
53
  "src/ts/server/",
43
- "src/plugins/"
54
+ "src/ts/plugins/server/"
44
55
  ],
45
56
  "extensions": [
46
- "ts",
47
- "js"
57
+ "ts"
58
+ ]
59
+ },
60
+ "build:plugins:server": {
61
+ "patterns": [
62
+ "src/ts/plugins/server/"
63
+ ],
64
+ "extensions": [
65
+ "ts"
66
+ ]
67
+ },
68
+ "build:plugins:client": {
69
+ "patterns": [
70
+ "src/ts/plugins/client/"
71
+ ],
72
+ "extensions": [
73
+ "ts"
48
74
  ]
49
75
  }
50
76
  },
51
77
  "scripts": {
52
78
  "release": "",
79
+ "dev": "run-p watch start:debug",
53
80
  "watch": "npm-watch",
54
- "start": "node dist/server/index.js",
55
- "start:debug": "cross-env FS_ROOT=`pwd`/.silex cross-env SILEX_DEBUG=true nodemon --watch dist/server dist/server/index.js",
81
+ "start": "node dist/server/server/",
82
+ "start:debug": "cross-env SILEX_FS_ROOT=`pwd`/silex SILEX_DEBUG=true nodemon --watch dist/server dist/server/server/",
83
+ "start:preview": "http-server silex/hosting -o",
56
84
  "prepublishOnly": "$npm_execpath run lint && $npm_execpath test && $npm_execpath run build",
57
85
  "preversion": "$npm_execpath run prepublishOnly",
58
- "build": "run-s build:css:release build:html build:client:release build:server:release",
86
+ "build": "run-s build:css:release build:html build:client:release build:server:release build:plugins:client build:plugins:server",
59
87
  "webpack": "webpack --config webpack.config.js",
60
88
  "build:css:release": "sass --load-path ../../node_modules --load-path node_modules --no-source-map src/css/index.scss dist/client/css/admin.css",
61
89
  "build:css:debug": "sass --load-path ../../node_modules --load-path node_modules src/css/index.scss dist/client/css/admin.css",
@@ -65,67 +93,89 @@
65
93
  "build:client:debug": "webpack --config webpack.debug.config.js",
66
94
  "build:server:release": "tsc -p tsconfig-server-release.json",
67
95
  "build:server:debug": "SILEX_DEBUG=true tsc -p tsconfig-server-debug.json",
68
- "lint": "eslint 'src/ts/**/*.ts'",
96
+ "build:plugins:server": "tsc -p tsconfig-plugins-server.json",
97
+ "build:plugins:client": "tsc -p tsconfig-plugins-client.json",
98
+ "lint": "eslint \"src/ts/**/*.ts\"",
69
99
  "lint:fix": "$npm_execpath run lint -- --fix",
70
100
  "test": "node --experimental-vm-modules `node_modules jest`/jest/bin/jest.js",
71
- "test:watch": "$npm_execpath test -- --watch"
101
+ "test:watch": "$npm_execpath test -- --watch",
102
+ "prepare": "husky"
72
103
  },
73
104
  "dependencies": {
74
- "@directus/sdk": "10.3.3",
75
- "@silexlabs/grapesjs-directus-storage": "1.0.15",
76
- "@silexlabs/grapesjs-fonts": "1.0.12",
77
- "@silexlabs/grapesjs-loading": "1.0.8",
78
- "@silexlabs/grapesjs-symbols": "1.0.20",
105
+ "@fontsource/ubuntu": "^5.0.13",
106
+ "@fortawesome/fontawesome-free": "6.6.0",
107
+ "@silexlabs/grapesjs-filter-styles": "^1.0.0",
108
+ "@silexlabs/grapesjs-fonts": "^1.0.20",
109
+ "@silexlabs/grapesjs-keymaps-dialog": "^1.0.16",
110
+ "@silexlabs/grapesjs-loading": "1.0.9",
111
+ "@silexlabs/grapesjs-notifications": "^0.0.8",
112
+ "@silexlabs/grapesjs-storage-rate-limit": "^1.0.8",
113
+ "@silexlabs/grapesjs-symbols": "1.0.43",
79
114
  "@silexlabs/grapesjs-ui-suggest-classes": "1.0.23",
80
115
  "@silexlabs/silex-plugins": "1.0.10",
81
- "adm-zip": "0.5.10",
116
+ "@types/archiver": "^6.0.2",
117
+ "adm-zip": "0.5.14",
118
+ "archiver": "^7.0.1",
119
+ "basic-ftp": "^5.0.5",
82
120
  "body-parser": "1.20.2",
83
121
  "cli": "1.0.1",
84
122
  "compression": "1.7.4",
85
123
  "cookie-parser": "1.4.6",
86
- "cookie-session": "2.0.0",
124
+ "cookie-session": "2.1.0",
87
125
  "cors": "2.8.5",
88
126
  "cross-env": "7.0.3",
89
- "express": "4.18.2",
127
+ "crypto": "^1.0.1",
128
+ "dotenv": "^16.4.5",
129
+ "express": "4.19.2",
90
130
  "express-force-ssl": "0.3.2",
91
- "formidable": "2.1.1",
92
- "grapesjs": "0.21.2",
131
+ "formidable": "3.5.1",
132
+ "fs-extra": "^11.2.0",
133
+ "grapesjs": "^0.21.13",
93
134
  "grapesjs-blocks-basic": "1.0.2",
94
135
  "grapesjs-custom-code": "1.0.2",
136
+ "grapesjs-navbar": "^1.0.2",
95
137
  "grapesjs-plugin-forms": "2.0.6",
96
- "grapesjs-style-filter": "1.0.2",
97
- "html-minifier": "4.0.0",
98
- "lit-html": "2.7.4",
138
+ "grapesjs-style-bg": "^2.0.2",
139
+ "grapesjs-style-border": "1.0.4",
140
+ "grapesjs-style-filter": "^1.0.2",
141
+ "html-minifier": "^4.0.0",
142
+ "lit-html": "3.2.1",
99
143
  "mkdirp": "3.0.1",
100
- "node_modules-path": "2.0.7",
144
+ "node_modules-path": "2.0.8",
101
145
  "node-fetch": "2.6.9",
102
146
  "normalize.css": "8.0.1",
147
+ "npm-run-all": "^4.1.5",
103
148
  "object-path": "0.11.8",
104
149
  "promise-sequential": "1.1.1",
105
- "sass": "1.63.6",
106
- "serve-static": "1.15.0"
150
+ "sass": "1.77.8",
151
+ "serve-static": "1.15.0",
152
+ "uuid": "^10.0.0"
107
153
  },
108
154
  "devDependencies": {
109
- "@types/express": "4.17.17",
110
- "@types/jest": "29.5.2",
111
- "@types/node": "20.3.1",
112
- "@typescript-eslint/eslint-plugin": "5.60.0",
113
- "@typescript-eslint/parser": "5.60.0",
114
- "css-loader": "6.8.1",
115
- "eslint": "8.43.0",
155
+ "@commitlint/cli": "^19.6.1",
156
+ "@commitlint/config-conventional": "^19.6.0",
157
+ "@types/express": "4.17.21",
158
+ "@types/jest": "^29.5.12",
159
+ "@types/node": "22.1.0",
160
+ "@typescript-eslint/eslint-plugin": "6.10.0",
161
+ "@typescript-eslint/parser": "6.10.0",
162
+ "css-loader": "7.1.2",
163
+ "dedent": "^1.5.3",
164
+ "eslint": "8.53.0",
116
165
  "file-loader": "6.2.0",
117
- "jest": "29.5.0",
118
- "jest-environment-jsdom": "29.5.0",
166
+ "http-server": "^14.1.1",
167
+ "husky": "^9.1.7",
168
+ "jest": "29.7.0",
169
+ "jest-environment-jsdom": "29.7.0",
119
170
  "livereload": "0.9.3",
120
- "nodemon": "2.0.22",
121
- "npm-run-all": "4.1.5",
122
- "npm-watch": "0.11.0",
171
+ "nodemon": "3.1.4",
172
+ "npm-watch": "0.13.0",
123
173
  "pug-cli": "1.0.0-alpha6",
124
- "style-loader": "3.3.3",
125
- "ts-jest": "29.1.0",
126
- "ts-loader": "9.4.3",
127
- "typescript": "5.1.3",
128
- "webpack": "5.88.0",
174
+ "style-loader": "4.0.0",
175
+ "ts-jest": "29.2.4",
176
+ "ts-loader": "9.5.1",
177
+ "typescript": "5.5.4",
178
+ "webpack": "5.93.0",
129
179
  "webpack-cli": "5.1.4"
130
180
  },
131
181
  "repository": {
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/public/silex.js CHANGED
@@ -1,25 +1,24 @@
1
- // This file is loaded by Silex when the user opens the editor
2
- // Unless you override the default config with the environment variable SILEX_CLIENT_CONFIG or the CLI option --client-config
1
+ /*
2
+ * Silex website builder, free/libre no-code tool for makers.
3
+ * Copyright (c) 2023 lexoyo and Silex Labs foundation
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU Affero General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or any later version.
8
+ *
9
+ * This program is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU Affero General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Affero General Public License
15
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ /**
19
+ * This file is loaded by Silex when the user opens the editor
20
+ * Unless you override the default config with the environment variable SILEX_CLIENT_CONFIG or the CLI option --client-config
21
+ */
22
+
3
23
  export default async function (config) {
4
- // // For example add a GrapesJs plugin like this
5
- // config.editor.plugins.push(plugin)
6
- // config.editor.pluginsOpts[plugin] = {
7
- // }
8
- // // Or like this to override the default options
9
- // // See the docs for the list of options
10
- // return {
11
- // ...config,
12
- // editor: {
13
- // ...config.editor,
14
- // plugins: [
15
- // ...config.editor.plugins,
16
- // plugin,
17
- // ],
18
- // pluginsOpts: {
19
- // ...config.editor.pluginsOpts,
20
- // [plugin]: {
21
- // },
22
- // },
23
- // },
24
- // }
25
24
  }
@@ -1,33 +1,37 @@
1
- // $silexlightergrey: #ddd;
2
- // $silexlightgrey: #535353;
3
- // $silexmediumgrey: #444;
4
- // $silexmediumdarkgrey: #393939;
5
- // $silexdarkgrey: #2f2f2f;
6
- // $silexdarkergrey: #2a2a2a;
7
- // $silexlightblue: #7bc0ff;
8
-
9
- $primaryColor: #444;
1
+ // All colors
2
+ // /!\ Duplicated in the grapesjs/index.ts too => keep in sync
3
+ $primaryColor: #333333;
10
4
  $secondaryColor: #ddd;
11
- $tertiaryColor: #5e85a8;
12
- $quaternaryColor: #7bc0ff;
13
- $darkerPrimaryColor: #363636;
5
+ $tertiaryColor: #8873FE;
6
+ $quaternaryColor: #A291FF;;
7
+ $darkerPrimaryColor: #292929;
14
8
  $lighterPrimaryColor: #575757;
9
+
15
10
  $topBarHeight: 40px;
16
11
  $projectBarWidth: 35px;
17
12
  $projectPanelWidth: 13%;
18
13
  $projectPanelMinWidth: 150px;
19
- $transitionSpeedMedium: .35s;
20
- $transitionSpeedSlow: .5s;
14
+ $viewsPanelWidth: 25%; // 15% is grapesjs default
15
+ $viewsProjectPanelWidth: 13%;
16
+ $footerHeight: 30px;
17
+ $transitionSpeedMedium: .15s;
18
+ $transitionSpeedSlow: .30s;
21
19
  $prefix: 'gjs-';
22
20
  $pn-prefix: '#{$prefix}pn-';
23
21
  $cv-prefix: '#{$prefix}cv-';
24
22
  $z-dialog-inline: 10;
23
+ $z-loader: 10;
24
+ $z-views-options-buttons: 5;
25
+
26
+ $fontFamily: 'Ubuntu', sans-serif;
25
27
 
26
28
  :root {
27
- --primaryColor: #444;
28
- --secondaryColor: #ddd;
29
- --tertiaryColor: #5e85a8;
30
- --quaternaryColor: #7bc0ff;
31
- --darkerPrimaryColor: #363636;
32
- --lighterPrimaryColor: #575757;
29
+ --primaryColor: #{$primaryColor};
30
+ --secondaryColor: #{$secondaryColor};
31
+ --tertiaryColor: #{$tertiaryColor};
32
+ --quaternaryColor: #{$quaternaryColor};
33
+ --darkerPrimaryColor: #{$darkerPrimaryColor};
34
+ --lighterPrimaryColor: #{$lighterPrimaryColor};
35
+ --viewsPanelWidth: #{$viewsPanelWidth};
36
+ --viewsProjectPanelWidth: #{$viewsProjectPanelWidth};
33
37
  }
@@ -18,17 +18,50 @@
18
18
  background-color: variables.$primaryColor;
19
19
  z-index: variables.$z-dialog-inline;
20
20
  border-radius: 3px;
21
+ border: 2px solid variables.$lighterPrimaryColor;
22
+ box-shadow: 0 0 10px 0 variables.$lighterPrimaryColor;
21
23
  display: flex;
22
24
  flex-direction: column;
23
- padding: 10px;
25
+ header {
26
+ padding: 10px;
27
+ border-bottom: 1px solid variables.$lighterPrimaryColor;
28
+ }
24
29
  main {
25
30
  flex-grow: 1;
31
+ padding: 10px;
32
+ max-height: 50vh;
33
+ overflow-y: auto;
26
34
  }
27
35
  footer {
28
- padding: 5px;
36
+ padding: 10px;
29
37
  text-align: right;
38
+ border-top: 1px solid variables.$lighterPrimaryColor;
30
39
  }
31
40
  a {
32
41
  color: variables.$quaternaryColor;
33
42
  }
43
+ header > * {
44
+ margin: 0;
45
+ }
46
+ }
47
+
48
+ .silex-help {
49
+ margin: 10px 0;
50
+ padding: 10px;
51
+ border: 1px solid variables.$lighterPrimaryColor;
52
+ border-radius: 3px;
53
+ background-color: variables.$lighterPrimaryColor;
54
+ color: variables.$secondaryColor;
55
+ font-size: small;
56
+ p {
57
+ margin: 0;
58
+ }
59
+ a {
60
+ color: variables.$quaternaryColor;
61
+ }
62
+ }
63
+
64
+ :focus-visible {
65
+ outline: 2px solid variables.$tertiaryColor;
66
+ outline-offset: 2px;
34
67
  }
@@ -0,0 +1,31 @@
1
+ @use "variables" as *;
2
+ .fonts-dialog {
3
+ .gjs-mdl-dialog {
4
+ width: 100%;
5
+ max-width: unset;
6
+ min-height: 100%;
7
+ display: flex;
8
+ flex-direction: column;
9
+ }
10
+ .gjs-mdl-content {
11
+ flex: 1 1 auto;
12
+ }
13
+ .silex-form__element {
14
+ margin-bottom: 80px;
15
+ }
16
+ .silex-list li {
17
+ border-bottom: none;
18
+ }
19
+ h2 {
20
+ border-radius: 0;
21
+ background-color: transparent;
22
+ }
23
+ footer {
24
+ position: fixed;
25
+ bottom: 0;
26
+ left: 0;
27
+ right: 0;
28
+ padding: 20px !important;
29
+ background-color: $primaryColor;
30
+ }
31
+ }
@@ -0,0 +1,12 @@
1
+ @use "variables" as *;
2
+ // Footer is sticky at the bottom of the stage
3
+ .gjs-pn-footer {
4
+ bottom: 0;
5
+ left: $projectBarWidth;
6
+ right: var(--viewsPanelWidth);
7
+ display: flex;
8
+ justify-content: space-between;
9
+ align-items: center;
10
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
11
+ height: $footerHeight;
12
+ }
@@ -0,0 +1,180 @@
1
+ // Comes from gramateria
2
+ /* Overwrite GrapeJS css */
3
+
4
+ .gjs-cm-editor#gjs-cm-css #gjs-cm-title,
5
+ .gjs-cm-editor#gjs-cm-htmlmixed #gjs-cm-title,
6
+ .gjs-two-color,
7
+ .gjs-four-color,
8
+ .gjs-color-warn, .gjs-sm-sector .gjs-sm-field input, .gjs-clm-tags .gjs-sm-field input, .gjs-sm-sector .gjs-clm-field input, .gjs-clm-tags .gjs-clm-field input, .gjs-sm-sector .gjs-sm-field select, .gjs-clm-tags .gjs-sm-field select, .gjs-sm-sector .gjs-clm-field select, .gjs-clm-tags .gjs-clm-field select {
9
+ color: #464973;
10
+ }
11
+
12
+ .gjs-one-bg {
13
+ background-color: #f6f7f9;
14
+ }
15
+
16
+ .gjs-block:hover {
17
+ box-shadow: 0 3px 4px 0 rgba(204, 210, 251, 0.42);
18
+ }
19
+
20
+ .gjs-category-title,
21
+ .gjs-sm-sector .gjs-sm-title,
22
+ .gjs-clm-tags .gjs-sm-title,
23
+ .gjs-block-category .gjs-title,
24
+ .gjs-layer-title {
25
+ background-color: #eee;
26
+ border-bottom: 1px solid rgba(121, 121, 121, 0.25);
27
+ }
28
+
29
+ /* text editor color */
30
+
31
+
32
+ .gjs-cm-editor #gjs-cm-title {
33
+ background-color: rgba(164, 190, 241, 0.2);
34
+ }
35
+
36
+ .cm-s-hopscotch.CodeMirror {
37
+ /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#2f3c54+0,414251+100 */
38
+ background: #2f3c54;
39
+ /* Old browsers */
40
+ background: -moz-linear-gradient(-45deg, #2f3c54 0%, #414251 100%);
41
+ /* FF3.6-15 */
42
+ background: -webkit-linear-gradient(-45deg, #2f3c54 0%, #414251 100%);
43
+ /* Chrome10-25,Safari5.1-6 */
44
+ background: linear-gradient(135deg, #2f3c54 0%, #414251 100%);
45
+ /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
46
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2f3c54', endColorstr='#414251', GradientType=1);
47
+ /* IE6-9 fallback on horizontal gradient */
48
+ color: #999;
49
+ }
50
+
51
+ .cm-s-hopscotch .CodeMirror-gutters {
52
+ background: #232c3c;
53
+ }
54
+
55
+
56
+ /* class name */
57
+ .gjs-clm-tags #gjs-clm-close,
58
+ .gjs-clm-tags #gjs-clm-checkbox {
59
+ color: #444;
60
+ }
61
+
62
+ .gjs-three-bg {
63
+ background-color: #f6f7f9;
64
+ }
65
+
66
+ /* select box */
67
+ .gjs-field-arrow-u {
68
+ border-bottom: 4px solid #444;
69
+ }
70
+
71
+ .gjs-field-arrow-d {
72
+ border-top: 4px solid #444;
73
+ }
74
+
75
+
76
+ .gjs-field .gjs-d-s-arrow {
77
+ border-top: 4px solid rgb(68, 68, 68);
78
+ }
79
+
80
+ .gjs-pn-btn.fa:before,
81
+ .gjs-block.fa:before {
82
+ color: #262c42;
83
+ }
84
+
85
+ .gjs-block {
86
+ background: #fff;
87
+ }
88
+
89
+ .gjs-blocks-c {
90
+ padding-bottom: 6px;
91
+ }
92
+
93
+ .gjs-field select.gjs-devices {
94
+ padding: 2px;
95
+ }
96
+
97
+ .gjs-color-warn,
98
+ .gjs-sm-sector .gjs-sm-field input,
99
+ .gjs-clm-tags .gjs-sm-field input,
100
+ .gjs-sm-sector .gjs-clm-field input,
101
+ .gjs-clm-tags .gjs-clm-field input,
102
+ .gjs-sm-sector .gjs-sm-field select,
103
+ .gjs-clm-tags .gjs-sm-field select,
104
+ .gjs-sm-sector .gjs-clm-field select,
105
+ .gjs-clm-tags .gjs-clm-field select {
106
+ color: #000;
107
+ }
108
+
109
+ #gjs-mdl-c .header-menus {
110
+ justify-content: space-between;
111
+ display: flex;
112
+ align-items: center;
113
+ }
114
+
115
+ label.gjs-import-file {
116
+ padding:10px 30px;
117
+ border:1px dashed #ddd;
118
+ font-size:13px;
119
+ background:#fff;
120
+ }
121
+
122
+ label.gjs-import-file:hover{
123
+ cursor:pointer;
124
+ border-color:var(--theme-color);
125
+ }
126
+
127
+ .CodeMirror {
128
+ height: 400px;
129
+ }
130
+
131
+ button.exportgram {
132
+ margin-left: 10px;
133
+ padding: 4px 10px;
134
+ background: #444;
135
+ color: #fff;
136
+ border-radius: 20px;
137
+ }
138
+
139
+ .html-wrapper,
140
+ .css-wrapper {
141
+ width: 49%;
142
+ float: left;
143
+ }
144
+
145
+ .html-wrapper h4,
146
+ .css-wrapper h4 {
147
+ margin: 4px 0 4px;
148
+ }
149
+
150
+ .gjs-mdl-dialog {
151
+ max-width: none;
152
+ }
153
+
154
+ .clear-fix {
155
+ width: 100%;
156
+ clear: both;
157
+ }
158
+
159
+ .css-wrapper {
160
+ margin-left: 2%;
161
+ }
162
+
163
+
164
+
165
+ .gjs-sm-sectors .gjs-radio-items .gjs-radio-item {
166
+ background: #585858;
167
+ }
168
+
169
+ label.gjs-radio-item-label,
170
+ .gjs-sm-sectors .gjs-radio-item .fa {
171
+ color: #fff;
172
+ }
173
+
174
+ .gjs-four-color-h:hover {
175
+ color: var(--theme-color);
176
+ }
177
+
178
+ .iframe-wrapper{
179
+ padding-bottom:30px;
180
+ }