@vuetify/nightly 3.6.7-master.2024-05-25 → 3.6.7-master.2024-05-28

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.7-master.2024-05-25
2
+ * Vuetify v3.6.7-master.2024-05-28
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -2082,9 +2082,9 @@ else{const{mount:a}=e
2082
2082
  e.mount=function(){const l=a(...arguments)
2083
2083
  return t.nextTick((()=>c.update())),e.mount=a,l}}ft.reset(),("boolean"!=typeof __VUE_OPTIONS_API__||__VUE_OPTIONS_API__)&&e.mixin({computed:{$vuetify(){return t.reactive({defaults:af.call(this,gt),display:af.call(this,dn),theme:af.call(this,ma),icons:af.call(this,Dt),locale:af.call(this,ca),date:af.call(this,cu)})}}})}
2084
2084
  return{install:g,defaults:u,display:c,theme:d,icons:v,locale:p,date:f,goTo:m}}function af(e){const t=this.$,a=t.parent?.provides??t.vnode.appContext?.provides
2085
- if(a&&e in a)return a[e]}tf.version="3.6.7-master.2024-05-25"
2085
+ if(a&&e in a)return a[e]}tf.version="3.6.7-master.2024-05-28"
2086
2086
  const lf=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}
2087
- return tf({components:Yp,directives:ef,...e})},of="3.6.7-master.2024-05-25"
2087
+ return tf({components:Yp,directives:ef,...e})},of="3.6.7-master.2024-05-28"
2088
2088
  lf.version=of,e.blueprints=Yt,e.components=Yp,e.createVuetify=lf,e.directives=ef,e.useDate=pu,e.useDefaults=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0
2089
2089
  const{props:a,provideSubDefaults:l}=wt(e,t)
2090
2090
  return l(),a},e.useDisplay=yn,e.useGoTo=xn,e.useLayout=Qt,e.useLocale=va,e.useRtl=fa,e.useTheme=ba,e.version=of}))
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.6.7-master.2024-05-25";
19
+ export const version = "3.6.7-master.2024-05-28";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -97,7 +97,7 @@ export function createVuetify() {
97
97
  goTo
98
98
  };
99
99
  }
100
- export const version = "3.6.7-master.2024-05-25";
100
+ export const version = "3.6.7-master.2024-05-28";
101
101
  createVuetify.version = version;
102
102
 
103
103
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -493,41 +493,42 @@ declare module '@vue/runtime-core' {
493
493
  }
494
494
 
495
495
  export interface GlobalComponents {
496
- VApp: typeof import('vuetify/components')['VApp']
497
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
496
+ VAlert: typeof import('vuetify/components')['VAlert']
497
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
498
498
  VAppBar: typeof import('vuetify/components')['VAppBar']
499
499
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
500
500
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
501
- VAlert: typeof import('vuetify/components')['VAlert']
502
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
503
- VAvatar: typeof import('vuetify/components')['VAvatar']
504
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
501
+ VApp: typeof import('vuetify/components')['VApp']
505
502
  VBadge: typeof import('vuetify/components')['VBadge']
503
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
504
+ VAvatar: typeof import('vuetify/components')['VAvatar']
505
+ VBanner: typeof import('vuetify/components')['VBanner']
506
+ VBannerActions: typeof import('vuetify/components')['VBannerActions']
507
+ VBannerText: typeof import('vuetify/components')['VBannerText']
506
508
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
509
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
510
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
511
+ VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
512
+ VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
513
+ VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
514
+ VBtn: typeof import('vuetify/components')['VBtn']
507
515
  VCard: typeof import('vuetify/components')['VCard']
508
516
  VCardActions: typeof import('vuetify/components')['VCardActions']
509
517
  VCardItem: typeof import('vuetify/components')['VCardItem']
510
518
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
511
519
  VCardText: typeof import('vuetify/components')['VCardText']
512
520
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
513
- VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
514
- VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
515
- VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
516
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
517
- VBanner: typeof import('vuetify/components')['VBanner']
518
- VBannerActions: typeof import('vuetify/components')['VBannerActions']
519
- VBannerText: typeof import('vuetify/components')['VBannerText']
520
- VBtn: typeof import('vuetify/components')['VBtn']
521
521
  VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
522
522
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
523
523
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
524
524
  VCarousel: typeof import('vuetify/components')['VCarousel']
525
525
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
526
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
527
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
528
526
  VChip: typeof import('vuetify/components')['VChip']
529
- VCode: typeof import('vuetify/components')['VCode']
527
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
530
528
  VCombobox: typeof import('vuetify/components')['VCombobox']
529
+ VCode: typeof import('vuetify/components')['VCode']
530
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
531
+ VCounter: typeof import('vuetify/components')['VCounter']
531
532
  VDataTable: typeof import('vuetify/components')['VDataTable']
532
533
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
533
534
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -535,8 +536,6 @@ declare module '@vue/runtime-core' {
535
536
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
536
537
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
537
538
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
538
- VCounter: typeof import('vuetify/components')['VCounter']
539
- VDialog: typeof import('vuetify/components')['VDialog']
540
539
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
541
540
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
542
541
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
@@ -544,25 +543,27 @@ declare module '@vue/runtime-core' {
544
543
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
545
544
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
546
545
  VDivider: typeof import('vuetify/components')['VDivider']
546
+ VDialog: typeof import('vuetify/components')['VDialog']
547
+ VFooter: typeof import('vuetify/components')['VFooter']
547
548
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
548
549
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
549
550
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
550
551
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
551
552
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
553
+ VFileInput: typeof import('vuetify/components')['VFileInput']
552
554
  VField: typeof import('vuetify/components')['VField']
553
555
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
554
556
  VFab: typeof import('vuetify/components')['VFab']
555
- VFileInput: typeof import('vuetify/components')['VFileInput']
556
- VFooter: typeof import('vuetify/components')['VFooter']
557
+ VImg: typeof import('vuetify/components')['VImg']
558
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
557
559
  VIcon: typeof import('vuetify/components')['VIcon']
558
560
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
559
561
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
560
562
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
561
563
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
562
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
563
- VImg: typeof import('vuetify/components')['VImg']
564
564
  VInput: typeof import('vuetify/components')['VInput']
565
- VKbd: typeof import('vuetify/components')['VKbd']
565
+ VItemGroup: typeof import('vuetify/components')['VItemGroup']
566
+ VItem: typeof import('vuetify/components')['VItem']
566
567
  VLabel: typeof import('vuetify/components')['VLabel']
567
568
  VList: typeof import('vuetify/components')['VList']
568
569
  VListGroup: typeof import('vuetify/components')['VListGroup']
@@ -573,74 +574,73 @@ declare module '@vue/runtime-core' {
573
574
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
574
575
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
575
576
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
576
- VItemGroup: typeof import('vuetify/components')['VItemGroup']
577
- VItem: typeof import('vuetify/components')['VItem']
578
- VMain: typeof import('vuetify/components')['VMain']
577
+ VKbd: typeof import('vuetify/components')['VKbd']
579
578
  VMessages: typeof import('vuetify/components')['VMessages']
580
- VMenu: typeof import('vuetify/components')['VMenu']
581
- VOverlay: typeof import('vuetify/components')['VOverlay']
579
+ VMain: typeof import('vuetify/components')['VMain']
582
580
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
581
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
582
+ VOverlay: typeof import('vuetify/components')['VOverlay']
583
+ VMenu: typeof import('vuetify/components')['VMenu']
583
584
  VPagination: typeof import('vuetify/components')['VPagination']
584
585
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
585
586
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
586
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
587
- VRating: typeof import('vuetify/components')['VRating']
588
587
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
589
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
588
+ VRating: typeof import('vuetify/components')['VRating']
590
589
  VSelect: typeof import('vuetify/components')['VSelect']
590
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
591
591
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
592
592
  VSheet: typeof import('vuetify/components')['VSheet']
593
+ VSlider: typeof import('vuetify/components')['VSlider']
594
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
593
595
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
594
596
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
595
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
596
597
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
597
- VSlider: typeof import('vuetify/components')['VSlider']
598
598
  VSwitch: typeof import('vuetify/components')['VSwitch']
599
- VTab: typeof import('vuetify/components')['VTab']
600
- VTabs: typeof import('vuetify/components')['VTabs']
601
- VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
602
- VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
599
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
603
600
  VStepper: typeof import('vuetify/components')['VStepper']
604
601
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
605
602
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
606
603
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
607
604
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
608
605
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
609
- VTextarea: typeof import('vuetify/components')['VTextarea']
610
- VTextField: typeof import('vuetify/components')['VTextField']
606
+ VTab: typeof import('vuetify/components')['VTab']
607
+ VTabs: typeof import('vuetify/components')['VTabs']
608
+ VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
609
+ VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
611
610
  VTable: typeof import('vuetify/components')['VTable']
612
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
613
- VToolbar: typeof import('vuetify/components')['VToolbar']
614
- VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
615
- VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
611
+ VTextarea: typeof import('vuetify/components')['VTextarea']
616
612
  VTimeline: typeof import('vuetify/components')['VTimeline']
617
613
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
614
+ VTextField: typeof import('vuetify/components')['VTextField']
618
615
  VTooltip: typeof import('vuetify/components')['VTooltip']
619
616
  VWindow: typeof import('vuetify/components')['VWindow']
620
617
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
618
+ VToolbar: typeof import('vuetify/components')['VToolbar']
619
+ VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
620
+ VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
621
621
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
622
622
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
623
623
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
624
624
  VForm: typeof import('vuetify/components')['VForm']
625
+ VHover: typeof import('vuetify/components')['VHover']
625
626
  VContainer: typeof import('vuetify/components')['VContainer']
626
627
  VCol: typeof import('vuetify/components')['VCol']
627
628
  VRow: typeof import('vuetify/components')['VRow']
628
629
  VSpacer: typeof import('vuetify/components')['VSpacer']
629
- VHover: typeof import('vuetify/components')['VHover']
630
- VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
631
- VLazy: typeof import('vuetify/components')['VLazy']
632
630
  VLayout: typeof import('vuetify/components')['VLayout']
633
631
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
632
+ VLazy: typeof import('vuetify/components')['VLazy']
633
+ VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
634
634
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
635
635
  VParallax: typeof import('vuetify/components')['VParallax']
636
- VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
637
636
  VRadio: typeof import('vuetify/components')['VRadio']
637
+ VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
638
638
  VResponsive: typeof import('vuetify/components')['VResponsive']
639
- VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
640
639
  VSparkline: typeof import('vuetify/components')['VSparkline']
640
+ VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
641
641
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
642
- VValidation: typeof import('vuetify/components')['VValidation']
643
642
  VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
643
+ VValidation: typeof import('vuetify/components')['VValidation']
644
644
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
645
645
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
646
646
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -663,11 +663,11 @@ declare module '@vue/runtime-core' {
663
663
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
664
664
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
665
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
666
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
669
667
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
670
668
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
669
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
670
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
671
671
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
672
672
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
673
673
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
@@ -676,7 +676,7 @@ declare module '@vue/runtime-core' {
676
676
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
677
677
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
678
678
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
679
- VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
680
679
  VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
680
+ VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
681
681
  }
682
682
  }
@@ -7,6 +7,7 @@ import { VBtn } from "../../components/VBtn/index.mjs";
7
7
  import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs";
8
8
  import { VDivider } from "../../components/VDivider/index.mjs";
9
9
  import { makeVTextFieldProps, VTextField } from "../../components/VTextField/VTextField.mjs"; // Composables
10
+ import { useForm } from "../../composables/form.mjs";
10
11
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
11
12
  import { computed, watchEffect } from 'vue';
12
13
  import { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
@@ -49,15 +50,20 @@ export const VNumberInput = genericComponent()({
49
50
  const model = useProxiedModel(props, 'modelValue');
50
51
  const stepDecimals = computed(() => getDecimals(props.step));
51
52
  const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0);
53
+ const form = useForm();
54
+ const controlsDisabled = computed(() => props.disabled || props.readonly || form?.isReadonly.value);
52
55
  const canIncrease = computed(() => {
56
+ if (controlsDisabled.value) return false;
53
57
  if (model.value == null) return true;
54
58
  return model.value + props.step <= props.max;
55
59
  });
56
60
  const canDecrease = computed(() => {
61
+ if (controlsDisabled.value) return false;
57
62
  if (model.value == null) return true;
58
63
  return model.value - props.step >= props.min;
59
64
  });
60
65
  watchEffect(() => {
66
+ if (controlsDisabled.value) return;
61
67
  if (model.value != null && (model.value < props.min || model.value > props.max)) {
62
68
  model.value = clamp(model.value, props.min, props.max);
63
69
  }
@@ -73,6 +79,7 @@ export const VNumberInput = genericComponent()({
73
79
  }));
74
80
  function toggleUpDown() {
75
81
  let increment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
82
+ if (controlsDisabled.value) return;
76
83
  if (model.value == null) {
77
84
  model.value = 0;
78
85
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","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","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","disabled","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 { 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 canIncrease = computed(() => {\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\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 (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","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":[]}
@@ -3493,6 +3493,22 @@ html.overflow-y-hidden {
3493
3493
  flex: 0 0 100% !important;
3494
3494
  }
3495
3495
 
3496
+ .flex-1-1-0 {
3497
+ flex: 1 1 0 !important;
3498
+ }
3499
+
3500
+ .flex-1-0-0 {
3501
+ flex: 1 0 0 !important;
3502
+ }
3503
+
3504
+ .flex-0-1-0 {
3505
+ flex: 0 1 0 !important;
3506
+ }
3507
+
3508
+ .flex-0-0-0 {
3509
+ flex: 0 0 0 !important;
3510
+ }
3511
+
3496
3512
  .flex-row {
3497
3513
  flex-direction: row !important;
3498
3514
  }
@@ -7173,6 +7189,18 @@ html.overflow-y-hidden {
7173
7189
  .flex-sm-0-0-100 {
7174
7190
  flex: 0 0 100% !important;
7175
7191
  }
7192
+ .flex-sm-1-1-0 {
7193
+ flex: 1 1 0 !important;
7194
+ }
7195
+ .flex-sm-1-0-0 {
7196
+ flex: 1 0 0 !important;
7197
+ }
7198
+ .flex-sm-0-1-0 {
7199
+ flex: 0 1 0 !important;
7200
+ }
7201
+ .flex-sm-0-0-0 {
7202
+ flex: 0 0 0 !important;
7203
+ }
7176
7204
  .flex-sm-row {
7177
7205
  flex-direction: row !important;
7178
7206
  }
@@ -9208,6 +9236,18 @@ html.overflow-y-hidden {
9208
9236
  .flex-md-0-0-100 {
9209
9237
  flex: 0 0 100% !important;
9210
9238
  }
9239
+ .flex-md-1-1-0 {
9240
+ flex: 1 1 0 !important;
9241
+ }
9242
+ .flex-md-1-0-0 {
9243
+ flex: 1 0 0 !important;
9244
+ }
9245
+ .flex-md-0-1-0 {
9246
+ flex: 0 1 0 !important;
9247
+ }
9248
+ .flex-md-0-0-0 {
9249
+ flex: 0 0 0 !important;
9250
+ }
9211
9251
  .flex-md-row {
9212
9252
  flex-direction: row !important;
9213
9253
  }
@@ -11243,6 +11283,18 @@ html.overflow-y-hidden {
11243
11283
  .flex-lg-0-0-100 {
11244
11284
  flex: 0 0 100% !important;
11245
11285
  }
11286
+ .flex-lg-1-1-0 {
11287
+ flex: 1 1 0 !important;
11288
+ }
11289
+ .flex-lg-1-0-0 {
11290
+ flex: 1 0 0 !important;
11291
+ }
11292
+ .flex-lg-0-1-0 {
11293
+ flex: 0 1 0 !important;
11294
+ }
11295
+ .flex-lg-0-0-0 {
11296
+ flex: 0 0 0 !important;
11297
+ }
11246
11298
  .flex-lg-row {
11247
11299
  flex-direction: row !important;
11248
11300
  }
@@ -13278,6 +13330,18 @@ html.overflow-y-hidden {
13278
13330
  .flex-xl-0-0-100 {
13279
13331
  flex: 0 0 100% !important;
13280
13332
  }
13333
+ .flex-xl-1-1-0 {
13334
+ flex: 1 1 0 !important;
13335
+ }
13336
+ .flex-xl-1-0-0 {
13337
+ flex: 1 0 0 !important;
13338
+ }
13339
+ .flex-xl-0-1-0 {
13340
+ flex: 0 1 0 !important;
13341
+ }
13342
+ .flex-xl-0-0-0 {
13343
+ flex: 0 0 0 !important;
13344
+ }
13281
13345
  .flex-xl-row {
13282
13346
  flex-direction: row !important;
13283
13347
  }
@@ -15313,6 +15377,18 @@ html.overflow-y-hidden {
15313
15377
  .flex-xxl-0-0-100 {
15314
15378
  flex: 0 0 100% !important;
15315
15379
  }
15380
+ .flex-xxl-1-1-0 {
15381
+ flex: 1 1 0 !important;
15382
+ }
15383
+ .flex-xxl-1-0-0 {
15384
+ flex: 1 0 0 !important;
15385
+ }
15386
+ .flex-xxl-0-1-0 {
15387
+ flex: 0 1 0 !important;
15388
+ }
15389
+ .flex-xxl-0-0-0 {
15390
+ flex: 0 0 0 !important;
15391
+ }
15316
15392
  .flex-xxl-row {
15317
15393
  flex-direction: row !important;
15318
15394
  }
@@ -67,7 +67,11 @@ $utilities: () !default;
67
67
  '1-1-100': 1 1 100%,
68
68
  '1-0-100': 1 0 100%,
69
69
  '0-1-100': 0 1 100%,
70
- '0-0-100': 0 0 100%
70
+ '0-0-100': 0 0 100%,
71
+ '1-1-0': 1 1 0,
72
+ '1-0-0': 1 0 0,
73
+ '0-1-0': 0 1 0,
74
+ '0-0-0': 0 0 0,
71
75
  )
72
76
  ),
73
77
  "flex-direction": (
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.7-master.2024-05-25",
4
+ "version": "3.6.7-master.2024-05-28",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"