// Generated by Framer (3c6ede6)
import * as React from "react";
import { motion, LayoutGroup } from "framer-motion";
import { useOnVariantChange, useActiveVariantCallback, Image, transformTemplate, addFonts, withCSS, addPropertyControls, ControlType, cx, useVariantState, CycleVariantState, RichText } from "framer";
import * as sharedStyle from "../css/AS4PcgcTr";
import * as sharedStyle1 from "../css/xZndidUCt";
import * as sharedStyle2 from "../css/ro7OPezbn";
const cycleOrder = ["eoTXJYY6N", "vRz6iFx98", "dxtA8R9ro", "cejOMEH6_"];
const variantClassNames = {eoTXJYY6N: "framer-v-1h3kkwj", vRz6iFx98: "framer-v-1f45kyb", dxtA8R9ro: "framer-v-gjks3k", cejOMEH6_: "framer-v-i8tr5s"};
function addPropertyOverrides(overrides, ...variants) {
const nextOverrides = {}
variants?.forEach(variant => variant && Object.assign(nextOverrides, overrides[variant]))
return nextOverrides
}
const humanReadableVariantMap = {Desktop: "eoTXJYY6N", Tablet: "vRz6iFx98", Phone: "dxtA8R9ro", "Phone Open": "cejOMEH6_"};
const transitions = {default: {type: "spring", ease: [0.44, 0, 0.56, 1], duration: 1, delay: 0, stiffness: 400, damping: 35, mass: 1}};
const BASE62 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
const useRandomID = () => {const ref = React.useRef(null);
if (ref.current === null) {
ref.current = Array(5).fill(0).map(() => BASE62[Math.floor(Math.random() * BASE62.length)]).join("");
}
return ref.current;}
export interface Props extends React.HTMLAttributes { layoutId?: string | null; width?: number; height?: number; layoutDependency?: string | number; variant?: keyof typeof humanReadableVariantMap; }
const Component = React.forwardRef(function({ id, style: externalStyle = {}, className, width, height, layoutId, variant: outerVariant = "eoTXJYY6N", ...restProps }, ref) {
const outerVariantId = humanReadableVariantMap[outerVariant];
const variant = outerVariantId || outerVariant;
const { variants, baseVariant, gestureVariant, classNames, transition, setVariant, setGestureState } = useVariantState({defaultVariant: "eoTXJYY6N", variant, transitions, variantClassNames, cycleOrder});
const layoutDependency = variants.join("-") + restProps.layoutDependency;
const { activeVariantCallback, delay } = useActiveVariantCallback(baseVariant);
const onTap1t0f0tf = activeVariantCallback(async (...args) => {
setVariant("cejOMEH6_")
})
const onTap7q5mbe = activeVariantCallback(async (...args) => {
setVariant("dxtA8R9ro")
})
const isDisplayed1 = () => {
if (["dxtA8R9ro", "cejOMEH6_"].includes(baseVariant)) return true;
return false
}
const isDisplayed2 = () => {
if (baseVariant === "dxtA8R9ro") return false
return true
}
const isDisplayed3 = () => {
if (baseVariant === "dxtA8R9ro") return false
return true
}
const defaultLayoutId = useRandomID();
const { pointerEvents, ...style } = externalStyle
return (
setGestureState({isHovered: true})} onHoverEnd={() => setGestureState({isHovered: false})} onTapStart={() => setGestureState({isPressed: true})} onTap={() => setGestureState({isPressed: false})} onTapCancel={() => setGestureState({isPressed: false})} className={cx("framer-ECLZz", sharedStyle.className, sharedStyle1.className, sharedStyle2.className, classNames)} style={{display: "contents", pointerEvents: pointerEvents ?? undefined}}>
{{ text-placeholder }}"} htmlFromDesign={""}/>{isDisplayed1() && ()}{isDisplayed2() && ({{ text-placeholder }}
"} htmlFromDesign={"About
"} variants={{dxtA8R9ro: {opacity: 0}, cejOMEH6_: {opacity: 1}}}/>)}{isDisplayed3() && ({{ text-placeholder }}"} htmlFromDesign={"Contact
"} variants={{dxtA8R9ro: {opacity: 0}, cejOMEH6_: {opacity: 1}}}/>)}
)
});
const css = [".framer-ECLZz [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none;}", "@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }", ".framer-ECLZz * { box-sizing: border-box; }", ".framer-ECLZz .framer-1h3kkwj { position: relative; overflow: hidden; width: 1200px; height: 80px; display: flex; flex-direction: row; justify-content: center; align-content: center; align-items: center; flex-wrap: nowrap; gap: 24px; padding: 24px 24px 24px 24px; }", ".framer-ECLZz .framer-19nhdre { position: relative; overflow: visible; width: 1px; height: 32px; flex: 1 0 0px; display: flex; flex-direction: row; justify-content: space-between; align-content: flex-start; align-items: flex-start; flex-wrap: nowrap; padding: 0px 0px 0px 0px; }", ".framer-ECLZz .framer-q7dosh { position: relative; overflow: hidden; width: auto; height: 32px; flex: none; white-space: pre; }", ".framer-ECLZz .framer-cixk1f { position: relative; overflow: hidden; width: 32px; height: var(--framer-aspect-ratio-supported, 32px); flex: none; aspect-ratio: 1 / 1; }", ".framer-ECLZz .framer-137fe1y { position: absolute; overflow: hidden; will-change: transform; width: 24px; height: 2px; bottom: 7px; left: calc(50.00000000000002% - 24px / 2); flex: none; }", ".framer-ECLZz .framer-191ndl0 { position: absolute; overflow: hidden; will-change: transform; width: 24px; height: 2px; left: calc(50.00000000000002% - 24px / 2); top: calc(50.00000000000002% - 2px / 2); flex: none; }", ".framer-ECLZz .framer-ec9dat { position: absolute; overflow: hidden; will-change: transform; width: 24px; height: 2px; left: calc(50.00000000000002% - 24px / 2); top: 7px; flex: none; }", ".framer-ECLZz .framer-9rkqj0, .framer-ECLZz .framer-wzr83z { position: relative; overflow: visible; width: auto; height: auto; flex: none; white-space: pre; }", "@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-ECLZz framer-1h3kkwj > * { margin: 0px; margin-left: calc(24px / 2); margin-right: calc(24px / 2); } .framer-ECLZz framer-1h3kkwj > :first-child { margin-left: 0px; } .framer-ECLZz framer-1h3kkwj > :last-child { margin-right: 0px; } }", ".framer-ECLZz.framer-v-1f45kyb .framer-1h3kkwj { width: 810px; height: 80px; }", ".framer-ECLZz.framer-v-gjks3k .framer-1h3kkwj { width: 390px; height: 80px; }", ".framer-ECLZz.framer-v-gjks3k .framer-cixk1f { cursor: pointer; }", ".framer-ECLZz.framer-v-i8tr5s .framer-1h3kkwj { display: flex; flex-direction: column; justify-content: flex-start; align-content: center; align-items: center; flex-wrap: nowrap; gap: 0px; width: 390px; height: min-content; padding: 24px 24px 60px 24px; }", ".framer-ECLZz.framer-v-i8tr5s .framer-19nhdre { width: 100%; height: 64px; right: auto; bottom: auto; left: auto; top: auto; flex: none; align-self: auto; aspect-ratio: unset; display: flex; flex-direction: row; justify-content: space-between; align-content: flex-start; align-items: flex-start; flex-wrap: nowrap; gap: unset; order: 0; }", ".framer-ECLZz.framer-v-i8tr5s .framer-q7dosh { width: auto; height: 32px; right: auto; bottom: auto; left: auto; top: auto; flex: none; align-self: auto; white-space: pre; aspect-ratio: unset; }", ".framer-ECLZz.framer-v-i8tr5s .framer-cixk1f { width: 32px; height: var(--framer-aspect-ratio-supported, 32px); right: auto; bottom: auto; left: auto; top: auto; flex: none; align-self: auto; aspect-ratio: 1 / 1; cursor: pointer; }", ".framer-ECLZz.framer-v-i8tr5s .framer-137fe1y { width: 24px; height: 2px; right: auto; bottom: 15px; left: calc(50.00000000000002% - 24px / 2); top: auto; flex: none; aspect-ratio: unset; }", ".framer-ECLZz.framer-v-i8tr5s .framer-191ndl0 { width: 2px; height: 2px; right: auto; bottom: auto; left: calc(50.00000000000002% - 2px / 2); top: calc(50.00000000000002% - 2px / 2); flex: none; aspect-ratio: unset; }", ".framer-ECLZz.framer-v-i8tr5s .framer-ec9dat { width: 24px; height: 2px; right: auto; bottom: auto; left: calc(50.00000000000002% - 24px / 2); top: 15px; flex: none; aspect-ratio: unset; }", ".framer-ECLZz.framer-v-i8tr5s .framer-9rkqj0 { width: auto; height: auto; right: auto; bottom: auto; left: auto; top: auto; flex: none; align-self: auto; white-space: pre; aspect-ratio: unset; order: 1; }", ".framer-ECLZz.framer-v-i8tr5s .framer-wzr83z { width: auto; height: auto; right: auto; bottom: auto; left: auto; top: auto; flex: none; align-self: auto; white-space: pre; aspect-ratio: unset; order: 2; }", "@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-ECLZzframer-1h3kkwj > * { margin: 0px; margin-top: calc(0px / 2); margin-bottom: calc(0px / 2); } .framer-ECLZzframer-1h3kkwj > :first-child { margin-top: 0px; } .framer-ECLZzframer-1h3kkwj > :last-child { margin-bottom: 0px; } }", ...sharedStyle.css, ...sharedStyle1.css, ...sharedStyle2.css]
/**
* This is a generated Framer component.
* @framerIntrinsicHeight 80
* @framerIntrinsicWidth 1200
* @framerCanvasComponentVariantDetails {"propertyName":"variant","data":{"default":{"layout":["fixed","fixed"]},"vRz6iFx98":{"layout":["fixed","fixed"]},"dxtA8R9ro":{"layout":["fixed","fixed"]},"cejOMEH6_":{"layout":["fixed","auto"]}}}
*/
const FramerpQWsMWkcK: React.ComponentType = withCSS(Component, css) as typeof Component;
export default FramerpQWsMWkcK;
FramerpQWsMWkcK.displayName = "Topbar";
FramerpQWsMWkcK.defaultProps = {width: 1200, height: 80};
addPropertyControls(FramerpQWsMWkcK, {variant: {type: ControlType.Enum, title: "Variant", options: ["eoTXJYY6N", "vRz6iFx98", "dxtA8R9ro", "cejOMEH6_"], optionTitles: ["Desktop", "Tablet", "Phone", "Phone Open"]}} as any);
addFonts(FramerpQWsMWkcK, [{url: "https://fonts.gstatic.com/s/manrope/v12/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk59E-_F87jxeN7B.ttf", family: "Manrope", style: "normal", weight: "800", moduleAsset: {url: "https://fonts.gstatic.com/s/manrope/v12/xn7_YHE41ni1AdIRqAuZuw1Bx9mbZk59E-_F87jxeN7B.ttf", localModuleIdentifier: "local-module:canvasComponent/pQWsMWkcK:default"}}, ...sharedStyle.fonts, ...sharedStyle1.fonts, ...sharedStyle2.fonts]);