diff --git a/docs/assets/scss/styles.scss b/docs/assets/scss/styles.scss
index d0c84fc4ad7..ec1869ef006 100644
--- a/docs/assets/scss/styles.scss
+++ b/docs/assets/scss/styles.scss
@@ -204,17 +204,23 @@ pre.editable {
.bv-docs-table {
font-size: 90%;
- th,
- td {
- padding: 0.5rem;
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th,
+ > td {
+ padding: 0.5rem;
+ }
+ }
}
- thead > tr > th {
+ > thead > tr > th {
min-width: 80px;
}
code {
- white-space: nowrap !important;
+ white-space: nowrap;
}
}
diff --git a/docs/common-props.json b/docs/common-props.json
new file mode 100644
index 00000000000..ea442f7f909
--- /dev/null
+++ b/docs/common-props.json
@@ -0,0 +1,236 @@
+{
+ "id": {
+ "description": "Used to set the 'id' attribute on the rendered content, and used as the base to generate any additional element IDs as needed"
+ },
+ "variant": {
+ "description": "Applies one of the Bootstrap theme color variants to the component"
+ },
+ "textVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the text"
+ },
+ "bgVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the background"
+ },
+ "borderVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the border"
+ },
+ "headerVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the header"
+ },
+ "headerTextVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the header text"
+ },
+ "titleTextVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the title text"
+ },
+ "subTitleTextVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the sub title text"
+ },
+ "headerBgVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the header background"
+ },
+ "headerBorderVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the header border"
+ },
+ "footerVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the footer"
+ },
+ "footerTextVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the footer text"
+ },
+ "footerBgVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the footer background"
+ },
+ "footerBorderVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the footer border"
+ },
+ "bodyVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the body"
+ },
+ "bodyTextVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the body text"
+ },
+ "bodyBgVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the body background"
+ },
+ "bodyBorderVariant": {
+ "description": "Applies one of the Bootstrap theme color variants to the body border"
+ },
+ "tag": {
+ "description": "Specify the HTML tag to render instead of the default tag"
+ },
+ "headerTag": {
+ "description": "Specify the HTML tag to render instead of the default tag for the header"
+ },
+ "footerTag": {
+ "description": "Specify the HTML tag to render instead of the default tag for the footer"
+ },
+ "bodyTag": {
+ "description": "Specify the HTML tag to render instead of the default tag for the body"
+ },
+ "titleTag": {
+ "description": "Specify the HTML tag to render instead of the default tag for the title"
+ },
+ "subTitleTag": {
+ "description": "Specify the HTML tag to render instead of the default tag for the sub title"
+ },
+ "textTag": {
+ "description": "Specify the HTML tag to render instead of the default tag for the text content"
+ },
+ "headerClass": {
+ "description": "CSS class (or classes) to apply to the header"
+ },
+ "footerClass": {
+ "description": "CSS class (or classes) to apply to the footer"
+ },
+ "bodyClass": {
+ "description": "CSS class (or classes) to apply to the body"
+ },
+ "titleClass": {
+ "description": "CSS class (or classes) to apply to the title"
+ },
+ "header": {
+ "description": "Text content to place in the header"
+ },
+ "headerHtml": {
+ "description": "HTML string content to place in the header. Use with caution"
+ },
+ "footer": {
+ "description": "Text content to place in the footer"
+ },
+ "footerHtml": {
+ "description": "HTML string content to place in the footer. Use with caution"
+ },
+ "title": {
+ "description": "Text content to place in the title"
+ },
+ "titleHtml": {
+ "description": "HTML string content to place in the title. Use with caution"
+ },
+ "subTitle": {
+ "description": "Text content to place in the sub title"
+ },
+ "size": {
+ "description": "Set the size of the component's appearance. 'sm', 'md' (default), or 'lg'"
+ },
+ "required": {
+ "description": "Adds the 'required' attribute to the form control"
+ },
+ "form": {
+ "description": "ID of the form that the form control belongs to. Sets the 'form' attribute on the control"
+ },
+ "name": {
+ "description": "Sets the value of the 'name' attribute on the form control"
+ },
+ "placeholder": {
+ "description": "Sets the 'placeholder' attribute value on the form control"
+ },
+ "readonly": {
+ "description": "Sets the 'readonly' attribute on hte form control"
+ },
+ "plaintext": {
+ "description": "Set the form control as readonly and renders the control to look like plain text (no borders)"
+ },
+ "autocomplete": {
+ "description": "Sets the 'autocomplete' attribute value on the form control"
+ },
+ "autofocus": {
+ "description": "When set to 'true', attempts to auto-focus the control when it is mounted, or re-activated when in a keep-alive. Does not set the 'autofocus' attribute on the control"
+ },
+ "state": {
+ "description": "Controls the validation state appearance of the component. 'true' for valid, 'false' for invalid', or 'null' for no validation state"
+ },
+ "options": {
+ "description": "Array of items to render in the component"
+ },
+ "valueField": {
+ "description": "Field name in the 'options' array that should be used for the value"
+ },
+ "textField": {
+ "description": "Field name in the 'options' array that should be used for the text label"
+ },
+ "htmlField": {
+ "description": "Field name in the 'options' array that should be used for the html label instead of text field. Use with caution."
+ },
+ "disabledField": {
+ "description": "Field name in the 'options' array that should be used for the disabled state"
+ },
+ "plain": {
+ "description": "Render the form control in plain mode, rather than custom styled mode"
+ },
+ "static": {
+ "description": "Renders the content of the component in-place in the DOM, rather than portalling it to be appended to the body element"
+ },
+ "src": {
+ "description": "URL to set for the 'src' attribute"
+ },
+ "alt": {
+ "description": "Value to set for the 'alt' attribute"
+ },
+ "role": {
+ "description": "Sets the ARIA attribute 'role' to a specific value"
+ },
+ "ariaRole": {
+ "description": "Sets the ARIA attribute 'role' to a specific value"
+ },
+ "ariaLabel": {
+ "description": "Sets the value of 'aria-label' attribute on the rendered element"
+ },
+ "ariaLabelledby": {
+ "description": "The ID of the element that provides a label for this component. Used as the value for the 'aria-labelledby' attribute"
+ },
+ "ariaDescribedby": {
+ "description": "The ID of the element that provides additional context for this component. Used as the value for the 'aria-describedby' attribute"
+ },
+ "ariaLive": {
+ "description": "When the rendered element is an aria-live region (for screen reader users), set to either 'polite' or 'assertive'"
+ },
+ "fade": {
+ "description": "When set to 'true', enables the fade animation/transition on the component"
+ },
+ "noFade": {
+ "description": "When set to 'true', disables the fade animation/transition on the component"
+ },
+ "disabled": {
+ "description": "When set to 'true', disables the component's functionality and places it in a disabled state"
+ },
+ "active": {
+ "description": "When set to 'true', places the component in the active state with active styling"
+ },
+ "rel": {
+ "description": "Sets the 'rel' attribute on the rendered link"
+ },
+ "target": {
+ "description": "Sets the 'target' attribute on the rendered link"
+ },
+ "href": {
+ "description": "Denotes the target URL of the link for standard a links"
+ },
+ "to": {
+ "description": "router-link prop: Denotes the target route of the link. When clicked, the value of the to prop will be passed to router.push() internally, so the value can be either a string or a Location descriptor object"
+ },
+ "replace": {
+ "description": "router-link prop: Setting the replace prop will call 'router.replace()' instead of 'router.push()' when clicked, so the navigation will not leave a history record"
+ },
+ "append": {
+ "description": "router-link prop: Setting append prop always appends the relative path to the current path"
+ },
+ "exact": {
+ "description": "router-link prop: The default active class matching behavior is inclusive match. Setting this prop forces the mode to exactly match the route"
+ },
+ "activeClass": {
+ "description": "router-link prop: Configure the active CSS class applied when the link is active. Typically you will want to set this to class name 'active'"
+ },
+ "exactActiveClass": {
+ "description": "router-link prop: Configure the active CSS class applied when the link is active with exact match. Typically you will want to set this to class name 'active'"
+ },
+ "routerTag": {
+ "description": "router-link prop: Specify which tag to render, and it will still listen to click events for navigation. 'router-tag' translates to the tag prop on the final rendered router-link. Typically you should use the default value"
+ },
+ "event": {
+ "description": "router-link prop: Specify the event that triggers the link. In most cases you should leave this as the default"
+ },
+ "noPrefetch": {
+ "description": "nuxt-link prop: To improve the responsiveness of your Nuxt.js applications, when the link will be displayed within the viewport, Nuxt.js will automatically prefetch the code splitted page. Setting 'no-prefetch' will disabled this feature for the specific link"
+ }
+}
diff --git a/docs/components/componentdoc.vue b/docs/components/componentdoc.vue
index 2d335f57c0a..dde00ca359e 100644
--- a/docs/components/componentdoc.vue
+++ b/docs/components/componentdoc.vue
@@ -31,10 +31,12 @@
<{{ kebabCase(alias) }}>
-
- Note: component aliases are only available when importing all of BootstrapVue or using
- the component group plugin.
-
+
+
+ Note: component aliases are only available when importing all of BootstrapVue or using
+ the component group plugin.
+
+
@@ -44,20 +46,22 @@
{{ value }}
Required
- Deprecated
+ v-model
+ Use with caution
+ Deprecated
Deprecation
- {{ value }}
+ {{ value }}
@@ -68,28 +72,50 @@
+
+
+ {{ tag }} supports generating
+ <router-link> or
+ <nuxt-link> component (if using Nuxt.js).
+ For more details on the router link (or nuxt link) specific props, see the
+ Router support
+ reference section.
+
+
+
+
+ Caution: Props that support HTML strings
+ (*-html) can be vulerable to
+
+ Cross Site Scripting (XSS) attacks
+
+ when passed raw user supplied values. You must properly
+
+ sanitize
+
+ the user input first!
+
+
+
-
-
- v-model
-
-
-
- {{ kebabCase(value) }}
-
-
- {{ value }}
-
-
-
+
+
+ v-model
+
+
+
+ {{ kebabCase(value) }}
+
+
+ {{ value }}
+
+
@@ -97,16 +123,61 @@
Slots
- {{ value }}
+ {{ value }}
+
+
+
+ Scope
+
+
+
+
+
+
+
+
+ Slot
+
+ {{ item.name }}
+
+ scoped properties
+
+
+
+
+ {{ value }}
+
+
+ {{ value }}
+ Any
+
+
+
@@ -118,14 +189,13 @@
- {{ value }}
+ {{ value }}
- {{ arg.arg }} -
+ {{ arg.arg }} -
{{ arg.description }}
@@ -150,13 +220,12 @@
You can control {{ tag }} by emitting the
following events on $root:
-
@@ -174,21 +243,43 @@
-
+
+
+