@linzjs/lui 28.0.0 → 28.1.0
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 +7 -0
- package/dist/components/LuiAccordicardStatic/LuiAccordicardStatic.d.ts +1 -0
- package/dist/index.js +21 -5
- package/dist/index.js.map +1 -1
- package/dist/lui.css +17 -0
- package/dist/lui.css.map +1 -1
- package/dist/lui.esm.js +21 -5
- package/dist/lui.esm.js.map +1 -1
- package/dist/scss/Components/LuiAccordicardStatic/LuiAccordicardStatic.scss +18 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
* **LuiComboSelect:** restore interface to support styling of the input element. ([#1270](https://github.com/linz/lui/issues/1270)) ([7ce6a13](https://github.com/linz/lui/commit/7ce6a137c7f16ffa3acbe4357569a6eb59ef47db))
|
|
7
7
|
|
|
8
|
+
## [28.1.0](https://github.com/linz/Lui/compare/lui-v28.0.0...lui-v28.1.0) (2026-10-01)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **LuiAccordicardStatic:** support clickable headers ([#1420](https://github.com/linz/Lui/issues/1420)) ([692274b](https://github.com/linz/Lui/commit/692274bc3875f3fd488e3d014982284d5a0ef960))
|
|
14
|
+
|
|
8
15
|
## [28.0.0](https://github.com/linz/Lui/compare/lui-v27.0.1...lui-v28.0.0) (2026-09-24)
|
|
9
16
|
|
|
10
17
|
|
package/dist/index.js
CHANGED
|
@@ -33999,16 +33999,32 @@ const LuiAccordicard = (props) => {
|
|
|
33999
33999
|
};
|
|
34000
34000
|
|
|
34001
34001
|
const LuiAccordicardStatic = (props) => {
|
|
34002
|
-
const { defaultToOpen = false, children, headerContent } = props;
|
|
34002
|
+
const { defaultToOpen = false, children, headerContent, expandOnHeaderClick = false, } = props;
|
|
34003
34003
|
const [isOpen, setIsOpen] = React.useState(defaultToOpen);
|
|
34004
|
-
|
|
34004
|
+
const contentId = React.useId();
|
|
34005
|
+
const toggle = () => setIsOpen((currentIsOpen) => !currentIsOpen);
|
|
34006
|
+
const isInteractiveTarget = (target, currentTarget) => {
|
|
34007
|
+
if (!(target instanceof Element))
|
|
34008
|
+
return false;
|
|
34009
|
+
const interactiveTarget = target.closest('a, button, input, label, select, textarea, summary, [contenteditable="true"], [tabindex]:not([tabindex="-1"]), [role="button"], [role="checkbox"], [role="combobox"], [role="link"], [role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"], [role="option"], [role="radio"], [role="switch"], [role="tab"], [role="textbox"], [role="spinbutton"]');
|
|
34010
|
+
return interactiveTarget !== null && interactiveTarget !== currentTarget;
|
|
34011
|
+
};
|
|
34012
|
+
const handleHeaderClick = (event) => {
|
|
34013
|
+
if (!expandOnHeaderClick)
|
|
34014
|
+
return;
|
|
34015
|
+
if (isInteractiveTarget(event.target, event.currentTarget))
|
|
34016
|
+
return;
|
|
34017
|
+
toggle();
|
|
34018
|
+
};
|
|
34019
|
+
return (React__default["default"].createElement("div", { className: clsx('LuiAccordicardStatic', isOpen ? 'LuiAccordicardStatic--isOpen' : null, props.warning ? 'LuiAccordicardStatic--warning' : null, expandOnHeaderClick ? 'LuiAccordicardStatic--clickableHeader' : null, props.className) },
|
|
34005
34020
|
props.warning && (React__default["default"].createElement("div", { className: "LuiAccordicardStatic-sideBar" },
|
|
34006
34021
|
React__default["default"].createElement(LuiIcon, { className: "LuiAccordicardStatic-warningIcon", alt: "Accordicard warning", name: 'ic_warning', size: 'md' }))),
|
|
34007
|
-
React__default["default"].createElement("div", { className: "LuiAccordicardStatic-header" },
|
|
34022
|
+
React__default["default"].createElement("div", { className: "LuiAccordicardStatic-header", onClick: handleHeaderClick },
|
|
34023
|
+
expandOnHeaderClick && (React__default["default"].createElement("button", { "aria-controls": contentId, "aria-expanded": isOpen, "aria-label": "Expand and collapse panel", className: "LuiAccordicardStatic-headerToggle", onClick: toggle, type: "button" })),
|
|
34008
34024
|
React__default["default"].createElement("div", { className: "LuiAccordicardStatic-headerContent" }, headerContent)),
|
|
34009
|
-
React__default["default"].createElement("div", { className: clsx('LuiAccordicardStatic-contentWrapper', isOpen ? 'LuiAccordicardStatic-contentWrapper--isOpen' : null) },
|
|
34025
|
+
React__default["default"].createElement("div", { id: contentId, className: clsx('LuiAccordicardStatic-contentWrapper', isOpen ? 'LuiAccordicardStatic-contentWrapper--isOpen' : null) },
|
|
34010
34026
|
React__default["default"].createElement("div", { className: clsx('LuiAccordicardStatic-content', isOpen ? 'LuiAccordicardStatic-content--isOpen' : null) }, isOpen ? children : React__default["default"].createElement(React__default["default"].Fragment, null))),
|
|
34011
|
-
React__default["default"].createElement("button", { "aria-label": isOpen ? 'Expanded' : 'Closed', className: "LuiAccordicardStatic-trigger", onClick:
|
|
34027
|
+
React__default["default"].createElement("button", { "aria-label": isOpen ? 'Expanded' : 'Closed', className: "LuiAccordicardStatic-trigger", onClick: toggle, type: "button" },
|
|
34012
34028
|
React__default["default"].createElement(LuiIcon, { className: clsx('LuiAccordicardStatic-chevron', isOpen ? 'LuiAccordicardStatic-chevron--isOpen' : null), name: 'ic_expand_more', alt: "expand", title: "Expand and collapse panel", size: "md" }))));
|
|
34013
34029
|
};
|
|
34014
34030
|
|