vuetify 3.5.11 → 3.5.12

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 (182) hide show
  1. package/dist/_component-variables-labs.sass +2 -1
  2. package/dist/json/attributes.json +243 -19
  3. package/dist/json/importMap-labs.json +22 -10
  4. package/dist/json/importMap.json +124 -124
  5. package/dist/json/tags.json +71 -0
  6. package/dist/json/web-types.json +747 -38
  7. package/dist/vuetify-labs.css +2339 -2089
  8. package/dist/vuetify-labs.d.ts +1117 -154
  9. package/dist/vuetify-labs.esm.js +675 -25
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +675 -25
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +1661 -1652
  14. package/dist/vuetify.d.ts +321 -192
  15. package/dist/vuetify.esm.js +33 -19
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +33 -19
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +93 -92
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAvatar/VAvatar.css +6 -0
  23. package/lib/components/VAvatar/VAvatar.sass +6 -0
  24. package/lib/components/VAvatar/_variables.scss +2 -0
  25. package/lib/components/VCheckbox/index.d.mts +54 -18
  26. package/lib/components/VChip/VChip.css +5 -2
  27. package/lib/components/VChip/VChip.sass +3 -0
  28. package/lib/components/VChip/_variables.scss +2 -2
  29. package/lib/components/VDivider/VDivider.css +1 -1
  30. package/lib/components/VDivider/VDivider.sass +1 -1
  31. package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -3
  32. package/lib/components/VExpansionPanel/VExpansionPanel.sass +2 -2
  33. package/lib/components/VField/VField.css +1 -1
  34. package/lib/components/VField/_variables.scss +1 -1
  35. package/lib/components/VFileInput/index.d.mts +12 -12
  36. package/lib/components/VForm/index.d.mts +42 -42
  37. package/lib/components/VInput/index.d.mts +6 -6
  38. package/lib/components/VRadio/index.d.mts +27 -9
  39. package/lib/components/VRadioGroup/index.d.mts +27 -9
  40. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -0
  41. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  42. package/lib/components/VSelectionControl/index.d.mts +27 -9
  43. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +1 -1
  44. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  45. package/lib/components/VSelectionControlGroup/index.d.mts +27 -9
  46. package/lib/components/VSwitch/index.d.mts +27 -9
  47. package/lib/components/VTextField/index.d.mts +12 -12
  48. package/lib/components/VTextarea/index.d.mts +12 -12
  49. package/lib/components/VValidation/index.d.mts +6 -6
  50. package/lib/components/index.d.mts +279 -153
  51. package/lib/composables/form.mjs.map +1 -1
  52. package/lib/composables/router.mjs +16 -8
  53. package/lib/composables/router.mjs.map +1 -1
  54. package/lib/composables/transition.mjs +5 -2
  55. package/lib/composables/transition.mjs.map +1 -1
  56. package/lib/composables/validation.mjs +5 -4
  57. package/lib/composables/validation.mjs.map +1 -1
  58. package/lib/entry-bundler.mjs +1 -1
  59. package/lib/framework.mjs +1 -1
  60. package/lib/index.d.mts +42 -39
  61. package/lib/labs/VNumberInput/VNumberInput.mjs +4 -4
  62. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  63. package/lib/labs/VTimePicker/SelectingTimes.mjs.map +1 -0
  64. package/lib/labs/VTimePicker/VTimePicker.css +8 -0
  65. package/lib/labs/VTimePicker/VTimePicker.mjs +265 -0
  66. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -0
  67. package/lib/labs/VTimePicker/VTimePicker.sass +10 -0
  68. package/lib/labs/VTimePicker/VTimePickerClock.css +130 -0
  69. package/lib/labs/VTimePicker/VTimePickerClock.mjs +244 -0
  70. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -0
  71. package/lib/{components → labs}/VTimePicker/VTimePickerClock.sass +22 -39
  72. package/lib/labs/VTimePicker/VTimePickerControls.css +104 -0
  73. package/lib/labs/VTimePicker/VTimePickerControls.mjs +125 -0
  74. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -0
  75. package/lib/labs/VTimePicker/VTimePickerControls.sass +102 -0
  76. package/lib/labs/VTimePicker/_variables.scss +34 -0
  77. package/lib/labs/VTimePicker/index.d.mts +848 -0
  78. package/lib/labs/VTimePicker/index.mjs +4 -0
  79. package/lib/labs/VTimePicker/index.mjs.map +1 -0
  80. package/lib/labs/components.d.mts +835 -1
  81. package/lib/labs/components.mjs +1 -0
  82. package/lib/labs/components.mjs.map +1 -1
  83. package/lib/locale/af.mjs +2 -1
  84. package/lib/locale/af.mjs.map +1 -1
  85. package/lib/locale/ar.mjs +2 -1
  86. package/lib/locale/ar.mjs.map +1 -1
  87. package/lib/locale/az.mjs +2 -1
  88. package/lib/locale/az.mjs.map +1 -1
  89. package/lib/locale/bg.mjs +2 -1
  90. package/lib/locale/bg.mjs.map +1 -1
  91. package/lib/locale/ca.mjs +2 -1
  92. package/lib/locale/ca.mjs.map +1 -1
  93. package/lib/locale/ckb.mjs +2 -1
  94. package/lib/locale/ckb.mjs.map +1 -1
  95. package/lib/locale/cs.mjs +2 -1
  96. package/lib/locale/cs.mjs.map +1 -1
  97. package/lib/locale/da.mjs +2 -1
  98. package/lib/locale/da.mjs.map +1 -1
  99. package/lib/locale/de.mjs +2 -1
  100. package/lib/locale/de.mjs.map +1 -1
  101. package/lib/locale/el.mjs +2 -1
  102. package/lib/locale/el.mjs.map +1 -1
  103. package/lib/locale/en.mjs +2 -1
  104. package/lib/locale/en.mjs.map +1 -1
  105. package/lib/locale/es.mjs +2 -1
  106. package/lib/locale/es.mjs.map +1 -1
  107. package/lib/locale/et.mjs +2 -1
  108. package/lib/locale/et.mjs.map +1 -1
  109. package/lib/locale/fa.mjs +2 -1
  110. package/lib/locale/fa.mjs.map +1 -1
  111. package/lib/locale/fi.mjs +2 -1
  112. package/lib/locale/fi.mjs.map +1 -1
  113. package/lib/locale/fr.mjs +2 -1
  114. package/lib/locale/fr.mjs.map +1 -1
  115. package/lib/locale/he.mjs +2 -1
  116. package/lib/locale/he.mjs.map +1 -1
  117. package/lib/locale/hr.mjs +2 -1
  118. package/lib/locale/hr.mjs.map +1 -1
  119. package/lib/locale/hu.mjs +2 -1
  120. package/lib/locale/hu.mjs.map +1 -1
  121. package/lib/locale/id.mjs +2 -1
  122. package/lib/locale/id.mjs.map +1 -1
  123. package/lib/locale/index.d.mts +43 -0
  124. package/lib/locale/it.mjs +2 -1
  125. package/lib/locale/it.mjs.map +1 -1
  126. package/lib/locale/ja.mjs +2 -1
  127. package/lib/locale/ja.mjs.map +1 -1
  128. package/lib/locale/km.mjs +2 -1
  129. package/lib/locale/km.mjs.map +1 -1
  130. package/lib/locale/ko.mjs +2 -1
  131. package/lib/locale/ko.mjs.map +1 -1
  132. package/lib/locale/lt.mjs +2 -1
  133. package/lib/locale/lt.mjs.map +1 -1
  134. package/lib/locale/lv.mjs +2 -1
  135. package/lib/locale/lv.mjs.map +1 -1
  136. package/lib/locale/nl.mjs +2 -1
  137. package/lib/locale/nl.mjs.map +1 -1
  138. package/lib/locale/no.mjs +2 -1
  139. package/lib/locale/no.mjs.map +1 -1
  140. package/lib/locale/pl.mjs +2 -1
  141. package/lib/locale/pl.mjs.map +1 -1
  142. package/lib/locale/pt.mjs +2 -1
  143. package/lib/locale/pt.mjs.map +1 -1
  144. package/lib/locale/ro.mjs +2 -1
  145. package/lib/locale/ro.mjs.map +1 -1
  146. package/lib/locale/ru.mjs +2 -1
  147. package/lib/locale/ru.mjs.map +1 -1
  148. package/lib/locale/sk.mjs +2 -1
  149. package/lib/locale/sk.mjs.map +1 -1
  150. package/lib/locale/sl.mjs +2 -1
  151. package/lib/locale/sl.mjs.map +1 -1
  152. package/lib/locale/sr-Cyrl.mjs +2 -1
  153. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  154. package/lib/locale/sr-Latn.mjs +2 -1
  155. package/lib/locale/sr-Latn.mjs.map +1 -1
  156. package/lib/locale/sv.mjs +2 -1
  157. package/lib/locale/sv.mjs.map +1 -1
  158. package/lib/locale/th.mjs +2 -1
  159. package/lib/locale/th.mjs.map +1 -1
  160. package/lib/locale/tr.mjs +2 -1
  161. package/lib/locale/tr.mjs.map +1 -1
  162. package/lib/locale/uk.mjs +2 -1
  163. package/lib/locale/uk.mjs.map +1 -1
  164. package/lib/locale/vi.mjs +2 -1
  165. package/lib/locale/vi.mjs.map +1 -1
  166. package/lib/locale/zh-Hans.mjs +2 -1
  167. package/lib/locale/zh-Hans.mjs.map +1 -1
  168. package/lib/locale/zh-Hant.mjs +2 -1
  169. package/lib/locale/zh-Hant.mjs.map +1 -1
  170. package/package.json +4 -4
  171. package/lib/components/VTimePicker/SelectingTimes.mjs.map +0 -1
  172. package/lib/components/VTimePicker/VTimePicker.mjs +0 -288
  173. package/lib/components/VTimePicker/VTimePicker.mjs.map +0 -1
  174. package/lib/components/VTimePicker/VTimePickerClock.mjs +0 -251
  175. package/lib/components/VTimePicker/VTimePickerClock.mjs.map +0 -1
  176. package/lib/components/VTimePicker/VTimePickerTitle.mjs +0 -64
  177. package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +0 -1
  178. package/lib/components/VTimePicker/VTimePickerTitle.sass +0 -61
  179. package/lib/components/VTimePicker/_variables.scss +0 -32
  180. package/lib/components/VTimePicker/index.mjs +0 -12
  181. package/lib/components/VTimePicker/index.mjs.map +0 -1
  182. /package/lib/{components → labs}/VTimePicker/SelectingTimes.mjs +0 -0
@@ -0,0 +1,244 @@
1
+ import { createVNode as _createVNode } from "vue";
2
+ // StylesthisValue
3
+ // Styles
4
+ import "./VTimePickerClock.css";
5
+
6
+ // Composables
7
+ import { useBackgroundColor, useTextColor } from "../../composables/color.mjs"; // Utilities
8
+ import { computed, ref, toRef, watch } from 'vue';
9
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
10
+ export const makeVTimePickerClockProps = propsFactory({
11
+ allowedValues: Function,
12
+ ampm: Boolean,
13
+ color: String,
14
+ disabled: Boolean,
15
+ displayedValue: {
16
+ default: null
17
+ },
18
+ double: Boolean,
19
+ format: {
20
+ type: Function,
21
+ default: val => val
22
+ },
23
+ max: {
24
+ type: Number,
25
+ required: true
26
+ },
27
+ min: {
28
+ type: Number,
29
+ required: true
30
+ },
31
+ scrollable: Boolean,
32
+ readonly: Boolean,
33
+ rotate: {
34
+ type: Number,
35
+ default: 0
36
+ },
37
+ step: {
38
+ type: Number,
39
+ default: 1
40
+ },
41
+ modelValue: {
42
+ type: Number
43
+ }
44
+ }, 'VTimePickerClock');
45
+ export const VTimePickerClock = genericComponent()({
46
+ name: 'VTimePickerClock',
47
+ props: makeVTimePickerClockProps(),
48
+ emits: {
49
+ change: val => val,
50
+ input: val => val
51
+ },
52
+ setup(props, _ref) {
53
+ let {
54
+ emit
55
+ } = _ref;
56
+ const clockRef = ref(null);
57
+ const innerClockRef = ref(null);
58
+ const inputValue = ref(undefined);
59
+ const isDragging = ref(false);
60
+ const valueOnMouseDown = ref(null);
61
+ const valueOnMouseUp = ref(null);
62
+ const {
63
+ textColorClasses,
64
+ textColorStyles
65
+ } = useTextColor(toRef(props, 'color'));
66
+ const {
67
+ backgroundColorClasses,
68
+ backgroundColorStyles
69
+ } = useBackgroundColor(toRef(props, 'color'));
70
+ const count = computed(() => props.max - props.min + 1);
71
+ const roundCount = computed(() => props.double ? count.value / 2 : count.value);
72
+ const degreesPerUnit = computed(() => 360 / roundCount.value);
73
+ const degrees = computed(() => degreesPerUnit.value * Math.PI / 180);
74
+ const displayedValue = computed(() => props.modelValue == null ? props.min : props.modelValue);
75
+ const innerRadiusScale = computed(() => 0.62);
76
+ const genChildren = computed(() => {
77
+ const children = [];
78
+ for (let value = props.min; value <= props.max; value = value + props.step) {
79
+ children.push(value);
80
+ }
81
+ return children;
82
+ });
83
+ watch(() => props.modelValue, val => {
84
+ inputValue.value = val;
85
+ });
86
+ function update(value) {
87
+ if (inputValue.value !== value) {
88
+ inputValue.value = value;
89
+ }
90
+ emit('input', value);
91
+ }
92
+ function isAllowed(value) {
93
+ return !props.allowedValues || props.allowedValues(value);
94
+ }
95
+ function wheel(e) {
96
+ e.preventDefault();
97
+ const delta = Math.sign(-e.deltaY || 1);
98
+ let value = displayedValue.value;
99
+ do {
100
+ value = value + delta;
101
+ value = (value - props.min + count.value) % count.value + props.min;
102
+ } while (!isAllowed(value) && value !== displayedValue.value);
103
+ if (value !== props.displayedValue) {
104
+ update(value);
105
+ }
106
+ }
107
+ function isInner(value) {
108
+ return props.double && value - props.min >= roundCount.value;
109
+ }
110
+ function handScale(value) {
111
+ return isInner(value) ? innerRadiusScale.value : 1;
112
+ }
113
+ function getPosition(value) {
114
+ const rotateRadians = props.rotate * Math.PI / 180;
115
+ return {
116
+ x: Math.sin((value - props.min) * degrees.value + rotateRadians) * handScale(value),
117
+ y: -Math.cos((value - props.min) * degrees.value + rotateRadians) * handScale(value)
118
+ };
119
+ }
120
+ function angleToValue(angle, insideClick) {
121
+ const value = (Math.round(angle / degreesPerUnit.value) + (insideClick ? roundCount.value : 0)) % count.value + props.min;
122
+
123
+ // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock
124
+ if (angle < 360 - degreesPerUnit.value / 2) return value;
125
+ return insideClick ? props.max - roundCount.value + 1 : props.min;
126
+ }
127
+ function getTransform(i) {
128
+ const {
129
+ x,
130
+ y
131
+ } = getPosition(i);
132
+ return {
133
+ left: `${50 + x * 50}%`,
134
+ top: `${50 + y * 50}%`
135
+ };
136
+ }
137
+ function euclidean(p0, p1) {
138
+ const dx = p1.x - p0.x;
139
+ const dy = p1.y - p0.y;
140
+ return Math.sqrt(dx * dx + dy * dy);
141
+ }
142
+ function angle(center, p1) {
143
+ const value = 2 * Math.atan2(p1.y - center.y - euclidean(center, p1), p1.x - center.x);
144
+ return Math.abs(value * 180 / Math.PI);
145
+ }
146
+ function setMouseDownValue(value) {
147
+ if (valueOnMouseDown.value === null) {
148
+ valueOnMouseDown.value = value;
149
+ }
150
+ valueOnMouseUp.value = value;
151
+ update(value);
152
+ }
153
+ function onDragMove(e) {
154
+ e.preventDefault();
155
+ if (!isDragging.value && e.type !== 'click' || !clockRef.value) return;
156
+ const {
157
+ width,
158
+ top,
159
+ left
160
+ } = clockRef.value?.getBoundingClientRect();
161
+ const {
162
+ width: innerWidth
163
+ } = innerClockRef.value?.getBoundingClientRect() ?? {
164
+ width: 0
165
+ };
166
+ const {
167
+ clientX,
168
+ clientY
169
+ } = 'touches' in e ? e.touches[0] : e;
170
+ const center = {
171
+ x: width / 2,
172
+ y: -width / 2
173
+ };
174
+ const coords = {
175
+ x: clientX - left,
176
+ y: top - clientY
177
+ };
178
+ const handAngle = Math.round(angle(center, coords) - props.rotate + 360) % 360;
179
+ const insideClick = props.double && euclidean(center, coords) < (innerWidth + innerWidth * innerRadiusScale.value) / 4;
180
+ const checksCount = Math.ceil(15 / degreesPerUnit.value);
181
+ let value;
182
+ for (let i = 0; i < checksCount; i++) {
183
+ value = angleToValue(handAngle + i * degreesPerUnit.value, insideClick);
184
+ if (isAllowed(value)) return setMouseDownValue(value);
185
+ value = angleToValue(handAngle - i * degreesPerUnit.value, insideClick);
186
+ if (isAllowed(value)) return setMouseDownValue(value);
187
+ }
188
+ }
189
+ function onMouseDown(e) {
190
+ e.preventDefault();
191
+ valueOnMouseDown.value = null;
192
+ valueOnMouseUp.value = null;
193
+ isDragging.value = true;
194
+ onDragMove(e);
195
+ }
196
+ function onMouseUp(e) {
197
+ e.stopPropagation();
198
+ isDragging.value = false;
199
+ if (valueOnMouseUp.value !== null && isAllowed(valueOnMouseUp.value)) {
200
+ emit('change', valueOnMouseUp.value);
201
+ }
202
+ }
203
+ useRender(() => {
204
+ return _createVNode("div", {
205
+ "class": [{
206
+ 'v-time-picker-clock': true,
207
+ 'v-time-picker-clock--indeterminate': props.modelValue == null,
208
+ 'v-time-picker-clock--readonly': props.readonly
209
+ }],
210
+ "onMousedown": onMouseDown,
211
+ "onMouseup": onMouseUp,
212
+ "onMouseleave": e => isDragging.value && onMouseUp(e),
213
+ "onTouchstart": onMouseDown,
214
+ "onTouchend": onMouseUp,
215
+ "onMousemove": onDragMove,
216
+ "onTouchmove": onDragMove,
217
+ "onWheel": e => props.scrollable && wheel(e),
218
+ "ref": clockRef
219
+ }, [_createVNode("div", {
220
+ "class": "v-time-picker-clock__inner",
221
+ "ref": innerClockRef
222
+ }, [_createVNode("div", {
223
+ "class": [{
224
+ 'v-time-picker-clock__hand': true,
225
+ 'v-time-picker-clock__hand--inner': isInner(props.modelValue)
226
+ }, textColorClasses.value],
227
+ "style": [{
228
+ transform: `rotate(${props.rotate + degreesPerUnit.value * (displayedValue.value - props.min)}deg) scaleY(${handScale(displayedValue.value)})`
229
+ }, textColorStyles.value]
230
+ }, null), genChildren.value.map(value => {
231
+ const isActive = value === displayedValue.value;
232
+ return _createVNode("div", {
233
+ "class": [{
234
+ 'v-time-picker-clock__item': true,
235
+ 'v-time-picker-clock__item--active': isActive,
236
+ 'v-time-picker-clock__item--disabled': props.disabled || !isAllowed(value)
237
+ }, isActive && backgroundColorClasses.value],
238
+ "style": [getTransform(value), isActive && backgroundColorStyles.value]
239
+ }, [_createVNode("span", null, [props.format(value)])]);
240
+ })])]);
241
+ });
242
+ }
243
+ });
244
+ //# sourceMappingURL=VTimePickerClock.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VTimePickerClock.mjs","names":["useBackgroundColor","useTextColor","computed","ref","toRef","watch","genericComponent","propsFactory","useRender","makeVTimePickerClockProps","allowedValues","Function","ampm","Boolean","color","String","disabled","displayedValue","default","double","format","type","val","max","Number","required","min","scrollable","readonly","rotate","step","modelValue","VTimePickerClock","name","props","emits","change","input","setup","_ref","emit","clockRef","innerClockRef","inputValue","undefined","isDragging","valueOnMouseDown","valueOnMouseUp","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","count","roundCount","value","degreesPerUnit","degrees","Math","PI","innerRadiusScale","genChildren","children","push","update","isAllowed","wheel","e","preventDefault","delta","sign","deltaY","isInner","handScale","getPosition","rotateRadians","x","sin","y","cos","angleToValue","angle","insideClick","round","getTransform","i","left","top","euclidean","p0","p1","dx","dy","sqrt","center","atan2","abs","setMouseDownValue","onDragMove","width","getBoundingClientRect","innerWidth","clientX","clientY","touches","coords","handAngle","checksCount","ceil","onMouseDown","onMouseUp","stopPropagation","_createVNode","transform","map","isActive"],"sources":["../../../src/labs/VTimePicker/VTimePickerClock.tsx"],"sourcesContent":["// StylesthisValue\n// Styles\nimport './VTimePickerClock.sass'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\ninterface Point {\n x: number\n y: number\n}\n\nexport const makeVTimePickerClockProps = propsFactory({\n allowedValues: Function as PropType<(value: number) => boolean>,\n ampm: Boolean,\n color: String,\n disabled: Boolean,\n displayedValue: {\n default: null,\n },\n double: Boolean,\n format: {\n type: Function,\n default: (val: string | number) => val,\n },\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n scrollable: Boolean,\n readonly: Boolean,\n rotate: {\n type: Number,\n default: 0,\n },\n step: {\n type: Number,\n default: 1,\n },\n modelValue: {\n type: Number,\n },\n}, 'VTimePickerClock')\n\nexport const VTimePickerClock = genericComponent()({\n name: 'VTimePickerClock',\n\n props: makeVTimePickerClockProps(),\n\n emits: {\n change: (val: number) => val,\n input: (val: number) => val,\n },\n\n setup (props, { emit }) {\n const clockRef = ref<HTMLElement | null>(null)\n const innerClockRef = ref<HTMLElement | null>(null)\n const inputValue = ref<number | undefined>(undefined)\n const isDragging = ref(false)\n const valueOnMouseDown = ref(null as number | null)\n const valueOnMouseUp = ref(null as number | null)\n\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n\n const count = computed(() => props.max - props.min + 1)\n const roundCount = computed(() => props.double ? (count.value / 2) : count.value)\n const degreesPerUnit = computed(() => 360 / roundCount.value)\n const degrees = computed(() => degreesPerUnit.value * Math.PI / 180)\n const displayedValue = computed(() => props.modelValue == null ? props.min : props.modelValue)\n const innerRadiusScale = computed(() => 0.62)\n\n const genChildren = computed(() => {\n const children = []\n for (let value = props.min; value <= props.max; value = value + props.step) {\n children.push(value)\n }\n return children\n })\n\n watch(() => props.modelValue, val => {\n inputValue.value = val\n })\n\n function update (value: number) {\n if (inputValue.value !== value) {\n inputValue.value = value\n }\n emit('input', value)\n }\n\n function isAllowed (value: number) {\n return !props.allowedValues || props.allowedValues(value)\n }\n\n function wheel (e: WheelEvent) {\n e.preventDefault()\n\n const delta = Math.sign(-e.deltaY || 1)\n let value = displayedValue.value\n do {\n value = value + delta\n value = (value - props.min + count.value) % count.value + props.min\n } while (!isAllowed(value) && value !== displayedValue.value)\n\n if (value !== props.displayedValue) {\n update(value)\n }\n }\n\n function isInner (value: number) {\n return props.double && (value - props.min >= roundCount.value)\n }\n\n function handScale (value: number) {\n return isInner(value) ? innerRadiusScale.value : 1\n }\n\n function getPosition (value: number) {\n const rotateRadians = props.rotate * Math.PI / 180\n return {\n x: Math.sin((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n y: -Math.cos((value - props.min) * degrees.value + rotateRadians) * handScale(value),\n }\n }\n\n function angleToValue (angle: number, insideClick: boolean): number {\n const value = (\n Math.round(angle / degreesPerUnit.value) +\n (insideClick ? roundCount.value : 0)\n ) % count.value + props.min\n\n // Necessary to fix edge case when selecting left part of the value(s) at 12 o'clock\n if (angle < (360 - degreesPerUnit.value / 2)) return value\n\n return insideClick ? props.max - roundCount.value + 1 : props.min\n }\n\n function getTransform (i: number) {\n const { x, y } = getPosition(i)\n return {\n left: `${50 + x * 50}%`,\n top: `${50 + y * 50}%`,\n }\n }\n\n function euclidean (p0: Point, p1: Point) {\n const dx = p1.x - p0.x\n const dy = p1.y - p0.y\n\n return Math.sqrt(dx * dx + dy * dy)\n }\n\n function angle (center: Point, p1: Point) {\n const value = 2 * Math.atan2(p1.y - center.y - euclidean(center, p1), p1.x - center.x)\n return Math.abs(value * 180 / Math.PI)\n }\n\n function setMouseDownValue (value: number) {\n if (valueOnMouseDown.value === null) {\n valueOnMouseDown.value = value\n }\n\n valueOnMouseUp.value = value\n update(value)\n }\n\n function onDragMove (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n if ((!isDragging.value && e.type !== 'click') || !clockRef.value) return\n const { width, top, left } = clockRef.value?.getBoundingClientRect()\n const { width: innerWidth }: DOMRect = innerClockRef.value?.getBoundingClientRect() ?? { width: 0 } as DOMRect\n const { clientX, clientY } = 'touches' in e ? e.touches[0] : e\n const center = { x: width / 2, y: -width / 2 }\n const coords = { x: clientX - left, y: top - clientY }\n const handAngle = Math.round(angle(center, coords) - props.rotate + 360) % 360\n const insideClick = props.double && euclidean(center, coords) < (innerWidth as number + innerWidth * innerRadiusScale.value) / 4\n const checksCount = Math.ceil(15 / degreesPerUnit.value)\n let value\n\n for (let i = 0; i < checksCount; i++) {\n value = angleToValue(handAngle + i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n\n value = angleToValue(handAngle - i * degreesPerUnit.value, insideClick)\n if (isAllowed(value)) return setMouseDownValue(value)\n }\n }\n\n function onMouseDown (e: MouseEvent | TouchEvent) {\n e.preventDefault()\n\n valueOnMouseDown.value = null\n valueOnMouseUp.value = null\n isDragging.value = true\n onDragMove(e)\n }\n\n function onMouseUp (e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n\n isDragging.value = false\n if (valueOnMouseUp.value !== null && isAllowed(valueOnMouseUp.value)) {\n emit('change', valueOnMouseUp.value)\n }\n }\n\n useRender(() => {\n return (\n <div\n class={[\n {\n 'v-time-picker-clock': true,\n 'v-time-picker-clock--indeterminate': props.modelValue == null,\n 'v-time-picker-clock--readonly': props.readonly,\n },\n ]}\n onMousedown={ onMouseDown }\n onMouseup={ onMouseUp }\n onMouseleave={ (e: MouseEvent) => (isDragging.value && onMouseUp(e)) }\n onTouchstart={ onMouseDown }\n onTouchend={ onMouseUp }\n onMousemove={ onDragMove }\n onTouchmove={ onDragMove }\n onWheel={ (e: WheelEvent) => (props.scrollable && wheel(e)) }\n ref={ clockRef }\n >\n <div class=\"v-time-picker-clock__inner\" ref={ innerClockRef }>\n <div\n class={[\n {\n 'v-time-picker-clock__hand': true,\n 'v-time-picker-clock__hand--inner': isInner(props.modelValue as number),\n },\n textColorClasses.value,\n ]}\n style={[\n {\n transform: `rotate(${props.rotate + degreesPerUnit.value * (displayedValue.value - props.min)}deg) scaleY(${handScale(displayedValue.value)})`,\n },\n textColorStyles.value,\n ]}\n />\n\n {\n genChildren.value.map(value => {\n const isActive = value === displayedValue.value\n\n return (\n <div\n class={[\n {\n 'v-time-picker-clock__item': true,\n 'v-time-picker-clock__item--active': isActive,\n 'v-time-picker-clock__item--disabled': props.disabled || !isAllowed(value),\n },\n isActive && backgroundColorClasses.value,\n ]}\n style={[\n getTransform(value),\n isActive && backgroundColorStyles.value,\n ]}\n >\n <span>{ props.format(value) }</span>\n </div>\n )\n })\n }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VTimePickerClock = InstanceType<typeof VTimePickerClock>\n"],"mappings":"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"}
@@ -1,32 +1,27 @@
1
1
  @import './_variables.scss'
2
2
 
3
3
  // Theme
4
- +theme(v-time-picker-clock) using ($material)
5
- background: map-deep-get($material, 'picker', 'clock')
6
-
7
- .v-time-picker-clock__item--disabled
8
- color: map-deep-get($material, 'buttons', 'disabled')
4
+ .v-time-picker-clock
5
+ background: rgb(var(--v-theme-background))
6
+ color: rgb(var(--v-theme-on-background))
9
7
 
10
- &.v-time-picker-clock__item--active
11
- color: map-deep-get($material-dark, 'buttons', 'disabled')
12
8
 
13
- &--indeterminate
14
- .v-time-picker-clock__hand
15
- background-color: map-deep-get($material, 'picker', 'indeterminateTime')
9
+ &:after
10
+ color: rgb(var(--v-theme-primary))
16
11
 
17
- &:after
18
- color: map-deep-get($material, 'picker', 'indeterminateTime')
19
-
20
- .v-time-picker-clock__item--active
21
- background-color: map-deep-get($material, 'picker', 'indeterminateTime')
12
+ .v-time-picker-clock__item--active
13
+ background-color: rgb(var(--v-theme-surface-variant))
14
+ color: rgb(var(--v-theme-on-surface-variant))
22
15
 
23
16
  .v-time-picker-clock
24
- border-radius: 100%
17
+ margin: 0 auto
18
+ background: rgb(var(--v-theme-surface-light))
19
+ border-radius: 50%
25
20
  position: relative
26
- transition: $primary-transition
21
+ transition: none
27
22
  user-select: none
28
- width: 100%
29
- padding-top: 100%
23
+ height: 256px
24
+ width: 256px
30
25
  flex: 1 0 auto
31
26
 
32
27
  &__container
@@ -36,20 +31,8 @@
36
31
  justify-content: center
37
32
  padding: $time-picker-clock-padding
38
33
 
39
- &__ampm
40
- display: flex
41
- flex-direction: row
42
- justify-content: space-between
43
- align-items: flex-end
44
- position: absolute
45
- width: 100%
46
- height: 100%
47
- top: 0
48
- left: 0
49
- margin: 0
50
- padding: $time-picker-ampm-padding
51
-
52
34
  &__hand
35
+ background-color: currentColor
53
36
  height: $time-picker-clock-hand-height
54
37
  width: $time-picker-clock-hand-width
55
38
  bottom: 50%
@@ -81,14 +64,18 @@
81
64
  top: 100%
82
65
  left: 50%
83
66
  border-radius: 100%
84
- border-style: solid
85
- border-color: inherit
86
- background-color: inherit
67
+ background-color: currentColor
87
68
  transform: translate(-50%, -50%)
88
69
 
89
70
  &--inner:after
90
71
  height: $time-picker-clock-inner-hand-height
91
72
 
73
+ &--readonly
74
+ pointer-events: none
75
+
76
+ .v-time-picker-clock__item--disabled
77
+ opacity: var(--v-disabled-opacity)
78
+
92
79
  .v-picker--full-width
93
80
  .v-time-picker-clock__container
94
81
  max-width: $time-picker-clock-max-width
@@ -132,7 +119,6 @@
132
119
  width: $time-picker-indicator-size
133
120
 
134
121
  &--active
135
- color: map-get($shades, 'white')
136
122
  cursor: default
137
123
  z-index: 2
138
124
 
@@ -143,6 +129,3 @@
143
129
  .v-time-picker-clock
144
130
  &__container
145
131
  flex-direction: row
146
-
147
- &__ampm
148
- flex-direction: column
@@ -0,0 +1,104 @@
1
+ .v-time-picker-controls {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ font-size: 0.875rem;
6
+ padding-top: 4px;
7
+ padding-bottom: 4px;
8
+ margin-bottom: 36px;
9
+ }
10
+ .v-time-picker-controls__text {
11
+ padding-bottom: 12px;
12
+ }
13
+ .v-time-picker-controls__time {
14
+ display: flex;
15
+ white-space: nowrap;
16
+ direction: ltr;
17
+ justify-content: center;
18
+ }
19
+ .v-time-picker-controls__time__btn.v-btn--density-default.v-btn {
20
+ width: 96px;
21
+ height: 80px;
22
+ font-size: 56px;
23
+ }
24
+ .v-time-picker-controls__time__btn.v-btn--density-default.v-btn__active {
25
+ background: rgb(var(--v-theme-primary));
26
+ }
27
+ .v-time-picker-controls__time__btn.v-btn--density-default.v-btn.v-time-picker-controls__time--with-ampm__btn {
28
+ width: 96px;
29
+ height: 80px;
30
+ }
31
+ .v-time-picker-controls__time__btn.v-btn--density-default.v-btn.v-time-picker-controls__time--with-seconds__btn {
32
+ width: 64px;
33
+ height: 80px;
34
+ font-size: 40px;
35
+ }
36
+ .v-time-picker-controls__time__separator {
37
+ font-size: 56px;
38
+ height: 80px;
39
+ width: 24px;
40
+ text-align: center;
41
+ }
42
+ .v-time-picker-controls__time__separator.v-time-picker-controls--with-seconds__time__separator {
43
+ height: 80px;
44
+ font-size: 56px;
45
+ }
46
+
47
+ .v-time-picker-controls__ampm {
48
+ margin-left: 12px;
49
+ align-self: flex-end;
50
+ display: flex;
51
+ flex-direction: column;
52
+ font-size: 18px;
53
+ text-transform: uppercase;
54
+ }
55
+ .v-time-picker-controls__ampm--readonly {
56
+ pointer-events: none;
57
+ }
58
+ .v-time-picker-controls__ampm--readonly .v-picker__title__btn.v-picker__title__btn--active {
59
+ opacity: 0.6;
60
+ }
61
+ .v-time-picker-controls__ampm__btn.v-btn.v-btn--density-default {
62
+ font-size: 18px;
63
+ padding: 0 8px;
64
+ min-width: 52px;
65
+ height: 40px;
66
+ }
67
+ .v-time-picker-controls__ampm__btn.v-btn.v-btn--density-default.v-time-picker-controls__ampm__am {
68
+ border-radius: 4px 4px 0 0;
69
+ border: 1px solid;
70
+ }
71
+ .v-time-picker-controls__ampm__btn.v-btn.v-btn--density-default.v-time-picker-controls__ampm__pm {
72
+ border-radius: 0 0 4px 4px;
73
+ border: 1px solid;
74
+ border-top: none;
75
+ }
76
+ .v-time-picker-controls__ampm__btn.v-btn.v-btn--density-default__active {
77
+ background: rgb(var(--v-theme-primary));
78
+ }
79
+
80
+ .v-picker__title--landscape .v-time-picker-controls {
81
+ flex-direction: column;
82
+ justify-content: center;
83
+ height: 100%;
84
+ }
85
+ .v-picker__title--landscape .v-time-picker-controls__time {
86
+ text-align: right;
87
+ }
88
+ .v-picker__title--landscape .v-time-picker-controls__time .v-picker__title__btn,
89
+ .v-picker__title--landscape .v-time-picker-controls__time span {
90
+ height: 55px;
91
+ font-size: 55px;
92
+ }
93
+ .v-picker__title--landscape .v-time-picker-controls__ampm {
94
+ margin: 16px 0 0;
95
+ align-self: initial;
96
+ text-align: center;
97
+ }
98
+
99
+ .v-picker--time .v-picker__title--landscape {
100
+ padding: 0;
101
+ }
102
+ .v-picker--time .v-picker__title--landscape .v-time-picker-controls__time {
103
+ text-align: center;
104
+ }
@@ -0,0 +1,125 @@
1
+ import { createTextVNode as _createTextVNode, createVNode as _createVNode } from "vue";
2
+ // Styles
3
+ import "./VTimePickerControls.css";
4
+
5
+ // Components
6
+ import { VBtn } from "../../components/VBtn/index.mjs";
7
+ import { pad } from "../../components/VDatePicker/util/index.mjs"; // Composables
8
+ import { useLocale } from "../../composables/locale.mjs"; // Utilities
9
+ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
10
+ import { SelectingTimes } from "./SelectingTimes.mjs";
11
+ export const makeVTimePickerControlsProps = propsFactory({
12
+ ampm: Boolean,
13
+ ampmReadonly: Boolean,
14
+ color: String,
15
+ disabled: Boolean,
16
+ hour: Number,
17
+ minute: Number,
18
+ second: Number,
19
+ period: String,
20
+ readonly: Boolean,
21
+ useSeconds: Boolean,
22
+ selecting: Number,
23
+ value: Number
24
+ }, 'VTimePickerControls');
25
+ export const VTimePickerControls = genericComponent()({
26
+ name: 'VTimePickerControls',
27
+ props: makeVTimePickerControlsProps(),
28
+ emits: {
29
+ 'update:period': data => data,
30
+ 'update:selecting': data => data
31
+ },
32
+ setup(props, _ref) {
33
+ let {
34
+ emit,
35
+ slots
36
+ } = _ref;
37
+ const {
38
+ t
39
+ } = useLocale();
40
+ useRender(() => {
41
+ let hour = props.hour;
42
+ if (props.ampm) {
43
+ hour = hour ? (hour - 1) % 12 + 1 : 12;
44
+ }
45
+ return _createVNode("div", {
46
+ "class": "v-time-picker-controls"
47
+ }, [_createVNode("div", {
48
+ "class": {
49
+ 'v-time-picker-controls__time': true,
50
+ 'v-time-picker-controls__time--with-seconds': props.useSeconds
51
+ }
52
+ }, [_createVNode(VBtn, {
53
+ "active": props.selecting === 1,
54
+ "color": props.selecting === 1 ? props.color : undefined,
55
+ "variant": "tonal",
56
+ "class": {
57
+ 'v-time-picker-controls__time__btn': true,
58
+ 'v-time-picker-controls__time--with-ampm__btn': props.ampm,
59
+ 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
60
+ },
61
+ "text": props.hour == null ? '--' : pad(`${hour}`),
62
+ "onClick": () => emit('update:selecting', SelectingTimes.Hour)
63
+ }, null), _createVNode("span", {
64
+ "class": ['v-time-picker-controls__time__separator', {
65
+ 'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
66
+ }]
67
+ }, [_createTextVNode(":")]), _createVNode(VBtn, {
68
+ "active": props.selecting === 2,
69
+ "color": props.selecting === 2 ? props.color : undefined,
70
+ "class": {
71
+ 'v-time-picker-controls__time__btn': true,
72
+ 'v-time-picker-controls__time__btn__active': props.selecting === 2,
73
+ 'v-time-picker-controls__time--with-ampm__btn': props.ampm,
74
+ 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
75
+ },
76
+ "variant": "tonal",
77
+ "text": props.minute == null ? '--' : pad(props.minute),
78
+ "onClick": () => emit('update:selecting', SelectingTimes.Minute)
79
+ }, null), props.useSeconds && _createVNode("span", {
80
+ "class": ['v-time-picker-controls__time__separator', {
81
+ 'v-time-picker-controls--with-seconds__time__separator': props.useSeconds
82
+ }],
83
+ "key": "secondsDivider"
84
+ }, [_createTextVNode(":")]), props.useSeconds && _createVNode(VBtn, {
85
+ "key": "secondsVal",
86
+ "variant": "tonal",
87
+ "onClick": () => emit('update:selecting', SelectingTimes.Second),
88
+ "class": {
89
+ 'v-time-picker-controls__time__btn': true,
90
+ 'v-time-picker-controls__time__btn__active': props.selecting === 3,
91
+ 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
92
+ },
93
+ "text": props.second == null ? '--' : pad(props.second)
94
+ }, null), props.ampm && _createVNode("div", {
95
+ "class": ['v-time-picker-controls__ampm', {
96
+ 'v-time-picker-controls__ampm--readonly': props.ampmReadonly
97
+ }]
98
+ }, [_createVNode(VBtn, {
99
+ "active": props.period === 'am',
100
+ "color": props.period === 'am' ? props.color : undefined,
101
+ "class": {
102
+ 'v-time-picker-controls__ampm__am': true,
103
+ 'v-time-picker-controls__ampm__btn': true,
104
+ 'v-time-picker-controls__ampm__btn__active': props.period === 'am'
105
+ },
106
+ "text": t('$vuetify.timePicker.am'),
107
+ "variant": "tonal",
108
+ "onClick": () => props.period !== 'am' ? emit('update:period', 'am') : null
109
+ }, null), _createVNode(VBtn, {
110
+ "active": props.period === 'pm',
111
+ "color": props.period === 'pm' ? props.color : undefined,
112
+ "class": {
113
+ 'v-time-picker-controls__ampm__pm': true,
114
+ 'v-time-picker-controls__ampm__btn': true,
115
+ 'v-time-picker-controls__ampm__btn__active': props.period === 'pm'
116
+ },
117
+ "text": t('$vuetify.timePicker.pm'),
118
+ "variant": "tonal",
119
+ "onClick": () => props.period !== 'pm' ? emit('update:period', 'pm') : null
120
+ }, null)])])]);
121
+ });
122
+ return {};
123
+ }
124
+ });
125
+ //# sourceMappingURL=VTimePickerControls.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VTimePickerControls.mjs","names":["VBtn","pad","useLocale","genericComponent","propsFactory","useRender","SelectingTimes","makeVTimePickerControlsProps","ampm","Boolean","ampmReadonly","color","String","disabled","hour","Number","minute","second","period","readonly","useSeconds","selecting","value","VTimePickerControls","name","props","emits","data","setup","_ref","emit","slots","t","_createVNode","undefined","onClick","Hour","_createTextVNode","Minute","Second"],"sources":["../../../src/labs/VTimePicker/VTimePickerControls.tsx"],"sourcesContent":["// Styles\nimport './VTimePickerControls.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { pad } from '@/components/VDatePicker/util'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport { SelectingTimes } from './SelectingTimes'\ntype Period = 'am' | 'pm'\n\nexport const makeVTimePickerControlsProps = propsFactory({\n ampm: Boolean,\n ampmReadonly: Boolean,\n color: String,\n disabled: Boolean,\n hour: Number,\n minute: Number,\n second: Number,\n period: String,\n readonly: Boolean,\n useSeconds: Boolean,\n selecting: Number,\n value: Number,\n}, 'VTimePickerControls')\n\nexport const VTimePickerControls = genericComponent()({\n name: 'VTimePickerControls',\n\n props: makeVTimePickerControlsProps(),\n\n emits: {\n 'update:period': (data: Period) => data,\n 'update:selecting': (data: 1 | 2 | 3) => data,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n\n useRender(() => {\n let hour = props.hour\n if (props.ampm) {\n hour = hour ? ((hour - 1) % 12 + 1) : 12\n }\n return (\n <div class=\"v-time-picker-controls\">\n <div\n class={{\n 'v-time-picker-controls__time': true,\n 'v-time-picker-controls__time--with-seconds': props.useSeconds,\n }}\n >\n <VBtn\n active={ props.selecting === 1 }\n color={ props.selecting === 1 ? props.color : undefined }\n variant=\"tonal\"\n class={{\n 'v-time-picker-controls__time__btn': true,\n 'v-time-picker-controls__time--with-ampm__btn': props.ampm,\n 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,\n }}\n text={ props.hour == null ? '--' : pad(`${hour}`) }\n onClick={ () => emit('update:selecting', SelectingTimes.Hour) }\n />\n\n <span\n class={[\n 'v-time-picker-controls__time__separator',\n { 'v-time-picker-controls--with-seconds__time__separator': props.useSeconds },\n ]}\n >:</span>\n\n <VBtn\n active={ props.selecting === 2 }\n color={ props.selecting === 2 ? props.color : undefined }\n class={{\n 'v-time-picker-controls__time__btn': true,\n 'v-time-picker-controls__time__btn__active': props.selecting === 2,\n 'v-time-picker-controls__time--with-ampm__btn': props.ampm,\n 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,\n }}\n variant=\"tonal\"\n text={ props.minute == null ? '--' : pad(props.minute) }\n onClick={ () => emit('update:selecting', SelectingTimes.Minute) }\n />\n\n {\n props.useSeconds && (\n <span\n class={[\n 'v-time-picker-controls__time__separator',\n { 'v-time-picker-controls--with-seconds__time__separator': props.useSeconds },\n ]}\n key=\"secondsDivider\"\n >:</span>\n )\n }\n\n {\n props.useSeconds && (\n <VBtn\n key=\"secondsVal\"\n variant=\"tonal\"\n onClick={ () => emit('update:selecting', SelectingTimes.Second) }\n class={{\n 'v-time-picker-controls__time__btn': true,\n 'v-time-picker-controls__time__btn__active': props.selecting === 3,\n 'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,\n }}\n text={ props.second == null ? '--' : pad(props.second) }\n />\n )\n }\n\n {\n props.ampm && (\n <div\n class={['v-time-picker-controls__ampm', {\n 'v-time-picker-controls__ampm--readonly': props.ampmReadonly,\n }]}\n >\n <VBtn\n active={ props.period === 'am' }\n color={ props.period === 'am' ? props.color : undefined }\n class={{\n 'v-time-picker-controls__ampm__am': true,\n 'v-time-picker-controls__ampm__btn': true,\n 'v-time-picker-controls__ampm__btn__active': props.period === 'am',\n }}\n text={ t('$vuetify.timePicker.am') }\n variant=\"tonal\"\n onClick={ () => props.period !== 'am' ? emit('update:period', 'am') : null }\n />\n\n <VBtn\n active={ props.period === 'pm' }\n color={ props.period === 'pm' ? props.color : undefined }\n class={{\n 'v-time-picker-controls__ampm__pm': true,\n 'v-time-picker-controls__ampm__btn': true,\n 'v-time-picker-controls__ampm__btn__active': props.period === 'pm',\n }}\n text={ t('$vuetify.timePicker.pm') }\n variant=\"tonal\"\n onClick={ () => props.period !== 'pm' ? emit('update:period', 'pm') : null }\n />\n </div>\n )\n }\n </div>\n </div>\n )\n })\n\n return {}\n },\n\n})\n\nexport type VTimePickerControls = InstanceType<typeof VTimePickerControls>\n"],"mappings":"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"}