@silexlabs/silex 3.0.1-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 (250) hide show
  1. package/.env.default +3 -2
  2. package/.silex.js +39 -1
  3. package/README.md +37 -35
  4. package/dist/client/client/api.d.ts +8 -1
  5. package/dist/client/client/assetUrl.d.ts +54 -0
  6. package/dist/client/client/config.d.ts +60 -1
  7. package/dist/client/client/events.d.ts +19 -10
  8. package/dist/client/client/grapesjs/PublicationManager.d.ts +6 -8
  9. package/dist/client/client/grapesjs/PublicationUi.d.ts +8 -10
  10. package/dist/client/client/grapesjs/breadcrumbs.d.ts +1 -0
  11. package/dist/client/client/grapesjs/css-props.d.ts +6 -0
  12. package/dist/client/client/grapesjs/footer.d.ts +2 -0
  13. package/dist/client/client/grapesjs/img.d.ts +6 -0
  14. package/dist/client/client/grapesjs/index.d.ts +6 -2
  15. package/dist/client/client/grapesjs/internal-links.d.ts +1 -1
  16. package/dist/client/client/grapesjs/keymaps.d.ts +123 -0
  17. package/dist/client/client/grapesjs/new-page-dialog.d.ts +1 -1
  18. package/dist/client/client/grapesjs/page-panel.d.ts +7 -1
  19. package/dist/client/client/grapesjs/project-bar.d.ts +20 -0
  20. package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
  21. package/dist/client/client/grapesjs/rich-text.d.ts +4 -1
  22. package/dist/client/client/grapesjs/semantic.d.ts +1 -1
  23. package/dist/client/client/grapesjs/settings-sections.d.ts +16 -0
  24. package/dist/client/client/grapesjs/settings.d.ts +3 -1
  25. package/dist/client/client/grapesjs/storage.d.ts +1 -0
  26. package/dist/client/client/grapesjs/symbolDialogs.d.ts +1 -1
  27. package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
  28. package/dist/client/client/index.d.ts +5 -0
  29. package/dist/client/client/publication-transformers.d.ts +42 -0
  30. package/dist/client/client/publish-custom-code-block.d.ts +4 -0
  31. package/dist/client/client/publish-fonts.d.ts +4 -0
  32. package/dist/client/client/utils.d.ts +22 -1
  33. package/dist/client/constants.d.ts +3 -0
  34. package/dist/client/css/admin.css +1107 -411
  35. package/dist/client/css/admin.css.map +1 -0
  36. package/dist/client/grapesjs-filter-styles/dist/index.d.ts +4 -0
  37. package/dist/client/grapesjs-fonts/dist/index.d.ts +4 -0
  38. package/dist/client/grapesjs-fonts/src/commands.d.ts +3 -0
  39. package/dist/client/grapesjs-fonts/src/fonts.d.ts +4 -0
  40. package/dist/client/grapesjs-storage-rate-limit/dist/index.d.ts +4 -0
  41. package/dist/client/grapesjs-ui-suggest-classes/dist/index.d.ts +4 -0
  42. package/dist/client/index.html +3 -2
  43. package/dist/client/js/main.js +305 -170
  44. package/dist/client/js/main.js.LICENSE.txt +21 -1
  45. package/dist/client/page.d.ts +1 -1
  46. package/dist/client/silex-lib/src/ts/client/api.d.ts +90 -0
  47. package/dist/client/silex-lib/src/ts/client/assetUrl.d.ts +54 -0
  48. package/dist/client/silex-lib/src/ts/client/config.d.ts +102 -0
  49. package/dist/client/silex-lib/src/ts/client/events.d.ts +23 -0
  50. package/dist/client/silex-lib/src/ts/client/expose.d.ts +8 -0
  51. package/dist/client/silex-lib/src/ts/client/grapesjs/LoginDialog.d.ts +15 -0
  52. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationManager.d.ts +73 -0
  53. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationUi.d.ts +59 -0
  54. package/dist/client/silex-lib/src/ts/client/grapesjs/blocks.d.ts +1 -0
  55. package/dist/client/silex-lib/src/ts/client/grapesjs/breadcrumbs.d.ts +1 -0
  56. package/dist/client/silex-lib/src/ts/client/grapesjs/css-props.d.ts +6 -0
  57. package/dist/client/silex-lib/src/ts/client/grapesjs/footer.d.ts +2 -0
  58. package/dist/client/silex-lib/src/ts/client/grapesjs/img.d.ts +6 -0
  59. package/dist/client/silex-lib/src/ts/client/grapesjs/index.d.ts +9 -0
  60. package/dist/client/silex-lib/src/ts/client/grapesjs/internal-links.d.ts +1 -0
  61. package/dist/client/silex-lib/src/ts/client/grapesjs/keymaps.d.ts +123 -0
  62. package/dist/client/silex-lib/src/ts/client/grapesjs/new-page-dialog.d.ts +2 -0
  63. package/dist/client/silex-lib/src/ts/client/grapesjs/openImport.d.ts +9 -0
  64. package/dist/client/silex-lib/src/ts/client/grapesjs/page-panel.d.ts +9 -0
  65. package/dist/client/silex-lib/src/ts/client/grapesjs/project-bar.d.ts +21 -0
  66. package/dist/client/silex-lib/src/ts/client/grapesjs/resize-panel.d.ts +1 -0
  67. package/dist/client/silex-lib/src/ts/client/grapesjs/rich-text.d.ts +4 -0
  68. package/dist/client/silex-lib/src/ts/client/grapesjs/semantic.d.ts +1 -0
  69. package/dist/client/silex-lib/src/ts/client/grapesjs/settings-sections.d.ts +16 -0
  70. package/dist/client/silex-lib/src/ts/client/grapesjs/settings.d.ts +4 -0
  71. package/dist/client/silex-lib/src/ts/client/grapesjs/storage.d.ts +2 -0
  72. package/dist/client/silex-lib/src/ts/client/grapesjs/symbolDialogs.d.ts +3 -0
  73. package/dist/client/silex-lib/src/ts/client/grapesjs/view-buttons.d.ts +1 -0
  74. package/dist/client/silex-lib/src/ts/client/index.d.ts +10 -0
  75. package/dist/client/silex-lib/src/ts/client/publication-transformers.d.ts +42 -0
  76. package/dist/client/silex-lib/src/ts/client/publish-custom-code-block.d.ts +4 -0
  77. package/dist/client/silex-lib/src/ts/client/publish-fonts.d.ts +4 -0
  78. package/dist/client/silex-lib/src/ts/client/utils.d.ts +22 -0
  79. package/dist/client/silex-lib/src/ts/constants.d.ts +32 -0
  80. package/dist/client/silex-lib/src/ts/page.d.ts +2 -0
  81. package/dist/client/silex-lib/src/ts/types.d.ts +339 -0
  82. package/dist/client/types.d.ts +59 -35
  83. package/dist/plugins/client/client/events.d.ts +19 -10
  84. package/dist/plugins/client/client/events.js +11 -0
  85. package/dist/plugins/client/client/events.js.map +1 -1
  86. package/dist/plugins/client/plugins/client/template.js +119 -71
  87. package/dist/plugins/client/plugins/client/template.js.map +1 -1
  88. package/dist/plugins/client/plugins/client/website-info.d.ts +1 -0
  89. package/dist/plugins/client/plugins/client/website-info.js +72 -0
  90. package/dist/plugins/client/plugins/client/website-info.js.map +1 -0
  91. package/dist/plugins/client/types.d.ts +59 -35
  92. package/dist/plugins/client/types.js +23 -0
  93. package/dist/plugins/client/types.js.map +1 -1
  94. package/dist/plugins/server/constants.d.ts +3 -0
  95. package/dist/plugins/server/constants.js +28 -1
  96. package/dist/plugins/server/constants.js.map +1 -1
  97. package/dist/plugins/server/plugins/server/Cache.js +9 -5
  98. package/dist/plugins/server/plugins/server/Cache.js.map +1 -1
  99. package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
  100. package/dist/plugins/server/plugins/server/DownloadConnector.js +127 -0
  101. package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
  102. package/dist/plugins/server/plugins/server/FtpConnector.d.ts +5 -2
  103. package/dist/plugins/server/plugins/server/FtpConnector.js +38 -23
  104. package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -1
  105. package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +63 -9
  106. package/dist/plugins/server/plugins/server/GitlabConnector.js +367 -91
  107. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -1
  108. package/dist/plugins/server/plugins/server/GitlabHostingConnector.d.ts +16 -0
  109. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js +209 -0
  110. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js.map +1 -0
  111. package/dist/plugins/server/plugins/server/SslPlugin.js +6 -6
  112. package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -1
  113. package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +8 -1
  114. package/dist/plugins/server/plugins/server/StaticPlugin.js +5 -31
  115. package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -1
  116. package/dist/plugins/server/server/config.js +8 -9
  117. package/dist/plugins/server/server/config.js.map +1 -1
  118. package/dist/plugins/server/server/connectors/FsHosting.d.ts +3 -2
  119. package/dist/plugins/server/server/connectors/FsHosting.js +18 -7
  120. package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -1
  121. package/dist/plugins/server/server/connectors/FsStorage.d.ts +3 -1
  122. package/dist/plugins/server/server/connectors/FsStorage.js +35 -28
  123. package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -1
  124. package/dist/plugins/server/server/connectors/connectors.d.ts +7 -7
  125. package/dist/plugins/server/server/connectors/connectors.js +6 -7
  126. package/dist/plugins/server/server/connectors/connectors.js.map +1 -1
  127. package/dist/plugins/server/server/events.js +16 -0
  128. package/dist/plugins/server/server/events.js.map +1 -1
  129. package/dist/plugins/server/server/jobs.d.ts +6 -0
  130. package/dist/plugins/server/server/jobs.js +12 -8
  131. package/dist/plugins/server/server/jobs.js.map +1 -1
  132. package/dist/plugins/server/server/utils/validation.js +1 -2
  133. package/dist/plugins/server/server/utils/validation.js.map +1 -1
  134. package/dist/plugins/server/types.d.ts +59 -35
  135. package/dist/plugins/server/types.js +24 -1
  136. package/dist/plugins/server/types.js.map +1 -1
  137. package/dist/server/constants.js +27 -1
  138. package/dist/server/plugins/server/Cache.js +9 -5
  139. package/dist/server/server/api/api.js +1 -1
  140. package/dist/server/server/api/connectorApi.js +154 -25
  141. package/dist/server/server/api/publicationApi.js +17 -25
  142. package/dist/server/server/api/websiteApi.js +30 -8
  143. package/dist/server/server/cli.js +9 -6
  144. package/dist/server/server/config.js +8 -9
  145. package/dist/server/server/connectors/FsHosting.js +17 -7
  146. package/dist/server/server/connectors/FsStorage.js +34 -28
  147. package/dist/server/server/connectors/connectors.js +6 -7
  148. package/dist/server/server/express.js +4 -5
  149. package/dist/server/server/index.js +5 -1
  150. package/dist/server/server/jobs.js +11 -8
  151. package/dist/server/server/utils/validation.js +1 -2
  152. package/dist/server/types.js +13 -1
  153. package/package.json +56 -42
  154. package/public/assets/download.png +0 -0
  155. package/public/assets/favicon.ico +0 -0
  156. package/public/assets/favicon.png +0 -0
  157. package/public/assets/ftp.png +0 -0
  158. package/public/assets/gitlab.png +0 -0
  159. package/public/assets/gitlab2.png +0 -0
  160. package/public/assets/laptop.png +0 -0
  161. package/public/assets/logo-silex-small.png +0 -0
  162. package/public/silex.js +5 -23
  163. package/src/css/_variables.scss +23 -20
  164. package/src/css/dialog.scss +27 -1
  165. package/src/css/fonts.scss +31 -0
  166. package/src/css/footer.scss +12 -0
  167. package/src/css/grapesjs-light.scss +180 -0
  168. package/src/css/grapesjs-plugins.scss +227 -0
  169. package/src/css/grapesjs.scss +84 -10
  170. package/src/css/index.scss +12 -1
  171. package/src/css/light.scss +7 -0
  172. package/src/css/project-bar.scss +32 -16
  173. package/src/css/silex.scss +79 -5
  174. package/src/css/website-info.scss +14 -0
  175. package/src/html/index.pug +3 -3
  176. package/src/ts/client/api.ts +38 -14
  177. package/src/ts/client/assetUrl.test.ts +164 -0
  178. package/src/ts/client/assetUrl.ts +254 -0
  179. package/src/ts/client/config.ts +133 -5
  180. package/src/ts/client/events.ts +21 -9
  181. package/src/ts/client/grapesjs/LoginDialog.ts +4 -2
  182. package/src/ts/client/grapesjs/PublicationManager.ts +180 -54
  183. package/src/ts/client/grapesjs/PublicationUi.ts +122 -86
  184. package/src/ts/client/grapesjs/breadcrumbs.ts +79 -0
  185. package/src/ts/client/grapesjs/css-props.ts +910 -0
  186. package/src/ts/client/grapesjs/eleventy.ts +11 -8
  187. package/{dist/plugins/client/page.js → src/ts/client/grapesjs/footer.ts} +24 -13
  188. package/src/ts/client/grapesjs/img.ts +147 -0
  189. package/src/ts/client/grapesjs/index.ts +234 -52
  190. package/src/ts/client/grapesjs/internal-links.test.ts +2 -1
  191. package/src/ts/client/grapesjs/internal-links.ts +14 -7
  192. package/src/ts/client/grapesjs/keymaps.ts +207 -0
  193. package/src/ts/client/grapesjs/new-page-dialog.ts +2 -3
  194. package/src/ts/client/grapesjs/page-panel.ts +92 -7
  195. package/src/ts/client/grapesjs/project-bar.ts +116 -72
  196. package/src/ts/client/grapesjs/resize-panel.ts +20 -0
  197. package/src/ts/client/grapesjs/rich-text.ts +21 -13
  198. package/src/ts/client/grapesjs/semantic.ts +3 -3
  199. package/src/ts/client/grapesjs/settings-sections.ts +117 -0
  200. package/src/ts/client/grapesjs/settings.ts +174 -96
  201. package/src/ts/client/grapesjs/storage.ts +98 -33
  202. package/src/ts/client/grapesjs/symbolDialogs.ts +3 -4
  203. package/src/ts/{plugins/server/AuthPlugin.ts → client/grapesjs/view-buttons.ts} +23 -19
  204. package/src/ts/client/index.ts +35 -16
  205. package/src/ts/client/publication-transformers.test.ts +207 -0
  206. package/src/ts/client/publication-transformers.ts +280 -0
  207. package/{dist/plugins/client/client/utils.js → src/ts/client/publish-custom-code-block.ts} +14 -8
  208. package/src/ts/client/publish-fonts.ts +36 -0
  209. package/src/ts/client/utils.ts +53 -1
  210. package/src/ts/constants.ts +31 -0
  211. package/src/ts/page.ts +2 -2
  212. package/src/ts/plugins/client/template.ts +125 -75
  213. package/src/ts/plugins/client/website-info.ts +84 -0
  214. package/src/ts/plugins/server/Cache.ts +6 -2
  215. package/src/ts/plugins/server/DownloadConnector.ts +146 -0
  216. package/src/ts/plugins/server/FtpConnector.ts +47 -21
  217. package/src/ts/plugins/server/GitlabConnector.ts +423 -108
  218. package/src/ts/plugins/server/GitlabHostingConnector.ts +215 -0
  219. package/src/ts/plugins/server/SslPlugin.ts +5 -5
  220. package/src/ts/plugins/server/StaticPlugin.ts +3 -30
  221. package/src/ts/server/api/connectorApi.ts +165 -28
  222. package/src/ts/server/api/publicationApi.ts +17 -24
  223. package/src/ts/server/api/websiteApi.ts +57 -14
  224. package/src/ts/server/cli.ts +7 -5
  225. package/src/ts/server/config.ts +9 -10
  226. package/src/ts/server/connectors/FsHosting.ts +14 -8
  227. package/src/ts/server/connectors/FsStorage.ts +40 -7
  228. package/src/ts/server/connectors/connectors.ts +8 -6
  229. package/src/ts/server/events.ts +17 -0
  230. package/src/ts/server/express.ts +2 -2
  231. package/src/ts/server/index.ts +6 -0
  232. package/src/ts/server/jobs.ts +14 -2
  233. package/src/ts/server/utils/BackwardCompat.ts +530 -529
  234. package/src/ts/types.ts +78 -34
  235. package/dist/plugins/client/client/utils.d.ts +0 -1
  236. package/dist/plugins/client/client/utils.js.map +0 -1
  237. package/dist/plugins/client/page.d.ts +0 -2
  238. package/dist/plugins/client/page.js.map +0 -1
  239. package/dist/plugins/client/plugins/client/publicationRenderer.d.ts +0 -2
  240. package/dist/plugins/client/plugins/client/publicationRenderer.js +0 -128
  241. package/dist/plugins/client/plugins/client/publicationRenderer.js.map +0 -1
  242. package/dist/plugins/server/plugins/server/AuthPlugin.d.ts +0 -1
  243. package/dist/plugins/server/plugins/server/AuthPlugin.js +0 -38
  244. package/dist/plugins/server/plugins/server/AuthPlugin.js.map +0 -1
  245. package/dist/plugins/server/plugins/server/HooksPlugin.d.ts +0 -7
  246. package/dist/plugins/server/plugins/server/HooksPlugin.js +0 -74
  247. package/dist/plugins/server/plugins/server/HooksPlugin.js.map +0 -1
  248. package/src/example-client-config.js +0 -64
  249. package/src/ts/plugins/client/publicationRenderer.ts +0 -128
  250. package/src/ts/plugins/server/HooksPlugin.ts +0 -76
@@ -1,29 +1,39 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.FsHosting = void 0;
7
+ const promises_1 = __importDefault(require("fs/promises"));
4
8
  const path_1 = require("path");
5
- const jobs_1 = require("../jobs");
6
9
  const FsStorage_1 = require("./FsStorage");
7
10
  const types_1 = require("../../types");
8
11
  class FsHosting extends FsStorage_1.FsStorage {
9
12
  connectorId = 'fs-hosting';
10
13
  displayName = 'File system hosting';
11
- icon = 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202L6%2022%2018%2022%2018%207%2012%202%206%202Z%22%3E%3C%2Fpath%3E%3Cpath%20d%3D%22M18%202L12%202%2012%208%2018%208%2018%202Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E';
12
14
  connectorType = types_1.ConnectorType.HOSTING;
13
- async publish(session, id, files) {
14
- const job = (0, jobs_1.startJob)(`Publishing to ${this.displayName}`);
15
+ async initFs() {
16
+ const stat = await promises_1.default.stat(this.options.path).catch(() => null);
17
+ if (!stat) {
18
+ await promises_1.default.mkdir((0, path_1.join)(this.options.path, 'assets'), { recursive: true });
19
+ await promises_1.default.mkdir((0, path_1.join)(this.options.path, 'css'), { recursive: true });
20
+ console.info(`> [FsHosting] Created folders assets/ and css/ in ${this.options.path}`);
21
+ }
22
+ }
23
+ async publish(session, id, files, { startJob, jobSuccess, jobError }) {
24
+ const job = startJob(`Publishing to ${this.displayName}`);
15
25
  job.logs = [[`Publishing to ${this.displayName}`]];
16
26
  job.errors = [[]];
17
- this.writeAssets(session, id, files, async ({ status, message }) => {
27
+ await this.write(session, '', files, '', async ({ status, message }) => {
18
28
  job.status = status;
19
29
  job.message = message;
20
30
  job.logs[0].push(message);
21
31
  if (status === types_1.JobStatus.SUCCESS) {
22
- (0, jobs_1.jobSuccess)(job.jobId, message);
32
+ jobSuccess(job.jobId, message);
23
33
  }
24
34
  else if (status === types_1.JobStatus.ERROR) {
25
35
  job.errors[0].push(message);
26
- (0, jobs_1.jobError)(job.jobId, message);
36
+ jobError(job.jobId, message);
27
37
  }
28
38
  });
29
39
  return job;
@@ -1,30 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
6
  exports.FsStorage = void 0;
27
- const promises_1 = __importStar(require("fs/promises"));
7
+ const promises_1 = __importDefault(require("fs/promises"));
28
8
  const fs_1 = require("fs");
29
9
  const connectors_1 = require("./connectors");
30
10
  const path_1 = require("path");
@@ -36,10 +16,21 @@ const stream_1 = require("stream");
36
16
  const uuid_1 = require("uuid");
37
17
  if (!globalThis.__dirname) {
38
18
  globalThis.__dirname = (0, path_1.dirname)(process.cwd() + '/src/ts/server/connectors/FsStorage.ts');
39
- console.log('Redefining __dirname', globalThis.__dirname);
19
+ console.info('Redefining __dirname', globalThis.__dirname);
20
+ }
21
+ async function copyDir(src, dest) {
22
+ await promises_1.default.mkdir(dest, { recursive: true });
23
+ const entries = await promises_1.default.readdir(src, { withFileTypes: true });
24
+ for (const entry of entries) {
25
+ const srcPath = (0, path_1.join)(src, entry.name);
26
+ const destPath = (0, path_1.join)(dest, entry.name);
27
+ entry.isDirectory() ?
28
+ await copyDir(srcPath, destPath) :
29
+ await promises_1.default.copyFile(srcPath, destPath);
30
+ }
40
31
  }
41
32
  const USER_ICON = 'data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' height=\'1em\' viewBox=\'0 0 448 512\'%3E%3Cpath d=\'M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464H398.7c-8.9-63.3-63.3-112-129-112H178.3c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3z\'/%3E%3C/svg%3E';
42
- const FILE_ICON = 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202L6%2022%2018%2022%2018%207%2012%202%206%202Z%22%3E%3C%2Fpath%3E%3Cpath%20d%3D%22M18%202L12%202%2012%208%2018%208%2018%202Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E';
33
+ const FILE_ICON = '/assets/laptop.png';
43
34
  class FsStorage {
44
35
  connectorId = 'fs-storage';
45
36
  displayName = 'File system storage';
@@ -64,6 +55,7 @@ class FsStorage {
64
55
  await promises_1.default.mkdir((0, path_1.join)(this.options.path, id, this.options.assetsFolder), { recursive: true });
65
56
  await this.setWebsiteMeta({}, id, { name: 'Default website', connectorUserSettings: {} });
66
57
  await this.updateWebsite({}, id, types_1.defaultWebsiteData);
58
+ console.info(`> [FsStorage] Created ${id} in ${this.options.path}`);
67
59
  }
68
60
  }
69
61
  updateStatus(filesStatuses, status, statusCbk) {
@@ -110,7 +102,7 @@ class FsStorage {
110
102
  }
111
103
  async getWebsiteMeta(session, id) {
112
104
  const websiteId = (0, validation_1.requiredParam)(id, 'website id');
113
- const fileStat = await (0, promises_1.stat)((0, path_1.join)(this.options.path, websiteId));
105
+ const fileStat = await promises_1.default.stat((0, path_1.join)(this.options.path, websiteId));
114
106
  const path = (0, path_1.join)(this.options.path, websiteId, constants_1.WEBSITE_META_DATA_FILE);
115
107
  const content = await promises_1.default.readFile(path);
116
108
  const meta = await JSON.parse(content.toString());
@@ -146,6 +138,17 @@ class FsStorage {
146
138
  const path = (0, path_1.join)(this.options.path, id);
147
139
  return promises_1.default.rmdir(path, { recursive: true });
148
140
  }
141
+ async duplicateWebsite(session, websiteId) {
142
+ const newWebsiteId = (0, uuid_1.v4)();
143
+ const from = (0, path_1.join)(this.options.path, websiteId);
144
+ const to = (0, path_1.join)(this.options.path, newWebsiteId);
145
+ await copyDir(from, to);
146
+ const meta = await this.getWebsiteMeta(session, websiteId);
147
+ await this.setWebsiteMeta(session, newWebsiteId, {
148
+ ...meta,
149
+ name: `${meta.name} copy`,
150
+ });
151
+ }
149
152
  async listWebsites(session) {
150
153
  const list = await promises_1.default.readdir(this.options.path);
151
154
  return Promise.all(list.map(async (fileName) => {
@@ -159,16 +162,19 @@ class FsStorage {
159
162
  return { path, content };
160
163
  }
161
164
  async writeAssets(session, id, files, statusCbk) {
165
+ return this.write(session, id, files, this.options.assetsFolder, statusCbk);
166
+ }
167
+ async write(session, id, files, assetsFolder, statusCbk) {
162
168
  const filesStatuses = this.initStatus(files);
163
169
  let error = null;
164
170
  for (const fileStatus of filesStatuses) {
165
171
  const { file } = fileStatus;
166
- const path = (0, path_1.join)(this.options.path, id, this.options.assetsFolder, file.path);
172
+ const path = (0, path_1.join)(this.options.path, id, assetsFolder, file.path);
167
173
  if (typeof file.content === 'string' || Buffer.isBuffer(file.content)) {
168
174
  fileStatus.message = 'Writing';
169
175
  this.updateStatus(filesStatuses, types_1.JobStatus.IN_PROGRESS, statusCbk);
170
176
  try {
171
- await promises_1.default.writeFile(path, file.content, 'binary');
177
+ await promises_1.default.writeFile(path, file.content);
172
178
  }
173
179
  catch (err) {
174
180
  fileStatus.message = `Error (${err})`;
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.contentToReadable = exports.contentToBuffer = exports.contentToString = exports.toConnectorData = exports.getConnector = exports.toConnectorEnum = void 0;
3
+ exports.toConnectorEnum = toConnectorEnum;
4
+ exports.getConnector = getConnector;
5
+ exports.toConnectorData = toConnectorData;
6
+ exports.contentToString = contentToString;
7
+ exports.contentToBuffer = contentToBuffer;
8
+ exports.contentToReadable = contentToReadable;
4
9
  const stream_1 = require("stream");
5
10
  const types_1 = require("../../types");
6
11
  function toConnectorEnum(type) {
@@ -9,7 +14,6 @@ function toConnectorEnum(type) {
9
14
  throw new Error(`Unknown connector type ${type}. It should be one of ${Object.keys(types_1.ConnectorType).join(', ')}`);
10
15
  return result;
11
16
  }
12
- exports.toConnectorEnum = toConnectorEnum;
13
17
  async function getConnector(config, session, type, connectorId) {
14
18
  const connectors = config.getConnectors(type);
15
19
  if (connectorId)
@@ -21,7 +25,6 @@ async function getConnector(config, session, type, connectorId) {
21
25
  }
22
26
  return connectors[0];
23
27
  }
24
- exports.getConnector = getConnector;
25
28
  async function toConnectorData(session, connector) {
26
29
  return {
27
30
  connectorId: connector.connectorId,
@@ -35,7 +38,6 @@ async function toConnectorData(session, connector) {
35
38
  background: connector.background,
36
39
  };
37
40
  }
38
- exports.toConnectorData = toConnectorData;
39
41
  async function contentToString(content) {
40
42
  if (typeof content === 'string')
41
43
  return content;
@@ -54,7 +56,6 @@ async function contentToString(content) {
54
56
  });
55
57
  });
56
58
  }
57
- exports.contentToString = contentToString;
58
59
  async function contentToBuffer(content) {
59
60
  if (typeof content === 'string')
60
61
  return Buffer.from(content, 'utf8');
@@ -76,7 +77,6 @@ async function contentToBuffer(content) {
76
77
  }
77
78
  throw new Error('Unknown content type');
78
79
  }
79
- exports.contentToBuffer = contentToBuffer;
80
80
  function contentToReadable(content) {
81
81
  if (typeof content === 'string')
82
82
  return stream_1.Readable.from([content]);
@@ -86,4 +86,3 @@ function contentToReadable(content) {
86
86
  return content;
87
87
  throw new Error('Unknown content type');
88
88
  }
89
- exports.contentToReadable = contentToReadable;
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.start = exports.create = void 0;
6
+ exports.create = create;
7
+ exports.start = start;
7
8
  const express_1 = __importDefault(require("express"));
8
9
  const body_parser_1 = __importDefault(require("body-parser"));
9
10
  const compression_1 = __importDefault(require("compression"));
@@ -16,7 +17,7 @@ function create(config) {
16
17
  app.set('config', config);
17
18
  const options = config.expressOptions;
18
19
  if (options.cors) {
19
- console.log('> CORS are ENABLED:', options.cors);
20
+ console.info('> CORS are ENABLED:', options.cors);
20
21
  app.use((0, cors_1.default)({
21
22
  origin: options.cors,
22
23
  }));
@@ -25,7 +26,7 @@ function create(config) {
25
26
  app.use(body_parser_1.default.json({ limit: options.jsonLimit }));
26
27
  app.use(body_parser_1.default.text({ limit: options.textLimit }));
27
28
  app.use(body_parser_1.default.urlencoded({ limit: options.urlencodedLimit }));
28
- console.log('> Session name:', options.sessionName);
29
+ console.info('> Session name:', options.sessionName);
29
30
  app.use((0, cookie_parser_1.default)());
30
31
  app.use((0, cookie_session_1.default)({
31
32
  name: options.sessionName,
@@ -33,7 +34,6 @@ function create(config) {
33
34
  }));
34
35
  return app;
35
36
  }
36
- exports.create = create;
37
37
  async function start(app) {
38
38
  const config = app.get('config');
39
39
  config.emit(events_1.ServerEvent.STARTUP_START, { app });
@@ -44,4 +44,3 @@ async function start(app) {
44
44
  });
45
45
  });
46
46
  }
47
- exports.start = start;
@@ -29,13 +29,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
29
29
  return (mod && mod.__esModule) ? mod : { "default": mod };
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.default = silex;
32
33
  const silexApp = __importStar(require("./express"));
33
34
  const api_1 = __importDefault(require("./api/api"));
34
35
  const config_1 = require("./config");
35
36
  const dotenv_1 = __importDefault(require("dotenv"));
36
37
  const path_1 = require("path");
38
+ const constants_1 = require("../constants");
37
39
  __exportStar(require("./expose"), exports);
38
40
  async function silex() {
41
+ console.info(constants_1.DEV_MESSAGE);
42
+ console.info(`Node version: ${process.version}`);
43
+ console.info(`CWD: ${process.cwd()}`);
39
44
  const curDirEnv = dotenv_1.default.config();
40
45
  if (curDirEnv.error) {
41
46
  if (curDirEnv.error['code'] === 'ENOENT') {
@@ -73,7 +78,6 @@ I'm ready, listening to port ${config.port}
73
78
  startLiverReload();
74
79
  }
75
80
  }
76
- exports.default = silex;
77
81
  async function startLiverReload() {
78
82
  const { createServer } = await Promise.resolve().then(() => __importStar(require('livereload')));
79
83
  const { resolve } = await Promise.resolve().then(() => __importStar(require('path')));
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.killJob = exports.jobError = exports.jobSuccess = exports.getJob = exports.startJob = void 0;
3
+ exports.jobManager = void 0;
4
+ exports.startJob = startJob;
5
+ exports.getJob = getJob;
6
+ exports.jobSuccess = jobSuccess;
7
+ exports.jobError = jobError;
8
+ exports.killJob = killJob;
4
9
  const types_1 = require("../types");
5
10
  const TIME_TO_KEEP_AFTER_STOP = 60 * 10 * 1000;
6
11
  const jobs = new Array();
12
+ const timers = new WeakMap();
7
13
  const processKey = Math.ceil(Math.random() * 1000000);
8
14
  let nextJobId = 0;
9
15
  function startJob(message = '') {
@@ -16,32 +22,29 @@ function startJob(message = '') {
16
22
  jobs.push(job);
17
23
  return job;
18
24
  }
19
- exports.startJob = startJob;
20
25
  function getJob(id) {
21
26
  return jobs.find(job => job.jobId === id);
22
27
  }
23
- exports.getJob = getJob;
24
28
  function jobSuccess(id, message = '') {
25
29
  return end(id, types_1.JobStatus.SUCCESS, message);
26
30
  }
27
- exports.jobSuccess = jobSuccess;
28
31
  function jobError(id, message = '') {
29
32
  return end(id, types_1.JobStatus.ERROR, message);
30
33
  }
31
- exports.jobError = jobError;
32
34
  function killJob(job) {
33
- clearTimeout(job._timeout);
35
+ clearTimeout(timers.get(job));
36
+ timers.delete(job);
34
37
  jobs.splice(jobs.findIndex(j => job.jobId === j.jobId), 1);
35
38
  }
36
- exports.killJob = killJob;
37
39
  function end(id, status, message = '') {
38
40
  const job = getJob(id);
39
41
  if (job) {
40
42
  job.status = status;
41
43
  if (message)
42
44
  job.message = message;
43
- job._timeout = setTimeout(() => killJob(job), TIME_TO_KEEP_AFTER_STOP);
45
+ timers.set(job, setTimeout(() => killJob(job), TIME_TO_KEEP_AFTER_STOP));
44
46
  return true;
45
47
  }
46
48
  return false;
47
49
  }
50
+ exports.jobManager = { startJob, jobSuccess, jobError };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.requiredParam = void 0;
3
+ exports.requiredParam = requiredParam;
4
4
  function requiredParam(value, name, defaultValue) {
5
5
  if (value === undefined) {
6
6
  if (defaultValue !== undefined) {
@@ -12,4 +12,3 @@ function requiredParam(value, name, defaultValue) {
12
12
  }
13
13
  return value;
14
14
  }
15
- exports.requiredParam = requiredParam;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JobStatus = exports.ConnectorType = exports.Unit = exports.defaultWebsiteData = exports.ApiError = void 0;
3
+ exports.JobStatus = exports.ConnectorType = exports.Initiator = exports.ClientSideFileType = exports.Unit = exports.defaultWebsiteData = exports.ApiError = void 0;
4
4
  class ApiError extends Error {
5
5
  httpStatusCode;
6
6
  constructor(message, httpStatusCode) {
@@ -15,6 +15,18 @@ var Unit;
15
15
  (function (Unit) {
16
16
  Unit["PX"] = "px";
17
17
  })(Unit || (exports.Unit = Unit = {}));
18
+ var ClientSideFileType;
19
+ (function (ClientSideFileType) {
20
+ ClientSideFileType["HTML"] = "html";
21
+ ClientSideFileType["ASSET"] = "asset";
22
+ ClientSideFileType["CSS"] = "css";
23
+ ClientSideFileType["OTHER"] = "other";
24
+ })(ClientSideFileType || (exports.ClientSideFileType = ClientSideFileType = {}));
25
+ var Initiator;
26
+ (function (Initiator) {
27
+ Initiator["HTML"] = "html";
28
+ Initiator["CSS"] = "css";
29
+ })(Initiator || (exports.Initiator = Initiator = {}));
18
30
  var ConnectorType;
19
31
  (function (ConnectorType) {
20
32
  ConnectorType["STORAGE"] = "STORAGE";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@silexlabs/silex",
3
3
  "description": "Free and easy website builder for everyone.",
4
- "version": "3.0.1-0",
4
+ "version": "3.0.1",
5
5
  "version:backwardcompat": "3.0.0",
6
6
  "author": {
7
7
  "name": "Alex Hoyau",
@@ -16,7 +16,6 @@
16
16
  "src/",
17
17
  "public",
18
18
  ".silex.js",
19
- ".silex",
20
19
  ".env.default",
21
20
  "package.json",
22
21
  "package-lock.json",
@@ -77,9 +76,11 @@
77
76
  },
78
77
  "scripts": {
79
78
  "release": "",
79
+ "dev": "run-p watch start:debug",
80
80
  "watch": "npm-watch",
81
81
  "start": "node dist/server/server/",
82
- "start:debug": "cross-env SILEX_FS_ROOT=`pwd`/.silex cross-env SILEX_DEBUG=true nodemon --watch dist/server 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",
83
84
  "prepublishOnly": "$npm_execpath run lint && $npm_execpath test && $npm_execpath run build",
84
85
  "preversion": "$npm_execpath run prepublishOnly",
85
86
  "build": "run-s build:css:release build:html build:client:release build:server:release build:plugins:client build:plugins:server",
@@ -94,74 +95,87 @@
94
95
  "build:server:debug": "SILEX_DEBUG=true tsc -p tsconfig-server-debug.json",
95
96
  "build:plugins:server": "tsc -p tsconfig-plugins-server.json",
96
97
  "build:plugins:client": "tsc -p tsconfig-plugins-client.json",
97
- "lint": "eslint 'src/ts/**/*.ts'",
98
+ "lint": "eslint \"src/ts/**/*.ts\"",
98
99
  "lint:fix": "$npm_execpath run lint -- --fix",
99
100
  "test": "node --experimental-vm-modules `node_modules jest`/jest/bin/jest.js",
100
- "test:watch": "$npm_execpath test -- --watch"
101
+ "test:watch": "$npm_execpath test -- --watch",
102
+ "prepare": "husky"
101
103
  },
102
104
  "dependencies": {
103
- "@directus/sdk": "10.3.3",
104
- "@fortawesome/fontawesome-free": "6.4.0",
105
- "@gitbeaker/rest": "^39.7.0",
106
- "@silexlabs/grapesjs-directus-storage": "1.0.15",
107
- "@silexlabs/grapesjs-fonts": "1.0.12",
108
- "@silexlabs/grapesjs-loading": "1.0.8",
109
- "@silexlabs/grapesjs-symbols": "1.0.22",
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",
110
114
  "@silexlabs/grapesjs-ui-suggest-classes": "1.0.23",
111
115
  "@silexlabs/silex-plugins": "1.0.10",
112
- "adm-zip": "0.5.10",
113
- "basic-ftp": "^5.0.3",
116
+ "@types/archiver": "^6.0.2",
117
+ "adm-zip": "0.5.14",
118
+ "archiver": "^7.0.1",
119
+ "basic-ftp": "^5.0.5",
114
120
  "body-parser": "1.20.2",
115
121
  "cli": "1.0.1",
116
122
  "compression": "1.7.4",
117
123
  "cookie-parser": "1.4.6",
118
- "cookie-session": "2.0.0",
124
+ "cookie-session": "2.1.0",
119
125
  "cors": "2.8.5",
120
126
  "cross-env": "7.0.3",
121
127
  "crypto": "^1.0.1",
122
- "dotenv": "^16.3.1",
123
- "express": "4.18.2",
128
+ "dotenv": "^16.4.5",
129
+ "express": "4.19.2",
124
130
  "express-force-ssl": "0.3.2",
125
- "formidable": "2.1.1",
126
- "fs-extra": "^11.1.1",
127
- "grapesjs": "0.21.2",
131
+ "formidable": "3.5.1",
132
+ "fs-extra": "^11.2.0",
133
+ "grapesjs": "^0.21.13",
128
134
  "grapesjs-blocks-basic": "1.0.2",
129
135
  "grapesjs-custom-code": "1.0.2",
136
+ "grapesjs-navbar": "^1.0.2",
130
137
  "grapesjs-plugin-forms": "2.0.6",
131
- "grapesjs-style-filter": "1.0.2",
138
+ "grapesjs-style-bg": "^2.0.2",
139
+ "grapesjs-style-border": "1.0.4",
140
+ "grapesjs-style-filter": "^1.0.2",
132
141
  "html-minifier": "^4.0.0",
133
- "lit-html": "2.7.4",
142
+ "lit-html": "3.2.1",
134
143
  "mkdirp": "3.0.1",
135
- "node_modules-path": "2.0.7",
144
+ "node_modules-path": "2.0.8",
136
145
  "node-fetch": "2.6.9",
137
146
  "normalize.css": "8.0.1",
147
+ "npm-run-all": "^4.1.5",
138
148
  "object-path": "0.11.8",
139
149
  "promise-sequential": "1.1.1",
140
- "sass": "1.63.6",
150
+ "sass": "1.77.8",
141
151
  "serve-static": "1.15.0",
142
- "uuid": "^9.0.0"
152
+ "uuid": "^10.0.0"
143
153
  },
144
154
  "devDependencies": {
145
- "@types/express": "4.17.17",
146
- "@types/jest": "^29.5.2",
147
- "@types/node": "20.3.1",
148
- "@typescript-eslint/eslint-plugin": "5.60.0",
149
- "@typescript-eslint/parser": "5.60.0",
150
- "css-loader": "6.8.1",
151
- "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",
152
165
  "file-loader": "6.2.0",
153
- "jest": "29.5.0",
154
- "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",
155
170
  "livereload": "0.9.3",
156
- "nodemon": "2.0.22",
157
- "npm-run-all": "4.1.5",
158
- "npm-watch": "0.11.0",
171
+ "nodemon": "3.1.4",
172
+ "npm-watch": "0.13.0",
159
173
  "pug-cli": "1.0.0-alpha6",
160
- "style-loader": "3.3.3",
161
- "ts-jest": "29.1.0",
162
- "ts-loader": "9.4.3",
163
- "typescript": "5.1.3",
164
- "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",
165
179
  "webpack-cli": "5.1.4"
166
180
  },
167
181
  "repository": {
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/public/silex.js CHANGED
@@ -15,28 +15,10 @@
15
15
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
16
16
  */
17
17
 
18
- // This file is loaded by Silex when the user opens the editor
19
- // Unless you override the default config with the environment variable SILEX_CLIENT_CONFIG or the CLI option --client-config
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
+
20
23
  export default async function (config) {
21
- // // For example add a GrapesJs plugin like this
22
- // config.editor.plugins.push(plugin)
23
- // config.editor.pluginsOpts[plugin] = {
24
- // }
25
- // // Or like this to override the default options
26
- // // See the docs for the list of options
27
- // return {
28
- // ...config,
29
- // editor: {
30
- // ...config.editor,
31
- // plugins: [
32
- // ...config.editor.plugins,
33
- // plugin,
34
- // ],
35
- // pluginsOpts: {
36
- // ...config.editor.pluginsOpts,
37
- // [plugin]: {
38
- // },
39
- // },
40
- // },
41
- // }
42
24
  }
@@ -1,34 +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;
25
23
  $z-loader: 10;
24
+ $z-views-options-buttons: 5;
25
+
26
+ $fontFamily: 'Ubuntu', sans-serif;
26
27
 
27
28
  :root {
28
- --primaryColor: #444;
29
- --secondaryColor: #ddd;
30
- --tertiaryColor: #5e85a8;
31
- --quaternaryColor: #7bc0ff;
32
- --darkerPrimaryColor: #363636;
33
- --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};
34
37
  }