@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
@@ -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
  */
@@ -18719,7 +18719,7 @@
18719
18719
  }
18720
18720
  return {
18721
18721
  ...option,
18722
- title: t(option.title)
18722
+ title: !isNaN(Number(option.title)) ? option.title : t(option.title)
18723
18723
  };
18724
18724
  }));
18725
18725
  useRender(() => {
@@ -20769,6 +20769,14 @@
20769
20769
  hideWeekdays: Boolean,
20770
20770
  multiple: [Boolean, Number, String],
20771
20771
  showWeek: Boolean,
20772
+ transition: {
20773
+ type: String,
20774
+ default: 'picker-transition'
20775
+ },
20776
+ reverseTransition: {
20777
+ type: String,
20778
+ default: 'picker-reverse-transition'
20779
+ },
20772
20780
  ...makeCalendarProps()
20773
20781
  }, 'VDatePickerMonth');
20774
20782
  const VDatePickerMonth = genericComponent()({
@@ -20793,6 +20801,10 @@
20793
20801
  const adapter = useDate();
20794
20802
  const rangeStart = vue.shallowRef();
20795
20803
  const rangeStop = vue.shallowRef();
20804
+ const isReverse = vue.shallowRef(false);
20805
+ const transition = vue.computed(() => {
20806
+ return !isReverse.value ? props.transition : props.reverseTransition;
20807
+ });
20796
20808
  if (props.multiple === 'range' && model.value.length > 0) {
20797
20809
  rangeStart.value = model.value[0];
20798
20810
  if (model.value.length > 1) {
@@ -20803,6 +20815,10 @@
20803
20815
  const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity;
20804
20816
  return model.value.length >= max;
20805
20817
  });
20818
+ vue.watch(daysInMonth, (val, oldVal) => {
20819
+ if (!oldVal) return;
20820
+ isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date);
20821
+ });
20806
20822
  function onRangeClick(value) {
20807
20823
  const _value = adapter.startOfDay(value);
20808
20824
  if (!rangeStart.value) {
@@ -20862,48 +20878,53 @@
20862
20878
  "class": "v-date-picker-month__day"
20863
20879
  }, [vue.createTextVNode("\xA0")]), weekNumbers.value.map(week => vue.createVNode("div", {
20864
20880
  "class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
20865
- }, [week]))]), vue.createVNode("div", {
20866
- "ref": daysRef,
20867
- "class": "v-date-picker-month__days"
20868
- }, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => vue.createVNode("div", {
20869
- "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
20870
- }, [weekDay])), daysInMonth.value.map((item, i) => {
20871
- const slotProps = {
20872
- props: {
20873
- onClick: () => onClick(item.date)
20874
- },
20875
- item,
20876
- i
20877
- };
20878
- if (atMax.value && !item.isSelected) {
20879
- item.isDisabled = true;
20880
- }
20881
- return vue.createVNode("div", {
20882
- "class": ['v-date-picker-month__day', {
20883
- 'v-date-picker-month__day--adjacent': item.isAdjacent,
20884
- 'v-date-picker-month__day--hide-adjacent': item.isHidden,
20885
- 'v-date-picker-month__day--selected': item.isSelected,
20886
- 'v-date-picker-month__day--week-end': item.isWeekEnd,
20887
- 'v-date-picker-month__day--week-start': item.isWeekStart
20888
- }],
20889
- "data-v-date": !item.isDisabled ? item.isoDate : undefined
20890
- }, [(props.showAdjacentMonths || !item.isAdjacent) && vue.createVNode(VDefaultsProvider, {
20891
- "defaults": {
20892
- VBtn: {
20893
- class: 'v-date-picker-month__day-btn',
20894
- color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
20895
- disabled: item.isDisabled,
20896
- icon: true,
20897
- ripple: false,
20898
- text: item.localized,
20899
- variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
20881
+ }, [week]))]), vue.createVNode(MaybeTransition, {
20882
+ "name": transition.value
20883
+ }, {
20884
+ default: () => [vue.createVNode("div", {
20885
+ "ref": daysRef,
20886
+ "key": daysInMonth.value[0].date.toString(),
20887
+ "class": "v-date-picker-month__days"
20888
+ }, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => vue.createVNode("div", {
20889
+ "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
20890
+ }, [weekDay])), daysInMonth.value.map((item, i) => {
20891
+ const slotProps = {
20892
+ props: {
20900
20893
  onClick: () => onClick(item.date)
20901
- }
20894
+ },
20895
+ item,
20896
+ i
20897
+ };
20898
+ if (atMax.value && !item.isSelected) {
20899
+ item.isDisabled = true;
20902
20900
  }
20903
- }, {
20904
- default: () => [slots.day?.(slotProps) ?? vue.createVNode(VBtn, slotProps.props, null)]
20905
- })]);
20906
- })])]);
20901
+ return vue.createVNode("div", {
20902
+ "class": ['v-date-picker-month__day', {
20903
+ 'v-date-picker-month__day--adjacent': item.isAdjacent,
20904
+ 'v-date-picker-month__day--hide-adjacent': item.isHidden,
20905
+ 'v-date-picker-month__day--selected': item.isSelected,
20906
+ 'v-date-picker-month__day--week-end': item.isWeekEnd,
20907
+ 'v-date-picker-month__day--week-start': item.isWeekStart
20908
+ }],
20909
+ "data-v-date": !item.isDisabled ? item.isoDate : undefined
20910
+ }, [(props.showAdjacentMonths || !item.isAdjacent) && vue.createVNode(VDefaultsProvider, {
20911
+ "defaults": {
20912
+ VBtn: {
20913
+ class: 'v-date-picker-month__day-btn',
20914
+ color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
20915
+ disabled: item.isDisabled,
20916
+ icon: true,
20917
+ ripple: false,
20918
+ text: item.localized,
20919
+ variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
20920
+ onClick: () => onClick(item.date)
20921
+ }
20922
+ }
20923
+ }, {
20924
+ default: () => [slots.day?.(slotProps) ?? vue.createVNode(VBtn, slotProps.props, null)]
20925
+ })]);
20926
+ })])]
20927
+ })]);
20907
20928
  }
20908
20929
  });
20909
20930
 
@@ -25277,100 +25298,6 @@
25277
25298
  }
25278
25299
  });
25279
25300
 
25280
- // Types
25281
-
25282
- const makeVTimelineProps = propsFactory({
25283
- align: {
25284
- type: String,
25285
- default: 'center',
25286
- validator: v => ['center', 'start'].includes(v)
25287
- },
25288
- direction: {
25289
- type: String,
25290
- default: 'vertical',
25291
- validator: v => ['vertical', 'horizontal'].includes(v)
25292
- },
25293
- justify: {
25294
- type: String,
25295
- default: 'auto',
25296
- validator: v => ['auto', 'center'].includes(v)
25297
- },
25298
- side: {
25299
- type: String,
25300
- validator: v => v == null || ['start', 'end'].includes(v)
25301
- },
25302
- lineInset: {
25303
- type: [String, Number],
25304
- default: 0
25305
- },
25306
- lineThickness: {
25307
- type: [String, Number],
25308
- default: 2
25309
- },
25310
- lineColor: String,
25311
- truncateLine: {
25312
- type: String,
25313
- validator: v => ['start', 'end', 'both'].includes(v)
25314
- },
25315
- ...makeComponentProps(),
25316
- ...makeDensityProps(),
25317
- ...makeTagProps(),
25318
- ...makeThemeProps()
25319
- }, 'VTimeline');
25320
- const VTimeline = genericComponent()({
25321
- name: 'VTimeline',
25322
- props: makeVTimelineProps(),
25323
- setup(props, _ref) {
25324
- let {
25325
- slots
25326
- } = _ref;
25327
- const {
25328
- themeClasses
25329
- } = provideTheme(props);
25330
- const {
25331
- densityClasses
25332
- } = useDensity(props);
25333
- const {
25334
- rtlClasses
25335
- } = useRtl();
25336
- provideDefaults({
25337
- VTimelineDivider: {
25338
- lineColor: vue.toRef(props, 'lineColor')
25339
- },
25340
- VTimelineItem: {
25341
- density: vue.toRef(props, 'density'),
25342
- lineInset: vue.toRef(props, 'lineInset')
25343
- }
25344
- });
25345
- const sideClasses = vue.computed(() => {
25346
- const side = props.side ? props.side : props.density !== 'default' ? 'end' : null;
25347
- return side && `v-timeline--side-${side}`;
25348
- });
25349
- const truncateClasses = vue.computed(() => {
25350
- const classes = ['v-timeline--truncate-line-start', 'v-timeline--truncate-line-end'];
25351
- switch (props.truncateLine) {
25352
- case 'both':
25353
- return classes;
25354
- case 'start':
25355
- return classes[0];
25356
- case 'end':
25357
- return classes[1];
25358
- default:
25359
- return null;
25360
- }
25361
- });
25362
- useRender(() => vue.createVNode(props.tag, {
25363
- "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
25364
- 'v-timeline--inset-line': !!props.lineInset
25365
- }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],
25366
- "style": [{
25367
- '--v-timeline-line-thickness': convertToUnit(props.lineThickness)
25368
- }, props.style]
25369
- }, slots));
25370
- return {};
25371
- }
25372
- });
25373
-
25374
25301
  const makeVTimelineDividerProps = propsFactory({
25375
25302
  dotColor: String,
25376
25303
  fillDot: Boolean,
@@ -25517,6 +25444,103 @@
25517
25444
  }
25518
25445
  });
25519
25446
 
25447
+ const makeVTimelineProps = propsFactory({
25448
+ align: {
25449
+ type: String,
25450
+ default: 'center',
25451
+ validator: v => ['center', 'start'].includes(v)
25452
+ },
25453
+ direction: {
25454
+ type: String,
25455
+ default: 'vertical',
25456
+ validator: v => ['vertical', 'horizontal'].includes(v)
25457
+ },
25458
+ justify: {
25459
+ type: String,
25460
+ default: 'auto',
25461
+ validator: v => ['auto', 'center'].includes(v)
25462
+ },
25463
+ side: {
25464
+ type: String,
25465
+ validator: v => v == null || ['start', 'end'].includes(v)
25466
+ },
25467
+ lineThickness: {
25468
+ type: [String, Number],
25469
+ default: 2
25470
+ },
25471
+ lineColor: String,
25472
+ truncateLine: {
25473
+ type: String,
25474
+ validator: v => ['start', 'end', 'both'].includes(v)
25475
+ },
25476
+ ...only(makeVTimelineItemProps({
25477
+ lineInset: 0
25478
+ }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),
25479
+ ...makeComponentProps(),
25480
+ ...makeDensityProps(),
25481
+ ...makeTagProps(),
25482
+ ...makeThemeProps()
25483
+ }, 'VTimeline');
25484
+ const VTimeline = genericComponent()({
25485
+ name: 'VTimeline',
25486
+ props: makeVTimelineProps(),
25487
+ setup(props, _ref) {
25488
+ let {
25489
+ slots
25490
+ } = _ref;
25491
+ const {
25492
+ themeClasses
25493
+ } = provideTheme(props);
25494
+ const {
25495
+ densityClasses
25496
+ } = useDensity(props);
25497
+ const {
25498
+ rtlClasses
25499
+ } = useRtl();
25500
+ provideDefaults({
25501
+ VTimelineDivider: {
25502
+ lineColor: vue.toRef(props, 'lineColor')
25503
+ },
25504
+ VTimelineItem: {
25505
+ density: vue.toRef(props, 'density'),
25506
+ dotColor: vue.toRef(props, 'lineColor'),
25507
+ fillDot: vue.toRef(props, 'fillDot'),
25508
+ hideOpposite: vue.toRef(props, 'hideOpposite'),
25509
+ iconColor: vue.toRef(props, 'iconColor'),
25510
+ lineColor: vue.toRef(props, 'lineColor'),
25511
+ lineInset: vue.toRef(props, 'lineInset'),
25512
+ size: vue.toRef(props, 'size')
25513
+ }
25514
+ });
25515
+ const sideClasses = vue.computed(() => {
25516
+ const side = props.side ? props.side : props.density !== 'default' ? 'end' : null;
25517
+ return side && `v-timeline--side-${side}`;
25518
+ });
25519
+ const truncateClasses = vue.computed(() => {
25520
+ const classes = ['v-timeline--truncate-line-start', 'v-timeline--truncate-line-end'];
25521
+ switch (props.truncateLine) {
25522
+ case 'both':
25523
+ return classes;
25524
+ case 'start':
25525
+ return classes[0];
25526
+ case 'end':
25527
+ return classes[1];
25528
+ default:
25529
+ return null;
25530
+ }
25531
+ });
25532
+ useRender(() => vue.createVNode(props.tag, {
25533
+ "class": ['v-timeline', `v-timeline--${props.direction}`, `v-timeline--align-${props.align}`, `v-timeline--justify-${props.justify}`, truncateClasses.value, {
25534
+ 'v-timeline--inset-line': !!props.lineInset
25535
+ }, themeClasses.value, densityClasses.value, sideClasses.value, rtlClasses.value, props.class],
25536
+ "style": [{
25537
+ '--v-timeline-line-thickness': convertToUnit(props.lineThickness)
25538
+ }, props.style]
25539
+ }, slots));
25540
+ return {};
25541
+ }
25542
+ });
25543
+
25520
25544
  const makeVToolbarItemsProps = propsFactory({
25521
25545
  ...makeComponentProps(),
25522
25546
  ...makeVariantProps({
@@ -27672,7 +27696,7 @@
27672
27696
  goTo
27673
27697
  };
27674
27698
  }
27675
- const version$1 = "3.5.9-dev.2024-03-26";
27699
+ const version$1 = "3.5.9-dev.2024-03-30";
27676
27700
  createVuetify$1.version = version$1;
27677
27701
 
27678
27702
  // Vue's inject() can only be used in setup
@@ -27925,7 +27949,7 @@
27925
27949
 
27926
27950
  /* eslint-disable local-rules/sort-imports */
27927
27951
 
27928
- const version = "3.5.9-dev.2024-03-26";
27952
+ const version = "3.5.9-dev.2024-03-30";
27929
27953
 
27930
27954
  /* eslint-disable local-rules/sort-imports */
27931
27955