@rypen-dev/shared-components 4.2.14 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,10 @@
16
16
  }
17
17
  }
18
18
 
19
+ .working-screen-container {
20
+ position: relative;
21
+ }
22
+
19
23
  .working-screen {
20
24
  background-color: fade-out($white, 0.5);
21
25
  position: absolute;
@@ -72,6 +76,22 @@
72
76
  animation-iteration-count: infinite;
73
77
  animation-duration: 1s;
74
78
  animation-timing-function: linear;
79
+
80
+ &.warning {
81
+ border-color: $warning;
82
+ }
83
+
84
+ &.success {
85
+ border-color: $success-alt;
86
+ }
87
+
88
+ &.extra-tiny {
89
+ width: 17px;
90
+ height: 17px;
91
+ border-width: 2px;
92
+ position: relative;
93
+ top: -2px;
94
+ }
75
95
  }
76
96
 
77
97
  @keyframes rotate {
@@ -152,6 +152,16 @@
152
152
  }
153
153
  }
154
154
 
155
+ &.no-header {
156
+ .modal-header {
157
+ margin-bottom: 0;
158
+
159
+ h3 {
160
+ display: none;
161
+ }
162
+ }
163
+ }
164
+
155
165
  &.small-header {
156
166
  h3,
157
167
  .modal-header h3 {
@@ -410,6 +420,10 @@
410
420
  transform: translateY(-50%);
411
421
  width: 100%;
412
422
  }
423
+
424
+ &.removing {
425
+ background-color: $alert;
426
+ }
413
427
  }
414
428
 
415
429
  .bubble-message-enter {
@@ -12,6 +12,11 @@
12
12
  margin-right: 15px;
13
13
  flex-shrink: 0;
14
14
 
15
+ svg {
16
+ width: 100%;
17
+ height: 100%;
18
+ }
19
+
15
20
  &.avatar {
16
21
  span {
17
22
  border: solid 1px $primary;
@@ -60,10 +65,28 @@
60
65
  font-weight: $body-weight-normal;
61
66
  }
62
67
  }
68
+
69
+ &.align-right {
70
+ justify-content: flex-end;
71
+ }
63
72
  }
64
73
 
65
74
  .notification-detail {
66
75
  padding-top: 15px;
76
+
77
+ a,
78
+ strong {
79
+ color: $secondary-alt;
80
+ font-weight: 600;
81
+ }
82
+
83
+ a {
84
+ text-decoration: underline;
85
+
86
+ &:hover {
87
+ text-decoration: none;
88
+ }
89
+ }
67
90
  }
68
91
 
69
92
  &.inline {
@@ -94,6 +117,16 @@
94
117
  display: block;
95
118
  }
96
119
  }
120
+
121
+ &.removing {
122
+ .notification-summary {
123
+ opacity: 0.5;
124
+
125
+ > a {
126
+ display: none !important;
127
+ }
128
+ }
129
+ }
97
130
  }
98
131
  }
99
132
 
@@ -193,6 +193,60 @@
193
193
  }
194
194
  }
195
195
 
196
+ &.minimal {
197
+ padding-top: 10px;
198
+
199
+ .inner {
200
+ border: 0;
201
+ border-radius: 2px;
202
+ background-color: $tooltip-minimal-bg-color;
203
+ padding: 12px;
204
+ box-shadow: none;
205
+ }
206
+
207
+ &::before {
208
+ display: none;
209
+ }
210
+
211
+ &::after {
212
+ border-left-width: 10px;
213
+ border-right-width: 10px;
214
+ border-bottom-width: 10px;
215
+ border-bottom-color: $tooltip-minimal-bg-color;
216
+ top: 0;
217
+ }
218
+
219
+ &.up {
220
+ padding-top: 0;
221
+ padding-bottom: 10px;
222
+
223
+ &::after {
224
+ bottom: 0;
225
+ border-bottom: 0;
226
+ top: auto;
227
+ border-top: solid 10px $tooltip-minimal-bg-color;
228
+ }
229
+ }
230
+
231
+ &.right-tooltip::after {
232
+ right: 0;
233
+ border-right: 0;
234
+ border-top: 0;
235
+ border-bottom: solid 10px $tooltip-minimal-bg-color;
236
+ border-left: solid 10px transparent;
237
+ }
238
+
239
+ @media (min-width: map-get($breakpoints, medium)) {
240
+ &.medium-right-tooltip::after {
241
+ right: 0;
242
+ border-right: 0;
243
+ border-top: 0;
244
+ border-bottom: solid 10px $tooltip-minimal-bg-color;
245
+ border-left: solid 10px transparent;
246
+ }
247
+ }
248
+ }
249
+
196
250
  @media (max-width: map-get($breakpoints, medium) - 1px) {
197
251
  &.small-left-tooltip {
198
252
  left: 0;
@@ -271,58 +325,4 @@
271
325
  }
272
326
  }
273
327
  }
274
-
275
- &.minimal {
276
- padding-top: 10px;
277
-
278
- .inner {
279
- border: 0;
280
- border-radius: 2px;
281
- background-color: $tooltip-minimal-bg-color;
282
- padding: 12px;
283
- box-shadow: none;
284
- }
285
-
286
- &::before {
287
- display: none;
288
- }
289
-
290
- &::after {
291
- border-left-width: 10px;
292
- border-right-width: 10px;
293
- border-bottom-width: 10px;
294
- border-bottom-color: $tooltip-minimal-bg-color;
295
- top: 0;
296
- }
297
-
298
- &.up {
299
- padding-top: 0;
300
- padding-bottom: 10px;
301
-
302
- &::after {
303
- bottom: 0;
304
- border-bottom: 0;
305
- top: auto;
306
- border-top: solid 10px $tooltip-minimal-bg-color;
307
- }
308
- }
309
-
310
- &.right-tooltip::after {
311
- right: 0;
312
- border-right: 0;
313
- border-top: 0;
314
- border-bottom: solid 10px $tooltip-minimal-bg-color;
315
- border-left: solid 10px transparent;
316
- }
317
-
318
- @media (min-width: map-get($breakpoints, medium)) {
319
- &.medium-right-tooltip::after {
320
- right: 0;
321
- border-right: 0;
322
- border-top: 0;
323
- border-bottom: solid 10px $tooltip-minimal-bg-color;
324
- border-left: solid 10px transparent;
325
- }
326
- }
327
- }
328
328
  }
@@ -60,7 +60,7 @@ strong {
60
60
  font-weight: 600;
61
61
 
62
62
  &.stronger {
63
- font-weight: 800;
63
+ font-weight: 700;
64
64
  }
65
65
  }
66
66
 
@@ -121,6 +121,10 @@ h6 {
121
121
  margin-bottom: 0 !important;
122
122
  }
123
123
 
124
+ &.inline {
125
+ display: inline-block;
126
+ }
127
+
124
128
  &.white-text {
125
129
  color: $white;
126
130
  }
@@ -226,6 +230,14 @@ h5 {
226
230
  border-bottom: solid 3px $headline-divider-border-color;
227
231
  padding-bottom: 5px;
228
232
  margin-bottom: 20px;
233
+
234
+ &.secondary {
235
+ border-bottom-color: $secondary;
236
+ }
237
+
238
+ &.tertiary-alt {
239
+ border-bottom-color: $tertiary-alt;
240
+ }
229
241
  }
230
242
 
231
243
  &.card-style {
@@ -235,6 +247,11 @@ h5 {
235
247
  font-weight: $headline-weight-normal;
236
248
  color: $body-font-color;
237
249
  margin-bottom: 0.5rem;
250
+
251
+ > span {
252
+ border: 0;
253
+ padding-bottom: 0;
254
+ }
238
255
  }
239
256
 
240
257
  &.byline {
@@ -527,10 +544,25 @@ small,
527
544
  color: $success;
528
545
  }
529
546
 
547
+ &.discount,
530
548
  &.color-success-alt {
531
549
  color: $success-alt;
532
550
  }
533
551
 
552
+ &.strike {
553
+ position: relative;
554
+
555
+ &::after {
556
+ content: '';
557
+ position: absolute;
558
+ top: 50%;
559
+ left: -4px;
560
+ right: -6px;
561
+ border-bottom: solid 2px $secondary-alt;
562
+ transform: translateY(-50%);
563
+ }
564
+ }
565
+
534
566
  .plus {
535
567
  font-size: 1rem;
536
568
  vertical-align: middle;
@@ -570,6 +602,14 @@ small,
570
602
  display: block;
571
603
  font-size: 0.85rem;
572
604
  color: $text-gray;
605
+
606
+ &.inline {
607
+ display: inline-block;
608
+ }
609
+
610
+ &.bigger {
611
+ font-size: 1rem;
612
+ }
573
613
  }
574
614
 
575
615
  .intro-text {
@@ -601,6 +641,11 @@ small,
601
641
  letter-spacing: 1px;
602
642
  padding: 60px 0;
603
643
  text-align: center;
644
+
645
+ &.compact {
646
+ padding: 30px 0;
647
+ font-size: 0.875rem;
648
+ }
604
649
  }
605
650
 
606
651
  .store-code {
package/scss/styles.scss CHANGED
@@ -55,6 +55,7 @@
55
55
  @import './partials/forms';
56
56
  @import './partials/loader';
57
57
  @import './partials/modals';
58
+ @import './partials/flyovers';
58
59
  @import './partials/pills';
59
60
  @import './partials/tables';
60
61
  @import './partials/tooltips';
@@ -2,17 +2,20 @@
2
2
  <transition name="modal">
3
3
  <div class="modal-mask hide-for-print" :class="maskCssClass" @click="closeIfCloseable">
4
4
  <div class="modal-container" :class="cssClass">
5
- <a v-if="closeable" class="close" @click="$emit('close')"><test-close-component width="24" height="24" /></a>
5
+ <a v-if="closeable" class="close" @click="$emit('close')"><icon-base icon-name="close" width="24" height="24" viewBox="0 0 24 24"><icon-close /></icon-base></a>
6
6
  <div class="modal-wrapper">
7
- <div class="modal-grid">
7
+ <div class="modal-grid" :class="{ 'with-footer': hasFooter }">
8
8
  <div class="scrollable-content">
9
9
  <div class="modal-header">
10
10
  <h3 v-if="header || subheader">{{ header }} <small v-if="subheader">{{ subheader }}</small></h3>
11
11
  </div>
12
12
  <div class="modal-body">
13
- <loader></loader>
13
+ <slot name="body"></slot>
14
14
  </div>
15
15
  </div>
16
+ <div class="modal-footer" v-if="hasFooter">
17
+ <slot name="footer"></slot>
18
+ </div>
16
19
  </div>
17
20
  </div>
18
21
  </div>
@@ -21,8 +24,8 @@
21
24
  </template>
22
25
 
23
26
  <script>
24
- import Loader from "./Loader.vue";
25
- import TestCloseComponent from "./icons/IconClose.vue";
27
+ import IconBase from "./icons/IconBase.vue";
28
+ import IconClose from "./icons/IconClose.vue";
26
29
 
27
30
  export default {
28
31
  name: 'ModalWrapper',
@@ -48,8 +51,8 @@
48
51
  }
49
52
  },
50
53
  components: {
51
- TestCloseComponent,
52
- Loader,
54
+ IconBase,
55
+ IconClose,
53
56
  },
54
57
  methods: {
55
58
  closeIfCloseable(e) {
@@ -58,5 +61,10 @@
58
61
  }
59
62
  }
60
63
  },
64
+ computed: {
65
+ hasFooter() {
66
+ return !!this.$slots.footer;
67
+ }
68
+ }
61
69
  }
62
70
  </script>
@@ -8,7 +8,7 @@
8
8
  </div>
9
9
  </div>
10
10
  <nav v-if="product || forceNav" class="image-nav">
11
- <a v-if="showArrows" class="arrow rotate-90 show-for-medium" @click="previous" :disabled="carouselIndex === 0"><icon-caret width="32" height="32" /></a>
11
+ <a v-if="showArrows" class="arrow rotate-90 show-for-medium" @click="previous" :disabled="carouselIndex === 0"><icon-base width="32" height="32" viewbox="0 0 24 24" icon-name="caret"><icon-caret /></icon-base></a>
12
12
  <div class="image-nav-list" :class="imageListClass">
13
13
  <a class="variant-image" :class="{ current: variantImageSelected }" @click="selectVariantImage" :style="shiftStyle">
14
14
  <img :src="variantImagePath" alt="" />
@@ -22,11 +22,12 @@
22
22
  </a>
23
23
  </template>
24
24
  </div>
25
- <a v-if="showArrows" class="arrow rotate-270 show-for-medium" @click="next" :disabled="carouselIndex === carouselSlideCount"><icon-caret width="32" height="32" /></a>
25
+ <a v-if="showArrows" class="arrow rotate-270 show-for-medium" @click="next" :disabled="carouselIndex === carouselSlideCount"><icon-base width="32" height="32" viewbox="0 0 24 24" icon-name="caret"><icon-caret /></icon-base></a>
26
26
  </nav>
27
27
  </div>
28
28
  </template>
29
29
  <script>
30
+ import IconBase from "./icons/IconBase.vue";
30
31
  import IconCaret from "./icons/IconCaret.vue";
31
32
 
32
33
  export default {
@@ -169,6 +170,7 @@
169
170
  },
170
171
  },
171
172
  components: {
173
+ IconBase,
172
174
  IconCaret,
173
175
  }
174
176
  };
@@ -1,10 +1,8 @@
1
1
  <template>
2
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 42.76" class="icon">
3
- <g>
4
- <path fill="none" class="stroke-target" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" d="M38.52,23.01c-0.18,8.84-6.87,16.41-15.9,17.45c-9.85,1.13-18.75-5.93-19.88-15.78 C1.62,14.83,8.69,5.93,18.54,4.8c3.87-0.45,7.78,0.38,11.14,2.36"/>
5
- <path fill="none" class="stroke-target" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" d="M13.39,20.36l7.68,7.69L47.93,2.42"/>
6
- </g>
7
- </svg>
2
+ <g>
3
+ <path fill="none" class="stroke-target" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" d="M38.52,23.01c-0.18,8.84-6.87,16.41-15.9,17.45c-9.85,1.13-18.75-5.93-19.88-15.78 C1.62,14.83,8.69,5.93,18.54,4.8c3.87-0.45,7.78,0.38,11.14,2.36"/>
4
+ <path fill="none" class="stroke-target" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" d="M13.39,20.36l7.68,7.69L47.93,2.42"/>
5
+ </g>
8
6
  </template>
9
7
 
10
8
  <script>
@@ -2,11 +2,13 @@
2
2
  <svg xmlns="http://www.w3.org/2000/svg"
3
3
  :width="width"
4
4
  :height="height"
5
- :aria-label="title"
5
+ :viewBox="viewbox"
6
+ :aria-labelledby="iconName"
6
7
  role="presentation"
7
- class="icon">
8
- <title lang="en">{{ title }}</title>
9
- <use :xlink:href="'#' + iconName"></use>
8
+ class="icon"
9
+ >
10
+ <title :id="iconName" lang="en">{{ title }}</title>
11
+ <slot></slot>
10
12
  </svg>
11
13
  </template>
12
14
 
@@ -16,7 +18,7 @@
16
18
  title: String,
17
19
  iconName: {
18
20
  type: String,
19
- default: 'icon-close',
21
+ default: 'box',
20
22
  },
21
23
  width: {
22
24
  type: [Number, String],
@@ -26,6 +28,10 @@
26
28
  type: [Number, String],
27
29
  default: 64,
28
30
  },
31
+ viewbox: {
32
+ type: String,
33
+ default: '0 0 72 72',
34
+ },
29
35
  },
30
36
  }
31
37
  </script>
@@ -1,7 +1,5 @@
1
1
  <template>
2
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon">
3
- <path fill="none" fill-rule="evenodd" class="stroke-target" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 10l6.119 6L18 10" />
4
- </svg>
2
+ <path fill="none" fill-rule="evenodd" class="stroke-target" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 10l6.119 6L18 10" />
5
3
  </template>
6
4
 
7
5
  <script>
@@ -1,10 +1,8 @@
1
1
  <template>
2
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon">
3
- <g class="color-target" transform="translate(3 3.5)">
4
- <rect width="20" height="3" x="-1" y="7" rx="1" transform="rotate(45 9 8.5)"/>
5
- <rect width="20" height="3" x="-1" y="7" rx="1" transform="scale(-1 1) rotate(45 0 -13.228)"/>
6
- </g>
7
- </svg>
2
+ <g class="color-target" transform="translate(3 3.5)">
3
+ <rect width="20" height="3" x="-1" y="7" rx="1" transform="rotate(45 9 8.5)"/>
4
+ <rect width="20" height="3" x="-1" y="7" rx="1" transform="scale(-1 1) rotate(45 0 -13.228)"/>
5
+ </g>
8
6
  </template>
9
7
 
10
8
  <script>