import { installFactory } from './utils/plugins';
import { componentsPlugin } from './components';
import { directivesPlugin } from './directives';
export { BVConfigPlugin as BVConfig, BVConfigPlugin } from './bv-config';
export { BVModalPlugin } from './components/modal/helpers/bv-modal';
export { BVToastPlugin } from './components/toast/helpers/bv-toast';
export { BootstrapVueIcons, IconsPlugin } from './icons/plugin';
export { BIcon } from './icons/icon';
export { BIconstack } from './icons/iconstack';
export * from './icons/icons';
export { AlertPlugin } from './components/alert';
export { BAlert } from './components/alert/alert';
export { AspectPlugin } from './components/aspect';
export { BAspect } from './components/aspect/aspect';
export { AvatarPlugin } from './components/avatar';
export { BAvatar } from './components/avatar/avatar';
export { BAvatarGroup } from './components/avatar/avatar-group';
export { BadgePlugin } from './components/badge';
export { BBadge } from './components/badge/badge';
export { BreadcrumbPlugin } from './components/breadcrumb';
export { BBreadcrumb } from './components/breadcrumb/breadcrumb';
export { BBreadcrumbItem } from './components/breadcrumb/breadcrumb-item';
export { ButtonPlugin } from './components/button';
export { BButton } from './components/button/button';
export { BButtonClose } from './components/button/button-close';
export { ButtonGroupPlugin } from './components/button-group';
export { BButtonGroup } from './components/button-group/button-group';
export { ButtonToolbarPlugin } from './components/button-toolbar';
export { BButtonToolbar } from './components/button-toolbar/button-toolbar';
export { CalendarPlugin } from './components/calendar';
export { BCalendar } from './components/calendar/calendar';
export { CardPlugin } from './components/card';
export { BCard } from './components/card/card';
export { BCardBody } from './components/card/card-body';
export { BCardFooter } from './components/card/card-footer';
export { BCardGroup } from './components/card/card-group';
export { BCardHeader } from './components/card/card-header';
export { BCardImg } from './components/card/card-img';
export { BCardImgLazy } from './components/card/card-img-lazy';
export { BCardSubTitle } from './components/card/card-sub-title';
export { BCardText } from './components/card/card-text';
export { BCardTitle } from './components/card/card-title';
export { CarouselPlugin } from './components/carousel';
export { BCarousel } from './components/carousel/carousel';
export { BCarouselSlide } from './components/carousel/carousel-slide';
export { CollapsePlugin } from './components/collapse';
export { BCollapse } from './components/collapse/collapse';
export { DropdownPlugin } from './components/dropdown';
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 { EmbedPlugin } from './components/embed';
export { BEmbed } from './components/embed/embed';
export { FormPlugin } from './components/form';
export { BForm } from './components/form/form';
export { BFormDatalist } from './components/form/form-datalist';
export { BFormText } from './components/form/form-text';
export { BFormInvalidFeedback } from './components/form/form-invalid-feedback';
export { BFormValidFeedback } from './components/form/form-valid-feedback';
export { FormCheckboxPlugin } from './components/form-checkbox';
export { BFormCheckbox } from './components/form-checkbox/form-checkbox';
export { BFormCheckboxGroup } from './components/form-checkbox/form-checkbox-group';
export { FormDatepickerPlugin } from './components/form-datepicker';
export { BFormDatepicker } from './components/form-datepicker/form-datepicker';
export { FormFilePlugin } from './components/form-file';
export { BFormFile } from './components/form-file/form-file';
export { FormGroupPlugin } from './components/form-group';
export { BFormGroup } from './components/form-group/form-group';
export { FormInputPlugin } from './components/form-input';
export { BFormInput } from './components/form-input/form-input';
export { FormRadioPlugin } from './components/form-radio';
export { BFormRadio } from './components/form-radio/form-radio';
export { BFormRadioGroup } from './components/form-radio/form-radio-group';
export { FormRatingPlugin } from './components/form-rating';
export { BFormRating } from './components/form-rating/form-rating';
export { FormTagsPlugin } from './components/form-tags';
export { BFormTags } from './components/form-tags/form-tags';
export { BFormTag } from './components/form-tags/form-tag';
export { FormSelectPlugin } from './components/form-select';
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 { FormSpinbuttonPlugin } from './components/form-spinbutton';
export { BFormSpinbutton } from './components/form-spinbutton/form-spinbutton';
export { FormTextareaPlugin } from './components/form-textarea';
export { BFormTextarea } from './components/form-textarea/form-textarea';
export { FormTimepickerPlugin } from './components/form-timepicker';
export { BFormTimepicker } from './components/form-timepicker/form-timepicker';
export { ImagePlugin } from './components/image';
export { BImg } from './components/image/img';
export { BImgLazy } from './components/image/img-lazy';
export { InputGroupPlugin } from './components/input-group';
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 { JumbotronPlugin } from './components/jumbotron';
export { BJumbotron } from './components/jumbotron/jumbotron';
export { LayoutPlugin } from './components/layout';
export { BContainer } from './components/layout/container';
export { BRow } from './components/layout/row';
export { BCol } from './components/layout/col';
export { BFormRow } from './components/layout/form-row';
export { LinkPlugin } from './components/link';
export { BLink } from './components/link/link';
export { ListGroupPlugin } from './components/list-group';
export { BListGroup } from './components/list-group/list-group';
export { BListGroupItem } from './components/list-group/list-group-item';
export { MediaPlugin } from './components/media';
export { BMedia } from './components/media/media';
export { BMediaAside } from './components/media/media-aside';
export { BMediaBody } from './components/media/media-body';
export { ModalPlugin } from './components/modal';
export { BModal } from './components/modal/modal';
export { NavPlugin } from './components/nav';
export { BNav } from './components/nav/nav';
export { BNavForm } from './components/nav/nav-form';
export { BNavItem } from './components/nav/nav-item';
export { BNavItemDropdown } from './components/nav/nav-item-dropdown';
export { BNavText } from './components/nav/nav-text';
export { NavbarPlugin } from './components/navbar';
export { BNavbar } from './components/navbar/navbar';
export { BNavbarBrand } from './components/navbar/navbar-brand';
export { BNavbarNav } from './components/navbar/navbar-nav';
export { BNavbarToggle } from './components/navbar/navbar-toggle';
export { OverlayPlugin } from './components/overlay';
export { BOverlay } from './components/overlay/overlay';
export { PaginationPlugin } from './components/pagination';
export { BPagination } from './components/pagination/pagination';
export { PaginationNavPlugin } from './components/pagination-nav';
export { BPaginationNav } from './components/pagination-nav/pagination-nav';
export { PopoverPlugin } from './components/popover';
export { BPopover } from './components/popover/popover';
export { ProgressPlugin } from './components/progress';
export { BProgress } from './components/progress/progress';
export { BProgressBar } from './components/progress/progress-bar';
export { SidebarPlugin } from './components/sidebar';
export { BSidebar } from './components/sidebar/sidebar';
export { SkeletonPlugin } from './components/skeleton';
export { BSkeleton } from './components/skeleton/skeleton';
export { BSkeletonIcon } from './components/skeleton/skeleton-icon';
export { BSkeletonImg } from './components/skeleton/skeleton-img';
export { BSkeletonTable } from './components/skeleton/skeleton-table';
export { BSkeletonWrapper } from './components/skeleton/skeleton-wrapper';
export { SpinnerPlugin } from './components/spinner';
export { BSpinner } from './components/spinner/spinner';
export { TableLitePlugin, TablePlugin, TableSimplePlugin } from './components/table';
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 { TabsPlugin } from './components/tabs';
export { BTabs } from './components/tabs/tabs';
export { BTab } from './components/tabs/tab';
export { TimePlugin } from './components/time';
export { BTime } from './components/time/time';
export { ToastPlugin } from './components/toast';
export { BToast } from './components/toast/toast';
export { BToaster } from './components/toast/toaster';
export { TooltipPlugin } from './components/tooltip';
export { BTooltip } from './components/tooltip/tooltip';
export { VBHoverPlugin } from './directives/hover';
export { VBHover } from './directives/hover/hover';
export { VBModalPlugin } from './directives/modal';
export { VBModal } from './directives/modal/modal';
export { VBPopoverPlugin } from './directives/popover';
export { VBPopover } from './directives/popover/popover';
export { VBScrollspyPlugin } from './directives/scrollspy';
export { VBScrollspy } from './directives/scrollspy/scrollspy';
export { VBTogglePlugin } from './directives/toggle';
export { VBToggle } from './directives/toggle/toggle';
export { VBTooltipPlugin } from './directives/tooltip';
export { VBTooltip } from './directives/tooltip/tooltip';
export { VBVisiblePlugin } from './directives/visible';
export { VBVisible } from './directives/visible/visible';

const NAME = 'BootstrapVue';

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

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

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