@flamingo-stack/openframe-frontend-core 0.0.572 → 0.0.573-1933.5266.1

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 (122) hide show
  1. package/dist/{chunk-3ZCIC4MS.js → chunk-2BNPLJSU.js} +3 -3
  2. package/dist/{chunk-2IMAYSYH.cjs → chunk-47Y537OE.cjs} +19 -19
  3. package/dist/{chunk-2IMAYSYH.cjs.map → chunk-47Y537OE.cjs.map} +1 -1
  4. package/dist/{chunk-LMRBXA2F.cjs → chunk-5TVO35AW.cjs} +3 -3
  5. package/dist/{chunk-LMRBXA2F.cjs.map → chunk-5TVO35AW.cjs.map} +1 -1
  6. package/dist/{chunk-YSG6JYBP.cjs → chunk-5ZKZK3V2.cjs} +16 -16
  7. package/dist/{chunk-YSG6JYBP.cjs.map → chunk-5ZKZK3V2.cjs.map} +1 -1
  8. package/dist/{chunk-VKZDIRXC.cjs → chunk-66CKTUIV.cjs} +3 -3
  9. package/dist/{chunk-VKZDIRXC.cjs.map → chunk-66CKTUIV.cjs.map} +1 -1
  10. package/dist/{chunk-OQNIQVET.js → chunk-6QJYO3SB.js} +21 -3
  11. package/dist/chunk-6QJYO3SB.js.map +1 -0
  12. package/dist/{chunk-RSVRM35D.js → chunk-6ZC6IC6H.js} +2 -2
  13. package/dist/{chunk-7Y2MC6LN.cjs → chunk-7D3KGRH5.cjs} +37 -37
  14. package/dist/{chunk-7Y2MC6LN.cjs.map → chunk-7D3KGRH5.cjs.map} +1 -1
  15. package/dist/{chunk-R6UKDAGZ.js → chunk-BNAN4WLF.js} +6 -6
  16. package/dist/{chunk-JS3U2V7J.js → chunk-CNNRCN6S.js} +3 -3
  17. package/dist/{chunk-P5MRXAXN.cjs → chunk-D5GJWW6Z.cjs} +10 -10
  18. package/dist/{chunk-P5MRXAXN.cjs.map → chunk-D5GJWW6Z.cjs.map} +1 -1
  19. package/dist/{chunk-7A7SH2RI.js → chunk-E4W7RVFZ.js} +2 -2
  20. package/dist/{chunk-IGGHHVOD.js → chunk-EHQNJDP6.js} +3 -3
  21. package/dist/{chunk-L6C7SYRU.js → chunk-ET5V44BF.js} +4 -4
  22. package/dist/{chunk-MVR5MU7B.js → chunk-G5EH3A2U.js} +4 -4
  23. package/dist/{chunk-ZHI7PPI7.cjs → chunk-HV3SJHX2.cjs} +7 -7
  24. package/dist/{chunk-ZHI7PPI7.cjs.map → chunk-HV3SJHX2.cjs.map} +1 -1
  25. package/dist/{chunk-5PFN7X2H.cjs → chunk-IHW7HEFU.cjs} +22 -22
  26. package/dist/{chunk-5PFN7X2H.cjs.map → chunk-IHW7HEFU.cjs.map} +1 -1
  27. package/dist/{chunk-QCWTNMWZ.js → chunk-KELXUVJW.js} +25 -6
  28. package/dist/{chunk-QCWTNMWZ.js.map → chunk-KELXUVJW.js.map} +1 -1
  29. package/dist/{chunk-A3WAKKCV.cjs → chunk-LC4AKB7U.cjs} +3 -3
  30. package/dist/{chunk-A3WAKKCV.cjs.map → chunk-LC4AKB7U.cjs.map} +1 -1
  31. package/dist/{chunk-II52DW7X.js → chunk-OZGDWUVN.js} +2 -2
  32. package/dist/{chunk-3CWVBREW.cjs → chunk-P2MTEESX.cjs} +64 -46
  33. package/dist/chunk-P2MTEESX.cjs.map +1 -0
  34. package/dist/{chunk-GWDOWAHU.cjs → chunk-PLBXVJIN.cjs} +3 -3
  35. package/dist/{chunk-GWDOWAHU.cjs.map → chunk-PLBXVJIN.cjs.map} +1 -1
  36. package/dist/{chunk-6JZXYDWC.js → chunk-PVZZGQMZ.js} +5 -5
  37. package/dist/{chunk-W6PFJ6RY.cjs → chunk-QXEXMPXV.cjs} +7 -7
  38. package/dist/{chunk-W6PFJ6RY.cjs.map → chunk-QXEXMPXV.cjs.map} +1 -1
  39. package/dist/{chunk-VNYEX66A.js → chunk-SVARR3OQ.js} +6 -6
  40. package/dist/{chunk-ZIF4IJ5L.cjs → chunk-VKYND7JR.cjs} +53 -53
  41. package/dist/{chunk-ZIF4IJ5L.cjs.map → chunk-VKYND7JR.cjs.map} +1 -1
  42. package/dist/{chunk-IZBQBUDP.js → chunk-X3VKHMHA.js} +3 -3
  43. package/dist/{chunk-RXMY3LTP.js → chunk-X4M3KSFH.js} +2 -2
  44. package/dist/{chunk-5LFT3RJQ.cjs → chunk-Y24CV7JN.cjs} +17 -17
  45. package/dist/{chunk-5LFT3RJQ.cjs.map → chunk-Y24CV7JN.cjs.map} +1 -1
  46. package/dist/{chunk-GC3TT3UF.cjs → chunk-YNBE6G5I.cjs} +26 -7
  47. package/dist/chunk-YNBE6G5I.cjs.map +1 -0
  48. package/dist/{chunk-KXKMVZUG.js → chunk-YW2JM4EC.js} +2 -2
  49. package/dist/{chunk-LE4RPH3E.cjs → chunk-YYO5RZJU.cjs} +36 -36
  50. package/dist/{chunk-LE4RPH3E.cjs.map → chunk-YYO5RZJU.cjs.map} +1 -1
  51. package/dist/components/case-studies/index.cjs +9 -9
  52. package/dist/components/case-studies/index.js +3 -3
  53. package/dist/components/contact/index.cjs +4 -4
  54. package/dist/components/contact/index.js +3 -3
  55. package/dist/components/docs/index.cjs +7 -7
  56. package/dist/components/docs/index.js +6 -6
  57. package/dist/components/embeds/index.cjs +4 -4
  58. package/dist/components/embeds/index.js +3 -3
  59. package/dist/components/faq/index.cjs +4 -4
  60. package/dist/components/faq/index.js +3 -3
  61. package/dist/components/features/index.cjs +3 -3
  62. package/dist/components/features/index.js +2 -2
  63. package/dist/components/help-center-pages/index.cjs +23 -23
  64. package/dist/components/help-center-pages/index.js +14 -14
  65. package/dist/components/index.cjs +118 -118
  66. package/dist/components/index.js +13 -13
  67. package/dist/components/meeting-scheduler/index.cjs +19 -19
  68. package/dist/components/meeting-scheduler/index.cjs.map +1 -1
  69. package/dist/components/meeting-scheduler/index.js +3 -3
  70. package/dist/components/meeting-scheduler/index.js.map +1 -1
  71. package/dist/components/navigation/index.cjs +6 -6
  72. package/dist/components/navigation/index.js +5 -5
  73. package/dist/components/onboarding-guides/index.cjs +6 -6
  74. package/dist/components/onboarding-guides/index.js +5 -5
  75. package/dist/components/tickets/index.cjs +7 -7
  76. package/dist/components/tickets/index.js +6 -6
  77. package/dist/components/ui/honeypot-field.d.ts +11 -0
  78. package/dist/components/ui/honeypot-field.d.ts.map +1 -1
  79. package/dist/components/ui/index.cjs +3 -3
  80. package/dist/components/ui/index.js +2 -2
  81. package/dist/hooks/index.cjs +2 -2
  82. package/dist/hooks/index.js +1 -1
  83. package/dist/hooks/use-humanity-signals.d.ts +1 -1
  84. package/dist/hooks/use-meeting-booking.d.ts +3 -3
  85. package/dist/hooks/use-meeting-booking.d.ts.map +1 -1
  86. package/dist/index.cjs +9 -7
  87. package/dist/index.cjs.map +1 -1
  88. package/dist/index.js +8 -6
  89. package/dist/index.js.map +1 -1
  90. package/dist/utils/humanity-signals.cjs +24 -5
  91. package/dist/utils/humanity-signals.cjs.map +1 -1
  92. package/dist/utils/humanity-signals.d.ts +27 -4
  93. package/dist/utils/humanity-signals.d.ts.map +1 -1
  94. package/dist/utils/humanity-signals.js +24 -6
  95. package/dist/utils/humanity-signals.js.map +1 -1
  96. package/dist/utils/index.cjs +24 -5
  97. package/dist/utils/index.cjs.map +1 -1
  98. package/dist/utils/index.js +24 -6
  99. package/dist/utils/index.js.map +1 -1
  100. package/package.json +1 -1
  101. package/src/components/ui/honeypot-field.tsx +27 -1
  102. package/src/hooks/use-meeting-booking.ts +7 -5
  103. package/src/utils/__tests__/hubspot-meetings-convention.test.ts +4 -2
  104. package/src/utils/__tests__/humanity-signals.test.ts +75 -0
  105. package/src/utils/humanity-signals.ts +56 -8
  106. package/dist/chunk-3CWVBREW.cjs.map +0 -1
  107. package/dist/chunk-GC3TT3UF.cjs.map +0 -1
  108. package/dist/chunk-OQNIQVET.js.map +0 -1
  109. /package/dist/{chunk-3ZCIC4MS.js.map → chunk-2BNPLJSU.js.map} +0 -0
  110. /package/dist/{chunk-RSVRM35D.js.map → chunk-6ZC6IC6H.js.map} +0 -0
  111. /package/dist/{chunk-R6UKDAGZ.js.map → chunk-BNAN4WLF.js.map} +0 -0
  112. /package/dist/{chunk-JS3U2V7J.js.map → chunk-CNNRCN6S.js.map} +0 -0
  113. /package/dist/{chunk-7A7SH2RI.js.map → chunk-E4W7RVFZ.js.map} +0 -0
  114. /package/dist/{chunk-IGGHHVOD.js.map → chunk-EHQNJDP6.js.map} +0 -0
  115. /package/dist/{chunk-L6C7SYRU.js.map → chunk-ET5V44BF.js.map} +0 -0
  116. /package/dist/{chunk-MVR5MU7B.js.map → chunk-G5EH3A2U.js.map} +0 -0
  117. /package/dist/{chunk-II52DW7X.js.map → chunk-OZGDWUVN.js.map} +0 -0
  118. /package/dist/{chunk-6JZXYDWC.js.map → chunk-PVZZGQMZ.js.map} +0 -0
  119. /package/dist/{chunk-VNYEX66A.js.map → chunk-SVARR3OQ.js.map} +0 -0
  120. /package/dist/{chunk-IZBQBUDP.js.map → chunk-X3VKHMHA.js.map} +0 -0
  121. /package/dist/{chunk-RXMY3LTP.js.map → chunk-X4M3KSFH.js.map} +0 -0
  122. /package/dist/{chunk-KXKMVZUG.js.map → chunk-YW2JM4EC.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
- var _chunk3CWVBREWcjs = require('./chunk-3CWVBREW.cjs');
4
+ var _chunkP2MTEESXcjs = require('./chunk-P2MTEESX.cjs');
5
5
 
6
6
 
7
7
 
@@ -55,7 +55,7 @@ function DetailPageSkeleton({
55
55
  ] }, section))
56
56
  ] });
57
57
  if (bare) return content;
58
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3CWVBREWcjs.PageLayout, { showHeader: false, className: "mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 md:px-20 md:py-10", children: content });
58
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP2MTEESXcjs.PageLayout, { showHeader: false, className: "mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 md:px-20 md:py-10", children: content });
59
59
  }
60
60
 
61
61
  // src/components/shared/article-author-byline.tsx
@@ -143,4 +143,4 @@ function ArticleAuthorByline({
143
143
 
144
144
 
145
145
  exports.DetailPageSkeleton = DetailPageSkeleton; exports.ArticleAuthorByline = ArticleAuthorByline;
146
- //# sourceMappingURL=chunk-A3WAKKCV.cjs.map
146
+ //# sourceMappingURL=chunk-LC4AKB7U.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-A3WAKKCV.cjs","../src/components/shared/detail-page-skeleton.tsx","../src/components/shared/article-author-byline.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-A3WAKKCV.cjs","sourcesContent":[null,"'use client';\n\nimport { PageLayout } from '../layout/page-layout';\n\nexport interface DetailPageSkeletonProps {\n metadataColumns?: number; // Number of metadata grid columns (default 4)\n showImageGallery?: boolean; // Show horizontal image gallery (default true)\n /** Render only the skeleton blocks, WITHOUT the self-contained page wrapper\n * — the caller supplies its own (e.g. `<PageShell>`) so the loading state\n * matches the loaded page's width, padding, and min-height. Default false\n * (self-contained `<PageLayout>` at the hub article width). */\n bare?: boolean;\n}\n\nexport function DetailPageSkeleton({\n metadataColumns = 4,\n showImageGallery = true,\n bare = false,\n}: DetailPageSkeletonProps = {}) {\n const content = (\n <div className=\"animate-pulse space-y-6 md:space-y-10\">\n {/* Title Block */}\n <div className=\"flex w-full flex-col gap-6\">\n <div className=\"h-16 w-full max-w-3xl rounded bg-ods-card md:h-20\"></div>\n </div>\n\n {/* Category Tags Skeleton */}\n <div className=\"flex w-full flex-wrap gap-2\">\n <div className=\"h-8 w-32 rounded bg-ods-card\"></div>\n <div className=\"h-8 w-28 rounded bg-ods-card\"></div>\n <div className=\"h-8 w-36 rounded bg-ods-card\"></div>\n </div>\n\n {/* Metadata Grid Skeleton */}\n <div\n className={`grid grid-cols-1 md:grid-cols-${metadataColumns} w-full overflow-hidden rounded-md border border-ods-border`}\n >\n {Array.from({ length: metadataColumns }).map((_, i) => (\n <div key={i} className=\"border-b border-ods-border bg-ods-card p-4 last:border-r-0 md:border-b-0 md:border-r\">\n <div className=\"mb-2 h-6 w-24 rounded bg-ods-border\"></div>\n <div className=\"h-5 w-20 rounded bg-ods-border\"></div>\n </div>\n ))}\n </div>\n\n {/* Image Gallery Skeleton */}\n {showImageGallery && (\n <div className=\"flex w-full gap-6 overflow-x-auto\">\n {[1, 2, 3, 4, 5].map(i => (\n <div key={i} className=\"h-[200px] w-[240px] shrink-0 rounded-md border border-ods-border bg-ods-card\"></div>\n ))}\n </div>\n )}\n\n {/* Featured Image Skeleton (for case studies) */}\n {!showImageGallery && <div className=\"aspect-[2560/1366] w-full rounded-md bg-ods-card\"></div>}\n\n {/* Content Sections Skeleton */}\n {[1, 2, 3].map(section => (\n <div key={section} className=\"space-y-6\">\n <div className=\"h-16 w-64 rounded bg-ods-card\"></div>\n <div className=\"space-y-3\">\n <div className=\"h-6 w-full rounded bg-ods-card\"></div>\n <div className=\"h-6 w-full rounded bg-ods-card\"></div>\n <div className=\"h-6 w-4/5 rounded bg-ods-card\"></div>\n </div>\n </div>\n ))}\n </div>\n );\n if (bare) return content;\n return (\n <PageLayout showHeader={false} className=\"mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 md:px-20 md:py-10\">\n {content}\n </PageLayout>\n );\n}\n","'use client';\n\n/**\n * Shared \"author byline\" card used by article-shaped detail pages\n * (blog post, product release, onboarding guide, investor update).\n *\n * MOVED from the hub so any consuming app can embed it; hub call sites\n * import it directly and pass their platform-aware copy explicitly\n * (`fallbackBio={defaultAuthorFallbackBio()}` from the hub's app-config).\n *\n * Embed-readiness contract:\n * - `Link` / `Image` render through the embed-shims (plain `<a>` / `<img>`\n * in non-Next hosts; the real Next primitives once the host registers\n * them at app init).\n * - The avatar is proxied through the OPTIONAL ambient `ChatRuntime`\n * (`endpoints.imageProxyUrlPrefix`, same config `useProxiedImageUrl`\n * reads) — when no runtime is mounted the raw URL renders as-is, so the\n * component never throws outside a provider. Hosts can also inject\n * `proxyImageUrl` to bypass the runtime entirely.\n * - `fallbackBio` is a PLAIN prop (no app-config import): the lib has no\n * platform awareness; pass copy or leave it absent to render nothing.\n *\n * Render order: avatar → name + job title + date → bio (when present).\n * Returns null when `author` is empty (no card rendered).\n */\n\nimport { Calendar, User } from 'lucide-react';\nimport { useChatRuntime } from '../../contexts/chat-runtime-context';\nimport Image from '../../embed-shims/next-image';\nimport Link from '../../embed-shims/next-link';\nimport { cn } from '../../utils/cn';\nimport { formatBioText } from '../../utils/format';\nimport { getProxiedImageUrl } from '../../utils/image-proxy';\n\nexport interface ArticleAuthorBylineProps {\n /** Author display name. Required — block is hidden when null/empty. */\n author: string | null;\n /** Avatar URL. Falls back to a placeholder when null. */\n avatar?: string | null;\n /** Optional bio paragraph rendered below the name. */\n bio?: string | null;\n /** Optional job title rendered immediately under the name. */\n jobTitle?: string | null;\n /** Optional published date (ISO string or Date). Rendered next to the name. */\n publishedAt?: string | Date | null;\n /** Optional link target for the author name (e.g. the author page). */\n href?: string | null;\n /**\n * Fallback paragraph when `bio` is empty. Plain copy — the lib has no\n * platform/config awareness, so hosts that want a branded default\n * (\"Contributing author on the {platform} platform\") pass it explicitly\n * (the hub wrapper derives it from `getAppConfig()`). Absent/null ⇒\n * nothing renders below the name when `bio` is empty.\n */\n fallbackBio?: string | null;\n /** Avatar size variant. `md` = 56px (default), `lg` = 64px. */\n size?: 'md' | 'lg';\n /**\n * Host-injected avatar-URL mapper. Wins over the ambient-runtime proxy\n * resolution. Use when the host proxies images outside the `ChatRuntime`\n * config (e.g. a bespoke CDN rewrite).\n */\n proxyImageUrl?: (url: string) => string;\n className?: string;\n}\n\nfunction formatDate(value: string | Date): string {\n const d = typeof value === 'string' ? new Date(value) : value;\n if (Number.isNaN(d.getTime())) return '';\n // `timeZone: 'UTC'` keeps the SSR (server = UTC) and client (user's local tz)\n // renders identical — without it a published_at near a midnight boundary\n // formats to a different day on each side, triggering a React #418 hydration\n // text mismatch. Matches the convention in blog-metadata.tsx / investor-update.\n return d.toLocaleDateString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n });\n}\n\nexport function ArticleAuthorByline({\n author,\n avatar,\n bio,\n jobTitle,\n publishedAt,\n href,\n fallbackBio,\n size = 'md',\n proxyImageUrl,\n className,\n}: ArticleAuthorBylineProps) {\n // Optional runtime — `useChatRuntime` returns null outside a provider, so\n // the byline works in bare embeds (raw avatar URL) and proxies whenever the\n // host mounted a runtime with `imageProxyUrlPrefix` (the hub always does).\n const runtime = useChatRuntime();\n if (!author) return null;\n\n const proxiedAvatar = avatar\n ? proxyImageUrl\n ? proxyImageUrl(avatar)\n : (getProxiedImageUrl(avatar, {\n proxyPrefix: runtime?.endpoints.imageProxyUrlPrefix,\n skipDomains: runtime?.endpoints.imageProxySkipDomains,\n directHttps: true,\n }) ?? avatar)\n : '';\n\n // Class-driven sizing (md = 56px, lg = 64px). The numeric pair feeds only\n // the Image element's intrinsic width/height attributes (required by the\n // Next image shim) — layout comes from the classes.\n const avatarSizeClass = size === 'lg' ? 'w-16 h-16' : 'w-14 h-14';\n const avatarIconClass = size === 'lg' ? 'w-8 h-8' : 'w-7 h-7';\n const avatarDim = size === 'lg' ? 64 : 56;\n const formattedBio = formatBioText(bio ?? null);\n const dateLabel = publishedAt ? formatDate(publishedAt) : '';\n\n return (\n <div\n className={cn(\n 'rounded-lg border border-ods-border bg-ods-card p-6',\n 'flex flex-col items-start gap-4 md:flex-row',\n className,\n )}\n >\n {/* Avatar */}\n <div className=\"flex-shrink-0\">\n {avatar ? (\n <Image\n src={proxiedAvatar || avatar}\n alt={author}\n width={avatarDim}\n height={avatarDim}\n className={cn('rounded-full border-2 border-ods-border object-cover', avatarSizeClass)}\n />\n ) : (\n <div\n className={cn(\n 'flex items-center justify-center rounded-full border-2 border-ods-border bg-ods-bg',\n avatarSizeClass,\n )}\n >\n <User className={cn('text-ods-text-secondary', avatarIconClass)} />\n </div>\n )}\n </div>\n\n {/* Name + meta + bio */}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-baseline gap-x-3 gap-y-1\">\n <h3 className=\"text-ods-text-primary text-h5\">\n {href ? (\n <Link href={href} className=\"transition-colors hover:text-ods-accent\">\n {author}\n </Link>\n ) : (\n author\n )}\n </h3>\n {dateLabel && (\n <span className=\"text-body-sm inline-flex items-center gap-1 font-body text-ods-text-secondary\">\n <Calendar className=\"h-3 w-3\" />\n {dateLabel}\n </span>\n )}\n </div>\n {jobTitle && <p className=\"text-body-sm mt-0.5 font-body text-ods-text-secondary\">{jobTitle}</p>}\n {formattedBio ? (\n <p className=\"text-body-md mt-2 font-body leading-relaxed text-ods-text-secondary\">{formattedBio}</p>\n ) : fallbackBio ? (\n <p className=\"text-body-md mt-2 font-body italic text-ods-text-secondary\">{fallbackBio}</p>\n ) : null}\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-LC4AKB7U.cjs","../src/components/shared/detail-page-skeleton.tsx","../src/components/shared/article-author-byline.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-LC4AKB7U.cjs","sourcesContent":[null,"'use client';\n\nimport { PageLayout } from '../layout/page-layout';\n\nexport interface DetailPageSkeletonProps {\n metadataColumns?: number; // Number of metadata grid columns (default 4)\n showImageGallery?: boolean; // Show horizontal image gallery (default true)\n /** Render only the skeleton blocks, WITHOUT the self-contained page wrapper\n * — the caller supplies its own (e.g. `<PageShell>`) so the loading state\n * matches the loaded page's width, padding, and min-height. Default false\n * (self-contained `<PageLayout>` at the hub article width). */\n bare?: boolean;\n}\n\nexport function DetailPageSkeleton({\n metadataColumns = 4,\n showImageGallery = true,\n bare = false,\n}: DetailPageSkeletonProps = {}) {\n const content = (\n <div className=\"animate-pulse space-y-6 md:space-y-10\">\n {/* Title Block */}\n <div className=\"flex w-full flex-col gap-6\">\n <div className=\"h-16 w-full max-w-3xl rounded bg-ods-card md:h-20\"></div>\n </div>\n\n {/* Category Tags Skeleton */}\n <div className=\"flex w-full flex-wrap gap-2\">\n <div className=\"h-8 w-32 rounded bg-ods-card\"></div>\n <div className=\"h-8 w-28 rounded bg-ods-card\"></div>\n <div className=\"h-8 w-36 rounded bg-ods-card\"></div>\n </div>\n\n {/* Metadata Grid Skeleton */}\n <div\n className={`grid grid-cols-1 md:grid-cols-${metadataColumns} w-full overflow-hidden rounded-md border border-ods-border`}\n >\n {Array.from({ length: metadataColumns }).map((_, i) => (\n <div key={i} className=\"border-b border-ods-border bg-ods-card p-4 last:border-r-0 md:border-b-0 md:border-r\">\n <div className=\"mb-2 h-6 w-24 rounded bg-ods-border\"></div>\n <div className=\"h-5 w-20 rounded bg-ods-border\"></div>\n </div>\n ))}\n </div>\n\n {/* Image Gallery Skeleton */}\n {showImageGallery && (\n <div className=\"flex w-full gap-6 overflow-x-auto\">\n {[1, 2, 3, 4, 5].map(i => (\n <div key={i} className=\"h-[200px] w-[240px] shrink-0 rounded-md border border-ods-border bg-ods-card\"></div>\n ))}\n </div>\n )}\n\n {/* Featured Image Skeleton (for case studies) */}\n {!showImageGallery && <div className=\"aspect-[2560/1366] w-full rounded-md bg-ods-card\"></div>}\n\n {/* Content Sections Skeleton */}\n {[1, 2, 3].map(section => (\n <div key={section} className=\"space-y-6\">\n <div className=\"h-16 w-64 rounded bg-ods-card\"></div>\n <div className=\"space-y-3\">\n <div className=\"h-6 w-full rounded bg-ods-card\"></div>\n <div className=\"h-6 w-full rounded bg-ods-card\"></div>\n <div className=\"h-6 w-4/5 rounded bg-ods-card\"></div>\n </div>\n </div>\n ))}\n </div>\n );\n if (bare) return content;\n return (\n <PageLayout showHeader={false} className=\"mx-auto max-w-[1280px] bg-ods-bg px-6 py-6 md:px-20 md:py-10\">\n {content}\n </PageLayout>\n );\n}\n","'use client';\n\n/**\n * Shared \"author byline\" card used by article-shaped detail pages\n * (blog post, product release, onboarding guide, investor update).\n *\n * MOVED from the hub so any consuming app can embed it; hub call sites\n * import it directly and pass their platform-aware copy explicitly\n * (`fallbackBio={defaultAuthorFallbackBio()}` from the hub's app-config).\n *\n * Embed-readiness contract:\n * - `Link` / `Image` render through the embed-shims (plain `<a>` / `<img>`\n * in non-Next hosts; the real Next primitives once the host registers\n * them at app init).\n * - The avatar is proxied through the OPTIONAL ambient `ChatRuntime`\n * (`endpoints.imageProxyUrlPrefix`, same config `useProxiedImageUrl`\n * reads) — when no runtime is mounted the raw URL renders as-is, so the\n * component never throws outside a provider. Hosts can also inject\n * `proxyImageUrl` to bypass the runtime entirely.\n * - `fallbackBio` is a PLAIN prop (no app-config import): the lib has no\n * platform awareness; pass copy or leave it absent to render nothing.\n *\n * Render order: avatar → name + job title + date → bio (when present).\n * Returns null when `author` is empty (no card rendered).\n */\n\nimport { Calendar, User } from 'lucide-react';\nimport { useChatRuntime } from '../../contexts/chat-runtime-context';\nimport Image from '../../embed-shims/next-image';\nimport Link from '../../embed-shims/next-link';\nimport { cn } from '../../utils/cn';\nimport { formatBioText } from '../../utils/format';\nimport { getProxiedImageUrl } from '../../utils/image-proxy';\n\nexport interface ArticleAuthorBylineProps {\n /** Author display name. Required — block is hidden when null/empty. */\n author: string | null;\n /** Avatar URL. Falls back to a placeholder when null. */\n avatar?: string | null;\n /** Optional bio paragraph rendered below the name. */\n bio?: string | null;\n /** Optional job title rendered immediately under the name. */\n jobTitle?: string | null;\n /** Optional published date (ISO string or Date). Rendered next to the name. */\n publishedAt?: string | Date | null;\n /** Optional link target for the author name (e.g. the author page). */\n href?: string | null;\n /**\n * Fallback paragraph when `bio` is empty. Plain copy — the lib has no\n * platform/config awareness, so hosts that want a branded default\n * (\"Contributing author on the {platform} platform\") pass it explicitly\n * (the hub wrapper derives it from `getAppConfig()`). Absent/null ⇒\n * nothing renders below the name when `bio` is empty.\n */\n fallbackBio?: string | null;\n /** Avatar size variant. `md` = 56px (default), `lg` = 64px. */\n size?: 'md' | 'lg';\n /**\n * Host-injected avatar-URL mapper. Wins over the ambient-runtime proxy\n * resolution. Use when the host proxies images outside the `ChatRuntime`\n * config (e.g. a bespoke CDN rewrite).\n */\n proxyImageUrl?: (url: string) => string;\n className?: string;\n}\n\nfunction formatDate(value: string | Date): string {\n const d = typeof value === 'string' ? new Date(value) : value;\n if (Number.isNaN(d.getTime())) return '';\n // `timeZone: 'UTC'` keeps the SSR (server = UTC) and client (user's local tz)\n // renders identical — without it a published_at near a midnight boundary\n // formats to a different day on each side, triggering a React #418 hydration\n // text mismatch. Matches the convention in blog-metadata.tsx / investor-update.\n return d.toLocaleDateString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n timeZone: 'UTC',\n });\n}\n\nexport function ArticleAuthorByline({\n author,\n avatar,\n bio,\n jobTitle,\n publishedAt,\n href,\n fallbackBio,\n size = 'md',\n proxyImageUrl,\n className,\n}: ArticleAuthorBylineProps) {\n // Optional runtime — `useChatRuntime` returns null outside a provider, so\n // the byline works in bare embeds (raw avatar URL) and proxies whenever the\n // host mounted a runtime with `imageProxyUrlPrefix` (the hub always does).\n const runtime = useChatRuntime();\n if (!author) return null;\n\n const proxiedAvatar = avatar\n ? proxyImageUrl\n ? proxyImageUrl(avatar)\n : (getProxiedImageUrl(avatar, {\n proxyPrefix: runtime?.endpoints.imageProxyUrlPrefix,\n skipDomains: runtime?.endpoints.imageProxySkipDomains,\n directHttps: true,\n }) ?? avatar)\n : '';\n\n // Class-driven sizing (md = 56px, lg = 64px). The numeric pair feeds only\n // the Image element's intrinsic width/height attributes (required by the\n // Next image shim) — layout comes from the classes.\n const avatarSizeClass = size === 'lg' ? 'w-16 h-16' : 'w-14 h-14';\n const avatarIconClass = size === 'lg' ? 'w-8 h-8' : 'w-7 h-7';\n const avatarDim = size === 'lg' ? 64 : 56;\n const formattedBio = formatBioText(bio ?? null);\n const dateLabel = publishedAt ? formatDate(publishedAt) : '';\n\n return (\n <div\n className={cn(\n 'rounded-lg border border-ods-border bg-ods-card p-6',\n 'flex flex-col items-start gap-4 md:flex-row',\n className,\n )}\n >\n {/* Avatar */}\n <div className=\"flex-shrink-0\">\n {avatar ? (\n <Image\n src={proxiedAvatar || avatar}\n alt={author}\n width={avatarDim}\n height={avatarDim}\n className={cn('rounded-full border-2 border-ods-border object-cover', avatarSizeClass)}\n />\n ) : (\n <div\n className={cn(\n 'flex items-center justify-center rounded-full border-2 border-ods-border bg-ods-bg',\n avatarSizeClass,\n )}\n >\n <User className={cn('text-ods-text-secondary', avatarIconClass)} />\n </div>\n )}\n </div>\n\n {/* Name + meta + bio */}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex flex-wrap items-baseline gap-x-3 gap-y-1\">\n <h3 className=\"text-ods-text-primary text-h5\">\n {href ? (\n <Link href={href} className=\"transition-colors hover:text-ods-accent\">\n {author}\n </Link>\n ) : (\n author\n )}\n </h3>\n {dateLabel && (\n <span className=\"text-body-sm inline-flex items-center gap-1 font-body text-ods-text-secondary\">\n <Calendar className=\"h-3 w-3\" />\n {dateLabel}\n </span>\n )}\n </div>\n {jobTitle && <p className=\"text-body-sm mt-0.5 font-body text-ods-text-secondary\">{jobTitle}</p>}\n {formattedBio ? (\n <p className=\"text-body-md mt-2 font-body leading-relaxed text-ods-text-secondary\">{formattedBio}</p>\n ) : fallbackBio ? (\n <p className=\"text-body-md mt-2 font-body italic text-ods-text-secondary\">{fallbackBio}</p>\n ) : null}\n </div>\n </div>\n );\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  DEFAULT_FOLDER_INDEX_FILE
4
- } from "./chunk-OQNIQVET.js";
4
+ } from "./chunk-6QJYO3SB.js";
5
5
  import {
6
6
  scrollElementIntoView
7
7
  } from "./chunk-W6JA6SFD.js";
@@ -357,4 +357,4 @@ export {
357
357
  MultiLevelNavigation,
358
358
  MobileNavigationDropdown
359
359
  };
360
- //# sourceMappingURL=chunk-II52DW7X.js.map
360
+ //# sourceMappingURL=chunk-OZGDWUVN.js.map
@@ -20,7 +20,7 @@ var _chunkTON3YCCWcjs = require('./chunk-TON3YCCW.cjs');
20
20
 
21
21
 
22
22
 
23
- var _chunkGC3TT3UFcjs = require('./chunk-GC3TT3UF.cjs');
23
+ var _chunkYNBE6G5Icjs = require('./chunk-YNBE6G5I.cjs');
24
24
 
25
25
 
26
26
  var _chunk7Z64COGDcjs = require('./chunk-7Z64COGD.cjs');
@@ -690,7 +690,7 @@ function AutocompleteInner(props, ref) {
690
690
  };
691
691
  const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
692
692
  const [highlightedIndex, setHighlightedIndex] = _react.useState.call(void 0, -1);
693
- const keyboardPadding = _chunkGC3TT3UFcjs.useKeyboardCollisionPadding.call(void 0, );
693
+ const keyboardPadding = _chunkYNBE6G5Icjs.useKeyboardCollisionPadding.call(void 0, );
694
694
  const containerRef = _react.useRef.call(void 0, null);
695
695
  const hiddenTagsPopupRef = _react.useRef.call(void 0, null);
696
696
  const isInvalid = invalid || !!error;
@@ -707,7 +707,7 @@ function AutocompleteInner(props, ref) {
707
707
  textMeasureRef,
708
708
  badgeRef,
709
709
  inputRef
710
- } = _chunkGC3TT3UFcjs.useAutoLimitTags.call(void 0, {
710
+ } = _chunkYNBE6G5Icjs.useAutoLimitTags.call(void 0, {
711
711
  count: multiple ? selectedOptions.length : 0,
712
712
  limitTags: multiple ? limitTagsProp : 0,
713
713
  placeholder: inputPlaceholder
@@ -2553,7 +2553,25 @@ function Field({ label, hint, required, children, error, labelExtras, labelEnd }
2553
2553
 
2554
2554
 
2555
2555
  var HoneypotField = _react.forwardRef.call(void 0, function HoneypotFieldImpl({ name }, ref) {
2556
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": "true", className: "pointer-events-none absolute -m-px h-px w-px overflow-hidden p-0 opacity-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { ref, type: "text", name, tabIndex: -1, autoComplete: "off" }) });
2556
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": "true", className: "pointer-events-none absolute -m-px h-px w-px overflow-hidden p-0 opacity-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2557
+ "input",
2558
+ {
2559
+ ref,
2560
+ type: "text",
2561
+ name,
2562
+ tabIndex: -1,
2563
+ autoComplete: "off",
2564
+ readOnly: true,
2565
+ onFocus: (e) => {
2566
+ const input = e.currentTarget;
2567
+ input.readOnly = false;
2568
+ },
2569
+ "data-1p-ignore": "true",
2570
+ "data-lpignore": "true",
2571
+ "data-bwignore": "true",
2572
+ "data-form-type": "other"
2573
+ }
2574
+ ) });
2557
2575
  });
2558
2576
  HoneypotField.displayName = "HoneypotField";
2559
2577
 
@@ -2755,7 +2773,7 @@ function InfoCardFooter({ footer }) {
2755
2773
  ] });
2756
2774
  }
2757
2775
  function InfoCardValueRow({ label, value, showLabel, copyable, icon, copyAriaLabel }) {
2758
- const { copy, copied } = _chunkGC3TT3UFcjs.useCopyToClipboard.call(void 0, );
2776
+ const { copy, copied } = _chunkYNBE6G5Icjs.useCopyToClipboard.call(void 0, );
2759
2777
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 w-full items-center gap-[var(--spacing-system-xs)] self-stretch", children: [
2760
2778
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-primary text-h4", children: showLabel ? label : "" }),
2761
2779
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-divider" }),
@@ -2845,7 +2863,7 @@ function SearchableSelect({
2845
2863
  }) {
2846
2864
  const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
2847
2865
  const [search, setSearch] = _react.useState.call(void 0, "");
2848
- const keyboardPadding = _chunkGC3TT3UFcjs.useKeyboardCollisionPadding.call(void 0, );
2866
+ const keyboardPadding = _chunkYNBE6G5Icjs.useKeyboardCollisionPadding.call(void 0, );
2849
2867
  if (!isOpen && search !== "") setSearch("");
2850
2868
  const filtered = _react.useMemo.call(void 0, () => {
2851
2869
  const q = search.trim().toLowerCase();
@@ -3721,7 +3739,7 @@ function TagSelectDropdown({
3721
3739
  }) {
3722
3740
  const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
3723
3741
  const [search, setSearch] = _react.useState.call(void 0, "");
3724
- const keyboardPadding = _chunkGC3TT3UFcjs.useKeyboardCollisionPadding.call(void 0, );
3742
+ const keyboardPadding = _chunkYNBE6G5Icjs.useKeyboardCollisionPadding.call(void 0, );
3725
3743
  if (!isOpen && search !== "") setSearch("");
3726
3744
  const query = search.trim();
3727
3745
  const filtered = _react.useMemo.call(void 0, () => {
@@ -4013,7 +4031,7 @@ function TagsManager({
4013
4031
  }) {
4014
4032
  const [open, setOpen] = _react.useState.call(void 0, false);
4015
4033
  const [search, setSearch] = _react.useState.call(void 0, "");
4016
- const keyboardPadding = _chunkGC3TT3UFcjs.useKeyboardCollisionPadding.call(void 0, );
4034
+ const keyboardPadding = _chunkYNBE6G5Icjs.useKeyboardCollisionPadding.call(void 0, );
4017
4035
  const [editingId, setEditingId] = _react.useState.call(void 0, null);
4018
4036
  const [editingName, setEditingName] = _react.useState.call(void 0, "");
4019
4037
  const editInputRef = _react.useRef.call(void 0, null);
@@ -6019,9 +6037,9 @@ var KIND_HEADING = {
6019
6037
  design: "Claude Design"
6020
6038
  };
6021
6039
  function ClaudeEmbed({ url, kind = "artifact", title, height, loading = "lazy" }) {
6022
- const { src: mirrorSrc, status } = _chunkGC3TT3UFcjs.useClaudeMirrorSrc.call(void 0, url);
6040
+ const { src: mirrorSrc, status } = _chunkYNBE6G5Icjs.useClaudeMirrorSrc.call(void 0, url);
6023
6041
  const isProbing = status === "probing";
6024
- const embedUrl = isProbing ? null : _nullishCoalesce(mirrorSrc, () => ( _chunkGC3TT3UFcjs.toClaudeEmbedUrl.call(void 0, url)));
6042
+ const embedUrl = isProbing ? null : _nullishCoalesce(mirrorSrc, () => ( _chunkYNBE6G5Icjs.toClaudeEmbedUrl.call(void 0, url)));
6025
6043
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
6026
6044
  EmbedViewerFrame,
6027
6045
  {
@@ -6096,12 +6114,12 @@ function SlidesViewToggle({ view, onChange }) {
6096
6114
  }
6097
6115
  function FigmaEmbed({ url, title, height, loading = "lazy" }) {
6098
6116
  const [view, setView] = _react.useState.call(void 0, "present");
6099
- const isSlides = url ? _chunkGC3TT3UFcjs.isFigmaSlidesUrl.call(void 0, url) : false;
6100
- const embedSrc = url ? _chunkGC3TT3UFcjs.toFigmaEmbedUrl.call(void 0, url, { slidesView: view }) : null;
6117
+ const isSlides = url ? _chunkYNBE6G5Icjs.isFigmaSlidesUrl.call(void 0, url) : false;
6118
+ const embedSrc = url ? _chunkYNBE6G5Icjs.toFigmaEmbedUrl.call(void 0, url, { slidesView: view }) : null;
6101
6119
  const originalUrl = (() => {
6102
6120
  if (!url) return null;
6103
6121
  try {
6104
- const parsed = new URL(_chunkGC3TT3UFcjs.toFigmaOriginalUrl.call(void 0, url));
6122
+ const parsed = new URL(_chunkYNBE6G5Icjs.toFigmaOriginalUrl.call(void 0, url));
6105
6123
  const host = parsed.hostname.toLowerCase();
6106
6124
  const okHost = host === "figma.com" || host.endsWith(".figma.com");
6107
6125
  const okProtocol = parsed.protocol === "https:" || parsed.protocol === "http:";
@@ -12235,7 +12253,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
12235
12253
  }
12236
12254
  function ServiceCardRowItem({ row }) {
12237
12255
  const [revealed, setRevealed] = _react.useState.call(void 0, false);
12238
- const { copy, copied } = _chunkGC3TT3UFcjs.useCopyToClipboard.call(void 0, );
12256
+ const { copy, copied } = _chunkYNBE6G5Icjs.useCopyToClipboard.call(void 0, );
12239
12257
  const { ref: valueRef, isTruncated: valueTruncated } = _chunk36NFJULVcjs.useIsTruncated.call(void 0, row.value);
12240
12258
  const actions = _react.useMemo.call(void 0,
12241
12259
  () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }),
@@ -13591,7 +13609,7 @@ function QueryReportTable({
13591
13609
  onThumbPointerDown,
13592
13610
  onThumbPointerMove,
13593
13611
  onThumbPointerUp
13594
- } = _chunkGC3TT3UFcjs.useHorizontalScrollbar.call(void 0, );
13612
+ } = _chunkYNBE6G5Icjs.useHorizontalScrollbar.call(void 0, );
13595
13613
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex w-full flex-col", isCompact ? "gap-0" : "gap-[var(--spacing-system-l)]", className), children: [
13596
13614
  !isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-[var(--spacing-system-l)]", children: [
13597
13615
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-ods-text-primary text-h2", children: title }),
@@ -14558,7 +14576,7 @@ function SearchInput({
14558
14576
  const debouncedValue = _chunk36NFJULVcjs.useDebounce.call(void 0, currentValue, debounceMs);
14559
14577
  const [isOpen, setIsOpen] = _react.useState.call(void 0, false);
14560
14578
  const [highlightedIndex, setHighlightedIndex] = _react.useState.call(void 0, -1);
14561
- const keyboardPadding = _chunkGC3TT3UFcjs.useKeyboardCollisionPadding.call(void 0, );
14579
+ const keyboardPadding = _chunkYNBE6G5Icjs.useKeyboardCollisionPadding.call(void 0, );
14562
14580
  const containerRef = _react.useRef.call(void 0, null);
14563
14581
  const currentPlaceholder = filterChips.length > 0 ? "Add filter..." : placeholder;
14564
14582
  const {
@@ -14568,7 +14586,7 @@ function SearchInput({
14568
14586
  textMeasureRef,
14569
14587
  badgeRef,
14570
14588
  inputRef
14571
- } = _chunkGC3TT3UFcjs.useAutoLimitTags.call(void 0, {
14589
+ } = _chunkYNBE6G5Icjs.useAutoLimitTags.call(void 0, {
14572
14590
  count: filterChips.length,
14573
14591
  limitTags,
14574
14592
  // When chips exist, pass empty placeholder so the hook only reserves input minWidth,
@@ -15016,7 +15034,7 @@ function TagSearchInput({
15016
15034
  limitTags = "auto"
15017
15035
  }) {
15018
15036
  const currentPlaceholder = tags.length === 0 ? placeholder : addMorePlaceholder;
15019
- const { visibleCount, middleRef, measureRef, textMeasureRef, badgeRef, inputRef } = _chunkGC3TT3UFcjs.useAutoLimitTags.call(void 0, {
15037
+ const { visibleCount, middleRef, measureRef, textMeasureRef, badgeRef, inputRef } = _chunkYNBE6G5Icjs.useAutoLimitTags.call(void 0, {
15020
15038
  count: tags.length,
15021
15039
  limitTags,
15022
15040
  placeholder: currentPlaceholder
@@ -16004,7 +16022,7 @@ var _reactcolorful = require('react-colorful');
16004
16022
  var Popover2 = PopoverPrimitive6.Root;
16005
16023
  var PopoverTrigger = PopoverPrimitive6.Trigger;
16006
16024
  var PopoverContent = _react.forwardRef.call(void 0, ({ className, align = "center", sideOffset = 4, collisionPadding, ...props }, ref) => {
16007
- const keyboardPadding = _chunkGC3TT3UFcjs.useKeyboardCollisionPadding.call(void 0, );
16025
+ const keyboardPadding = _chunkYNBE6G5Icjs.useKeyboardCollisionPadding.call(void 0, );
16008
16026
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PopoverPrimitive6.Portal, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16009
16027
  PopoverPrimitive6.Content,
16010
16028
  {
@@ -16412,7 +16430,7 @@ function TestResultsTable({ rows, loading }) {
16412
16430
  ] }) }) });
16413
16431
  }
16414
16432
  function TestRunErrorBanner({ error, className }) {
16415
- const { copy } = _chunkGC3TT3UFcjs.useCopyToClipboard.call(void 0, { successDescription: "Error message copied to clipboard" });
16433
+ const { copy } = _chunkYNBE6G5Icjs.useCopyToClipboard.call(void 0, { successDescription: "Error message copied to clipboard" });
16416
16434
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
16417
16435
  "div",
16418
16436
  {
@@ -17573,10 +17591,10 @@ function CompleteAccountForm({
17573
17591
  children
17574
17592
  }) {
17575
17593
  const fieldsDisabled = disabled || loading;
17576
- const firstNameErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _398 => _398.firstName]), firstName);
17577
- const lastNameErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _399 => _399.lastName]), lastName);
17578
- const passwordErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _400 => _400.password]), password);
17579
- const confirmErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _401 => _401.confirmPassword]), confirmPassword);
17594
+ const firstNameErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _398 => _398.firstName]), firstName);
17595
+ const lastNameErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _399 => _399.lastName]), lastName);
17596
+ const passwordErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _400 => _400.password]), password);
17597
+ const confirmErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _401 => _401.confirmPassword]), confirmPassword);
17580
17598
  const handleKeyDown = (event) => {
17581
17599
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
17582
17600
  onSubmit();
@@ -17763,9 +17781,9 @@ function CreateOrganizationForm({
17763
17781
  }) {
17764
17782
  const hasSso = !!ssoProviders && ssoProviders.length > 0;
17765
17783
  const fieldsDisabled = disabled || loading;
17766
- const emailErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _402 => _402.email]), email);
17767
- const orgNameErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _403 => _403.organizationName]), organizationName);
17768
- const domainErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _404 => _404.domain]), domain);
17784
+ const emailErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _402 => _402.email]), email);
17785
+ const orgNameErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _403 => _403.organizationName]), organizationName);
17786
+ const domainErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _404 => _404.domain]), domain);
17769
17787
  const handleKeyDown = (event) => {
17770
17788
  if (event.key === "Enter" && !fieldsDisabled) {
17771
17789
  onSubmit();
@@ -17933,7 +17951,7 @@ function LoginForm({
17933
17951
  className
17934
17952
  }) {
17935
17953
  const fieldDisabled = disabled || loading;
17936
- const emailErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _410 => _410.email]), email);
17954
+ const emailErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _410 => _410.email]), email);
17937
17955
  const handleKeyDown = (event) => {
17938
17956
  if (event.key === "Enter" && !fieldDisabled) {
17939
17957
  _optionalChain([onSubmit, 'optionalCall', _411 => _411()]);
@@ -18005,8 +18023,8 @@ function OpenFrameSsoLoginForm({
18005
18023
  className
18006
18024
  }) {
18007
18025
  const fieldsDisabled = disabled || loading;
18008
- const emailErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _414 => _414.email]), email);
18009
- const passwordErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _415 => _415.password]), password);
18026
+ const emailErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _414 => _414.email]), email);
18027
+ const passwordErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _415 => _415.password]), password);
18010
18028
  const handleKeyDown = (event) => {
18011
18029
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18012
18030
  onSubmit();
@@ -18111,11 +18129,11 @@ function OpenFrameSsoSignUpForm({
18111
18129
  className
18112
18130
  }) {
18113
18131
  const fieldsDisabled = disabled || loading;
18114
- const emailErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _416 => _416.email]), email);
18115
- const firstNameErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _417 => _417.firstName]), firstName);
18116
- const lastNameErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _418 => _418.lastName]), lastName);
18117
- const passwordErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _419 => _419.password]), password);
18118
- const confirmErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _420 => _420.confirmPassword]), confirmPassword);
18132
+ const emailErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _416 => _416.email]), email);
18133
+ const firstNameErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _417 => _417.firstName]), firstName);
18134
+ const lastNameErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _418 => _418.lastName]), lastName);
18135
+ const passwordErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _419 => _419.password]), password);
18136
+ const confirmErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _420 => _420.confirmPassword]), confirmPassword);
18119
18137
  const handleKeyDown = (event) => {
18120
18138
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18121
18139
  onSubmit();
@@ -18256,8 +18274,8 @@ function PasswordResetForm({
18256
18274
  className
18257
18275
  }) {
18258
18276
  const fieldsDisabled = disabled || loading;
18259
- const passwordErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _421 => _421.password]), password);
18260
- const confirmErr = _chunkGC3TT3UFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _422 => _422.confirmPassword]), confirmPassword);
18277
+ const passwordErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _421 => _421.password]), password);
18278
+ const confirmErr = _chunkYNBE6G5Icjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _422 => _422.confirmPassword]), confirmPassword);
18261
18279
  const handleKeyDown = (event) => {
18262
18280
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18263
18281
  onSubmit();
@@ -20484,7 +20502,7 @@ function PlatformFilterComponent({
20484
20502
  variant: selectedPlatform === platform.value ? "accent" : "outline",
20485
20503
  size,
20486
20504
  onClick: () => onPlatformChange(platform.value),
20487
- leftIcon: showIcons ? _chunkGC3TT3UFcjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
20505
+ leftIcon: showIcons ? _chunkYNBE6G5Icjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
20488
20506
  className: "text-h3",
20489
20507
  children: platform.label
20490
20508
  },
@@ -23991,8 +24009,8 @@ function WaitlistForm({
23991
24009
  const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
23992
24010
  const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
23993
24011
  const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
23994
- const { toast } = _chunkGC3TT3UFcjs.useToast.call(void 0, );
23995
- const { honeypotInputProps, getSignals, resetSignals } = _chunkGC3TT3UFcjs.useHumanitySignals.call(void 0, );
24012
+ const { toast } = _chunkYNBE6G5Icjs.useToast.call(void 0, );
24013
+ const { honeypotInputProps, getSignals, resetSignals } = _chunkYNBE6G5Icjs.useHumanitySignals.call(void 0, );
23996
24014
  const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
23997
24015
  const isClient = _chunkXC7WPYPJcjs.useIsHydrated.call(void 0, );
23998
24016
  const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
@@ -24964,7 +24982,7 @@ function NotificationTile({
24964
24982
  height: 16,
24965
24983
  unoptimized: true
24966
24984
  }
24967
- ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkGC3TT3UFcjs.dotColorByVariant[accentVariant]) }))) }),
24985
+ ) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkYNBE6G5Icjs.dotColorByVariant[accentVariant]) }))) }),
24968
24986
  type ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "min-w-0 flex-1 truncate text-h5", typeColorByVariant[accentVariant]), title: type, children: type }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1" }),
24969
24987
  !isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkXC7WPYPJcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
24970
24988
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "relative size-4 shrink-0", children: [
@@ -25011,7 +25029,7 @@ function NotificationTile({
25011
25029
  "div",
25012
25030
  {
25013
25031
  "aria-hidden": true,
25014
- className: _chunkPRPZBXWZcjs.cn.call(void 0, "absolute inset-x-0 -bottom-px h-1 origin-left", _chunkGC3TT3UFcjs.progressColorByVariant[accentVariant]),
25032
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "absolute inset-x-0 -bottom-px h-1 origin-left", _chunkYNBE6G5Icjs.progressColorByVariant[accentVariant]),
25015
25033
  style: {
25016
25034
  animation: `toast-progress ${liveDurationMs}ms linear forwards`,
25017
25035
  animationDelay: `-${initialElapsed}ms`
@@ -25228,7 +25246,7 @@ function ShowNotificationsToggleRow({ checked, onChange }) {
25228
25246
  ] });
25229
25247
  }
25230
25248
  function DesktopNotificationsToggleRow({ checked, onChange }) {
25231
- const { supported, permission, request } = _chunkGC3TT3UFcjs.useNotificationPermission.call(void 0, );
25249
+ const { supported, permission, request } = _chunkYNBE6G5Icjs.useNotificationPermission.call(void 0, );
25232
25250
  if (!supported) return null;
25233
25251
  const blocked = permission === "denied";
25234
25252
  const handleChange = async (value) => {
@@ -26993,7 +27011,7 @@ function resolveBoardDrop(columns, { source, target }) {
26993
27011
  // src/components/features/board/use-board-collapse.ts
26994
27012
 
26995
27013
  function useBoardCollapse(storageKey) {
26996
- const [persisted, setPersisted] = _chunkGC3TT3UFcjs.useLocalStorage.call(void 0, _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")), {});
27014
+ const [persisted, setPersisted] = _chunkYNBE6G5Icjs.useLocalStorage.call(void 0, _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")), {});
26997
27015
  const [memory, setMemory] = _react.useState.call(void 0, {});
26998
27016
  const collapsed = storageKey ? persisted : memory;
26999
27017
  const setMap = storageKey ? setPersisted : setMemory;
@@ -27043,7 +27061,7 @@ function Board({
27043
27061
  onThumbPointerDown,
27044
27062
  onThumbPointerMove,
27045
27063
  onThumbPointerUp
27046
- } = _chunkGC3TT3UFcjs.useHorizontalScrollbar.call(void 0, );
27064
+ } = _chunkYNBE6G5Icjs.useHorizontalScrollbar.call(void 0, );
27047
27065
  const columnsRef = _react.useRef.call(void 0, columns);
27048
27066
  const onChangeRef = _react.useRef.call(void 0, onChange);
27049
27067
  const boardRef = _react.useRef.call(void 0, null);
@@ -28272,4 +28290,4 @@ function SortableRow({ id, children }) {
28272
28290
 
28273
28291
 
28274
28292
  exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.TruncateText = TruncateText; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.FullscreenSwitchController = FullscreenSwitchController; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.StatusIndicator = StatusIndicator; exports.BackButton = BackButton; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.COMPACT_ROW_MIN_HEIGHT_PX = COMPACT_ROW_MIN_HEIGHT_PX; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.DataTableEmpty = DataTableEmpty; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow;
28275
- //# sourceMappingURL=chunk-3CWVBREW.cjs.map
28293
+ //# sourceMappingURL=chunk-P2MTEESX.cjs.map