@vuetify/nightly 3.9.2-master.2025-07-28 → 3.9.3-master.2025-07-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 (186) hide show
  1. package/CHANGELOG.md +9 -51
  2. package/dist/json/attributes.json +3076 -3076
  3. package/dist/json/importMap-labs.json +30 -30
  4. package/dist/json/importMap.json +154 -154
  5. package/dist/json/web-types.json +5573 -5573
  6. package/dist/vuetify-labs.cjs +91 -35
  7. package/dist/vuetify-labs.css +4963 -4960
  8. package/dist/vuetify-labs.d.ts +60 -59
  9. package/dist/vuetify-labs.esm.js +91 -35
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +91 -35
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +59 -20
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4049 -4046
  16. package/dist/vuetify.d.ts +60 -59
  17. package/dist/vuetify.esm.js +59 -20
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +59 -20
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +200 -198
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VCombobox/VCombobox.js +10 -6
  25. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  26. package/lib/components/VDatePicker/VDatePickerControls.js +8 -1
  27. package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
  28. package/lib/components/VDatePicker/VDatePickerMonth.js +11 -0
  29. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  30. package/lib/components/VDatePicker/VDatePickerMonths.js +3 -0
  31. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  32. package/lib/components/VList/VListChildren.js +3 -4
  33. package/lib/components/VList/VListChildren.js.map +1 -1
  34. package/lib/components/VSlider/VSliderThumb.css +9 -14
  35. package/lib/components/VSlider/VSliderThumb.js +13 -7
  36. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  37. package/lib/components/VSlider/VSliderThumb.sass +9 -14
  38. package/lib/components/VSlider/slider.d.ts +1 -0
  39. package/lib/components/VSlider/slider.js +2 -0
  40. package/lib/components/VSlider/slider.js.map +1 -1
  41. package/lib/components/VWindow/VWindow.css +8 -0
  42. package/lib/components/VWindow/VWindow.sass +9 -0
  43. package/lib/composables/theme.d.ts +1 -0
  44. package/lib/composables/theme.js +3 -1
  45. package/lib/composables/theme.js.map +1 -1
  46. package/lib/directives/ripple/index.js +2 -2
  47. package/lib/directives/ripple/index.js.map +1 -1
  48. package/lib/entry-bundler.js +1 -1
  49. package/lib/framework.d.ts +60 -59
  50. package/lib/framework.js +1 -1
  51. package/lib/labs/VVideo/VVideo.css +1 -1
  52. package/lib/labs/VVideo/VVideo.js +2 -2
  53. package/lib/labs/VVideo/VVideo.js.map +1 -1
  54. package/lib/labs/VVideo/VVideo.sass +2 -0
  55. package/lib/labs/VVideo/VVideoControls.js +32 -15
  56. package/lib/labs/VVideo/VVideoControls.js.map +1 -1
  57. package/lib/locale/af.d.ts +7 -0
  58. package/lib/locale/af.js +7 -0
  59. package/lib/locale/af.js.map +1 -1
  60. package/lib/locale/ar.d.ts +7 -0
  61. package/lib/locale/ar.js +13 -6
  62. package/lib/locale/ar.js.map +1 -1
  63. package/lib/locale/az.d.ts +7 -0
  64. package/lib/locale/az.js +7 -0
  65. package/lib/locale/az.js.map +1 -1
  66. package/lib/locale/bg.d.ts +7 -0
  67. package/lib/locale/bg.js +7 -0
  68. package/lib/locale/bg.js.map +1 -1
  69. package/lib/locale/ca.d.ts +7 -0
  70. package/lib/locale/ca.js +7 -0
  71. package/lib/locale/ca.js.map +1 -1
  72. package/lib/locale/ckb.d.ts +7 -0
  73. package/lib/locale/ckb.js +7 -0
  74. package/lib/locale/ckb.js.map +1 -1
  75. package/lib/locale/cs.d.ts +7 -0
  76. package/lib/locale/cs.js +7 -0
  77. package/lib/locale/cs.js.map +1 -1
  78. package/lib/locale/da.d.ts +7 -0
  79. package/lib/locale/da.js +7 -0
  80. package/lib/locale/da.js.map +1 -1
  81. package/lib/locale/de.d.ts +7 -0
  82. package/lib/locale/de.js +7 -0
  83. package/lib/locale/de.js.map +1 -1
  84. package/lib/locale/el.d.ts +7 -0
  85. package/lib/locale/el.js +7 -0
  86. package/lib/locale/el.js.map +1 -1
  87. package/lib/locale/en.d.ts +7 -0
  88. package/lib/locale/en.js +8 -0
  89. package/lib/locale/en.js.map +1 -1
  90. package/lib/locale/es.d.ts +7 -0
  91. package/lib/locale/es.js +7 -0
  92. package/lib/locale/es.js.map +1 -1
  93. package/lib/locale/et.d.ts +7 -0
  94. package/lib/locale/et.js +7 -0
  95. package/lib/locale/et.js.map +1 -1
  96. package/lib/locale/fa.d.ts +7 -0
  97. package/lib/locale/fa.js +7 -0
  98. package/lib/locale/fa.js.map +1 -1
  99. package/lib/locale/fi.d.ts +7 -0
  100. package/lib/locale/fi.js +7 -0
  101. package/lib/locale/fi.js.map +1 -1
  102. package/lib/locale/fr.d.ts +7 -0
  103. package/lib/locale/fr.js +7 -0
  104. package/lib/locale/fr.js.map +1 -1
  105. package/lib/locale/he.d.ts +7 -0
  106. package/lib/locale/he.js +7 -0
  107. package/lib/locale/he.js.map +1 -1
  108. package/lib/locale/hr.d.ts +7 -0
  109. package/lib/locale/hr.js +7 -0
  110. package/lib/locale/hr.js.map +1 -1
  111. package/lib/locale/hu.d.ts +7 -0
  112. package/lib/locale/hu.js +7 -0
  113. package/lib/locale/hu.js.map +1 -1
  114. package/lib/locale/id.d.ts +7 -0
  115. package/lib/locale/id.js +7 -0
  116. package/lib/locale/id.js.map +1 -1
  117. package/lib/locale/it.d.ts +7 -0
  118. package/lib/locale/it.js +7 -0
  119. package/lib/locale/it.js.map +1 -1
  120. package/lib/locale/ja.d.ts +7 -0
  121. package/lib/locale/ja.js +7 -0
  122. package/lib/locale/ja.js.map +1 -1
  123. package/lib/locale/km.d.ts +7 -0
  124. package/lib/locale/km.js +7 -0
  125. package/lib/locale/km.js.map +1 -1
  126. package/lib/locale/ko.d.ts +7 -0
  127. package/lib/locale/ko.js +7 -0
  128. package/lib/locale/ko.js.map +1 -1
  129. package/lib/locale/lt.d.ts +7 -0
  130. package/lib/locale/lt.js +7 -0
  131. package/lib/locale/lt.js.map +1 -1
  132. package/lib/locale/lv.d.ts +7 -0
  133. package/lib/locale/lv.js +7 -0
  134. package/lib/locale/lv.js.map +1 -1
  135. package/lib/locale/nl.d.ts +7 -0
  136. package/lib/locale/nl.js +7 -0
  137. package/lib/locale/nl.js.map +1 -1
  138. package/lib/locale/no.d.ts +7 -0
  139. package/lib/locale/no.js +7 -0
  140. package/lib/locale/no.js.map +1 -1
  141. package/lib/locale/pl.d.ts +7 -0
  142. package/lib/locale/pl.js +7 -0
  143. package/lib/locale/pl.js.map +1 -1
  144. package/lib/locale/pt.d.ts +7 -0
  145. package/lib/locale/pt.js +7 -0
  146. package/lib/locale/pt.js.map +1 -1
  147. package/lib/locale/ro.d.ts +7 -0
  148. package/lib/locale/ro.js +7 -0
  149. package/lib/locale/ro.js.map +1 -1
  150. package/lib/locale/ru.d.ts +7 -0
  151. package/lib/locale/ru.js +7 -0
  152. package/lib/locale/ru.js.map +1 -1
  153. package/lib/locale/sk.d.ts +7 -0
  154. package/lib/locale/sk.js +7 -0
  155. package/lib/locale/sk.js.map +1 -1
  156. package/lib/locale/sl.d.ts +7 -0
  157. package/lib/locale/sl.js +7 -0
  158. package/lib/locale/sl.js.map +1 -1
  159. package/lib/locale/sr-Cyrl.d.ts +7 -0
  160. package/lib/locale/sr-Cyrl.js +7 -0
  161. package/lib/locale/sr-Cyrl.js.map +1 -1
  162. package/lib/locale/sr-Latn.d.ts +7 -0
  163. package/lib/locale/sr-Latn.js +7 -0
  164. package/lib/locale/sr-Latn.js.map +1 -1
  165. package/lib/locale/sv.d.ts +7 -0
  166. package/lib/locale/sv.js +7 -0
  167. package/lib/locale/sv.js.map +1 -1
  168. package/lib/locale/th.d.ts +7 -0
  169. package/lib/locale/th.js +7 -0
  170. package/lib/locale/th.js.map +1 -1
  171. package/lib/locale/tr.d.ts +7 -0
  172. package/lib/locale/tr.js +7 -0
  173. package/lib/locale/tr.js.map +1 -1
  174. package/lib/locale/uk.d.ts +7 -0
  175. package/lib/locale/uk.js +7 -0
  176. package/lib/locale/uk.js.map +1 -1
  177. package/lib/locale/vi.d.ts +7 -0
  178. package/lib/locale/vi.js +7 -0
  179. package/lib/locale/vi.js.map +1 -1
  180. package/lib/locale/zh-Hans.d.ts +7 -0
  181. package/lib/locale/zh-Hans.js +7 -0
  182. package/lib/locale/zh-Hans.js.map +1 -1
  183. package/lib/locale/zh-Hant.d.ts +7 -0
  184. package/lib/locale/zh-Hant.js +7 -0
  185. package/lib/locale/zh-Hant.js.map +1 -1
  186. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VListChildren.js","names":["VListGroup","VListItem","VListSubheader","VDivider","createList","genericComponent","propsFactory","makeVListChildrenProps","items","Array","returnObject","Boolean","VListChildren","name","props","setup","_ref","slots","default","map","_ref2","children","itemProps","type","raw","item","divider","_createVNode","subheader","slotsWithItem","subtitle","slotProps","undefined","prepend","append","title","listGroupProps","filterProps","_mergeProps","value","activator","_ref3","activatorProps","listItemProps","header"],"sources":["../../../src/components/VList/VListChildren.tsx"],"sourcesContent":["// Components\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\nimport { VDivider } from '@/components/VDivider'\n\n// Utilities\nimport { createList } from './list'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from './VList'\nimport type { VListItemSlots } from './VListItem'\nimport type { GenericProps } from '@/util'\n\nexport type VListChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & { item: T }\n} & {\n default: never\n item: { props: InternalListItem['props'] }\n divider: { props: InternalListItem['props'] }\n subheader: { props: InternalListItem['props'] }\n header: { props: InternalListItem['props'] }\n}\n\nexport const makeVListChildrenProps = propsFactory({\n items: Array as PropType<readonly InternalListItem[]>,\n returnObject: Boolean,\n}, 'VListChildren')\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n returnObject?: boolean\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VListChildren',\n\n props: makeVListChildrenProps(),\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type, raw: item }) => {\n if (type === 'divider') {\n return slots.divider?.({ props: itemProps }) ?? (\n <VDivider { ...itemProps } />\n )\n }\n\n if (type === 'subheader') {\n return slots.subheader?.({ props: itemProps }) ?? (\n <VListSubheader { ...itemProps } />\n )\n }\n\n const slotsWithItem = {\n subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n }\n\n const listGroupProps = VListGroup.filterProps(itemProps)\n\n return children ? (\n <VListGroup\n { ...listGroupProps }\n value={ props.returnObject ? item : itemProps?.value }\n rawId={ itemProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: props.returnObject ? item : itemProps.value,\n }\n\n return slots.header\n ? slots.header({ props: listItemProps })\n : (\n <VListItem { ...listItemProps } v-slots={ slotsWithItem } />\n )\n },\n default: () => (\n <VListChildren\n items={ children }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item({ props: itemProps }) : (\n <VListItem\n { ...itemProps }\n value={ props.returnObject ? item : itemProps.value }\n v-slots={ slotsWithItem }\n />\n )\n )\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VListChildren.js","names":["VListGroup","VListItem","VListSubheader","VDivider","mergeProps","createList","genericComponent","propsFactory","makeVListChildrenProps","items","Array","returnObject","Boolean","VListChildren","name","props","setup","_ref","slots","default","map","_ref2","children","itemProps","type","raw","item","divider","_createVNode","subheader","slotsWithItem","subtitle","slotProps","undefined","prepend","append","title","listGroupProps","filterProps","_mergeProps","value","activator","_ref3","activatorProps","listItemProps","header"],"sources":["../../../src/components/VList/VListChildren.tsx"],"sourcesContent":["// Components\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\nimport { VDivider } from '@/components/VDivider'\n\n// Utilities\nimport { mergeProps } from 'vue'\nimport { createList } from './list'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from './VList'\nimport type { VListItemSlots } from './VListItem'\nimport type { GenericProps } from '@/util'\n\nexport type VListChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & { item: T }\n} & {\n default: never\n item: { props: InternalListItem['props'] }\n divider: { props: InternalListItem['props'] }\n subheader: { props: InternalListItem['props'] }\n header: { props: InternalListItem['props'] }\n}\n\nexport const makeVListChildrenProps = propsFactory({\n items: Array as PropType<readonly InternalListItem[]>,\n returnObject: Boolean,\n}, 'VListChildren')\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n returnObject?: boolean\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VListChildren',\n\n props: makeVListChildrenProps(),\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type, raw: item }) => {\n if (type === 'divider') {\n return slots.divider?.({ props: itemProps }) ?? (\n <VDivider { ...itemProps } />\n )\n }\n\n if (type === 'subheader') {\n return slots.subheader?.({ props: itemProps }) ?? (\n <VListSubheader { ...itemProps } />\n )\n }\n\n const slotsWithItem = {\n subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n }\n\n const listGroupProps = VListGroup.filterProps(itemProps)\n\n return children ? (\n <VListGroup\n { ...listGroupProps }\n value={ props.returnObject ? item : itemProps?.value }\n rawId={ itemProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = mergeProps(\n itemProps,\n activatorProps,\n { value: props.returnObject ? item : itemProps.value }\n ) as typeof itemProps\n\n return slots.header\n ? slots.header({ props: listItemProps })\n : (\n <VListItem { ...listItemProps } v-slots={ slotsWithItem } />\n )\n },\n default: () => (\n <VListChildren\n items={ children }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item({ props: itemProps }) : (\n <VListItem\n { ...itemProps }\n value={ props.returnObject ? item : itemProps.value }\n v-slots={ slotsWithItem }\n />\n )\n )\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
@@ -10,8 +10,8 @@
10
10
  background: rgba(var(--v-theme-surface-variant), 0.7);
11
11
  color: rgb(var(--v-theme-on-surface-variant));
12
12
  }
13
- .v-slider-thumb__label::before {
14
- color: rgba(var(--v-theme-surface-variant), 0.7);
13
+ .v-slider-thumb__label > .v-slider-thumb__label-wedge {
14
+ background: inherit;
15
15
  }
16
16
 
17
17
  .v-slider-thumb {
@@ -75,10 +75,9 @@
75
75
  user-select: none;
76
76
  transition: 0.2s cubic-bezier(0.4, 0, 1, 1);
77
77
  }
78
- .v-slider-thumb__label::before {
79
- content: "";
80
- width: 0;
81
- height: 0;
78
+ .v-slider-thumb__label > .v-slider-thumb__label-wedge {
79
+ width: 12px;
80
+ height: 12px;
82
81
  position: absolute;
83
82
  }
84
83
 
@@ -111,10 +110,8 @@
111
110
  transform: translateX(50%);
112
111
  }
113
112
 
114
- .v-slider.v-input--horizontal .v-slider-thumb__label::before {
115
- border-left: 6px solid transparent;
116
- border-right: 6px solid transparent;
117
- border-top: 6px solid currentColor;
113
+ .v-slider.v-input--horizontal .v-slider-thumb__label > .v-slider-thumb__label-wedge {
114
+ clip-path: polygon(50% 100%, 0 50%, 100% 50%);
118
115
  bottom: -6px;
119
116
  }
120
117
 
@@ -129,10 +126,8 @@
129
126
  top: -12.5px;
130
127
  left: calc(var(--v-slider-thumb-size) / 2);
131
128
  }
132
- .v-slider.v-input--vertical .v-slider-thumb__label::before {
133
- border-right: 6px solid currentColor;
134
- border-top: 6px solid transparent;
135
- border-bottom: 6px solid transparent;
129
+ .v-slider.v-input--vertical .v-slider-thumb__label > .v-slider-thumb__label-wedge {
130
+ clip-path: polygon(0 50%, 50% 0, 50% 100%);
136
131
  left: -6px;
137
132
  }
138
133
 
@@ -1,11 +1,11 @@
1
- import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from "vue";
1
+ import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VSliderThumb.css";
4
4
 
5
5
  // Components
6
6
  import { VSliderSymbol } from "./slider.js";
7
7
  import { VScaleTransition } from "../transitions/index.js"; // Composables
8
- import { useTextColor } from "../../composables/color.js";
8
+ import { useBackgroundColor, useTextColor } from "../../composables/color.js";
9
9
  import { makeComponentProps } from "../../composables/component.js";
10
10
  import { useElevation } from "../../composables/elevation.js";
11
11
  import { useRtl } from "../../composables/locale.js"; // Directives
@@ -62,6 +62,7 @@ export const VSliderThumb = genericComponent()({
62
62
  min,
63
63
  max,
64
64
  thumbColor,
65
+ thumbLabelColor,
65
66
  step,
66
67
  disabled,
67
68
  thumbSize,
@@ -83,6 +84,10 @@ export const VSliderThumb = genericComponent()({
83
84
  textColorClasses,
84
85
  textColorStyles
85
86
  } = useTextColor(thumbColor);
87
+ const {
88
+ backgroundColorClasses,
89
+ backgroundColorStyles
90
+ } = useBackgroundColor(thumbLabelColor);
86
91
  const {
87
92
  pageup,
88
93
  pagedown,
@@ -148,9 +153,7 @@ export const VSliderThumb = genericComponent()({
148
153
  "onKeydown": !readonly.value ? onKeydown : undefined
149
154
  }, [_createElementVNode("div", {
150
155
  "class": _normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
151
- "style": {
152
- ...textColorStyles.value
153
- }
156
+ "style": _normalizeStyle(textColorStyles.value)
154
157
  }, null), _withDirectives(_createElementVNode("div", {
155
158
  "class": _normalizeClass(['v-slider-thumb__ripple', textColorClasses.value]),
156
159
  "style": _normalizeStyle(textColorStyles.value)
@@ -163,10 +166,13 @@ export const VSliderThumb = genericComponent()({
163
166
  default: () => [_withDirectives(_createElementVNode("div", {
164
167
  "class": "v-slider-thumb__label-container"
165
168
  }, [_createElementVNode("div", {
166
- "class": _normalizeClass(['v-slider-thumb__label', textColorClasses.value])
169
+ "class": _normalizeClass(['v-slider-thumb__label', backgroundColorClasses.value]),
170
+ "style": _normalizeStyle(backgroundColorStyles.value)
167
171
  }, [_createElementVNode("div", null, [slots['thumb-label']?.({
168
172
  modelValue: props.modelValue
169
- }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[_vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
173
+ }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)]), _createElementVNode("div", {
174
+ "class": "v-slider-thumb__label-wedge"
175
+ }, null)])]), [[_vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
170
176
  })]);
171
177
  });
172
178
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"VSliderThumb.js","names":["VSliderSymbol","VScaleTransition","useTextColor","makeComponentProps","useElevation","useRtl","vRipple","computed","inject","convertToUnit","genericComponent","keyValues","propsFactory","useRender","makeVSliderThumbProps","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","Object","default","name","String","noKeyboard","VSliderThumb","directives","props","emits","v","setup","_ref","slots","emit","slider","isRtl","rtlClasses","Error","thumbColor","step","disabled","thumbSize","thumbLabel","direction","isReversed","vertical","readonly","elevation","mousePressed","decimals","indexFromEnd","elevationProps","value","undefined","elevationClasses","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","isInteger","Math","onKeydown","newValue","positionPercentage","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","_withDirectives","circle","center","_createVNode","toFixed","_vShow"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport vRipple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n name: String,\n noKeyboard: Boolean,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { vRipple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n min,\n max,\n thumbColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (props.noKeyboard) return\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (max.value - min.value) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n if (direction === -1 && value === max.value && !multiplier && !Number.isInteger(steps)) {\n value = value - (steps % 1) * _step\n } else {\n value = value + (direction * _step * multipliers.value[multiplier])\n }\n } else if (e.key === home) {\n value = min.value\n } else if (e.key === end) {\n value = max.value\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n props.class,\n rtlClasses.value,\n ]}\n style={[\n {\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n },\n props.style,\n ]}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-label={ props.name }\n aria-valuemin={ min.value }\n aria-valuemax={ max.value }\n aria-valuenow={ props.modelValue }\n aria-readonly={ !!readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n textColorClasses.value,\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSliderThumb.js","names":["VSliderSymbol","VScaleTransition","useBackgroundColor","useTextColor","makeComponentProps","useElevation","useRtl","vRipple","computed","inject","convertToUnit","genericComponent","keyValues","propsFactory","useRender","makeVSliderThumbProps","focused","Boolean","max","type","Number","required","min","modelValue","position","ripple","Object","default","name","String","noKeyboard","VSliderThumb","directives","props","emits","v","setup","_ref","slots","emit","slider","isRtl","rtlClasses","Error","thumbColor","thumbLabelColor","step","disabled","thumbSize","thumbLabel","direction","isReversed","vertical","readonly","elevation","mousePressed","decimals","indexFromEnd","elevationProps","value","undefined","elevationClasses","textColorClasses","textColorStyles","backgroundColorClasses","backgroundColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","isInteger","Math","onKeydown","newValue","positionPercentage","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","_withDirectives","circle","center","_createVNode","toFixed","_vShow"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\nimport { VScaleTransition } from '../transitions'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\n\n// Directives\nimport vRipple from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type VSliderThumbSlots = {\n 'thumb-label': { modelValue: number }\n}\n\nexport const makeVSliderThumbProps = propsFactory({\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n name: String,\n noKeyboard: Boolean,\n\n ...makeComponentProps(),\n}, 'VSliderThumb')\n\nexport const VSliderThumb = genericComponent<VSliderThumbSlots>()({\n name: 'VSliderThumb',\n\n directives: { vRipple },\n\n props: makeVSliderThumbProps(),\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n const { isRtl, rtlClasses } = useRtl()\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n min,\n max,\n thumbColor,\n thumbLabelColor,\n step,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n isReversed,\n vertical,\n readonly,\n elevation,\n mousePressed,\n decimals,\n indexFromEnd,\n } = slider\n\n const elevationProps = computed(() => !disabled.value ? elevation.value : undefined)\n const { elevationClasses } = useElevation(elevationProps)\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(thumbLabelColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (props.noKeyboard) return\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (max.value - min.value) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = vertical.value\n ? [isRtl.value ? left : right, isReversed.value ? down : up]\n : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n if (direction === -1 && value === max.value && !multiplier && !Number.isInteger(steps)) {\n value = value - (steps % 1) * _step\n } else {\n value = value + (direction * _step * multipliers.value[multiplier])\n }\n } else if (e.key === home) {\n value = min.value\n } else if (e.key === end) {\n value = max.value\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n useRender(() => {\n const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%')\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n props.class,\n rtlClasses.value,\n ]}\n style={[\n {\n '--v-slider-thumb-position': positionPercentage,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n },\n props.style,\n ]}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-label={ props.name }\n aria-valuemin={ min.value }\n aria-valuemax={ max.value }\n aria-valuenow={ props.modelValue }\n aria-readonly={ !!readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={ textColorStyles.value }\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[props.ripple, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n <div class=\"v-slider-thumb__label-wedge\" />\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,aAAa;AAAA,SACbC,gBAAgB,mCAEzB;AAAA,SACSC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,kBAAkB;AAAA,SAClBC,YAAY;AAAA,SACZC,MAAM,uCAEf;AAAA,OACOC,OAAO,0CAEd;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS,EAAEC,YAAY,EAAEC,SAAS,+BAE5E;AAQA,OAAO,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EAChDG,OAAO,EAAEC,OAAO;EAChBC,GAAG,EAAE;IACHC,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDC,GAAG,EAAE;IACHH,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDE,UAAU,EAAE;IACVJ,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDG,QAAQ,EAAE;IACRL,IAAI,EAAEC,MAAM;IACZC,QAAQ,EAAE;EACZ,CAAC;EACDI,MAAM,EAAE;IACNN,IAAI,EAAE,CAACF,OAAO,EAAES,MAAM,CAA8C;IACpEC,OAAO,EAAE;EACX,CAAC;EACDC,IAAI,EAAEC,MAAM;EACZC,UAAU,EAAEb,OAAO;EAEnB,GAAGb,kBAAkB,CAAC;AACxB,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAM2B,YAAY,GAAGpB,gBAAgB,CAAoB,CAAC,CAAC;EAChEiB,IAAI,EAAE,cAAc;EAEpBI,UAAU,EAAE;IAAEzB;EAAQ,CAAC;EAEvB0B,KAAK,EAAElB,qBAAqB,CAAC,CAAC;EAE9BmB,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAS,IAAK;EACtC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC3B,MAAMG,MAAM,GAAG/B,MAAM,CAACT,aAAa,CAAC;IACpC,MAAM;MAAEyC,KAAK;MAAEC;IAAW,CAAC,GAAGpC,MAAM,CAAC,CAAC;IACtC,IAAI,CAACkC,MAAM,EAAE,MAAM,IAAIG,KAAK,CAAC,yEAAyE,CAAC;IAEvG,MAAM;MACJrB,GAAG;MACHJ,GAAG;MACH0B,UAAU;MACVC,eAAe;MACfC,IAAI;MACJC,QAAQ;MACRC,SAAS;MACTC,UAAU;MACVC,SAAS;MACTC,UAAU;MACVC,QAAQ;MACRC,QAAQ;MACRC,SAAS;MACTC,YAAY;MACZC,QAAQ;MACRC;IACF,CAAC,GAAGjB,MAAM;IAEV,MAAMkB,cAAc,GAAGlD,QAAQ,CAAC,MAAM,CAACuC,QAAQ,CAACY,KAAK,GAAGL,SAAS,CAACK,KAAK,GAAGC,SAAS,CAAC;IACpF,MAAM;MAAEC;IAAiB,CAAC,GAAGxD,YAAY,CAACqD,cAAc,CAAC;IACzD,MAAM;MAAEI,gBAAgB;MAAEC;IAAgB,CAAC,GAAG5D,YAAY,CAACyC,UAAU,CAAC;IACtE,MAAM;MAAEoB,sBAAsB;MAAEC;IAAsB,CAAC,GAAG/D,kBAAkB,CAAC2C,eAAe,CAAC;IAE7F,MAAM;MAAEqB,MAAM;MAAEC,QAAQ;MAAEC,GAAG;MAAEC,IAAI;MAAEC,IAAI;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAG,CAAC,GAAG7D,SAAS;IACxE,MAAM8D,YAAY,GAAG,CAACR,MAAM,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,CAAC;IAEzE,MAAME,WAAW,GAAGnE,QAAQ,CAAC,MAAM;MACjC,IAAIsC,IAAI,CAACa,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAC3B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,SAASiB,YAAYA,CAAEC,CAAgB,EAAElB,KAAa,EAAE;MACtD,IAAI1B,KAAK,CAACH,UAAU,EAAE;MACtB,IAAI,CAAC4C,YAAY,CAACI,QAAQ,CAACD,CAAC,CAACE,GAAG,CAAC,EAAE;MAEnCF,CAAC,CAACG,cAAc,CAAC,CAAC;MAElB,MAAMC,KAAK,GAAGnC,IAAI,CAACa,KAAK,IAAI,GAAG;MAC/B,MAAMuB,KAAK,GAAG,CAAChE,GAAG,CAACyC,KAAK,GAAGrC,GAAG,CAACqC,KAAK,IAAIsB,KAAK;MAC7C,IAAI,CAACX,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,EAAE,CAAC,CAACK,QAAQ,CAACD,CAAC,CAACE,GAAG,CAAC,EAAE;QAC3C,MAAMI,QAAQ,GAAG/B,QAAQ,CAACO,KAAK,GAC3B,CAAClB,KAAK,CAACkB,KAAK,GAAGW,IAAI,GAAGC,KAAK,EAAEpB,UAAU,CAACQ,KAAK,GAAGa,IAAI,GAAGC,EAAE,CAAC,GAC1DhB,YAAY,CAACE,KAAK,KAAKlB,KAAK,CAACkB,KAAK,GAAG,CAACW,IAAI,EAAEG,EAAE,CAAC,GAAG,CAACF,KAAK,EAAEE,EAAE,CAAC;QACjE,MAAMvB,SAAS,GAAGiC,QAAQ,CAACL,QAAQ,CAACD,CAAC,CAACE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnD,MAAMK,UAAU,GAAGP,CAAC,CAACQ,QAAQ,GAAG,CAAC,GAAIR,CAAC,CAACS,OAAO,GAAG,CAAC,GAAG,CAAE;QAEvD,IAAIpC,SAAS,KAAK,CAAC,CAAC,IAAIS,KAAK,KAAKzC,GAAG,CAACyC,KAAK,IAAI,CAACyB,UAAU,IAAI,CAAChE,MAAM,CAACmE,SAAS,CAACL,KAAK,CAAC,EAAE;UACtFvB,KAAK,GAAGA,KAAK,GAAIuB,KAAK,GAAG,CAAC,GAAID,KAAK;QACrC,CAAC,MAAM;UACLtB,KAAK,GAAGA,KAAK,GAAIT,SAAS,GAAG+B,KAAK,GAAGN,WAAW,CAAChB,KAAK,CAACyB,UAAU,CAAE;QACrE;MACF,CAAC,MAAM,IAAIP,CAAC,CAACE,GAAG,KAAKV,IAAI,EAAE;QACzBV,KAAK,GAAGrC,GAAG,CAACqC,KAAK;MACnB,CAAC,MAAM,IAAIkB,CAAC,CAACE,GAAG,KAAKX,GAAG,EAAE;QACxBT,KAAK,GAAGzC,GAAG,CAACyC,KAAK;MACnB,CAAC,MAAM;QACL,MAAMT,SAAS,GAAG2B,CAAC,CAACE,GAAG,KAAKZ,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7CR,KAAK,GAAGA,KAAK,GAAIT,SAAS,GAAG+B,KAAK,IAAIC,KAAK,GAAG,GAAG,GAAGA,KAAK,GAAG,EAAE,GAAG,EAAE,CAAE;MACvE;MAEA,OAAOM,IAAI,CAACtE,GAAG,CAACe,KAAK,CAACX,GAAG,EAAEkE,IAAI,CAAClE,GAAG,CAACW,KAAK,CAACf,GAAG,EAAEyC,KAAK,CAAC,CAAC;IACxD;IAEA,SAAS8B,SAASA,CAAEZ,CAAgB,EAAE;MACpC,MAAMa,QAAQ,GAAGd,YAAY,CAACC,CAAC,EAAE5C,KAAK,CAACV,UAAU,CAAC;MAElDmE,QAAQ,IAAI,IAAI,IAAInD,IAAI,CAAC,mBAAmB,EAAEmD,QAAQ,CAAC;IACzD;IAEA5E,SAAS,CAAC,MAAM;MACd,MAAM6E,kBAAkB,GAAGjF,aAAa,CAAC+C,YAAY,CAACE,KAAK,GAAG,GAAG,GAAG1B,KAAK,CAACT,QAAQ,GAAGS,KAAK,CAACT,QAAQ,EAAE,GAAG,CAAC;MAEzG,OAAAoE,mBAAA;QAAA,SAAAC,eAAA,CAEW,CACL,gBAAgB,EAChB;UACE,yBAAyB,EAAE5D,KAAK,CAACjB,OAAO;UACxC,yBAAyB,EAAEiB,KAAK,CAACjB,OAAO,IAAIuC,YAAY,CAACI;QAC3D,CAAC,EACD1B,KAAK,CAAC6D,KAAK,EACXpD,UAAU,CAACiB,KAAK,CACjB;QAAA,SAAAoC,eAAA,CACM,CACL;UACE,2BAA2B,EAAEJ,kBAAkB;UAC/C,uBAAuB,EAAEjF,aAAa,CAACsC,SAAS,CAACW,KAAK;QACxD,CAAC,EACD1B,KAAK,CAAC+D,KAAK,CACZ;QAAA;QAAA,YAEUjD,QAAQ,CAACY,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;QAAA,cACrB1B,KAAK,CAACL,IAAI;QAAA,iBACPN,GAAG,CAACqC,KAAK;QAAA,iBACTzC,GAAG,CAACyC,KAAK;QAAA,iBACT1B,KAAK,CAACV,UAAU;QAAA,iBAChB,CAAC,CAAC8B,QAAQ,CAACM,KAAK;QAAA,oBACbT,SAAS,CAACS,KAAK;QAAA,aACtB,CAACN,QAAQ,CAACM,KAAK,GAAG8B,SAAS,GAAG7B;MAAS,IAAAgC,mBAAA;QAAA,SAAAC,eAAA,CAG1C,CACL,yBAAyB,EACzB/B,gBAAgB,CAACH,KAAK,EACtBE,gBAAgB,CAACF,KAAK,CACvB;QAAA,SAAAoC,eAAA,CACOhC,eAAe,CAACJ,KAAK;MAAA,UAAAsC,eAAA,CAAAL,mBAAA;QAAA,SAAAC,eAAA,CAGtB,CACL,wBAAwB,EACxB/B,gBAAgB,CAACH,KAAK,CACvB;QAAA,SAAAoC,eAAA,CACOhC,eAAe,CAACJ,KAAK;MAAA,YAAApD,OAAA,EAClB0B,KAAK,CAACR,MAAM,EAAE,IAAI;QAAAyE,MAAA;QAAAC,MAAA;MAAA,MAAAC,YAAA,CAAAnG,gBAAA;QAAA;MAAA;QAAA0B,OAAA,EAAAA,CAAA,MAAAsE,eAAA,CAAAL,mBAAA;UAAA;QAAA,IAAAA,mBAAA;UAAA,SAAAC,eAAA,CAQlB,CACL,uBAAuB,EACvB7B,sBAAsB,CAACL,KAAK,CAC7B;UAAA,SAAAoC,eAAA,CACO9B,qBAAqB,CAACN,KAAK;QAAA,IAAAiC,mBAAA,eAG/BtD,KAAK,CAAC,aAAa,CAAC,GAAG;UAAEf,UAAU,EAAEU,KAAK,CAACV;QAAW,CAAC,CAAC,IAAIU,KAAK,CAACV,UAAU,CAAC8E,OAAO,CAACvD,IAAI,CAACa,KAAK,GAAGH,QAAQ,CAACG,KAAK,GAAG,CAAC,CAAC,IAAAiC,mBAAA;UAAA;QAAA,gBAAAU,MAAA,EAVjHrD,UAAU,CAACU,KAAK,IAAI1B,KAAK,CAACjB,OAAO,IAAKiC,UAAU,CAACU,KAAK,KAAK,QAAQ;MAAA;IAkBvF,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -18,8 +18,8 @@
18
18
  background: rgba(var(--v-theme-surface-variant), .7)
19
19
  color: rgb(var(--v-theme-on-surface-variant))
20
20
 
21
- &::before
22
- color: rgba(var(--v-theme-surface-variant), .7)
21
+ > .v-slider-thumb__label-wedge
22
+ background: inherit
23
23
 
24
24
  // Block
25
25
  .v-slider-thumb
@@ -78,10 +78,9 @@
78
78
  user-select: none
79
79
  transition: $slider-thumb-label-transition
80
80
 
81
- &::before
82
- content: ''
83
- width: 0
84
- height: 0
81
+ > .v-slider-thumb__label-wedge
82
+ width: $slider-thumb-label-wedge-size * 2
83
+ height: $slider-thumb-label-wedge-size * 2
85
84
  position: absolute
86
85
 
87
86
  .v-slider-thumb__ripple
@@ -111,10 +110,8 @@
111
110
  @include tools.rtl()
112
111
  transform: translateX(50%)
113
112
 
114
- &::before
115
- border-left: $slider-thumb-label-wedge-size solid transparent
116
- border-right: $slider-thumb-label-wedge-size solid transparent
117
- border-top: $slider-thumb-label-wedge-size solid currentColor
113
+ > .v-slider-thumb__label-wedge
114
+ clip-path: polygon(50% 100%, 0 50%, 100% 50%)
118
115
  bottom: -$slider-thumb-label-wedge-size
119
116
 
120
117
  // Vertical
@@ -130,10 +127,8 @@
130
127
  top: math.div($slider-thumb-label-height, -2)
131
128
  left: $slider-thumb-label-offset
132
129
 
133
- &::before
134
- border-right: $slider-thumb-label-wedge-size solid currentColor
135
- border-top: $slider-thumb-label-wedge-size solid transparent
136
- border-bottom: $slider-thumb-label-wedge-size solid transparent
130
+ > .v-slider-thumb__label-wedge
131
+ clip-path: polygon(0 50%, 50% 0, 50% 100%)
137
132
  left: -$slider-thumb-label-wedge-size
138
133
 
139
134
  // Modifiers
@@ -30,6 +30,7 @@ type SliderProvide = {
30
30
  step: Ref<number>;
31
31
  thumbSize: Ref<number>;
32
32
  thumbColor: Ref<string | undefined>;
33
+ thumbLabelColor: Ref<string | undefined>;
33
34
  trackColor: Ref<string | undefined>;
34
35
  trackFillColor: Ref<string | undefined>;
35
36
  trackSize: Ref<number>;
@@ -134,6 +134,7 @@ export const useSlider = _ref => {
134
134
  const numTicks = computed(() => (max.value - min.value) / step.value);
135
135
  const disabled = toRef(() => props.disabled);
136
136
  const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
137
+ const thumbLabelColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor);
137
138
  const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
138
139
  const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
139
140
  const mousePressed = shallowRef(false);
@@ -291,6 +292,7 @@ export const useSlider = _ref => {
291
292
  step,
292
293
  thumbSize,
293
294
  thumbColor,
295
+ thumbLabelColor,
294
296
  thumbLabel: toRef(() => props.thumbLabel),
295
297
  ticks: toRef(() => props.ticks),
296
298
  tickSize,
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","names":["makeElevationProps","useRtl","makeRoundedProps","computed","nextTick","provide","ref","shallowRef","toRef","clamp","createRange","getDecimals","propsFactory","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","type","Boolean","default","error","readonly","max","Number","String","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","noKeyboard","elevation","ripple","useSteps","props","parseFloat","decimals","Math","value","roundValue","clamped","offset","newValue","round","toFixed","useSlider","_ref","steps","onSliderStart","onSliderMove","onSliderEnd","getActiveThumb","isRtl","isReversed","indexFromEnd","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","parseMouseMove","$el","start","trackStart","trackLength","clickOffset","clickPos","handleStop","handleStart","contains","target","focus","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","button","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","toString","keys","key","hasLabels","some","_ref2","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, nextTick, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | null | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n noKeyboard: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number | void\n position: (val: number) => number\n readonly: Ref<boolean | null | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<readonly number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n indexFromEnd: Ref<boolean>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<readonly number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n noKeyboard: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ripple: {\n type: Boolean,\n default: true,\n },\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n let newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n if (clamped > newValue && newValue + step.value > max.value) {\n newValue = max.value\n }\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType<typeof useSteps>\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(() => props.reverse)\n const vertical = computed(() => props.direction === 'vertical')\n const indexFromEnd = computed(() => vertical.value !== isReversed.value)\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(() => props.disabled)\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number | void {\n const el: HTMLElement = trackContainerRef.value?.$el\n\n if (!el) return\n\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0\n\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderEnd({ value })\n }\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n if (value != null) {\n onSliderStart({ value })\n }\n nextTick(() => activeThumbRef.value?.focus())\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n if (e.button !== 0) return\n\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(() => props.showTicks)\n const parsedTicks = computed<Tick[]>(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(() => props.color),\n decimals,\n disabled,\n direction: toRef(() => props.direction),\n elevation: toRef(() => props.elevation),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n noKeyboard: toRef(() => props.noKeyboard),\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(() => props.readonly),\n rounded: toRef(() => props.rounded),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(() => props.thumbLabel),\n ticks: toRef(() => props.ticks),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"slider.js","names":["makeElevationProps","useRtl","makeRoundedProps","computed","nextTick","provide","ref","shallowRef","toRef","clamp","createRange","getDecimals","propsFactory","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","type","Boolean","default","error","readonly","max","Number","String","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","noKeyboard","elevation","ripple","useSteps","props","parseFloat","decimals","Math","value","roundValue","clamped","offset","newValue","round","toFixed","useSlider","_ref","steps","onSliderStart","onSliderMove","onSliderEnd","getActiveThumb","isRtl","isReversed","indexFromEnd","parseInt","numTicks","thumbLabelColor","mousePressed","startOffset","trackContainerRef","activeThumbRef","parseMouseMove","$el","start","trackStart","trackLength","clickOffset","clickPos","handleStop","handleStart","contains","target","focus","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","button","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","toString","keys","key","hasLabels","some","_ref2","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { computed, nextTick, provide, ref, shallowRef, toRef } from 'vue'\nimport { clamp, createRange, getDecimals, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\nexport type Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | null | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n noKeyboard: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number | void\n position: (val: number) => number\n readonly: Ref<boolean | null | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n thumbLabelColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<readonly number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n indexFromEnd: Ref<boolean>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<readonly number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n noKeyboard: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n ripple: {\n type: Boolean,\n default: true,\n },\n}, 'Slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\ntype SliderData = {\n value: number\n}\n\nexport const useSteps = (props: SliderProps) => {\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => Number(props.step) > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)))\n\n function roundValue (value: string | number) {\n value = parseFloat(value)\n\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n let newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n if (clamped > newValue && newValue + step.value > max.value) {\n newValue = max.value\n }\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n return { min, max, step, decimals, roundValue }\n}\n\nexport const useSlider = ({\n props,\n steps,\n onSliderStart,\n onSliderMove,\n onSliderEnd,\n getActiveThumb,\n}: {\n props: SliderProps\n steps: ReturnType<typeof useSteps>\n onSliderEnd: (data: SliderData) => void\n onSliderStart: (data: SliderData) => void\n onSliderMove: (data: SliderData) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(() => props.reverse)\n const vertical = computed(() => props.direction === 'vertical')\n const indexFromEnd = computed(() => vertical.value !== isReversed.value)\n\n const { min, max, step, decimals, roundValue } = steps\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(() => props.disabled)\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const thumbLabelColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = shallowRef(false)\n\n const startOffset = shallowRef(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number | void {\n const el: HTMLElement = trackContainerRef.value?.$el\n\n if (!el) return\n\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0\n\n if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderEnd({ value })\n }\n\n mousePressed.value = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n const value = parseMouseMove(e)\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n if (value != null) {\n onSliderStart({ value })\n }\n nextTick(() => activeThumbRef.value?.focus())\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n const value = parseMouseMove(e)\n if (value != null) {\n onSliderMove({ value })\n }\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.removeEventListener('touchend', onSliderTouchend as EventListener)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n e.target?.addEventListener('touchend', onSliderTouchend as EventListener, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n if (e.button !== 0) return\n\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const showTicks = toRef(() => props.showTicks)\n const parsedTicks = computed<Tick[]>(() => {\n if (!showTicks.value) return []\n\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseFloat(key),\n position: position(parseFloat(key)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(() => props.color),\n decimals,\n disabled,\n direction: toRef(() => props.direction),\n elevation: toRef(() => props.elevation),\n hasLabels,\n isReversed,\n indexFromEnd,\n min,\n max,\n mousePressed,\n noKeyboard: toRef(() => props.noKeyboard),\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(() => props.readonly),\n rounded: toRef(() => props.rounded),\n roundValue,\n showTicks,\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabelColor,\n thumbLabel: toRef(() => props.thumbLabel),\n ticks: toRef(() => props.ticks),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
@@ -29,9 +29,17 @@
29
29
  .v-window--show-arrows-on-hover .v-window__left {
30
30
  transform: translateX(-200%);
31
31
  }
32
+ :has(.v-window__controls--right).v-window--show-arrows-on-hover .v-window__left {
33
+ transform: translateX(200%);
34
+ }
35
+
32
36
  .v-window--show-arrows-on-hover .v-window__right {
33
37
  transform: translateX(200%);
34
38
  }
39
+ :has(.v-window__controls--left).v-window--show-arrows-on-hover .v-window__right {
40
+ transform: translateX(-200%);
41
+ }
42
+
35
43
  .v-window--show-arrows-on-hover:hover .v-window__left,
36
44
  .v-window--show-arrows-on-hover:hover .v-window__right {
37
45
  transform: translateX(0);
@@ -1,3 +1,4 @@
1
+ @use 'sass:selector'
1
2
  @use '../../styles/tools'
2
3
  @use './variables' as *
3
4
 
@@ -33,9 +34,17 @@
33
34
  .v-window__left
34
35
  transform: translateX(-200%)
35
36
 
37
+ @at-root #{selector.append(':has(.v-window__controls--right)', &)}
38
+ .v-window__left
39
+ transform: translateX(200%)
40
+
36
41
  .v-window__right
37
42
  transform: translateX(200%)
38
43
 
44
+ @at-root #{selector.append(':has(.v-window__controls--left)', &)}
45
+ .v-window__right
46
+ transform: translateX(-200%)
47
+
39
48
  &:hover
40
49
  .v-window__left,
41
50
  .v-window__right
@@ -50,6 +50,7 @@ export interface ThemeInstance {
50
50
  cycle: (themeArray?: string[]) => void;
51
51
  toggle: (themeArray?: [string, string]) => void;
52
52
  readonly isDisabled: boolean;
53
+ readonly isSystem: Readonly<Ref<boolean>>;
53
54
  readonly themes: Ref<Record<string, InternalThemeDefinition>>;
54
55
  readonly name: Readonly<Ref<string>>;
55
56
  readonly current: DeepReadonly<Ref<InternalThemeDefinition>>;
@@ -224,6 +224,7 @@ export function createTheme(options) {
224
224
  return acc;
225
225
  });
226
226
  const current = toRef(() => computedThemes.value[name.value]);
227
+ const isSystem = toRef(() => _name.value === 'system');
227
228
  const styles = computed(() => {
228
229
  const lines = [];
229
230
  const important = parsedOptions.unimportant ? '' : ' !important';
@@ -311,7 +312,7 @@ export function createTheme(options) {
311
312
  }
312
313
  }
313
314
  function change(themeName) {
314
- if (!themeNames.value.includes(themeName)) {
315
+ if (themeName !== 'system' && !themeNames.value.includes(themeName)) {
315
316
  consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
316
317
  return;
317
318
  }
@@ -344,6 +345,7 @@ export function createTheme(options) {
344
345
  cycle,
345
346
  toggle,
346
347
  isDisabled: parsedOptions.isDisabled,
348
+ isSystem,
347
349
  name,
348
350
  themes,
349
351
  current,