@sb1/ffe-accordion-react 13.2.3 → 13.2.5

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.
@@ -25,8 +25,10 @@ import { Icon } from '@sb1/ffe-icons-react';
25
25
  import { Collapse } from '@sb1/ffe-collapse-react';
26
26
  import classNames from 'classnames';
27
27
  import { AccordionContext } from './AccordionContext';
28
+ import { useTabPressed } from './useTabPressed';
28
29
  export var AccordionItem = function (_a) {
29
30
  var children = _a.children, heading = _a.heading, defaultOpen = _a.defaultOpen, isOpen = _a.isOpen, className = _a.className, _b = _a.onToggleOpen, onToggleOpen = _b === void 0 ? Function.prototype : _b, ariaLabel = _a.ariaLabel, _c = _a.noPadding, noPadding = _c === void 0 ? false : _c, rest = __rest(_a, ["children", "heading", "defaultOpen", "isOpen", "className", "onToggleOpen", "ariaLabel", "noPadding"]);
31
+ var tabPressed = useTabPressed();
30
32
  var _d = useState(defaultOpen), isExpanded = _d[0], setIsExpanded = _d[1];
31
33
  var _e = useState(false), isAnimating = _e[0], setIsAnimating = _e[1];
32
34
  var _f = useState(false), isFocused = _f[0], setFocus = _f[1];
@@ -54,12 +56,12 @@ export var AccordionItem = function (_a) {
54
56
  }) }, rest),
55
57
  React.createElement("h".concat(headingLevel), { className: 'ffe-h6 ffe-accordion-item__heading' }, React.createElement("button", { type: "button", id: buttonId, "aria-expanded": isExpanded ? 'true' : 'false', "aria-controls": contentId, "aria-label": ariaLabel, className: classNames('ffe-accordion-item__heading-button', {
56
58
  'ffe-accordion-item__heading-button--open': isExpanded,
57
- }), onClick: handleOnClick, onFocus: function () { return setFocus(true); }, onBlur: function () { return setFocus(false); } },
59
+ }), onClick: handleOnClick, onFocus: function () { return setFocus(tabPressed); }, onBlur: function () { return setFocus(false); } },
58
60
  React.createElement("span", { className: "ffe-accordion-item__heading-button-content" },
59
61
  heading,
60
62
  React.createElement("span", { className: "ffe-accordion-item__heading-icon-wrapper" },
61
63
  React.createElement(Icon, { className: "ffe-accordion-item__heading-icon", fileUrl: expandMoreIcon, size: "sm" }))))),
62
- React.createElement(Collapse, { isOpen: !!isExpanded, onRest: function () { return setIsAnimating(false); }, id: contentId, "aria-labelledby": buttonId, role: "region" }, !collapseHidden && (React.createElement("div", { className: classNames("ffe-accordion-item__body", {
63
- "ffe-accordion-item__body--no-padding": noPadding,
64
+ React.createElement(Collapse, { isOpen: !!isExpanded, onRest: function () { return setIsAnimating(false); }, id: contentId, "aria-labelledby": buttonId, role: "region" }, !collapseHidden && (React.createElement("div", { className: classNames('ffe-accordion-item__body', {
65
+ 'ffe-accordion-item__body--no-padding': noPadding,
64
66
  }) }, children)))));
65
67
  };
@@ -1 +1 @@
1
- {"root":["../src/Accordion.tsx","../src/AccordionContext.tsx","../src/AccordionItem.tsx","../src/index.ts"],"version":"5.9.2"}
1
+ {"root":["../src/Accordion.tsx","../src/AccordionContext.tsx","../src/AccordionItem.tsx","../src/index.ts","../src/useTabPressed.ts"],"version":"5.9.2"}
@@ -0,0 +1,23 @@
1
+ import { useEffect, useState } from 'react';
2
+ export function useTabPressed() {
3
+ var _a = useState(false), tabPressed = _a[0], setTabPressed = _a[1];
4
+ useEffect(function () {
5
+ var handleKeyDown = function (e) {
6
+ if (e.key === 'Tab') {
7
+ setTabPressed(true);
8
+ }
9
+ };
10
+ var handleKeyUp = function (e) {
11
+ if (e.key === 'Tab') {
12
+ setTabPressed(false);
13
+ }
14
+ };
15
+ window.addEventListener('keydown', handleKeyDown);
16
+ window.addEventListener('keyup', handleKeyUp);
17
+ return function () {
18
+ window.removeEventListener('keydown', handleKeyDown);
19
+ window.removeEventListener('keyup', handleKeyUp);
20
+ };
21
+ }, []);
22
+ return tabPressed;
23
+ }
@@ -64,8 +64,10 @@ var ffe_icons_react_1 = require("@sb1/ffe-icons-react");
64
64
  var ffe_collapse_react_1 = require("@sb1/ffe-collapse-react");
65
65
  var classnames_1 = __importDefault(require("classnames"));
66
66
  var AccordionContext_1 = require("./AccordionContext");
67
+ var useTabPressed_1 = require("./useTabPressed");
67
68
  var AccordionItem = function (_a) {
68
69
  var children = _a.children, heading = _a.heading, defaultOpen = _a.defaultOpen, isOpen = _a.isOpen, className = _a.className, _b = _a.onToggleOpen, onToggleOpen = _b === void 0 ? Function.prototype : _b, ariaLabel = _a.ariaLabel, _c = _a.noPadding, noPadding = _c === void 0 ? false : _c, rest = __rest(_a, ["children", "heading", "defaultOpen", "isOpen", "className", "onToggleOpen", "ariaLabel", "noPadding"]);
70
+ var tabPressed = (0, useTabPressed_1.useTabPressed)();
69
71
  var _d = (0, react_1.useState)(defaultOpen), isExpanded = _d[0], setIsExpanded = _d[1];
70
72
  var _e = (0, react_1.useState)(false), isAnimating = _e[0], setIsAnimating = _e[1];
71
73
  var _f = (0, react_1.useState)(false), isFocused = _f[0], setFocus = _f[1];
@@ -93,13 +95,13 @@ var AccordionItem = function (_a) {
93
95
  }) }, rest),
94
96
  react_1.default.createElement("h".concat(headingLevel), { className: 'ffe-h6 ffe-accordion-item__heading' }, react_1.default.createElement("button", { type: "button", id: buttonId, "aria-expanded": isExpanded ? 'true' : 'false', "aria-controls": contentId, "aria-label": ariaLabel, className: (0, classnames_1.default)('ffe-accordion-item__heading-button', {
95
97
  'ffe-accordion-item__heading-button--open': isExpanded,
96
- }), onClick: handleOnClick, onFocus: function () { return setFocus(true); }, onBlur: function () { return setFocus(false); } },
98
+ }), onClick: handleOnClick, onFocus: function () { return setFocus(tabPressed); }, onBlur: function () { return setFocus(false); } },
97
99
  react_1.default.createElement("span", { className: "ffe-accordion-item__heading-button-content" },
98
100
  heading,
99
101
  react_1.default.createElement("span", { className: "ffe-accordion-item__heading-icon-wrapper" },
100
102
  react_1.default.createElement(ffe_icons_react_1.Icon, { className: "ffe-accordion-item__heading-icon", fileUrl: expandMoreIcon, size: "sm" }))))),
101
- react_1.default.createElement(ffe_collapse_react_1.Collapse, { isOpen: !!isExpanded, onRest: function () { return setIsAnimating(false); }, id: contentId, "aria-labelledby": buttonId, role: "region" }, !collapseHidden && (react_1.default.createElement("div", { className: (0, classnames_1.default)("ffe-accordion-item__body", {
102
- "ffe-accordion-item__body--no-padding": noPadding,
103
+ react_1.default.createElement(ffe_collapse_react_1.Collapse, { isOpen: !!isExpanded, onRest: function () { return setIsAnimating(false); }, id: contentId, "aria-labelledby": buttonId, role: "region" }, !collapseHidden && (react_1.default.createElement("div", { className: (0, classnames_1.default)('ffe-accordion-item__body', {
104
+ 'ffe-accordion-item__body--no-padding': noPadding,
103
105
  }) }, children)))));
104
106
  };
105
107
  exports.AccordionItem = AccordionItem;
@@ -1 +1 @@
1
- {"root":["../src/Accordion.tsx","../src/AccordionContext.tsx","../src/AccordionItem.tsx","../src/index.ts"],"version":"5.9.2"}
1
+ {"root":["../src/Accordion.tsx","../src/AccordionContext.tsx","../src/AccordionItem.tsx","../src/index.ts","../src/useTabPressed.ts"],"version":"5.9.2"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTabPressed = useTabPressed;
4
+ var react_1 = require("react");
5
+ function useTabPressed() {
6
+ var _a = (0, react_1.useState)(false), tabPressed = _a[0], setTabPressed = _a[1];
7
+ (0, react_1.useEffect)(function () {
8
+ var handleKeyDown = function (e) {
9
+ if (e.key === 'Tab') {
10
+ setTabPressed(true);
11
+ }
12
+ };
13
+ var handleKeyUp = function (e) {
14
+ if (e.key === 'Tab') {
15
+ setTabPressed(false);
16
+ }
17
+ };
18
+ window.addEventListener('keydown', handleKeyDown);
19
+ window.addEventListener('keyup', handleKeyUp);
20
+ return function () {
21
+ window.removeEventListener('keydown', handleKeyDown);
22
+ window.removeEventListener('keyup', handleKeyUp);
23
+ };
24
+ }, []);
25
+ return tabPressed;
26
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sb1/ffe-accordion-react",
3
- "version": "13.2.3",
3
+ "version": "13.2.5",
4
4
  "license": "MIT",
5
5
  "author": "SpareBank 1",
6
6
  "files": [
@@ -24,8 +24,8 @@
24
24
  "test:watch": "ffe-buildtool jest --watch"
25
25
  },
26
26
  "dependencies": {
27
- "@sb1/ffe-accordion": "^13.1.2",
28
- "@sb1/ffe-collapse-react": "^5.1.36",
27
+ "@sb1/ffe-accordion": "^13.1.4",
28
+ "@sb1/ffe-collapse-react": "^5.1.37",
29
29
  "@sb1/ffe-icons-react": "^12.0.9",
30
30
  "classnames": "^2.3.1"
31
31
  },
@@ -40,5 +40,5 @@
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
- "gitHead": "9e0970976a31bca1c380a5e2f95e30e297278efb"
43
+ "gitHead": "53c34d08133242835303097e394af121b2e4fffd"
44
44
  }
@@ -1 +1 @@
1
- {"root":["../src/Accordion.tsx","../src/AccordionContext.tsx","../src/AccordionItem.tsx","../src/index.ts"],"version":"5.9.2"}
1
+ {"root":["../src/Accordion.tsx","../src/AccordionContext.tsx","../src/AccordionItem.tsx","../src/index.ts","../src/useTabPressed.ts"],"version":"5.9.2"}
@@ -0,0 +1 @@
1
+ export declare function useTabPressed(): boolean;