vuetify 3.1.7 → 3.1.9

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 (169) hide show
  1. package/dist/json/attributes.json +6 -530
  2. package/dist/json/importMap.json +36 -36
  3. package/dist/json/tags.json +3 -136
  4. package/dist/json/web-types.json +62 -1218
  5. package/dist/vuetify-labs.css +526 -363
  6. package/dist/vuetify-labs.d.ts +14 -7
  7. package/dist/vuetify-labs.esm.js +502 -281
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +502 -281
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +472 -312
  12. package/dist/vuetify.d.ts +17 -12
  13. package/dist/vuetify.esm.js +336 -222
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +336 -222
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +503 -501
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAlert/VAlert.css +1 -1
  21. package/lib/components/VAlert/VAlert.mjs +29 -15
  22. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  23. package/lib/components/VAlert/_variables.scss +1 -1
  24. package/lib/components/VAlert/index.d.ts +2 -0
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -5
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VBanner/VBanner.mjs +19 -12
  28. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  29. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  30. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +11 -7
  31. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  32. package/lib/components/VBtn/VBtn.mjs +25 -19
  33. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  34. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  35. package/lib/components/VCard/VCard.mjs +10 -6
  36. package/lib/components/VCard/VCard.mjs.map +1 -1
  37. package/lib/components/VCard/VCardItem.mjs +27 -23
  38. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  39. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  40. package/lib/components/VChip/VChip.css +110 -90
  41. package/lib/components/VChip/VChip.mjs +70 -48
  42. package/lib/components/VChip/VChip.mjs.map +1 -1
  43. package/lib/components/VChip/_mixins.scss +27 -23
  44. package/lib/components/VChip/index.d.ts +2 -2
  45. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  46. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  47. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  48. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  49. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  50. package/lib/components/VCombobox/VCombobox.mjs +11 -5
  51. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  52. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +4 -1
  53. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  54. package/lib/components/VDefaultsProvider/index.d.ts +3 -0
  55. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  56. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  57. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  58. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  59. package/lib/components/VField/VField.mjs.map +1 -1
  60. package/lib/components/VFileInput/VFileInput.mjs +1 -0
  61. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  62. package/lib/components/VFooter/VFooter.css +2 -0
  63. package/lib/components/VFooter/VFooter.sass +2 -0
  64. package/lib/components/VFooter/_variables.scss +2 -0
  65. package/lib/components/VImg/VImg.mjs +2 -2
  66. package/lib/components/VImg/VImg.mjs.map +1 -1
  67. package/lib/components/VInput/VInput.mjs.map +1 -1
  68. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  69. package/lib/components/VList/VListGroup.mjs.map +1 -1
  70. package/lib/components/VList/VListItem.mjs +23 -19
  71. package/lib/components/VList/VListItem.mjs.map +1 -1
  72. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  73. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  74. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  75. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  76. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  77. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  78. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  79. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  80. package/lib/components/VRating/VRating.mjs.map +1 -1
  81. package/lib/components/VSelect/VSelect.mjs +11 -5
  82. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  83. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  84. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  85. package/lib/components/VSlider/VSliderTrack.mjs +1 -0
  86. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  87. package/lib/components/VSlider/slider.mjs +3 -1
  88. package/lib/components/VSlider/slider.mjs.map +1 -1
  89. package/lib/components/VSnackbar/VSnackbar.css +2 -9
  90. package/lib/components/VSnackbar/VSnackbar.mjs +8 -9
  91. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  92. package/lib/components/VSnackbar/VSnackbar.sass +3 -10
  93. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  94. package/lib/components/VTable/VTable.mjs.map +1 -1
  95. package/lib/components/VTabs/VTab.mjs.map +1 -1
  96. package/lib/components/VTabs/VTabs.mjs +23 -15
  97. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  98. package/lib/components/VTextField/VTextField.mjs +1 -0
  99. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  100. package/lib/components/VTextarea/VTextarea.mjs +1 -0
  101. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  102. package/lib/components/VTimeline/VTimelineDivider.mjs +18 -10
  103. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  104. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  105. package/lib/components/VToolbar/VToolbar.mjs +9 -5
  106. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  107. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  108. package/lib/components/index.d.ts +7 -2
  109. package/lib/components/transitions/createTransition.mjs +1 -1
  110. package/lib/components/transitions/createTransition.mjs.map +1 -1
  111. package/lib/composables/defaults.mjs +2 -0
  112. package/lib/composables/defaults.mjs.map +1 -1
  113. package/lib/composables/display.mjs +13 -10
  114. package/lib/composables/display.mjs.map +1 -1
  115. package/lib/composables/loader.mjs.map +1 -1
  116. package/lib/composables/theme.mjs +7 -10
  117. package/lib/composables/theme.mjs.map +1 -1
  118. package/lib/composables/variant.mjs.map +1 -1
  119. package/lib/entry-bundler.mjs +1 -1
  120. package/lib/framework.mjs +1 -1
  121. package/lib/index.d.ts +10 -10
  122. package/lib/labs/VDataTable/VDataTable.css +3 -0
  123. package/lib/labs/VDataTable/VDataTable.mjs +45 -19
  124. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  125. package/lib/labs/VDataTable/VDataTable.sass +3 -0
  126. package/lib/labs/VDataTable/VDataTableFooter.mjs +3 -2
  127. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  128. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  129. package/lib/labs/VDataTable/VDataTableRow.mjs +6 -2
  130. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  131. package/lib/labs/VDataTable/VDataTableRows.mjs +1 -1
  132. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  133. package/lib/labs/VDataTable/VDataTableServer.mjs +39 -17
  134. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  135. package/lib/labs/VDataTable/VDataTableVirtual.mjs +27 -14
  136. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  137. package/lib/labs/VDataTable/composables/expand.mjs +1 -1
  138. package/lib/labs/VDataTable/composables/expand.mjs.map +1 -1
  139. package/lib/labs/VDataTable/composables/group.mjs +12 -1
  140. package/lib/labs/VDataTable/composables/group.mjs.map +1 -1
  141. package/lib/labs/VDataTable/composables/options.mjs +4 -10
  142. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  143. package/lib/labs/VDataTable/composables/paginate.mjs +25 -4
  144. package/lib/labs/VDataTable/composables/paginate.mjs.map +1 -1
  145. package/lib/labs/VDataTable/composables/select.mjs +1 -1
  146. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  147. package/lib/labs/VDataTable/composables/sort.mjs +19 -3
  148. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  149. package/lib/labs/VDataTable/index.d.ts +7 -5
  150. package/lib/labs/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  151. package/lib/labs/components.d.ts +7 -5
  152. package/lib/locale/adapters/vue-i18n.d.ts +1 -1
  153. package/lib/locale/adapters/vue-i18n.mjs +1 -1
  154. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  155. package/lib/locale/index.mjs +1 -1
  156. package/lib/locale/index.mjs.map +1 -1
  157. package/lib/styles/elements/_global.sass +0 -4
  158. package/lib/styles/generic/_index.scss +0 -1
  159. package/lib/styles/generic/_transitions.scss +111 -9
  160. package/lib/styles/main.css +312 -167
  161. package/lib/styles/tools/_sheet.sass +3 -6
  162. package/lib/styles/utilities/_display.sass +6 -5
  163. package/lib/styles/utilities/_elevation.scss +13 -0
  164. package/lib/styles/utilities/_index.sass +3 -2
  165. package/lib/styles/utilities/_screenreaders.sass +13 -11
  166. package/lib/util/defineComponent.mjs +3 -2
  167. package/lib/util/defineComponent.mjs.map +1 -1
  168. package/package.json +14 -7
  169. package/lib/styles/generic/_elevation.scss +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"VSliderTrack.mjs","names":["VSliderSymbol","useBackgroundColor","useRounded","computed","inject","convertToUnit","genericComponent","useRender","VSliderTrack","name","props","start","type","Number","required","stop","emits","setup","slots","slider","Error","color","horizontalDirection","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","min","max","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionProperty","directionValue","position","undefined","label","direction"],"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"sourcesContent":["// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\nexport type VSliderTrackSlots = {\n 'tick-label': []\n}\n\nexport const VSliderTrack = genericComponent<VSliderTrackSlots>()({\n name: 'VSliderTrack',\n\n props: {\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n },\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n horizontalDirection,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block-end' : 'inline-start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start'\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [directionProperty]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n ]}\n style={{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n ) }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSliderTrack.mjs","names":["VSliderSymbol","useBackgroundColor","useRounded","computed","inject","convertToUnit","genericComponent","useRender","VSliderTrack","name","props","start","type","Number","required","stop","emits","setup","slots","slider","Error","color","horizontalDirection","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","min","max","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionProperty","directionValue","position","undefined","label","direction"],"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"sourcesContent":["// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\nexport type VSliderTrackSlots = {\n 'tick-label': []\n}\n\nexport const VSliderTrack = genericComponent<VSliderTrackSlots>()({\n name: 'VSliderTrack',\n\n props: {\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n },\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n horizontalDirection,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block-end' : 'inline-start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n if (!showTicks.value) return []\n\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start'\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [directionProperty]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n ]}\n style={{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,aAAa,wBAEtB;AAAA,SACSC,kBAAkB;AAAA,SAClBC,UAAU,yCAEnB;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS;AAMnD,OAAO,MAAMC,YAAY,GAAGF,gBAAgB,EAAqB,CAAC;EAChEG,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAE;IACLC,KAAK,EAAE;MACLC,IAAI,EAAEC,MAAM;MACZC,QAAQ,EAAE;IACZ,CAAC;IACDC,IAAI,EAAE;MACJH,IAAI,EAAEC,MAAM;MACZC,QAAQ,EAAE;IACZ;EACF,CAAC;EAEDE,KAAK,EAAE,CAAC,CAAC;EAETC,KAAK,CAAEP,KAAK,QAAa;IAAA,IAAX;MAAEQ;IAAM,CAAC;IACrB,MAAMC,MAAM,GAAGf,MAAM,CAACJ,aAAa,CAAC;IAEpC,IAAI,CAACmB,MAAM,EAAE,MAAM,IAAIC,KAAK,CAAC,oEAAoE,CAAC;IAElG,MAAM;MACJC,KAAK;MACLC,mBAAmB;MACnBC,WAAW;MACXC,OAAO;MACPC,SAAS;MACTC,QAAQ;MACRC,UAAU;MACVC,cAAc;MACdC,SAAS;MACTC,QAAQ;MACRC,GAAG;MACHC;IACF,CAAC,GAAGb,MAAM;IAEV,MAAM;MAAEc;IAAe,CAAC,GAAG/B,UAAU,CAACsB,OAAO,CAAC;IAE9C,MAAM;MACJU,sBAAsB,EAAEC,qBAAqB;MAC7CC,qBAAqB,EAAEC;IACzB,CAAC,GAAGpC,kBAAkB,CAAC2B,cAAc,CAAC;IAEtC,MAAM;MACJM,sBAAsB,EAAEI,iBAAiB;MACzCF,qBAAqB,EAAEG;IACzB,CAAC,GAAGtC,kBAAkB,CAAC0B,UAAU,CAAC;IAElC,MAAMa,QAAQ,GAAGrC,QAAQ,CAAC,MAAO,SAAQ2B,QAAQ,CAACW,KAAK,GAAG,WAAW,GAAG,cAAe,EAAC,CAAC;IACzF,MAAMC,MAAM,GAAGvC,QAAQ,CAAC,MAAM2B,QAAQ,CAACW,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IAElE,MAAME,gBAAgB,GAAGxC,QAAQ,CAAC,MAAM;MACtC,OAAO;QACL,CAACqC,QAAQ,CAACC,KAAK,GAAG,IAAI;QACtB,CAACC,MAAM,CAACD,KAAK,GAAG;MAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAMG,cAAc,GAAGzC,QAAQ,CAAC,MAAMO,KAAK,CAACK,IAAI,GAAGL,KAAK,CAACC,KAAK,CAAC;IAE/D,MAAMkC,eAAe,GAAG1C,QAAQ,CAAC,MAAM;MACrC,OAAO;QACL,CAACqC,QAAQ,CAACC,KAAK,GAAGpC,aAAa,CAACK,KAAK,CAACC,KAAK,EAAE,GAAG,CAAC;QACjD,CAAC+B,MAAM,CAACD,KAAK,GAAGpC,aAAa,CAACuC,cAAc,CAACH,KAAK,EAAE,GAAG;MACzD,CAAC;IACH,CAAC,CAAC;IAEF,MAAMK,aAAa,GAAG3C,QAAQ,CAAC,MAAM;MACnC,IAAI,CAACsB,SAAS,CAACgB,KAAK,EAAE,OAAO,EAAE;MAE/B,MAAMM,KAAK,GAAGjB,QAAQ,CAACW,KAAK,GAAGlB,WAAW,CAACkB,KAAK,CAACO,KAAK,EAAE,CAACC,OAAO,EAAE,GAAG1B,WAAW,CAACkB,KAAK;MAEtF,OAAOM,KAAK,CAACG,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QAChC,MAAMC,iBAAiB,GAAGvB,QAAQ,CAACW,KAAK,GAAG,QAAQ,GAAG,qBAAqB;QAC3E,MAAMa,cAAc,GAAGH,IAAI,CAACV,KAAK,KAAKV,GAAG,CAACU,KAAK,IAAIU,IAAI,CAACV,KAAK,KAAKT,GAAG,CAACS,KAAK,GAAGpC,aAAa,CAAC8C,IAAI,CAACI,QAAQ,EAAE,GAAG,CAAC,GAAGC,SAAS;QAE3H;UAAA,OAEUL,IAAI,CAACV,KAAK;UAAA,SACT,CACL,sBAAsB,EACtB;YACE,8BAA8B,EAAEU,IAAI,CAACI,QAAQ,IAAI7C,KAAK,CAACC,KAAK,IAAIwC,IAAI,CAACI,QAAQ,IAAI7C,KAAK,CAACK,IAAI;YAC3F,6BAA6B,EAAEoC,IAAI,CAACV,KAAK,KAAKV,GAAG,CAACU,KAAK;YACvD,4BAA4B,EAAEU,IAAI,CAACV,KAAK,KAAKT,GAAG,CAACS;UACnD,CAAC,CACF;UAAA,SACM;YAAE,CAACY,iBAAiB,GAAGC;UAAe;QAAC,IAG5C,CAACH,IAAI,CAACM,KAAK,IAAIvC,KAAK,CAAC,YAAY,CAAC;UAAA,SACrB;QAA4B,IACnCA,KAAK,CAAC,YAAY,CAAC,GAAG;UAAEiC,IAAI;UAAEC;QAAM,CAAC,CAAC,IAAID,IAAI,CAACM,KAAK,EAEzD;MAIT,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFlD,SAAS,CAAC,MAAM;MACd;QAAA,SAEW,CACL,gBAAgB,EAChB0B,cAAc,CAACQ,KAAK,CACrB;QAAA,SACM;UACL,uBAAuB,EAAEpC,aAAa,CAACwB,SAAS,CAACY,KAAK,CAAC;UACvD,sBAAsB,EAAEpC,aAAa,CAACqB,QAAQ,CAACe,KAAK,CAAC;UACrDiB,SAAS,EAAE,CAAC5B,QAAQ,CAACW,KAAK,GAAGnB,mBAAmB,CAACmB,KAAK,GAAGe;QAC3D;MAAC;QAAA,SAGQ,CACL,4BAA4B,EAC5BlB,iBAAiB,CAACG,KAAK,EACvB;UACE,qCAAqC,EAAE,CAAC,CAACpB,KAAK,CAACoB,KAAK,IAAI,CAACb,cAAc,CAACa;QAC1E,CAAC,CACF;QAAA,SACM;UACL,GAAGE,gBAAgB,CAACF,KAAK;UACzB,GAAGF,gBAAgB,CAACE;QACtB;MAAC;QAAA,SAGM,CACL,sBAAsB,EACtBN,qBAAqB,CAACM,KAAK,CAC5B;QAAA,SACM;UACL,GAAGI,eAAe,CAACJ,KAAK;UACxB,GAAGJ,oBAAoB,CAACI;QAC1B;MAAC,UAGDhB,SAAS,CAACgB,KAAK;QAAA,SAEN,CACL,uBAAuB,EACvB;UACE,oCAAoC,EAAEhB,SAAS,CAACgB,KAAK,KAAK;QAC5D,CAAC;MACF,IAECK,aAAa,CAACL,KAAK,EAExB;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -197,7 +197,9 @@ export const useSlider = _ref => {
197
197
  const percentage = (val - min.value) / (max.value - min.value) * 100;
198
198
  return clamp(isNaN(percentage) ? 0 : percentage, 0, 100);
199
199
  };
200
+ const showTicks = toRef(props, 'showTicks');
200
201
  const parsedTicks = computed(() => {
202
+ if (!showTicks.value) return [];
201
203
  if (!props.ticks) {
202
204
  return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {
203
205
  const value = min.value + t * step.value;
@@ -246,7 +248,7 @@ export const useSlider = _ref => {
246
248
  readonly: toRef(props, 'readonly'),
247
249
  rounded: toRef(props, 'rounded'),
248
250
  roundValue,
249
- showTicks: toRef(props, 'showTicks'),
251
+ showTicks,
250
252
  startOffset,
251
253
  step,
252
254
  thumbSize,
@@ -1 +1 @@
1
- {"version":3,"file":"slider.mjs","names":["makeElevationProps","makeRoundedProps","useRtl","clamp","createRange","propsFactory","computed","provide","ref","toRef","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","Boolean","error","readonly","max","type","Number","String","default","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","useSlider","props","handleSliderMouseUp","handleMouseMove","getActiveThumb","isRtl","isReversed","horizontalDirection","hd","value","parseFloat","decimals","trimmedStep","toString","trim","indexOf","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","roundValue","clamped","offset","newValue","Math","round","toFixed","parseMouseMove","start","trackStart","trackLength","$el","clickOffset","clickPos","thumbMoved","handleStop","handleStart","focus","contains","target","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","keys","key","hasLabels","some","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { clamp, createRange, propsFactory } from '@/util'\nimport { computed, provide, ref, toRef } from 'vue'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\ntype 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 | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number\n position: (val: number) => number\n readonly: Ref<boolean | 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<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 horizontalDirection: Ref<'ltr' | 'rtl'>\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: Boolean,\n error: Boolean,\n readonly: Boolean,\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<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\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n}, 'slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\nexport const useSlider = ({\n props,\n handleSliderMouseUp,\n handleMouseMove,\n getActiveThumb,\n}: {\n props: SliderProps\n handleSliderMouseUp: (v: number) => void\n handleMouseMove: (v: number) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(props, 'reverse')\n const horizontalDirection = computed(() => {\n let hd: 'ltr' | 'rtl' = isRtl.value ? 'rtl' : 'ltr'\n\n if (props.reverse) {\n hd = hd === 'rtl' ? 'ltr' : 'rtl'\n }\n\n return hd\n })\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => {\n const trimmedStep = step.value.toString().trim()\n return trimmedStep.includes('.')\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n })\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 const vertical = computed(() => props.direction === 'vertical')\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 = ref(false)\n\n const startOffset = ref(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function roundValue (value: number) {\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 const newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number {\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 } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n let thumbMoved = false\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n if (!thumbMoved) {\n startOffset.value = 0\n handleSliderMouseUp(parseMouseMove(e))\n }\n\n mousePressed.value = false\n thumbMoved = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n thumbMoved = true\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n handleMouseMove(parseMouseMove(e))\n }\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n thumbMoved = true\n handleMouseMove(parseMouseMove(e))\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 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 parsedTicks = computed<Tick[]>(() => {\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 horizontalDirection,\n isReversed,\n min,\n max,\n mousePressed,\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: toRef(props, '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":"AAAA;AACA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,gBAAgB;AAAA,SAChBC,MAAM,wCAEf;AAAA,SACSC,KAAK,EAAEC,WAAW,EAAEC,YAAY;AACzC,SAASC,QAAQ,EAAEC,OAAO,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;;AAEnD;;AA+CA,OAAO,MAAMC,aAA0C,GAAGC,MAAM,CAACC,GAAG,CAAC,kBAAkB,CAAC;AAExF,OAAO,SAASC,SAAS,CAAEC,CAA0B,EAAEC,EAAe,EAAEC,SAAiB,EAAE;EACzF,MAAMC,QAAQ,GAAGD,SAAS,KAAK,UAAU;EACzC,MAAME,IAAI,GAAGH,EAAE,CAACI,qBAAqB,EAAE;EACvC,MAAMC,KAAK,GAAG,SAAS,IAAIN,CAAC,GAAGA,CAAC,CAACO,OAAO,CAAC,CAAC,CAAC,GAAGP,CAAC;EAC/C,OAAOG,QAAQ,GACXG,KAAK,CAACE,OAAO,IAAIJ,IAAI,CAACK,GAAG,GAAGL,IAAI,CAACM,MAAM,GAAG,CAAC,CAAC,GAC5CJ,KAAK,CAACK,OAAO,IAAIP,IAAI,CAACQ,IAAI,GAAGR,IAAI,CAACS,KAAK,GAAG,CAAC,CAAC;AAClD;AAEA,SAASC,WAAW,CAAEd,CAA0B,EAAEe,QAA+B,EAAU;EACzF,IAAI,SAAS,IAAIf,CAAC,IAAIA,CAAC,CAACO,OAAO,CAACS,MAAM,EAAE,OAAOhB,CAAC,CAACO,OAAO,CAAC,CAAC,CAAC,CAACQ,QAAQ,CAAC,MAChE,IAAI,gBAAgB,IAAIf,CAAC,IAAIA,CAAC,CAACiB,cAAc,CAACD,MAAM,EAAE,OAAOhB,CAAC,CAACiB,cAAc,CAAC,CAAC,CAAC,CAACF,QAAQ,CAAC,MAC1F,OAAQf,CAAC,CAAgBe,QAAQ,CAAC;AACzC;AAEA,OAAO,MAAMG,eAAe,GAAG3B,YAAY,CAAC;EAC1C4B,QAAQ,EAAEC,OAAO;EACjBC,KAAK,EAAED,OAAO;EACdE,QAAQ,EAAEF,OAAO;EACjBG,GAAG,EAAE;IACHC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDC,GAAG,EAAE;IACHJ,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDE,IAAI,EAAE;IACJL,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDG,UAAU,EAAEJ,MAAM;EAClBK,UAAU,EAAE;IACVP,IAAI,EAAE,CAACJ,OAAO,EAAEM,MAAM,CAA6C;IACnEC,OAAO,EAAEK,SAAS;IAClBC,SAAS,EAAGC,CAAM,IAAK,OAAOA,CAAC,KAAK,SAAS,IAAIA,CAAC,KAAK;EACzD,CAAC;EACDC,SAAS,EAAE;IACTX,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDS,SAAS,EAAE;IACTZ,IAAI,EAAE,CAACJ,OAAO,EAAEM,MAAM,CAAiC;IACvDC,OAAO,EAAE,KAAK;IACdM,SAAS,EAAGC,CAAM,IAAK,OAAOA,CAAC,KAAK,SAAS,IAAIA,CAAC,KAAK;EACzD,CAAC;EACDG,KAAK,EAAE;IACLb,IAAI,EAAE,CAACc,KAAK,EAAEC,MAAM;EACtB,CAAC;EACDC,QAAQ,EAAE;IACRhB,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDc,KAAK,EAAEf,MAAM;EACbgB,UAAU,EAAEhB,MAAM;EAClBiB,cAAc,EAAEjB,MAAM;EACtBkB,SAAS,EAAE;IACTpB,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDzB,SAAS,EAAE;IACTsB,IAAI,EAAEE,MAA6C;IACnDC,OAAO,EAAE,YAAY;IACrBM,SAAS,EAAGC,CAAM,IAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAACW,QAAQ,CAACX,CAAC;EAC9D,CAAC;EACDY,OAAO,EAAE1B,OAAO;EAEhB,GAAGjC,gBAAgB,EAAE;EACrB,GAAGD,kBAAkB,CAAC;IACpB6D,SAAS,EAAE;EACb,CAAC;AACH,CAAC,EAAE,QAAQ,CAAC;AAIZ,OAAO,MAAMC,SAAS,GAAG,QAUnB;EAAA,IAVoB;IACxBC,KAAK;IACLC,mBAAmB;IACnBC,eAAe;IACfC;EAMF,CAAC;EACC,MAAM;IAAEC;EAAM,CAAC,GAAGjE,MAAM,EAAE;EAC1B,MAAMkE,UAAU,GAAG3D,KAAK,CAACsD,KAAK,EAAE,SAAS,CAAC;EAC1C,MAAMM,mBAAmB,GAAG/D,QAAQ,CAAC,MAAM;IACzC,IAAIgE,EAAiB,GAAGH,KAAK,CAACI,KAAK,GAAG,KAAK,GAAG,KAAK;IAEnD,IAAIR,KAAK,CAACH,OAAO,EAAE;MACjBU,EAAE,GAAGA,EAAE,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK;IACnC;IAEA,OAAOA,EAAE;EACX,CAAC,CAAC;EACF,MAAM5B,GAAG,GAAGpC,QAAQ,CAAC,MAAMkE,UAAU,CAACT,KAAK,CAACrB,GAAG,CAAC,CAAC;EACjD,MAAML,GAAG,GAAG/B,QAAQ,CAAC,MAAMkE,UAAU,CAACT,KAAK,CAAC1B,GAAG,CAAC,CAAC;EACjD,MAAMM,IAAI,GAAGrC,QAAQ,CAAC,MAAMyD,KAAK,CAACpB,IAAI,GAAG,CAAC,GAAG6B,UAAU,CAACT,KAAK,CAACpB,IAAI,CAAC,GAAG,CAAC,CAAC;EACxE,MAAM8B,QAAQ,GAAGnE,QAAQ,CAAC,MAAM;IAC9B,MAAMoE,WAAW,GAAG/B,IAAI,CAAC4B,KAAK,CAACI,QAAQ,EAAE,CAACC,IAAI,EAAE;IAChD,OAAOF,WAAW,CAACf,QAAQ,CAAC,GAAG,CAAC,GAC3Be,WAAW,CAAC5C,MAAM,GAAG4C,WAAW,CAACG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAClD,CAAC;EACP,CAAC,CAAC;EAEF,MAAM5B,SAAS,GAAG3C,QAAQ,CAAC,MAAMwE,QAAQ,CAACf,KAAK,CAACd,SAAS,EAAE,EAAE,CAAC,CAAC;EAC/D,MAAMK,QAAQ,GAAGhD,QAAQ,CAAC,MAAMwE,QAAQ,CAACf,KAAK,CAACT,QAAQ,EAAE,EAAE,CAAC,CAAC;EAC7D,MAAMI,SAAS,GAAGpD,QAAQ,CAAC,MAAMwE,QAAQ,CAACf,KAAK,CAACL,SAAS,EAAE,EAAE,CAAC,CAAC;EAC/D,MAAMqB,QAAQ,GAAGzE,QAAQ,CAAC,MAAM,CAAC+B,GAAG,CAACkC,KAAK,GAAG7B,GAAG,CAAC6B,KAAK,IAAI5B,IAAI,CAAC4B,KAAK,CAAC;EACrE,MAAMtC,QAAQ,GAAGxB,KAAK,CAACsD,KAAK,EAAE,UAAU,CAAC;EACzC,MAAM9C,QAAQ,GAAGX,QAAQ,CAAC,MAAMyD,KAAK,CAAC/C,SAAS,KAAK,UAAU,CAAC;EAE/D,MAAM4B,UAAU,GAAGtC,QAAQ,CAAC,MAAMyD,KAAK,CAAC5B,KAAK,IAAI4B,KAAK,CAAC9B,QAAQ,GAAGa,SAAS,GAAGiB,KAAK,CAACnB,UAAU,IAAImB,KAAK,CAACR,KAAK,CAAC;EAC9G,MAAMC,UAAU,GAAGlD,QAAQ,CAAC,MAAMyD,KAAK,CAAC5B,KAAK,IAAI4B,KAAK,CAAC9B,QAAQ,GAAGa,SAAS,GAAGiB,KAAK,CAACP,UAAU,IAAIO,KAAK,CAACR,KAAK,CAAC;EAC9G,MAAME,cAAc,GAAGnD,QAAQ,CAAC,MAAMyD,KAAK,CAAC5B,KAAK,IAAI4B,KAAK,CAAC9B,QAAQ,GAAGa,SAAS,GAAGiB,KAAK,CAACN,cAAc,IAAIM,KAAK,CAACR,KAAK,CAAC;EAEtH,MAAMyB,YAAY,GAAGxE,GAAG,CAAC,KAAK,CAAC;EAE/B,MAAMyE,WAAW,GAAGzE,GAAG,CAAC,CAAC,CAAC;EAC1B,MAAM0E,iBAAiB,GAAG1E,GAAG,EAA4B;EACzD,MAAM2E,cAAc,GAAG3E,GAAG,EAA2B;EAErD,SAAS4E,UAAU,CAAEb,KAAa,EAAE;IAClC,IAAI5B,IAAI,CAAC4B,KAAK,IAAI,CAAC,EAAE,OAAOA,KAAK;IAEjC,MAAMc,OAAO,GAAGlF,KAAK,CAACoE,KAAK,EAAE7B,GAAG,CAAC6B,KAAK,EAAElC,GAAG,CAACkC,KAAK,CAAC;IAClD,MAAMe,MAAM,GAAG5C,GAAG,CAAC6B,KAAK,GAAG5B,IAAI,CAAC4B,KAAK;IACrC,MAAMgB,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACJ,OAAO,GAAGC,MAAM,IAAI3C,IAAI,CAAC4B,KAAK,CAAC,GAAG5B,IAAI,CAAC4B,KAAK,GAAGe,MAAM;IAElF,OAAOd,UAAU,CAACgB,IAAI,CAAC9C,GAAG,CAAC6C,QAAQ,EAAElD,GAAG,CAACkC,KAAK,CAAC,CAACmB,OAAO,CAACjB,QAAQ,CAACF,KAAK,CAAC,CAAC;EAC1E;EAEA,SAASoB,cAAc,CAAE7E,CAA0B,EAAU;IAC3D,MAAMG,QAAQ,GAAG8C,KAAK,CAAC/C,SAAS,KAAK,UAAU;IAC/C,MAAM4E,KAAK,GAAG3E,QAAQ,GAAG,KAAK,GAAG,MAAM;IACvC,MAAMa,MAAM,GAAGb,QAAQ,GAAG,QAAQ,GAAG,OAAO;IAC5C,MAAMY,QAAQ,GAAGZ,QAAQ,GAAG,SAAS,GAAG,SAAS;IAEjD,MAAM;MACJ,CAAC2E,KAAK,GAAGC,UAAU;MACnB,CAAC/D,MAAM,GAAGgE;IACZ,CAAC,GAAGZ,iBAAiB,CAACX,KAAK,EAAEwB,GAAG,CAAC5E,qBAAqB,EAAE;IACxD,MAAM6E,WAAW,GAAGpE,WAAW,CAACd,CAAC,EAAEe,QAAQ,CAAC;;IAE5C;IACA,IAAIoE,QAAQ,GAAGT,IAAI,CAAC9C,GAAG,CAAC8C,IAAI,CAACnD,GAAG,CAAC,CAAC2D,WAAW,GAAGH,UAAU,GAAGZ,WAAW,CAACV,KAAK,IAAIuB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IAE1G,IAAI7E,QAAQ,IAAIoD,mBAAmB,CAACE,KAAK,KAAK,KAAK,EAAE0B,QAAQ,GAAG,CAAC,GAAGA,QAAQ;IAE5E,OAAOb,UAAU,CAAC1C,GAAG,CAAC6B,KAAK,GAAG0B,QAAQ,IAAI5D,GAAG,CAACkC,KAAK,GAAG7B,GAAG,CAAC6B,KAAK,CAAC,CAAC;EACnE;EAEA,IAAI2B,UAAU,GAAG,KAAK;EAEtB,MAAMC,UAAU,GAAIrF,CAA0B,IAAK;IACjD,IAAI,CAACoF,UAAU,EAAE;MACfjB,WAAW,CAACV,KAAK,GAAG,CAAC;MACrBP,mBAAmB,CAAC2B,cAAc,CAAC7E,CAAC,CAAC,CAAC;IACxC;IAEAkE,YAAY,CAACT,KAAK,GAAG,KAAK;IAC1B2B,UAAU,GAAG,KAAK;IAClBjB,WAAW,CAACV,KAAK,GAAG,CAAC;EACvB,CAAC;EAED,MAAM6B,WAAW,GAAItF,CAA0B,IAAK;IAClDqE,cAAc,CAACZ,KAAK,GAAGL,cAAc,CAACpD,CAAC,CAAC;IAExC,IAAI,CAACqE,cAAc,CAACZ,KAAK,EAAE;IAE3BY,cAAc,CAACZ,KAAK,CAAC8B,KAAK,EAAE;IAC5BrB,YAAY,CAACT,KAAK,GAAG,IAAI;IAEzB,IAAIY,cAAc,CAACZ,KAAK,CAAC+B,QAAQ,CAACxF,CAAC,CAACyF,MAAM,CAAS,EAAE;MACnDL,UAAU,GAAG,IAAI;MACjBjB,WAAW,CAACV,KAAK,GAAG1D,SAAS,CAACC,CAAC,EAAEqE,cAAc,CAACZ,KAAK,EAAER,KAAK,CAAC/C,SAAS,CAAC;IACzE,CAAC,MAAM;MACLiE,WAAW,CAACV,KAAK,GAAG,CAAC;MACrBN,eAAe,CAAC0B,cAAc,CAAC7E,CAAC,CAAC,CAAC;IACpC;EACF,CAAC;EAED,MAAM0F,mBAAmB,GAAG;IAAEC,OAAO,EAAE,IAAI;IAAEC,OAAO,EAAE;EAAK,CAAC;EAE5D,SAASC,WAAW,CAAE7F,CAA0B,EAAE;IAChDoF,UAAU,GAAG,IAAI;IACjBjC,eAAe,CAAC0B,cAAc,CAAC7E,CAAC,CAAC,CAAC;EACpC;EAEA,SAAS8F,eAAe,CAAE9F,CAAa,EAAE;IACvCA,CAAC,CAAC+F,eAAe,EAAE;IACnB/F,CAAC,CAACgG,cAAc,EAAE;IAElBX,UAAU,CAACrF,CAAC,CAAC;IAEbiG,MAAM,CAACC,mBAAmB,CAAC,WAAW,EAAEL,WAAW,EAAEH,mBAAmB,CAAC;IACzEO,MAAM,CAACC,mBAAmB,CAAC,SAAS,EAAEJ,eAAe,CAAC;EACxD;EAEA,SAASK,gBAAgB,CAAEnG,CAAa,EAAE;IACxCqF,UAAU,CAACrF,CAAC,CAAC;IAEbiG,MAAM,CAACC,mBAAmB,CAAC,WAAW,EAAEL,WAAW,EAAEH,mBAAmB,CAAC;IACzE1F,CAAC,CAACyF,MAAM,EAAES,mBAAmB,CAAC,UAAU,EAAEC,gBAAgB,CAAkB;EAC9E;EAEA,SAASC,kBAAkB,CAAEpG,CAAa,EAAE;IAC1CsF,WAAW,CAACtF,CAAC,CAAC;IAEdiG,MAAM,CAACI,gBAAgB,CAAC,WAAW,EAAER,WAAW,EAAEH,mBAAmB,CAAC;IACtE1F,CAAC,CAACyF,MAAM,EAAEY,gBAAgB,CAAC,UAAU,EAAEF,gBAAgB,EAAmB;MAAER,OAAO,EAAE;IAAM,CAAC,CAAC;EAC/F;EAEA,SAASW,iBAAiB,CAAEtG,CAAa,EAAE;IACzCA,CAAC,CAACgG,cAAc,EAAE;IAElBV,WAAW,CAACtF,CAAC,CAAC;IAEdiG,MAAM,CAACI,gBAAgB,CAAC,WAAW,EAAER,WAAW,EAAEH,mBAAmB,CAAC;IACtEO,MAAM,CAACI,gBAAgB,CAAC,SAAS,EAAEP,eAAe,EAAE;MAAEH,OAAO,EAAE;IAAM,CAAC,CAAC;EACzE;EAEA,MAAM5E,QAAQ,GAAIwF,GAAW,IAAK;IAChC,MAAMC,UAAU,GAAG,CAACD,GAAG,GAAG3E,GAAG,CAAC6B,KAAK,KAAKlC,GAAG,CAACkC,KAAK,GAAG7B,GAAG,CAAC6B,KAAK,CAAC,GAAG,GAAG;IACpE,OAAOpE,KAAK,CAACoH,KAAK,CAACD,UAAU,CAAC,GAAG,CAAC,GAAGA,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC;EAC1D,CAAC;EAED,MAAME,WAAW,GAAGlH,QAAQ,CAAS,MAAM;IACzC,IAAI,CAACyD,KAAK,CAACZ,KAAK,EAAE;MAChB,OAAO4B,QAAQ,CAACR,KAAK,KAAKkD,QAAQ,GAAGrH,WAAW,CAAC2E,QAAQ,CAACR,KAAK,GAAG,CAAC,CAAC,CAACmD,GAAG,CAACC,CAAC,IAAI;QAC5E,MAAMpD,KAAK,GAAG7B,GAAG,CAAC6B,KAAK,GAAIoD,CAAC,GAAGhF,IAAI,CAAC4B,KAAM;QAC1C,OAAO;UACLA,KAAK;UACL1C,QAAQ,EAAEA,QAAQ,CAAC0C,KAAK;QAC1B,CAAC;MACH,CAAC,CAAC,GAAG,EAAE;IACT;IACA,IAAInB,KAAK,CAACwE,OAAO,CAAC7D,KAAK,CAACZ,KAAK,CAAC,EAAE,OAAOY,KAAK,CAACZ,KAAK,CAACuE,GAAG,CAACC,CAAC,KAAK;MAAEpD,KAAK,EAAEoD,CAAC;MAAE9F,QAAQ,EAAEA,QAAQ,CAAC8F,CAAC,CAAC;MAAEE,KAAK,EAAEF,CAAC,CAAChD,QAAQ;IAAG,CAAC,CAAC,CAAC;IACvH,OAAOtB,MAAM,CAACyE,IAAI,CAAC/D,KAAK,CAACZ,KAAK,CAAC,CAACuE,GAAG,CAACK,GAAG,KAAK;MAC1CxD,KAAK,EAAEC,UAAU,CAACuD,GAAG,CAAC;MACtBlG,QAAQ,EAAEA,QAAQ,CAAC2C,UAAU,CAACuD,GAAG,CAAC,CAAC;MACnCF,KAAK,EAAG9D,KAAK,CAACZ,KAAK,CAA4B4E,GAAG;IACpD,CAAC,CAAC,CAAC;EACL,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAG1H,QAAQ,CAAC,MAAMkH,WAAW,CAACjD,KAAK,CAAC0D,IAAI,CAAC;IAAA,IAAC;MAAEJ;IAAM,CAAC;IAAA,OAAK,CAAC,CAACA,KAAK;EAAA,EAAC,CAAC;EAEhF,MAAMK,IAAmB,GAAG;IAC1B/C,cAAc;IACd5B,KAAK,EAAE9C,KAAK,CAACsD,KAAK,EAAE,OAAO,CAAC;IAC5BU,QAAQ;IACRxC,QAAQ;IACRjB,SAAS,EAAEP,KAAK,CAACsD,KAAK,EAAE,WAAW,CAAC;IACpCF,SAAS,EAAEpD,KAAK,CAACsD,KAAK,EAAE,WAAW,CAAC;IACpCiE,SAAS;IACT3D,mBAAmB;IACnBD,UAAU;IACV1B,GAAG;IACHL,GAAG;IACH2C,YAAY;IACZD,QAAQ;IACRqC,iBAAiB;IACjBF,kBAAkB;IAClBM,WAAW;IACX7B,cAAc;IACd9D,QAAQ;IACRO,QAAQ,EAAE3B,KAAK,CAACsD,KAAK,EAAE,UAAU,CAAC;IAClCoE,OAAO,EAAE1H,KAAK,CAACsD,KAAK,EAAE,SAAS,CAAC;IAChCqB,UAAU;IACVlC,SAAS,EAAEzC,KAAK,CAACsD,KAAK,EAAE,WAAW,CAAC;IACpCkB,WAAW;IACXtC,IAAI;IACJM,SAAS;IACTL,UAAU;IACVC,UAAU,EAAEpC,KAAK,CAACsD,KAAK,EAAE,YAAY,CAAC;IACtCZ,KAAK,EAAE1C,KAAK,CAACsD,KAAK,EAAE,OAAO,CAAC;IAC5BT,QAAQ;IACRE,UAAU;IACV0B,iBAAiB;IACjBzB,cAAc;IACdC,SAAS;IACTzC;EACF,CAAC;EAEDV,OAAO,CAACG,aAAa,EAAEwH,IAAI,CAAC;EAE5B,OAAOA,IAAI;AACb,CAAC"}
1
+ {"version":3,"file":"slider.mjs","names":["makeElevationProps","makeRoundedProps","useRtl","clamp","createRange","propsFactory","computed","provide","ref","toRef","VSliderSymbol","Symbol","for","getOffset","e","el","direction","vertical","rect","getBoundingClientRect","touch","touches","clientY","top","height","clientX","left","width","getPosition","position","length","changedTouches","makeSliderProps","disabled","Boolean","error","readonly","max","type","Number","String","default","min","step","thumbColor","thumbLabel","undefined","validator","v","thumbSize","showTicks","ticks","Array","Object","tickSize","color","trackColor","trackFillColor","trackSize","includes","reverse","elevation","useSlider","props","handleSliderMouseUp","handleMouseMove","getActiveThumb","isRtl","isReversed","horizontalDirection","hd","value","parseFloat","decimals","trimmedStep","toString","trim","indexOf","parseInt","numTicks","mousePressed","startOffset","trackContainerRef","activeThumbRef","roundValue","clamped","offset","newValue","Math","round","toFixed","parseMouseMove","start","trackStart","trackLength","$el","clickOffset","clickPos","thumbMoved","handleStop","handleStart","focus","contains","target","moveListenerOptions","passive","capture","onMouseMove","onSliderMouseUp","stopPropagation","preventDefault","window","removeEventListener","onSliderTouchend","onSliderTouchstart","addEventListener","onSliderMousedown","val","percentage","isNaN","parsedTicks","Infinity","map","t","isArray","label","keys","key","hasLabels","some","data","rounded"],"sources":["../../../src/components/VSlider/slider.ts"],"sourcesContent":["/* eslint-disable max-statements */\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { clamp, createRange, propsFactory } from '@/util'\nimport { computed, provide, ref, toRef } from 'vue'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\ntype 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 | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number\n position: (val: number) => number\n readonly: Ref<boolean | 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<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 horizontalDirection: Ref<'ltr' | 'rtl'>\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: Boolean,\n error: Boolean,\n readonly: Boolean,\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<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\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n}, 'slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\nexport const useSlider = ({\n props,\n handleSliderMouseUp,\n handleMouseMove,\n getActiveThumb,\n}: {\n props: SliderProps\n handleSliderMouseUp: (v: number) => void\n handleMouseMove: (v: number) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = toRef(props, 'reverse')\n const horizontalDirection = computed(() => {\n let hd: 'ltr' | 'rtl' = isRtl.value ? 'rtl' : 'ltr'\n\n if (props.reverse) {\n hd = hd === 'rtl' ? 'ltr' : 'rtl'\n }\n\n return hd\n })\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => {\n const trimmedStep = step.value.toString().trim()\n return trimmedStep.includes('.')\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n })\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 const vertical = computed(() => props.direction === 'vertical')\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 = ref(false)\n\n const startOffset = ref(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function roundValue (value: number) {\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 const newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number {\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 } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical || horizontalDirection.value === 'rtl') clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n let thumbMoved = false\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n if (!thumbMoved) {\n startOffset.value = 0\n handleSliderMouseUp(parseMouseMove(e))\n }\n\n mousePressed.value = false\n thumbMoved = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n thumbMoved = true\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n handleMouseMove(parseMouseMove(e))\n }\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n thumbMoved = true\n handleMouseMove(parseMouseMove(e))\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 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 horizontalDirection,\n isReversed,\n min,\n max,\n mousePressed,\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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"}
@@ -1,11 +1,8 @@
1
1
  .v-snackbar {
2
2
  justify-content: center;
3
- padding-inline-end: var(--v-scrollbar-offset);
4
- }
5
- .v-snackbar:not(.v-snackbar--absolute) {
6
- height: 100vh;
7
- position: fixed;
8
3
  z-index: 10000;
4
+ margin: 8px;
5
+ margin-inline-end: calc(8px + var(--v-scrollbar-offset));
9
6
  }
10
7
  .v-snackbar:not(.v-snackbar--centered):not(.v-snackbar--top) {
11
8
  align-items: flex-end;
@@ -13,13 +10,10 @@
13
10
  .v-snackbar__wrapper {
14
11
  align-items: center;
15
12
  display: flex;
16
- margin: 8px;
17
13
  max-width: 672px;
18
14
  min-height: 48px;
19
15
  min-width: 344px;
20
16
  padding: 0;
21
- pointer-events: auto;
22
- position: relative;
23
17
  border-radius: 4px;
24
18
  }
25
19
  .v-snackbar--variant-plain, .v-snackbar--variant-outlined, .v-snackbar--variant-text, .v-snackbar--variant-tonal {
@@ -84,7 +78,6 @@
84
78
  min-width: auto;
85
79
  }
86
80
  .v-snackbar--absolute {
87
- height: 100%;
88
81
  position: absolute;
89
82
  z-index: 1;
90
83
  }
@@ -95,19 +95,18 @@ export const VSnackbar = genericComponent()({
95
95
  "modelValue": isActive.value,
96
96
  "onUpdate:modelValue": $event => isActive.value = $event,
97
97
  "contentProps": mergeProps({
98
- style: locationStyles.value
98
+ class: ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
99
+ style: [locationStyles.value, colorStyles.value],
100
+ onPointerenter,
101
+ onPointerleave: startTimeout
99
102
  }, overlayProps.contentProps),
100
103
  "persistent": true,
101
104
  "noClickAnimation": true,
102
105
  "scrim": false,
103
- "scrollStrategy": "none"
106
+ "scrollStrategy": "none",
107
+ "_disableGlobalStack": true
104
108
  }, scopeId), {
105
- default: () => [_createVNode("div", {
106
- "class": ['v-snackbar__wrapper', themeClasses.value, colorClasses.value, roundedClasses.value, variantClasses.value],
107
- "style": [colorStyles.value],
108
- "onPointerenter": onPointerenter,
109
- "onPointerleave": startTimeout
110
- }, [genOverlays(false, 'v-snackbar'), slots.default && _createVNode("div", {
109
+ default: () => [genOverlays(false, 'v-snackbar'), slots.default && _createVNode("div", {
111
110
  "class": "v-snackbar__content",
112
111
  "role": "status",
113
112
  "aria-live": "polite"
@@ -122,7 +121,7 @@ export const VSnackbar = genericComponent()({
122
121
  default: () => [_createVNode("div", {
123
122
  "class": "v-snackbar__actions"
124
123
  }, [slots.actions()])]
125
- })])],
124
+ })],
126
125
  activator: slots.activator
127
126
  });
128
127
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeThemeProps","provideTheme","useProxiedModel","useScopeId","forwardRefs","mergeProps","onMounted","ref","watch","genericComponent","omit","useRender","filterVOverlayProps","makeVOverlayProps","VSnackbar","name","props","multiLine","Boolean","timeout","type","Number","String","default","vertical","location","transition","emits","v","setup","slots","isActive","locationStyles","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","overlay","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","overlayProps","style","contentProps","actions","VBtn","variant","ripple","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { mergeProps, onMounted, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender } from '@/util'\nimport { filterVOverlayProps, makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\ntype VSnackbarSlots = {\n activator: [{ isActive: boolean, props: Record<string, any> }]\n default: []\n actions: []\n}\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: {\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => {\n const [overlayProps] = filterVOverlayProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n style: locationStyles.value,\n }, overlayProps.contentProps) }\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n <div\n class={[\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[colorStyles.value]}\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default() }\n </div>\n ) }\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","genOverlays","makeVariantProps","useVariant","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeThemeProps","provideTheme","useProxiedModel","useScopeId","forwardRefs","mergeProps","onMounted","ref","watch","genericComponent","omit","useRender","filterVOverlayProps","makeVOverlayProps","VSnackbar","name","props","multiLine","Boolean","timeout","type","Number","String","default","vertical","location","transition","emits","v","setup","slots","isActive","locationStyles","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","overlay","startTimeout","value","activeTimeout","window","clearTimeout","setTimeout","onPointerenter","overlayProps","class","style","onPointerleave","contentProps","actions","VBtn","variant","ripple","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\nimport { forwardRefs } from '@/composables/forwardRefs'\n\n// Utilities\nimport { mergeProps, onMounted, ref, watch } from 'vue'\nimport { genericComponent, omit, useRender } from '@/util'\nimport { filterVOverlayProps, makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\ntype VSnackbarSlots = {\n activator: [{ isActive: boolean, props: Record<string, any> }]\n default: []\n actions: []\n}\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: {\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n const overlay = ref<VOverlay>()\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => {\n const [overlayProps] = filterVOverlayProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n class: [\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ],\n style: [\n locationStyles.value,\n colorStyles.value,\n ],\n onPointerenter,\n onPointerleave: startTimeout,\n }, overlayProps.contentProps)}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n _disableGlobalStack\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default() }\n </div>\n )}\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions() }\n </div>\n </VDefaultsProvider>\n )}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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"}
@@ -4,12 +4,9 @@
4
4
 
5
5
  .v-snackbar
6
6
  justify-content: center
7
- padding-inline-end: var(--v-scrollbar-offset)
8
-
9
- &:not(.v-snackbar--absolute)
10
- height: 100vh
11
- position: fixed
12
- z-index: $snackbar-z-index
7
+ z-index: $snackbar-z-index
8
+ margin: $snackbar-wrapper-margin
9
+ margin-inline-end: calc(#{$snackbar-wrapper-margin} + var(--v-scrollbar-offset))
13
10
 
14
11
  &:not(.v-snackbar--centered):not(.v-snackbar--top)
15
12
  align-items: flex-end
@@ -17,13 +14,10 @@
17
14
  &__wrapper
18
15
  align-items: center
19
16
  display: flex
20
- margin: $snackbar-wrapper-margin
21
17
  max-width: $snackbar-wrapper-max-width
22
18
  min-height: $snackbar-wrapper-min-height
23
19
  min-width: $snackbar-wrapper-min-width
24
20
  padding: $snackbar-wrapper-padding
25
- pointer-events: auto
26
- position: relative
27
21
 
28
22
  @include tools.rounded($snackbar-border-radius)
29
23
 
@@ -51,7 +45,6 @@
51
45
  min-width: auto
52
46
 
53
47
  &--absolute
54
- height: 100%
55
48
  position: absolute
56
49
  z-index: $snackbar-absolute-z-index
57
50
 
@@ -1 +1 @@
1
- {"version":3,"file":"VSwitch.mjs","names":["filterControlProps","makeSelectionControlProps","VSelectionControl","filterInputProps","makeVInputProps","VInput","VProgressCircular","LoaderSlot","useLoader","useFocus","useProxiedModel","computed","ref","filterInputAttrs","genericComponent","getUid","useRender","VSwitch","name","inheritAttrs","props","indeterminate","Boolean","inset","flat","loading","type","String","default","emits","focused","val","setup","attrs","slots","model","loaderClasses","isFocused","focus","blur","loaderColor","color","uid","id","onChange","value","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","control","onClick","input","click","messagesId","isDisabled","isReadonly","isValid","undefined","textColorClasses","textColorStyles","slotProps","loader","isActive"],"sources":["../../../src/components/VSwitch/VSwitch.tsx"],"sourcesContent":["// Styles\nimport './VSwitch.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { LoaderSlot, useLoader } from '@/composables/loader'\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, ref } from 'vue'\nimport { filterInputAttrs, genericComponent, getUid, useRender } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VSelectionControlSlots } from '@/components/VSelectionControl/VSelectionControl'\n\nexport type VSwitchSlots = VInputSlots & VSelectionControlSlots\n\nexport const VSwitch = genericComponent<VSwitchSlots>()({\n name: 'VSwitch',\n\n inheritAttrs: false,\n\n props: {\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': () => true,\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const model = useProxiedModel(props, 'modelValue')\n const { loaderClasses } = useLoader(props)\n const { isFocused, focus, blur } = useFocus(props)\n\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== ''\n ? props.loading\n : props.color\n })\n\n const uid = getUid()\n const id = computed(() => props.id || `switch-${uid}`)\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const control = ref<VSelectionControl>()\n\n function onClick () {\n control.value?.input?.click()\n }\n\n return (\n <VInput\n class={[\n 'v-switch',\n { 'v-switch--inset': props.inset },\n { 'v-switch--indeterminate': indeterminate.value },\n loaderClasses.value,\n ]}\n { ...inputAttrs }\n { ...inputProps }\n id={ id.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid,\n }) => (\n <VSelectionControl\n ref={ control }\n { ...controlProps }\n v-model={ model.value }\n id={ id.value }\n aria-describedby={ messagesId.value }\n type=\"checkbox\"\n onUpdate:modelValue={ onChange }\n aria-checked={ indeterminate.value ? 'mixed' : undefined }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n onFocus={ focus }\n onBlur={ blur }\n { ...controlAttrs }\n >\n {{\n ...slots,\n default: () => (<div class=\"v-switch__track\" onClick={ onClick }></div>),\n input: ({ textColorClasses, textColorStyles }) => (\n <div\n class={[\n 'v-switch__thumb',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { props.loading && (\n <LoaderSlot\n name=\"v-switch\"\n active\n color={ isValid.value === false ? undefined : loaderColor.value }\n >\n { slotProps => (\n slots.loader\n ? slots.loader(slotProps)\n : (\n <VProgressCircular\n active={ slotProps.isActive }\n color={ slotProps.color }\n indeterminate\n size=\"16\"\n width=\"2\"\n />\n )\n )}\n </LoaderSlot>\n ) }\n </div>\n ),\n }}\n </VSelectionControl>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSwitch = InstanceType<typeof VSwitch>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSwitch.mjs","names":["filterControlProps","makeSelectionControlProps","VSelectionControl","filterInputProps","makeVInputProps","VInput","VProgressCircular","LoaderSlot","useLoader","useFocus","useProxiedModel","computed","ref","filterInputAttrs","genericComponent","getUid","useRender","VSwitch","name","inheritAttrs","props","indeterminate","Boolean","inset","flat","loading","type","String","default","emits","focused","val","setup","attrs","slots","model","loaderClasses","isFocused","focus","blur","loaderColor","color","uid","id","onChange","value","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","control","onClick","input","click","messagesId","isDisabled","isReadonly","isValid","undefined","textColorClasses","textColorStyles","slotProps","loader","isActive"],"sources":["../../../src/components/VSwitch/VSwitch.tsx"],"sourcesContent":["// Styles\nimport './VSwitch.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { LoaderSlot, useLoader } from '@/composables/loader'\nimport { useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, ref } from 'vue'\nimport { filterInputAttrs, genericComponent, getUid, useRender } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VSelectionControlSlots } from '@/components/VSelectionControl/VSelectionControl'\n\nexport type VSwitchSlots = VInputSlots & VSelectionControlSlots\n\nexport const VSwitch = genericComponent<VSwitchSlots>()({\n name: 'VSwitch',\n\n inheritAttrs: false,\n\n props: {\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': () => true,\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const model = useProxiedModel(props, 'modelValue')\n const { loaderClasses } = useLoader(props)\n const { isFocused, focus, blur } = useFocus(props)\n\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== ''\n ? props.loading\n : props.color\n })\n\n const uid = getUid()\n const id = computed(() => props.id || `switch-${uid}`)\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const control = ref<VSelectionControl>()\n\n function onClick () {\n control.value?.input?.click()\n }\n\n return (\n <VInput\n class={[\n 'v-switch',\n { 'v-switch--inset': props.inset },\n { 'v-switch--indeterminate': indeterminate.value },\n loaderClasses.value,\n ]}\n { ...inputAttrs }\n { ...inputProps }\n id={ id.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n messagesId,\n isDisabled,\n isReadonly,\n isValid,\n }) => (\n <VSelectionControl\n ref={ control }\n { ...controlProps }\n v-model={ model.value }\n id={ id.value }\n aria-describedby={ messagesId.value }\n type=\"checkbox\"\n onUpdate:modelValue={ onChange }\n aria-checked={ indeterminate.value ? 'mixed' : undefined }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n onFocus={ focus }\n onBlur={ blur }\n { ...controlAttrs }\n >\n {{\n ...slots,\n default: () => (<div class=\"v-switch__track\" onClick={ onClick }></div>),\n input: ({ textColorClasses, textColorStyles }) => (\n <div\n class={[\n 'v-switch__thumb',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { props.loading && (\n <LoaderSlot\n name=\"v-switch\"\n active\n color={ isValid.value === false ? undefined : loaderColor.value }\n >\n { slotProps => (\n slots.loader\n ? slots.loader(slotProps)\n : (\n <VProgressCircular\n active={ slotProps.isActive }\n color={ slotProps.color }\n indeterminate\n size=\"16\"\n width=\"2\"\n />\n )\n )}\n </LoaderSlot>\n )}\n </div>\n ),\n }}\n </VSelectionControl>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSwitch = InstanceType<typeof VSwitch>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VTable.mjs","names":["makeDensityProps","useDensity","makeTagProps","makeThemeProps","provideTheme","convertToUnit","genericComponent","useRender","VTable","name","props","fixedHeader","Boolean","fixedFooter","height","Number","String","hover","setup","slots","themeClasses","densityClasses","top","bottom","value","default","wrapper"],"sources":["../../../src/components/VTable/VTable.tsx"],"sourcesContent":["// Styles\nimport './VTable.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\nexport type VTableSlots = {\n default: []\n top: []\n bottom: []\n wrapper: []\n}\n\nexport const VTable = genericComponent<VTableSlots>()({\n name: 'VTable',\n\n props: {\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-table',\n {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n 'v-table--hover': props.hover,\n },\n themeClasses.value,\n densityClasses.value,\n ]}\n >\n { slots.top?.() }\n\n { slots.default ? (\n <div\n class=\"v-table__wrapper\"\n style={{ height: convertToUnit(props.height) }}\n >\n <table>\n { slots.default() }\n </table>\n </div>\n ) : slots.wrapper?.() }\n\n { slots.bottom?.() }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VTable = InstanceType<typeof VTable>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS;AASnD,OAAO,MAAMC,MAAM,GAAGF,gBAAgB,EAAe,CAAC;EACpDG,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAE;IACLC,WAAW,EAAEC,OAAO;IACpBC,WAAW,EAAED,OAAO;IACpBE,MAAM,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACxBC,KAAK,EAAEL,OAAO;IAEd,GAAGZ,gBAAgB,EAAE;IACrB,GAAGE,YAAY,EAAE;IACjB,GAAGC,cAAc;EACnB,CAAC;EAEDe,KAAK,CAAER,KAAK,QAAa;IAAA,IAAX;MAAES;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGhB,YAAY,CAACM,KAAK,CAAC;IAC5C,MAAM;MAAEW;IAAe,CAAC,GAAGpB,UAAU,CAACS,KAAK,CAAC;IAE5CH,SAAS,CAAC;MAAA,SAEC,CACL,SAAS,EACT;QACE,uBAAuB,EAAE,CAAC,CAACG,KAAK,CAACI,MAAM;QACvC,uBAAuB,EAAEJ,KAAK,CAACC,WAAW;QAC1C,uBAAuB,EAAED,KAAK,CAACG,WAAW;QAC1C,kBAAkB,EAAE,CAAC,CAACM,KAAK,CAACG,GAAG;QAC/B,qBAAqB,EAAE,CAAC,CAACH,KAAK,CAACI,MAAM;QACrC,gBAAgB,EAAEb,KAAK,CAACO;MAC1B,CAAC,EACDG,YAAY,CAACI,KAAK,EAClBH,cAAc,CAACG,KAAK;IACrB;MAAA,gBAECL,KAAK,CAACG,GAAG,IAAI,EAEbH,KAAK,CAACM,OAAO;QAAA,SAEL,kBAAkB;QAAA,SACjB;UAAEX,MAAM,EAAET,aAAa,CAACK,KAAK,CAACI,MAAM;QAAE;MAAC,iCAG1CK,KAAK,CAACM,OAAO,EAAE,OAGnBN,KAAK,CAACO,OAAO,IAAI,EAEnBP,KAAK,CAACI,MAAM,IAAI;IAAA,EAErB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VTable.mjs","names":["makeDensityProps","useDensity","makeTagProps","makeThemeProps","provideTheme","convertToUnit","genericComponent","useRender","VTable","name","props","fixedHeader","Boolean","fixedFooter","height","Number","String","hover","setup","slots","themeClasses","densityClasses","top","bottom","value","default","wrapper"],"sources":["../../../src/components/VTable/VTable.tsx"],"sourcesContent":["// Styles\nimport './VTable.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\nexport type VTableSlots = {\n default: []\n top: []\n bottom: []\n wrapper: []\n}\n\nexport const VTable = genericComponent<VTableSlots>()({\n name: 'VTable',\n\n props: {\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-table',\n {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n 'v-table--hover': props.hover,\n },\n themeClasses.value,\n densityClasses.value,\n ]}\n >\n { slots.top?.() }\n\n { slots.default ? (\n <div\n class=\"v-table__wrapper\"\n style={{ height: convertToUnit(props.height) }}\n >\n <table>\n { slots.default() }\n </table>\n </div>\n ) : slots.wrapper?.()}\n\n { slots.bottom?.() }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VTable = InstanceType<typeof VTable>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS;AASnD,OAAO,MAAMC,MAAM,GAAGF,gBAAgB,EAAe,CAAC;EACpDG,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAE;IACLC,WAAW,EAAEC,OAAO;IACpBC,WAAW,EAAED,OAAO;IACpBE,MAAM,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACxBC,KAAK,EAAEL,OAAO;IAEd,GAAGZ,gBAAgB,EAAE;IACrB,GAAGE,YAAY,EAAE;IACjB,GAAGC,cAAc;EACnB,CAAC;EAEDe,KAAK,CAAER,KAAK,QAAa;IAAA,IAAX;MAAES;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAa,CAAC,GAAGhB,YAAY,CAACM,KAAK,CAAC;IAC5C,MAAM;MAAEW;IAAe,CAAC,GAAGpB,UAAU,CAACS,KAAK,CAAC;IAE5CH,SAAS,CAAC;MAAA,SAEC,CACL,SAAS,EACT;QACE,uBAAuB,EAAE,CAAC,CAACG,KAAK,CAACI,MAAM;QACvC,uBAAuB,EAAEJ,KAAK,CAACC,WAAW;QAC1C,uBAAuB,EAAED,KAAK,CAACG,WAAW;QAC1C,kBAAkB,EAAE,CAAC,CAACM,KAAK,CAACG,GAAG;QAC/B,qBAAqB,EAAE,CAAC,CAACH,KAAK,CAACI,MAAM;QACrC,gBAAgB,EAAEb,KAAK,CAACO;MAC1B,CAAC,EACDG,YAAY,CAACI,KAAK,EAClBH,cAAc,CAACG,KAAK;IACrB;MAAA,gBAECL,KAAK,CAACG,GAAG,IAAI,EAEbH,KAAK,CAACM,OAAO;QAAA,SAEL,kBAAkB;QAAA,SACjB;UAAEX,MAAM,EAAET,aAAa,CAACK,KAAK,CAACI,MAAM;QAAE;MAAC,iCAG1CK,KAAK,CAACM,OAAO,EAAE,OAGnBN,KAAK,CAACO,OAAO,IAAI,EAEnBP,KAAK,CAACI,MAAM,IAAI;IAAA,EAErB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VTab.mjs","names":["VBtn","IconValue","makeGroupItemProps","makeRouterProps","makeTagProps","makeThemeProps","useTextColor","computed","ref","animate","genericComponent","pick","standardEasing","useRender","VTabsSymbol","VTab","name","props","fixed","Boolean","icon","String","Function","Object","prependIcon","appendIcon","stacked","title","ripple","type","default","color","sliderColor","hideSlider","direction","selectedClass","setup","slots","attrs","textColorClasses","sliderColorClasses","textColorStyles","sliderColorStyles","isHorizontal","isSelected","rootEl","sliderEl","updateSlider","value","prevEl","$el","parentElement","querySelector","nextEl","getComputedStyle","prevBox","getBoundingClientRect","nextBox","xy","XY","rightBottom","widthHeight","prevPos","nextPos","delta","origin","Math","sign","size","abs","scale","max","initialScale","sigma","backgroundColor","transform","transformOrigin","Array","fill","duration","easing","btnProps","undefined"],"sources":["../../../src/components/VTabs/VTab.tsx"],"sourcesContent":["// Styles\nimport './VTab.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeGroupItemProps } from '@/composables/group'\nimport { makeRouterProps } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { animate, genericComponent, pick, standardEasing, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { VTabsSymbol } from './shared'\n\nexport const VTab = genericComponent()({\n name: 'VTab',\n\n props: {\n fixed: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n stacked: Boolean,\n title: String,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n color: String,\n sliderColor: String,\n hideSlider: Boolean,\n\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n ...makeTagProps(),\n ...makeRouterProps(),\n ...makeGroupItemProps({\n selectedClass: 'v-tab--selected',\n }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots, attrs }) {\n const { textColorClasses: sliderColorClasses, textColorStyles: sliderColorStyles } = useTextColor(props, 'sliderColor')\n const isHorizontal = computed(() => props.direction === 'horizontal')\n const isSelected = ref(false)\n\n const rootEl = ref<VBtn>()\n const sliderEl = ref<HTMLElement>()\n\n function updateSlider ({ value }: { value: boolean }) {\n isSelected.value = value\n\n if (value) {\n const prevEl: HTMLElement | undefined = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider')\n const nextEl = sliderEl.value\n\n if (!prevEl || !nextEl) return\n\n const color = getComputedStyle(prevEl).color\n\n const prevBox = prevEl.getBoundingClientRect()\n const nextBox = nextEl.getBoundingClientRect()\n\n const xy = isHorizontal.value ? 'x' : 'y'\n const XY = isHorizontal.value ? 'X' : 'Y'\n const rightBottom = isHorizontal.value ? 'right' : 'bottom'\n const widthHeight = isHorizontal.value ? 'width' : 'height'\n\n const prevPos = prevBox[xy]\n const nextPos = nextBox[xy]\n const delta = prevPos > nextPos\n ? prevBox[rightBottom] - nextBox[rightBottom]\n : prevBox[xy] - nextBox[xy]\n const origin =\n Math.sign(delta) > 0 ? (isHorizontal.value ? 'right' : 'bottom')\n : Math.sign(delta) < 0 ? (isHorizontal.value ? 'left' : 'top')\n : 'center'\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight])\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight])\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight]\n\n const sigma = 1.5\n animate(nextEl, {\n backgroundColor: [color, ''],\n transform: [\n `translate${XY}(${delta}px) scale${XY}(${initialScale})`,\n `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`,\n '',\n ],\n transformOrigin: Array(3).fill(origin),\n }, {\n duration: 225,\n easing: standardEasing,\n })\n }\n }\n\n useRender(() => {\n const [btnProps] = pick(props, [\n 'href',\n 'to',\n 'replace',\n 'icon',\n 'stacked',\n 'prependIcon',\n 'appendIcon',\n 'ripple',\n 'theme',\n 'disabled',\n 'selectedClass',\n 'value',\n 'color',\n ])\n\n return (\n <VBtn\n _as=\"VTab\"\n symbol={ VTabsSymbol }\n ref={ rootEl }\n class={[\n 'v-tab',\n ]}\n tabindex={ isSelected.value ? 0 : -1 }\n role=\"tab\"\n aria-selected={ String(isSelected.value) }\n active={ false }\n block={ props.fixed }\n maxWidth={ props.fixed ? 300 : undefined }\n variant=\"text\"\n rounded={ 0 }\n { ...btnProps }\n { ...attrs }\n onGroup:selected={ updateSlider }\n >\n { slots.default ? slots.default() : props.title }\n { !props.hideSlider && (\n <div\n ref={ sliderEl }\n class={[\n 'v-tab__slider',\n sliderColorClasses.value,\n ]}\n style={ sliderColorStyles.value }\n />\n ) }\n </VBtn>\n )\n })\n\n return {}\n },\n})\n\nexport type VTab = InstanceType<typeof VTab>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VTab.mjs","names":["VBtn","IconValue","makeGroupItemProps","makeRouterProps","makeTagProps","makeThemeProps","useTextColor","computed","ref","animate","genericComponent","pick","standardEasing","useRender","VTabsSymbol","VTab","name","props","fixed","Boolean","icon","String","Function","Object","prependIcon","appendIcon","stacked","title","ripple","type","default","color","sliderColor","hideSlider","direction","selectedClass","setup","slots","attrs","textColorClasses","sliderColorClasses","textColorStyles","sliderColorStyles","isHorizontal","isSelected","rootEl","sliderEl","updateSlider","value","prevEl","$el","parentElement","querySelector","nextEl","getComputedStyle","prevBox","getBoundingClientRect","nextBox","xy","XY","rightBottom","widthHeight","prevPos","nextPos","delta","origin","Math","sign","size","abs","scale","max","initialScale","sigma","backgroundColor","transform","transformOrigin","Array","fill","duration","easing","btnProps","undefined"],"sources":["../../../src/components/VTabs/VTab.tsx"],"sourcesContent":["// Styles\nimport './VTab.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeGroupItemProps } from '@/composables/group'\nimport { makeRouterProps } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { animate, genericComponent, pick, standardEasing, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { VTabsSymbol } from './shared'\n\nexport const VTab = genericComponent()({\n name: 'VTab',\n\n props: {\n fixed: Boolean,\n icon: [Boolean, String, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\n\n stacked: Boolean,\n title: String,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n color: String,\n sliderColor: String,\n hideSlider: Boolean,\n\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n ...makeTagProps(),\n ...makeRouterProps(),\n ...makeGroupItemProps({\n selectedClass: 'v-tab--selected',\n }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots, attrs }) {\n const { textColorClasses: sliderColorClasses, textColorStyles: sliderColorStyles } = useTextColor(props, 'sliderColor')\n const isHorizontal = computed(() => props.direction === 'horizontal')\n const isSelected = ref(false)\n\n const rootEl = ref<VBtn>()\n const sliderEl = ref<HTMLElement>()\n\n function updateSlider ({ value }: { value: boolean }) {\n isSelected.value = value\n\n if (value) {\n const prevEl: HTMLElement | undefined = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider')\n const nextEl = sliderEl.value\n\n if (!prevEl || !nextEl) return\n\n const color = getComputedStyle(prevEl).color\n\n const prevBox = prevEl.getBoundingClientRect()\n const nextBox = nextEl.getBoundingClientRect()\n\n const xy = isHorizontal.value ? 'x' : 'y'\n const XY = isHorizontal.value ? 'X' : 'Y'\n const rightBottom = isHorizontal.value ? 'right' : 'bottom'\n const widthHeight = isHorizontal.value ? 'width' : 'height'\n\n const prevPos = prevBox[xy]\n const nextPos = nextBox[xy]\n const delta = prevPos > nextPos\n ? prevBox[rightBottom] - nextBox[rightBottom]\n : prevBox[xy] - nextBox[xy]\n const origin =\n Math.sign(delta) > 0 ? (isHorizontal.value ? 'right' : 'bottom')\n : Math.sign(delta) < 0 ? (isHorizontal.value ? 'left' : 'top')\n : 'center'\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight])\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight])\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight]\n\n const sigma = 1.5\n animate(nextEl, {\n backgroundColor: [color, ''],\n transform: [\n `translate${XY}(${delta}px) scale${XY}(${initialScale})`,\n `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`,\n '',\n ],\n transformOrigin: Array(3).fill(origin),\n }, {\n duration: 225,\n easing: standardEasing,\n })\n }\n }\n\n useRender(() => {\n const [btnProps] = pick(props, [\n 'href',\n 'to',\n 'replace',\n 'icon',\n 'stacked',\n 'prependIcon',\n 'appendIcon',\n 'ripple',\n 'theme',\n 'disabled',\n 'selectedClass',\n 'value',\n 'color',\n ])\n\n return (\n <VBtn\n _as=\"VTab\"\n symbol={ VTabsSymbol }\n ref={ rootEl }\n class={[\n 'v-tab',\n ]}\n tabindex={ isSelected.value ? 0 : -1 }\n role=\"tab\"\n aria-selected={ String(isSelected.value) }\n active={ false }\n block={ props.fixed }\n maxWidth={ props.fixed ? 300 : undefined }\n variant=\"text\"\n rounded={ 0 }\n { ...btnProps }\n { ...attrs }\n onGroup:selected={ updateSlider }\n >\n { slots.default ? slots.default() : props.title }\n { !props.hideSlider && (\n <div\n ref={ sliderEl }\n class={[\n 'v-tab__slider',\n sliderColorClasses.value,\n ]}\n style={ sliderColorStyles.value }\n />\n )}\n </VBtn>\n )\n })\n\n return {}\n },\n})\n\nexport type VTab = InstanceType<typeof VTab>\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
1
+ import { resolveDirective as _resolveDirective, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Styles
3
3
  import "./VTabs.css";
4
4
 
5
5
  // Components
6
+ import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
6
7
  import { VSlideGroup } from "../VSlideGroup/index.mjs";
7
8
  import { VTab } from "./VTab.mjs"; // Composables
8
9
  import { makeDensityProps, useDensity } from "../../composables/density.mjs";
9
10
  import { makeTagProps } from "../../composables/tag.mjs";
10
- import { provideDefaults } from "../../composables/defaults.mjs";
11
11
  import { useBackgroundColor } from "../../composables/color.mjs";
12
12
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
13
13
  import { computed, toRef } from 'vue';
@@ -73,16 +73,6 @@ export const VTabs = genericComponent()({
73
73
  backgroundColorClasses,
74
74
  backgroundColorStyles
75
75
  } = useBackgroundColor(toRef(props, 'bgColor'));
76
- provideDefaults({
77
- VTab: {
78
- color: toRef(props, 'color'),
79
- direction: toRef(props, 'direction'),
80
- stacked: toRef(props, 'stacked'),
81
- fixed: toRef(props, 'fixedTabs'),
82
- sliderColor: toRef(props, 'sliderColor'),
83
- hideSlider: toRef(props, 'hideSlider')
84
- }
85
- });
86
76
  useRender(() => _createVNode(VSlideGroup, {
87
77
  "modelValue": model.value,
88
78
  "onUpdate:modelValue": $event => model.value = $event,
@@ -99,9 +89,27 @@ export const VTabs = genericComponent()({
99
89
  "mandatory": props.mandatory,
100
90
  "direction": props.direction
101
91
  }, {
102
- default: () => [slots.default ? slots.default() : parsedItems.value.map(item => _createVNode(VTab, _mergeProps(item, {
103
- "key": item.title
104
- }), null))]
92
+ default: () => [!slots.default ? parsedItems.value.map(item => _createVNode(VTab, _mergeProps({
93
+ "key": item.title,
94
+ "color": props.color,
95
+ "direction": props.direction,
96
+ "fixed": props.fixedTabs,
97
+ "hideSlider": props.hideSlider,
98
+ "sliderColor": props.sliderColor,
99
+ "stacked": props.stacked
100
+ }, item), null)) : _createVNode(VDefaultsProvider, {
101
+ "key": "tabs-defaults",
102
+ "defaults": {
103
+ VTab: {
104
+ color: props.color,
105
+ direction: props.direction,
106
+ fixed: props.fixedTabs,
107
+ hideSlider: props.hideSlider,
108
+ sliderColor: props.sliderColor,
109
+ stacked: props.stacked
110
+ }
111
+ }
112
+ }, slots.default)]
105
113
  }));
106
114
  return {};
107
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VTabs.mjs","names":["VSlideGroup","VTab","makeDensityProps","useDensity","makeTagProps","provideDefaults","useBackgroundColor","useProxiedModel","computed","toRef","convertToUnit","genericComponent","useRender","VTabsSymbol","parseItems","items","map","item","title","value","VTabs","name","props","alignTabs","type","String","default","color","direction","fixedTabs","Boolean","Array","stacked","bgColor","grow","height","Number","undefined","hideSlider","sliderColor","modelValue","mandatory","emits","v","setup","slots","model","parsedItems","densityClasses","backgroundColorClasses","backgroundColorStyles","fixed"],"sources":["../../../src/components/VTabs/VTabs.tsx"],"sourcesContent":["// Styles\nimport './VTabs.sass'\n\n// Components\nimport { VSlideGroup } from '@/components/VSlideGroup'\nimport { VTab } from './VTab'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { VTabsSymbol } from './shared'\n\nexport type TabItem = string | Record<string, any>\n\nfunction parseItems (items: TabItem[] | undefined) {\n if (!items) return []\n\n return items.map(item => {\n if (typeof item === 'string') return { title: item, value: item }\n\n return item\n })\n}\n\nexport const VTabs = genericComponent()({\n name: 'VTabs',\n\n props: {\n alignTabs: {\n type: String as PropType<'start' | 'title' | 'center' | 'end'>,\n default: 'start',\n },\n color: String,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n fixedTabs: Boolean,\n items: {\n type: Array as PropType<TabItem[]>,\n default: () => ([]),\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n sliderColor: String,\n modelValue: null,\n mandatory: {\n type: [Boolean, String] as PropType<boolean | 'force'>,\n default: 'force',\n },\n\n ...makeDensityProps(),\n ...makeTagProps(),\n },\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const parsedItems = computed(() => parseItems(props.items))\n const { densityClasses } = useDensity(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n hideSlider: toRef(props, 'hideSlider'),\n },\n })\n\n useRender(() => (\n <VSlideGroup\n v-model={ model.value }\n class={[\n 'v-tabs',\n `v-tabs--${props.direction}`,\n `v-tabs--align-tabs-${props.alignTabs}`,\n {\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--stacked': props.stacked,\n },\n densityClasses.value,\n backgroundColorClasses.value,\n ]}\n style={[\n { '--v-tabs-height': convertToUnit(props.height) },\n backgroundColorStyles.value,\n ]}\n role=\"tablist\"\n symbol={ VTabsSymbol }\n mandatory={ props.mandatory }\n direction={ props.direction }\n >\n { slots.default ? slots.default() : parsedItems.value.map(item => (\n <VTab { ...item } key={ item.title } />\n )) }\n </VSlideGroup>\n ))\n\n return {}\n },\n})\n\nexport type VTabs = InstanceType<typeof VTabs>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VTabs.mjs","names":["VDefaultsProvider","VSlideGroup","VTab","makeDensityProps","useDensity","makeTagProps","useBackgroundColor","useProxiedModel","computed","toRef","convertToUnit","genericComponent","useRender","VTabsSymbol","parseItems","items","map","item","title","value","VTabs","name","props","alignTabs","type","String","default","color","direction","fixedTabs","Boolean","Array","stacked","bgColor","grow","height","Number","undefined","hideSlider","sliderColor","modelValue","mandatory","emits","v","setup","slots","model","parsedItems","densityClasses","backgroundColorClasses","backgroundColorStyles","fixed"],"sources":["../../../src/components/VTabs/VTabs.tsx"],"sourcesContent":["// Styles\nimport './VTabs.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VSlideGroup } from '@/components/VSlideGroup'\nimport { VTab } from './VTab'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { VTabsSymbol } from './shared'\n\nexport type TabItem = string | Record<string, any>\n\nfunction parseItems (items: TabItem[] | undefined) {\n if (!items) return []\n\n return items.map(item => {\n if (typeof item === 'string') return { title: item, value: item }\n\n return item\n })\n}\n\nexport const VTabs = genericComponent()({\n name: 'VTabs',\n\n props: {\n alignTabs: {\n type: String as PropType<'start' | 'title' | 'center' | 'end'>,\n default: 'start',\n },\n color: String,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n fixedTabs: Boolean,\n items: {\n type: Array as PropType<TabItem[]>,\n default: () => ([]),\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n sliderColor: String,\n modelValue: null,\n mandatory: {\n type: [Boolean, String] as PropType<boolean | 'force'>,\n default: 'force',\n },\n\n ...makeDensityProps(),\n ...makeTagProps(),\n },\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const parsedItems = computed(() => parseItems(props.items))\n const { densityClasses } = useDensity(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n\n useRender(() => (\n <VSlideGroup\n v-model={ model.value }\n class={[\n 'v-tabs',\n `v-tabs--${props.direction}`,\n `v-tabs--align-tabs-${props.alignTabs}`,\n {\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--stacked': props.stacked,\n },\n densityClasses.value,\n backgroundColorClasses.value,\n ]}\n style={[\n { '--v-tabs-height': convertToUnit(props.height) },\n backgroundColorStyles.value,\n ]}\n role=\"tablist\"\n symbol={ VTabsSymbol }\n mandatory={ props.mandatory }\n direction={ props.direction }\n >\n { !slots.default ? (\n parsedItems.value.map(item => (\n <VTab\n key={ item.title }\n color={ props.color }\n direction={ props.direction }\n fixed={ props.fixedTabs }\n hideSlider={ props.hideSlider }\n sliderColor={ props.sliderColor }\n stacked={ props.stacked }\n { ...item }\n />\n ))\n ) : (\n <VDefaultsProvider\n key=\"tabs-defaults\"\n defaults={{\n VTab: {\n color: props.color,\n direction: props.direction,\n fixed: props.fixedTabs,\n hideSlider: props.hideSlider,\n sliderColor: props.sliderColor,\n stacked: props.stacked,\n },\n }}\n v-slots:default={ slots.default }\n />\n )}\n </VSlideGroup>\n ))\n\n return {}\n },\n})\n\nexport type VTabs = InstanceType<typeof VTabs>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,WAAW;AAAA,SACXC,IAAI,sBAEb;AAAA,SACSC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,kBAAkB;AAAA,SAClBC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS,gCAEnD;AAAA,SAESC,WAAW;AAIpB,SAASC,UAAU,CAAEC,KAA4B,EAAE;EACjD,IAAI,CAACA,KAAK,EAAE,OAAO,EAAE;EAErB,OAAOA,KAAK,CAACC,GAAG,CAACC,IAAI,IAAI;IACvB,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAO;MAAEC,KAAK,EAAED,IAAI;MAAEE,KAAK,EAAEF;IAAK,CAAC;IAEjE,OAAOA,IAAI;EACb,CAAC,CAAC;AACJ;AAEA,OAAO,MAAMG,KAAK,GAAGT,gBAAgB,EAAE,CAAC;EACtCU,IAAI,EAAE,OAAO;EAEbC,KAAK,EAAE;IACLC,SAAS,EAAE;MACTC,IAAI,EAAEC,MAAwD;MAC9DC,OAAO,EAAE;IACX,CAAC;IACDC,KAAK,EAAEF,MAAM;IACbG,SAAS,EAAE;MACTJ,IAAI,EAAEC,MAA6C;MACnDC,OAAO,EAAE;IACX,CAAC;IACDG,SAAS,EAAEC,OAAO;IAClBf,KAAK,EAAE;MACLS,IAAI,EAAEO,KAA4B;MAClCL,OAAO,EAAE,MAAO;IAClB,CAAC;IACDM,OAAO,EAAEF,OAAO;IAChBG,OAAO,EAAER,MAAM;IACfS,IAAI,EAAEJ,OAAO;IACbK,MAAM,EAAE;MACNX,IAAI,EAAE,CAACY,MAAM,EAAEX,MAAM,CAAC;MACtBC,OAAO,EAAEW;IACX,CAAC;IACDC,UAAU,EAAER,OAAO;IACnBS,WAAW,EAAEd,MAAM;IACnBe,UAAU,EAAE,IAAI;IAChBC,SAAS,EAAE;MACTjB,IAAI,EAAE,CAACM,OAAO,EAAEL,MAAM,CAAgC;MACtDC,OAAO,EAAE;IACX,CAAC;IAED,GAAGvB,gBAAgB,EAAE;IACrB,GAAGE,YAAY;EACjB,CAAC;EAEDqC,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAK,CAAEtB,KAAK,QAAa;IAAA,IAAX;MAAEuB;IAAM,CAAC;IACrB,MAAMC,KAAK,GAAGvC,eAAe,CAACe,KAAK,EAAE,YAAY,CAAC;IAClD,MAAMyB,WAAW,GAAGvC,QAAQ,CAAC,MAAMM,UAAU,CAACQ,KAAK,CAACP,KAAK,CAAC,CAAC;IAC3D,MAAM;MAAEiC;IAAe,CAAC,GAAG5C,UAAU,CAACkB,KAAK,CAAC;IAC5C,MAAM;MAAE2B,sBAAsB;MAAEC;IAAsB,CAAC,GAAG5C,kBAAkB,CAACG,KAAK,CAACa,KAAK,EAAE,SAAS,CAAC,CAAC;IAErGV,SAAS,CAAC;MAAA,cAEIkC,KAAK,CAAC3B,KAAK;MAAA,iCAAX2B,KAAK,CAAC3B,KAAK;MAAA,SACd,CACL,QAAQ,EACP,WAAUG,KAAK,CAACM,SAAU,EAAC,EAC3B,sBAAqBN,KAAK,CAACC,SAAU,EAAC,EACvC;QACE,oBAAoB,EAAED,KAAK,CAACO,SAAS;QACrC,cAAc,EAAEP,KAAK,CAACY,IAAI;QAC1B,iBAAiB,EAAEZ,KAAK,CAACU;MAC3B,CAAC,EACDgB,cAAc,CAAC7B,KAAK,EACpB8B,sBAAsB,CAAC9B,KAAK,CAC7B;MAAA,SACM,CACL;QAAE,iBAAiB,EAAET,aAAa,CAACY,KAAK,CAACa,MAAM;MAAE,CAAC,EAClDe,qBAAqB,CAAC/B,KAAK,CAC5B;MAAA,QACI,SAAS;MAAA,UACLN,WAAW;MAAA,aACRS,KAAK,CAACmB,SAAS;MAAA,aACfnB,KAAK,CAACM;IAAS;MAAA,gBAEzB,CAACiB,KAAK,CAACnB,OAAO,GACdqB,WAAW,CAAC5B,KAAK,CAACH,GAAG,CAACC,IAAI;QAAA,OAEhBA,IAAI,CAACC,KAAK;QAAA,SACRI,KAAK,CAACK,KAAK;QAAA,aACPL,KAAK,CAACM,SAAS;QAAA,SACnBN,KAAK,CAACO,SAAS;QAAA,cACVP,KAAK,CAACgB,UAAU;QAAA,eACfhB,KAAK,CAACiB,WAAW;QAAA,WACrBjB,KAAK,CAACU;MAAO,GAClBf,IAAI,QAEZ,CAAC;QAAA,OAGI,eAAe;QAAA,YACT;UACRf,IAAI,EAAE;YACJyB,KAAK,EAAEL,KAAK,CAACK,KAAK;YAClBC,SAAS,EAAEN,KAAK,CAACM,SAAS;YAC1BuB,KAAK,EAAE7B,KAAK,CAACO,SAAS;YACtBS,UAAU,EAAEhB,KAAK,CAACgB,UAAU;YAC5BC,WAAW,EAAEjB,KAAK,CAACiB,WAAW;YAC9BP,OAAO,EAAEV,KAAK,CAACU;UACjB;QACF;MAAC,GACiBa,KAAK,CAACnB,OAAO,CAElC;IAAA,EAEJ,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -148,6 +148,7 @@ export const VTextField = genericComponent()({
148
148
  "id": id.value,
149
149
  "active": isActive.value || isDirty.value,
150
150
  "dirty": isDirty.value || props.dirty,
151
+ "disabled": isDisabled.value,
151
152
  "focused": isFocused.value,
152
153
  "error": isValid.value === false
153
154
  }), {