@silexlabs/silex 3.0.0-alpha.61 → 3.0.0-alpha.62

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.
@@ -3812,15 +3812,6 @@ See http://bgrins.github.io/spectrum/themes/ for instructions.
3812
3812
  color: #ffffff;
3813
3813
  }
3814
3814
 
3815
- :root {
3816
- --primaryColor: #444;
3817
- --secondaryColor: #ddd;
3818
- --tertiaryColor: #5e85a8;
3819
- --quaternaryColor: #7bc0ff;
3820
- --darkerPrimaryColor: #363636;
3821
- --lighterPrimaryColor: #575757;
3822
- }
3823
-
3824
3815
  .silex-workspace {
3825
3816
  position: absolute;
3826
3817
  top: 0;
@@ -3829,6 +3820,9 @@ See http://bgrins.github.io/spectrum/themes/ for instructions.
3829
3820
  height: 100%;
3830
3821
  display: flex;
3831
3822
  }
3823
+ .silex-workspace body {
3824
+ font-family: "Ubuntu", sans-serif;
3825
+ }
3832
3826
  .silex-workspace a {
3833
3827
  color: inherit;
3834
3828
  }
@@ -3871,7 +3865,7 @@ See http://bgrins.github.io/spectrum/themes/ for instructions.
3871
3865
  left: 0;
3872
3866
  width: 100%;
3873
3867
  padding: 20px 0;
3874
- background-color: #444;
3868
+ background-color: #333333;
3875
3869
  }
3876
3870
  .settings-dialog > div footer > *:last-child {
3877
3871
  margin-right: 30px;
@@ -3910,7 +3904,7 @@ input.silex-button[type=submit] {
3910
3904
  }
3911
3905
 
3912
3906
  .silex-button.silex-button--secondary {
3913
- background-color: #444;
3907
+ background-color: #333333;
3914
3908
  }
3915
3909
 
3916
3910
  .silex-button--size {
@@ -4021,7 +4015,7 @@ form.silex-form .silex-form__group.col2 {
4021
4015
  color: #ddd;
4022
4016
  justify-content: center;
4023
4017
  align-items: center;
4024
- background-color: #444;
4018
+ background-color: #333333;
4025
4019
  z-index: 10;
4026
4020
  }
4027
4021
 
@@ -4052,7 +4046,7 @@ form.silex-form .silex-form__group.col2 {
4052
4046
 
4053
4047
  .silex-dialog-inline {
4054
4048
  position: absolute;
4055
- background-color: #444;
4049
+ background-color: #333333;
4056
4050
  z-index: 10;
4057
4051
  border-radius: 3px;
4058
4052
  border: 2px solid rgba(0, 0, 0, 0.25);
@@ -4071,162 +4065,12 @@ form.silex-form .silex-form__group.col2 {
4071
4065
  text-align: right;
4072
4066
  }
4073
4067
  .silex-dialog-inline a {
4074
- color: #7bc0ff;
4068
+ color: #56E3FF;
4075
4069
  }
4076
4070
  .silex-dialog-inline header > * {
4077
4071
  margin: 0;
4078
4072
  }
4079
4073
 
4080
- #gjs {
4081
- flex: 1 1 auto;
4082
- }
4083
-
4084
- .gjs-one-bg {
4085
- background-color: #444;
4086
- }
4087
- .gjs-one-color {
4088
- color: #444;
4089
- }
4090
- .gjs-one-color-h:hover {
4091
- color: #444;
4092
- }
4093
- .gjs-two-bg {
4094
- background-color: #ddd;
4095
- }
4096
- .gjs-two-color {
4097
- color: #ddd;
4098
- }
4099
- .gjs-two-color-h:hover {
4100
- color: #ddd;
4101
- }
4102
- .gjs-three-bg {
4103
- background-color: #5e85a8;
4104
- }
4105
- .gjs-three-color {
4106
- color: #5e85a8;
4107
- }
4108
- .gjs-three-color-h:hover {
4109
- color: #5e85a8;
4110
- }
4111
- .gjs-four-bg {
4112
- background-color: #7bc0ff;
4113
- }
4114
- .gjs-four-color {
4115
- color: #7bc0ff;
4116
- }
4117
- .gjs-four-color-h:hover {
4118
- color: #7bc0ff;
4119
- }
4120
-
4121
- .gjs-cv-canvas,
4122
- .gjs-pn-panel,
4123
- .gjs-pn-commands {
4124
- left: 35px;
4125
- }
4126
-
4127
- .gjs-pn-project-bar-panel,
4128
- .gjs-pn-views,
4129
- .gjs-pn-options,
4130
- .gjs-pn-views-container {
4131
- left: auto;
4132
- }
4133
-
4134
- .gjs-cv-canvas {
4135
- width: calc(85% - 35px);
4136
- }
4137
-
4138
- .gjs-pn-devices-c {
4139
- display: flex;
4140
- }
4141
- .gjs-pn-devices-c .gjs-device-label {
4142
- display: none;
4143
- }
4144
-
4145
- .gjs-pn-views-container {
4146
- width: 15%;
4147
- }
4148
-
4149
- /*
4150
- */
4151
- .gjs-editor-cont .fa {
4152
- font-weight: 400;
4153
- }
4154
-
4155
- .fa-square-o:before {
4156
- content: "\f0c8";
4157
- }
4158
-
4159
- .fa-trash-o:before {
4160
- content: "\f1f8";
4161
- }
4162
-
4163
- .fa-map-o:before {
4164
- content: "\f279";
4165
- }
4166
-
4167
- .fa-youtube-play:before {
4168
- content: "\f04b";
4169
- }
4170
-
4171
- /* Fix: open close chevrons: FA5 has the tags in different order ?!!? */
4172
- .fa-chevron-right:before {
4173
- content: "\f054";
4174
- }
4175
-
4176
- .fa-chevron-down:before {
4177
- content: "\f078";
4178
- }
4179
-
4180
- .fa-cog:before {
4181
- font-weight: 900;
4182
- }
4183
-
4184
- .fa-paint-brush:before {
4185
- font-weight: 900;
4186
- }
4187
-
4188
- .fa-arrows-alt:before {
4189
- content: "\f065";
4190
- font-weight: 900;
4191
- }
4192
-
4193
- .fa-caret-down:before {
4194
- content: "\f0d7";
4195
- font-weight: 900;
4196
- }
4197
-
4198
- .fa-caret-right:before {
4199
- content: "\f0da";
4200
- font-weight: 900;
4201
- }
4202
-
4203
- .fa-trash:before {
4204
- content: "\f2ed";
4205
- font-weight: 900;
4206
- }
4207
-
4208
- .fa-list:before {
4209
- content: "\f03a";
4210
- font-weight: 900;
4211
- }
4212
-
4213
- .fa-sign-out:before {
4214
- content: "\f08b";
4215
- font-weight: 900;
4216
- }
4217
-
4218
- /*
4219
- .fa-plus:before {
4220
- content: "+";
4221
- font-size: 35px;
4222
- }
4223
- .fa-diamond:before {
4224
- content: "\f3a5";
4225
- }
4226
- // .fa-plus {
4227
- // background-image: svg(<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"/></svg>);
4228
- // }
4229
- */
4230
4074
  iframe.enable-squeeze.gjs-frame {
4231
4075
  transition: width 0.35s, height 0.35s, left 0.35s;
4232
4076
  }
@@ -4280,11 +4124,11 @@ iframe.enable-squeeze.silex-squeeze-left {
4280
4124
  flex: 1;
4281
4125
  display: flex;
4282
4126
  flex-direction: column;
4283
- background-color: #444;
4127
+ background-color: #333333;
4284
4128
  overflow: auto;
4285
4129
  }
4286
4130
  .gjs-pn-project-bar-container .project-bar__panel:not(.gjs-hidden) .gjs-layer {
4287
- background-color: #444;
4131
+ background-color: #333333;
4288
4132
  }
4289
4133
  .gjs-pn-project-bar-container .project-bar__panel > *:not(header) {
4290
4134
  flex: 1;
@@ -4323,7 +4167,7 @@ iframe.enable-squeeze.silex-squeeze-left {
4323
4167
  line-height: 13px;
4324
4168
  }
4325
4169
  .gjs-pn-project-bar-container .project-bar__panel-header .project-bar__panel-header-button:hover {
4326
- color: #7bc0ff;
4170
+ color: #56E3FF;
4327
4171
  }
4328
4172
 
4329
4173
  .page-panel-container .pages__wrapper {
@@ -4337,7 +4181,7 @@ iframe.enable-squeeze.silex-squeeze-left {
4337
4181
  .page-panel-container .pages .pages__main {
4338
4182
  flex: 1;
4339
4183
  border: 1px solid #363636;
4340
- background-color: #444;
4184
+ background-color: #333333;
4341
4185
  }
4342
4186
  .page-panel-container .pages .pages__page {
4343
4187
  display: flex;
@@ -4347,17 +4191,17 @@ iframe.enable-squeeze.silex-squeeze-left {
4347
4191
  cursor: pointer;
4348
4192
  }
4349
4193
  .page-panel-container .pages .pages__page:hover {
4350
- background-color: #444;
4194
+ background-color: #333333;
4351
4195
  }
4352
4196
  .page-panel-container .pages .pages__page:hover .pages__page-name {
4353
- color: #7bc0ff;
4197
+ color: #56E3FF;
4354
4198
  }
4355
4199
  .page-panel-container .pages .pages__page-selected {
4356
4200
  background-color: #575757;
4357
4201
  cursor: default;
4358
4202
  }
4359
4203
  .page-panel-container .pages .pages__page-selected .pages__page-name {
4360
- color: #7bc0ff;
4204
+ color: #56E3FF;
4361
4205
  }
4362
4206
  .page-panel-container .pages .pages__main.pages__single-page .pages__remove-btn {
4363
4207
  visibility: hidden;
@@ -4378,7 +4222,7 @@ iframe.enable-squeeze.silex-squeeze-left {
4378
4222
  cursor: pointer;
4379
4223
  }
4380
4224
  .page-panel-container .pages .pages__icon:hover {
4381
- color: #7bc0ff;
4225
+ color: #56E3FF;
4382
4226
  }
4383
4227
  .page-panel-container .gjs-pn-buttons {
4384
4228
  flex-direction: column;
@@ -4398,8 +4242,242 @@ iframe.enable-squeeze.silex-squeeze-left {
4398
4242
  background-color: #363636;
4399
4243
  }
4400
4244
 
4245
+ #gjs {
4246
+ flex: 1 1 auto;
4247
+ }
4248
+
4249
+ .gjs-one-bg {
4250
+ background-color: #333333;
4251
+ }
4252
+ .gjs-one-color {
4253
+ color: #333333;
4254
+ }
4255
+ .gjs-one-color-h:hover {
4256
+ color: #333333;
4257
+ }
4258
+ .gjs-two-bg {
4259
+ background-color: #ddd;
4260
+ }
4261
+ .gjs-two-color {
4262
+ color: #ddd;
4263
+ }
4264
+ .gjs-two-color-h:hover {
4265
+ color: #ddd;
4266
+ }
4267
+ .gjs-three-bg {
4268
+ background-color: #8873FE;
4269
+ }
4270
+ .gjs-three-color {
4271
+ color: #8873FE;
4272
+ }
4273
+ .gjs-three-color-h:hover {
4274
+ color: #8873FE;
4275
+ }
4276
+ .gjs-four-bg {
4277
+ background-color: #56E3FF;
4278
+ }
4279
+ .gjs-four-color {
4280
+ color: #56E3FF;
4281
+ }
4282
+ .gjs-four-color-h:hover {
4283
+ color: #56E3FF;
4284
+ }
4285
+
4286
+ .gjs-cv-canvas,
4287
+ .gjs-pn-panel,
4288
+ .gjs-pn-commands {
4289
+ left: 35px;
4290
+ }
4291
+
4292
+ .gjs-pn-project-bar-panel,
4293
+ .gjs-pn-views,
4294
+ .gjs-pn-options,
4295
+ .gjs-pn-views-container {
4296
+ left: auto;
4297
+ }
4298
+
4299
+ .gjs-cv-canvas {
4300
+ width: calc(85% - 35px);
4301
+ }
4302
+
4303
+ .gjs-pn-devices-c {
4304
+ display: flex;
4305
+ }
4306
+ .gjs-pn-devices-c .gjs-device-label {
4307
+ display: none;
4308
+ }
4309
+
4310
+ .gjs-pn-views-container {
4311
+ width: 15%;
4312
+ }
4313
+
4314
+ .gjs-editor {
4315
+ font-family: "Ubuntu", sans-serif;
4316
+ font-size: 0.75rem;
4317
+ }
4318
+
4319
+ .gjs-toolbar {
4320
+ background-color: #8873FE;
4321
+ }
4322
+
4323
+ .gjs-resizer-h {
4324
+ border-color: #8873FE;
4325
+ }
4326
+
4327
+ .gjs-com-badge, .gjs-com-badge-red, .gjs-badge {
4328
+ background-color: #8873FE;
4329
+ }
4330
+
4331
+ .gjs-cv-canvas .gjs-highlighter, .gjs-cv-canvas .gjs-highlighter-sel {
4332
+ outline: 1px solid #8873FE;
4333
+ }
4334
+
4335
+ /*
4336
+ */
4337
+ .gjs-editor-cont .fa {
4338
+ font-weight: 400;
4339
+ }
4340
+
4341
+ .fa-square-o:before {
4342
+ content: "\f0c8";
4343
+ }
4344
+
4345
+ .fa-trash-o:before {
4346
+ content: "\f1f8";
4347
+ }
4348
+
4349
+ .fa-map-o:before {
4350
+ content: "\f279";
4351
+ }
4352
+
4353
+ .fa-youtube-play:before {
4354
+ content: "\f04b";
4355
+ }
4356
+
4357
+ /* Fix: open close chevrons: FA5 has the tags in different order ?!!? */
4358
+ .fa-chevron-right:before {
4359
+ content: "\f054";
4360
+ }
4361
+
4362
+ .fa-chevron-down:before {
4363
+ content: "\f078";
4364
+ }
4365
+
4366
+ .fa-cog:before {
4367
+ font-weight: 900;
4368
+ }
4369
+
4370
+ .fa-paint-brush:before {
4371
+ font-weight: 900;
4372
+ }
4373
+
4374
+ .fa-arrows-alt:before {
4375
+ content: "\f065";
4376
+ font-weight: 900;
4377
+ }
4378
+
4379
+ .fa-caret-down:before {
4380
+ content: "\f0d7";
4381
+ font-weight: 900;
4382
+ }
4383
+
4384
+ .fa-caret-right:before {
4385
+ content: "\f0da";
4386
+ font-weight: 900;
4387
+ }
4388
+
4389
+ .fa-trash:before {
4390
+ content: "\f2ed";
4391
+ font-weight: 900;
4392
+ }
4393
+
4394
+ .fa-list:before {
4395
+ content: "\f03a";
4396
+ font-weight: 900;
4397
+ }
4398
+
4399
+ .fa-sign-out:before {
4400
+ content: "\f08b";
4401
+ font-weight: 900;
4402
+ }
4403
+
4404
+ /*
4405
+ .fa-plus:before {
4406
+ content: "+";
4407
+ font-size: 35px;
4408
+ }
4409
+ .fa-diamond:before {
4410
+ content: "\f3a5";
4411
+ }
4412
+ // .fa-plus {
4413
+ // background-image: svg(<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 448 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"/></svg>);
4414
+ // }
4415
+ */
4416
+ /* ubuntu-cyrillic-ext-400-normal */
4417
+ @font-face {
4418
+ font-family: "Ubuntu";
4419
+ font-style: normal;
4420
+ font-display: swap;
4421
+ font-weight: 400;
4422
+ src: url(./files/ubuntu-cyrillic-ext-400-normal.woff2) format("woff2"), url(./files/ubuntu-cyrillic-ext-400-normal.woff) format("woff");
4423
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
4424
+ }
4425
+ /* ubuntu-cyrillic-400-normal */
4426
+ @font-face {
4427
+ font-family: "Ubuntu";
4428
+ font-style: normal;
4429
+ font-display: swap;
4430
+ font-weight: 400;
4431
+ src: url(./files/ubuntu-cyrillic-400-normal.woff2) format("woff2"), url(./files/ubuntu-cyrillic-400-normal.woff) format("woff");
4432
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
4433
+ }
4434
+ /* ubuntu-greek-ext-400-normal */
4435
+ @font-face {
4436
+ font-family: "Ubuntu";
4437
+ font-style: normal;
4438
+ font-display: swap;
4439
+ font-weight: 400;
4440
+ src: url(./files/ubuntu-greek-ext-400-normal.woff2) format("woff2"), url(./files/ubuntu-greek-ext-400-normal.woff) format("woff");
4441
+ unicode-range: U+1F00-1FFF;
4442
+ }
4443
+ /* ubuntu-greek-400-normal */
4444
+ @font-face {
4445
+ font-family: "Ubuntu";
4446
+ font-style: normal;
4447
+ font-display: swap;
4448
+ font-weight: 400;
4449
+ src: url(./files/ubuntu-greek-400-normal.woff2) format("woff2"), url(./files/ubuntu-greek-400-normal.woff) format("woff");
4450
+ unicode-range: U+0370-03FF;
4451
+ }
4452
+ /* ubuntu-latin-ext-400-normal */
4453
+ @font-face {
4454
+ font-family: "Ubuntu";
4455
+ font-style: normal;
4456
+ font-display: swap;
4457
+ font-weight: 400;
4458
+ src: url(./files/ubuntu-latin-ext-400-normal.woff2) format("woff2"), url(./files/ubuntu-latin-ext-400-normal.woff) format("woff");
4459
+ unicode-range: U+0100-02AF, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
4460
+ }
4461
+ /* ubuntu-latin-400-normal */
4462
+ @font-face {
4463
+ font-family: "Ubuntu";
4464
+ font-style: normal;
4465
+ font-display: swap;
4466
+ font-weight: 400;
4467
+ src: url(./files/ubuntu-latin-400-normal.woff2) format("woff2"), url(./files/ubuntu-latin-400-normal.woff) format("woff");
4468
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
4469
+ }
4401
4470
  /* Normalize css */
4402
4471
  /* Silex styles imports */
4472
+ :root {
4473
+ --primaryColor: $primaryColor;
4474
+ --secondaryColor: $secondaryColor;
4475
+ --tertiaryColor: $tertiaryColor;
4476
+ --quaternaryColor: $quaternaryColor;
4477
+ --darkerPrimaryColor: $darkerPrimaryColor;
4478
+ --lighterPrimaryColor: $lighterPrimaryColor;
4479
+ }
4480
+
4403
4481
  .container-png::before {
4404
4482
  content: " ";
4405
4483
  background-image: url("../assets/container.png");
@@ -1,6 +1,6 @@
1
1
  <!DOCTYPE html><html lang="en" translate="no"><head><title>Silex</title><meta name="description" content="This is a public instance of Silex website builder. Build websites in the browser"><link rel="shortcut icon" href="assets/favicon.png"><style>body {
2
2
  background-color: #444444;
3
- font-family: Helvetica,sans-serif;
3
+ font-family: "Ubuntu", "Helvetica Neue", Helvetica, Arial, sans-serif;
4
4
  }
5
5
  .silex-loader {
6
6
  display: none;
@@ -97,7 +97,7 @@ var silex;(()=>{var t={357:function(t){var e;"undefined"!=typeof globalThis?glob
97
97
  ><span>${e.text}</span></div>
98
98
  `))}
99
99
  </header>
100
- `,r),document.body.appendChild(r),t.on("load",(()=>{n.view.el.appendChild(r)}))),t.Commands.add(e.command,{run(){e.link&&window.open(e.link),e.attributes.containerClassName&&(n.set("visible",!0),r.classList.remove("gjs-hidden"),t.Canvas.getFrameEl().classList.add("silex-squeeze-left"))},stop(){e.attributes.containerClassName&&(n.set("visible",!1),r.classList.add("gjs-hidden"),t.Canvas.getFrameEl().classList.remove("silex-squeeze-left"))}})})),t.on("load device:select page",(()=>{!function(){const e=n.view.el,r=t.Canvas.getFrameEl();r.classList.remove("enable-squeeze"),setTimeout((()=>{const t=r.getClientRects()[0]?.left,n=e.getClientRects()[0]?.right;t<n||!n?r.classList.add("enable-squeeze"):r.classList.remove("enable-squeeze")}),400),n.get("visible")?r.classList.add("silex-squeeze-left"):r.classList.remove("silex-squeeze-left")}()}))},Nn=document.createElement("div");let In;const Dn="open-settings";let $n="v3";const Rn=nt.plugins.add("settings-dialog",((t,e)=>{try{$n="3.0.0-alpha.61"}catch(t){}console.info("Silex version:",$n),t.Commands.add(Dn,{run:(e,n,{page:r})=>{In=t.Modal.open({title:r?"Page settings":"Site Settings",content:"",attributes:{class:"settings-dialog"}}).onceClose((()=>{n.set("active",0),t.stopCommand(Dn)})),function(t,e,n=t.getModel()){const r=n.get("settings")||{};n.set("settings",r),we(ne`
100
+ `,r),document.body.appendChild(r),t.on("load",(()=>{n.view.el.appendChild(r)}))),t.Commands.add(e.command,{run(){e.link&&window.open(e.link),e.attributes.containerClassName&&(n.set("visible",!0),r.classList.remove("gjs-hidden"),t.Canvas.getFrameEl().classList.add("silex-squeeze-left"))},stop(){e.attributes.containerClassName&&(n.set("visible",!1),r.classList.add("gjs-hidden"),t.Canvas.getFrameEl().classList.remove("silex-squeeze-left"))}})})),t.on("load device:select page",(()=>{!function(){const e=n.view.el,r=t.Canvas.getFrameEl();r.classList.remove("enable-squeeze"),setTimeout((()=>{const t=r.getClientRects()[0]?.left,n=e.getClientRects()[0]?.right;t<n||!n?r.classList.add("enable-squeeze"):r.classList.remove("enable-squeeze")}),400),n.get("visible")?r.classList.add("silex-squeeze-left"):r.classList.remove("silex-squeeze-left")}()}))},Nn=document.createElement("div");let In;const Dn="open-settings";let $n="v3";const Rn=nt.plugins.add("settings-dialog",((t,e)=>{try{$n="3.0.0-alpha.62"}catch(t){}console.info("Silex version:",$n),t.Commands.add(Dn,{run:(e,n,{page:r})=>{In=t.Modal.open({title:r?"Page settings":"Site Settings",content:"",attributes:{class:"settings-dialog"}}).onceClose((()=>{n.set("active",0),t.stopCommand(Dn)})),function(t,e,n=t.getModel()){const r=n.get("settings")||{};n.set("settings",r),we(ne`
101
101
  <p>The page settings will override site settings, <a href="https://github.com/silexlabs/Silex/wiki/Settings" target="_blank">more info about settings here</a>.</p>
102
102
  <form class="silex-form">
103
103
  <h2>General settings</h2>
@@ -319,4 +319,4 @@ var silex;(()=>{var t={357:function(t){var e;"undefined"!=typeof globalThis?glob
319
319
  @click=${()=>this.editor.Commands.stop(Zn)}
320
320
  >Close</button>
321
321
  </footer>
322
- `}}displayPending(t,e){this.errorMessage=null,this.renderDialog(t,e)}displayError(t,e,n){console.info(t),this.errorMessage=t,this.renderDialog(e,n)}async closeDialog(){this.isOpen=!1,this.renderDialog(null,null),this.sender&&this.sender.set("active",0),this.sender=null}async toggleDialog(){this.isOpen?this.closeDialog():this.openDialog()}async openDialog(){this.isOpen=!0;const t=this.editor.Panels.getPanel("options")?.view.el.querySelector(".publish-button");if(t){const e=t.getBoundingClientRect(),n=450,r=20,o=50;this.move({left:e.right-n-r,top:e.bottom+10,width:n,minHeight:o})}else console.error("Unable to find publish button");this.renderDialog(null,hr.STATUS_NONE)}}var er;function nr(t,e){t.Pages.getAll().forEach((t=>{t.getMainComponent().onAll((t=>e(t)))}))}!function(t){t.STARTUP_START="silex:startup:start",t.STARTUP_END="silex:startup:end",t.GRAPESJS_START="silex:grapesjs:start",t.GRAPESJS_END="silex:grapesjs:end",t.PUBLISH_START="silex:publish:start",t.PUBLISH_DATA="silex:publish:data",t.PUBLISH_END="silex:publish:end",t.PUBLISH_ERROR="silex:publish:error",t.PUBLISH_LOGIN_START="silex:publish:login:start",t.PUBLISH_LOGIN_END="silex:publish:login:end",t.ASSET_WRITE_END="silex:asset:write:end",t.WRITE_END="silex:write:end"}(er||(er={}));const rr="tmp-pre-publication-transformer-tohtml",or="tmp-pre-publication-transformer-src",ir="tmp-pre-publication-transformer-inline-css",sr="tmp-pre-publication-transformer-href",ar="tmp-pre-publication-transformer-tocss";function lr(t,e){const n=e["background-image"],r=n?.match(/url\(["']?(.*?)["']?\)/)?.pop();return r?{...e,"background-image":`url(${cr(t,r,$.ASSET)})`}:e}function cr(t,e,n){return t.getModel().get("config").publicationTransformers.reduce(((t,e)=>{try{return e.transformPermalink?e.transformPermalink(t,n)??t:t}catch(e){return console.error("Publication transformer: error transforming path",t,e),t}}),e)}function ur(t,e,n){return t.getModel().get("config").publicationTransformers.reduce(((t,e)=>{try{return e.transformPath?e.transformPath(t,n)??t:t}catch(e){return console.error("Publication transformer: error transforming path",t,e),t}}),e)}const pr="publish",dr="publish-login",fr="publish-logout";var hr;function gr(t,e){t.PublicationManager=new mr(t,e)}function vr(t){switch(t){case H.IN_PROGRESS:return hr.STATUS_PENDING;case H.ERROR:return hr.STATUS_ERROR;case H.SUCCESS:return hr.STATUS_SUCCESS}throw new Error(`Unknown job status ${t}`)}!function(t){t.STATUS_NONE="STATUS_NONE",t.STATUS_PENDING="STATUS_PENDING",t.STATUS_ERROR="STATUS_ERROR",t.STATUS_SUCCESS="STATUS_SUCCESS",t.STATUS_LOGGED_OUT="STATUS_AUTH_ERROR"}(hr||(hr={}));class mr{editor;dialog;_settings;get settings(){return this._settings}set settings(t){this._settings=t,this.dialog&&(this.dialog.settings=t)}options;job=null;status=hr.STATUS_NONE;constructor(t,e){this.editor=t,this.options={appendTo:"options",...e},t.on("storage:start:store",(t=>{t.publication=this.settings})),t.on("storage:end:load",(t=>{this.settings=t.publication??{},ze({type:R.HOSTING,connectorId:this.settings.connector?.connectorId}).then((t=>{})).catch((t=>{this.status=hr.STATUS_LOGGED_OUT,this.settings={},this.dialog&&this.dialog.displayError("Please login",this.job,this.status)}))})),t.Commands.add(pr,(()=>this.startPublication())),t.Commands.add(dr,((t,e,n)=>this.goLogin(n))),t.Commands.add(fr,(()=>this.goLogout())),this.options.appendTo?this.dialog=new tr(t,{appendTo:this.options.appendTo}):console.info("PublicationUi is disabled because no appendTo option is set")}async goLogin(t){this.settings={},this.status=hr.STATUS_LOGGED_OUT,this.dialog&&this.dialog.displayPending(this.job,this.status);const e=t.connectorId,n=t.type;return window.open(t.oauthUrl||`${f}${h}${y}?connectorId=${e}&type=${n}`,"_blank"),new Promise((e=>{const n=async e=>{const r=e.data;"login"===r?.type&&(window.removeEventListener("message",n),r.error?(this.status=hr.STATUS_LOGGED_OUT,this.settings={},this.dialog&&this.dialog.displayError(r.message,this.job,this.status)):(this.editor.trigger(er.PUBLISH_LOGIN_END),this.settings.connector=t,this.settings.options=r.options,this.status=hr.STATUS_NONE,this.editor.store(null),this.dialog&&this.dialog.displayPending(this.job,this.status)))};window.addEventListener("message",n,!1)}))}async goLogout(){try{await We({type:R.HOSTING,connectorId:this.settings.connector.connectorId}),this.settings={},this.dialog&&this.dialog.displayPending(this.job,this.status)}catch(t){console.error("logout error",t),this.status=hr.STATUS_ERROR,this.dialog&&this.dialog.displayError(t.message,this.job,this.status)}}async startPublication(){if(this.status===hr.STATUS_PENDING)throw new Error("Publication is already in progress");this.status=hr.STATUS_PENDING,this.job=null,this.dialog&&this.dialog.displayPending(this.job,this.status),this.editor.trigger(er.PUBLISH_START);const t=this.editor.getModel().get("user");if(!t)throw new Error("User not logged in to a storage connector");if(!this.settings.connector?.connectorId)throw new Error("User not logged in to a hosting connector");const e=this.options.websiteId,n=t.storage.connectorId;this.setPublicationTransformers();const r=this.editor.getProjectData(),o=this.editor.getModel().get("settings"),i=(await this.getHtmlFiles(o)).flatMap((t=>[{path:t.htmlPath,content:t.html,type:$.HTML},{path:t.cssPath,content:t.css,type:$.CSS}])).concat(r.assets.map((t=>{const e=t.src.replace(/^\/assets/,""),n=ur(this.editor,e,$.ASSET),r=cr(this.editor,e,$.ASSET);return{...t,path:n,src:r,type:$.ASSET}}))),s={...r,settings:o,publication:this.settings,files:i};this.resetPublicationTransformers(),function(t,e){const n=t.getModel().get("config");e.files=n.publicationTransformers.reduce(((t,n)=>t.map(((t,r)=>{try{return e.pages[r],n.transformFile?n.transformFile(t)??t:t}catch(e){return console.error("Publication transformer: error transforming file",t,e),t}}))),e.files)}(this.editor,s),this.editor.trigger(er.PUBLISH_DATA,s);try{const[t,r]=await qe({websiteId:e,hostingId:this.settings.connector.connectorId,storageId:n,data:s,options:this.settings.options});this.job=r,this.status=vr(this.job.status),this.trackProgress()}catch(t){return console.error("publish error",t),401===t.code||401===t.httpStatusCode?(this.status=hr.STATUS_LOGGED_OUT,this.settings={},this.dialog&&this.dialog.displayError("Please login.",this.job,this.status)):(this.status=hr.STATUS_ERROR,this.dialog&&this.dialog.displayError(`An error occured, your site is not published. ${t.message}`,this.job,this.status)),this.editor.trigger(er.PUBLISH_ERROR,{success:!1,message:t.message}),void this.editor.trigger(er.PUBLISH_END,{success:!1,message:t.message})}}async getHtmlFiles(t){return this.editor.Pages.getAll().map((e=>{const n=e.get("settings");function r(e){return(n||{})[e]||(t||[])[e]||""}const o=e.getMainComponent(),i=qn(e.get("name")),s=`/css/${i}.css`,a=`/${i}.html`,l=cr(this.editor,s,$.CSS),c=ur(this.editor,s,$.CSS),u=ur(this.editor,a,$.HTML);return{html:`\n <!DOCTYPE html>\n <html lang="${r("lang")}">\n <head>\n <link rel="stylesheet" href="${l}" />\n ${t?.head||""}\n ${n?.head||""}\n <title>${r("title")}</title>\n <link rel="icon" href="${r("favicon")}" />\n ${["description","og:title","og:description","og:image"].map((t=>`<meta property="${t}" content="${r(t)}"/>`)).join("\n")}\n </head>\n ${this.editor.getHtml({component:o})}\n </html>\n `,css:this.editor.getCss({component:o}),cssPath:c,htmlPath:u}}))}async trackProgress(){try{this.job=await Ge({jobId:this.job.jobId}),this.status=vr(this.job.status)}catch(t){return this.status=hr.STATUS_ERROR,this.dialog&&this.dialog.displayError(`An error occured, your site is not published. ${t.message}`,this.job,this.status),this.editor.trigger(er.PUBLISH_END,{success:!1,message:t.message}),void this.editor.trigger(er.PUBLISH_ERROR,{success:!1,message:t.message})}this.job.status===H.IN_PROGRESS?setTimeout((()=>this.trackProgress()),2e3):this.editor.trigger(er.PUBLISH_END,{success:this.job.status===H.SUCCESS,message:this.job.message}),this.dialog&&this.dialog.displayPending(this.job,this.status)}setPublicationTransformers(){!function(t){const e=t.getModel().get("config");nr(t,(n=>{if(n.get(rr))console.warn("Publication transformer: HTML transform already altered",n);else{const r=n.toHTML.bind(n);n[rr]=n.toHTML;const o=n.getStyle.bind(n);n[ir]=n.getStyle;const i=n.get("attributes").href;if(i?.startsWith("./")&&(n[sr]=i,n.set("attributes",{...n.get("attributes"),href:cr(t,i,$.HTML)})),n.get("attributes").src){n[or]=n.get("attributes").src;const e=cr(t,n.get("attributes").src,$.ASSET);n.set("attributes",{...n.get("attributes"),src:e})}n.toHTML=()=>e.publicationTransformers.reduce(((t,e)=>{try{return e.renderComponent?e.renderComponent(n,(()=>t))??t:t}catch(e){return console.error("Publication transformer: error rendering component",n,e),t}}),r()),n.getStyle=()=>lr(t,o())}}))}(this.editor),function(t){const e=t.getModel().get("config");t.Css.getAll().forEach((n=>{if(n[ar])console.warn("Publication transformer: CSS transform already altered",n);else{const r=n.getStyle.bind(n);n[ar]=n.getStyle,n.getStyle=()=>{try{const n=e.publicationTransformers.reduce(((t,e)=>({...e.renderCssRule?e.renderCssRule(t,r)??t:t})),lr(t,r()));return n}catch(t){return console.error("Publication transformer: error rendering style",n,t),r()}}}}))}(this.editor)}resetPublicationTransformers(){!function(t){nr(t,(t=>{t[rr]&&(t.toHTML=t[rr],delete t[rr]),t[ir]&&(t.getStyle=t[ir],delete t[ir]),t[or]&&(t.set("attributes",{...t.get("attributes"),src:t[or]}),delete t[or]),t[sr]&&(t.set("attributes",{...t.get("attributes"),href:t[sr]}),delete t[sr])}))}(this.editor),function(t){t.Css.getAll().forEach((t=>{t[ar]&&(t.getStyle=t[ar],delete t[ar])}))}(this.editor)}}const yr=[{name:"./project-bar",value:Ln},{name:"./settings",value:Rn},{name:"@silexlabs/grapesjs-fonts",value:He()},{name:"./new-page-dialog",value:Mn},{name:"./page-panel",value:Cn},{name:"grapesjs-blocks-basic",value:it()},{name:"./blocks",value:(t,e)=>{const n="container";t.BlockManager.add(n,{label:"Container",category:"Basics",attributes:{class:"container-png"},content:{type:n,style:{"min-height":"100px"}}}),t.DomComponents.addType(n,{})}},{name:"./semantic",value:zn},{name:"./rich-text",value:Wn},{name:"grapesjs-style-filter",value:at()},{name:"grapesjs-plugin-forms",value:ct()},{name:"grapesjs-custom-code",value:pt()},{name:"./internal-links",value:Yn},{name:"@silexlabs/grapesjs-ui-suggest-classes",value:ft()},{name:"./symbolDialogs",value:Ve},{name:"@silexlabs/grapesjs-symbols",value:Ie},{name:"./PublicationManager",value:gr},{name:"./storage",value:t=>{function e(e){const n="string"==typeof e?JSON.parse(e):e;if(console.error("Error with loading or saving website or uploading asset",n,n instanceof N),!(n instanceof N))return t.Modal.open({title:"Error",content:`An error occured.<br>${n.message}`});switch(console.error("ApiError",n.httpStatusCode,n.message),n.httpStatusCode){case 404:return t.Modal.open({title:"Website not found",content:`This website could not be found.<br><hr>${n.message}`});case 403:return t.Modal.open({title:"Access denied",content:`You are not allowed to access this website.<br><hr>${n.message}`});case 401:return void t.trigger(pn);default:return t.Modal.open({title:"Error",content:`An error occured.<br>${n.message}`})}}t.Storage.add("connector",{async load(e){try{const i=await dn(t)??await fn(t,R.STORAGE,e.connectorId);if(i){const t=await Je({websiteId:e.id,connectorId:i.storage.connectorId});return t.assets&&(t.assets=(n=t.assets,r=e.id,o=i.storage.connectorId,n.map((t=>({...t,src:V(t.src,r,o)}))))),t.pages&&(t.pages=function(t,e,n){return t.map((t=>({...t,frames:t.frames.map((t=>({...t,component:z(t.component,e,n)})))})))}(t.pages,e.id,i.storage.connectorId)),t.styles&&(t.styles=function(t,e,n){const r=/url\((["']?)([^"']+?)\1\)/g;return t.map((t=>{if(t.style&&t.style["background-image"]){const o=[...t.style["background-image"].matchAll(r)].map((t=>V(t[2],e,n)));return{...t,style:{...t.style,"background-image":o.map((t=>`url('${t}')`)).join(", ")}}}return t}))}(t.styles,e.id,i.storage.connectorId)),t}return new Promise(((n,r)=>{t.once(cn,(async()=>{try{t.StorageManager.setAutosave(!1);const r=await t.Storage.load(e);t.StorageManager.setAutosave(!0),n(r)}catch(t){console.error("connectorPlugin load error",t),r(t)}})),t.Commands.run(sn)}))}catch(t){throw console.error("connectorPlugin load error",t),t}var n,r,o},async store(e,n){try{if(await dn(t)){const r=await dn(t);e.assets=e.assets.map((t=>({...t,src:U(t.src)}))),e.pages=e.pages.map((t=>({...t,frames:t.frames.map((t=>({...t,component:W(t.component)})))}))),e.styles=function(t){const e=/url\((["']?)([^"']+?)\1\)/g;return t.map((t=>{if(t.style&&t.style["background-image"]){const n=[...t.style["background-image"].matchAll(e)].map((t=>U(t[2])));return{...t,style:{...t.style,"background-image":n.map((t=>`url('${t}')`)).join(", ")}}}return t}))}(e.styles),await Xe({websiteId:n.id,connectorId:r.storage.connectorId,data:e})}else t.once(cn,(()=>t.Storage.save(n))),t.Commands.run(sn)}catch(t){throw console.error("connectorPlugin store error",t),t}}}),t.on("storage:error:load",(t=>{e(t)})),t.on("storage:error:store",(t=>{e(t)})),t.on("asset:upload:end",(e=>{t.store()})),t.on("asset:upload:error",(t=>{e(t)}))}},{name:"./LoginDialog",value:vn},{name:"@silexlabs/grapesjs-loading",value:$e()},{name:"./breadcrumbs",value:function(t,e){let n;var r;function o(){let e=t.getSelected()??t.Pages.getSelected().getMainComponent();if(!n)return;for(n.innerHTML="";e;){const t=i(e);n.prepend(t),console.log(e,e.tagName),e=e.parent()}const r=document.createElement("span");r.innerHTML="<h3>Selection:&nbsp;</h3>",n.prepend(r)}function i(e){const n=document.createElement("span");return e.model,n.onclick=()=>{t.select(e)},n.classList.add("breadcrumb"),n.innerHTML=`<span>${e.get("tagName")}${e.getClasses().length?`.${e.getClasses().join(".")}`:""}</span>`,n}r=t=>{n=document.createElement("div"),n.id="breadcrumbs-container",t.prepend(n);const e=document.createElement("style");e.innerHTML='\n #breadcrumbs-container {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 2px 10px 0;\n font-size: 12px;\n color: #999;\n overflow-x: auto;\n overflow-y: hidden;\n }\n #breadcrumbs-container h3 {\n margin: 0;\n }\n #breadcrumbs-container .breadcrumb {\n margin: 5px;\n font-size: large;\n line-height: 1;\n cursor: pointer;\n white-space: nowrap;\n }\n #breadcrumbs-container .breadcrumb::after {\n content: "➔";\n margin-left: 10px;\n }\n\n #breadcrumbs-container .breadcrumb:last-child::after {\n content: "";\n }\n ',t.prepend(e),o()},mn?r(mn):bn.push(r),t.on("component:selected style:target component:drag:end",(()=>o()))}},{name:"./footer",value:function(t,e){const n=t.Panels.addPanel({id:"footer",visible:!0,buttons:[{id:"myNewButton",className:"someClass",command:"someCommand",attributes:{title:"Some title"},active:!1}]});setTimeout((()=>{mn=n.view?.el,bn.forEach((t=>t(mn))),bn=[]}))}}];yr.filter((t=>"function"!=typeof t.value)).forEach((t=>{throw new Error(`Plugin ${t.name} could not be loaded correctly (${t.value})`)}));const br="Containers",wr="Components";function _r(t,e,n){return{container:"#gjs",height:"100%",showOffsets:!0,showDevices:!0,layerManager:{appendTo:".layer-manager-container"},blockManager:{appendTo:".block-manager-container"},assetManager:{upload:`${n}${f}${S}${j}/?websiteId=${t}${e?`&connectorId=${e}`:""}`},storageManager:{autoload:!1,type:"connector",options:{connector:{id:t,connectorId:e}}},cssIcons:"/css/all.min.css",plugins:yr.map((t=>t.value)),pluginsOpts:{[it()]:{blocks:["text","image","video","map"],category:br},[Ln]:{panels:[{id:"dash",className:"logo",attributes:{title:"Go to your dashboard"},link:"/",command:"open-dash"},{id:"block-manager-btn",className:"block-manager-btn fa fa-fw fa-plus",attributes:{title:"Blocks",containerClassName:"block-manager-container"},command:"open-blocks"},{id:"symbols-btn",className:"symbols-btn fa-regular fa-gem",attributes:{title:"Symbols",containerClassName:"symbols-list-container"},command:"open-symbols",buttons:[{id:"symbol-create-button",className:"pages__add-page fa-solid fa-plus",label:"Create symbol from selection",command:Fe}]},{id:"page-panel-btn",className:"page-panel-btn fa fa-fw fa-file",attributes:{title:"Pages",containerClassName:"page-panel-container"},command:wn,buttons:[{className:"pages__add-page fa fa-file",command:_n,text:"+"}]},{id:"layer-manager-btn",className:"layer-manager-btn fa-solid fa-layer-group",attributes:{title:"Layers",containerClassName:"layer-manager-container"},command:"open-layers"},{id:"font-dialog-btn",className:"font-manager-btn fa-solid fa-font",attributes:{title:"Fonts"},command:Re.cmdOpenFonts},{id:"settings-dialog-btn",className:"page-panel-btn fa-solid fa-gears",attributes:{title:"Settings"},command:Dn},{id:"spacer",attributes:{},className:"project-bar-spacer"},{id:"logout-button",className:"page-panel-btn fa fa-fw fa-sign-out",attributes:{title:"Sign out"},command:an}]},[gr]:{appendTo:"options",websiteId:t},[Cn]:{cmdOpenNewPageDialog:jn,cmdOpenSettings:Dn,appendTo:".page-panel-container"},[ft()]:{enableCount:!1,enablePerformance:!1},[Yn]:{onError:t=>console.warn("Links errors:",t)},[pt()]:{blockLabel:"HTML",blockCustomCode:{category:wr}},[Ie]:{appendTo:".symbols-list-container"},[He()]:{api_key:"AIzaSyAdJTYSLPlKz4w5Iqyy-JAF2o8uQKd1FKc"},[vn]:{id:t}}}}let xr;async function Cr(t){if(xr)throw new Error("Grapesjs editor already created");return new Promise(((e,n)=>{try{xr=rt().init(t)}catch(t){console.error("Error initializing GrapesJs with plugins:",yr,t),n(t)}["text"].forEach((t=>xr.Blocks.get(t)?.set("category","Basics"))),["image","video"].forEach((t=>xr.Blocks.get(t)?.set("category","Media"))),["map"].forEach((t=>xr.Blocks.get(t)?.set("category","Components"))),xr.Blocks.render([]),xr.Commands.add("gjs-open-import-webpage",function(t,e){const n=t.getConfig("stylePrefix"),r=t.Modal,o=t.CodeManager.getViewer("CodeMirror").clone(),i=document.createElement("div"),s=e.modalImportLabel,a=e.modalImportContent;let l=o.editor;const c=document.createElement("button");return c.type="button",c.innerHTML=e.modalImportButton,c.className=`${n}btn-prim ${n}btn-import`,c.onclick=e=>{t.setComponents(l.getValue().trim()),r.close()},o.set({codeName:"htmlmixed",theme:"hopscotch",readOnly:0,...e.importViewerOptions}),{run(u){if(!l){const t=document.createElement("textarea");if(s){const t=document.createElement("div");t.className=`${n}import-label`,t.innerHTML=s,i.appendChild(t)}i.appendChild(t),i.appendChild(c),o.init(t),l=o.editor}r.setTitle(e.modalImportTitle),r.setContent(i);const p="function"==typeof a?a(t):a;o.setContent(p||""),r.open().getModel().once("change:open",(()=>t.stopCommand(this.id))),l.refresh()},stop(){r.close()}}}(xr,{modalImportLabel:"",modalImportContent:"Paste a web page HTML code here.",modalImportButton:"Import",modalImportTitle:"Import from website"})),xr.on("load",(()=>{xr.Panels.getPanel("views").buttons.remove("open-blocks"),xr.Panels.getPanel("views").buttons.remove("open-layers"),xr.Panels.getPanel("views").view.el.firstChild.style.justifyContent="initial",xr.Panels.getPanel("options").buttons.remove("export-template"),xr.BlockManager.render(null),xr.StyleManager.addProperty("extra",{extend:"filter"}),e(xr)}))}))}function Sr(){return xr}class Or extends et{api=o;websiteId=new URL(location.href).searchParams.get("id")??u;storageId=new URL(location.href).searchParams.get("connectorId");lang=new URL(location.href).searchParams.get("lang")??p;rootUrl=window.location.origin;debug=!1;grapesJsConfig;clientConfigUrl=`${this.rootUrl}/${d}`;initGrapesConfig(){this.grapesJsConfig=_r(this.websiteId,this.storageId,this.rootUrl)}getEditor(){return Sr()}publicationTransformers=[];addPublicationTransformers(t){Array.isArray(t)||(t=[t]),t.forEach((t=>{!function(t){const e=["renderComponent","renderCssRule","transformFile","transformPermalink","transformPath"];Object.keys(t).forEach((t=>{if(!e.includes(t))throw new Error(`Publication transformer: unknown property ${t}`)})),e.forEach((e=>{if("function"!=typeof t[e]&&void 0!==t[e])throw new Error(`Publication transformer: ${e} must be a function`)}))}(t)})),this.publicationTransformers=this.publicationTransformers.concat(t)}}async function Tr(t={}){const e=new Or;Object.assign(e,t),e.addPublicationTransformers(B),await e.addPlugin(e.clientConfigUrl,{}),e.debug&&console.warn("Silex starting in debug mode.",{config:e}),e.emit(er.STARTUP_START),e.initGrapesConfig(),e.emit(er.GRAPESJS_START);try{await Cr(e.grapesJsConfig)}catch(t){throw console.error("Error starting Silex",t),t}const n=Sr();n.getModel().set("config",e),e.emit(er.GRAPESJS_END,{editor:n}),n.I18n.setLocale(e.lang),n.StorageManager.setAutosave(!1);try{await n.load(null)}catch(t){t.httpStatusCode}finally{setTimeout((()=>{n.editor.set("changesCount",0),n.StorageManager.setAutosave(!0),document.querySelector(".silex-loader").classList.add("silex-dialog-hide"),document.querySelector("#gjs").classList.remove("silex-dialog-hide"),e.emit(er.STARTUP_END,{editor:n,config:e})}),100)}}console.info("\nSilex client loaded\n")})(),silex=r})();
322
+ `}}displayPending(t,e){this.errorMessage=null,this.renderDialog(t,e)}displayError(t,e,n){console.info(t),this.errorMessage=t,this.renderDialog(e,n)}async closeDialog(){this.isOpen=!1,this.renderDialog(null,null),this.sender&&this.sender.set("active",0),this.sender=null}async toggleDialog(){this.isOpen?this.closeDialog():this.openDialog()}async openDialog(){this.isOpen=!0;const t=this.editor.Panels.getPanel("options")?.view.el.querySelector(".publish-button");if(t){const e=t.getBoundingClientRect(),n=450,r=20,o=50;this.move({left:e.right-n-r,top:e.bottom+10,width:n,minHeight:o})}else console.error("Unable to find publish button");this.renderDialog(null,hr.STATUS_NONE)}}var er;function nr(t,e){t.Pages.getAll().forEach((t=>{t.getMainComponent().onAll((t=>e(t)))}))}!function(t){t.STARTUP_START="silex:startup:start",t.STARTUP_END="silex:startup:end",t.GRAPESJS_START="silex:grapesjs:start",t.GRAPESJS_END="silex:grapesjs:end",t.PUBLISH_START="silex:publish:start",t.PUBLISH_DATA="silex:publish:data",t.PUBLISH_END="silex:publish:end",t.PUBLISH_ERROR="silex:publish:error",t.PUBLISH_LOGIN_START="silex:publish:login:start",t.PUBLISH_LOGIN_END="silex:publish:login:end",t.ASSET_WRITE_END="silex:asset:write:end",t.WRITE_END="silex:write:end"}(er||(er={}));const rr="tmp-pre-publication-transformer-tohtml",or="tmp-pre-publication-transformer-src",ir="tmp-pre-publication-transformer-inline-css",sr="tmp-pre-publication-transformer-href",ar="tmp-pre-publication-transformer-tocss";function lr(t,e){const n=e["background-image"],r=n?.match(/url\(["']?(.*?)["']?\)/)?.pop();return r?{...e,"background-image":`url(${cr(t,r,$.ASSET)})`}:e}function cr(t,e,n){return t.getModel().get("config").publicationTransformers.reduce(((t,e)=>{try{return e.transformPermalink?e.transformPermalink(t,n)??t:t}catch(e){return console.error("Publication transformer: error transforming path",t,e),t}}),e)}function ur(t,e,n){return t.getModel().get("config").publicationTransformers.reduce(((t,e)=>{try{return e.transformPath?e.transformPath(t,n)??t:t}catch(e){return console.error("Publication transformer: error transforming path",t,e),t}}),e)}const pr="publish",dr="publish-login",fr="publish-logout";var hr;function gr(t,e){t.PublicationManager=new mr(t,e)}function vr(t){switch(t){case H.IN_PROGRESS:return hr.STATUS_PENDING;case H.ERROR:return hr.STATUS_ERROR;case H.SUCCESS:return hr.STATUS_SUCCESS}throw new Error(`Unknown job status ${t}`)}!function(t){t.STATUS_NONE="STATUS_NONE",t.STATUS_PENDING="STATUS_PENDING",t.STATUS_ERROR="STATUS_ERROR",t.STATUS_SUCCESS="STATUS_SUCCESS",t.STATUS_LOGGED_OUT="STATUS_AUTH_ERROR"}(hr||(hr={}));class mr{editor;dialog;_settings;get settings(){return this._settings}set settings(t){this._settings=t,this.dialog&&(this.dialog.settings=t)}options;job=null;status=hr.STATUS_NONE;constructor(t,e){this.editor=t,this.options={appendTo:"options",...e},t.on("storage:start:store",(t=>{t.publication=this.settings})),t.on("storage:end:load",(t=>{this.settings=t.publication??{},ze({type:R.HOSTING,connectorId:this.settings.connector?.connectorId}).then((t=>{})).catch((t=>{this.status=hr.STATUS_LOGGED_OUT,this.settings={},this.dialog&&this.dialog.displayError("Please login",this.job,this.status)}))})),t.Commands.add(pr,(()=>this.startPublication())),t.Commands.add(dr,((t,e,n)=>this.goLogin(n))),t.Commands.add(fr,(()=>this.goLogout())),this.options.appendTo?this.dialog=new tr(t,{appendTo:this.options.appendTo}):console.info("PublicationUi is disabled because no appendTo option is set")}async goLogin(t){this.settings={},this.status=hr.STATUS_LOGGED_OUT,this.dialog&&this.dialog.displayPending(this.job,this.status);const e=t.connectorId,n=t.type;return window.open(t.oauthUrl||`${f}${h}${y}?connectorId=${e}&type=${n}`,"_blank"),new Promise((e=>{const n=async e=>{const r=e.data;"login"===r?.type&&(window.removeEventListener("message",n),r.error?(this.status=hr.STATUS_LOGGED_OUT,this.settings={},this.dialog&&this.dialog.displayError(r.message,this.job,this.status)):(this.editor.trigger(er.PUBLISH_LOGIN_END),this.settings.connector=t,this.settings.options=r.options,this.status=hr.STATUS_NONE,this.editor.store(null),this.dialog&&this.dialog.displayPending(this.job,this.status)))};window.addEventListener("message",n,!1)}))}async goLogout(){try{await We({type:R.HOSTING,connectorId:this.settings.connector.connectorId}),this.settings={},this.dialog&&this.dialog.displayPending(this.job,this.status)}catch(t){console.error("logout error",t),this.status=hr.STATUS_ERROR,this.dialog&&this.dialog.displayError(t.message,this.job,this.status)}}async startPublication(){if(this.status===hr.STATUS_PENDING)throw new Error("Publication is already in progress");this.status=hr.STATUS_PENDING,this.job=null,this.dialog&&this.dialog.displayPending(this.job,this.status),this.editor.trigger(er.PUBLISH_START);const t=this.editor.getModel().get("user");if(!t)throw new Error("User not logged in to a storage connector");if(!this.settings.connector?.connectorId)throw new Error("User not logged in to a hosting connector");const e=this.options.websiteId,n=t.storage.connectorId;this.setPublicationTransformers();const r=this.editor.getProjectData(),o=this.editor.getModel().get("settings"),i=(await this.getHtmlFiles(o)).flatMap((t=>[{path:t.htmlPath,content:t.html,type:$.HTML},{path:t.cssPath,content:t.css,type:$.CSS}])).concat(r.assets.map((t=>{const e=t.src.replace(/^\/assets/,""),n=ur(this.editor,e,$.ASSET),r=cr(this.editor,e,$.ASSET);return{...t,path:n,src:r,type:$.ASSET}}))),s={...r,settings:o,publication:this.settings,files:i};this.resetPublicationTransformers(),function(t,e){const n=t.getModel().get("config");e.files=n.publicationTransformers.reduce(((t,n)=>t.map(((t,r)=>{try{return e.pages[r],n.transformFile?n.transformFile(t)??t:t}catch(e){return console.error("Publication transformer: error transforming file",t,e),t}}))),e.files)}(this.editor,s),this.editor.trigger(er.PUBLISH_DATA,s);try{const[t,r]=await qe({websiteId:e,hostingId:this.settings.connector.connectorId,storageId:n,data:s,options:this.settings.options});this.job=r,this.status=vr(this.job.status),this.trackProgress()}catch(t){return console.error("publish error",t),401===t.code||401===t.httpStatusCode?(this.status=hr.STATUS_LOGGED_OUT,this.settings={},this.dialog&&this.dialog.displayError("Please login.",this.job,this.status)):(this.status=hr.STATUS_ERROR,this.dialog&&this.dialog.displayError(`An error occured, your site is not published. ${t.message}`,this.job,this.status)),this.editor.trigger(er.PUBLISH_ERROR,{success:!1,message:t.message}),void this.editor.trigger(er.PUBLISH_END,{success:!1,message:t.message})}}async getHtmlFiles(t){return this.editor.Pages.getAll().map((e=>{const n=e.get("settings");function r(e){return(n||{})[e]||(t||[])[e]||""}const o=e.getMainComponent(),i=qn(e.get("name")),s=`/css/${i}.css`,a=`/${i}.html`,l=cr(this.editor,s,$.CSS),c=ur(this.editor,s,$.CSS),u=ur(this.editor,a,$.HTML);return{html:`\n <!DOCTYPE html>\n <html lang="${r("lang")}">\n <head>\n <link rel="stylesheet" href="${l}" />\n ${t?.head||""}\n ${n?.head||""}\n <title>${r("title")}</title>\n <link rel="icon" href="${r("favicon")}" />\n ${["description","og:title","og:description","og:image"].map((t=>`<meta property="${t}" content="${r(t)}"/>`)).join("\n")}\n </head>\n ${this.editor.getHtml({component:o})}\n </html>\n `,css:this.editor.getCss({component:o}),cssPath:c,htmlPath:u}}))}async trackProgress(){try{this.job=await Ge({jobId:this.job.jobId}),this.status=vr(this.job.status)}catch(t){return this.status=hr.STATUS_ERROR,this.dialog&&this.dialog.displayError(`An error occured, your site is not published. ${t.message}`,this.job,this.status),this.editor.trigger(er.PUBLISH_END,{success:!1,message:t.message}),void this.editor.trigger(er.PUBLISH_ERROR,{success:!1,message:t.message})}this.job.status===H.IN_PROGRESS?setTimeout((()=>this.trackProgress()),2e3):this.editor.trigger(er.PUBLISH_END,{success:this.job.status===H.SUCCESS,message:this.job.message}),this.dialog&&this.dialog.displayPending(this.job,this.status)}setPublicationTransformers(){!function(t){const e=t.getModel().get("config");nr(t,(n=>{if(n.get(rr))console.warn("Publication transformer: HTML transform already altered",n);else{const r=n.toHTML.bind(n);n[rr]=n.toHTML;const o=n.getStyle.bind(n);n[ir]=n.getStyle;const i=n.get("attributes").href;if(i?.startsWith("./")&&(n[sr]=i,n.set("attributes",{...n.get("attributes"),href:cr(t,i,$.HTML)})),n.get("attributes").src){n[or]=n.get("attributes").src;const e=cr(t,n.get("attributes").src,$.ASSET);n.set("attributes",{...n.get("attributes"),src:e})}n.toHTML=()=>e.publicationTransformers.reduce(((t,e)=>{try{return e.renderComponent?e.renderComponent(n,(()=>t))??t:t}catch(e){return console.error("Publication transformer: error rendering component",n,e),t}}),r()),n.getStyle=()=>lr(t,o())}}))}(this.editor),function(t){const e=t.getModel().get("config");t.Css.getAll().forEach((n=>{if(n[ar])console.warn("Publication transformer: CSS transform already altered",n);else{const r=n.getStyle.bind(n);n[ar]=n.getStyle,n.getStyle=()=>{try{const n=e.publicationTransformers.reduce(((t,e)=>({...e.renderCssRule?e.renderCssRule(t,r)??t:t})),lr(t,r()));return n}catch(t){return console.error("Publication transformer: error rendering style",n,t),r()}}}}))}(this.editor)}resetPublicationTransformers(){!function(t){nr(t,(t=>{t[rr]&&(t.toHTML=t[rr],delete t[rr]),t[ir]&&(t.getStyle=t[ir],delete t[ir]),t[or]&&(t.set("attributes",{...t.get("attributes"),src:t[or]}),delete t[or]),t[sr]&&(t.set("attributes",{...t.get("attributes"),href:t[sr]}),delete t[sr])}))}(this.editor),function(t){t.Css.getAll().forEach((t=>{t[ar]&&(t.getStyle=t[ar],delete t[ar])}))}(this.editor)}}const yr=[{name:"./project-bar",value:Ln},{name:"./settings",value:Rn},{name:"@silexlabs/grapesjs-fonts",value:He()},{name:"./new-page-dialog",value:Mn},{name:"./page-panel",value:Cn},{name:"grapesjs-blocks-basic",value:it()},{name:"./blocks",value:(t,e)=>{const n="container";t.BlockManager.add(n,{label:"Container",category:"Basics",attributes:{class:"container-png"},content:{type:n,style:{"min-height":"100px"}}}),t.DomComponents.addType(n,{})}},{name:"./semantic",value:zn},{name:"./rich-text",value:Wn},{name:"grapesjs-style-filter",value:at()},{name:"grapesjs-plugin-forms",value:ct()},{name:"grapesjs-custom-code",value:pt()},{name:"./internal-links",value:Yn},{name:"@silexlabs/grapesjs-ui-suggest-classes",value:ft()},{name:"./symbolDialogs",value:Ve},{name:"@silexlabs/grapesjs-symbols",value:Ie},{name:"./PublicationManager",value:gr},{name:"./storage",value:t=>{function e(e){const n="string"==typeof e?JSON.parse(e):e;if(console.error("Error with loading or saving website or uploading asset",n,n instanceof N),!(n instanceof N))return t.Modal.open({title:"Error",content:`An error occured.<br>${n.message}`});switch(console.error("ApiError",n.httpStatusCode,n.message),n.httpStatusCode){case 404:return t.Modal.open({title:"Website not found",content:`This website could not be found.<br><hr>${n.message}`});case 403:return t.Modal.open({title:"Access denied",content:`You are not allowed to access this website.<br><hr>${n.message}`});case 401:return void t.trigger(pn);default:return t.Modal.open({title:"Error",content:`An error occured.<br>${n.message}`})}}t.Storage.add("connector",{async load(e){try{const i=await dn(t)??await fn(t,R.STORAGE,e.connectorId);if(i){const t=await Je({websiteId:e.id,connectorId:i.storage.connectorId});return t.assets&&(t.assets=(n=t.assets,r=e.id,o=i.storage.connectorId,n.map((t=>({...t,src:V(t.src,r,o)}))))),t.pages&&(t.pages=function(t,e,n){return t.map((t=>({...t,frames:t.frames.map((t=>({...t,component:z(t.component,e,n)})))})))}(t.pages,e.id,i.storage.connectorId)),t.styles&&(t.styles=function(t,e,n){const r=/url\((["']?)([^"']+?)\1\)/g;return t.map((t=>{if(t.style&&t.style["background-image"]){const o=[...t.style["background-image"].matchAll(r)].map((t=>V(t[2],e,n)));return{...t,style:{...t.style,"background-image":o.map((t=>`url('${t}')`)).join(", ")}}}return t}))}(t.styles,e.id,i.storage.connectorId)),t}return new Promise(((n,r)=>{t.once(cn,(async()=>{try{t.StorageManager.setAutosave(!1);const r=await t.Storage.load(e);t.StorageManager.setAutosave(!0),n(r)}catch(t){console.error("connectorPlugin load error",t),r(t)}})),t.Commands.run(sn)}))}catch(t){throw console.error("connectorPlugin load error",t),t}var n,r,o},async store(e,n){try{if(await dn(t)){const r=await dn(t);e.assets=e.assets.map((t=>({...t,src:U(t.src)}))),e.pages=e.pages.map((t=>({...t,frames:t.frames.map((t=>({...t,component:W(t.component)})))}))),e.styles=function(t){const e=/url\((["']?)([^"']+?)\1\)/g;return t.map((t=>{if(t.style&&t.style["background-image"]){const n=[...t.style["background-image"].matchAll(e)].map((t=>U(t[2])));return{...t,style:{...t.style,"background-image":n.map((t=>`url('${t}')`)).join(", ")}}}return t}))}(e.styles),await Xe({websiteId:n.id,connectorId:r.storage.connectorId,data:e})}else t.once(cn,(()=>t.Storage.save(n))),t.Commands.run(sn)}catch(t){throw console.error("connectorPlugin store error",t),t}}}),t.on("storage:error:load",(t=>{e(t)})),t.on("storage:error:store",(t=>{e(t)})),t.on("asset:upload:end",(e=>{t.store()})),t.on("asset:upload:error",(t=>{e(t)}))}},{name:"./LoginDialog",value:vn},{name:"@silexlabs/grapesjs-loading",value:$e()},{name:"./breadcrumbs",value:function(t,e){let n;var r;function o(){let e=t.getSelected()??t.Pages.getSelected().getMainComponent();if(!n)return;for(n.innerHTML="";e;){const t=i(e);n.prepend(t),console.log(e,e.tagName),e=e.parent()}const r=document.createElement("span");r.innerHTML="<h3>Selection:&nbsp;</h3>",n.prepend(r)}function i(e){const n=document.createElement("span");return e.model,n.onclick=()=>{t.select(e)},n.classList.add("breadcrumb"),n.innerHTML=`<span>${e.getName()??e.get("tagName")}</span>`,n}r=t=>{n=document.createElement("div"),n.id="breadcrumbs-container",t.prepend(n);const e=document.createElement("style");e.innerHTML='\n #breadcrumbs-container {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 5px 10px 0;\n font-size: 12px;\n color: #999;\n overflow-x: auto;\n overflow-y: hidden;\n }\n #breadcrumbs-container h3 {\n margin: 0;\n }\n #breadcrumbs-container .breadcrumb {\n margin: 5px;\n font-size: 15px;\n line-height: 1;\n cursor: pointer;\n white-space: nowrap;\n }\n #breadcrumbs-container .breadcrumb::after {\n content: "➔";\n margin-left: 10px;\n }\n\n #breadcrumbs-container .breadcrumb:last-child::after {\n content: "";\n }\n ',t.prepend(e),o()},mn?r(mn):bn.push(r),t.on("component:selected style:target component:drag:end",(()=>o()))}},{name:"./footer",value:function(t,e){const n=t.Panels.addPanel({id:"footer",visible:!0,buttons:[{id:"myNewButton",className:"someClass",command:"someCommand",attributes:{title:"Some title"},active:!1}]});setTimeout((()=>{mn=n.view?.el,bn.forEach((t=>t(mn))),bn=[]}))}}];yr.filter((t=>"function"!=typeof t.value)).forEach((t=>{throw new Error(`Plugin ${t.name} could not be loaded correctly (${t.value})`)}));const br="Containers",wr="Components";function _r(t,e,n){return{container:"#gjs",height:"100%",showOffsets:!0,showDevices:!0,layerManager:{appendTo:".layer-manager-container"},blockManager:{appendTo:".block-manager-container"},assetManager:{upload:`${n}${f}${S}${j}/?websiteId=${t}${e?`&connectorId=${e}`:""}`},storageManager:{autoload:!1,type:"connector",options:{connector:{id:t,connectorId:e}}},cssIcons:"/css/all.min.css",canvasCss:"\n :root {\n --primaryColor: #333333;\n --secondaryColor: #ddd;\n --tertiaryColor: #8873FE;\n --quaternaryColor: #56E3FF;\n --darkerPrimaryColor: #363636;\n --lighterPrimaryColor: #575757;\n }\n .gjs-frame-selected {\n box-shadow: 0 0 0 2px rgba(255, 0, 0, 0.5) !important; // Change to red border\n }\n .gjs-selected {\n outline: 2px solid var(--tertiaryColor) !important;\n outline-offset: -2px;\n }\n .gjs-tools .gjs-badge { /* for the label */\n background-color: red;\n }\n .gjs-toolbar { /* for the toolbar */\n background-color: red;\n }\n ",plugins:yr.map((t=>t.value)),pluginsOpts:{[it()]:{blocks:["text","image","video","map"],category:br},[Ln]:{panels:[{id:"dash",className:"logo",attributes:{title:"Dashboard"},link:"/",command:"open-dash"},{id:"block-manager-btn",className:"block-manager-btn fa fa-fw fa-plus",attributes:{title:"Blocks",containerClassName:"block-manager-container"},command:"open-blocks"},{id:"symbols-btn",className:"symbols-btn fa-regular fa-gem",attributes:{title:"Symbols",containerClassName:"symbols-list-container"},command:"open-symbols",buttons:[{id:"symbol-create-button",className:"pages__add-page fa-solid fa-plus",label:"Create symbol from selection",command:Fe}]},{id:"page-panel-btn",className:"page-panel-btn fa fa-fw fa-file",attributes:{title:"Pages",containerClassName:"page-panel-container"},command:wn,buttons:[{className:"pages__add-page fa fa-file",command:_n,text:"+"}]},{id:"layer-manager-btn",className:"layer-manager-btn fa-solid fa-layer-group",attributes:{title:"Layers",containerClassName:"layer-manager-container"},command:"open-layers"},{id:"font-dialog-btn",className:"font-manager-btn fa-solid fa-font",attributes:{title:"Fonts"},command:Re.cmdOpenFonts},{id:"settings-dialog-btn",className:"page-panel-btn fa-solid fa-gears",attributes:{title:"Settings"},command:Dn},{id:"spacer",attributes:{},className:"project-bar-spacer"},{id:"dash2",className:"fa-solid fa-house",attributes:{title:"Dashboard"},link:"/",command:"open-dash"},{id:"help",className:"fa fa-fw fa-question-circle",attributes:{title:"Documentation"},link:"https://docs.silex.me/",command:"open-help"},{id:"logout-button",className:"page-panel-btn fa fa-fw fa-sign-out",attributes:{title:"Sign out"},command:an}]},[gr]:{appendTo:"options",websiteId:t},[Cn]:{cmdOpenNewPageDialog:jn,cmdOpenSettings:Dn,appendTo:".page-panel-container"},[ft()]:{enableCount:!1,enablePerformance:!1},[Yn]:{onError:t=>console.warn("Links errors:",t)},[pt()]:{blockLabel:"HTML",blockCustomCode:{category:wr}},[Ie]:{appendTo:".symbols-list-container"},[He()]:{api_key:"AIzaSyAdJTYSLPlKz4w5Iqyy-JAF2o8uQKd1FKc"},[vn]:{id:t}}}}let xr;async function Cr(t){if(xr)throw new Error("Grapesjs editor already created");return new Promise(((e,n)=>{try{xr=rt().init(t)}catch(t){console.error("Error initializing GrapesJs with plugins:",yr,t),n(t)}["text"].forEach((t=>xr.Blocks.get(t)?.set("category","Basics"))),["image","video"].forEach((t=>xr.Blocks.get(t)?.set("category","Media"))),["map"].forEach((t=>xr.Blocks.get(t)?.set("category","Components"))),xr.Blocks.render([]),xr.Commands.add("gjs-open-import-webpage",function(t,e){const n=t.getConfig("stylePrefix"),r=t.Modal,o=t.CodeManager.getViewer("CodeMirror").clone(),i=document.createElement("div"),s=e.modalImportLabel,a=e.modalImportContent;let l=o.editor;const c=document.createElement("button");return c.type="button",c.innerHTML=e.modalImportButton,c.className=`${n}btn-prim ${n}btn-import`,c.onclick=e=>{t.setComponents(l.getValue().trim()),r.close()},o.set({codeName:"htmlmixed",theme:"hopscotch",readOnly:0,...e.importViewerOptions}),{run(u){if(!l){const t=document.createElement("textarea");if(s){const t=document.createElement("div");t.className=`${n}import-label`,t.innerHTML=s,i.appendChild(t)}i.appendChild(t),i.appendChild(c),o.init(t),l=o.editor}r.setTitle(e.modalImportTitle),r.setContent(i);const p="function"==typeof a?a(t):a;o.setContent(p||""),r.open().getModel().once("change:open",(()=>t.stopCommand(this.id))),l.refresh()},stop(){r.close()}}}(xr,{modalImportLabel:"",modalImportContent:"Paste a web page HTML code here.",modalImportButton:"Import",modalImportTitle:"Import from website"})),xr.on("load",(()=>{xr.Panels.getPanel("views").buttons.remove("open-blocks"),xr.Panels.getPanel("views").buttons.remove("open-layers"),xr.Panels.getPanel("views").view.el.firstChild.style.justifyContent="initial",xr.Panels.getPanel("options").buttons.remove("export-template"),xr.BlockManager.render(null),xr.StyleManager.addProperty("extra",{extend:"filter"}),e(xr)}))}))}function Sr(){return xr}class Or extends et{api=o;websiteId=new URL(location.href).searchParams.get("id")??u;storageId=new URL(location.href).searchParams.get("connectorId");lang=new URL(location.href).searchParams.get("lang")??p;rootUrl=window.location.origin;debug=!1;grapesJsConfig;clientConfigUrl=`${this.rootUrl}/${d}`;initGrapesConfig(){this.grapesJsConfig=_r(this.websiteId,this.storageId,this.rootUrl)}getEditor(){return Sr()}publicationTransformers=[];addPublicationTransformers(t){Array.isArray(t)||(t=[t]),t.forEach((t=>{!function(t){const e=["renderComponent","renderCssRule","transformFile","transformPermalink","transformPath"];Object.keys(t).forEach((t=>{if(!e.includes(t))throw new Error(`Publication transformer: unknown property ${t}`)})),e.forEach((e=>{if("function"!=typeof t[e]&&void 0!==t[e])throw new Error(`Publication transformer: ${e} must be a function`)}))}(t)})),this.publicationTransformers=this.publicationTransformers.concat(t)}}async function Tr(t={}){const e=new Or;Object.assign(e,t),e.addPublicationTransformers(B),await e.addPlugin(e.clientConfigUrl,{}),e.debug&&console.warn("Silex starting in debug mode.",{config:e}),e.emit(er.STARTUP_START),e.initGrapesConfig(),e.emit(er.GRAPESJS_START);try{await Cr(e.grapesJsConfig)}catch(t){throw console.error("Error starting Silex",t),t}const n=Sr();n.getModel().set("config",e),e.emit(er.GRAPESJS_END,{editor:n}),n.I18n.setLocale(e.lang),n.StorageManager.setAutosave(!1);try{await n.load(null)}catch(t){t.httpStatusCode}finally{setTimeout((()=>{n.editor.set("changesCount",0),n.StorageManager.setAutosave(!0),document.querySelector(".silex-loader").classList.add("silex-dialog-hide"),document.querySelector("#gjs").classList.remove("silex-dialog-hide"),e.emit(er.STARTUP_END,{editor:n,config:e})}),100)}}console.info("\nSilex client loaded\n")})(),silex=r})();
@@ -13,7 +13,7 @@ export default function (editor, options) {
13
13
  display: flex;
14
14
  align-items: center;
15
15
  height: 100%;
16
- padding: 2px 10px 0;
16
+ padding: 5px 10px 0;
17
17
  font-size: 12px;
18
18
  color: #999;
19
19
  overflow-x: auto;
@@ -24,7 +24,7 @@ export default function (editor, options) {
24
24
  }
25
25
  #breadcrumbs-container .breadcrumb {
26
26
  margin: 5px;
27
- font-size: large;
27
+ font-size: 15px;
28
28
  line-height: 1;
29
29
  cursor: pointer;
30
30
  white-space: nowrap;
@@ -68,7 +68,7 @@ export default function (editor, options) {
68
68
  editor.select(component);
69
69
  };
70
70
  breadcrumb.classList.add('breadcrumb');
71
- breadcrumb.innerHTML = `<span>${component.get('tagName')}${component.getClasses().length ? `.${component.getClasses().join('.')}` : ''}</span>`;
71
+ breadcrumb.innerHTML = `<span>${component.getName() ?? component.get('tagName')}</span>`;
72
72
  return breadcrumb;
73
73
  }
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/breadcrumbs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,OAAO;IACtC,IAAI,oBAAoB,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,uCAAuC;QACvC,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACpD,oBAAoB,CAAC,EAAE,GAAG,uBAAuB,CAAA;QACjD,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACpC,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACzD,iBAAiB,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6B7B,CAAA;QACD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QACjC,iBAAiB,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;IACF,6DAA6D;IAE7D,MAAM,CAAC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC1F,SAAS,iBAAiB;QACxB,IAAI,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,CAAA;QAErF,IAAG,CAAC,oBAAoB;YAAE,OAAM;QAEhC,kCAAkC;QAClC,oBAAoB,CAAC,SAAS,GAAG,EAAE,CAAA;QAEnC,yEAAyE;QACzE,OAAO,SAAS,EAAE;YAChB,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;YAC9C,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACxC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;YACzC,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAA;SAC/B;QAED,QAAQ;QACR,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC5C,KAAK,CAAC,SAAS,GAAG,2BAA2B,CAAA;QAC7C,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IACD,SAAS,gBAAgB,CAAC,SAAS;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;QAC7B,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC,CAAA;QACD,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACtC,UAAU,CAAC,SAAS,GAAG,SAAS,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAA;QAC/I,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/breadcrumbs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,CAAC,OAAO,WAAW,MAAM,EAAE,OAAO;IACtC,IAAI,oBAAoB,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,uCAAuC;QACvC,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACpD,oBAAoB,CAAC,EAAE,GAAG,uBAAuB,CAAA;QACjD,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACpC,yBAAyB;QACzB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACzD,iBAAiB,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA6B7B,CAAA;QACD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QACjC,iBAAiB,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;IACF,6DAA6D;IAE7D,MAAM,CAAC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC1F,SAAS,iBAAiB;QACxB,IAAI,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,gBAAgB,EAAE,CAAA;QAErF,IAAG,CAAC,oBAAoB;YAAE,OAAM;QAEhC,kCAAkC;QAClC,oBAAoB,CAAC,SAAS,GAAG,EAAE,CAAA;QAEnC,yEAAyE;QACzE,OAAO,SAAS,EAAE;YAChB,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAA;YAC9C,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACxC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;YACzC,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAA;SAC/B;QAED,QAAQ;QACR,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC5C,KAAK,CAAC,SAAS,GAAG,2BAA2B,CAAA;QAC7C,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC;IACD,SAAS,gBAAgB,CAAC,SAAS;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;QAC7B,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE;YACxB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC,CAAA;QACD,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACtC,UAAU,CAAC,SAAS,GAAG,SAAS,SAAS,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAA;QACxF,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC"}
@@ -113,6 +113,29 @@ export function getEditorConfig(id, connectorId, rootUrl) {
113
113
  },
114
114
  },
115
115
  cssIcons: '/css/all.min.css',
116
+ canvasCss: `
117
+ :root {
118
+ --primaryColor: #333333;
119
+ --secondaryColor: #ddd;
120
+ --tertiaryColor: #8873FE;
121
+ --quaternaryColor: #56E3FF;
122
+ --darkerPrimaryColor: #363636;
123
+ --lighterPrimaryColor: #575757;
124
+ }
125
+ .gjs-frame-selected {
126
+ box-shadow: 0 0 0 2px rgba(255, 0, 0, 0.5) !important; // Change to red border
127
+ }
128
+ .gjs-selected {
129
+ outline: 2px solid var(--tertiaryColor) !important;
130
+ outline-offset: -2px;
131
+ }
132
+ .gjs-tools .gjs-badge { /* for the label */
133
+ background-color: red;
134
+ }
135
+ .gjs-toolbar { /* for the toolbar */
136
+ background-color: red;
137
+ }
138
+ `,
116
139
  plugins: plugins.map(p => p.value),
117
140
  pluginsOpts: {
118
141
  [blocksBasicPlugin]: {
@@ -125,7 +148,7 @@ export function getEditorConfig(id, connectorId, rootUrl) {
125
148
  {
126
149
  id: 'dash',
127
150
  className: 'logo',
128
- attributes: { title: 'Go to your dashboard' },
151
+ attributes: { title: 'Dashboard' },
129
152
  link: '/',
130
153
  command: 'open-dash',
131
154
  }, {
@@ -175,6 +198,18 @@ export function getEditorConfig(id, connectorId, rootUrl) {
175
198
  id: 'spacer',
176
199
  attributes: {},
177
200
  className: 'project-bar-spacer',
201
+ }, {
202
+ id: 'dash2',
203
+ className: 'fa-solid fa-house',
204
+ attributes: { title: 'Dashboard' },
205
+ link: '/',
206
+ command: 'open-dash',
207
+ }, {
208
+ id: 'help',
209
+ className: 'fa fa-fw fa-question-circle',
210
+ attributes: { title: 'Documentation' },
211
+ link: 'https://docs.silex.me/',
212
+ command: 'open-help',
178
213
  }, {
179
214
  id: 'logout-button',
180
215
  className: 'page-panel-btn fa fa-fw fa-sign-out',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/index.ts"],"names":[],"mappings":"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"}
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.0-alpha.61",
4
+ "version": "3.0.0-alpha.62",
5
5
  "version:backwardcompat": "3.0.0",
6
6
  "author": {
7
7
  "name": "Alex Hoyau",
@@ -101,6 +101,7 @@
101
101
  },
102
102
  "dependencies": {
103
103
  "@directus/sdk": "10.3.3",
104
+ "@fontsource/ubuntu": "^5.0.5",
104
105
  "@fortawesome/fontawesome-free": "6.4.0",
105
106
  "@gitbeaker/rest": "^39.7.0",
106
107
  "@silexlabs/grapesjs-directus-storage": "1.0.15",
@@ -1,17 +1,12 @@
1
- // $silexlightergrey: #ddd;
2
- // $silexlightgrey: #535353;
3
- // $silexmediumgrey: #444;
4
- // $silexmediumdarkgrey: #393939;
5
- // $silexdarkgrey: #2f2f2f;
6
- // $silexdarkergrey: #2a2a2a;
7
- // $silexlightblue: #7bc0ff;
1
+ // All colors
2
+ // /!\ Duplicated in the grapesjs/index.ts too => keep in sync
3
+ $primaryColor: #333333 !default;
4
+ $secondaryColor: #ddd !default;
5
+ $tertiaryColor: #8873FE !default;
6
+ $quaternaryColor: #56E3FF !default;
7
+ $darkerPrimaryColor: #363636 !default;
8
+ $lighterPrimaryColor: #575757 !default;
8
9
 
9
- $primaryColor: #444;
10
- $secondaryColor: #ddd;
11
- $tertiaryColor: #5e85a8;
12
- $quaternaryColor: #7bc0ff;
13
- $darkerPrimaryColor: #363636;
14
- $lighterPrimaryColor: #575757;
15
10
  $topBarHeight: 40px;
16
11
  $projectBarWidth: 35px;
17
12
  $projectPanelWidth: 13%;
@@ -26,11 +21,4 @@ $cv-prefix: '#{$prefix}cv-';
26
21
  $z-dialog-inline: 10;
27
22
  $z-loader: 10;
28
23
 
29
- :root {
30
- --primaryColor: #444;
31
- --secondaryColor: #ddd;
32
- --tertiaryColor: #5e85a8;
33
- --quaternaryColor: #7bc0ff;
34
- --darkerPrimaryColor: #363636;
35
- --lighterPrimaryColor: #575757;
36
- }
24
+ $fontFamily: 'Ubuntu', sans-serif;
@@ -22,6 +22,7 @@
22
22
  }
23
23
  }
24
24
  }
25
+
25
26
  .#{$cv-prefix}canvas,
26
27
  .#{$pn-prefix}panel,
27
28
  .#{$pn-prefix}commands {
@@ -46,6 +47,25 @@
46
47
  width: $viewsPanelWidth;
47
48
  }
48
49
 
50
+ .gjs-editor {
51
+ font-family: $fontFamily;
52
+ font-size: 0.75rem;
53
+ }
54
+
55
+ // Inside the canvas
56
+ .gjs-toolbar {
57
+ background-color: $tertiaryColor;
58
+ }
59
+ .gjs-resizer-h {
60
+ border-color: $tertiaryColor;
61
+ }
62
+ .gjs-com-badge, .gjs-com-badge-red, .gjs-badge {
63
+ background-color: $tertiaryColor;
64
+ }
65
+ .gjs-cv-canvas .gjs-highlighter, .gjs-cv-canvas .gjs-highlighter-sel {
66
+ outline: 1px solid $tertiaryColor;
67
+ }
68
+
49
69
  /*
50
70
  */
51
71
  // Font awesome 5 fix
@@ -1,5 +1,8 @@
1
1
  /* Normalize css */
2
2
  @use "normalize.css/normalize";
3
+
4
+ @use "_variables";
5
+ //@use "light";
3
6
  @use "grapesjs/src/styles/scss/main";
4
7
 
5
8
  /* Silex styles imports */
@@ -7,10 +10,24 @@
7
10
  @use "loader";
8
11
  @use "footer";
9
12
  @use "dialog";
10
- @use "grapesjs";
11
13
  @use "project-bar";
12
14
  @use "page-panel";
13
15
  @use "website-info";
16
+ @use "grapesjs";
17
+
18
+ //@use "grapesjs-light";
19
+
20
+ // Ubuntu Fonts
21
+ @use "@fontsource/ubuntu";
22
+
23
+ :root {
24
+ --primaryColor: $primaryColor;
25
+ --secondaryColor: $secondaryColor;
26
+ --tertiaryColor: $tertiaryColor;
27
+ --quaternaryColor: $quaternaryColor;
28
+ --darkerPrimaryColor: $darkerPrimaryColor;
29
+ --lighterPrimaryColor: $lighterPrimaryColor;
30
+ }
14
31
 
15
32
  .container-png::before {
16
33
  content: " ";
@@ -3,6 +3,9 @@
3
3
 
4
4
  .silex-workspace {
5
5
  @include mixins.silex-ui-full;
6
+ body {
7
+ font-family: $fontFamily;
8
+ }
6
9
  display: flex;
7
10
  a {
8
11
  color: inherit;
@@ -12,7 +12,7 @@ html(lang="en", translate="no")
12
12
  style.
13
13
  body {
14
14
  background-color: #444444;
15
- font-family: Helvetica,sans-serif;
15
+ font-family: "Ubuntu", "Helvetica Neue", Helvetica, Arial, sans-serif;
16
16
  }
17
17
  .silex-loader {
18
18
  display: none;
@@ -14,7 +14,7 @@ export default function (editor, options) {
14
14
  display: flex;
15
15
  align-items: center;
16
16
  height: 100%;
17
- padding: 2px 10px 0;
17
+ padding: 5px 10px 0;
18
18
  font-size: 12px;
19
19
  color: #999;
20
20
  overflow-x: auto;
@@ -25,7 +25,7 @@ export default function (editor, options) {
25
25
  }
26
26
  #breadcrumbs-container .breadcrumb {
27
27
  margin: 5px;
28
- font-size: large;
28
+ font-size: 15px;
29
29
  line-height: 1;
30
30
  cursor: pointer;
31
31
  white-space: nowrap;
@@ -73,7 +73,7 @@ export default function (editor, options) {
73
73
  editor.select(component)
74
74
  }
75
75
  breadcrumb.classList.add('breadcrumb')
76
- breadcrumb.innerHTML = `<span>${component.get('tagName')}${component.getClasses().length ? `.${component.getClasses().join('.')}` : ''}</span>`
76
+ breadcrumb.innerHTML = `<span>${component.getName() ?? component.get('tagName')}</span>`
77
77
  return breadcrumb
78
78
  }
79
79
  }
@@ -127,6 +127,29 @@ export function getEditorConfig(id: WebsiteId, connectorId: ConnectorId, rootUrl
127
127
  },
128
128
 
129
129
  cssIcons: '/css/all.min.css',
130
+ canvasCss: `
131
+ :root {
132
+ --primaryColor: #333333;
133
+ --secondaryColor: #ddd;
134
+ --tertiaryColor: #8873FE;
135
+ --quaternaryColor: #56E3FF;
136
+ --darkerPrimaryColor: #363636;
137
+ --lighterPrimaryColor: #575757;
138
+ }
139
+ .gjs-frame-selected {
140
+ box-shadow: 0 0 0 2px rgba(255, 0, 0, 0.5) !important; // Change to red border
141
+ }
142
+ .gjs-selected {
143
+ outline: 2px solid var(--tertiaryColor) !important;
144
+ outline-offset: -2px;
145
+ }
146
+ .gjs-tools .gjs-badge { /* for the label */
147
+ background-color: red;
148
+ }
149
+ .gjs-toolbar { /* for the toolbar */
150
+ background-color: red;
151
+ }
152
+ `,
130
153
 
131
154
  plugins: plugins.map(p => p.value),
132
155
 
@@ -141,7 +164,7 @@ export function getEditorConfig(id: WebsiteId, connectorId: ConnectorId, rootUrl
141
164
  {
142
165
  id: 'dash',
143
166
  className: 'logo',
144
- attributes: { title: 'Go to your dashboard' },
167
+ attributes: { title: 'Dashboard' },
145
168
  link: '/',
146
169
  command: 'open-dash',
147
170
  }, {
@@ -191,6 +214,18 @@ export function getEditorConfig(id: WebsiteId, connectorId: ConnectorId, rootUrl
191
214
  id: 'spacer',
192
215
  attributes: {},
193
216
  className: 'project-bar-spacer',
217
+ }, {
218
+ id: 'dash2',
219
+ className: 'fa-solid fa-house',
220
+ attributes: { title: 'Dashboard' },
221
+ link: '/',
222
+ command: 'open-dash',
223
+ }, {
224
+ id: 'help',
225
+ className: 'fa fa-fw fa-question-circle',
226
+ attributes: { title: 'Documentation' },
227
+ link: 'https://docs.silex.me/',
228
+ command: 'open-help',
194
229
  }, {
195
230
  id: 'logout-button',
196
231
  className: 'page-panel-btn fa fa-fw fa-sign-out',