@vuetify/nightly 3.6.8-master.2024-05-31 → 3.6.8-master.2024-06-07

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.
package/lib/index.d.mts CHANGED
@@ -493,48 +493,41 @@ declare module '@vue/runtime-core' {
493
493
  }
494
494
 
495
495
  export interface GlobalComponents {
496
+ VApp: typeof import('vuetify/components')['VApp']
496
497
  VAppBar: typeof import('vuetify/components')['VAppBar']
497
498
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
498
499
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
499
- VApp: typeof import('vuetify/components')['VApp']
500
- VAvatar: typeof import('vuetify/components')['VAvatar']
501
500
  VAlert: typeof import('vuetify/components')['VAlert']
502
501
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
503
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
504
502
  VBadge: typeof import('vuetify/components')['VBadge']
503
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
504
+ VAvatar: typeof import('vuetify/components')['VAvatar']
505
505
  VBanner: typeof import('vuetify/components')['VBanner']
506
506
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
507
507
  VBannerText: typeof import('vuetify/components')['VBannerText']
508
508
  VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
509
- VBtn: typeof import('vuetify/components')['VBtn']
510
509
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
511
510
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
512
511
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
513
512
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
514
513
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
514
+ VBtn: typeof import('vuetify/components')['VBtn']
515
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
516
+ VCarousel: typeof import('vuetify/components')['VCarousel']
517
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
515
518
  VCard: typeof import('vuetify/components')['VCard']
516
519
  VCardActions: typeof import('vuetify/components')['VCardActions']
517
520
  VCardItem: typeof import('vuetify/components')['VCardItem']
518
521
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
519
522
  VCardText: typeof import('vuetify/components')['VCardText']
520
523
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
521
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
522
524
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
523
525
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
524
526
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
525
527
  VChip: typeof import('vuetify/components')['VChip']
526
- VCarousel: typeof import('vuetify/components')['VCarousel']
527
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
528
528
  VCombobox: typeof import('vuetify/components')['VCombobox']
529
529
  VCode: typeof import('vuetify/components')['VCode']
530
530
  VCounter: typeof import('vuetify/components')['VCounter']
531
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
532
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
533
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
534
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
535
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
536
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
537
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
538
531
  VDataTable: typeof import('vuetify/components')['VDataTable']
539
532
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
540
533
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -542,32 +535,33 @@ declare module '@vue/runtime-core' {
542
535
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
543
536
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
544
537
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
545
- VDivider: typeof import('vuetify/components')['VDivider']
538
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
539
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
540
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
541
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
542
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
543
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
544
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
545
+ VDialog: typeof import('vuetify/components')['VDialog']
546
546
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
547
+ VDivider: typeof import('vuetify/components')['VDivider']
547
548
  VFab: typeof import('vuetify/components')['VFab']
548
549
  VField: typeof import('vuetify/components')['VField']
549
550
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
550
- VDialog: typeof import('vuetify/components')['VDialog']
551
- VFileInput: typeof import('vuetify/components')['VFileInput']
551
+ VFooter: typeof import('vuetify/components')['VFooter']
552
552
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
553
553
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
554
554
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
555
555
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
556
- VFooter: typeof import('vuetify/components')['VFooter']
556
+ VFileInput: typeof import('vuetify/components')['VFileInput']
557
557
  VImg: typeof import('vuetify/components')['VImg']
558
- VIcon: typeof import('vuetify/components')['VIcon']
559
- VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
560
- VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
561
- VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
562
- VClassIcon: typeof import('vuetify/components')['VClassIcon']
563
558
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
564
559
  VInput: typeof import('vuetify/components')['VInput']
565
- VLabel: typeof import('vuetify/components')['VLabel']
566
560
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
567
561
  VItem: typeof import('vuetify/components')['VItem']
562
+ VLabel: typeof import('vuetify/components')['VLabel']
568
563
  VKbd: typeof import('vuetify/components')['VKbd']
569
564
  VMain: typeof import('vuetify/components')['VMain']
570
- VMenu: typeof import('vuetify/components')['VMenu']
571
565
  VList: typeof import('vuetify/components')['VList']
572
566
  VListGroup: typeof import('vuetify/components')['VListGroup']
573
567
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -578,23 +572,30 @@ declare module '@vue/runtime-core' {
578
572
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
579
573
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
580
574
  VMessages: typeof import('vuetify/components')['VMessages']
581
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
575
+ VMenu: typeof import('vuetify/components')['VMenu']
582
576
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
577
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
583
578
  VOverlay: typeof import('vuetify/components')['VOverlay']
584
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
585
579
  VPagination: typeof import('vuetify/components')['VPagination']
580
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
586
581
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
587
582
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
588
- VSelect: typeof import('vuetify/components')['VSelect']
589
583
  VRating: typeof import('vuetify/components')['VRating']
590
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
584
+ VSelect: typeof import('vuetify/components')['VSelect']
591
585
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
586
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
592
587
  VSheet: typeof import('vuetify/components')['VSheet']
593
588
  VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
594
- VSlider: typeof import('vuetify/components')['VSlider']
595
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
596
589
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
597
590
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
591
+ VSlider: typeof import('vuetify/components')['VSlider']
592
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
593
+ VIcon: typeof import('vuetify/components')['VIcon']
594
+ VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
595
+ VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
596
+ VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
597
+ VClassIcon: typeof import('vuetify/components')['VClassIcon']
598
+ VSwitch: typeof import('vuetify/components')['VSwitch']
598
599
  VStepper: typeof import('vuetify/components')['VStepper']
599
600
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
600
601
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
@@ -608,16 +609,15 @@ declare module '@vue/runtime-core' {
608
609
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
609
610
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
610
611
  VTextarea: typeof import('vuetify/components')['VTextarea']
611
- VSwitch: typeof import('vuetify/components')['VSwitch']
612
612
  VTextField: typeof import('vuetify/components')['VTextField']
613
613
  VTimeline: typeof import('vuetify/components')['VTimeline']
614
614
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
615
- VTooltip: typeof import('vuetify/components')['VTooltip']
616
- VWindow: typeof import('vuetify/components')['VWindow']
617
- VWindowItem: typeof import('vuetify/components')['VWindowItem']
618
615
  VToolbar: typeof import('vuetify/components')['VToolbar']
619
616
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
620
617
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
618
+ VTooltip: typeof import('vuetify/components')['VTooltip']
619
+ VWindow: typeof import('vuetify/components')['VWindow']
620
+ VWindowItem: typeof import('vuetify/components')['VWindowItem']
621
621
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
622
622
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
623
623
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
@@ -629,18 +629,17 @@ declare module '@vue/runtime-core' {
629
629
  VHover: typeof import('vuetify/components')['VHover']
630
630
  VLayout: typeof import('vuetify/components')['VLayout']
631
631
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
632
- VLazy: typeof import('vuetify/components')['VLazy']
633
632
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
633
+ VLazy: typeof import('vuetify/components')['VLazy']
634
634
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
635
635
  VParallax: typeof import('vuetify/components')['VParallax']
636
- VRadio: typeof import('vuetify/components')['VRadio']
637
636
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
637
+ VRadio: typeof import('vuetify/components')['VRadio']
638
638
  VResponsive: typeof import('vuetify/components')['VResponsive']
639
639
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
640
- VSparkline: typeof import('vuetify/components')['VSparkline']
641
640
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
642
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
643
641
  VValidation: typeof import('vuetify/components')['VValidation']
642
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
644
643
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
645
644
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
646
645
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -657,21 +656,22 @@ declare module '@vue/runtime-core' {
657
656
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
658
657
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
659
658
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
660
- VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
661
- VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
662
- VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
663
- VPicker: typeof import('vuetify/labs/components')['VPicker']
664
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
665
- VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
659
+ VSparkline: typeof import('vuetify/components')['VSparkline']
666
660
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
667
661
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
668
662
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
669
663
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
670
664
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
671
665
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
666
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
667
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
668
+ VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
672
669
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
673
670
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
674
671
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
672
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
673
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
674
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
675
675
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
676
676
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
677
677
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
@@ -34,7 +34,6 @@ const makeVNumberInputProps = propsFactory({
34
34
  }, 'VNumberInput');
35
35
  export const VNumberInput = genericComponent()({
36
36
  name: 'VNumberInput',
37
- inheritAttrs: false,
38
37
  props: {
39
38
  ...makeVNumberInputProps()
40
39
  },
@@ -1 +1 @@
1
- {"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","useProxiedModel","computed","watchEffect","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","inheritAttrs","props","emits","val","setup","_ref","attrs","emit","slots","model","stepDecimals","modelDecimals","value","form","controlsDisabled","disabled","readonly","isReadonly","canIncrease","canDecrease","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onKeydown","includes","key","ctrlKey","preventDefault","test","onModelUpdate","v","onControlMousedown","modelValue","_","textFieldProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","flat","height","size","icon","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n click: (e: MouseEvent) => void\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: {\n type: Number,\n default: -Infinity,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const form = useForm()\n const controlsDisabled = computed(() => (\n props.disabled || props.readonly || form?.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (controlsDisabled.value) return\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown(false)\n return\n }\n if (['ArrowUp'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown()\n return\n }\n\n // Only numbers, +, - & . are allowed\n if (!/^[0-9\\-+.]+$/.test(e.key)) {\n e.preventDefault()\n }\n }\n\n function onModelUpdate (v: string) {\n model.value = v ? +(v) : undefined\n }\n\n function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n name=\"decrement-btn\"\n icon=\"$expand\"\n size=\"small\"\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$expand',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n name=\"increment-btn\"\n icon=\"$collapse\"\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size=\"small\"\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$collapse',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"$plus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n />\n </div>\n ) : (!props.reverse\n ? <>{ dividerNode() }{ controlNode() }</>\n : undefined)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"$minus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n modelValue={ model.value }\n onUpdate:modelValue={ onModelUpdate }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","useProxiedModel","computed","watchEffect","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","props","emits","val","setup","_ref","attrs","emit","slots","model","stepDecimals","modelDecimals","value","form","controlsDisabled","disabled","readonly","isReadonly","canIncrease","canDecrease","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onKeydown","includes","key","ctrlKey","preventDefault","test","onModelUpdate","v","onControlMousedown","modelValue","_","textFieldProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","flat","height","size","icon","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n click: (e: MouseEvent) => void\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: {\n type: Number,\n default: -Infinity,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const form = useForm()\n const controlsDisabled = computed(() => (\n props.disabled || props.readonly || form?.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (controlsDisabled.value) return\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown(false)\n return\n }\n if (['ArrowUp'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown()\n return\n }\n\n // Only numbers, +, - & . are allowed\n if (!/^[0-9\\-+.]+$/.test(e.key)) {\n e.preventDefault()\n }\n }\n\n function onModelUpdate (v: string) {\n model.value = v ? +(v) : undefined\n }\n\n function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n name=\"decrement-btn\"\n icon=\"$expand\"\n size=\"small\"\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$expand',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n name=\"increment-btn\"\n icon=\"$collapse\"\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size=\"small\"\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$collapse',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"$plus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n />\n </div>\n ) : (!props.reverse\n ? <>{ dividerNode() }{ controlNode() }</>\n : undefined)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"$minus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n modelValue={ model.value }\n onUpdate:modelValue={ onModelUpdate }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB;AAAA,SACjBC,QAAQ;AAAA,SACRC,mBAAmB,EAAEC,UAAU,sDAExC;AAAA,SACSC,OAAO;AAAA,SACPC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAClCC,KAAK,EAAEC,gBAAgB,EAAEC,WAAW,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAE5E;AAeA,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EACzCG,cAAc,EAAE;IACdC,IAAI,EAAEC,MAAkC;IACxCC,OAAO,EAAE;EACX,CAAC;EACDC,KAAK,EAAEC,OAAO;EACdC,SAAS,EAAED,OAAO;EAClBE,GAAG,EAAE;IACHN,IAAI,EAAEO,MAAM;IACZL,OAAO,EAAE,CAACM;EACZ,CAAC;EACDC,GAAG,EAAE;IACHT,IAAI,EAAEO,MAAM;IACZL,OAAO,EAAEM;EACX,CAAC;EACDE,IAAI,EAAE;IACJV,IAAI,EAAEO,MAAM;IACZL,OAAO,EAAE;EACX,CAAC;EAED,GAAGP,IAAI,CAACT,mBAAmB,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;AACxE,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAMyB,YAAY,GAAGlB,gBAAgB,CAAoB,CAAC,CAAC;EAChEmB,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAE;IACL,GAAGf,qBAAqB,CAAC;EAC3B,CAAC;EAEDgB,KAAK,EAAE;IACL,mBAAmB,EAAGC,GAAW,IAAK;EACxC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IAClC,MAAMI,KAAK,GAAGhC,eAAe,CAACwB,KAAK,EAAE,YAAY,CAAC;IAElD,MAAMS,YAAY,GAAGhC,QAAQ,CAAC,MAAMI,WAAW,CAACmB,KAAK,CAACH,IAAI,CAAC,CAAC;IAC5D,MAAMa,aAAa,GAAGjC,QAAQ,CAAC,MAAM+B,KAAK,CAACG,KAAK,IAAI,IAAI,GAAG9B,WAAW,CAAC2B,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC;IAExF,MAAMC,IAAI,GAAGrC,OAAO,CAAC,CAAC;IACtB,MAAMsC,gBAAgB,GAAGpC,QAAQ,CAAC,MAChCuB,KAAK,CAACc,QAAQ,IAAId,KAAK,CAACe,QAAQ,IAAIH,IAAI,EAAEI,UAAU,CAACL,KACtD,CAAC;IAEF,MAAMM,WAAW,GAAGxC,QAAQ,CAAC,MAAM;MACjC,IAAIoC,gBAAgB,CAACF,KAAK,EAAE,OAAO,KAAK;MACxC,IAAIH,KAAK,CAACG,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;MACpC,OAAOH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACH,IAAI,IAAIG,KAAK,CAACJ,GAAG;IAC9C,CAAC,CAAC;IACF,MAAMsB,WAAW,GAAGzC,QAAQ,CAAC,MAAM;MACjC,IAAIoC,gBAAgB,CAACF,KAAK,EAAE,OAAO,KAAK;MACxC,IAAIH,KAAK,CAACG,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;MACpC,OAAOH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACH,IAAI,IAAIG,KAAK,CAACP,GAAG;IAC9C,CAAC,CAAC;IAEFf,WAAW,CAAC,MAAM;MAChB,IAAImC,gBAAgB,CAACF,KAAK,EAAE;MAC5B,IAAIH,KAAK,CAACG,KAAK,IAAI,IAAI,KAAKH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACP,GAAG,IAAIe,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACJ,GAAG,CAAC,EAAE;QAC/EY,KAAK,CAACG,KAAK,GAAGhC,KAAK,CAAC6B,KAAK,CAACG,KAAK,EAAEX,KAAK,CAACP,GAAG,EAAEO,KAAK,CAACJ,GAAG,CAAC;MACxD;IACF,CAAC,CAAC;IAEF,MAAMV,cAAc,GAAGT,QAAQ,CAAC,MAAM;MACpC,OAAOuB,KAAK,CAACR,SAAS,GAAG,SAAS,GAAGQ,KAAK,CAACd,cAAc;IAC3D,CAAC,CAAC;IAEF,MAAMiC,kBAAkB,GAAG1C,QAAQ,CAAC,OAAO;MAAE2C,KAAK,EAAEC;IAAU,CAAC,CAAC,CAAC;IAEjE,MAAMC,kBAAkB,GAAG7C,QAAQ,CAAC,OAAO;MAAE2C,KAAK,EAAEG;IAAY,CAAC,CAAC,CAAC;IAEnE,SAASC,YAAYA,CAAA,EAAoB;MAAA,IAAlBC,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;MACrC,IAAIb,gBAAgB,CAACF,KAAK,EAAE;MAC5B,IAAIH,KAAK,CAACG,KAAK,IAAI,IAAI,EAAE;QACvBH,KAAK,CAACG,KAAK,GAAG,CAAC;QACf;MACF;MAEA,MAAMkB,QAAQ,GAAGC,IAAI,CAAClC,GAAG,CAACc,aAAa,CAACC,KAAK,EAAEF,YAAY,CAACE,KAAK,CAAC;MAClE,IAAIc,SAAS,EAAE;QACb,IAAIR,WAAW,CAACN,KAAK,EAAEH,KAAK,CAACG,KAAK,GAAG,CAAG,CAACH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACH,IAAI,EAAEkC,OAAO,CAACF,QAAQ,CAAG;MACxF,CAAC,MAAM;QACL,IAAIX,WAAW,CAACP,KAAK,EAAEH,KAAK,CAACG,KAAK,GAAG,CAAG,CAACH,KAAK,CAACG,KAAK,GAAGX,KAAK,CAACH,IAAI,EAAEkC,OAAO,CAACF,QAAQ,CAAG;MACxF;IACF;IAEA,SAASR,SAASA,CAAEW,CAAa,EAAE;MACjCA,CAAC,CAACC,eAAe,CAAC,CAAC;MACnBT,YAAY,CAAC,CAAC;IAChB;IAEA,SAASD,WAAWA,CAAES,CAAa,EAAE;MACnCA,CAAC,CAACC,eAAe,CAAC,CAAC;MACnBT,YAAY,CAAC,KAAK,CAAC;IACrB;IAEA,SAASU,SAASA,CAAEF,CAAgB,EAAE;MACpC,IACE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,CAACG,QAAQ,CAACH,CAAC,CAACI,GAAG,CAAC,IACxEJ,CAAC,CAACK,OAAO,EACT;MAEF,IAAI,CAAC,WAAW,CAAC,CAACF,QAAQ,CAACH,CAAC,CAACI,GAAG,CAAC,EAAE;QACjCJ,CAAC,CAACM,cAAc,CAAC,CAAC;QAClBd,YAAY,CAAC,KAAK,CAAC;QACnB;MACF;MACA,IAAI,CAAC,SAAS,CAAC,CAACW,QAAQ,CAACH,CAAC,CAACI,GAAG,CAAC,EAAE;QAC/BJ,CAAC,CAACM,cAAc,CAAC,CAAC;QAClBd,YAAY,CAAC,CAAC;QACd;MACF;;MAEA;MACA,IAAI,CAAC,cAAc,CAACe,IAAI,CAACP,CAAC,CAACI,GAAG,CAAC,EAAE;QAC/BJ,CAAC,CAACM,cAAc,CAAC,CAAC;MACpB;IACF;IAEA,SAASE,aAAaA,CAAEC,CAAS,EAAE;MACjCjC,KAAK,CAACG,KAAK,GAAG8B,CAAC,GAAG,CAAEA,CAAE,GAAGb,SAAS;IACpC;IAEA,SAASc,kBAAkBA,CAAEV,CAAa,EAAE;MAC1CA,CAAC,CAACC,eAAe,CAAC,CAAC;IACrB;IAEAjD,SAAS,CAAC,MAAM;MACd,MAAM;QAAE2D,UAAU,EAAEC,CAAC;QAAE,GAAGC;MAAe,CAAC,GAAGvE,UAAU,CAACwE,WAAW,CAAC9C,KAAK,CAAC;MAE1E,SAAS+C,WAAWA,CAAA,EAAI;QACtB,MAAMC,aAAa,GAAG9D,cAAc,CAACyB,KAAK,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM;QAC1E,OAAAsC,YAAA;UAAA;QAAA,IAGM,CAAC1C,KAAK,CAAC2C,SAAS,GAAAD,YAAA,CAAA/E,IAAA;UAAA,YAED,CAACgD,WAAW,CAACP,KAAK;UAAA;UAAA;UAAA,UAGpBqC,aAAa;UAAA;UAAA;UAAA;UAAA;UAAA,WAKZzB,WAAW;UAAA,eACPmB;QAAkB,WAAAO,YAAA,CAAA9E,iBAAA;UAAA;UAAA,YAKtB;YACRD,IAAI,EAAE;cACJ4C,QAAQ,EAAE,CAACI,WAAW,CAACP,KAAK;cAC5BwC,IAAI,EAAE,IAAI;cACVC,MAAM,EAAEJ,aAAa;cACrBK,IAAI,EAAE,OAAO;cACbC,IAAI,EAAE;YACR;UACF;QAAC;UAAAjE,OAAA,EAAAA,CAAA,MAECkB,KAAK,CAAC2C,SAAS,CAAC5B,kBAAkB,CAACX,KAAK,CAAC;QAAA,EAE9C,EAAAsC,YAAA,CAAA7E,QAAA;UAAA,YAIUc,cAAc,CAACyB,KAAK,KAAK;QAAS,UAI7C,CAACJ,KAAK,CAACkB,SAAS,GAAAwB,YAAA,CAAA/E,IAAA;UAAA,YAED,CAAC+C,WAAW,CAACN,KAAK;UAAA;UAAA;UAAA,UAGpBqC,aAAa;UAAA;UAAA;UAAA,WAGZ3B,SAAS;UAAA,eACLqB,kBAAkB;UAAA;UAAA;QAAA,WAAAO,YAAA,CAAA9E,iBAAA;UAAA;UAAA,YAOtB;YACRD,IAAI,EAAE;cACJ4C,QAAQ,EAAE,CAACG,WAAW,CAACN,KAAK;cAC5BwC,IAAI,EAAE,IAAI;cACVC,MAAM,EAAEJ,aAAa;cACrBK,IAAI,EAAE,OAAO;cACbC,IAAI,EAAE;YACR;UACF;QAAC;UAAAjE,OAAA,EAAAA,CAAA,MAECkB,KAAK,CAACkB,SAAS,CAACN,kBAAkB,CAACR,KAAK,CAAC;QAAA,EAE9C;MAIT;MAEA,SAAS4C,WAAWA,CAAA,EAAI;QACtB,OAAO,CAACvD,KAAK,CAACR,SAAS,IAAI,CAACQ,KAAK,CAACV,KAAK,GAAA2D,YAAA,CAAA7E,QAAA;UAAA;QAAA,WAA2BwD,SAAS;MAC7E;MAEA,MAAM4B,kBAAkB,GACtBtE,cAAc,CAACyB,KAAK,KAAK,OAAO,GAAAsC,YAAA;QAAA;MAAA,IAAAA,YAAA,CAAA7E,QAAA;QAAA;MAAA,UAAA6E,YAAA,CAAA/E,IAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA,WAWdmD,SAAS;QAAA,eACLqB;MAAkB,aAGjC,CAAC1C,KAAK,CAACyD,OAAO,GAAAR,YAAA,CAAAS,SAAA,SACXH,WAAW,CAAC,CAAC,EAAIR,WAAW,CAAC,CAAC,KAClCnB,SAAU;MAElB,MAAM+B,cAAc,GAAGpD,KAAK,CAAC,cAAc,CAAC,IAAIiD,kBAAkB;MAElE,MAAMI,mBAAmB,GACvB1E,cAAc,CAACyB,KAAK,KAAK,OAAO,GAAAsC,YAAA;QAAA;MAAA,IAAAA,YAAA,CAAA/E,IAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA,WASdqD,WAAW;QAAA,eACPmB;MAAkB,UAAAO,YAAA,CAAA7E,QAAA;QAAA;MAAA,aAKjC4B,KAAK,CAACyD,OAAO,GAAAR,YAAA,CAAAS,SAAA,SACVX,WAAW,CAAC,CAAC,EAAIQ,WAAW,CAAC,CAAC,KAClC3B,SAAU;MAElB,MAAMiC,eAAe,GAAGtD,KAAK,CAAC,eAAe,CAAC,IAAIqD,mBAAmB;MAErE,OAAAX,YAAA,CAAA3E,UAAA,EAAAwF,WAAA;QAAA,cAEiBtD,KAAK,CAACG,KAAK;QAAA,uBACF6B,aAAa;QAAA,aACvBN,SAAS;QAAA,SACd,CACL,gBAAgB,EAChB;UACE,yBAAyB,EAAEhD,cAAc,CAACyB,KAAK,KAAK,SAAS;UAC7D,4BAA4B,EAAEX,KAAK,CAACR,SAAS;UAC7C,uBAAuB,EAAEQ,KAAK,CAACV,KAAK;UACpC,yBAAyB,EAAEU,KAAK,CAACyD,OAAO;UACxC,uBAAuB,EAAEvE,cAAc,CAACyB,KAAK,KAAK,OAAO;UACzD,yBAAyB,EAAEzB,cAAc,CAACyB,KAAK,KAAK;QACtD,CAAC,EACDX,KAAK,CAAC+D,KAAK;MACZ,GACIlB,cAAc;QAAA,SACX7C,KAAK,CAACgE,KAAK;QAAA;MAAA;QAIjB,GAAGzD,KAAK;QACR,cAAc,EAAEoD,cAAc,GAAG;UAAA,SAAAM,IAAA,GAAAvC,SAAA,CAAAC,MAAA,EAAIuC,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJF,IAAI,CAAAE,IAAA,IAAA1C,SAAA,CAAA0C,IAAA;UAAA;UAAA,OAAAnB,YAAA,CAAAS,SAAA,SAEnCnD,KAAK,CAAC,cAAc,CAAC,GAAG,GAAG2D,IAAI,CAAC,EAChCV,kBAAkB;QAAA,CAEvB,GAAG5B,SAAS;QACb,eAAe,EAAEiC,eAAe,GAAG;UAAA,SAAAQ,KAAA,GAAA3C,SAAA,CAAAC,MAAA,EAAIuC,IAAI,OAAAC,KAAA,CAAAE,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;YAAJJ,IAAI,CAAAI,KAAA,IAAA5C,SAAA,CAAA4C,KAAA;UAAA;UAAA,OAAArB,YAAA,CAAAS,SAAA,SAErCE,mBAAmB,EACnBrD,KAAK,CAAC,eAAe,CAAC,GAAG,GAAG2D,IAAI,CAAC;QAAA,CAEtC,GAAGtC;MAAS;IAIrB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetify/nightly",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.6.8-master.2024-05-31",
4
+ "version": "3.6.8-master.2024-06-07",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"