123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { createVNode as _createVNode } from "vue";
- // Styles
- import "./VItemGroup.css";
- // Composables
- import { makeComponentProps } from "../../composables/component.mjs";
- import { makeGroupProps, useGroup } from "../../composables/group.mjs";
- import { makeTagProps } from "../../composables/tag.mjs";
- import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
- import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
- export const VItemGroupSymbol = Symbol.for('vuetify:v-item-group');
- export const makeVItemGroupProps = propsFactory({
- ...makeComponentProps(),
- ...makeGroupProps({
- selectedClass: 'v-item--selected'
- }),
- ...makeTagProps(),
- ...makeThemeProps()
- }, 'VItemGroup');
- export const VItemGroup = genericComponent()({
- name: 'VItemGroup',
- props: makeVItemGroupProps(),
- emits: {
- 'update:modelValue': value => true
- },
- setup(props, _ref) {
- let {
- slots
- } = _ref;
- const {
- themeClasses
- } = provideTheme(props);
- const {
- isSelected,
- select,
- next,
- prev,
- selected
- } = useGroup(props, VItemGroupSymbol);
- return () => _createVNode(props.tag, {
- "class": ['v-item-group', themeClasses.value, props.class],
- "style": props.style
- }, {
- default: () => [slots.default?.({
- isSelected,
- select,
- next,
- prev,
- selected: selected.value
- })]
- });
- }
- });
- //# sourceMappingURL=VItemGroup.mjs.map
|