@natachah/vanilla-frontend 0.2.4 → 0.2.6

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.
@@ -18,7 +18,7 @@ class DocLayout extends HTMLElement {
18
18
  <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-pin-angle" viewBox="0 0 16 16">
19
19
  <path d="M9.828.722a.5.5 0 0 1 .354.146l4.95 4.95a.5.5 0 0 1 0 .707c-.48.48-1.072.588-1.503.588-.177 0-.335-.018-.46-.039l-3.134 3.134a6 6 0 0 1 .16 1.013c.046.702-.032 1.687-.72 2.375a.5.5 0 0 1-.707 0l-2.829-2.828-3.182 3.182c-.195.195-1.219.902-1.414.707s.512-1.22.707-1.414l3.182-3.182-2.828-2.829a.5.5 0 0 1 0-.707c.688-.688 1.673-.767 2.375-.72a6 6 0 0 1 1.013.16l3.134-3.133a3 3 0 0 1-.04-.461c0-.43.108-1.022.589-1.503a.5.5 0 0 1 .353-.146m.122 2.112v-.002zm0-.002v.002a.5.5 0 0 1-.122.51L6.293 6.878a.5.5 0 0 1-.511.12H5.78l-.014-.004a5 5 0 0 0-.288-.076 5 5 0 0 0-.765-.116c-.422-.028-.836.008-1.175.15l5.51 5.509c.141-.34.177-.753.149-1.175a5 5 0 0 0-.192-1.054l-.004-.013v-.001a.5.5 0 0 1 .12-.512l3.536-3.535a.5.5 0 0 1 .532-.115l.096.022c.087.017.208.034.344.034q.172.002.343-.04L9.927 2.028q-.042.172-.04.343a1.8 1.8 0 0 0 .062.46z"/>
20
20
  </svg>
21
- 0.2.4
21
+ 0.2.6
22
22
  </span>
23
23
  </li>
24
24
  <li>
package/js/_drawer.js CHANGED
@@ -58,6 +58,8 @@ export default class Drawer extends BaseComponent {
58
58
 
59
59
  this._trap = new Trap(this._element, this._options.trap.exclusions ?? ['#backdrop'], this._options.trap.inclusions ?? [])
60
60
 
61
+ this._previousFocus = null
62
+
61
63
  // Init the event listener
62
64
  this.#init()
63
65
  }
@@ -130,6 +132,8 @@ export default class Drawer extends BaseComponent {
130
132
  // Change the state
131
133
  this._isOpen = value
132
134
 
135
+ if (this._isOpen) this._previousFocus = document.activeElement
136
+
133
137
  // Change the [aria-pressed] & [aria-expanded] attribute on the <button>
134
138
  this._buttons.forEach((button) => {
135
139
  button.setAttribute('aria-pressed', this._isOpen)
@@ -147,11 +151,16 @@ export default class Drawer extends BaseComponent {
147
151
  // Add the Trap focus
148
152
  // * Need to wait the transition before make it focused
149
153
  this._element.addEventListener('transitionend', () => {
150
- if (this._element.getAttribute('role') === 'dialog') {
151
- this._isOpen ? this._trap.activate() : this._trap.deactivate()
152
- } else if (this._isOpen) {
153
- this._trap.focusOnFirst()
154
+
155
+ const isDialog = this._element.getAttribute('role') === 'dialog'
156
+
157
+ if (this._isOpen) {
158
+ isDialog ? this._trap.activate() : this._trap.focusOnFirst()
159
+ } else {
160
+ if (isDialog) this._trap.deactivate()
161
+ this._previousFocus ? this._previousFocus.focus() : this._buttons[0].focus()
154
162
  }
163
+
155
164
  }, { once: true })
156
165
 
157
166
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@natachah/vanilla-frontend",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
4
4
  "description": "A vanilla frontend framework",
5
5
  "keywords": [
6
6
  "html5",
Binary file