@asd20/ui-next 2.35.1 → 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,12 @@
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
+
3
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)
4
11
 
5
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asd20/ui-next",
3
- "version": "2.35.1",
3
+ "version": "2.35.2",
4
4
  "private": false,
5
5
  "description": "ASD20 UI component library for Vue 3.",
6
6
  "license": "MIT",
@@ -142,9 +142,7 @@
142
142
  </p>
143
143
 
144
144
  <nav
145
- ref="topicIndex"
146
145
  class="asd20-template-handbook__index"
147
- :class="{ 'asd20-template-handbook__index--sticky': indexFitsViewport }"
148
146
  aria-label="Handbook topics"
149
147
  >
150
148
  <slot name="sidebar-status" />
@@ -325,7 +323,6 @@ export default {
325
323
  topicsOpen: false,
326
324
  handbookHelpOpen: false,
327
325
  fragmentEpoch: 0,
328
- indexFitsViewport: false,
329
326
  }),
330
327
  computed: {
331
328
  handbookDocument() {
@@ -361,34 +358,19 @@ export default {
361
358
  },
362
359
  mounted() {
363
360
  this.updatePrintLifecycle()
364
- if (typeof window.ResizeObserver === 'function') {
365
- this.indexResizeObserver = new window.ResizeObserver(this.updateIndexFit)
366
- this.indexResizeObserver.observe(this.$refs.topicIndex)
367
- this.updateIndexFit()
368
- }
369
- window.addEventListener('resize', this.updateIndexFit)
370
361
  window.addEventListener('hashchange', this.onFragmentChange)
371
362
  window.addEventListener('popstate', this.onFragmentChange)
372
363
  this.onFragmentChange()
373
364
  },
374
365
  beforeUnmount() {
375
366
  this.fragmentEpoch++
376
- this.indexResizeObserver?.disconnect()
377
- window.removeEventListener('resize', this.updateIndexFit)
378
367
  window.removeEventListener('hashchange', this.onFragmentChange)
379
368
  window.removeEventListener('popstate', this.onFragmentChange)
380
369
  this.stopPrintLifecycle?.()
381
370
  },
382
371
  methods: {
383
- updateIndexFit() {
384
- const index = this.$refs.topicIndex
385
- if (!index || !this.indexResizeObserver) return
386
- const view = index.ownerDocument.defaultView
387
- const inset = parseFloat(view.getComputedStyle(index).top) || 0
388
- this.indexFitsViewport = index.getBoundingClientRect().height <= view.innerHeight - inset * 2
389
- },
390
372
  closeTopics() {
391
- const index = this.$refs.topicIndex
373
+ const index = this.$el.querySelector('.asd20-template-handbook__index')
392
374
  const focusContent = this.topicsOpen && index.contains(index.ownerDocument.activeElement)
393
375
  this.topicsOpen = false
394
376
  return focusContent
@@ -436,6 +418,7 @@ export default {
436
418
  }
437
419
  const epoch = ++this.fragmentEpoch
438
420
  this.selectedMessageId = entry.key
421
+ this.expandedTopicId = entry.key
439
422
  this.topicsOpen = false
440
423
  await this.$nextTick()
441
424
  await this.$nextTick()
@@ -496,6 +479,7 @@ export default {
496
479
  async selectTopic(messageId) {
497
480
  const epoch = ++this.fragmentEpoch
498
481
  this.selectedMessageId = messageId
482
+ this.expandedTopicId = this.subtopicsFor(messageId).length ? messageId : null
499
483
  const focusContent = this.closeTopics()
500
484
  await this.$nextTick()
501
485
  if (epoch !== this.fragmentEpoch) return
@@ -709,12 +693,11 @@ export default {
709
693
  }
710
694
 
711
695
  &__index {
696
+ position: sticky;
712
697
  top: space(2);
713
698
  align-self: start;
714
- }
715
-
716
- &__index--sticky {
717
- position: sticky;
699
+ max-height: calc(100vh - 4rem);
700
+ overflow-y: auto;
718
701
  }
719
702
 
720
703
  &__index-heading,