@jant/core 0.6.13 → 0.6.14

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.
Files changed (30) hide show
  1. package/dist/{app-HnzmsaqU.js → app-2i7-WQHg.js} +26 -22
  2. package/dist/app-DZDlmh7C.js +6 -0
  3. package/dist/client/.vite/manifest.json +3 -3
  4. package/dist/client/_assets/{client-3_OaxhTs.js → client-BvID5ucz.js} +1 -1
  5. package/dist/client/_assets/client-Cevfpm8H.css +2 -0
  6. package/dist/client/_assets/{client-auth-TsYq90xm.js → client-auth-v3yvhbgZ.js} +175 -172
  7. package/dist/{export-Dfbq9aot.js → export-DWn149b7.js} +14 -6
  8. package/dist/{github-sync-BGTLx8Mf.js → github-sync-C0zyF6XS.js} +2 -2
  9. package/dist/{github-sync--PSoE-Ne.js → github-sync-Ckk0sJxK.js} +1 -1
  10. package/dist/index.js +3 -3
  11. package/dist/node.js +4 -4
  12. package/package.json +1 -1
  13. package/src/client/components/__tests__/jant-command-palette.test.ts +137 -10
  14. package/src/client/components/__tests__/jant-compose-dialog.test.ts +3 -0
  15. package/src/client/components/jant-command-palette.ts +100 -70
  16. package/src/client/components/jant-compose-dialog.ts +1 -1
  17. package/src/client/tiptap/__tests__/footnotes.test.ts +284 -0
  18. package/src/client/tiptap/__tests__/markdown-clipboard.test.ts +148 -1
  19. package/src/client/tiptap/bubble-menu.ts +3 -3
  20. package/src/client/tiptap/footnotes.ts +156 -0
  21. package/src/client/tiptap/markdown-clipboard.ts +7 -2
  22. package/src/lib/__tests__/markdown-to-tiptap.test.ts +4 -0
  23. package/src/lib/markdown-manager.ts +14 -5
  24. package/src/styles/ui.css +116 -28
  25. package/src/ui/feed/__tests__/timeline-cards.test.ts +8 -3
  26. package/src/ui/layouts/BaseLayout.tsx +1 -1
  27. package/src/ui/layouts/SiteLayout.tsx +19 -13
  28. package/src/ui/layouts/__tests__/SiteLayout.test.tsx +48 -0
  29. package/dist/app-CWJFPjuR.js +0 -6
  30. package/dist/client/_assets/client-DCrcHVJl.css +0 -2
@@ -1,7 +1,7 @@
1
1
  import { _ as toPublicPath, a as getSitePathPrefix, b as __exportAll, c as normalizePath, d as sanitizeUrl, f as slugify, g as toPublicHref, h as toAbsoluteSiteUrl, i as getSiteOrigin, l as normalizeSitePathPrefix, m as toAbsoluteAssetUrl, n as extractDisplayDomain, o as isFullUrl, p as stripSitePathPrefix, r as extractDomain, s as isSafeInternalRedirect, t as buildSiteUrl, u as normalizeSiteUrl, v as toSameSitePath } from "./url-BMYO-Zlt.js";
2
- import { A as JANT_POSITIVE_LOGO_PNG_FILENAME, B as getJantLogoHref, C as toISOString, D as HOME_BRANDING_LINK_LABEL, E as getPublicUrlForProvider, F as getJantBundledAsset, G as base64ToUint8Array, H as JANT_LOGO_PATH_DATA, I as getJantIconFilename, L as getJantIconHref, M as getDefaultJantAppleTouchIconBytes, N as getDefaultJantFaviconIcoBytes, O as HOME_BRANDING_PREFIX, P as getJantBrandPackHref, R as getJantLogoFilename, T as getMediaUrl, U as JANT_LOGO_VIEW_BOX, V as getJantPositiveLogoPngHref, W as arrayBufferToBase64, _ as formatRelativeAge, b as formatYearMonth, d as extractSummaryHtml, f as renderTiptapDocument, g as formatDate, h as escapeHtml, i as tiptapJsonToMarkdown, j as JANT_REPO_URL, k as JANT_BRAND_PACK_FILENAME, l as extractBodyText, m as trimTiptapBody, o as render, p as renderTiptapJson, s as toPlainText, t as createExportService, u as extractSummary, v as formatRelativeTime, w as getImageUrl, x as now, y as formatTime, z as getJantLogoFills } from "./export-Dfbq9aot.js";
2
+ import { A as JANT_POSITIVE_LOGO_PNG_FILENAME, B as getJantLogoHref, C as toISOString, D as HOME_BRANDING_LINK_LABEL, E as getPublicUrlForProvider, F as getJantBundledAsset, G as base64ToUint8Array, H as JANT_LOGO_PATH_DATA, I as getJantIconFilename, L as getJantIconHref, M as getDefaultJantAppleTouchIconBytes, N as getDefaultJantFaviconIcoBytes, O as HOME_BRANDING_PREFIX, P as getJantBrandPackHref, R as getJantLogoFilename, T as getMediaUrl, U as JANT_LOGO_VIEW_BOX, V as getJantPositiveLogoPngHref, W as arrayBufferToBase64, _ as formatRelativeAge, b as formatYearMonth, d as extractSummaryHtml, f as renderTiptapDocument, g as formatDate, h as escapeHtml, i as tiptapJsonToMarkdown, j as JANT_REPO_URL, k as JANT_BRAND_PACK_FILENAME, l as extractBodyText, m as trimTiptapBody, o as render, p as renderTiptapJson, s as toPlainText, t as createExportService, u as extractSummary, v as formatRelativeTime, w as getImageUrl, x as now, y as formatTime, z as getJantLogoFills } from "./export-DWn149b7.js";
3
3
  import { S as getTelegramWebhookSecret, T as coalesceDisplayText, _ as getInternalAdminToken, a as getConfiguredSingleSiteUrl, b as getSiteResolutionMode, c as getDevApiToken, d as getHostedControlPlaneBaseUrl, f as getHostedControlPlaneDomainCheckSecret, g as getHostedControlPlaneSsoSecret, h as getHostedControlPlaneProviderLabel$1, i as getConfiguredSingleSitePathPrefix, l as getEnvString, m as getHostedControlPlaneInternalToken, n as getAuthSecret, o as getConfiguredStorageDriver, p as getHostedControlPlaneInternalBaseUrl, r as getConfiguredSingleSiteOrigin, s as getCorsOrigins, u as getGitHubAppConfig, v as getLocalStoragePath, w as shouldUseSecureCookies, x as getTelegramBotPool } from "./env-OHRKGcMj.js";
4
- import { l as markdownToTiptapJson, o as createGitHubSyncService } from "./github-sync--PSoE-Ne.js";
4
+ import { l as markdownToTiptapJson, o as createGitHubSyncService } from "./github-sync-Ckk0sJxK.js";
5
5
  import { a as listInstallationReposPage, n as getInstallation, o as searchInstallationRepos, t as buildInstallUrl } from "./github-app-BbklkFmU.js";
6
6
  import { r as parseRepoSlug, t as createGitHubClient } from "./github-api-BgSiE71w.js";
7
7
  import { I18n } from "@lingui/core";
@@ -3452,10 +3452,10 @@ function normalizeThemeColorForMeta(color) {
3452
3452
  * internal paths (e.g. `/_assets/client-HASH.js`) embedded by the Worker build
3453
3453
  * from the Vite client manifest. Used only in production (IS_VITE_DEV=false).
3454
3454
  */ var IS_VITE_DEV = typeof __JANT_DEV__ !== "undefined" && __JANT_DEV__ === true;
3455
- var CORE_VERSION = "0.6.13-aaa5a490f3013f33";
3456
- var CLIENT_JS_FILE = "/_assets/client-3_OaxhTs.js";
3457
- var CLIENT_AUTH_JS_FILE = "/_assets/client-auth-TsYq90xm.js";
3458
- var CLIENT_CSS_FILE = "/_assets/client-DCrcHVJl.css";
3455
+ var CORE_VERSION = "0.6.14-9eb13ea225acf832";
3456
+ var CLIENT_JS_FILE = "/_assets/client-BvID5ucz.js";
3457
+ var CLIENT_AUTH_JS_FILE = "/_assets/client-auth-v3yvhbgZ.js";
3458
+ var CLIENT_CSS_FILE = "/_assets/client-Cevfpm8H.css";
3459
3459
  var CLIENT_CJK_CSS_FILE = "/_assets/client-cjk-B7Z0snDu.css";
3460
3460
  var CLIENT_CJK_TC_CSS_FILE = "/_assets/client-cjk-tc-BesJYrb2.css";
3461
3461
  var CLIENT_CJK_JP_CSS_FILE = "/_assets/client-cjk-jp-DZwrTzQC.css";
@@ -3774,7 +3774,7 @@ var IconSprite = () => {
3774
3774
  const cjkSerifFont = appConfig?.cjkSerifFont ?? "off";
3775
3775
  const cjkStylesheetPath = cjkSerifFont === "zh-Hans" ? IS_VITE_DEV ? assetPath("/src/style-cjk.css") : toPublicAssetPath(CLIENT_CJK_CSS_FILE, assetBasePath) : cjkSerifFont === "zh-Hant" ? IS_VITE_DEV ? assetPath("/src/style-cjk-tc.css") : toPublicAssetPath(CLIENT_CJK_TC_CSS_FILE, assetBasePath) : cjkSerifFont === "ja" ? IS_VITE_DEV ? assetPath("/src/style-cjk-jp.css") : toPublicAssetPath(CLIENT_CJK_JP_CSS_FILE, assetBasePath) : cjkSerifFont === "ko" ? IS_VITE_DEV ? assetPath("/src/style-cjk-kr.css") : toPublicAssetPath(CLIENT_CJK_KR_CSS_FILE, assetBasePath) : null;
3776
3776
  const clientScriptPath = IS_VITE_DEV ? resolvedClientBundle === "full" ? assetPath("/src/client-auth.ts") : assetPath("/src/client.ts") : toPublicAssetPath(resolvedClientBundle === "full" ? CLIENT_AUTH_JS_FILE : CLIENT_JS_FILE, assetBasePath);
3777
- const faviconAssetVersion = resolvedFaviconVersion || "0.6.13-aaa5a490f3013f33";
3777
+ const faviconAssetVersion = resolvedFaviconVersion || "0.6.14-9eb13ea225acf832";
3778
3778
  const resolvedFaviconHref = faviconHref ?? (faviconAssetVersion ? toPublicPath(`/favicon.ico?v=${faviconAssetVersion}`, sitePathPrefix) : toPublicPath("/favicon.ico", sitePathPrefix));
3779
3779
  const resolvedAppleTouchHref = appleTouchHref ?? (faviconAssetVersion ? toPublicPath(`/apple-touch-icon.png?v=${faviconAssetVersion}`, sitePathPrefix) : toPublicPath("/apple-touch-icon.png", sitePathPrefix));
3780
3780
  const socialImageHref = resolvedSocialImagePath ? toAbsoluteAssetUrl(resolvedSocialImagePath, appConfig?.siteUrl || "", sitePathPrefix) : "";
@@ -3949,7 +3949,7 @@ var IconSprite = () => {
3949
3949
  rel: "stylesheet",
3950
3950
  href: cjkStylesheetPath
3951
3951
  }),
3952
- /* @__PURE__ */ jsxDEV$1("style", { dangerouslySetInnerHTML: { __html: `.site-header-search-link,.site-header-hamburger,.site-header-more-responsive-only,.site-header-more-link-responsive,.site-header-more-divider-responsive{display:none!important}@media(max-width:1200px){.site-header-search-form{display:none!important}.site-header-search-link{display:inline-flex!important}}@media(max-width:960px){.site-header-link-collapse-lg{display:none!important}.site-header-more-responsive-only.site-header-more-tier-lg{display:inline-flex!important}.site-header-more-link-show-lg{display:flex!important}.site-header-more-divider-responsive{display:block!important}}@media(max-width:780px){.site-header-link-collapse-md{display:none!important}.site-header-more-responsive-only.site-header-more-tier-md{display:inline-flex!important}.site-header-more-link-show-md{display:flex!important}}@media(max-width:580px){.site-header-link-collapse-sm{display:none!important}.site-header-more-responsive-only.site-header-more-tier-sm{display:inline-flex!important}.site-header-more-link-show-sm{display:flex!important}}@media(max-width:480px){.site-header-nav,.site-header-more{display:none!important}.site-header-search-slot{display:flex!important}.site-header-hamburger{display:flex!important}.site-header-right{margin-left:.35rem}}` } }),
3952
+ /* @__PURE__ */ jsxDEV$1("style", { dangerouslySetInnerHTML: { __html: `.site-header-search-link,.site-header-hamburger,.site-header-more-responsive-only,.site-header-more-link-responsive,.site-header-more-divider-responsive{display:none!important}@media(max-width:1200px){.site-header-search-form{display:none!important}.site-header-search-link{display:inline-flex!important}}@media(max-width:960px){.site-header-link-collapse-lg{display:none!important}.site-header-more-responsive-only.site-header-more-tier-lg{display:inline-flex!important}.site-header-more-link-show-lg{display:flex!important}.site-header-more-divider-show-lg{display:block!important}}@media(max-width:780px){.site-header-link-collapse-md{display:none!important}.site-header-more-responsive-only.site-header-more-tier-md{display:inline-flex!important}.site-header-more-link-show-md{display:flex!important}.site-header-more-divider-show-md{display:block!important}}@media(max-width:580px){.site-header-link-collapse-sm{display:none!important}.site-header-more-responsive-only.site-header-more-tier-sm{display:inline-flex!important}.site-header-more-link-show-sm{display:flex!important}.site-header-more-divider-show-sm{display:block!important}}@media(max-width:480px){.site-header-nav,.site-header-more{display:none!important}.site-header-search-slot{display:flex!important}.site-header-hamburger{display:flex!important}.site-header-right{margin-left:.35rem}}` } }),
3953
3953
  themeStyle && /* @__PURE__ */ jsxDEV$1("style", { dangerouslySetInnerHTML: { __html: themeStyle } }),
3954
3954
  customCSS && /* @__PURE__ */ jsxDEV$1("style", { dangerouslySetInnerHTML: { __html: customCSS } }),
3955
3955
  customHeadHtml && raw(customHeadHtml),
@@ -7639,6 +7639,12 @@ function moreLinkRevealTier(idx) {
7639
7639
  if (idx === 3) return "site-header-more-link-show-md";
7640
7640
  return "site-header-more-link-show-lg";
7641
7641
  }
7642
+ function getResponsiveOverflowTier(headerLinkCount) {
7643
+ if (headerLinkCount >= 5) return "lg";
7644
+ if (headerLinkCount === 4) return "md";
7645
+ if (headerLinkCount === 3) return "sm";
7646
+ return null;
7647
+ }
7642
7648
  var SiteHeader = ({ siteName, links, currentPath, sitePathPrefix = "", siteAvatarUrl, showHeaderAvatar }) => {
7643
7649
  const { i18n } = useLingui();
7644
7650
  const linksWithLabels = links.map((link) => ({
@@ -7652,13 +7658,11 @@ var SiteHeader = ({ siteName, links, currentPath, sitePathPrefix = "", siteAvata
7652
7658
  const moreLabel = i18n._(NAV_MORE_LABEL);
7653
7659
  const headerLinks = linksWithLabels.filter((l) => l.placement === "header" || !l.placement);
7654
7660
  const moreLinks = linksWithLabels.filter((l) => l.placement === "more");
7655
- const hasResponsiveOverflow = headerLinks.length > 2;
7661
+ const responsiveOverflowTier = getResponsiveOverflowTier(headerLinks.length);
7662
+ const hasResponsiveOverflow = responsiveOverflowTier !== null;
7656
7663
  const hasSupplementalMoreLinks = moreLinks.length > 0;
7657
7664
  const showMoreMenu = hasResponsiveOverflow || hasSupplementalMoreLinks;
7658
- let responsiveTierClass = "";
7659
- if (hasResponsiveOverflow && !hasSupplementalMoreLinks) if (headerLinks.length >= 5) responsiveTierClass = "site-header-more-tier-lg";
7660
- else if (headerLinks.length === 4) responsiveTierClass = "site-header-more-tier-md";
7661
- else responsiveTierClass = "site-header-more-tier-sm";
7665
+ const responsiveTierClass = responsiveOverflowTier && !hasSupplementalMoreLinks ? `site-header-more-tier-${responsiveOverflowTier}` : "";
7662
7666
  const moreMenuClass = [
7663
7667
  "site-header-more",
7664
7668
  hasResponsiveOverflow && !hasSupplementalMoreLinks ? "site-header-more-responsive-only" : "",
@@ -7736,7 +7740,7 @@ var SiteHeader = ({ siteName, links, currentPath, sitePathPrefix = "", siteAvata
7736
7740
  children: [link.displayLabel, link.isExternal && /* @__PURE__ */ jsxDEV$1(ExternalLinkIcon$1, {})]
7737
7741
  }, link.id);
7738
7742
  }),
7739
- hasResponsiveOverflow && hasSupplementalMoreLinks && /* @__PURE__ */ jsxDEV$1("div", { class: "site-header-more-divider site-header-more-divider-responsive" }),
7743
+ responsiveOverflowTier && hasSupplementalMoreLinks && /* @__PURE__ */ jsxDEV$1("div", { class: `site-header-more-divider site-header-more-divider-responsive site-header-more-divider-show-${responsiveOverflowTier}` }),
7740
7744
  moreLinks.map((link) => /* @__PURE__ */ jsxDEV$1("a", {
7741
7745
  href: link.url,
7742
7746
  class: `site-header-more-link site-header-more-link-supplemental ${link.isActive ? "site-header-more-link-active" : ""}`,
@@ -23005,7 +23009,7 @@ async function syncHostedControlPlaneSiteAvatar(input) {
23005
23009
  return;
23006
23010
  }
23007
23011
  await markSyncPending(settings);
23008
- const { createGitHubSyncService } = await import("./github-sync-BGTLx8Mf.js");
23012
+ const { createGitHubSyncService } = await import("./github-sync-C0zyF6XS.js");
23009
23013
  const { getGitHubAppConfig } = await import("./env-OHRKGcMj.js").then((n) => n.t);
23010
23014
  const run = runBackgroundSync(settings, createGitHubSyncService(c.var.services, c.var.currentSite.id, await buildSyncSiteConfig(c), {
23011
23015
  storage: c.var.storage,
@@ -23837,7 +23841,7 @@ settingsRoutes.post("/github-sync/connect", async (c) => {
23837
23841
  await c.var.services.settings.set("GITHUB_SYNC_AUTH_MODE", "pat");
23838
23842
  await c.var.services.settings.set("GITHUB_SYNC_APP_INSTALLATION_ID", "");
23839
23843
  await c.var.services.settings.set("GITHUB_SYNC_ENABLED", "true");
23840
- const { createGitHubSyncService } = await import("./github-sync-BGTLx8Mf.js");
23844
+ const { createGitHubSyncService } = await import("./github-sync-C0zyF6XS.js");
23841
23845
  const syncService = createGitHubSyncService(c.var.services, c.var.currentSite.id, await buildSyncSiteConfig(c), {
23842
23846
  storage: c.var.storage,
23843
23847
  githubApp: getGitHubAppConfig(c.env)
@@ -23856,7 +23860,7 @@ settingsRoutes.post("/github-sync/connect", async (c) => {
23856
23860
  return dsRedirect(publicPath(c, "/settings/github-sync"));
23857
23861
  });
23858
23862
  settingsRoutes.post("/github-sync/push", async (c) => {
23859
- const { createGitHubSyncService } = await import("./github-sync-BGTLx8Mf.js");
23863
+ const { createGitHubSyncService } = await import("./github-sync-C0zyF6XS.js");
23860
23864
  const syncService = createGitHubSyncService(c.var.services, c.var.currentSite.id, await buildSyncSiteConfig(c), {
23861
23865
  storage: c.var.storage,
23862
23866
  githubApp: getGitHubAppConfig(c.env)
@@ -23876,7 +23880,7 @@ settingsRoutes.post("/github-sync/push", async (c) => {
23876
23880
  });
23877
23881
  });
23878
23882
  settingsRoutes.post("/github-sync/disconnect", async (c) => {
23879
- const { createGitHubSyncService } = await import("./github-sync-BGTLx8Mf.js");
23883
+ const { createGitHubSyncService } = await import("./github-sync-C0zyF6XS.js");
23880
23884
  await createGitHubSyncService(c.var.services, c.var.currentSite.id, await buildSyncSiteConfig(c), { githubApp: getGitHubAppConfig(c.env) }).teardownWebhook();
23881
23885
  return dsRedirect(publicPath(c, "/settings/github-sync"));
23882
23886
  });
@@ -24067,7 +24071,7 @@ function buildRepoPickerLabels(c) {
24067
24071
  const { parseRepoSlug, createGitHubClient } = await import("./github-api-BgSiE71w.js").then((n) => n.n);
24068
24072
  const parsed = parseRepoSlug(repo);
24069
24073
  if (!parsed) return wantsJson ? c.json({ error: "Invalid repository format." }, 400) : c.text("Invalid repository format.", 400);
24070
- const { classifyRepoForSync } = await import("./github-sync-BGTLx8Mf.js");
24074
+ const { classifyRepoForSync } = await import("./github-sync-C0zyF6XS.js");
24071
24075
  const ghClient = createGitHubClient(() => getInstallationTokenFromApp(app, installationId));
24072
24076
  let classification;
24073
24077
  try {
@@ -24097,7 +24101,7 @@ function buildRepoPickerLabels(c) {
24097
24101
  await c.var.services.settings.set("GITHUB_SYNC_REPO", repo);
24098
24102
  await c.var.services.settings.set("GITHUB_SYNC_TOKEN", "");
24099
24103
  await c.var.services.settings.set("GITHUB_SYNC_ENABLED", "true");
24100
- const { createGitHubSyncService } = await import("./github-sync-BGTLx8Mf.js");
24104
+ const { createGitHubSyncService } = await import("./github-sync-C0zyF6XS.js");
24101
24105
  const syncService = createGitHubSyncService(c.var.services, c.var.currentSite.id, await buildSyncSiteConfig(c), {
24102
24106
  storage: c.var.storage,
24103
24107
  githubApp: app
@@ -24213,7 +24217,7 @@ function requireGitHubApp(c) {
24213
24217
  const { parseRepoSlug, createGitHubClient } = await import("./github-api-BgSiE71w.js").then((n) => n.n);
24214
24218
  const parsed = parseRepoSlug(repo);
24215
24219
  if (!parsed) return c.json({ error: "Invalid repository format." }, 400);
24216
- const { classifyRepoForSync } = await import("./github-sync-BGTLx8Mf.js");
24220
+ const { classifyRepoForSync } = await import("./github-sync-C0zyF6XS.js");
24217
24221
  const client = createGitHubClient(() => getInstallationTokenFromApp(app, installationId));
24218
24222
  try {
24219
24223
  const classification = await classifyRepoForSync(client, parsed.owner, parsed.repo, c.var.currentSite.id);
@@ -33901,7 +33905,7 @@ function createSiteAdminService(db, databaseSchema = sqliteSchemaBundle, databas
33901
33905
  const themeCss = buildThemeStyle(activeTheme, appConfig.themeMode, fontOverrides);
33902
33906
  const navItemList = await navItems.list();
33903
33907
  const appleTouchKey = allSettings[SETTINGS_KEYS.SITE_FAVICON_APPLE_TOUCH];
33904
- const { createExportService } = await import("./export-Dfbq9aot.js").then((n) => n.n);
33908
+ const { createExportService } = await import("./export-DWn149b7.js").then((n) => n.n);
33905
33909
  const exportService = createExportService({
33906
33910
  collections,
33907
33911
  media: mediaService,
@@ -0,0 +1,6 @@
1
+ import "./url-BMYO-Zlt.js";
2
+ import { t as createApp } from "./app-2i7-WQHg.js";
3
+ import "./export-DWn149b7.js";
4
+ import "./env-OHRKGcMj.js";
5
+ import "./github-sync-Ckk0sJxK.js";
6
+ export { createApp };
@@ -146,7 +146,7 @@
146
146
  "name": "url"
147
147
  },
148
148
  "src/client-auth.ts": {
149
- "file": "_assets/client-auth-TsYq90xm.js",
149
+ "file": "_assets/client-auth-v3yvhbgZ.js",
150
150
  "name": "client-auth",
151
151
  "src": "src/client-auth.ts",
152
152
  "isEntry": true,
@@ -163,7 +163,7 @@
163
163
  ]
164
164
  },
165
165
  "src/client.ts": {
166
- "file": "_assets/client-3_OaxhTs.js",
166
+ "file": "_assets/client-BvID5ucz.js",
167
167
  "name": "client",
168
168
  "src": "src/client.ts",
169
169
  "isEntry": true,
@@ -858,7 +858,7 @@
858
858
  ]
859
859
  },
860
860
  "src/style.css": {
861
- "file": "_assets/client-DCrcHVJl.css",
861
+ "file": "_assets/client-Cevfpm8H.css",
862
862
  "name": "style",
863
863
  "names": [
864
864
  "style.css"
@@ -272,4 +272,4 @@ ${c}`:c;break;case`event`:r.event=c;break;case`id`:e(r.id=c);break;case`retry`:{
272
272
  </div>`}
273
273
  </div>
274
274
  </dialog>
275
- `:J}};customElements.define(`jant-text-preview`,Xi);var Zi=8;function Qi(e,t){let n=Number.parseFloat(e);return Number.isFinite(n)?n:t}function $i(e){return Qi(getComputedStyle(e).getPropertyValue(`--site-thread-context-max-height`).trim(),240)}function ea(e){if(e.dataset.threadContextToggleBound===`1`)return;e.dataset.threadContextToggleBound=`1`;let t=e.previousElementSibling;if(!(t instanceof HTMLElement)||t.dataset.threadContext===void 0)return;let n=e.querySelector(`.thread-context-toggle-label`),r=e.dataset.labelMore??`Show more`,i=e.dataset.labelLess??`Show less`,a=!1,o=t=>{e.setAttribute(`aria-expanded`,t?`true`:`false`),n&&(n.textContent=t?i:r)},s=()=>Array.from(t.querySelectorAll(`img`)).every(e=>e.complete),c=()=>{if(a)return;let n=$i(t),r=t.scrollHeight>n+Zi;t.dataset.collapsed===void 0&&(t.dataset.collapsed=``),r?(e.hidden=!1,o(!1)):s()&&(e.hidden=!0)};if(c(),t.querySelectorAll(`img`).forEach(e=>{e.complete||(e.addEventListener(`load`,c,{once:!0}),e.addEventListener(`error`,c,{once:!0}))}),`ResizeObserver`in globalThis){let e=0;new globalThis.ResizeObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(c)}).observe(t)}let l=()=>{let e=!1,n=r=>{e||r&&r.propertyName!==`max-height`||(e=!0,t.removeEventListener(`transitionend`,n),t.dataset.collapsed===void 0&&(t.style.maxHeight=``))};t.addEventListener(`transitionend`,n),window.setTimeout(n,600)};e.addEventListener(`click`,()=>{a=!0,t.dataset.collapsed===void 0?(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,requestAnimationFrame(()=>{t.dataset.collapsed=``,t.style.maxHeight=``}),o(!1)):(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,delete t.dataset.collapsed,o(!0)),l()})}function ta(e=document){e.querySelectorAll(`[data-thread-context-toggle]`).forEach(ea)}function na(e){let t=e.closest(`.thread-group-detail`);return t?t.querySelector(`.thread-detail-item`)===e:!1}function ra(){return globalThis.location.hash===`#continue`}function ia(e=document){let t=e.querySelector(`[data-post-current]`);if(!(t instanceof HTMLElement))return;let n=ra();if(globalThis.location.hash&&!n)return;let r=n?`auto`:`smooth`,i=na(t);requestAnimationFrame(()=>{i&&!n||t.scrollIntoView({behavior:r,block:`start`})})}document.addEventListener(`DOMContentLoaded`,()=>{ta(document),ia(document)});function aa(e){return e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function oa(e,t){t&&(e.textContent=t)}function sa(e){let t=e.target;if(!(t instanceof globalThis.Element))return;let n=t.closest(`a[data-note-expand]`);if(!n||aa(e))return;let r=n.closest(`article[data-post]`),i=r?.querySelector(`[data-post-body]`);if(!(!r||!i||!i.querySelector(`[data-note-break]`))){if(e.preventDefault(),i.hasAttribute(`data-note-clamp`)){i.removeAttribute(`data-note-clamp`),n.setAttribute(`aria-expanded`,`true`),oa(n,n.dataset.labelLess);return}i.setAttribute(`data-note-clamp`,``),n.setAttribute(`aria-expanded`,`false`),oa(n,n.dataset.labelMore),r.getBoundingClientRect().top<0&&typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:`start`})}}document.addEventListener(`click`,sa),document.querySelectorAll(`.archive-chip-dropdown`).forEach(e=>{let t=e.querySelector(`:scope > button`),n=e.querySelector(`:scope > [data-popover]`),r=n?n.querySelector(`[role="listbox"]`):null;if(!t||!n||!r)return;let i=Array.from(r.querySelectorAll(`[role="option"]`)),a=e.classList.contains(`archive-chip-media`),o=e.dataset.filterKey,s=new Set;a&&i.forEach(e=>{!e.dataset.navigate&&e.getAttribute(`aria-selected`)===`true`&&s.add(e.dataset.value)});let c=new Set(s),l=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),a&&(c=new Set(s))},u=(e=!0)=>{if(n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus(),a&&o&&(s.size!==c.size||[...s].some(e=>!c.has(e))))){let e=new URL(window.location.href),t=[...s];t.length>0?e.searchParams.set(o,t.join(`,`)):e.searchParams.delete(o),e.searchParams.delete(`hasMedia`),e.searchParams.delete(`page`),window.location.href=e.pathname+(e.search||``)}};t.addEventListener(`click`,e=>{e.target.closest(`.archive-chip-clear`)||(t.getAttribute(`aria-expanded`)===`true`?u():l())}),document.addEventListener(`click`,t=>{e.contains(t.target)||u(!1)}),document.addEventListener(`basecoat:popover`,t=>{t.detail.source!==e&&u(!1)}),r.addEventListener(`click`,e=>{let t=e.target.closest(`[role="option"]`);if(t){if(t.dataset.navigate){let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e);return}if(a){let e=t.dataset.value;s.has(e)?(s.delete(e),t.removeAttribute(`aria-selected`)):(s.add(e),t.setAttribute(`aria-selected`,`true`))}else{let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e)}}});let d=-1,f=e=>{d>-1&&i[d]&&i[d].classList.remove(`active`),d=e,d>-1&&i[d]&&(i[d].classList.add(`active`),i[d].scrollIntoView({block:`nearest`}))};r.addEventListener(`mousemove`,e=>{let t=e.target.closest(`[role="option"]`);if(t){let e=i.indexOf(t);e!==-1&&e!==d&&f(e)}}),r.addEventListener(`mouseleave`,()=>{f(-1)}),t.addEventListener(`keydown`,e=>{let t=n.getAttribute(`aria-hidden`)===`false`;if(e.key===`Escape`){t&&(e.preventDefault(),u());return}if(!t&&[`ArrowDown`,`ArrowUp`].includes(e.key)){e.preventDefault(),l();return}t&&(e.preventDefault(),e.key===`ArrowDown`?f(Math.min(d+1,i.length-1)):e.key===`ArrowUp`?f(Math.max(d-1,0)):e.key===`Enter`&&d>-1&&(i[d].click(),!a&&!i[d].dataset.navigate&&u()))})});var ca=new WeakMap,la=new WeakMap;function ua(e){let t=e.querySelector(`.site-header-more-btn`),n=e.querySelector(`.site-header-more-popover`);if(!t||!n||t.dataset.moreInitialized===`true`)return;t.dataset.moreInitialized=`true`;let r=new AbortController,i=r.signal;ca.set(t,r);function a(){n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:t.parentElement}}))}function o(e=!1){n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus()}t.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.getAttribute(`aria-expanded`)===`true`?o():a()},{signal:i}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(t.parentElement?.contains(e.target)||o())},{signal:i}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&n.getAttribute(`aria-hidden`)===`false`&&o(!0)},{signal:i}),document.addEventListener(`basecoat:popover`,e=>{e.detail?.source!==t.parentElement&&o()},{signal:i})}var da=`jant:nav-fresh-visits`;function fa(){let e=document.createElement(`span`);return e.className=`site-header-link-fresh`,e.setAttribute(`aria-hidden`,`true`),e.textContent=`*`,e}function pa(e){try{let t=JSON.parse(localStorage.getItem(da)||`{}`),n=location.pathname,r=e.querySelectorAll(`[data-fresh-at]`);for(let e of r){let r=new URL(e.href).pathname,i=parseInt(e.dataset.freshAt,10);if(r===n)t[r]=Math.floor(Date.now()/1e3);else{let n=t[r];if(!n||n<i){let t=e.querySelector(`svg`);e.insertBefore(fa(),t)}}}localStorage.setItem(da,JSON.stringify(t))}catch{}}function ma(e=document){let t=e.querySelector(`.site-header-hamburger`),n=e.querySelector(`#site-nav-drawer`),r=e.querySelector(`.site-nav-drawer-backdrop`),i=n?.querySelector(`.site-nav-drawer-close`);if(pa(e),ua(e),!t||!n||!r||t.dataset.drawerInitialized===`true`)return;t.dataset.drawerInitialized=`true`;let a=new AbortController,o=a.signal;la.set(t,a);function s(){n.setAttribute(`aria-hidden`,`false`),n.removeAttribute(`inert`),r.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),document.documentElement.classList.add(`drawer-open`);let e=n.querySelector(`.site-nav-drawer-close`)??n.querySelector(`a[href], button`);e&&e.focus()}function c(e=!0){n.setAttribute(`aria-hidden`,`true`),r.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),document.documentElement.classList.remove(`drawer-open`),n.addEventListener(`transitionend`,()=>{n.getAttribute(`aria-hidden`)===`true`&&n.setAttribute(`inert`,``)},{once:!0,signal:o}),e&&t.focus()}t.addEventListener(`click`,()=>{t.getAttribute(`aria-expanded`)===`true`?c():s()},{signal:o}),i?.addEventListener(`click`,()=>c(),{signal:o}),r.addEventListener(`click`,()=>c(),{signal:o}),n.addEventListener(`click`,e=>{e.target instanceof Element&&e.target.closest(`a[href]`)&&c(!1)},{signal:o}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),c())},{signal:o})}function ha(e=document){for(let t of e.querySelectorAll(`.site-header-more-btn`))ca.get(t)?.abort(),ca.delete(t),delete t.dataset.moreInitialized;for(let t of e.querySelectorAll(`.site-header-hamburger`))la.get(t)?.abort(),la.delete(t),delete t.dataset.drawerInitialized;document.documentElement.classList.remove(`drawer-open`)}ma();function ga(e=document){e.querySelectorAll(`.collection-sort-menu`).forEach(e=>{if(e.dataset.collectionSortMenuInitialized===`true`)return;let t=e.querySelector(`:scope > .collection-sort-trigger`),n=e.querySelector(`:scope > [data-popover]`),r=n?.querySelector(`[data-collection-sort-options]`);if(!(t instanceof HTMLButtonElement)||!n||!r)return;let i=(e=!1)=>{n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus())},a=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`)};t.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.getAttribute(`aria-expanded`)===`true`?i(!1):a()}),t.addEventListener(`keydown`,e=>{if(e.key===`Escape`){e.preventDefault(),i(!0);return}if(e.key===`ArrowDown`){e.preventDefault(),t.getAttribute(`aria-expanded`)!==`true`&&a();let n=r.querySelector(`a[href]`);n instanceof HTMLElement&&n.focus()}}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),i(!0))}),document.addEventListener(`click`,t=>{t.target instanceof Node&&(e.contains(t.target)||i(!1))}),document.addEventListener(`basecoat:popover`,t=>{t.detail?.source!==e&&i(!1)}),e.dataset.collectionSortMenuInitialized=`true`})}ga(),rn(),document.documentElement.dataset.jantVersion=`0.6.13-aaa5a490f3013f33`;export{tn as S,q as _,Ki as a,Zn as b,Gi as c,Ai as d,ji as f,J as g,Z as h,qi as i,Mi as l,hi as m,ma as n,Wi as o,ki as p,ta as r,$ as s,ha as t,Ni as u,K as v,mn as x,ui as y};
275
+ `:J}};customElements.define(`jant-text-preview`,Xi);var Zi=8;function Qi(e,t){let n=Number.parseFloat(e);return Number.isFinite(n)?n:t}function $i(e){return Qi(getComputedStyle(e).getPropertyValue(`--site-thread-context-max-height`).trim(),240)}function ea(e){if(e.dataset.threadContextToggleBound===`1`)return;e.dataset.threadContextToggleBound=`1`;let t=e.previousElementSibling;if(!(t instanceof HTMLElement)||t.dataset.threadContext===void 0)return;let n=e.querySelector(`.thread-context-toggle-label`),r=e.dataset.labelMore??`Show more`,i=e.dataset.labelLess??`Show less`,a=!1,o=t=>{e.setAttribute(`aria-expanded`,t?`true`:`false`),n&&(n.textContent=t?i:r)},s=()=>Array.from(t.querySelectorAll(`img`)).every(e=>e.complete),c=()=>{if(a)return;let n=$i(t),r=t.scrollHeight>n+Zi;t.dataset.collapsed===void 0&&(t.dataset.collapsed=``),r?(e.hidden=!1,o(!1)):s()&&(e.hidden=!0)};if(c(),t.querySelectorAll(`img`).forEach(e=>{e.complete||(e.addEventListener(`load`,c,{once:!0}),e.addEventListener(`error`,c,{once:!0}))}),`ResizeObserver`in globalThis){let e=0;new globalThis.ResizeObserver(()=>{cancelAnimationFrame(e),e=requestAnimationFrame(c)}).observe(t)}let l=()=>{let e=!1,n=r=>{e||r&&r.propertyName!==`max-height`||(e=!0,t.removeEventListener(`transitionend`,n),t.dataset.collapsed===void 0&&(t.style.maxHeight=``))};t.addEventListener(`transitionend`,n),window.setTimeout(n,600)};e.addEventListener(`click`,()=>{a=!0,t.dataset.collapsed===void 0?(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,requestAnimationFrame(()=>{t.dataset.collapsed=``,t.style.maxHeight=``}),o(!1)):(t.style.maxHeight=`${t.scrollHeight}px`,t.offsetHeight,delete t.dataset.collapsed,o(!0)),l()})}function ta(e=document){e.querySelectorAll(`[data-thread-context-toggle]`).forEach(ea)}function na(e){let t=e.closest(`.thread-group-detail`);return t?t.querySelector(`.thread-detail-item`)===e:!1}function ra(){return globalThis.location.hash===`#continue`}function ia(e=document){let t=e.querySelector(`[data-post-current]`);if(!(t instanceof HTMLElement))return;let n=ra();if(globalThis.location.hash&&!n)return;let r=n?`auto`:`smooth`,i=na(t);requestAnimationFrame(()=>{i&&!n||t.scrollIntoView({behavior:r,block:`start`})})}document.addEventListener(`DOMContentLoaded`,()=>{ta(document),ia(document)});function aa(e){return e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function oa(e,t){t&&(e.textContent=t)}function sa(e){let t=e.target;if(!(t instanceof globalThis.Element))return;let n=t.closest(`a[data-note-expand]`);if(!n||aa(e))return;let r=n.closest(`article[data-post]`),i=r?.querySelector(`[data-post-body]`);if(!(!r||!i||!i.querySelector(`[data-note-break]`))){if(e.preventDefault(),i.hasAttribute(`data-note-clamp`)){i.removeAttribute(`data-note-clamp`),n.setAttribute(`aria-expanded`,`true`),oa(n,n.dataset.labelLess);return}i.setAttribute(`data-note-clamp`,``),n.setAttribute(`aria-expanded`,`false`),oa(n,n.dataset.labelMore),r.getBoundingClientRect().top<0&&typeof r.scrollIntoView==`function`&&r.scrollIntoView({block:`start`})}}document.addEventListener(`click`,sa),document.querySelectorAll(`.archive-chip-dropdown`).forEach(e=>{let t=e.querySelector(`:scope > button`),n=e.querySelector(`:scope > [data-popover]`),r=n?n.querySelector(`[role="listbox"]`):null;if(!t||!n||!r)return;let i=Array.from(r.querySelectorAll(`[role="option"]`)),a=e.classList.contains(`archive-chip-media`),o=e.dataset.filterKey,s=new Set;a&&i.forEach(e=>{!e.dataset.navigate&&e.getAttribute(`aria-selected`)===`true`&&s.add(e.dataset.value)});let c=new Set(s),l=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),a&&(c=new Set(s))},u=(e=!0)=>{if(n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus(),a&&o&&(s.size!==c.size||[...s].some(e=>!c.has(e))))){let e=new URL(window.location.href),t=[...s];t.length>0?e.searchParams.set(o,t.join(`,`)):e.searchParams.delete(o),e.searchParams.delete(`hasMedia`),e.searchParams.delete(`page`),window.location.href=e.pathname+(e.search||``)}};t.addEventListener(`click`,e=>{e.target.closest(`.archive-chip-clear`)||(t.getAttribute(`aria-expanded`)===`true`?u():l())}),document.addEventListener(`click`,t=>{e.contains(t.target)||u(!1)}),document.addEventListener(`basecoat:popover`,t=>{t.detail.source!==e&&u(!1)}),r.addEventListener(`click`,e=>{let t=e.target.closest(`[role="option"]`);if(t){if(t.dataset.navigate){let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e);return}if(a){let e=t.dataset.value;s.has(e)?(s.delete(e),t.removeAttribute(`aria-selected`)):(s.add(e),t.setAttribute(`aria-selected`,`true`))}else{let e=t.dataset.value;typeof e==`string`&&e.startsWith(`/`)&&(window.location.href=e)}}});let d=-1,f=e=>{d>-1&&i[d]&&i[d].classList.remove(`active`),d=e,d>-1&&i[d]&&(i[d].classList.add(`active`),i[d].scrollIntoView({block:`nearest`}))};r.addEventListener(`mousemove`,e=>{let t=e.target.closest(`[role="option"]`);if(t){let e=i.indexOf(t);e!==-1&&e!==d&&f(e)}}),r.addEventListener(`mouseleave`,()=>{f(-1)}),t.addEventListener(`keydown`,e=>{let t=n.getAttribute(`aria-hidden`)===`false`;if(e.key===`Escape`){t&&(e.preventDefault(),u());return}if(!t&&[`ArrowDown`,`ArrowUp`].includes(e.key)){e.preventDefault(),l();return}t&&(e.preventDefault(),e.key===`ArrowDown`?f(Math.min(d+1,i.length-1)):e.key===`ArrowUp`?f(Math.max(d-1,0)):e.key===`Enter`&&d>-1&&(i[d].click(),!a&&!i[d].dataset.navigate&&u()))})});var ca=new WeakMap,la=new WeakMap;function ua(e){let t=e.querySelector(`.site-header-more-btn`),n=e.querySelector(`.site-header-more-popover`);if(!t||!n||t.dataset.moreInitialized===`true`)return;t.dataset.moreInitialized=`true`;let r=new AbortController,i=r.signal;ca.set(t,r);function a(){n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:t.parentElement}}))}function o(e=!1){n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus()}t.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.getAttribute(`aria-expanded`)===`true`?o():a()},{signal:i}),document.addEventListener(`click`,e=>{e.target instanceof Node&&(t.parentElement?.contains(e.target)||o())},{signal:i}),document.addEventListener(`keydown`,e=>{e.key===`Escape`&&n.getAttribute(`aria-hidden`)===`false`&&o(!0)},{signal:i}),document.addEventListener(`basecoat:popover`,e=>{e.detail?.source!==t.parentElement&&o()},{signal:i})}var da=`jant:nav-fresh-visits`;function fa(){let e=document.createElement(`span`);return e.className=`site-header-link-fresh`,e.setAttribute(`aria-hidden`,`true`),e.textContent=`*`,e}function pa(e){try{let t=JSON.parse(localStorage.getItem(da)||`{}`),n=location.pathname,r=e.querySelectorAll(`[data-fresh-at]`);for(let e of r){let r=new URL(e.href).pathname,i=parseInt(e.dataset.freshAt,10);if(r===n)t[r]=Math.floor(Date.now()/1e3);else{let n=t[r];if(!n||n<i){let t=e.querySelector(`svg`);e.insertBefore(fa(),t)}}}localStorage.setItem(da,JSON.stringify(t))}catch{}}function ma(e=document){let t=e.querySelector(`.site-header-hamburger`),n=e.querySelector(`#site-nav-drawer`),r=e.querySelector(`.site-nav-drawer-backdrop`),i=n?.querySelector(`.site-nav-drawer-close`);if(pa(e),ua(e),!t||!n||!r||t.dataset.drawerInitialized===`true`)return;t.dataset.drawerInitialized=`true`;let a=new AbortController,o=a.signal;la.set(t,a);function s(){n.setAttribute(`aria-hidden`,`false`),n.removeAttribute(`inert`),r.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`),document.documentElement.classList.add(`drawer-open`);let e=n.querySelector(`.site-nav-drawer-close`)??n.querySelector(`a[href], button`);e&&e.focus()}function c(e=!0){n.setAttribute(`aria-hidden`,`true`),r.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),document.documentElement.classList.remove(`drawer-open`),n.addEventListener(`transitionend`,()=>{n.getAttribute(`aria-hidden`)===`true`&&n.setAttribute(`inert`,``)},{once:!0,signal:o}),e&&t.focus()}t.addEventListener(`click`,()=>{t.getAttribute(`aria-expanded`)===`true`?c():s()},{signal:o}),i?.addEventListener(`click`,()=>c(),{signal:o}),r.addEventListener(`click`,()=>c(),{signal:o}),n.addEventListener(`click`,e=>{e.target instanceof Element&&e.target.closest(`a[href]`)&&c(!1)},{signal:o}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),c())},{signal:o})}function ha(e=document){for(let t of e.querySelectorAll(`.site-header-more-btn`))ca.get(t)?.abort(),ca.delete(t),delete t.dataset.moreInitialized;for(let t of e.querySelectorAll(`.site-header-hamburger`))la.get(t)?.abort(),la.delete(t),delete t.dataset.drawerInitialized;document.documentElement.classList.remove(`drawer-open`)}ma();function ga(e=document){e.querySelectorAll(`.collection-sort-menu`).forEach(e=>{if(e.dataset.collectionSortMenuInitialized===`true`)return;let t=e.querySelector(`:scope > .collection-sort-trigger`),n=e.querySelector(`:scope > [data-popover]`),r=n?.querySelector(`[data-collection-sort-options]`);if(!(t instanceof HTMLButtonElement)||!n||!r)return;let i=(e=!1)=>{n.getAttribute(`aria-hidden`)!==`true`&&(n.setAttribute(`aria-hidden`,`true`),t.setAttribute(`aria-expanded`,`false`),e&&t.focus())},a=()=>{document.dispatchEvent(new CustomEvent(`basecoat:popover`,{detail:{source:e}})),n.setAttribute(`aria-hidden`,`false`),t.setAttribute(`aria-expanded`,`true`)};t.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.getAttribute(`aria-expanded`)===`true`?i(!1):a()}),t.addEventListener(`keydown`,e=>{if(e.key===`Escape`){e.preventDefault(),i(!0);return}if(e.key===`ArrowDown`){e.preventDefault(),t.getAttribute(`aria-expanded`)!==`true`&&a();let n=r.querySelector(`a[href]`);n instanceof HTMLElement&&n.focus()}}),n.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),i(!0))}),document.addEventListener(`click`,t=>{t.target instanceof Node&&(e.contains(t.target)||i(!1))}),document.addEventListener(`basecoat:popover`,t=>{t.detail?.source!==e&&i(!1)}),e.dataset.collectionSortMenuInitialized=`true`})}ga(),rn(),document.documentElement.dataset.jantVersion=`0.6.14-9eb13ea225acf832`;export{tn as S,q as _,Ki as a,Zn as b,Gi as c,Ai as d,ji as f,J as g,Z as h,qi as i,Mi as l,hi as m,ma as n,Wi as o,ki as p,ta as r,$ as s,ha as t,Ni as u,K as v,mn as x,ui as y};