// ported from https://github.com/react-bootstrap/react-bootstrap/blob/f11723114d532cfce840417834a73733a8436414/src/createWithBsPrefix.tsx
import classNames from "./classnames";
import { useBootstrapPrefix } from "./ThemeProvider";
import { mergeProps, splitProps } from "solid-js";
import { Dynamic } from "solid-js/web";
// TODO: emstricten & fix the typing here! `createWithBsPrefix<TElementType>...`
export function createWithBsPrefix(prefix, { Component, defaultProps = {} } = {}) {
    const BsComponent = (p) => {
        const [local, props] = splitProps(mergeProps({ as: Component || "div" }, defaultProps, p), [
            "className",
            "bsPrefix",
            "as",
        ]);
        const resolvedPrefix = useBootstrapPrefix(local.bsPrefix, prefix);
        return (<Dynamic component={local.as} className={classNames(local.className, resolvedPrefix)} {...props}>
        {props.children}
      </Dynamic>);
    };
    return BsComponent;
}
