├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitattributes ├── .github ├── .stale.yml ├── CODE_OF_CONDUCT.md ├── COMMIT_CONVENTION.md ├── CONTRIBUTING.md ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── SUPPORT.md └── workflows │ ├── daily-project-check.yml │ └── project-check.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.js ├── .vscode └── settings.json ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── jest.config.js ├── lerna.json ├── package.json ├── packages ├── bootstrap-vue │ ├── .browserslistrc │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── components │ │ │ ├── Types.tsx │ │ │ ├── accordion │ │ │ │ ├── CAccordion.ts │ │ │ │ ├── CAccordionBody.ts │ │ │ │ ├── CAccordionButton.ts │ │ │ │ ├── CAccordionCollapse.ts │ │ │ │ ├── CAccordionHeader.ts │ │ │ │ ├── CAccordionItem.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CAccordion.spec.ts │ │ │ │ │ ├── CAccordionBody.spec.ts │ │ │ │ │ ├── CAccordionButton.spec.ts │ │ │ │ │ ├── CAccordionCollapse.spec.ts │ │ │ │ │ ├── CAccordionHeader.spec.ts │ │ │ │ │ ├── CAccordionItem.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CAccordion.spec.ts.snap │ │ │ │ │ │ ├── CAccordionBody.spec.ts.snap │ │ │ │ │ │ ├── CAccordionButton.spec.ts.snap │ │ │ │ │ │ ├── CAccordionCollapse.spec.ts.snap │ │ │ │ │ │ ├── CAccordionHeader.spec.ts.snap │ │ │ │ │ │ └── CAccordionItem.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── alert │ │ │ │ ├── CAlert.ts │ │ │ │ ├── CAlertHeading.ts │ │ │ │ ├── CAlertLink.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CAlert.spec.ts │ │ │ │ │ ├── CAlertHeading.spec.ts │ │ │ │ │ ├── CAlertLink.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CAlert.spec.ts.snap │ │ │ │ │ │ ├── CAlertHeading.spec.ts.snap │ │ │ │ │ │ └── CAlertLink.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── backdrop │ │ │ │ ├── CBackdrop.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CBackdrop.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── CBackdrop.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── badge │ │ │ │ ├── CBadge.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CBadge.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── CBadge.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── breadcrumb │ │ │ │ ├── CBreadcrumb.ts │ │ │ │ ├── CBreadcrumbItem.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CBreadcrumb.spec.ts │ │ │ │ │ ├── CBreadcrumbItem.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CBreadcrumb.spec.ts.snap │ │ │ │ │ │ └── CBreadcrumbItem.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── button-group │ │ │ │ ├── CButtonGroup.ts │ │ │ │ ├── CButtonToolbar.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CButtonGroup.spec.ts │ │ │ │ │ ├── CButtonToolbar.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CButtonGroup.spec.ts.snap │ │ │ │ │ │ └── CButtonToolbar.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── button │ │ │ │ ├── CButton.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CButton.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── CButton.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── card │ │ │ │ ├── CCard.ts │ │ │ │ ├── CCardBody.ts │ │ │ │ ├── CCardFooter.ts │ │ │ │ ├── CCardGroup.ts │ │ │ │ ├── CCardHeader.ts │ │ │ │ ├── CCardImage.ts │ │ │ │ ├── CCardImageOverlay.ts │ │ │ │ ├── CCardLink.ts │ │ │ │ ├── CCardSubtitle.ts │ │ │ │ ├── CCardText.ts │ │ │ │ ├── CCardTitle.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CCard.spec.ts │ │ │ │ │ ├── CCardBody.spec.ts │ │ │ │ │ ├── CCardFooter.spec.ts │ │ │ │ │ ├── CCardGroup.spec.ts │ │ │ │ │ ├── CCardHeader.spec.ts │ │ │ │ │ ├── CCardImage.spec.ts │ │ │ │ │ ├── CCardImageOverlay.spec.ts │ │ │ │ │ ├── CCardLink.spec.ts │ │ │ │ │ ├── CCardSubtitle.spec.ts │ │ │ │ │ ├── CCardText.spec.ts │ │ │ │ │ ├── CCardTitle.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CCard.spec.ts.snap │ │ │ │ │ │ ├── CCardBody.spec.ts.snap │ │ │ │ │ │ ├── CCardFooter.spec.ts.snap │ │ │ │ │ │ ├── CCardGroup.spec.ts.snap │ │ │ │ │ │ ├── CCardHeader.spec.ts.snap │ │ │ │ │ │ ├── CCardImage.spec.ts.snap │ │ │ │ │ │ ├── CCardImageOverlay.spec.ts.snap │ │ │ │ │ │ ├── CCardLink.spec.ts.snap │ │ │ │ │ │ ├── CCardSubtitle.spec.ts.snap │ │ │ │ │ │ ├── CCardText.spec.ts.snap │ │ │ │ │ │ └── CCardTitle.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── carousel │ │ │ │ ├── CCarousel.ts │ │ │ │ ├── CCarouselCaption.ts │ │ │ │ ├── CCarouselItem.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CCarousel.spec.ts │ │ │ │ │ ├── CCarouselCaption.spec.ts │ │ │ │ │ ├── CCarouselItem.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CCarousel.spec.ts.snap │ │ │ │ │ │ ├── CCarouselCaption.spec.ts.snap │ │ │ │ │ │ └── CCarouselItem.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── close-button │ │ │ │ ├── CCloseButton.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CCloseButton.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── CCloseButton.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── collapse │ │ │ │ ├── CCollapse.ts │ │ │ │ ├── __test__ │ │ │ │ │ ├── CCollapse.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── CCollapse.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── dropdown │ │ │ │ ├── CDropdown.ts │ │ │ │ ├── CDropdownDivider.ts │ │ │ │ ├── CDropdownHeader.ts │ │ │ │ ├── CDropdownItem.ts │ │ │ │ ├── CDropdownMenu.ts │ │ │ │ ├── CDropdownToggle.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CDropdown.spec.ts │ │ │ │ │ ├── CDropdownDivider.spec.ts │ │ │ │ │ ├── CDropdownHeader.spec.ts │ │ │ │ │ ├── CDropdownItem.spec.ts │ │ │ │ │ ├── CDropdownMenu.spec.ts │ │ │ │ │ ├── CDropdownToggle.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CDropdown.spec.ts.snap │ │ │ │ │ │ ├── CDropdownDivider.spec.ts.snap │ │ │ │ │ │ ├── CDropdownHeader.spec.ts.snap │ │ │ │ │ │ ├── CDropdownItem.spec.ts.snap │ │ │ │ │ │ ├── CDropdownMenu.spec.ts.snap │ │ │ │ │ │ └── CDropdownToggle.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── form │ │ │ │ ├── CForm.ts │ │ │ │ ├── CFormCheck.ts │ │ │ │ ├── CFormFeedback.ts │ │ │ │ ├── CFormFloating.ts │ │ │ │ ├── CFormInput.ts │ │ │ │ ├── CFormLabel.ts │ │ │ │ ├── CFormRange.ts │ │ │ │ ├── CFormSelect.ts │ │ │ │ ├── CFormSwitch.ts │ │ │ │ ├── CFormText.ts │ │ │ │ ├── CFormTextarea.ts │ │ │ │ ├── CInputGroup.ts │ │ │ │ ├── CInputGroupText.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CForm.spec.ts │ │ │ │ │ ├── CFormCheck.spec.ts │ │ │ │ │ ├── CFormFeedback.spec.ts │ │ │ │ │ ├── CFormFloating.spec.ts │ │ │ │ │ ├── CFormInput.spec.ts │ │ │ │ │ ├── CFormLabel.spec.ts │ │ │ │ │ ├── CFormRange.spec.ts │ │ │ │ │ ├── CFormSelect.spec.ts │ │ │ │ │ ├── CFormSwitch.spec.ts │ │ │ │ │ ├── CFormText.spec.ts │ │ │ │ │ ├── CFormTextarea.spec.ts │ │ │ │ │ ├── CInputGroup.spec.ts │ │ │ │ │ ├── CInputGroupText.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CForm.spec.ts.snap │ │ │ │ │ │ ├── CFormCheck.spec.ts.snap │ │ │ │ │ │ ├── CFormFeedback.spec.ts.snap │ │ │ │ │ │ ├── CFormFloating.spec.ts.snap │ │ │ │ │ │ ├── CFormInput.spec.ts.snap │ │ │ │ │ │ ├── CFormLabel.spec.ts.snap │ │ │ │ │ │ ├── CFormRange.spec.ts.snap │ │ │ │ │ │ ├── CFormSelect.spec.ts.snap │ │ │ │ │ │ ├── CFormSwitch.spec.ts.snap │ │ │ │ │ │ ├── CFormText.spec.ts.snap │ │ │ │ │ │ ├── CFormTextarea.spec.ts.snap │ │ │ │ │ │ ├── CInputGroup.spec.ts.snap │ │ │ │ │ │ └── CInputGroupText.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── grid │ │ │ │ ├── CCol.ts │ │ │ │ ├── CContainer.ts │ │ │ │ ├── CRow.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CCol.spec.ts │ │ │ │ │ ├── CContainer.spec.ts │ │ │ │ │ ├── CRow.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CCol.spec.ts.snap │ │ │ │ │ │ ├── CContainer.spec.ts.snap │ │ │ │ │ │ └── CRow.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── image │ │ │ │ ├── CImage.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CImage.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── CImage.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── link │ │ │ │ ├── CLink.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CLink.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── CLink.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── list-group │ │ │ │ ├── CListGroup.ts │ │ │ │ ├── CListGroupItem.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CListGroup.spec.ts │ │ │ │ │ ├── CListGroupItem.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CListGroup.spec.ts.snap │ │ │ │ │ │ └── CListGroupItem.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── modal │ │ │ │ ├── CModal.ts │ │ │ │ ├── CModalBody.ts │ │ │ │ ├── CModalFooter.ts │ │ │ │ ├── CModalHeader.ts │ │ │ │ ├── CModalTitle.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CModal.spec.ts │ │ │ │ │ ├── CModalBody.spec.ts │ │ │ │ │ ├── CModalFooter.spec.ts │ │ │ │ │ ├── CModalHeader.spec.ts │ │ │ │ │ ├── CModalTitle.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CModal.spec.ts.snap │ │ │ │ │ │ ├── CModalBody.spec.ts.snap │ │ │ │ │ │ ├── CModalFooter.spec.ts.snap │ │ │ │ │ │ ├── CModalHeader.spec.ts.snap │ │ │ │ │ │ └── CModalTitle.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── nav │ │ │ │ ├── CNav.ts │ │ │ │ ├── CNavGroup.ts │ │ │ │ ├── CNavGroupItems.ts │ │ │ │ ├── CNavItem.ts │ │ │ │ ├── CNavLink.ts │ │ │ │ ├── CNavTitle.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CNav.spec.ts │ │ │ │ │ ├── CNavGroup.spec.ts │ │ │ │ │ ├── CNavGroupItems.spec.ts │ │ │ │ │ ├── CNavItem.spec.ts │ │ │ │ │ ├── CNavLink.spec.ts │ │ │ │ │ ├── CNavTitle.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CNav.spec.ts.snap │ │ │ │ │ │ ├── CNavGroup.spec.ts.snap │ │ │ │ │ │ ├── CNavGroupItems.spec.ts.snap │ │ │ │ │ │ ├── CNavItem.spec.ts.snap │ │ │ │ │ │ ├── CNavLink.spec.ts.snap │ │ │ │ │ │ └── CNavTitle.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── navbar │ │ │ │ ├── CNavbar.ts │ │ │ │ ├── CNavbarBrand.ts │ │ │ │ ├── CNavbarNav.ts │ │ │ │ ├── CNavbarText.ts │ │ │ │ ├── CNavbarToggler.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CNavbar.spec.ts │ │ │ │ │ ├── CNavbarBrand.spec.ts │ │ │ │ │ ├── CNavbarNav.spec.ts │ │ │ │ │ ├── CNavbarText.spec.ts │ │ │ │ │ ├── CNavbarToggler.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CNavbar.spec.ts.snap │ │ │ │ │ │ ├── CNavbarBrand.spec.ts.snap │ │ │ │ │ │ ├── CNavbarNav.spec.ts.snap │ │ │ │ │ │ ├── CNavbarText.spec.ts.snap │ │ │ │ │ │ └── CNavbarToggler.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── offcanvas │ │ │ │ ├── COffcanvas.ts │ │ │ │ ├── COffcanvasBody.ts │ │ │ │ ├── COffcanvasHeader.ts │ │ │ │ ├── COffcanvasTitle.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── COffcanvas.spec.ts │ │ │ │ │ ├── COffcanvasBody.spec.ts │ │ │ │ │ ├── COffcanvasHeader.spec.ts │ │ │ │ │ ├── COffcanvasTitle.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── COffcanvas.spec.ts.snap │ │ │ │ │ │ ├── COffcanvasBody.spec.ts.snap │ │ │ │ │ │ ├── COffcanvasHeader.spec.ts.snap │ │ │ │ │ │ └── COffcanvasTitle.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── pagination │ │ │ │ ├── CPagination.ts │ │ │ │ ├── CPaginationItem.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CPagination.spec.ts │ │ │ │ │ ├── CPaginationItem.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CPagination.spec.ts.snap │ │ │ │ │ │ └── CPaginationItem.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── placeholder │ │ │ │ ├── CPlaceholder.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CPlaceholder.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── CPlaceholder.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── popover │ │ │ │ ├── CPopover.ts │ │ │ │ └── index.ts │ │ │ ├── progress │ │ │ │ ├── CProgress.ts │ │ │ │ ├── CProgressBar.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CProgress.spec.ts │ │ │ │ │ ├── CProgressBar.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CProgress.spec.ts.snap │ │ │ │ │ │ └── CProgressBar.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── props.ts │ │ │ ├── spinner │ │ │ │ ├── CSpinner.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CSpinner.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── CSpinner.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── table │ │ │ │ ├── CTable.ts │ │ │ │ ├── CTableBody.ts │ │ │ │ ├── CTableCaption.ts │ │ │ │ ├── CTableDataCell.ts │ │ │ │ ├── CTableFoot.ts │ │ │ │ ├── CTableHead.ts │ │ │ │ ├── CTableHeaderCell.ts │ │ │ │ ├── CTableRow.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CTable.spec.ts │ │ │ │ │ ├── CTableBody.spec.ts │ │ │ │ │ ├── CTableCaption.spec.ts │ │ │ │ │ ├── CTableDataCell.spec.ts │ │ │ │ │ ├── CTableFoot.spec.ts │ │ │ │ │ ├── CTableHead.spec.ts │ │ │ │ │ ├── CTableHeaderCell.spec.ts │ │ │ │ │ ├── CTableRow.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CTable.spec.ts.snap │ │ │ │ │ │ ├── CTableBody.spec.ts.snap │ │ │ │ │ │ ├── CTableCaption.spec.ts.snap │ │ │ │ │ │ ├── CTableDataCell.spec.ts.snap │ │ │ │ │ │ ├── CTableFoot.spec.ts.snap │ │ │ │ │ │ ├── CTableHead.spec.ts.snap │ │ │ │ │ │ ├── CTableHeaderCell.spec.ts.snap │ │ │ │ │ │ └── CTableRow.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── tabs │ │ │ │ ├── CTabContent.ts │ │ │ │ ├── CTabPane.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CTabContent.spec.ts │ │ │ │ │ ├── CTabPane.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CTabContent.spec.ts.snap │ │ │ │ │ │ └── CTabPane.spec.ts.snap │ │ │ │ └── index.ts │ │ │ ├── toast │ │ │ │ ├── CToast.ts │ │ │ │ ├── CToastBody.ts │ │ │ │ ├── CToastClose.ts │ │ │ │ ├── CToastHeader.ts │ │ │ │ ├── CToaster.ts │ │ │ │ ├── __tests__ │ │ │ │ │ ├── CToast.spec.ts │ │ │ │ │ ├── CToastBody.spec.ts │ │ │ │ │ ├── CToastClose.spec.ts │ │ │ │ │ ├── CToastHeader.spec.ts │ │ │ │ │ ├── CToaster.spec.ts │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ ├── CToast.spec.ts.snap │ │ │ │ │ │ ├── CToastBody.spec.ts.snap │ │ │ │ │ │ ├── CToastClose.spec.ts.snap │ │ │ │ │ │ ├── CToastHeader.spec.ts.snap │ │ │ │ │ │ └── CToaster.spec.ts.snap │ │ │ │ └── index.ts │ │ │ └── tooltip │ │ │ │ ├── CTooltip.ts │ │ │ │ └── index.ts │ │ ├── directives │ │ │ ├── index.ts │ │ │ ├── v-c-placeholder.ts │ │ │ ├── v-c-popover.ts │ │ │ ├── v-c-tooltip.ts │ │ │ └── v-c-visible.ts │ │ ├── index.ts │ │ └── shims-vue.d.ts │ └── tsconfig.json └── docs │ ├── .vuepress │ ├── clientAppEnhance.ts │ ├── config.ts │ ├── public │ │ ├── brand │ │ │ └── coreui-react.svg │ │ ├── favicon.ico │ │ ├── favicons │ │ │ ├── android-icon-144x144.png │ │ │ ├── android-icon-192x192.png │ │ │ ├── android-icon-36x36.png │ │ │ ├── android-icon-48x48.png │ │ │ ├── android-icon-72x72.png │ │ │ ├── android-icon-96x96.png │ │ │ ├── apple-icon-114x114.png │ │ │ ├── apple-icon-120x120.png │ │ │ ├── apple-icon-144x144.png │ │ │ ├── apple-icon-152x152.png │ │ │ ├── apple-icon-180x180.png │ │ │ ├── apple-icon-57x57.png │ │ │ ├── apple-icon-60x60.png │ │ │ ├── apple-icon-72x72.png │ │ │ ├── apple-icon-76x76.png │ │ │ ├── apple-icon-precomposed.png │ │ │ ├── apple-icon.png │ │ │ ├── browserconfig.xml │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon-96x96.png │ │ │ ├── manifest.json │ │ │ ├── ms-icon-144x144.png │ │ │ ├── ms-icon-150x150.png │ │ │ ├── ms-icon-310x310.png │ │ │ ├── ms-icon-70x70.png │ │ │ └── safari-pinned-tab.svg │ │ └── images │ │ │ ├── angular.jpg │ │ │ ├── avatars │ │ │ ├── 1.jpg │ │ │ ├── 2.jpg │ │ │ ├── 3.jpg │ │ │ ├── 4.jpg │ │ │ ├── 5.jpg │ │ │ ├── 6.jpg │ │ │ ├── 7.jpg │ │ │ ├── 8.jpg │ │ │ └── 9.jpg │ │ │ ├── brand │ │ │ └── coreui-signet.svg │ │ │ ├── react.jpg │ │ │ ├── vue.jpg │ │ │ └── vue400.jpg │ └── theme-bootstrap-vue │ │ ├── package.json │ │ └── src │ │ ├── assets │ │ ├── brand │ │ │ ├── bootstrap-vue-negative.svg │ │ │ ├── bootstrap-vue.svg │ │ │ └── coreui-vue.svg │ │ └── vue_960px.png │ │ ├── client │ │ ├── clientAppEnhance.ts │ │ ├── clientAppSetup.ts │ │ ├── components │ │ │ ├── Footer.vue │ │ │ ├── Header.vue │ │ │ ├── Home.vue │ │ │ ├── Page.vue │ │ │ ├── Sidebar.vue │ │ │ ├── SidebarNav.ts │ │ │ └── global │ │ │ │ ├── Callout.vue │ │ │ │ ├── CodeGroup.ts │ │ │ │ ├── CodeGroupItem.vue │ │ │ │ ├── OutboundLink.vue │ │ │ │ └── _Badge.vue │ │ ├── composables │ │ │ ├── index.ts │ │ │ ├── useDarkMode.ts │ │ │ ├── useNavLink.ts │ │ │ ├── useResolveRouteWithRedirect.ts │ │ │ ├── useScrollPromise.ts │ │ │ ├── useSidebarItems.ts │ │ │ └── useThemeData.ts │ │ ├── index.ts │ │ ├── layouts │ │ │ ├── 404.vue │ │ │ ├── Docs.vue │ │ │ ├── Homepage.vue │ │ │ ├── Layout.vue │ │ │ └── Redirect.vue │ │ ├── scss │ │ │ ├── _ads.scss │ │ │ ├── _algolia.scss │ │ │ ├── _anchor.scss │ │ │ ├── _brand.scss │ │ │ ├── _buttons.scss │ │ │ ├── _callouts.scss │ │ │ ├── _clipboard-js.scss │ │ │ ├── _code.scss │ │ │ ├── _colors.scss │ │ │ ├── _component-examples.scss │ │ │ ├── _content.scss │ │ │ ├── _demo.scss │ │ │ ├── _footer.scss │ │ │ ├── _layout.scss │ │ │ ├── _masthead.scss │ │ │ ├── _navbar.scss │ │ │ ├── _placeholder-img.scss │ │ │ ├── _sidebar.scss │ │ │ ├── _skippy.scss │ │ │ ├── _subnav.scss │ │ │ ├── _syntax.scss │ │ │ ├── _table-api.scss │ │ │ ├── _toc.scss │ │ │ ├── _variables.scss │ │ │ └── docs.scss │ │ ├── shim.d.ts │ │ ├── styles │ │ │ ├── _anchor.scss │ │ │ ├── _code-group.scss │ │ │ ├── _code.scss │ │ │ ├── _demo.scss │ │ │ ├── _footer.scss │ │ │ ├── _layout.scss │ │ │ ├── _sidebar.scss │ │ │ ├── _table-api.scss │ │ │ ├── _toc.scss │ │ │ ├── _variables.scss │ │ │ ├── custom-container.scss │ │ │ ├── index.scss │ │ │ ├── page.scss │ │ │ ├── transitions.scss │ │ │ ├── vars-dark.scss │ │ │ └── vars.scss │ │ └── utils │ │ │ ├── index.ts │ │ │ ├── resolveEditLink.ts │ │ │ └── resolveRepoType.ts │ │ ├── node │ │ ├── defaultTheme.ts │ │ ├── index.ts │ │ └── utils │ │ │ ├── assignDefaultLocaleOptions.ts │ │ │ ├── index.ts │ │ │ ├── resolveActiveHeaderLinksPluginOptions.ts │ │ │ ├── resolveContainerPluginOptions.ts │ │ │ ├── resolveGitPluginOptions.ts │ │ │ └── resolveMediumZoomPluginOptions.ts │ │ └── shared │ │ ├── index.ts │ │ ├── nav.ts │ │ ├── options.ts │ │ └── page.ts │ ├── README.md │ ├── api │ ├── accordion │ │ ├── CAccordion.api.md │ │ ├── CAccordionBody.api.md │ │ ├── CAccordionButton.api.md │ │ ├── CAccordionCollapse.api.md │ │ ├── CAccordionHeader.api.md │ │ └── CAccordionItem.api.md │ ├── alert │ │ ├── CAlert.api.md │ │ ├── CAlertHeading.api.md │ │ └── CAlertLink.api.md │ ├── backdrop │ │ └── CBackdrop.api.md │ ├── badge │ │ └── CBadge.api.md │ ├── breadcrumb │ │ ├── CBreadcrumb.api.md │ │ └── CBreadcrumbItem.api.md │ ├── button-group │ │ ├── CButtonGroup.api.md │ │ └── CButtonToolbar.api.md │ ├── button │ │ └── CButton.api.md │ ├── card │ │ ├── CCard.api.md │ │ ├── CCardBody.api.md │ │ ├── CCardFooter.api.md │ │ ├── CCardGroup.api.md │ │ ├── CCardHeader.api.md │ │ ├── CCardImage.api.md │ │ ├── CCardImageOverlay.api.md │ │ ├── CCardLink.api.md │ │ ├── CCardSubtitle.api.md │ │ ├── CCardText.api.md │ │ └── CCardTitle.api.md │ ├── carousel │ │ ├── CCarousel.api.md │ │ ├── CCarouselCaption.api.md │ │ └── CCarouselItem.api.md │ ├── close-button │ │ └── CCloseButton.api.md │ ├── collapse │ │ └── CCollapse.api.md │ ├── dropdown │ │ ├── CDropdown.api.md │ │ ├── CDropdownDivider.api.md │ │ ├── CDropdownHeader.api.md │ │ ├── CDropdownItem.api.md │ │ ├── CDropdownMenu.api.md │ │ └── CDropdownToggle.api.md │ ├── form │ │ ├── CForm.api.md │ │ ├── CFormCheck.api.md │ │ ├── CFormFeedback.api.md │ │ ├── CFormFloating.api.md │ │ ├── CFormInput.api.md │ │ ├── CFormLabel.api.md │ │ ├── CFormRange.api.md │ │ ├── CFormSelect.api.md │ │ ├── CFormSwitch.api.md │ │ ├── CFormText.api.md │ │ ├── CFormTextarea.api.md │ │ ├── CInputGroup.api.md │ │ └── CInputGroupText.api.md │ ├── grid │ │ ├── CCol.api.md │ │ ├── CContainer.api.md │ │ └── CRow.api.md │ ├── image │ │ └── CImage.api.md │ ├── link │ │ └── CLink.api.md │ ├── list-group │ │ ├── CListGroup.api.md │ │ └── CListGroupItem.api.md │ ├── modal │ │ ├── CModal.api.md │ │ ├── CModalBody.api.md │ │ ├── CModalFooter.api.md │ │ ├── CModalHeader.api.md │ │ └── CModalTitle.api.md │ ├── nav │ │ ├── CNav.api.md │ │ ├── CNavGroup.api.md │ │ ├── CNavGroupItems.api.md │ │ ├── CNavItem.api.md │ │ ├── CNavLink.api.md │ │ └── CNavTitle.api.md │ ├── navbar │ │ ├── CNavbar.api.md │ │ ├── CNavbarBrand.api.md │ │ ├── CNavbarNav.api.md │ │ ├── CNavbarText.api.md │ │ └── CNavbarToggler.api.md │ ├── offcanvas │ │ ├── COffcanvas.api.md │ │ ├── COffcanvasBody.api.md │ │ ├── COffcanvasHeader.api.md │ │ └── COffcanvasTitle.api.md │ ├── pagination │ │ ├── CPagination.api.md │ │ └── CPaginationItem.api.md │ ├── placeholder │ │ └── CPlaceholder.api.md │ ├── popover │ │ └── CPopover.api.md │ ├── progress │ │ ├── CProgress.api.md │ │ └── CProgressBar.api.md │ ├── spinner │ │ └── CSpinner.api.md │ ├── table │ │ ├── CTable.api.md │ │ ├── CTableBody.api.md │ │ ├── CTableCaption.api.md │ │ ├── CTableDataCell.api.md │ │ ├── CTableFoot.api.md │ │ ├── CTableHead.api.md │ │ ├── CTableHeaderCell.api.md │ │ └── CTableRow.api.md │ ├── tabs │ │ ├── CTabContent.api.md │ │ └── CTabPane.api.md │ ├── toast │ │ ├── CToast.api.md │ │ ├── CToastBody.api.md │ │ ├── CToastClose.api.md │ │ ├── CToastHeader.api.md │ │ └── CToaster.api.md │ └── tooltip │ │ └── CTooltip.api.md │ ├── build │ ├── .eslintrc.json │ ├── buildVscodeHints.js │ ├── changelog-template.hbs │ ├── docgen.config.js │ ├── templates │ │ ├── component.js │ │ ├── events.js │ │ ├── props.js │ │ └── slots.js │ └── webpack.config.js │ ├── components │ ├── accordion.md │ ├── alert.md │ ├── badge.md │ ├── breadcrumb.md │ ├── button-group.md │ ├── button.md │ ├── card.md │ ├── carousel.md │ ├── close-button.md │ ├── collapse.md │ ├── dropdown.md │ ├── image.md │ ├── link.md │ ├── list-group.md │ ├── modal.md │ ├── navbar.md │ ├── navs-tabs.md │ ├── offcanvas.md │ ├── pagination.md │ ├── placeholder.md │ ├── popover.md │ ├── progress.md │ ├── spinner.md │ ├── table.md │ ├── toast.md │ └── tooltip.md │ ├── forms │ ├── checks-radios.md │ ├── floating-labels.md │ ├── form-control.md │ ├── input-group.md │ ├── layout.md │ ├── overview.md │ ├── range.md │ ├── select.md │ └── validation.md │ ├── getting-started │ └── introduction.md │ ├── index.md │ ├── layout │ ├── breakpoints.md │ ├── columns.md │ ├── containers.md │ ├── grid.md │ └── gutters.md │ └── package.json ├── tsconfig.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = false 12 | insert_final_newline = false -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /dist/** 2 | /docs/** 3 | .eslintrc.js -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parser: '@typescript-eslint/parser', // Specifies the ESLint parser 3 | parserOptions: { 4 | ecmaVersion: 2020, // Allows for the parsing of modern ECMAScript features 5 | sourceType: 'module', // Allows for the use of imports 6 | extraFileExtensions: ['.vue'], 7 | ecmaFeatures: { 8 | jsx: true, 9 | }, 10 | }, 11 | extends: [ 12 | 'plugin:vue/vue3-essential', 13 | 'eslint:recommended', 14 | '@vue/typescript/recommended', 15 | '@vue/prettier', 16 | '@vue/prettier/@typescript-eslint', 17 | ], 18 | rules: { 19 | 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 20 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 21 | }, 22 | overrides: [ 23 | { 24 | files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'], 25 | env: { 26 | jest: true, 27 | }, 28 | }, 29 | ], 30 | } 31 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Enforce Unix newlines 2 | * text=auto eol=lf 3 | -------------------------------------------------------------------------------- /.github/.stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 360 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - security 9 | # Label to use when marking an issue as stale 10 | staleLabel: wontfix 11 | # Comment to post when marking an issue as stale. Set to `false` to disable 12 | markComment: > 13 | This issue has been automatically marked as stale because it has not had 14 | recent activity. It will be closed if no further activity occurs. Thank you 15 | for your contributions. 16 | # Comment to post when closing a stale issue. Set to `false` to disable 17 | closeComment: false -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | custom: "https://coreui.io/pro/" 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Tell us about a bug you may have identified in Bootstrap. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | Before opening: 11 | 12 | - [Search for duplicate or closed issues](https://github.com/coreui/bootstrap-vue/issues?utf8=%E2%9C%93&q=is%3Aissue) 13 | - [Validate](https://html5.validator.nu/) any HTML to avoid common problems 14 | - Read the [contributing guidelines](https://github.com/coreui/bootstrap-vue/blob/main/.github/CONTRIBUTING.md) 15 | 16 | Bug reports must include: 17 | 18 | - Operating system and version (Windows, macOS, Android, iOS) 19 | - Browser and version (Chrome, Firefox, Safari, Microsoft Edge, Opera, Android Browser) 20 | - A [reduced test case](https://css-tricks.com/reduced-test-cases/) or suggested fix using [CodePen](https://codepen.io/) or [JS Bin](https://jsbin.com/) 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for a new feature in CoreUI. 4 | title: '' 5 | labels: feature 6 | assignees: '' 7 | 8 | --- 9 | 10 | Before opening: 11 | 12 | - [Search for duplicate or closed issues](https://github.com/coreui/bootstrap-vue/issues?utf8=%E2%9C%93&q=is%3Aissue) 13 | - Read the [contributing guidelines](https://github.com/coreui/bootstrap-vue/blob/main/.github/CONTRIBUTING.md) 14 | 15 | Feature requests must include: 16 | 17 | - As much detail as possible for what we should add and why it's important to Bootstrap 18 | - Relevant links to prior art, screenshots, or live demos whenever possible 19 | -------------------------------------------------------------------------------- /.github/SUPPORT.md: -------------------------------------------------------------------------------- 1 | ### Bug reports 2 | 3 | See the [contributing guidelines](CONTRIBUTING.md) for sharing bug reports. 4 | 5 | ### How-to 6 | 7 | For general troubleshooting or help getting started: 8 | 9 | - Join [GitHub Discussions](https://github.com/coreui/bootstrap-vue/discussions). 10 | -------------------------------------------------------------------------------- /.github/workflows/daily-project-check.yml: -------------------------------------------------------------------------------- 1 | name: Daily project check 2 | 3 | on: 4 | schedule: 5 | # build runs every weekday at 6AM UTC 6 | - cron: '0 6 * * 1-5' 7 | 8 | jobs: 9 | build: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | strategy: 14 | matrix: 15 | node-version: [12.x] 16 | os: [ubuntu-latest, windows-latest, macOS-latest] 17 | 18 | steps: 19 | - uses: actions/checkout@v1 20 | - name: Use Node.js ${{ matrix.node-version }} 21 | uses: actions/setup-node@v1 22 | with: 23 | node-version: ${{ matrix.node-version }} 24 | - name: npm install, build, test and lint 25 | run: | 26 | npm i 27 | npm run build 28 | npm run jest:test 29 | npm run lint 30 | env: 31 | CI: true 32 | -------------------------------------------------------------------------------- /.github/workflows/project-check.yml: -------------------------------------------------------------------------------- 1 | name: Project check 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | branches: 9 | - master 10 | 11 | jobs: 12 | build: 13 | 14 | runs-on: ubuntu-latest 15 | 16 | strategy: 17 | matrix: 18 | node-version: [12.x] 19 | os: [ubuntu-latest, windows-latest, macOS-latest] 20 | 21 | steps: 22 | - uses: actions/checkout@v1 23 | - name: Use Node.js ${{ matrix.node-version }} 24 | uses: actions/setup-node@v1 25 | with: 26 | node-version: ${{ matrix.node-version }} 27 | - name: npm install, build, test and lint 28 | run: | 29 | npm i 30 | npm run build 31 | npm run jest:test 32 | npm run lint 33 | env: 34 | CI: true 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Folders to ignore 2 | coverage/ 3 | dist/ 4 | node_modules/ 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # OS or Editor folders 11 | ._* 12 | .cache 13 | .temp 14 | .DS_Store 15 | .idea 16 | .project 17 | .settings 18 | .tmproj 19 | *.esproj 20 | *.sublime-project 21 | *.sublime-workspace 22 | *.suo 23 | *.ntvs* 24 | *.njsproj 25 | *.sln 26 | *.sw? 27 | nbproject 28 | Thumbs.db 29 | /.vscode/ 30 | 31 | # Numerous always-ignore extensions 32 | *.diff 33 | *.err 34 | *.log 35 | *.orig 36 | *.rej 37 | *.swo 38 | *.swp 39 | *.vi 40 | *.zip 41 | *~ 42 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | build/ 2 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | semi: false, 3 | trailingComma: "all", 4 | singleQuote: true, 5 | printWidth: 100, 6 | tabWidth: 2 7 | }; -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.defaultFormatter": "esbenp.prettier-vscode" 3 | } -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2013-present, creativeLabs Lukasz Holeczek. 3 | * 4 | * This source code is licensed under the MIT license found in the 5 | * LICENSE file in the root directory of this source tree. 6 | */ 7 | 8 | "use strict"; 9 | 10 | module.exports = { 11 | moduleFileExtensions: ["tsx", "js", "ts", "json", "vue"], 12 | preset: "ts-jest", 13 | setupFiles: ["jest-canvas-mock"], 14 | testEnvironment: "jsdom", 15 | testPathIgnorePatterns: ["dist/"], 16 | transform: { 17 | ".*\\.(ts)$": "ts-jest", 18 | ".*\\.(vue)$": "vue-jest", 19 | }, 20 | }; 21 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "npmClient": "yarn", 3 | "packages": [ 4 | "packages/*" 5 | ], 6 | "useWorkspaces": true, 7 | "version": "4.1.1" 8 | } 9 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not ie <= 8 -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/CAccordionBody.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h, inject, Ref } from 'vue' 2 | import { CCollapse } from './../collapse/CCollapse' 3 | 4 | const CAccordionBody = defineComponent({ 5 | name: 'CAccordionBody', 6 | setup(_, { slots }) { 7 | const visible = inject('visible') as Ref 8 | return () => 9 | h( 10 | CCollapse, 11 | { class: 'accordion-collapse', visible: visible.value }, 12 | { 13 | default: () => h('div', { class: ['accordion-body'] }, slots.default && slots.default()), 14 | }, 15 | ) 16 | }, 17 | }) 18 | 19 | export { CAccordionBody } 20 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/CAccordionButton.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h, inject, Ref } from 'vue' 2 | 3 | const CAccordionButton = defineComponent({ 4 | name: 'CAccordionButton', 5 | setup(_, { slots }) { 6 | const toggleVisibility = inject('toggleVisibility') as () => void 7 | const visible = inject('visible') as Ref 8 | 9 | return () => 10 | h( 11 | 'button', 12 | { 13 | 'aria-expanded': !visible.value, 14 | class: ['accordion-button', { ['collapsed']: !visible.value }], 15 | onClick: () => toggleVisibility(), 16 | }, 17 | slots.default && slots.default(), 18 | ) 19 | }, 20 | }) 21 | 22 | export { CAccordionButton } 23 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/CAccordionCollapse.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | import { CCollapse } from '../collapse/CCollapse' 3 | 4 | const CAccordionCollapse = defineComponent({ 5 | name: 'CAccordionCollapse', 6 | props: { 7 | /** 8 | * Toggle the visibility of component. 9 | */ 10 | visible: { 11 | type: Boolean, 12 | required: false, 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => 17 | h( 18 | CCollapse, 19 | { 20 | class: 'accordion-collapse', 21 | visible: props.visible, 22 | }, 23 | slots.default && slots.default(), 24 | ) 25 | }, 26 | }) 27 | 28 | export { CAccordionCollapse } 29 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/CAccordionHeader.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | import { CAccordionButton } from './CAccordionButton' 3 | 4 | const CAccordionHeader = defineComponent({ 5 | name: 'CAccordionHeader', 6 | setup(_, { slots }) { 7 | return () => 8 | h( 9 | 'div', 10 | { class: ['accordion-header'] }, 11 | h( 12 | CAccordionButton, 13 | {}, 14 | { 15 | default: () => slots.default && slots.default(), 16 | }, 17 | ), 18 | ) 19 | }, 20 | }) 21 | 22 | export { CAccordionHeader } 23 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/CAccordion.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CAccordion as Component } from '../../../index' 3 | 4 | const ComponentName = 'CAccordion' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: { 8 | flush: true, 9 | }, 10 | slots: { 11 | default: 'Default slot', 12 | }, 13 | }) 14 | 15 | describe(`Loads and display ${ComponentName} component`, () => { 16 | it('has a name', () => { 17 | expect(Component.name).toMatch(ComponentName) 18 | }) 19 | it('renders correctly', () => { 20 | expect(defaultWrapper.html()).toMatchSnapshot() 21 | }) 22 | it('contain slots and classes', () => { 23 | expect(defaultWrapper.text()).toContain('Default slot') 24 | expect(defaultWrapper.classes('accordion')).toBe(true) 25 | expect(defaultWrapper.classes('accordion-flush')).toBe(true) 26 | }) 27 | }) 28 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/CAccordionBody.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CAccordionBody as Component } from '../../../index' 3 | 4 | const ComponentName = 'CAccordionBody' 5 | 6 | const defaultWrapper = mount(Component, { 7 | global: { 8 | provide: { 9 | visible: true, 10 | }, 11 | }, 12 | propsData: {}, 13 | slots: { 14 | default: 'Default slot', 15 | }, 16 | }) 17 | 18 | describe(`Loads and display ${ComponentName} component`, () => { 19 | it('has a name', () => { 20 | expect(Component.name).toMatch(ComponentName) 21 | }) 22 | it('renders correctly', () => { 23 | expect(defaultWrapper.html()).toMatchSnapshot() 24 | }) 25 | it('contain slots and classes', () => { 26 | expect(defaultWrapper.text()).toContain('Default slot') 27 | expect(defaultWrapper.find('.accordion-body').classes('accordion-body')).toBe(true) 28 | }) 29 | }) 30 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/CAccordionHeader.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CAccordionHeader as Component } from '../../../index' 3 | 4 | const ComponentName = 'CAccordionHeader' 5 | 6 | const defaultWrapper = mount(Component, { 7 | global: { 8 | provide: { 9 | visible: true, 10 | }, 11 | }, 12 | propsData: {}, 13 | slots: { 14 | default: 'Default slot', 15 | }, 16 | }) 17 | 18 | describe(`Loads and display ${ComponentName} component`, () => { 19 | it('has a name', () => { 20 | expect(Component.name).toMatch(ComponentName) 21 | }) 22 | it('renders correctly', () => { 23 | expect(defaultWrapper.html()).toMatchSnapshot() 24 | }) 25 | it('contain slots and classes', () => { 26 | expect(defaultWrapper.text()).toContain('Default slot') 27 | expect(defaultWrapper.classes('accordion-header')).toBe(true) 28 | }) 29 | }) 30 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/CAccordionItem.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CAccordionItem as Component } from '../../../index' 3 | 4 | const ComponentName = 'CAccordionItem' 5 | 6 | const defaultWrapper = mount(Component, { 7 | global: { 8 | provide: { 9 | activeItemKey: 1, 10 | }, 11 | }, 12 | propsData: {}, 13 | slots: { 14 | default: 'Default slot', 15 | }, 16 | }) 17 | 18 | describe(`Loads and display ${ComponentName} component`, () => { 19 | it('has a name', () => { 20 | expect(Component.name).toMatch(ComponentName) 21 | }) 22 | it('renders correctly', () => { 23 | expect(defaultWrapper.html()).toMatchSnapshot() 24 | }) 25 | it('contain slots and classes', () => { 26 | expect(defaultWrapper.text()).toContain('Default slot') 27 | expect(defaultWrapper.classes('accordion-item')).toBe(true) 28 | }) 29 | }) 30 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/__snapshots__/CAccordion.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CAccordion component renders correctly 1`] = `"
Default slot
"`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/__snapshots__/CAccordionBody.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CAccordionBody component renders correctly 1`] = ` 4 | " 5 |
6 |
Default slot
7 |
8 |
" 9 | `; 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/__snapshots__/CAccordionButton.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CAccordionButton component renders correctly 1`] = `""`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/__snapshots__/CAccordionCollapse.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CAccordionCollapse component renders correctly 1`] = ` 4 | " 5 |
Default slot
6 |
" 7 | `; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/__snapshots__/CAccordionHeader.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CAccordionHeader component renders correctly 1`] = `"
"`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/accordion/__tests__/__snapshots__/CAccordionItem.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CAccordionItem component renders correctly 1`] = `"
Default slot
"`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/alert/CAlertHeading.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | export const CAlertHeading = defineComponent({ 4 | name: 'CAlertHeading', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | default: 'h4', 12 | required: false, 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => 17 | h( 18 | props.component, 19 | { 20 | class: 'alert-heading', 21 | }, 22 | slots, 23 | ) 24 | }, 25 | }) 26 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/alert/CAlertLink.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | export const CAlertLink = defineComponent({ 4 | name: 'CAlertLink', 5 | setup(_, { slots }) { 6 | return () => 7 | h( 8 | 'a', 9 | { 10 | class: 'alert-link', 11 | }, 12 | slots, 13 | ) 14 | }, 15 | }) 16 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/alert/__tests__/CAlertLink.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CAlertLink as Component } from '../../../index' 3 | 4 | const ComponentName = 'CAlertLink' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('alert-link')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/alert/__tests__/__snapshots__/CAlert.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CAlert component renders correctly 1`] = ` 4 | 5 |
8 | 9 | 10 |
11 |
12 | `; 13 | 14 | exports[`Loads and display CAlert component renders correctly with slot 1`] = ` 15 | 18 |
21 | 22 | Hello World! 23 | 24 | 25 |
26 |
27 | `; 28 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/alert/__tests__/__snapshots__/CAlertHeading.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CAlertHeading component renders correctly 1`] = `"

Default slot

"`; 4 | 5 | exports[`Loads and display CAlertHeading component renders correctly 1`] = `"

Default slot

"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/alert/__tests__/__snapshots__/CAlertLink.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CAlertLink component renders correctly 1`] = `"Default slot"`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/alert/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CAlert } from './CAlert' 3 | import { CAlertHeading } from './CAlertHeading' 4 | import { CAlertLink } from './CAlertLink' 5 | 6 | const CAlertPlugin = { 7 | install: (app: App): void => { 8 | app.component(CAlert.name, CAlert) 9 | app.component(CAlertHeading.name, CAlertHeading) 10 | app.component(CAlertLink.name, CAlertLink) 11 | }, 12 | } 13 | 14 | export { CAlertPlugin, CAlert, CAlertHeading, CAlertLink } 15 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/backdrop/__tests__/CBackdrop.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CBackdrop as Component } from '../../../index' 3 | 4 | const ComponentName = 'CBackdrop' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: { 8 | visible: true, 9 | }, 10 | slots: { 11 | default: 'Default slot', 12 | }, 13 | }) 14 | 15 | describe(`Loads and display ${ComponentName} component`, () => { 16 | it('has a name', () => { 17 | expect(Component.name).toMatch(ComponentName) 18 | }) 19 | it('renders correctly', () => { 20 | expect(defaultWrapper.html()).toMatchSnapshot() 21 | }) 22 | it('contain slots and classes', () => { 23 | expect(defaultWrapper.find('div').classes('fade')).toBe(true) 24 | }) 25 | }) 26 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/backdrop/__tests__/__snapshots__/CBackdrop.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CBackdrop component renders correctly 1`] = ` 4 | " 5 |
6 |
" 7 | `; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/backdrop/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CBackdrop } from './CBackdrop' 3 | 4 | const CBackdropPlugin = { 5 | install: (app: App): void => { 6 | app.component(CBackdrop.name, CBackdrop) 7 | }, 8 | } 9 | 10 | export { CBackdropPlugin, CBackdrop } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/badge/__tests__/__snapshots__/CBadge.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CBadge component renders correctly 1`] = ` 4 | 7 | `; 8 | 9 | exports[`Loads and display CBadge component renders correctly with slot 1`] = ` 10 | 13 | Hello World! 14 | 15 | `; 16 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/badge/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CBadge } from './CBadge' 3 | 4 | const CBadgePlugin = { 5 | install: (app: App): void => { 6 | app.component(CBadge.name, CBadge) 7 | }, 8 | } 9 | 10 | export { CBadge, CBadgePlugin } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/breadcrumb/CBreadcrumb.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CBreadcrumb = defineComponent({ 4 | name: 'CBreadcrumb', 5 | setup(_, { slots, attrs }) { 6 | return () => 7 | h( 8 | 'nav', 9 | { 10 | 'aria-label': 'breadcrumb', 11 | }, 12 | h('ol', { class: ['breadcrumb', attrs.class] }, slots.default && slots.default()), 13 | ) 14 | }, 15 | }) 16 | 17 | export { CBreadcrumb } 18 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/breadcrumb/__tests__/__snapshots__/CBreadcrumb.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CBreadcrumb component renders correctly 1`] = ` 4 | "" 7 | `; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/breadcrumb/__tests__/__snapshots__/CBreadcrumbItem.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CBreadcrumbItem component renders correctly 1`] = `"
  • Default slot
  • "`; 4 | 5 | exports[`Loads and display CBreadcrumbItem component renders correctly 1`] = `"
  • Default slot
  • "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/breadcrumb/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CBreadcrumbItem } from './CBreadcrumbItem' 3 | import { CBreadcrumb } from './CBreadcrumb' 4 | 5 | const CBreadcrumbPlugin = { 6 | install: (app: App): void => { 7 | app.component(CBreadcrumb.name, CBreadcrumb) 8 | app.component(CBreadcrumbItem.name, CBreadcrumbItem) 9 | }, 10 | } 11 | 12 | export { CBreadcrumbPlugin, CBreadcrumb, CBreadcrumbItem } 13 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/button-group/CButtonToolbar.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CButtonToolbar = defineComponent({ 4 | name: 'CButtonToolbar', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'btn-toolbar' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | export { CButtonToolbar } 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/button-group/__tests__/CButtonToolbar.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CButtonToolbar as Component } from '../../../index' 3 | 4 | const ComponentName = 'CButtonToolbar' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('btn-toolbar')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/button-group/__tests__/__snapshots__/CButtonGroup.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Custom CButtonGroup component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CButtonGroup component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/button-group/__tests__/__snapshots__/CButtonToolbar.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CButtonToolbar component renders correctly 1`] = `"
    Default slot
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/button-group/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CButtonToolbar } from './CButtonToolbar' 3 | import { CButtonGroup } from './CButtonGroup' 4 | 5 | const CButtonGroupPlugin = { 6 | install: (app: App): void => { 7 | app.component(CButtonToolbar.name, CButtonToolbar) 8 | app.component(CButtonGroup.name, CButtonGroup) 9 | }, 10 | } 11 | 12 | export { CButtonGroupPlugin, CButtonToolbar, CButtonGroup } 13 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/button/__tests__/__snapshots__/CButton.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize (number two) CButton component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Customize CButton component renders correctly 1`] = `"
    Default slot
    "`; 6 | 7 | exports[`Loads and display CButton component renders correctly 1`] = `""`; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/button/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CButton } from './CButton' 3 | 4 | const CButtonPlugin = { 5 | install: (app: App): void => { 6 | app.component(CButton.name, CButton) 7 | }, 8 | } 9 | 10 | export { CButtonPlugin, CButton } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/CCardBody.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CCardBody = defineComponent({ 4 | name: 'CCardBody', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'card-body' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | export { CCardBody } 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/CCardFooter.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CCardFooter = defineComponent({ 4 | name: 'CCardFooter', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'card-footer' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { CCardFooter } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/CCardGroup.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CCardGroup = defineComponent({ 4 | name: 'CCardGroup', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'card-group' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { CCardGroup } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/CCardHeader.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CCardHeader = defineComponent({ 4 | name: 'CCardHeader', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | required: false, 12 | default: 'div', 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => h(props.component, { class: 'card-header' }, slots.default && slots.default()) 17 | }, 18 | }) 19 | 20 | export { CCardHeader } 21 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/CCardImageOverlay.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CCardImageOverlay = defineComponent({ 4 | name: 'CCardImageOverlay', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'card-img-overlay' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | export { CCardImageOverlay } 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/CCardLink.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | import { CLink } from '../link' 3 | 4 | const CCardLink = defineComponent({ 5 | name: 'CCardLink', 6 | props: { 7 | /** 8 | * The href attribute specifies the URL of the page the link goes to. 9 | */ 10 | href: { 11 | type: String, 12 | default: '#', 13 | required: false, 14 | }, 15 | }, 16 | setup(props, { slots }) { 17 | return () => 18 | h( 19 | CLink, 20 | { class: 'card-link', href: props.href }, 21 | { default: () => slots.default && slots.default() }, 22 | ) 23 | }, 24 | }) 25 | 26 | export { CCardLink } 27 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/CCardSubtitle.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CCardSubtitle = defineComponent({ 4 | name: 'CCardSubtitle', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | required: false, 12 | default: 'h6', 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => h(props.component, { class: 'card-subtitle' }, slots.default && slots.default()) 17 | }, 18 | }) 19 | export { CCardSubtitle } 20 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/CCardText.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CCardText = defineComponent({ 4 | name: 'CCardText', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | required: false, 12 | default: 'p', 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => h(props.component, { class: 'card-text' }, slots.default && slots.default()) 17 | }, 18 | }) 19 | 20 | export { CCardText } 21 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/CCardTitle.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CCardTitle = defineComponent({ 4 | name: 'CCardTitle', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | required: false, 12 | default: 'h5', 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => h(props.component, { class: 'card-title' }, slots.default && slots.default()) 17 | }, 18 | }) 19 | 20 | export { CCardTitle } 21 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/CCardBody.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CCardBody as Component } from '../../../index' 3 | 4 | const ComponentName = 'CCardBody' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('card-body')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/CCardFooter.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CCardFooter as Component } from '../../../index' 3 | 4 | const ComponentName = 'CCardFooter' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('card-footer')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/CCardGroup.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CCardGroup as Component } from '../../../index' 3 | 4 | const ComponentName = 'CCardGroup' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('card-group')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/CCardImageOverlay.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CCardImageOverlay as Component } from '../../../index' 3 | 4 | const ComponentName = 'CCardImageOverlay' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('card-img-overlay')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/CCardLink.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CCardLink as Component } from '../../../index' 3 | 4 | const ComponentName = 'CCardLink' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: { 8 | href: '/bazinga', 9 | }, 10 | slots: { 11 | default: 'Default slot', 12 | }, 13 | }) 14 | 15 | describe(`Loads and display ${ComponentName} component`, () => { 16 | it('has a name', () => { 17 | expect(Component.name).toMatch(ComponentName) 18 | }) 19 | it('renders correctly', () => { 20 | expect(defaultWrapper.html()).toMatchSnapshot() 21 | }) 22 | it('contain slots and classes', () => { 23 | expect(defaultWrapper.text()).toContain('Default slot') 24 | expect(defaultWrapper.classes('card-link')).toBe(true) 25 | expect(defaultWrapper.attributes('href')).toBe('/bazinga') 26 | }) 27 | }) 28 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCard.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CCard component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CCard component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardBody.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CCardBody component renders correctly 1`] = `"
    Default slot
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardFooter.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CCardFooter component renders correctly 1`] = `"
    Default slot
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardGroup.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CCardGroup component renders correctly 1`] = `"
    Default slot
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardHeader.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CCardHeader component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CCardHeader component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardImage.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CCardImage component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CCardImage component renders correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardImageOverlay.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CCardImageOverlay component renders correctly 1`] = `"
    Default slot
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardLink.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CCardLink component renders correctly 1`] = `"Default slot"`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardSubtitle.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CCardSubtitle component renders correctly 1`] = `"

    Default slot

    "`; 4 | 5 | exports[`Loads and display CCardSubtitle component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardText.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CCardText component renders correctly 1`] = `"

    Default slot

    "`; 4 | 5 | exports[`Loads and display CCardText component renders correctly 1`] = `"

    Default slot

    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/card/__tests__/__snapshots__/CCardTitle.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CCardTitle component renders correctly 1`] = `"

    Default slot

    "`; 4 | 5 | exports[`Loads and display CCardTitle component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/carousel/CCarouselCaption.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CCarouselCaption = defineComponent({ 4 | name: 'CCarouselCaption', 5 | setup(_, { slots }) { 6 | return () => 7 | h( 8 | 'div', 9 | { 10 | class: 'carousel-caption', 11 | }, 12 | slots.default && slots.default(), 13 | ) 14 | }, 15 | }) 16 | export { CCarouselCaption } 17 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/carousel/__tests__/CCarouselCaption.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CCarouselCaption as Component } from '../../../index' 3 | 4 | const ComponentName = 'CCarouselCaption' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('carousel-caption')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/carousel/__tests__/__snapshots__/CCarouselCaption.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CCarouselCaption component renders correctly 1`] = `"
    Default slot
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/carousel/__tests__/__snapshots__/CCarouselItem.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CCarouselItem component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CCarouselItem component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/carousel/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CCarousel } from './CCarousel' 3 | import { CCarouselCaption } from './CCarouselCaption' 4 | import { CCarouselItem } from './CCarouselItem' 5 | 6 | const CCarouselPlugin = { 7 | install: (app: App): void => { 8 | app.component(CCarousel.name, CCarousel) 9 | app.component(CCarouselCaption.name, CCarouselCaption) 10 | app.component(CCarouselItem.name, CCarouselItem) 11 | }, 12 | } 13 | 14 | export { CCarouselPlugin, CCarousel, CCarouselCaption, CCarouselItem } 15 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/close-button/__tests__/__snapshots__/CCloseButton.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CCloseButton component renders correctly 1`] = `""`; 4 | 5 | exports[`Loads and display CCloseButton component renders correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/close-button/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CCloseButton } from './CCloseButton' 3 | 4 | const CCloseButtonPlugin = { 5 | install: (app: App): void => { 6 | app.component(CCloseButton.name, CCloseButton) 7 | }, 8 | } 9 | 10 | export { CCloseButtonPlugin, CCloseButton } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/collapse/__test__/__snapshots__/CCollapse.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CCollapse component renders correctly 1`] = ` 4 | " 5 |
    Default slot
    6 |
    " 7 | `; 8 | 9 | exports[`Loads and display CCollapse component renders correctly 2`] = ` 10 | " 11 |
    Default slot
    12 |
    " 13 | `; 14 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/collapse/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CCollapse } from './CCollapse' 3 | 4 | const CCollapsePlugin = { 5 | install: (app: App): void => { 6 | app.component(CCollapse.name, CCollapse) 7 | }, 8 | } 9 | 10 | export { CCollapsePlugin, CCollapse } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/dropdown/CDropdownDivider.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CDropdownDivider = defineComponent({ 4 | name: 'CDropdownDivider', 5 | setup() { 6 | return () => 7 | h('hr', { 8 | class: 'dropdown-divider', 9 | }) 10 | }, 11 | }) 12 | 13 | export { CDropdownDivider } 14 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/dropdown/CDropdownHeader.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CDropdownHeader = defineComponent({ 4 | name: 'CDropdownHeader', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | default: 'h6', 12 | required: false, 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => 17 | h( 18 | props.component, 19 | { 20 | class: 'dropdown-header', 21 | }, 22 | slots.default && slots.default(), 23 | ) 24 | }, 25 | }) 26 | 27 | export { CDropdownHeader } 28 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/dropdown/__tests__/CDropdownDivider.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CDropdownDivider as Component } from '../../../index' 3 | 4 | const ComponentName = 'CDropdownDivider' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: {}, 9 | }) 10 | 11 | describe(`Loads and display ${ComponentName} component`, () => { 12 | it('has a name', () => { 13 | expect(Component.name).toMatch(ComponentName) 14 | }) 15 | it('renders correctly', () => { 16 | expect(defaultWrapper.html()).toMatchSnapshot() 17 | }) 18 | it('contain slots and classes', () => { 19 | expect(defaultWrapper.classes('dropdown-divider')).toBe(true) 20 | }) 21 | }) 22 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/dropdown/__tests__/__snapshots__/CDropdown.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize (variant number two) CDropdown component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Customize CDropdown component renders correctly 1`] = `"
    Default slot
    "`; 6 | 7 | exports[`Loads and display CDropdown component renders correctly 1`] = `"
    Default slot
    "`; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/dropdown/__tests__/__snapshots__/CDropdownDivider.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CDropdownDivider component renders correctly 1`] = `"
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/dropdown/__tests__/__snapshots__/CDropdownHeader.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CDropdownHeader component renders correctly 1`] = `"

    Default slot

    "`; 4 | 5 | exports[`Loads and display CDropdownHeader component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/dropdown/__tests__/__snapshots__/CDropdownItem.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CDropdownItem component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CDropdownItem component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/dropdown/__tests__/__snapshots__/CDropdownMenu.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CDropdownMenu component renders correctly 1`] = ` 4 | "
      5 |
    • Default slot
    • 6 |
    " 7 | `; 8 | 9 | exports[`Loads and display CDropdownMenu component renders correctly 1`] = `"
    Default slot
    "`; 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/dropdown/__tests__/__snapshots__/CDropdownToggle.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CDropdownToggle component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CDropdownToggle component renders correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/CForm.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CForm = defineComponent({ 4 | name: 'CForm', 5 | props: { 6 | /** 7 | * Mark a form as validated. If you set it `true`, all validation styles will be applied to the forms component. 8 | */ 9 | validated: { 10 | type: Boolean, 11 | required: false, 12 | }, 13 | }, 14 | setup(props, { slots }) { 15 | return () => 16 | h( 17 | 'form', 18 | { class: [{ ['was-validated']: props.validated }] }, 19 | slots.default && slots.default(), 20 | ) 21 | }, 22 | }) 23 | 24 | export { CForm } 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/CFormFloating.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CFormFloating = defineComponent({ 4 | name: 'CFormFloating', 5 | setup(_, { slots }) { 6 | return () => 7 | h( 8 | 'div', 9 | { 10 | class: 'form-floating', 11 | }, 12 | slots.default && slots.default(), 13 | ) 14 | }, 15 | }) 16 | 17 | export { CFormFloating } 18 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/CFormLabel.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CFormLabel = defineComponent({ 4 | name: 'CFormLabel', 5 | props: { 6 | /** 7 | * A string of all className you want to be applied to the component, and override standard className value. 8 | */ 9 | customClassName: { 10 | type: [Array, String], 11 | default: undefined, 12 | required: false, 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => 17 | h( 18 | 'label', 19 | { 20 | class: props.customClassName ? props.customClassName : 'form-label', 21 | }, 22 | slots.default && slots.default(), 23 | ) 24 | }, 25 | }) 26 | 27 | export { CFormLabel } 28 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/CFormText.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CFormText = defineComponent({ 4 | name: 'CFormText', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | required: false, 12 | default: 'div', 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => h(props.component, { class: 'form-text' }, slots.default && slots.default()) 17 | }, 18 | }) 19 | 20 | export { CFormText } 21 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/CInputGroup.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CInputGroup = defineComponent({ 4 | name: 'CInputGroup', 5 | props: { 6 | /** 7 | * Size the component small or large. 8 | * 9 | * @values 'sm', 'lg' 10 | */ 11 | size: { 12 | type: String, 13 | default: undefined, 14 | required: false, 15 | validator: (value: string) => { 16 | return ['sm', 'lg'].includes(value) 17 | }, 18 | }, 19 | }, 20 | setup(props, { slots }) { 21 | return () => 22 | h( 23 | 'div', 24 | { 25 | class: [ 26 | 'input-group', 27 | { 28 | [`input-group-${props.size}`]: props.size, 29 | }, 30 | ], 31 | }, 32 | slots.default && slots.default(), 33 | ) 34 | }, 35 | }) 36 | 37 | export { CInputGroup } 38 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/CInputGroupText.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CInputGroupText = defineComponent({ 4 | name: 'CInputGroupText', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | required: false, 12 | default: 'span', 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => h(props.component, { class: 'input-group-text' }, slots.default && slots.default()) 17 | }, 18 | }) 19 | 20 | export { CInputGroupText } 21 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/CFormFloating.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CFormFloating as Component } from '../../../index' 3 | 4 | const ComponentName = 'CFormFloating' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('form-floating')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CForm.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CForm component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CForm component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormCheck.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize with label - CFormCheck component renders correctly 1`] = `""`; 4 | 5 | exports[`Customize with label in slot - CFormCheck component renders correctly 1`] = `""`; 6 | 7 | exports[`Loads and display CFormCheck component renders correctly 1`] = `""`; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormFeedback.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize (two) CFormFeedback component renders correctly 1`] = `"

    Default slot

    "`; 4 | 5 | exports[`Customize CFormFeedback component renders correctly 1`] = `"

    Default slot

    "`; 6 | 7 | exports[`Loads and display CFormFeedback component renders correctly 1`] = `"
    Default slot
    "`; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormFloating.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CFormFloating component renders correctly 1`] = `"
    Default slot
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormInput.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize (two) CFormInput component renders correctly 1`] = `""`; 4 | 5 | exports[`Customize CFormInput component renders correctly 1`] = `""`; 6 | 7 | exports[`Loads and display CFormInput component renders correctly 1`] = `""`; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormLabel.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CFormLabel component renders correctly 1`] = `""`; 4 | 5 | exports[`Loads and display CFormLabel component renders correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormRange.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CFormRange component renders correctly 1`] = `""`; 4 | 5 | exports[`Loads and display CFormRange component renders correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormSelect.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CFormSelect component renders correctly 1`] = `""`; 4 | 5 | exports[`Loads and display CFormSelect component renders correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormSwitch.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CFormSwitch component renders correctly 1`] = `"
    "`; 4 | 5 | exports[`Loads and display CFormSwitch component renders correctly 1`] = ` 6 | "
    7 | 8 |
    " 9 | `; 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormText.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CFormText component renders correctly 1`] = `"

    Default slot

    "`; 4 | 5 | exports[`Loads and display CFormText component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CFormTextarea.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CFormTextarea component renders correctly 1`] = `""`; 4 | 5 | exports[`Loads and display CFormTextarea component renders correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CInputGroup.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CInputGroup component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CInputGroup component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/form/__tests__/__snapshots__/CInputGroupText.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CInputGroupText component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CInputGroupText component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/grid/__tests__/__snapshots__/CCol.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CCol component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CCol component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/grid/__tests__/__snapshots__/CContainer.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CContainer component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CContainer component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/grid/__tests__/__snapshots__/CRow.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CRow component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CRow component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/grid/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CCol } from './CCol' 3 | import { CContainer } from './CContainer' 4 | import { CRow } from './CRow' 5 | 6 | const CGridPlugin = { 7 | install: (app: App): void => { 8 | app.component(CCol.name, CCol) 9 | app.component(CContainer.name, CContainer) 10 | app.component(CRow.name, CRow) 11 | }, 12 | } 13 | export { CGridPlugin, CCol, CContainer, CRow } 14 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/image/__tests__/__snapshots__/CImage.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize (two) CImage component renders correctly 1`] = `""`; 4 | 5 | exports[`Customize CImage component renders correctly 1`] = `""`; 6 | 7 | exports[`Loads and display CImage component renders correctly 1`] = `""`; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/image/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CImage } from './CImage' 3 | 4 | const CImagePlugin = { 5 | install: (app: App): void => { 6 | app.component(CImage.name, CImage) 7 | }, 8 | } 9 | 10 | export { CImagePlugin, CImage } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './accordion' 2 | export * from './alert' 3 | export * from './backdrop' 4 | export * from './badge' 5 | export * from './breadcrumb' 6 | export * from './button' 7 | export * from './button-group' 8 | export * from './card' 9 | export * from './carousel' 10 | export * from './close-button' 11 | export * from './collapse' 12 | export * from './dropdown' 13 | export * from './form' 14 | export * from './grid' 15 | export * from './image' 16 | export * from './link' 17 | export * from './list-group' 18 | export * from './modal' 19 | export * from './nav' 20 | export * from './navbar' 21 | export * from './offcanvas' 22 | export * from './pagination' 23 | export * from './placeholder' 24 | export * from './progress' 25 | export * from './popover' 26 | export * from './spinner' 27 | export * from './table' 28 | export * from './tabs' 29 | export * from './toast' 30 | export * from './tooltip' 31 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/link/__tests__/__snapshots__/CLink.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CLink component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CLink component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/link/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CLink } from './CLink' 3 | 4 | const CCLinkPlugin = { 5 | install: (app: App): void => { 6 | app.component(CLink.name, CLink) 7 | }, 8 | } 9 | 10 | export { CCLinkPlugin, CLink } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/list-group/__tests__/__snapshots__/CListGroup.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CListGroup component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CListGroup component renders correctly 1`] = `"
      Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/list-group/__tests__/__snapshots__/CListGroupItem.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize (two) CListGroupItem component renders correctly 1`] = `""`; 4 | 5 | exports[`Customize CListGroupItem component renders correctly 1`] = `"
    Default slot
    "`; 6 | 7 | exports[`Loads and display CListGroupItem component renders correctly 1`] = `"
  • Default slot
  • "`; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/list-group/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CListGroup } from './CListGroup' 3 | import { CListGroupItem } from './CListGroupItem' 4 | 5 | const CListGroupPlugin = { 6 | install: (app: App): void => { 7 | app.component(CListGroup.name, CListGroup) 8 | app.component(CListGroupItem.name, CListGroupItem) 9 | }, 10 | } 11 | 12 | export { CListGroupPlugin, CListGroup, CListGroupItem } 13 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/CModalBody.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CModalBody = defineComponent({ 4 | name: 'CModalBody', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'modal-body' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { CModalBody } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/CModalFooter.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CModalFooter = defineComponent({ 4 | name: 'CModalFooter', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'modal-footer' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { CModalFooter } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/CModalHeader.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h, inject } from 'vue' 2 | 3 | import { CCloseButton } from '../close-button/CCloseButton' 4 | 5 | const CModalHeader = defineComponent({ 6 | name: 'CModalHeader', 7 | props: { 8 | /** 9 | * Add a close button component to the header. 10 | */ 11 | closeButton: { 12 | type: Boolean, 13 | required: false, 14 | default: true, 15 | }, 16 | }, 17 | setup(props, { slots }) { 18 | const handleDismiss = inject('handleDismiss') as () => void 19 | return () => 20 | h('span', { class: 'modal-header' }, [ 21 | slots.default && slots.default(), 22 | props.closeButton && h(CCloseButton, { onClick: () => handleDismiss() }, ''), 23 | ]) 24 | }, 25 | }) 26 | 27 | export { CModalHeader } 28 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/CModalTitle.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CModalTitle = defineComponent({ 4 | name: 'CModalTitle', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | default: 'h5', 12 | required: false, 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => h(props.component, { class: 'modal-title' }, slots.default && slots.default()) 17 | }, 18 | }) 19 | 20 | export { CModalTitle } 21 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/__tests__/CModalBody.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CModalBody as Component } from '../../../index' 3 | 4 | const ComponentName = 'CModalBody' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('modal-body')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/__tests__/CModalFooter.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CModalFooter as Component } from '../../../index' 3 | 4 | const ComponentName = 'CModalFooter' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('modal-footer')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/__tests__/__snapshots__/CModal.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CModal component renders correctly 1`] = ` 4 | " 5 |
    6 |
    7 |
    Default slot
    8 |
    9 |
    10 |
    11 | " 12 | `; 13 | 14 | exports[`Loads and display CModal component renders correctly 1`] = ` 15 | " 16 |
    17 |
    18 |
    Default slot
    19 |
    20 |
    21 |
    22 | 23 |
    24 |
    " 25 | `; 26 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/__tests__/__snapshots__/CModalBody.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CModalBody component renders correctly 1`] = `"
    Default slot
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/__tests__/__snapshots__/CModalFooter.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CModalFooter component renders correctly 1`] = `"
    Default slot
    "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/__tests__/__snapshots__/CModalHeader.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CModalHeader component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CModalHeader component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/__tests__/__snapshots__/CModalTitle.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CModalTitle component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CModalTitle component renders correctly 1`] = `"
    Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/modal/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CModal } from './CModal' 3 | import { CModalBody } from './CModalBody' 4 | import { CModalFooter } from './CModalFooter' 5 | import { CModalHeader } from './CModalHeader' 6 | import { CModalTitle } from './CModalTitle' 7 | 8 | const CModalPlugin = { 9 | install: (app: App): void => { 10 | app.component(CModal.name, CModal) 11 | app.component(CModalBody.name, CModalBody) 12 | app.component(CModalFooter.name, CModalFooter) 13 | app.component(CModalHeader.name, CModalHeader) 14 | app.component(CModalTitle.name, CModalTitle) 15 | }, 16 | } 17 | 18 | export { CModalPlugin, CModal, CModalBody, CModalFooter, CModalHeader, CModalTitle } 19 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/CNavGroupItems.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CNavGroupItems = defineComponent({ 4 | name: 'CNavGroupItems', 5 | setup(_, { slots }) { 6 | return () => h('ul', { class: 'nav-group-items' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { CNavGroupItems } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/CNavItem.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | import { CNavLink } from './CNavLink' 4 | 5 | const CNavItem = defineComponent({ 6 | name: 'CNavItem', 7 | props: { 8 | ...CNavLink.props, 9 | }, 10 | setup(props, { slots }) { 11 | return () => 12 | h( 13 | 'li', 14 | { 15 | class: 'nav-item', 16 | }, 17 | props.href 18 | ? h( 19 | CNavLink, 20 | { 21 | active: props.active, 22 | component: props.component, 23 | disabled: props.disabled, 24 | href: props.href, 25 | }, 26 | { 27 | default: () => slots.default && slots.default(), 28 | }, 29 | ) 30 | : slots.default && slots.default(), 31 | ) 32 | }, 33 | }) 34 | 35 | export { CNavItem } 36 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/CNavTitle.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CNavTitle = defineComponent({ 4 | name: 'CNavTitle', 5 | setup(_, { slots }) { 6 | return () => h('li', { class: 'nav-title' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { CNavTitle } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/__tests__/CNavGroupItems.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CNavGroupItems as Component } from '../../../index' 3 | 4 | const ComponentName = 'CNavGroupItems' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('nav-group-items')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/__tests__/CNavTitle.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CNavTitle as Component } from '../../../index' 3 | 4 | const ComponentName = 'CNavTitle' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('nav-title')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/__tests__/__snapshots__/CNav.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CNav component renders correctly 1`] = `"
    Default slot
    "`; 4 | 5 | exports[`Loads and display CNav component renders correctly 1`] = `"
      Default slot
    "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/__tests__/__snapshots__/CNavGroup.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CNavGroup component renders correctly 1`] = ` 4 | "
  • togglerContent 5 | 6 |
      7 |
      8 |
    • " 9 | `; 10 | 11 | exports[`Loads and display CNavGroup component renders correctly 1`] = ` 12 | "
    • 13 | 14 | 15 | 16 | 17 |
    • " 18 | `; 19 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/__tests__/__snapshots__/CNavGroupItems.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CNavGroupItems component renders correctly 1`] = `"
        Default slot
      "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/__tests__/__snapshots__/CNavItem.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CNavItem component renders correctly 1`] = ` 4 | "
    • 5 |
      Default slot
      6 |
    • " 7 | `; 8 | 9 | exports[`Loads and display CNavItem component renders correctly 1`] = `"
    • Default slot
    • "`; 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/__tests__/__snapshots__/CNavLink.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CNavLink component renders correctly 1`] = `"
      Default slot
      "`; 4 | 5 | exports[`Loads and display CNavLink component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/__tests__/__snapshots__/CNavTitle.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CNavTitle component renders correctly 1`] = `"
    • Default slot
    • "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/nav/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CNav } from './CNav' 3 | import { CNavGroup } from './CNavGroup' 4 | import { CNavGroupItems } from './CNavGroupItems' 5 | import { CNavItem } from './CNavItem' 6 | import { CNavLink } from './CNavLink' 7 | import { CNavTitle } from './CNavTitle' 8 | 9 | const CNavPlugin = { 10 | install: (app: App): void => { 11 | app.component(CNav.name, CNav) 12 | app.component(CNavGroup.name, CNavGroup) 13 | app.component(CNavGroupItems.name, CNavGroupItems) 14 | app.component(CNavItem.name, CNavItem) 15 | app.component(CNavLink.name, CNavLink) 16 | app.component(CNavTitle.name, CNavTitle) 17 | }, 18 | } 19 | 20 | export { CNavPlugin, CNav, CNavGroup, CNavGroupItems, CNavItem, CNavLink, CNavTitle } 21 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/CNavbarNav.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CNavbarNav = defineComponent({ 4 | name: 'CNavbarNav', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | required: false, 12 | default: 'ul', 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => 17 | h( 18 | props.component, 19 | { 20 | class: 'navbar-nav', 21 | role: 'navigation', 22 | }, 23 | slots.default && slots.default(), 24 | ) 25 | }, 26 | }) 27 | 28 | export { CNavbarNav } 29 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/CNavbarText.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CNavbarText = defineComponent({ 4 | name: 'CNavbarText', 5 | setup(_, { slots }) { 6 | return () => h('span', { class: 'navbar-text' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { CNavbarText } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/CNavbarToggler.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CNavbarToggler = defineComponent({ 4 | name: 'CNavbarToggler', 5 | setup(_, { slots }) { 6 | return () => 7 | h( 8 | 'button', 9 | { 10 | class: 'navbar-toggler', 11 | }, 12 | slots.default ? slots.default() : h('span', { class: ['navbar-toggler-icon'] }), 13 | ) 14 | }, 15 | }) 16 | 17 | export { CNavbarToggler } 18 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/__tests__/CNavbarText.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CNavbarText as Component } from '../../../index' 3 | 4 | const ComponentName = 'CNavbarText' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('navbar-text')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/__tests__/__snapshots__/CNavbar.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CNavbar component renders correctly 1`] = ` 4 | "
      5 |
      Default slot
      6 |
      " 7 | `; 8 | 9 | exports[`Loads and display CNavbar component renders correctly 1`] = `""`; 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/__tests__/__snapshots__/CNavbarBrand.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize (two) CNavbarBrand component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Customize CNavbarBrand component renders correctly 1`] = `"
      Default slot
      "`; 6 | 7 | exports[`Loads and display CNavbarBrand component renders correctly 1`] = `"Default slot"`; 8 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/__tests__/__snapshots__/CNavbarNav.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CNavbarNav component renders correctly 1`] = `"
      Default slot
      "`; 4 | 5 | exports[`Loads and display CNavbarNav component renders correctly 1`] = `"
        Default slot
      "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/__tests__/__snapshots__/CNavbarText.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CNavbarText component renders correctly 1`] = `"Default slot"`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/__tests__/__snapshots__/CNavbarToggler.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CNavbarToggler component renders correctly 1`] = `""`; 4 | 5 | exports[`Loads and display CNavbarToggler component renders correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/navbar/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CNavbar } from './CNavbar' 3 | import { CNavbarBrand } from './CNavbarBrand' 4 | import { CNavbarNav } from './CNavbarNav' 5 | import { CNavbarText } from './CNavbarText' 6 | import { CNavbarToggler } from './CNavbarToggler' 7 | 8 | const CNavbarPlugin = { 9 | install: (app: App): void => { 10 | app.component(CNavbar.name, CNavbar) 11 | app.component(CNavbarBrand.name, CNavbarBrand) 12 | app.component(CNavbarNav.name, CNavbarNav) 13 | app.component(CNavbarText.name, CNavbarText) 14 | app.component(CNavbarToggler.name, CNavbarToggler) 15 | }, 16 | } 17 | 18 | export { CNavbarPlugin, CNavbar, CNavbarBrand, CNavbarNav, CNavbarText, CNavbarToggler } 19 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/COffcanvasBody.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const COffcanvasBody = defineComponent({ 4 | name: 'COffcanvasBody', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'offcanvas-body' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { COffcanvasBody } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/COffcanvasHeader.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const COffcanvasHeader = defineComponent({ 4 | name: 'COffcanvasHeader', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'offcanvas-header' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { COffcanvasHeader } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/COffcanvasTitle.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const COffcanvasTitle = defineComponent({ 4 | name: 'COffcanvasTitle', 5 | props: { 6 | /** 7 | * Component used for the root node. Either a string to use a HTML element or a component. 8 | */ 9 | component: { 10 | type: String, 11 | required: false, 12 | default: 'h5', 13 | }, 14 | }, 15 | setup(props, { slots }) { 16 | return () => h(props.component, { class: 'offcanvas-title' }, slots.default && slots.default()) 17 | }, 18 | }) 19 | 20 | export { COffcanvasTitle } 21 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/__tests__/COffcanvasBody.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { COffcanvasBody as Component } from '../../../index' 3 | 4 | const ComponentName = 'COffcanvasBody' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('offcanvas-body')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/__tests__/COffcanvasHeader.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { COffcanvasHeader as Component } from '../../../index' 3 | 4 | const ComponentName = 'COffcanvasHeader' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('offcanvas-header')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/__tests__/__snapshots__/COffcanvas.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize COffcanvas component renders correctly 1`] = ` 4 | " 5 |
      Default slot
      6 |
      7 | 8 |
      9 |
      " 10 | `; 11 | 12 | exports[`Loads and display COffcanvas component renders correctly 1`] = ` 13 | " 14 |
      Default slot
      15 |
      16 | 17 |
      18 |
      " 19 | `; 20 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/__tests__/__snapshots__/COffcanvasBody.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display COffcanvasBody component renders correctly 1`] = `"
      Default slot
      "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/__tests__/__snapshots__/COffcanvasHeader.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display COffcanvasHeader component renders correctly 1`] = `"
      Default slot
      "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/__tests__/__snapshots__/COffcanvasTitle.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize COffcanvasTitle component renders correctly 1`] = `"
      Default slot
      "`; 4 | 5 | exports[`Loads and display COffcanvasTitle component renders correctly 1`] = `"
      Default slot
      "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/offcanvas/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { COffcanvas } from './COffcanvas' 3 | import { COffcanvasBody } from './COffcanvasBody' 4 | import { COffcanvasHeader } from './COffcanvasHeader' 5 | import { COffcanvasTitle } from './COffcanvasTitle' 6 | 7 | const COffcanvasPlugin = { 8 | install: (app: App): void => { 9 | app.component(COffcanvas.name, COffcanvas) 10 | app.component(COffcanvasBody.name, COffcanvasBody) 11 | app.component(COffcanvasHeader.name, COffcanvasHeader) 12 | app.component(COffcanvasTitle.name, COffcanvasTitle) 13 | }, 14 | } 15 | 16 | export { COffcanvasPlugin, COffcanvas, COffcanvasBody, COffcanvasHeader, COffcanvasTitle } 17 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/pagination/__tests__/__snapshots__/CPagination.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CPagination component renders correctly 1`] = ` 4 | "" 7 | `; 8 | 9 | exports[`Loads and display CPagination component renders correctly 1`] = ` 10 | "" 13 | `; 14 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/pagination/__tests__/__snapshots__/CPaginationItem.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CPaginationItem component renders correctly 1`] = `"
    • Default slot
    • "`; 4 | 5 | exports[`Loads and display CPaginationItem component renders correctly 1`] = `"
    • Default slot
    • "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/pagination/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CPagination } from './CPagination' 3 | import { CPaginationItem } from './CPaginationItem' 4 | 5 | const CPaginationPlugin = { 6 | install: (app: App): void => { 7 | app.component(CPagination.name, CPagination) 8 | app.component(CPaginationItem.name, CPaginationItem) 9 | }, 10 | } 11 | 12 | export { CPaginationPlugin, CPagination, CPaginationItem } 13 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/placeholder/__tests__/__snapshots__/CPlaceholder.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CPlaceholder component renders correctly 1`] = ` 4 | 7 | `; 8 | 9 | exports[`Loads and display CPlaceholder component renders correctly with slot 1`] = ` 10 | 13 | Hello World! 14 | 15 | `; 16 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/placeholder/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CPlaceholder } from './CPlaceholder' 3 | 4 | const CPlaceholderPlugin = { 5 | install: (app: App): void => { 6 | app.component(CPlaceholder.name, CPlaceholder) 7 | }, 8 | } 9 | 10 | export { CPlaceholderPlugin, CPlaceholder } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/popover/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CPopover } from './CPopover' 3 | 4 | const CPopoverPlugin = { 5 | install: (app: App): void => { 6 | app.component(CPopover.name, CPopover) 7 | }, 8 | } 9 | 10 | export { CPopoverPlugin, CPopover } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/progress/__tests__/__snapshots__/CProgress.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CProgress component renders correctly 1`] = `"
      Default slot
      "`; 4 | 5 | exports[`Loads and display CProgress component renders correctly 1`] = `"
      Default slot
      "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/progress/__tests__/__snapshots__/CProgressBar.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CProgressBar component renders correctly 1`] = `"
      Default slot
      "`; 4 | 5 | exports[`Loads and display CProgressBar component renders correctly 1`] = `"
      Default slot
      "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/progress/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CProgress } from './CProgress' 3 | import { CProgressBar } from './CProgressBar' 4 | 5 | const CProgressPlugin = { 6 | install: (app: App): void => { 7 | app.component(CProgress.name, CProgress) 8 | app.component(CProgressBar.name, CProgressBar) 9 | }, 10 | } 11 | 12 | export { CProgressPlugin, CProgress, CProgressBar } 13 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/spinner/__tests__/__snapshots__/CSpinner.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CSpinner component renders correctly 1`] = `"

      visuallyHiddenLabel

      "`; 4 | 5 | exports[`Loads and display CSpinner component renders correctly 1`] = `"
      Loading...
      "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/spinner/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CSpinner } from './CSpinner' 3 | 4 | const CSpinnerPlugin = { 5 | install: (app: App): void => { 6 | app.component(CSpinner.name, CSpinner) 7 | }, 8 | } 9 | 10 | export { CSpinnerPlugin, CSpinner } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/CTableBody.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | import { Color } from '../props' 4 | 5 | const CTableBody = defineComponent({ 6 | name: 'CTableBody', 7 | props: { 8 | /** 9 | * * Sets the color context of the component to one of Bootstrap Vue’s themed colors. 10 | * 11 | * @values 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light', string 12 | */ 13 | color: Color, 14 | }, 15 | setup(props, { slots }) { 16 | return () => 17 | h( 18 | 'tbody', 19 | { 20 | class: [ 21 | { 22 | [`table-${props.color}`]: props.color, 23 | }, 24 | ], 25 | }, 26 | slots.default && slots.default(), 27 | ) 28 | }, 29 | }) 30 | 31 | export { CTableBody } 32 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/CTableCaption.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CTableCaption = defineComponent({ 4 | name: 'CTableCaption', 5 | props: {}, 6 | setup(_, { slots }) { 7 | return () => h('caption', {}, slots.default && slots.default()) 8 | }, 9 | }) 10 | 11 | export { CTableCaption } 12 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/CTableFoot.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | import { Color } from '../props' 4 | 5 | const CTableFoot = defineComponent({ 6 | name: 'CTableFoot', 7 | props: { 8 | /** 9 | * * Sets the color context of the component to one of Bootstrap Vue’s themed colors. 10 | * 11 | * @values 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light', string 12 | */ 13 | color: Color, 14 | }, 15 | setup(props, { slots }) { 16 | return () => 17 | h( 18 | 'tfoot', 19 | { 20 | class: [ 21 | { 22 | [`table-${props.color}`]: props.color, 23 | }, 24 | ], 25 | }, 26 | slots.default && slots.default(), 27 | ) 28 | }, 29 | }) 30 | 31 | export { CTableFoot } 32 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/CTableHead.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | import { Color } from '../props' 4 | 5 | const CTableHead = defineComponent({ 6 | name: 'CTableHead', 7 | props: { 8 | /** 9 | * * Sets the color context of the component to one of Bootstrap Vue’s themed colors. 10 | * 11 | * @values 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light', string 12 | */ 13 | color: Color, 14 | }, 15 | setup(props, { slots }) { 16 | return () => 17 | h( 18 | 'thead', 19 | { 20 | class: [ 21 | { 22 | [`table-${props.color}`]: props.color, 23 | }, 24 | ], 25 | }, 26 | slots.default && slots.default(), 27 | ) 28 | }, 29 | }) 30 | 31 | export { CTableHead } 32 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/CTableHeaderCell.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | import { Color } from '../props' 4 | 5 | const CTableHeaderCell = defineComponent({ 6 | name: 'CTableHeaderCell', 7 | props: { 8 | /** 9 | * * Sets the color context of the component to one of Bootstrap Vue’s themed colors. 10 | * 11 | * @values 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light', string 12 | */ 13 | color: Color, 14 | }, 15 | setup(props, { slots }) { 16 | return () => 17 | h( 18 | 'th', 19 | { 20 | class: [ 21 | { 22 | [`table-${props.color}`]: props.color, 23 | }, 24 | ], 25 | }, 26 | slots.default && slots.default(), 27 | ) 28 | }, 29 | }) 30 | 31 | export { CTableHeaderCell } 32 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/__tests__/CTableCaption.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CTableCaption as Component } from '../../../index' 3 | 4 | const ComponentName = 'CTableCaption' 5 | 6 | const defaultWrapper = mount(Component, { 7 | slots: { 8 | default: 'Default slot', 9 | }, 10 | }) 11 | 12 | describe(`Loads and display ${ComponentName} component`, () => { 13 | it('has a name', () => { 14 | expect(Component.name).toMatch(ComponentName) 15 | }) 16 | it('renders correctly', () => { 17 | expect(defaultWrapper.html()).toMatchSnapshot() 18 | }) 19 | it('contain slots and classes', () => { 20 | expect(defaultWrapper.text()).toContain('Default slot') 21 | }) 22 | }) 23 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/__tests__/__snapshots__/CTable.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CTable component renders correctly 1`] = ` 4 | "
      5 | Default slot
      6 |
      " 7 | `; 8 | 9 | exports[`Loads and display CTable component renders correctly 1`] = `"Default slot
      "`; 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/__tests__/__snapshots__/CTableBody.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CTableBody component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CTableBody component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/__tests__/__snapshots__/CTableCaption.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CTableCaption component renders correctly 1`] = `"Default slot"`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/__tests__/__snapshots__/CTableDataCell.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CTableDataCell component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CTableDataCell component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/__tests__/__snapshots__/CTableFoot.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CTableFoot component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CTableFoot component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/__tests__/__snapshots__/CTableHead.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CTableHead component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CTableHead component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/__tests__/__snapshots__/CTableHeaderCell.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CTableHeaderCell component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CTableHeaderCell component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/table/__tests__/__snapshots__/CTableRow.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CTableRow component renders correctly 1`] = `"Default slot"`; 4 | 5 | exports[`Loads and display CTableRow component renders correctly 1`] = `"Default slot"`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/tabs/CTabContent.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CTabContent = defineComponent({ 4 | name: 'CTabContent', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'tab-content' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { CTabContent } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/tabs/__tests__/CTabContent.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CTabContent as Component } from '../../../index' 3 | 4 | const ComponentName = 'CTabContent' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('tab-content')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/tabs/__tests__/__snapshots__/CTabContent.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CTabContent component renders correctly 1`] = `"
      Default slot
      "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/tabs/__tests__/__snapshots__/CTabPane.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CTabPane component renders correctly 1`] = ` 4 | " 5 |
      Default slot
      6 |
      " 7 | `; 8 | 9 | exports[`Loads and display CTabPane component renders correctly 1`] = ` 10 | " 11 |
      Default slot
      12 |
      " 13 | `; 14 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/tabs/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CTabContent } from './CTabContent' 3 | import { CTabPane } from './CTabPane' 4 | 5 | const CTabsPlugin = { 6 | install: (app: App): void => { 7 | app.component(CTabContent.name, CTabContent) 8 | app.component(CTabPane.name, CTabPane) 9 | }, 10 | } 11 | 12 | export { CTabsPlugin, CTabContent, CTabPane } 13 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/toast/CToastBody.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | 3 | const CToastBody = defineComponent({ 4 | name: 'CToastBody', 5 | setup(_, { slots }) { 6 | return () => h('div', { class: 'toast-body' }, slots.default && slots.default()) 7 | }, 8 | }) 9 | 10 | export { CToastBody } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/toast/CToastHeader.ts: -------------------------------------------------------------------------------- 1 | import { defineComponent, h } from 'vue' 2 | import { CToastClose } from './CToastClose' 3 | 4 | const CToastHeader = defineComponent({ 5 | name: 'CToastHeader', 6 | props: { 7 | /** 8 | * Automatically add a close button to the header. 9 | */ 10 | closeButton: { 11 | type: Boolean, 12 | require: false, 13 | }, 14 | }, 15 | emits: [ 16 | /** 17 | * Event called after clicking the close button. 18 | */ 19 | 'close', 20 | ], 21 | setup(props, { slots, emit }) { 22 | return () => 23 | h('div', { class: 'toast-header' }, [ 24 | slots.default && slots.default(), 25 | props.closeButton && 26 | h(CToastClose, { 27 | onClose: () => emit('close'), 28 | }), 29 | ]) 30 | }, 31 | }) 32 | 33 | export { CToastHeader } 34 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/toast/__tests__/CToastBody.spec.ts: -------------------------------------------------------------------------------- 1 | import { mount } from '@vue/test-utils' 2 | import { CToastBody as Component } from '../../../index' 3 | 4 | const ComponentName = 'CToastBody' 5 | 6 | const defaultWrapper = mount(Component, { 7 | propsData: {}, 8 | slots: { 9 | default: 'Default slot', 10 | }, 11 | }) 12 | 13 | describe(`Loads and display ${ComponentName} component`, () => { 14 | it('has a name', () => { 15 | expect(Component.name).toMatch(ComponentName) 16 | }) 17 | it('renders correctly', () => { 18 | expect(defaultWrapper.html()).toMatchSnapshot() 19 | }) 20 | it('contain slots and classes', () => { 21 | expect(defaultWrapper.text()).toContain('Default slot') 22 | expect(defaultWrapper.classes('toast-body')).toBe(true) 23 | }) 24 | }) 25 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/toast/__tests__/__snapshots__/CToast.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CToast component renders correctly 1`] = ` 4 | " 5 |
      Default slot
      6 |
      " 7 | `; 8 | 9 | exports[`Loads and display CToast component renders correctly 1`] = ` 10 | " 11 |
      Default slot
      12 |
      " 13 | `; 14 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/toast/__tests__/__snapshots__/CToastBody.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Loads and display CToastBody component renders correctly 1`] = `"
      Default slot
      "`; 4 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/toast/__tests__/__snapshots__/CToastClose.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CToastClose component renders correctly 1`] = `""`; 4 | 5 | exports[`Loads and display CToastClose component renders correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/toast/__tests__/__snapshots__/CToastHeader.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CToastHeader component renders correctly 1`] = `"
      Default slot
      "`; 4 | 5 | exports[`Loads and display CToastHeader component renders correctly 1`] = ` 6 | "
      Default slot 7 | 8 |
      " 9 | `; 10 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/toast/__tests__/__snapshots__/CToaster.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Customize CToaster component renders correctly 1`] = `"
      Default slot
      "`; 4 | 5 | exports[`Loads and display CToaster component renders correctly 1`] = `"
      Default slot
      "`; 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/toast/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CToast } from './CToast' 3 | import { CToastBody } from './CToastBody' 4 | import { CToastClose } from './CToastClose' 5 | import { CToaster } from './CToaster' 6 | import { CToastHeader } from './CToastHeader' 7 | 8 | const CToastPlugin = { 9 | install: (app: App): void => { 10 | app.component(CToast.name, CToast) 11 | app.component(CToastBody.name, CToastBody) 12 | app.component(CToastClose.name, CToastClose) 13 | app.component(CToaster.name, CToaster) 14 | app.component(CToastHeader.name, CToastHeader) 15 | }, 16 | } 17 | 18 | export { CToastPlugin, CToast, CToastBody, CToastClose, CToaster, CToastHeader } 19 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/components/tooltip/index.ts: -------------------------------------------------------------------------------- 1 | import { App } from 'vue' 2 | import { CTooltip } from './CTooltip' 3 | 4 | const CTooltipPlugin = { 5 | install: (app: App): void => { 6 | app.component(CTooltip.name, CTooltip) 7 | }, 8 | } 9 | 10 | export { CTooltipPlugin, CTooltip } 11 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/directives/index.ts: -------------------------------------------------------------------------------- 1 | import vcplaceholder from './v-c-placeholder' 2 | import vcpopover from './v-c-popover' 3 | import vctooltip from './v-c-tooltip' 4 | 5 | export { vcplaceholder, vcpopover, vctooltip, } 6 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/directives/v-c-placeholder.ts: -------------------------------------------------------------------------------- 1 | import { DirectiveBinding } from 'vue' 2 | 3 | const BREAKPOINTS = [ 4 | 'xxl' as const, 5 | 'xl' as const, 6 | 'lg' as const, 7 | 'md' as const, 8 | 'sm' as const, 9 | 'xs' as const, 10 | ] 11 | 12 | export default { 13 | name: 'c-placeholder', 14 | mounted(el: HTMLElement, binding: DirectiveBinding): void { 15 | const value = binding.value 16 | el.classList.add(value.animation ? `placeholder-${value.animation}` : 'placeholder') 17 | 18 | BREAKPOINTS.forEach((bp) => { 19 | const breakpoint = value[bp] 20 | 21 | const infix = bp === 'xs' ? '' : `-${bp}` 22 | 23 | if (typeof breakpoint === 'number') { 24 | el.classList.add(`col${infix}-${breakpoint}`) 25 | } 26 | 27 | if (typeof breakpoint === 'boolean') { 28 | el.classList.add(`col${infix}`) 29 | } 30 | }) 31 | }, 32 | } 33 | -------------------------------------------------------------------------------- /packages/bootstrap-vue/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | /* 2 | declare module '*.vue' { 3 | import type { DefineComponent } from 'vue' 4 | const component: DefineComponent<{}, {}, any> 5 | export default component 6 | } 7 | */ 8 | declare module '*.vue' { 9 | import { DefineComponent } from 'vue'; 10 | const component: DefineComponent<{}, {}, any>; 11 | export default component; 12 | } -------------------------------------------------------------------------------- /packages/bootstrap-vue/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig", 3 | "compilerOptions": { 4 | "declarationDir": "." 5 | }, 6 | "include": ["src/**/*"] 7 | } -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/android-icon-144x144.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/android-icon-192x192.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/android-icon-36x36.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/android-icon-48x48.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/android-icon-72x72.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/android-icon-96x96.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-114x114.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-120x120.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-144x144.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-152x152.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-180x180.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-57x57.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-60x60.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-72x72.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-76x76.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon-precomposed.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/apple-icon.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/favicon-96x96.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CoreUI for Vue.js", 3 | "icons": [ 4 | { 5 | "src": "\/android-icon-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image\/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "\/android-icon-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image\/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "\/android-icon-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image\/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "\/android-icon-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image\/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "\/android-icon-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image\/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "\/android-icon-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image\/png", 38 | "density": "4.0" 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/ms-icon-144x144.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/ms-icon-150x150.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/ms-icon-310x310.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/favicons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/favicons/ms-icon-70x70.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/angular.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/angular.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/avatars/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/avatars/1.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/avatars/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/avatars/2.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/avatars/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/avatars/3.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/avatars/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/avatars/4.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/avatars/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/avatars/5.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/avatars/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/avatars/6.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/avatars/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/avatars/7.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/avatars/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/avatars/8.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/avatars/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/avatars/9.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/react.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/react.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/vue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/vue.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/public/images/vue400.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/public/images/vue400.jpg -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/assets/vue_960px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/theme-bootstrap-vue/src/assets/vue_960px.png -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/clientAppSetup.ts: -------------------------------------------------------------------------------- 1 | import { computed, provide } from 'vue' 2 | import { defineClientAppSetup, usePageFrontmatter } from '@vuepress/client' 3 | import { 4 | resolveSidebarItems, 5 | sidebarItemsSymbol, 6 | useThemeLocaleData, 7 | } from './composables' 8 | import type { DefaultThemeNormalPageFrontmatter } from '../shared' 9 | 10 | export default defineClientAppSetup(() => { 11 | // we need to access sidebar items in multiple components 12 | // so we make it global computed 13 | const themeLocale = useThemeLocaleData() 14 | const frontmatter = usePageFrontmatter() 15 | const sidebarItems = computed(() => 16 | resolveSidebarItems(frontmatter.value, themeLocale.value) 17 | ) 18 | provide(sidebarItemsSymbol, sidebarItems) 19 | }) 20 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/components/global/Callout.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 24 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/components/global/CodeGroupItem.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 30 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/components/global/OutboundLink.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 31 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/components/global/_Badge.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 38 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/composables/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useDarkMode' 2 | export * from './useNavLink' 3 | export * from './useResolveRouteWithRedirect' 4 | export * from './useScrollPromise' 5 | export * from './useSidebarItems' 6 | export * from './useThemeData' 7 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/composables/useNavLink.ts: -------------------------------------------------------------------------------- 1 | import type { NavLink } from '../../shared' 2 | import { useResolveRouteWithRedirect } from './useResolveRouteWithRedirect' 3 | 4 | /** 5 | * Resolve NavLink props from string 6 | * 7 | * @example 8 | * - Input: '/README.md' 9 | * - Output: { text: 'Home', link: '/' } 10 | */ 11 | export const useNavLink = (item: string): NavLink => { 12 | const resolved = useResolveRouteWithRedirect(item) 13 | return { 14 | text: resolved.meta.title || item, 15 | link: resolved.name === '404' ? item : resolved.fullPath, 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/composables/useScrollPromise.ts: -------------------------------------------------------------------------------- 1 | export interface ScrollPromise { 2 | wait(): Promise | null 3 | pending: () => void 4 | resolve: () => void 5 | } 6 | 7 | let promise: Promise | null = null 8 | let promiseResolve: (() => void) | null = null 9 | 10 | const scrollPromise: ScrollPromise = { 11 | wait: () => promise, 12 | pending: () => { 13 | promise = new Promise((resolve) => (promiseResolve = resolve)) 14 | }, 15 | resolve: () => { 16 | promiseResolve?.() 17 | promise = null 18 | promiseResolve = null 19 | }, 20 | } 21 | 22 | export const useScrollPromise = (): ScrollPromise => scrollPromise 23 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/composables/useThemeData.ts: -------------------------------------------------------------------------------- 1 | import { 2 | useThemeData as _useThemeData, 3 | useThemeLocaleData as _useThemeLocaleData, 4 | } from '@vuepress/plugin-theme-data/lib/client' 5 | import type { 6 | ThemeDataRef, 7 | ThemeLocaleDataRef, 8 | } from '@vuepress/plugin-theme-data/lib/client' 9 | import type { DefaultThemeData } from '../../shared' 10 | 11 | export const useThemeData = (): ThemeDataRef => 12 | _useThemeData() 13 | export const useThemeLocaleData = (): ThemeLocaleDataRef => 14 | _useThemeLocaleData() 15 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/layouts/Redirect.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreui/bootstrap-vue/b61a6628258894cf5f3fd3b75701b801407846ad/packages/docs/.vuepress/theme-bootstrap-vue/src/client/layouts/Redirect.vue -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_ads.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important, selector-max-id 2 | 3 | // 4 | // Carbon ads 5 | // 6 | 7 | #carbonads { 8 | position: static; 9 | display: block; 10 | max-width: 400px; 11 | padding: 15px 15px 15px 160px; 12 | margin: 2rem 0; 13 | overflow: hidden; 14 | @include font-size(.8125rem); 15 | line-height: 1.4; 16 | text-align: left; 17 | background-color: rgba(0, 0, 0, .05); 18 | 19 | a { 20 | color: $gray-800; 21 | text-decoration: none; 22 | } 23 | 24 | @include media-breakpoint-up(sm) { 25 | max-width: 330px; 26 | @include border-radius(4px); 27 | } 28 | } 29 | 30 | .carbon-img { 31 | float: left; 32 | margin-left: -145px; 33 | } 34 | 35 | .carbon-poweredby { 36 | display: block; 37 | margin-top: .75rem; 38 | color: $gray-700 !important; 39 | } 40 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_anchor.scss: -------------------------------------------------------------------------------- 1 | .anchor-link { 2 | font-weight: 400; 3 | color: rgba($link-color, .5); 4 | padding-left: 0.375em; 5 | text-decoration: none; 6 | opacity: 0; 7 | @include transition(color .15s ease-in-out); 8 | 9 | &:focus, 10 | &:hover { 11 | color: $link-color; 12 | text-decoration: none; 13 | } 14 | } 15 | 16 | h2, h3, h4, h5, h6 { 17 | &:hover { 18 | .anchor-link { 19 | opacity: 1; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_callouts.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Callouts 3 | // 4 | 5 | .brd-callout { 6 | padding: 1.25rem; 7 | margin-top: 1.25rem; 8 | margin-bottom: 1.25rem; 9 | border: 1px solid $gray-200; 10 | border-left-width: .25rem; 11 | @include border-radius(); 12 | 13 | h4 { 14 | margin-bottom: .25rem; 15 | } 16 | 17 | p:last-child { 18 | margin-bottom: 0; 19 | } 20 | 21 | code { 22 | @include border-radius(); 23 | } 24 | 25 | + .brd-callout { 26 | margin-top: -.25rem; 27 | } 28 | } 29 | 30 | // Variations 31 | .brd-callout-info { 32 | border-left-color: $brd-info; 33 | } 34 | 35 | .brd-callout-warning { 36 | border-left-color: $brd-warning; 37 | } 38 | 39 | .brd-callout-danger { 40 | border-left-color: $brd-danger; 41 | } 42 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_clipboard-js.scss: -------------------------------------------------------------------------------- 1 | // clipboard.js 2 | // 3 | // JS-based `Copy` buttons for code snippets. 4 | 5 | .brd-clipboard { 6 | position: relative; 7 | display: none; 8 | float: right; 9 | 10 | + .highlight { 11 | margin-top: 0; 12 | } 13 | 14 | @include media-breakpoint-up(md) { 15 | display: block; 16 | } 17 | } 18 | 19 | .btn-clipboard { 20 | position: absolute; 21 | top: .65rem; 22 | right: .65rem; 23 | z-index: 10; 24 | display: block; 25 | padding: .25rem .5rem; 26 | @include font-size(.65em); 27 | color: $primary; 28 | background-color: $white; 29 | border: 1px solid; 30 | @include border-radius(); 31 | 32 | &:hover, 33 | &:focus { 34 | color: $white; 35 | background-color: $primary; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_footer.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Footer 3 | // 4 | 5 | .brd-footer { 6 | a { 7 | color: $gray-700; 8 | text-decoration: none; 9 | 10 | &:hover, 11 | &:focus { 12 | color: $link-color; 13 | text-decoration: underline; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_navbar.scss: -------------------------------------------------------------------------------- 1 | .brd-navbar { 2 | // --bs-gutter-x: $brd-gutter-x; 3 | // --bs-gutter-y: $brd-gutter-x; 4 | 5 | padding: .75rem 0; 6 | background-color: $brd-blue; 7 | 8 | .navbar-toggler { 9 | padding: 0; 10 | border: 0; 11 | } 12 | 13 | .navbar-nav { 14 | .nav-link { 15 | padding-right: $spacer * .25; 16 | padding-left: $spacer * .25; 17 | color: rgba($white, .85); 18 | 19 | &:hover, 20 | &:focus { 21 | color: $white; 22 | } 23 | 24 | &.active { 25 | font-weight: 600; 26 | color: $white; 27 | } 28 | } 29 | } 30 | 31 | .navbar-nav-svg { 32 | width: 1rem; 33 | height: 1rem; 34 | } 35 | 36 | .offcanvas { 37 | background-color: $brd-blue-bright; 38 | border-left: 0; 39 | 40 | @include media-breakpoint-down(md) { 41 | box-shadow: $box-shadow-lg; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_placeholder-img.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Placeholder svg used in the docs. 3 | // 4 | 5 | // Remember to update `site/_layouts/examples.html` too if this changes! 6 | 7 | .brd-placeholder-img { 8 | @include font-size(1.125rem); 9 | user-select: none; 10 | text-anchor: middle; 11 | } 12 | 13 | .brd-placeholder-img-lg { 14 | @include font-size(3.5rem); 15 | } 16 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_skippy.scss: -------------------------------------------------------------------------------- 1 | .skippy { 2 | background-color: $brd-blue; 3 | 4 | a { 5 | color: $white; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_table-api.scss: -------------------------------------------------------------------------------- 1 | .table-api { 2 | tr td { 3 | padding-top: 1rem; 4 | padding-bottom: 1rem; 5 | } 6 | td:first-child, 7 | th:first-child { 8 | width: 15%; 9 | padding-left: 1rem; 10 | } 11 | td:first-child { 12 | white-space: nowrap; 13 | } 14 | td:nth-child(2n) { 15 | width: 55%; 16 | } 17 | td:nth-child(3n) { 18 | width: 10%; 19 | } 20 | td:nth-child(4n) { 21 | width: 10%; 22 | } 23 | td:nth-child(5n) { 24 | width: 10%; 25 | } 26 | 27 | & + h3 { 28 | margin-top: 2rem; 29 | } 30 | } 31 | 32 | .markdown + h3 { 33 | margin-top: 3rem; 34 | } -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/scss/_toc.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable selector-max-type 2 | 3 | .brd-toc { 4 | @include media-breakpoint-up(lg) { 5 | position: sticky; 6 | top: 5rem; 7 | right: 0; 8 | z-index: 2; 9 | height: subtract(100vh, 7rem); 10 | overflow-y: auto; 11 | } 12 | 13 | nav { 14 | @include font-size(.875rem); 15 | 16 | ul { 17 | padding-left: 0; 18 | list-style: none; 19 | 20 | ul { 21 | padding-left: 1rem; 22 | margin-top: .25rem; 23 | } 24 | } 25 | 26 | li { 27 | margin-bottom: .25rem; 28 | } 29 | 30 | a { 31 | color: inherit; 32 | 33 | &:not(:hover) { 34 | text-decoration: none; 35 | } 36 | 37 | code { 38 | font: inherit; 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/shim.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import type { ComponentOptions } from 'vue' 3 | const comp: ComponentOptions 4 | export default comp 5 | } 6 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/styles/_anchor.scss: -------------------------------------------------------------------------------- 1 | .anchor-link { 2 | font-weight: 400; 3 | color: rgba($link-color, .5); 4 | padding-left: 0.375em; 5 | text-decoration: none; 6 | opacity: 0; 7 | @include transition(color .15s ease-in-out); 8 | 9 | &:focus, 10 | &:hover { 11 | color: $link-color; 12 | text-decoration: none; 13 | } 14 | } 15 | 16 | h2, h3, h4, h5, h6 { 17 | &:hover { 18 | .anchor-link { 19 | opacity: 1; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/styles/_footer.scss: -------------------------------------------------------------------------------- 1 | .docs-footer { 2 | --cui-footer-bg: #f0f4f7; 3 | font-size: 0.875rem; 4 | 5 | a { 6 | color: #768192; 7 | text-decoration: none; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/styles/_layout.scss: -------------------------------------------------------------------------------- 1 | .wrapper { 2 | width: 100%; 3 | @include ltr-rtl("padding-left", var(--cui-sidebar-occupy-start, 0)); 4 | will-change: auto; 5 | @include transition(padding .15s); 6 | } -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/styles/_sidebar.scss: -------------------------------------------------------------------------------- 1 | .docs-sidebar { 2 | --cui-sidebar-bg: #f0f4f7; 3 | --cui-sidebar-brand-bg: transparent; 4 | --cui-sidebar-brand-color: rgba(44,56,74,0.87); 5 | --cui-sidebar-nav-link-color: rgba(44,56,74,0.87); 6 | --cui-sidebar-nav-link-active-color: #321fdb; 7 | --cui-sidebar-nav-link-hover-color: #321fdb; 8 | --cui-sidebar-nav-group-bg: transparent; 9 | --cui-sidebar-nav-group-toggle-show-color: #321fdb; 10 | --cui-sidebar-nav-link-disabled-color: #{$text-disabled}; 11 | } -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/styles/_table-api.scss: -------------------------------------------------------------------------------- 1 | .table-api { 2 | --cui-table-striped-bg: #{rgba(#f0f4f7, .25)} !important; 3 | tr td { 4 | padding-top: 1rem; 5 | padding-bottom: 1rem; 6 | } 7 | td:first-child, 8 | th:first-child { 9 | width: 15%; 10 | padding-left: 1rem; 11 | } 12 | td:first-child { 13 | white-space: nowrap; 14 | } 15 | td:nth-child(2n) { 16 | width: 55%; 17 | } 18 | td:nth-child(3n) { 19 | width: 10%; 20 | } 21 | td:nth-child(4n) { 22 | width: 10%; 23 | } 24 | td:nth-child(5n) { 25 | width: 10%; 26 | } 27 | 28 | & + h3 { 29 | margin-top: 2rem; 30 | } 31 | } 32 | 33 | .markdown + h3 { 34 | margin-top: 3rem; 35 | } -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/styles/_toc.scss: -------------------------------------------------------------------------------- 1 | .docs-toc { 2 | @include media-breakpoint-up(lg) { 3 | position: sticky; 4 | top: 5rem; 5 | right: 0; 6 | z-index: 2; 7 | height: subtract(100vh, 7rem); 8 | overflow-y: auto; 9 | } 10 | 11 | nav { 12 | @include font-size(.875rem); 13 | 14 | ul { 15 | padding-left: 0; 16 | list-style: none; 17 | 18 | ul { 19 | padding-left: 1rem; 20 | margin-top: .25rem; 21 | } 22 | } 23 | 24 | li { 25 | margin-bottom: .25rem; 26 | } 27 | 28 | a { 29 | color: inherit; 30 | 31 | &:not(:hover) { 32 | text-decoration: none; 33 | } 34 | 35 | code { 36 | font: inherit; 37 | } 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/styles/_variables.scss: -------------------------------------------------------------------------------- 1 | @import '@vuepress/plugin-palette/palette'; 2 | 3 | // responsive breakpoints 4 | $MQNarrow: 959px !default; 5 | $MQMobile: 719px !default; 6 | $MQMobileNarrow: 419px !default; 7 | 8 | // code languages 9 | $codeLang: 'c' 'cpp' 'cs' 'css' 'dart' 'docker' 'fs' 'go' 'html' 'java' 'js' 10 | 'json' 'kt' 'less' 'makefile' 'md' 'php' 'py' 'rb' 'rs' 'sass' 'scss' 'sh' 11 | 'styl' 'ts' 'toml' 'vue' 'yml' !default; 12 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/styles/index.scss: -------------------------------------------------------------------------------- 1 | @import '@coreui/coreui/scss/coreui.scss'; 2 | 3 | @import 'anchor'; 4 | @import 'demo'; 5 | @import 'footer'; 6 | @import 'layout'; 7 | @import 'sidebar'; 8 | @import 'table-api'; 9 | @import 'toc'; 10 | 11 | @import 'vars'; 12 | @import 'vars-dark'; 13 | 14 | @import 'code'; 15 | @import 'code-group'; 16 | @import 'custom-container'; 17 | @import 'page'; 18 | @import 'transitions'; 19 | 20 | @import '@vuepress/plugin-palette/style'; 21 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/styles/transitions.scss: -------------------------------------------------------------------------------- 1 | .fade-slide-y-enter-active { 2 | transition: all 0.3s ease; 3 | } 4 | 5 | .fade-slide-y-leave-active { 6 | transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1); 7 | } 8 | 9 | .fade-slide-y-enter-from, 10 | .fade-slide-y-leave-to { 11 | transform: translateY(10px); 12 | opacity: 0; 13 | } 14 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './resolveEditLink' 2 | export * from './resolveRepoType' 3 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/client/utils/resolveRepoType.ts: -------------------------------------------------------------------------------- 1 | import { isLinkHttp } from '@vuepress/shared' 2 | 3 | export type RepoType = 'GitHub' | 'GitLab' | 'Gitee' | 'Bitbucket' | null 4 | 5 | export const resolveRepoType = (repo: string): RepoType => { 6 | if (!isLinkHttp(repo) || /github\.com/.test(repo)) return 'GitHub' 7 | if (/bitbucket\.org/.test(repo)) return 'Bitbucket' 8 | if (/gitlab\.com/.test(repo)) return 'GitLab' 9 | if (/gitee\.com/.test(repo)) return 'Gitee' 10 | return null 11 | } 12 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/node/index.ts: -------------------------------------------------------------------------------- 1 | import { defaultTheme } from './defaultTheme' 2 | 3 | export * from '../shared' 4 | export * from './defaultTheme' 5 | export * from './utils' 6 | 7 | export default defaultTheme 8 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/node/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './assignDefaultLocaleOptions' 2 | export * from './resolveActiveHeaderLinksPluginOptions' 3 | export * from './resolveContainerPluginOptions' 4 | export * from './resolveGitPluginOptions' 5 | export * from './resolveMediumZoomPluginOptions' 6 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/node/utils/resolveActiveHeaderLinksPluginOptions.ts: -------------------------------------------------------------------------------- 1 | import type { ActiveHeaderLinksPluginOptions } from '@vuepress/plugin-active-header-links' 2 | import type { DefaultThemePluginsOptions } from '../../shared' 3 | 4 | /** 5 | * Resolve options for @vuepress/plugin-active-header-links 6 | */ 7 | export const resolveActiveHeaderLinksPluginOptions = ( 8 | themePlugins: DefaultThemePluginsOptions 9 | ): ActiveHeaderLinksPluginOptions | boolean => { 10 | if (themePlugins?.activeHeaderLinks === false) { 11 | return false 12 | } 13 | 14 | return { 15 | headerLinkSelector: 'a.sidebar-item', 16 | headerAnchorSelector: '.anchor-link', 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/node/utils/resolveGitPluginOptions.ts: -------------------------------------------------------------------------------- 1 | import type { GitPluginOptions } from '@vuepress/plugin-git' 2 | import type { 3 | DefaultThemePluginsOptions, 4 | DefaultThemeLocaleOptions, 5 | } from '../../shared' 6 | 7 | /** 8 | * Resolve options for @vuepress/plugin-git 9 | */ 10 | export const resolveGitPluginOptions = ( 11 | themePlugins: DefaultThemePluginsOptions, 12 | localeOptions: DefaultThemeLocaleOptions 13 | ): GitPluginOptions | boolean => { 14 | if (themePlugins?.git === false) { 15 | return false 16 | } 17 | 18 | const enableUpdatedTime = localeOptions.lastUpdated !== false 19 | const enableContributors = localeOptions.contributors !== false 20 | 21 | if (!enableUpdatedTime && !enableContributors) { 22 | return false 23 | } 24 | 25 | return { 26 | createdTime: false, 27 | updatedTime: enableUpdatedTime, 28 | contributors: enableContributors, 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/node/utils/resolveMediumZoomPluginOptions.ts: -------------------------------------------------------------------------------- 1 | import type { MediumZoomPluginOptions } from '@vuepress/plugin-medium-zoom' 2 | import type { DefaultThemePluginsOptions } from '../../shared' 3 | 4 | /** 5 | * Resolve options for @vuepress/plugin-medium-zoom 6 | */ 7 | export const resolveMediumZoomPluginOptions = ( 8 | themePlugins: DefaultThemePluginsOptions 9 | ): MediumZoomPluginOptions | boolean => { 10 | if (themePlugins?.mediumZoom === false) { 11 | return false 12 | } 13 | 14 | return { 15 | selector: 16 | '.theme-default-content > img, .theme-default-content :not(a) > img', 17 | zoomOptions: {}, 18 | // should greater than page transition duration 19 | delay: 400, 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/docs/.vuepress/theme-bootstrap-vue/src/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './nav' 2 | export * from './options' 3 | export * from './page' 4 | -------------------------------------------------------------------------------- /packages/docs/api/accordion/CAccordionBody.api.md: -------------------------------------------------------------------------------- 1 | ### CAccordionBody 2 | 3 | ```jsx 4 | import { CAccordionBody } from '@coreui/bootstrap-vue' 5 | // or 6 | import CAccordionBody from '@coreui/bootstrap-vue/src/components/accordion/CAccordionBody' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/accordion/CAccordionButton.api.md: -------------------------------------------------------------------------------- 1 | ### CAccordionButton 2 | 3 | ```jsx 4 | import { CAccordionButton } from '@coreui/bootstrap-vue' 5 | // or 6 | import CAccordionButton from '@coreui/bootstrap-vue/src/components/accordion/CAccordionButton' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/accordion/CAccordionCollapse.api.md: -------------------------------------------------------------------------------- 1 | ### CAccordionCollapse 2 | 3 | ```jsx 4 | import { CAccordionCollapse } from '@coreui/bootstrap-vue' 5 | // or 6 | import CAccordionCollapse from '@coreui/bootstrap-vue/src/components/accordion/CAccordionCollapse' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ----------- | ----------------------------------- | ------- | ------ | ------- | 13 | | **visible** | Toggle the visibility of component. | boolean | - | | 14 | -------------------------------------------------------------------------------- /packages/docs/api/accordion/CAccordionHeader.api.md: -------------------------------------------------------------------------------- 1 | ### CAccordionHeader 2 | 3 | ```jsx 4 | import { CAccordionHeader } from '@coreui/bootstrap-vue' 5 | // or 6 | import CAccordionHeader from '@coreui/bootstrap-vue/src/components/accordion/CAccordionHeader' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/accordion/CAccordionItem.api.md: -------------------------------------------------------------------------------- 1 | ### CAccordionItem 2 | 3 | ```jsx 4 | import { CAccordionItem } from '@coreui/bootstrap-vue' 5 | // or 6 | import CAccordionItem from '@coreui/bootstrap-vue/src/components/accordion/CAccordionItem' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------ | ------------- | -------------- | ------ | ------- | 13 | | **item-key** | The item key. | number\|string | - | - | 14 | -------------------------------------------------------------------------------- /packages/docs/api/alert/CAlertHeading.api.md: -------------------------------------------------------------------------------- 1 | ### CAlertHeading 2 | 3 | ```jsx 4 | import { CAlertHeading } from '@coreui/bootstrap-vue' 5 | // or 6 | import CAlertHeading from '@coreui/bootstrap-vue/src/components/alert/CAlertHeading' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h4' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/alert/CAlertLink.api.md: -------------------------------------------------------------------------------- 1 | ### CAlertLink 2 | 3 | ```jsx 4 | import { CAlertLink } from '@coreui/bootstrap-vue' 5 | // or 6 | import CAlertLink from '@coreui/bootstrap-vue/src/components/alert/CAlertLink' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/backdrop/CBackdrop.api.md: -------------------------------------------------------------------------------- 1 | ### CBackdrop 2 | 3 | ```jsx 4 | import { CBackdrop } from '@coreui/bootstrap-vue' 5 | // or 6 | import CBackdrop from '@coreui/bootstrap-vue/src/components/backdrop/CBackdrop' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ----------- | ----------------------------------------- | ------- | ------ | ------- | 13 | | **visible** | Toggle the visibility of modal component. | boolean | - | false | 14 | -------------------------------------------------------------------------------- /packages/docs/api/breadcrumb/CBreadcrumb.api.md: -------------------------------------------------------------------------------- 1 | ### CBreadcrumb 2 | 3 | ```jsx 4 | import { CBreadcrumb } from '@coreui/bootstrap-vue' 5 | // or 6 | import CBreadcrumb from '@coreui/bootstrap-vue/src/components/breadcrumb/CBreadcrumb' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/breadcrumb/CBreadcrumbItem.api.md: -------------------------------------------------------------------------------- 1 | ### CBreadcrumbItem 2 | 3 | ```jsx 4 | import { CBreadcrumbItem } from '@coreui/bootstrap-vue' 5 | // or 6 | import CBreadcrumbItem from '@coreui/bootstrap-vue/src/components/breadcrumb/CBreadcrumbItem' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ---------- | -------------------------------------------------- | ------- | ------ | ------- | 13 | | **active** | Toggle the active state for the component. | boolean | - | | 14 | | **href** | The `href` attribute for the inner link component. | string | - | - | 15 | -------------------------------------------------------------------------------- /packages/docs/api/button-group/CButtonToolbar.api.md: -------------------------------------------------------------------------------- 1 | ### CButtonToolbar 2 | 3 | ```jsx 4 | import { CButtonToolbar } from '@coreui/bootstrap-vue' 5 | // or 6 | import CButtonToolbar from '@coreui/bootstrap-vue/src/components/button-group/CButtonToolbar' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardBody.api.md: -------------------------------------------------------------------------------- 1 | ### CCardBody 2 | 3 | ```jsx 4 | import { CCardBody } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardBody from '@coreui/bootstrap-vue/src/components/card/CCardBody' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardFooter.api.md: -------------------------------------------------------------------------------- 1 | ### CCardFooter 2 | 3 | ```jsx 4 | import { CCardFooter } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardFooter from '@coreui/bootstrap-vue/src/components/card/CCardFooter' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardGroup.api.md: -------------------------------------------------------------------------------- 1 | ### CCardGroup 2 | 3 | ```jsx 4 | import { CCardGroup } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardGroup from '@coreui/bootstrap-vue/src/components/card/CCardGroup' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardHeader.api.md: -------------------------------------------------------------------------------- 1 | ### CCardHeader 2 | 3 | ```jsx 4 | import { CCardHeader } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardHeader from '@coreui/bootstrap-vue/src/components/card/CCardHeader' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardImage.api.md: -------------------------------------------------------------------------------- 1 | ### CCardImage 2 | 3 | ```jsx 4 | import { CCardImage } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardImage from '@coreui/bootstrap-vue/src/components/card/CCardImage' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | --------------- | --------------------------------------------------------------------------------------- | ------ | ------------------- | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'img' | 14 | | **orientation** | Optionally orientate the image to the top, bottom. | string | `'top'`, `'bottom'` | - | 15 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardImageOverlay.api.md: -------------------------------------------------------------------------------- 1 | ### CCardImageOverlay 2 | 3 | ```jsx 4 | import { CCardImageOverlay } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardImageOverlay from '@coreui/bootstrap-vue/src/components/card/CCardImageOverlay' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardLink.api.md: -------------------------------------------------------------------------------- 1 | ### CCardLink 2 | 3 | ```jsx 4 | import { CCardLink } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardLink from '@coreui/bootstrap-vue/src/components/card/CCardLink' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | --------- | ------------------------------------------------------------------ | ------ | ------ | ------- | 13 | | **href** | The href attribute specifies the URL of the page the link goes to. | string | - | '#' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardSubtitle.api.md: -------------------------------------------------------------------------------- 1 | ### CCardSubtitle 2 | 3 | ```jsx 4 | import { CCardSubtitle } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardSubtitle from '@coreui/bootstrap-vue/src/components/card/CCardSubtitle' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h6' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardText.api.md: -------------------------------------------------------------------------------- 1 | ### CCardText 2 | 3 | ```jsx 4 | import { CCardText } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardText from '@coreui/bootstrap-vue/src/components/card/CCardText' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'p' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/card/CCardTitle.api.md: -------------------------------------------------------------------------------- 1 | ### CCardTitle 2 | 3 | ```jsx 4 | import { CCardTitle } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCardTitle from '@coreui/bootstrap-vue/src/components/card/CCardTitle' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h5' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/carousel/CCarouselCaption.api.md: -------------------------------------------------------------------------------- 1 | ### CCarouselCaption 2 | 3 | ```jsx 4 | import { CCarouselCaption } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCarouselCaption from '@coreui/bootstrap-vue/src/components/carousel/CCarouselCaption' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/carousel/CCarouselItem.api.md: -------------------------------------------------------------------------------- 1 | ### CCarouselItem 2 | 3 | ```jsx 4 | import { CCarouselItem } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCarouselItem from '@coreui/bootstrap-vue/src/components/carousel/CCarouselItem' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------ | ------------------------------------------------------------------ | --------------- | ------ | ------- | 13 | | **interval** | The amount of time to delay between automatically cycling an item. | boolean\|number | - | false | 14 | -------------------------------------------------------------------------------- /packages/docs/api/close-button/CCloseButton.api.md: -------------------------------------------------------------------------------- 1 | ### CCloseButton 2 | 3 | ```jsx 4 | import { CCloseButton } from '@coreui/bootstrap-vue' 5 | // or 6 | import CCloseButton from '@coreui/bootstrap-vue/src/components/close-button/CCloseButton' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------ | -------------------------------------------- | ------- | ------ | ------- | 13 | | **disabled** | Toggle the disabled state for the component. | boolean | - | | 14 | | **white** | Change the default color to white. | boolean | - | | 15 | 16 | #### Events 17 | 18 | | Event name | Description | Properties | 19 | | ---------- | --------------------------------------------------- | ---------- | 20 | | **click** | Event called when the user clicks on the component. | 21 | -------------------------------------------------------------------------------- /packages/docs/api/dropdown/CDropdownDivider.api.md: -------------------------------------------------------------------------------- 1 | ### CDropdownDivider 2 | 3 | ```jsx 4 | import { CDropdownDivider } from '@coreui/bootstrap-vue' 5 | // or 6 | import CDropdownDivider from '@coreui/bootstrap-vue/src/components/dropdown/CDropdownDivider' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/dropdown/CDropdownHeader.api.md: -------------------------------------------------------------------------------- 1 | ### CDropdownHeader 2 | 3 | ```jsx 4 | import { CDropdownHeader } from '@coreui/bootstrap-vue' 5 | // or 6 | import CDropdownHeader from '@coreui/bootstrap-vue/src/components/dropdown/CDropdownHeader' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h6' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/dropdown/CDropdownMenu.api.md: -------------------------------------------------------------------------------- 1 | ### CDropdownMenu 2 | 3 | ```jsx 4 | import { CDropdownMenu } from '@coreui/bootstrap-vue' 5 | // or 6 | import CDropdownMenu from '@coreui/bootstrap-vue/src/components/dropdown/CDropdownMenu' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | --------------- | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | `'div'`, `'ul'` | 'div' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/form/CForm.api.md: -------------------------------------------------------------------------------- 1 | ### CForm 2 | 3 | ```jsx 4 | import { CForm } from '@coreui/bootstrap-vue' 5 | // or 6 | import CForm from '@coreui/bootstrap-vue/src/components/form/CForm' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | ------------------------------------------------------------------------------------------------------------- | ------- | ------ | ------- | 13 | | **validated** | Mark a form as validated. If you set it `true`, all validation styles will be applied to the forms component. | boolean | - | | 14 | -------------------------------------------------------------------------------- /packages/docs/api/form/CFormFloating.api.md: -------------------------------------------------------------------------------- 1 | ### CFormFloating 2 | 3 | ```jsx 4 | import { CFormFloating } from '@coreui/bootstrap-vue' 5 | // or 6 | import CFormFloating from '@coreui/bootstrap-vue/src/components/form/CFormFloating' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/form/CFormLabel.api.md: -------------------------------------------------------------------------------- 1 | ### CFormLabel 2 | 3 | ```jsx 4 | import { CFormLabel } from '@coreui/bootstrap-vue' 5 | // or 6 | import CFormLabel from '@coreui/bootstrap-vue/src/components/form/CFormLabel' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | --------------------- | --------------------------------------------------------------------------------------------------------- | ------------- | ------ | ------- | 13 | | **custom-class-name** | A string of all className you want to be applied to the component, and override standard className value. | array\|string | - | - | 14 | -------------------------------------------------------------------------------- /packages/docs/api/form/CFormText.api.md: -------------------------------------------------------------------------------- 1 | ### CFormText 2 | 3 | ```jsx 4 | import { CFormText } from '@coreui/bootstrap-vue' 5 | // or 6 | import CFormText from '@coreui/bootstrap-vue/src/components/form/CFormText' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'div' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/form/CInputGroup.api.md: -------------------------------------------------------------------------------- 1 | ### CInputGroup 2 | 3 | ```jsx 4 | import { CInputGroup } from '@coreui/bootstrap-vue' 5 | // or 6 | import CInputGroup from '@coreui/bootstrap-vue/src/components/form/CInputGroup' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | --------- | ---------------------------------- | ------ | -------------- | ------- | 13 | | **size** | Size the component small or large. | string | `'sm'`, `'lg'` | - | 14 | -------------------------------------------------------------------------------- /packages/docs/api/form/CInputGroupText.api.md: -------------------------------------------------------------------------------- 1 | ### CInputGroupText 2 | 3 | ```jsx 4 | import { CInputGroupText } from '@coreui/bootstrap-vue' 5 | // or 6 | import CInputGroupText from '@coreui/bootstrap-vue/src/components/form/CInputGroupText' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'span' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/image/CImage.api.md: -------------------------------------------------------------------------------- 1 | ### CImage 2 | 3 | ```jsx 4 | import { CImage } from '@coreui/bootstrap-vue' 5 | // or 6 | import CImage from '@coreui/bootstrap-vue/src/components/image/CImage' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | ---------------------------------------------- | ------- | ------------------------------ | ------- | 13 | | **align** | Set the horizontal aligment. | string | `'start'`, `'center'`, `'end'` | - | 14 | | **fluid** | Make image responsive. | boolean | - | | 15 | | **rounded** | Make image rounded. | boolean | - | | 16 | | **thumbnail** | Give an image a rounded 1px border appearance. | boolean | - | | 17 | -------------------------------------------------------------------------------- /packages/docs/api/modal/CModalBody.api.md: -------------------------------------------------------------------------------- 1 | ### CModalBody 2 | 3 | ```jsx 4 | import { CModalBody } from '@coreui/bootstrap-vue' 5 | // or 6 | import CModalBody from '@coreui/bootstrap-vue/src/components/modal/CModalBody' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/modal/CModalFooter.api.md: -------------------------------------------------------------------------------- 1 | ### CModalFooter 2 | 3 | ```jsx 4 | import { CModalFooter } from '@coreui/bootstrap-vue' 5 | // or 6 | import CModalFooter from '@coreui/bootstrap-vue/src/components/modal/CModalFooter' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/modal/CModalHeader.api.md: -------------------------------------------------------------------------------- 1 | ### CModalHeader 2 | 3 | ```jsx 4 | import { CModalHeader } from '@coreui/bootstrap-vue' 5 | // or 6 | import CModalHeader from '@coreui/bootstrap-vue/src/components/modal/CModalHeader' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ---------------- | ------------------------------------------- | ------- | ------ | ------- | 13 | | **close-button** | Add a close button component to the header. | boolean | - | true | 14 | -------------------------------------------------------------------------------- /packages/docs/api/modal/CModalTitle.api.md: -------------------------------------------------------------------------------- 1 | ### CModalTitle 2 | 3 | ```jsx 4 | import { CModalTitle } from '@coreui/bootstrap-vue' 5 | // or 6 | import CModalTitle from '@coreui/bootstrap-vue/src/components/modal/CModalTitle' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h5' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/nav/CNavGroup.api.md: -------------------------------------------------------------------------------- 1 | ### CNavGroup 2 | 3 | ```jsx 4 | import { CNavGroup } from '@coreui/bootstrap-vue' 5 | // or 6 | import CNavGroup from '@coreui/bootstrap-vue/src/components/nav/CNavGroup' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ----------- | ------------------------------------------------------------- | ------- | ------ | ------- | 13 | | **compact** | Make nav group more compact by cutting all `padding` in half. | boolean | - | | 14 | | **visible** | Show nav group items. | boolean | - | | 15 | 16 | #### Events 17 | 18 | | Event name | Description | Properties | 19 | | ------------------ | ----------- | ---------- | 20 | | **visible-change** | | 21 | -------------------------------------------------------------------------------- /packages/docs/api/nav/CNavGroupItems.api.md: -------------------------------------------------------------------------------- 1 | ### CNavGroupItems 2 | 3 | ```jsx 4 | import { CNavGroupItems } from '@coreui/bootstrap-vue' 5 | // or 6 | import CNavGroupItems from '@coreui/bootstrap-vue/src/components/nav/CNavGroupItems' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/nav/CNavItem.api.md: -------------------------------------------------------------------------------- 1 | ### CNavItem 2 | 3 | ```jsx 4 | import { CNavItem } from '@coreui/bootstrap-vue' 5 | // or 6 | import CNavItem from '@coreui/bootstrap-vue/src/components/nav/CNavItem' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/nav/CNavLink.api.md: -------------------------------------------------------------------------------- 1 | ### CNavLink 2 | 3 | ```jsx 4 | import { CNavLink } from '@coreui/bootstrap-vue' 5 | // or 6 | import CNavLink from '@coreui/bootstrap-vue/src/components/nav/CNavLink' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------- | ------ | ------- | 13 | | **active** | Toggle the active state for the component. | boolean | - | | 14 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' | 15 | | **disabled** | Toggle the disabled state for the component. | boolean | - | | 16 | -------------------------------------------------------------------------------- /packages/docs/api/nav/CNavTitle.api.md: -------------------------------------------------------------------------------- 1 | ### CNavTitle 2 | 3 | ```jsx 4 | import { CNavTitle } from '@coreui/bootstrap-vue' 5 | // or 6 | import CNavTitle from '@coreui/bootstrap-vue/src/components/nav/CNavTitle' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/navbar/CNavbarBrand.api.md: -------------------------------------------------------------------------------- 1 | ### CNavbarBrand 2 | 3 | ```jsx 4 | import { CNavbarBrand } from '@coreui/bootstrap-vue' 5 | // or 6 | import CNavbarBrand from '@coreui/bootstrap-vue/src/components/navbar/CNavbarBrand' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'a' | 14 | | **href** | The href attribute specifies the URL of the page the link goes to. | string | - | - | 15 | -------------------------------------------------------------------------------- /packages/docs/api/navbar/CNavbarNav.api.md: -------------------------------------------------------------------------------- 1 | ### CNavbarNav 2 | 3 | ```jsx 4 | import { CNavbarNav } from '@coreui/bootstrap-vue' 5 | // or 6 | import CNavbarNav from '@coreui/bootstrap-vue/src/components/navbar/CNavbarNav' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'ul' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/navbar/CNavbarText.api.md: -------------------------------------------------------------------------------- 1 | ### CNavbarText 2 | 3 | ```jsx 4 | import { CNavbarText } from '@coreui/bootstrap-vue' 5 | // or 6 | import CNavbarText from '@coreui/bootstrap-vue/src/components/navbar/CNavbarText' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/navbar/CNavbarToggler.api.md: -------------------------------------------------------------------------------- 1 | ### CNavbarToggler 2 | 3 | ```jsx 4 | import { CNavbarToggler } from '@coreui/bootstrap-vue' 5 | // or 6 | import CNavbarToggler from '@coreui/bootstrap-vue/src/components/navbar/CNavbarToggler' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/offcanvas/COffcanvasBody.api.md: -------------------------------------------------------------------------------- 1 | ### COffcanvasBody 2 | 3 | ```jsx 4 | import { COffcanvasBody } from '@coreui/bootstrap-vue' 5 | // or 6 | import COffcanvasBody from '@coreui/bootstrap-vue/src/components/offcanvas/COffcanvasBody' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/offcanvas/COffcanvasHeader.api.md: -------------------------------------------------------------------------------- 1 | ### COffcanvasHeader 2 | 3 | ```jsx 4 | import { COffcanvasHeader } from '@coreui/bootstrap-vue' 5 | // or 6 | import COffcanvasHeader from '@coreui/bootstrap-vue/src/components/offcanvas/COffcanvasHeader' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/offcanvas/COffcanvasTitle.api.md: -------------------------------------------------------------------------------- 1 | ### COffcanvasTitle 2 | 3 | ```jsx 4 | import { COffcanvasTitle } from '@coreui/bootstrap-vue' 5 | // or 6 | import COffcanvasTitle from '@coreui/bootstrap-vue/src/components/offcanvas/COffcanvasTitle' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | 'h5' | 14 | -------------------------------------------------------------------------------- /packages/docs/api/pagination/CPagination.api.md: -------------------------------------------------------------------------------- 1 | ### CPagination 2 | 3 | ```jsx 4 | import { CPagination } from '@coreui/bootstrap-vue' 5 | // or 6 | import CPagination from '@coreui/bootstrap-vue/src/components/pagination/CPagination' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | --------- | ------------------------------------------- | ------ | ------------------------------ | ------- | 13 | | **align** | Set the alignment of pagination components. | string | `'start'`, `'center'`, `'end'` | - | 14 | | **size** | Size the component small or large. | string | `'sm'`, `'lg'` | - | 15 | -------------------------------------------------------------------------------- /packages/docs/api/table/CTableBody.api.md: -------------------------------------------------------------------------------- 1 | ### CTableBody 2 | 3 | ```jsx 4 | import { CTableBody } from '@coreui/bootstrap-vue' 5 | // or 6 | import CTableBody from '@coreui/bootstrap-vue/src/components/table/CTableBody' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | --------- | ----------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------- | ------- | 13 | | **color** | \* Sets the color context of the component to one of Bootstrap Vue’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `string` | | 14 | -------------------------------------------------------------------------------- /packages/docs/api/table/CTableCaption.api.md: -------------------------------------------------------------------------------- 1 | ### CTableCaption 2 | 3 | ```jsx 4 | import { CTableCaption } from '@coreui/bootstrap-vue' 5 | // or 6 | import CTableCaption from '@coreui/bootstrap-vue/src/components/table/CTableCaption' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/table/CTableFoot.api.md: -------------------------------------------------------------------------------- 1 | ### CTableFoot 2 | 3 | ```jsx 4 | import { CTableFoot } from '@coreui/bootstrap-vue' 5 | // or 6 | import CTableFoot from '@coreui/bootstrap-vue/src/components/table/CTableFoot' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | --------- | ----------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------- | ------- | 13 | | **color** | \* Sets the color context of the component to one of Bootstrap Vue’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `string` | | 14 | -------------------------------------------------------------------------------- /packages/docs/api/table/CTableHead.api.md: -------------------------------------------------------------------------------- 1 | ### CTableHead 2 | 3 | ```jsx 4 | import { CTableHead } from '@coreui/bootstrap-vue' 5 | // or 6 | import CTableHead from '@coreui/bootstrap-vue/src/components/table/CTableHead' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | --------- | ----------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------- | ------- | 13 | | **color** | \* Sets the color context of the component to one of Bootstrap Vue’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `string` | | 14 | -------------------------------------------------------------------------------- /packages/docs/api/table/CTableHeaderCell.api.md: -------------------------------------------------------------------------------- 1 | ### CTableHeaderCell 2 | 3 | ```jsx 4 | import { CTableHeaderCell } from '@coreui/bootstrap-vue' 5 | // or 6 | import CTableHeaderCell from '@coreui/bootstrap-vue/src/components/table/CTableHeaderCell' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | --------- | ----------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------- | ------- | 13 | | **color** | \* Sets the color context of the component to one of Bootstrap Vue’s themed colors. | string | `'primary'`, `'secondary'`, `'success'`, `'danger'`, `'warning'`, `'info'`, `'dark'`, `'light'`, `string` | | 14 | -------------------------------------------------------------------------------- /packages/docs/api/tabs/CTabContent.api.md: -------------------------------------------------------------------------------- 1 | ### CTabContent 2 | 3 | ```jsx 4 | import { CTabContent } from '@coreui/bootstrap-vue' 5 | // or 6 | import CTabContent from '@coreui/bootstrap-vue/src/components/tabs/CTabContent' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/tabs/CTabPane.api.md: -------------------------------------------------------------------------------- 1 | ### CTabPane 2 | 3 | ```jsx 4 | import { CTabPane } from '@coreui/bootstrap-vue' 5 | // or 6 | import CTabPane from '@coreui/bootstrap-vue/src/components/tabs/CTabPane' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ----------- | ----------------------------------- | ------- | ------ | ------- | 13 | | **visible** | Toggle the visibility of component. | boolean | - | false | 14 | 15 | #### Events 16 | 17 | | Event name | Description | Properties | 18 | | ---------- | -------------------------------------------------------- | ---------- | 19 | | **hide** | Callback fired when the component requests to be hidden. | 20 | | **show** | Callback fired when the component requests to be shown. | 21 | -------------------------------------------------------------------------------- /packages/docs/api/toast/CToastBody.api.md: -------------------------------------------------------------------------------- 1 | ### CToastBody 2 | 3 | ```jsx 4 | import { CToastBody } from '@coreui/bootstrap-vue' 5 | // or 6 | import CToastBody from '@coreui/bootstrap-vue/src/components/toast/CToastBody' 7 | ``` 8 | -------------------------------------------------------------------------------- /packages/docs/api/toast/CToastClose.api.md: -------------------------------------------------------------------------------- 1 | ### CToastClose 2 | 3 | ```jsx 4 | import { CToastClose } from '@coreui/bootstrap-vue' 5 | // or 6 | import CToastClose from '@coreui/bootstrap-vue/src/components/toast/CToastClose' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | --------------------------------------------------------------------------------------- | ------ | ------ | ------- | 13 | | **component** | Component used for the root node. Either a string to use a HTML element or a component. | string | - | - | 14 | 15 | #### Events 16 | 17 | | Event name | Description | Properties | 18 | | ---------- | ------------------------------------------------------- | ---------- | 19 | | **close** | Event called before the dissmiss animation has started. | 20 | -------------------------------------------------------------------------------- /packages/docs/api/toast/CToastHeader.api.md: -------------------------------------------------------------------------------- 1 | ### CToastHeader 2 | 3 | ```jsx 4 | import { CToastHeader } from '@coreui/bootstrap-vue' 5 | // or 6 | import CToastHeader from '@coreui/bootstrap-vue/src/components/toast/CToastHeader' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ---------------- | ----------------------------------------------- | ------- | ------ | ------- | 13 | | **close-button** | Automatically add a close button to the header. | boolean | - | | 14 | 15 | #### Events 16 | 17 | | Event name | Description | Properties | 18 | | ---------- | --------------------------------------------- | ---------- | 19 | | **close** | Event called after clicking the close button. | 20 | -------------------------------------------------------------------------------- /packages/docs/api/toast/CToaster.api.md: -------------------------------------------------------------------------------- 1 | ### CToaster 2 | 3 | ```jsx 4 | import { CToaster } from '@coreui/bootstrap-vue' 5 | // or 6 | import CToaster from '@coreui/bootstrap-vue/src/components/toast/CToaster' 7 | ``` 8 | 9 | #### Props 10 | 11 | | Prop name | Description | Type | Values | Default | 12 | | ------------- | ------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------- | ------- | 13 | | **placement** | Describes the placement of component. | string | `'top-start'`, `'top'`, `'top-end'`, `'middle-start'`, `'middle'`, `'middle-end'`, `'bottom-start'`, `'bottom'`, `'bottom-end'` | - | 14 | -------------------------------------------------------------------------------- /packages/docs/build/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": false, 4 | "node": true 5 | }, 6 | "parserOptions": { 7 | "sourceType": "script" 8 | }, 9 | "extends": "../../../.eslintrc.js", 10 | "rules": { 11 | "no-console": "off", 12 | "strict": "error" 13 | } 14 | } -------------------------------------------------------------------------------- /packages/docs/build/changelog-template.hbs: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | {{#each releases}} 4 | {{#if href}} 5 | ## {{#unless major}}{{/unless}}[{{title}}]({{href}}) 6 | {{else}} 7 | ## {{title}} 8 | {{/if}} 9 | 10 | {{#if tag}} 11 | > {{niceDate}} 12 | {{/if}} 13 | {{#if summary}} 14 | 15 | {{summary}} 16 | {{/if}} 17 | {{#if commits}} 18 | 19 | ### Changed 20 | 21 | {{#each commits}} 22 | - {{#if breaking}}**Breaking change:** {{/if}}{{subject}}{{#if href}} [`{{shorthash}}`]({{href}}){{/if}} 23 | {{/each}} 24 | 25 | {{/if}} 26 | {{#if fixes}} 27 | 28 | ### Fixed 29 | 30 | {{#each fixes}} 31 | - {{commit.subject}}{{#each fixes}}{{#if href}} [`#{{id}}`]({{href}}){{/if}}{{/each}} 32 | {{/each}} 33 | {{/if}} 34 | {{/each}} -------------------------------------------------------------------------------- /packages/docs/build/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | rules: { 3 | test: /\.(js|vue)$/, 4 | loader: 'eslint-loader', 5 | enforce: "pre", 6 | include: [resolve('src'), resolve('test')], 7 | options: { 8 | formatter: require('eslint-friendly-formatter') 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /packages/docs/components/link.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CLink 3 | description: 4 | layout: Docs 5 | --- 6 | 7 | ## Examples 8 | 9 | CLink 10 | 11 | ```vue 12 | 13 | CLink 14 | 15 | ``` 16 | 17 | 18 | 19 | ## Additional content -------------------------------------------------------------------------------- /packages/docs/getting-started/introduction.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Getting Started 3 | name: Introduction 4 | description: Bootstrap Vue is UI Component library written in TypeScript, and ready for your next Vue.js project. Learn how to include Bootstrap Vue in your project. 5 | menu: Getting started 6 | layout: Docs 7 | --- 8 | 9 | ## Installation 10 | 11 | ### Npm 12 | 13 | ```bash 14 | npm install @coreui/bootstrap-vue 15 | ``` 16 | 17 | ### Yarn 18 | 19 | ```bash 20 | yarn add @coreui/bootstrap-vue 21 | ``` 22 | 23 | ## Using components 24 | 25 | ```ts 26 | import { CAlert } from '@coreui/bootstrap-vue'; 27 | ``` 28 | 29 | ## Stylesheets 30 | 31 | Vue components are styled using `bootstrap` CSS library. 32 | 33 | ### Installation 34 | 35 | ```bash 36 | npm install bootstrap 37 | ``` 38 | 39 | ### Basic usage 40 | 41 | ```js 42 | import 'bootstrap/dist/css/bootstrap.min.css' 43 | ``` -------------------------------------------------------------------------------- /packages/docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | layout: Homepage 4 | --- -------------------------------------------------------------------------------- /packages/docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@coreui/bootstrap-vue-docs", 3 | "version": "1.0.0-beta.0", 4 | "config": { 5 | "version_short": "1.0" 6 | }, 7 | "scripts": { 8 | "api": "vue-docgen -c build/docgen.config.js", 9 | "dev": "vuepress dev --clean-cache", 10 | "build": "vuepress build" 11 | }, 12 | "license": "MIT", 13 | "devDependencies": { 14 | "@coreui/chartjs": "^3.0.0", 15 | "@coreui/coreui": "^4.1.0", 16 | "@coreui/icons": "^2.1.0", 17 | "@coreui/icons-vue": "^2.0.0", 18 | "@vuepress/bundler-webpack": "2.0.0-beta.27", 19 | "@vuepress/plugin-toc": "2.0.0-beta.27", 20 | "bootstrap": "^5.1.3", 21 | "markdown-it-include": "^2.0.0", 22 | "vue-docgen-cli": "^4.41.2", 23 | "vue-github-button": "^3.0.1", 24 | "vuepress": "2.0.0-beta.27" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "jsx": "preserve", 4 | "outDir": "dist", 5 | "module": "esnext", 6 | "target": "esnext", 7 | "strict": true, 8 | "lib": ["es6", "dom", "es2016", "es2017"], 9 | "sourceMap": true, 10 | "allowJs": false, 11 | "declaration": true, 12 | "moduleResolution": "node", 13 | "forceConsistentCasingInFileNames": true, 14 | "noImplicitReturns": true, 15 | "noImplicitThis": true, 16 | "noImplicitAny": true, 17 | "strictNullChecks": true, 18 | "suppressImplicitAnyIndexErrors": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "esModuleInterop": true, 22 | "resolveJsonModule": true, 23 | "paths": { 24 | "@coreui/bootstrap-vue": ["./packages/bootstrap-vue/src"], 25 | "@coreui/bootstrap-vue/*": ["./packages/bootstrap-vue/src/*"] 26 | } 27 | }, 28 | "exclude": ["**/node_modules", "**/dist"] 29 | } --------------------------------------------------------------------------------