- Updated all component headers and documentation
- Changed navbar and footer branding
- Updated homepage hero badge
- Modified page title in index.html
- Simplified footer text to 'Built with ❤️'
- Consistent V2 capitalization across all references
29 lines
697 B
JavaScript
29 lines
697 B
JavaScript
'use client';
|
|
import { useId as useId$1, useMemo, useState, useCallback } from 'react';
|
|
|
|
function useId(idProp, prefix) {
|
|
const id = useId$1();
|
|
return useMemo(
|
|
() => idProp || [prefix, id].filter(Boolean).join("-"),
|
|
[idProp, prefix, id]
|
|
);
|
|
}
|
|
function useIds(idProp, ...prefixes) {
|
|
const id = useId(idProp);
|
|
return useMemo(() => {
|
|
return prefixes.map((prefix) => `${prefix}-${id}`);
|
|
}, [id, prefixes]);
|
|
}
|
|
function useOptionalPart(partId) {
|
|
const [id, setId] = useState(null);
|
|
const ref = useCallback(
|
|
(node) => {
|
|
setId(node ? partId : null);
|
|
},
|
|
[partId]
|
|
);
|
|
return { ref, id, isRendered: Boolean(id) };
|
|
}
|
|
|
|
export { useId, useIds, useOptionalPart };
|