@payfit/unity-components
Version:
35 lines (34 loc) • 1.27 kB
JavaScript
import { SelectableButtonGroupContext as e } from "./SelectableButtonGroup.context.js";
import { forwardRef as t, useCallback as n, useRef as r } from "react";
import { uyTv as i } from "@payfit/unity-themes";
import { jsx as a } from "react/jsx-runtime";
import { useToggleButtonGroup as o } from "react-aria/useToggleButtonGroup";
import { useToggleGroupState as s } from "react-stately/useToggleGroupState";
//#region src/components/selectable-button-group/SelectableButtonGroup.tsx
var c = i({ base: "uy:group uy:flex uy:gap-100 uy:flex-wrap" }), l = t((t, i) => {
let l = r(null), u = s({
...t,
selectedKeys: t.value,
defaultSelectedKeys: t.defaultValue,
onSelectionChange: (e) => {
t.onChange?.(Array.from(e));
}
}), { groupProps: d } = o(t, u, l), f = c({ className: t.className }), p = n((e) => {
l.current = e, typeof i == "function" ? i(e) : i && (i.current = e);
}, [i]);
return /* @__PURE__ */ a("div", {
...d,
className: f,
ref: p,
"data-dd-privacy": "allow",
"aria-invalid": t.isInvalid,
onBlur: t.onBlur,
children: /* @__PURE__ */ a(e.Provider, {
value: u,
children: t.children
})
});
});
l.displayName = "SelectableButtonGroup";
//#endregion
export { l as SelectableButtonGroup, c as selectableButtonGroup };