@silexlabs/silex-dashboard 1.5.0-canary.1 → 1.5.0-canary.2

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 (70) hide show
  1. package/DASHBOARD-ARCHITECTURE.md +1410 -0
  2. package/_site/css/connectors-e4ae24975f4df2e2bea5121337282d8f2201bb86dc8c041c9ef43c0c2d7a32a7.css +1 -0
  3. package/_site/css/fork-506e7c805e636be6225c35a11f5804b72cf41d7a6355aa64a5d7ddb7d66ea314.css +1 -0
  4. package/_site/css/fork-923d814802e46c2d0db0f71c5c488c616ca0016f340d8dae66b263ba7f1143bc.css +1 -0
  5. package/_site/css/index-38d10542f641eb789c11b589b95d0e6363e71978479fa5cddbec3da65774560c.css +1 -0
  6. package/_site/en/connectors/index.html +51 -26
  7. package/_site/en/fork/index.html +371 -0
  8. package/_site/en/index.html +30 -28
  9. package/_site/fr/connectors/index.html +52 -27
  10. package/_site/fr/fork/index.html +372 -0
  11. package/_site/fr/index.html +31 -29
  12. package/collections/fork/en.md +17 -0
  13. package/collections/fork/fr.md +17 -0
  14. package/package.json +2 -2
  15. package/silex/websites/default/meta.json +4 -0
  16. package/silex/websites/default/website.json +6 -0
  17. package/templates/connectors-en.html +66 -41
  18. package/templates/connectors-fr.html +66 -41
  19. package/templates/css/connectors-e4ae24975f4df2e2bea5121337282d8f2201bb86dc8c041c9ef43c0c2d7a32a7.css +1 -0
  20. package/templates/css/fork-506e7c805e636be6225c35a11f5804b72cf41d7a6355aa64a5d7ddb7d66ea314.css +1 -0
  21. package/templates/css/fork-923d814802e46c2d0db0f71c5c488c616ca0016f340d8dae66b263ba7f1143bc.css +1 -0
  22. package/templates/css/index-38d10542f641eb789c11b589b95d0e6363e71978479fa5cddbec3da65774560c.css +1 -0
  23. package/templates/fork-en.11tydata.mjs +117 -0
  24. package/templates/fork-en.html +412 -0
  25. package/templates/fork-fr.11tydata.mjs +117 -0
  26. package/templates/fork-fr.html +412 -0
  27. package/templates/{websites-en.11tydata.mjs → index-en.11tydata.mjs} +32 -32
  28. package/templates/{websites-en.html → index-en.html} +91 -89
  29. package/templates/{websites-fr.11tydata.mjs → index-fr.11tydata.mjs} +32 -32
  30. package/templates/{websites-fr.html → index-fr.html} +91 -89
  31. package/tina/config.ts +76 -0
  32. package/tina/tina-lock.json +1 -1
  33. package/_site/connectors/index.html +0 -278
  34. package/_site/css/connectors-1350f25629f7addac6970f5297f8aef050ba1c207b28c8a0e4a7b113246d69dc.css +0 -1
  35. package/_site/css/connectors-152b01dfacf0586ce2f3fb0ddbbf5a5bbcd181a48b4b20b275f837786b2889cd.css +0 -1
  36. package/_site/css/connectors-306649a254eff69e10db2fa5368e173e88e24449db25d65b7117ebfd5dbbcd31.css +0 -1
  37. package/_site/css/connectors-66fe82f10a7a257f59212e18bb384b019ffb12192fa3f748951da7d4428733b4.css +0 -1
  38. package/_site/css/connectors-748797d88cc32c0787052966e54e4f794629b8460d24f2aadac83c13899574fb.css +0 -1
  39. package/_site/css/connectors-87cf0f4b873d104a845dcafd5d80d4f8d482f8cea15f2412cd9655071dcb9ea8.css +0 -1
  40. package/_site/css/connectors-885e03b1611113e2363f7a86fba9aee867130a14836b3cc9c4714265708c1704.css +0 -1
  41. package/_site/css/connectors-9d0c9569a2ce8afaa4a30a0534b3d0597c761c7e0e5280dcbc966dc2b709e98e.css +0 -1
  42. package/_site/css/connectors-a8ae93c40b7c738a4514e47046a029afdcf74bb28a7724287e1350afac4fa60f.css +0 -1
  43. package/_site/css/connectors-c1d5f4c520a9a86d99b7201d30a8fe25a5779b7b2373b73262868f446fe3f855.css +0 -1
  44. package/_site/css/connectors-febcafaf261c0f23ca11fc13809f259c74dbdd50b6a47506ba295fdb99d1b4a4.css +0 -1
  45. package/_site/css/websites-19b822a8683767833f7656ff2df318ba13bed49f33d9bfc946ff619cf986b449.css +0 -1
  46. package/_site/css/websites-4b9b2b0a0a907b33eca109d50c2a3eee97f1955c742cef487110d21a0bbf8f50.css +0 -1
  47. package/_site/css/websites-7843a323acc9c4921d373250c5f647854910ea0913530659823fbe29844ee6b5.css +0 -1
  48. package/_site/css/websites-931c1ae713658c5aca51e25f5c43a79611c9a762dc38b989cc99ad4dbd4eda8e.css +0 -1
  49. package/_site/css/websites-c678e6ed7f508aa4b0e9218070d7235ed56f0eaea49350b30b849f4ef176cfb0.css +0 -1
  50. package/_site/css/websites-e6d63d0512032a2909a7f648cecfad311842ecba7bd03f94afc8639998e606f0.css +0 -1
  51. package/_site/websites/index.html +0 -360
  52. package/templates/connectors.html +0 -278
  53. package/templates/css/connectors-1350f25629f7addac6970f5297f8aef050ba1c207b28c8a0e4a7b113246d69dc.css +0 -1
  54. package/templates/css/connectors-152b01dfacf0586ce2f3fb0ddbbf5a5bbcd181a48b4b20b275f837786b2889cd.css +0 -1
  55. package/templates/css/connectors-306649a254eff69e10db2fa5368e173e88e24449db25d65b7117ebfd5dbbcd31.css +0 -1
  56. package/templates/css/connectors-66fe82f10a7a257f59212e18bb384b019ffb12192fa3f748951da7d4428733b4.css +0 -1
  57. package/templates/css/connectors-748797d88cc32c0787052966e54e4f794629b8460d24f2aadac83c13899574fb.css +0 -1
  58. package/templates/css/connectors-87cf0f4b873d104a845dcafd5d80d4f8d482f8cea15f2412cd9655071dcb9ea8.css +0 -1
  59. package/templates/css/connectors-885e03b1611113e2363f7a86fba9aee867130a14836b3cc9c4714265708c1704.css +0 -1
  60. package/templates/css/connectors-9d0c9569a2ce8afaa4a30a0534b3d0597c761c7e0e5280dcbc966dc2b709e98e.css +0 -1
  61. package/templates/css/connectors-a8ae93c40b7c738a4514e47046a029afdcf74bb28a7724287e1350afac4fa60f.css +0 -1
  62. package/templates/css/connectors-c1d5f4c520a9a86d99b7201d30a8fe25a5779b7b2373b73262868f446fe3f855.css +0 -1
  63. package/templates/css/connectors-febcafaf261c0f23ca11fc13809f259c74dbdd50b6a47506ba295fdb99d1b4a4.css +0 -1
  64. package/templates/css/websites-19b822a8683767833f7656ff2df318ba13bed49f33d9bfc946ff619cf986b449.css +0 -1
  65. package/templates/css/websites-4b9b2b0a0a907b33eca109d50c2a3eee97f1955c742cef487110d21a0bbf8f50.css +0 -1
  66. package/templates/css/websites-7843a323acc9c4921d373250c5f647854910ea0913530659823fbe29844ee6b5.css +0 -1
  67. package/templates/css/websites-931c1ae713658c5aca51e25f5c43a79611c9a762dc38b989cc99ad4dbd4eda8e.css +0 -1
  68. package/templates/css/websites-c678e6ed7f508aa4b0e9218070d7235ed56f0eaea49350b30b849f4ef176cfb0.css +0 -1
  69. package/templates/css/websites-e6d63d0512032a2909a7f648cecfad311842ecba7bd03f94afc8639998e606f0.css +0 -1
  70. package/templates/websites.html +0 -360
@@ -1,360 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="">
3
- <head>
4
- <meta charset="UTF-8">
5
- <link rel="stylesheet" href="/css/websites-e6d63d0512032a2909a7f648cecfad311842ecba7bd03f94afc8639998e606f0.css" />
6
- <!-- font google -->
7
- <link rel="preconnect" href="https://fonts.gstatic.com" />
8
- <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
9
-
10
- <style>
11
- .before-js > * {
12
- visibility: hidden;
13
- opacity: 0;
14
- transition: opacity .5s ease;
15
- }
16
- .before-js[data-gjs-type] > *, /* This is only inside the editor, .before-js needs to be on the body */
17
- .after-js > * {
18
- visibility: visible;
19
- opacity: 1;
20
- }
21
- .before-js:before {
22
- content: 'Loading';
23
- position: absolute;
24
- top: 49%;
25
- left: 49%;
26
- }
27
- .before-js[data-gjs-type]:before, /* This is only inside the editor, .before-js needs to be on the body */
28
- .after-js:before {
29
- content: none;
30
- }
31
- /*BTNS*/
32
- .button, .pointer {
33
- cursor: pointer!important}
34
- .button{
35
- min-width:110px;
36
- }
37
- details {
38
- max-height: 2em;
39
- display: block;
40
- overflow: hidden;
41
- transition: max-height .75s ease;
42
- }
43
- details[open] {
44
- max-height: 40em;
45
- }
46
-
47
- /*BTNS*/
48
- a {
49
- text-decoration: none;
50
- color:#8873FE;
51
- }
52
- a:hover {
53
- text-decoration: underline;
54
- }
55
- .uppercase {
56
- text-transform: uppercase;
57
- }
58
- .underline:hover{
59
- text-decoration: underline;
60
- text-decoration-thickness: from-font;
61
- text-underline-position: under;
62
- }
63
- /*footer position*/
64
- .main-min-height {
65
- min-height: calc(100vh - 560px);
66
- }
67
- /*footer position*/
68
- /*label*/
69
- ::placeholder {
70
- color: #8873FE;
71
- }
72
- input:focus {
73
- border: 2px solid #9977FE;
74
- background-color:#ffffff;
75
- }
76
- :focus {
77
- outline: none;
78
- }
79
- /*label*/
80
- .skeleton-anim:after {
81
- width: 100%;
82
- height: 100%;
83
- position: absolute;
84
- top: 0;
85
- left: 0;
86
- content: "";
87
- background:
88
- linear-gradient(0.25turn, transparent, rgba(255,255,255,.75), transparent),
89
- linear-gradient(transparent, transparent),
90
- radial-gradient(38px circle at 19px 19px, transparent 50%, transparent 51%),
91
- linear-gradient(transparent, transparent);
92
- background-repeat: no-repeat;
93
- background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px;
94
- background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
95
- animation: loading 1.5s infinite;
96
- }
97
- @keyframes loading {
98
- to {
99
- background-position: 200% 0, 0 0, 0 190px, 50px 195px;
100
- }
101
- }
102
- /*FX ANIMATIONS*/
103
- /*scale-round-inside_pour-BTN*/
104
- .fx-scale-round {
105
- position:relative;
106
- z-index: 10;
107
- overflow: hidden;
108
- }
109
- .fx-scale-round::after {
110
- content: "";
111
- background: #ffffff;
112
- position: absolute;
113
- z-index: -1;
114
- border-radius: 50%;
115
- left: -50%;
116
- right: -50%;
117
- top: -100%;
118
- bottom: -100%;
119
- transform: scale(0, 0);
120
- transform-origin: center bottom;
121
- transition: all 0.3s ease-out;
122
- }
123
- .fx-scale-round:hover {
124
- transform-origin: center bottom;
125
- transform: scale(1.1);
126
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
127
- }
128
- .fx-scale-round:hover::after {
129
- transform: scale(1, 1);
130
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
131
- }
132
- /*scale-round-inside_pour-BTN*/
133
- /*scale*/
134
- .fx-scale:hover {
135
- transform-origin: center bottom;
136
- transform: scale(1.1);
137
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
138
- }
139
- /*flash*/
140
- .fx-flash:hover {
141
- animation: flash-in .25s ;
142
- }
143
- /*flash-in animation*/
144
- @keyframes flash-in{
145
- 0% {
146
- opacity:.25;
147
- }
148
- 100% {
149
- opacity:1;
150
- }
151
- }
152
- /*flash-in animation*/
153
- /*FX ANIMATIONS*/
154
- </style>
155
- <script src="/js/vue.global.prod.js"></script>
156
- <script src="/js/main.js"></script>
157
- <script type="module">
158
- const CONNECTORS_PATH = '/connectors/'
159
- window.addEventListener('load', function() {
160
- const { createApp } = Vue;
161
- const { api, constants, types } = silex;
162
- const {
163
- ConnectorType,
164
- } = types
165
- const {
166
- setServerUrl,
167
- getUser,
168
- logout,
169
- websiteDelete,
170
- websiteDuplicate,
171
- websiteList,
172
- websiteCreate,
173
- websiteMetaWrite,
174
- } = api
175
- function toSafeId(name) {
176
- return name.replace(/[/\\?%*:|"<>]/g, '_')
177
- }
178
-
179
- const App = {
180
- data() {
181
- return {
182
- websites: [],
183
- newWebsiteName: '',
184
- showCreationForm: false,
185
- error: null,
186
- message: null,
187
- loggedIn: false,
188
- loading: true,
189
- storage: null,
190
- user: null,
191
- showMenu: false,
192
- empty: false,
193
- }
194
- },
195
- mounted() {
196
- this.init()
197
- },
198
-
199
- methods: {
200
- async init() {
201
- try {
202
- // Init Silex server path
203
- // Go up one level because of the language prefix
204
- setServerUrl(window.location.origin)
205
- // Start
206
- const user = await getUser({type: ConnectorType.STORAGE})
207
- // Escape single quotes in the picture URL and decode the picture URL
208
- if(user) {
209
- user.picture = decodeURIComponent(user.picture).replace(/'/g, "\\'")
210
- this.user = user
211
- this.loggedIn = true
212
- this.websites = await websiteList({connectorId: this.user.storage.connectorId})
213
- this.empty = this.websites.length === 0
214
- this.loading = false
215
- } else {
216
- this.openLogin()
217
- }
218
- } catch (error) {
219
- console.error(error)
220
- this.loading = false
221
- if(error.code === 401 || error.httpStatusCode === 401) {
222
- this.loggedIn = false
223
- this.openLogin()
224
- } else {
225
- this.error = ` - ${error.message}`
226
- this.message = ''
227
- }
228
- }
229
- },
230
-
231
- openLogin(id, lang) {
232
- //throw new Error('debug')
233
- const path = `/${CONNECTORS_PATH}`
234
- console.log(window.location.pathname, window.location.path, path)
235
- if(window.location.pathname === path) return
236
- window.open(path, '_self')
237
- },
238
-
239
- openEditor(id, lang) {
240
- window.open(`/?id=${id}&lang=${lang}&connectorId=${this.user.storage.connectorId}`, '_self')
241
- },
242
-
243
- async logout() {
244
- await logout({
245
- type: ConnectorType.STORAGE,
246
- connectorId: this.user.storage.connectorId,
247
- })
248
- window.location.reload()
249
- },
250
-
251
- async createWebsite() {
252
- try {
253
- if (!this.newWebsiteName) throw new Error('')
254
- this.loading = true
255
- const websiteId = toSafeId(this.newWebsiteName)
256
- const result = await websiteCreate({
257
- websiteId,
258
- data: {
259
- name: this.newWebsiteName,
260
- imageUrl: null,
261
- },
262
- connectorId: this.user.storage.connectorId
263
- })
264
- this.message = ''
265
- this.error = ''
266
- this.newWebsiteName = ''
267
- this.showCreationForm = false;
268
- this.websites = await websiteList({connectorId: this.user.storage.connectorId})
269
- this.empty = this.websites.length === 0
270
- this.loading = false
271
- return result
272
- } catch (error) {
273
- this.loading = false
274
- console.error(error)
275
- this.error = ` - ${error.message}`
276
- this.message = ''
277
- }
278
- },
279
-
280
- async deleteWebsite(websiteId) {
281
- const ok = confirm('')
282
- if (!ok) return
283
- this.loading = true
284
- try {
285
- const result = await websiteDelete({websiteId, connectorId: this.user.storage.connectorId})
286
- this.message = ''
287
- this.error = ''
288
- this.websites = await websiteList({connectorId: this.user.storage.connectorId})
289
- this.empty = this.websites.length === 0
290
- this.loading = false
291
- return result
292
- } catch (error) {
293
- this.loading = false
294
- this.error = ` - ${error.message}`
295
- this.message = ''
296
- }
297
- },
298
-
299
- async duplicateWebsite(websiteId) {
300
- this.loading = true
301
- try {
302
- await websiteDuplicate({websiteId, connectorId: this.user.storage.connectorId, data: { name }})
303
- this.error = ''
304
- this.websites = await websiteList({connectorId: this.user.storage.connectorId})
305
- this.message = ''
306
- this.empty = this.websites.length === 0
307
- this.loading = false
308
- } catch (error) {
309
- this.loading = false
310
- this.error = ` - ${error.message}`
311
- this.message = ''
312
- }
313
- },
314
-
315
- async renameWebsite(websiteId) {
316
- const website = this.websites.find(w => w.websiteId === websiteId)
317
- const name = prompt('', website.name)
318
- if (!name) return
319
- this.loading = true
320
- try {
321
- const result = await websiteMetaWrite({websiteId, connectorId: this.user.storage.connectorId, data: { name }})
322
- this.message = ''
323
- this.error = ''
324
- this.websites = await websiteList({connectorId: this.user.storage.connectorId})
325
- this.empty = this.websites.length === 0
326
- this.loading = false
327
- return result
328
- } catch (error) {
329
- this.loading = false
330
- this.error = ` - ${error.message}`
331
- this.message = ''
332
- }
333
- },
334
- },
335
- };
336
- // Prepare elements for vue
337
- document.querySelectorAll('[v-text], [v-html]')
338
- .forEach(el => el.innerText = '')
339
-
340
-
341
- // Create the app
342
- const app = createApp(App);
343
-
344
- // Mount the app
345
- app.mount('.app');
346
-
347
-
348
- // Remove loading
349
- setTimeout(() => {
350
- document.querySelector('.before-js').classList.add('after-js')
351
- }, 100)
352
- })
353
- </script>
354
-
355
- <title>Silex Dashboard</title>
356
- <link rel="icon" href="/assets/favicon-32x32.png" />
357
- <meta name="og:title" property="og:title" content="Silex Dashboard"/>
358
- <link href="https://fonts.googleapis.com" rel="preconnect" ><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin ><link href="https://fonts.googleapis.com/css?family=Ubuntu&display=swap" rel="stylesheet" ></head>
359
- <body id="ik0i" class="body loading app before-js"><HEADER id="igrg" class="menu-bar"><A id="igvu43" href="/"><img src="/assets/favicon-32x32.png" id="iel80b-2" class="nav__logo"/></A><NAV id="i9jq" class="nav"><A id="iels" href="" class="nav__item uppercase fx-flash nav_item--active">Sites</A></NAV><div id="i2red7" class="lang"><A href="/" id="iciz" class="lang__item nav__item uppercase">en</A></div><div id="i24ew" class="user__wrapper pointer"><div id="i5xsbd" class="user-icon__wrapper"><div id="i5wlbq" class="user-icon__image"></div></div><div id="ic9eoa"><div id="iksw4d" class="button button--tertiary text-centered">Logout</div></div></div></HEADER><HEADER id="iy8ax3" class="bg-silex-purpel"><div id="iisz8f" class="section-top text-centered text-white"><H1 id="ic31o" class="title-40">Welcome back!<br/></H1><P id="iyex8" class="subtitle-16">Dive into your projects or kickstart a new one</P><H1 id="i4ybc" class="title-40">Welcome, let's get started<br/></H1><P id="iino6r" class="subtitle-16">Create your first project, click on the button "Create a website"<br/></P></div></HEADER><MAIN id="iz63r" class="padding-normal main-min-height website-max-width margin-80"><SECTION id="iqmx38"></SECTION><div id="ickx4" class="margin-20"><BUTTON id="ic92g" class="button button--primary rounded top-space-40 fx-scale-round"><span id="igsxoc" class="icon-font">+</span> <span id="ixu14">Create website</span></BUTTON><div id="i0ro3" class="button button--secondary rounded">Import</div></div><div id="ihwwxz" class="box top-space-40 padding-30 box_transp"><H3 id="i3gd1b" class="box__header text-centered">Create a new website</H3><form method="get" id="i50acf" class="form"><div id="igtg1t" class="v-space"><label id="i1nmbc" class="v-space bold color-2B1B63-80">Website name</label><input type="text" id="ij5iwh" placeholder="" class="input full-width"/></div><div id="ie0xes"><button type="submit" id="i021na" class="button rounded button--primary right-space-20 fx-scale-round">Create</button><button type="reset" class="button rounded button--secondary fx-scale-round">Cancel</button></div></form></div><div id="if80m" class="margin-20"><SECTION id="idgvg" class="button-bar loaded__item"><H3 id="i69a7" class="right-space-40 color-2B1B63-80 uppercase pointer fx-flash full-width button-bar__title underline">My first website</H3><P id="i65hn" class="button-bar__item--secondary flex-no-shrink right-space-40">Updated 1h ago by lexoyo</P><P id="i64qa" class="button-bar__item--secondary flex-no-shrink right-space-40">Created 2023-02-16 by lexoyo</P><div id="i3b4tr" class="flex-no-shrink"><BUTTON id="ifyf6p" title="" class="button-bar__item--link pointer fx-scale fx-flash button-bar__item--icon">Edit</BUTTON><BUTTON id="ihf6ew" title="" class="button-bar__item--link pointer fx-scale fx-flash button-bar__item--icon">Rename</BUTTON><BUTTON id="iol4h" title="" class="button-bar__item--link pointer fx-flash fx-scale button-bar__item--icon">⎘</BUTTON><BUTTON id="it5ia" class="button-bar__item--link pointer fx-flash fx-scale">X</BUTTON></div></SECTION><SECTION id="i1fjn" class="button-bar loading__item skeleton-anim skeleton-wrapper"><H3 id="iwu6a" class="skeleton-text skeleton right-space-40">My first websiteMy first websiteMy first websiteMy first</H3><P id="i26fn" class="button-bar__item--secondary skeleton-text skeleton right-space-40">Updated 1h ago by lexoyo</P><P id="iywbk" class="button-bar__item--secondary skeleton-text skeleton right-space-40">Created 2023-02-16 by lexoyo</P><div id="ixz6c" class="skeleton skeleton-button">Edit</div></SECTION><SECTION id="iwxxo5" class="button-bar loading__item skeleton-anim skeleton-wrapper"><H3 id="inmp3" class="skeleton-text skeleton right-space-40">My first websiteMy first websiteMy first websiteMy first</H3><P id="icjz8" class="button-bar__item--secondary skeleton-text skeleton right-space-40">Updated 1h ago by lexoyo</P><P id="illbe" class="button-bar__item--secondary skeleton-text skeleton right-space-40">Created 2023-02-16 by lexoyo</P><div id="i9fx3l" class="skeleton skeleton-button">Edit</div></SECTION><SECTION id="isld3r" class="button-bar loading__item skeleton-anim skeleton-wrapper"><H3 class="button-bar_item button-bar__item--main skeleton-text skeleton right-space-40">My first websiteMy first websiteMy first websiteMy first</H3><P class="button-bar_item button-bar__item--secondary skeleton-text skeleton right-space-40">Updated 1h ago by lexoyo</P><P class="button-bar_item button-bar__item--secondary skeleton-text skeleton right-space-40">Created 2023-02-16 by lexoyo</P><div id="i8oes3" class="button-bar_item skeleton skeleton-button">Edit</div></SECTION></div><div id="ipccl7"><div id="i2fkm9" class="margin-20 empty-image"></div><div id="i5ydxo" class="box padding-50-30 box--centered"><P id="ikl1qu" class="text-centered title-26">C'est bien calme ici..<br/></P><H3 id="iwzrqi" class="text-centered title-26">Prêt à démarrer une nouvelle aventure ?</H3><BUTTON id="i2x0l" class="button button--primary rounded top-space-40 fx-scale-round"><span id="ibsgw" class="icon-font">+</span> <span id="itl2n8">Create website</span></BUTTON></div></div><div id="i7ej6j" class="flex-between box-message text-white"><H3 id="iv0eyi" class="box-message-text">Insert your text here</H3><div id="i4656n" class="pointer button-bar__item--link text-white">Dismiss</div></div><div id="ilteie" class="flex-between box-message text-white"><H3 id="i2d31v" class="box-message-text">Insert your text here</H3><div id="i2urco" class="rounded pointer button-bar__item--link text-white">Dismiss</div></div></MAIN><FOOTER id="ilzpl" class="footer"><div id="isucae" class="footer__column"><H3 id="ipa5zg" href="" class="footer__item">Insert your text here</H3><A href="#" class="footer__item">Insert your text here</A></div></FOOTER><HEADER class="menu-bar"><A href="/"><img src="/assets/favicon-32x32.png" id="iel80b-2" class="nav__logo"/></A><NAV id="in0357-2-2" class="nav"><A href="" class="nav__item uppercase fx-flash nav_item--active">Sites</A></NAV><div class="lang"><A href="/" class="lang__item nav__item uppercase">en</A></div><div class="user__wrapper pointer"><div class="user-icon__wrapper"><div class="user-icon__image"></div></div><div><div id="ir10ge-2-2" class="button button--tertiary text-centered">Logout</div></div></div></HEADER><FOOTER class="footer"><div id="ilgsqu" class="footer__column"><H3 href="" class="footer__item">Insert your text here</H3><A href="#" class="footer__item">Insert your text here</A></div></FOOTER><HEADER class="menu-bar"><A href="/"><img src="/assets/favicon-32x32.png" id="iel80b-2" class="nav__logo"/></A><NAV id="in0357-2-2-2" class="nav"><A href="" class="nav__item uppercase fx-flash nav_item--active">Sites</A></NAV><div class="lang"><A href="/" class="lang__item nav__item uppercase">en</A></div><div class="user__wrapper pointer"><div class="user-icon__wrapper"><div class="user-icon__image"></div></div><div><div id="ir10ge-2-2-2" class="button button--tertiary text-centered">Logout</div></div></div></HEADER><FOOTER class="footer"><div id="ilgsqu-2" class="footer__column"><H3 href="" class="footer__item">Insert your text here</H3><A href="#" class="footer__item">Insert your text here</A></div></FOOTER><HEADER class="menu-bar"><A href="/"><img src="/assets/favicon-32x32.png" id="iel80b-2" class="nav__logo"/></A><NAV id="in0357-2-2-2-2" class="nav"><A href="" class="nav__item uppercase fx-flash nav_item--active">Sites</A></NAV><div class="lang"><A href="/" class="lang__item nav__item uppercase">en</A></div><div class="user__wrapper pointer"><div class="user-icon__wrapper"><div class="user-icon__image"></div></div><div><div id="ir10ge-2-2-2-2" class="button button--tertiary text-centered">Logout</div></div></div></HEADER><FOOTER class="footer"><div id="ilgsqu-2-2" class="footer__column"><H3 href="" class="footer__item">Insert your text here</H3><A href="#" class="footer__item">Insert your text here</A></div></FOOTER></body>
360
- </html>
@@ -1,278 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="">
3
- <head>
4
- <meta charset="UTF-8">
5
- <link rel="stylesheet" href="/css/connectors-9d0c9569a2ce8afaa4a30a0534b3d0597c761c7e0e5280dcbc966dc2b709e98e.css" />
6
- <!-- font google -->
7
- <link rel="preconnect" href="https://fonts.gstatic.com" />
8
- <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
9
- {% render "alternate.liquid" languages: languages lang: lang page: page %}
10
- <style>
11
- .before-js > * {
12
- visibility: hidden;
13
- opacity: 0;
14
- transition: opacity .5s ease;
15
- }
16
- .before-js[data-gjs-type] > *, /* This is only inside the editor, .before-js needs to be on the body */
17
- .after-js > * {
18
- visibility: visible;
19
- opacity: 1;
20
- }
21
- .before-js:before {
22
- content: 'Loading';
23
- position: absolute;
24
- top: 49%;
25
- left: 49%;
26
- }
27
- .before-js[data-gjs-type]:before, /* This is only inside the editor, .before-js needs to be on the body */
28
- .after-js:before {
29
- content: none;
30
- }
31
- /*BTNS*/
32
- .button, .pointer {
33
- cursor: pointer!important}
34
- .button{
35
- min-width:110px;
36
- }
37
- details {
38
- max-height: 2em;
39
- display: block;
40
- overflow: hidden;
41
- transition: max-height .75s ease;
42
- }
43
- details[open] {
44
- max-height: 40em;
45
- }
46
-
47
- /*BTNS*/
48
- a {
49
- text-decoration: none;
50
- color:#8873FE;
51
- }
52
- a:hover {
53
- text-decoration: underline;
54
- }
55
- .uppercase {
56
- text-transform: uppercase;
57
- }
58
- .underline:hover{
59
- text-decoration: underline;
60
- text-decoration-thickness: from-font;
61
- text-underline-position: under;
62
- }
63
- /*footer position*/
64
- .main-min-height {
65
- min-height: calc(100vh - 560px);
66
- }
67
- /*footer position*/
68
- /*label*/
69
- ::placeholder {
70
- color: #8873FE;
71
- }
72
- input:focus {
73
- border: 2px solid #9977FE;
74
- background-color:#ffffff;
75
- }
76
- :focus {
77
- outline: none;
78
- }
79
- /*label*/
80
- .skeleton-anim:after {
81
- width: 100%;
82
- height: 100%;
83
- position: absolute;
84
- top: 0;
85
- left: 0;
86
- content: "";
87
- background:
88
- linear-gradient(0.25turn, transparent, rgba(255,255,255,.75), transparent),
89
- linear-gradient(transparent, transparent),
90
- radial-gradient(38px circle at 19px 19px, transparent 50%, transparent 51%),
91
- linear-gradient(transparent, transparent);
92
- background-repeat: no-repeat;
93
- background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px;
94
- background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
95
- animation: loading 1.5s infinite;
96
- }
97
- @keyframes loading {
98
- to {
99
- background-position: 200% 0, 0 0, 0 190px, 50px 195px;
100
- }
101
- }
102
- /*FX ANIMATIONS*/
103
- /*scale-round-inside_pour-BTN*/
104
- .fx-scale-round {
105
- position:relative;
106
- z-index: 10;
107
- overflow: hidden;
108
- }
109
- .fx-scale-round::after {
110
- content: "";
111
- background: #ffffff;
112
- position: absolute;
113
- z-index: -1;
114
- border-radius: 50%;
115
- left: -50%;
116
- right: -50%;
117
- top: -100%;
118
- bottom: -100%;
119
- transform: scale(0, 0);
120
- transform-origin: center bottom;
121
- transition: all 0.3s ease-out;
122
- }
123
- .fx-scale-round:hover {
124
- transform-origin: center bottom;
125
- transform: scale(1.1);
126
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
127
- }
128
- .fx-scale-round:hover::after {
129
- transform: scale(1, 1);
130
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
131
- }
132
- /*scale-round-inside_pour-BTN*/
133
- /*scale*/
134
- .fx-scale:hover {
135
- transform-origin: center bottom;
136
- transform: scale(1.1);
137
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
138
- }
139
- /*flash*/
140
- .fx-flash:hover {
141
- animation: flash-in .25s ;
142
- }
143
- /*flash-in animation*/
144
- @keyframes flash-in{
145
- 0% {
146
- opacity:.25;
147
- }
148
- 100% {
149
- opacity:1;
150
- }
151
- }
152
- /*flash-in animation*/
153
- /*FX ANIMATIONS*/
154
- </style>
155
- <script src="/js/vue.global.prod.js"></script>
156
- <script src="/js/main.js"></script>
157
- <script type="module">
158
- const CONNECTORS_PATH = ''
159
- const { createApp } = Vue;
160
- const { api, constants, types } = silex;
161
- const {
162
- ConnectorType,
163
- } = types
164
- const {
165
- setServerUrl,
166
- getUser,
167
- logout,
168
- websiteDelete,
169
- websiteDuplicate,
170
- websiteList,
171
- websiteCreate,
172
- websiteMetaWrite,
173
- connectorList,
174
- } = api
175
- function toSafeId(name) {
176
- return name.replace(/[/\\?%*:|"<>]/g, '_')
177
- }
178
-
179
- const App = {
180
- data() {
181
- return {
182
- websites: [],
183
- connectors: [],
184
- newWebsiteName: '',
185
- showCreationForm: false,
186
- error: null,
187
- message: null,
188
- loggedIn: false,
189
- loading: true,
190
- storage: null,
191
- user: null,
192
- showMenu: false,
193
- empty: false,
194
- }
195
- },
196
- mounted() {
197
- this.init()
198
- },
199
-
200
- methods: {
201
- async init() {
202
- try {
203
- // Init Silex server path
204
- // Go up one level because of the language prefix
205
- setServerUrl(window.location.origin)
206
- await this.getConnectors()
207
- } catch (error) {
208
- console.error(error)
209
- this.loading = false
210
- this.error = `{{ api-translations[lang]["Failed to start dashboard"] }} - ${error.message}`
211
- this.message = ''
212
- }
213
- },
214
-
215
- getIcon(connector) {
216
- return decodeURIComponent(connector.icon.split(',').slice(1).join(','))
217
- },
218
-
219
- getHref(connector) {
220
- console.log(connector, connector.oauthUrl)
221
- return connector.oauthUrl
222
- },
223
-
224
- getConnectorStyle(connector) {
225
- return {
226
- backgroundImage: `url(${connector.icon})`,
227
- //color: connector.color,
228
- //backgroundColor: connector.background
229
- }
230
- },
231
-
232
- async getConnectors() {
233
- try {
234
- this.loading = true
235
- const connectors = await connectorList({ type: ConnectorType.STORAGE })
236
- this.connectors = connectors
237
- this.loading = false
238
- } catch (error) {
239
- this.loading = false
240
- console.error(error)
241
- this.error = `{{ api-translations[lang]["Failed to get connectors"] }} - ${error.message}`
242
- this.message = ''
243
- }
244
- },
245
- openLogin() {}
246
- },
247
- };
248
- // Prepare elements for vue
249
- document.querySelectorAll('[v-text], [v-html]')
250
- .forEach(el => el.innerText = '')
251
-
252
- document.querySelectorAll('[data-remove-href]')
253
- .forEach(el => {
254
- el.removeAttribute('href')
255
- el.removeAttribute('data-remove-href')
256
- })
257
-
258
-
259
- // Create the app
260
- const app = createApp(App);
261
-
262
- // Mount the app
263
- app.mount('.app');
264
-
265
-
266
- // Remove loading
267
- setTimeout(() => {
268
- document.querySelector('.before-js').classList.add('after-js')
269
- }, 100)
270
-
271
- </script>
272
-
273
- <title>Silex Dashboard</title>
274
- <link rel="icon" href="/assets/favicon-32x32.png" />
275
- <meta name="og:title" property="og:title" content="Silex Dashboard"/>
276
- <link href="https://fonts.googleapis.com" rel="preconnect" ><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin ><link href="https://fonts.googleapis.com/css?family=Ubuntu&display=swap" rel="stylesheet" ></head>
277
- <body id="i2hcfw" class="body app before-js"><A id="ixzhcr" href="/" class="button button-bar__item--secondary">{{ api-translations[lang]["Back to home"] }}</A><div id="imawg3" class="bg-silex-purpel"><div id="imgx81"><div id="iikf0s" class="box box_login"><div id="ie0dxn" class="text-centered"><img id="ior0hl" src="/assets/logo-silex.svg"/><P id="it2175" class="subtitle-16">Please login to continue<br/></P></div><H3 id="iqc1xf" class="margin-top">Recommended</H3><div id="in62y2"><DIV id="isqe61"><A id="i44y9w" href="https://" class="connector__card"><div id="io3lid" class="button-bar__item__icon"></div><div id="i87asw" class="connector__description">Login with <span href="" id="i0tt68">Name</span><br/></div></A></DIV></div><DETAILS id="ihn6fj"><SUMMARY id="i8w75b" class="margin-30">Advanced</SUMMARY><div id="igp4xl"><DIV id="ibi9qh"><A href="https://" class="connector__card"><div class="button-bar__item__icon"></div><div class="connector__description">Login with <span href="">Name</span><br/></div></A></DIV></div></DETAILS><div id="i3cney" class="button-bar"><A id="iacshy" class="button big-button connector__card"><div id="iiwn36"><div class="button-bar__item__icon"></div><div id="if4gvb">Name<br/></div></div><div id="isndui">This connector is about blablabla<br/></div></A></div><div id="ijflxq" class="text-centered">Do you need help? Check <a href="http://localhost:6805/?id=dashboard">the documentation</a>, the video tutorials or just ask for help in the forums or poke us in the chat.<br/></div></div><div id="i9msnk" class="text-white top-space-20">Insert your text here</div><div id="i6akll" class="button button--tertiary text-centered">{{ api-translations[lang]["Logout"] }}</div></div></div><FOOTER class="footer"><div id="iprzeh" class="footer__column"><H3 href="" class="footer__item">Insert your text here</H3><A href="#" class="footer__item">Insert your text here</A></div></FOOTER></body>
278
- </html>
@@ -1 +0,0 @@
1
- * { box-sizing: border-box; } body {margin: 0;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.subtitle-16{font-size:1rem;margin:0px 0px 20px 0px;}.subtitle-16.color--light{color:#636363;font-weight:700;}.button{font-size:0.8rem;padding:10px 20px 10px 20px;display:inline-block;border:2px solid #8873fe;transition:all 0.18s ease-out;font-weight:700;line-height:1.2rem;}.button.button--primary{background-color:#8873fe;color:white;}.button-bar{margin:20px 0px 20px 0px;display:flex;padding:30px 30px 30px 30px;align-items:center;justify-content:space-between;border-radius:4px 4px 4px 4px;background-color:#ffffff;}.button-bar.button-bar--full-width{justify-content:space-between;align-items:center;}.button-bar_item.button-bar__item--secondary{font-size:0.8rem;}.button.button--secondary{font-weight:400;color:#8873fe;border:2px solid #8873fe;}.footer{display:flex;margin:50px 0px 0px 0px;background-color:#ffffff;justify-content:space-evenly;padding:30px 30px 60px 30px;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box.flex-between{align-items:center;}.button--tertiary{background-color:transparent;font-weight:400;}.button:hover{color:#8873fe;border:2px solid #8873fe;}.button.button--secondary:hover{background-color:white;border:2px solid rgba(136,115,254,0.5);}#imgx81{min-height:100vh;display:flex;justify-content:center;align-items:center;flex-direction:column;}#in62y2{justify-content:center;}.big-button{border-radius:5px 5px 5px 5px;font-size:15px;margin:10px 10px 10px 10px;padding:15px 30px 15px 30px;font-weight:700;background-color:#ffffff;}#i9msnk{padding:10px;display:inline;}#i6akll{padding:10px;display:inline;}#ixzhcr{padding:10px;position:absolute;display:none;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(/assets/../assets/bg-purpel-silex.webp);}.text-centered{text-align:center;}.text-white{color:#ffffff;}.box.box_transp{background-color:rgba(255,255,255,0.5);}.top-space-20{margin:20px 0 0 0;}.button.button--tertiary{border:2px solid transparent;background-color:rgba(221,221,221,0.5);}.box_login{max-width:450px;width:100%;padding:60px 40px 60px 40px;}.button-bar__item--link.text-white{color:#ffffff;}.button.big-button{border:2px solid transparent;}.button.button--tertiary:hover{border:2px solid #8873fe;color:#8873fe;background-color:white;}.button-bar__item__icon{float:left;height:30px;margin:5px 5px 5px 5px;width:30px;background-repeat:no-repeat;background-position:center center;background-attachment:scroll;background-size:contain;background-image:none;}.button-bar__item--secondary{font-size:0.8rem;}.footer__column{display:flex;flex-direction:column;flex-grow:1;text-align:center;}.footer__item{padding:10px 10px 10px 10px;}.connector__card{align-items:center;margin:10px auto 10px auto;border:1px solid;border-radius:5px 5px 5px 5px;max-width:100%;display:flex;color:black;justify-content:center;padding:4px 0px 4px 0px;transition:all 0.25s ease;}#i3cney{width:100%;display:none;justify-content:center;}.connector__description{padding:5px 15px 5px 15px;}#ior0hl{color:black;}#igp4xl{justify-content:center;display:inline-block;width:100%;}#isqe61{display:inline-block;width:100%;padding:30px 0px 30px 0px;}.margin-top{margin:80px 0px 30px 0px;}.margin-30{margin:30px 0px 30px 0px;}.connector__card:link{text-decoration:none;color:black;border:1px solid;}.connector__card:hover{background-color:#8873fe;color:white;}#iqc1xf{display:none;}#it2175{margin:15px 0px 0px 0px;font-size:1rem;}#i8w75b{margin:10px 0px 10px 0px;font-size:0.95rem;font-weight:600;cursor:pointer;}#ijflxq{font-size:0.85rem;text-align:left;margin:30px 0px 0px 0px;}#iprzeh{min-height:100px;}#ibi9qh{display:inline-block;width:100%;}
@@ -1 +0,0 @@
1
- * { box-sizing: border-box; } body {margin: 0;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.subtitle-16{font-size:1rem;margin:0px 0px 20px 0px;}.subtitle-16.color--light{color:#636363;font-weight:700;}.button{font-size:0.8rem;padding:10px 20px 10px 20px;display:inline-block;border:2px solid #8873fe;transition:all 0.18s ease-out;font-weight:700;line-height:1.2rem;}.button.button--primary{background-color:#8873fe;color:white;}.button-bar{margin:20px 0px 20px 0px;display:flex;padding:30px 30px 30px 30px;align-items:center;justify-content:space-between;border-radius:4px 4px 4px 4px;background-color:#ffffff;}.button-bar.button-bar--full-width{justify-content:space-between;align-items:center;}.button-bar_item.button-bar__item--secondary{font-size:0.8rem;}.button.button--secondary{font-weight:400;color:#8873fe;border:2px solid #8873fe;}.footer{display:flex;margin:50px 0px 0px 0px;background-color:#ffffff;justify-content:space-evenly;padding:30px 30px 60px 30px;}.full-width{width:100%;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box.flex-between{align-items:center;}.button--tertiary{background-color:transparent;font-weight:400;}.button:hover{color:#8873fe;border:2px solid #8873fe;}.button.button--secondary:hover{background-color:white;border:2px solid rgba(136,115,254,0.5);}#imgx81{min-height:100vh;display:flex;justify-content:center;align-items:center;flex-direction:column;}#in62y2{justify-content:center;}.big-button{border-radius:5px 5px 5px 5px;font-size:15px;margin:10px 10px 10px 10px;padding:15px 30px 15px 30px;font-weight:700;background-color:#ffffff;}#i9msnk{padding:10px;display:inline;}#i6akll{padding:10px;display:inline;}#ixzhcr{padding:10px;position:absolute;display:none;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(/assets/../assets/bg-purpel-silex.webp);}.text-centered{text-align:center;}.text-white{color:#ffffff;}.box.box_transp{background-color:rgba(255,255,255,0.5);}.top-space-20{margin:20px 0 0 0;}.button.button--tertiary{border:2px solid transparent;background-color:rgba(221,221,221,0.5);}.box_login{max-width:450px;width:100%;padding:60px 40px 60px 40px;}.button-bar__item--link.text-white{color:#ffffff;}.button.big-button{border:2px solid transparent;}.button.button--tertiary:hover{border:2px solid #8873fe;color:#8873fe;background-color:white;}.button-bar__item__icon{float:left;height:30px;margin:5px 5px 5px 5px;width:30px;background-repeat:no-repeat;background-position:center center;background-attachment:scroll;background-size:contain;background-image:none;}.button-bar__item--secondary{font-size:0.8rem;}.footer__column{display:flex;flex-direction:column;flex-grow:1;text-align:center;}.footer__item{padding:10px 10px 10px 10px;}.connector__card{align-items:center;margin:10px auto 10px auto;border:1px solid;border-radius:5px 5px 5px 5px;max-width:100%;display:flex;color:black;justify-content:center;padding:4px 0px 4px 0px;transition:all 0.25s ease;}#i3cney{width:100%;display:none;justify-content:center;}.connector__description{padding:5px 15px 5px 15px;}#ior0hl{color:black;}#igp4xl{justify-content:center;display:inline-block;width:100%;}#isqe61{display:inline-block;}.margin-top{margin:80px 0px 30px 0px;}.margin-30{margin:30px 0px 30px 0px;}.connector__card:link{text-decoration:none;color:black;border:1px solid;}.connector__card:hover{background-color:#8873fe;color:white;}#iqc1xf{display:none;}#it2175{margin:15px 0px 0px 0px;font-size:1rem;}#i8w75b{margin:10px 0px 10px 0px;font-size:0.95rem;font-weight:600;cursor:pointer;}#ijflxq{font-size:0.85rem;text-align:left;margin:30px 0px 0px 0px;}#iprzeh{min-height:100px;}#ibi9qh{display:inline-block;}.rgpd-checks{padding:10px 0px 10px 0px;display:flex;align-items:center;}.rgpd-checks__check{width:20px;height:20px;margin:0px 10px 0px 0px;}#ihn6fj{margin:20px 0px 0px 0px;}#errorDiv{color:#ff557a;font-weight:800;}
@@ -1 +0,0 @@
1
- * { box-sizing: border-box; } body {margin: 0;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.subtitle-16{font-size:1rem;margin:0px 0px 20px 0px;}.subtitle-16.color--light{color:#636363;font-weight:700;}.button{font-size:0.8rem;padding:10px 20px 10px 20px;display:inline-block;border:2px solid #8873fe;transition:all 0.18s ease-out;font-weight:700;line-height:1.2rem;}.button.button--primary{background-color:#8873fe;color:white;}.button-bar{margin:20px 0px 20px 0px;display:flex;padding:30px 30px 30px 30px;align-items:center;justify-content:space-between;border-radius:4px 4px 4px 4px;background-color:#ffffff;}.button-bar.button-bar--full-width{justify-content:space-between;align-items:center;}.button-bar_item.button-bar__item--secondary{font-size:0.8rem;}.button.button--secondary{font-weight:400;color:#8873fe;border:2px solid #8873fe;}.footer{display:flex;margin:50px 0px 0px 0px;background-color:#ffffff;justify-content:space-evenly;padding:30px 30px 60px 30px;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box.flex-between{align-items:center;}.button--tertiary{background-color:transparent;font-weight:400;}.button:hover{color:#8873fe;border:2px solid #8873fe;}.button.button--secondary:hover{background-color:white;border:2px solid rgba(136,115,254,0.5);}#imgx81{min-height:100vh;display:flex;justify-content:center;align-items:center;flex-direction:column;}#in62y2{justify-content:center;}.big-button{border-radius:5px 5px 5px 5px;font-size:15px;margin:10px 10px 10px 10px;padding:15px 30px 15px 30px;font-weight:700;background-color:#ffffff;}#i9msnk{padding:10px;display:inline;}#i6akll{padding:10px;display:inline;}#ixzhcr{padding:10px;position:absolute;display:none;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(/assets/../assets/bg-purpel-silex.webp);}.text-centered{text-align:center;}.text-white{color:#ffffff;}.box.box_transp{background-color:rgba(255,255,255,0.5);}.top-space-20{margin:20px 0 0 0;}.button.button--tertiary{border:2px solid transparent;background-color:rgba(221,221,221,0.5);}.box_login{max-width:450px;width:100%;padding:60px 40px 60px 40px;}.button-bar__item--link.text-white{color:#ffffff;}.button.big-button{border:2px solid transparent;}.button.button--tertiary:hover{border:2px solid #8873fe;color:#8873fe;background-color:white;}.button-bar__item__icon{float:left;height:30px;margin:5px 5px 5px 5px;width:30px;background-repeat:no-repeat;background-position:center center;background-attachment:scroll;background-size:contain;background-image:none;}.button-bar__item--secondary{font-size:0.8rem;}.footer__column{display:flex;flex-direction:column;flex-grow:1;text-align:center;}.footer__item{padding:10px 10px 10px 10px;}.connector__card{align-items:center;margin:10px auto 10px auto;border:1px solid;border-radius:5px 5px 5px 5px;max-width:100%;display:flex;color:black;justify-content:center;padding:4px 0px 4px 0px;transition:all 0.25s ease;}#i3cney{width:100%;display:none;justify-content:center;}.connector__description{padding:5px 15px 5px 15px;}#ior0hl{color:black;}#igp4xl{justify-content:center;display:inline-block;width:100%;}#isqe61{display:inline-block;width:100%;padding:30px 0px 30px 0px;}.margin-top{margin:80px 0px 30px 0px;}.margin-30{margin:30px 0px 30px 0px;}.connector__card:link{text-decoration:none;color:black;border:1px solid;}.connector__card:hover{background-color:#8873fe;color:white;}#iqc1xf{display:none;}#it2175{margin:15px 0px 0px 0px;font-size:1rem;}#i8w75b{margin:10px 0px 10px 0px;font-size:0.95rem;font-weight:600;cursor:pointer;}#ijflxq{font-size:0.85rem;text-align:left;margin:30px 0px 0px 0px;}#iprzeh{min-height:100px;}#ibi9qh{display:inline-block;}