UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

33 lines (32 loc) 950 B
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const setId = require("../utils/setId.cjs"); const useControlled = require("./useControlled.cjs"); const useUniqueId = require("./useUniqueId.cjs"); function useExpandable({ id: idProp, disabled, expanded, defaultExpanded }) { const [isOpen, setIsOpen] = useControlled.useControlled(expanded, Boolean(defaultExpanded)); const id = useUniqueId.useUniqueId(idProp); const buttonId = setId.setId(id, "button"); const regionId = setId.setId(id, "container"); return { isOpen, toggleOpen: (newOpen) => setIsOpen((o) => newOpen ?? !o), buttonProps: { id: buttonId, "aria-disabled": disabled, "aria-expanded": isOpen, "aria-controls": isOpen ? regionId : void 0 }, regionProps: { id: regionId, role: "region", "aria-labelledby": buttonId } }; } exports.useExpandable = useExpandable;