@aotearoan/neon 22.2.0 → 22.4.0

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 (48) hide show
  1. package/dist/common/enums/NeonToggleStyle.cjs.js +1 -1
  2. package/dist/common/enums/NeonToggleStyle.cjs.js.map +1 -1
  3. package/dist/common/enums/NeonToggleStyle.es.js +2 -2
  4. package/dist/common/enums/NeonToggleStyle.es.js.map +1 -1
  5. package/dist/common/utils/NeonDateUtils.cjs.js +1 -1
  6. package/dist/common/utils/NeonDateUtils.cjs.js.map +1 -1
  7. package/dist/common/utils/NeonDateUtils.es.js +45 -39
  8. package/dist/common/utils/NeonDateUtils.es.js.map +1 -1
  9. package/dist/components/layout/swiper/NeonSwiper.cjs.js +1 -1
  10. package/dist/components/layout/swiper/NeonSwiper.cjs.js.map +1 -1
  11. package/dist/components/layout/swiper/NeonSwiper.es.js +27 -14
  12. package/dist/components/layout/swiper/NeonSwiper.es.js.map +1 -1
  13. package/dist/components/layout/swiper/NeonSwiper.vue.cjs.js +1 -1
  14. package/dist/components/layout/swiper/NeonSwiper.vue.cjs.js.map +1 -1
  15. package/dist/components/layout/swiper/NeonSwiper.vue.es.js +21 -16
  16. package/dist/components/layout/swiper/NeonSwiper.vue.es.js.map +1 -1
  17. package/dist/components/navigation/stepper/NeonStepper.vue.cjs.js +1 -1
  18. package/dist/components/navigation/stepper/NeonStepper.vue.cjs.js.map +1 -1
  19. package/dist/components/navigation/stepper/NeonStepper.vue.es.js +29 -21
  20. package/dist/components/navigation/stepper/NeonStepper.vue.es.js.map +1 -1
  21. package/dist/components/presentation/image-carousel/NeonImageCarousel.cjs.js +1 -1
  22. package/dist/components/presentation/image-carousel/NeonImageCarousel.cjs.js.map +1 -1
  23. package/dist/components/presentation/image-carousel/NeonImageCarousel.es.js +44 -32
  24. package/dist/components/presentation/image-carousel/NeonImageCarousel.es.js.map +1 -1
  25. package/dist/components/presentation/image-carousel/NeonImageCarousel.vue.cjs.js +1 -1
  26. package/dist/components/presentation/image-carousel/NeonImageCarousel.vue.cjs.js.map +1 -1
  27. package/dist/components/presentation/image-carousel/NeonImageCarousel.vue.es.js +116 -86
  28. package/dist/components/presentation/image-carousel/NeonImageCarousel.vue.es.js.map +1 -1
  29. package/dist/components/user-input/toggle/NeonToggle.cjs.js +1 -1
  30. package/dist/components/user-input/toggle/NeonToggle.cjs.js.map +1 -1
  31. package/dist/components/user-input/toggle/NeonToggle.es.js +19 -18
  32. package/dist/components/user-input/toggle/NeonToggle.es.js.map +1 -1
  33. package/dist/components/user-input/toggle/NeonToggle.vue.cjs.js +1 -1
  34. package/dist/components/user-input/toggle/NeonToggle.vue.cjs.js.map +1 -1
  35. package/dist/components/user-input/toggle/NeonToggle.vue.es.js +9 -9
  36. package/dist/components/user-input/toggle/NeonToggle.vue.es.js.map +1 -1
  37. package/dist/src/common/enums/NeonToggleStyle.d.ts +3 -1
  38. package/dist/src/common/models/NeonDate.d.ts +2 -0
  39. package/dist/src/components/layout/swiper/NeonSwiper.d.ts +46 -0
  40. package/dist/src/components/presentation/image-carousel/NeonImageCarousel.d.ts +35 -22
  41. package/dist/src/components/user-input/toggle/NeonToggle.d.ts +1 -0
  42. package/package.json +1 -1
  43. package/src/sass/components/_badge.scss +2 -0
  44. package/src/sass/components/_image-carousel.scss +109 -14
  45. package/src/sass/components/_stepper.scss +8 -3
  46. package/src/sass/components/_swiper.scss +91 -27
  47. package/src/sass/components/_toggle.scss +29 -6
  48. package/src/sass/variables.scss +30 -2
@@ -1,12 +1,17 @@
1
+ @use '../includes/layout';
1
2
  @use '../includes/outline';
2
3
  @use '../includes/responsive';
3
4
  @use '../includes/scrollbars';
5
+ @use '../includes/svg';
4
6
 
5
7
  @mixin image-carousel {
6
8
  .neon-image-carousel {
7
9
  user-select: none;
10
+ transition: backdrop-filter ease-in-out var(--neon-animation-speed-fast);
11
+ width: 100%;
12
+ height: 100%;
8
13
 
9
- &:focus {
14
+ &:focus-visible {
10
15
  outline: none;
11
16
  @include outline.box-shadow-outline(var(--neon-rgb-high-contrast));
12
17
  }
@@ -14,10 +19,11 @@
14
19
  .neon-image-carousel__container {
15
20
  flex-direction: row;
16
21
  align-items: center;
22
+ flex: 1 1 auto;
17
23
  gap: var(--neon-space-16);
18
- height: calc(100% - 60rem);
24
+ min-height: 0;
19
25
 
20
- &:focus {
26
+ &:focus-visible {
21
27
  outline: none;
22
28
  }
23
29
  }
@@ -25,20 +31,24 @@
25
31
  .neon-image-carousel__items {
26
32
  display: flex;
27
33
  flex-direction: row;
28
- max-height: 100%;
34
+ width: 100%;
35
+ height: 100%;
29
36
  overflow-x: auto;
30
37
  scroll-snap-type: x mandatory;
31
38
  overscroll-behavior-x: contain;
32
39
 
33
40
  @include scrollbars.hide-scrollbars();
34
41
 
35
- &:focus {
42
+ &:focus-visible {
36
43
  outline: none;
37
44
  }
38
45
  }
39
46
 
40
47
  .neon-image-carousel__item {
41
48
  display: flex;
49
+ flex-direction: column;
50
+ gap: var(--neon-space-8);
51
+ justify-content: center;
42
52
  min-width: 100%;
43
53
  padding: var(--neon-space-2);
44
54
  scroll-snap-align: start;
@@ -46,21 +56,29 @@
46
56
  opacity: 0;
47
57
  transition: opacity ease-in-out var(--neon-animation-speed-fast);
48
58
 
49
- &-wrapper {
50
- width: 100%;
51
- height: 100%;
59
+ &-title {
60
+ text-align: center;
61
+ font-weight: var(--neon-font-weight-normal);
62
+ font-size: var(--neon-font-size-m);
63
+ font-style: italic;
64
+ color: var(--neon-color-image-carousel-expanded-button);
65
+ margin-left: auto;
66
+ margin-right: auto;
67
+ padding: 0 var(--neon-space-16);
68
+ text-shadow: var(--neon-text-shadow-image-carousel-expanded);
52
69
  }
53
70
  }
54
71
 
55
72
  .neon-image-carousel__image {
56
- margin: auto;
57
- min-width: 100%;
58
- max-height: 100%;
59
73
  object-fit: contain;
74
+ cursor: pointer;
75
+ max-width: 100%;
76
+ max-height: 100%;
77
+ min-height: 0;
60
78
  }
61
79
 
62
80
  .neon-image-carousel__nav {
63
- padding-top: var(--neon-space-24);
81
+ padding-top: var(--neon-space-12);
64
82
 
65
83
  flex-direction: row;
66
84
  flex-wrap: wrap;
@@ -90,11 +108,11 @@
90
108
  margin-left: var(--neon-image-carousel-swipe-distance);
91
109
  }
92
110
 
93
- &:focus {
111
+ &:focus-visible {
94
112
  outline: none;
95
113
  }
96
114
 
97
- &-link:focus {
115
+ &-link:focus-visible {
98
116
  outline: none;
99
117
 
100
118
  .neon-image-carousel__nav-item-indicator {
@@ -119,6 +137,83 @@
119
137
  display: none;
120
138
  }
121
139
  }
140
+
141
+ &.neon-image-carousel--expanded {
142
+ position: fixed;
143
+ top: 0;
144
+ left: 0;
145
+ width: 100vw;
146
+ @include layout.height(100);
147
+ max-width: 100%;
148
+ max-height: 100%;
149
+ background-color: var(--neon-background-color-overlay);
150
+ z-index: var(--neon-z-index-top);
151
+ -webkit-backdrop-filter: blur(var(--neon-blur-radius-image-carousel));
152
+ backdrop-filter: blur(var(--neon-blur-radius-image-carousel));
153
+ gap: var(--neon-space-8);
154
+
155
+ .neon-image-carousel__container {
156
+ padding-top: var(--neon-gutter);
157
+ max-height: 100%;
158
+ min-height: 0;
159
+ height: 100%;
160
+
161
+ .neon-button {
162
+ &:not(:disabled) {
163
+ @include svg.color-with-svg(var(--neon-color-image-carousel-expanded-button));
164
+
165
+ &:hover,
166
+ &:focus-visible {
167
+ background-color: var(--neon-background-color-image-carousel-expanded-button);
168
+ }
169
+ }
170
+
171
+ &:disabled {
172
+ @include svg.color-with-svg(var(--neon-color-image-carousel-expanded-button-disabled));
173
+ }
174
+ }
175
+ }
176
+
177
+ .neon-image-carousel__image {
178
+ cursor: default;
179
+ }
180
+
181
+ .neon-image-carousel__close {
182
+ position: absolute;
183
+ top: 0;
184
+ right: 0;
185
+ border-radius: 0;
186
+ }
187
+
188
+ .neon-image-carousel__label {
189
+ font-size: var(--neon-font-size-m);
190
+ line-height: var(--neon-line-height-ratio);
191
+ color: var(--neon-color-image-carousel-expanded-label);
192
+ text-shadow: var(--neon-text-shadow-image-carousel-expanded);
193
+ }
194
+
195
+ .neon-image-carousel__nav-container {
196
+ padding-bottom: var(--neon-gutter);
197
+
198
+ }
199
+
200
+ .neon-image-carousel__nav-item {
201
+ width: 24rem;
202
+ height: 24rem;
203
+
204
+ &-indicator {
205
+ width: 12rem;
206
+ height: 12rem;
207
+ border-color: var(--neon-color-image-carousel-expanded-button);
208
+ }
209
+
210
+ &--active {
211
+ .neon-image-carousel__nav-item-indicator {
212
+ background-color: var(--neon-color-image-carousel-expanded-button);
213
+ }
214
+ }
215
+ }
216
+ }
122
217
  }
123
218
 
124
219
  .neon-image-carousel--initialised {
@@ -1,4 +1,5 @@
1
1
  @use '../includes/palettes';
2
+ @use '../includes/outline';
2
3
 
3
4
  @mixin stepper {
4
5
  .neon-stepper {
@@ -60,12 +61,11 @@
60
61
  height: var(--neon-space-10);
61
62
 
62
63
  svg {
63
- path,
64
- circle {
64
+ .neon-svg--fill {
65
65
  fill: var(--neon-color-stepper-indicator);
66
66
  }
67
67
 
68
- circle {
68
+ .neon-svg--stroke {
69
69
  stroke: var(--neon-color-stepper-indicator);
70
70
  }
71
71
  }
@@ -113,6 +113,11 @@
113
113
  .neon-stepper__step--has-value {
114
114
  .neon-stepper__step-indicator {
115
115
  background: var(--neon-color-#{$color});
116
+
117
+ &:focus {
118
+ outline: none;
119
+ @include outline.box-shadow-outline(var(--neon-rgb-#{$color}));
120
+ }
116
121
  }
117
122
  }
118
123
 
@@ -6,18 +6,14 @@
6
6
  flex-direction: row;
7
7
  max-width: 100%;
8
8
  width: 100%;
9
- overflow-x: hidden;
10
9
 
11
10
  .neon-swiper__container {
12
11
  position: relative;
13
12
  top: 0;
14
13
  left: 0;
15
- overflow-x: auto;
16
14
  overscroll-behavior: contain;
17
15
  width: 100%;
18
16
  height: 100%;
19
-
20
- @include scrollbars.hide-scrollbars();
21
17
  }
22
18
 
23
19
  .neon-swiper__fade-out {
@@ -29,40 +25,108 @@
29
25
  z-index: var(--neon-z-index-above);
30
26
  width: 100%;
31
27
  height: 100%;
28
+ }
29
+
30
+ &--horizontal {
31
+ overflow-x: hidden;
32
+
33
+ .neon-swiper__container {
34
+ overflow-x: auto;
35
+ flex-direction: row;
36
+ @include scrollbars.hide-scrollbars();
37
+ }
38
+
39
+ .neon-swiper__fade-out {
40
+ &:before {
41
+ content: '';
42
+ position: absolute;
43
+ left: 0;
44
+ background: linear-gradient(to left, transparent, var(--neon-background-color-swiper));
45
+ height: 100%;
46
+ width: 0;
47
+ transition: width ease-in-out var(--neon-animation-speed-fast);
48
+ }
32
49
 
33
- &:before {
34
- content: '';
35
- position: absolute;
36
- left: 0;
37
- background: linear-gradient(to left, transparent, var(--neon-background-color-swiper));
38
- height: 100%;
39
- width: 0;
40
- transition: width ease-in-out var(--neon-animation-speed-fast);
50
+ &:after {
51
+ content: '';
52
+ position: absolute;
53
+ right: 0;
54
+ background: linear-gradient(to right, transparent, var(--neon-background-color-swiper));
55
+ height: 100%;
56
+ width: 0;
57
+ transition: width ease-in-out var(--neon-animation-speed-fastest);
58
+ }
41
59
  }
42
60
 
43
- &:after {
44
- content: '';
45
- position: absolute;
46
- right: 0;
47
- background: linear-gradient(to right, transparent, var(--neon-background-color-swiper));
48
- height: 100%;
49
- width: 0;
50
- transition: width ease-in-out var(--neon-animation-speed-fastest);
61
+ &.neon-swiper--overflowing.neon-swiper--fade {
62
+ &:not(.neon-swiper--start) {
63
+ .neon-swiper__fade-out:before {
64
+ width: var(--neon-space-24);
65
+ }
66
+ }
67
+
68
+ &:not(.neon-swiper--end) {
69
+ .neon-swiper__fade-out:after {
70
+ width: var(--neon-space-24);
71
+ }
72
+ }
51
73
  }
52
74
  }
53
75
 
54
- &--overflowing.neon-swiper--fade {
55
- &:not(.neon-swiper--start) {
56
- .neon-swiper__fade-out:before {
57
- width: var(--neon-space-24);
76
+ &--vertical {
77
+ overflow-y: hidden;
78
+
79
+ .neon-swiper__container {
80
+ overflow-y: auto;
81
+ }
82
+
83
+ .neon-swiper__fade-out {
84
+ &:before {
85
+ content: '';
86
+ position: absolute;
87
+ top: 0;
88
+ background: linear-gradient(to top, transparent, var(--neon-background-color-swiper));
89
+ width: 100%;
90
+ height: 0;
91
+ transition: width ease-in-out var(--neon-animation-speed-fastest);
92
+ }
93
+
94
+ &:after {
95
+ content: '';
96
+ position: absolute;
97
+ bottom: 0;
98
+ background: linear-gradient(to bottom, transparent, var(--neon-background-color-swiper));
99
+ width: 100%;
100
+ height: 0;
101
+ transition: width ease-in-out var(--neon-animation-speed-fastest);
58
102
  }
59
103
  }
60
104
 
61
- &:not(.neon-swiper--end) {
62
- .neon-swiper__fade-out:after {
63
- width: var(--neon-space-24);
105
+ &.neon-swiper--overflowing.neon-swiper--fade {
106
+ &:not(.neon-swiper--start) {
107
+ .neon-swiper__fade-out:before {
108
+ height: var(--neon-space-24);
109
+ }
110
+ }
111
+
112
+ &:not(.neon-swiper--end) {
113
+ .neon-swiper__fade-out:after {
114
+ height: var(--neon-space-24);
115
+ }
64
116
  }
65
117
  }
66
118
  }
119
+
120
+ &.neon-swiper--hide-fade-start {
121
+ .neon-swiper__fade-out:before {
122
+ display: none;
123
+ }
124
+ }
125
+
126
+ &.neon-swiper--hide-fade-end {
127
+ .neon-swiper__fade-out:after {
128
+ display: none;
129
+ }
130
+ }
67
131
  }
68
132
  }
@@ -19,7 +19,7 @@
19
19
  justify-content: center;
20
20
  white-space: nowrap;
21
21
 
22
- &:focus {
22
+ &:focus-visible {
23
23
  outline: none;
24
24
  }
25
25
 
@@ -75,6 +75,7 @@
75
75
  }
76
76
  }
77
77
 
78
+ &--card,
78
79
  &--radio-buttons {
79
80
  align-items: flex-start;
80
81
 
@@ -89,22 +90,22 @@
89
90
 
90
91
  .neon-toggle__label:not(.neon-toggle__label--disabled) {
91
92
  .neon-toggle__radio-button {
92
- border: var(--neon-border-radio-button);
93
+ border: var(--neon-border-width) var(--neon-border-style) var(--neon-color-#{$color});
93
94
  background: var(--neon-background-radio-button);
94
95
  }
95
96
 
96
97
  color: var(--neon-color-radio-button-label);
97
98
 
98
99
  &:hover,
99
- &:focus {
100
+ &:focus-visible {
100
101
  &:not(.neon-toggle__label--checked) {
101
102
  .neon-toggle__radio-button {
102
- background: var(--neon-color-radio-button-bg-active);
103
+ background: rgba(var(--neon-rgb-#{$color}), 0.125);
103
104
  }
104
105
  }
105
106
  }
106
107
 
107
- &:focus {
108
+ &:focus-visible {
108
109
  border-bottom-color: var(--neon-color-#{$color});
109
110
  }
110
111
 
@@ -124,6 +125,16 @@
124
125
  }
125
126
  }
126
127
 
128
+ &.neon-toggle--card {
129
+ .neon-toggle__label {
130
+ &.neon-toggle__label--checked,
131
+ &.neon-toggle__label:hover,
132
+ &.neon-toggle__label:focus-visible {
133
+ border-color: var(--neon-color-#{$color});
134
+ }
135
+ }
136
+ }
137
+
127
138
  &.neon-toggle--disabled .neon-toggle__label,
128
139
  .neon-toggle__label--disabled {
129
140
  color: var(--neon-color-disabled-text);
@@ -140,12 +151,24 @@
140
151
  }
141
152
  }
142
153
 
154
+ &--card {
155
+ gap: var(--neon-space-16);
156
+
157
+ .neon-toggle__label {
158
+ padding: var(--neon-space-16);
159
+ border: var(--neon-border-width-input) var(--neon-border-style) var(--neon-border-color-input);
160
+ width: 100%;
161
+ border-radius: var(--neon-border-radius-input);
162
+ }
163
+ }
164
+
143
165
  &--horizontal {
144
166
  flex-direction: row;
145
167
  gap: var(--neon-space-24);
146
168
  }
147
169
 
148
- &--disabled {
170
+ &--disabled,
171
+ &--disabled .neon-toggle__label {
149
172
  cursor: not-allowed;
150
173
  }
151
174
  }
@@ -1,3 +1,4 @@
1
+ @use './includes/responsive';
1
2
  @import './palette';
2
3
  @import './color-variables';
3
4
 
@@ -18,6 +19,18 @@
18
19
  --neon-gutter-tablet: 24rem;
19
20
  --neon-gutter-mobile: 16rem;
20
21
 
22
+ @include responsive.responsive(larger-than-tablet) {
23
+ --neon-gutter: var(--neon-gutter-desktop);
24
+ }
25
+
26
+ @include responsive.responsive(tablet) {
27
+ --neon-gutter: var(--neon-gutter-tablet);
28
+ }
29
+
30
+ @include responsive.responsive(mobile-large) {
31
+ --neon-gutter: var(--neon-gutter-mobile);
32
+ }
33
+
21
34
  /* spacings */
22
35
  --neon-space-1: calc(0.25 * var(--neon-base-space));
23
36
  --neon-space-2: calc(0.5 * var(--neon-base-space));
@@ -349,6 +362,9 @@
349
362
  /* card list */
350
363
  --neon-border-radius-card-list: calc(1.5 * var(--neon-base-space));
351
364
 
365
+ /* image carousel */
366
+ --neon-blur-radius-image-carousel: 5px;
367
+
352
368
  /**********************
353
369
  * DARK THEME VARIABLES
354
370
  **********************/
@@ -533,7 +549,6 @@
533
549
 
534
550
  /* radio buttons */
535
551
  --neon-background-radio-button: none;
536
- --neon-border-radio-button: var(--neon-border-width) var(--neon-border-style) var(--neon-color-neutral-d2);
537
552
  --neon-color-radio-button-bg-active: rgba(var(--neon-rgb-neutral-l3), 0.125);
538
553
  --neon-color-radio-button-label: var(--neon-color-label);
539
554
 
@@ -653,6 +668,13 @@
653
668
  --neon-background-color-swiper: var(--neon-background-color-card);
654
669
  }
655
670
 
671
+ /* image carousel */
672
+ --neon-color-image-carousel-expanded-button: var(--neon-color-text-primary);
673
+ --neon-color-image-carousel-expanded-button-disabled: var(--neon-color-low-contrast-d4);
674
+ --neon-background-color-image-carousel-expanded-button: var(--neon-color-low-contrast-d5);
675
+ --neon-color-image-carousel-expanded-label: var(--neon-color-text-tertiary);
676
+ --neon-text-shadow-image-carousel-expanded: 1px 1px 2px var(--neon-color-inverse);
677
+
656
678
  /*********************
657
679
  * LIGHT THEME VARIABLES
658
680
  *********************/
@@ -840,7 +862,6 @@
840
862
 
841
863
  /* radio buttons */
842
864
  --neon-background-radio-button: none;
843
- --neon-border-radio-button: var(--neon-border-width) var(--neon-border-style) var(--neon-color-neutral-l3);
844
865
  --neon-color-radio-button-bg-active: rgba(var(--neon-rgb-neutral-l3), 0.25);
845
866
  --neon-color-radio-button-label: var(--neon-color-label);
846
867
 
@@ -959,5 +980,12 @@
959
980
 
960
981
  /* swiper */
961
982
  --neon-background-color-swiper: var(--neon-background-color-card);
983
+
984
+ /* image carousel */
985
+ --neon-color-image-carousel-expanded-button: var(--neon-color-inverse);
986
+ --neon-color-image-carousel-expanded-button-disabled: var(--neon-color-low-contrast-d2);
987
+ --neon-background-color-image-carousel-expanded-button: var(--neon-color-low-contrast-d3);
988
+ --neon-color-image-carousel-expanded-label: var(--neon-color-text-tertiary-dark);
989
+ --neon-text-shadow-image-carousel-expanded: 1px 1px 2px var(--neon-color-text-primary);
962
990
  }
963
991
  }