@asd20/ui-next 2.35.0 → 2.35.2
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,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.35.2](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.35.1...ui-next-v2.35.2) (2026-11-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* restore previous sidebar scroll behavior for handbook template ([ff72930](https://github.com/academydistrict20/asd20-ui-next/commit/ff729302a2596d87928aee3a419e345d841fa910))
|
|
9
|
+
|
|
10
|
+
## [2.35.1](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.35.0...ui-next-v2.35.1) (2026-11-04)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* correct handbook story layout and add AEES attendance sample ([b1d06e8](https://github.com/academydistrict20/asd20-ui-next/commit/b1d06e894345071d3535d88a95f99eaf36dccc9a))
|
|
16
|
+
* stabilize handbook navigation and remove footer ([5db1c4c](https://github.com/academydistrict20/asd20-ui-next/commit/5db1c4c11f3476081f5ea1f18cb7e02ca3a732b2))
|
|
17
|
+
|
|
3
18
|
# [2.35.0](https://github.com/academydistrict20/asd20-ui-next/compare/ui-next-v2.34.6...ui-next-v2.35.0) (2026-11-03)
|
|
4
19
|
|
|
5
20
|
|
package/package.json
CHANGED
|
@@ -133,6 +133,14 @@
|
|
|
133
133
|
class="asd20-template-handbook__layout"
|
|
134
134
|
tabindex="-1"
|
|
135
135
|
>
|
|
136
|
+
<p
|
|
137
|
+
v-if="publicationDiagnostics.length"
|
|
138
|
+
class="asd20-template-handbook__publication-review"
|
|
139
|
+
role="status"
|
|
140
|
+
>
|
|
141
|
+
This handbook has content that needs publication review before PDF export.
|
|
142
|
+
</p>
|
|
143
|
+
|
|
136
144
|
<nav
|
|
137
145
|
class="asd20-template-handbook__index"
|
|
138
146
|
aria-label="Handbook topics"
|
|
@@ -206,14 +214,6 @@
|
|
|
206
214
|
</ol>
|
|
207
215
|
</nav>
|
|
208
216
|
|
|
209
|
-
<p
|
|
210
|
-
v-if="publicationDiagnostics.length"
|
|
211
|
-
class="asd20-template-handbook__publication-review"
|
|
212
|
-
role="status"
|
|
213
|
-
>
|
|
214
|
-
This handbook has content that needs publication review before PDF export.
|
|
215
|
-
</p>
|
|
216
|
-
|
|
217
217
|
<asd20-print-contents
|
|
218
218
|
v-if="documentPrint"
|
|
219
219
|
:headings="printHeadings"
|
|
@@ -267,15 +267,6 @@
|
|
|
267
267
|
No handbook topics are available yet.
|
|
268
268
|
</p>
|
|
269
269
|
</main>
|
|
270
|
-
|
|
271
|
-
<asd20-quicklinks-menu :quick-links="quickLinks" />
|
|
272
|
-
<asd20-page-footer
|
|
273
|
-
:organization="organization"
|
|
274
|
-
:social-links="socialLinks"
|
|
275
|
-
:disclosure-links="disclosureLinks"
|
|
276
|
-
:website-logo-props="websiteLogoProps"
|
|
277
|
-
:website-logo-props2="websiteLogoProps2"
|
|
278
|
-
/>
|
|
279
270
|
</div>
|
|
280
271
|
</template>
|
|
281
272
|
|
|
@@ -289,8 +280,6 @@ import Asd20Viewport from '../../atoms/Asd20Viewport'
|
|
|
289
280
|
import Asd20PageHeader from '../../../components/organisms/Asd20PageHeader'
|
|
290
281
|
import Asd20SiteNavigation from '../../../components/organisms/Asd20SiteNavigation'
|
|
291
282
|
import Asd20NotificationGroup from '../../../components/organisms/Asd20NotificationGroup'
|
|
292
|
-
import Asd20QuicklinksMenu from '../../../components/organisms/Asd20QuicklinksMenu'
|
|
293
|
-
import Asd20PageFooter from '../../../components/organisms/Asd20PageFooter'
|
|
294
283
|
import Asd20PrintHeader from '../../molecules/Asd20PrintHeader'
|
|
295
284
|
import Asd20PrintContents from '../../molecules/Asd20PrintContents'
|
|
296
285
|
import { buildHandbookDocument } from '../../../helpers/handbookDocument'
|
|
@@ -311,8 +300,6 @@ export default {
|
|
|
311
300
|
Asd20PageHeader,
|
|
312
301
|
Asd20SiteNavigation,
|
|
313
302
|
Asd20NotificationGroup,
|
|
314
|
-
Asd20QuicklinksMenu,
|
|
315
|
-
Asd20PageFooter,
|
|
316
303
|
Asd20PrintHeader,
|
|
317
304
|
Asd20PrintContents,
|
|
318
305
|
},
|
|
@@ -382,6 +369,27 @@ export default {
|
|
|
382
369
|
this.stopPrintLifecycle?.()
|
|
383
370
|
},
|
|
384
371
|
methods: {
|
|
372
|
+
closeTopics() {
|
|
373
|
+
const index = this.$el.querySelector('.asd20-template-handbook__index')
|
|
374
|
+
const focusContent = this.topicsOpen && index.contains(index.ownerDocument.activeElement)
|
|
375
|
+
this.topicsOpen = false
|
|
376
|
+
return focusContent
|
|
377
|
+
},
|
|
378
|
+
scrollToReadingTarget(target, { focus = false } = {}) {
|
|
379
|
+
if (!target) return
|
|
380
|
+
const view = target.ownerDocument.defaultView
|
|
381
|
+
const inset = parseFloat(view.getComputedStyle(target).scrollMarginTop) || 0
|
|
382
|
+
// Only move this document's page, keeping any surrounding preview or
|
|
383
|
+
// application scroll containers in place.
|
|
384
|
+
view.scrollTo({
|
|
385
|
+
top: Math.max(0, view.scrollY + target.getBoundingClientRect().top - inset),
|
|
386
|
+
behavior: 'instant',
|
|
387
|
+
})
|
|
388
|
+
if (focus) {
|
|
389
|
+
if (!target.hasAttribute('tabindex')) target.setAttribute('tabindex', '-1')
|
|
390
|
+
target.focus({ preventScroll: true })
|
|
391
|
+
}
|
|
392
|
+
},
|
|
385
393
|
updatePrintLifecycle() {
|
|
386
394
|
this.stopPrintLifecycle?.()
|
|
387
395
|
this.stopPrintLifecycle = this.documentPrint ? installDocumentPrintLifecycle(this.$el) : null
|
|
@@ -429,10 +437,8 @@ export default {
|
|
|
429
437
|
await this.$nextTick()
|
|
430
438
|
if (epoch !== this.fragmentEpoch) return false
|
|
431
439
|
}
|
|
432
|
-
target.scrollIntoView({ block: 'start' })
|
|
433
440
|
// A followed content link moves keyboard focus to its destination.
|
|
434
|
-
|
|
435
|
-
target.focus({ preventScroll: true })
|
|
441
|
+
this.scrollToReadingTarget(target, { focus: true })
|
|
436
442
|
return true
|
|
437
443
|
},
|
|
438
444
|
onHandbookLinkClick(event) {
|
|
@@ -471,19 +477,21 @@ export default {
|
|
|
471
477
|
this.expandedTopicId = this.expandedTopicId === messageId ? null : messageId
|
|
472
478
|
},
|
|
473
479
|
async selectTopic(messageId) {
|
|
474
|
-
this.fragmentEpoch
|
|
480
|
+
const epoch = ++this.fragmentEpoch
|
|
475
481
|
this.selectedMessageId = messageId
|
|
476
482
|
this.expandedTopicId = this.subtopicsFor(messageId).length ? messageId : null
|
|
477
|
-
|
|
483
|
+
const focusContent = this.closeTopics()
|
|
478
484
|
await this.$nextTick()
|
|
479
|
-
this.
|
|
485
|
+
if (epoch !== this.fragmentEpoch) return
|
|
486
|
+
this.scrollToReadingTarget(this.topicArticle(messageId), { focus: focusContent })
|
|
480
487
|
},
|
|
481
488
|
async selectSubtopic(messageId, headingId) {
|
|
482
|
-
this.fragmentEpoch
|
|
489
|
+
const epoch = ++this.fragmentEpoch
|
|
483
490
|
this.selectedMessageId = messageId
|
|
484
491
|
this.expandedTopicId = messageId
|
|
485
|
-
|
|
492
|
+
const focusContent = this.closeTopics()
|
|
486
493
|
await this.$nextTick()
|
|
494
|
+
if (epoch !== this.fragmentEpoch) return
|
|
487
495
|
const article = this.topicArticle(messageId)
|
|
488
496
|
const heading = Array.from(article?.querySelectorAll('[id]') || [])
|
|
489
497
|
.find(element => element.id === headingId)
|
|
@@ -492,8 +500,9 @@ export default {
|
|
|
492
500
|
if (toggle) {
|
|
493
501
|
toggle.click()
|
|
494
502
|
await this.$nextTick()
|
|
503
|
+
if (epoch !== this.fragmentEpoch) return
|
|
495
504
|
}
|
|
496
|
-
heading
|
|
505
|
+
this.scrollToReadingTarget(heading, { focus: focusContent })
|
|
497
506
|
},
|
|
498
507
|
},
|
|
499
508
|
}
|
|
@@ -540,6 +549,10 @@ export default {
|
|
|
540
549
|
box-shadow: none !important;
|
|
541
550
|
}
|
|
542
551
|
|
|
552
|
+
&__publication-review {
|
|
553
|
+
grid-column: 1 / -1;
|
|
554
|
+
}
|
|
555
|
+
|
|
543
556
|
&__summary {
|
|
544
557
|
@include asd20-font(0.75, var(--website-typography__font-family-body), 1.5);
|
|
545
558
|
margin-bottom: space(0.5);
|
|
@@ -656,10 +669,13 @@ export default {
|
|
|
656
669
|
|
|
657
670
|
&__topic {
|
|
658
671
|
min-width: 0;
|
|
672
|
+
// Keep a full reading view available, even for a short topic.
|
|
673
|
+
min-height: calc(100vh - #{space(2)});
|
|
674
|
+
min-height: calc(100svh - #{space(2)});
|
|
659
675
|
scroll-margin-top: space(2);
|
|
660
676
|
}
|
|
661
677
|
|
|
662
|
-
&__topic
|
|
678
|
+
&__topic [id] {
|
|
663
679
|
scroll-margin-top: space(2);
|
|
664
680
|
}
|
|
665
681
|
|
|
@@ -731,6 +747,7 @@ export default {
|
|
|
731
747
|
}
|
|
732
748
|
|
|
733
749
|
&__topic {
|
|
750
|
+
min-height: 0;
|
|
734
751
|
break-inside: avoid-page;
|
|
735
752
|
}
|
|
736
753
|
}
|