diff --git a/src/components/v-form/v-form.vue b/src/components/v-form/v-form.vue index c79cf4b04e..7712825246 100644 --- a/src/components/v-form/v-form.vue +++ b/src/components/v-form/v-form.vue @@ -84,6 +84,7 @@ : values[field.field] " :width="field.width" + :type="field.type" @input="setValue(field, $event)" /> diff --git a/src/components/v-input/readme.md b/src/components/v-input/readme.md index 9272eeeb36..b0fa44aefe 100644 --- a/src/components/v-input/readme.md +++ b/src/components/v-input/readme.md @@ -23,6 +23,7 @@ You can add any custom (text) prefix/suffix to the value in the input using the | `suffix` | Show a value at the end of the input | -- | | `slug` | Force the value to be URL safe | `false` | | `slug-separator` | What character to use as separator in slugs | `-` | +| `active` | Force the focus state | `false` | Note: all other attached attributes are bound to the input HTMLELement in the component. This allows you to attach any of the standard HTML attributes like `min`, `length`, or `pattern`. diff --git a/src/components/v-input/v-input.vue b/src/components/v-input/v-input.vue index f6bdca3119..2d83bafab1 100644 --- a/src/components/v-input/v-input.vue +++ b/src/components/v-input/v-input.vue @@ -7,7 +7,7 @@
-
+
@@ -105,6 +105,10 @@ export default defineComponent({ type: Number, default: 1, }, + active: { + type: Boolean, + default: false, + }, }, setup(props, { emit, listeners }) { const input = ref(null); @@ -221,7 +225,8 @@ body { border-color: var(--border-normal-alt); } - &:focus-within { + &:focus-within, + &.active { --arrow-color: var(--primary); color: var(--foreground-normal); @@ -249,7 +254,7 @@ body { input { flex-grow: 1; - width: 100px; // allows flex to shrink to allow for slots + width: 20px; // allows flex to grow/shrink to allow for slots height: 100%; font-family: var(--v-input-font-family); background-color: transparent; @@ -290,12 +295,6 @@ body { } } - &.active .input { - color: var(--foreground-normal); - background-color: var(--background-page); - border-color: var(--primary); - } - .append-outer { margin-left: 8px; } diff --git a/src/components/v-list/v-list-item.vue b/src/components/v-list/v-list-item.vue index 06a2d75c5d..529ccf3c03 100644 --- a/src/components/v-list/v-list-item.vue +++ b/src/components/v-list/v-list-item.vue @@ -3,7 +3,6 @@ :is="component" active-class="active" class="v-list-item" - exact :to="to" :class="{ active, diff --git a/src/components/v-menu/readme.md b/src/components/v-menu/readme.md index 46f4589f75..1395681ad3 100644 --- a/src/components/v-menu/readme.md +++ b/src/components/v-menu/readme.md @@ -57,8 +57,6 @@ export default { ## Props -Strap in - ### Positioning | Prop | Description | Default | @@ -70,22 +68,22 @@ Strap in | `bottom` | Aligns the menu to the bottom of the activator, going down (if possible) | `false` | | `left` | Aligns the menu to the left of the activator, expanding left (if possible) | `false` | | `right` | Aligns the menu to the right of the activator, expanding right (if possible) | `false` | -| `offsetX` | Positions the menu along the X-Axis so as not to cover any of the activator | `false` | -| `offsetY` | Positions the menu along the Y-Axis so as not to cover any of the activator | `false` | -| `positionX` | "left" css value of menu. Only works with `absolute` or `fixed` | `undefined` | -| `positionY` | "top" css value of menu. Only works with `absolute` or `fixed` | `undefined` | -| `disabled` | Prevent the menu from being opened by clicking on the activator | `false` | +| `offset-x` | Positions the menu along the X-Axis so as not to cover any of the activator | `false` | +| `offset-y` | Positions the menu along the Y-Axis so as not to cover any of the activator | `false` | +| `position-x` | "left" css value of menu. Only works with `absolute` or `fixed` | `undefined` | +| `position-y` | "top" css value of menu. Only works with `absolute` or `fixed` | `undefined` | ### Behavior -| Prop | Description | Default | -| --------------------- | --------------------------------------------------------- | ------- | -| `closeOnClick` | Closes the menu when user clicks somewhere else | `true` | -| `closeOnContentClick` | Closes the menu when user clicks on a menu item | `false` | -| `openOnClick` | Open the menu when activator is clicked | `true` | -| `openOnHover` | Open the menu when activator is hovered over | `false` | -| `openDelay` | Delay in milliseconds after hover enter for menu to open | `0` | -| `closeDelay` | Delay in milliseconds after hover leave for menu to close | `0` | +| Prop | Description | Default | +|-----------------------|-------------------------------------------------------------|---------| +| `closeOnClick` | Closes the menu when user clicks somewhere else | `true` | +| `closeOnContentClick` | Closes the menu when user clicks on a menu item | `false` | +| `openOnClick` | Open the menu when activator is clicked | `true` | +| `openOnHover` | Open the menu when activator is hovered over | `false` | +| `openDelay` | Delay in milliseconds after hover enter for menu to open | `0` | +| `closeDelay` | Delay in milliseconds after hover leave for menu to close | `0` | +| `overflow-scroll` | Overflow the content in the menu when it reaches max height | `true` | ### Control diff --git a/src/components/v-menu/v-menu.vue b/src/components/v-menu/v-menu.vue index fd0dff42d7..0c9264ce7f 100644 --- a/src/components/v-menu/v-menu.vue +++ b/src/components/v-menu/v-menu.vue @@ -23,7 +23,11 @@ :style="arrowStyles" data-popper-arrow /> -
+
@@ -65,6 +69,10 @@ export default defineComponent({ type: Boolean, default: false, }, + overflowScroll: { + type: Boolean, + default: true, + }, }, setup(props, { emit }) { const activator = ref(null); @@ -239,8 +247,6 @@ body { .v-menu-content { max-height: 50vh; padding: 0 4px; - overflow-x: hidden; - overflow-y: auto; background-color: var(--background-subdued); border: 2px solid var(--border-normal); border-radius: var(--border-radius); @@ -249,7 +255,12 @@ body { transition-timing-function: var(--transition-out); transition-duration: var(--fast); transition-property: opacity, transform; - contain: content; + + &.overflow-scroll { + contain: content; + overflow-x: hidden; + overflow-y: auto; + } .v-list { --v-list-background-color: transparent; diff --git a/src/components/v-select/readme.md b/src/components/v-select/readme.md index bec5c125f4..f3a53a264a 100644 --- a/src/components/v-select/readme.md +++ b/src/components/v-select/readme.md @@ -22,17 +22,18 @@ Renders a dropdown input. ## Props -| Prop | Description | Default | -|-----------------|-----------------------------------------------------|---------| -| `items`\* | Items to render in the select | | -| `itemText` | What item value to use for the display text | `text` | -| `itemValue` | What item value to use for the item value | `value` | -| `value` | Currently selected item(s) | | -| `multiple` | Allow multiple items to be selected | `false` | -| `placeholder` | What placeholder to show when no items are selected | | -| `full-width` | Render the select at full width | | -| `disabled` | Disable the select | | -| `show-deselect` | Show the deselect option when a value has been set | | +| Prop | Description | Default | +|--------------------------|-----------------------------------------------------|---------| +| `items`\* | Items to render in the select | | +| `itemText` | What item value to use for the display text | `text` | +| `itemValue` | What item value to use for the item value | `value` | +| `value` | Currently selected item(s) | | +| `multiple` | Allow multiple items to be selected | `false` | +| `placeholder` | What placeholder to show when no items are selected | | +| `full-width` | Render the select at full width | | +| `disabled` | Disable the select | | +| `show-deselect` | Show the deselect option when a value has been set | | +| `close-on-content-click` | Close the select when selecting a value | `true` | ## Events diff --git a/src/components/v-select/v-select.vue b/src/components/v-select/v-select.vue index de67e5cebc..4c4f8b902e 100644 --- a/src/components/v-select/v-select.vue +++ b/src/components/v-select/v-select.vue @@ -1,6 +1,11 @@