{"version":3,"file":"main.buGV1I.js","sources":["theme-53/virtual:theme","theme-53/discourse/api-initializers/icon-replacements.js","theme-53/discourse/components/custom-footer.gjs","theme-53/discourse/api-initializers/init-custom-footer.gjs","theme-53/discourse/components/custom-topic-list.gjs","theme-53/discourse/components/featured-categories.gjs","theme-53/discourse/components/minimal-gamification-leaderboard-info.gjs","theme-53/discourse/components/sidebar-callout.gjs","theme-53/discourse/components/right-sidebar.gjs","theme-53/discourse/components/custom-homepage.gjs","theme-53/discourse/api-initializers/init-custom-homepage.gjs","theme-53/discourse/components/gnc-cards.gjs","theme-53/discourse/api-initializers/init-gnc-cards.gjs","theme-53/discourse/api-initializers/init-theme.js","theme-53/virtual:entrypoint:main"],"sourcesContent":["import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(53);\n\nexport function themePrefix(key) {\n  return `theme_translations.53.${key}`;\n}\n","import { withPluginApi } from \"discourse/lib/plugin-api\";\n\nfunction initIcons(api) {\n  api.replaceIcon(\"d-regular\", \"auth0-icons-bell\");\n  api.replaceIcon(\"magnifying-glass\", \"auth0-icons-search\");\n  api.replaceIcon(\"bars\", \"auth0-icons-menu\");\n  api.replaceIcon(\"wrench\", \"auth0-icons-settings\");\n  api.replaceIcon(\"caret-right\", \"auth0-icons-chevron-down\");\n  api.replaceIcon(\"caret-down\", \"auth0-icons-chevron-down\");\n  api.replaceIcon(\"plus\", \"auth0-icons-plus-circle\");\n  api.replaceIcon(\"gear\", \"wrench\");\n}\n\nexport default {\n  name: \"icons-replacements\",\n  initialize() {\n    withPluginApi(initIcons);\n  },\n};\n","import Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\nimport icon from \"discourse/helpers/d-icon\";\nimport { i18n } from \"discourse-i18n\";\n\nexport default class CustomFooter extends Component {\n  @service siteSettings;\n\n  get currentYear() {\n    return new Date().getFullYear();\n  }\n\n  <template>\n    <footer class=\"footer\">\n      <div class=\"footer__main wrap\">\n        <div class=\"footer__logo\">\n          <img\n            src={{this.siteSettings.site_logo_dark_url}}\n            alt={{this.siteSettings.title}}\n          />\n        </div>\n        <nav\n          class=\"footer__nav\"\n          role=\"navigation\"\n          aria-label=\"footer-navigation\"\n        >\n          <section class=\"footer__nav-section\">\n            <a href=\"https://auth0.com/docs\" class=\"footer__nav-title-link\">\n              <span>{{i18n (themePrefix \"footer.documentation.title\")}}</span>\n            </a>\n            <ul class=\"footer__nav-list\">\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/docs/quickstarts\"\n                  class=\"footer__nav-link\"\n                >{{i18n\n                    (themePrefix \"footer.documentation.items.quickstarts\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/docs/api\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.documentation.items.apis\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/docs/\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.documentation.items.sdk\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/docs/articles\"\n                  class=\"footer__nav-link\"\n                >{{i18n\n                    (themePrefix \"footer.documentation.items.articles\")\n                  }}</a>\n              </li>\n            </ul>\n          </section>\n          <section class=\"footer__nav-section\">\n            <a\n              href=\"https://auth0.com/resources\"\n              class=\"footer__nav-title-link\"\n            >\n              <span>{{i18n (themePrefix \"footer.resources.title\")}}</span>\n            </a>\n            <ul class=\"footer__nav-list\">\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://developer.auth0.com/resources/code-samples\"\n                  class=\"footer__nav-link\"\n                >{{i18n\n                    (themePrefix \"footer.resources.items.code_samples\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a href=\"https://auth0.com/blog\" class=\"footer__nav-link\">{{i18n\n                    (themePrefix \"footer.resources.items.developer_blog\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://www.youtube.com/oktadev\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.resources.items.videos\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://identityunlocked.auth0.com/public/49/Identity%2C-Unlocked.--bed7fada\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.resources.items.podcast\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a href=\"/newsletter\" class=\"footer__nav-link\">{{i18n\n                    (themePrefix \"footer.resources.items.newsletter\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/docs/glossary\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.resources.items.glossary\")}}</a>\n              </li>\n            </ul>\n          </section>\n          <section class=\"footer__nav-section\">\n            <p class=\"footer__nav-title\">{{i18n\n                (themePrefix \"footer.tools.title\")\n              }}</p>\n            <ul class=\"footer__nav-list\">\n              <li class=\"footer__nav-item\">\n                <a href=\"https://jwt.io/\" class=\"footer__nav-link\">{{i18n\n                    (themePrefix \"footer.tools.items.jwt_tool\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a href=\"https://webauthn.me/\" class=\"footer__nav-link\">{{i18n\n                    (themePrefix \"footer.tools.items.webauthn_playground\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://learnpasskeys.io/\"\n                  class=\"footer__nav-link\"\n                >{{i18n\n                    (themePrefix \"footer.tools.items.passkeys_playground\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://openidconnect.net/\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.tools.items.oidc_playground\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a href=\"https://samltool.io/\" class=\"footer__nav-link\">{{i18n\n                    (themePrefix \"footer.tools.items.saml_tool\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"http://discord.gg/XbQpZSF2Ys\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.tools.items.lab\")}}</a>\n              </li>\n            </ul>\n          </section>\n          <section class=\"footer__nav-section\">\n            <p class=\"footer__nav-title\">{{i18n\n                (themePrefix \"footer.community.title\")\n              }}</p>\n            <ul class=\"footer__nav-list\">\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://community.auth0.com/\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.community.items.forum\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/ambassador-program\"\n                  class=\"footer__nav-link\"\n                >{{i18n\n                    (themePrefix \"footer.community.items.ambassador_program\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a href=\"/events\" class=\"footer__nav-link\">{{i18n\n                    (themePrefix \"footer.community.items.events\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://support.auth0.com/\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.community.items.support\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/apollo-program\"\n                  class=\"footer__nav-link\"\n                >{{i18n\n                    (themePrefix \"footer.community.items.apollo_program\")\n                  }}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/research-program\"\n                  class=\"footer__nav-link\"\n                >{{i18n\n                    (themePrefix \"footer.community.items.research_program\")\n                  }}</a>\n              </li>\n            </ul>\n          </section>\n          <section class=\"footer__nav-section\">\n            <p class=\"footer__nav-title\">{{i18n\n                (themePrefix \"footer.company.title\")\n              }}</p>\n            <ul class=\"footer__nav-list\">\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/about\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.company.items.about\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/customers\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.company.items.customers\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/partners\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.company.items.partners\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/careers\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.company.items.careers\")}}</a>\n                {{#if (i18n (themePrefix \"footer.company.items.careers_note\"))}}\n                  <span class=\"footer__nav-hire\">{{i18n\n                      (themePrefix \"footer.company.items.careers_note\")\n                    }}</span>\n                {{/if}}\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/press\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.company.items.press\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/security\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.company.items.compliance\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/social-impact\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.company.items.social_impact\")}}</a>\n              </li>\n            </ul>\n          </section>\n          <section class=\"footer__nav-section\">\n            <p class=\"footer__nav-title\">{{i18n\n                (themePrefix \"footer.get_started.title\")\n              }}</p>\n            <ul class=\"footer__nav-list\">\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/signup\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.get_started.items.sign_up\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/pricing\"\n                  class=\"footer__nav-link\"\n                >{{i18n (themePrefix \"footer.get_started.items.pricing\")}}</a>\n              </li>\n              <li class=\"footer__nav-item\">\n                <a\n                  href=\"https://auth0.com/contact-us\"\n                  class=\"footer__nav-link\"\n                >{{i18n\n                    (themePrefix \"footer.get_started.items.contact_sales\")\n                  }}</a>\n              </li>\n            </ul>\n          </section>\n        </nav>\n        <div class=\"footer__social\">\n          <a\n            href=\"https://twitter.com/auth0\"\n            class=\"footer__social-link\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            {{icon \"fab-twitter\"}}\n          </a>\n          <a\n            href=\"https://linkedin.com/company/auth0\"\n            class=\"footer__social-link\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            {{icon \"fab-linkedin-in\"}}\n          </a>\n          <a\n            href=\"https://www.instagram.com/weareauth0\"\n            class=\"footer__social-link\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            {{icon \"fab-instagram\"}}\n          </a>\n          <a\n            href=\"https://github.com/auth0\"\n            class=\"footer__social-link\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          >\n            {{icon \"fab-github\"}}\n          </a>\n        </div>\n      </div>\n      <nav class=\"footer__subnav\">\n        <div class=\"footer__subnav-wrap wrap\" aria-label=\"legal-navigation\">\n          <p class=\"footer__copyright\">\n            {{i18n (themePrefix \"footer.copyright\") year=this.currentYear}}\n          </p>\n          <ul class=\"footer__legal-list\">\n            <li class=\"footer__legal-item\">\n              <a\n                href=\"https://status.auth0.com\"\n                class=\"footer__legal-link\"\n              >{{i18n (themePrefix \"footer.subnav.status\")}}</a>\n            </li>\n            <li class=\"footer__legal-item\">\n              <a\n                href=\"https://www.okta.com/agreements/\"\n                class=\"footer__legal-link\"\n              >{{i18n (themePrefix \"footer.subnav.legal\")}}</a>\n            </li>\n            <li class=\"footer__legal-item\">\n              <a\n                href=\"https://auth0.com/privacy\"\n                class=\"footer__legal-link\"\n              >{{i18n (themePrefix \"footer.subnav.privacy\")}}</a>\n            </li>\n            <li class=\"footer__legal-item\">\n              <a\n                href=\"https://auth0.com/web-terms\"\n                class=\"footer__legal-link\"\n              >{{i18n (themePrefix \"footer.subnav.terms\")}}</a>\n            </li>\n          </ul>\n        </div>\n      </nav>\n    </footer>\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport CustomFooter from \"../components/custom-footer\";\n\nexport default apiInitializer((api) => {\n  api.renderInOutlet(\"below-footer\", CustomFooter);\n});\n","import Component from \"@glimmer/component\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { action } from \"@ember/object\";\nimport { service } from \"@ember/service\";\nimport ConditionalLoadingSpinner from \"discourse/components/conditional-loading-spinner\";\nimport DButton from \"discourse/components/d-button\";\nimport TopicList from \"discourse/components/topic-list/list\";\nimport routeAction from \"discourse/helpers/route-action\";\nimport Category from \"discourse/models/category\";\nimport { i18n } from \"discourse-i18n\";\n\nexport default class CustomTopicList extends Component {\n  @service store;\n  @service composer;\n  @service currentUser;\n\n  @tracked topicList;\n  @tracked isLoading = true;\n  @tracked error;\n\n  constructor() {\n    super(...arguments);\n    this.loadTopicLists();\n  }\n\n  @action\n  async loadTopicLists() {\n    const tag = this.args.tag;\n    this.isLoading = true;\n    this.error = false;\n\n    try {\n      let result = await this.store.findFiltered(\"topicList\", {\n        filter: this.args.filter || \"latest\",\n        params: {\n          tag,\n          category: this.args.category,\n        },\n      });\n\n      if (result?.topics) {\n        this.topicList = {\n          topics: this.args.limit\n            ? result.topics.slice(0, this.args.limit)\n            : result.topics,\n          tag,\n        };\n      }\n    } catch (error) {\n      // eslint-disable-next-line no-console\n      console.error(\"Error fetching topic lists:\", error);\n      this.error = error;\n    } finally {\n      this.isLoading = false;\n    }\n  }\n\n  @action\n  createTopic() {\n    this.composer.openNewTopic({\n      ...(this.args.category && {\n        category: Category.findById(this.args.category),\n      }),\n      preferDraft: \"true\",\n    });\n  }\n\n  get showViewMore() {\n    return this.args.limit && this.args.category;\n  }\n\n  <template>\n    <div class=\"custom-topic-list {{if @hideCategory 'hide-category'}}\">\n      <div class=\"custom-topic-list__header\">\n        {{#if @title}}\n          <h2 class=\"custom-topic-list__title\">{{@title}}</h2>\n        {{/if}}\n        {{#if this.currentUser}}\n          <DButton\n            class=\"custom-topic-list__create-button btn btn-primary\"\n            @action={{this.createTopic}}\n          >\n            {{i18n @createLabel}}\n          </DButton>\n        {{else}}\n          <DButton\n            class=\"custom-topic-list__create-button btn btn-primary\"\n            @action={{routeAction \"showLogin\"}}\n          >\n            {{i18n @createLabel}}\n          </DButton>\n        {{/if}}\n      </div>\n\n      {{#if this.isLoading}}\n        <div class=\"custom-topic-list__loading\">\n          <ConditionalLoadingSpinner @condition={{true}} />\n        </div>\n      {{else if this.error}}\n        <div class=\"custom-topic-list__error\">Failed to load topics. Please\n          refresh the page.</div>\n      {{else if this.topicList}}\n        <TopicList @topics={{this.topicList.topics}} />\n        {{#if this.showViewMore}}\n          <a href=\"/c/{{@category}}\" class=\"custom-topic-list__view-more\">\n            {{i18n (themePrefix \"topic_list.view_more\")}}\n          </a>\n        {{/if}}\n      {{/if}}\n    </div>\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\nimport CategoriesBoxes from \"discourse/components/categories-boxes\";\nimport { i18n } from \"discourse-i18n\";\n\nexport default class FeaturedCategories extends Component {\n  @service site;\n\n  get categories() {\n    const featuredIds = (settings.featured_category_ids || \"\")\n      .split(\",\")\n      .map((id) => id.trim())\n      .filter(Boolean);\n\n    const featuredCategories = this.site.categoriesList.filter((category) =>\n      featuredIds.includes(category.id.toString())\n    );\n\n    return featuredCategories;\n  }\n\n  <template>\n    <div class=\"featured-categories\">\n      <div class=\"featured-categories__heading\">\n        <h2>{{i18n (themePrefix \"featured_categories.heading\")}}</h2>\n        <a href=\"/categories\" class=\"featured-categories__view-all\">{{i18n\n            (themePrefix \"featured_categories.view_all\")\n          }}</a>\n      </div>\n      <CategoriesBoxes @categories={{this.categories}} />\n    </div>\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport { i18n } from \"discourse-i18n\";\n\nexport default class MinimalGamificationLeaderboardInfo extends Component {\n  get shouldRender() {\n    return Boolean(\n      i18n(themePrefix(\"leaderboard_info.text\")) &&\n      i18n(themePrefix(\"leaderboard_info.link\"))\n    );\n  }\n\n  <template>\n    {{#if this.shouldRender}}\n      <p class=\"leaderboard-info\"><a\n          href={{i18n (themePrefix \"leaderboard_info.link\")}}\n        >{{i18n (themePrefix \"leaderboard_info.text\")}}</a></p>\n    {{/if}}\n  </template>\n}\n","import Component from \"@glimmer/component\";\n\nexport default class SidebarCallout extends Component {\n  callouts = [this.generateCallout(), this.generateCallout(\"_2\")];\n\n  generateCallout(suffix = \"\") {\n    return {\n      show: settings[`sidebar_callout${suffix}`],\n      title: settings[`sidebar_callout${suffix}_title`],\n      body: settings[`sidebar_callout${suffix}_body`],\n      media: settings[`sidebar_callout${suffix}_media`],\n      ctaTitle: settings[`sidebar_callout${suffix}_cta_title`],\n      ctaUrl: settings[`sidebar_callout${suffix}_cta_url`],\n      badge: settings[`sidebar_callout${suffix}_badge`],\n    };\n  }\n\n  <template>\n    {{#each this.callouts as |callout|}}\n      {{#if callout.show}}\n        <div class=\"sidebar-callout\">\n          {{#if callout.media}}\n            {{#if callout.ctaUrl}}\n              <a class=\"sidebar-callout__media\" href={{callout.ctaUrl}}>\n                <img src={{callout.media}} alt={{callout.title}} />\n              </a>\n            {{else}}\n              <div class=\"sidebar-callout__media\">\n                <img src={{callout.media}} alt={{callout.title}} />\n              </div>\n            {{/if}}\n          {{/if}}\n\n          <div class=\"sidebar-callout__content\">\n            {{#if callout.badge}}\n              <p class=\"sidebar-callout__badge\">\n                <span>{{callout.badge}}</span>\n              </p>\n            {{/if}}\n\n            <h3>{{callout.title}}</h3>\n\n            {{#if callout.body}}\n              <p class=\"sidebar-callout__body\">{{callout.body}}</p>\n            {{/if}}\n\n            {{#if callout.ctaTitle}}\n              {{#if callout.ctaUrl}}\n                <div>\n                  <a\n                    href={{callout.ctaUrl}}\n                    class=\"btn\"\n                  >{{callout.ctaTitle}}</a>\n                </div>\n              {{/if}}\n            {{/if}}\n          </div>\n        </div>\n      {{/if}}\n    {{/each}}\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport MinimalGamificationLeaderboardInfo from \"./minimal-gamification-leaderboard-info\";\nimport SidebarCallout from \"./sidebar-callout\";\n\nexport default class RightSidebar extends Component {\n  get leaderboardComponent() {\n    try {\n      return require(\"discourse/plugins/discourse-gamification/discourse/components/minimal-gamification-leaderboard\")\n        .default;\n    } catch {}\n  }\n\n  <template>\n    <div class=\"right-sidebar\">\n      {{#if this.leaderboardComponent}}\n        <div class=\"leaderboard-container\">\n          <this.leaderboardComponent />\n          <MinimalGamificationLeaderboardInfo />\n        </div>\n      {{/if}}\n      <SidebarCallout />\n    </div>\n  </template>\n}\n","import Component from \"@glimmer/component\";\nimport { service } from \"@ember/service\";\nimport dIcon from \"discourse/helpers/d-icon\";\nimport { currentThemeId } from \"discourse/lib/theme-selector\";\nimport CustomTopicList from \"./custom-topic-list\";\nimport FeaturedCategories from \"./featured-categories\";\nimport RightSidebar from \"./right-sidebar\";\n\nexport default class CustomHomepage extends Component {\n  @service currentUser;\n\n  get helpCategoryId() {\n    return settings.help_category_id;\n  }\n\n  get isAdminView() {\n    return this.currentUser?.admin;\n  }\n\n  get themeSettingsLink() {\n    return `/admin/customize/themes/${currentThemeId()}`;\n  }\n\n  <template>\n    <div class=\"custom-homepage\">\n      <div class=\"custom-homepage__content\">\n        <FeaturedCategories />\n        {{#if this.helpCategoryId}}\n          <CustomTopicList\n            @filter=\"latest\"\n            @category={{this.helpCategoryId}}\n            @limit={{5}}\n            @title=\"Latest Help Topics\"\n            @createLabel={{themePrefix \"help.create\"}}\n            @hideCategory={{true}}\n          />\n        {{else if this.isAdminView}}\n          <div class=\"custom-topic-list__configuration\">\n            {{dIcon \"gear\"}}\n            <p><strong>Latest Help Topics</strong>\n              component needs to be configured. Please click\n              <a\n                href={{this.themeSettingsLink}}\n                rel=\"noopener\"\n                aria-label=\"Configure help category settings\"\n              >here</a>\n              and fill in the\n              <code>help category id</code>\n              setting.\n              <aside>Only admins can see this message.</aside></p>\n          </div>\n        {{/if}}\n        <CustomTopicList\n          @filter=\"hot\"\n          @title=\"Popular Topics\"\n          @createLabel={{themePrefix \"popular_topics.create\"}}\n        />\n      </div>\n      <RightSidebar />\n    </div>\n  </template>\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport CustomHomepage from \"../components/custom-homepage\";\n\nexport default apiInitializer((api) => {\n  api.renderInOutlet(\"custom-homepage\", CustomHomepage);\n});\n","import Component from \"@glimmer/component\";\nimport { concat } from \"@ember/helper\";\nimport { service } from \"@ember/service\";\nimport { trustHTML } from \"@ember/template\";\nimport { i18n } from \"discourse-i18n\";\n\nexport default class GncCardDev extends Component {\n  @service router;\n  @service site;\n\n  get shouldRender() {\n    const validRoutes = [\n      \"discovery.custom\",\n      \"discovery.top\",\n      \"discovery.latest\",\n      \"discovery.categories\",\n    ];\n    return (\n      validRoutes.includes(this.router.currentRouteName) &&\n      this.site.desktopView\n    );\n  }\n\n  get cards() {\n    const ids = [\"one\", \"two\", \"three\"];\n    return ids.map((id) => createCardData(id));\n  }\n\n  <template>\n    {{#if this.shouldRender}}\n      <div class=\"gnc-cards\">\n        {{#each this.cards as |card|}}\n          <a class=\"gnc-card\" id={{card.id}} href={{card.href}}>\n            {{#if card.image}}\n              <div class=\"gnc-card__image\">\n                <figure\n                  style={{trustHTML\n                    (concat (concat \"background-image: url(\" card.image) \");\")\n                  }}\n                ></figure>\n              </div>\n            {{else}}\n              <div class=\"gnc-card__image gnc-card__image--placeholder\">\n                <figure></figure>\n              </div>\n            {{/if}}\n            <div class=\"gnc-card__content\">\n              <h6 class=\"gnc-card__header\">{{card.header}}</h6>\n              <p class=\"gnc-card__description\">{{card.description}}</p>\n            </div>\n          </a>\n        {{/each}}\n      </div>\n    {{/if}}\n  </template>\n}\n\nfunction createCardData(id) {\n  return {\n    id: `gnc-card-${id}`,\n    header: i18n(themePrefix(`gnc-card-header_${id}`)),\n    description: i18n(themePrefix(`gnc-card-description_${id}`)),\n    href: settings[`gnc_card_${id}_url`]?.trim() ?? \"#\",\n    image: settings[`gnc_card_${id}_image`],\n  };\n}\n","import { apiInitializer } from \"discourse/lib/api\";\nimport GncCards from \"../components/gnc-cards\";\n\nexport default apiInitializer((api) => {\n  api.renderInOutlet(\"above-main-container\", GncCards);\n});\n","import { apiInitializer } from \"discourse/lib/api\";\n\nexport default apiInitializer((api) => {\n  const currentUser = api.getCurrentUser();\n  const getVisitorId = () => {\n    if (currentUser?.id) {\n      return currentUser.id;\n    }\n\n    // Retrieve or generate a stored anonymous ID\n    let anonId = localStorage.getItem(\"pendo_anon_id\");\n    if (!anonId) {\n      anonId = `anon-${Math.random().toString(36).substr(2, 9)}`;\n      localStorage.setItem(\"pendo_anon_id\", anonId);\n    }\n    return anonId;\n  };\n\n  const initializePendo = () => {\n    const visitorId = getVisitorId();\n    const pendoData = {\n      visitor: {\n        id: visitorId,\n        ...(currentUser?.name && { full_name: currentUser.name }),\n        ...(currentUser?.username && { username: currentUser.username }),\n        ...(currentUser?.admin !== undefined && { admin: currentUser.admin }),\n        ...(currentUser?.moderator !== undefined && {\n          moderator: currentUser.moderator,\n        }),\n        ...(currentUser?.trust_level !== undefined && {\n          trust_level: currentUser.trust_level,\n        }),\n      },\n      account: {\n        id: visitorId,\n      },\n    };\n\n    (function (apiKey, innerPendoData) {\n      (function (p, e, n, d, o) {\n        let v, w, x, y, z;\n        o = p[d] = p[d] || {};\n        o._q = o._q || [];\n        v = [\"initialize\", \"identify\", \"updateOptions\", \"pageLoad\", \"track\"];\n        for (w = 0, x = v.length; w < x; ++w) {\n          (function (m) {\n            o[m] =\n              o[m] ||\n              function () {\n                o._q[m === v[0] ? \"unshift\" : \"push\"](\n                  [m].concat([].slice.call(arguments, 0))\n                );\n              };\n          })(v[w]);\n        }\n        y = e.createElement(n);\n        y.async = !0;\n        y.src = \"https://cdn.pendo.io/agent/static/\" + apiKey + \"/pendo.js\";\n        z = e.getElementsByTagName(n)[0];\n        z.parentNode.insertBefore(y, z);\n      })(window, document, \"script\", \"pendo\");\n\n      window.addEventListener(\"load\", () => {\n        window.pendo.initialize(innerPendoData);\n      });\n    })(\"a9bd3885-93ae-46ab-700b-dd29e613c19d\", pendoData);\n  };\n\n  initializePendo();\n});\n","import * as Mod1 from \"./discourse/api-initializers/icon-replacements\";\nimport * as Mod2 from \"./discourse/api-initializers/init-custom-footer\";\nimport * as Mod3 from \"./discourse/api-initializers/init-custom-homepage\";\nimport * as Mod4 from \"./discourse/api-initializers/init-gnc-cards\";\nimport * as Mod5 from \"./discourse/api-initializers/init-theme\";\nimport * as Mod6 from \"./discourse/components/custom-footer\";\nimport * as Mod7 from \"./discourse/components/custom-homepage\";\nimport * as Mod8 from \"./discourse/components/custom-topic-list\";\nimport * as Mod9 from \"./discourse/components/featured-categories\";\nimport * as Mod10 from \"./discourse/components/gnc-cards\";\nimport * as Mod11 from \"./discourse/components/minimal-gamification-leaderboard-info\";\nimport * as Mod12 from \"./discourse/components/right-sidebar\";\nimport * as Mod13 from \"./discourse/components/sidebar-callout\";\nconst compatModules = {\n  \"discourse/api-initializers/icon-replacements\": Mod1,\n  \"discourse/api-initializers/init-custom-footer\": Mod2,\n  \"discourse/api-initializers/init-custom-homepage\": Mod3,\n  \"discourse/api-initializers/init-gnc-cards\": Mod4,\n  \"discourse/api-initializers/init-theme\": Mod5,\n  \"discourse/components/custom-footer\": Mod6,\n  \"discourse/components/custom-homepage\": Mod7,\n  \"discourse/components/custom-topic-list\": Mod8,\n  \"discourse/components/featured-categories\": Mod9,\n  \"discourse/components/gnc-cards\": Mod10,\n  \"discourse/components/minimal-gamification-leaderboard-info\": Mod11,\n  \"discourse/components/right-sidebar\": Mod12,\n  \"discourse/components/sidebar-callout\": Mod13,\n};\nexport { compatModules };\nexport default compatModules;\n"],"names":["settings","getObjectForTheme","themePrefix","key","initIcons","api","replaceIcon","iconReplacements","name","initialize","withPluginApi","CustomFooter","Component","dt7948","g","this","prototype","service","siteSettings","i","currentYear","Date","getFullYear","setComponentTemplate","createTemplateFactory","id","block","moduleName","scope","i18n","icon","isStrictMode","initCustomFooter","apiInitializer","renderInOutlet","CustomTopicList","store","composer","currentUser","tracked","topicList","isLoading","error","constructor","super","arguments","loadTopicLists","tag","args","result","findFiltered","filter","params","category","topics","limit","slice","console","n","action","createTopic","openNewTopic","Category","findById","preferDraft","showViewMore","DButton","routeAction","ConditionalLoadingSpinner","TopicList","FeaturedCategories","site","categories","featuredIds","featured_category_ids","split","map","trim","Boolean","categoriesList","includes","toString","CategoriesBoxes","MinimalGamificationLeaderboardInfo","shouldRender","SidebarCallout","callouts","generateCallout","suffix","show","title","body","media","ctaTitle","ctaUrl","badge","RightSidebar","leaderboardComponent","require","default","CustomHomepage","helpCategoryId","help_category_id","isAdminView","admin","themeSettingsLink","currentThemeId","dIcon","initCustomHomepage","GncCardDev","router","currentRouteName","desktopView","cards","header","description","href","image","createCardData","trustHTML","concat","initGncCards","GncCards","initTheme","getCurrentUser","initializePendo","visitorId","getVisitorId","anonId","localStorage","getItem","Math","random","substr","setItem","pendoData","visitor","full_name","username","undefined","moderator","trust_level","account","innerPendoData","p","e","d","o","v","w","x","y","z","_q","length","m","call","createElement","async","src","getElementsByTagName","parentNode","insertBefore","window","document","addEventListener","pendo","compatModules","Mod1","Mod2","Mod3","Mod4","Mod6","Mod7","Mod8","Mod9","Mod10","Mod11","Mod12","Mod13"],"mappings":"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"}