diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 71c9a88c3..baf2fb755 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,4 +1,4 @@ { - "packages/bootstrap-vue-next": "0.41.0", - "packages/nuxt": "0.41.0" + "packages/bootstrap-vue-next": "0.42.0", + "packages/nuxt": "0.42.0" } diff --git a/apps/docs/src/data/components/formFile.data.ts b/apps/docs/src/data/components/formFile.data.ts index 37d01286e..a649d66a0 100644 --- a/apps/docs/src/data/components/formFile.data.ts +++ b/apps/docs/src/data/components/formFile.data.ts @@ -39,10 +39,10 @@ export default { description: 'Text for the browse button (custom mode only)', }, capture: { - type: "'boolean' | 'user' | 'environment'", - default: false, + type: "'user' | 'environment'", + default: undefined, description: - "When set, will instruct the browser to use the device's camera (if supported)", + "When set, will instruct the browser to use the device's camera (if supported). 'user' requests the user-facing camera, 'environment' requests the outward-facing camera", }, directory: { type: 'boolean', @@ -52,7 +52,8 @@ export default { dropPlaceholder: { type: 'string', default: undefined, - description: 'Text to display when dragging files over the drop zone (custom mode only)', + description: + 'Text to display when dragging files over the drop zone (custom mode only). Defaults to "Drop files here..." when not specified', }, fileNameFormatter: { type: '(files: readonly File[]) => string', @@ -94,7 +95,7 @@ export default { }, placeholder: { type: 'string', - default: undefined, + default: 'No file chosen', description: 'Text to display when no file is selected (custom mode only)', }, showFileNames: { diff --git a/apps/docs/src/data/components/formGroup.data.ts b/apps/docs/src/data/components/formGroup.data.ts index f4a54335e..b461f371d 100644 --- a/apps/docs/src/data/components/formGroup.data.ts +++ b/apps/docs/src/data/components/formGroup.data.ts @@ -41,6 +41,12 @@ export default { default: 'undefined', description: "Number of columns for the content width 'xl' screens and up", }, + contentWrapperAttrs: { + type: 'Readonly', + default: 'undefined', + description: + 'Additional attributes to apply to the content column wrapper in horizontal layout mode. Useful for adding custom classes or styles to control the width/layout of the content column. Only applies when using label-cols or content-cols props', + }, description: { type: 'string', default: 'undefined', @@ -139,6 +145,12 @@ export default { description: 'Visually hides the label content, but makes it available to screen reader users', }, + labelWrapperAttrs: { + type: 'Readonly', + default: 'undefined', + description: + 'Additional attributes to apply to the label column wrapper in horizontal layout mode. Useful for adding custom classes or styles to override the default column width set by label-cols. Only applies when using label-cols or content-cols props', + }, validFeedback: { type: 'string', default: 'undefined', diff --git a/apps/docs/src/docs/components/demo/FormFileCustomText.vue b/apps/docs/src/docs/components/demo/FormFileCustomText.vue index 43f357e08..101224360 100644 --- a/apps/docs/src/docs/components/demo/FormFileCustomText.vue +++ b/apps/docs/src/docs/components/demo/FormFileCustomText.vue @@ -3,7 +3,7 @@
Selected: {{ file1?.name || 'None' }} diff --git a/apps/docs/src/docs/components/demo/FormGroupWrapperAttrsBasic.vue b/apps/docs/src/docs/components/demo/FormGroupWrapperAttrsBasic.vue new file mode 100644 index 000000000..1a0482bed --- /dev/null +++ b/apps/docs/src/docs/components/demo/FormGroupWrapperAttrsBasic.vue @@ -0,0 +1,15 @@ + diff --git a/apps/docs/src/docs/components/demo/FormGroupWrapperAttrsCustom.vue b/apps/docs/src/docs/components/demo/FormGroupWrapperAttrsCustom.vue new file mode 100644 index 000000000..248a59ca0 --- /dev/null +++ b/apps/docs/src/docs/components/demo/FormGroupWrapperAttrsCustom.vue @@ -0,0 +1,25 @@ + + + diff --git a/apps/docs/src/docs/components/form-group.md b/apps/docs/src/docs/components/form-group.md index d35286bcf..f2749179a 100644 --- a/apps/docs/src/docs/components/form-group.md +++ b/apps/docs/src/docs/components/form-group.md @@ -91,6 +91,26 @@ value via the prop `label-text-align` and/or `label-align-{breakpoint}`. Alignment has no effect if the `label-visually-hidden` prop is set. +### Customizing wrapper elements in horizontal layout + +When using horizontal layout (with `label-cols` or `content-cols` props), the label and content are wrapped in column elements. You can apply additional attributes, classes, or styles to these wrapper elements using the `label-wrapper-attrs` and `content-wrapper-attrs` props. + +This is particularly useful when you need to override the default column widths with custom sizing: + +<<< DEMO ./demo/FormGroupWrapperAttrsBasic.vue#template{vue-html} + +**Important Notes:** + +- These props **only apply in horizontal layout mode** (when `label-cols` or `content-cols` is set) +- `label-wrapper-attrs` applies to the column wrapper around the label element +- `content-wrapper-attrs` applies to the column wrapper around the content/input +- Use `label-class` if you need to style the `