{"version":3,"mappings":"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","names":["getCurrentYear","LandingFooterStore","Store","themeStore","languageStore","BsLandingFooter","LitElement","Controller","sharedStyles","css","unsafeCSS","EMOJI_FONT_NAME","props","addRouteChangedListener","removeRouteChangedListener","language","setLanguage","colorMode","isDark","isColorModeDark","html","translate","ROUTES","e","setColorMode","classMap","getBestBrowserLanguageCode","LANGUAGE_CODES","code","getLanguageEmoji","__decorateClass","customElement","STICKY_NAVBAR_TRIGGER","LINKS","LandingNavbarStore","appStore","sessionStore","BsLandingNavbar","sticky","openContactSales","__vitePreload","openUserAuth","get","DEFAULT_AUTH_PROVIDER_KINDS","getStarted","isMenuOpen","setIsMenuOpen","pathname","repeat","path","label","isMobile","sessionUser","when","n","ICON_CLOSE","ICON_MENU","property","ROUTE_INFO_MAP","id","_a","ALL_FEATURES","match","c","feature","HELP_SECTIONS","article","TOOLBOX_ITEMS_MAP","key","items","item","getToolboxMarkdownContent","markdown","_b","BLOG_ARTICLES","LandingPageStore","BsLandingPage","user","reloadApp","listenForLangChanged","saveUTM","getInfo","route","title","description","_c","_d","_e","matchPart","pushState","loadLiveChatButton","isNavbarDark","state"],"sources":["../../src/molecules/landing/landing-footer.ts","../../src/molecules/landing/landing-navbar.ts","../../src/pages/landing/landing-page.ts"],"sourcesContent":["import { css, html, LitElement, PropertyValues, unsafeCSS } from \"lit\";\nimport { customElement } from \"lit/decorators/custom-element.js\";\nimport { Store } from \"../../state/store\";\nimport { Controller } from \"../../state/controller\";\nimport { sharedStyles } from \"../../styles/shared\";\nimport { addRouteChangedListener, removeRouteChangedListener } from \"../../util/route-util\";\nimport { EMOJI_FONT_NAME, ROUTES } from \"../../config\";\nimport { themeStore } from \"../../state/theme/theme-store\";\nimport { setColorMode } from \"../../state/theme/theme-action\";\nimport \"../../atoms/switch\";\nimport \"../../atoms/form-item\";\nimport \"../../atoms/seo/seo-link\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { isColorModeDark } from \"../../util/color-mode-util\";\nimport { getLanguageEmoji, LANGUAGE_CODES, LanguageCode } from \"shared\";\nimport { setLanguage } from \"../../state/language/language-action\";\nimport { getBestBrowserLanguageCode } from \"../../util/translate-util\";\nimport { translate } from \"lit-translate\";\nimport { languageStore } from \"../../state/language/language-store\";\n\nfunction getCurrentYear() {\n\treturn new Date().getFullYear();\n}\n\nclass LandingFooterStore extends Store {\n\tmodel$ = {\n\t\tcolorMode: themeStore.model$.colorMode,\n\t\tlanguage: languageStore.model$.currentLanguage\n\t};\n}\n\n@customElement(\"bs-landing-footer\")\nexport class BsLandingFooter extends LitElement {\n\tstatic get styles() {\n\t\treturn [\n\t\t\tsharedStyles,\n\t\t\tcss`\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: space-between;\n\t\t\t\t\tbackground: var(--shade-light);\n\t\t\t\t\tcolor: var(--shade-contrast-light);\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tpadding: var(--space-xl) 100px var(--space-xl);\n\t\t\t\t}\n\n\t\t\t\t.active {\n\t\t\t\t\tcursor: default;\n\t\t\t\t\tfont-weight: 800;\n\t\t\t\t}\n\n\t\t\t\t.color-mode-emoji {\n\t\t\t\t\tfont-family: \"${unsafeCSS(EMOJI_FONT_NAME)}\";\n\t\t\t\t\tfilter: grayscale(100%);\n\t\t\t\t\topacity: 0.5;\n\t\t\t\t\ttransition:\n\t\t\t\t\t\ttransform 120ms ease-out,\n\t\t\t\t\t\topacity 120ms ease-out;\n\t\t\t\t\ttransform: scale(0.9) rotate(10deg);\n\t\t\t\t}\n\n\t\t\t\t.color-mode-emoji.active {\n\t\t\t\t\tfilter: unset;\n\t\t\t\t\topacity: 1;\n\t\t\t\t\ttransform: scale(1) rotate(0deg);\n\t\t\t\t}\n\n\t\t\t\t#language-select {\n\t\t\t\t\tmargin: 0 0 0 var(--space-m);\n\t\t\t\t}\n\n\t\t\t\t#links {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tjustify-content: flex-end;\n\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t}\n\n\t\t\t\t@media (max-width: 800px) {\n\t\t\t\t\t:host {\n\t\t\t\t\t\tflex-direction: column;\n\t\t\t\t\t\tgap: var(--space-s);\n\t\t\t\t\t\tpadding: var(--space-xl) var(--space-xxl);\n\t\t\t\t\t}\n\n\t\t\t\t\t#links {\n\t\t\t\t\t\talign-items: center;\n\t\t\t\t\t\tjustify-content: center;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`\n\t\t];\n\t}\n\n\tprotected controller = new Controller(this, new LandingFooterStore());\n\tprotected boundRouteChanged = this.routeChanged.bind(this);\n\n\tprotected firstUpdated(props: PropertyValues) {\n\t\tsuper.firstUpdated(props);\n\t\taddRouteChangedListener(this.boundRouteChanged);\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t\tremoveRouteChangedListener(this.boundRouteChanged);\n\t}\n\n\trouteChanged() {\n\t\tthis.requestUpdate();\n\t}\n\n\tselectLanguage(language: LanguageCode) {\n\t\tsetLanguage(language);\n\t}\n\n\trender() {\n\t\tconst { colorMode, language } = this.controller.model;\n\t\tconst isDark = isColorModeDark(colorMode);\n\t\treturn html`\n\t\t\t
© ${getCurrentYear()} Ideamap. ${translate(\"All rights reserved\")}.
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t) => setColorMode(e.detail ? \"dark\" : \"light\")}\"\n\t\t\t\t>\n\t\t\t\t\t☀️\n\t\t\t\t\t🌙\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tthis.selectLanguage(\n\t\t\t\t\t\t\t\t((e.target as HTMLSelectElement).value || getBestBrowserLanguageCode()) as LanguageCode\n\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${LANGUAGE_CODES.map(\n\t\t\t\t\t\t\t(code) =>\n\t\t\t\t\t\t\t\thtml``\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t`;\n\t}\n}\n","import { css, html, LitElement } from \"lit\";\nimport { customElement } from \"lit/decorators/custom-element.js\";\nimport { Store } from \"../../state/store\";\nimport { Controller } from \"../../state/controller\";\nimport { sharedStyles } from \"../../styles/shared\";\nimport { appStore } from \"../../state/app/app-store\";\nimport { property } from \"lit/decorators/property.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { addRouteChangedListener, removeRouteChangedListener } from \"../../util/route-util\";\nimport { ROUTES } from \"../../config\";\nimport { when } from \"lit/directives/when.js\";\nimport { PropertyValues } from \"lit/development\";\nimport { openUserAuth } from \"../../dialogs/open-user-auth\";\nimport { DEFAULT_AUTH_PROVIDER_KINDS } from \"shared\";\nimport \"../../atoms/logo\";\nimport \"../../atoms/title\";\nimport \"../../atoms/card\";\nimport \"../../atoms/text\";\nimport \"../../atoms/form-item\";\nimport \"../../atoms/seo/seo-link\";\nimport { setIsMenuOpen } from \"../../state/app/app-action\";\nimport { ICON_CLOSE, ICON_MENU } from \"../../../icons\";\nimport { themeStore } from \"../../state/theme/theme-store\";\nimport { getStarted } from \"../../util/landing-util\";\nimport { sessionStore } from \"../../state/session/session-store\";\nimport { repeat } from \"lit/directives/repeat.js\";\nimport { DirectiveResult } from \"lit/async-directive\";\nimport { get, translate } from \"lit-translate\";\n\nconst STICKY_NAVBAR_TRIGGER = 60;\n\nconst LINKS: { label: DirectiveResult; path: string }[] = [\n\t{ label: translate(\"Features\"), path: ROUTES.features() },\n\t{ label: translate(\"Pricing\"), path: ROUTES.pricing },\n\t{ label: translate(\"Help center\"), path: ROUTES.help() },\n\t//{ label: \"Blog\", path: ROUTES.blog() },\n\t{ label: translate(\"Toolbox\"), path: ROUTES.toolbox() }\n];\n\nclass LandingNavbarStore extends Store {\n\tmodel$ = {\n\t\tisMobile: appStore.model$.isMobile,\n\t\tisMenuOpen: appStore.model$.isMenuOpen,\n\t\tcolorMode: themeStore.model$.colorMode,\n\t\tsessionUser: sessionStore.model$.sessionUser\n\t};\n}\n\n@customElement(\"bs-landing-navbar\")\nexport class BsLandingNavbar extends LitElement {\n\tstatic get styles() {\n\t\treturn [\n\t\t\tsharedStyles,\n\t\t\tcss`\n\t\t\t\t#nav {\n\t\t\t\t\tposition: fixed;\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tz-index: 12345678;\n\t\t\t\t\tpadding: 0 var(--space-l);\n\t\t\t\t}\n\n\t\t\t\t:host([dark][sticky]) #nav-container,\n\t\t\t\t:host([dark]) #mobile-menu,\n\t\t\t\t:host([dark]) {\n\t\t\t\t\tcolor: var(--light);\n\t\t\t\t\tbackground: rgba(12, 12, 12, 0.85);\n\t\t\t\t}\n\n\t\t\t\t:host([sticky][dark]) #nav-container {\n\t\t\t\t\tborder-color: var(--shade-dark);\n\t\t\t\t}\n\n\t\t\t\t:host([dark]) bs-form-item[flat] {\n\t\t\t\t\t--form-item-bg: var(--light);\n\t\t\t\t}\n\n\t\t\t\t:host([dark]) #cta {\n\t\t\t\t\t--form-item-color: var(--primary-contrast-normal);\n\t\t\t\t\t--form-item-bg: var(--primary-normal);\n\t\t\t\t}\n\n\t\t\t\t:host([sticky]) #nav-container {\n\t\t\t\t\tmax-width: 1350px;\n\t\t\t\t\ttransform: translateY(10px);\n\t\t\t\t\t/*background: var(--background);*/\n\t\t\t\t\tbackground: rgba(255, 255, 255, 0.9);\n\t\t\t\t\tbackdrop-filter: blur(10px);\n\t\t\t\t\t-webkit-backdrop-filter: blur(10px);\n\t\t\t\t\tborder: 1px solid var(--shade-normal);\n\t\t\t\t\tbox-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);\n\t\t\t\t}\n\n\t\t\t\t#nav-container {\n\t\t\t\t\tpadding: var(--space-m) var(--space-l);\n\t\t\t\t\tmargin: 0 auto;\n\t\t\t\t\tmax-width: 1400px;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tjustify-content: space-between;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\ttransition:\n\t\t\t\t\t\ttransform 120ms ease-out,\n\t\t\t\t\t\tmax-width 120ms ease-out,\n\t\t\t\t\t\tborder 120ms ease-out,\n\t\t\t\t\t\tbox-shadow 120ms ease-out,\n\t\t\t\t\t\tbackground-color 120ms ease-out,\n\t\t\t\t\t\tcolor 120ms ease-out;\n\t\t\t\t\tborder-radius: var(--border-radius-l);\n\t\t\t\t\tposition: relative;\n\t\t\t\t}\n\n\t\t\t\t#nav-container > * {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\talign-items: center;\n\t\t\t\t\tgap: var(--space-m);\n\t\t\t\t}\n\n\t\t\t\t.active {\n\t\t\t\t\tcursor: default;\n\t\t\t\t\tfont-weight: 800;\n\t\t\t\t}\n\n\t\t\t\t#mobile-menu {\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\ttop: calc(100% + var(--space-m));\n\t\t\t\t\theight: 60vh;\n\t\t\t\t\tz-index: 1234567;\n\t\t\t\t\tanimation: move-in 120ms ease-out;\n\t\t\t\t\tanimation-fill-mode: forwards;\n\t\t\t\t}\n\n\t\t\t\t#mobile-menu #menu {\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\t--form-item-justify-content: flex-start;\n\t\t\t\t\t--form-item-button-transform-hover: none;\n\t\t\t\t\tgap: var(--space-s);\n\t\t\t\t}\n\n\t\t\t\t#mobile-menu > * {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t}\n\n\t\t\t\t@keyframes move-in {\n\t\t\t\t\tfrom {\n\t\t\t\t\t\topacity: 0;\n\t\t\t\t\t\ttransform: translateY(-20px);\n\t\t\t\t\t}\n\t\t\t\t\tto {\n\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t\ttransform: translateY(0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@media (max-width: 800px) {\n\t\t\t\t\t#nav {\n\t\t\t\t\t\tpadding: 0 var(--space-m);\n\t\t\t\t\t}\n\n\t\t\t\t\t#nav-container {\n\t\t\t\t\t\tpadding: var(--space-m);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@media (max-width: 1000px) {\n\t\t\t\t\t#contact-sales-button {\n\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t`\n\t\t];\n\t}\n\n\tprotected controller = new Controller(this, new LandingNavbarStore(), {\n\t\tcolorMode: this.updateColorMode.bind(this)\n\t});\n\n\t@property({ type: Boolean, reflect: true }) sticky = false;\n\t@property({ type: Boolean, reflect: true }) dark = false;\n\n\tprotected boundUpdateStickyNavbar = this.updateStickyNavbar.bind(this);\n\tprotected boundRouteChanged = this.routeChanged.bind(this);\n\n\tprotected firstUpdated(props: PropertyValues) {\n\t\tsuper.firstUpdated(props);\n\t\twindow.addEventListener(\"scroll\", this.boundUpdateStickyNavbar);\n\t\taddRouteChangedListener(this.boundRouteChanged);\n\t\tthis.updateColorMode();\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t\tremoveRouteChangedListener(this.boundRouteChanged);\n\t}\n\n\tupdateColorMode() {\n\t\tconst { colorMode } = this.controller.model;\n\t\tthis.dark = colorMode === \"dark\";\n\t}\n\n\tupdateStickyNavbar() {\n\t\tconst sticky = window.scrollY > STICKY_NAVBAR_TRIGGER;\n\t\tif (this.sticky !== sticky) {\n\t\t\tthis.sticky = sticky;\n\t\t}\n\t}\n\n\trouteChanged() {\n\t\tthis.requestUpdate();\n\t}\n\n\tasync contactSales() {\n\t\tconst { openContactSales } = await import(\"../../dialogs/open-contact-sales\");\n\t\tawait openContactSales();\n\t}\n\n\tasync signIn() {\n\t\tawait openUserAuth({\n\t\t\theadline: get(\"Sign in\"),\n\t\t\ttext: get(\"Choose how you want to continue\"),\n\t\t\tkinds: DEFAULT_AUTH_PROVIDER_KINDS\n\t\t});\n\t}\n\n\tgetStarted() {\n\t\tgetStarted(\"navbar\");\n\t}\n\n\tlaunchApp() {\n\t\twindow.open(ROUTES.home, \"_blank\");\n\t}\n\n\ttoggleMenu() {\n\t\tconst { isMenuOpen } = this.controller.model;\n\t\tsetIsMenuOpen(!isMenuOpen);\n\t}\n\n\trenderMenu() {\n\t\tconst { pathname } = location;\n\t\treturn html`\n\t\t\t
\n\t\t\t\t${repeat(\n\t\t\t\t\tLINKS,\n\t\t\t\t\t({ path, label }) => html`\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t`\n\t\t\t\t)}\n\t\t\t
\n\t\t`;\n\t}\n\n\trenderMobileMenu() {\n\t\treturn html`\n\t\t\t\n\t\t\t\t
${this.renderMenu()}
\n\t\t\t\t\n\t\t\t
\n\t\t`;\n\t}\n\n\trenderCta() {\n\t\treturn html`\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t`;\n\t}\n\n\trenderLogo() {\n\t\treturn html`\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t`;\n\t}\n\n\trender() {\n\t\tconst { isMobile, isMenuOpen, sessionUser } = this.controller.model;\n\t\treturn html`\n\t\t\t\n\t\t`;\n\t}\n}\n","import { css, html, LitElement, PropertyValues } from \"lit\";\nimport { customElement } from \"lit/decorators/custom-element.js\";\nimport { sharedStyles } from \"../../styles/shared\";\nimport \"../../molecules/landing/landing-footer\";\nimport \"../../molecules/landing/landing-navbar\";\nimport { ROUTES } from \"../../config\";\nimport { addRouteChangedListener, pushState, reloadApp, removeRouteChangedListener } from \"../../util/route-util\";\nimport { setIsMenuOpen } from \"../../state/app/app-action\";\nimport { state } from \"lit/decorators/state.js\";\nimport { Store } from \"../../state/store\";\nimport { themeStore } from \"../../state/theme/theme-store\";\nimport { Controller } from \"../../state/controller\";\nimport { sessionStore } from \"../../state/session/session-store\";\nimport { isColorModeDark } from \"../../util/color-mode-util\";\nimport { loadLiveChatButton } from \"../../util/intercom-util\";\nimport { setLanguage } from \"../../state/language/language-action\";\nimport { LANGUAGE_CODES } from \"shared\";\nimport { get, listenForLangChanged } from \"lit-translate\";\nimport { saveUTM } from \"../../util/utm-util\";\n\ninterface RouteInfo {\n\ttitle: string;\n\tdescription: string;\n}\n\nconst ROUTE_INFO_MAP: Record RouteInfo | Promise> = {\n\t[ROUTES.features()]: async () => {\n\t\tconst id = location.pathname.split(\"/\")?.[2];\n\t\tconst { ALL_FEATURES } = await import(\"../../data/all-features\");\n\t\tconst match = ALL_FEATURES()\n\t\t\t.flatMap((c) => c.items)\n\t\t\t.find((feature) => feature.id === id);\n\t\treturn {\n\t\t\ttitle: `${get(\"Ideamap | Features\")}${match != null ? ` | ${match.name}` : \"\"}`,\n\t\t\tdescription:\n\t\t\t\tmatch != null\n\t\t\t\t\t? get(`Learn more about how {{featureName}} can help you when brainstorming.`, {\n\t\t\t\t\t\t\tfeatureName: match.name\n\t\t\t\t\t\t})\n\t\t\t\t\t: get(`Learn more about how Ideamap can help you when brainstorming.`)\n\t\t};\n\t},\n\t[ROUTES.help()]: async () => {\n\t\tconst id = location.pathname.split(\"/\")?.[2];\n\t\tconst { HELP_SECTIONS } = await import(\"../../data/help-sections\");\n\t\tconst match = HELP_SECTIONS.find((article) => article.id === id);\n\t\treturn {\n\t\t\ttitle: `${get(\"Ideamap | Help Center\")}${match != null ? ` | ${match.title}` : \"\"}`,\n\t\t\tdescription:\n\t\t\t\tmatch?.text ??\n\t\t\t\tget(`Welcome to the official help center of Ideamap. We're here to help you learn about Ideamap.`)\n\t\t};\n\t},\n\t[ROUTES.toolbox()]: async () => {\n\t\tconst id = location.pathname.split(\"/\")?.[2];\n\t\tconst { TOOLBOX_ITEMS_MAP } = await import(\"../../data/toolbox-items\");\n\t\tconst match = Object.entries(TOOLBOX_ITEMS_MAP)\n\t\t\t.flatMap(([key, items]) => items)\n\t\t\t.find((item) => item.id === id);\n\t\tconst { getToolboxMarkdownContent } = await import(\"../../molecules/toolbox\");\n\t\tconst markdown = match != null ? await getToolboxMarkdownContent(match.id) : null;\n\t\treturn {\n\t\t\ttitle: `${get(\"Ideamap | Facilitator Toolbox\")}${match != null ? ` | ${get(/*@ignore*/ match.name)}` : \"\"}`,\n\t\t\tdescription: markdown?.length\n\t\t\t\t? markdown.split(\"\\n\")?.[1]\n\t\t\t\t: get(`A collection of tools to help you facilitate better workshops.`)\n\t\t};\n\t},\n\t[ROUTES.blog()]: async () => {\n\t\tconst id = location.pathname.split(\"/\")?.[2];\n\t\tconst { BLOG_ARTICLES } = await import(\"../../data/blog-articles\");\n\t\tconst match = BLOG_ARTICLES.find((article) => article.id === id);\n\t\treturn {\n\t\t\ttitle: match?.title ?? get(`Ideamap | Blog`),\n\t\t\tdescription:\n\t\t\t\tmatch?.text ??\n\t\t\t\tget(\"Welcome to the official blog of Ideamap, your visual workspace for brainstorming with your teams and AI.\")\n\t\t};\n\t},\n\t[ROUTES.pricing]: () => ({\n\t\ttitle: get(\"Ideamap | Pricing\"),\n\t\tdescription: get(\"Learn more about Ideamap's pricing plans and how you can get more features.\")\n\t}),\n\t[ROUTES.affiliate]: () => ({\n\t\ttitle: get(\"Ideamap | Affiliate Program\"),\n\t\tdescription: get(\"Learn more about Ideamap's affiliate program and how you can earn money.\")\n\t}),\n\t[ROUTES.getStarted]: () => ({\n\t\ttitle: get(\"Ideamap | Get Started\"),\n\t\tdescription: get(\"Get started with Ideamap for free.\")\n\t}),\n\t[ROUTES.contactSales]: () => ({\n\t\ttitle: get(\"Ideamap | Contact Sales\"),\n\t\tdescription: get(\"Contact sales to get more information about Ideamap.\")\n\t}),\n\t[ROUTES.brainstorm]: () => ({\n\t\ttitle: get(\"Free AI Brainstorm\"),\n\t\tdescription: get(\"Best free online tool to brainstorm ideas. Get valuable ideas and inspiration for your business.\")\n\t}),\n\t[ROUTES.sitemap]: () => ({\n\t\ttitle: get(\"Ideamap | Sitemap\"),\n\t\tdescription: get(\"Get an overview of all pages on Ideamap.\")\n\t}),\n\t[ROUTES.index]: () => ({\n\t\ttitle: get(\"Ideamap | A Better way to Brainstorm with AI\"),\n\t\tdescription: get(\n\t\t\t\"Ideamap is a visual workspace for brainstorming where teams collaborate on ideas and use AI to boost their creativity.\"\n\t\t)\n\t})\n};\n\nclass LandingPageStore extends Store {\n\tmodel$ = {\n\t\tcolorMode: themeStore.model$.colorMode,\n\t\tsessionUser: sessionStore.model$.sessionUser\n\t};\n}\n\n@customElement(\"bs-landing-page\")\nclass BsLandingPage extends LitElement {\n\tstatic get styles() {\n\t\treturn [\n\t\t\tsharedStyles,\n\t\t\tcss`\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t\tbackground: var(--background);\n\t\t\t\t\tcolor: var(--foreground);\n\t\t\t\t\t--title-line-height: 1.1;\n\t\t\t\t}\n\n\t\t\t\t#page {\n\t\t\t\t\tmin-height: var(--app-height);\n\t\t\t\t}\n\t\t\t`\n\t\t];\n\t}\n\n\tprivate boundRouteChanged = this.routeChanged.bind(this);\n\tprivate boundUpdateDarkmode = this.updateDarkmode.bind(this);\n\tprivate controller = new Controller(this, new LandingPageStore(), {\n\t\tsessionUser: (user) => {\n\t\t\t// Reload to reset all state and to make sure the tracking is correct and meta tags are correct\n\t\t\tif (user != null) {\n\t\t\t\treloadApp();\n\t\t\t}\n\t\t}\n\t});\n\n\t@state() dark: boolean = false;\n\tprivate langChangedSubscription: (() => void) | undefined;\n\n\tget onlyShowPage() {\n\t\treturn location.pathname.startsWith(ROUTES.getStarted);\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.setupLanguage();\n\t}\n\n\tprotected firstUpdated(props: PropertyValues) {\n\t\tsuper.firstUpdated(props);\n\t\taddRouteChangedListener(this.boundRouteChanged);\n\t\twindow.addEventListener(\"darkmode\", this.boundUpdateDarkmode as unknown as any);\n\t\tthis.updateDocumentSEOTags();\n\t\tthis.loadLiveChatButton();\n\t\tthis.langChangedSubscription = listenForLangChanged(() => this.updateDocumentSEOTags());\n\t\tsaveUTM();\n\t}\n\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t\tremoveRouteChangedListener(this.boundRouteChanged);\n\t\twindow.removeEventListener(\"darkmode\", this.boundUpdateDarkmode as unknown as any);\n\t\tthis.langChangedSubscription?.();\n\t}\n\n\trouteChanged() {\n\t\tthis.requestUpdate();\n\t\tsetIsMenuOpen(false);\n\n\t\t// Scroll to top instantly (for some reason, instant works)\n\t\t// @ts-ignore\n\t\twindow.scrollTo({ top: 0, left: 0, behavior: \"instant\" });\n\n\t\tthis.updateDocumentSEOTags();\n\t}\n\n\tasync updateDocumentSEOTags() {\n\t\tconst getInfo =\n\t\t\tObject.entries(ROUTE_INFO_MAP).find(([route]) => location.pathname.startsWith(route))?.[1] ??\n\t\t\tROUTE_INFO_MAP[ROUTES.index];\n\t\tconst { title, description } = await getInfo();\n\t\tdocument.title = title;\n\t\tdocument.querySelector(\"meta[name='title']\")?.setAttribute(\"content\", title);\n\t\tdocument.querySelector(\"meta[property='og:title']\")?.setAttribute(\"content\", title);\n\n\t\tdocument.querySelector(\"meta[name='description']\")?.setAttribute(\"content\", description);\n\t\tdocument.querySelector(\"meta[property='og:description']\")?.setAttribute(\"content\", description);\n\t}\n\n\tsetupLanguage() {\n\t\t// Consume the language from the URL and prioritize it if it exists.\n\t\t// If the first part of the path matches a language code, set it and remove it from the URL.\n\t\tconst path = location.pathname.toLowerCase();\n\t\tfor (const code of LANGUAGE_CODES) {\n\t\t\tconst matchPart = `/${code.toLowerCase()}`;\n\t\t\tif (path.startsWith(matchPart)) {\n\t\t\t\tpushState(path.replace(matchPart, \"\"), { silent: true });\n\t\t\t\tsetLanguage(code);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tloadLiveChatButton() {\n\t\tsetTimeout(() => {\n\t\t\tloadLiveChatButton();\n\t\t}, 1000);\n\t}\n\n\trenderPage() {\n\t\tconst pathname = location.pathname;\n\n\t\tif (pathname.startsWith(ROUTES.gift)) {\n\t\t\timport(\"./../session/gift-page\");\n\t\t\treturn html` `;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.enterprise)) {\n\t\t\timport(\"./../session/enterprise-page\");\n\t\t\treturn html` `;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.pricing)) {\n\t\t\timport(\"./landing-pricing-page\");\n\t\t\treturn html``;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.help())) {\n\t\t\timport(\"./landing-help-page\");\n\t\t\treturn html``;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.blog())) {\n\t\t\timport(\"./landing-blog-page\");\n\t\t\treturn html``;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.getStarted)) {\n\t\t\timport(\"./landing-get-started-page\");\n\t\t\treturn html` `;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.features())) {\n\t\t\timport(\"./landing-features-page\");\n\t\t\treturn html``;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.affiliate)) {\n\t\t\timport(\"./landing-affiliate-page\");\n\t\t\treturn html` `;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.contactSales)) {\n\t\t\timport(\"./landing-contact-sales-page\");\n\t\t\treturn html` `;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.sitemap)) {\n\t\t\timport(\"./landing-sitemap-page\");\n\t\t\treturn html``;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.generateMindmap)) {\n\t\t\timport(\"./landing-generate-ai-mindmap-page\");\n\t\t\treturn html``;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.toolbox())) {\n\t\t\timport(\"./landing-toolbox-page\");\n\t\t\treturn html``;\n\t\t}\n\n\t\tif (pathname.startsWith(ROUTES.brainstorm)) {\n\t\t\timport(\"./landing-brainstorm-page\");\n\t\t\treturn html``;\n\t\t}\n\n\t\tif (pathname !== ROUTES.index && this.isConnected) {\n\t\t\tpushState(ROUTES.index, { replace: true, silent: true });\n\t\t}\n\n\t\tif (this.controller.model.sessionUser != null) {\n\t\t\timport(\"./landing-welcome-back-page\");\n\t\t\treturn html` `;\n\t\t} else {\n\t\t\timport(\"./landing-home-page\");\n\t\t\treturn html``;\n\t\t}\n\t}\n\n\t/**\n\t * Forces darkmode to be updated based on the event that subpages can dispatch.\n\t * @param e\n\t */\n\tupdateDarkmode(e: CustomEvent) {\n\t\tthis.dark = e.detail;\n\t}\n\n\trender() {\n\t\tif (this.onlyShowPage) {\n\t\t\treturn html`
${this.renderPage()}
`;\n\t\t}\n\n\t\tconst { colorMode } = this.controller.model;\n\t\tconst isNavbarDark = this.dark || isColorModeDark(colorMode);\n\t\treturn html`\n\t\t\t\n\t\t\t
${this.renderPage()}
\n\t\t\t\n\t\t`;\n\t}\n}\n"],"file":"src/landing-page-m_WF080s.js"}