@flamingo-stack/openframe-frontend-core 0.0.216 → 0.0.217-snapshot.20260601151546

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 (144) hide show
  1. package/dist/{chunk-2V4SACHE.js → chunk-EKBM4FHK.js} +2 -2
  2. package/dist/{chunk-VC3ND5RB.js → chunk-EWA2NFUR.js} +2 -2
  3. package/dist/{chunk-IH76P5R6.cjs → chunk-FZZBCRID.cjs} +8 -86
  4. package/dist/chunk-FZZBCRID.cjs.map +1 -0
  5. package/dist/{chunk-K4DFAVSO.cjs → chunk-GE64T3JT.cjs} +9 -9
  6. package/dist/{chunk-K4DFAVSO.cjs.map → chunk-GE64T3JT.cjs.map} +1 -1
  7. package/dist/{chunk-ZGTDUPTW.cjs → chunk-L5RSJE2I.cjs} +2318 -1136
  8. package/dist/chunk-L5RSJE2I.cjs.map +1 -0
  9. package/dist/{chunk-QTKU6ULP.js → chunk-OHOUSDAY.js} +2 -2
  10. package/dist/{chunk-572WQWIX.cjs → chunk-S4SVD5JI.cjs} +9 -9
  11. package/dist/{chunk-572WQWIX.cjs.map → chunk-S4SVD5JI.cjs.map} +1 -1
  12. package/dist/{chunk-GVNQAGXB.js → chunk-SWIR5EB2.js} +3 -81
  13. package/dist/chunk-SWIR5EB2.js.map +1 -0
  14. package/dist/{chunk-SMCG2CCC.cjs → chunk-TCJ5B2ZD.cjs} +24 -24
  15. package/dist/{chunk-SMCG2CCC.cjs.map → chunk-TCJ5B2ZD.cjs.map} +1 -1
  16. package/dist/{chunk-CDLYRFDE.js → chunk-V5JY5RSY.js} +5710 -4528
  17. package/dist/chunk-V5JY5RSY.js.map +1 -0
  18. package/dist/components/chat/chat-attachment-bar.d.ts +13 -2
  19. package/dist/components/chat/chat-attachment-bar.d.ts.map +1 -1
  20. package/dist/components/chat/chat-input.d.ts.map +1 -1
  21. package/dist/components/chat/chat-message-row.d.ts +25 -0
  22. package/dist/components/chat/chat-message-row.d.ts.map +1 -0
  23. package/dist/components/chat/embeddable-chat.d.ts +13 -0
  24. package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
  25. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +104 -10
  26. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  27. package/dist/components/chat/hooks/use-slash-commands.d.ts +6 -0
  28. package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -1
  29. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
  30. package/dist/components/chat/hooks/use-unified-chat.d.ts.map +1 -1
  31. package/dist/components/chat/index.cjs +6 -2
  32. package/dist/components/chat/index.cjs.map +1 -1
  33. package/dist/components/chat/index.d.ts +1 -0
  34. package/dist/components/chat/index.d.ts.map +1 -1
  35. package/dist/components/chat/index.js +5 -1
  36. package/dist/components/chat/types/component.types.d.ts +8 -1
  37. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  38. package/dist/components/chat/types/unified-chat-state.types.d.ts +81 -0
  39. package/dist/components/chat/types/unified-chat-state.types.d.ts.map +1 -1
  40. package/dist/components/contact/index.cjs +3 -3
  41. package/dist/components/contact/index.js +2 -2
  42. package/dist/components/features/index.cjs +2 -2
  43. package/dist/components/features/index.js +1 -1
  44. package/dist/components/form.d.ts +1 -1
  45. package/dist/components/form.d.ts.map +1 -1
  46. package/dist/components/index.cjs +78 -52
  47. package/dist/components/index.cjs.map +1 -1
  48. package/dist/components/index.js +31 -5
  49. package/dist/components/index.js.map +1 -1
  50. package/dist/components/navigation/app-header.d.ts +7 -0
  51. package/dist/components/navigation/app-header.d.ts.map +1 -1
  52. package/dist/components/navigation/app-layout-drawer.d.ts +65 -0
  53. package/dist/components/navigation/app-layout-drawer.d.ts.map +1 -0
  54. package/dist/components/navigation/app-layout.d.ts +9 -1
  55. package/dist/components/navigation/app-layout.d.ts.map +1 -1
  56. package/dist/components/navigation/header-mingo-button.d.ts +21 -0
  57. package/dist/components/navigation/header-mingo-button.d.ts.map +1 -0
  58. package/dist/components/navigation/index.cjs +24 -2
  59. package/dist/components/navigation/index.cjs.map +1 -1
  60. package/dist/components/navigation/index.d.ts +5 -1
  61. package/dist/components/navigation/index.d.ts.map +1 -1
  62. package/dist/components/navigation/index.js +23 -1
  63. package/dist/components/onboarding-guides/index.cjs +18 -18
  64. package/dist/components/onboarding-guides/index.js +3 -3
  65. package/dist/components/shared/dev-section/dev-card-row.d.ts +5 -45
  66. package/dist/components/shared/dev-section/dev-card-row.d.ts.map +1 -1
  67. package/dist/components/shared/legal-document/use-legal-docs.d.ts.map +1 -1
  68. package/dist/components/tickets/help-center-card.d.ts.map +1 -1
  69. package/dist/components/tickets/help-center-list.d.ts.map +1 -1
  70. package/dist/components/tickets/hooks/use-ticket-engagements.d.ts +9 -1
  71. package/dist/components/tickets/hooks/use-ticket-engagements.d.ts.map +1 -1
  72. package/dist/components/tickets/hooks/use-tickets-list.d.ts +7 -0
  73. package/dist/components/tickets/hooks/use-tickets-list.d.ts.map +1 -1
  74. package/dist/components/tickets/index.cjs +309 -256
  75. package/dist/components/tickets/index.cjs.map +1 -1
  76. package/dist/components/tickets/index.d.ts +1 -0
  77. package/dist/components/tickets/index.d.ts.map +1 -1
  78. package/dist/components/tickets/index.js +376 -323
  79. package/dist/components/tickets/index.js.map +1 -1
  80. package/dist/components/tickets/ticket-detail-drawer.d.ts.map +1 -1
  81. package/dist/components/tickets/ticket-reply-composer.d.ts +33 -0
  82. package/dist/components/tickets/ticket-reply-composer.d.ts.map +1 -0
  83. package/dist/components/tickets/types.d.ts +13 -0
  84. package/dist/components/tickets/types.d.ts.map +1 -1
  85. package/dist/components/ui/index.cjs +6 -2
  86. package/dist/components/ui/index.cjs.map +1 -1
  87. package/dist/components/ui/index.js +5 -1
  88. package/dist/components/ui/ticket-attachments-list.d.ts +5 -1
  89. package/dist/components/ui/ticket-attachments-list.d.ts.map +1 -1
  90. package/dist/index.cjs +30 -2
  91. package/dist/index.cjs.map +1 -1
  92. package/dist/index.js +29 -1
  93. package/dist/utils/embed-authed-fetch.d.ts +80 -0
  94. package/dist/utils/embed-authed-fetch.d.ts.map +1 -1
  95. package/dist/utils/index.cjs +129 -9
  96. package/dist/utils/index.cjs.map +1 -1
  97. package/dist/utils/index.d.ts +1 -1
  98. package/dist/utils/index.d.ts.map +1 -1
  99. package/dist/utils/index.js +129 -10
  100. package/dist/utils/index.js.map +1 -1
  101. package/dist/utils/scroll-into-view.d.ts +43 -48
  102. package/dist/utils/scroll-into-view.d.ts.map +1 -1
  103. package/package.json +2 -2
  104. package/src/components/chat/chat-attachment-bar.tsx +58 -22
  105. package/src/components/chat/chat-input.tsx +68 -29
  106. package/src/components/chat/chat-message-row.tsx +124 -0
  107. package/src/components/chat/embeddable-chat.tsx +154 -37
  108. package/src/components/chat/hooks/use-nats-chat-adapter.ts +601 -23
  109. package/src/components/chat/hooks/use-slash-commands.ts +10 -1
  110. package/src/components/chat/hooks/use-sse-chat-adapter.ts +45 -0
  111. package/src/components/chat/hooks/use-unified-chat.ts +59 -0
  112. package/src/components/chat/index.ts +1 -0
  113. package/src/components/chat/types/component.types.ts +8 -1
  114. package/src/components/chat/types/unified-chat-state.types.ts +116 -0
  115. package/src/components/navigation/app-header.tsx +23 -0
  116. package/src/components/navigation/app-layout-drawer.tsx +620 -0
  117. package/src/components/navigation/app-layout.tsx +65 -26
  118. package/src/components/navigation/header-mingo-button.tsx +58 -0
  119. package/src/components/navigation/index.ts +17 -1
  120. package/src/components/shared/dev-section/dev-card-row.tsx +5 -183
  121. package/src/components/shared/legal-document/use-legal-docs.ts +5 -1
  122. package/src/components/tickets/help-center-card.tsx +26 -29
  123. package/src/components/tickets/help-center-list.tsx +57 -10
  124. package/src/components/tickets/hooks/use-ticket-engagements.ts +41 -5
  125. package/src/components/tickets/hooks/use-tickets-list.ts +13 -0
  126. package/src/components/tickets/index.ts +4 -0
  127. package/src/components/tickets/ticket-detail-drawer.tsx +144 -200
  128. package/src/components/tickets/ticket-reply-composer.tsx +195 -0
  129. package/src/components/tickets/types.ts +14 -0
  130. package/src/components/ui/ticket-attachments-list.tsx +26 -8
  131. package/src/stories/AppLayoutDrawer.stories.tsx +228 -0
  132. package/src/styles/app-globals.css +13 -0
  133. package/src/utils/.embed-authed-fetch.md +7 -0
  134. package/src/utils/__tests__/embed-authed-fetch.test.ts +103 -1
  135. package/src/utils/embed-authed-fetch.ts +247 -7
  136. package/src/utils/index.ts +5 -1
  137. package/src/utils/scroll-into-view.ts +127 -53
  138. package/dist/chunk-CDLYRFDE.js.map +0 -1
  139. package/dist/chunk-GVNQAGXB.js.map +0 -1
  140. package/dist/chunk-IH76P5R6.cjs.map +0 -1
  141. package/dist/chunk-ZGTDUPTW.cjs.map +0 -1
  142. /package/dist/{chunk-2V4SACHE.js.map → chunk-EKBM4FHK.js.map} +0 -0
  143. /package/dist/{chunk-VC3ND5RB.js.map → chunk-EWA2NFUR.js.map} +0 -0
  144. /package/dist/{chunk-QTKU6ULP.js.map → chunk-OHOUSDAY.js.map} +0 -0
@@ -22,7 +22,7 @@ export { type GetProxiedImageUrlOptions, getProxiedImageUrl, urlPathLooksLikeSvg
22
22
  export { formatLargeNumber, formatAbbreviatedNumber, nameInitials, getFirstLastInitials, formatDurationMMSS, formatDurationCompact, formatTimeWithTimezone, formatDurationFromRange, type FormatDateUTCOptions, formatDateUTC, formatCurrency, formatPercent, formatWholeDollars, formatLegalDate, formatBytesShort, formatDateTimeAt, formatDurationFromMs, type MetricFormat, type TrendPolarity, formatCompactMetric, getTrendColors, formatDateRange, formatDuration, formatUnderscoreText, stripHtml, formatBioText, formatClassification, formatPricingModel, } from './format';
23
23
  export { formatRelativeTime, formatAbsoluteDate, formatDateTime, getDetailedTimeDifference, isToday, isWithinMinutes, createUTCTimestamp, } from './date-utils';
24
24
  export { SOURCE_ICON_NAMES, getSourceIconName, SOURCE_LABELS_BY_TABLE, getSourceLabel, } from './source-icons';
25
- export { embedAuthedFetch } from './embed-authed-fetch';
25
+ export { embedAuthedFetch, setEmbedAuthAdapter, type EmbedAuthAdapter, } from './embed-authed-fetch';
26
26
  export { type EmbedProxyAuth, getEmbedProxyAuth, setEmbedProxyAuth, clearEmbedProxyAuth, getPersistedProxyEmail, applyProxyAuth, } from './embed-proxy-auth-storage';
27
27
  export { readLeadingDecisionFrame, type DecisionResolvedFrame, } from './sse-decision-frame';
28
28
  export { escapeMarkdownInline, type ChatAttachment, buildChatAttachmentViewUrl, formatChatAttachmentMarkdownForBubble, CHAT_ATTACHMENT_VIEW_URL_PREFIX, CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM, ANTHROPIC_SUPPORTED_IMAGE_MIME, CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED, CHAT_ATTACHMENT_MARKDOWN_PATTERN, stripChatAttachmentMarkdown, } from '../components/chat/utils/chat-attachment-markdown';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
@@ -2593,6 +2593,23 @@ function applyProxyAuth(url, baseHeaders = { "Content-Type": "application/json"
2593
2593
  }
2594
2594
 
2595
2595
  // src/utils/embed-authed-fetch.ts
2596
+ var ADAPTER_GLOBAL_KEY = "__embedAuthedFetchAdapter__";
2597
+ function getRegisteredAuthAdapter() {
2598
+ if (typeof globalThis === "undefined") return null;
2599
+ return globalThis[ADAPTER_GLOBAL_KEY] ?? null;
2600
+ }
2601
+ function storeRegisteredAuthAdapter(adapter2) {
2602
+ if (typeof globalThis === "undefined") return;
2603
+ globalThis[ADAPTER_GLOBAL_KEY] = adapter2;
2604
+ }
2605
+ function setEmbedAuthAdapter(adapter2) {
2606
+ if (adapter2 && getRegisteredAuthAdapter() && process.env.NODE_ENV !== "production") {
2607
+ console.warn(
2608
+ "[setEmbedAuthAdapter] overwriting a previously-registered auth adapter. Two chat-runtime providers should not coexist \u2014 verify mount order and pass `null` from the unmounting provider."
2609
+ );
2610
+ }
2611
+ storeRegisteredAuthAdapter(adapter2);
2612
+ }
2596
2613
  function embedAuthedFetch(url, init = {}) {
2597
2614
  assertSameOrigin(url);
2598
2615
  let baseHeaders;
@@ -2610,14 +2627,55 @@ function embedAuthedFetch(url, init = {}) {
2610
2627
  Object.assign(baseHeaders, init.headers);
2611
2628
  }
2612
2629
  }
2613
- const { url: authedUrl, headers } = applyProxyAuth(url, baseHeaders);
2614
- return fetch(authedUrl, {
2630
+ return fetchWithRefresh(url, init, baseHeaders, false);
2631
+ }
2632
+ var IN_FLIGHT_REFRESH_GLOBAL_KEY = "__embedAuthedFetchInFlightRefresh__";
2633
+ function getInFlightRefresh() {
2634
+ if (typeof globalThis === "undefined") return null;
2635
+ return globalThis[IN_FLIGHT_REFRESH_GLOBAL_KEY] ?? null;
2636
+ }
2637
+ function setInFlightRefresh(refresh) {
2638
+ if (typeof globalThis === "undefined") return;
2639
+ globalThis[IN_FLIGHT_REFRESH_GLOBAL_KEY] = refresh;
2640
+ }
2641
+ function dedupedRefresh() {
2642
+ const adapter2 = getRegisteredAuthAdapter();
2643
+ if (!adapter2?.refresh) return Promise.resolve(false);
2644
+ let inFlightRefresh = getInFlightRefresh();
2645
+ if (!inFlightRefresh) {
2646
+ inFlightRefresh = Promise.resolve().then(() => adapter2.refresh()).catch(() => false).finally(() => {
2647
+ setInFlightRefresh(null);
2648
+ });
2649
+ setInFlightRefresh(inFlightRefresh);
2650
+ }
2651
+ return inFlightRefresh;
2652
+ }
2653
+ async function fetchWithRefresh(url, init, baseHeaders, isRetry) {
2654
+ const { url: authedUrl, headers } = applyProxyAuth(url, { ...baseHeaders });
2655
+ const adapter2 = getRegisteredAuthAdapter();
2656
+ if (adapter2?.getHeaders) {
2657
+ for (const [k, v] of Object.entries(adapter2.getHeaders())) {
2658
+ if (v !== void 0) headers[k] = v;
2659
+ }
2660
+ }
2661
+ const credentials = adapter2?.credentials ?? init.credentials ?? "same-origin";
2662
+ const response = await fetch(authedUrl, {
2615
2663
  ...init,
2616
2664
  headers,
2617
- // Always include Supabase auth cookies. `applyProxyAuth` handles
2618
- // the bearer header layer; cookies are the session-tier carrier.
2619
- credentials: init.credentials ?? "same-origin"
2665
+ // Default `same-origin` carries Supabase cookies for the MPH proxy-
2666
+ // auth model. Hosts on different origins (openframe-frontend
2667
+ // openframe gateway) register `credentials: 'include'` via the
2668
+ // adapter to make their own cookies travel cross-origin (CORS +
2669
+ // `SameSite=None` must be configured server-side for that to work).
2670
+ credentials
2620
2671
  });
2672
+ if (response.status === 401 && !isRetry && adapter2?.refresh) {
2673
+ const refreshed = await dedupedRefresh();
2674
+ if (refreshed) {
2675
+ return fetchWithRefresh(url, init, baseHeaders, true);
2676
+ }
2677
+ }
2678
+ return response;
2621
2679
  }
2622
2680
  function assertSameOrigin(url) {
2623
2681
  if (typeof window === "undefined") return;
@@ -2635,6 +2693,12 @@ function assertSameOrigin(url) {
2635
2693
  );
2636
2694
  }
2637
2695
  if (target.origin !== pageOrigin) {
2696
+ if (process.env.NODE_ENV !== "production") {
2697
+ console.warn(
2698
+ `[embedAuthedFetch] cross-origin fetch to ${target.origin} allowed in dev (NODE_ENV !== 'production'). Production builds will reject this \u2014 wire a same-origin proxy before shipping.`
2699
+ );
2700
+ return;
2701
+ }
2638
2702
  throw new Error(
2639
2703
  `embedAuthedFetch: refusing cross-origin fetch to ${target.origin} \u2014 pass a relative /api/* path instead`
2640
2704
  );
@@ -3070,14 +3134,69 @@ var OPENFRAME_DEV_SECTIONS = {
3070
3134
  };
3071
3135
 
3072
3136
  // src/utils/scroll-into-view.ts
3137
+ var activeRaf = 0;
3138
+ var teardownActive = null;
3139
+ function cancelActiveScroll() {
3140
+ if (activeRaf) {
3141
+ cancelAnimationFrame(activeRaf);
3142
+ activeRaf = 0;
3143
+ }
3144
+ if (teardownActive) {
3145
+ teardownActive();
3146
+ teardownActive = null;
3147
+ }
3148
+ }
3149
+ var easeOutCubic = (t) => 1 - Math.pow(1 - t, 3);
3073
3150
  function scrollElementIntoView(target, options = {}) {
3074
3151
  if (typeof window === "undefined" || !target) return;
3075
- const { headerOffset = 0, behavior = "smooth", adjustTargetY } = options;
3076
- const rawTargetY = target.getBoundingClientRect().top + window.scrollY - headerOffset;
3077
- const finalY = adjustTargetY ? adjustTargetY(rawTargetY) : rawTargetY;
3078
- window.scrollTo({ top: Math.max(0, finalY), behavior });
3152
+ const { headerOffset = 0, behavior = "smooth", adjustTargetY, durationMs = 320 } = options;
3153
+ const computeTarget = () => {
3154
+ const raw = target.getBoundingClientRect().top + window.scrollY - headerOffset;
3155
+ const adjusted = adjustTargetY ? adjustTargetY(raw) : raw;
3156
+ const maxScroll = Math.max(
3157
+ 0,
3158
+ document.documentElement.scrollHeight - window.innerHeight
3159
+ );
3160
+ return Math.min(Math.max(0, adjusted), maxScroll);
3161
+ };
3162
+ cancelActiveScroll();
3163
+ const prefersReduced = typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
3164
+ if (behavior === "instant" || behavior === "auto" || prefersReduced) {
3165
+ window.scrollTo(0, computeTarget());
3166
+ return;
3167
+ }
3168
+ let startY = null;
3169
+ let startTime = 0;
3170
+ const onUserGesture = () => cancelActiveScroll();
3171
+ window.addEventListener("wheel", onUserGesture, { passive: true });
3172
+ window.addEventListener("touchmove", onUserGesture, { passive: true });
3173
+ teardownActive = () => {
3174
+ window.removeEventListener("wheel", onUserGesture);
3175
+ window.removeEventListener("touchmove", onUserGesture);
3176
+ };
3177
+ const step = (now) => {
3178
+ if (startY === null) {
3179
+ startY = window.scrollY;
3180
+ startTime = now;
3181
+ }
3182
+ const targetY = computeTarget();
3183
+ const t = Math.min(1, (now - startTime) / durationMs);
3184
+ const y = startY + (targetY - startY) * easeOutCubic(t);
3185
+ window.scrollTo(0, y);
3186
+ if (t < 1) {
3187
+ activeRaf = requestAnimationFrame(step);
3188
+ } else {
3189
+ window.scrollTo(0, computeTarget());
3190
+ activeRaf = 0;
3191
+ if (teardownActive) {
3192
+ teardownActive();
3193
+ teardownActive = null;
3194
+ }
3195
+ }
3196
+ };
3197
+ activeRaf = requestAnimationFrame(step);
3079
3198
  }
3080
3199
 
3081
- export { ANTHROPIC_SUPPORTED_IMAGE_MIME, AUTO_CONTINUATION_DIRECTIVE_PREFIX, CHAT_ATTACHMENT_MARKDOWN_PATTERN, CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM, CHAT_ATTACHMENT_VIEW_URL_PREFIX, CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED, CUSTOM_ITEM_ID, DEFAULT_OS_PLATFORM, DELIVERY_TASK_TYPE_OPTIONS, DESIGN_PALETTE, GENERIC_EMAIL_DOMAINS, ICON_REGISTRY, OPENFRAME_DEV_SECTIONS, OS_PLATFORMS, PLAY_ICON_PATH, ROADMAP_STATUS_OPTIONS, SCROLL_ANCHOR, SCROLL_ANCHOR_WIRE_KEY, SOURCE_ICON_NAMES, SOURCE_LABELS_BY_TABLE, TICKET_STATUS_OPTIONS, analyzeImageColor, applyProxyAuth, buildAutoContinuationDirective, buildChatAttachmentViewUrl, buildDiscussAddendum, cleanEmailDomain, clearEmbedProxyAuth, clickupTaskUrl, cn, consumeAccessCode, createUTCTimestamp, deepClone, delay, embedAuthedFetch, escapeMarkdownInline, extractDomainFromEmail, extractDominantColor, extractEntityIdFilter, extractImageEdgeColorAsync, fetchPriorityProp, flattenAssistantContent, formatAbbreviatedNumber, formatAbsoluteDate, formatBioText, formatBytes, formatBytesShort, formatChatAttachmentMarkdownForBubble, formatClassification, formatCompactMetric, formatCurrency, formatDate, formatDateRange, formatDateShort, formatDateSlashUTC, formatDateTime, formatDateTimeAt, formatDateUTC, formatDuration, formatDurationCompact, formatDurationFromMs, formatDurationFromRange, formatDurationMMSS, formatLargeNumber, formatLegalDate, formatNumber, formatPercent, formatPhoneE164, formatPrice, formatPricingModel, formatRelativeTime, formatReleaseDate, formatSingularLookupInvocation, formatTimeWithTimezone, formatUnderscoreText, formatWholeDollars, generateImageSizes, generateRandomString, getAllPlatformBaseDomains, getBaseUrl, getBestContrastColor, getConfidenceBgClass, getConfidenceBorderClass, getConfidenceColorClass, getConfidenceLabel, getConfidenceLevel, getConfidenceTextClass, getContrastRatio, getCountryByCode, getCountryPhoneData, getCurrentPlatform, getDefaultColorForPlatform, getDefaultIconForPlatform, getDetailedTimeDifference, getDynamicIcon, getEmbedProxyAuth, getFirstLastInitials, getIconComponent, getOSIcon, getOSLabel, getOSPlatformId, getOSTypeDefinition, getPersistedProxyEmail, getPlatformAccentColor, getPlatformColor, getPlatformDescription, getPlatformDisplayName, getPlatformIcon, getPlatformIconComponent, getPlatformIconComponent as getPlatformLogo, getPlatformProductionUrl, getPlatformSlogan, getProxiedImageUrl, getShellIcon, getShellLabel, getSlackCommunityJoinUrl, getSmallPlatformIcon, getSourceIconName, getSourceLabel, getStatusColorScheme, getTaskTypeLabel, getToolLabel, getToolTypeAliases, getTrendColors, hasGenericEmailDomain, hexToRgb, isCrossOriginUrl, isGenericDomain, isGenericWebsiteDomain, isOSPlatform, isToday, isValidEmailDomain, isValidToolType, isWithinMinutes, nameInitials, normalizeDomain, normalizeIconKey, normalizeOSType, normalizeToolType, normalizeToolTypeWithFallback, parseScrollAnchor, parseWireCommandOverride, platformColors, platformDescriptions, platformDisplayNames, platformHexColors, platformIconNames, platformIcons, platformSlogans, readLeadingDecisionFrame, sanitizeTitleForChat, scrollElementIntoView, setEmbedProxyAuth, shouldProxyImage, stripChatAttachmentMarkdown, stripHtml, toToolLabel, transformPlatformConfigsToOptions, truncateString, urlPathLooksLikeSvg, validateAccessCode, validateAndConsumeAccessCode, validateEmailDomain, validateEmailDomainList, validatePhoneNumber };
3200
+ export { ANTHROPIC_SUPPORTED_IMAGE_MIME, AUTO_CONTINUATION_DIRECTIVE_PREFIX, CHAT_ATTACHMENT_MARKDOWN_PATTERN, CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM, CHAT_ATTACHMENT_VIEW_URL_PREFIX, CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED, CUSTOM_ITEM_ID, DEFAULT_OS_PLATFORM, DELIVERY_TASK_TYPE_OPTIONS, DESIGN_PALETTE, GENERIC_EMAIL_DOMAINS, ICON_REGISTRY, OPENFRAME_DEV_SECTIONS, OS_PLATFORMS, PLAY_ICON_PATH, ROADMAP_STATUS_OPTIONS, SCROLL_ANCHOR, SCROLL_ANCHOR_WIRE_KEY, SOURCE_ICON_NAMES, SOURCE_LABELS_BY_TABLE, TICKET_STATUS_OPTIONS, analyzeImageColor, applyProxyAuth, buildAutoContinuationDirective, buildChatAttachmentViewUrl, buildDiscussAddendum, cleanEmailDomain, clearEmbedProxyAuth, clickupTaskUrl, cn, consumeAccessCode, createUTCTimestamp, deepClone, delay, embedAuthedFetch, escapeMarkdownInline, extractDomainFromEmail, extractDominantColor, extractEntityIdFilter, extractImageEdgeColorAsync, fetchPriorityProp, flattenAssistantContent, formatAbbreviatedNumber, formatAbsoluteDate, formatBioText, formatBytes, formatBytesShort, formatChatAttachmentMarkdownForBubble, formatClassification, formatCompactMetric, formatCurrency, formatDate, formatDateRange, formatDateShort, formatDateSlashUTC, formatDateTime, formatDateTimeAt, formatDateUTC, formatDuration, formatDurationCompact, formatDurationFromMs, formatDurationFromRange, formatDurationMMSS, formatLargeNumber, formatLegalDate, formatNumber, formatPercent, formatPhoneE164, formatPrice, formatPricingModel, formatRelativeTime, formatReleaseDate, formatSingularLookupInvocation, formatTimeWithTimezone, formatUnderscoreText, formatWholeDollars, generateImageSizes, generateRandomString, getAllPlatformBaseDomains, getBaseUrl, getBestContrastColor, getConfidenceBgClass, getConfidenceBorderClass, getConfidenceColorClass, getConfidenceLabel, getConfidenceLevel, getConfidenceTextClass, getContrastRatio, getCountryByCode, getCountryPhoneData, getCurrentPlatform, getDefaultColorForPlatform, getDefaultIconForPlatform, getDetailedTimeDifference, getDynamicIcon, getEmbedProxyAuth, getFirstLastInitials, getIconComponent, getOSIcon, getOSLabel, getOSPlatformId, getOSTypeDefinition, getPersistedProxyEmail, getPlatformAccentColor, getPlatformColor, getPlatformDescription, getPlatformDisplayName, getPlatformIcon, getPlatformIconComponent, getPlatformIconComponent as getPlatformLogo, getPlatformProductionUrl, getPlatformSlogan, getProxiedImageUrl, getShellIcon, getShellLabel, getSlackCommunityJoinUrl, getSmallPlatformIcon, getSourceIconName, getSourceLabel, getStatusColorScheme, getTaskTypeLabel, getToolLabel, getToolTypeAliases, getTrendColors, hasGenericEmailDomain, hexToRgb, isCrossOriginUrl, isGenericDomain, isGenericWebsiteDomain, isOSPlatform, isToday, isValidEmailDomain, isValidToolType, isWithinMinutes, nameInitials, normalizeDomain, normalizeIconKey, normalizeOSType, normalizeToolType, normalizeToolTypeWithFallback, parseScrollAnchor, parseWireCommandOverride, platformColors, platformDescriptions, platformDisplayNames, platformHexColors, platformIconNames, platformIcons, platformSlogans, readLeadingDecisionFrame, sanitizeTitleForChat, scrollElementIntoView, setEmbedAuthAdapter, setEmbedProxyAuth, shouldProxyImage, stripChatAttachmentMarkdown, stripHtml, toToolLabel, transformPlatformConfigsToOptions, truncateString, urlPathLooksLikeSvg, validateAccessCode, validateAndConsumeAccessCode, validateEmailDomain, validateEmailDomainList, validatePhoneNumber };
3082
3201
  //# sourceMappingURL=index.js.map
3083
3202
  //# sourceMappingURL=index.js.map