@vuetify/nightly 3.8.10-dev.2025-06-18 → 3.8.10-dev.2025-06-19
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.
- package/CHANGELOG.md +14 -4
- package/dist/_component-variables-labs.sass +1 -3
- package/dist/_component-variables.sass +2 -0
- package/dist/json/attributes.json +3889 -3885
- package/dist/json/importMap-labs.json +32 -56
- package/dist/json/importMap.json +180 -156
- package/dist/json/tags.json +7 -6
- package/dist/json/web-types.json +7006 -6996
- package/dist/vuetify-labs.cjs +3071 -3065
- package/dist/vuetify-labs.css +5691 -5661
- package/dist/vuetify-labs.d.ts +8142 -4681
- package/dist/vuetify-labs.esm.js +3071 -3065
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +3071 -3065
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +1218 -160
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5014 -4715
- package/dist/vuetify.d.ts +6675 -1051
- package/dist/vuetify.esm.js +1218 -160
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1218 -160
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1224 -1143
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +18 -18
- package/lib/components/VCarousel/VCarousel.d.ts +11 -1
- package/lib/components/VCheckbox/VCheckbox.d.ts +696 -3
- package/lib/components/VCheckbox/VCheckbox.js +5 -2
- package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +18 -18
- package/lib/components/VFileInput/VFileInput.d.ts +6 -6
- package/lib/components/VList/VListItem.d.ts +3 -3
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +18 -18
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +696 -3
- package/lib/components/VRadioGroup/VRadioGroup.js +5 -2
- package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +696 -3
- package/lib/components/VRangeSlider/VRangeSlider.js +2 -1
- package/lib/components/VRangeSlider/VRangeSlider.js.map +1 -1
- package/lib/components/VSelect/VSelect.d.ts +18 -18
- package/lib/components/VSlider/VSlider.d.ts +696 -3
- package/lib/components/VSlider/VSlider.js +4 -1
- package/lib/components/VSlider/VSlider.js.map +1 -1
- package/lib/components/VStepper/VStepperWindow.d.ts +10 -0
- package/lib/components/VSwitch/VSwitch.d.ts +696 -3
- package/lib/components/VSwitch/VSwitch.js +4 -1
- package/lib/components/VSwitch/VSwitch.js.map +1 -1
- package/lib/components/VTabs/VTabsWindow.d.ts +10 -0
- package/lib/components/VTextField/VTextField.d.ts +6 -6
- package/lib/components/VTextarea/VTextarea.d.ts +6 -6
- package/lib/{labs → components}/VTimePicker/VTimePicker.d.ts +1 -14
- package/lib/{labs → components}/VTimePicker/VTimePicker.js +2 -4
- package/lib/components/VTimePicker/VTimePicker.js.map +1 -0
- package/lib/components/VTimePicker/VTimePickerClock.js.map +1 -0
- package/lib/{labs → components}/VTimePicker/VTimePickerControls.d.ts +0 -26
- package/lib/{labs → components}/VTimePicker/VTimePickerControls.js +3 -7
- package/lib/components/VTimePicker/VTimePickerControls.js.map +1 -0
- package/lib/{labs → components}/VTimePicker/_variables.scss +1 -1
- package/lib/components/VTimePicker/index.js.map +1 -0
- package/lib/components/VTimePicker/shared.js.map +1 -0
- package/lib/components/VTimePicker/util.js.map +1 -0
- package/lib/{labs → components}/VTreeview/VTreeview.d.ts +10 -10
- package/lib/{labs → components}/VTreeview/VTreeview.js +1 -1
- package/lib/components/VTreeview/VTreeview.js.map +1 -0
- package/lib/{labs → components}/VTreeview/VTreeviewChildren.d.ts +22 -22
- package/lib/{labs → components}/VTreeview/VTreeviewChildren.js +1 -1
- package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -0
- package/lib/{labs → components}/VTreeview/VTreeviewGroup.js +2 -2
- package/lib/components/VTreeview/VTreeviewGroup.js.map +1 -0
- package/lib/{labs → components}/VTreeview/VTreeviewItem.d.ts +58 -58
- package/lib/{labs → components}/VTreeview/VTreeviewItem.js +4 -4
- package/lib/components/VTreeview/VTreeviewItem.js.map +1 -0
- package/lib/components/VTreeview/index.js.map +1 -0
- package/lib/components/VTreeview/shared.js.map +1 -0
- package/lib/components/VWindow/VWindow.css +15 -0
- package/lib/components/VWindow/VWindow.d.ts +10 -0
- package/lib/components/VWindow/VWindow.js +8 -2
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/components/VWindow/VWindow.sass +17 -0
- package/lib/components/VWindow/_variables.scss +1 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +4 -2
- package/lib/components/index.js.map +1 -1
- package/lib/composables/forwardRefs.d.ts +2 -2
- package/lib/composables/forwardRefs.js.map +1 -1
- package/lib/composables/icons.d.ts +1 -1
- package/lib/composables/icons.js.map +1 -1
- package/lib/composables/mask.d.ts +1 -1
- package/lib/composables/mask.js.map +1 -1
- package/lib/composables/theme.d.ts +1 -1
- package/lib/composables/theme.js +2 -4
- package/lib/composables/theme.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +68 -68
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +24 -24
- package/lib/labs/VCalendar/VCalendar.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +18 -18
- package/lib/labs/VMaskInput/VMaskInput.d.ts +18 -18
- package/lib/labs/components.d.ts +0 -2
- package/lib/labs/components.js +0 -2
- package/lib/labs/components.js.map +1 -1
- package/lib/styles/main.css +15 -0
- package/lib/styles/utilities/_index.sass +1 -0
- package/lib/styles/utilities/_pointer-events.sass +16 -0
- package/lib/util/helpers.d.ts +1 -0
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
- package/lib/labs/VTimePicker/VTimePicker.js.map +0 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +0 -1
- package/lib/labs/VTimePicker/VTimePickerControls.js.map +0 -1
- package/lib/labs/VTimePicker/index.js.map +0 -1
- package/lib/labs/VTimePicker/shared.js.map +0 -1
- package/lib/labs/VTimePicker/util.js.map +0 -1
- package/lib/labs/VTreeview/VTreeview.js.map +0 -1
- package/lib/labs/VTreeview/VTreeviewChildren.js.map +0 -1
- package/lib/labs/VTreeview/VTreeviewGroup.js.map +0 -1
- package/lib/labs/VTreeview/VTreeviewItem.js.map +0 -1
- package/lib/labs/VTreeview/index.js.map +0 -1
- package/lib/labs/VTreeview/shared.js.map +0 -1
- /package/lib/{labs → components}/VTimePicker/VTimePicker.css +0 -0
- /package/lib/{labs → components}/VTimePicker/VTimePicker.sass +0 -0
- /package/lib/{labs → components}/VTimePicker/VTimePickerClock.css +0 -0
- /package/lib/{labs → components}/VTimePicker/VTimePickerClock.d.ts +0 -0
- /package/lib/{labs → components}/VTimePicker/VTimePickerClock.js +0 -0
- /package/lib/{labs → components}/VTimePicker/VTimePickerClock.sass +0 -0
- /package/lib/{labs → components}/VTimePicker/VTimePickerControls.css +0 -0
- /package/lib/{labs → components}/VTimePicker/VTimePickerControls.sass +0 -0
- /package/lib/{labs → components}/VTimePicker/index.d.ts +0 -0
- /package/lib/{labs → components}/VTimePicker/index.js +0 -0
- /package/lib/{labs → components}/VTimePicker/shared.d.ts +0 -0
- /package/lib/{labs → components}/VTimePicker/shared.js +0 -0
- /package/lib/{labs → components}/VTimePicker/util.d.ts +0 -0
- /package/lib/{labs → components}/VTimePicker/util.js +0 -0
- /package/lib/{labs → components}/VTreeview/VTreeviewGroup.d.ts +0 -0
- /package/lib/{labs → components}/VTreeview/VTreeviewItem.css +0 -0
- /package/lib/{labs → components}/VTreeview/VTreeviewItem.sass +0 -0
- /package/lib/{labs → components}/VTreeview/_variables.scss +0 -0
- /package/lib/{labs → components}/VTreeview/index.d.ts +0 -0
- /package/lib/{labs → components}/VTreeview/index.js +0 -0
- /package/lib/{labs → components}/VTreeview/shared.d.ts +0 -0
- /package/lib/{labs → components}/VTreeview/shared.js +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"icons.js","names":["aliases","mdi","computed","inject","toValue","consoleWarn","defineComponent","genericComponent","mergeDeep","propsFactory","IconValue","String","Function","Object","Array","IconSymbol","Symbol","for","makeIconProps","icon","type","tag","required","VComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","default","VSvgIcon","inheritAttrs","_ref2","attrs","_mergeProps","_createElementVNode","isArray","map","path","VLigatureIcon","VClassIcon","_normalizeClass","genDefaults","svg","component","class","createIcons","options","sets","defaultSet","vuetify","useIcon","icons","Error","iconData","iconAlias","trim","startsWith","slice","iconSetName","keys","find","setName","iconName","length","iconSet"],"sources":["../../src/composables/icons.tsx"],"sourcesContent":["// Icons\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { computed, inject, toValue } from 'vue'\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, MaybeRefOrGetter, PropType } from 'vue'\nimport type { JSXComponent } from '@/util'\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | JSXComponent\nexport const IconValue = [String, Function, Object, Array] as PropType<IconValue>\n\nexport interface IconAliases {\n [name: string]: IconValue\n collapse: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sortAsc: IconValue\n sortDesc: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n calendar: IconValue\n treeviewCollapse: IconValue\n treeviewExpand: IconValue\n eyeDropper: IconValue\n upload: IconValue\n color: IconValue\n}\n\nexport interface IconProps {\n tag: string | JSXComponent\n icon?: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent<IconProps>\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type InternalIconOptions = {\n defaultSet: string\n aliases: Partial<IconAliases>\n sets: Record<string, IconSet>\n}\n\nexport type IconOptions = Partial<InternalIconOptions>\n\ntype IconInstance = {\n component: IconComponent\n icon?: IconValue\n}\n\nexport const IconSymbol: InjectionKey<InternalIconOptions> = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: [String, Object, Function] as PropType<string | JSXComponent>,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n\n props: makeIconProps(),\n\n setup (props, { slots }) {\n return () => {\n const Icon = props.icon as JSXComponent\n return (\n <props.tag>\n { props.icon ? <Icon /> : slots.default?.() }\n </props.tag>\n )\n }\n },\n})\nexport type VComponentIcon = InstanceType<typeof VComponentIcon>\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeIconProps(),\n\n setup (props, { attrs }) {\n return () => {\n return (\n <props.tag { ...attrs } style={ null }>\n <svg\n class=\"v-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n { Array.isArray(props.icon)\n ? props.icon.map(path => (\n Array.isArray(path)\n ? <path d={ path[0] as string } fill-opacity={ path[1] }></path>\n : <path d={ path as string }></path>\n ))\n : <path d={ props.icon as string }></path>\n }\n </svg>\n </props.tag>\n )\n }\n },\n})\nexport type VSvgIcon = InstanceType<typeof VSvgIcon>\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag>{ props.icon }</props.tag>\n }\n },\n})\nexport type VLigatureIcon = InstanceType<typeof VLigatureIcon>\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag class={ props.icon }></props.tag>\n }\n },\n})\nexport type VClassIcon = InstanceType<typeof VClassIcon>\n\nfunction genDefaults (): Record<string, IconSet> {\n return {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n }\n}\n\n// Composables\nexport function createIcons (options?: IconOptions) {\n const sets = genDefaults()\n const defaultSet = options?.defaultSet ?? 'mdi'\n\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi\n }\n\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: [\n 'M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z',\n ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6],\n ],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': [\n 'm6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z',\n ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6],\n ],\n /* eslint-enable max-len */\n },\n }, options) as InternalIconOptions\n}\n\nexport const useIcon = (props: MaybeRefOrGetter<IconValue | undefined>) => {\n const icons = inject(IconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData = computed<IconInstance>(() => {\n const iconAlias = toValue(props)\n\n if (!iconAlias) return { component: VComponentIcon }\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof icon === 'string') {\n icon = icon.trim()\n\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)]\n }\n }\n\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon,\n }\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const iconSetName = Object.keys(icons.sets).find(\n setName => typeof icon === 'string' && icon.startsWith(`${setName}:`)\n )\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet]\n\n return {\n component: iconSet.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"icons.js","names":["aliases","mdi","computed","inject","toValue","consoleWarn","defineComponent","genericComponent","mergeDeep","propsFactory","IconValue","String","Function","Object","Array","IconSymbol","Symbol","for","makeIconProps","icon","type","tag","required","VComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","default","VSvgIcon","inheritAttrs","_ref2","attrs","_mergeProps","_createElementVNode","isArray","map","path","VLigatureIcon","VClassIcon","_normalizeClass","genDefaults","svg","component","class","createIcons","options","sets","defaultSet","vuetify","useIcon","icons","Error","iconData","iconAlias","trim","startsWith","slice","iconSetName","keys","find","setName","iconName","length","iconSet"],"sources":["../../src/composables/icons.tsx"],"sourcesContent":["// Icons\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { computed, inject, toValue } from 'vue'\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, MaybeRefOrGetter, PropType } from 'vue'\nimport type { JSXComponent } from '@/util'\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | JSXComponent\nexport const IconValue = [String, Function, Object, Array] as PropType<IconValue>\n\nexport interface IconAliases {\n [name: string]: IconValue\n collapse: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sortAsc: IconValue\n sortDesc: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n calendar: IconValue\n treeviewCollapse: IconValue\n treeviewExpand: IconValue\n eyeDropper: IconValue\n upload: IconValue\n color: IconValue\n}\n\nexport interface IconProps {\n tag: string | JSXComponent\n icon?: IconValue\n disabled?: boolean\n}\n\ntype IconComponent = JSXComponent<IconProps>\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type InternalIconOptions = {\n defaultSet: string\n aliases: Partial<IconAliases>\n sets: Record<string, IconSet>\n}\n\nexport type IconOptions = Partial<InternalIconOptions>\n\ntype IconInstance = {\n component: IconComponent\n icon?: IconValue\n}\n\nexport const IconSymbol: InjectionKey<InternalIconOptions> = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: [String, Object, Function] as PropType<string | JSXComponent>,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n\n props: makeIconProps(),\n\n setup (props, { slots }) {\n return () => {\n const Icon = props.icon as JSXComponent\n return (\n <props.tag>\n { props.icon ? <Icon /> : slots.default?.() }\n </props.tag>\n )\n }\n },\n})\nexport type VComponentIcon = InstanceType<typeof VComponentIcon>\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeIconProps(),\n\n setup (props, { attrs }) {\n return () => {\n return (\n <props.tag { ...attrs } style={ null }>\n <svg\n class=\"v-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n { Array.isArray(props.icon)\n ? props.icon.map(path => (\n Array.isArray(path)\n ? <path d={ path[0] as string } fill-opacity={ path[1] }></path>\n : <path d={ path as string }></path>\n ))\n : <path d={ props.icon as string }></path>\n }\n </svg>\n </props.tag>\n )\n }\n },\n})\nexport type VSvgIcon = InstanceType<typeof VSvgIcon>\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag>{ props.icon }</props.tag>\n }\n },\n})\nexport type VLigatureIcon = InstanceType<typeof VLigatureIcon>\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag class={ props.icon }></props.tag>\n }\n },\n})\nexport type VClassIcon = InstanceType<typeof VClassIcon>\n\nfunction genDefaults (): Record<string, IconSet> {\n return {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n }\n}\n\n// Composables\nexport function createIcons (options?: IconOptions) {\n const sets = genDefaults()\n const defaultSet = options?.defaultSet ?? 'mdi'\n\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi\n }\n\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: [\n 'M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z',\n ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6],\n ],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': [\n 'm6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z',\n ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6],\n ],\n /* eslint-enable max-len */\n },\n }, options) as InternalIconOptions\n}\n\nexport const useIcon = (props: MaybeRefOrGetter<IconValue | undefined>) => {\n const icons = inject(IconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData = computed<IconInstance>(() => {\n const iconAlias = toValue(props)\n\n if (!iconAlias) return { component: VComponentIcon }\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof icon === 'string') {\n icon = icon.trim()\n\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)]\n }\n }\n\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon,\n }\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const iconSetName = Object.keys(icons.sets).find(\n setName => typeof icon === 'string' && icon.startsWith(`${setName}:`)\n )\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet]\n\n return {\n component: iconSet.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mask.js","names":["computed","shallowRef","isObject","propsFactory","makeMaskProps","mask","String","Object","returnMaskedValue","Boolean","defaultDelimiters","presets","date","phone","social","time","isMaskDelimiter","char","test","defaultTokens","pattern","A","convert","v","toUpperCase","a","toLowerCase","N","n","X","useMask","props","inputRef","tokens","selection","lazySelection","isMask","value","maskValidates","item","maskText","text","trimmedText","trim","replace","length","textIndex","maskIndex","newText","mchar","tchar","unmaskText","setCaretPosition","newSelection","setSelectionRange","resetSelections","selectionEnd","index","updateRange","newValue"],"sources":["../../src/composables/mask.ts"],"sourcesContent":["// Utilities\nimport { computed, shallowRef } from 'vue'\nimport { isObject, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\n\nexport interface MaskProps {\n mask: string | MaskOptions | undefined\n returnMaskedValue?: Boolean\n}\n\nexport interface MaskOptions {\n mask: string\n tokens: Record<string, MaskItem>\n}\n\nexport const makeMaskProps = propsFactory({\n mask: [String, Object] as PropType<string | MaskOptions>,\n returnMaskedValue: Boolean,\n}, 'mask')\n\nexport type MaskItem = {\n convert?: (char: string) => string\n} & ({\n pattern?: never\n test: (char: string) => boolean\n} | {\n pattern: RegExp\n test?: never\n})\n\nexport const defaultDelimiters = /[-!$%^&*()_+|~=`{}[\\]:\";'<>?,./\\\\ ]/\n\nconst presets: Record<string, string> = {\n 'credit-card': '#### - #### - #### - ####',\n date: '##/##/####',\n 'date-time': '##/##/#### ##:##',\n 'iso-date': '####-##-##',\n 'iso-date-time': '####-##-## ##:##',\n phone: '(###) ### - ####',\n social: '###-##-####',\n time: '##:##',\n 'time-with-seconds': '##:##:##',\n}\n\nexport function isMaskDelimiter (char: string): boolean {\n return char ? defaultDelimiters.test(char) : false\n}\n\nconst defaultTokens: Record<string, MaskItem> = {\n '#': {\n pattern: /[0-9]/,\n },\n A: {\n pattern: /[A-Z]/i,\n convert: v => v.toUpperCase(),\n },\n a: {\n pattern: /[a-z]/i,\n convert: v => v.toLowerCase(),\n },\n N: {\n pattern: /[0-9A-Z]/i,\n convert: v => v.toUpperCase(),\n },\n n: {\n pattern: /[0-9a-z]/i,\n convert: v => v.toLowerCase(),\n },\n X: {\n pattern: defaultDelimiters,\n },\n}\n\nexport function useMask (props: MaskProps, inputRef: Ref<HTMLInputElement | undefined>) {\n const mask = computed(() => {\n if (typeof props.mask === 'string') {\n if (props.mask in presets) return presets[props.mask]\n return props.mask\n }\n return props.mask?.mask ?? ''\n })\n const tokens = computed(() => {\n return {\n ...defaultTokens,\n ...(isObject(props.mask) ? props.mask.tokens : null),\n }\n })\n const selection = shallowRef(0)\n const lazySelection = shallowRef(0)\n\n function isMask (char: string): boolean {\n return char in tokens.value\n }\n\n function maskValidates (mask: string, char: string): boolean {\n if (char == null || !isMask(mask)) return false\n const item = tokens.value[mask]\n if (item.pattern) return item.pattern.test(char)\n return item.test(char)\n }\n\n function convert (mask: string, char: string): string {\n const item = tokens.value[mask]\n return item.convert ? item.convert(char) : char\n }\n\n function maskText (text: string | null | undefined): string {\n const trimmedText = text?.trim().replace(/\\s+/g, ' ')\n\n if (trimmedText == null) return ''\n\n if (!mask.value.length || !trimmedText.length) return trimmedText\n\n let textIndex = 0\n let maskIndex = 0\n let newText = ''\n\n while (maskIndex < mask.value.length) {\n const mchar = mask.value[maskIndex]\n const tchar = trimmedText[textIndex]\n\n // Escaped character in mask, the next mask character is inserted\n if (mchar === '\\\\') {\n newText += mask.value[maskIndex + 1]\n maskIndex += 2\n continue\n }\n\n if (!isMask(mchar)) {\n newText += mchar\n if (tchar === mchar) {\n textIndex++\n }\n } else if (maskValidates(mchar, tchar)) {\n newText += convert(mchar, tchar)\n textIndex++\n } else {\n break\n }\n\n maskIndex++\n }\n return newText\n }\n\n function unmaskText (text: string | null): string | null {\n if (text == null) return null\n\n if (!mask.value.length || !text.length) return text\n\n let textIndex = 0\n let maskIndex = 0\n let newText = ''\n\n while (true) {\n const mchar = mask.value[maskIndex]\n const tchar = text[textIndex]\n\n if (tchar == null) break\n\n if (mchar == null) {\n newText += tchar\n textIndex++\n continue\n }\n\n // Escaped character in mask, skip the next input character\n if (mchar === '\\\\') {\n if (tchar === mask.value[maskIndex + 1]) {\n textIndex++\n }\n maskIndex += 2\n continue\n }\n\n if (maskValidates(mchar, tchar)) {\n // masked char\n newText += tchar\n textIndex++\n maskIndex++\n continue\n } else if (mchar !== tchar) {\n // input doesn't match mask, skip forward until it does\n while (true) {\n const mchar = mask.value[maskIndex++]\n if (mchar == null || maskValidates(mchar, tchar)) break\n }\n continue\n }\n\n textIndex++\n maskIndex++\n }\n return newText\n }\n\n function setCaretPosition (newSelection: number) {\n selection.value = newSelection\n inputRef.value && inputRef.value.setSelectionRange(selection.value, selection.value)\n }\n\n function resetSelections () {\n if (!inputRef.value?.selectionEnd) return\n\n selection.value = inputRef.value.selectionEnd\n lazySelection.value = 0\n\n for (let index = 0; index < selection.value; index++) {\n isMaskDelimiter(inputRef.value.value[index]) || lazySelection.value++\n }\n }\n\n function updateRange () {\n if (!inputRef.value) return\n resetSelections()\n\n let selection = 0\n const newValue = inputRef.value.value\n\n if (newValue) {\n for (let index = 0; index < newValue.length; index++) {\n if (lazySelection.value <= 0) break\n isMaskDelimiter(newValue[index]) || lazySelection.value--\n selection++\n }\n }\n setCaretPosition(selection)\n }\n\n return {\n updateRange,\n maskText,\n unmaskText,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"mask.js","names":["computed","shallowRef","isObject","propsFactory","makeMaskProps","mask","String","Object","returnMaskedValue","Boolean","defaultDelimiters","presets","date","phone","social","time","isMaskDelimiter","char","test","defaultTokens","pattern","A","convert","v","toUpperCase","a","toLowerCase","N","n","X","useMask","props","inputRef","tokens","selection","lazySelection","isMask","value","maskValidates","item","maskText","text","trimmedText","trim","replace","length","textIndex","maskIndex","newText","mchar","tchar","unmaskText","setCaretPosition","newSelection","setSelectionRange","resetSelections","selectionEnd","index","updateRange","newValue"],"sources":["../../src/composables/mask.ts"],"sourcesContent":["// Utilities\nimport { computed, shallowRef } from 'vue'\nimport { isObject, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\n\nexport interface MaskProps {\n mask: string | MaskOptions | undefined\n returnMaskedValue?: boolean\n}\n\nexport interface MaskOptions {\n mask: string\n tokens: Record<string, MaskItem>\n}\n\nexport const makeMaskProps = propsFactory({\n mask: [String, Object] as PropType<string | MaskOptions>,\n returnMaskedValue: Boolean,\n}, 'mask')\n\nexport type MaskItem = {\n convert?: (char: string) => string\n} & ({\n pattern?: never\n test: (char: string) => boolean\n} | {\n pattern: RegExp\n test?: never\n})\n\nexport const defaultDelimiters = /[-!$%^&*()_+|~=`{}[\\]:\";'<>?,./\\\\ ]/\n\nconst presets: Record<string, string> = {\n 'credit-card': '#### - #### - #### - ####',\n date: '##/##/####',\n 'date-time': '##/##/#### ##:##',\n 'iso-date': '####-##-##',\n 'iso-date-time': '####-##-## ##:##',\n phone: '(###) ### - ####',\n social: '###-##-####',\n time: '##:##',\n 'time-with-seconds': '##:##:##',\n}\n\nexport function isMaskDelimiter (char: string): boolean {\n return char ? defaultDelimiters.test(char) : false\n}\n\nconst defaultTokens: Record<string, MaskItem> = {\n '#': {\n pattern: /[0-9]/,\n },\n A: {\n pattern: /[A-Z]/i,\n convert: v => v.toUpperCase(),\n },\n a: {\n pattern: /[a-z]/i,\n convert: v => v.toLowerCase(),\n },\n N: {\n pattern: /[0-9A-Z]/i,\n convert: v => v.toUpperCase(),\n },\n n: {\n pattern: /[0-9a-z]/i,\n convert: v => v.toLowerCase(),\n },\n X: {\n pattern: defaultDelimiters,\n },\n}\n\nexport function useMask (props: MaskProps, inputRef: Ref<HTMLInputElement | undefined>) {\n const mask = computed(() => {\n if (typeof props.mask === 'string') {\n if (props.mask in presets) return presets[props.mask]\n return props.mask\n }\n return props.mask?.mask ?? ''\n })\n const tokens = computed(() => {\n return {\n ...defaultTokens,\n ...(isObject(props.mask) ? props.mask.tokens : null),\n }\n })\n const selection = shallowRef(0)\n const lazySelection = shallowRef(0)\n\n function isMask (char: string): boolean {\n return char in tokens.value\n }\n\n function maskValidates (mask: string, char: string): boolean {\n if (char == null || !isMask(mask)) return false\n const item = tokens.value[mask]\n if (item.pattern) return item.pattern.test(char)\n return item.test(char)\n }\n\n function convert (mask: string, char: string): string {\n const item = tokens.value[mask]\n return item.convert ? item.convert(char) : char\n }\n\n function maskText (text: string | null | undefined): string {\n const trimmedText = text?.trim().replace(/\\s+/g, ' ')\n\n if (trimmedText == null) return ''\n\n if (!mask.value.length || !trimmedText.length) return trimmedText\n\n let textIndex = 0\n let maskIndex = 0\n let newText = ''\n\n while (maskIndex < mask.value.length) {\n const mchar = mask.value[maskIndex]\n const tchar = trimmedText[textIndex]\n\n // Escaped character in mask, the next mask character is inserted\n if (mchar === '\\\\') {\n newText += mask.value[maskIndex + 1]\n maskIndex += 2\n continue\n }\n\n if (!isMask(mchar)) {\n newText += mchar\n if (tchar === mchar) {\n textIndex++\n }\n } else if (maskValidates(mchar, tchar)) {\n newText += convert(mchar, tchar)\n textIndex++\n } else {\n break\n }\n\n maskIndex++\n }\n return newText\n }\n\n function unmaskText (text: string | null): string | null {\n if (text == null) return null\n\n if (!mask.value.length || !text.length) return text\n\n let textIndex = 0\n let maskIndex = 0\n let newText = ''\n\n while (true) {\n const mchar = mask.value[maskIndex]\n const tchar = text[textIndex]\n\n if (tchar == null) break\n\n if (mchar == null) {\n newText += tchar\n textIndex++\n continue\n }\n\n // Escaped character in mask, skip the next input character\n if (mchar === '\\\\') {\n if (tchar === mask.value[maskIndex + 1]) {\n textIndex++\n }\n maskIndex += 2\n continue\n }\n\n if (maskValidates(mchar, tchar)) {\n // masked char\n newText += tchar\n textIndex++\n maskIndex++\n continue\n } else if (mchar !== tchar) {\n // input doesn't match mask, skip forward until it does\n while (true) {\n const mchar = mask.value[maskIndex++]\n if (mchar == null || maskValidates(mchar, tchar)) break\n }\n continue\n }\n\n textIndex++\n maskIndex++\n }\n return newText\n }\n\n function setCaretPosition (newSelection: number) {\n selection.value = newSelection\n inputRef.value && inputRef.value.setSelectionRange(selection.value, selection.value)\n }\n\n function resetSelections () {\n if (!inputRef.value?.selectionEnd) return\n\n selection.value = inputRef.value.selectionEnd\n lazySelection.value = 0\n\n for (let index = 0; index < selection.value; index++) {\n isMaskDelimiter(inputRef.value.value[index]) || lazySelection.value++\n }\n }\n\n function updateRange () {\n if (!inputRef.value) return\n resetSelections()\n\n let selection = 0\n const newValue = inputRef.value.value\n\n if (newValue) {\n for (let index = 0; index < newValue.length; index++) {\n if (lazySelection.value <= 0) break\n isMaskDelimiter(newValue[index]) || lazySelection.value--\n selection++\n }\n }\n setCaretPosition(selection)\n }\n\n return {\n updateRange,\n maskText,\n unmaskText,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -4,7 +4,7 @@ type DeepPartial<T> = T extends object ? {
|
|
4
4
|
} : T;
|
5
5
|
export type ThemeOptions = false | {
|
6
6
|
cspNonce?: string;
|
7
|
-
defaultTheme?: 'light' | 'dark' | 'system' | string;
|
7
|
+
defaultTheme?: 'light' | 'dark' | 'system' | string & {};
|
8
8
|
variations?: false | VariationsOptions;
|
9
9
|
themes?: Record<string, ThemeDefinition>;
|
10
10
|
stylesheetId?: string;
|
package/lib/composables/theme.js
CHANGED
@@ -329,15 +329,13 @@ export function createTheme(options) {
|
|
329
329
|
}
|
330
330
|
const globalName = new Proxy(name, {
|
331
331
|
get(target, prop) {
|
332
|
-
return target
|
332
|
+
return Reflect.get(target, prop);
|
333
333
|
},
|
334
334
|
set(target, prop, val) {
|
335
335
|
if (prop === 'value') {
|
336
336
|
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
337
337
|
}
|
338
|
-
|
339
|
-
target[prop] = val;
|
340
|
-
return true;
|
338
|
+
return Reflect.set(target, prop, val);
|
341
339
|
}
|
342
340
|
});
|
343
341
|
return {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"theme.js","names":["computed","getCurrentScope","inject","onScopeDispose","provide","ref","shallowRef","toRef","watch","watchEffect","consoleWarn","createRange","darken","deprecate","getCurrentInstance","getForeground","getLuma","IN_BROWSER","lighten","mergeDeep","parseColor","propsFactory","RGBtoHex","SUPPORTS_MATCH_MEDIA","ThemeSymbol","Symbol","for","makeThemeProps","theme","String","genDefaults","defaultTheme","prefix","variations","colors","themes","light","dark","background","surface","primary","secondary","error","info","success","warning","variables","stylesheetId","scoped","unimportant","utilities","parseThemeOptions","options","arguments","length","undefined","defaults","isDisabled","key","Object","entries","createCssClass","lines","selector","content","scope","push","getScopedSelector","map","line","genCssVariables","lightOverlay","darkOverlay","value","rgb","r","g","b","startsWith","color","genVariation","name","object","variation","fn","amount","genVariations","variationColors","genOnColors","onColors","keys","onColor","colorVal","scopeSelector","upsertStyles","id","cspNonce","styles","styleEl","getOrCreateStyleElement","innerHTML","style","document","getElementById","createElement","type","setAttribute","head","appendChild","createTheme","parsedOptions","_name","systemName","get","set","val","computedThemes","acc","original","current","important","themeName","bgLines","fgLines","Set","values","flatMap","str","i","join","themeClasses","themeNames","media","window","matchMedia","updateSystemName","matches","addEventListener","passive","removeEventListener","install","app","_context","provides","usehead","getHead","textContent","nonce","entry","patch","addHeadObjs","updateDOM","updateStyles","immediate","change","includes","cycle","themeArray","currentIndex","indexOf","nextIndex","toggle","globalName","Proxy","target","prop","global","provideTheme","props","Error","newTheme","useTheme"],"sources":["../../src/composables/theme.ts"],"sourcesContent":["// Utilities\nimport {\n computed,\n getCurrentScope,\n inject,\n onScopeDispose,\n provide,\n ref,\n shallowRef,\n toRef,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n consoleWarn,\n createRange,\n darken,\n deprecate,\n getCurrentInstance,\n getForeground,\n getLuma,\n IN_BROWSER,\n lighten,\n mergeDeep,\n parseColor,\n propsFactory,\n RGBtoHex,\n SUPPORTS_MATCH_MEDIA,\n} from '@/util'\n\n// Types\nimport type { VueHeadClient } from '@unhead/vue/client'\nimport type { HeadClient } from '@vueuse/head'\nimport type { App, DeepReadonly, InjectionKey, Ref } from 'vue'\n\ntype DeepPartial<T> = T extends object ? { [P in keyof T]?: DeepPartial<T[P]> } : T\n\nexport type ThemeOptions = false | {\n cspNonce?: string\n defaultTheme?: 'light' | 'dark' | 'system' | string\n variations?: false | VariationsOptions\n themes?: Record<string, ThemeDefinition>\n stylesheetId?: string\n scope?: string\n unimportant?: boolean\n}\nexport type ThemeDefinition = DeepPartial<InternalThemeDefinition>\n\ninterface InternalThemeOptions {\n cspNonce?: string\n isDisabled: boolean\n defaultTheme: 'light' | 'dark' | 'system' | string\n prefix: string\n variations: false | VariationsOptions\n themes: Record<string, InternalThemeDefinition>\n stylesheetId: string\n scope?: string\n scoped: boolean\n unimportant: boolean\n utilities: boolean\n}\n\ninterface VariationsOptions {\n colors: string[]\n lighten: number\n darken: number\n}\n\ninterface InternalThemeDefinition {\n dark: boolean\n colors: Colors\n variables: Record<string, string | number>\n}\n\nexport interface Colors extends BaseColors, OnColors {\n [key: string]: string\n}\n\ninterface BaseColors {\n background: string\n surface: string\n primary: string\n secondary: string\n success: string\n warning: string\n error: string\n info: string\n}\n\ninterface OnColors {\n 'on-background': string\n 'on-surface': string\n 'on-primary': string\n 'on-secondary': string\n 'on-success': string\n 'on-warning': string\n 'on-error': string\n 'on-info': string\n}\n\nexport interface ThemeInstance {\n change: (themeName: string) => void\n cycle: (themeArray?: string[]) => void\n toggle: (themeArray?: [string, string]) => void\n\n readonly isDisabled: boolean\n readonly themes: Ref<Record<string, InternalThemeDefinition>>\n\n readonly name: Readonly<Ref<string>>\n readonly current: DeepReadonly<Ref<InternalThemeDefinition>>\n readonly computedThemes: DeepReadonly<Ref<Record<string, InternalThemeDefinition>>>\n readonly prefix: string\n\n readonly themeClasses: Readonly<Ref<string | undefined>>\n readonly styles: Readonly<Ref<string>>\n\n readonly global: {\n readonly name: Ref<string>\n readonly current: DeepReadonly<Ref<InternalThemeDefinition>>\n }\n}\n\nexport const ThemeSymbol: InjectionKey<ThemeInstance> = Symbol.for('vuetify:theme')\n\nexport const makeThemeProps = propsFactory({\n theme: String,\n}, 'theme')\n\nfunction genDefaults () {\n return {\n defaultTheme: 'light',\n prefix: 'v-',\n variations: { colors: [], lighten: 0, darken: 0 },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-bright': '#FFFFFF',\n 'surface-light': '#EEEEEE',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#1867C0',\n 'primary-darken-1': '#1F5592',\n secondary: '#48A9A6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#EEEEEE',\n 'theme-on-kbd': '#000000',\n 'theme-code': '#F5F5F5',\n 'theme-on-code': '#000000',\n },\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-bright': '#ccbfd6',\n 'surface-light': '#424242',\n 'surface-variant': '#c8c8c8',\n 'on-surface-variant': '#000000',\n primary: '#2196F3',\n 'primary-darken-1': '#277CC1',\n secondary: '#54B6B2',\n 'secondary-darken-1': '#48A9A6',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 1,\n 'medium-emphasis-opacity': 0.70,\n 'disabled-opacity': 0.50,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#424242',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#343434',\n 'theme-on-code': '#CCCCCC',\n },\n },\n },\n stylesheetId: 'vuetify-theme-stylesheet',\n scoped: false,\n unimportant: false,\n utilities: true,\n }\n}\n\nfunction parseThemeOptions (options: ThemeOptions = genDefaults()): InternalThemeOptions {\n const defaults = genDefaults()\n\n if (!options) return { ...defaults, isDisabled: true } as any\n\n const themes: Record<string, InternalThemeDefinition> = {}\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark || key === 'dark'\n ? defaults.themes?.dark\n : defaults.themes?.light\n themes[key] = mergeDeep(defaultTheme, theme) as InternalThemeDefinition\n }\n\n return mergeDeep(\n defaults,\n { ...options, themes },\n ) as InternalThemeOptions\n}\n\nfunction createCssClass (lines: string[], selector: string, content: string[], scope?: string) {\n lines.push(\n `${getScopedSelector(selector, scope)} {\\n`,\n ...content.map(line => ` ${line};\\n`),\n '}\\n',\n )\n}\n\nfunction genCssVariables (theme: InternalThemeDefinition, prefix: string) {\n const lightOverlay = theme.dark ? 2 : 1\n const darkOverlay = theme.dark ? 1 : 2\n\n const variables: string[] = []\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = parseColor(value)\n variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`)\n if (!key.startsWith('on-')) {\n variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`)\n }\n }\n\n for (const [key, value] of Object.entries(theme.variables)) {\n const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined\n variables.push(`--${prefix}${key}: ${rgb ?? value}`)\n }\n\n return variables\n}\n\nfunction genVariation (name: string, color: string, variations: VariationsOptions | false) {\n const object: Record<string, string> = {}\n if (variations) {\n for (const variation of (['lighten', 'darken'] as const)) {\n const fn = variation === 'lighten' ? lighten : darken\n for (const amount of createRange(variations[variation], 1)) {\n object[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount))\n }\n }\n }\n return object\n}\n\nfunction genVariations (colors: InternalThemeDefinition['colors'], variations: VariationsOptions | false) {\n if (!variations) return {}\n\n let variationColors = {}\n for (const name of variations.colors) {\n const color = colors[name]\n\n if (!color) continue\n\n variationColors = {\n ...variationColors,\n ...genVariation(name, color, variations),\n }\n }\n return variationColors\n}\n\nfunction genOnColors (colors: InternalThemeDefinition['colors']) {\n const onColors = {} as InternalThemeDefinition['colors']\n\n for (const color of Object.keys(colors)) {\n if (color.startsWith('on-') || colors[`on-${color}`]) continue\n\n const onColor = `on-${color}` as keyof OnColors\n const colorVal = parseColor(colors[color])\n\n onColors[onColor] = getForeground(colorVal)\n }\n\n return onColors\n}\n\nfunction getScopedSelector (selector: string, scope?: string) {\n if (!scope) return selector\n\n const scopeSelector = `:where(${scope})`\n\n return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`\n}\n\nfunction upsertStyles (id: string, cspNonce: string | undefined, styles: string) {\n const styleEl = getOrCreateStyleElement(id, cspNonce)\n\n if (!styleEl) return\n\n styleEl.innerHTML = styles\n}\n\nfunction getOrCreateStyleElement (id: string, cspNonce?: string) {\n if (!IN_BROWSER) return null\n\n let style = document.getElementById(id) as HTMLStyleElement | null\n\n if (!style) {\n style = document.createElement('style')\n style.id = id\n style.type = 'text/css'\n\n if (cspNonce) style.setAttribute('nonce', cspNonce)\n\n document.head.appendChild(style)\n }\n\n return style\n}\n\n// Composables\nexport function createTheme (options?: ThemeOptions): ThemeInstance & { install: (app: App) => void } {\n const parsedOptions = parseThemeOptions(options)\n const _name = shallowRef(parsedOptions.defaultTheme)\n const themes = ref(parsedOptions.themes)\n const systemName = shallowRef('light')\n\n const name = computed({\n get () {\n return _name.value === 'system' ? systemName.value : _name.value\n },\n set (val: string) {\n _name.value = val\n },\n })\n\n const computedThemes = computed(() => {\n const acc: Record<string, InternalThemeDefinition> = {}\n for (const [name, original] of Object.entries(themes.value)) {\n const colors = {\n ...original.colors,\n ...genVariations(original.colors, parsedOptions.variations),\n }\n\n acc[name] = {\n ...original,\n colors: {\n ...colors,\n ...genOnColors(colors),\n },\n }\n }\n return acc\n })\n\n const current = toRef(() => computedThemes.value[name.value])\n\n const styles = computed(() => {\n const lines: string[] = []\n const important = parsedOptions.unimportant ? '' : ' !important'\n const scoped = parsedOptions.scoped ? parsedOptions.prefix : ''\n\n if (current.value?.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope)\n }\n\n createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope)\n\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [\n `color-scheme: ${theme.dark ? 'dark' : 'normal'}`,\n ...genCssVariables(theme, parsedOptions.prefix),\n ], parsedOptions.scope)\n }\n\n if (parsedOptions.utilities) {\n const bgLines: string[] = []\n const fgLines: string[] = []\n\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)))\n for (const key of colors) {\n if (key.startsWith('on-')) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope)\n } else {\n createCssClass(bgLines, `.${scoped}bg-${key}`, [\n `--${parsedOptions.prefix}theme-overlay-multiplier: var(--${parsedOptions.prefix}theme-${key}-overlay-multiplier)`,\n `background-color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`,\n `color: rgb(var(--${parsedOptions.prefix}theme-on-${key}))${important}`,\n ], parsedOptions.scope)\n createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope)\n createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope)\n }\n }\n\n lines.push(...bgLines, ...fgLines)\n }\n\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('')\n })\n\n const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`)\n const themeNames = toRef(() => Object.keys(computedThemes.value))\n\n if (SUPPORTS_MATCH_MEDIA) {\n const media = window.matchMedia('(prefers-color-scheme: dark)')\n\n function updateSystemName () {\n systemName.value = media.matches ? 'dark' : 'light'\n }\n\n updateSystemName()\n\n media.addEventListener('change', updateSystemName, { passive: true })\n\n if (getCurrentScope()) {\n onScopeDispose(() => {\n media.removeEventListener('change', updateSystemName)\n })\n }\n }\n\n function install (app: App) {\n if (parsedOptions.isDisabled) return\n\n const head = app._context.provides.usehead as HeadClient & VueHeadClient<any> | undefined\n if (head) {\n function getHead () {\n return {\n style: [{\n textContent: styles.value,\n id: parsedOptions.stylesheetId,\n nonce: parsedOptions.cspNonce || false as never,\n }],\n }\n }\n\n if (head.push) {\n const entry = head.push(getHead)\n if (IN_BROWSER) {\n watch(styles, () => { entry.patch(getHead) })\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(toRef(getHead))\n watchEffect(() => head.updateDOM())\n } else {\n head.addHeadObjs(getHead())\n }\n }\n } else {\n if (IN_BROWSER) {\n watch(styles, updateStyles, { immediate: true })\n } else {\n updateStyles()\n }\n\n function updateStyles () {\n upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value)\n }\n }\n }\n\n function change (themeName: string) {\n if (!themeNames.value.includes(themeName)) {\n consoleWarn(`Theme \"${themeName}\" not found on the Vuetify theme instance`)\n return\n }\n\n name.value = themeName\n }\n\n function cycle (themeArray: string[] = themeNames.value) {\n const currentIndex = themeArray.indexOf(name.value)\n const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length\n\n change(themeArray[nextIndex])\n }\n\n function toggle (themeArray: [string, string] = ['light', 'dark']) {\n cycle(themeArray)\n }\n\n const globalName = new Proxy(name, {\n get (target, prop) {\n return target[prop as keyof typeof target]\n },\n set (target, prop, val) {\n if (prop === 'value') {\n deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`)\n }\n // @ts-expect-error\n target[prop] = val\n return true\n },\n }) as typeof name\n\n return {\n install,\n change,\n cycle,\n toggle,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n prefix: parsedOptions.prefix,\n themeClasses,\n styles,\n global: {\n name: globalName,\n current,\n },\n }\n}\n\nexport function provideTheme (props: { theme?: string }) {\n getCurrentInstance('provideTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n const name = toRef(() => props.theme ?? theme.name.value)\n const current = toRef(() => theme.themes.value[name.value])\n\n const themeClasses = toRef(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`)\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\n current,\n themeClasses,\n }\n\n provide(ThemeSymbol, newTheme)\n\n return newTheme\n}\n\nexport function useTheme () {\n getCurrentInstance('useTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n return theme\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"theme.js","names":["computed","getCurrentScope","inject","onScopeDispose","provide","ref","shallowRef","toRef","watch","watchEffect","consoleWarn","createRange","darken","deprecate","getCurrentInstance","getForeground","getLuma","IN_BROWSER","lighten","mergeDeep","parseColor","propsFactory","RGBtoHex","SUPPORTS_MATCH_MEDIA","ThemeSymbol","Symbol","for","makeThemeProps","theme","String","genDefaults","defaultTheme","prefix","variations","colors","themes","light","dark","background","surface","primary","secondary","error","info","success","warning","variables","stylesheetId","scoped","unimportant","utilities","parseThemeOptions","options","arguments","length","undefined","defaults","isDisabled","key","Object","entries","createCssClass","lines","selector","content","scope","push","getScopedSelector","map","line","genCssVariables","lightOverlay","darkOverlay","value","rgb","r","g","b","startsWith","color","genVariation","name","object","variation","fn","amount","genVariations","variationColors","genOnColors","onColors","keys","onColor","colorVal","scopeSelector","upsertStyles","id","cspNonce","styles","styleEl","getOrCreateStyleElement","innerHTML","style","document","getElementById","createElement","type","setAttribute","head","appendChild","createTheme","parsedOptions","_name","systemName","get","set","val","computedThemes","acc","original","current","important","themeName","bgLines","fgLines","Set","values","flatMap","str","i","join","themeClasses","themeNames","media","window","matchMedia","updateSystemName","matches","addEventListener","passive","removeEventListener","install","app","_context","provides","usehead","getHead","textContent","nonce","entry","patch","addHeadObjs","updateDOM","updateStyles","immediate","change","includes","cycle","themeArray","currentIndex","indexOf","nextIndex","toggle","globalName","Proxy","target","prop","Reflect","global","provideTheme","props","Error","newTheme","useTheme"],"sources":["../../src/composables/theme.ts"],"sourcesContent":["// Utilities\nimport {\n computed,\n getCurrentScope,\n inject,\n onScopeDispose,\n provide,\n ref,\n shallowRef,\n toRef,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n consoleWarn,\n createRange,\n darken,\n deprecate,\n getCurrentInstance,\n getForeground,\n getLuma,\n IN_BROWSER,\n lighten,\n mergeDeep,\n parseColor,\n propsFactory,\n RGBtoHex,\n SUPPORTS_MATCH_MEDIA,\n} from '@/util'\n\n// Types\nimport type { VueHeadClient } from '@unhead/vue/client'\nimport type { HeadClient } from '@vueuse/head'\nimport type { App, DeepReadonly, InjectionKey, Ref } from 'vue'\n\ntype DeepPartial<T> = T extends object ? { [P in keyof T]?: DeepPartial<T[P]> } : T\n\nexport type ThemeOptions = false | {\n cspNonce?: string\n defaultTheme?: 'light' | 'dark' | 'system' | string & {}\n variations?: false | VariationsOptions\n themes?: Record<string, ThemeDefinition>\n stylesheetId?: string\n scope?: string\n unimportant?: boolean\n}\nexport type ThemeDefinition = DeepPartial<InternalThemeDefinition>\n\ninterface InternalThemeOptions {\n cspNonce?: string\n isDisabled: boolean\n defaultTheme: 'light' | 'dark' | 'system' | string & {}\n prefix: string\n variations: false | VariationsOptions\n themes: Record<string, InternalThemeDefinition>\n stylesheetId: string\n scope?: string\n scoped: boolean\n unimportant: boolean\n utilities: boolean\n}\n\ninterface VariationsOptions {\n colors: string[]\n lighten: number\n darken: number\n}\n\ninterface InternalThemeDefinition {\n dark: boolean\n colors: Colors\n variables: Record<string, string | number>\n}\n\nexport interface Colors extends BaseColors, OnColors {\n [key: string]: string\n}\n\ninterface BaseColors {\n background: string\n surface: string\n primary: string\n secondary: string\n success: string\n warning: string\n error: string\n info: string\n}\n\ninterface OnColors {\n 'on-background': string\n 'on-surface': string\n 'on-primary': string\n 'on-secondary': string\n 'on-success': string\n 'on-warning': string\n 'on-error': string\n 'on-info': string\n}\n\nexport interface ThemeInstance {\n change: (themeName: string) => void\n cycle: (themeArray?: string[]) => void\n toggle: (themeArray?: [string, string]) => void\n\n readonly isDisabled: boolean\n readonly themes: Ref<Record<string, InternalThemeDefinition>>\n\n readonly name: Readonly<Ref<string>>\n readonly current: DeepReadonly<Ref<InternalThemeDefinition>>\n readonly computedThemes: DeepReadonly<Ref<Record<string, InternalThemeDefinition>>>\n readonly prefix: string\n\n readonly themeClasses: Readonly<Ref<string | undefined>>\n readonly styles: Readonly<Ref<string>>\n\n readonly global: {\n readonly name: Ref<string>\n readonly current: DeepReadonly<Ref<InternalThemeDefinition>>\n }\n}\n\nexport const ThemeSymbol: InjectionKey<ThemeInstance> = Symbol.for('vuetify:theme')\n\nexport const makeThemeProps = propsFactory({\n theme: String,\n}, 'theme')\n\nfunction genDefaults () {\n return {\n defaultTheme: 'light',\n prefix: 'v-',\n variations: { colors: [], lighten: 0, darken: 0 },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-bright': '#FFFFFF',\n 'surface-light': '#EEEEEE',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#1867C0',\n 'primary-darken-1': '#1F5592',\n secondary: '#48A9A6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#EEEEEE',\n 'theme-on-kbd': '#000000',\n 'theme-code': '#F5F5F5',\n 'theme-on-code': '#000000',\n },\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-bright': '#ccbfd6',\n 'surface-light': '#424242',\n 'surface-variant': '#c8c8c8',\n 'on-surface-variant': '#000000',\n primary: '#2196F3',\n 'primary-darken-1': '#277CC1',\n secondary: '#54B6B2',\n 'secondary-darken-1': '#48A9A6',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 1,\n 'medium-emphasis-opacity': 0.70,\n 'disabled-opacity': 0.50,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#424242',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#343434',\n 'theme-on-code': '#CCCCCC',\n },\n },\n },\n stylesheetId: 'vuetify-theme-stylesheet',\n scoped: false,\n unimportant: false,\n utilities: true,\n }\n}\n\nfunction parseThemeOptions (options: ThemeOptions = genDefaults()): InternalThemeOptions {\n const defaults = genDefaults()\n\n if (!options) return { ...defaults, isDisabled: true } as any\n\n const themes: Record<string, InternalThemeDefinition> = {}\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark || key === 'dark'\n ? defaults.themes?.dark\n : defaults.themes?.light\n themes[key] = mergeDeep(defaultTheme, theme) as InternalThemeDefinition\n }\n\n return mergeDeep(\n defaults,\n { ...options, themes },\n ) as InternalThemeOptions\n}\n\nfunction createCssClass (lines: string[], selector: string, content: string[], scope?: string) {\n lines.push(\n `${getScopedSelector(selector, scope)} {\\n`,\n ...content.map(line => ` ${line};\\n`),\n '}\\n',\n )\n}\n\nfunction genCssVariables (theme: InternalThemeDefinition, prefix: string) {\n const lightOverlay = theme.dark ? 2 : 1\n const darkOverlay = theme.dark ? 1 : 2\n\n const variables: string[] = []\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = parseColor(value)\n variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`)\n if (!key.startsWith('on-')) {\n variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`)\n }\n }\n\n for (const [key, value] of Object.entries(theme.variables)) {\n const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined\n variables.push(`--${prefix}${key}: ${rgb ?? value}`)\n }\n\n return variables\n}\n\nfunction genVariation (name: string, color: string, variations: VariationsOptions | false) {\n const object: Record<string, string> = {}\n if (variations) {\n for (const variation of (['lighten', 'darken'] as const)) {\n const fn = variation === 'lighten' ? lighten : darken\n for (const amount of createRange(variations[variation], 1)) {\n object[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount))\n }\n }\n }\n return object\n}\n\nfunction genVariations (colors: InternalThemeDefinition['colors'], variations: VariationsOptions | false) {\n if (!variations) return {}\n\n let variationColors = {}\n for (const name of variations.colors) {\n const color = colors[name]\n\n if (!color) continue\n\n variationColors = {\n ...variationColors,\n ...genVariation(name, color, variations),\n }\n }\n return variationColors\n}\n\nfunction genOnColors (colors: InternalThemeDefinition['colors']) {\n const onColors = {} as InternalThemeDefinition['colors']\n\n for (const color of Object.keys(colors)) {\n if (color.startsWith('on-') || colors[`on-${color}`]) continue\n\n const onColor = `on-${color}` as keyof OnColors\n const colorVal = parseColor(colors[color])\n\n onColors[onColor] = getForeground(colorVal)\n }\n\n return onColors\n}\n\nfunction getScopedSelector (selector: string, scope?: string) {\n if (!scope) return selector\n\n const scopeSelector = `:where(${scope})`\n\n return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`\n}\n\nfunction upsertStyles (id: string, cspNonce: string | undefined, styles: string) {\n const styleEl = getOrCreateStyleElement(id, cspNonce)\n\n if (!styleEl) return\n\n styleEl.innerHTML = styles\n}\n\nfunction getOrCreateStyleElement (id: string, cspNonce?: string) {\n if (!IN_BROWSER) return null\n\n let style = document.getElementById(id) as HTMLStyleElement | null\n\n if (!style) {\n style = document.createElement('style')\n style.id = id\n style.type = 'text/css'\n\n if (cspNonce) style.setAttribute('nonce', cspNonce)\n\n document.head.appendChild(style)\n }\n\n return style\n}\n\n// Composables\nexport function createTheme (options?: ThemeOptions): ThemeInstance & { install: (app: App) => void } {\n const parsedOptions = parseThemeOptions(options)\n const _name = shallowRef(parsedOptions.defaultTheme)\n const themes = ref(parsedOptions.themes)\n const systemName = shallowRef('light')\n\n const name = computed({\n get () {\n return _name.value === 'system' ? systemName.value : _name.value\n },\n set (val: string) {\n _name.value = val\n },\n })\n\n const computedThemes = computed(() => {\n const acc: Record<string, InternalThemeDefinition> = {}\n for (const [name, original] of Object.entries(themes.value)) {\n const colors = {\n ...original.colors,\n ...genVariations(original.colors, parsedOptions.variations),\n }\n\n acc[name] = {\n ...original,\n colors: {\n ...colors,\n ...genOnColors(colors),\n },\n }\n }\n return acc\n })\n\n const current = toRef(() => computedThemes.value[name.value])\n\n const styles = computed(() => {\n const lines: string[] = []\n const important = parsedOptions.unimportant ? '' : ' !important'\n const scoped = parsedOptions.scoped ? parsedOptions.prefix : ''\n\n if (current.value?.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope)\n }\n\n createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope)\n\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [\n `color-scheme: ${theme.dark ? 'dark' : 'normal'}`,\n ...genCssVariables(theme, parsedOptions.prefix),\n ], parsedOptions.scope)\n }\n\n if (parsedOptions.utilities) {\n const bgLines: string[] = []\n const fgLines: string[] = []\n\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)))\n for (const key of colors) {\n if (key.startsWith('on-')) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope)\n } else {\n createCssClass(bgLines, `.${scoped}bg-${key}`, [\n `--${parsedOptions.prefix}theme-overlay-multiplier: var(--${parsedOptions.prefix}theme-${key}-overlay-multiplier)`,\n `background-color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`,\n `color: rgb(var(--${parsedOptions.prefix}theme-on-${key}))${important}`,\n ], parsedOptions.scope)\n createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope)\n createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope)\n }\n }\n\n lines.push(...bgLines, ...fgLines)\n }\n\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('')\n })\n\n const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`)\n const themeNames = toRef(() => Object.keys(computedThemes.value))\n\n if (SUPPORTS_MATCH_MEDIA) {\n const media = window.matchMedia('(prefers-color-scheme: dark)')\n\n function updateSystemName () {\n systemName.value = media.matches ? 'dark' : 'light'\n }\n\n updateSystemName()\n\n media.addEventListener('change', updateSystemName, { passive: true })\n\n if (getCurrentScope()) {\n onScopeDispose(() => {\n media.removeEventListener('change', updateSystemName)\n })\n }\n }\n\n function install (app: App) {\n if (parsedOptions.isDisabled) return\n\n const head = app._context.provides.usehead as HeadClient & VueHeadClient<any> | undefined\n if (head) {\n function getHead () {\n return {\n style: [{\n textContent: styles.value,\n id: parsedOptions.stylesheetId,\n nonce: parsedOptions.cspNonce || false as never,\n }],\n }\n }\n\n if (head.push) {\n const entry = head.push(getHead)\n if (IN_BROWSER) {\n watch(styles, () => { entry.patch(getHead) })\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(toRef(getHead))\n watchEffect(() => head.updateDOM())\n } else {\n head.addHeadObjs(getHead())\n }\n }\n } else {\n if (IN_BROWSER) {\n watch(styles, updateStyles, { immediate: true })\n } else {\n updateStyles()\n }\n\n function updateStyles () {\n upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value)\n }\n }\n }\n\n function change (themeName: string) {\n if (!themeNames.value.includes(themeName)) {\n consoleWarn(`Theme \"${themeName}\" not found on the Vuetify theme instance`)\n return\n }\n\n name.value = themeName\n }\n\n function cycle (themeArray: string[] = themeNames.value) {\n const currentIndex = themeArray.indexOf(name.value)\n const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length\n\n change(themeArray[nextIndex])\n }\n\n function toggle (themeArray: [string, string] = ['light', 'dark']) {\n cycle(themeArray)\n }\n\n const globalName = new Proxy(name, {\n get (target, prop) {\n return Reflect.get(target, prop)\n },\n set (target, prop, val) {\n if (prop === 'value') {\n deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`)\n }\n return Reflect.set(target, prop, val)\n },\n })\n\n return {\n install,\n change,\n cycle,\n toggle,\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n prefix: parsedOptions.prefix,\n themeClasses,\n styles,\n global: {\n name: globalName,\n current,\n },\n }\n}\n\nexport function provideTheme (props: { theme?: string }) {\n getCurrentInstance('provideTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n const name = toRef(() => props.theme ?? theme.name.value)\n const current = toRef(() => theme.themes.value[name.value])\n\n const themeClasses = toRef(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`)\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\n current,\n themeClasses,\n }\n\n provide(ThemeSymbol, newTheme)\n\n return newTheme\n}\n\nexport function useTheme () {\n getCurrentInstance('useTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n return theme\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.js
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.8.10-dev.2025-06-
|
19
|
+
export const version = "3.8.10-dev.2025-06-19";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|