@vuetify/nightly 3.9.0-master.2025-07-09 → 3.9.0-next.2025-07-09

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 (209) hide show
  1. package/CHANGELOG.md +20 -9
  2. package/dist/json/attributes.json +3539 -3539
  3. package/dist/json/importMap-labs.json +14 -14
  4. package/dist/json/importMap.json +130 -130
  5. package/dist/json/web-types.json +6434 -6398
  6. package/dist/vuetify-labs.cjs +55 -36
  7. package/dist/vuetify-labs.css +26440 -28193
  8. package/dist/vuetify-labs.d.ts +197 -590
  9. package/dist/vuetify-labs.esm.js +55 -36
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +55 -36
  12. package/dist/vuetify-labs.min.css +3 -4
  13. package/dist/vuetify.cjs +47 -28
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +22837 -24587
  16. package/dist/vuetify.d.ts +197 -590
  17. package/dist/vuetify.esm.js +47 -28
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +47 -28
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +3 -4
  22. package/dist/vuetify.min.js +18 -18
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAlert/VAlert.css +211 -220
  25. package/lib/components/VApp/VApp.css +16 -15
  26. package/lib/components/VAppBar/VAppBar.css +14 -12
  27. package/lib/components/VAutocomplete/VAutocomplete.css +85 -84
  28. package/lib/components/VAutocomplete/VAutocomplete.d.ts +18 -9
  29. package/lib/components/VAutocomplete/VAutocomplete.js +6 -3
  30. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  31. package/lib/components/VAvatar/VAvatar.css +108 -106
  32. package/lib/components/VBadge/VBadge.css +77 -77
  33. package/lib/components/VBanner/VBanner.css +161 -166
  34. package/lib/components/VBottomNavigation/VBottomNavigation.css +65 -64
  35. package/lib/components/VBottomSheet/VBottomSheet.css +34 -31
  36. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +54 -57
  37. package/lib/components/VBtn/VBtn.css +400 -436
  38. package/lib/components/VBtn/VBtn.sass +10 -23
  39. package/lib/components/VBtn/_variables.scss +1 -1
  40. package/lib/components/VBtnGroup/VBtnGroup.css +87 -88
  41. package/lib/components/VBtnToggle/VBtnToggle.css +16 -14
  42. package/lib/components/VCard/VCard.css +294 -302
  43. package/lib/components/VCarousel/VCarousel.css +62 -64
  44. package/lib/components/VCarousel/VCarousel.sass +1 -1
  45. package/lib/components/VCheckbox/VCheckbox.css +7 -5
  46. package/lib/components/VChip/VChip.css +378 -411
  47. package/lib/components/VChipGroup/VChipGroup.css +19 -18
  48. package/lib/components/VCode/VCode.css +13 -11
  49. package/lib/components/VColorPicker/VColorPicker.css +23 -23
  50. package/lib/components/VColorPicker/VColorPickerCanvas.css +24 -22
  51. package/lib/components/VColorPicker/VColorPickerEdit.css +29 -28
  52. package/lib/components/VColorPicker/VColorPickerPreview.css +69 -67
  53. package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -2
  54. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  55. package/lib/components/VCombobox/VCombobox.css +85 -84
  56. package/lib/components/VCombobox/VCombobox.d.ts +18 -9
  57. package/lib/components/VCombobox/VCombobox.js +6 -3
  58. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  59. package/lib/components/VCounter/VCounter.css +7 -5
  60. package/lib/components/VDataTable/VDataTable.css +202 -200
  61. package/lib/components/VDataTable/VDataTable.sass +20 -10
  62. package/lib/components/VDataTable/VDataTableFooter.css +33 -31
  63. package/lib/components/VDataTable/VDataTableFooter.js +7 -7
  64. package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
  65. package/lib/components/VDatePicker/VDatePicker.css +8 -6
  66. package/lib/components/VDatePicker/VDatePickerControls.css +56 -58
  67. package/lib/components/VDatePicker/VDatePickerHeader.css +56 -60
  68. package/lib/components/VDatePicker/VDatePickerMonth.css +46 -50
  69. package/lib/components/VDatePicker/VDatePickerMonths.css +20 -19
  70. package/lib/components/VDatePicker/VDatePickerYears.css +16 -15
  71. package/lib/components/VDialog/VDialog.css +98 -98
  72. package/lib/components/VDivider/VDivider.css +52 -52
  73. package/lib/components/VEmptyState/VEmptyState.css +62 -67
  74. package/lib/components/VExpansionPanel/VExpansionPanel.css +203 -209
  75. package/lib/components/VExpansionPanel/VExpansionPanel.sass +27 -25
  76. package/lib/components/VFab/VFab.css +78 -73
  77. package/lib/components/VFab/VFab.sass +5 -4
  78. package/lib/components/VField/VField.css +541 -589
  79. package/lib/components/VField/VField.sass +4 -11
  80. package/lib/components/VField/_variables.scss +1 -1
  81. package/lib/components/VFileInput/VFileInput.css +34 -32
  82. package/lib/components/VFileInput/VFileInput.js +1 -1
  83. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  84. package/lib/components/VFooter/VFooter.css +38 -36
  85. package/lib/components/VForm/VForm.d.ts +111 -531
  86. package/lib/components/VForm/VForm.js +11 -1
  87. package/lib/components/VForm/VForm.js.map +1 -1
  88. package/lib/components/VGrid/VGrid.css +565 -592
  89. package/lib/components/VIcon/VIcon.css +52 -53
  90. package/lib/components/VImg/VImg.css +50 -51
  91. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +36 -37
  92. package/lib/components/VInput/VInput.css +136 -147
  93. package/lib/components/VItemGroup/VItemGroup.css +7 -5
  94. package/lib/components/VKbd/VKbd.css +33 -31
  95. package/lib/components/VLabel/VLabel.css +16 -15
  96. package/lib/components/VLayout/VLayout.css +10 -8
  97. package/lib/components/VLayout/VLayoutItem.css +8 -7
  98. package/lib/components/VList/VList.css +104 -108
  99. package/lib/components/VList/VList.sass +1 -1
  100. package/lib/components/VList/VListItem.css +442 -454
  101. package/lib/components/VList/VListItem.sass +2 -1
  102. package/lib/components/VLocaleProvider/VLocaleProvider.css +4 -2
  103. package/lib/components/VMain/VMain.css +32 -30
  104. package/lib/components/VMenu/VMenu.css +21 -19
  105. package/lib/components/VMessages/VMessages.css +17 -15
  106. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +102 -104
  107. package/lib/components/VNumberInput/VNumberInput.css +59 -57
  108. package/lib/components/VOtpInput/VOtpInput.css +56 -58
  109. package/lib/components/VOtpInput/VOtpInput.js +2 -2
  110. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  111. package/lib/components/VOverlay/VOverlay.css +61 -64
  112. package/lib/components/VOverlay/VOverlay.sass +14 -13
  113. package/lib/components/VPagination/VPagination.css +10 -8
  114. package/lib/components/VParallax/VParallax.css +8 -6
  115. package/lib/components/VProgressCircular/VProgressCircular.css +95 -101
  116. package/lib/components/VProgressLinear/VProgressLinear.css +209 -222
  117. package/lib/components/VRadioGroup/VRadioGroup.css +14 -12
  118. package/lib/components/VRating/VRating.css +52 -53
  119. package/lib/components/VResponsive/VResponsive.css +25 -26
  120. package/lib/components/VSelect/VSelect.css +59 -57
  121. package/lib/components/VSelect/VSelect.d.ts +18 -9
  122. package/lib/components/VSelect/VSelect.js +6 -3
  123. package/lib/components/VSelect/VSelect.js.map +1 -1
  124. package/lib/components/VSelectionControl/VSelectionControl.css +98 -100
  125. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +10 -8
  126. package/lib/components/VSheet/VSheet.css +38 -36
  127. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +225 -224
  128. package/lib/components/VSlideGroup/VSlideGroup.css +53 -55
  129. package/lib/components/VSlider/VSlider.css +53 -57
  130. package/lib/components/VSlider/VSliderThumb.css +142 -153
  131. package/lib/components/VSlider/VSliderTrack.css +155 -174
  132. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  133. package/lib/components/VSnackbar/VSnackbar.js +1 -1
  134. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  135. package/lib/components/VSpeedDial/VSpeedDial.css +43 -41
  136. package/lib/components/VStepper/VStepper.css +55 -56
  137. package/lib/components/VStepper/VStepperItem.css +112 -115
  138. package/lib/components/VSwitch/VSwitch.css +129 -139
  139. package/lib/components/VSystemBar/VSystemBar.css +45 -43
  140. package/lib/components/VTable/VTable.css +142 -143
  141. package/lib/components/VTable/VTable.sass +4 -2
  142. package/lib/components/VTabs/VTab.css +30 -29
  143. package/lib/components/VTabs/VTabs.css +59 -65
  144. package/lib/components/VTextField/VTextField.css +77 -85
  145. package/lib/components/VTextarea/VTextarea.css +48 -40
  146. package/lib/components/VTextarea/VTextarea.sass +4 -2
  147. package/lib/components/VThemeProvider/VThemeProvider.css +5 -3
  148. package/lib/components/VTimePicker/VTimePicker.css +4 -2
  149. package/lib/components/VTimePicker/VTimePickerClock.css +127 -130
  150. package/lib/components/VTimePicker/VTimePickerControls.css +103 -104
  151. package/lib/components/VTimeline/VTimeline.css +388 -427
  152. package/lib/components/VToolbar/VToolbar.css +137 -144
  153. package/lib/components/VTooltip/VTooltip.css +27 -23
  154. package/lib/components/VTooltip/VTooltip.sass +8 -6
  155. package/lib/components/VTreeview/VTreeview.js +1 -1
  156. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  157. package/lib/components/VTreeview/VTreeviewItem.css +83 -85
  158. package/lib/components/VVirtualScroll/VVirtualScroll.css +11 -9
  159. package/lib/components/VWindow/VWindow.css +88 -85
  160. package/lib/composables/theme.js +3 -3
  161. package/lib/composables/theme.js.map +1 -1
  162. package/lib/directives/ripple/VRipple.css +38 -36
  163. package/lib/entry-bundler.js +1 -1
  164. package/lib/entry-bundler.js.map +1 -1
  165. package/lib/framework.d.ts +45 -45
  166. package/lib/framework.js +1 -1
  167. package/lib/framework.js.map +1 -1
  168. package/lib/labs/VCalendar/VCalendar.css +219 -225
  169. package/lib/labs/VCalendar/VCalendarDay.css +40 -41
  170. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  171. package/lib/labs/VCalendar/VCalendarInterval.css +43 -42
  172. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +7 -5
  173. package/lib/labs/VCalendar/VCalendarMonthDay.css +61 -58
  174. package/lib/labs/VCalendar/VCalendarMonthDay.sass +3 -2
  175. package/lib/labs/VColorInput/VColorInput.css +5 -3
  176. package/lib/labs/VColorInput/VColorInput.js +1 -1
  177. package/lib/labs/VColorInput/VColorInput.js.map +1 -1
  178. package/lib/labs/VDateInput/VDateInput.js +1 -1
  179. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  180. package/lib/labs/VFileUpload/VFileUpload.css +74 -77
  181. package/lib/labs/VFileUpload/VFileUpload.js +1 -1
  182. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  183. package/lib/labs/VHotkey/VHotkey.css +242 -241
  184. package/lib/labs/VIconBtn/VIconBtn.css +162 -164
  185. package/lib/labs/VPicker/VPicker.css +62 -67
  186. package/lib/labs/VStepperVertical/VStepperVertical.js +4 -4
  187. package/lib/labs/VStepperVertical/VStepperVertical.js.map +1 -1
  188. package/lib/labs/VStepperVertical/VStepperVerticalItem.js +1 -1
  189. package/lib/labs/VStepperVertical/VStepperVerticalItem.js.map +1 -1
  190. package/lib/styles/elements/_global.sass +1 -1
  191. package/lib/styles/generic/_colors.scss +3 -3
  192. package/lib/styles/generic/_layers.scss +13 -1
  193. package/lib/styles/generic/_reset.scss +0 -1
  194. package/lib/styles/generic/_transitions.scss +32 -32
  195. package/lib/styles/main.css +14677 -16153
  196. package/lib/styles/settings/_utilities.scss +0 -5
  197. package/lib/styles/settings/_variables.scss +2 -3
  198. package/lib/styles/tools/_border.sass +4 -4
  199. package/lib/styles/tools/_display.sass +0 -10
  200. package/lib/styles/tools/_elevation.sass +2 -2
  201. package/lib/styles/tools/_index.sass +0 -2
  202. package/lib/styles/tools/_layer.scss +4 -2
  203. package/lib/styles/tools/_position.sass +2 -2
  204. package/lib/styles/tools/_rounded.sass +2 -2
  205. package/lib/styles/tools/_utilities.sass +1 -5
  206. package/lib/styles/utilities/_elevation.scss +1 -1
  207. package/package.json +1 -1
  208. package/lib/styles/tools/_bootable.sass +0 -3
  209. package/lib/styles/tools/_radius.sass +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"VOtpInput.js","names":["makeVFieldProps","VField","VOverlay","VProgressCircular","provideDefaults","makeDimensionProps","useDimension","makeFocusProps","useFocus","useIntersectionObserver","useLocale","useProxiedModel","useToggleScope","computed","effectScope","nextTick","ref","toRef","watch","watchEffect","filterInputAttrs","focusChild","genericComponent","pick","propsFactory","useRender","makeVOtpInputProps","autofocus","Boolean","divider","String","focusAll","label","type","default","length","Number","modelValue","undefined","placeholder","variant","VOtpInput","name","props","emits","finish","val","setup","_ref","attrs","emit","slots","dimensionStyles","isFocused","focus","blur","model","split","join","t","fields","Array","value","fill","focusIndex","contentRef","inputRef","current","intersectScope","run","intersectionRef","isIntersecting","v","stop","onInput","isValidNumber","array","slice","target","onKeydown","e","index","includes","key","preventDefault","requestAnimationFrame","select","onPaste","stopPropagation","clipboardText","clipboardData","getData","trim","finalIndex","reset","onFocus","onBlur","test","color","bgColor","baseColor","disabled","error","scoped","deep","rootAttrs","inputAttrs","_createElementVNode","_mergeProps","class","style","_normalizeStyle","map","_","i","_Fragment","_createVNode","loader","_normalizeClass","event","loading","some","input"],"sources":["../../../src/components/VOtpInput/VOtpInput.tsx"],"sourcesContent":["// Styles\nimport './VOtpInput.sass'\n\n// Components\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { VProgressCircular } from '@/components/VProgressCircular/VProgressCircular'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, effectScope, nextTick, ref, toRef, watch, watchEffect } from 'vue'\nimport { filterInputAttrs, focusChild, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VOtpInputSlots = {\n default: never\n loader: never\n}\n\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp',\n },\n length: {\n type: [Number, String],\n default: 6,\n },\n modelValue: {\n type: [Number, String],\n default: undefined,\n },\n placeholder: String,\n type: {\n type: String as PropType<'text' | 'password' | 'number'>,\n default: 'number',\n },\n\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...pick(makeVFieldProps({\n variant: 'outlined' as const,\n }), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n}, 'VOtpInput')\n\nexport const VOtpInput = genericComponent<VOtpInputSlots>()({\n name: 'VOtpInput',\n\n props: makeVOtpInputProps(),\n\n emits: {\n finish: (val: string) => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { dimensionStyles } = useDimension(props)\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n '',\n val => val == null ? [] : String(val).split(''),\n val => val.join('')\n )\n const { t } = useLocale()\n\n const length = computed(() => Number(props.length))\n const fields = computed(() => Array(length.value).fill(0))\n const focusIndex = ref(-1)\n const contentRef = ref<HTMLElement>()\n const inputRef = ref<HTMLInputElement[]>([])\n const current = computed(() => inputRef.value[focusIndex.value])\n\n useToggleScope(() => props.autofocus, () => {\n const intersectScope = effectScope()\n intersectScope.run(() => {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n watchEffect(() => {\n intersectionRef.value = inputRef.value[0]\n })\n watch(isIntersecting, v => {\n if (!v) return\n intersectionRef.value?.focus()\n intersectScope.stop()\n })\n })\n })\n\n function onInput () {\n // The maxlength attribute doesn't work for the number type input, so the text type is used.\n // The following logic simulates the behavior of a number input.\n if (isValidNumber(current.value.value)) {\n current.value.value = ''\n return\n }\n\n const array = model.value.slice()\n const value = current.value.value\n\n array[focusIndex.value] = value\n\n let target: any = null\n\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1\n } else if (focusIndex.value + 1 !== length.value) {\n target = 'next'\n }\n\n model.value = array\n\n if (target) focusChild(contentRef.value!, target)\n }\n\n function onKeydown (e: KeyboardEvent) {\n const array = model.value.slice()\n const index = focusIndex.value\n let target: 'next' | 'prev' | 'first' | 'last' | number | null = null\n\n if (![\n 'ArrowLeft',\n 'ArrowRight',\n 'Backspace',\n 'Delete',\n ].includes(e.key)) return\n\n e.preventDefault()\n\n if (e.key === 'ArrowLeft') {\n target = 'prev'\n } else if (e.key === 'ArrowRight') {\n target = 'next'\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = ''\n\n model.value = array\n\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev'\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index]?.select()\n })\n }\n }\n\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value!, target)\n }\n })\n }\n\n function onPaste (index: number, e: ClipboardEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n const clipboardText = e?.clipboardData?.getData('Text').trim().slice(0, length.value) ?? ''\n const finalIndex = clipboardText.length - 1 === -1 ? index : clipboardText.length - 1\n\n if (isValidNumber(clipboardText)) return\n\n model.value = clipboardText.split('')\n\n inputRef.value?.[finalIndex].focus()\n }\n\n function reset () {\n model.value = []\n }\n\n function onFocus (e: FocusEvent, index: number) {\n focus()\n\n focusIndex.value = index\n }\n\n function onBlur () {\n blur()\n\n focusIndex.value = -1\n }\n\n function isValidNumber (value: string) {\n return props.type === 'number' && /[^0-9]/g.test(value)\n }\n\n provideDefaults({\n VField: {\n color: toRef(() => props.color),\n bgColor: toRef(() => props.color),\n baseColor: toRef(() => props.baseColor),\n disabled: toRef(() => props.disabled),\n error: toRef(() => props.error),\n variant: toRef(() => props.variant),\n },\n }, { scoped: true })\n\n watch(model, val => {\n if (val.length === length.value) {\n focusIndex.value = length.value - 1\n emit('finish', val.join(''))\n }\n }, { deep: true })\n\n watch(focusIndex, val => {\n if (val < 0) return\n\n nextTick(() => {\n inputRef.value[val]?.select()\n })\n })\n\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n <div\n class={[\n 'v-otp-input',\n {\n 'v-otp-input--divided': !!props.divider,\n },\n props.class,\n ]}\n style={[\n props.style,\n ]}\n { ...rootAttrs }\n >\n <div\n ref={ contentRef }\n class=\"v-otp-input__content\"\n style={[\n dimensionStyles.value,\n ]}\n >\n { fields.value.map((_, i) => (\n <>\n { props.divider && i !== 0 && (\n <span class=\"v-otp-input__divider\">{ props.divider }</span>\n )}\n\n <VField\n focused={ (isFocused.value && props.focusAll) || focusIndex.value === i }\n key={ i }\n >\n {{\n ...slots,\n loader: undefined,\n default: () => {\n return (\n <input\n ref={ val => inputRef.value[i] = val as HTMLInputElement }\n aria-label={ t(props.label, i + 1) }\n autofocus={ i === 0 && props.autofocus }\n autocomplete=\"one-time-code\"\n class={[\n 'v-otp-input__field',\n ]}\n disabled={ props.disabled }\n inputmode={ props.type === 'number' ? 'numeric' : 'text' }\n min={ props.type === 'number' ? 0 : undefined }\n maxlength={ i === 0 ? length.value : '1' }\n placeholder={ props.placeholder }\n type={ props.type === 'number' ? 'text' : props.type }\n value={ model.value[i] }\n onInput={ onInput }\n onFocus={ e => onFocus(e, i) }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onPaste={ event => onPaste(i, event) }\n />\n )\n },\n }}\n </VField>\n </>\n ))}\n\n <input\n class=\"v-otp-input-input\"\n type=\"hidden\"\n { ...inputAttrs }\n value={ model.value.join('') }\n />\n\n <VOverlay\n contained\n contentClass=\"v-otp-input__loader\"\n modelValue={ !!props.loading }\n persistent\n >\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"24\"\n width=\"2\"\n />\n )}\n </VOverlay>\n\n { slots.default?.() }\n </div>\n </div>\n )\n })\n\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur())\n },\n focus: () => {\n inputRef.value?.[0].focus()\n },\n reset,\n isFocused,\n }\n },\n})\n\nexport type VOtpInput = InstanceType<typeof VOtpInput>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VOtpInput.js","names":["makeVFieldProps","VField","VOverlay","VProgressCircular","provideDefaults","makeDimensionProps","useDimension","makeFocusProps","useFocus","useIntersectionObserver","useLocale","useProxiedModel","useToggleScope","computed","effectScope","nextTick","ref","toRef","watch","watchEffect","filterInputAttrs","focusChild","genericComponent","pick","propsFactory","useRender","makeVOtpInputProps","autofocus","Boolean","divider","String","focusAll","label","type","default","length","Number","modelValue","undefined","placeholder","variant","VOtpInput","name","props","emits","finish","val","setup","_ref","attrs","emit","slots","dimensionStyles","isFocused","focus","blur","model","split","join","t","fields","Array","value","fill","focusIndex","contentRef","inputRef","current","intersectScope","run","intersectionRef","isIntersecting","v","stop","onInput","isValidNumber","array","slice","target","onKeydown","e","index","includes","key","preventDefault","requestAnimationFrame","select","onPaste","stopPropagation","clipboardText","clipboardData","getData","trim","finalIndex","reset","onFocus","onBlur","test","color","bgColor","baseColor","disabled","error","scoped","deep","rootAttrs","inputAttrs","_createElementVNode","_mergeProps","class","style","_normalizeStyle","map","_","i","_Fragment","_createVNode","loader","_normalizeClass","event","loading","some","input"],"sources":["../../../src/components/VOtpInput/VOtpInput.tsx"],"sourcesContent":["// Styles\nimport './VOtpInput.sass'\n\n// Components\nimport { makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { VProgressCircular } from '@/components/VProgressCircular/VProgressCircular'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, effectScope, nextTick, ref, toRef, watch, watchEffect } from 'vue'\nimport { filterInputAttrs, focusChild, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\nexport type VOtpInputSlots = {\n default: never\n loader: never\n}\n\nexport const makeVOtpInputProps = propsFactory({\n autofocus: Boolean,\n divider: String,\n focusAll: Boolean,\n label: {\n type: String,\n default: '$vuetify.input.otp',\n },\n length: {\n type: [Number, String],\n default: 6,\n },\n modelValue: {\n type: [Number, String],\n default: undefined,\n },\n placeholder: String,\n type: {\n type: String as PropType<'text' | 'password' | 'number'>,\n default: 'number',\n },\n\n ...makeDimensionProps(),\n ...makeFocusProps(),\n ...pick(makeVFieldProps({\n variant: 'outlined' as const,\n }), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n}, 'VOtpInput')\n\nexport const VOtpInput = genericComponent<VOtpInputSlots>()({\n name: 'VOtpInput',\n\n props: makeVOtpInputProps(),\n\n emits: {\n finish: (val: string) => true,\n 'update:focused': (val: boolean) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { dimensionStyles } = useDimension(props)\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n '',\n val => val == null ? [] : String(val).split(''),\n val => val.join('')\n )\n const { t } = useLocale()\n\n const length = computed(() => Number(props.length))\n const fields = computed(() => Array(length.value).fill(0))\n const focusIndex = ref(-1)\n const contentRef = ref<HTMLElement>()\n const inputRef = ref<HTMLInputElement[]>([])\n const current = computed(() => inputRef.value[focusIndex.value])\n\n useToggleScope(() => props.autofocus, () => {\n const intersectScope = effectScope()\n intersectScope.run(() => {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n watchEffect(() => {\n intersectionRef.value = inputRef.value[0]\n })\n watch(isIntersecting, v => {\n if (!v) return\n intersectionRef.value?.focus()\n intersectScope.stop()\n })\n })\n })\n\n function onInput () {\n // The maxlength attribute doesn't work for the number type input, so the text type is used.\n // The following logic simulates the behavior of a number input.\n if (isValidNumber(current.value.value)) {\n current.value.value = ''\n return\n }\n\n const array = model.value.slice()\n const value = current.value.value\n\n array[focusIndex.value] = value\n\n let target: any = null\n\n if (focusIndex.value > model.value.length) {\n target = model.value.length + 1\n } else if (focusIndex.value + 1 !== length.value) {\n target = 'next'\n }\n\n model.value = array\n\n if (target) focusChild(contentRef.value!, target)\n }\n\n function onKeydown (e: KeyboardEvent) {\n const array = model.value.slice()\n const index = focusIndex.value\n let target: 'next' | 'prev' | 'first' | 'last' | number | null = null\n\n if (![\n 'ArrowLeft',\n 'ArrowRight',\n 'Backspace',\n 'Delete',\n ].includes(e.key)) return\n\n e.preventDefault()\n\n if (e.key === 'ArrowLeft') {\n target = 'prev'\n } else if (e.key === 'ArrowRight') {\n target = 'next'\n } else if (['Backspace', 'Delete'].includes(e.key)) {\n array[focusIndex.value] = ''\n\n model.value = array\n\n if (focusIndex.value > 0 && e.key === 'Backspace') {\n target = 'prev'\n } else {\n requestAnimationFrame(() => {\n inputRef.value[index]?.select()\n })\n }\n }\n\n requestAnimationFrame(() => {\n if (target != null) {\n focusChild(contentRef.value!, target)\n }\n })\n }\n\n function onPaste (index: number, e: ClipboardEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n const clipboardText = e?.clipboardData?.getData('Text').trim().slice(0, length.value) ?? ''\n const finalIndex = clipboardText.length - 1 === -1 ? index : clipboardText.length - 1\n\n if (isValidNumber(clipboardText)) return\n\n model.value = clipboardText.split('')\n\n inputRef.value?.[finalIndex].focus()\n }\n\n function reset () {\n model.value = []\n }\n\n function onFocus (e: FocusEvent, index: number) {\n focus()\n\n focusIndex.value = index\n }\n\n function onBlur () {\n blur()\n\n focusIndex.value = -1\n }\n\n function isValidNumber (value: string) {\n return props.type === 'number' && /[^0-9]/g.test(value)\n }\n\n provideDefaults({\n VField: {\n color: toRef(() => props.color),\n bgColor: toRef(() => props.color),\n baseColor: toRef(() => props.baseColor),\n disabled: toRef(() => props.disabled),\n error: toRef(() => props.error),\n variant: toRef(() => props.variant),\n },\n }, { scoped: true })\n\n watch(model, val => {\n if (val.length === length.value) {\n focusIndex.value = length.value - 1\n emit('finish', val.join(''))\n }\n }, { deep: true })\n\n watch(focusIndex, val => {\n if (val < 0) return\n\n nextTick(() => {\n inputRef.value[val]?.select()\n })\n })\n\n useRender(() => {\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n <div\n class={[\n 'v-otp-input',\n {\n 'v-otp-input--divided': !!props.divider,\n },\n props.class,\n ]}\n style={[\n props.style,\n ]}\n { ...rootAttrs }\n >\n <div\n ref={ contentRef }\n class=\"v-otp-input__content\"\n style={[\n dimensionStyles.value,\n ]}\n >\n { fields.value.map((_, i) => (\n <>\n { props.divider && i !== 0 && (\n <span class=\"v-otp-input__divider\">{ props.divider }</span>\n )}\n\n <VField\n focused={ (isFocused.value && props.focusAll) || focusIndex.value === i }\n key={ i }\n >\n {{\n ...slots,\n loader: undefined,\n default: () => {\n return (\n <input\n ref={ val => inputRef.value[i] = val as HTMLInputElement }\n aria-label={ t(props.label, i + 1) }\n autofocus={ i === 0 && props.autofocus }\n autocomplete=\"one-time-code\"\n class={[\n 'v-otp-input__field',\n ]}\n disabled={ props.disabled }\n inputmode={ props.type === 'number' ? 'numeric' : 'text' }\n min={ props.type === 'number' ? 0 : undefined }\n maxlength={ i === 0 ? length.value : '1' }\n placeholder={ props.placeholder }\n type={ props.type === 'number' ? 'text' : props.type }\n value={ model.value[i] }\n onInput={ onInput }\n onFocus={ e => onFocus(e, i) }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onPaste={ event => onPaste(i, event) }\n />\n )\n },\n }}\n </VField>\n </>\n ))}\n\n <input\n class=\"v-otp-input-input\"\n type=\"hidden\"\n { ...inputAttrs }\n value={ model.value.join('') }\n />\n\n <VOverlay\n contained\n content-class=\"v-otp-input__loader\"\n model-value={ !!props.loading }\n persistent\n >\n { slots.loader?.() ?? (\n <VProgressCircular\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n size=\"24\"\n width=\"2\"\n />\n )}\n </VOverlay>\n\n { slots.default?.() }\n </div>\n </div>\n )\n })\n\n return {\n blur: () => {\n inputRef.value?.some(input => input.blur())\n },\n focus: () => {\n inputRef.value?.[0].focus()\n },\n reset,\n isFocused,\n }\n },\n})\n\nexport type VOtpInput = InstanceType<typeof VOtpInput>\n"],"mappings":"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","ignoreList":[]}
@@ -1,65 +1,62 @@
1
- .v-overlay-container {
2
- contain: layout;
3
- left: 0;
4
- pointer-events: none;
5
- position: absolute;
6
- top: 0;
7
- display: contents;
8
- }
9
-
10
- .v-overlay-scroll-blocked {
11
- padding-inline-end: var(--v-scrollbar-offset);
12
- }
13
- .v-overlay-scroll-blocked:not(html) {
14
- overflow-y: hidden !important;
15
- }
16
- html.v-overlay-scroll-blocked {
17
- position: fixed;
18
- top: var(--v-body-scroll-y);
19
- left: var(--v-body-scroll-x);
20
- width: 100%;
21
- height: 100%;
22
- }
23
-
24
- .v-overlay {
25
- --v-overlay-opacity: 0.32;
26
- border-radius: inherit;
27
- display: flex;
28
- left: 0;
29
- pointer-events: none;
30
- position: fixed;
31
- top: 0;
32
- bottom: 0;
33
- right: 0;
34
- }
35
-
36
- .v-overlay__content {
37
- outline: none;
38
- position: absolute;
39
- pointer-events: auto;
40
- contain: layout;
41
- }
42
-
43
- .v-overlay__scrim {
44
- pointer-events: auto;
45
- background: #000;
46
- border-radius: inherit;
47
- bottom: 0;
48
- left: 0;
49
- opacity: var(--v-overlay-opacity);
50
- position: fixed;
51
- right: 0;
52
- top: 0;
53
- }
54
-
55
- .v-overlay--absolute {
56
- position: absolute;
57
- }
58
-
59
- .v-overlay--contained .v-overlay__scrim {
60
- position: absolute;
61
- }
62
-
63
- .v-overlay--scroll-blocked {
64
- padding-inline-end: var(--v-scrollbar-offset);
1
+ @layer vuetify.components {
2
+ .v-overlay-container {
3
+ contain: layout;
4
+ left: 0;
5
+ pointer-events: none;
6
+ position: absolute;
7
+ top: 0;
8
+ display: contents;
9
+ }
10
+ .v-overlay {
11
+ --v-overlay-opacity: 0.32;
12
+ border-radius: inherit;
13
+ display: flex;
14
+ left: 0;
15
+ pointer-events: none;
16
+ position: fixed;
17
+ top: 0;
18
+ bottom: 0;
19
+ right: 0;
20
+ }
21
+ .v-overlay__content {
22
+ outline: none;
23
+ position: absolute;
24
+ pointer-events: auto;
25
+ contain: layout;
26
+ }
27
+ .v-overlay__scrim {
28
+ pointer-events: auto;
29
+ background: #000;
30
+ border-radius: inherit;
31
+ bottom: 0;
32
+ left: 0;
33
+ opacity: var(--v-overlay-opacity);
34
+ position: fixed;
35
+ right: 0;
36
+ top: 0;
37
+ }
38
+ .v-overlay--absolute {
39
+ position: absolute;
40
+ }
41
+ .v-overlay--contained .v-overlay__scrim {
42
+ position: absolute;
43
+ }
44
+ .v-overlay--scroll-blocked {
45
+ padding-inline-end: var(--v-scrollbar-offset);
46
+ }
47
+ }
48
+ @layer vuetify.trumps {
49
+ .v-overlay-scroll-blocked {
50
+ padding-inline-end: var(--v-scrollbar-offset);
51
+ }
52
+ .v-overlay-scroll-blocked:not(html) {
53
+ overflow-y: hidden;
54
+ }
55
+ html.v-overlay-scroll-blocked {
56
+ position: fixed;
57
+ top: var(--v-body-scroll-y);
58
+ left: var(--v-body-scroll-x);
59
+ width: 100%;
60
+ height: 100%;
61
+ }
65
62
  }
@@ -12,19 +12,6 @@
12
12
  top: 0
13
13
  display: contents
14
14
 
15
- .v-overlay-scroll-blocked
16
- padding-inline-end: var(--v-scrollbar-offset)
17
-
18
- &:not(html)
19
- overflow-y: hidden !important
20
-
21
- @at-root #{selector.append(html, &)}
22
- position: fixed
23
- top: var(--v-body-scroll-y)
24
- left: var(--v-body-scroll-x)
25
- width: 100%
26
- height: 100%
27
-
28
15
  .v-overlay
29
16
  --v-overlay-opacity: #{$overlay-opacity}
30
17
  border-radius: inherit
@@ -63,3 +50,17 @@
63
50
 
64
51
  .v-overlay--scroll-blocked
65
52
  padding-inline-end: var(--v-scrollbar-offset)
53
+
54
+ @include tools.layer('trumps')
55
+ .v-overlay-scroll-blocked
56
+ padding-inline-end: var(--v-scrollbar-offset)
57
+
58
+ &:not(html)
59
+ overflow-y: hidden
60
+
61
+ @at-root #{selector.append(html, &)}
62
+ position: fixed
63
+ top: var(--v-body-scroll-y)
64
+ left: var(--v-body-scroll-x)
65
+ width: 100%
66
+ height: 100%
@@ -1,9 +1,11 @@
1
- .v-pagination__list {
2
- display: inline-flex;
3
- list-style-type: none;
4
- justify-content: center;
5
- width: 100%;
6
- }
7
- .v-pagination__item, .v-pagination__first, .v-pagination__prev, .v-pagination__next, .v-pagination__last {
8
- margin: 0.3rem;
1
+ @layer vuetify.components {
2
+ .v-pagination__list {
3
+ display: inline-flex;
4
+ list-style-type: none;
5
+ justify-content: center;
6
+ width: 100%;
7
+ }
8
+ .v-pagination__item, .v-pagination__first, .v-pagination__prev, .v-pagination__next, .v-pagination__last {
9
+ margin: 0.3rem;
10
+ }
9
11
  }
@@ -1,7 +1,9 @@
1
- .v-parallax {
2
- position: relative;
3
- overflow: hidden;
4
- }
5
- .v-parallax--active > .v-img__img {
6
- will-change: transform;
1
+ @layer vuetify.components {
2
+ .v-parallax {
3
+ position: relative;
4
+ overflow: hidden;
5
+ }
6
+ .v-parallax--active > .v-img__img {
7
+ will-change: transform;
8
+ }
7
9
  }
@@ -1,103 +1,97 @@
1
- .v-progress-circular {
2
- align-items: center;
3
- display: inline-flex;
4
- justify-content: center;
5
- position: relative;
6
- vertical-align: middle;
7
- }
8
- .v-progress-circular > svg {
9
- width: 100%;
10
- height: 100%;
11
- margin: auto;
12
- position: absolute;
13
- top: 0;
14
- bottom: 0;
15
- left: 0;
16
- right: 0;
17
- z-index: 0;
18
- }
19
-
20
- .v-progress-circular__content {
21
- align-items: center;
22
- display: flex;
23
- justify-content: center;
24
- }
25
-
26
- .v-progress-circular__underlay {
27
- color: rgba(var(--v-border-color), var(--v-border-opacity));
28
- stroke: currentColor;
29
- z-index: 1;
30
- }
31
-
32
- .v-progress-circular__overlay {
33
- stroke: currentColor;
34
- transition: all 0.2s ease-in-out, stroke-width 0s;
35
- z-index: 2;
36
- }
37
-
38
- .v-progress-circular--size-x-small {
39
- height: 16px;
40
- width: 16px;
41
- }
42
- .v-progress-circular--size-small {
43
- height: 24px;
44
- width: 24px;
45
- }
46
- .v-progress-circular--size-default {
47
- height: 32px;
48
- width: 32px;
49
- }
50
- .v-progress-circular--size-large {
51
- height: 48px;
52
- width: 48px;
53
- }
54
- .v-progress-circular--size-x-large {
55
- height: 64px;
56
- width: 64px;
57
- }
58
-
59
- .v-progress-circular--indeterminate > svg {
60
- animation: progress-circular-rotate 1.4s linear infinite;
61
- transform-origin: center center;
62
- transition: all 0.2s ease-in-out;
63
- }
64
- .v-progress-circular--indeterminate .v-progress-circular__overlay {
65
- animation: progress-circular-dash 1.4s ease-in-out infinite, progress-circular-rotate 1.4s linear infinite;
66
- stroke-dasharray: 25, 200;
67
- stroke-dashoffset: 0;
68
- stroke-linecap: round;
69
- transform-origin: center center;
70
- transform: rotate(-90deg);
71
- }
72
-
73
- .v-progress-circular--disable-shrink > svg {
74
- animation-duration: 0.7s;
75
- }
76
- .v-progress-circular--disable-shrink .v-progress-circular__overlay {
77
- animation: none;
78
- }
79
-
80
- .v-progress-circular--indeterminate:not(.v-progress-circular--visible) > svg,
81
- .v-progress-circular--indeterminate:not(.v-progress-circular--visible) .v-progress-circular__overlay {
82
- animation-play-state: paused !important;
83
- }
84
-
85
- @keyframes progress-circular-dash {
86
- 0% {
87
- stroke-dasharray: 1, 200;
88
- stroke-dashoffset: 0px;
89
- }
90
- 50% {
91
- stroke-dasharray: 100, 200;
92
- stroke-dashoffset: -15px;
93
- }
94
- 100% {
95
- stroke-dasharray: 100, 200;
96
- stroke-dashoffset: -124px;
97
- }
98
- }
99
- @keyframes progress-circular-rotate {
100
- 100% {
101
- transform: rotate(270deg);
1
+ @layer vuetify.components {
2
+ .v-progress-circular {
3
+ align-items: center;
4
+ display: inline-flex;
5
+ justify-content: center;
6
+ position: relative;
7
+ vertical-align: middle;
8
+ }
9
+ .v-progress-circular > svg {
10
+ width: 100%;
11
+ height: 100%;
12
+ margin: auto;
13
+ position: absolute;
14
+ top: 0;
15
+ bottom: 0;
16
+ left: 0;
17
+ right: 0;
18
+ z-index: 0;
19
+ }
20
+ .v-progress-circular__content {
21
+ align-items: center;
22
+ display: flex;
23
+ justify-content: center;
24
+ }
25
+ .v-progress-circular__underlay {
26
+ color: rgba(var(--v-border-color), var(--v-border-opacity));
27
+ stroke: currentColor;
28
+ z-index: 1;
29
+ }
30
+ .v-progress-circular__overlay {
31
+ stroke: currentColor;
32
+ transition: all 0.2s ease-in-out, stroke-width 0s;
33
+ z-index: 2;
34
+ }
35
+ .v-progress-circular--size-x-small {
36
+ height: 16px;
37
+ width: 16px;
38
+ }
39
+ .v-progress-circular--size-small {
40
+ height: 24px;
41
+ width: 24px;
42
+ }
43
+ .v-progress-circular--size-default {
44
+ height: 32px;
45
+ width: 32px;
46
+ }
47
+ .v-progress-circular--size-large {
48
+ height: 48px;
49
+ width: 48px;
50
+ }
51
+ .v-progress-circular--size-x-large {
52
+ height: 64px;
53
+ width: 64px;
54
+ }
55
+ .v-progress-circular--indeterminate > svg {
56
+ animation: progress-circular-rotate 1.4s linear infinite;
57
+ transform-origin: center center;
58
+ transition: all 0.2s ease-in-out;
59
+ }
60
+ .v-progress-circular--indeterminate .v-progress-circular__overlay {
61
+ animation: progress-circular-dash 1.4s ease-in-out infinite, progress-circular-rotate 1.4s linear infinite;
62
+ stroke-dasharray: 25, 200;
63
+ stroke-dashoffset: 0;
64
+ stroke-linecap: round;
65
+ transform-origin: center center;
66
+ transform: rotate(-90deg);
67
+ }
68
+ .v-progress-circular--disable-shrink > svg {
69
+ animation-duration: 0.7s;
70
+ }
71
+ .v-progress-circular--disable-shrink .v-progress-circular__overlay {
72
+ animation: none;
73
+ }
74
+ .v-progress-circular--indeterminate:not(.v-progress-circular--visible) > svg,
75
+ .v-progress-circular--indeterminate:not(.v-progress-circular--visible) .v-progress-circular__overlay {
76
+ animation-play-state: paused !important;
77
+ }
78
+ @keyframes progress-circular-dash {
79
+ 0% {
80
+ stroke-dasharray: 1, 200;
81
+ stroke-dashoffset: 0px;
82
+ }
83
+ 50% {
84
+ stroke-dasharray: 100, 200;
85
+ stroke-dashoffset: -15px;
86
+ }
87
+ 100% {
88
+ stroke-dasharray: 100, 200;
89
+ stroke-dashoffset: -124px;
90
+ }
91
+ }
92
+ @keyframes progress-circular-rotate {
93
+ 100% {
94
+ transform: rotate(270deg);
95
+ }
102
96
  }
103
97
  }