'use client'; import { RippleArea } from '../ripple/ripple-area'; import { IRippleProps } from '../ripple/ripple.types'; import useRippleEffect from '../ripple/hooks/useRippleEffect'; import React, { forwardRef, PropsWithChildren, useId, useRef, useState, } from 'react'; const ButtonLayout = forwardRef< HTMLButtonElement, PropsWithChildren & IRippleProps >(function ButtonBase({ centralRipple = false, ...props }, ref) { const [isActive, setIsActive] = useState(false), ripplesRef = useRef(null), buttonId = useId(), events = useRippleEffect(ripplesRef, setIsActive); const { variant, disabled, className } = props; const classes = className ? `m3 ${className} ${variant}${isActive ? ' is-active' : ''}` : `m3 ${variant}${isActive ? ' is-active' : ''}`; return ( ); }); export { ButtonLayout };