@vuetify/nightly 3.5.9-dev.2024-03-26 → 3.5.9-dev.2024-03-30

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 (38) hide show
  1. package/CHANGELOG.md +5 -2
  2. package/dist/json/attributes.json +43 -7
  3. package/dist/json/importMap-labs.json +4 -4
  4. package/dist/json/importMap.json +110 -110
  5. package/dist/json/tags.json +9 -0
  6. package/dist/json/web-types.json +101 -14
  7. package/dist/vuetify-labs.css +2027 -2025
  8. package/dist/vuetify-labs.d.ts +130 -19
  9. package/dist/vuetify-labs.esm.js +162 -138
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +162 -138
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +336 -334
  14. package/dist/vuetify.d.ts +163 -52
  15. package/dist/vuetify.esm.js +162 -138
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +162 -138
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +189 -189
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VDataTable/VDataTableFooter.mjs +1 -1
  23. package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
  24. package/lib/components/VDatePicker/VDatePickerMonth.mjs +64 -42
  25. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  26. package/lib/components/VDatePicker/index.d.mts +60 -0
  27. package/lib/components/VTimeline/VTimeline.mjs +12 -6
  28. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  29. package/lib/components/VTimeline/index.d.mts +70 -19
  30. package/lib/components/index.d.mts +130 -19
  31. package/lib/entry-bundler.mjs +1 -1
  32. package/lib/framework.mjs +1 -1
  33. package/lib/index.d.mts +33 -33
  34. package/lib/labs/VPicker/VPicker.css +2 -0
  35. package/lib/labs/VPicker/VPicker.sass +2 -0
  36. package/lib/styles/generic/_transitions.scss +4 -4
  37. package/lib/styles/main.css +4 -4
  38. package/package.json +1 -1
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.5.9-dev.2024-03-26
2
+ * Vuetify v3.5.9-dev.2024-03-30
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -18952,7 +18952,7 @@
18952
18952
  }
18953
18953
  return {
18954
18954
  ...option,
18955
- title: t(option.title)
18955
+ title: !isNaN(Number(option.title)) ? option.title : t(option.title)
18956
18956
  };
18957
18957
  }));
18958
18958
  useRender(() => {
@@ -21002,6 +21002,14 @@
21002
21002
  hideWeekdays: Boolean,
21003
21003
  multiple: [Boolean, Number, String],
21004
21004
  showWeek: Boolean,
21005
+ transition: {
21006
+ type: String,
21007
+ default: 'picker-transition'
21008
+ },
21009
+ reverseTransition: {
21010
+ type: String,
21011
+ default: 'picker-reverse-transition'
21012
+ },
21005
21013
  ...makeCalendarProps()
21006
21014
  }, 'VDatePickerMonth');
21007
21015
  const VDatePickerMonth = genericComponent()({
@@ -21026,6 +21034,10 @@
21026
21034
  const adapter = useDate();
21027
21035
  const rangeStart = vue.shallowRef();
21028
21036
  const rangeStop = vue.shallowRef();
21037
+ const isReverse = vue.shallowRef(false);
21038
+ const transition = vue.computed(() => {
21039
+ return !isReverse.value ? props.transition : props.reverseTransition;
21040
+ });
21029
21041
  if (props.multiple === 'range' && model.value.length > 0) {
21030
21042
  rangeStart.value = model.value[0];
21031
21043
  if (model.value.length > 1) {
@@ -21036,6 +21048,10 @@
21036
21048
  const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity;
21037
21049
  return model.value.length >= max;
21038
21050
  });
21051
+ vue.watch(daysInMonth, (val, oldVal) => {
21052
+ if (!oldVal) return;
21053
+ isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date);
21054
+ });
21039
21055
  function onRangeClick(value) {
21040
21056
  const _value = adapter.startOfDay(value);
21041
21057
  if (!rangeStart.value) {
@@ -21095,48 +21111,53 @@
21095
21111
  "class": "v-date-picker-month__day"
21096
21112
  }, [vue.createTextVNode("\xA0")]), weekNumbers.value.map(week => vue.createVNode("div", {
21097
21113
  "class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
21098
- }, [week]))]), vue.createVNode("div", {
21099
- "ref": daysRef,
21100
- "class": "v-date-picker-month__days"
21101
- }, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => vue.createVNode("div", {
21102
- "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
21103
- }, [weekDay])), daysInMonth.value.map((item, i) => {
21104
- const slotProps = {
21105
- props: {
21106
- onClick: () => onClick(item.date)
21107
- },
21108
- item,
21109
- i
21110
- };
21111
- if (atMax.value && !item.isSelected) {
21112
- item.isDisabled = true;
21113
- }
21114
- return vue.createVNode("div", {
21115
- "class": ['v-date-picker-month__day', {
21116
- 'v-date-picker-month__day--adjacent': item.isAdjacent,
21117
- 'v-date-picker-month__day--hide-adjacent': item.isHidden,
21118
- 'v-date-picker-month__day--selected': item.isSelected,
21119
- 'v-date-picker-month__day--week-end': item.isWeekEnd,
21120
- 'v-date-picker-month__day--week-start': item.isWeekStart
21121
- }],
21122
- "data-v-date": !item.isDisabled ? item.isoDate : undefined
21123
- }, [(props.showAdjacentMonths || !item.isAdjacent) && vue.createVNode(VDefaultsProvider, {
21124
- "defaults": {
21125
- VBtn: {
21126
- class: 'v-date-picker-month__day-btn',
21127
- color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
21128
- disabled: item.isDisabled,
21129
- icon: true,
21130
- ripple: false,
21131
- text: item.localized,
21132
- variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
21114
+ }, [week]))]), vue.createVNode(MaybeTransition, {
21115
+ "name": transition.value
21116
+ }, {
21117
+ default: () => [vue.createVNode("div", {
21118
+ "ref": daysRef,
21119
+ "key": daysInMonth.value[0].date.toString(),
21120
+ "class": "v-date-picker-month__days"
21121
+ }, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => vue.createVNode("div", {
21122
+ "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
21123
+ }, [weekDay])), daysInMonth.value.map((item, i) => {
21124
+ const slotProps = {
21125
+ props: {
21133
21126
  onClick: () => onClick(item.date)
21134
- }
21127
+ },
21128
+ item,
21129
+ i
21130
+ };
21131
+ if (atMax.value && !item.isSelected) {
21132
+ item.isDisabled = true;
21135
21133
  }
21136
- }, {
21137
- default: () => [slots.day?.(slotProps) ?? vue.createVNode(VBtn, slotProps.props, null)]
21138
- })]);
21139
- })])]);
21134
+ return vue.createVNode("div", {
21135
+ "class": ['v-date-picker-month__day', {
21136
+ 'v-date-picker-month__day--adjacent': item.isAdjacent,
21137
+ 'v-date-picker-month__day--hide-adjacent': item.isHidden,
21138
+ 'v-date-picker-month__day--selected': item.isSelected,
21139
+ 'v-date-picker-month__day--week-end': item.isWeekEnd,
21140
+ 'v-date-picker-month__day--week-start': item.isWeekStart
21141
+ }],
21142
+ "data-v-date": !item.isDisabled ? item.isoDate : undefined
21143
+ }, [(props.showAdjacentMonths || !item.isAdjacent) && vue.createVNode(VDefaultsProvider, {
21144
+ "defaults": {
21145
+ VBtn: {
21146
+ class: 'v-date-picker-month__day-btn',
21147
+ color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
21148
+ disabled: item.isDisabled,
21149
+ icon: true,
21150
+ ripple: false,
21151
+ text: item.localized,
21152
+ variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
21153
+ onClick: () => onClick(item.date)
21154
+ }
21155
+ }
21156
+ }, {
21157
+ default: () => [slots.day?.(slotProps) ?? vue.createVNode(VBtn, slotProps.props, null)]
21158
+ })]);
21159
+ })])]
21160
+ })]);
21140
21161
  }
21141
21162
  });
21142
21163
 
@@ -25510,100 +25531,6 @@
25510
25531
  }
25511
25532
  });
25512
25533
 
25513
- // Types
25514
-
25515
- const makeVTimelineProps = propsFactory({
25516
- align: {
25517
- type: String,
25518
- default: 'center',
25519
- validator: v => ['center', 'start'].includes(v)
25520
- },
25521
- direction: {
25522
- type: String,
25523
- default: 'vertical',
25524
- validator: v => ['vertical', 'horizontal'].includes(v)
25525
- },
25526
- justify: {
25527
- type: String,
25528
- default: 'auto',
25529
- validator: v => ['auto', 'center'].includes(v)
25530
- },
25531
- side: {
25532
- type: String,
25533
- validator: v => v == null || ['start', 'end'].includes(v)
25534
- },
25535
- lineInset: {
25536
- type: [String, Number],
25537
- default: 0
25538
- },
25539
- lineThickness: {
25540
- type: [String, Number],
25541
- default: 2
25542
- },
25543
- lineColor: String,
25544
- truncateLine: {
25545
- type: String,
25546
- validator: v => ['start', 'end', 'both'].includes(v)
25547
- },
25548
- ...makeComponentProps(),
25549
- ...makeDensityProps(),
25550
- ...makeTagProps(),
25551
- ...makeThemeProps()
25552
- }, 'VTimeline');
25553
- const VTimeline = genericComponent()({
25554
- name: 'VTimeline',
25555
- props: makeVTimelineProps(),
25556
- setup(props, _ref) {
25557
- let {
25558
- slots
25559
- } = _ref;
25560
- const {
25561
- themeClasses
25562
- } = provideTheme(props);
25563
- const {
25564
- densityClasses
25565
- } = useDensity(props);
25566
- const {
25567
- rtlClasses
25568
- } = useRtl();
25569
- provideDefaults({
25570
- VTimelineDivider: {
25571
- lineColor: vue.toRef(props, 'lineColor')
25572
- },
25573
- VTimelineItem: {
25574
- density: vue.toRef(props, 'density'),
25575
- lineInset: vue.toRef(props, 'lineInset')
25576
- }
25577
- });
25578
- const sideClasses = vue.computed(() => {
25579
- const side = props.side ? props.side : props.density !== 'default' ? 'end' : null;
25580
- return side && `v-timeline--side-${side}`;
25581
- });
25582
- const truncateClasses = vue.computed(() => {
25583
- const classes = ['v-timeline--truncate-line-start', 'v-timeline--truncate-line-end'];
25584
- switch (props.truncateLine) {
25585
- case 'both':
25586
- return classes;
25587
- case 'start':
25588
- return classes[0];
25589
- case 'end':
25590
- return classes[1];
25591
- default:
25592
- return null;
25593
- }
25594
- });
25595
- useRender(() => vue.createVNode(props.tag, {
25596
- "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
25597
- 'v-timeline--inset-line': !!props.lineInset
25598
- }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],
25599
- "style": [{
25600
- '--v-timeline-line-thickness': convertToUnit(props.lineThickness)
25601
- }, props.style]
25602
- }, slots));
25603
- return {};
25604
- }
25605
- });
25606
-
25607
25534
  const makeVTimelineDividerProps = propsFactory({
25608
25535
  dotColor: String,
25609
25536
  fillDot: Boolean,
@@ -25750,6 +25677,103 @@
25750
25677
  }
25751
25678
  });
25752
25679
 
25680
+ const makeVTimelineProps = propsFactory({
25681
+ align: {
25682
+ type: String,
25683
+ default: 'center',
25684
+ validator: v => ['center', 'start'].includes(v)
25685
+ },
25686
+ direction: {
25687
+ type: String,
25688
+ default: 'vertical',
25689
+ validator: v => ['vertical', 'horizontal'].includes(v)
25690
+ },
25691
+ justify: {
25692
+ type: String,
25693
+ default: 'auto',
25694
+ validator: v => ['auto', 'center'].includes(v)
25695
+ },
25696
+ side: {
25697
+ type: String,
25698
+ validator: v => v == null || ['start', 'end'].includes(v)
25699
+ },
25700
+ lineThickness: {
25701
+ type: [String, Number],
25702
+ default: 2
25703
+ },
25704
+ lineColor: String,
25705
+ truncateLine: {
25706
+ type: String,
25707
+ validator: v => ['start', 'end', 'both'].includes(v)
25708
+ },
25709
+ ...only(makeVTimelineItemProps({
25710
+ lineInset: 0
25711
+ }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),
25712
+ ...makeComponentProps(),
25713
+ ...makeDensityProps(),
25714
+ ...makeTagProps(),
25715
+ ...makeThemeProps()
25716
+ }, 'VTimeline');
25717
+ const VTimeline = genericComponent()({
25718
+ name: 'VTimeline',
25719
+ props: makeVTimelineProps(),
25720
+ setup(props, _ref) {
25721
+ let {
25722
+ slots
25723
+ } = _ref;
25724
+ const {
25725
+ themeClasses
25726
+ } = provideTheme(props);
25727
+ const {
25728
+ densityClasses
25729
+ } = useDensity(props);
25730
+ const {
25731
+ rtlClasses
25732
+ } = useRtl();
25733
+ provideDefaults({
25734
+ VTimelineDivider: {
25735
+ lineColor: vue.toRef(props, 'lineColor')
25736
+ },
25737
+ VTimelineItem: {
25738
+ density: vue.toRef(props, 'density'),
25739
+ dotColor: vue.toRef(props, 'lineColor'),
25740
+ fillDot: vue.toRef(props, 'fillDot'),
25741
+ hideOpposite: vue.toRef(props, 'hideOpposite'),
25742
+ iconColor: vue.toRef(props, 'iconColor'),
25743
+ lineColor: vue.toRef(props, 'lineColor'),
25744
+ lineInset: vue.toRef(props, 'lineInset'),
25745
+ size: vue.toRef(props, 'size')
25746
+ }
25747
+ });
25748
+ const sideClasses = vue.computed(() => {
25749
+ const side = props.side ? props.side : props.density !== 'default' ? 'end' : null;
25750
+ return side && `v-timeline--side-${side}`;
25751
+ });
25752
+ const truncateClasses = vue.computed(() => {
25753
+ const classes = ['v-timeline--truncate-line-start', 'v-timeline--truncate-line-end'];
25754
+ switch (props.truncateLine) {
25755
+ case 'both':
25756
+ return classes;
25757
+ case 'start':
25758
+ return classes[0];
25759
+ case 'end':
25760
+ return classes[1];
25761
+ default:
25762
+ return null;
25763
+ }
25764
+ });
25765
+ useRender(() => vue.createVNode(props.tag, {
25766
+ "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
25767
+ 'v-timeline--inset-line': !!props.lineInset
25768
+ }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],
25769
+ "style": [{
25770
+ '--v-timeline-line-thickness': convertToUnit(props.lineThickness)
25771
+ }, props.style]
25772
+ }, slots));
25773
+ return {};
25774
+ }
25775
+ });
25776
+
25753
25777
  const makeVToolbarItemsProps = propsFactory({
25754
25778
  ...makeComponentProps(),
25755
25779
  ...makeVariantProps({
@@ -26260,7 +26284,7 @@
26260
26284
  goTo
26261
26285
  };
26262
26286
  }
26263
- const version$1 = "3.5.9-dev.2024-03-26";
26287
+ const version$1 = "3.5.9-dev.2024-03-30";
26264
26288
  createVuetify$1.version = version$1;
26265
26289
 
26266
26290
  // Vue's inject() can only be used in setup
@@ -26285,7 +26309,7 @@
26285
26309
  ...options
26286
26310
  });
26287
26311
  };
26288
- const version = "3.5.9-dev.2024-03-26";
26312
+ const version = "3.5.9-dev.2024-03-30";
26289
26313
  createVuetify.version = version;
26290
26314
 
26291
26315
  exports.blueprints = index;