vuetify 3.10.9 → 3.10.11
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/dist/json/attributes.json +3178 -3218
- package/dist/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +154 -154
- package/dist/json/tags.json +0 -10
- package/dist/json/web-types.json +5596 -5696
- package/dist/vuetify-labs.cjs +204 -216
- package/dist/vuetify-labs.css +4081 -4083
- package/dist/vuetify-labs.d.ts +470 -658
- package/dist/vuetify-labs.esm.js +204 -216
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +204 -216
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +136 -99
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2706 -2696
- package/dist/vuetify.d.ts +328 -456
- package/dist/vuetify.esm.js +136 -99
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +136 -99
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +333 -329
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +63 -94
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/_variables.scss +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.sass +1 -1
- package/lib/components/VCard/VCard.js +8 -1
- package/lib/components/VCard/VCard.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +63 -94
- package/lib/components/VDatePicker/VDatePicker.js +7 -16
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VField/VField.css +6 -1
- package/lib/components/VField/VField.d.ts +8 -13
- package/lib/components/VField/VField.js +1 -1
- package/lib/components/VField/VField.js.map +1 -1
- package/lib/components/VField/VField.sass +5 -0
- package/lib/components/VFileInput/VFileInput.d.ts +0 -13
- package/lib/components/VNumberInput/VNumberInput.d.ts +63 -89
- package/lib/components/VSelect/VSelect.d.ts +63 -94
- package/lib/components/VTabs/VTab.css +3 -2
- package/lib/components/VTabs/VTab.sass +2 -1
- package/lib/components/VTextField/VTextField.d.ts +18 -31
- package/lib/components/VTextField/VTextField.js +17 -7
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.d.ts +0 -13
- package/lib/components/VTextarea/VTextarea.js +17 -7
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +2 -2
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/composables/calendar.d.ts +6 -0
- package/lib/composables/calendar.js +37 -2
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/delay.js +3 -2
- package/lib/composables/delay.js.map +1 -1
- package/lib/composables/hotkey/hotkey.js +42 -53
- package/lib/composables/hotkey/hotkey.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +50 -50
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VColorInput/VColorInput.d.ts +0 -13
- package/lib/labs/VDateInput/VDateInput.d.ts +63 -94
- package/lib/labs/VDateInput/VDateInput.js +8 -12
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VHotkey/VHotkey.css +4 -16
- package/lib/labs/VHotkey/VHotkey.d.ts +29 -29
- package/lib/labs/VHotkey/VHotkey.js +62 -106
- package/lib/labs/VHotkey/VHotkey.js.map +1 -1
- package/lib/labs/VHotkey/VHotkey.scss +8 -25
- package/lib/labs/VMaskInput/VMaskInput.d.ts +63 -94
- package/lib/styles/main.css +4 -0
- package/lib/styles/settings/_variables.scss +1 -0
- package/lib/util/box.js +3 -8
- package/lib/util/box.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VHotkey.js","names":["VIcon","VKbd","makeBorderProps","useBorder","makeComponentProps","makeElevationProps","useElevation","splitKeyCombination","splitKeySequence","useLocale","useRtl","makeRoundedProps","useRounded","makeThemeProps","provideTheme","useVariant","computed","genericComponent","mergeDeep","propsFactory","useRender","processKey","config","requestedMode","isMac","keyCfg","mac","default","mode","icon","symbol","value","text","startsWith","slice","toUpperCase","hotkeyMap","ctrl","meta","cmd","shift","alt","enter","arrowup","arrowdown","arrowleft","arrowright","backspace","escape","makeVHotkeyVariantProps","variant","type","String","validator","v","includes","makeVHotkeyProps","keys","displayMode","keyMap","Object","platform","inline","Boolean","disabled","prefix","suffix","color","Delineator","constructor","delineator","val","Error","isEqual","d","isDelineator","isString","getKeyText","key","lowerKey","toLowerCase","result","applyDisplayModeToKey","replace","VHotkey","name","props","setup","t","themeClasses","rtlClasses","borderClasses","roundedClasses","elevationClasses","isContainedVariant","effectiveVariantProps","colorClasses","colorStyles","variantClasses","navigator","test","userAgent","effectiveDisplayMode","AND_DELINEATOR","THEN_DELINEATOR","effectiveKeyMap","keyCombinations","split","map","combination","sequenceGroups","flatMap","group","groupIndex","keyParts","parts","reduce","acc","part","index","length","push","accessibleLabel","readableShortcuts","readableParts","textKey","translateKey","join","shortcutText","getKeyTooltip","undefined","renderKey","keyIndex","isContained","KeyComponent","keyClasses","_createVNode","_normalizeClass","_normalizeStyle","renderDivider","_createElementVNode","class","style","comboIndex","_createTextVNode","_Fragment"],"sources":["../../../src/labs/VHotkey/VHotkey.tsx"],"sourcesContent":["/**\n * VHotkey Component\n *\n * Purpose: Renders keyboard shortcuts in a visually consistent and accessible way.\n * This component handles the complex logic of displaying keyboard combinations\n * across different platforms (Mac vs PC) and display modes (icons, symbols, text).\n *\n * Why it exists:\n * - Provides consistent visual representation of keyboard shortcuts\n * - Handles platform-specific key differences (Cmd vs Ctrl, Option vs Alt)\n * - Supports multiple display modes for different design needs\n * - Encapsulates complex key parsing and rendering logic\n * - Used throughout the command palette for instruction display\n *\n * Key Mapping Structure:\n * The keyMap uses a simple object structure where each key has:\n * - `default`: Required configuration for all platforms\n * - `mac`: Optional Mac-specific overrides\n * Each config can specify `symbol`, `icon`, and `text` representations.\n *\n * Example:\n * ```\n * ctrl: {\n * mac: { symbol: '⌃', icon: '$ctrl', text: 'Control' },\n * default: { text: 'Ctrl', icon: '$ctrl' }\n * }\n * ```\n */\n\n// Styles\nimport './VHotkey.scss'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VKbd } from '@/components/VKbd'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { splitKeyCombination, splitKeySequence } from '@/composables/hotkey/hotkey-parsing'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, mergeDeep, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { IconValue } from '@/composables/icons'\nimport type { Variant } from '@/composables/variant'\n\n// Display mode types for different visual representations\ntype DisplayMode = 'icon' | 'symbol' | 'text'\n\n// Extended variant type that includes our custom 'contained' variant\ntype HotkeyVariant = 'elevated' | 'flat' | 'tonal' | 'outlined' | 'text' | 'plain' | 'contained'\n\n// Key display tuple: [mode, content] where content is string or IconValue\ntype KeyDisplay = [Exclude<DisplayMode, 'icon'>, string] | [Extract<DisplayMode, 'icon'>, IconValue]\n\n// Key tuple: [mode, content] where content is string or IconValue\ntype Key = [Exclude<DisplayMode, 'icon'>, string, string] | [Extract<DisplayMode, 'icon'>, IconValue, string]\n\ntype KeyConfig = {\n symbol?: string\n icon?: string\n text: string\n}\n\ntype PlatformKeyConfig = {\n mac?: KeyConfig\n default: KeyConfig\n}\n\ntype KeyMapConfig = Record<string, PlatformKeyConfig>\n\nfunction processKey (config: PlatformKeyConfig, requestedMode: DisplayMode, isMac: boolean): KeyDisplay {\n const keyCfg = (isMac && config.mac) ? config.mac : config.default\n\n // 1. Resolve the safest display mode for the current platform\n const mode: DisplayMode = (() => {\n // Non-Mac platforms rarely use icons – prefer text\n if (requestedMode === 'icon' && !isMac) return 'text'\n\n // If the requested mode lacks an asset, fall back to text\n if (requestedMode === 'icon' && !keyCfg.icon) return 'text'\n if (requestedMode === 'symbol' && !keyCfg.symbol) return 'text'\n\n return requestedMode\n })()\n\n // 2. Pick value for the chosen mode, defaulting to text representation\n let value: string | IconValue = keyCfg[mode] ?? keyCfg.text\n\n // 3. Guard against icon tokens leaking into text mode (e.g. \"$ctrl\")\n if (mode === 'text' && typeof value === 'string' && value.startsWith('$') && !value.startsWith('$vuetify.')) {\n value = value.slice(1).toUpperCase() // \"$ctrl\" → \"CTRL\"\n }\n\n return mode === 'icon'\n ? ['icon', value as IconValue]\n : [mode as Exclude<DisplayMode, 'icon'>, value as string]\n}\n\nexport const hotkeyMap: KeyMapConfig = {\n ctrl: {\n mac: { symbol: '⌃', icon: '$ctrl', text: '$vuetify.hotkey.ctrl' },\n default: { text: 'Ctrl' },\n },\n meta: {\n mac: { symbol: '⌘', icon: '$command', text: '$vuetify.hotkey.command' },\n default: { text: 'Ctrl' },\n },\n cmd: {\n mac: { symbol: '⌘', icon: '$command', text: '$vuetify.hotkey.command' },\n default: { text: 'Ctrl' },\n },\n shift: {\n mac: { symbol: '⇧', icon: '$shift', text: '$vuetify.hotkey.shift' },\n default: { text: 'Shift' },\n },\n alt: {\n mac: { symbol: '⌥', icon: '$alt', text: '$vuetify.hotkey.option' },\n default: { text: 'Alt' },\n },\n enter: {\n default: { symbol: '↵', icon: '$enter', text: '$vuetify.hotkey.enter' },\n },\n arrowup: {\n default: { symbol: '↑', icon: '$arrowup', text: '$vuetify.hotkey.upArrow' },\n },\n arrowdown: {\n default: { symbol: '↓', icon: '$arrowdown', text: '$vuetify.hotkey.downArrow' },\n },\n arrowleft: {\n default: { symbol: '←', icon: '$arrowleft', text: '$vuetify.hotkey.leftArrow' },\n },\n arrowright: {\n default: { symbol: '→', icon: '$arrowright', text: '$vuetify.hotkey.rightArrow' },\n },\n backspace: {\n default: { symbol: '⌫', icon: '$backspace', text: '$vuetify.hotkey.backspace' },\n },\n escape: {\n default: { text: '$vuetify.hotkey.escape' },\n },\n ' ': {\n mac: { symbol: '␣', icon: '$space', text: '$vuetify.hotkey.space' },\n default: { text: '$vuetify.hotkey.space' },\n },\n '-': {\n default: { text: '-' },\n },\n}\n\n// Create custom variant props that extend the base variant props with our 'contained' option\nconst makeVHotkeyVariantProps = propsFactory({\n variant: {\n type: String as PropType<HotkeyVariant>,\n default: 'elevated' as const,\n validator: (v: any) => ['elevated', 'flat', 'tonal', 'outlined', 'text', 'plain', 'contained'].includes(v),\n },\n}, 'VHotkeyVariant')\n\nexport const makeVHotkeyProps = propsFactory({\n // String representing keyboard shortcuts (e.g., \"ctrl+k\", \"meta+shift+p\")\n keys: String,\n // How to display keys: 'symbol' uses special characters (⌘, ⌃), 'icon' uses SVG icons, 'text' uses words\n displayMode: {\n type: String as PropType<DisplayMode>,\n default: 'icon',\n },\n // Custom key mapping configuration. Users can import and modify the exported hotkeyMap as needed\n keyMap: {\n type: Object as PropType<KeyMapConfig>,\n default: () => hotkeyMap,\n },\n platform: {\n type: String as PropType<'auto' | 'pc' | 'mac'>,\n default: 'auto',\n },\n inline: Boolean,\n disabled: Boolean,\n prefix: String,\n suffix: String,\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeElevationProps(),\n ...makeVHotkeyVariantProps(),\n color: String,\n}, 'VHotkey')\n\nclass Delineator {\n val\n constructor (delineator: string) {\n if (['and', 'then'].includes(delineator)) this.val = delineator as 'then' | 'and'\n else { throw new Error('Not a valid delineator') }\n }\n\n public isEqual (d: Delineator) {\n return this.val === d.val\n }\n}\n\nfunction isDelineator (value: any): value is Delineator {\n return value instanceof Delineator\n}\nfunction isString (value: any): value is string {\n return typeof value === 'string'\n}\n\nfunction getKeyText (keyMap: KeyMapConfig, key: string, isMac: boolean): string {\n const lowerKey = key.toLowerCase()\n\n if (lowerKey in keyMap) {\n const result = processKey(keyMap[lowerKey], 'text', isMac)\n return typeof result[1] === 'string' ? result[1] : String(result[1])\n }\n\n return key.toUpperCase()\n}\n\nfunction applyDisplayModeToKey (keyMap: KeyMapConfig, mode: DisplayMode, key: string, isMac: boolean): Key {\n const lowerKey = key.toLowerCase()\n\n if (lowerKey in keyMap) {\n const result = processKey(keyMap[lowerKey], mode, isMac)\n\n if (result[0] === 'text' && typeof result[1] === 'string' && result[1].startsWith('$') && !result[1].startsWith('$vuetify.')) {\n return ['text', result[1].replace('$', '').toUpperCase(), key]\n }\n\n return [...result, key]\n }\n\n return ['text', key.toUpperCase(), key]\n}\n\nexport const VHotkey = genericComponent()({\n name: 'VHotkey',\n\n props: makeVHotkeyProps(),\n\n setup (props) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n const { borderClasses } = useBorder(props)\n const { roundedClasses } = useRounded(props)\n const { elevationClasses } = useElevation(props)\n\n const isContainedVariant = computed(() => props.variant === 'contained')\n\n const effectiveVariantProps = computed(() => ({\n ...props,\n variant: isContainedVariant.value ? 'elevated' as Variant : props.variant as Variant,\n }))\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(effectiveVariantProps)\n\n const isMac = computed(() =>\n props.platform === 'auto'\n ? (typeof navigator !== 'undefined' && /macintosh/i.test(navigator.userAgent))\n : props.platform === 'mac'\n )\n\n const effectiveDisplayMode = computed<DisplayMode>(() => props.displayMode)\n\n const AND_DELINEATOR = new Delineator('and') // For + separators\n const THEN_DELINEATOR = new Delineator('then') // For - separators\n\n const effectiveKeyMap = computed(() => props.keyMap)\n\n const keyCombinations = computed(() => {\n if (!props.keys) return []\n\n // Split by spaces to handle multiple key combinations\n // Example: \"ctrl+k meta+p\" -> [\"ctrl+k\", \"meta+p\"]\n return props.keys.split(' ').map(combination => {\n // Use the shared sequence splitting logic\n const sequenceGroups = splitKeySequence(combination)\n\n // Process each sequence group\n return sequenceGroups.flatMap((group, groupIndex) => {\n // Use the shared key combination splitting logic\n const keyParts = splitKeyCombination(group)\n\n const parts = keyParts.reduce<Array<string | Delineator>>((acc, part, index) => {\n if (index !== 0) {\n // Add AND delineator between keys\n return [...acc, AND_DELINEATOR, part]\n }\n return [...acc, part]\n }, [])\n\n // Add THEN delineator between sequence groups\n const result = parts.map(key => {\n if (isString(key)) {\n return applyDisplayModeToKey(effectiveKeyMap.value, effectiveDisplayMode.value, key, isMac.value)\n }\n return key\n })\n\n // Add sequence separator if not the last group\n if (groupIndex < sequenceGroups.length - 1) {\n result.push(THEN_DELINEATOR)\n }\n\n return result\n })\n })\n })\n\n const accessibleLabel = computed(() => {\n if (!props.keys) return ''\n\n // Convert the parsed key combinations into readable text\n const readableShortcuts = keyCombinations.value.map(combination => {\n const readableParts: string[] = []\n\n for (const key of combination) {\n if (isDelineator(key)) {\n if (AND_DELINEATOR.isEqual(key)) {\n readableParts.push(t('$vuetify.hotkey.plus'))\n } else if (THEN_DELINEATOR.isEqual(key)) {\n readableParts.push(t('$vuetify.hotkey.then'))\n }\n } else {\n // Always use text representation for screen readers\n const textKey = key[0] === 'icon' || key[0] === 'symbol'\n ? applyDisplayModeToKey(mergeDeep(hotkeyMap, props.keyMap), 'text', String(key[1]), isMac.value)[1]\n : key[1]\n readableParts.push(translateKey(textKey as string))\n }\n }\n\n return readableParts.join(' ')\n })\n\n const shortcutText = readableShortcuts.join(', ')\n return t('$vuetify.hotkey.shortcut', shortcutText)\n })\n\n function translateKey (key: string) {\n return key.startsWith('$vuetify.') ? t(key) : key\n }\n\n function getKeyTooltip (key: Key): string | undefined {\n if (effectiveDisplayMode.value === 'text') return undefined\n\n const textKey = getKeyText(effectiveKeyMap.value, String(key[2]), isMac.value)\n return translateKey(textKey)\n }\n\n function renderKey (key: Key, keyIndex: number, isContained: boolean) {\n const KeyComponent = isContained ? 'kbd' : VKbd\n const keyClasses = [\n 'v-hotkey__key',\n `v-hotkey__key-${key[0]}`,\n ...(isContained ? ['v-hotkey__key--nested'] : [\n borderClasses.value,\n roundedClasses.value,\n elevationClasses.value,\n colorClasses.value,\n ]),\n ]\n\n return (\n <KeyComponent\n key={ keyIndex }\n class={ keyClasses }\n style={ isContained ? undefined : colorStyles.value }\n aria-hidden=\"true\"\n title={ getKeyTooltip(key) }\n >\n {\n key[0] === 'icon' ? (\n <VIcon\n icon={ key[1] }\n aria-hidden=\"true\"\n />\n ) : translateKey(key[1])\n }\n </KeyComponent>\n )\n }\n\n function renderDivider (key: Delineator, keyIndex: number) {\n return (\n <span\n key={ keyIndex }\n class=\"v-hotkey__divider\"\n aria-hidden=\"true\"\n >\n {\n AND_DELINEATOR.isEqual(key) ? '+' : t('$vuetify.hotkey.then')\n }\n </span>\n )\n }\n\n useRender(() => (\n <div\n class={[\n 'v-hotkey',\n {\n 'v-hotkey--disabled': props.disabled,\n 'v-hotkey--inline': props.inline,\n 'v-hotkey--contained': isContainedVariant.value,\n },\n themeClasses.value,\n rtlClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={ props.style }\n role=\"img\"\n aria-label={ accessibleLabel.value }\n >\n { isContainedVariant.value ? (\n <VKbd\n key=\"contained\"\n class={[\n 'v-hotkey__contained-wrapper',\n borderClasses.value,\n roundedClasses.value,\n elevationClasses.value,\n colorClasses.value,\n ]}\n style={ colorStyles.value }\n aria-hidden=\"true\"\n >\n { props.prefix && (\n <span key=\"contained-prefix\" class=\"v-hotkey__prefix\">{ props.prefix }</span>\n )}\n { keyCombinations.value.map((combination, comboIndex) => (\n <span class=\"v-hotkey__combination\" key={ comboIndex }>\n { combination.map((key, keyIndex) =>\n isDelineator(key)\n ? renderDivider(key, keyIndex)\n : renderKey(key, keyIndex, true)\n )}\n { comboIndex < keyCombinations.value.length - 1 && <span aria-hidden=\"true\"> </span> }\n </span>\n ))}\n { props.suffix && (\n <span key=\"contained-suffix\" class=\"v-hotkey__suffix\">{ props.suffix }</span>\n )}\n </VKbd>\n ) : (\n <>\n { props.prefix && (\n <span key=\"prefix\" class=\"v-hotkey__prefix\">{ props.prefix }</span>\n )}\n { keyCombinations.value.map((combination, comboIndex) => (\n <span class=\"v-hotkey__combination\" key={ comboIndex }>\n { combination.map((key, keyIndex) =>\n isDelineator(key)\n ? renderDivider(key, keyIndex)\n : renderKey(key, keyIndex, false)\n )}\n { comboIndex < keyCombinations.value.length - 1 && <span aria-hidden=\"true\"> </span> }\n </span>\n ))}\n { props.suffix && (\n <span key=\"suffix\" class=\"v-hotkey__suffix\">{ props.suffix }</span>\n )}\n </>\n )}\n </div>\n ))\n },\n})\n\nexport type VHotkey = InstanceType<typeof VHotkey>\n\nexport type { KeyConfig, PlatformKeyConfig, KeyMapConfig, DisplayMode }\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"VHotkey.js","names":["VIcon","VKbd","makeBorderProps","useBorder","makeComponentProps","makeElevationProps","useElevation","splitKeyCombination","splitKeySequence","useLocale","useRtl","makeRoundedProps","useRounded","makeThemeProps","provideTheme","useVariant","computed","genericComponent","mergeDeep","propsFactory","useRender","processKey","config","requestedMode","isMac","keyCfg","mac","default","mode","icon","symbol","value","text","startsWith","slice","toUpperCase","hotkeyMap","ctrl","meta","cmd","shift","alt","enter","arrowup","arrowdown","arrowleft","arrowright","backspace","escape","makeVHotkeyProps","keys","String","displayMode","type","keyMap","Object","platform","inline","Boolean","disabled","prefix","suffix","variant","validator","v","includes","color","AND_DELINEATOR","Symbol","THEN_DELINEATOR","getKeyText","key","lowerKey","toLowerCase","result","applyDisplayModeToKey","replace","VHotkey","name","props","setup","t","themeClasses","rtlClasses","borderClasses","roundedClasses","elevationClasses","colorClasses","colorStyles","variantClasses","navigator","test","userAgent","keyCombinations","split","map","combination","sequenceGroups","i","length","group","push","keyParts","j","part","accessibleLabel","readableShortcuts","readableParts","Array","isArray","textKey","translateKey","join","shortcutText","getKeyTooltip","undefined","renderKey","keyIndex","isContained","KeyComponent","keyClasses","_createVNode","_normalizeClass","_normalizeStyle","renderDivider","_createElementVNode","content","_Fragment","comboIndex","_createTextVNode","class","style"],"sources":["../../../src/labs/VHotkey/VHotkey.tsx"],"sourcesContent":["/**\n * VHotkey Component\n *\n * Purpose: Renders keyboard shortcuts in a visually consistent and accessible way.\n * This component handles the complex logic of displaying keyboard combinations\n * across different platforms (Mac vs PC) and display modes (icons, symbols, text).\n *\n * Why it exists:\n * - Provides consistent visual representation of keyboard shortcuts\n * - Handles platform-specific key differences (Cmd vs Ctrl, Option vs Alt)\n * - Supports multiple display modes for different design needs\n * - Encapsulates complex key parsing and rendering logic\n * - Used throughout the command palette for instruction display\n *\n * Key Mapping Structure:\n * The keyMap uses a simple object structure where each key has:\n * - `default`: Required configuration for all platforms\n * - `mac`: Optional Mac-specific overrides\n * Each config can specify `symbol`, `icon`, and `text` representations.\n *\n * Example:\n * ```\n * ctrl: {\n * mac: { symbol: '⌃', icon: '$ctrl', text: 'Control' },\n * default: { text: 'Ctrl', icon: '$ctrl' }\n * }\n * ```\n */\n\n// Styles\nimport './VHotkey.scss'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VKbd } from '@/components/VKbd'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { splitKeyCombination, splitKeySequence } from '@/composables/hotkey/hotkey-parsing'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, mergeDeep, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { IconValue } from '@/composables/icons'\n\n// Display mode types for different visual representations\ntype DisplayMode = 'icon' | 'symbol' | 'text'\n\n// Extended variant type that includes our custom 'contained' variant\ntype HotkeyVariant = 'elevated' | 'flat' | 'tonal' | 'outlined' | 'text' | 'plain' | 'contained'\n\n// Key display tuple: [mode, content] where content is string or IconValue\ntype KeyDisplay = [Exclude<DisplayMode, 'icon'>, string] | [Extract<DisplayMode, 'icon'>, IconValue]\n\n// Key tuple: [mode, content, keycode] where content is string or IconValue\ntype Key = [Exclude<DisplayMode, 'icon'>, string, string] | [Extract<DisplayMode, 'icon'>, IconValue, string]\n\ntype KeyConfig = {\n symbol?: string\n icon?: string\n text: string\n}\n\ntype PlatformKeyConfig = {\n mac?: KeyConfig\n default: KeyConfig\n}\n\ntype KeyMapConfig = Record<string, PlatformKeyConfig>\n\nfunction processKey (config: PlatformKeyConfig, requestedMode: DisplayMode, isMac: boolean): KeyDisplay {\n const keyCfg = (isMac && config.mac) ? config.mac : config.default\n\n // 1. Resolve the safest display mode for the current platform\n const mode: DisplayMode = (() => {\n // Non-Mac platforms rarely use icons – prefer text\n if (requestedMode === 'icon' && !isMac) return 'text'\n\n // If the requested mode lacks an asset, fall back to text\n if (requestedMode === 'icon' && !keyCfg.icon) return 'text'\n if (requestedMode === 'symbol' && !keyCfg.symbol) return 'text'\n\n return requestedMode\n })()\n\n // 2. Pick value for the chosen mode, defaulting to text representation\n let value: string | IconValue = keyCfg[mode] ?? keyCfg.text\n\n // 3. Guard against icon tokens leaking into text mode (e.g. \"$ctrl\")\n if (mode === 'text' && typeof value === 'string' && value.startsWith('$') && !value.startsWith('$vuetify.')) {\n value = value.slice(1).toUpperCase() // \"$ctrl\" → \"CTRL\"\n }\n\n return mode === 'icon'\n ? ['icon', value as IconValue]\n : [mode as Exclude<DisplayMode, 'icon'>, value as string]\n}\n\nexport const hotkeyMap: KeyMapConfig = {\n ctrl: {\n mac: { symbol: '⌃', icon: '$ctrl', text: '$vuetify.hotkey.ctrl' },\n default: { text: 'Ctrl' },\n },\n meta: {\n mac: { symbol: '⌘', icon: '$command', text: '$vuetify.hotkey.command' },\n default: { text: 'Ctrl' },\n },\n cmd: {\n mac: { symbol: '⌘', icon: '$command', text: '$vuetify.hotkey.command' },\n default: { text: 'Ctrl' },\n },\n shift: {\n mac: { symbol: '⇧', icon: '$shift', text: '$vuetify.hotkey.shift' },\n default: { text: 'Shift' },\n },\n alt: {\n mac: { symbol: '⌥', icon: '$alt', text: '$vuetify.hotkey.option' },\n default: { text: 'Alt' },\n },\n enter: {\n default: { symbol: '↵', icon: '$enter', text: '$vuetify.hotkey.enter' },\n },\n arrowup: {\n default: { symbol: '↑', icon: '$arrowup', text: '$vuetify.hotkey.upArrow' },\n },\n arrowdown: {\n default: { symbol: '↓', icon: '$arrowdown', text: '$vuetify.hotkey.downArrow' },\n },\n arrowleft: {\n default: { symbol: '←', icon: '$arrowleft', text: '$vuetify.hotkey.leftArrow' },\n },\n arrowright: {\n default: { symbol: '→', icon: '$arrowright', text: '$vuetify.hotkey.rightArrow' },\n },\n backspace: {\n default: { symbol: '⌫', icon: '$backspace', text: '$vuetify.hotkey.backspace' },\n },\n escape: {\n default: { text: '$vuetify.hotkey.escape' },\n },\n ' ': {\n mac: { symbol: '␣', icon: '$space', text: '$vuetify.hotkey.space' },\n default: { text: '$vuetify.hotkey.space' },\n },\n '-': {\n default: { text: '-' },\n },\n}\n\nexport const makeVHotkeyProps = propsFactory({\n // String representing keyboard shortcuts (e.g., \"ctrl+k\", \"meta+shift+p\")\n keys: String,\n // How to display keys: 'symbol' uses special characters (⌘, ⌃), 'icon' uses SVG icons, 'text' uses words\n displayMode: {\n type: String as PropType<DisplayMode>,\n default: 'icon',\n },\n // Custom key mapping configuration. Users can import and modify the exported hotkeyMap as needed\n keyMap: {\n type: Object as PropType<KeyMapConfig>,\n default: () => hotkeyMap,\n },\n platform: {\n type: String as PropType<'auto' | 'pc' | 'mac'>,\n default: 'auto',\n },\n inline: Boolean,\n disabled: Boolean,\n prefix: String,\n suffix: String,\n variant: {\n type: String as PropType<HotkeyVariant>,\n default: 'elevated' as const,\n validator: (v: any) => ['elevated', 'flat', 'tonal', 'outlined', 'text', 'plain', 'contained'].includes(v),\n },\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeElevationProps(),\n color: String,\n}, 'VHotkey')\n\nconst AND_DELINEATOR = Symbol('VHotkey:AND_DELINEATOR') // For + separators\nconst THEN_DELINEATOR = Symbol('VHotkey:THEN_DELINEATOR') // For - separators\ntype Delineator = typeof AND_DELINEATOR | typeof THEN_DELINEATOR\n\nfunction getKeyText (keyMap: KeyMapConfig, key: string, isMac: boolean): string {\n const lowerKey = key.toLowerCase()\n\n if (lowerKey in keyMap) {\n const result = processKey(keyMap[lowerKey], 'text', isMac)\n return typeof result[1] === 'string' ? result[1] : String(result[1])\n }\n\n return key.toUpperCase()\n}\n\nfunction applyDisplayModeToKey (keyMap: KeyMapConfig, mode: DisplayMode, key: string, isMac: boolean): Key {\n const lowerKey = key.toLowerCase()\n\n if (lowerKey in keyMap) {\n const result = processKey(keyMap[lowerKey], mode, isMac)\n\n if (result[0] === 'text' && typeof result[1] === 'string' && result[1].startsWith('$') && !result[1].startsWith('$vuetify.')) {\n return ['text', result[1].replace('$', '').toUpperCase(), key]\n }\n\n return [...result, key]\n }\n\n return ['text', key.toUpperCase(), key]\n}\n\nexport const VHotkey = genericComponent()({\n name: 'VHotkey',\n\n props: makeVHotkeyProps(),\n\n setup (props) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n const { borderClasses } = useBorder(props)\n const { roundedClasses } = useRounded(props)\n const { elevationClasses } = useElevation(props)\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(() => ({\n color: props.color,\n variant: props.variant === 'contained' ? 'elevated' : props.variant,\n }))\n\n const isMac = computed(() =>\n props.platform === 'auto'\n ? (typeof navigator !== 'undefined' && /macintosh/i.test(navigator.userAgent))\n : props.platform === 'mac'\n )\n\n const keyCombinations = computed(() => {\n if (!props.keys) return []\n\n // Split by spaces to handle multiple key combinations\n // Example: \"ctrl+k meta+p\" -> [\"ctrl+k\", \"meta+p\"]\n return props.keys.split(' ').map(combination => {\n const result: Array<Key | Delineator> = []\n\n const sequenceGroups = splitKeySequence(combination)\n for (let i = 0; i < sequenceGroups.length; i++) {\n const group = sequenceGroups[i]\n\n // Add THEN delineator between sequence groups\n if (i > 0) result.push(THEN_DELINEATOR)\n\n const keyParts = splitKeyCombination(group)\n for (let j = 0; j < keyParts.length; j++) {\n const part = keyParts[j]\n\n // Add AND delineator between keys\n if (j > 0) result.push(AND_DELINEATOR)\n result.push(applyDisplayModeToKey(props.keyMap, props.displayMode, part, isMac.value))\n }\n }\n\n return result\n })\n })\n\n const accessibleLabel = computed(() => {\n if (!props.keys) return ''\n\n // Convert the parsed key combinations into readable text\n const readableShortcuts = keyCombinations.value.map(combination => {\n const readableParts: string[] = []\n\n for (const key of combination) {\n if (Array.isArray(key)) {\n // Always use text representation for screen readers\n const textKey = key[0] === 'icon' || key[0] === 'symbol'\n ? applyDisplayModeToKey(mergeDeep(hotkeyMap, props.keyMap), 'text', String(key[1]), isMac.value)[1]\n : key[1]\n readableParts.push(translateKey(textKey as string))\n } else {\n if (key === AND_DELINEATOR) {\n readableParts.push(t('$vuetify.hotkey.plus'))\n } else if (key === THEN_DELINEATOR) {\n readableParts.push(t('$vuetify.hotkey.then'))\n }\n }\n }\n\n return readableParts.join(' ')\n })\n\n const shortcutText = readableShortcuts.join(', ')\n return t('$vuetify.hotkey.shortcut', shortcutText)\n })\n\n function translateKey (key: string) {\n return key.startsWith('$vuetify.') ? t(key) : key\n }\n\n function getKeyTooltip (key: Key): string | undefined {\n if (props.displayMode === 'text') return undefined\n\n const textKey = getKeyText(props.keyMap, String(key[2]), isMac.value)\n return translateKey(textKey)\n }\n\n function renderKey (key: Key, keyIndex: number) {\n const isContained = props.variant === 'contained'\n const KeyComponent = isContained ? 'kbd' : VKbd\n const keyClasses = [\n 'v-hotkey__key',\n `v-hotkey__key-${key[0]}`,\n ...(isContained ? ['v-hotkey__key--nested'] : [\n borderClasses.value,\n roundedClasses.value,\n elevationClasses.value,\n colorClasses.value,\n ]),\n ]\n\n return (\n <KeyComponent\n key={ keyIndex }\n class={ keyClasses }\n style={ isContained ? undefined : colorStyles.value }\n aria-hidden=\"true\"\n title={ getKeyTooltip(key) }\n >\n {\n key[0] === 'icon' ? (\n <VIcon\n icon={ key[1] }\n aria-hidden=\"true\"\n />\n ) : translateKey(key[1])\n }\n </KeyComponent>\n )\n }\n\n function renderDivider (key: Delineator, keyIndex: number) {\n return (\n <span\n key={ keyIndex }\n class=\"v-hotkey__divider\"\n aria-hidden=\"true\"\n >\n { key === AND_DELINEATOR\n ? '+'\n : t('$vuetify.hotkey.then')}\n </span>\n )\n }\n\n useRender(() => {\n const content = (\n <>\n { props.prefix && (\n <span key=\"prefix\" class=\"v-hotkey__prefix\">{ props.prefix }</span>\n )}\n\n { keyCombinations.value.map((combination, comboIndex) => (\n <span class=\"v-hotkey__combination\" key={ comboIndex }>\n { combination.map((key, keyIndex) =>\n Array.isArray(key)\n ? renderKey(key, keyIndex)\n : renderDivider(key, keyIndex)\n )}\n { comboIndex < keyCombinations.value.length - 1 && (\n <span aria-hidden=\"true\"> </span>\n )}\n </span>\n ))}\n\n { props.suffix && (\n <span key=\"suffix\" class=\"v-hotkey__suffix\">{ props.suffix }</span>\n )}\n </>\n )\n\n return (\n <div\n class={[\n 'v-hotkey',\n {\n 'v-hotkey--disabled': props.disabled,\n 'v-hotkey--inline': props.inline,\n 'v-hotkey--contained': props.variant === 'contained',\n },\n themeClasses.value,\n rtlClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={ props.style }\n role=\"img\"\n aria-label={ accessibleLabel.value }\n >\n { props.variant !== 'contained' ? content : (\n <VKbd\n key=\"contained\"\n class={[\n 'v-hotkey__contained-wrapper',\n borderClasses.value,\n roundedClasses.value,\n elevationClasses.value,\n colorClasses.value,\n ]}\n style={ colorStyles.value }\n aria-hidden=\"true\"\n >\n { content }\n </VKbd>\n )}\n </div>\n )\n })\n },\n})\n\nexport type VHotkey = InstanceType<typeof VHotkey>\n\nexport type { KeyConfig, PlatformKeyConfig, KeyMapConfig, DisplayMode }\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -147,8 +147,6 @@
|
|
|
147
147
|
gap: $hotkey-combination-gap;
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
|
|
151
|
-
|
|
152
150
|
&--inline &__key {
|
|
153
151
|
&-symbol.v-kbd,
|
|
154
152
|
&-text.v-kbd {
|
|
@@ -209,22 +207,20 @@
|
|
|
209
207
|
}
|
|
210
208
|
|
|
211
209
|
&--variant-outlined &__key.v-kbd {
|
|
210
|
+
background: none;
|
|
211
|
+
|
|
212
212
|
@include tools.elevation(0);
|
|
213
|
-
& {
|
|
214
|
-
background: none;
|
|
215
|
-
}
|
|
216
213
|
}
|
|
217
214
|
|
|
218
215
|
&--variant-text {
|
|
219
216
|
.v-hotkey__key.v-kbd {
|
|
217
|
+
background: transparent !important;
|
|
218
|
+
border: none !important;
|
|
219
|
+
padding-left: 0;
|
|
220
|
+
padding-right: 0;
|
|
221
|
+
min-width: auto;
|
|
222
|
+
|
|
220
223
|
@include tools.elevation(0);
|
|
221
|
-
& {
|
|
222
|
-
background: transparent !important;
|
|
223
|
-
border: none !important;
|
|
224
|
-
padding-left: 0;
|
|
225
|
-
padding-right: 0;
|
|
226
|
-
min-width: auto;
|
|
227
|
-
}
|
|
228
224
|
}
|
|
229
225
|
|
|
230
226
|
.v-hotkey__combination {
|
|
@@ -237,17 +233,4 @@
|
|
|
237
233
|
box-shadow: unset;
|
|
238
234
|
}
|
|
239
235
|
}
|
|
240
|
-
|
|
241
|
-
// Screen reader only content
|
|
242
|
-
.sr-only {
|
|
243
|
-
position: absolute;
|
|
244
|
-
width: 1px;
|
|
245
|
-
height: 1px;
|
|
246
|
-
padding: 0;
|
|
247
|
-
margin: -1px;
|
|
248
|
-
overflow: hidden;
|
|
249
|
-
clip: rect(0, 0, 0, 0);
|
|
250
|
-
white-space: nowrap;
|
|
251
|
-
border: 0;
|
|
252
|
-
}
|
|
253
236
|
}
|