diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 8fd0e1506..93e83976d 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,4 +1,4 @@ { - "packages/bootstrap-vue-next": "0.16.6", - "packages/nuxt": "0.16.6" + "packages/bootstrap-vue-next": "0.17.0", + "packages/nuxt": "0.17.0" } diff --git a/.vscode/extensions.json b/.vscode/extensions.json index c0a6e5a48..a7cea0b06 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,3 @@ { - "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] + "recommendations": ["Vue.volar"] } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e0562940e..f08445e00 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,11 +51,36 @@ This will begin the process to merge your changes into the upstream repository's ## Developing -The project uses a monorepo architecture. The main source files for the package exist in `./packages/bootstrap-vue-next`, this is primarily where developing is done. You can then run `pnpm dev` and it will start all possible development environments. When developing the main package, you will want to open the **bootstrap-vue-next:dev** host. This has hot-reloading to make developing easier. You can use the `./packages/bootstrap-vue-next/src/app.vue` file as a test area for any changes that you make +The project uses a monorepo architecture. The main source files for the package exist in `./packages/bootstrap-vue-next`, this is primarily where developing is done. You can then run `pnpm dev` and it will start all possible development environments. When developing the main package, you will want to open the **bootstrap-vue-next:dev** host. This has hot-reloading to make developing easier. You can use the `./packages/bootstrap-vue-next/src/app.vue` file as a test area for any changes that you make. -You can also make use of the `./apps/playground` directory. The `./apps/playground` directory mimics a user's library and can demonstrate some bugs that may not be visible in the main package. However, it does not contain native hot-reloading and makes for a poor development experience since it requires a built dist copy of the main package (simply run `pnpm build`). The playground is not typically used for development. It is more of a place to view the full behavior of a component +You can also make use of the `./apps/playground` directory. The `./apps/playground` directory mimics a user's library and can demonstrate some bugs that may not be visible in the main package. However, it does not contain native hot-reloading and makes for a poor development experience since it requires a built dist copy of the main package (simply run `pnpm build`). The playground is not typically used for development. It is more of a place to view the full behavior of a component. -You can also use `pnpm dev --filter bootstrap-vue-next` to only open the main host +You can also use `pnpm dev --filter bootstrap-vue-next` to only open the main host. + +## Improving the documentation + +Improving the documentation is a great way to contribute to this project, especially if you're not quite ready to dive into the code. + +We use [vitepress](https://vitepress.dev/) to build our documentation in the `./apps/docs` directory. In order to test the docs, first make sure that you follow the steps in [Setting up your workspace](#setting-up-your-workspace). Then you can run `pnpm dev` from the root and then open the **docs:dev** host. This will hot-reload the documentation to let you easily see your edits. The `*.md` files under `./apps/docs/src/docs` contains the core documentation and the `*.data.ts` files under `./apps/docs/src/data/components` contains JSON files that contains the data to build the component definitions in the documentation. + +## Help Verify BootstrapVue and Bootstrap v5 Parity + +As we close in on a v1 of bootstrap-vue-next, we would like to verify our feature parity with both +[boostrap-vue](https://bootstrap-vue.org/) and [Boottrap v5](https://getbootstrap.com/). + +This verification requires that someone take a close look at the documention for both of the parity +systems and the code and documentation for bootstrap-vue-next to evaluate feature parity. We're using a +spreadsheet to track the fine grained assement, and anyone who consumes bootstrap-vue(-next) should +be able to do the first pass evaluation of a component. + +To contribute: + +- Take a look at the read-only version of the spreadsheet, available [here](https://1drv.ms/x/s!AiUqzkjNYGL6ieBPpQpcR41wo1laZQ). You can filter on `BFormCheckbox` and `BFormCheckboxGroup` in the `Component` column to see an example of components that are being evaludated and just about anything else to see the initial state. +- Read through the `Instructions` tab of the spreadsheet, which provides a suggested process to verify a component. +- Once you're satisfied that you understand the process, request access top the [read/write version of the spreadsheet](https://1drv.ms/x/s!AiUqzkjNYGL6ieBPJZV0b2mgOVgnYw) on the [Bootstrap Vue 3 discord server](https://discord.gg/8VjEkneh). +- Evaluate a component (or two) and get us one step closer to v1! + +More context is available in the comments for [this issue](https://github.com/bootstrap-vue-next/bootstrap-vue-next/issues/1775). ## Registering New Components diff --git a/apps/docs/.vitepress/config.ts b/apps/docs/.vitepress/config.mts similarity index 100% rename from apps/docs/.vitepress/config.ts rename to apps/docs/.vitepress/config.mts diff --git a/apps/docs/.vitepress/theme/Layout.vue b/apps/docs/.vitepress/theme/Layout.vue index e34fb4e00..7cdc29206 100644 --- a/apps/docs/.vitepress/theme/Layout.vue +++ b/apps/docs/.vitepress/theme/Layout.vue @@ -89,7 +89,7 @@ | number', - }, - ], - }, - { - event: 'change', - description: '', - args: [ - { - arg: 'change', - description: '', - type: 'boolean | string | unknown[] | Record | number', - }, - ], - }, { event: 'update:modelValue', description: '', @@ -169,7 +153,7 @@ export default { }, { prop: 'autofocus', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -179,12 +163,12 @@ export default { }, { prop: 'buttons', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'disabled', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -204,22 +188,22 @@ export default { }, { prop: 'plain', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'required', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'stacked', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'state', - type: 'Booleanish | null', + type: 'boolean | null', default: undefined, }, { @@ -229,7 +213,7 @@ export default { }, { prop: 'validated', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -239,17 +223,6 @@ export default { }, ], emits: [ - { - args: [ - { - arg: 'input', - description: '', - type: 'unknown', - }, - ], - description: '', - event: 'input', - }, { args: [ { @@ -261,17 +234,6 @@ export default { description: '', event: 'update:modelValue', }, - { - args: [ - { - arg: 'change', - description: '', - type: 'unknown', - }, - ], - description: '', - event: 'change', - }, ], slots: [], }, diff --git a/apps/docs/src/data/components/formSelect.data.ts b/apps/docs/src/data/components/formSelect.data.ts index ed0bafb43..673834635 100644 --- a/apps/docs/src/data/components/formSelect.data.ts +++ b/apps/docs/src/data/components/formSelect.data.ts @@ -12,12 +12,12 @@ export default { }, { prop: 'autofocus', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'disabled', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -47,7 +47,7 @@ export default { }, { prop: 'multiple', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -67,12 +67,12 @@ export default { }, { prop: 'plain', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'required', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -87,7 +87,7 @@ export default { }, { prop: 'state', - type: 'Booleanish | null', + type: 'boolean | null', default: undefined, }, { @@ -165,7 +165,7 @@ export default { }, { prop: 'disabled', - type: 'Booleanish', + type: 'boolean', default: false, }, ], diff --git a/apps/docs/src/data/components/formTags.data.ts b/apps/docs/src/data/components/formTags.data.ts index 921ecd7f5..7feff57b8 100644 --- a/apps/docs/src/data/components/formTags.data.ts +++ b/apps/docs/src/data/components/formTags.data.ts @@ -19,18 +19,18 @@ export default { }, { prop: 'disabled', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noRemove', - type: 'Booleanish', + type: 'boolean', default: false, description: 'When set, the tag will not have a remove button', }, { prop: 'pill', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Makes the tag have a pill appearance', }, @@ -91,18 +91,18 @@ export default { }, { prop: 'addOnChange', - type: 'Booleanish', + type: 'boolean', default: false, description: "When set, enables adding the tag on the input's 'change' event", }, { prop: 'autofocus', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'disabled', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -179,19 +179,19 @@ export default { }, { prop: 'noAddOnEnter', - type: 'Booleanish', + type: 'boolean', default: false, description: "When set, disables adding the tag on the input's 'keydown.enter' event", }, { prop: 'noOuterFocus', - type: 'Booleanish', + type: 'boolean', default: false, description: 'When set, disables the focus styling of the component root element', }, { prop: 'noTagRemove', - type: 'Booleanish', + type: 'boolean', default: false, description: 'When set, the tags will not have a remove button', }, @@ -203,14 +203,14 @@ export default { }, { prop: 'removeOnDelete', - type: 'Booleanish', + type: 'boolean', default: false, description: 'When set, enables removal of last tag in tags when user presses delete or backspace and the input is empty', }, { prop: 'required', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -221,7 +221,7 @@ export default { }, { prop: 'state', - type: 'Booleanish | null', + type: 'boolean | null', default: null, }, { @@ -237,7 +237,7 @@ export default { }, { prop: 'tagPills', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Makes the built in tags have a pill appearance', }, @@ -382,7 +382,7 @@ export default { }, { prop: 'disabled', - type: 'Booleanish', + type: 'boolean', description: "If the component is in the disabled state. Value of the 'disabled' prop", }, @@ -487,7 +487,7 @@ export default { }, { prop: 'required', - type: 'Booleanish', + type: 'boolean', description: "Value of the 'required' prop", }, { @@ -502,7 +502,7 @@ export default { }, { prop: 'state', - type: 'Booleanish', + type: 'boolean', description: "The contextual state of the component. Value of the 'state' prop. Possible values are true, false or null", }, @@ -514,7 +514,7 @@ export default { }, { prop: 'tagPills', - type: 'Booleanish', + type: 'boolean', description: 'Value of the `tag-pills` prop', }, { diff --git a/apps/docs/src/data/components/formTextarea.data.ts b/apps/docs/src/data/components/formTextarea.data.ts index 5bce0270f..06ccffbfd 100644 --- a/apps/docs/src/data/components/formTextarea.data.ts +++ b/apps/docs/src/data/components/formTextarea.data.ts @@ -7,7 +7,7 @@ export default { props: [ { prop: 'noResize', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/gridSystem.data.ts b/apps/docs/src/data/components/gridSystem.data.ts index 26775ba93..cf07b92f8 100644 --- a/apps/docs/src/data/components/gridSystem.data.ts +++ b/apps/docs/src/data/components/gridSystem.data.ts @@ -17,7 +17,7 @@ export default { }, { prop: 'fluid', - type: 'Booleanish | Breakpoint', + type: 'boolean | Breakpoint', default: false, description: 'When set to true, makes the row 100% wide all the time, or set to one of the Bootstrap breakpoint names for 100% width up to the breakpoint', @@ -55,7 +55,7 @@ export default { }, { prop: 'noGutters', - type: 'Booleanish', + type: 'boolean', }, { prop: 'alignV', @@ -85,7 +85,7 @@ export default { { description: '', prop: 'col', - type: 'Booleanish', + type: 'boolean', }, { description: '', diff --git a/apps/docs/src/data/components/image.data.ts b/apps/docs/src/data/components/image.data.ts index 5f9c763c0..41a7eed19 100644 --- a/apps/docs/src/data/components/image.data.ts +++ b/apps/docs/src/data/components/image.data.ts @@ -7,7 +7,7 @@ export default { props: [ { prop: 'blank', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -17,27 +17,27 @@ export default { }, { prop: 'block', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'center', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'fluid', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'lazy', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'fluidGrow', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -47,12 +47,12 @@ export default { }, { prop: 'start', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'end', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -77,7 +77,7 @@ export default { }, { prop: 'thumbnail', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/inputGroup.data.ts b/apps/docs/src/data/components/inputGroup.data.ts index 2deedee19..e6f65de68 100644 --- a/apps/docs/src/data/components/inputGroup.data.ts +++ b/apps/docs/src/data/components/inputGroup.data.ts @@ -65,7 +65,7 @@ export default { props: [ { prop: 'isText', - type: 'Booleanish', + type: 'boolean', default: false, }, ], @@ -83,7 +83,7 @@ export default { props: [ { prop: 'isText', - type: 'Booleanish', + type: 'boolean', default: false, }, ], diff --git a/apps/docs/src/data/components/link.data.ts b/apps/docs/src/data/components/link.data.ts index 6996db811..81cad6693 100644 --- a/apps/docs/src/data/components/link.data.ts +++ b/apps/docs/src/data/components/link.data.ts @@ -7,7 +7,7 @@ export default { props: [ { prop: 'active', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { @@ -17,12 +17,12 @@ export default { }, { prop: 'append', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'disabled', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -42,7 +42,7 @@ export default { }, { prop: 'replace', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -107,7 +107,7 @@ export default { }, { prop: 'icon', - type: 'Booleanish', + type: 'boolean', default: false, }, ], diff --git a/apps/docs/src/data/components/listGroup.data.ts b/apps/docs/src/data/components/listGroup.data.ts index 0ba3cbf63..2f545a93f 100644 --- a/apps/docs/src/data/components/listGroup.data.ts +++ b/apps/docs/src/data/components/listGroup.data.ts @@ -7,7 +7,7 @@ export default { props: [ { prop: 'flush', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -17,7 +17,7 @@ export default { }, { prop: 'numbered', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -40,12 +40,12 @@ export default { props: [ { prop: 'action', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'button', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/modal.data.ts b/apps/docs/src/data/components/modal.data.ts index d81b53fc7..c0a364db7 100644 --- a/apps/docs/src/data/components/modal.data.ts +++ b/apps/docs/src/data/components/modal.data.ts @@ -27,7 +27,7 @@ const sharedSlots: SlotScopeReference[] = [ }, { prop: 'visible', - type: 'Booleanish', + type: 'boolean', description: "The visibility state of the modal. 'true' if the modal is visible and 'false' if not visible", }, @@ -40,7 +40,7 @@ export default { props: [ { prop: 'autoFocus', - type: 'Booleanish', + type: 'boolean', default: true, description: "When set to 'false', disables auto focusing the modal when opened", }, @@ -71,7 +71,7 @@ export default { }, { prop: 'bodyScrolling', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Enables/disables scrolling the body while modal is open', }, @@ -90,14 +90,14 @@ export default { }, { prop: 'busy', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Places the built in default footer OK and Cancel buttons in the disabled state', }, { prop: 'cancelDisabled', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Places the built in default footer Cancel button in the disabled state', }, @@ -115,7 +115,7 @@ export default { }, { prop: 'centered', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Vertically centers the modal in the viewport', }, @@ -164,10 +164,10 @@ export default { }, { prop: 'fullscreen', - type: 'Booleanish | Breakpoint', + type: 'boolean | Breakpoint', default: false, description: - "A Booleanish value will enable/disable full screen mode. A Breakpoint value will set the breakpoint to enable full screen mode below the value of the breakpoint. Breakpoint values are: 'sm', 'md', 'lg', 'xl', 'xxl'", + "A boolean value will enable/disable full screen mode. A Breakpoint value will set the breakpoint to enable full screen mode below the value of the breakpoint. Breakpoint values are: 'sm', 'md', 'lg', 'xl', 'xxl'", }, { prop: 'headerBgVariant', @@ -221,25 +221,25 @@ export default { }, { prop: 'hideBackdrop', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Disables rendering of the modal backdrop', }, { prop: 'hideFooter', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Disables rendering of the modal footer', }, { prop: 'hideHeader', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Disables rendering of the modal header', }, { prop: 'hideHeaderClose', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Disables rendering of the modal header close button', }, @@ -252,7 +252,7 @@ export default { }, { prop: 'lazy', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Renders the modal content lazily', }, @@ -264,39 +264,39 @@ export default { }, { prop: 'modelValue', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Controls the visibility state of the modal', }, { prop: 'noCloseOnBackdrop', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Disables closing the modal when clicking on the modal backdrop (outside the modal window)', }, { prop: 'noCloseOnEsc', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Disables the ability to close the modal by pressing the ESC key', }, { prop: 'noFade', - type: 'Booleanish', + type: 'boolean', default: false, description: "When set to 'true', disables the fade animation/transition on the component", }, { prop: 'okDisabled', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Places the built in default footer OK button in the disabled state', }, { prop: 'okOnly', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Disables rendering of the default footer Cancel button', }, @@ -314,7 +314,7 @@ export default { }, { prop: 'scrollable', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Enables scrolling of the modal body', }, @@ -326,7 +326,7 @@ export default { }, { prop: 'teleportDisabled', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Renders the modal in the exact place it was defined', }, @@ -350,7 +350,7 @@ export default { }, { prop: 'titleSrOnly', - type: 'Booleanish', + type: 'boolean', default: false, description: "Wraps the title in an '.sr-only' wrapper", }, diff --git a/apps/docs/src/data/components/nav.data.ts b/apps/docs/src/data/components/nav.data.ts index 697d9f5bf..1684aabfd 100644 --- a/apps/docs/src/data/components/nav.data.ts +++ b/apps/docs/src/data/components/nav.data.ts @@ -12,32 +12,32 @@ export default { }, { prop: 'cardHeader', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'fill', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'justified', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'pills', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'small', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'tabs', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -47,12 +47,12 @@ export default { }, { prop: 'vertical', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'underline', - type: 'Booleanish', + type: 'boolean', default: false, }, ], @@ -158,7 +158,7 @@ export default { }, { prop: 'noCaret', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { @@ -168,12 +168,12 @@ export default { }, { prop: 'modelValue', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'lazy', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { @@ -188,37 +188,37 @@ export default { }, { prop: 'noFlip', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { prop: 'noShift', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { prop: 'dropup', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { prop: 'dropend', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { prop: 'dropstart', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { prop: 'center', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { prop: 'end', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { diff --git a/apps/docs/src/data/components/navbar.data.ts b/apps/docs/src/data/components/navbar.data.ts index 30cd7369a..5f42e7aa9 100644 --- a/apps/docs/src/data/components/navbar.data.ts +++ b/apps/docs/src/data/components/navbar.data.ts @@ -12,7 +12,7 @@ export default { }, { prop: 'print', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -72,17 +72,17 @@ export default { }, { prop: 'fill', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'justified', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'small', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -105,7 +105,7 @@ export default { props: [ { prop: 'disabled', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/offcanvas.data.ts b/apps/docs/src/data/components/offcanvas.data.ts index 2aa184b8b..65f9cd7f1 100644 --- a/apps/docs/src/data/components/offcanvas.data.ts +++ b/apps/docs/src/data/components/offcanvas.data.ts @@ -7,27 +7,27 @@ export default { props: [ { prop: 'modelValue', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'bodyScrolling', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'backdrop', - type: 'Booleanish', + type: 'boolean', default: true, }, { prop: 'noCloseOnBackdrop', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noCloseOnEsc', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -42,17 +42,17 @@ export default { }, { prop: 'noHeaderClose', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noHeader', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'lazy', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -62,7 +62,7 @@ export default { }, { prop: 'noFocus', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -102,7 +102,7 @@ export default { }, { prop: 'teleportDisabled', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/overlay.data.ts b/apps/docs/src/data/components/overlay.data.ts index e3180ab9b..9f85094c2 100644 --- a/apps/docs/src/data/components/overlay.data.ts +++ b/apps/docs/src/data/components/overlay.data.ts @@ -17,22 +17,22 @@ export default { }, { prop: 'fixed', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noCenter', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noFade', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noWrap', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -52,12 +52,12 @@ export default { }, { prop: 'show', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'spinnerSmall', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -72,7 +72,7 @@ export default { }, { prop: 'noSpinner', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/pagination.data.ts b/apps/docs/src/data/components/pagination.data.ts index 11f929048..58ed6e48f 100644 --- a/apps/docs/src/data/components/pagination.data.ts +++ b/apps/docs/src/data/components/pagination.data.ts @@ -45,7 +45,7 @@ export default { }, { prop: 'firstNumber', - type: 'Booleanish', + type: 'boolean', description: 'Display first page number instead of Goto First button', }, { @@ -55,12 +55,12 @@ export default { }, { prop: 'hideEllipsis', - type: 'Booleanish', + type: 'boolean', description: 'Do not show ellipsis buttons', }, { prop: 'hideGotoEndButtons', - type: 'Booleanish', + type: 'boolean', description: 'Hides the goto first and goto last page buttons', }, { @@ -97,7 +97,7 @@ export default { }, { prop: 'lastNumber', - type: 'Booleanish', + type: 'boolean', description: 'Display last page number instead of Goto Last button', }, { @@ -133,7 +133,7 @@ export default { }, { prop: 'pills', - type: 'Booleanish', + type: 'boolean', description: 'Applies pill styling to the pagination buttons', }, { diff --git a/apps/docs/src/data/components/placeholder.data.ts b/apps/docs/src/data/components/placeholder.data.ts index ed410905c..fae8f225f 100644 --- a/apps/docs/src/data/components/placeholder.data.ts +++ b/apps/docs/src/data/components/placeholder.data.ts @@ -50,7 +50,7 @@ export default { props: [ { prop: 'noHeader', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -75,7 +75,7 @@ export default { }, { prop: 'noFooter', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -115,12 +115,12 @@ export default { }, { prop: 'noButton', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'imgBottom', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -140,7 +140,7 @@ export default { }, { prop: 'noImg', - type: 'Booleanish', + type: 'boolean', default: false, }, ], @@ -174,7 +174,7 @@ export default { { description: 'Determines whether the loading slot should be displayed', prop: 'loading', - type: 'Booleanish', + type: 'boolean', default: false, }, ], @@ -232,7 +232,7 @@ export default { }, { prop: 'hideHeader', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -262,7 +262,7 @@ export default { }, { prop: 'showFooter', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/popover.data.ts b/apps/docs/src/data/components/popover.data.ts index 2b003e2e9..78db4e556 100644 --- a/apps/docs/src/data/components/popover.data.ts +++ b/apps/docs/src/data/components/popover.data.ts @@ -7,11 +7,11 @@ export default { props: [ { prop: 'modelValue', - type: 'Booleanish', + type: 'boolean', default: false, }, { - prop: 'container', + prop: 'teleportTo', type: 'string | ComponentPublicInstance | HTMLElement | undefined', default: undefined, }, @@ -42,12 +42,12 @@ export default { }, { prop: 'click', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'manual', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -82,47 +82,47 @@ export default { }, { prop: 'noFlip', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noShift', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noFade', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noAutoClose', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'hide', - type: 'Booleanish', + type: 'boolean', default: true, }, { prop: 'realtime', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'inline', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'tooltip', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'html', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/progress.data.ts b/apps/docs/src/data/components/progress.data.ts index 40e5af441..067665bf2 100644 --- a/apps/docs/src/data/components/progress.data.ts +++ b/apps/docs/src/data/components/progress.data.ts @@ -25,7 +25,7 @@ export default { props: [ { prop: 'animated', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -50,17 +50,17 @@ export default { }, { prop: 'showProgress', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'showValue', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'striped', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/spinner.data.ts b/apps/docs/src/data/components/spinner.data.ts index d6155aea3..6a4aa1b46 100644 --- a/apps/docs/src/data/components/spinner.data.ts +++ b/apps/docs/src/data/components/spinner.data.ts @@ -17,7 +17,7 @@ export default { }, { prop: 'small', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/table.data.ts b/apps/docs/src/data/components/table.data.ts index 43bf16ec4..0b74cac4c 100644 --- a/apps/docs/src/data/components/table.data.ts +++ b/apps/docs/src/data/components/table.data.ts @@ -22,48 +22,49 @@ export default { }, { prop: 'noProviderPaging', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noProviderSorting', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noProviderFiltering', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noSelectOnClick', - type: 'Booleanish', + type: 'boolean', default: false, description: 'Do not select row when clicked', }, { prop: 'sortBy', - type: 'string', + type: 'BTableSortBy[]', default: undefined, + description: 'Model representing the current sort state', }, { prop: 'sortDesc', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'sortInternal', - type: 'Booleanish', + type: 'boolean', default: true, }, { prop: 'selectable', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'stickySelect', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -83,7 +84,7 @@ export default { }, { prop: 'busy', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -259,40 +260,26 @@ export default { { args: [ { - arg: 'update:sortBy', - description: '', + arg: 'value', + description: 'BTableSortBy[] | undefined', type: 'string', }, ], event: 'update:sortBy', - description: '', + description: + 'Emitted when the `sortBy` model is changed and represents the current sort state', }, { args: [ { - arg: 'update:sortDesc', - description: 'boolean', - type: 'boolean', - }, - ], - event: 'update:sortDesc', - description: '', - }, - { - args: [ - { - arg: 'sortBy', + arg: 'value', description: '', - type: 'string', - }, - { - arg: 'isDesc', - description: '', - type: 'boolean', + type: 'BTableSortBy', }, ], event: 'sorted', - description: '', + description: + 'Updated when the user clicks a sortable column heading and represents the column click and the sort state (`asc`, `desc`, or undefined)', }, ], slots: [ @@ -368,7 +355,7 @@ export default { }, { prop: 'footClone', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -388,7 +375,7 @@ export default { }, { prop: 'showEmpty', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -425,12 +412,12 @@ export default { props: [ { prop: 'bordered', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'borderless', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -440,17 +427,17 @@ export default { }, { prop: 'captionTop', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'dark', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'hover', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -465,12 +452,12 @@ export default { }, { prop: 'striped', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'small', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -485,8 +472,10 @@ export default { }, { prop: 'stickyHeader', - type: 'Booleanish', + type: 'boolean | Numberish', default: false, + description: + 'Makes the table header sticky. Set to true for a maximum height 300px tall table, or set to any valid CSS height (including units). Inputting a number type is converted to px height', }, ], emits: [], @@ -536,7 +525,7 @@ export default { }, { prop: 'stickyColumn', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -592,7 +581,7 @@ export default { }, { prop: 'stickyColumn', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/tabs.data.ts b/apps/docs/src/data/components/tabs.data.ts index f9bd3f01d..30e277420 100644 --- a/apps/docs/src/data/components/tabs.data.ts +++ b/apps/docs/src/data/components/tabs.data.ts @@ -17,7 +17,7 @@ export default { }, { prop: 'active', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -27,17 +27,17 @@ export default { }, { prop: 'disabled', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'lazy', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { prop: 'lazyOnce', - type: 'Booleanish', + type: 'boolean', default: undefined, }, { @@ -100,17 +100,17 @@ export default { }, { prop: 'card', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'end', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'fill', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -130,12 +130,12 @@ export default { }, { prop: 'justified', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'lazy', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -155,22 +155,22 @@ export default { }, { prop: 'noFade', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'noNavStyle', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'pills', - type: 'Booleanish', + type: 'boolean', default: false, }, { prop: 'small', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -180,7 +180,7 @@ export default { }, { prop: 'vertical', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/data/components/toast.data.ts b/apps/docs/src/data/components/toast.data.ts index 7d752d30d..ad7698fff 100644 --- a/apps/docs/src/data/components/toast.data.ts +++ b/apps/docs/src/data/components/toast.data.ts @@ -5,100 +5,114 @@ export default { { component: 'BToast', props: [ - { - prop: 'delay', - type: 'string | number', - default: 5000, - }, { prop: 'bodyClass', type: 'ClassValue', default: undefined, + description: 'CSS class (or classes) to add to the toast body element', }, { prop: 'body', type: 'string', default: undefined, + description: 'The text content of the body', }, { prop: 'headerClass', type: 'ClassValue', default: undefined, + description: 'CSS class (or classes) to add to the toast header element', }, { prop: 'headerTag', type: 'string', default: 'div', - }, - { - prop: 'animation', - type: 'Booleanish', - default: true, + description: 'Specify the HTML tag to render instead of the default tag for the footer', }, { prop: 'id', type: 'string', default: undefined, + description: + 'Used to set the `id` attribute on the rendered content, and used as the base to generate any additional element IDs as needed', }, { prop: 'isStatus', - type: 'Booleanish', + type: 'boolean', default: false, + description: + "When set to 'true', makes the toast have attributes aria-live=polite and role=status. When 'false' aria-live will be 'assertive' and role will be 'alert'", }, { prop: 'autoHide', - type: 'Booleanish', + type: 'boolean', default: true, + description: 'Used to set if the toast will be dismissed automatically', }, { prop: 'noCloseButton', - type: 'Booleanish', + type: 'boolean', default: false, + description: 'When set, hides the close button in the toast header', }, { prop: 'noFade', - type: 'Booleanish', + type: 'boolean', default: false, + description: + 'When set to `true`, disables the fade animation/transition on the component', }, { prop: 'noHoverPause', - type: 'Booleanish', + type: 'boolean', default: false, + description: + 'When set, disables the pausing of the auto hide delay when the mouse hovers the toast', }, { prop: 'solid', - type: 'Booleanish', + type: 'boolean', default: false, + description: + 'When set, renders the toast with a solid background rather than translucent', }, { prop: 'title', type: 'string', default: undefined, + description: "The toast's title text", }, { prop: 'modelValue', type: 'boolean | number', default: false, + description: + 'Sets if the toast is visible or the number of milliseconds that the toast will be dismissed', }, { prop: 'toastClass', type: 'ClassValue', default: undefined, + description: 'CSS class (or classes) to add to the toast wrapper element', }, { prop: 'showOnPause', - type: 'Booleanish', + type: 'boolean', default: true, + description: "When set, keeps the toast visible when it's paused", }, { prop: 'interval', type: 'number | string', default: '1000', + description: 'The interval of which the countdown timer will refresh itself', }, { prop: 'progressProps', type: "Omit", default: undefined, + description: + 'The properties to define the progress bar in the toast. No toast will be shown if left undefined', }, ], slots: [], @@ -141,7 +155,7 @@ export default { { description: 'Renders the Toaster in the exact place it was defined', prop: 'teleportDisabled', - type: 'Booleanish', + type: 'boolean', default: false, }, ], diff --git a/apps/docs/src/data/components/transition.data.ts b/apps/docs/src/data/components/transition.data.ts index 50bd4ebc1..d537f15b8 100644 --- a/apps/docs/src/data/components/transition.data.ts +++ b/apps/docs/src/data/components/transition.data.ts @@ -7,7 +7,7 @@ export default { props: [ { prop: 'appear', - type: 'Booleanish', + type: 'boolean', default: false, }, { @@ -17,7 +17,7 @@ export default { }, { prop: 'noFade', - type: 'Booleanish', + type: 'boolean', default: false, }, { diff --git a/apps/docs/src/docs/components/collapse.md b/apps/docs/src/docs/components/collapse.md index 2eec7e14c..01ef5ac8b 100644 --- a/apps/docs/src/docs/components/collapse.md +++ b/apps/docs/src/docs/components/collapse.md @@ -215,8 +215,8 @@ The following properties are available for the `header` and `footer` slots: | --------- | -------- | ------------------------------------- | | `visible` | Boolean | Visible state of the collapse | | `toggle` | Function | When called, will toggle the collapse | -| `open` | Function | When called, will open the collapse | -| `close` | Function | When called, will close the collapse | +| `show` | Function | When called, will open the collapse | +| `hide` | Function | When called, will close the collapse | | `id` | String | The ID of the collapsible element | @@ -246,17 +246,6 @@ The following properties are available for the `header` and `footer` slots: -## Optionally scoped default slot - -New in v2.2.0 - -The default slot can be optionally scoped. The following scope properties are available: - -| Property | Type | Description | -| --------- | -------- | ------------------------------------ | -| `visible` | Boolean | Visible state of the collapse | -| `close` | Function | When called, will close the collapse | - ## Accessibility The `v-b-toggle` directive will automatically add the ARIA attributes `aria-controls` and diff --git a/apps/docs/src/docs/components/form-checkbox.md b/apps/docs/src/docs/components/form-checkbox.md index ce2d54bc5..45e435666 100644 --- a/apps/docs/src/docs/components/form-checkbox.md +++ b/apps/docs/src/docs/components/form-checkbox.md @@ -146,7 +146,7 @@ const options = [ - `value` The selected value which will be set on `v-model` - `disabled` Disables item for selection -- `text` Display text, or html Display basic inline html +- `text` Display text, or `html` Display basic inline html `value` can be a string, number, or simple object. Avoid using complex types in values. @@ -271,66 +271,6 @@ const checkEx2Options = [ -## Checkbox values and `v-model` - -By default, `BFormCheckbox` value will be true when checked and false when unchecked. You can customize the checked and unchecked values by specifying the value and unchecked-value properties, respectively. - -When you have multiple checkboxes that bind to a single data state variable, you must provide an array reference (`[ ]`) to your v-model. - -Note that when v-model is bound to multiple checkboxes (i.e an array ref), the unchecked-value is **not used**. Only the value(s) of the checked checkboxes will be returned in the v-model bound array. You should provide a unique value for each checkbox's value prop (the default of true will not work when bound to an array). - -To pre-check any checkboxes, set the v-model to the value(s) of the checks that you would like pre-selected. - -When placing individual `BFormCheckbox` components within a `BFormCheckboxGroup`, most -props and the `v-model` are inherited from the `BFormCheckboxGroup`. - -Note: the unchecked-value prop does not affect the native ``'s `value` attribute, because browsers do not include unchecked boxes in form submissions. To guarantee that one of two values is submitted in a native `
` submit (e.g. 'yes' or 'no'), use radio inputs instead. This is the same limitation that Vue has with native checkbox inputs. - - - - {{ car }} - -
Selected: {{ concatSelectedCars}}
- -
- -### Multiple checkboxes and accessibility - -When binding multiple checkboxes together, you must set the name prop to the same value for all `BFormCheckbox`s in the group individually. This will inform users of assistive technologies that the checkboxes are related and enables native browser keyboard navigation. - ## Inline and stacked checkboxes `BFormCheckboxGroup` components render inline checkboxes by default, while `BFormCheckbox` @@ -472,17 +412,99 @@ Use the `size` prop to control the size of the checkbox. The default size is med +## Reverse + +Use the `reverse` prop to put your checkboxes and switches on the opposite side of the label. + + + Reverse checkbox + Disabled reverse checkbox + Reverse switch ceckbox input + + + +## Checkbox values and `v-model` + +By default, `BFormCheckbox` value will be true when checked and false when unchecked. You can customize the checked and unchecked values by specifying the `value` and `unchecked-value` properties, respectively. + +When you have multiple checkboxes that bind to a single data state variable, you must provide an array reference (`[ ]`) to your v-model. + +Note that when `v-model` is bound to multiple checkboxes (i.e an array ref), the `unchecked-value` is **not used**. Only the value(s) of the checked checkboxes will be returned in the `v-model` bound array. You should provide a unique `value` for each checkbox's `value` prop (the default of `true` will not work when bound to an array). + +To pre-check any checkboxes, set the `v-model` to the value(s) of the checks that you would like pre-selected. + +When placing individual `BFormCheckbox` components within a `BFormCheckboxGroup`, most +props and the `v-model` are inherited from the `BFormCheckboxGroup`. + +**Note:** the `unchecked-value` prop does not affect the native ``'s `value` attribute, because browsers do not include unchecked boxes in form submissions. To guarantee that one of two values is submitted in a native `` submit (e.g. `'yes'` or `'no'`), use radio inputs instead. This is the same limitation that [Vue has with native checkbox inputs](https://vuejs.org/guide/essentials/forms.html#checkbox-1). + + + + {{ car }} + +
Selected: {{ concatSelectedCars}}
+ +
+ +### Multiple checkboxes and accessibility + +When binding multiple checkboxes together, you must set the `name` prop to the same value for all `BFormCheckbox`s in the group individually. This will inform users of assistive technologies that the checkboxes are related and enables native browser keyboard navigation. + +Whenever using multiple checkboxes, it is recommended that the checkboxes be placed in a [`BFormGroup`](/docs/components/form-group) component to associate a label with the entire group of checkboxes. See examples above. + ## Button style checkboxes You can optionally render checkboxes to appear as buttons, either individually, or in a group. -Button style checkboxes will have the class .active automatically applied to the label when they are in the checked state. +Button style checkboxes will have the class `.active` automatically applied to the label when they are in the checked state. ### Individual checkbox button style -A single checkbox can be rendered with a button appearance by setting the prop button to true. +A single checkbox can be rendered with a button appearance by setting the prop `button` to `true`. -Change the button variant by setting the button-variant prop to one of the standard Bootstrap button variants (see `BButton` for supported variants). The default variant is secondary. +Change the button variant by setting the `button-variant` prop to one of the standard Bootstrap button variants +(see [`BButton`](/docs/components/button) for supported variants). The default variant is `secondary`.
@@ -617,7 +639,7 @@ effect. ### Individual checkbox switch style -A single checkbox can be rendered with a switch appearance by setting the prop switch to true. +A single checkbox can be rendered with a switch appearance by setting the prop `switch` to `true`. Switch Checkbox (Checked: {{ switchChecked }}) @@ -784,6 +806,8 @@ const groupSwitchOptions = [ +**Note:** The `plain` prop has no effect when `button` or `buttons` is set. + ## Contextual states Bootstrap includes validation styles for valid and invalid states on most form controls. @@ -876,11 +900,11 @@ tell when the input becomes visible. Normally a checkbox input can only have two states: checked or unchecked. They can have any value, but they either submit that value (checked) or do not (unchecked) with a form submission (although BootstrapVueNext allows a value for the unchecked state on a single checkbox). -Visually, there are actually three states a checkbox can be in: checked, unchecked, or **indeterminate**. +Visually, there are actually three states a checkbox can be in: _checked_, _unchecked_, or **_indeterminate_**. -The indeterminate state is **visual only**. The checkbox is still either checked or unchecked as a value. That means the visual indeterminate state masks the real value of the checkbox, so that better make sense in your UI!. +The _indeterminate_ state is **visual only**. The checkbox is still either checked or unchecked as a value. That means the visual indeterminate state masks the real value of the checkbox, so that better make sense in your UI!. -`BFormCheckbox` supports setting this visual indeterminate state via a secondary named model called indeterminate (defaults to undefined). Clicking the checkbox will clear the indeterminate state and emit an `update:indeterminate=false` event. To reset the state set the indeterminate model value to true. +`BFormCheckbox` supports setting this visual indeterminate state via a secondary named model called `indeterminate` (defaults to `undefined`). Clicking the checkbox will clear the `indeterminate` state and emit an `update:indeterminate=false` event. To reset the state set `v-model:indeterminate` value to `true`. Click me to see what happens @@ -929,7 +953,7 @@ const indeterminate = ref(true) v-model:indeterminate="asIndeterminate" aria-describedby="flavors" aria-controls="flavors" - @change="toggleAll" + @update:modelValue="toggleAll" > {{ allSelected ? 'Un-select All' : 'Select All' }} @@ -967,7 +991,7 @@ const indeterminate = ref(true) v-model:indeterminate="asIndeterminate" aria-describedby="flavors" aria-controls="flavors" - @change="toggleAll" + @update:modelValue="toggleAll" > {{ allSelected ? 'Un-select All' : 'Select All' }} diff --git a/apps/docs/src/docs/components/form-group.md b/apps/docs/src/docs/components/form-group.md index efe6222f9..78c4fc456 100644 --- a/apps/docs/src/docs/components/form-group.md +++ b/apps/docs/src/docs/components/form-group.md @@ -99,18 +99,56 @@ columns does not exceed `12`. See the [Layout and Grid System](/docs/components/layout#how-it-works) docs for further information. -| Prop | Description | -| ----------------- | --------------------------------- | -| `label-cols` | Applies to breakpoint `xs` up | -| `label-cols-sm` | Applies to breakpoint `sm` and up | -| `label-cols-md` | Applies to breakpoint `md` and up | -| `label-cols-lg` | Applies to breakpoint `lg` and up | -| `label-cols-xl` | Applies to breakpoint `xl` and up | -| `content-cols` | Applies to breakpoint `xs` up | -| `content-cols-sm` | Applies to breakpoint `sm` and up | -| `content-cols-md` | Applies to breakpoint `md` and up | -| `content-cols-lg` | Applies to breakpoint `lg` and up | -| `content-cols-xl` | Applies to breakpoint `xl` and up | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropDescription
label-colsApplies to breakpoint xs up
label-cols-smApplies to breakpoint sm and up
label-cols-mdApplies to breakpoint md and up
label-cols-lgApplies to breakpoint xl and up
label-cols-xlApplies to breakpoint xl and up
content-colsApplies to breakpoint xs up
content-cols-smApplies to breakpoint sm and up
content-cols-mdApplies to breakpoint md and up
content-cols-lgApplies to breakpoint xl and up
content-cols-xlApplies to breakpoint xl and up
+Tags are added by clicking the Add button, pressing the Enter key or optionally when the change event fires on the new tag input (i.e. when focus moves from the input). The Add button will only appear when the user has entered a new tag value. + + + + +

Value: {{ basicUsageTags }}

+ diff --git a/packages/bootstrap-vue-next/src/components/BCard/BCardImg.vue b/packages/bootstrap-vue-next/src/components/BCard/BCardImg.vue index c4a850301..5c4f4e029 100644 --- a/packages/bootstrap-vue-next/src/components/BCard/BCardImg.vue +++ b/packages/bootstrap-vue-next/src/components/BCard/BCardImg.vue @@ -4,59 +4,45 @@ diff --git a/packages/bootstrap-vue-next/src/components/BContainer.vue b/packages/bootstrap-vue-next/src/components/BContainer.vue index 9c617a2f3..57e2a92a6 100644 --- a/packages/bootstrap-vue-next/src/components/BContainer.vue +++ b/packages/bootstrap-vue-next/src/components/BContainer.vue @@ -5,34 +5,24 @@ diff --git a/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownDivider.vue b/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownDivider.vue index 81f407a17..0c87927f8 100644 --- a/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownDivider.vue +++ b/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownDivider.vue @@ -5,12 +5,9 @@ diff --git a/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownGroup.vue b/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownGroup.vue index 526a2a2a6..0e5493886 100644 --- a/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownGroup.vue +++ b/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownGroup.vue @@ -24,31 +24,21 @@ diff --git a/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownItemButton.vue b/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownItemButton.vue index 33c507094..ee170f061 100644 --- a/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownItemButton.vue +++ b/packages/bootstrap-vue-next/src/components/BDropdown/BDropdownItemButton.vue @@ -5,7 +5,7 @@ type="button" class="dropdown-item" :class="computedClasses" - :disabled="disabledBoolean" + :disabled="props.disabled" @click="clicked" > @@ -14,38 +14,25 @@ diff --git a/packages/bootstrap-vue-next/src/components/BForm/BFormRow.vue b/packages/bootstrap-vue-next/src/components/BForm/BFormRow.vue index bd18a212c..6e85f6fcc 100644 --- a/packages/bootstrap-vue-next/src/components/BForm/BFormRow.vue +++ b/packages/bootstrap-vue-next/src/components/BForm/BFormRow.vue @@ -5,14 +5,11 @@ diff --git a/packages/bootstrap-vue-next/src/components/BForm/BFormValidFeedback.vue b/packages/bootstrap-vue-next/src/components/BForm/BFormValidFeedback.vue index 558cc90f8..fba6c6297 100644 --- a/packages/bootstrap-vue-next/src/components/BForm/BFormValidFeedback.vue +++ b/packages/bootstrap-vue-next/src/components/BForm/BFormValidFeedback.vue @@ -16,7 +16,6 @@ diff --git a/packages/bootstrap-vue-next/src/components/BFormCheckbox/BFormCheckbox.vue b/packages/bootstrap-vue-next/src/components/BFormCheckbox/BFormCheckbox.vue index b8d494808..e9999cfae 100644 --- a/packages/bootstrap-vue-next/src/components/BFormCheckbox/BFormCheckbox.vue +++ b/packages/bootstrap-vue-next/src/components/BFormCheckbox/BFormCheckbox.vue @@ -7,7 +7,7 @@ v-model="localValue" :class="inputClasses" type="checkbox" - :disabled="disabledBoolean || parentData?.disabled.value" + :disabled="props.disabled || parentData?.disabled.value" :required="computedRequired || undefined" :name="name || parentData?.name.value" :form="form || parentData?.form.value" @@ -17,19 +17,19 @@ :value="value" :true-value="value" :false-value="uncheckedValue" - :indeterminate="indeterminateBoolean" + :indeterminate="props.indeterminate" /> -
@@ -116,99 +116,52 @@ diff --git a/packages/bootstrap-vue-next/src/components/BInputGroup/BInputGroupText.vue b/packages/bootstrap-vue-next/src/components/BInputGroup/BInputGroupText.vue index 1c13e6f87..cb1ee8b53 100644 --- a/packages/bootstrap-vue-next/src/components/BInputGroup/BInputGroupText.vue +++ b/packages/bootstrap-vue-next/src/components/BInputGroup/BInputGroupText.vue @@ -7,16 +7,12 @@ diff --git a/packages/bootstrap-vue-next/src/components/BListGroup/BListGroupItem.vue b/packages/bootstrap-vue-next/src/components/BListGroup/BListGroupItem.vue index fbafb18cf..9aa342532 100644 --- a/packages/bootstrap-vue-next/src/components/BListGroup/BListGroupItem.vue +++ b/packages/bootstrap-vue-next/src/components/BListGroup/BListGroupItem.vue @@ -3,11 +3,11 @@ :is="tagComputed" class="list-group-item" :class="computedClasses" - :aria-current="activeBoolean ? true : undefined" - :aria-disabled="disabledBoolean ? true : undefined" + :aria-current="props.active ? true : undefined" + :aria-disabled="props.disabled ? true : undefined" :target="isLink ? target : undefined" - :href="!buttonBoolean ? href : undefined" - :to="!buttonBoolean ? to : undefined" + :href="!props.button ? href : undefined" + :to="!props.button ? to : undefined" v-bind="computedAttrs" > @@ -16,48 +16,39 @@ diff --git a/packages/bootstrap-vue-next/src/components/BNav/BNavForm.vue b/packages/bootstrap-vue-next/src/components/BNav/BNavForm.vue index 27a0cbdbd..2537f55b9 100644 --- a/packages/bootstrap-vue-next/src/components/BNav/BNavForm.vue +++ b/packages/bootstrap-vue-next/src/components/BNav/BNavForm.vue @@ -16,29 +16,22 @@ diff --git a/packages/bootstrap-vue-next/src/components/BNav/BNavText.vue b/packages/bootstrap-vue-next/src/components/BNav/BNavText.vue index 47c22cf10..9000811e1 100644 --- a/packages/bootstrap-vue-next/src/components/BNav/BNavText.vue +++ b/packages/bootstrap-vue-next/src/components/BNav/BNavText.vue @@ -7,12 +7,9 @@ diff --git a/packages/bootstrap-vue-next/src/components/BNavbar/BNavbarBrand.vue b/packages/bootstrap-vue-next/src/components/BNavbar/BNavbarBrand.vue index 4fb4a9efe..b5fea3093 100644 --- a/packages/bootstrap-vue-next/src/components/BNavbar/BNavbarBrand.vue +++ b/packages/bootstrap-vue-next/src/components/BNavbar/BNavbarBrand.vue @@ -7,7 +7,7 @@ diff --git a/packages/bootstrap-vue-next/src/components/BNavbar/BNavbarToggle.vue b/packages/bootstrap-vue-next/src/components/BNavbar/BNavbarToggle.vue index 5327ddce8..6bc47d0ef 100644 --- a/packages/bootstrap-vue-next/src/components/BNavbar/BNavbarToggle.vue +++ b/packages/bootstrap-vue-next/src/components/BNavbar/BNavbarToggle.vue @@ -1,10 +1,10 @@ diff --git a/packages/bootstrap-vue-next/src/components/BPlaceholder/BPlaceholderTable.vue b/packages/bootstrap-vue-next/src/components/BPlaceholder/BPlaceholderTable.vue index 0ad65da2f..4865eea79 100644 --- a/packages/bootstrap-vue-next/src/components/BPlaceholder/BPlaceholderTable.vue +++ b/packages/bootstrap-vue-next/src/components/BPlaceholder/BPlaceholderTable.vue @@ -1,6 +1,6 @@