@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
@@ -99,7 +99,7 @@ export const VDataTableFooter = genericComponent()({
99
99
  }
100
100
  return {
101
101
  ...option,
102
- title: t(option.title)
102
+ title: !isNaN(Number(option.title)) ? option.title : t(option.title)
103
103
  };
104
104
  }));
105
105
  useRender(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableFooter.mjs","names":["VPagination","VSelect","usePagination","useLocale","computed","genericComponent","propsFactory","useRender","makeVDataTableFooterProps","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","VDataTableFooter","name","props","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","paginationProps","filterProps","_createVNode","prepend","v","Number","_mergeProps","$event"],"sources":["../../../src/components/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VPagination } from '@/components/VPagination'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<readonly (number | { title: string, value: number })[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n}, 'VDataTableFooter')\n\nexport const VDataTableFooter = genericComponent<{ prepend: never }>()({\n name: 'VDataTableFooter',\n\n props: makeVDataTableFooterProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1\n ? t('$vuetify.dataFooter.itemsPerPageAll')\n : String(option),\n }\n }\n\n return {\n ...option,\n title: t(option.title),\n }\n })\n ))\n\n useRender(() => {\n const paginationProps = VPagination.filterProps(props)\n\n return (\n <div class=\"v-data-table-footer\">\n { slots.prepend?.() }\n\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\n\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n\n <div class=\"v-data-table-footer__pagination\">\n <VPagination\n v-model={ page.value }\n density=\"comfortable\"\n first-aria-label={ props.firstPageLabel }\n last-aria-label={ props.lastPageLabel }\n length={ pageCount.value }\n next-aria-label={ props.nextPageLabel }\n previous-aria-label={ props.prevPageLabel }\n rounded\n show-first-last-page\n total-visible={ props.showCurrentPage ? 1 : 0 }\n variant=\"plain\"\n { ...paginationProps }\n ></VPagination>\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableFooter.mjs","names":["VPagination","VSelect","usePagination","useLocale","computed","genericComponent","propsFactory","useRender","makeVDataTableFooterProps","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","VDataTableFooter","name","props","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","isNaN","Number","paginationProps","filterProps","_createVNode","prepend","v","_mergeProps","$event"],"sources":["../../../src/components/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VPagination } from '@/components/VPagination'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<readonly (number | { title: string, value: number })[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n}, 'VDataTableFooter')\n\nexport const VDataTableFooter = genericComponent<{ prepend: never }>()({\n name: 'VDataTableFooter',\n\n props: makeVDataTableFooterProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1\n ? t('$vuetify.dataFooter.itemsPerPageAll')\n : String(option),\n }\n }\n\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title),\n }\n })\n ))\n\n useRender(() => {\n const paginationProps = VPagination.filterProps(props)\n\n return (\n <div class=\"v-data-table-footer\">\n { slots.prepend?.() }\n\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\n\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n\n <div class=\"v-data-table-footer__pagination\">\n <VPagination\n v-model={ page.value }\n density=\"comfortable\"\n first-aria-label={ props.firstPageLabel }\n last-aria-label={ props.lastPageLabel }\n length={ pageCount.value }\n next-aria-label={ props.nextPageLabel }\n previous-aria-label={ props.prevPageLabel }\n rounded\n show-first-last-page\n total-visible={ props.showCurrentPage ? 1 : 0 }\n variant=\"plain\"\n { ...paginationProps }\n ></VPagination>\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n"],"mappings":"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"}
@@ -6,14 +6,23 @@ import "./VDatePickerMonth.css";
6
6
  import { VBtn } from "../VBtn/index.mjs";
7
7
  import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs"; // Composables
8
8
  import { makeCalendarProps, useCalendar } from "../../composables/calendar.mjs";
9
- import { useDate } from "../../composables/date/date.mjs"; // Utilities
10
- import { computed, ref, shallowRef } from 'vue';
9
+ import { useDate } from "../../composables/date/date.mjs";
10
+ import { MaybeTransition } from "../../composables/transition.mjs"; // Utilities
11
+ import { computed, ref, shallowRef, watch } from 'vue';
11
12
  import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
12
13
  export const makeVDatePickerMonthProps = propsFactory({
13
14
  color: String,
14
15
  hideWeekdays: Boolean,
15
16
  multiple: [Boolean, Number, String],
16
17
  showWeek: Boolean,
18
+ transition: {
19
+ type: String,
20
+ default: 'picker-transition'
21
+ },
22
+ reverseTransition: {
23
+ type: String,
24
+ default: 'picker-reverse-transition'
25
+ },
17
26
  ...makeCalendarProps()
18
27
  }, 'VDatePickerMonth');
19
28
  export const VDatePickerMonth = genericComponent()({
@@ -38,6 +47,10 @@ export const VDatePickerMonth = genericComponent()({
38
47
  const adapter = useDate();
39
48
  const rangeStart = shallowRef();
40
49
  const rangeStop = shallowRef();
50
+ const isReverse = shallowRef(false);
51
+ const transition = computed(() => {
52
+ return !isReverse.value ? props.transition : props.reverseTransition;
53
+ });
41
54
  if (props.multiple === 'range' && model.value.length > 0) {
42
55
  rangeStart.value = model.value[0];
43
56
  if (model.value.length > 1) {
@@ -48,6 +61,10 @@ export const VDatePickerMonth = genericComponent()({
48
61
  const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity;
49
62
  return model.value.length >= max;
50
63
  });
64
+ watch(daysInMonth, (val, oldVal) => {
65
+ if (!oldVal) return;
66
+ isReverse.value = adapter.isBefore(val[0].date, oldVal[0].date);
67
+ });
51
68
  function onRangeClick(value) {
52
69
  const _value = adapter.startOfDay(value);
53
70
  if (!rangeStart.value) {
@@ -107,48 +124,53 @@ export const VDatePickerMonth = genericComponent()({
107
124
  "class": "v-date-picker-month__day"
108
125
  }, [_createTextVNode("\xA0")]), weekNumbers.value.map(week => _createVNode("div", {
109
126
  "class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
110
- }, [week]))]), _createVNode("div", {
111
- "ref": daysRef,
112
- "class": "v-date-picker-month__days"
113
- }, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => _createVNode("div", {
114
- "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
115
- }, [weekDay])), daysInMonth.value.map((item, i) => {
116
- const slotProps = {
117
- props: {
118
- onClick: () => onClick(item.date)
119
- },
120
- item,
121
- i
122
- };
123
- if (atMax.value && !item.isSelected) {
124
- item.isDisabled = true;
125
- }
126
- return _createVNode("div", {
127
- "class": ['v-date-picker-month__day', {
128
- 'v-date-picker-month__day--adjacent': item.isAdjacent,
129
- 'v-date-picker-month__day--hide-adjacent': item.isHidden,
130
- 'v-date-picker-month__day--selected': item.isSelected,
131
- 'v-date-picker-month__day--week-end': item.isWeekEnd,
132
- 'v-date-picker-month__day--week-start': item.isWeekStart
133
- }],
134
- "data-v-date": !item.isDisabled ? item.isoDate : undefined
135
- }, [(props.showAdjacentMonths || !item.isAdjacent) && _createVNode(VDefaultsProvider, {
136
- "defaults": {
137
- VBtn: {
138
- class: 'v-date-picker-month__day-btn',
139
- color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
140
- disabled: item.isDisabled,
141
- icon: true,
142
- ripple: false,
143
- text: item.localized,
144
- variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
127
+ }, [week]))]), _createVNode(MaybeTransition, {
128
+ "name": transition.value
129
+ }, {
130
+ default: () => [_createVNode("div", {
131
+ "ref": daysRef,
132
+ "key": daysInMonth.value[0].date.toString(),
133
+ "class": "v-date-picker-month__days"
134
+ }, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => _createVNode("div", {
135
+ "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
136
+ }, [weekDay])), daysInMonth.value.map((item, i) => {
137
+ const slotProps = {
138
+ props: {
145
139
  onClick: () => onClick(item.date)
146
- }
140
+ },
141
+ item,
142
+ i
143
+ };
144
+ if (atMax.value && !item.isSelected) {
145
+ item.isDisabled = true;
147
146
  }
148
- }, {
149
- default: () => [slots.day?.(slotProps) ?? _createVNode(VBtn, slotProps.props, null)]
150
- })]);
151
- })])]);
147
+ return _createVNode("div", {
148
+ "class": ['v-date-picker-month__day', {
149
+ 'v-date-picker-month__day--adjacent': item.isAdjacent,
150
+ 'v-date-picker-month__day--hide-adjacent': item.isHidden,
151
+ 'v-date-picker-month__day--selected': item.isSelected,
152
+ 'v-date-picker-month__day--week-end': item.isWeekEnd,
153
+ 'v-date-picker-month__day--week-start': item.isWeekStart
154
+ }],
155
+ "data-v-date": !item.isDisabled ? item.isoDate : undefined
156
+ }, [(props.showAdjacentMonths || !item.isAdjacent) && _createVNode(VDefaultsProvider, {
157
+ "defaults": {
158
+ VBtn: {
159
+ class: 'v-date-picker-month__day-btn',
160
+ color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
161
+ disabled: item.isDisabled,
162
+ icon: true,
163
+ ripple: false,
164
+ text: item.localized,
165
+ variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
166
+ onClick: () => onClick(item.date)
167
+ }
168
+ }
169
+ }, {
170
+ default: () => [slots.day?.(slotProps) ?? _createVNode(VBtn, slotProps.props, null)]
171
+ })]);
172
+ })])]
173
+ })]);
152
174
  }
153
175
  });
154
176
  //# sourceMappingURL=VDatePickerMonth.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","VDefaultsProvider","makeCalendarProps","useCalendar","useDate","computed","ref","shallowRef","genericComponent","propsFactory","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","daysInMonth","model","weekNumbers","adapter","rangeStart","rangeStop","value","length","atMax","max","includes","Infinity","onRangeClick","_value","startOfDay","isSameDay","undefined","isBefore","endOfDay","diff","getDiff","datesInRange","i","nextDate","addDays","push","onMultipleClick","index","findIndex","selection","splice","onClick","_createVNode","_createTextVNode","map","week","getWeekdays","weekDay","item","slotProps","isSelected","isDisabled","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","class","isToday","disabled","icon","ripple","text","localized","variant","default","day"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\n\n// Utilities\nimport { computed, ref, shallowRef } from 'vue'\nimport { genericComponent, propsFactory } 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\n ...makeCalendarProps(),\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\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\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 function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\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 const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days')\n const datesInRange = [rangeStart.value]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i)\n datesInRange.push(nextDate)\n }\n\n datesInRange.push(rangeStop.value)\n\n model.value = datesInRange\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\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 return () => (\n <div class=\"v-date-picker-month\">\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 <div\n ref={ daysRef }\n class=\"v-date-picker-month__days\"\n >\n { !props.hideWeekdays && adapter.getWeekdays().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 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\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n class: 'v-date-picker-month__day-btn',\n color: (item.isSelected || item.isToday) && !item.isDisabled\n ? props.color\n : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isDisabled\n ? item.isToday ? 'outlined' : 'text'\n : item.isToday && !item.isSelected ? 'outlined' : 'flat',\n onClick: () => onClick(item.date),\n },\n }}\n >\n { slots.day?.(slotProps) ?? (\n <VBtn { ...slotProps.props } />\n )}\n </VDefaultsProvider>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","VDefaultsProvider","makeCalendarProps","useCalendar","useDate","MaybeTransition","computed","ref","shallowRef","watch","genericComponent","propsFactory","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","transition","type","default","reverseTransition","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","daysInMonth","model","weekNumbers","adapter","rangeStart","rangeStop","isReverse","value","length","atMax","max","includes","Infinity","val","oldVal","isBefore","onRangeClick","_value","startOfDay","isSameDay","undefined","endOfDay","diff","getDiff","datesInRange","i","nextDate","addDays","push","onMultipleClick","index","findIndex","selection","splice","onClick","_createVNode","_createTextVNode","map","week","toString","getWeekdays","weekDay","item","slotProps","isSelected","isDisabled","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","class","isToday","disabled","icon","ripple","text","localized","variant","day"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory } 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 ...makeCalendarProps(),\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\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n const isReverse = shallowRef(false)\n\n const transition = computed(() => {\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 (!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 const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days')\n const datesInRange = [rangeStart.value]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i)\n datesInRange.push(nextDate)\n }\n\n datesInRange.push(rangeStop.value)\n\n model.value = datesInRange\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\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 return () => (\n <div class=\"v-date-picker-month\">\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 && adapter.getWeekdays().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 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\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n class: 'v-date-picker-month__day-btn',\n color: (item.isSelected || item.isToday) && !item.isDisabled\n ? props.color\n : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isDisabled\n ? item.isToday ? 'outlined' : 'text'\n : item.isToday && !item.isSelected ? 'outlined' : 'flat',\n onClick: () => onClick(item.date),\n },\n }}\n >\n { slots.day?.(slotProps) ?? (\n <VBtn { ...slotProps.props } />\n )}\n </VDefaultsProvider>\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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"}
@@ -51,6 +51,7 @@ type VDatePickerSlots = Omit<VPickerSlots, 'header'> & {
51
51
  };
52
52
  declare const VDatePicker: {
53
53
  new (...args: any[]): vue.CreateComponentPublicInstance<{
54
+ transition: string;
54
55
  header: string;
55
56
  style: vue.StyleValue;
56
57
  title: string;
@@ -60,6 +61,7 @@ declare const VDatePicker: {
60
61
  tile: boolean;
61
62
  nextIcon: string;
62
63
  prevIcon: string;
64
+ reverseTransition: string;
63
65
  modeIcon: string;
64
66
  viewMode: "month" | "year" | "months";
65
67
  showAdjacentMonths: boolean;
@@ -101,6 +103,7 @@ declare const VDatePicker: {
101
103
  'update:year': (date: any) => true;
102
104
  'update:viewMode': (date: any) => true;
103
105
  }, "multiple" | "$children" | "v-slot:default" | "v-slots" | "modelValue" | "v-slot:title" | "update:modelValue" | "v-slot:header" | "v-slot:actions">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
106
+ transition: string;
104
107
  header: string;
105
108
  style: vue.StyleValue;
106
109
  title: string;
@@ -110,6 +113,7 @@ declare const VDatePicker: {
110
113
  tile: boolean;
111
114
  nextIcon: string;
112
115
  prevIcon: string;
116
+ reverseTransition: string;
113
117
  modeIcon: string;
114
118
  viewMode: "month" | "year" | "months";
115
119
  showAdjacentMonths: boolean;
@@ -147,6 +151,7 @@ declare const VDatePicker: {
147
151
  "onUpdate:viewMode"?: ((date: any) => any) | undefined;
148
152
  }, {
149
153
  active: string | string[];
154
+ transition: string;
150
155
  header: string;
151
156
  style: vue.StyleValue;
152
157
  title: string;
@@ -157,6 +162,7 @@ declare const VDatePicker: {
157
162
  tile: boolean;
158
163
  nextIcon: string;
159
164
  prevIcon: string;
165
+ reverseTransition: string;
160
166
  modeIcon: string;
161
167
  viewMode: "month" | "year" | "months";
162
168
  showAdjacentMonths: boolean;
@@ -188,6 +194,7 @@ declare const VDatePicker: {
188
194
  M: {};
189
195
  Defaults: {};
190
196
  }, {
197
+ transition: string;
191
198
  header: string;
192
199
  style: vue.StyleValue;
193
200
  title: string;
@@ -197,6 +204,7 @@ declare const VDatePicker: {
197
204
  tile: boolean;
198
205
  nextIcon: string;
199
206
  prevIcon: string;
207
+ reverseTransition: string;
200
208
  modeIcon: string;
201
209
  viewMode: "month" | "year" | "months";
202
210
  showAdjacentMonths: boolean;
@@ -234,6 +242,7 @@ declare const VDatePicker: {
234
242
  "onUpdate:viewMode"?: ((date: any) => any) | undefined;
235
243
  }, {}, {}, {}, {}, {
236
244
  active: string | string[];
245
+ transition: string;
237
246
  header: string;
238
247
  style: vue.StyleValue;
239
248
  title: string;
@@ -244,6 +253,7 @@ declare const VDatePicker: {
244
253
  tile: boolean;
245
254
  nextIcon: string;
246
255
  prevIcon: string;
256
+ reverseTransition: string;
247
257
  modeIcon: string;
248
258
  viewMode: "month" | "year" | "months";
249
259
  showAdjacentMonths: boolean;
@@ -256,6 +266,7 @@ declare const VDatePicker: {
256
266
  __isTeleport?: undefined;
257
267
  __isSuspense?: undefined;
258
268
  } & vue.ComponentOptionsBase<{
269
+ transition: string;
259
270
  header: string;
260
271
  style: vue.StyleValue;
261
272
  title: string;
@@ -265,6 +276,7 @@ declare const VDatePicker: {
265
276
  tile: boolean;
266
277
  nextIcon: string;
267
278
  prevIcon: string;
279
+ reverseTransition: string;
268
280
  modeIcon: string;
269
281
  viewMode: "month" | "year" | "months";
270
282
  showAdjacentMonths: boolean;
@@ -307,6 +319,7 @@ declare const VDatePicker: {
307
319
  'update:viewMode': (date: any) => true;
308
320
  }, "multiple" | "$children" | "v-slot:default" | "v-slots" | "modelValue" | "v-slot:title" | "update:modelValue" | "v-slot:header" | "v-slot:actions">, string, {
309
321
  active: string | string[];
322
+ transition: string;
310
323
  header: string;
311
324
  style: vue.StyleValue;
312
325
  title: string;
@@ -317,6 +330,7 @@ declare const VDatePicker: {
317
330
  tile: boolean;
318
331
  nextIcon: string;
319
332
  prevIcon: string;
333
+ reverseTransition: string;
320
334
  modeIcon: string;
321
335
  viewMode: "month" | "year" | "months";
322
336
  showAdjacentMonths: boolean;
@@ -417,6 +431,14 @@ declare const VDatePicker: {
417
431
  hideWeekdays: BooleanConstructor;
418
432
  multiple: vue.PropType<number | boolean | "range" | (string & {})>;
419
433
  showWeek: BooleanConstructor;
434
+ transition: {
435
+ type: StringConstructor;
436
+ default: string;
437
+ };
438
+ reverseTransition: {
439
+ type: StringConstructor;
440
+ default: string;
441
+ };
420
442
  active: {
421
443
  type: vue.PropType<string | string[]>;
422
444
  default: undefined;
@@ -511,6 +533,14 @@ declare const VDatePicker: {
511
533
  hideWeekdays: BooleanConstructor;
512
534
  multiple: vue.PropType<number | boolean | "range" | (string & {})>;
513
535
  showWeek: BooleanConstructor;
536
+ transition: {
537
+ type: StringConstructor;
538
+ default: string;
539
+ };
540
+ reverseTransition: {
541
+ type: StringConstructor;
542
+ default: string;
543
+ };
514
544
  active: {
515
545
  type: vue.PropType<string | string[]>;
516
546
  default: undefined;
@@ -894,7 +924,9 @@ type VDatePickerHeader = InstanceType<typeof VDatePickerHeader>;
894
924
 
895
925
  declare const VDatePickerMonth: {
896
926
  new (...args: any[]): vue.CreateComponentPublicInstance<{
927
+ transition: string;
897
928
  disabled: boolean;
929
+ reverseTransition: string;
898
930
  showAdjacentMonths: boolean;
899
931
  weekdays: number[];
900
932
  hideWeekdays: boolean;
@@ -945,7 +977,9 @@ declare const VDatePickerMonth: {
945
977
  'update:month': (date: number) => true;
946
978
  'update:year': (date: number) => true;
947
979
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
980
+ transition: string;
948
981
  disabled: boolean;
982
+ reverseTransition: string;
949
983
  showAdjacentMonths: boolean;
950
984
  weekdays: number[];
951
985
  hideWeekdays: boolean;
@@ -992,7 +1026,9 @@ declare const VDatePickerMonth: {
992
1026
  "onUpdate:month"?: ((date: number) => any) | undefined;
993
1027
  "onUpdate:year"?: ((date: number) => any) | undefined;
994
1028
  }, {
1029
+ transition: string;
995
1030
  disabled: boolean;
1031
+ reverseTransition: string;
996
1032
  showAdjacentMonths: boolean;
997
1033
  weekdays: number[];
998
1034
  hideWeekdays: boolean;
@@ -1015,7 +1051,9 @@ declare const VDatePickerMonth: {
1015
1051
  M: {};
1016
1052
  Defaults: {};
1017
1053
  }, {
1054
+ transition: string;
1018
1055
  disabled: boolean;
1056
+ reverseTransition: string;
1019
1057
  showAdjacentMonths: boolean;
1020
1058
  weekdays: number[];
1021
1059
  hideWeekdays: boolean;
@@ -1062,7 +1100,9 @@ declare const VDatePickerMonth: {
1062
1100
  "onUpdate:month"?: ((date: number) => any) | undefined;
1063
1101
  "onUpdate:year"?: ((date: number) => any) | undefined;
1064
1102
  }, () => JSX.Element, {}, {}, {}, {
1103
+ transition: string;
1065
1104
  disabled: boolean;
1105
+ reverseTransition: string;
1066
1106
  showAdjacentMonths: boolean;
1067
1107
  weekdays: number[];
1068
1108
  hideWeekdays: boolean;
@@ -1072,7 +1112,9 @@ declare const VDatePickerMonth: {
1072
1112
  __isTeleport?: undefined;
1073
1113
  __isSuspense?: undefined;
1074
1114
  } & vue.ComponentOptionsBase<{
1115
+ transition: string;
1075
1116
  disabled: boolean;
1117
+ reverseTransition: string;
1076
1118
  showAdjacentMonths: boolean;
1077
1119
  weekdays: number[];
1078
1120
  hideWeekdays: boolean;
@@ -1123,7 +1165,9 @@ declare const VDatePickerMonth: {
1123
1165
  'update:month': (date: number) => true;
1124
1166
  'update:year': (date: number) => true;
1125
1167
  }, string, {
1168
+ transition: string;
1126
1169
  disabled: boolean;
1170
+ reverseTransition: string;
1127
1171
  showAdjacentMonths: boolean;
1128
1172
  weekdays: number[];
1129
1173
  hideWeekdays: boolean;
@@ -1169,6 +1213,14 @@ declare const VDatePickerMonth: {
1169
1213
  hideWeekdays: BooleanConstructor;
1170
1214
  multiple: PropType<number | boolean | "range" | (string & {})>;
1171
1215
  showWeek: BooleanConstructor;
1216
+ transition: {
1217
+ type: StringConstructor;
1218
+ default: string;
1219
+ };
1220
+ reverseTransition: {
1221
+ type: StringConstructor;
1222
+ default: string;
1223
+ };
1172
1224
  }, vue.ExtractPropTypes<{
1173
1225
  allowedDates: PropType<unknown[] | ((date: unknown) => boolean)>;
1174
1226
  disabled: BooleanConstructor;
@@ -1200,6 +1252,14 @@ declare const VDatePickerMonth: {
1200
1252
  hideWeekdays: BooleanConstructor;
1201
1253
  multiple: PropType<number | boolean | "range" | (string & {})>;
1202
1254
  showWeek: BooleanConstructor;
1255
+ transition: {
1256
+ type: StringConstructor;
1257
+ default: string;
1258
+ };
1259
+ reverseTransition: {
1260
+ type: StringConstructor;
1261
+ default: string;
1262
+ };
1203
1263
  }>>;
1204
1264
  type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>;
1205
1265
 
@@ -10,7 +10,8 @@ import { useRtl } from "../../composables/locale.mjs";
10
10
  import { makeTagProps } from "../../composables/tag.mjs";
11
11
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
12
12
  import { computed, toRef } from 'vue';
13
- import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
13
+ import { convertToUnit, genericComponent, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
14
+ import { makeVTimelineItemProps } from "./VTimelineItem.mjs";
14
15
  export const makeVTimelineProps = propsFactory({
15
16
  align: {
16
17
  type: String,
@@ -31,10 +32,6 @@ export const makeVTimelineProps = propsFactory({
31
32
  type: String,
32
33
  validator: v => v == null || ['start', 'end'].includes(v)
33
34
  },
34
- lineInset: {
35
- type: [String, Number],
36
- default: 0
37
- },
38
35
  lineThickness: {
39
36
  type: [String, Number],
40
37
  default: 2
@@ -44,6 +41,9 @@ export const makeVTimelineProps = propsFactory({
44
41
  type: String,
45
42
  validator: v => ['start', 'end', 'both'].includes(v)
46
43
  },
44
+ ...only(makeVTimelineItemProps({
45
+ lineInset: 0
46
+ }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),
47
47
  ...makeComponentProps(),
48
48
  ...makeDensityProps(),
49
49
  ...makeTagProps(),
@@ -71,7 +71,13 @@ export const VTimeline = genericComponent()({
71
71
  },
72
72
  VTimelineItem: {
73
73
  density: toRef(props, 'density'),
74
- lineInset: toRef(props, 'lineInset')
74
+ dotColor: toRef(props, 'lineColor'),
75
+ fillDot: toRef(props, 'fillDot'),
76
+ hideOpposite: toRef(props, 'hideOpposite'),
77
+ iconColor: toRef(props, 'iconColor'),
78
+ lineColor: toRef(props, 'lineColor'),
79
+ lineInset: toRef(props, 'lineInset'),
80
+ size: toRef(props, 'size')
75
81
  }
76
82
  });
77
83
  const sideClasses = computed(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"VTimeline.mjs","names":["makeComponentProps","provideDefaults","makeDensityProps","useDensity","useRtl","makeTagProps","makeThemeProps","provideTheme","computed","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVTimelineProps","align","type","String","default","validator","v","includes","direction","justify","side","lineInset","Number","lineThickness","lineColor","truncateLine","VTimeline","name","props","setup","_ref","slots","themeClasses","densityClasses","rtlClasses","VTimelineDivider","VTimelineItem","density","sideClasses","truncateClasses","classes","_createVNode","tag","value","class","style"],"sources":["../../../src/components/VTimeline/VTimeline.tsx"],"sourcesContent":["// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const makeVTimelineProps = propsFactory({\n align: {\n type: String,\n default: 'center',\n validator: (v: any) => ['center', 'start'].includes(v),\n } as Prop<TimelineAlign>,\n direction: {\n type: String,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n } as Prop<TimelineDirection>,\n justify: {\n type: String,\n default: 'auto',\n validator: (v: any) => ['auto', 'center'].includes(v),\n },\n side: {\n type: String,\n validator: (v: any) => v == null || ['start', 'end'].includes(v),\n } as Prop<TimelineSide>,\n lineInset: {\n type: [String, Number],\n default: 0,\n },\n lineThickness: {\n type: [String, Number],\n default: 2,\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n } as Prop<TimelineTruncateLine>,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VTimeline')\n\nexport const VTimeline = genericComponent()({\n name: 'VTimeline',\n\n props: makeVTimelineProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { rtlClasses } = useRtl()\n\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor'),\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n lineInset: toRef(props, 'lineInset'),\n },\n })\n\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n return side && `v-timeline--side-${side}`\n })\n\n const truncateClasses = computed(() => {\n const classes = [\n 'v-timeline--truncate-line-start',\n 'v-timeline--truncate-line-end',\n ]\n\n switch (props.truncateLine) {\n case 'both': return classes\n case 'start': return classes[0]\n case 'end': return classes[1]\n default: return null\n }\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-timeline',\n `v-timeline--${props.direction}`,\n `v-timeline--align-${props.align}`,\n `v-timeline--justify-${props.justify}`,\n truncateClasses.value,\n {\n 'v-timeline--inset-line': !!props.lineInset,\n },\n themeClasses.value,\n densityClasses.value,\n sideClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness),\n },\n props.style,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VTimeline = InstanceType<typeof VTimeline>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,MAAM;AAAA,SACNC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,aAAa,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAEjE;AAQA,OAAO,MAAMC,kBAAkB,GAAGF,YAAY,CAAC;EAC7CG,KAAK,EAAE;IACLC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE,QAAQ;IACjBC,SAAS,EAAGC,CAAM,IAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAACC,QAAQ,CAACD,CAAC;EACvD,CAAwB;EACxBE,SAAS,EAAE;IACTN,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE,UAAU;IACnBC,SAAS,EAAGC,CAAM,IAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAACC,QAAQ,CAACD,CAAC;EAC9D,CAA4B;EAC5BG,OAAO,EAAE;IACPP,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE,MAAM;IACfC,SAAS,EAAGC,CAAM,IAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAACD,CAAC;EACtD,CAAC;EACDI,IAAI,EAAE;IACJR,IAAI,EAAEC,MAAM;IACZE,SAAS,EAAGC,CAAM,IAAKA,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAACC,QAAQ,CAACD,CAAC;EACjE,CAAuB;EACvBK,SAAS,EAAE;IACTT,IAAI,EAAE,CAACC,MAAM,EAAES,MAAM,CAAC;IACtBR,OAAO,EAAE;EACX,CAAC;EACDS,aAAa,EAAE;IACbX,IAAI,EAAE,CAACC,MAAM,EAAES,MAAM,CAAC;IACtBR,OAAO,EAAE;EACX,CAAC;EACDU,SAAS,EAAEX,MAAM;EACjBY,YAAY,EAAE;IACZb,IAAI,EAAEC,MAAM;IACZE,SAAS,EAAGC,CAAM,IAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAACC,QAAQ,CAACD,CAAC;EAC5D,CAA+B;EAE/B,GAAGpB,kBAAkB,CAAC,CAAC;EACvB,GAAGE,gBAAgB,CAAC,CAAC;EACrB,GAAGG,YAAY,CAAC,CAAC;EACjB,GAAGC,cAAc,CAAC;AACpB,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMwB,SAAS,GAAGnB,gBAAgB,CAAC,CAAC,CAAC;EAC1CoB,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAElB,kBAAkB,CAAC,CAAC;EAE3BmB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAG7B,YAAY,CAACyB,KAAK,CAAC;IAC5C,MAAM;MAAEK;IAAe,CAAC,GAAGlC,UAAU,CAAC6B,KAAK,CAAC;IAC5C,MAAM;MAAEM;IAAW,CAAC,GAAGlC,MAAM,CAAC,CAAC;IAE/BH,eAAe,CAAC;MACdsC,gBAAgB,EAAE;QAChBX,SAAS,EAAEnB,KAAK,CAACuB,KAAK,EAAE,WAAW;MACrC,CAAC;MACDQ,aAAa,EAAE;QACbC,OAAO,EAAEhC,KAAK,CAACuB,KAAK,EAAE,SAAS,CAAC;QAChCP,SAAS,EAAEhB,KAAK,CAACuB,KAAK,EAAE,WAAW;MACrC;IACF,CAAC,CAAC;IAEF,MAAMU,WAAW,GAAGlC,QAAQ,CAAC,MAAM;MACjC,MAAMgB,IAAI,GAAGQ,KAAK,CAACR,IAAI,GAAGQ,KAAK,CAACR,IAAI,GAAGQ,KAAK,CAACS,OAAO,KAAK,SAAS,GAAG,KAAK,GAAG,IAAI;MAEjF,OAAOjB,IAAI,IAAK,oBAAmBA,IAAK,EAAC;IAC3C,CAAC,CAAC;IAEF,MAAMmB,eAAe,GAAGnC,QAAQ,CAAC,MAAM;MACrC,MAAMoC,OAAO,GAAG,CACd,iCAAiC,EACjC,+BAA+B,CAChC;MAED,QAAQZ,KAAK,CAACH,YAAY;QACxB,KAAK,MAAM;UAAE,OAAOe,OAAO;QAC3B,KAAK,OAAO;UAAE,OAAOA,OAAO,CAAC,CAAC,CAAC;QAC/B,KAAK,KAAK;UAAE,OAAOA,OAAO,CAAC,CAAC,CAAC;QAC7B;UAAS,OAAO,IAAI;MACtB;IACF,CAAC,CAAC;IAEF/B,SAAS,CAAC,MAAAgC,YAAA,CAAAb,KAAA,CAAAc,GAAA;MAAA,SAEC,CACL,YAAY,EACX,eAAcd,KAAK,CAACV,SAAU,EAAC,EAC/B,qBAAoBU,KAAK,CAACjB,KAAM,EAAC,EACjC,uBAAsBiB,KAAK,CAACT,OAAQ,EAAC,EACtCoB,eAAe,CAACI,KAAK,EACrB;QACE,wBAAwB,EAAE,CAAC,CAACf,KAAK,CAACP;MACpC,CAAC,EACDW,YAAY,CAACW,KAAK,EAClBV,cAAc,CAACU,KAAK,EACpBL,WAAW,CAACK,KAAK,EACjBT,UAAU,CAACS,KAAK,EAChBf,KAAK,CAACgB,KAAK,CACZ;MAAA,SACM,CACL;QACE,6BAA6B,EAAEtC,aAAa,CAACsB,KAAK,CAACL,aAAa;MAClE,CAAC,EACDK,KAAK,CAACiB,KAAK;IACZ,GACSd,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VTimeline.mjs","names":["makeComponentProps","provideDefaults","makeDensityProps","useDensity","useRtl","makeTagProps","makeThemeProps","provideTheme","computed","toRef","convertToUnit","genericComponent","only","propsFactory","useRender","makeVTimelineItemProps","makeVTimelineProps","align","type","String","default","validator","v","includes","direction","justify","side","lineThickness","Number","lineColor","truncateLine","lineInset","VTimeline","name","props","setup","_ref","slots","themeClasses","densityClasses","rtlClasses","VTimelineDivider","VTimelineItem","density","dotColor","fillDot","hideOpposite","iconColor","size","sideClasses","truncateClasses","classes","_createVNode","tag","value","class","style"],"sources":["../../../src/components/VTimeline/VTimeline.tsx"],"sourcesContent":["// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport { makeVTimelineItemProps } from './VTimelineItem'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const makeVTimelineProps = propsFactory({\n align: {\n type: String,\n default: 'center',\n validator: (v: any) => ['center', 'start'].includes(v),\n } as Prop<TimelineAlign>,\n direction: {\n type: String,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n } as Prop<TimelineDirection>,\n justify: {\n type: String,\n default: 'auto',\n validator: (v: any) => ['auto', 'center'].includes(v),\n },\n side: {\n type: String,\n validator: (v: any) => v == null || ['start', 'end'].includes(v),\n } as Prop<TimelineSide>,\n lineThickness: {\n type: [String, Number],\n default: 2,\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n } as Prop<TimelineTruncateLine>,\n\n ...only(makeVTimelineItemProps({\n lineInset: 0,\n }), ['dotColor', 'fillDot', 'hideOpposite', 'iconColor', 'lineInset', 'size']),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VTimeline')\n\nexport const VTimeline = genericComponent()({\n name: 'VTimeline',\n\n props: makeVTimelineProps(),\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { rtlClasses } = useRtl()\n\n provideDefaults({\n VTimelineDivider: {\n lineColor: toRef(props, 'lineColor'),\n },\n VTimelineItem: {\n density: toRef(props, 'density'),\n dotColor: toRef(props, 'lineColor'),\n fillDot: toRef(props, 'fillDot'),\n hideOpposite: toRef(props, 'hideOpposite'),\n iconColor: toRef(props, 'iconColor'),\n lineColor: toRef(props, 'lineColor'),\n lineInset: toRef(props, 'lineInset'),\n size: toRef(props, 'size'),\n },\n })\n\n const sideClasses = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n return side && `v-timeline--side-${side}`\n })\n\n const truncateClasses = computed(() => {\n const classes = [\n 'v-timeline--truncate-line-start',\n 'v-timeline--truncate-line-end',\n ]\n\n switch (props.truncateLine) {\n case 'both': return classes\n case 'start': return classes[0]\n case 'end': return classes[1]\n default: return null\n }\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-timeline',\n `v-timeline--${props.direction}`,\n `v-timeline--align-${props.align}`,\n `v-timeline--justify-${props.justify}`,\n truncateClasses.value,\n {\n 'v-timeline--inset-line': !!props.lineInset,\n },\n themeClasses.value,\n densityClasses.value,\n sideClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness),\n },\n props.style,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VTimeline = InstanceType<typeof VTimeline>\n"],"mappings":"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"}