diff --git a/src/components/v-button/v-button.vue b/src/components/v-button/v-button.vue index 6a5c307e6c..1b0c623f27 100644 --- a/src/components/v-button/v-button.vue +++ b/src/components/v-button/v-button.vue @@ -239,6 +239,7 @@ export default defineComponent({ min-width: 60px; padding: 0 12px; + border-radius: 4px; } &.small { diff --git a/src/components/v-checkbox/readme.md b/src/components/v-checkbox/readme.md index c355392aff..e0bf88df08 100644 --- a/src/components/v-checkbox/readme.md +++ b/src/components/v-checkbox/readme.md @@ -95,9 +95,11 @@ If you can't, you should listen to the `update:indeterminate` event and respond | `indeterminate` | Show the indeterminate state | `false` | ## Slots -| Slot | Description | -|---------|------------------------------------------------------------------------------------------------| -| `label` | Allows custom markup and HTML to be rendered inside the label. Will override the `label` prop. | +| Slot | Description | +|-----------|------------------------------------------------------------------------------------------------| +| `label` | Allows custom markup and HTML to be rendered inside the label. Will override the `label` prop. | +| `prepend` | Rendered right before the checkbox | +| `append` | Rendered right after the label | ## Events | Event | Description | Data | diff --git a/src/components/v-checkbox/v-checkbox.story.ts b/src/components/v-checkbox/v-checkbox.story.ts index 43f5ea5aed..3378b7b29b 100644 --- a/src/components/v-checkbox/v-checkbox.story.ts +++ b/src/components/v-checkbox/v-checkbox.story.ts @@ -112,3 +112,27 @@ export const htmlLabel = () => ({ `, }); + +export const slots = () => ({ + methods: { + onChange: action('change'), + }, + data() { + return { + checked: false, + }; + }, + template: ` +
+ + + + + +
+ `, +}); diff --git a/src/components/v-checkbox/v-checkbox.vue b/src/components/v-checkbox/v-checkbox.vue index 65fa657ceb..57864ce33c 100644 --- a/src/components/v-checkbox/v-checkbox.vue +++ b/src/components/v-checkbox/v-checkbox.vue @@ -8,10 +8,12 @@ :disabled="disabled" :class="{ checked: isChecked }" > - +
+ {{ label }} +
@@ -105,7 +107,7 @@ export default defineComponent({ @include no-wrap; } - & .v-icon { + & .checkbox { --v-icon-color: var(--foreground-subdued); } @@ -116,21 +118,27 @@ export default defineComponent({ color: var(--foreground-subdued); } - .v-icon { + .checkbox { --v-icon-color: var(--foreground-subdued); } } &:not(:disabled):hover { - .v-icon { + .checkbox { --v-icon-color: var(--foreground-subdued); } } &:not(:disabled).checked { - .v-icon { + .checkbox { --v-icon-color: var(--v-checkbox-color); } } + + .prepend, + .append { + display: contents; + font-size: 1rem; + } } diff --git a/src/components/v-divider/readme.md b/src/components/v-divider/readme.md index 8b11101007..f1fc2d6a46 100644 --- a/src/components/v-divider/readme.md +++ b/src/components/v-divider/readme.md @@ -12,7 +12,6 @@ Divides content. Made to be used in `v-list` or `v-tabs` components. | Prop | Description | Default | |------------|-----------------------------------------------------|---------| | `vertical` | Render the divider vertically | `false` | -| `inset` | Insets the divider to align with the (list) content | `false` | ## Events n/a diff --git a/src/components/v-divider/v-divider.story.ts b/src/components/v-divider/v-divider.story.ts index 709a9b6436..3f9dfc44d8 100644 --- a/src/components/v-divider/v-divider.story.ts +++ b/src/components/v-divider/v-divider.story.ts @@ -26,12 +26,9 @@ export const basic = () => vertical: { default: boolean('Vertical', false), }, - inset: { - default: boolean('Inset', false), - }, }, template: ` - + `, }); @@ -42,12 +39,9 @@ export const withText = () => vertical: { default: boolean('Vertical', false), }, - inset: { - default: boolean('Inset', false), - }, }, template: ` - + This is a divider. `, @@ -64,11 +58,7 @@ export const inList = () => VListItemTitle, VIcon, }, - props: { - inset: { - default: boolean('Inset', false), - }, - }, + props: {}, template: ` @@ -79,7 +69,7 @@ export const inList = () => - + @@ -88,7 +78,7 @@ export const inList = () => - + diff --git a/src/components/v-divider/v-divider.vue b/src/components/v-divider/v-divider.vue index b62ba4f13b..5d02ccf67a 100644 --- a/src/components/v-divider/v-divider.vue +++ b/src/components/v-divider/v-divider.vue @@ -1,5 +1,5 @@ diff --git a/src/components/v-table/v-table.vue b/src/components/v-table/v-table.vue index d24c97967f..479ce78560 100644 --- a/src/components/v-table/v-table.vue +++ b/src/components/v-table/v-table.vue @@ -153,10 +153,18 @@ export default defineComponent({ setup(props, { emit, listeners }) { const _headers = computed({ get: () => { - return props.headers.map((header: HeaderRaw) => ({ - ...HeaderDefaults, - ...header, - })); + return props.headers + .map((header: HeaderRaw) => ({ + ...HeaderDefaults, + ...header, + })) + .map((header) => { + if (header.width && header.width < 24) { + header.width = 24; + } + + return header; + }); }, set: (newHeaders: Header[]) => { emit( @@ -196,7 +204,7 @@ export default defineComponent({ }); const loadingColSpan = computed(() => { - let length = _headers.value.length; + let length = _headers.value.length + 1; // +1 account for spacer if (props.showSelect) length = length + 1; if (props.showManualSort) length = length + 1; return `1 / span ${length}`; @@ -220,7 +228,7 @@ export default defineComponent({ }); const allItemsSelected = computed(() => { - return props.selection.length === props.items.length; + return props.loading === false && props.selection.length === props.items.length; }); const someItemsSelected = computed(() => { @@ -231,17 +239,15 @@ export default defineComponent({ const columnStyle = computed(() => { let gridTemplateColumns = _headers.value - .map((header, index, array) => { - if (index !== array.length - 1) { - return header.width ? `${header.width}px` : 'min-content'; - } else { - return `minmax(min-content, 1fr)`; - } + .map((header) => { + return header.width ? `${header.width}px` : 'min-content'; }) .reduce((acc, val) => (acc += ' ' + val), ''); if (props.showSelect) gridTemplateColumns = 'auto ' + gridTemplateColumns; if (props.showManualSort) gridTemplateColumns = 'auto ' + gridTemplateColumns; + + gridTemplateColumns = gridTemplateColumns + ' 1fr'; return gridTemplateColumns; }); @@ -316,6 +322,7 @@ export default defineComponent({ display: grid; grid-template-columns: var(--grid-columns); min-width: 100%; + border-collapse: collapse; border-spacing: 0; ::v-deep { diff --git a/src/layouts/tabular/tabular.vue b/src/layouts/tabular/tabular.vue index 6f16c366b4..30b3bd0f40 100644 --- a/src/layouts/tabular/tabular.vue +++ b/src/layouts/tabular/tabular.vue @@ -2,14 +2,19 @@
- + + > + + diff --git a/src/modules/collections/routes/browse/browse.vue b/src/modules/collections/routes/browse/browse.vue index cf2b945c14..4a0a05c8c3 100644 --- a/src/modules/collections/routes/browse/browse.vue +++ b/src/modules/collections/routes/browse/browse.vue @@ -2,15 +2,11 @@ - -