@silexlabs/silex-dashboard 1.0.37 → 1.0.39

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.
@@ -6,131 +6,142 @@
6
6
  <link rel="preconnect" href="https://fonts.gstatic.com" />
7
7
  <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
8
8
 
9
-
10
9
  <link
11
10
  rel="alternate"
12
11
  hreflang="en"
13
12
  href="/en/connectors" />
14
-
15
13
  <style>
16
- .before-js > * {
17
- visibility: hidden;
18
- opacity: 0;
19
- transition: opacity .5s ease;
20
- }
21
- .after-js > * {
22
- visibility: visible;
23
- opacity: 1;
24
- }
25
- .before-js:before {
26
- content: 'Loading';
27
- position: absolute;
28
- top: 49%;
29
- left: 49%;
30
- }
31
- .after-js:before {
32
- content: none;
33
- }
34
-
35
- /*BTNS*/
36
- .button, .pointer { cursor: pointer!important}
37
- .button{min-width:110px;}
38
- /*BTNS*/
39
- a {
40
- text-decoration: none;
41
- color:#8873FE;}
42
- a:hover { text-decoration: underline; }
43
- .uppercase {text-transform: uppercase;}
44
- .underline:hover{
45
- text-decoration: underline;
46
- text-decoration-thickness: from-font;
47
- text-underline-position: under;}
48
-
49
- /*footer position*/
50
- .main-min-height {min-height: calc(100vh - 560px);}
51
- /*footer position*/
52
-
53
- /*label*/
54
- ::placeholder {color: #8873FE;}
55
- input:focus {
56
- border: 2px solid ##9977FE;
57
- background-color:#ffffff;}
58
- :focus { outline: none;}
59
- /*label*/
60
- .skeleton-anim:after {
61
- width: 100%;
62
- height: 100%;
63
- position: absolute;
64
- top: 0;
65
- left: 0;
66
- content: "";
67
- background:
68
- linear-gradient(0.25turn, transparent, rgba(255,255,255,.75), transparent),
69
- linear-gradient(transparent, transparent),
70
- radial-gradient(38px circle at 19px 19px, transparent 50%, transparent 51%),
71
- linear-gradient(transparent, transparent);
72
- background-repeat: no-repeat;
73
- background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px;
74
- background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
75
- animation: loading 1.5s infinite;
76
- }
77
-
78
- @keyframes loading {
79
- to {
80
- background-position: 200% 0, 0 0, 0 190px, 50px 195px;
14
+ .before-js > * {
15
+ visibility: hidden;
16
+ opacity: 0;
17
+ transition: opacity .5s ease;
81
18
  }
82
- }
83
- /*FX ANIMATIONS*/
84
- /*scale-round-inside_pour-BTN*/
85
- .fx-scale-round {
86
- position:relative;
87
- z-index: 10;
88
- overflow: hidden;
89
- }
90
- .fx-scale-round::after {
91
- content: "";
92
- background: #ffffff;
93
- position: absolute;
94
- z-index: -1;
95
- border-radius: 50%;
96
- left: -50%;
97
- right: -50%;
98
- top: -100%;
99
- bottom: -100%;
100
- transform: scale(0, 0);
101
- transform-origin: center bottom;
102
- transition: all 0.3s ease-out;
103
-
104
- }
105
- .fx-scale-round:hover {
106
- transform-origin: center bottom;
107
- transform: scale(1.1);
108
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
109
- }
110
- .fx-scale-round:hover::after {
111
- transform: scale(1, 1);
112
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
113
- }
114
- /*scale-round-inside_pour-BTN*/
115
- /*scale*/
116
- .fx-scale:hover {
117
- transform-origin: center bottom;
118
- transform: scale(1.1);
119
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
120
- }
121
- /*flash*/
122
- .fx-flash:hover {
123
- animation: flash-in .5s ;
124
- }
125
-
126
- /*flash-in animation*/
127
- @keyframes flash-in{
128
- 0% {opacity:0;}
129
- 100% {opacity:1;}
130
- }
131
- /*flash-in animation*/
132
-
133
- /*FX ANIMATIONS*/
19
+ .after-js > * {
20
+ visibility: visible;
21
+ opacity: 1;
22
+ }
23
+ .before-js:before {
24
+ content: 'Loading';
25
+ position: absolute;
26
+ top: 49%;
27
+ left: 49%;
28
+ }
29
+ .after-js:before {
30
+ content: none;
31
+ }
32
+ /*BTNS*/
33
+ .button, .pointer {
34
+ cursor: pointer!important}
35
+ .button{
36
+ min-width:110px;
37
+ }
38
+ /*BTNS*/
39
+ a {
40
+ text-decoration: none;
41
+ color:#8873FE;
42
+ }
43
+ a:hover {
44
+ text-decoration: underline;
45
+ }
46
+ .uppercase {
47
+ text-transform: uppercase;
48
+ }
49
+ .underline:hover{
50
+ text-decoration: underline;
51
+ text-decoration-thickness: from-font;
52
+ text-underline-position: under;
53
+ }
54
+ /*footer position*/
55
+ .main-min-height {
56
+ min-height: calc(100vh - 560px);
57
+ }
58
+ /*footer position*/
59
+ /*label*/
60
+ ::placeholder {
61
+ color: #8873FE;
62
+ }
63
+ input:focus {
64
+ border: 2px solid ##9977FE;
65
+ background-color:#ffffff;
66
+ }
67
+ :focus {
68
+ outline: none;
69
+ }
70
+ /*label*/
71
+ .skeleton-anim:after {
72
+ width: 100%;
73
+ height: 100%;
74
+ position: absolute;
75
+ top: 0;
76
+ left: 0;
77
+ content: "";
78
+ background:
79
+ linear-gradient(0.25turn, transparent, rgba(255,255,255,.75), transparent),
80
+ linear-gradient(transparent, transparent),
81
+ radial-gradient(38px circle at 19px 19px, transparent 50%, transparent 51%),
82
+ linear-gradient(transparent, transparent);
83
+ background-repeat: no-repeat;
84
+ background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px;
85
+ background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
86
+ animation: loading 1.5s infinite;
87
+ }
88
+ @keyframes loading {
89
+ to {
90
+ background-position: 200% 0, 0 0, 0 190px, 50px 195px;
91
+ }
92
+ }
93
+ /*FX ANIMATIONS*/
94
+ /*scale-round-inside_pour-BTN*/
95
+ .fx-scale-round {
96
+ position:relative;
97
+ z-index: 10;
98
+ overflow: hidden;
99
+ }
100
+ .fx-scale-round::after {
101
+ content: "";
102
+ background: #ffffff;
103
+ position: absolute;
104
+ z-index: -1;
105
+ border-radius: 50%;
106
+ left: -50%;
107
+ right: -50%;
108
+ top: -100%;
109
+ bottom: -100%;
110
+ transform: scale(0, 0);
111
+ transform-origin: center bottom;
112
+ transition: all 0.3s ease-out;
113
+ }
114
+ .fx-scale-round:hover {
115
+ transform-origin: center bottom;
116
+ transform: scale(1.1);
117
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
118
+ }
119
+ .fx-scale-round:hover::after {
120
+ transform: scale(1, 1);
121
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
122
+ }
123
+ /*scale-round-inside_pour-BTN*/
124
+ /*scale*/
125
+ .fx-scale:hover {
126
+ transform-origin: center bottom;
127
+ transform: scale(1.1);
128
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
129
+ }
130
+ /*flash*/
131
+ .fx-flash:hover {
132
+ animation: flash-in .5s ;
133
+ }
134
+ /*flash-in animation*/
135
+ @keyframes flash-in{
136
+ 0% {
137
+ opacity:0;
138
+ }
139
+ 100% {
140
+ opacity:1;
141
+ }
142
+ }
143
+ /*flash-in animation*/
144
+ /*FX ANIMATIONS*/
134
145
  </style>
135
146
  <script src="/js/vue.global.js"></script>
136
147
  <script src="/js/main.js"></script>
@@ -230,11 +241,11 @@ window.addEventListener('load', function() {
230
241
  </script>
231
242
 
232
243
  <title></title>
233
- <link rel="icon" href="" />
234
- <meta property="description" content=""/>
235
- <meta property="og:title" content=""/>
236
- <meta property="og:description" content=""/>
237
- <meta property="og:image" content=""/>
244
+ <link rel="icon" href="/assets/favicon-32x32.png" />
245
+ <meta name="description" property="description" content=""/>
246
+ <meta name="og:title" property="og:title" content=""/>
247
+ <meta name="og:description" property="og:description" content=""/>
248
+ <meta name="og:image" property="og:image" content=""/>
238
249
  </head>
239
250
  <body
240
251
  id="i2hcfw"
@@ -6,131 +6,142 @@
6
6
  <link rel="preconnect" href="https://fonts.gstatic.com" />
7
7
  <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;700&display=swap" rel="stylesheet">
8
8
 
9
-
10
9
  <link
11
10
  rel="alternate"
12
11
  hreflang="en"
13
12
  href="/en/" />
14
-
15
13
  <style>
16
- .before-js > * {
17
- visibility: hidden;
18
- opacity: 0;
19
- transition: opacity .5s ease;
20
- }
21
- .after-js > * {
22
- visibility: visible;
23
- opacity: 1;
24
- }
25
- .before-js:before {
26
- content: 'Loading';
27
- position: absolute;
28
- top: 49%;
29
- left: 49%;
30
- }
31
- .after-js:before {
32
- content: none;
33
- }
34
-
35
- /*BTNS*/
36
- .button, .pointer { cursor: pointer!important}
37
- .button{min-width:110px;}
38
- /*BTNS*/
39
- a {
40
- text-decoration: none;
41
- color:#8873FE;}
42
- a:hover { text-decoration: underline; }
43
- .uppercase {text-transform: uppercase;}
44
- .underline:hover{
45
- text-decoration: underline;
46
- text-decoration-thickness: from-font;
47
- text-underline-position: under;}
48
-
49
- /*footer position*/
50
- .main-min-height {min-height: calc(100vh - 560px);}
51
- /*footer position*/
52
-
53
- /*label*/
54
- ::placeholder {color: #8873FE;}
55
- input:focus {
56
- border: 2px solid ##9977FE;
57
- background-color:#ffffff;}
58
- :focus { outline: none;}
59
- /*label*/
60
- .skeleton-anim:after {
61
- width: 100%;
62
- height: 100%;
63
- position: absolute;
64
- top: 0;
65
- left: 0;
66
- content: "";
67
- background:
68
- linear-gradient(0.25turn, transparent, rgba(255,255,255,.75), transparent),
69
- linear-gradient(transparent, transparent),
70
- radial-gradient(38px circle at 19px 19px, transparent 50%, transparent 51%),
71
- linear-gradient(transparent, transparent);
72
- background-repeat: no-repeat;
73
- background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px;
74
- background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
75
- animation: loading 1.5s infinite;
76
- }
77
-
78
- @keyframes loading {
79
- to {
80
- background-position: 200% 0, 0 0, 0 190px, 50px 195px;
14
+ .before-js > * {
15
+ visibility: hidden;
16
+ opacity: 0;
17
+ transition: opacity .5s ease;
81
18
  }
82
- }
83
- /*FX ANIMATIONS*/
84
- /*scale-round-inside_pour-BTN*/
85
- .fx-scale-round {
86
- position:relative;
87
- z-index: 10;
88
- overflow: hidden;
89
- }
90
- .fx-scale-round::after {
91
- content: "";
92
- background: #ffffff;
93
- position: absolute;
94
- z-index: -1;
95
- border-radius: 50%;
96
- left: -50%;
97
- right: -50%;
98
- top: -100%;
99
- bottom: -100%;
100
- transform: scale(0, 0);
101
- transform-origin: center bottom;
102
- transition: all 0.3s ease-out;
103
-
104
- }
105
- .fx-scale-round:hover {
106
- transform-origin: center bottom;
107
- transform: scale(1.1);
108
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
109
- }
110
- .fx-scale-round:hover::after {
111
- transform: scale(1, 1);
112
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
113
- }
114
- /*scale-round-inside_pour-BTN*/
115
- /*scale*/
116
- .fx-scale:hover {
117
- transform-origin: center bottom;
118
- transform: scale(1.1);
119
- transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
120
- }
121
- /*flash*/
122
- .fx-flash:hover {
123
- animation: flash-in .5s ;
124
- }
125
-
126
- /*flash-in animation*/
127
- @keyframes flash-in{
128
- 0% {opacity:0;}
129
- 100% {opacity:1;}
130
- }
131
- /*flash-in animation*/
132
-
133
- /*FX ANIMATIONS*/
19
+ .after-js > * {
20
+ visibility: visible;
21
+ opacity: 1;
22
+ }
23
+ .before-js:before {
24
+ content: 'Loading';
25
+ position: absolute;
26
+ top: 49%;
27
+ left: 49%;
28
+ }
29
+ .after-js:before {
30
+ content: none;
31
+ }
32
+ /*BTNS*/
33
+ .button, .pointer {
34
+ cursor: pointer!important}
35
+ .button{
36
+ min-width:110px;
37
+ }
38
+ /*BTNS*/
39
+ a {
40
+ text-decoration: none;
41
+ color:#8873FE;
42
+ }
43
+ a:hover {
44
+ text-decoration: underline;
45
+ }
46
+ .uppercase {
47
+ text-transform: uppercase;
48
+ }
49
+ .underline:hover{
50
+ text-decoration: underline;
51
+ text-decoration-thickness: from-font;
52
+ text-underline-position: under;
53
+ }
54
+ /*footer position*/
55
+ .main-min-height {
56
+ min-height: calc(100vh - 560px);
57
+ }
58
+ /*footer position*/
59
+ /*label*/
60
+ ::placeholder {
61
+ color: #8873FE;
62
+ }
63
+ input:focus {
64
+ border: 2px solid ##9977FE;
65
+ background-color:#ffffff;
66
+ }
67
+ :focus {
68
+ outline: none;
69
+ }
70
+ /*label*/
71
+ .skeleton-anim:after {
72
+ width: 100%;
73
+ height: 100%;
74
+ position: absolute;
75
+ top: 0;
76
+ left: 0;
77
+ content: "";
78
+ background:
79
+ linear-gradient(0.25turn, transparent, rgba(255,255,255,.75), transparent),
80
+ linear-gradient(transparent, transparent),
81
+ radial-gradient(38px circle at 19px 19px, transparent 50%, transparent 51%),
82
+ linear-gradient(transparent, transparent);
83
+ background-repeat: no-repeat;
84
+ background-size: 315px 250px, 315px 180px, 100px 100px, 225px 30px;
85
+ background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
86
+ animation: loading 1.5s infinite;
87
+ }
88
+ @keyframes loading {
89
+ to {
90
+ background-position: 200% 0, 0 0, 0 190px, 50px 195px;
91
+ }
92
+ }
93
+ /*FX ANIMATIONS*/
94
+ /*scale-round-inside_pour-BTN*/
95
+ .fx-scale-round {
96
+ position:relative;
97
+ z-index: 10;
98
+ overflow: hidden;
99
+ }
100
+ .fx-scale-round::after {
101
+ content: "";
102
+ background: #ffffff;
103
+ position: absolute;
104
+ z-index: -1;
105
+ border-radius: 50%;
106
+ left: -50%;
107
+ right: -50%;
108
+ top: -100%;
109
+ bottom: -100%;
110
+ transform: scale(0, 0);
111
+ transform-origin: center bottom;
112
+ transition: all 0.3s ease-out;
113
+ }
114
+ .fx-scale-round:hover {
115
+ transform-origin: center bottom;
116
+ transform: scale(1.1);
117
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
118
+ }
119
+ .fx-scale-round:hover::after {
120
+ transform: scale(1, 1);
121
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
122
+ }
123
+ /*scale-round-inside_pour-BTN*/
124
+ /*scale*/
125
+ .fx-scale:hover {
126
+ transform-origin: center bottom;
127
+ transform: scale(1.1);
128
+ transition: transform 0.2s cubic-bezier(0, -0.530, 0.405, 2.8);
129
+ }
130
+ /*flash*/
131
+ .fx-flash:hover {
132
+ animation: flash-in .5s ;
133
+ }
134
+ /*flash-in animation*/
135
+ @keyframes flash-in{
136
+ 0% {
137
+ opacity:0;
138
+ }
139
+ 100% {
140
+ opacity:1;
141
+ }
142
+ }
143
+ /*flash-in animation*/
144
+ /*FX ANIMATIONS*/
134
145
  </style>
135
146
  <script src="/js/vue.global.js"></script>
136
147
  <script src="/js/main.js"></script>
@@ -147,10 +158,14 @@ window.addEventListener('load', function() {
147
158
  getUser,
148
159
  logout,
149
160
  websiteDelete,
161
+ websiteDuplicate,
150
162
  websiteList,
151
163
  websiteCreate,
152
164
  websiteMetaWrite,
153
165
  } = api
166
+ function toSafeId(name) {
167
+ return name.replace(/[/\\?%*:|"<>]/g, '_')
168
+ }
154
169
 
155
170
  const App = {
156
171
  data() {
@@ -226,7 +241,7 @@ window.addEventListener('load', function() {
226
241
  try {
227
242
  if (!this.newWebsiteName) throw new Error('Vous n\'avez pas donné de nom à votre site')
228
243
  this.loading = true
229
- const websiteId = this.newWebsiteName.replace(/[/\\?%*:|"<>]/g, '_')
244
+ const websiteId = toSafeId(this.newWebsiteName)
230
245
  const result = await websiteCreate({
231
246
  websiteId,
232
247
  data: {
@@ -270,6 +285,22 @@ window.addEventListener('load', function() {
270
285
  }
271
286
  },
272
287
 
288
+ async duplicateWebsite(websiteId) {
289
+ this.loading = true
290
+ try {
291
+ await websiteDuplicate({websiteId, connectorId: this.user.storage.connectorId, data: { name }})
292
+ this.error = ''
293
+ this.websites = await websiteList({connectorId: this.user.storage.connectorId})
294
+ this.message = 'Le site a bien été dupliqué'
295
+ this.empty = this.websites.length === 0
296
+ this.loading = false
297
+ } catch (error) {
298
+ this.loading = false
299
+ this.error = `Erreur, le site n'a pas été dupliqué - ${error.message}`
300
+ this.message = ''
301
+ }
302
+ },
303
+
273
304
  async renameWebsite(websiteId) {
274
305
  const website = this.websites.find(w => w.websiteId === websiteId)
275
306
  const name = prompt('Nouveau nom', website.name)
@@ -304,11 +335,11 @@ window.addEventListener('load', function() {
304
335
 
305
336
 
306
337
  <title>Dashboard Silex</title>
307
- <link rel="icon" href="" />
308
- <meta property="description" content=""/>
309
- <meta property="og:title" content=""/>
310
- <meta property="og:description" content=""/>
311
- <meta property="og:image" content=""/>
338
+ <link rel="icon" href="/assets/favicon-32x32.png" />
339
+ <meta name="description" property="description" content=""/>
340
+ <meta name="og:title" property="og:title" content=""/>
341
+ <meta name="og:description" property="og:description" content=""/>
342
+ <meta name="og:image" property="og:image" content=""/>
312
343
  </head>
313
344
  <body
314
345
  id="ik0i"
@@ -551,7 +582,12 @@ window.addEventListener('load', function() {
551
582
  @click="renameWebsite(website.websiteId, 'fr')"
552
583
 
553
584
  >Renommer</BUTTON><BUTTON
554
- id="iol4h"
585
+ id="iol4h" title="Dupliquer"
586
+ class="button-bar__item--link pointer fx-flash fx-scale button-bar__item--icon "
587
+ @click="duplicateWebsite(website.websiteId, 'fr')"
588
+
589
+ ><svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 448 512"><path fill="#8873fe" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg></BUTTON><BUTTON
590
+
555
591
  class="button-bar__item--link pointer fx-flash fx-scale "
556
592
  @click="deleteWebsite(website.websiteId)" title="Supprimer"
557
593
 
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@silexlabs/silex-dashboard",
3
- "version": "1.0.37",
3
+ "version": "1.0.39",
4
4
  "description": "Dashboard for Silex v3",
5
5
  "main": ".silex.js",
6
6
  "scripts": {
@@ -24,7 +24,7 @@
24
24
  "homepage": "https://github.com/silexlabs/silex-dashboard#readme",
25
25
  "devDependencies": {
26
26
  "@11ty/eleventy": "^2.0.1",
27
- "@silexlabs/silex": "^3.0.0-alpha.106"
27
+ "@silexlabs/silex": "^3.0.0-alpha.117"
28
28
  },
29
29
  "dependencies": {
30
30
  "locale": "^0.1.0",
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  permalink: /css/connectors.css
3
3
  ---
4
- * { box-sizing: border-box; } body {margin: 0;}.nav__item{margin:0px 10px 0px 10px;font-size:0.8rem;padding:24px 0px 24px 0px;color:#4a4a4a;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.menu-bar{display:flex;align-items:center;justify-content:space-between;background-color:#ffffff;height:94px;padding:0px 100px 0px 100px;width:100%;}.nav{width:100%;margin:0px 20px 0px 20px;}.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;}.nav__item.active{color:black;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box.flex-between{align-items:center;}.h-space{margin:0px 10px 0px 0px;}.button--tertiary{background-color:transparent;font-weight:400;}.lang__item{margin:0px 5px 0px 5px;}.nav__logo{height:50px;}.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{width:100%;display:flex;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;}.title-40{margin:0 0 10px 0;font-size:2.5rem;font-weight:700;}#in5jeq{display:flex;}#ij139z{position:absolute;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(/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);}.padding-100-30{padding:100px 30px 80px 30px;}.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:880px;width:100%;}.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:40px;width:40px;margin:5px 5px 5px 5px;}.button-bar__item--secondary{font-size:0.8rem;}
4
+ * { box-sizing: border-box; } body {margin: 0;}.nav__item{margin:0px 10px 0px 10px;font-size:0.8rem;padding:24px 0px 24px 0px;color:#4a4a4a;}.body{font-family:"Ubuntu", sans-serif;background-color:#f0f0f0;color:#2b1b63;}.menu-bar{display:flex;align-items:center;justify-content:space-between;background-color:#ffffff;height:94px;padding:0px 100px 0px 100px;width:100%;}.nav{width:100%;margin:0px 20px 0px 20px;}.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;}.nav__item.active{color:black;}.box{border-radius:4px 4px 4px 4px;background-color:#ffffff;}.box.flex-between{align-items:center;}.h-space{margin:0px 10px 0px 0px;}.button--tertiary{background-color:transparent;font-weight:400;}.lang__item{margin:0px 5px 0px 5px;}.nav__logo{height:50px;}.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{width:100%;display:flex;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;}.title-40{margin:0 0 10px 0;font-size:2.5rem;font-weight:700;}#in5jeq{display:flex;}#ij139z{position:absolute;}.bg-silex-purpel{background-repeat:repeat-y;background-position:center top;background-attachment:scroll;background-size:contain;background-image:url(../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);}.padding-100-30{padding:100px 30px 80px 30px;}.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:880px;width:100%;}.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:40px;width:40px;margin:5px 5px 5px 5px;}.button-bar__item--secondary{font-size:0.8rem;}
package/pages/en/index.md CHANGED
@@ -18,6 +18,8 @@ list-item-updated: Updated
18
18
  list-item-created: Created
19
19
  list-edit: Edit
20
20
  list-rename: Rename
21
+ list-duplicate: Duplicate
22
+ list-duplicate-icon: '<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 448 512"><path fill="#8873fe" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg>'
21
23
  list-delete: Delete
22
24
  message-dismiss: Dismiss
23
25
 
package/pages/fr/index.md CHANGED
@@ -18,6 +18,8 @@ list-item-updated: Mis à jour le
18
18
  list-item-created: Créé le
19
19
  list-edit: Editer
20
20
  list-rename: Renommer
21
+ list-duplicate: Dupliquer
22
+ list-duplicate-icon: '<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 448 512"><path fill="#8873fe" d="M384 336H192c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16l140.1 0L400 115.9V320c0 8.8-7.2 16-16 16zM192 384H384c35.3 0 64-28.7 64-64V115.9c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1H192c-35.3 0-64 28.7-64 64V320c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H256c35.3 0 64-28.7 64-64V416H272v32c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192c0-8.8 7.2-16 16-16H96V128H64z"/></svg>'
21
23
  list-delete: Supprimer
22
24
  message-dismiss: Fermer
23
25