@asd20/ui 3.2.1044 → 3.3.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 (29) hide show
  1. package/.eslintrc.js +44 -5
  2. package/package.json +25 -32
  3. package/src/components/atoms/Asd20Factoid/index.vue +1 -1
  4. package/src/components/organisms/Asd20SiteMenu/index.vue +1 -1
  5. package/src/components/templates/Asd20ProfileTemplate/index.vue +1 -1
  6. package/src/components/templates/Asd20SchoolHomeTemplate/index.vue +1 -1
  7. package/src/components/templates/Asd20SchoolHomeVideoTemplate/index.vue +1 -1
  8. package/vue.config.js +41 -15
  9. package/package-lock.json +0 -93773
  10. package/public/statics/images/home-images/covid-19-bacgground-desktop.psd +0 -0
  11. package/public/statics/images/home-images/covid-19-background-mobile.jpg +0 -0
  12. package/public/statics/images/home-images/covid-19-background-mobile.psd +0 -0
  13. package/public/statics/images/home-images/covid-header-background.jpg +0 -0
  14. package/public/statics/images/home-images/tertiary-banner.png +0 -0
  15. package/public/statics/images/home-images/tertiary-text-background.png +0 -0
  16. package/src/components/organisms/Asd20BackToSchoolHeader/index.stories.js +0 -20
  17. package/src/components/organisms/Asd20BackToSchoolHeader/index.vue +0 -131
  18. package/src/components/organisms/Asd20CampaignPageHeader/index.stories.js +0 -35
  19. package/src/components/organisms/Asd20CampaignPageHeader/index.vue +0 -512
  20. package/src/components/organisms/Asd20ChoiceHeader/index.stories.js +0 -32
  21. package/src/components/organisms/Asd20ChoiceHeader/index.vue +0 -464
  22. package/src/components/organisms/Asd20CovidHeader/index.stories.js +0 -34
  23. package/src/components/organisms/Asd20CovidHeader/index.vue +0 -571
  24. package/src/components/organisms/Asd20GraduationHeader/index.stories.js +0 -33
  25. package/src/components/organisms/Asd20GraduationHeader/index.vue +0 -456
  26. package/src/components/organisms/Asd20KindergartenHeader/index.stories.js +0 -20
  27. package/src/components/organisms/Asd20KindergartenHeader/index.vue +0 -124
  28. package/src/components/organisms/Asd20ReturnToSchoolHeader/index.stories.js +0 -32
  29. package/src/components/organisms/Asd20ReturnToSchoolHeader/index.vue +0 -306
@@ -1,20 +0,0 @@
1
- import { storiesOf } from '@storybook/vue'
2
- import Asd20BackToSchoolHeader from '.'
3
-
4
- const info = {
5
- summary: 'Asd20BackToSchoolHeader',
6
- }
7
-
8
- const wrapper = {
9
- components: { Asd20BackToSchoolHeader },
10
- data: () => ({}),
11
- }
12
-
13
- storiesOf('Organisms - Asd20BackToSchoolHeader', module).add(
14
- 'Default',
15
- () => ({
16
- ...wrapper,
17
- template: `<Asd20BackToSchoolHeader></Asd20BackToSchoolHeader>`,
18
- }),
19
- { info }
20
- )
@@ -1,131 +0,0 @@
1
- <template>
2
- <section class="asd20-back-to-school-header" role="banner">
3
- <h2 v-html="heading"></h2>
4
- <p v-html="lead"></p>
5
-
6
- <asd20-button
7
- v-if="callToAction"
8
- size="md"
9
- :label="callToAction.label"
10
- :icon="callToAction.icon"
11
- :link="callToAction.url"
12
- bordered
13
- reversed
14
- horizontal
15
- centered
16
- />
17
- </section>
18
- </template>
19
-
20
- <script>
21
- import Asd20Button from '../../atoms/Asd20Button'
22
-
23
- export default {
24
- name: 'Asd20BackToSchoolHeader',
25
- components: { Asd20Button },
26
- props: {
27
- heading: { type: String, default: '' },
28
- lead: { type: String, default: '' },
29
- callToAction: { type: Object, default: () => null },
30
- },
31
- }
32
- </script>
33
-
34
- <style lang="scss" scoped>
35
- @import '../../../design/_variables.scss';
36
- @import '../../../design/_mixins.scss';
37
-
38
- .asd20-back-to-shool-header {
39
- --k-bg: #0d2035;
40
- position: relative;
41
- display: flex;
42
- flex-shrink: 0;
43
- flex-direction: column;
44
- margin-top: space(-2);
45
-
46
- background: var(--k-bg);
47
- color: asd20-swatch('background-alt');
48
-
49
- padding: space(2) space(1) space(1) space(1);
50
-
51
- h2 {
52
- @include fluid-type($base-font-size * 1.5, $base-font-size * 4);
53
- font-weight: 900;
54
- line-height: 1.1;
55
- color: white;
56
- margin-bottom: 1rem;
57
- }
58
-
59
- p {
60
- @include fluid-type($base-font-size * 1, $base-font-size * 2);
61
- @include asd20-font(1, $font-family-headlines);
62
- margin-bottom: 0.5rem;
63
- color: asd20-swatch('background-dark', 6);
64
- }
65
-
66
- & ::v-deep .asd20-button {
67
- text-align: center;
68
-
69
- box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25);
70
- border: none;
71
- font-size: 0.875rem !important;
72
- font-weight: normal;
73
- background: asd20-swatch('accent-one');
74
- padding: space(0.5) space(1);
75
- &:focus {
76
- @include asd20-focus;
77
- }
78
- & + .asd20-button {
79
- margin: space(0.5) 0 0 0;
80
- }
81
- }
82
-
83
- &::before {
84
- content: '';
85
- display: block;
86
- position: absolute;
87
- top: 0;
88
- left: 0;
89
- right: space(1);
90
- height: space(1.5);
91
- background-color: black;
92
- opacity: 0.25;
93
- }
94
- }
95
- @media (min-width: 1024px) {
96
- .asd20-back-to-shool-header {
97
- padding: space(3) 50vw space(3) space(3);
98
-
99
- background: var(--k-bg) url(/statics/images/top-right.svg) right top / 50%
100
- auto no-repeat;
101
-
102
- &::before {
103
- content: '';
104
- display: block;
105
- position: absolute;
106
- top: 0;
107
- left: 0;
108
- right: space(3);
109
- height: space(2);
110
- background-color: black;
111
- opacity: 0.25;
112
- }
113
-
114
- &::after {
115
- content: '';
116
- display: block;
117
- position: absolute;
118
- top: 0;
119
- left: space(3);
120
- right: 0;
121
- height: space(1);
122
- background-color: asd20-swatch('primary');
123
- }
124
-
125
- h2 {
126
- @include fluid-type($base-font-size * 2.5, $base-font-size * 3);
127
- background-size: 200% auto;
128
- }
129
- }
130
- }
131
- </style>
@@ -1,35 +0,0 @@
1
- import { storiesOf } from '@storybook/vue'
2
- import Asd20CampaignPageHeader from '.'
3
-
4
- const info = {
5
- summary: 'Asd20CampaignPageHeader',
6
- }
7
-
8
- const wrapper = {
9
- components: { Asd20CampaignPageHeader },
10
- data: () => ({
11
- pageHeaderContent: {
12
- heading: 'Your student.<br/>Your choice.',
13
- lead:
14
- 'In Colorado families can apply to any K-12 school. Find the right school for your student. <br/>Apply before Feb. 28, 2020.',
15
- imageUrl:
16
- '/statics/images/home-images/academy-district-20-choice-2020.jpg',
17
- imageCaption: '',
18
- callsToAction: [
19
- { label: 'Browse Schools', url: 'https://schools.asd20.org' },
20
- { label: 'Apply & Enroll', url: '/school-choice' },
21
- ],
22
- detailLink: '#',
23
- detailLinkLabel: 'Test label link',
24
- },
25
- }),
26
- }
27
-
28
- storiesOf('Organisms - Asd20CampaignPageHeader', module).add(
29
- 'Default',
30
- () => ({
31
- ...wrapper,
32
- template: `<Asd20CampaignPageHeader v-bind="pageHeaderContent" fullscreen></Asd20CampaignPageHeader>`,
33
- }),
34
- { info }
35
- )
@@ -1,512 +0,0 @@
1
- <template>
2
- <header
3
- v-scroll-track.window
4
- class="asd20-campaign-page-header"
5
- :class="classes"
6
- role="banner"
7
- >
8
- <div v-if="$slots.top" class="asd20-campaign-page-header__top">
9
- <slot name="top" />
10
- </div>
11
-
12
- <h1 v-if="heading" v-html="heading" />
13
- <div v-if="lead" class="asd20-campaign-page-header__lead">
14
- <span v-html="lead"></span>
15
- <a
16
- class="detail-link"
17
- v-if="detailLink && !isDetailPage"
18
- :href="detailLink"
19
- >
20
- {{ detailLinkLabel }}
21
- </a>
22
- </div>
23
-
24
- <figure
25
- v-if="imageUrl && !$slots.aside"
26
- class="asd20-campaign-page-header__image"
27
- >
28
- <img :src="imageUrl" :alt="imageCaption" />
29
- </figure>
30
-
31
- <aside class="asd20-campaign-page-header__aside" v-if="$slots.aside">
32
- <slot name="aside" />
33
- </aside>
34
-
35
- <div
36
- v-if="callsToAction.length > 0"
37
- class="asd20-campaign-page-header__call-to-action"
38
- >
39
- <asd20-button
40
- v-for="(cta, index) in callsToAction"
41
- :key="index"
42
- :size="['sm', 'md'].indexOf(mq) > -1 ? 'sm' : 'lg'"
43
- :label="cta.label"
44
- :icon="cta.icon"
45
- :link="cta.url"
46
- bordered
47
- reversed
48
- horizontal
49
- centered
50
- />
51
- </div>
52
-
53
- <slot />
54
- </header>
55
- </template>
56
-
57
- <script>
58
- import scrollTrack from '../../../directives/scroll-track'
59
- import Asd20Button from '../../atoms/Asd20Button'
60
-
61
- export default {
62
- name: 'Asd20CampaignPageHeader',
63
- components: { Asd20Button },
64
- directives: { scrollTrack },
65
- props: {
66
- heading: { type: String, default: '' },
67
- lead: { type: String, default: '' },
68
- callsToAction: { type: Array, default: () => [] },
69
- imageUrl: { type: String, default: '' },
70
- imageCaption: { type: String, default: '' },
71
- fullscreen: { type: Boolean, default: false },
72
- detailLink: { type: String, default: '' },
73
- detailLinkLabel: { type: String, default: '' },
74
- },
75
- computed: {
76
- mq() {
77
- return this.$mq || 'sm'
78
- },
79
- classes() {
80
- return {
81
- 'asd20-campaign-page-header--fullscreen': this.fullscreen,
82
- 'asd20-campaign-page-header--has-cta': this.callsToAction.length > 0,
83
- }
84
- },
85
- isDetailPage() {
86
- if (typeof window === 'undefined') return false
87
- return (
88
- window.location.pathname.split('/').pop() ===
89
- this.detailLink.split('/').pop()
90
- )
91
- },
92
- },
93
- }
94
- </script>
95
-
96
- <style lang="scss" scoped>
97
- @import '../../../design/_variables.scss';
98
- @import '../../../design/_mixins.scss';
99
-
100
- .asd20-campaign-page-header {
101
- position: relative;
102
- display: flex;
103
- flex-shrink: 0;
104
- flex-direction: column;
105
- color: var(--website-header__title-color);
106
- box-sizing: border-box;
107
- a.detail-link {
108
- color: var(--color__primary);
109
- text-decoration: none;
110
- box-shadow: 0 2px 0 0 #9fabc4;
111
- }
112
-
113
- &__top {
114
- --fill-one: rgba(255, 255, 255, 1);
115
- --fill-two: rgba(255, 255, 255, 0.625);
116
-
117
- position: relative;
118
- order: -3;
119
- z-index: 1;
120
- margin: space(2) space(1) space(0) space(1);
121
-
122
- &::v-deep .asd20-district-logo {
123
- height: space(2);
124
- }
125
-
126
- &::v-deep .asd20-breadcrumb {
127
- margin-bottom: space(-2);
128
- }
129
- }
130
-
131
- &::v-deep .asd20-notification-group--status {
132
- background: white !important;
133
- right: 0;
134
- order: -3;
135
- }
136
-
137
- h1 {
138
- position: relative;
139
- color: var(--website-header__title-color);
140
- @include asd20-font(
141
- 2,
142
- var(--website-typography__font-family-headlines),
143
- 1.1,
144
- 700
145
- );
146
- margin-top: space(-1);
147
- margin-right: space(1);
148
- margin-bottom: space(1);
149
- background: var(--color__tertiary);
150
- padding: space(1) space(1) space(1) space(1);
151
- z-index: 1;
152
- line-height: 1.1;
153
- }
154
-
155
- &__lead {
156
- position: relative;
157
- z-index: 1;
158
- color: var(--color__secondary);
159
- padding: 0 space(1) space(2) space(1);
160
- margin-right: space(1);
161
- margin-bottom: space(-1);
162
- @include asd20-font(1, var(--website-typography__font-family-headlines));
163
- &:last-child {
164
- margin-bottom: space(2);
165
- padding-bottom: space(1);
166
- }
167
- background: var(--color__tertiary);
168
- }
169
-
170
- h1 + &__lead {
171
- margin-top: space(-0.5);
172
- }
173
-
174
- &__call-to-action {
175
- display: flex;
176
- // background: var(--color__primary);
177
- // padding: space(1) space(1);
178
- margin-left: space(1);
179
- margin-right: space(1);
180
- z-index: 1;
181
- }
182
-
183
- ::v-deep .asd20-button {
184
- text-align: center;
185
- box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.25) !important;
186
- border: none;
187
- color: var(--website-button__reverse-foreground-color);
188
- & + .asd20-button {
189
- margin: 0 0 0 space(0.5);
190
- }
191
- }
192
-
193
- &__image {
194
- order: -2;
195
- padding: 0;
196
- margin: 0;
197
- object-fit: cover;
198
- overflow: hidden;
199
- img {
200
- width: 100%;
201
- height: auto;
202
- margin: 0;
203
- }
204
- // display: none;
205
- }
206
-
207
- &__aside {
208
- position: relative;
209
- z-index: 1;
210
- margin: 0 0 0 space(2);
211
- padding: space(1) space(1) space(3) space(1);
212
-
213
- &::before {
214
- content: '';
215
- display: block;
216
- position: absolute;
217
- z-index: -1;
218
- top: space(2);
219
- bottom: space(0);
220
- left: space(-2);
221
- right: 0;
222
- background-color: var(--color__tertiary);
223
- }
224
-
225
- &::after {
226
- content: '';
227
- display: block;
228
- position: absolute;
229
- z-index: -1;
230
- top: 0;
231
- bottom: 0;
232
- left: 0;
233
- right: 0;
234
- background-color: var(--website-page__background-color);
235
- }
236
- }
237
- &__aside + &__call-to-action {
238
- margin-top: space(-2);
239
- }
240
-
241
- &--has-cta {
242
- h1 {
243
- margin-bottom: 0;
244
- }
245
- &::after {
246
- height: space(1.5);
247
- bottom: space(-0.5);
248
- }
249
- }
250
-
251
- @keyframes slide-top {
252
- 0% {
253
- transform: translateX(0) translateY(0);
254
- }
255
- 100% {
256
- transform: translateX(0) translateY(space(1));
257
- }
258
- }
259
-
260
- @keyframes slide-top-rotate {
261
- 0% {
262
- transform: translateX(0) translateY(0) rotate(45deg);
263
- }
264
- 100% {
265
- transform: translateX(0) translateY(space(1)) rotate(45deg);
266
- }
267
- }
268
- a.detail-link {
269
- color: #0e276b;
270
- text-decoration: none;
271
- box-shadow: 0 2px 0 0 #9fabc4;
272
- }
273
- }
274
-
275
- $min: 3rem;
276
- $max: 4rem;
277
-
278
- @media (min-width: 1024px) {
279
- .asd20-campaign-page-header {
280
- display: grid;
281
- grid-template-columns: space(3) repeat(5, 1fr space(3)) 1fr space(3);
282
- grid-template-rows: repeat(3, space(1)) min-content auto auto min-content repeat(
283
- 3,
284
- space(1)
285
- );
286
-
287
- // margin-bottom: space(-3);
288
-
289
- &::before {
290
- content: '';
291
- display: block;
292
- position: relative;
293
- top: auto;
294
- bottom: auto;
295
- left: auto;
296
- right: auto;
297
- z-index: -1;
298
- // background: var(--color__tertiary);
299
- background-color: var(--website-card__reverse-background-color);
300
- background-image: var(--website-texture__reverse);
301
- background-position-y: top;
302
- background-size: 800px auto;
303
- transform: translate3d(0, calc(5% * var(--scroll-progress)), 0);
304
- grid-column: 1 / 7;
305
- grid-row: 1 / -1;
306
- }
307
-
308
- &::after {
309
- content: '';
310
- height: auto;
311
- display: block;
312
- position: relative;
313
- z-index: -2;
314
- top: auto;
315
- bottom: auto;
316
- left: auto;
317
- right: auto;
318
- background: var(--color__tertiary);
319
- transform: translate3d(0, calc(10% * var(--scroll-progress)), 0);
320
- margin-left: 0;
321
- grid-column: 2 / -2;
322
- grid-row: 1 / -2;
323
- }
324
-
325
- &::v-deep .asd20-district-logo {
326
- margin-top: space(-0.75);
327
- & + .asd20-breadcrumb {
328
- margin-top: space(2);
329
- }
330
- }
331
-
332
- &__top {
333
- --fill-one: var(--color__primary);
334
- --fill-two: var(--color__secondary-t50);
335
- margin: 0;
336
- z-index: 3;
337
- grid-column: 2/5;
338
- grid-row: 4/5;
339
- &::v-deep .asd20-breadcrumb {
340
- margin-bottom: space(-0.5);
341
- }
342
- }
343
-
344
- h1 {
345
- position: relative;
346
- grid-column: 2 / 9;
347
- grid-row-start: 5;
348
- box-sizing: border-box;
349
- justify-content: flex-end;
350
- padding: 0;
351
- background: none;
352
- z-index: 1;
353
- margin: space(1) 0 space(1) 0;
354
- @include asd20-font(
355
- 2.5,
356
- var(--website-typography__font-family-headlines),
357
- 1.2,
358
- 700
359
- );
360
- }
361
-
362
- &__lead {
363
- grid-column: 1 / 7;
364
- grid-row: 6 / 7;
365
- margin: 0 space(0) space(0) 0;
366
- padding: space(1) space(1) space(2) space(3);
367
- background: rgba(255, 255, 255, 0.9);
368
- font-size: 1.5rem;
369
- }
370
-
371
- &__call-to-action {
372
- // Reset mobile styles
373
- position: relative;
374
- box-sizing: border-box;
375
- grid-column: 2 / 6;
376
- grid-row-start: 6;
377
- margin: 0;
378
- display: flex;
379
- transform: translate3d(0, calc(-75% * var(--scroll-progress)), 0);
380
- z-index: 2;
381
- height: min-content;
382
- align-self: end;
383
- bottom: space(-1.5);
384
- .asd20-button {
385
- padding: space(1);
386
- & + .asd20-button {
387
- margin: 0 0 0 space(1);
388
- }
389
-
390
- font-size: 1rem;
391
- }
392
- }
393
-
394
- &__lead + &__call-to-action {
395
- margin-top: 0;
396
- }
397
-
398
- &__image {
399
- display: block;
400
- position: relative;
401
- bottom: auto;
402
- left: auto;
403
- right: auto;
404
- top: auto;
405
- grid-column: 1 / -1;
406
- grid-row: 1 / -3;
407
- z-index: 0;
408
- height: auto;
409
- margin: 0;
410
- padding: 0;
411
-
412
- img {
413
- display: block;
414
- width: 100%;
415
- height: 100%;
416
- object-fit: cover;
417
- // object-position: 0 0;
418
- }
419
- }
420
-
421
- &__aside {
422
- position: relative;
423
- bottom: auto;
424
- left: auto;
425
- right: auto;
426
- top: auto;
427
- grid-column: 9 / -1;
428
- grid-row: 4 / -3;
429
- z-index: 0;
430
- height: auto;
431
- margin-left: 0;
432
- padding: space(2);
433
- display: flex;
434
- flex-direction: column;
435
- align-items: stretch;
436
- justify-content: flex-start;
437
- height: min-content;
438
- align-self: end;
439
- &::before {
440
- display: none;
441
- }
442
- }
443
-
444
- &__aside + &__call-to-action {
445
- margin-top: 0;
446
- }
447
-
448
- // &--fullscreen {
449
- // min-height: 100vh;
450
- // margin-bottom: 0;
451
- // // &::before {
452
- // // grid-column: 1 / 7;
453
- // // grid-row: 1 / -1;
454
- // // transform: translate3d(0, calc(5% * var(--scroll-progress)), 0);
455
- // // }
456
- // // &::after {
457
- // // grid-column: -4 / -1;
458
- // // grid-row: 4 / -1;
459
- // // transform: translate3d(0, calc(10% * var(--scroll-progress)), 0);
460
- // // }
461
- // h1 {
462
- // grid-column: 2 / 6;
463
- // }
464
- // .asd20-campaign-page-header__image {
465
- // grid-column: 1 / -1;
466
- // grid-row: 1 / -4;
467
- // margin-bottom: 0;
468
- // }
469
- // .asd20-campaign-page-header__aside {
470
- // grid-column: 6 / -2;
471
- // grid-row: 3 / -1;
472
- // }
473
- // .asd20-campaign-page-header__call-to-action {
474
- // position: absolute;
475
- // bottom: 0;
476
- // left: 0;
477
- // right: 0;
478
- // z-index: 2;
479
- // grid-column: 2 / 7;
480
- // grid-row: 6 / -4;
481
- // margin-right: 0;
482
- // margin-bottom: 0 !important;
483
- // // background: var(--color__primary);
484
- // // padding: space(1);
485
- // transform: translate3d(0, calc(-25% * var(--scroll-progress)), 0);
486
- // .asd20-button {
487
- // // border: 2px solid var(--color__primary-t10);
488
- // flex-grow: 1;
489
- // }
490
- // }
491
- // }
492
- }
493
- }
494
-
495
- @media (min-width: 1300px) {
496
- .asd20-campaign-page-header {
497
- &--fullscreen {
498
- // &::before {
499
- // grid-column: 1 / 6;
500
- // grid-row: 1 / -1;
501
- // transform: translate3d(0, calc(5% * var(--scroll-progress)), 0);
502
- // }
503
-
504
- // .asd20-campaign-page-header__image {
505
- // grid-column: 1 / -1;
506
- // grid-row: 1 / -4;
507
- // margin-bottom: 0;
508
- // }
509
- }
510
- }
511
- }
512
- </style>