import { installFactory } from './utils/plugins';
import { componentsPlugin } from './components';
export { BVConfigPlugin as BVConfig, BVConfigPlugin } from './bv-config';
export { BVToastPlugin } from './components/toast/helpers/bv-toast';
export { BBadge } from './components/badge/badge';
export { BBreadcrumb } from './components/breadcrumb/breadcrumb';
export { BBreadcrumbItem } from './components/breadcrumb/breadcrumb-item';
export { BButton } from './components/button/button';
export { BButtonClose } from './components/button/button-close';
export { BButtonGroup } from './components/button-group/button-group';
export { BCollapse } from './components/collapse/collapse';
export { BDropdown } from './components/dropdown/dropdown';
export { BDropdownItem } from './components/dropdown/dropdown-item';
export { BDropdownItemButton } from './components/dropdown/dropdown-item-button';
export { BDropdownDivider } from './components/dropdown/dropdown-divider';
export { BDropdownForm } from './components/dropdown/dropdown-form';
export { BDropdownGroup } from './components/dropdown/dropdown-group';
export { BDropdownHeader } from './components/dropdown/dropdown-header';
export { BDropdownText } from './components/dropdown/dropdown-text';
export { BForm } from './components/form/form';
export { BFormText } from './components/form/form-text';
export { BFormInvalidFeedback } from './components/form/form-invalid-feedback';
export { BFormValidFeedback } from './components/form/form-valid-feedback';
export { BFormCheckbox } from './components/form-checkbox/form-checkbox';
export { BFormCheckboxGroup } from './components/form-checkbox/form-checkbox-group';
export { BFormGroup } from './components/form-group/form-group';
export { BFormInput } from './components/form-input/form-input';
export { BFormRadio } from './components/form-radio/form-radio';
export { BFormRadioGroup } from './components/form-radio/form-radio-group';
export { BFormSelect } from './components/form-select/form-select';
export { BFormSelectOption } from './components/form-select/form-select-option';
export { BFormSelectOptionGroup } from './components/form-select/form-select-option-group';
export { BFormTextarea } from './components/form-textarea/form-textarea';
export { BInputGroup } from './components/input-group/input-group';
export { BInputGroupAddon } from './components/input-group/input-group-addon';
export { BInputGroupAppend } from './components/input-group/input-group-append';
export { BInputGroupPrepend } from './components/input-group/input-group-prepend';
export { BInputGroupText } from './components/input-group/input-group-text';
export { BCol } from './components/layout/col';
export { BFormRow } from './components/layout/form-row';
export { BLink } from './components/link/link';
export { BModal } from './components/modal/modal';
export { BNav } from './components/nav/nav';
export { BNavItem } from './components/nav/nav-item';
export { BNavItemDropdown } from './components/nav/nav-item-dropdown';
export { BNavbar } from './components/navbar/navbar';
export { BNavbarBrand } from './components/navbar/navbar-brand';
export { BPopover } from './components/popover/popover';
export { BProgress } from './components/progress/progress';
export { BProgressBar } from './components/progress/progress-bar';
export { BTable } from './components/table/table';
export { BTableLite } from './components/table/table-lite';
export { BTableSimple } from './components/table/table-simple';
export { BTbody } from './components/table/tbody';
export { BThead } from './components/table/thead';
export { BTfoot } from './components/table/tfoot';
export { BTr } from './components/table/tr';
export { BTh } from './components/table/th';
export { BTd } from './components/table/td';
export { BTabs } from './components/tabs/tabs';
export { BTab } from './components/tabs/tab';
export { ToastPlugin } from './components/toast';
export { BToast } from './components/toast/toast';
export { BToaster } from './components/toast/toaster';
export { BTooltip } from './components/tooltip/tooltip';
export { VBModal } from './directives/modal/modal';
export { VBToggle } from './directives/toggle/toggle';
export { VBTooltip } from './directives/tooltip/tooltip';
export { VBVisible } from './directives/visible/visible';

const NAME = 'BootstrapVue';

// --- BootstrapVue installer ---
const install = /*#__PURE__*/installFactory({
  plugins: {
    componentsPlugin
  }
});

// --- BootstrapVue plugin ---
const BootstrapVue = {
  install,
  NAME
};

export default BootstrapVue;
export { BootstrapVue, NAME, install };
