@asd20/ui 3.2.1035 → 3.2.1037

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.1035",
8
+ "version": "3.2.1037",
9
9
  "private": false,
10
10
  "license": "MIT",
11
11
  "repository": {
@@ -0,0 +1,19 @@
1
+ import { storiesOf } from '@storybook/vue'
2
+ import Asd20BlockSchedule from '.'
3
+
4
+ const info = {
5
+ summary: 'Asd20BlockSchedule',
6
+ }
7
+ const wrapper = {
8
+ components: { Asd20BlockSchedule },
9
+ data: () => ({}),
10
+ }
11
+
12
+ storiesOf('Molecules - Asd20BlockSchedule', module).add(
13
+ 'Default',
14
+ () => ({
15
+ ...wrapper,
16
+ template: `<Asd20BlockSchedule />`,
17
+ }),
18
+ { info }
19
+ )
@@ -0,0 +1,58 @@
1
+ <template>
2
+ <div v-if="blockDay" class="asd20-block-schedule">
3
+ <a href="/schedules">
4
+ <asd20-icon size="md" name="calendar" title="Block Day" />
5
+ <span>{{ blockDay }}</span>
6
+ </a>
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ import Asd20Icon from '../../atoms/Asd20Icon'
12
+ export default {
13
+ name: 'Asd20BlockSchedule',
14
+ components: {
15
+ Asd20Icon,
16
+ },
17
+ props: {
18
+ blockEvent: { type: Object, default: () => ({}) },
19
+ },
20
+ data: () => ({}),
21
+ computed: {
22
+ blockDay() {
23
+ const e = this.blockEvent
24
+ if (!e || !Array.isArray(e.calendarKeywords)) return ''
25
+ return e.calendarKeywords.includes('Block Schedule')
26
+ ? e.summary || ''
27
+ : ''
28
+ },
29
+ },
30
+ }
31
+ </script>
32
+
33
+ <style lang="scss" scoped>
34
+ @import '../../../design/_variables.scss';
35
+ .asd20-block-schedule {
36
+ display: flex;
37
+ flex-direction: row;
38
+ align-items: center;
39
+ margin-bottom: 0;
40
+ height: 2.75rem;
41
+ background: #fff;
42
+ border-radius: 2rem;
43
+ border: 1px solid var(--website-page__alternate-background-color);
44
+ padding: 0 0.75rem 0 0.5rem;
45
+ a {
46
+ display: flex;
47
+ flex-direction: row;
48
+ align-items: center;
49
+ color: var(--color__primary);
50
+ text-decoration: none;
51
+ font-family: sans-serif;
52
+ flex-grow: 1;
53
+ .asd20-icon {
54
+ margin-right: space(0.5);
55
+ }
56
+ }
57
+ }
58
+ </style>
@@ -263,6 +263,8 @@ export default {
263
263
  align-items: center;
264
264
  justify-content: flex-end;
265
265
  height: 2.75rem;
266
+ border-radius: 2rem;
267
+ border: 1px solid var(--website-page__alternate-background-color);
266
268
  }
267
269
 
268
270
  &--floating .bell {
@@ -316,6 +318,7 @@ export default {
316
318
  .pagination {
317
319
  display: flex;
318
320
  justify-content: flex-end;
321
+ width: max-content;
319
322
  align-items: center;
320
323
  font-size: 0.85rem;
321
324
  z-index: 15;
@@ -356,8 +359,9 @@ export default {
356
359
 
357
360
  &--floating .pagination {
358
361
  margin-right: 0.5rem;
359
- background: rgba(255, 255, 255, 0.85);
362
+ background: rgba(255, 255, 255, 1);
360
363
  align-self: stretch;
364
+ width: max-content;
361
365
  margin-right: -2rem;
362
366
  z-index: 8;
363
367
  padding-right: 2rem;
@@ -117,9 +117,9 @@ export default {
117
117
  display: block;
118
118
  position: absolute;
119
119
  top: 0;
120
- bottom: space(0);
120
+ bottom: space(2);
121
121
  left: 0;
122
- right: space(1);
122
+ right: 0;
123
123
  z-index: -1;
124
124
  background: var(--website-header__background-style);
125
125
  background-color: var(--website-header__background-color);
@@ -147,26 +147,17 @@ export default {
147
147
  --fill-two: rgba(255, 255, 255, 0.625);
148
148
  width: 100%;
149
149
  position: absolute;
150
- right: 0;
151
150
  z-index: 101;
152
- // background: white;
153
151
  display: flex;
154
- justify-content: flex-end;
152
+ // justify-content: space-around;
155
153
  flex-direction: row;
156
154
  align-items: center;
157
- padding: space(0.25) space(0.25);
158
155
  margin-top: space(0.5);
159
- // width: 95vw;
160
156
  &::v-deep .asd20-picker {
161
157
  display: none;
162
158
  }
163
159
 
164
160
  &::v-deep .notification-group--status {
165
- // margin-left: 0.5rem;
166
- // .asd20-notification {
167
- // margin: 0;
168
- // padding: 0 !important;
169
- // }
170
161
  .notifications {
171
162
  border-radius: space(0.5);
172
163
  }
@@ -175,16 +166,14 @@ export default {
175
166
  margin-left: 1rem;
176
167
  }
177
168
  &::v-deep .notification-group--floating {
178
- // margin-right: space(1.25);
169
+ width: max-content;
170
+ float: right;
179
171
  .bell {
180
172
  z-index: 1000;
181
173
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.125) !important;
182
174
  svg {
183
175
  fill: var(--color__accent) !important;
184
176
  }
185
- // span {
186
- // background: var(--color__on-primary) !important;
187
- // }
188
177
  }
189
178
  }
190
179
  }
@@ -203,7 +192,7 @@ export default {
203
192
  }
204
193
 
205
194
  &__content {
206
- margin-top: space(2);
195
+ margin-top: space(2.5);
207
196
  background: var(--website-header__background-color);
208
197
  }
209
198
 
@@ -219,12 +208,14 @@ export default {
219
208
  }
220
209
 
221
210
  &__call-to-action {
222
- margin: space(1) space(2) space(-0.75) space(1);
211
+ margin: space(1);
223
212
  z-index: 1;
224
213
  display: flex;
214
+ flex-direction: column;
225
215
  .asd20-button {
226
216
  flex-grow: 1;
227
- max-width: 35vw;
217
+ width: calc(100% - space(3));
218
+ margin-bottom: space(0.5);
228
219
  font-size: 1rem !important;
229
220
  background-color: var(
230
221
  --website-header__button-background-color,
@@ -269,7 +260,7 @@ export default {
269
260
  }
270
261
 
271
262
  &:not(:last-child) {
272
- margin-right: space(0.5);
263
+ margin-bottom: space(0.5);
273
264
  }
274
265
  }
275
266
  }
@@ -278,8 +269,6 @@ export default {
278
269
  img {
279
270
  display: block;
280
271
  width: 100%;
281
- // height: 100%;
282
- // object-fit: cover;
283
272
  object-position: center;
284
273
  }
285
274
  .image-credits {
@@ -294,15 +283,7 @@ export default {
294
283
  font-size: 0.8rem !important;
295
284
  }
296
285
  }
297
- // Hide images on mobile
298
- // &__image {
299
- // display: none;
300
- // }
301
-
302
- // Add a bit more space at the bottom
303
- // if cta is present
304
286
  &--has-cta {
305
- margin-bottom: space(3);
306
287
  &::after {
307
288
  bottom: space(-1.5);
308
289
  }
@@ -313,9 +294,14 @@ $min: 3rem;
313
294
  $max: 4rem;
314
295
  @media (min-width: 667px) {
315
296
  .asd20-school-homepage-header {
297
+ &::before {
298
+ right: space(3);
299
+ bottom: space(2);
300
+ border-top-right-radius: var(--website-shape__radius-l);
301
+ }
316
302
  &__top {
317
303
  flex-direction: row;
318
- justify-content: flex-end;
304
+ // justify-content: flex-end;
319
305
  // padding: space(0.25) space(1);
320
306
  align-items: center !important;
321
307
  }
@@ -325,6 +311,19 @@ $max: 4rem;
325
311
  bottom: 0;
326
312
  }
327
313
  }
314
+ &__call-to-action {
315
+ flex-direction: row;
316
+ margin: space(1);
317
+ .asd20-button {
318
+ flex-grow: 0;
319
+ width: max-content;
320
+ min-width: 4rem;
321
+ margin-bottom: 0 !important;
322
+ &:not(:last-child) {
323
+ margin-right: space(0.5);
324
+ }
325
+ }
326
+ }
328
327
  }
329
328
  }
330
329
 
@@ -370,8 +369,6 @@ $max: 4rem;
370
369
  background: var(--website-quick-links__background-color);
371
370
  }
372
371
 
373
- // Provide space between logo and breadcrumb
374
- // TODO: Revisit for school logo
375
372
  &::v-deep .asd20-logo {
376
373
  & + .asd20-breadcrumb {
377
374
  margin-top: space(2);
@@ -390,6 +387,11 @@ $max: 4rem;
390
387
  &::v-deep .asd20-picker {
391
388
  display: flex;
392
389
  }
390
+ // &::v-deep .notification-group--floating {
391
+ // position: absolute;
392
+ // top: 9rem;
393
+ // right: 5.5rem;
394
+ // }
393
395
  }
394
396
 
395
397
  &::v-deep .asd20-notification-group--status {
@@ -398,12 +400,6 @@ $max: 4rem;
398
400
  grid-row: 3 / 5;
399
401
  padding-right: 0;
400
402
  }
401
- &::v-deep .asd20-notification-group--floating {
402
- // position: absolute;
403
- // right: space(3);
404
- // top: space(3.5);
405
- // margin-right: 0;
406
- }
407
403
 
408
404
  &__content {
409
405
  margin-top: 0;
@@ -430,7 +426,7 @@ $max: 4rem;
430
426
  height: min-content;
431
427
  align-self: end;
432
428
  .asd20-button {
433
- min-height: space(2);
429
+ min-height: space(1);
434
430
  font-size: 1.25rem !important;
435
431
  }
436
432
  }
@@ -243,7 +243,8 @@ export default {
243
243
  img {
244
244
  display: block;
245
245
  width: 100%;
246
- height: 100vh;
246
+ height: 600px;
247
+ min-height: 600px;
247
248
  object-fit: cover;
248
249
  object-position: center;
249
250
  }
@@ -195,7 +195,7 @@ export default {
195
195
  .asd20-swiper {
196
196
  flex-shrink: 0;
197
197
  margin: 0 0;
198
- width: 100%;
198
+ // width: 100%;
199
199
  z-index: 2;
200
200
  }
201
201
  .feed-buttons {
@@ -240,7 +240,7 @@ export default {
240
240
 
241
241
  .asd20-swiper {
242
242
  // margin-left: space(1);
243
- width: calc(100% - #{space(2)});
243
+ width: calc(100% - #{space(4)});
244
244
  }
245
245
  .asd20-button {
246
246
  font-size: 1rem !important;
@@ -76,7 +76,7 @@
76
76
  "
77
77
  v-if="languageCode"
78
78
  reversed
79
- :languageCode="languageCode"
79
+ :language-code="languageCode"
80
80
  v-on="$listeners"
81
81
  />
82
82
  </client-only>
@@ -83,34 +83,46 @@
83
83
 
84
84
  <template slot="top">
85
85
  <div class="notification-translation-container">
86
- <client-only>
87
- <a
88
- v-if="activeNotificationsByType.status.length > 0"
89
- class="weather-link"
90
- href="https://www.asd20.org/alerts-and-communication/weather-related-communication/"
91
- >
92
- <asd20-notification-group
93
- :notifications="activeNotificationsByType.status"
94
- group-type="status"
95
- @dismiss="$emit('dismiss-notification', $event)"
96
- @toggle-all="$emit('toggle-all')"
86
+ <div class="language-wrapper">
87
+ <!-- <client-only>
88
+ <a
89
+ v-if="activeNotificationsByType.status.length > 0"
90
+ class="weather-link"
91
+ href="https://www.asd20.org/alerts-and-communication/weather-related-communication/"
92
+ >
93
+ <asd20-notification-group
94
+ :notifications="activeNotificationsByType.status"
95
+ group-type="status"
96
+ @dismiss="$emit('dismiss-notification', $event)"
97
+ @toggle-all="$emit('toggle-all')"
98
+ />
99
+ </a>
100
+ </client-only> -->
101
+ <client-only>
102
+ <Asd20BlockSchedule
103
+ v-if="blockEvent"
104
+ :block-event="blockEvent"
105
+ class="block-schedule"
97
106
  />
98
- </a>
99
- </client-only>
100
-
101
- <client-only>
102
- <Asd20LanguageTranslation
103
- v-if="languageCode"
104
- reversed
105
- :languageCode="languageCode"
106
- v-on="$listeners"
107
- />
108
- </client-only>
107
+ </client-only>
108
+ <client-only>
109
+ <Asd20LanguageTranslation
110
+ v-if="languageCode"
111
+ reversed
112
+ :language-code="languageCode"
113
+ v-on="$listeners"
114
+ />
115
+ </client-only>
116
+ </div>
109
117
 
110
118
  <!-- Floating Notifications -->
111
119
  <client-only>
112
120
  <asd20-notification-group
113
- class="asd20-notification-group--floating"
121
+ :class="
122
+ !blockEvent
123
+ ? 'asd20-notification-group--floating no-block-widget'
124
+ : 'asd20-notification-group--floating'
125
+ "
114
126
  :notifications="activeNotificationsByType.floating"
115
127
  :total-dismissed-notifications="totalDismissedNotifications"
116
128
  group-type="floating"
@@ -176,6 +188,7 @@ import Asd20NotificationGroup from '../../../components/organisms/Asd20Notificat
176
188
  import Asd20FeedsSection from '../../../components/organisms/Asd20FeedsSection'
177
189
  import Asd20OrganizationPicker from '../../../components/organisms/Asd20OrganizationPicker'
178
190
  import Asd20LanguageTranslation from '../../molecules/Asd20LanguageTranslation'
191
+ import Asd20BlockSchedule from '../../molecules/Asd20BlockSchedule'
179
192
 
180
193
  // Helpers
181
194
  import _get from 'lodash-es/get'
@@ -198,6 +211,7 @@ export default {
198
211
  Asd20FeedsSection,
199
212
  Asd20OrganizationPicker,
200
213
  Asd20LanguageTranslation,
214
+ Asd20BlockSchedule,
201
215
  },
202
216
  props: {
203
217
  languageCode: { type: String, default: 'en' },
@@ -241,10 +255,30 @@ export default {
241
255
  : '',
242
256
  }
243
257
  },
258
+ blockEvent() {
259
+ if (!this.events || this.events.length === 0) return null
260
+ return (
261
+ this.events.find(
262
+ e =>
263
+ Array.isArray(e.calendarKeywords) &&
264
+ e.calendarKeywords.includes('Block Schedule')
265
+ ) || null
266
+ )
267
+ },
244
268
  },
245
269
  mounted() {
246
270
  this.showLogo = window.innerWidth >= 1350
247
271
  window.addEventListener('resize', this.handleResize)
272
+ // If nothing is loaded yet, ask parent to load events now.
273
+ if (!this.events || this.events.length === 0) {
274
+ this.$emit('events-in-view')
275
+ }
276
+ },
277
+ watch: {
278
+ // If the organization changes (picker, route change, etc.), refetch.
279
+ 'organization.id': function () {
280
+ this.$emit('events-in-view')
281
+ },
248
282
  },
249
283
  methods: {
250
284
  handleResize() {
@@ -288,24 +322,39 @@ export default {
288
322
  align-items: center;
289
323
  flex-wrap: wrap;
290
324
  justify-content: flex-end;
291
- margin-right: 0;
292
- }
293
- .asd20-language-translation {
294
- background: rgba(255, 255, 255, 1);
295
- border-radius: 3rem;
296
- border: 1px solid var(--website-page__alternate-background-color);
297
- &::v-deep .asd20-select-input {
298
- // padding: 0.25rem 0.25rem;
299
- color: currentColor;
300
- font-family: Ariel, Arial, Helvetica, sans-serif;
301
- &__overlay-label {
302
- // display: none;
303
- }
304
- &__field-wrapper {
305
- padding: 0 0.5rem;
325
+ width: 100%;
326
+ margin: 0 0.5rem;
327
+ .language-wrapper {
328
+ display: flex;
329
+ flex-direction: row;
330
+ align-items: center;
331
+ justify-content: space-between;
332
+ width: 100%;
333
+ margin-bottom: space(0.25);
334
+
335
+ .asd20-language-translation {
336
+ background: rgba(255, 255, 255, 1);
337
+ border-radius: 3rem;
338
+ border: 1px solid var(--website-page__alternate-background-color);
339
+ &::v-deep .asd20-select-input {
340
+ // padding: 0.25rem 0.25rem;
341
+ color: currentColor;
342
+ font-family: Ariel, Arial, Helvetica, sans-serif;
343
+ &__overlay-label {
344
+ // display: none;
345
+ }
346
+ &__field-wrapper {
347
+ padding: 0 0.5rem;
348
+ }
349
+ }
306
350
  }
307
351
  }
352
+ .no-block-widget {
353
+ position: absolute;
354
+ top: 0;
355
+ }
308
356
  }
357
+
309
358
  .asd20-language-loader {
310
359
  order: 1;
311
360
  }
@@ -338,7 +387,17 @@ export default {
338
387
  @media (min-width: 667px) {
339
388
  .asd20-school-home-template {
340
389
  .notification-translation-container {
341
- margin-right: space(1);
390
+ margin: 0 1.5rem;
391
+ justify-content: flex-end;
392
+ flex-wrap: nowrap;
393
+ .language-wrapper {
394
+ justify-content: flex-start;
395
+ margin-bottom: 0;
396
+ }
397
+ .no-block-widget {
398
+ position: relative;
399
+ top: unset;
400
+ }
342
401
  }
343
402
  }
344
403
  }
@@ -349,7 +408,21 @@ export default {
349
408
  margin-left: space(3);
350
409
  margin-top: 0;
351
410
  .notification-translation-container {
411
+ display: block;
412
+ width: 100%;
413
+ justify-content: flex-start;
414
+ // margin-left: space(1);
415
+ max-width: 13rem;
352
416
  margin-right: 0;
417
+ justify-content: flex-end;
418
+ .language-wrapper {
419
+ flex-wrap: wrap;
420
+ }
421
+ .block-schedule,
422
+ .asd20-language-translation {
423
+ flex-grow: 1;
424
+ margin-bottom: space(0.25);
425
+ }
353
426
  }
354
427
  .asd20-notification--status {
355
428
  .asd20-notification__content {
@@ -78,37 +78,51 @@
78
78
  </client-only>
79
79
  </template>
80
80
 
81
- <template>
81
+ <template slot="top">
82
82
  <div class="notification-translation-container">
83
- <client-only>
84
- <a
85
- v-if="activeNotificationsByType.status.length > 0"
86
- class="weather-link"
87
- href="https://www.asd20.org/alerts-and-communication/weather-related-communication/"
88
- >
89
- <asd20-notification-group
90
- class="asd20-notification-group--status"
91
- :notifications="activeNotificationsByType.status"
92
- group-type="status"
93
- @dismiss="$emit('dismiss-notification', $event)"
94
- @toggle-all="$emit('toggle-all')"
83
+ <div class="language-wrapper">
84
+ <!-- <client-only>
85
+ <a
86
+ v-if="activeNotificationsByType.status.length > 0"
87
+ class="weather-link"
88
+ href="https://www.asd20.org/alerts-and-communication/weather-related-communication/"
89
+ >
90
+ <asd20-notification-group
91
+ class="asd20-notification-group--status"
92
+ :notifications="activeNotificationsByType.status"
93
+ group-type="status"
94
+ @dismiss="$emit('dismiss-notification', $event)"
95
+ @toggle-all="$emit('toggle-all')"
96
+ />
97
+ </a>
98
+ </client-only> -->
99
+
100
+ <client-only>
101
+ <Asd20BlockSchedule
102
+ v-if="blockEvent"
103
+ :block-event="blockEvent"
104
+ class="block-schedule"
95
105
  />
96
- </a>
97
- </client-only>
106
+ </client-only>
98
107
 
99
- <client-only>
100
- <Asd20LanguageTranslation
101
- v-if="languageCode"
102
- reversed
103
- :languageCode="languageCode"
104
- v-on="$listeners"
105
- />
106
- </client-only>
108
+ <client-only>
109
+ <Asd20LanguageTranslation
110
+ v-if="languageCode"
111
+ reversed
112
+ :language-code="languageCode"
113
+ v-on="$listeners"
114
+ />
115
+ </client-only>
116
+ </div>
107
117
 
108
118
  <!-- Floating Notifications -->
109
119
  <client-only>
110
120
  <asd20-notification-group
111
- class="asd20-notification-group--floating"
121
+ :class="
122
+ !blockEvent
123
+ ? 'asd20-notification-group--floating no-block-widget'
124
+ : 'asd20-notification-group--floating'
125
+ "
112
126
  :notifications="activeNotificationsByType.floating"
113
127
  :total-dismissed-notifications="totalDismissedNotifications"
114
128
  group-type="floating"
@@ -174,6 +188,7 @@ import Asd20NotificationGroup from '../../../components/organisms/Asd20Notificat
174
188
  import Asd20FeedsSection from '../../../components/organisms/Asd20FeedsSection'
175
189
  import Asd20OrganizationPicker from '../../../components/organisms/Asd20OrganizationPicker'
176
190
  import Asd20LanguageTranslation from '../../molecules/Asd20LanguageTranslation'
191
+ import Asd20BlockSchedule from '../../molecules/Asd20BlockSchedule'
177
192
 
178
193
  // Helpers
179
194
  import _get from 'lodash-es/get'
@@ -196,10 +211,35 @@ export default {
196
211
  Asd20FeedsSection,
197
212
  Asd20OrganizationPicker,
198
213
  Asd20LanguageTranslation,
214
+ Asd20BlockSchedule,
199
215
  },
200
216
  props: {
201
217
  languageCode: { type: String, default: 'en' },
202
218
  },
219
+ mounted() {
220
+ // If nothing is loaded yet, ask parent to load events now.
221
+ if (!this.events || this.events.length === 0) {
222
+ this.$emit('events-in-view')
223
+ }
224
+ },
225
+ watch: {
226
+ // If the organization changes (picker, route change, etc.), refetch.
227
+ 'organization.id': function () {
228
+ this.$emit('events-in-view')
229
+ },
230
+ },
231
+ computed: {
232
+ blockEvent() {
233
+ if (!this.events || this.events.length === 0) return null
234
+ return (
235
+ this.events.find(
236
+ e =>
237
+ Array.isArray(e.calendarKeywords) &&
238
+ e.calendarKeywords.includes('Block Schedule')
239
+ ) || null
240
+ )
241
+ },
242
+ },
203
243
  }
204
244
  </script>
205
245
 
@@ -225,34 +265,50 @@ export default {
225
265
  flex-direction: row;
226
266
  align-items: center;
227
267
  flex-wrap: wrap;
268
+ margin: space(0.25);
228
269
  justify-content: flex-end;
229
- margin-right: 0;
270
+ width: calc(100% - 1rem);
230
271
  position: absolute;
231
- top: space(0.5);
232
- right: space(0.5);
233
- // max-width: 500px;
234
- .weather-link {
235
- text-decoration: none;
236
- border: 1px solid var(--website-page__alternate-background-color);
237
- background: white;
238
- border-radius: 3rem;
239
- // position: absolute;
240
- // right: space(6);
241
- // top: 0 !important;
242
- }
243
- .asd20-language-translation {
244
- z-index: 2;
245
- background: rgba(255, 255, 255, 1);
246
- border-radius: 3rem;
247
- border: 1px solid var(--website-page__alternate-background-color);
248
- margin: 0 0.05rem;
249
- height: 2.75rem;
250
- &::v-deep .asd20-select-input {
251
- padding: 0.375rem 0.375rem;
252
- color: currentColor;
253
- font-family: Arial, Helvetica, sans-serif;
272
+ top: space(0.25);
273
+ .language-wrapper {
274
+ display: flex;
275
+ flex-direction: row;
276
+ align-items: center;
277
+ justify-content: space-between;
278
+ flex-wrap: wrap;
279
+ width: 100%;
280
+ margin-bottom: space(0.25);
281
+
282
+ .weather-link {
283
+ text-decoration: none;
284
+ border: 1px solid var(--website-page__alternate-background-color);
285
+ background: white;
286
+ border-radius: 3rem;
287
+ // position: absolute;
288
+ // right: space(6);
289
+ // top: 0 !important;
290
+ }
291
+ .asd20-language-translation {
292
+ z-index: 2;
293
+ background: rgba(255, 255, 255, 1);
294
+ border-radius: 3rem;
295
+ border: 1px solid var(--website-page__alternate-background-color);
296
+ margin: 0 0.05rem;
297
+ height: 2.75rem;
298
+ &::v-deep .asd20-select-input {
299
+ padding: 0.375rem 0.375rem;
300
+ color: currentColor;
301
+ font-family: Arial, Helvetica, sans-serif;
302
+ }
254
303
  }
255
304
  }
305
+ .asd20-notification-group--floating {
306
+ position: absolute;
307
+ top: 3.5rem;
308
+ }
309
+ .no-block-widget {
310
+ top: 0;
311
+ }
256
312
  .asd20-language-loader {
257
313
  order: 1;
258
314
  }
@@ -285,6 +341,27 @@ export default {
285
341
  }
286
342
  }
287
343
 
344
+ @media (min-width: 667px) {
345
+ .asd20-school-home-video-template {
346
+ .notification-translation-container {
347
+ margin: 0;
348
+ justify-content: flex-end;
349
+ position: absolute;
350
+ right: space(0.5);
351
+ top: space(0.5);
352
+ width: auto;
353
+ flex-wrap: nowrap;
354
+ .language-wrapper {
355
+ justify-content: flex-end;
356
+ margin-bottom: 0;
357
+ }
358
+ .asd20-notification-group--floating {
359
+ position: unset;
360
+ }
361
+ }
362
+ }
363
+ }
364
+
288
365
  @media (min-width: 1024px) {
289
366
  .asd20-school-home-video-template {
290
367
  display: block;
@@ -300,6 +377,14 @@ export default {
300
377
  .notification-translation-container {
301
378
  top: space(5.5);
302
379
  right: space(3.5);
380
+ .language-wrapper {
381
+ // justify-content: flex-end;
382
+ // flex-wrap: nowrap;
383
+ // margin-bottom: space(0.25);
384
+ // .asd20-language-translation {
385
+ // margin: 0 space(0.25);
386
+ // }
387
+ }
303
388
  }
304
389
 
305
390
  .asd20-quicklinks-menu {
@@ -21,6 +21,33 @@
21
21
  ]
22
22
  },
23
23
  "value": [
24
+ {
25
+ "@search.score": 1,
26
+ "id": null,
27
+ "uid": "MDQwMDAwMDA4MjAwRTAwMDc0QzVCNzEwMUE4MkUwMDgwMDAwMDAwMDc3N0RBQjVFNzBCMkQ4MDEwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDA4Q0IxNTUwMjk4QzVDNzQ2ODZDNDg3NTI2NTFCMEI5Lg==",
28
+ "type": "event",
29
+ "summary": "Blue Day",
30
+ "description": "No School",
31
+ "location": "AAHS",
32
+ "start": "2025-10-13T07:00:00Z",
33
+ "end": "2025-10-14T07:00:00Z",
34
+ "dtstamp": "2025-10-13T07:00:00Z",
35
+ "class": "",
36
+ "priority": "",
37
+ "transparency": "",
38
+ "status": "",
39
+ "sequence": "",
40
+ "url": null,
41
+ "calendarId": "da74e260-04f3-11ec-a052-79c69b6cfc2x",
42
+ "calendarName": "Blue/Silver Schedule",
43
+ "calendarOrganizationId": "bb6e9cd6-da25-9e6f-5e8d-072b9a7df4f0",
44
+ "calendarOrganizationTitle": "Air Academy High School",
45
+ "calendarCategories": [],
46
+ "calendarKeywords": ["Block Schedule"],
47
+ "calendarUrl": "https://outlook.office365.com/owa/calendar/6a1a45f079b7416f8b301747cd731778@asd20.org/1ff6c80db4dd42c5be39096fdf50a4ee10284553908289904160/calendar.ics",
48
+ "calendarFormat": "ical",
49
+ "calendarColor": "#213f94"
50
+ },
24
51
  {
25
52
  "@search.score": 1,
26
53
  "id": null,