@vuetify/nightly 3.10.7-dev.2025-10-23 → 3.10.7-dev.2025-10-25

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 (45) hide show
  1. package/CHANGELOG.md +13 -3
  2. package/dist/json/attributes.json +3162 -3138
  3. package/dist/json/importMap-labs.json +32 -32
  4. package/dist/json/importMap.json +162 -162
  5. package/dist/json/tags.json +6 -0
  6. package/dist/json/web-types.json +5516 -5456
  7. package/dist/vuetify-labs.cjs +138 -33
  8. package/dist/vuetify-labs.css +4436 -4411
  9. package/dist/vuetify-labs.d.ts +286 -199
  10. package/dist/vuetify-labs.esm.js +139 -34
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +138 -33
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +138 -33
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +4010 -3985
  17. package/dist/vuetify.d.ts +258 -199
  18. package/dist/vuetify.esm.js +139 -34
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +138 -33
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +848 -840
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VDatePicker/VDatePicker.d.ts +50 -0
  26. package/lib/components/VDatePicker/VDatePickerMonth.css +25 -0
  27. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +53 -0
  28. package/lib/components/VDatePicker/VDatePickerMonth.js +57 -4
  29. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  30. package/lib/components/VDatePicker/VDatePickerMonth.sass +22 -0
  31. package/lib/components/VDatePicker/_variables.scss +5 -0
  32. package/lib/components/VOverlay/locationStrategies.js +19 -11
  33. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  34. package/lib/components/VOverlay/useActivator.js +0 -1
  35. package/lib/components/VOverlay/useActivator.js.map +1 -1
  36. package/lib/composables/nested/nested.js +7 -1
  37. package/lib/composables/nested/nested.js.map +1 -1
  38. package/lib/entry-bundler.js +1 -1
  39. package/lib/framework.d.ts +62 -62
  40. package/lib/framework.js +1 -1
  41. package/lib/labs/VDateInput/VDateInput.d.ts +50 -0
  42. package/lib/util/helpers.d.ts +8 -1
  43. package/lib/util/helpers.js +40 -9
  44. package/lib/util/helpers.js.map +1 -1
  45. package/package.json +1 -1
@@ -59,6 +59,8 @@ export declare const makeVDatePickerProps: <Defaults extends {
59
59
  showWeek?: unknown;
60
60
  transition?: unknown;
61
61
  reverseTransition?: unknown;
62
+ events?: unknown;
63
+ eventColor?: unknown;
62
64
  year?: unknown;
63
65
  allowedMonths?: unknown;
64
66
  min?: unknown;
@@ -358,6 +360,26 @@ export declare const makeVDatePickerProps: <Defaults extends {
358
360
  type: import("vue").PropType<unknown extends Defaults["reverseTransition"] ? string : string | Defaults["reverseTransition"]>;
359
361
  default: unknown extends Defaults["reverseTransition"] ? string : string | Defaults["reverseTransition"];
360
362
  };
363
+ events: unknown extends Defaults["events"] ? {
364
+ type: import("vue").PropType<import("./VDatePickerMonth.js").DatePickerEvents | null>;
365
+ default: () => null;
366
+ } : Omit<{
367
+ type: import("vue").PropType<import("./VDatePickerMonth.js").DatePickerEvents | null>;
368
+ default: () => null;
369
+ }, "default" | "type"> & {
370
+ type: import("vue").PropType<unknown extends Defaults["events"] ? import("./VDatePickerMonth.js").DatePickerEvents | null : Defaults["events"] | import("./VDatePickerMonth.js").DatePickerEvents | null>;
371
+ default: unknown extends Defaults["events"] ? import("./VDatePickerMonth.js").DatePickerEvents | null : Defaults["events"] | NonNullable<import("./VDatePickerMonth.js").DatePickerEvents | null>;
372
+ };
373
+ eventColor: unknown extends Defaults["eventColor"] ? {
374
+ type: import("vue").PropType<import("./VDatePickerMonth.js").DatePickerEventColors>;
375
+ default: () => null;
376
+ } : Omit<{
377
+ type: import("vue").PropType<import("./VDatePickerMonth.js").DatePickerEventColors>;
378
+ default: () => null;
379
+ }, "default" | "type"> & {
380
+ type: import("vue").PropType<unknown extends Defaults["eventColor"] ? import("./VDatePickerMonth.js").DatePickerEventColors : Defaults["eventColor"] | import("./VDatePickerMonth.js").DatePickerEventColors>;
381
+ default: unknown extends Defaults["eventColor"] ? import("./VDatePickerMonth.js").DatePickerEventColors : Defaults["eventColor"] | NonNullable<import("./VDatePickerMonth.js").DatePickerEventColors>;
382
+ };
361
383
  year: unknown extends Defaults["year"] ? NumberConstructor : {
362
384
  type: import("vue").PropType<unknown extends Defaults["year"] ? number : number | Defaults["year"]>;
363
385
  default: unknown extends Defaults["year"] ? number : number | Defaults["year"];
@@ -419,6 +441,8 @@ export declare const VDatePicker: {
419
441
  showWeek: boolean;
420
442
  transition: string;
421
443
  reverseTransition: string;
444
+ events: import("./VDatePickerMonth.js").DatePickerEvents | null;
445
+ eventColor: import("./VDatePickerMonth.js").DatePickerEventColors;
422
446
  header: string;
423
447
  } & {
424
448
  theme?: string | undefined;
@@ -485,6 +509,8 @@ export declare const VDatePicker: {
485
509
  showWeek: boolean;
486
510
  transition: string;
487
511
  reverseTransition: string;
512
+ events: import("./VDatePickerMonth.js").DatePickerEvents | null;
513
+ eventColor: import("./VDatePickerMonth.js").DatePickerEventColors;
488
514
  header: string;
489
515
  }, true, {}, import("vue").SlotsType<Partial<{
490
516
  actions: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -571,6 +597,8 @@ export declare const VDatePicker: {
571
597
  showWeek: boolean;
572
598
  transition: string;
573
599
  reverseTransition: string;
600
+ events: import("./VDatePickerMonth.js").DatePickerEvents | null;
601
+ eventColor: import("./VDatePickerMonth.js").DatePickerEventColors;
574
602
  header: string;
575
603
  } & {
576
604
  theme?: string | undefined;
@@ -631,6 +659,8 @@ export declare const VDatePicker: {
631
659
  showWeek: boolean;
632
660
  transition: string;
633
661
  reverseTransition: string;
662
+ events: import("./VDatePickerMonth.js").DatePickerEvents | null;
663
+ eventColor: import("./VDatePickerMonth.js").DatePickerEventColors;
634
664
  header: string;
635
665
  }>;
636
666
  __isFragment?: undefined;
@@ -657,6 +687,8 @@ export declare const VDatePicker: {
657
687
  showWeek: boolean;
658
688
  transition: string;
659
689
  reverseTransition: string;
690
+ events: import("./VDatePickerMonth.js").DatePickerEvents | null;
691
+ eventColor: import("./VDatePickerMonth.js").DatePickerEventColors;
660
692
  header: string;
661
693
  } & {
662
694
  theme?: string | undefined;
@@ -723,6 +755,8 @@ export declare const VDatePicker: {
723
755
  showWeek: boolean;
724
756
  transition: string;
725
757
  reverseTransition: string;
758
+ events: import("./VDatePickerMonth.js").DatePickerEvents | null;
759
+ eventColor: import("./VDatePickerMonth.js").DatePickerEventColors;
726
760
  header: string;
727
761
  }, {}, string, import("vue").SlotsType<Partial<{
728
762
  actions: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -891,6 +925,14 @@ export declare const VDatePicker: {
891
925
  type: StringConstructor;
892
926
  default: string;
893
927
  };
928
+ events: {
929
+ type: import("vue").PropType<import("./VDatePickerMonth.js").DatePickerEvents | null>;
930
+ default: () => null;
931
+ };
932
+ eventColor: {
933
+ type: import("vue").PropType<import("./VDatePickerMonth.js").DatePickerEventColors>;
934
+ default: () => null;
935
+ };
894
936
  year: NumberConstructor;
895
937
  allowedMonths: import("vue").PropType<number[] | ((date: number) => boolean)>;
896
938
  min: import("vue").PropType<unknown>;
@@ -1004,6 +1046,14 @@ export declare const VDatePicker: {
1004
1046
  type: StringConstructor;
1005
1047
  default: string;
1006
1048
  };
1049
+ events: {
1050
+ type: import("vue").PropType<import("./VDatePickerMonth.js").DatePickerEvents | null>;
1051
+ default: () => null;
1052
+ };
1053
+ eventColor: {
1054
+ type: import("vue").PropType<import("./VDatePickerMonth.js").DatePickerEventColors>;
1055
+ default: () => null;
1056
+ };
1007
1057
  year: NumberConstructor;
1008
1058
  allowedMonths: import("vue").PropType<number[] | ((date: number) => boolean)>;
1009
1059
  min: import("vue").PropType<unknown>;
@@ -48,4 +48,29 @@
48
48
 
49
49
  .v-date-picker-month__day--hide-adjacent {
50
50
  opacity: 0;
51
+ }
52
+
53
+ .v-date-picker-month__events {
54
+ height: 8px;
55
+ left: 0;
56
+ text-indent: 0;
57
+ position: absolute;
58
+ text-align: center;
59
+ white-space: pre;
60
+ width: 100%;
61
+ }
62
+ .v-date-picker-month__events > div {
63
+ height: 8px;
64
+ margin: 0 1px;
65
+ width: 8px;
66
+ margin-bottom: -1px;
67
+ }
68
+ .v-date-picker-month__events .v-badge--dot .v-badge__badge {
69
+ border-radius: 4px;
70
+ height: 8px;
71
+ width: 8px;
72
+ }
73
+
74
+ .v-date-picker-month__day .v-date-picker-month__events {
75
+ bottom: 8px;
51
76
  }
@@ -2,6 +2,9 @@
2
2
 
3
3
  // Types
4
4
  import type { PropType } from 'vue';
5
+ export type DatePickerEventColorValue = boolean | string | string[];
6
+ export type DatePickerEventColors = DatePickerEventColorValue | Record<string, DatePickerEventColorValue> | ((date: string) => DatePickerEventColorValue);
7
+ export type DatePickerEvents = string[] | ((date: string) => DatePickerEventColorValue) | Record<string, DatePickerEventColorValue>;
5
8
  export type VDatePickerMonthSlots = {
6
9
  day: {
7
10
  props: {
@@ -31,6 +34,8 @@ export declare const makeVDatePickerMonthProps: <Defaults extends {
31
34
  showWeek?: unknown;
32
35
  transition?: unknown;
33
36
  reverseTransition?: unknown;
37
+ events?: unknown;
38
+ eventColor?: unknown;
34
39
  } = {}>(defaults?: Defaults | undefined) => {
35
40
  allowedDates: unknown extends Defaults["allowedDates"] ? PropType<unknown[] | ((date: unknown) => boolean)> : {
36
41
  type: PropType<unknown extends Defaults["allowedDates"] ? unknown[] | ((date: unknown) => boolean) : unknown[] | ((date: unknown) => boolean) | Defaults["allowedDates"]>;
@@ -150,6 +155,26 @@ export declare const makeVDatePickerMonthProps: <Defaults extends {
150
155
  type: PropType<unknown extends Defaults["reverseTransition"] ? string : string | Defaults["reverseTransition"]>;
151
156
  default: unknown extends Defaults["reverseTransition"] ? string : string | Defaults["reverseTransition"];
152
157
  };
158
+ events: unknown extends Defaults["events"] ? {
159
+ type: PropType<DatePickerEvents | null>;
160
+ default: () => null;
161
+ } : Omit<{
162
+ type: PropType<DatePickerEvents | null>;
163
+ default: () => null;
164
+ }, "default" | "type"> & {
165
+ type: PropType<unknown extends Defaults["events"] ? DatePickerEvents | null : Defaults["events"] | DatePickerEvents | null>;
166
+ default: unknown extends Defaults["events"] ? DatePickerEvents | null : Defaults["events"] | NonNullable<DatePickerEvents | null>;
167
+ };
168
+ eventColor: unknown extends Defaults["eventColor"] ? {
169
+ type: PropType<DatePickerEventColors>;
170
+ default: () => null;
171
+ } : Omit<{
172
+ type: PropType<DatePickerEventColors>;
173
+ default: () => null;
174
+ }, "default" | "type"> & {
175
+ type: PropType<unknown extends Defaults["eventColor"] ? DatePickerEventColors : Defaults["eventColor"] | DatePickerEventColors>;
176
+ default: unknown extends Defaults["eventColor"] ? DatePickerEventColors : Defaults["eventColor"] | NonNullable<DatePickerEventColors>;
177
+ };
153
178
  };
154
179
  export declare const VDatePickerMonth: {
155
180
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
@@ -161,6 +186,8 @@ export declare const VDatePickerMonth: {
161
186
  showWeek: boolean;
162
187
  transition: string;
163
188
  reverseTransition: string;
189
+ events: DatePickerEvents | null;
190
+ eventColor: DatePickerEventColors;
164
191
  } & {
165
192
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
166
193
  modelValue?: unknown[] | undefined;
@@ -221,6 +248,8 @@ export declare const VDatePickerMonth: {
221
248
  showWeek: boolean;
222
249
  transition: string;
223
250
  reverseTransition: string;
251
+ events: DatePickerEvents | null;
252
+ eventColor: DatePickerEventColors;
224
253
  }, true, {}, import("vue").SlotsType<Partial<{
225
254
  day: (arg: {
226
255
  props: {
@@ -247,6 +276,8 @@ export declare const VDatePickerMonth: {
247
276
  showWeek: boolean;
248
277
  transition: string;
249
278
  reverseTransition: string;
279
+ events: DatePickerEvents | null;
280
+ eventColor: DatePickerEventColors;
250
281
  } & {
251
282
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
252
283
  modelValue?: unknown[] | undefined;
@@ -303,6 +334,8 @@ export declare const VDatePickerMonth: {
303
334
  showWeek: boolean;
304
335
  transition: string;
305
336
  reverseTransition: string;
337
+ events: DatePickerEvents | null;
338
+ eventColor: DatePickerEventColors;
306
339
  }>;
307
340
  __isFragment?: undefined;
308
341
  __isTeleport?: undefined;
@@ -316,6 +349,8 @@ export declare const VDatePickerMonth: {
316
349
  showWeek: boolean;
317
350
  transition: string;
318
351
  reverseTransition: string;
352
+ events: DatePickerEvents | null;
353
+ eventColor: DatePickerEventColors;
319
354
  } & {
320
355
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
321
356
  modelValue?: unknown[] | undefined;
@@ -376,6 +411,8 @@ export declare const VDatePickerMonth: {
376
411
  showWeek: boolean;
377
412
  transition: string;
378
413
  reverseTransition: string;
414
+ events: DatePickerEvents | null;
415
+ eventColor: DatePickerEventColors;
379
416
  }, {}, string, import("vue").SlotsType<Partial<{
380
417
  day: (arg: {
381
418
  props: {
@@ -427,6 +464,14 @@ export declare const VDatePickerMonth: {
427
464
  type: StringConstructor;
428
465
  default: string;
429
466
  };
467
+ events: {
468
+ type: PropType<DatePickerEvents | null>;
469
+ default: () => null;
470
+ };
471
+ eventColor: {
472
+ type: PropType<DatePickerEventColors>;
473
+ default: () => null;
474
+ };
430
475
  }, import("vue").ExtractPropTypes<{
431
476
  allowedDates: PropType<unknown[] | ((date: unknown) => boolean)>;
432
477
  disabled: {
@@ -468,5 +513,13 @@ export declare const VDatePickerMonth: {
468
513
  type: StringConstructor;
469
514
  default: string;
470
515
  };
516
+ events: {
517
+ type: PropType<DatePickerEvents | null>;
518
+ default: () => null;
519
+ };
520
+ eventColor: {
521
+ type: PropType<DatePickerEventColors>;
522
+ default: () => null;
523
+ };
471
524
  }>>;
472
525
  export type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>;
@@ -1,15 +1,16 @@
1
- import { createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass } from "vue";
2
2
  // Styles
3
3
  import "./VDatePickerMonth.css";
4
4
 
5
5
  // Components
6
+ import { VBadge } from "../VBadge/index.js";
6
7
  import { VBtn } from "../VBtn/index.js"; // Composables
7
8
  import { makeCalendarProps, useCalendar } from "../../composables/calendar.js";
8
9
  import { createDateRange, useDate } from "../../composables/date/date.js";
9
10
  import { useLocale } from "../../composables/locale.js";
10
11
  import { MaybeTransition } from "../../composables/transition.js"; // Utilities
11
12
  import { computed, ref, shallowRef, toRef, watch } from 'vue';
12
- import { genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
13
+ import { genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
13
14
  export const makeVDatePickerMonthProps = propsFactory({
14
15
  color: String,
15
16
  hideWeekdays: Boolean,
@@ -23,6 +24,14 @@ export const makeVDatePickerMonthProps = propsFactory({
23
24
  type: String,
24
25
  default: 'picker-reverse-transition'
25
26
  },
27
+ events: {
28
+ type: [Array, Function, Object],
29
+ default: () => null
30
+ },
31
+ eventColor: {
32
+ type: [Array, Function, Object, String],
33
+ default: () => null
34
+ },
26
35
  ...omit(makeCalendarProps(), ['displayValue'])
27
36
  }, 'VDatePickerMonth');
28
37
  export const VDatePickerMonth = genericComponent()({
@@ -122,6 +131,49 @@ export const VDatePickerMonth = genericComponent()({
122
131
  model.value = [value];
123
132
  }
124
133
  }
134
+ function getEventColors(date) {
135
+ const {
136
+ events,
137
+ eventColor
138
+ } = props;
139
+ let eventData;
140
+ let eventColors = [];
141
+ if (Array.isArray(events)) {
142
+ eventData = events.includes(date);
143
+ } else if (events instanceof Function) {
144
+ eventData = events(date) || false;
145
+ } else if (events) {
146
+ eventData = events[date] || false;
147
+ } else {
148
+ eventData = false;
149
+ }
150
+ if (!eventData) {
151
+ return [];
152
+ } else if (eventData !== true) {
153
+ eventColors = wrapInArray(eventData);
154
+ } else if (typeof eventColor === 'string') {
155
+ eventColors = [eventColor];
156
+ } else if (typeof eventColor === 'function') {
157
+ eventColors = wrapInArray(eventColor(date));
158
+ } else if (Array.isArray(eventColor)) {
159
+ eventColors = eventColor;
160
+ } else if (typeof eventColor === 'object' && eventColor !== null) {
161
+ eventColors = wrapInArray(eventColor[date]);
162
+ }
163
+
164
+ // Fallback to default color if no color is found
165
+ return !eventColors.length ? ['surface-variant'] : eventColors.filter(Boolean).map(color => typeof color === 'string' ? color : 'surface-variant');
166
+ }
167
+ function genEvents(date) {
168
+ const eventColors = getEventColors(date);
169
+ if (!eventColors.length) return null;
170
+ return _createElementVNode("div", {
171
+ "class": "v-date-picker-month__events"
172
+ }, [eventColors.map(color => _createVNode(VBadge, {
173
+ "dot": true,
174
+ "color": color
175
+ }, null))]);
176
+ }
125
177
  useRender(() => _createElementVNode("div", {
126
178
  "class": "v-date-picker-month",
127
179
  "style": {
@@ -152,7 +204,6 @@ export const VDatePickerMonth = genericComponent()({
152
204
  disabled: item.isDisabled,
153
205
  icon: true,
154
206
  ripple: false,
155
- text: item.localized,
156
207
  variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',
157
208
  'aria-label': getDateAriaLabel(item),
158
209
  'aria-current': item.isToday ? 'date' : undefined,
@@ -173,7 +224,9 @@ export const VDatePickerMonth = genericComponent()({
173
224
  'v-date-picker-month__day--week-start': item.isWeekStart
174
225
  }]),
175
226
  "data-v-date": !item.isDisabled ? item.isoDate : undefined
176
- }, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? _createVNode(VBtn, slotProps.props, null))]);
227
+ }, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? _createVNode(VBtn, slotProps.props, {
228
+ default: () => [item.localized, genEvents(item.isoDate)]
229
+ }))]);
177
230
  })])]
178
231
  })]));
179
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePickerMonth.js","names":["VBtn","makeCalendarProps","useCalendar","createDateRange","useDate","useLocale","MaybeTransition","computed","ref","shallowRef","toRef","watch","genericComponent","omit","propsFactory","useRender","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","transition","type","default","reverseTransition","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","t","daysInMonth","model","weekNumbers","weekdayLabels","adapter","rangeStart","rangeStop","isReverse","value","length","atMax","max","includes","Infinity","val","oldVal","isBefore","onRangeClick","_value","startOfDay","undefined","isSameDay","endOfDay","getDateAriaLabel","item","fullDate","format","localeKey","isToday","onMultipleClick","index","findIndex","selection","splice","onClick","_createElementVNode","weekdays","_createTextVNode","map","week","_normalizeClass","_createVNode","toString","weekDay","i","slotProps","class","isSelected","disabled","isDisabled","icon","ripple","text","localized","variant","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","day"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { createDateRange, useDate } from '@/composables/date/date'\nimport { useLocale } from '@/composables/locale'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType<boolean | 'range' | number | (string & {})>,\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition',\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition',\n },\n\n ...omit(makeCalendarProps(), ['displayValue']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent<VDatePickerMonthSlots>()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n const { t } = useLocale()\n\n const { daysInMonth, model, weekNumbers, weekdayLabels } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n const isReverse = shallowRef(false)\n\n const transition = toRef(() => {\n return !isReverse.value ? props.transition : props.reverseTransition\n })\n\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0]\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1]\n }\n }\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return\n\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date)\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (model.value.length === 0) {\n rangeStart.value = undefined\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0]\n rangeStop.value = undefined\n }\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value)\n rangeStart.value = _value\n } else {\n rangeStop.value = adapter.endOfDay(_value)\n }\n\n model.value = createDateRange(adapter, rangeStart.value, rangeStop.value)\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function getDateAriaLabel (item: any) {\n const fullDate = adapter.format(item.date, 'fullDateWithWeekday')\n const localeKey = item.isToday ? 'currentDate' : 'selectDate'\n return t(`$vuetify.datePicker.ariaLabel.${localeKey}`, fullDate)\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\n }\n\n useRender(() => (\n <div\n class=\"v-date-picker-month\"\n style={{ '--v-date-picker-days-in-week': props.weekdays.length }}\n >\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\">&nbsp;</div>\n )}\n { weekNumbers.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <MaybeTransition name={ transition.value }>\n <div\n ref={ daysRef }\n key={ daysInMonth.value[0].date?.toString() }\n class=\"v-date-picker-month__days\"\n >\n { !props.hideWeekdays && weekdayLabels.value.map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n class: 'v-date-picker-month__day-btn',\n color: item.isSelected || item.isToday ? props.color : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',\n 'aria-label': getDateAriaLabel(item),\n 'aria-current': item.isToday ? 'date' : undefined,\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n },\n ]}\n data-v-date={ !item.isDisabled ? item.isoDate : undefined }\n >\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n slots.day?.(slotProps) ?? (<VBtn { ...slotProps.props } />)\n )}\n </div>\n )\n })}\n </div>\n </MaybeTransition>\n </div>\n ))\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDatePickerMonth.js","names":["VBadge","VBtn","makeCalendarProps","useCalendar","createDateRange","useDate","useLocale","MaybeTransition","computed","ref","shallowRef","toRef","watch","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","transition","type","default","reverseTransition","events","Array","Function","Object","eventColor","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","t","daysInMonth","model","weekNumbers","weekdayLabels","adapter","rangeStart","rangeStop","isReverse","value","length","atMax","max","includes","Infinity","val","oldVal","isBefore","onRangeClick","_value","startOfDay","undefined","isSameDay","endOfDay","getDateAriaLabel","item","fullDate","format","localeKey","isToday","onMultipleClick","index","findIndex","selection","splice","onClick","getEventColors","eventData","eventColors","isArray","filter","map","genEvents","_createElementVNode","_createVNode","weekdays","_createTextVNode","week","_normalizeClass","toString","weekDay","i","slotProps","class","isSelected","disabled","isDisabled","icon","ripple","variant","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","day","localized"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBadge } from '@/components/VBadge'\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { createDateRange, useDate } from '@/composables/date/date'\nimport { useLocale } from '@/composables/locale'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type DatePickerEventColorValue = boolean | string | string[]\n\nexport type DatePickerEventColors = DatePickerEventColorValue |\nRecord<string, DatePickerEventColorValue> | ((date: string) => DatePickerEventColorValue)\n\nexport type DatePickerEvents = string[] |\n((date: string) => DatePickerEventColorValue) | Record<string, DatePickerEventColorValue>\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType<boolean | 'range' | number | (string & {})>,\n showWeek: Boolean,\n transition: {\n type: String,\n default: 'picker-transition',\n },\n reverseTransition: {\n type: String,\n default: 'picker-reverse-transition',\n },\n events: {\n type: [Array, Function, Object] as PropType<DatePickerEvents | null>,\n default: () => null,\n },\n eventColor: {\n type: [Array, Function, Object, String] as PropType<DatePickerEventColors>,\n default: () => null,\n },\n ...omit(makeCalendarProps(), ['displayValue']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent<VDatePickerMonthSlots>()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n const { t } = useLocale()\n\n const { daysInMonth, model, weekNumbers, weekdayLabels } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n const isReverse = shallowRef(false)\n\n const transition = toRef(() => {\n return !isReverse.value ? props.transition : props.reverseTransition\n })\n\n if (props.multiple === 'range' && model.value.length > 0) {\n rangeStart.value = model.value[0]\n if (model.value.length > 1) {\n rangeStop.value = model.value[model.value.length - 1]\n }\n }\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n watch(daysInMonth, (val, oldVal) => {\n if (!oldVal) return\n\n isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date)\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (model.value.length === 0) {\n rangeStart.value = undefined\n } else if (model.value.length === 1) {\n rangeStart.value = model.value[0]\n rangeStop.value = undefined\n }\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(_value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(_value, rangeStart.value)) {\n rangeStop.value = adapter.endOfDay(rangeStart.value)\n rangeStart.value = _value\n } else {\n rangeStop.value = adapter.endOfDay(_value)\n }\n\n model.value = createDateRange(adapter, rangeStart.value, rangeStop.value)\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function getDateAriaLabel (item: any) {\n const fullDate = adapter.format(item.date, 'fullDateWithWeekday')\n const localeKey = item.isToday ? 'currentDate' : 'selectDate'\n return t(`$vuetify.datePicker.ariaLabel.${localeKey}`, fullDate)\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\n }\n function getEventColors (date: string): string[] {\n const { events, eventColor } = props\n let eventData: boolean | DatePickerEventColorValue\n let eventColors: (boolean | string)[] = []\n\n if (Array.isArray(events)) {\n eventData = events.includes(date)\n } else if (events instanceof Function) {\n eventData = events(date) || false\n } else if (events) {\n eventData = events[date] || false\n } else {\n eventData = false\n }\n\n if (!eventData) {\n return []\n } else if (eventData !== true) {\n eventColors = wrapInArray(eventData)\n } else if (typeof eventColor === 'string') {\n eventColors = [eventColor]\n } else if (typeof eventColor === 'function') {\n eventColors = wrapInArray(eventColor(date))\n } else if (Array.isArray(eventColor)) {\n eventColors = eventColor\n } else if (typeof eventColor === 'object' && eventColor !== null) {\n eventColors = wrapInArray(eventColor[date])\n }\n\n // Fallback to default color if no color is found\n return !eventColors.length\n ? ['surface-variant']\n : eventColors\n .filter(Boolean)\n .map((color: string | boolean) => typeof color === 'string' ? color : 'surface-variant')\n }\n\n function genEvents (date: string): JSX.Element | null {\n const eventColors = getEventColors(date)\n\n if (!eventColors.length) return null\n\n return (\n <div class=\"v-date-picker-month__events\">\n { eventColors.map((color: string) => <VBadge dot color={ color } />) }\n </div>\n )\n }\n useRender(() => (\n <div\n class=\"v-date-picker-month\"\n style={{ '--v-date-picker-days-in-week': props.weekdays.length }}\n >\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\">&nbsp;</div>\n )}\n { weekNumbers.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <MaybeTransition name={ transition.value }>\n <div\n ref={ daysRef }\n key={ daysInMonth.value[0].date?.toString() }\n class=\"v-date-picker-month__days\"\n >\n { !props.hideWeekdays && weekdayLabels.value.map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, i) => {\n const slotProps = {\n props: {\n class: 'v-date-picker-month__day-btn',\n color: item.isSelected || item.isToday ? props.color : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',\n 'aria-label': getDateAriaLabel(item),\n 'aria-current': item.isToday ? 'date' : undefined,\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n },\n ]}\n data-v-date={ !item.isDisabled ? item.isoDate : undefined }\n >\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n slots.day?.(slotProps) ?? (\n <VBtn { ...slotProps.props }>\n { item.localized }\n { genEvents(item.isoDate) }\n </VBtn>\n )\n )}\n </div>\n )\n })}\n </div>\n </MaybeTransition>\n </div>\n ))\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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","ignoreList":[]}
@@ -48,3 +48,25 @@
48
48
 
49
49
  .v-date-picker-month__day--hide-adjacent
50
50
  opacity: 0
51
+ .v-date-picker-month__events
52
+ height: $date-picker-event-size
53
+ left: 0
54
+ text-indent: 0
55
+ position: absolute
56
+ text-align: center
57
+ white-space: pre
58
+ width: 100%
59
+
60
+ > div
61
+ height: $date-picker-event-size
62
+ margin: $date-picker-event-margin
63
+ width: $date-picker-event-size
64
+ margin-bottom: -1px
65
+
66
+ .v-badge--dot .v-badge__badge
67
+ border-radius: $date-picker-event-border-radius
68
+ height: $date-picker-event-size
69
+ width: $date-picker-event-size
70
+
71
+ .v-date-picker-month__day .v-date-picker-month__events
72
+ bottom: $date-picker-event-date-bottom
@@ -16,3 +16,8 @@ $date-picker-months-height: 288px !default;
16
16
 
17
17
  $date-picker-years-height: 288px !default;
18
18
  $date-picker-years-padding-inline: 32px !default;
19
+
20
+ $date-picker-event-size: 8px !default;
21
+ $date-picker-event-border-radius: 4px !default;
22
+ $date-picker-event-margin: 0 1px !default;
23
+ $date-picker-event-date-bottom: 8px !default;
@@ -211,7 +211,8 @@ function connectedLocationStrategy(data, props, contentStyles) {
211
211
 
212
212
  const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
213
213
  const scrollParents = getScrollParents(data.contentEl.value);
214
- const viewportMargin = 12;
214
+ const viewportMargin = props.stickToTarget ? 0 : 12; // TOOD: prop.viewportMargin
215
+
215
216
  if (!scrollParents.length) {
216
217
  scrollParents.push(document.documentElement);
217
218
  if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
@@ -231,10 +232,17 @@ function connectedLocationStrategy(data, props, contentStyles) {
231
232
  }
232
233
  return scrollBox;
233
234
  }, undefined);
234
- viewport.x += viewportMargin;
235
- viewport.y += viewportMargin;
236
- viewport.width -= viewportMargin * 2;
237
- viewport.height -= viewportMargin * 2;
235
+ if (props.stickToTarget) {
236
+ viewport.x += Math.min(0, targetBox.x);
237
+ viewport.y += Math.min(0, targetBox.y);
238
+ viewport.width = Math.max(viewport.width, targetBox.x + targetBox.width);
239
+ viewport.height = Math.max(viewport.height, targetBox.y + targetBox.height);
240
+ } else {
241
+ viewport.x += viewportMargin;
242
+ viewport.y += viewportMargin;
243
+ viewport.width -= viewportMargin * 2;
244
+ viewport.height -= viewportMargin * 2;
245
+ }
238
246
  let placement = {
239
247
  anchor: preferredAnchor.value,
240
248
  origin: preferredOrigin.value
@@ -345,19 +353,19 @@ function connectedLocationStrategy(data, props, contentStyles) {
345
353
 
346
354
  // shift
347
355
  if (overflows.x.before) {
348
- if (!props.stickToTarget) x += overflows.x.before;
356
+ x += overflows.x.before;
349
357
  contentBox.x += overflows.x.before;
350
358
  }
351
359
  if (overflows.x.after) {
352
- if (!props.stickToTarget) x -= overflows.x.after;
360
+ x -= overflows.x.after;
353
361
  contentBox.x -= overflows.x.after;
354
362
  }
355
363
  if (overflows.y.before) {
356
- if (!props.stickToTarget) y += overflows.y.before;
364
+ y += overflows.y.before;
357
365
  contentBox.y += overflows.y.before;
358
366
  }
359
367
  if (overflows.y.after) {
360
- if (!props.stickToTarget) y -= overflows.y.after;
368
+ y -= overflows.y.after;
361
369
  contentBox.y -= overflows.y.after;
362
370
  }
363
371
 
@@ -366,9 +374,9 @@ function connectedLocationStrategy(data, props, contentStyles) {
366
374
  const overflows = getOverflow(contentBox, viewport);
367
375
  available.x = viewport.width - overflows.x.before - overflows.x.after;
368
376
  available.y = viewport.height - overflows.y.before - overflows.y.after;
369
- if (!props.stickToTarget) x += overflows.x.before;
377
+ x += overflows.x.before;
370
378
  contentBox.x += overflows.x.before;
371
- if (!props.stickToTarget) y += overflows.y.before;
379
+ y += overflows.y.before;
372
380
  contentBox.y += overflows.y.before;
373
381
  }
374
382
  break;