vuetify 3.4.0 → 3.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/json/attributes.json +1860 -1856
  2. package/dist/json/importMap.json +140 -140
  3. package/dist/json/tags.json +1 -0
  4. package/dist/json/web-types.json +3641 -3631
  5. package/dist/vuetify-labs.css +1393 -1386
  6. package/dist/vuetify-labs.d.ts +1936 -9147
  7. package/dist/vuetify-labs.esm.js +91 -79
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +91 -79
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +940 -933
  12. package/dist/vuetify.d.ts +2081 -9282
  13. package/dist/vuetify.esm.js +91 -79
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +91 -79
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +67 -66
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.mts +0 -2
  21. package/lib/blueprints/md1.d.mts +0 -2
  22. package/lib/blueprints/md2.d.mts +0 -2
  23. package/lib/blueprints/md3.d.mts +0 -2
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -3
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.mts +74 -98
  27. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +1 -1
  28. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  29. package/lib/components/VBottomNavigation/index.d.mts +44 -69
  30. package/lib/components/VBtn/VBtn.mjs +1 -1
  31. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  32. package/lib/components/VBtn/index.d.mts +11 -11
  33. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  34. package/lib/components/VBtnToggle/index.d.mts +45 -71
  35. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  36. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  37. package/lib/components/VCarousel/index.d.mts +73 -513
  38. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  39. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
  40. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  41. package/lib/components/VCheckbox/index.d.mts +100 -482
  42. package/lib/components/VChip/index.d.mts +15 -18
  43. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  44. package/lib/components/VChipGroup/index.d.mts +49 -189
  45. package/lib/components/VCombobox/VCombobox.mjs +3 -3
  46. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  47. package/lib/components/VCombobox/index.d.mts +74 -98
  48. package/lib/components/VDataIterator/index.d.mts +8 -6
  49. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  50. package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
  51. package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
  52. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  53. package/lib/components/VDataTable/VDataTableVirtual.mjs +2 -1
  54. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  55. package/lib/components/VDataTable/composables/items.mjs.map +1 -1
  56. package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
  57. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  58. package/lib/components/VDataTable/index.d.mts +411 -4142
  59. package/lib/components/VDataTable/types.mjs.map +1 -1
  60. package/lib/components/VDatePicker/VDatePicker.css +4 -0
  61. package/lib/components/VDatePicker/VDatePicker.mjs +29 -22
  62. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  63. package/lib/components/VDatePicker/VDatePicker.sass +4 -0
  64. package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -1
  65. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  66. package/lib/components/VDatePicker/VDatePickerYears.mjs +1 -1
  67. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  68. package/lib/components/VDatePicker/index.d.mts +32 -36
  69. package/lib/components/VDialog/VDialog.css +4 -1
  70. package/lib/components/VDialog/VDialog.sass +4 -3
  71. package/lib/components/VField/VField.mjs +1 -1
  72. package/lib/components/VField/VField.mjs.map +1 -1
  73. package/lib/components/VField/index.d.mts +33 -41
  74. package/lib/components/VFileInput/index.d.mts +144 -385
  75. package/lib/components/VImg/VImg.mjs +10 -2
  76. package/lib/components/VImg/VImg.mjs.map +1 -1
  77. package/lib/components/VInput/VInput.mjs +1 -1
  78. package/lib/components/VInput/VInput.mjs.map +1 -1
  79. package/lib/components/VInput/index.d.mts +72 -154
  80. package/lib/components/VItemGroup/VItemGroup.mjs +1 -1
  81. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  82. package/lib/components/VItemGroup/index.d.mts +49 -189
  83. package/lib/components/VList/VList.mjs +2 -2
  84. package/lib/components/VList/VList.mjs.map +1 -1
  85. package/lib/components/VList/index.d.mts +58 -95
  86. package/lib/components/VOtpInput/index.d.mts +8 -11
  87. package/lib/components/VRadio/index.d.mts +1 -1
  88. package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -1
  89. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  90. package/lib/components/VRadioGroup/index.d.mts +77 -211
  91. package/lib/components/VRangeSlider/index.d.mts +22 -25
  92. package/lib/components/VSelect/VSelect.mjs +2 -2
  93. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  94. package/lib/components/VSelect/index.d.mts +67 -91
  95. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -2
  96. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  97. package/lib/components/VSelectionControl/index.d.mts +9 -18
  98. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +1 -1
  99. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  100. package/lib/components/VSelectionControlGroup/index.d.mts +46 -68
  101. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  102. package/lib/components/VSlideGroup/index.d.mts +47 -101
  103. package/lib/components/VSlider/index.d.mts +22 -25
  104. package/lib/components/VSwitch/VSwitch.mjs +7 -5
  105. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  106. package/lib/components/VSwitch/index.d.mts +90 -303
  107. package/lib/components/VTextField/index.d.mts +173 -451
  108. package/lib/components/VTextarea/index.d.mts +144 -385
  109. package/lib/components/VValidation/VValidation.mjs +2 -2
  110. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  111. package/lib/components/VValidation/index.d.mts +88 -359
  112. package/lib/components/VWindow/VWindow.mjs +1 -1
  113. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  114. package/lib/components/VWindow/index.d.mts +58 -245
  115. package/lib/components/index.d.mts +1933 -9130
  116. package/lib/composables/date/DateAdapter.mjs.map +1 -1
  117. package/lib/composables/date/adapters/vuetify.mjs +1 -13
  118. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  119. package/lib/composables/date/date.mjs +1 -1
  120. package/lib/composables/date/date.mjs.map +1 -1
  121. package/lib/composables/form.mjs.map +1 -1
  122. package/lib/composables/group.mjs.map +1 -1
  123. package/lib/composables/nested/nested.mjs.map +1 -1
  124. package/lib/composables/proxiedModel.mjs.map +1 -1
  125. package/lib/composables/validation.mjs.map +1 -1
  126. package/lib/composables/virtual.mjs +11 -13
  127. package/lib/composables/virtual.mjs.map +1 -1
  128. package/lib/entry-bundler.mjs +1 -1
  129. package/lib/framework.mjs +1 -1
  130. package/lib/index.d.mts +40 -44
  131. package/lib/labs/VConfirmEdit/index.d.mts +0 -10
  132. package/lib/labs/components.d.mts +0 -10
  133. package/lib/util/defineComponent.mjs.map +1 -1
  134. package/lib/util/helpers.mjs.map +1 -1
  135. package/package.json +2 -2
@@ -134,7 +134,7 @@ export const VBtn = genericComponent()({
134
134
  return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);
135
135
  });
136
136
  const valueAttr = computed(() => {
137
- if (props.value === undefined) return undefined;
137
+ if (props.value === undefined || typeof props.value === 'symbol') return undefined;
138
138
  return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;
139
139
  });
140
140
  function onClick(e) {
@@ -1 +1 @@
1
- {"version":3,"file":"VBtn.mjs","names":["VBtnToggleSymbol","VDefaultsProvider","VIcon","VProgressCircular","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","IconValue","makeLoaderProps","useLoader","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","useSelectLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","genericComponent","propsFactory","useRender","makeVBtnProps","active","type","Boolean","default","undefined","symbol","flat","icon","String","Function","Object","prependIcon","appendIcon","block","slim","stacked","ripple","text","tag","variant","VBtn","name","directives","props","emits","val","setup","_ref","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","loaderClasses","locationStyles","positionClasses","roundedClasses","sizeClasses","sizeStyles","group","link","isActive","isLink","value","isSelected","isDisabled","disabled","isElevated","border","valueAttr","JSON","stringify","onClick","e","metaKey","ctrlKey","shiftKey","button","target","navigate","toggle","select","Tag","hasPrepend","prepend","hasAppend","append","hasIcon","hasColor","_withDirectives","_createVNode","selectedClass","loading","class","style","href","loader","_resolveDirective"],"sources":["../../../src/components/VBtn/VBtn.tsx"],"sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { useSelectLink } from '@/composables/selectLink'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VBtnSlots = {\n default: never\n prepend: never\n append: never\n loader: never\n}\n\nexport const makeVBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n block: Boolean,\n slim: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n}, 'VBtn')\n\nexport const VBtn = genericComponent<VBtnSlots>()({\n name: 'VBtn',\n\n directives: { Ripple },\n\n props: makeVBtnProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active\n }\n\n if (link.isLink.value) {\n return link.isActive?.value\n }\n\n return group?.isSelected.value\n })\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border)\n })\n const valueAttr = computed(() => {\n if (props.value === undefined) return undefined\n\n return Object(props.value) === props.value\n ? JSON.stringify(props.value, null, 0) : props.value\n })\n\n function onClick (e: MouseEvent) {\n if (\n isDisabled.value ||\n (link.isLink.value && (\n e.metaKey ||\n e.ctrlKey ||\n e.shiftKey ||\n (e.button !== 0) ||\n attrs.target === '_blank'\n ))\n ) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n useSelectLink(link, group?.select)\n\n useRender(() => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasPrepend = !!(props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendIcon || slots.append)\n const hasIcon = !!(props.icon && props.icon !== true)\n const hasColor = (\n (group?.isSelected.value && (!link.isLink.value || link.isActive?.value)) ||\n (!group || link.isActive?.value)\n )\n\n return (\n <Tag\n type={ Tag === 'a' ? undefined : 'button' }\n class={[\n 'v-btn',\n group?.selectedClass.value,\n {\n 'v-btn--active': isActive.value,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--slim': props.slim,\n 'v-btn--stacked': props.stacked,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n locationStyles.value,\n sizeStyles.value,\n props.style,\n ]}\n disabled={ isDisabled.value || undefined }\n href={ link.href.value }\n v-ripple={[\n !isDisabled.value && props.ripple,\n null,\n props.icon ? ['center'] : null,\n ]}\n onClick={ onClick }\n value={ valueAttr.value }\n >\n { genOverlays(true, 'v-btn') }\n\n { !props.icon && hasPrepend && (\n <span key=\"prepend\" class=\"v-btn__prepend\">\n { !slots.prepend ? (\n <VIcon\n key=\"prepend-icon\"\n icon={ props.prependIcon }\n />\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !props.prependIcon }\n defaults={{\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </span>\n )}\n\n <span class=\"v-btn__content\" data-no-activator=\"\">\n { (!slots.default && hasIcon) ? (\n <VIcon\n key=\"content-icon\"\n icon={ props.icon }\n />\n ) : (\n <VDefaultsProvider\n key=\"content-defaults\"\n disabled={ !hasIcon }\n defaults={{\n VIcon: {\n icon: props.icon,\n },\n }}\n >\n { slots.default?.() ?? props.text }\n </VDefaultsProvider>\n )}\n </span>\n\n { !props.icon && hasAppend && (\n <span key=\"append\" class=\"v-btn__append\">\n { !slots.append ? (\n <VIcon\n key=\"append-icon\"\n icon={ props.appendIcon }\n />\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !props.appendIcon }\n defaults={{\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n v-slots:default={ slots.append }\n />\n )}\n </span>\n )}\n\n { !!props.loading && (\n <span key=\"loader\" class=\"v-btn__loader\">\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"23\"\n width=\"2\"\n />\n )}\n </span>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBtn = InstanceType<typeof VBtn>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VBtn.mjs","names":["VBtnToggleSymbol","VDefaultsProvider","VIcon","VProgressCircular","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","IconValue","makeLoaderProps","useLoader","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeRouterProps","useLink","useSelectLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","genericComponent","propsFactory","useRender","makeVBtnProps","active","type","Boolean","default","undefined","symbol","flat","icon","String","Function","Object","prependIcon","appendIcon","block","slim","stacked","ripple","text","tag","variant","VBtn","name","directives","props","emits","val","setup","_ref","attrs","slots","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","loaderClasses","locationStyles","positionClasses","roundedClasses","sizeClasses","sizeStyles","group","link","isActive","isLink","value","isSelected","isDisabled","disabled","isElevated","border","valueAttr","JSON","stringify","onClick","e","metaKey","ctrlKey","shiftKey","button","target","navigate","toggle","select","Tag","hasPrepend","prepend","hasAppend","append","hasIcon","hasColor","_withDirectives","_createVNode","selectedClass","loading","class","style","href","loader","_resolveDirective"],"sources":["../../../src/components/VBtn/VBtn.tsx"],"sourcesContent":["// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { useSelectLink } from '@/composables/selectLink'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VBtnSlots = {\n default: never\n prepend: never\n append: never\n loader: never\n}\n\nexport const makeVBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n block: Boolean,\n slim: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'elevated' } as const),\n}, 'VBtn')\n\nexport const VBtn = genericComponent<VBtnSlots>()({\n name: 'VBtn',\n\n directives: { Ripple },\n\n props: makeVBtnProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { loaderClasses } = useLoader(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active\n }\n\n if (link.isLink.value) {\n return link.isActive?.value\n }\n\n return group?.isSelected.value\n })\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border)\n })\n const valueAttr = computed(() => {\n if (props.value === undefined || typeof props.value === 'symbol') return undefined\n\n return Object(props.value) === props.value\n ? JSON.stringify(props.value, null, 0)\n : props.value\n })\n\n function onClick (e: MouseEvent) {\n if (\n isDisabled.value ||\n (link.isLink.value && (\n e.metaKey ||\n e.ctrlKey ||\n e.shiftKey ||\n (e.button !== 0) ||\n attrs.target === '_blank'\n ))\n ) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n useSelectLink(link, group?.select)\n\n useRender(() => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasPrepend = !!(props.prependIcon || slots.prepend)\n const hasAppend = !!(props.appendIcon || slots.append)\n const hasIcon = !!(props.icon && props.icon !== true)\n const hasColor = (\n (group?.isSelected.value && (!link.isLink.value || link.isActive?.value)) ||\n (!group || link.isActive?.value)\n )\n\n return (\n <Tag\n type={ Tag === 'a' ? undefined : 'button' }\n class={[\n 'v-btn',\n group?.selectedClass.value,\n {\n 'v-btn--active': isActive.value,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--slim': props.slim,\n 'v-btn--stacked': props.stacked,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n loaderClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n locationStyles.value,\n sizeStyles.value,\n props.style,\n ]}\n disabled={ isDisabled.value || undefined }\n href={ link.href.value }\n v-ripple={[\n !isDisabled.value && props.ripple,\n null,\n props.icon ? ['center'] : null,\n ]}\n onClick={ onClick }\n value={ valueAttr.value }\n >\n { genOverlays(true, 'v-btn') }\n\n { !props.icon && hasPrepend && (\n <span key=\"prepend\" class=\"v-btn__prepend\">\n { !slots.prepend ? (\n <VIcon\n key=\"prepend-icon\"\n icon={ props.prependIcon }\n />\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !props.prependIcon }\n defaults={{\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </span>\n )}\n\n <span class=\"v-btn__content\" data-no-activator=\"\">\n { (!slots.default && hasIcon) ? (\n <VIcon\n key=\"content-icon\"\n icon={ props.icon }\n />\n ) : (\n <VDefaultsProvider\n key=\"content-defaults\"\n disabled={ !hasIcon }\n defaults={{\n VIcon: {\n icon: props.icon,\n },\n }}\n >\n { slots.default?.() ?? props.text }\n </VDefaultsProvider>\n )}\n </span>\n\n { !props.icon && hasAppend && (\n <span key=\"append\" class=\"v-btn__append\">\n { !slots.append ? (\n <VIcon\n key=\"append-icon\"\n icon={ props.appendIcon }\n />\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !props.appendIcon }\n defaults={{\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n v-slots:default={ slots.append }\n />\n )}\n </span>\n )}\n\n { !!props.loading && (\n <span key=\"loader\" class=\"v-btn__loader\">\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"23\"\n width=\"2\"\n />\n )}\n </span>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VBtn = InstanceType<typeof VBtn>\n"],"mappings":"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"}
@@ -1,8 +1,18 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentInternalInstance, Ref, ComputedRef, ComponentPropsOptions, ExtractPropTypes, JSXComponent, PropType } from 'vue';
2
+ import { ComponentPropsOptions, ExtractPropTypes, ComponentInternalInstance, Ref, ComputedRef, JSXComponent, PropType } from 'vue';
3
3
  // @ts-ignore
4
4
  import * as vue_router from 'vue-router';
5
5
 
6
+ declare const block: readonly ["top", "bottom"];
7
+ declare const inline: readonly ["start", "end", "left", "right"];
8
+ type Tblock = typeof block[number];
9
+ type Tinline = typeof inline[number];
10
+ type Anchor = Tblock | Tinline | 'center' | 'center center' | `${Tblock} ${Tinline | 'center'}` | `${Tinline} ${Tblock | 'center'}`;
11
+
12
+ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
13
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
14
+ }
15
+
6
16
  interface GroupItem {
7
17
  id: number;
8
18
  value: Ref<unknown>;
@@ -28,16 +38,6 @@ interface GroupProvide {
28
38
 
29
39
  type Density = null | 'default' | 'comfortable' | 'compact';
30
40
 
31
- declare const block: readonly ["top", "bottom"];
32
- declare const inline: readonly ["start", "end", "left", "right"];
33
- type Tblock = typeof block[number];
34
- type Tinline = typeof inline[number];
35
- type Anchor = Tblock | Tinline | 'center' | 'center center' | `${Tblock} ${Tinline | 'center'}` | `${Tinline} ${Tblock | 'center'}`;
36
-
37
- interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
38
- filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
39
- }
40
-
41
41
  type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
42
42
  declare const IconValue: PropType<IconValue>;
43
43
 
@@ -1 +1 @@
1
- {"version":3,"file":"VBtnToggle.mjs","names":["makeVBtnGroupProps","VBtnGroup","makeGroupProps","useGroup","genericComponent","propsFactory","useRender","VBtnToggleSymbol","Symbol","for","makeVBtnToggleProps","VBtnToggle","name","props","emits","value","setup","_ref","slots","isSelected","next","prev","select","selected","btnGroupProps","filterProps","_createVNode","_mergeProps","class","style","default"],"sources":["../../../src/components/VBtnToggle/VBtnToggle.tsx"],"sourcesContent":["// Styles\nimport './VBtnToggle.sass'\n\n// Components\nimport { makeVBtnGroupProps, VBtnGroup } from '@/components/VBtnGroup/VBtnGroup'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev'\nexport interface DefaultBtnToggleSlot extends Pick<GroupProvide, BtnToggleSlotProps> {}\n\nexport const VBtnToggleSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-btn-toggle')\n\ntype VBtnToggleSlots = {\n default: DefaultBtnToggleSlot\n}\n\nexport const makeVBtnToggleProps = propsFactory({\n ...makeVBtnGroupProps(),\n ...makeGroupProps(),\n}, 'VBtnToggle')\n\nexport const VBtnToggle = genericComponent<VBtnToggleSlots>()({\n name: 'VBtnToggle',\n\n props: makeVBtnToggleProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol)\n\n useRender(() => {\n const btnGroupProps = VBtnGroup.filterProps(props)\n\n return (\n <VBtnGroup\n class={[\n 'v-btn-toggle',\n props.class,\n ]}\n { ...btnGroupProps }\n style={ props.style }\n >\n { slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected,\n } as DefaultBtnToggleSlot)}\n </VBtnGroup>\n )\n })\n\n return {\n next,\n prev,\n select,\n }\n },\n})\n\nexport type VBtnToggle = InstanceType<typeof VBtnToggle>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB,EAAEC,SAAS,sCAEtC;AAAA,SACSC,cAAc,EAAEC,QAAQ,uCAEjC;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAOA,OAAO,MAAMC,gBAA4C,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAM9F,OAAO,MAAMC,mBAAmB,GAAGL,YAAY,CAAC;EAC9C,GAAGL,kBAAkB,EAAE;EACvB,GAAGE,cAAc;AACnB,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMS,UAAU,GAAGP,gBAAgB,EAAmB,CAAC;EAC5DQ,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAEH,mBAAmB,EAAE;EAE5BI,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE,UAAU;MAAEC,IAAI;MAAEC,IAAI;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAAGpB,QAAQ,CAACU,KAAK,EAAEN,gBAAgB,CAAC;IAEtFD,SAAS,CAAC,MAAM;MACd,MAAMkB,aAAa,GAAGvB,SAAS,CAACwB,WAAW,CAACZ,KAAK,CAAC;MAElD,OAAAa,YAAA,CAAAzB,SAAA,EAAA0B,WAAA;QAAA,SAEW,CACL,cAAc,EACdd,KAAK,CAACe,KAAK;MACZ,GACIJ,aAAa;QAAA,SACVX,KAAK,CAACgB;MAAK;QAAAC,OAAA,EAAAA,CAAA,MAEjBZ,KAAK,CAACY,OAAO,GAAG;UAChBX,UAAU;UACVC,IAAI;UACJC,IAAI;UACJC,MAAM;UACNC;QACF,CAAC,CAAyB;MAAA;IAGhC,CAAC,CAAC;IAEF,OAAO;MACLH,IAAI;MACJC,IAAI;MACJC;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VBtnToggle.mjs","names":["makeVBtnGroupProps","VBtnGroup","makeGroupProps","useGroup","genericComponent","propsFactory","useRender","VBtnToggleSymbol","Symbol","for","makeVBtnToggleProps","VBtnToggle","name","props","emits","value","setup","_ref","slots","isSelected","next","prev","select","selected","btnGroupProps","filterProps","_createVNode","_mergeProps","class","style","default"],"sources":["../../../src/components/VBtnToggle/VBtnToggle.tsx"],"sourcesContent":["// Styles\nimport './VBtnToggle.sass'\n\n// Components\nimport { makeVBtnGroupProps, VBtnGroup } from '@/components/VBtnGroup/VBtnGroup'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev'\nexport interface DefaultBtnToggleSlot extends Pick<GroupProvide, BtnToggleSlotProps> {}\n\nexport const VBtnToggleSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-btn-toggle')\n\ntype VBtnToggleSlots = {\n default: DefaultBtnToggleSlot\n}\n\nexport const makeVBtnToggleProps = propsFactory({\n ...makeVBtnGroupProps(),\n ...makeGroupProps(),\n}, 'VBtnToggle')\n\nexport const VBtnToggle = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VBtnToggleSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VBtnToggle',\n\n props: makeVBtnToggleProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol)\n\n useRender(() => {\n const btnGroupProps = VBtnGroup.filterProps(props)\n\n return (\n <VBtnGroup\n class={[\n 'v-btn-toggle',\n props.class,\n ]}\n { ...btnGroupProps }\n style={ props.style }\n >\n { slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected,\n })}\n </VBtnGroup>\n )\n })\n\n return {\n next,\n prev,\n select,\n }\n },\n})\n\nexport type VBtnToggle = InstanceType<typeof VBtnToggle>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB,EAAEC,SAAS,sCAEtC;AAAA,SACSC,cAAc,EAAEC,QAAQ,uCAEjC;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAQA,OAAO,MAAMC,gBAA4C,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAM9F,OAAO,MAAMC,mBAAmB,GAAGL,YAAY,CAAC;EAC9C,GAAGL,kBAAkB,EAAE;EACvB,GAAGE,cAAc;AACnB,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMS,UAAU,GAAGP,gBAAgB,EAMM,CAAC;EAC/CQ,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAEH,mBAAmB,EAAE;EAE5BI,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE,UAAU;MAAEC,IAAI;MAAEC,IAAI;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAAGpB,QAAQ,CAACU,KAAK,EAAEN,gBAAgB,CAAC;IAEtFD,SAAS,CAAC,MAAM;MACd,MAAMkB,aAAa,GAAGvB,SAAS,CAACwB,WAAW,CAACZ,KAAK,CAAC;MAElD,OAAAa,YAAA,CAAAzB,SAAA,EAAA0B,WAAA;QAAA,SAEW,CACL,cAAc,EACdd,KAAK,CAACe,KAAK;MACZ,GACIJ,aAAa;QAAA,SACVX,KAAK,CAACgB;MAAK;QAAAC,OAAA,EAAAA,CAAA,MAEjBZ,KAAK,CAACY,OAAO,GAAG;UAChBX,UAAU;UACVC,IAAI;UACJC,IAAI;UACJC,MAAM;UACNC;QACF,CAAC,CAAC;MAAA;IAGR,CAAC,CAAC;IAEF,OAAO;MACLH,IAAI;MACJC,IAAI;MACJC;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
@@ -1,6 +1,31 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, ComponentInternalInstance, Ref, ComputedRef } from 'vue';
2
+ import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, ComponentInternalInstance, Ref, ComputedRef } from 'vue';
3
3
 
4
+ type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = {
5
+ $children?: (VNodeChild | (T extends {
6
+ default: infer V;
7
+ } ? V : {}) | {
8
+ [K in keyof T]?: T[K];
9
+ });
10
+ 'v-slots'?: {
11
+ [K in keyof T]?: T[K] | false;
12
+ };
13
+ } & {
14
+ [K in keyof T as `v-slot:${K & string}`]?: T[K] | false;
15
+ };
16
+ type RawSlots = Record<string, unknown>;
17
+ type Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild;
18
+ type VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];
19
+ type MakeInternalSlots<T extends RawSlots> = {
20
+ [K in keyof T]: Slot<T[K]>;
21
+ };
22
+ type MakeSlots<T extends RawSlots> = {
23
+ [K in keyof T]: VueSlot<T[K]>;
24
+ };
25
+ type GenericProps<Props, Slots extends Record<string, unknown>> = {
26
+ $props: Props & SlotsToProps<Slots>;
27
+ $slots: MakeSlots<Slots>;
28
+ };
4
29
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
30
  filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
31
  }
@@ -33,6 +58,9 @@ interface GroupProvide {
33
58
  type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev';
34
59
  interface DefaultBtnToggleSlot extends Pick<GroupProvide, BtnToggleSlotProps> {
35
60
  }
61
+ type VBtnToggleSlots = {
62
+ default: DefaultBtnToggleSlot;
63
+ };
36
64
  declare const VBtnToggle: {
37
65
  new (...args: any[]): {
38
66
  $: vue.ComponentInternalInstance;
@@ -45,7 +73,6 @@ declare const VBtnToggle: {
45
73
  rounded: string | number | boolean;
46
74
  density: Density;
47
75
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
48
- modelValue: any;
49
76
  divided: boolean;
50
77
  }> & Omit<{
51
78
  style: vue.StyleValue;
@@ -63,16 +90,7 @@ declare const VBtnToggle: {
63
90
  elevation?: string | number | undefined;
64
91
  theme?: string | undefined;
65
92
  rounded?: string | number | boolean | undefined;
66
- modelValue?: any;
67
93
  selectedClass?: string | undefined;
68
- $children?: vue.VNodeChild | {
69
- default?: ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
70
- } | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild);
71
- 'v-slots'?: {
72
- default?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
73
- } | undefined;
74
- "v-slot:default"?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
75
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
76
94
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
77
95
  style: vue.StyleValue;
78
96
  disabled: boolean;
@@ -90,20 +108,8 @@ declare const VBtnToggle: {
90
108
  elevation?: string | number | undefined;
91
109
  theme?: string | undefined;
92
110
  rounded?: string | number | boolean | undefined;
93
- modelValue?: any;
94
111
  selectedClass?: string | undefined;
95
- } & {
96
- $children?: vue.VNodeChild | {
97
- default?: ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
98
- } | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild);
99
- 'v-slots'?: {
100
- default?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
101
- } | undefined;
102
- } & {
103
- "v-slot:default"?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
104
- } & {
105
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
106
- }, "style" | "disabled" | "multiple" | "tag" | "rounded" | "density" | "variant" | "modelValue" | "divided">;
112
+ } & {}, "style" | "disabled" | "multiple" | "tag" | "rounded" | "density" | "variant" | "divided">;
107
113
  $attrs: {
108
114
  [x: string]: unknown;
109
115
  };
@@ -117,7 +123,7 @@ declare const VBtnToggle: {
117
123
  }>;
118
124
  $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
119
125
  $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
120
- $emit: (event: "update:modelValue", value: any) => void;
126
+ $emit: (event: string, ...args: any[]) => void;
121
127
  $el: any;
122
128
  $options: vue.ComponentOptionsBase<{
123
129
  style: vue.StyleValue;
@@ -136,26 +142,14 @@ declare const VBtnToggle: {
136
142
  elevation?: string | number | undefined;
137
143
  theme?: string | undefined;
138
144
  rounded?: string | number | boolean | undefined;
139
- modelValue?: any;
140
145
  selectedClass?: string | undefined;
141
- } & {
142
- $children?: vue.VNodeChild | {
143
- default?: ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
144
- } | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild);
145
- 'v-slots'?: {
146
- default?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
147
- } | undefined;
148
- } & {
149
- "v-slot:default"?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
150
- } & {
151
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
152
- }, {
146
+ } & {}, {
153
147
  next: () => void;
154
148
  prev: () => void;
155
149
  select: (id: number, value: boolean) => void;
156
- }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
150
+ }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
157
151
  'update:modelValue': (value: any) => boolean;
158
- }, string, {
152
+ }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "update:modelValue">, string, {
159
153
  style: vue.StyleValue;
160
154
  disabled: boolean;
161
155
  multiple: boolean;
@@ -163,7 +157,6 @@ declare const VBtnToggle: {
163
157
  rounded: string | number | boolean;
164
158
  density: Density;
165
159
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
166
- modelValue: any;
167
160
  divided: boolean;
168
161
  }, {}, string, vue.SlotsType<Partial<{
169
162
  default: (arg: DefaultBtnToggleSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
@@ -206,20 +199,8 @@ declare const VBtnToggle: {
206
199
  elevation?: string | number | undefined;
207
200
  theme?: string | undefined;
208
201
  rounded?: string | number | boolean | undefined;
209
- modelValue?: any;
210
202
  selectedClass?: string | undefined;
211
- } & {
212
- $children?: vue.VNodeChild | {
213
- default?: ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
214
- } | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild);
215
- 'v-slots'?: {
216
- default?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
217
- } | undefined;
218
- } & {
219
- "v-slot:default"?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
220
- } & {
221
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
222
- } & vue.ShallowUnwrapRef<{
203
+ } & {} & vue.ShallowUnwrapRef<{
223
204
  next: () => void;
224
205
  prev: () => void;
225
206
  select: (id: number, value: boolean) => void;
@@ -244,26 +225,14 @@ declare const VBtnToggle: {
244
225
  elevation?: string | number | undefined;
245
226
  theme?: string | undefined;
246
227
  rounded?: string | number | boolean | undefined;
247
- modelValue?: any;
248
228
  selectedClass?: string | undefined;
249
- } & {
250
- $children?: vue.VNodeChild | {
251
- default?: ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
252
- } | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild);
253
- 'v-slots'?: {
254
- default?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
255
- } | undefined;
256
- } & {
257
- "v-slot:default"?: false | ((arg: DefaultBtnToggleSlot) => vue.VNodeChild) | undefined;
258
- } & {
259
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
260
- }, {
229
+ } & {}, {
261
230
  next: () => void;
262
231
  prev: () => void;
263
232
  select: (id: number, value: boolean) => void;
264
- }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
233
+ }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
265
234
  'update:modelValue': (value: any) => boolean;
266
- }, string, {
235
+ }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "update:modelValue">, string, {
267
236
  style: vue.StyleValue;
268
237
  disabled: boolean;
269
238
  multiple: boolean;
@@ -271,13 +240,18 @@ declare const VBtnToggle: {
271
240
  rounded: string | number | boolean;
272
241
  density: Density;
273
242
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
274
- modelValue: any;
275
243
  divided: boolean;
276
244
  }, {}, string, vue.SlotsType<Partial<{
277
245
  default: (arg: DefaultBtnToggleSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
278
246
  [key: string]: any;
279
247
  }>[];
280
- }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
248
+ }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T_1>(props: {
249
+ modelValue?: T_1 | undefined;
250
+ 'onUpdate:modelValue'?: ((value: T_1) => void) | undefined;
251
+ }, slots: VBtnToggleSlots) => GenericProps<{
252
+ modelValue?: T_1 | undefined;
253
+ 'onUpdate:modelValue'?: ((value: T_1) => void) | undefined;
254
+ }, VBtnToggleSlots>) & FilterPropsOptions<{
281
255
  modelValue: {
282
256
  type: null;
283
257
  default: undefined;
@@ -42,7 +42,7 @@ export const VCarousel = genericComponent()({
42
42
  name: 'VCarousel',
43
43
  props: makeVCarouselProps(),
44
44
  emits: {
45
- 'update:modelValue': val => true
45
+ 'update:modelValue': value => true
46
46
  },
47
47
  setup(props, _ref) {
48
48
  let {
@@ -1 +1 @@
1
- {"version":3,"file":"VCarousel.mjs","names":["VBtn","VDefaultsProvider","VProgressLinear","makeVWindowProps","VWindow","IconValue","useLocale","useProxiedModel","onMounted","ref","watch","convertToUnit","genericComponent","propsFactory","useRender","makeVCarouselProps","color","String","cycle","Boolean","delimiterIcon","type","default","height","Number","hideDelimiters","hideDelimiterBackground","interval","validator","value","progress","verticalDelimiters","continuous","mandatory","showArrows","VCarousel","name","props","emits","val","setup","_ref","slots","model","t","windowRef","slideTimeout","restartTimeout","window","clearTimeout","startTimeout","setTimeout","group","next","requestAnimationFrame","windowProps","filterProps","_createVNode","_mergeProps","$event","class","style","additional","_ref2","_Fragment","left","right","items","length","icon","size","variant","map","item","index","id","isSelected","onClick","select","undefined","getItemIndex","prev"],"sources":["../../../src/components/VCarousel/VCarousel.tsx"],"sourcesContent":["// Styles\nimport './VCarousel.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VProgressLinear } from '@/components/VProgressLinear'\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { onMounted, ref, watch } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VWindowSlots } from '@/components/VWindow/VWindow'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const makeVCarouselProps = propsFactory({\n color: String,\n cycle: Boolean,\n delimiterIcon: {\n type: IconValue,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => Number(value) > 0,\n },\n progress: [Boolean, String],\n verticalDelimiters: [Boolean, String] as PropType<boolean | 'left' | 'right'>,\n\n ...makeVWindowProps({\n continuous: true,\n mandatory: 'force' as const,\n showArrows: true,\n }),\n}, 'VCarousel')\n\ntype VCarouselSlots = VWindowSlots & {\n item: {\n props: Record<string, any>\n item: {\n id: number\n value: unknown\n disabled: boolean | undefined\n }\n }\n}\n\nexport const VCarousel = genericComponent<VCarouselSlots>()({\n name: 'VCarousel',\n\n props: makeVCarouselProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { t } = useLocale()\n const windowRef = ref<typeof VWindow>()\n\n let slideTimeout = -1\n watch(model, restartTimeout)\n watch(() => props.interval, restartTimeout)\n watch(() => props.cycle, val => {\n if (val) restartTimeout()\n else window.clearTimeout(slideTimeout)\n })\n\n onMounted(startTimeout)\n\n function startTimeout () {\n if (!props.cycle || !windowRef.value) return\n\n slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000)\n }\n\n function restartTimeout () {\n window.clearTimeout(slideTimeout)\n window.requestAnimationFrame(startTimeout)\n }\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n <VWindow\n ref={ windowRef }\n { ...windowProps }\n v-model={ model.value }\n class={[\n 'v-carousel',\n {\n 'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': props.verticalDelimiters,\n },\n props.class,\n ]}\n style={[\n { height: convertToUnit(props.height) },\n props.style,\n ]}\n >\n {{\n default: slots.default,\n additional: ({ group }: { group: GroupProvide }) => (\n <>\n { !props.hideDelimiters && (\n <div\n class=\"v-carousel__controls\"\n style={{\n left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',\n right: props.verticalDelimiters === 'right' ? 0 : 'auto',\n }}\n >\n { group.items.value.length > 0 && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n color: props.color,\n icon: props.delimiterIcon,\n size: 'x-small',\n variant: 'text',\n },\n }}\n scoped\n >\n { group.items.value.map((item, index) => {\n const props = {\n id: `carousel-item-${item.id}`,\n 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),\n class: [group.isSelected(item.id) && 'v-btn--active'],\n onClick: () => group.select(item.id, true),\n }\n\n return slots.item\n ? slots.item({ props, item })\n : (<VBtn { ...item } { ...props } />)\n })}\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n { props.progress && (\n <VProgressLinear\n class=\"v-carousel__progress\"\n color={ typeof props.progress === 'string' ? props.progress : undefined }\n modelValue={ (group.getItemIndex(model.value) + 1) / group.items.value.length * 100 }\n />\n )}\n </>\n ),\n prev: slots.prev,\n next: slots.next,\n }}\n </VWindow>\n )\n })\n\n return {}\n },\n})\n\nexport type VCarousel = InstanceType<typeof VCarousel>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VCarousel.mjs","names":["VBtn","VDefaultsProvider","VProgressLinear","makeVWindowProps","VWindow","IconValue","useLocale","useProxiedModel","onMounted","ref","watch","convertToUnit","genericComponent","propsFactory","useRender","makeVCarouselProps","color","String","cycle","Boolean","delimiterIcon","type","default","height","Number","hideDelimiters","hideDelimiterBackground","interval","validator","value","progress","verticalDelimiters","continuous","mandatory","showArrows","VCarousel","name","props","emits","setup","_ref","slots","model","t","windowRef","slideTimeout","restartTimeout","val","window","clearTimeout","startTimeout","setTimeout","group","next","requestAnimationFrame","windowProps","filterProps","_createVNode","_mergeProps","$event","class","style","additional","_ref2","_Fragment","left","right","items","length","icon","size","variant","map","item","index","id","isSelected","onClick","select","undefined","getItemIndex","prev"],"sources":["../../../src/components/VCarousel/VCarousel.tsx"],"sourcesContent":["// Styles\nimport './VCarousel.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VProgressLinear } from '@/components/VProgressLinear'\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { onMounted, ref, watch } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VWindowSlots } from '@/components/VWindow/VWindow'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const makeVCarouselProps = propsFactory({\n color: String,\n cycle: Boolean,\n delimiterIcon: {\n type: IconValue,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => Number(value) > 0,\n },\n progress: [Boolean, String],\n verticalDelimiters: [Boolean, String] as PropType<boolean | 'left' | 'right'>,\n\n ...makeVWindowProps({\n continuous: true,\n mandatory: 'force' as const,\n showArrows: true,\n }),\n}, 'VCarousel')\n\ntype VCarouselSlots = VWindowSlots & {\n item: {\n props: Record<string, any>\n item: {\n id: number\n value: unknown\n disabled: boolean | undefined\n }\n }\n}\n\nexport const VCarousel = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VCarouselSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VCarousel',\n\n props: makeVCarouselProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { t } = useLocale()\n const windowRef = ref<typeof VWindow>()\n\n let slideTimeout = -1\n watch(model, restartTimeout)\n watch(() => props.interval, restartTimeout)\n watch(() => props.cycle, val => {\n if (val) restartTimeout()\n else window.clearTimeout(slideTimeout)\n })\n\n onMounted(startTimeout)\n\n function startTimeout () {\n if (!props.cycle || !windowRef.value) return\n\n slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000)\n }\n\n function restartTimeout () {\n window.clearTimeout(slideTimeout)\n window.requestAnimationFrame(startTimeout)\n }\n\n useRender(() => {\n const windowProps = VWindow.filterProps(props)\n\n return (\n <VWindow\n ref={ windowRef }\n { ...windowProps }\n v-model={ model.value }\n class={[\n 'v-carousel',\n {\n 'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': props.verticalDelimiters,\n },\n props.class,\n ]}\n style={[\n { height: convertToUnit(props.height) },\n props.style,\n ]}\n >\n {{\n default: slots.default,\n additional: ({ group }: { group: GroupProvide }) => (\n <>\n { !props.hideDelimiters && (\n <div\n class=\"v-carousel__controls\"\n style={{\n left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',\n right: props.verticalDelimiters === 'right' ? 0 : 'auto',\n }}\n >\n { group.items.value.length > 0 && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n color: props.color,\n icon: props.delimiterIcon,\n size: 'x-small',\n variant: 'text',\n },\n }}\n scoped\n >\n { group.items.value.map((item, index) => {\n const props = {\n id: `carousel-item-${item.id}`,\n 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter', index + 1, group.items.value.length),\n class: [group.isSelected(item.id) && 'v-btn--active'],\n onClick: () => group.select(item.id, true),\n }\n\n return slots.item\n ? slots.item({ props, item })\n : (<VBtn { ...item } { ...props } />)\n })}\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n { props.progress && (\n <VProgressLinear\n class=\"v-carousel__progress\"\n color={ typeof props.progress === 'string' ? props.progress : undefined }\n modelValue={ (group.getItemIndex(model.value) + 1) / group.items.value.length * 100 }\n />\n )}\n </>\n ),\n prev: slots.prev,\n next: slots.next,\n }}\n </VWindow>\n )\n })\n\n return {}\n },\n})\n\nexport type VCarousel = InstanceType<typeof VCarousel>\n"],"mappings":"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"}