UNPKG

react-bootstrap

Version:

Bootstrap 5 components built with React

34 lines (33 loc) 1.01 kB
"use client"; import classNames from 'classnames'; import camelize from 'dom-helpers/camelize'; import * as React from 'react'; import { useBootstrapPrefix } from './ThemeProvider'; import { jsx as _jsx } from "react/jsx-runtime"; const pascalCase = str => str[0].toUpperCase() + camelize(str).slice(1); // TODO: emstricten & fix the typing here! `createWithBsPrefix<TElementType>...` export default function createWithBsPrefix(prefix, { displayName = pascalCase(prefix), Component, defaultProps } = {}) { const BsComponent = /*#__PURE__*/React.forwardRef(({ className, bsPrefix, as: Tag = Component || 'div', ...props }, ref) => { const componentProps = { ...defaultProps, ...props }; const resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix); return /*#__PURE__*/_jsx(Tag, { ref: ref, className: classNames(className, resolvedPrefix), ...componentProps }); }); BsComponent.displayName = displayName; return BsComponent; }