@asd20/ui-next 2.21.8 → 2.21.10

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.21.10](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.21.9...ui-next-v2.21.10) (2026-08-27)
4
+
5
+ ## [2.21.9](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.21.8...ui-next-v2.21.9) (2026-08-27)
6
+
3
7
  ## [2.21.8](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.21.7...ui-next-v2.21.8) (2026-08-26)
4
8
 
5
9
  ## [2.21.7](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.21.6...ui-next-v2.21.7) (2026-08-26)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asd20/ui-next",
3
- "version": "2.21.8",
3
+ "version": "2.21.10",
4
4
  "private": false,
5
5
  "description": "ASD20 UI component library for Vue 3.",
6
6
  "license": "MIT",
@@ -10,14 +10,19 @@
10
10
  >
11
11
  <header class="asd20-person-modal__header">
12
12
  <div class="asd20-person-modal__photo">
13
- <div class="photo">
13
+ <div
14
+ v-if="person.thumbnailUrl"
15
+ class="photo"
16
+ >
14
17
  <img
15
- v-if="person.thumbnailUrl"
16
18
  :src="person.thumbnailUrl"
17
19
  :alt="person.displayName"
18
20
  />
19
21
  </div>
20
- <div class="initials">
22
+ <div
23
+ v-else
24
+ class="initials"
25
+ >
21
26
  {{ initials }}
22
27
  </div>
23
28
  </div>
@@ -61,12 +66,10 @@
61
66
  icon="email"
62
67
  icon-size="lg"
63
68
  label="Email"
64
- :description="
65
- `<a href='mailto:${person.email.replace(
66
- 'mailto:',
67
- ''
68
- )}'>${person.email.replace('mailto:', '')}</a>`
69
- "
69
+ :description="`<a href='mailto:${person.email.replace(
70
+ 'mailto:',
71
+ ''
72
+ )}'>${person.email.replace('mailto:', '')}</a>`"
70
73
  />
71
74
 
72
75
  <Asd20ListItem
@@ -74,9 +77,7 @@
74
77
  icon="phone-alt"
75
78
  icon-size="lg"
76
79
  label="Phone"
77
- :description="
78
- `<a href='tel:${person.workPhone}'>${person.workPhone}</a>`
79
- "
80
+ :description="`<a href='tel:${person.workPhone}'>${person.workPhone}</a>`"
80
81
  />
81
82
  <div
82
83
  v-show="person.biography"
@@ -125,9 +126,12 @@ export default {
125
126
  initials() {
126
127
  if (!this.person.displayName) return ''
127
128
  return this.person.displayName
128
- .split(' ')
129
+ .trim()
130
+ .split(/\s+/)
131
+ .filter(Boolean)
129
132
  .map(n => n[0])
130
133
  .join('')
134
+ .slice(0, 3)
131
135
  },
132
136
  useEmailForm() {
133
137
  return (
@@ -343,8 +343,20 @@ $max: 4rem;
343
343
  @media (min-width: 1024px) {
344
344
  .asd20-school-homepage-header {
345
345
  display: grid;
346
- grid-template-columns: space(3) repeat(5, 1fr space(3)) 1fr space(3);
347
- grid-template-rows: repeat(6, space(1)) space(3) 1fr space(3) repeat(3, space(1));
346
+ grid-template-columns:
347
+ [full-start] space(3)
348
+ [content-start] minmax(0, 1fr) [content-end]
349
+ space(3)
350
+ [media-start] minmax(0, 1.15fr) [media-end]
351
+ space(3) [full-end];
352
+ grid-template-rows:
353
+ [top-start] space(5)
354
+ [media-start] space(1)
355
+ [top-end hero-start] space(3)
356
+ [content-start] minmax(0, 1fr) [content-end]
357
+ space(3)
358
+ [actions-start] auto [media-end]
359
+ space(2) [full-end];
348
360
  margin-bottom: 0;
349
361
  &::before {
350
362
  content: '';
@@ -354,8 +366,8 @@ $max: 4rem;
354
366
  bottom: auto;
355
367
  left: auto;
356
368
  right: auto;
357
- grid-column: 1 / -1;
358
- grid-row: 7 / -4;
369
+ grid-column: full-start / full-end;
370
+ grid-row: hero-start / actions-start;
359
371
  z-index: 1;
360
372
  border-top-left-radius: 0;
361
373
  border-top-right-radius: 0;
@@ -372,8 +384,8 @@ $max: 4rem;
372
384
  left: auto;
373
385
  right: auto;
374
386
  margin-left: 0;
375
- grid-column: 1 / -1;
376
- grid-row: 7 / -1;
387
+ grid-column: full-start / full-end;
388
+ grid-row: hero-start / full-end;
377
389
  background: var(--website-quick-links__background-color);
378
390
  }
379
391
 
@@ -385,8 +397,8 @@ $max: 4rem;
385
397
  position: relative;
386
398
  margin: 0;
387
399
  padding: space(1) space(1) space(1) space(3);
388
- grid-column: 1/-1;
389
- grid-row: 1/7;
400
+ grid-column: full-start / full-end;
401
+ grid-row: top-start / top-end;
390
402
  background: transparent;
391
403
  justify-content: space-between;
392
404
  width: inherit;
@@ -406,8 +418,8 @@ $max: 4rem;
406
418
  margin-top: 0;
407
419
  position: relative;
408
420
  width: auto;
409
- grid-column: 2 / 6;
410
- grid-row: 8 / 9;
421
+ grid-column: content-start / content-end;
422
+ grid-row: content-start / content-end;
411
423
  }
412
424
 
413
425
  h1 {
@@ -421,8 +433,8 @@ $max: 4rem;
421
433
  }
422
434
 
423
435
  &__call-to-action {
424
- grid-column: 2 / 6;
425
- grid-row-start: 10;
436
+ grid-column: content-start / content-end;
437
+ grid-row: actions-start / media-end;
426
438
  z-index: 2;
427
439
  margin: 0;
428
440
  height: min-content;
@@ -444,8 +456,8 @@ $max: 4rem;
444
456
  left: auto;
445
457
  right: auto;
446
458
  top: auto;
447
- grid-column: 7 / -2;
448
- grid-row: 6 / -3;
459
+ grid-column: media-start / media-end;
460
+ grid-row: media-start / media-end;
449
461
  z-index: 1;
450
462
  height: auto;
451
463
  margin: 0;
@@ -473,186 +473,33 @@ $max: 4rem;
473
473
  }
474
474
  }
475
475
 
476
- @media (min-width: 1024px) and (max-height: 700px) {
476
+ @media (min-width: 1024px) {
477
477
  .asd20-school-homepage-video-header {
478
478
  display: grid;
479
- grid-template-columns: space(3) repeat(5, 1fr space(3)) 1fr space(3);
480
- grid-template-rows: repeat(6, space(1)) space(3) 1fr space(3) repeat(
481
- 3,
482
- space(1)
483
- );
479
+ grid-template-columns:
480
+ [full-start] space(3)
481
+ [media-start] minmax(0, 1fr) [media-end]
482
+ space(3) [full-end];
483
+ grid-template-rows:
484
+ [top-start] space(5)
485
+ [media-start] space(1)
486
+ [top-end hero-start] space(3)
487
+ [content-start] minmax(0, 1fr) [content-end]
488
+ space(3)
489
+ [actions-start] space(1) [media-end]
490
+ space(2) [full-end];
484
491
  margin-bottom: 0;
485
- .background-video {
486
- display: block;
487
- pointer-events: none;
488
- }
489
- .background-image {
490
- display: block;
491
- }
492
- .hide-background-image {
493
- display: none;
494
- }
495
-
496
- video {
497
- z-index: -1;
498
- width: 100%;
499
- height: 80vh;
500
- object-fit: cover;
501
- }
502
-
503
- & :deep(.notification-group--status .notifications) {
504
- border-radius: 3rem;
505
- padding: 0.37rem;
506
- }
507
- &::before {
508
- content: '';
509
- display: block;
510
- position: relative;
511
- top: auto;
512
- bottom: auto;
513
- left: auto;
514
- right: auto;
515
- grid-column: 1 / -1;
516
- grid-row: 7 / -4;
517
- z-index: 1;
518
- /* transform: translate3d(0, calc(5% * var(--scroll-progress)), 0);*/
519
- border-radius: var(--website-shape__radius-l);
520
- border-top-left-radius: 0;
521
- border-top-right-radius: 0;
522
- border-bottom-left-radius: 0;
523
- border-bottom-right-radius: 0;
524
- }
525
-
526
- &::after {
527
- content: '';
528
- display: block;
529
- position: relative;
530
- top: auto;
531
- bottom: auto;
532
- left: auto;
533
- right: auto;
534
- margin-left: 0;
535
- grid-column: 1 / -1;
536
- grid-row: 7 / -1;
537
- background: var(--website-quick-links__background-color);
538
- }
539
-
540
- & :deep(.asd20-logo + .asd20-breadcrumb) {
541
- margin-top: space(2);
542
- }
543
-
544
- &__top {
545
- position: relative;
546
- width: inherit;
547
- margin: 0;
548
- padding: space(0.5) space(3) space(1) space(3);
549
- grid-column: 1/-1;
550
- grid-row: 1/7;
551
- background: transparent;
552
- justify-content: space-between;
553
- & :deep(.asd20-picker) {
554
- display: flex;
555
- }
556
- }
557
-
558
- &__text {
559
- display: block;
560
- position: absolute;
561
- top: space(1);
562
- left: space(1);
563
- z-index: 100;
564
- width: 60%;
565
- min-width: space(15);
566
- height: min-content;
567
- background: rgba(0, 0, 0, 0.6);
568
- padding: space(1);
569
- border-left: space(1.5) solid var(--color__accent-t20);
570
- animation: slide_left 1s ease-in-out 0.5s both;
571
- border-top-left-radius: 2rem;
572
- border-bottom-left-radius: 2rem;
573
- }
574
-
575
- &__content {
576
- width: auto;
577
- background: transparent;
578
- }
579
492
 
580
- h1 {
581
- margin: 0 0 space(1) 0;
582
- font-size: 40px !important;
583
- color: var(--color__on-accent);
584
- border-bottom: none;
585
- }
586
-
587
- &__lead {
588
- margin: space(-0.5) 0 0 0;
589
- font-size: 20px !important;
590
- color: var(--color__on-accent);
591
- }
592
-
593
- &__lead + &__call-to-action {
594
- margin-top: 0;
595
- }
596
- &__call-to-action {
597
- flex-direction: column;
598
- margin: 0;
599
- height: min-content;
600
- align-self: end;
601
- .asd20-button {
602
- flex-grow: 1;
603
- width: auto;
604
- margin: space(0.5) 0 0;
605
- min-width: 60%;
606
- max-width: 60%;
607
- border-radius: var(--website-shape__radius-m);
608
- padding: space(0.5) space(0.75);
609
- }
610
- }
611
-
612
- &__image {
613
- display: block;
614
- position: relative;
615
- bottom: auto;
616
- left: auto;
617
- right: auto;
618
- top: auto;
619
- grid-column: 2 / 13;
620
- grid-row: 6 / -3;
621
- z-index: 1;
622
- height: auto;
623
- margin: 0;
624
- padding: 0;
625
- background: transparent;
626
- transform: translate3d(0, calc(-20% * var(--scroll-progress)), 0);
627
- border-radius: var(--website-shape__radius-l);
628
- overflow: hidden;
629
-
630
- img {
631
- display: block;
632
- width: 100%;
633
- height: 80vh;
634
- object-fit: cover;
635
- object-position: center;
636
- border-radius: var(--website-shape__radius-l);
637
- }
638
- }
639
- .scroll-down-indicator {
493
+ .background-video,
494
+ .background-image {
640
495
  display: block;
641
496
  }
642
- }
643
- }
644
497
 
645
- @media (min-width: 1024px) and (min-height: 700px) {
646
- .asd20-school-homepage-video-header {
647
- display: grid;
648
- grid-template-columns: space(3) repeat(5, 1fr space(3)) 1fr space(3);
649
- grid-template-rows: repeat(6, space(1)) space(3) 1fr space(3) repeat(3, space(1));
650
- margin-bottom: 0;
651
498
  .background-video {
652
- display: block;
653
499
  border-radius: var(--website-shape__radius-l);
654
500
  pointer-events: none;
655
501
  }
502
+
656
503
  .hide-background-image {
657
504
  display: none;
658
505
  }
@@ -664,39 +511,25 @@ $max: 4rem;
664
511
  object-fit: cover;
665
512
  }
666
513
 
667
- & :deep(.notification-group--status .notifications) {
668
- border-radius: 3rem;
669
- padding: 0.375rem;
670
- }
671
514
  &::before {
672
515
  content: '';
673
516
  display: block;
674
517
  position: relative;
675
- top: auto;
676
- bottom: auto;
677
- left: auto;
678
- right: auto;
679
- grid-column: 1 / -1;
680
- grid-row: 7 / -4;
518
+ inset: auto;
519
+ grid-column: full-start / full-end;
520
+ grid-row: hero-start / actions-start;
681
521
  z-index: 1;
682
- border-radius: var(--website-shape__radius-l);
683
- border-top-left-radius: 0;
684
- border-top-right-radius: 0;
685
- border-bottom-left-radius: 0;
686
- border-bottom-right-radius: 0;
522
+ border-radius: 0;
687
523
  }
688
524
 
689
525
  &::after {
690
526
  content: '';
691
527
  display: block;
692
528
  position: relative;
693
- top: auto;
694
- bottom: auto;
695
- left: auto;
696
- right: auto;
529
+ inset: auto;
697
530
  margin-left: 0;
698
- grid-column: 1 / -1;
699
- grid-row: 7 / -1;
531
+ grid-column: full-start / full-end;
532
+ grid-row: hero-start / full-end;
700
533
  background: var(--website-quick-links__background-color);
701
534
  }
702
535
 
@@ -708,11 +541,12 @@ $max: 4rem;
708
541
  position: relative;
709
542
  width: inherit;
710
543
  margin: 0;
711
- padding: space(0.5) space(3) space(1) space(3);
712
- grid-column: 1/-1;
713
- grid-row: 1/7;
544
+ padding: space(0.5) space(3) space(1);
545
+ grid-column: full-start / full-end;
546
+ grid-row: top-start / top-end;
714
547
  background: transparent;
715
548
  justify-content: space-between;
549
+
716
550
  & :deep(.asd20-picker) {
717
551
  display: flex;
718
552
  }
@@ -725,12 +559,17 @@ $max: 4rem;
725
559
  left: -1rem;
726
560
  z-index: 100;
727
561
  width: 25rem;
728
- height: min-content;
729
- background: linear-gradient(to right, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.7) 60%, rgba(0, 0, 0, 0.5) 80%, rgba(0, 0, 0, 0) 100%);
562
+ height: 80%;
563
+ background: linear-gradient(
564
+ to right,
565
+ rgba(0, 0, 0, 1) 0%,
566
+ rgba(0, 0, 0, 0.7) 60%,
567
+ rgba(0, 0, 0, 0.5) 80%,
568
+ rgba(0, 0, 0, 0) 100%
569
+ );
730
570
  padding: space(1);
731
571
  border-left: space(1.5) solid var(--color__accent-t20);
732
572
  animation: slide_left 1s ease-in-out 0.5s both;
733
- height: 80%;
734
573
  border-top-left-radius: 2rem;
735
574
  border-bottom-left-radius: 2rem;
736
575
  }
@@ -741,26 +580,24 @@ $max: 4rem;
741
580
  }
742
581
 
743
582
  h1 {
744
- margin: 0 0 space(1) 0;
583
+ margin: 0 0 space(1);
745
584
  font-size: 40px !important;
746
585
  color: var(--color__on-accent);
747
586
  border-bottom: none;
748
587
  }
749
588
 
750
589
  &__lead {
751
- margin: space(-0.5) 0 0 0;
590
+ margin: space(-0.5) 0 0;
752
591
  font-size: 20px !important;
753
592
  color: var(--color__on-accent);
754
593
  }
755
594
 
756
- &__lead + &__call-to-action {
757
- margin-top: 0;
758
- }
759
595
  &__call-to-action {
760
596
  flex-direction: column;
761
597
  margin: 0;
762
598
  height: min-content;
763
599
  align-self: end;
600
+
764
601
  .asd20-button {
765
602
  flex-grow: 1;
766
603
  width: auto;
@@ -775,12 +612,9 @@ $max: 4rem;
775
612
  &__image {
776
613
  display: block;
777
614
  position: relative;
778
- bottom: auto;
779
- left: auto;
780
- right: auto;
781
- top: auto;
782
- grid-column: 2 / 13;
783
- grid-row: 6 / -3;
615
+ inset: auto;
616
+ grid-column: media-start / media-end;
617
+ grid-row: media-start / media-end;
784
618
  z-index: 1;
785
619
  height: auto;
786
620
  margin: 0;
@@ -799,14 +633,16 @@ $max: 4rem;
799
633
  border-radius: var(--website-shape__radius-l);
800
634
  }
801
635
  }
636
+
802
637
  .scroll-down-indicator {
803
638
  display: block;
804
639
  }
805
640
  }
641
+
806
642
  .video-toggle-btn {
807
643
  position: absolute;
808
- bottom: 0.5rem;
809
- right: 0.5rem;
644
+ bottom: space(0.5);
645
+ right: space(0.5);
810
646
  background-color: rgba(0, 0, 0, 0.5);
811
647
  color: lightgray;
812
648
  border: none;
@@ -819,14 +655,35 @@ $max: 4rem;
819
655
  font-size: 18px;
820
656
  cursor: pointer;
821
657
  transition: background-color 0.3s ease-in-out;
822
- }
823
658
 
824
- .video-toggle-btn:hover {
825
- background-color: rgba(0, 0, 0, 0.7);
659
+ &:hover {
660
+ background-color: rgba(0, 0, 0, 0.7);
661
+ }
662
+
663
+ span {
664
+ line-height: 1;
665
+ }
826
666
  }
667
+ }
668
+
669
+ @media (min-width: 1024px) and (max-height: 699px) {
670
+ .asd20-school-homepage-video-header {
671
+ & :deep(.notification-group--status .notifications) {
672
+ padding: 0.37rem;
673
+ }
674
+
675
+ &__text {
676
+ top: space(1);
677
+ left: space(1);
678
+ width: 60%;
679
+ min-width: space(15);
680
+ height: min-content;
681
+ background: rgba(0, 0, 0, 0.6);
682
+ }
827
683
 
828
- .video-toggle-btn span {
829
- line-height: 1;
684
+ &__image {
685
+ overflow: hidden;
686
+ }
830
687
  }
831
688
  }
832
689
  </style>
@@ -442,11 +442,15 @@ export default {
442
442
  .asd20-video-header {
443
443
  .language-and-translation-container {
444
444
  display: flex;
445
+ position: relative;
445
446
  flex-direction: row;
446
447
  flex-wrap: nowrap;
447
448
  align-items: center;
448
449
  margin: space(0.25) 0;
449
450
  justify-content: flex-end;
451
+ .asd20-notification-group--floating {
452
+ position: unset;
453
+ }
450
454
  }
451
455
  .weather-link {
452
456
  margin-bottom: 0;
@@ -485,6 +489,11 @@ export default {
485
489
  display: block;
486
490
  margin-left: space(3);
487
491
  margin-top: 0;
492
+ .asd20-video-header {
493
+ .language-and-translation-container {
494
+ width: min(34rem, calc(50vw - #{space(1)}));
495
+ }
496
+ }
488
497
  }
489
498
  .asd20-video-header {
490
499
  .double-notification-wrapper {
@@ -527,6 +536,7 @@ export default {
527
536
  .asd20-video-header {
528
537
  .language-and-translation-container {
529
538
  flex-wrap: nowrap;
539
+ width: min(44rem, calc(50vw - #{space(1)}));
530
540
  }
531
541
  .language-and-translation-container .ai-search {
532
542
  width: auto;
@@ -478,10 +478,11 @@ export default {
478
478
  margin-top: 0;
479
479
  .notification-translation-container {
480
480
  display: flex;
481
+ position: relative;
481
482
  flex-direction: column;
482
483
  align-items: flex-end;
483
484
  width: 100%;
484
- max-width: min(34rem, calc(100vw - 6rem));
485
+ max-width: min(34rem, calc(50vw - #{space(1)}));
485
486
  margin-right: 0;
486
487
  justify-content: flex-end;
487
488
  .language-wrapper {
@@ -494,6 +495,9 @@ export default {
494
495
  .asd20-language-translation {
495
496
  flex-grow: 0;
496
497
  }
498
+ .asd20-notification-group--floating {
499
+ position: unset;
500
+ }
497
501
  }
498
502
  .asd20-notification--status {
499
503
  .asd20-notification__content {
@@ -534,7 +538,7 @@ export default {
534
538
  @media (min-width: 1500px) {
535
539
  .asd20-school-home-template {
536
540
  .notification-translation-container {
537
- max-width: min(44rem, calc(100vw - 8rem));
541
+ max-width: min(44rem, calc(50vw - #{space(1)}));
538
542
  }
539
543
  .language-wrapper {
540
544
  flex-wrap: nowrap;
@@ -409,16 +409,25 @@ export default {
409
409
  @media (min-width: 667px) {
410
410
  .asd20-school-home-video-template {
411
411
  .notification-translation-container {
412
- margin: 0 space(1);
412
+ position: relative;
413
+ margin: 0 space(1) 0 auto;
413
414
  justify-content: flex-end;
414
415
  flex-wrap: nowrap;
416
+ width: auto;
415
417
  .language-wrapper {
416
418
  justify-content: flex-end;
419
+ flex-wrap: nowrap;
420
+ .ai-search {
421
+ order: 0;
422
+ }
417
423
  }
418
424
  .no-block-widget {
419
425
  position: relative;
420
426
  top: unset;
421
427
  }
428
+ .asd20-notification-group--floating {
429
+ position: unset;
430
+ }
422
431
  }
423
432
  .asd20-quicklinks-menu {
424
433
  clip-path: ellipse(100% 100% at 50% 0%);
@@ -450,8 +459,8 @@ export default {
450
459
  .notification-translation-container {
451
460
  position: absolute;
452
461
  top: space(5.25);
453
- right: space(3.5);
454
- width: min(34rem, calc(100vw - 8rem));
462
+ right: 3.5rem;
463
+ width: min(34rem, calc(50vw - #{space(1)}));
455
464
  }
456
465
 
457
466
  .asd20-quicklinks-menu {
@@ -472,7 +481,7 @@ export default {
472
481
  @media (min-width: 1500px) {
473
482
  .asd20-school-home-video-template {
474
483
  .notification-translation-container {
475
- width: min(44rem, calc(100vw - 8rem));
484
+ width: min(44rem, calc(50vw - #{space(1)}));
476
485
  }
477
486
  .language-wrapper {
478
487
  flex-wrap: nowrap;