@refrakt-md/behaviors 0.14.0 → 0.14.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.
@@ -1 +1 @@
1
- {"version":3,"file":"nav-collapsible.d.ts","sourceRoot":"","sources":["../../src/behaviors/nav-collapsible.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,CA+DjE"}
1
+ {"version":3,"file":"nav-collapsible.d.ts","sourceRoot":"","sources":["../../src/behaviors/nav-collapsible.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,WAAW,GAAG,SAAS,CAiFjE"}
@@ -35,9 +35,26 @@ export function navCollapsibleBehavior(el) {
35
35
  heading.setAttribute('aria-expanded', group.getAttribute('data-collapsed') === 'false' ? 'true' : 'false');
36
36
  panel.setAttribute('aria-labelledby', triggerId);
37
37
  const toggle = () => {
38
- const open = group.getAttribute('data-collapsed') === 'false';
39
- group.setAttribute('data-collapsed', open ? 'true' : 'false');
40
- heading.setAttribute('aria-expanded', open ? 'false' : 'true');
38
+ const wasOpen = group.getAttribute('data-collapsed') === 'false';
39
+ const startH = panel.getBoundingClientRect().height;
40
+ const endH = wasOpen ? 0 : panel.scrollHeight;
41
+ panel.style.height = startH + 'px';
42
+ void panel.offsetHeight;
43
+ group.setAttribute('data-collapsed', wasOpen ? 'true' : 'false');
44
+ heading.setAttribute('aria-expanded', wasOpen ? 'false' : 'true');
45
+ panel.style.height = endH + 'px';
46
+ const settle = () => {
47
+ panel.style.height = '';
48
+ panel.removeEventListener('transitionend', onEnd);
49
+ clearTimeout(fallback);
50
+ };
51
+ const onEnd = (e) => {
52
+ if (e.target !== panel || e.propertyName !== 'height')
53
+ return;
54
+ settle();
55
+ };
56
+ panel.addEventListener('transitionend', onEnd);
57
+ const fallback = setTimeout(settle, 260);
41
58
  };
42
59
  const onClick = (e) => {
43
60
  e.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"nav-collapsible.js","sourceRoot":"","sources":["../../src/behaviors/nav-collapsible.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nav-collapsible.js","sourceRoot":"","sources":["../../src/behaviors/nav-collapsible.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/behaviors",
3
3
  "description": "Vanilla JS behavior library for refrakt.md runes — tabs, accordions, copy buttons, keyboard navigation",
4
- "version": "0.14.0",
4
+ "version": "0.14.2",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {