@asd20/ui 3.2.751 → 3.2.752

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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "*.scss",
6
6
  "*.vue"
7
7
  ],
8
- "version": "3.2.751",
8
+ "version": "3.2.752",
9
9
  "private": false,
10
10
  "license": "MIT",
11
11
  "repository": {
@@ -97,169 +97,234 @@
97
97
  </asd20-page-content>
98
98
 
99
99
  <div class="asd20-school-details">
100
- <section class="asd20-school-details__primary-content">
101
- <!-- <asd20-open-seats
100
+ <asd20-viewport scrollable>
101
+ <asd20-page-header v-bind="pageHeaderContent" />
102
+
103
+ <main class="asd20-school-details__body">
104
+ <section class="asd20-contact">
105
+ <!-- <h2>Contact</h2> -->
106
+ <div class="button-group ">
107
+ <asd20-button
108
+ :link="'tel:' + organization.phone"
109
+ :label="organization.phone"
110
+ icon="phone"
111
+ size="md"
112
+ />
113
+ <asd20-button
114
+ :link="organization.website"
115
+ target="_blank"
116
+ label="Website"
117
+ icon="website"
118
+ size="md"
119
+ />
120
+ <asd20-button
121
+ :link="
122
+ `https://www.google.com/maps/search/?api=1&query=${organization.address.street1}&origin_place_id=${organization.name}`
123
+ "
124
+ target="_blank"
125
+ label="Directions"
126
+ icon="directions"
127
+ size="md"
128
+ />
129
+ </div>
130
+ </section>
131
+ <section class="asd20-school-details__primary-content">
132
+ <!-- <asd20-open-seats
102
133
  :seats="openSeats"
103
134
  class="asd20-school-details__open-seats"/> -->
104
135
 
105
- <div
106
- v-if="organization.administrators"
107
- class="asd20-school-details__leadership"
108
- >
109
- <asd20-list
110
- headline="Leadership"
111
- condensed
112
- align-top
113
- icon="committee"
114
- />
115
- <h3>
116
- <b>
117
- {{ organization.administrators[0].firstName }}
118
- {{ organization.administrators[0].lastName }}
119
- <br />
120
- <small>Principal</small>
121
- </b>
122
- </h3>
123
-
124
- <asd20-list>
125
- <asd20-list-item
126
- v-if="organization.administrators[0].email"
127
- :description="organization.administrators[0].email"
128
- condensed
129
- align-top
130
- icon="email"
136
+ <div
137
+ v-if="organization.administrators[0].lastName"
138
+ class="asd20-school-details__leadership primary-section"
139
+ >
140
+ <asd20-list
141
+ headline="Leadership"
142
+ condensed
143
+ align-top
144
+ icon="committee"
145
+ />
146
+ <!-- <h2 v-if="organization.administrators[0].lastName">Leadership</h2> -->
147
+ <h3>
148
+ <b>
149
+ {{ organization.administrators[0].firstName }}
150
+ {{ organization.administrators[0].lastName }}
151
+ <br />
152
+ <small v-if="organization.administrators[0].lastName"
153
+ >Principal/Administrator</small
154
+ >
155
+ </b>
156
+ </h3>
157
+
158
+ <asd20-list>
159
+ <asd20-list-item
160
+ v-if="organization.administrators[0].email"
161
+ :description="organization.administrators[0].email"
162
+ condensed
163
+ align-top
164
+ icon="email"
165
+ />
166
+ <asd20-list-item
167
+ v-if="organization.administrators[0].phone"
168
+ :description="organization.administrators[0].phone"
169
+ condensed
170
+ align-top
171
+ icon="phone-alt"
172
+ />
173
+ </asd20-list>
174
+ </div>
175
+
176
+ <asd20-list
177
+ v-if="organization.yearFounded || organization.enrollment"
178
+ :items="organization.numbersListItems"
179
+ class="asd20-school-details__numbers primary-section"
180
+ headline="By the Numbers"
181
+ icon="info"
182
+ >
183
+ <asd20-list-item
184
+ v-if="organization.educationLevels"
185
+ label="Offered at This School"
186
+ :description="getGradeRange"
187
+ condensed
188
+ align-top
189
+ icon=""
190
+ />
191
+ <asd20-list-item
192
+ v-if="organization.yearFounded"
193
+ label="Year Founded"
194
+ :description="organization.yearFounded.toString()"
195
+ condensed
196
+ align-top
197
+ icon=""
198
+ />
199
+ <asd20-list-item
200
+ v-if="organization.enrollment"
201
+ label="Enrollment"
202
+ :description="organization.enrollment.toString()"
203
+ condensed
204
+ align-top
205
+ icon=""
206
+ />
207
+ </asd20-list>
208
+
209
+ <asd20-list
210
+ v-if="organization.feederOrganizations.length > 0"
211
+ :items="
212
+ organization.feederOrganizations.map(l => ({
213
+ label: l,
214
+ condensed: true,
215
+ }))
216
+ "
217
+ class="asd20-school-details__feeder-schools primary-section"
218
+ headline="Feeder Schools"
219
+ icon="school"
131
220
  />
132
- <asd20-list-item
133
- v-if="organization.administrators[0].phone"
134
- :description="organization.administrators[0].phone"
135
- condensed
136
- align-top
137
- icon="phone-alt"
221
+
222
+ <asd20-list
223
+ v-if="organization.uniqueOfferings.length > 0"
224
+ :items="
225
+ organization.uniqueOfferings
226
+ .map(u => ({
227
+ label: u,
228
+ alignTop: true,
229
+ checked: true,
230
+ condensed: true,
231
+ }))
232
+ .sort((a, b) =>
233
+ a.label > b.label ? 1 : b.label > a.label ? -1 : 0
234
+ )
235
+ "
236
+ class="asd20-school-details__unique-offerings primary-section"
237
+ headline="Unique Offerings"
238
+ icon="group"
138
239
  />
139
- </asd20-list>
140
- </div>
141
-
142
- <asd20-list
143
- v-if="organization.yearFounded || organization.enrollment"
144
- :items="organization.numbersListItems"
145
- :column-width="240"
146
- class="asd20-school-details__numbers"
147
- headline="By the Numbers"
148
- icon="info"
149
- >
150
- <asd20-list-item
151
- v-if="organization.yearFounded"
152
- label="Year Founded"
153
- :description="organization.yearFounded.toString()"
154
- condensed
155
- align-top
156
- icon=""
157
- />
158
- <asd20-list-item
159
- v-if="organization.enrollment"
160
- label="Enrollment"
161
- :description="organization.enrollment.toString()"
162
- condensed
163
- align-top
164
- icon=""
240
+
241
+ <asd20-list
242
+ v-if="organization.awardsHonors.length > 0"
243
+ :items="
244
+ organization.awardsHonors
245
+ .map(a => ({
246
+ label: a,
247
+ alignTop: true,
248
+ checked: true,
249
+ condensed: true,
250
+ }))
251
+ .sort((a, b) =>
252
+ a.label > b.label ? 1 : b.label > a.label ? -1 : 0
253
+ )
254
+ "
255
+ class="asd20-school-details__awards-honors primary-section"
256
+ icon="award"
257
+ headline="Awards &amp; Honors"
258
+ />
259
+
260
+ <asd20-list
261
+ v-if="organization.educationLevels.indexOf('Preschool') > -1"
262
+ :items="[
263
+ {
264
+ alignTop: true,
265
+ checked: true,
266
+ condensed: true,
267
+ description:
268
+ '<a href=https://www.asd20.org/preschool>Learn more and apply.</a>',
269
+ },
270
+ ]"
271
+ class="asd20-school-details__unique-offerings primary-section"
272
+ headline="Preschool Offered"
273
+ icon="bell"
274
+ />
275
+
276
+ <!-- <asd20-list
277
+ v-if="organization.awardsHonorsListItems.length > 0"
278
+ :items="organization.awardsHonorsListItems"
279
+ class="asd20-school-details__awards-honors"
280
+ icon="award"
281
+ headline="Awards &amp; Honors"
165
282
  />
166
- </asd20-list>
167
-
168
- <asd20-list
169
- v-if="organization.feederOrganizations.length > 0"
170
- :items="
171
- organization.feederOrganizations.map(l => ({
172
- label: l,
173
- condensed: true,
174
- }))
175
- "
176
- class="asd20-school-details__feeder-schools"
177
- headline="Feeder Schools"
178
- icon="school"
179
- />
180
-
181
- <asd20-list
182
- v-if="organization.awardsHonors.length > 0"
183
- :items="
184
- organization.awardsHonors
185
- .map(a => ({
186
- label: a,
187
- alignTop: true,
188
- checked: true,
189
- condensed: true,
190
- }))
191
- .sort((a, b) =>
192
- a.label > b.label ? 1 : b.label > a.label ? -1 : 0
193
- )
194
- "
195
- class="asd20-school-details__awards-honors"
196
- icon="award"
197
- headline="Awards &amp; Honors"
198
- />
199
-
200
- <asd20-list
201
- v-if="organization.uniqueOfferings.length > 0"
202
- :items="
203
- organization.uniqueOfferings
204
- .map(u => ({
205
- label: u,
206
- alignTop: true,
207
- checked: true,
208
- condensed: true,
209
- }))
210
- .sort((a, b) =>
211
- a.label > b.label ? 1 : b.label > a.label ? -1 : 0
212
- )
213
- "
214
- class="asd20-school-details__unique-offerings"
215
- headline="Unique Offerings"
216
- icon="group"
217
- />
218
-
219
- <asd20-list
220
- v-if="organization.educationLevels.indexOf('Preschool') > -1"
221
- :items="[
222
- {
223
- alignTop: true,
224
- checked: true,
225
- condensed: true,
226
- description:
227
- '<a href=https://www.asd20.org/preschool>Learn more and apply.</a>',
228
- },
229
- ]"
230
- class="asd20-school-details__unique-offerings"
231
- headline="Preschool Offered"
232
- icon="bell"
233
- />
234
- </section>
235
-
236
- <section class="asd20-school-details__secondary-content">
237
- <asd20-list
238
- v-if="academicsListItems.length > 0"
239
- :items="academicsListItems"
240
- class="asd20-school-details__academics-offerings"
241
- headline="Academics Offerings"
242
- icon="library"
243
- />
244
- <div class="otherOfferings">
283
+
245
284
  <asd20-list
246
- v-if="artsListItems.length > 0"
247
- :items="artsListItems"
248
- class="asd20-school-details__arts-offerings"
249
- headline="Arts Offerings"
250
- multi-column
251
- icon="arts"
285
+ v-if="organization.uniqueOfferingsListItems.length > 0"
286
+ :items="organization.uniqueOfferingsListItems"
287
+ class="asd20-school-details__unique-offerings"
288
+ headline="Unique Offerings"
289
+ icon="group"
252
290
  />
291
+
253
292
  <asd20-list
254
- v-if="athleticsListItems.length > 0"
255
- :items="athleticsListItems"
256
- class="asd20-school-details__athletics-offerings"
257
- headline="Athletics Offerings"
258
- multi-column
259
- icon="athletics"
260
- />
261
- </div>
262
- </section>
293
+ v-if="organization.educationLevels.indexOf('Preschool') > -1"
294
+ :items="[{ checked: true, condensed: true, description: 'Preschool may be available for families living inside school boundaries. <a href=https://www.asd20.org/preschool>Learn more and apply.</a>' }]"
295
+ class="asd20-school-details__unique-offerings"
296
+ headline="Preschool Offered"
297
+ icon="bell"
298
+ /> -->
299
+ </section>
300
+
301
+ <section class="asd20-school-details__secondary-content">
302
+ <asd20-list
303
+ v-if="academicsListItems.length > 0"
304
+ :items="academicsListItems"
305
+ class="asd20-school-details__academics-offerings"
306
+ headline="Academics Offerings"
307
+ icon="library"
308
+ />
309
+ <div class="otherOfferings">
310
+ <asd20-list
311
+ v-if="artsListItems.length > 0"
312
+ :items="artsListItems"
313
+ class="asd20-school-details__arts-offerings"
314
+ headline="Arts Offerings"
315
+ icon="arts"
316
+ />
317
+ <asd20-list
318
+ v-if="athleticsListItems.length > 0"
319
+ :items="athleticsListItems"
320
+ class="asd20-school-details__athletics-offerings"
321
+ headline="Athletics Offerings"
322
+ icon="athletics"
323
+ />
324
+ </div>
325
+ </section>
326
+ </main>
327
+ </asd20-viewport>
263
328
  </div>
264
329
 
265
330
  <!-- Feeds -->
@@ -431,6 +496,66 @@ export default {
431
496
  }))
432
497
  .sort((a, b) => (a.label > b.label ? 1 : b.label > a.label ? -1 : 0))
433
498
  },
499
+ getGradeRange() {
500
+ let levels = this.organization.educationLevels
501
+ let gradeRange = []
502
+
503
+ // Check for Preschool
504
+ if (levels.includes('Preschool')) {
505
+ gradeRange.push('Preschool')
506
+ }
507
+
508
+ // Check for Kindergarten
509
+ if (levels.includes('Kindergarten')) {
510
+ gradeRange.push('Kindergarten')
511
+ }
512
+
513
+ // Check for Elementary thru High
514
+ if (
515
+ levels.includes('Elementary') &&
516
+ levels.includes('Middle') &&
517
+ levels.includes('High')
518
+ ) {
519
+ gradeRange.push('Grades 1 - 12')
520
+ } else if (
521
+ levels.includes('Elementary') &&
522
+ levels.includes('Middle') &&
523
+ !levels.includes('High')
524
+ ) {
525
+ gradeRange.push('Grades 1 - 8')
526
+ } else if (
527
+ levels.includes('Elementary') &&
528
+ !levels.includes('Middle') &&
529
+ !levels.includes('High')
530
+ ) {
531
+ gradeRange.push('Grades 1 - 5')
532
+ } else if (
533
+ !levels.includes('Elementary') &&
534
+ levels.includes('Middle') &&
535
+ levels.includes('High')
536
+ ) {
537
+ gradeRange.push('Grades 6 - 12')
538
+ } else if (
539
+ !levels.includes('Elementary') &&
540
+ levels.includes('Middle') &&
541
+ !levels.includes('High')
542
+ ) {
543
+ gradeRange.push('Grades 6 - 8')
544
+ } else if (
545
+ !levels.includes('Elementary') &&
546
+ !levels.includes('Middle') &&
547
+ levels.includes('High')
548
+ ) {
549
+ gradeRange.push('Grades 9 - 12')
550
+ }
551
+
552
+ // Generate the final grade range string
553
+ if (gradeRange.length > 0) {
554
+ return gradeRange.join(', ')
555
+ } else {
556
+ return 'Grade range not specified'
557
+ }
558
+ },
434
559
  },
435
560
  }
436
561
  </script>
@@ -477,6 +602,20 @@ export default {
477
602
  flex-direction: column;
478
603
  flex-grow: 1;
479
604
  overflow: hidden;
605
+
606
+ .asd20-icon {
607
+ fill: var(--color__accent-t40);
608
+ }
609
+
610
+ .asd20-contact {
611
+ padding: space(1);
612
+ }
613
+ .asd20-page-header__main {
614
+ background: var(--color__secondary-s30);
615
+ }
616
+ .asd20-page-header__lead {
617
+ color: var(--color__accent-t90);
618
+ }
480
619
  .asd20-page-header__content {
481
620
  width: auto;
482
621
  }
@@ -492,9 +631,30 @@ export default {
492
631
  .asd20-page-header__top img {
493
632
  border: 2px solid white;
494
633
  }
634
+ .asd20-page-header__tools {
635
+ flex-direction: row;
636
+ }
637
+ .asd20-page-header .back {
638
+ order: 1;
639
+ }
640
+ .asd20-page-header .right {
641
+ order: 2;
642
+ }
643
+
644
+ .button-group {
645
+ // background: asd20-swatch('background-alt', 5);
646
+ display: flex;
647
+ flex-shrink: 0;
648
+ justify-content: space-around;
649
+
650
+ // & > :first-child {
651
+ // margin-right: auto;
652
+ // }
653
+ }
654
+
495
655
  .asd20-page-header h1 small {
496
- font-size: 1.25rem !important;
497
- color: var(--color__accent) !important;
656
+ font-size: 1.25rem;
657
+ color: var(--color__accent-t90);
498
658
  text-transform: uppercase;
499
659
  opacity: 1;
500
660
  position: relative;
@@ -506,6 +666,10 @@ export default {
506
666
  }
507
667
  }
508
668
 
669
+ .asd20-page-header__top + h1 {
670
+ // margin-top: space(2);
671
+ }
672
+
509
673
  .asd20-page-header__top img {
510
674
  display: block;
511
675
  object-fit: cover;
@@ -525,146 +689,85 @@ export default {
525
689
  background-image: url('/img/chalk-dark.png');
526
690
  background-position-y: top;
527
691
  padding: 0 space(1);
692
+ display: flex;
693
+ flex-wrap: wrap;
694
+ .primary-section {
695
+ width: 100%;
696
+ padding: 0 0 3rem 0;
697
+ }
528
698
  h2 {
529
699
  color: asd20-swatch('primary');
530
700
  font-size: 1.25rem;
531
701
  }
532
702
  h3 {
533
- font-size: 1.15rem;
703
+ font-size: 1rem;
534
704
  }
535
705
  }
706
+
536
707
  &__secondary-content {
537
708
  padding: space(1);
709
+ display: flex;
710
+ flex-direction: column;
711
+ .asd20-school-details__academics-offerings {
712
+ max-width: 90%;
713
+ padding-bottom: 2rem;
714
+ }
715
+ .asd20-school-details__athletics-offerings {
716
+ margin-top: 2rem;
717
+ }
538
718
  }
719
+
539
720
  .asd20-list__headline {
540
721
  font-size: 1.25rem !important;
541
722
  color: asd20-swatch('primary');
542
723
  }
543
- }
544
724
 
545
- @media (min-width: 1024px) {
546
- .asd20-template-profile {
547
- @include template-desktop;
548
- margin-left: space(3);
549
- margin-top: 0;
550
- .asd20-notification-group--floating {
551
- position: absolute;
552
- top: space(1);
553
- // .bell {
554
- // span {
555
- // background: var(--color__accent);
556
- // top: -0.6em !important;
557
- // right: -0.6em !important;
558
- // }
559
- // }
560
- }
561
- .notification-group--inline {
562
- margin: space(2) space(3) space(1) space(3);
563
- }
725
+ .asd20-list__items {
726
+ margin: 0;
727
+ }
564
728
 
565
- .asd20-page-content {
566
- // margin-top: space(1);
567
- display: flex;
568
- justify-content: space-between;
569
- align-items: stretch;
570
- flex-wrap: wrap;
571
- .asd20-widgets-section {
572
- flex-basis: 30%;
573
- padding: space(2) space(2) 0 0;
574
- background: none;
575
- }
576
- }
577
- .notification-group--inline {
578
- flex-basis: 100%;
579
- margin-bottom: 0 !important;
580
- }
581
- .primary-messaging-section {
582
- max-width: 50vw;
729
+ .asd20-list-item--checked {
730
+ &::before {
731
+ margin-top: space(0.125);
583
732
  }
584
733
  }
585
- @supports (display: grid) {
586
- .asd20-page-header__image {
587
- min-width: 40vw !important;
734
+ }
588
735
 
589
- img {
590
- height: 100%;
591
- object-fit: cover;
736
+ @media (min-width: 768px) {
737
+ .asd20-school-details {
738
+ &__primary-content {
739
+ padding: space(2);
740
+ .primary-section {
741
+ width: 49%;
592
742
  }
593
743
  }
594
- .asd20-school-details {
595
- &__primary-content {
596
- display: grid;
597
- padding: space(3);
598
- grid-template: min-content min-content min-content / 1fr 1fr 1fr;
599
- grid-column-gap: space(3);
600
- grid-row-gap: space(1);
601
- }
602
-
603
- .asd20-contact {
604
- padding: space(1) space(3);
744
+ &__secondary-content {
745
+ padding: space(2);
746
+ display: flex;
747
+ flex-direction: row;
748
+ .asd20-school-details__academics-offerings {
749
+ max-width: 60%;
750
+ padding-right: 2rem;
605
751
  }
752
+ }
753
+ }
754
+ .hide-on-desktop {
755
+ display: none !important;
756
+ }
757
+ }
606
758
 
607
- &__awards-honors {
608
- display: flex;
609
- flex-direction: column;
610
- }
611
- &__unique-offerings {
612
- display: flex;
613
- flex-direction: column;
614
- }
615
- // &__open-seats {
616
- // grid-column: 2 / 3;
617
- // grid-row: 3 / 3;
618
- // }
619
- &__leadership {
620
- display: flex;
621
- flex-direction: column;
622
- }
623
- &__feeder-schools {
624
- display: flex;
625
- flex-direction: column;
626
- }
627
- &__numbers {
628
- display: flex;
629
- flex-direction: column;
630
- }
631
- &__secondary-content {
632
- display: grid;
633
- padding: space(3);
634
- grid-template-columns: 1fr 1fr;
635
- grid-template-rows: min-content min-content;
636
- grid-auto-flow: row;
637
- grid-column-gap: space(3);
638
- grid-row-gap: space(1);
639
- }
640
- &__academic-offerings {
641
- display: flex;
642
- flex-direction: column;
643
- grid-row: 1 / -1;
644
- }
645
- &__arts-offerings {
646
- margin-bottom: 2rem;
647
- // display: flex;
648
- // flex-direction: column;
649
- // grid-column: 2 / -1;
650
- // grid-row: 1 / 2;
651
- }
652
- // &__athletics-offerings {
653
- // display: flex;
654
- // flex-direction: column;
655
- // grid-column: 2 / -1;
656
- // grid-row: 2 / -1;
657
- // &:nth-child(2) {
658
- // grid-row: 1 / -1;
659
- // }
660
- // }
661
- .otherOfferings {
662
- display: flex;
663
- flex-direction: column;
664
- grid-column: 2 / -1;
665
- grid-row: 1 / 2;
759
+ @media (min-width: 1024px) {
760
+ .asd20-school-details {
761
+ &__primary-content {
762
+ padding: space(2);
763
+ .primary-section {
764
+ width: 31%;
765
+ padding: 0 1vw 3rem 1vw;
666
766
  }
667
767
  }
768
+ .asd20-contact {
769
+ padding: space(1) space(3);
770
+ }
668
771
  }
669
772
  }
670
773
  </style>