{"version":3,"file":"shared-lib.C_Vl3FIa.mjs","names":["fonts","css","className"],"sources":["https:/framerusercontent.com/modules/uvrOyMGvRjEjcKOKuXM1/HSqv9PpA52mv0oPC7xaB/OGkjbsmeZ.js","https:/framerusercontent.com/modules/wY1lUkgDoBolK85qgRnI/LMIOI5S66kwGh5s8H5d4/KeyboardShortcuts.js","https:/framerusercontent.com/modules/rr50xui2S20nc6VsX0id/8JnJpWeEFx0XID3j75rW/CKGtEPdsH.js"],"sourcesContent":["// Generated by Framer (612a550)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"__SystemDefault-400-normal__\"]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=['.framer-QCyxK .framer-styles-preset-1ejobqh:not(.rich-text-wrapper), .framer-QCyxK .framer-styles-preset-1ejobqh.rich-text-wrapper p { --framer-font-family: \"system-ui\", \"-apple-system\", \"BlinkMacSystemFont\", \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif, \"System Default\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0px; --framer-line-height: 22px; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-3d86ccd8-6a73-4429-b5d0-60d83e738129, #717680); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-QCyxK\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Keyboard shortcut component for website navigation\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * Keyboard Shortcuts Navigation\n * @framerDisableUnlink\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 120\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function KeyboardShortcuts(props){const{shortcuts=[{key:\"h\",url:\"/\",openInNewTab:false},{key:\"a\",url:\"/about\",openInNewTab:false},{key:\"c\",url:\"/contact\",openInNewTab:false}]}=props;const[pressedKeys,setPressedKeys]=useState(new Set);useEffect(()=>{if(typeof window===\"undefined\"||RenderTarget.current()===RenderTarget.thumbnail)return;const handleKeyDown=event=>{// Ignore if user is typing in an input field\nif(event.target instanceof HTMLInputElement||event.target instanceof HTMLTextAreaElement||event.target instanceof HTMLSelectElement){return;}const key=event.key.toLowerCase();// Track pressed keys\nstartTransition(()=>{setPressedKeys(prev=>new Set([...prev,key]));});// Check for shortcut matches\nfor(const shortcut of shortcuts){const shortcutKey=shortcut.key.toLowerCase();// Check if shortcut contains modifier keys\nif(shortcutKey.includes(\"ctrl+\")||shortcutKey.includes(\"cmd+\")||shortcutKey.includes(\"alt+\")||shortcutKey.includes(\"shift+\")){// Parse modifier combination\nconst parts=shortcutKey.split(\"+\");const modifiers=parts.slice(0,-1);const mainKey=parts[parts.length-1];// Check if all required modifiers are pressed and main key matches\nconst ctrlPressed=modifiers.includes(\"ctrl\")&&(event.ctrlKey||event.metaKey);const altPressed=modifiers.includes(\"alt\")&&event.altKey;const shiftPressed=modifiers.includes(\"shift\")&&event.shiftKey;const cmdPressed=modifiers.includes(\"cmd\")&&event.metaKey;const allModifiersMatch=(!modifiers.includes(\"ctrl\")||ctrlPressed)&&(!modifiers.includes(\"cmd\")||cmdPressed)&&(!modifiers.includes(\"alt\")||altPressed)&&(!modifiers.includes(\"shift\")||shiftPressed)&&(modifiers.includes(\"ctrl\")?event.ctrlKey||event.metaKey:true)&&(modifiers.includes(\"cmd\")?event.metaKey:true)&&(modifiers.includes(\"alt\")?event.altKey:true)&&(modifiers.includes(\"shift\")?event.shiftKey:true);if(allModifiersMatch&&mainKey===key){event.preventDefault();if(shortcut.openInNewTab){window.open(shortcut.url,\"_blank\");}else{window.location.href=shortcut.url;}return;}}else{// Simple key match (single key) - only if no modifiers are pressed\nif(shortcutKey===key&&!event.ctrlKey&&!event.metaKey&&!event.altKey&&!event.shiftKey){event.preventDefault();if(shortcut.openInNewTab){window.open(shortcut.url,\"_blank\");}else{window.location.href=shortcut.url;}return;}}}};const handleKeyUp=()=>{startTransition(()=>setPressedKeys(new Set));};const handleBlur=()=>{startTransition(()=>setPressedKeys(new Set));};window.addEventListener(\"keydown\",handleKeyDown);window.addEventListener(\"keyup\",handleKeyUp);window.addEventListener(\"blur\",handleBlur);return()=>{window.removeEventListener(\"keydown\",handleKeyDown);window.removeEventListener(\"keyup\",handleKeyUp);window.removeEventListener(\"blur\",handleBlur);};},[shortcuts,pressedKeys]);if(RenderTarget.current()===RenderTarget.thumbnail){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:\"#F5F5F5\",borderRadius:\"8px\"},children:/*#__PURE__*/_jsxs(\"div\",{style:{textAlign:\"center\",opacity:.7},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:\"24px\",marginBottom:\"8px\"},children:\"⌨️\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:\"14px\"},children:\"Keyboard Shortcuts\"})]})});}return null;}addPropertyControls(KeyboardShortcuts,{shortcuts:{type:ControlType.Array,title:\"Shortcuts\",control:{type:ControlType.Object,controls:{key:{type:ControlType.String,title:\"Key\",defaultValue:\"h\",placeholder:\"e.g. h, k, n\"},url:{type:ControlType.String,title:\"URL\",defaultValue:\"/\",placeholder:\"/page or https://example.com\"},openInNewTab:{type:ControlType.Boolean,title:\"Open in New Tab\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"}}},defaultValue:[{key:\"h\",url:\"/\",openInNewTab:false},{key:\"a\",url:\"/about\",openInNewTab:false},{key:\"c\",url:\"/contact\",openInNewTab:false}],maxCount:10}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"KeyboardShortcuts\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"120\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 200\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./KeyboardShortcuts.map","// Generated by Framer (ba156f5)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"__SystemDefault-700-normal__\"]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=['.framer-RvDNI .framer-styles-preset-6masdk:not(.rich-text-wrapper), .framer-RvDNI .framer-styles-preset-6masdk.rich-text-wrapper h1 { --framer-font-family: \"system-ui\", \"-apple-system\", \"BlinkMacSystemFont\", \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif, \"System Default\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 48px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 56px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-28c9c3cc-40f2-4a6c-af23-fd713333b3d9, #141414); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-RvDNI .framer-styles-preset-6masdk:not(.rich-text-wrapper), .framer-RvDNI .framer-styles-preset-6masdk.rich-text-wrapper h1 { --framer-font-family: \"system-ui\", \"-apple-system\", \"BlinkMacSystemFont\", \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif, \"System Default\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 42px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 48px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-28c9c3cc-40f2-4a6c-af23-fd713333b3d9, #141414); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-RvDNI .framer-styles-preset-6masdk:not(.rich-text-wrapper), .framer-RvDNI .framer-styles-preset-6masdk.rich-text-wrapper h1 { --framer-font-family: \"system-ui\", \"-apple-system\", \"BlinkMacSystemFont\", \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif, \"System Default\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 36px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 42px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-28c9c3cc-40f2-4a6c-af23-fd713333b3d9, #141414); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-RvDNI\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}