@flamingo-stack/openframe-frontend-core 0.0.244 → 0.0.245

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 (131) hide show
  1. package/dist/{chunk-DV3YZWGN.cjs → chunk-3TDLFCCS.cjs} +33 -20
  2. package/dist/chunk-3TDLFCCS.cjs.map +1 -0
  3. package/dist/{chunk-ORJREQ2W.js → chunk-4XLJWX2N.js} +4 -4
  4. package/dist/{chunk-P5C732SC.js → chunk-7ZHFCEJH.js} +6 -6
  5. package/dist/{chunk-EJ7J4QAD.cjs → chunk-BKPS6M2F.cjs} +12 -12
  6. package/dist/{chunk-EJ7J4QAD.cjs.map → chunk-BKPS6M2F.cjs.map} +1 -1
  7. package/dist/{chunk-EPXROXYC.cjs → chunk-CZITXP77.cjs} +645 -713
  8. package/dist/chunk-CZITXP77.cjs.map +1 -0
  9. package/dist/{chunk-Z6GGYZDR.cjs → chunk-DUZBTUXF.cjs} +27 -27
  10. package/dist/{chunk-Z6GGYZDR.cjs.map → chunk-DUZBTUXF.cjs.map} +1 -1
  11. package/dist/{chunk-M7DPUWAL.js → chunk-FRRMXLU5.js} +120 -188
  12. package/dist/chunk-FRRMXLU5.js.map +1 -0
  13. package/dist/chunk-GIDH6UL4.js +287 -0
  14. package/dist/chunk-GIDH6UL4.js.map +1 -0
  15. package/dist/{chunk-PTSAF7T2.js → chunk-JJV3XGCY.js} +2 -2
  16. package/dist/{chunk-APGMNHPY.js → chunk-MKVKVJQQ.js} +32 -19
  17. package/dist/chunk-MKVKVJQQ.js.map +1 -0
  18. package/dist/chunk-ML2ROCYA.cjs +287 -0
  19. package/dist/chunk-ML2ROCYA.cjs.map +1 -0
  20. package/dist/{chunk-STKMIMLP.cjs → chunk-MP5HOP7N.cjs} +12 -12
  21. package/dist/{chunk-STKMIMLP.cjs.map → chunk-MP5HOP7N.cjs.map} +1 -1
  22. package/dist/{chunk-NKGNRFSS.js → chunk-SEVJT2HP.js} +8 -8
  23. package/dist/{chunk-FSS2MIEA.cjs → chunk-SGJBUL2Y.cjs} +20 -3
  24. package/dist/chunk-SGJBUL2Y.cjs.map +1 -0
  25. package/dist/{chunk-WD2MZVJI.js → chunk-V35PZSUA.js} +5 -5
  26. package/dist/{chunk-LJGBFD52.js → chunk-VAUI3CND.js} +18 -1
  27. package/dist/chunk-VAUI3CND.js.map +1 -0
  28. package/dist/{chunk-OB45JHDY.cjs → chunk-VFKQMAUF.cjs} +3 -3
  29. package/dist/{chunk-OB45JHDY.cjs.map → chunk-VFKQMAUF.cjs.map} +1 -1
  30. package/dist/{chunk-RJC3L5DT.cjs → chunk-VXP553WT.cjs} +7 -7
  31. package/dist/{chunk-RJC3L5DT.cjs.map → chunk-VXP553WT.cjs.map} +1 -1
  32. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  33. package/dist/components/chat/hooks/use-chat-card-item.d.ts.map +1 -1
  34. package/dist/components/chat/index.cjs +6 -16
  35. package/dist/components/chat/index.cjs.map +1 -1
  36. package/dist/components/chat/index.js +5 -15
  37. package/dist/components/chat/types/entities/content-ref.d.ts +5 -20
  38. package/dist/components/chat/types/entities/content-ref.d.ts.map +1 -1
  39. package/dist/components/chat/utils/index.d.ts +0 -1
  40. package/dist/components/chat/utils/index.d.ts.map +1 -1
  41. package/dist/components/contact/index.cjs +7 -7
  42. package/dist/components/contact/index.js +6 -6
  43. package/dist/components/faq/faq-section.d.ts +7 -1
  44. package/dist/components/faq/faq-section.d.ts.map +1 -1
  45. package/dist/components/faq/index.cjs +3 -3
  46. package/dist/components/faq/index.js +2 -2
  47. package/dist/components/features/index.cjs +6 -6
  48. package/dist/components/features/index.js +5 -5
  49. package/dist/components/features/policy-configuration-panel.d.ts.map +1 -1
  50. package/dist/components/index.cjs +87 -93
  51. package/dist/components/index.cjs.map +1 -1
  52. package/dist/components/index.d.ts +1 -0
  53. package/dist/components/index.d.ts.map +1 -1
  54. package/dist/components/index.js +31 -37
  55. package/dist/components/index.js.map +1 -1
  56. package/dist/components/navigation/index.cjs +6 -6
  57. package/dist/components/navigation/index.js +5 -5
  58. package/dist/components/onboarding-guides/index.cjs +30 -30
  59. package/dist/components/onboarding-guides/index.cjs.map +1 -1
  60. package/dist/components/onboarding-guides/index.js +11 -11
  61. package/dist/components/related-content/index.cjs +26 -0
  62. package/dist/components/related-content/index.cjs.map +1 -0
  63. package/dist/components/related-content/index.d.ts +2 -0
  64. package/dist/components/related-content/index.d.ts.map +1 -0
  65. package/dist/components/related-content/index.js +26 -0
  66. package/dist/components/related-content/index.js.map +1 -0
  67. package/dist/components/related-content/related-content-section.d.ts +149 -0
  68. package/dist/components/related-content/related-content-section.d.ts.map +1 -0
  69. package/dist/components/tickets/index.cjs +73 -73
  70. package/dist/components/tickets/index.cjs.map +1 -1
  71. package/dist/components/tickets/index.js +15 -15
  72. package/dist/components/ui/index.cjs +9 -19
  73. package/dist/components/ui/index.cjs.map +1 -1
  74. package/dist/components/ui/index.js +13 -23
  75. package/dist/embed-shims/index.cjs +3 -3
  76. package/dist/embed-shims/index.cjs.map +1 -1
  77. package/dist/embed-shims/index.js +5 -5
  78. package/dist/index.cjs +17 -11
  79. package/dist/index.cjs.map +1 -1
  80. package/dist/index.js +55 -49
  81. package/dist/types/content-ref.d.ts +35 -0
  82. package/dist/types/content-ref.d.ts.map +1 -0
  83. package/dist/types/index.d.ts +1 -0
  84. package/dist/types/index.d.ts.map +1 -1
  85. package/dist/utils/content-ref-groups.d.ts +58 -0
  86. package/dist/utils/content-ref-groups.d.ts.map +1 -0
  87. package/dist/utils/extract-items.d.ts +18 -0
  88. package/dist/utils/extract-items.d.ts.map +1 -0
  89. package/dist/utils/index.cjs +81 -0
  90. package/dist/utils/index.cjs.map +1 -1
  91. package/dist/utils/index.d.ts +4 -1
  92. package/dist/utils/index.d.ts.map +1 -1
  93. package/dist/utils/index.js +74 -1
  94. package/dist/utils/index.js.map +1 -1
  95. package/dist/utils/list-url.d.ts +6 -0
  96. package/dist/utils/list-url.d.ts.map +1 -1
  97. package/dist/utils/suggestion-url.d.ts +26 -0
  98. package/dist/utils/suggestion-url.d.ts.map +1 -0
  99. package/package.json +7 -1
  100. package/src/components/chat/chat-message-list.tsx +49 -74
  101. package/src/components/chat/hooks/use-chat-card-item.ts +3 -38
  102. package/src/components/chat/types/entities/content-ref.ts +5 -21
  103. package/src/components/chat/utils/index.ts +0 -12
  104. package/src/components/faq/faq-section.tsx +69 -24
  105. package/src/components/features/policy-configuration-panel.tsx +0 -1
  106. package/src/components/index.ts +1 -0
  107. package/src/components/related-content/index.ts +9 -0
  108. package/src/components/related-content/related-content-section.tsx +630 -0
  109. package/src/types/content-ref.ts +34 -0
  110. package/src/types/index.ts +1 -0
  111. package/src/utils/content-ref-groups.ts +89 -0
  112. package/src/utils/extract-items.ts +48 -0
  113. package/src/utils/index.ts +16 -1
  114. package/src/utils/list-url.ts +9 -0
  115. package/src/utils/suggestion-url.ts +39 -0
  116. package/dist/chunk-APGMNHPY.js.map +0 -1
  117. package/dist/chunk-DV3YZWGN.cjs.map +0 -1
  118. package/dist/chunk-EPXROXYC.cjs.map +0 -1
  119. package/dist/chunk-FSS2MIEA.cjs.map +0 -1
  120. package/dist/chunk-LJGBFD52.js.map +0 -1
  121. package/dist/chunk-M7DPUWAL.js.map +0 -1
  122. package/dist/components/chat/utils/history-merge.d.ts +0 -92
  123. package/dist/components/chat/utils/history-merge.d.ts.map +0 -1
  124. package/src/components/chat/__tests__/chat-message-list.test.tsx +0 -92
  125. package/src/components/chat/utils/__tests__/history-merge.test.ts +0 -339
  126. package/src/components/chat/utils/history-merge.ts +0 -255
  127. /package/dist/{chunk-ORJREQ2W.js.map → chunk-4XLJWX2N.js.map} +0 -0
  128. /package/dist/{chunk-P5C732SC.js.map → chunk-7ZHFCEJH.js.map} +0 -0
  129. /package/dist/{chunk-PTSAF7T2.js.map → chunk-JJV3XGCY.js.map} +0 -0
  130. /package/dist/{chunk-NKGNRFSS.js.map → chunk-SEVJT2HP.js.map} +0 -0
  131. /package/dist/{chunk-WD2MZVJI.js.map → chunk-V35PZSUA.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-SGJBUL2Y.cjs","../src/utils/suggestion-url.ts","../src/components/ui/chevron-button.tsx"],"names":[],"mappings":"AAAA,2cAAY;AACZ;AACE;AACA;AACF,wDAA6B;AAC7B;AACA;ACmBO,SAAS,kBAAA,CAAmB,IAAA,EAAc,KAAA,EAA6B,CAAC,CAAA,EAAW;AACxF,EAAA,MAAM,GAAA,EAAK,IAAI,eAAA,CAAgB,CAAA;AAC/B,EAAA,MAAM,EAAE,UAAA,EAAY,SAAS,EAAA,EAAI,IAAA;AACjC,EAAA,GAAA,CAAI,WAAA,GAAc,SAAA,IAAa,KAAA,EAAA,GAAa,SAAA,IAAa,KAAA,GAAQ,SAAA,IAAa,EAAA,EAAI;AAChF,IAAA,EAAA,CAAG,GAAA,CAAI,YAAA,EAAc,UAAU,CAAA;AAC/B,IAAA,EAAA,CAAG,GAAA,CAAI,UAAA,EAAY,MAAA,CAAO,QAAQ,CAAC,CAAA;AAAA,EACrC;AACA,EAAA,GAAA,CAAI,IAAA,CAAK,MAAA,IAAU,KAAA,CAAA,EAAW,EAAA,CAAG,GAAA,CAAI,OAAA,EAAS,MAAA,CAAO,IAAA,CAAK,KAAK,CAAC,CAAA;AAChE,EAAA,IAAA,CAAA,MAAW,CAAC,GAAA,EAAK,KAAK,EAAA,GAAK,MAAA,CAAO,OAAA,kBAAQ,IAAA,CAAK,WAAA,UAAe,CAAC,GAAC,CAAA,EAAG;AACjE,IAAA,GAAA,CAAI,MAAA,IAAU,KAAA,EAAA,GAAa,MAAA,IAAU,EAAA,EAAI,EAAA,CAAG,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAAA,EAC5D;AACA,EAAA,MAAM,MAAA,EAAQ,EAAA,CAAG,QAAA,CAAS,CAAA;AAC1B,EAAA,OAAO,CAAA,mBAAA;AACT;ADjBU;AACA;AElBV;AAFA;AACS;AAkCD;AAvBF;AACD,EAAA;AACK,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACN,IAAA;AAEA,IAAA;AACG,MAAA;AAAA,MAAA;AACC,QAAA;AACE,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACE,UAAA;AACA,UAAA;AACF,QAAA;AACA,QAAA;AACC,QAAA;AAED,QAAA;AAAoC,MAAA;AACtC,IAAA;AAEJ,EAAA;AACF;AACA;AFaU;AACA;AACA;AACA;AACA","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-SGJBUL2Y.cjs","sourcesContent":[null,"/**\n * Shared fetch-URL composer for the two suggestion sections (FaqSection +\n * RelatedContentSection) — ONE owner of the entityType/entityId/count query\n * shape so the sections can never drift. Pure + server-safe.\n *\n * Byte-parity contract with the original `buildFaqsUrl`: when only\n * entityType/entityId are set, the param order is `entityType`, `entityId`;\n * with nothing set, the bare `path` is returned (no `?`).\n */\nexport interface SuggestionUrlOptions {\n /** Fetch-URL prefix for third-party embeds / reverse proxies\n * ('' = same-origin relative). */\n apiBaseUrl?: string\n /** Both required together for entity scope; partial → bare path. */\n entityType?: string\n entityId?: number | string\n /** Maps to the server's `count` param. Undefined → param not sent\n * (server default applies). */\n count?: number\n /** Extra query params appended after the shared trio (e.g. the\n * related-content `excludeTypes` deny-list). Empty/undefined values\n * are skipped. */\n extraParams?: Record<string, string | undefined>\n}\n\nexport function buildSuggestionUrl(path: string, opts: SuggestionUrlOptions = {}): string {\n const qs = new URLSearchParams()\n const { entityType, entityId } = opts\n if (entityType && entityId !== undefined && entityId !== null && entityId !== '') {\n qs.set('entityType', entityType)\n qs.set('entityId', String(entityId))\n }\n if (opts.count !== undefined) qs.set('count', String(opts.count))\n for (const [key, value] of Object.entries(opts.extraParams ?? {})) {\n if (value !== undefined && value !== '') qs.set(key, value)\n }\n const query = qs.toString()\n return `${opts.apiBaseUrl ?? ''}${path}${query ? `?${query}` : ''}`\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronUp, ChevronDown } from \"lucide-react\"\nimport { cn } from \"../../utils/cn\"\n\ninterface ChevronButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n direction?: 'up' | 'down';\n size?: 'sm' | 'md' | 'lg';\n isExpanded?: boolean;\n backgroundColor?: string;\n borderColor?: string;\n}\n\nconst ChevronButton = React.forwardRef<HTMLButtonElement, ChevronButtonProps>(\n ({ className, direction = 'down', size = 'md', isExpanded, backgroundColor, borderColor, ...props }, ref) => {\n const Icon = (isExpanded ? ChevronUp : ChevronDown) || (direction === 'up' ? ChevronUp : ChevronDown);\n const sizeClasses = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5', \n lg: 'h-6 w-6'\n };\n\n return (\n <button\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n \"h-10 px-4 py-2\",\n className\n )}\n style={{\n backgroundColor: backgroundColor,\n borderColor: borderColor\n }}\n ref={ref}\n {...props}\n >\n <Icon className={sizeClasses[size]} />\n </button>\n )\n }\n)\nChevronButton.displayName = \"ChevronButton\"\n\nexport { ChevronButton }"]}
@@ -7,13 +7,13 @@ import {
7
7
  resolveExternalNavigation,
8
8
  resolveSourceIcon,
9
9
  stripSameOriginToPath
10
- } from "./chunk-M7DPUWAL.js";
11
- import {
12
- useChatRuntime
13
- } from "./chunk-4YKGXZ7W.js";
10
+ } from "./chunk-FRRMXLU5.js";
14
11
  import {
15
12
  useDebounce
16
13
  } from "./chunk-UECRKCKH.js";
14
+ import {
15
+ useChatRuntime
16
+ } from "./chunk-4YKGXZ7W.js";
17
17
  import {
18
18
  useRouter
19
19
  } from "./chunk-PLJLE4A4.js";
@@ -386,4 +386,4 @@ export {
386
386
  useDocSearch,
387
387
  DetailPageSkeleton
388
388
  };
389
- //# sourceMappingURL=chunk-WD2MZVJI.js.map
389
+ //# sourceMappingURL=chunk-V35PZSUA.js.map
@@ -4,6 +4,22 @@ import {
4
4
  init_cn
5
5
  } from "./chunk-XTCBRQN2.js";
6
6
 
7
+ // src/utils/suggestion-url.ts
8
+ function buildSuggestionUrl(path, opts = {}) {
9
+ const qs = new URLSearchParams();
10
+ const { entityType, entityId } = opts;
11
+ if (entityType && entityId !== void 0 && entityId !== null && entityId !== "") {
12
+ qs.set("entityType", entityType);
13
+ qs.set("entityId", String(entityId));
14
+ }
15
+ if (opts.count !== void 0) qs.set("count", String(opts.count));
16
+ for (const [key, value] of Object.entries(opts.extraParams ?? {})) {
17
+ if (value !== void 0 && value !== "") qs.set(key, value);
18
+ }
19
+ const query = qs.toString();
20
+ return `${opts.apiBaseUrl ?? ""}${path}${query ? `?${query}` : ""}`;
21
+ }
22
+
7
23
  // src/components/ui/chevron-button.tsx
8
24
  init_cn();
9
25
  import * as React from "react";
@@ -39,6 +55,7 @@ var ChevronButton = React.forwardRef(
39
55
  ChevronButton.displayName = "ChevronButton";
40
56
 
41
57
  export {
58
+ buildSuggestionUrl,
42
59
  ChevronButton
43
60
  };
44
- //# sourceMappingURL=chunk-LJGBFD52.js.map
61
+ //# sourceMappingURL=chunk-VAUI3CND.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/suggestion-url.ts","../src/components/ui/chevron-button.tsx"],"sourcesContent":["/**\n * Shared fetch-URL composer for the two suggestion sections (FaqSection +\n * RelatedContentSection) — ONE owner of the entityType/entityId/count query\n * shape so the sections can never drift. Pure + server-safe.\n *\n * Byte-parity contract with the original `buildFaqsUrl`: when only\n * entityType/entityId are set, the param order is `entityType`, `entityId`;\n * with nothing set, the bare `path` is returned (no `?`).\n */\nexport interface SuggestionUrlOptions {\n /** Fetch-URL prefix for third-party embeds / reverse proxies\n * ('' = same-origin relative). */\n apiBaseUrl?: string\n /** Both required together for entity scope; partial → bare path. */\n entityType?: string\n entityId?: number | string\n /** Maps to the server's `count` param. Undefined → param not sent\n * (server default applies). */\n count?: number\n /** Extra query params appended after the shared trio (e.g. the\n * related-content `excludeTypes` deny-list). Empty/undefined values\n * are skipped. */\n extraParams?: Record<string, string | undefined>\n}\n\nexport function buildSuggestionUrl(path: string, opts: SuggestionUrlOptions = {}): string {\n const qs = new URLSearchParams()\n const { entityType, entityId } = opts\n if (entityType && entityId !== undefined && entityId !== null && entityId !== '') {\n qs.set('entityType', entityType)\n qs.set('entityId', String(entityId))\n }\n if (opts.count !== undefined) qs.set('count', String(opts.count))\n for (const [key, value] of Object.entries(opts.extraParams ?? {})) {\n if (value !== undefined && value !== '') qs.set(key, value)\n }\n const query = qs.toString()\n return `${opts.apiBaseUrl ?? ''}${path}${query ? `?${query}` : ''}`\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronUp, ChevronDown } from \"lucide-react\"\nimport { cn } from \"../../utils/cn\"\n\ninterface ChevronButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n direction?: 'up' | 'down';\n size?: 'sm' | 'md' | 'lg';\n isExpanded?: boolean;\n backgroundColor?: string;\n borderColor?: string;\n}\n\nconst ChevronButton = React.forwardRef<HTMLButtonElement, ChevronButtonProps>(\n ({ className, direction = 'down', size = 'md', isExpanded, backgroundColor, borderColor, ...props }, ref) => {\n const Icon = (isExpanded ? ChevronUp : ChevronDown) || (direction === 'up' ? ChevronUp : ChevronDown);\n const sizeClasses = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5', \n lg: 'h-6 w-6'\n };\n\n return (\n <button\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n \"h-10 px-4 py-2\",\n className\n )}\n style={{\n backgroundColor: backgroundColor,\n borderColor: borderColor\n }}\n ref={ref}\n {...props}\n >\n <Icon className={sizeClasses[size]} />\n </button>\n )\n }\n)\nChevronButton.displayName = \"ChevronButton\"\n\nexport { ChevronButton }"],"mappings":";;;;;;;AAyBO,SAAS,mBAAmB,MAAc,OAA6B,CAAC,GAAW;AACxF,QAAM,KAAK,IAAI,gBAAgB;AAC/B,QAAM,EAAE,YAAY,SAAS,IAAI;AACjC,MAAI,cAAc,aAAa,UAAa,aAAa,QAAQ,aAAa,IAAI;AAChF,OAAG,IAAI,cAAc,UAAU;AAC/B,OAAG,IAAI,YAAY,OAAO,QAAQ,CAAC;AAAA,EACrC;AACA,MAAI,KAAK,UAAU,OAAW,IAAG,IAAI,SAAS,OAAO,KAAK,KAAK,CAAC;AAChE,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,eAAe,CAAC,CAAC,GAAG;AACjE,QAAI,UAAU,UAAa,UAAU,GAAI,IAAG,IAAI,KAAK,KAAK;AAAA,EAC5D;AACA,QAAM,QAAQ,GAAG,SAAS;AAC1B,SAAO,GAAG,KAAK,cAAc,EAAE,GAAG,IAAI,GAAG,QAAQ,IAAI,KAAK,KAAK,EAAE;AACnE;;;AClCA;AAFA,YAAY,WAAW;AACvB,SAAS,WAAW,mBAAmB;AAkC/B;AAvBR,IAAM,gBAAsB;AAAA,EAC1B,CAAC,EAAE,WAAW,YAAY,QAAQ,OAAO,MAAM,YAAY,iBAAiB,aAAa,GAAG,MAAM,GAAG,QAAQ;AAC3G,UAAM,QAAQ,aAAa,YAAY,iBAAiB,cAAc,OAAO,YAAY;AACzF,UAAM,cAAc;AAAA,MAClB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACC,GAAG;AAAA,QAEJ,8BAAC,QAAK,WAAW,YAAY,IAAI,GAAG;AAAA;AAAA,IACtC;AAAA,EAEJ;AACF;AACA,cAAc,cAAc;","names":[]}
@@ -1,12 +1,12 @@
1
1
  "use strict";"use client";
2
2
 
3
3
 
4
- var _chunkWBR7H6E3cjs = require('./chunk-WBR7H6E3.cjs');
4
+ var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
5
5
 
6
6
 
7
- var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
7
+ var _chunkWBR7H6E3cjs = require('./chunk-WBR7H6E3.cjs');
8
8
 
9
9
  // src/embed-shims/index.ts
10
10
  _chunkWBR7H6E3cjs.init_next_link.call(void 0, );
11
11
  _chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
12
- //# sourceMappingURL=chunk-OB45JHDY.cjs.map
12
+ //# sourceMappingURL=chunk-VFKQMAUF.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-OB45JHDY.cjs","../src/embed-shims/index.ts"],"names":[],"mappings":"AAAA,yBAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACmBA,8CAAA,CAAA;AAEA,oDAAA,CAAA","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-OB45JHDY.cjs","sourcesContent":[null,"/**\n * Barrel for the `embed-shims/` shims.\n *\n * Each shim is environment-aware: by default it renders a plain HTML\n * equivalent so non-Next hosts (Vite, CRA, esbuild) work out of the\n * box. Next.js hosts opt into the REAL Next primitives by calling the\n * `register*` functions ONCE at app init — see each shim's docblock\n * for the host wiring snippet. After registration, every lib component\n * that renders through these shims delegates to the real Next impl\n * (Image Optimization, client-router prefetching, full app-router\n * navigation, etc.) without further config.\n *\n * Lib internals import each shim directly via its relative path\n * (`../embed-shims/next-link`). Hub and external consumers import\n * through this barrel:\n *\n * import { Link, Image, dynamic, useRouter, usePathname } from\n * '@flamingo-stack/openframe-frontend-core/embed-shims'\n *\n * Or per-shim:\n *\n * import Link from '@flamingo-stack/openframe-frontend-core/embed-shims/next-link'\n * import Image from '@flamingo-stack/openframe-frontend-core/embed-shims/next-image'\n *\n * Companion to the docblocks on each individual shim file.\n */\nexport { default as Image, registerImage } from './next-image'\nexport { default as Link, registerLink } from './next-link'\nexport { default as dynamic, registerDynamic } from './next-dynamic'\nexport {\n useRouter,\n usePathname,\n useSearchParams,\n useParams,\n redirect,\n permanentRedirect,\n notFound,\n RedirectType,\n ServerInsertedHTMLContext,\n registerNavigation,\n type NavigationImpl,\n} from './next-navigation'\n"]}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-VFKQMAUF.cjs","../src/embed-shims/index.ts"],"names":[],"mappings":"AAAA,yBAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACmBA,8CAAA,CAAA;AAEA,oDAAA,CAAA","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-VFKQMAUF.cjs","sourcesContent":[null,"/**\n * Barrel for the `embed-shims/` shims.\n *\n * Each shim is environment-aware: by default it renders a plain HTML\n * equivalent so non-Next hosts (Vite, CRA, esbuild) work out of the\n * box. Next.js hosts opt into the REAL Next primitives by calling the\n * `register*` functions ONCE at app init — see each shim's docblock\n * for the host wiring snippet. After registration, every lib component\n * that renders through these shims delegates to the real Next impl\n * (Image Optimization, client-router prefetching, full app-router\n * navigation, etc.) without further config.\n *\n * Lib internals import each shim directly via its relative path\n * (`../embed-shims/next-link`). Hub and external consumers import\n * through this barrel:\n *\n * import { Link, Image, dynamic, useRouter, usePathname } from\n * '@flamingo-stack/openframe-frontend-core/embed-shims'\n *\n * Or per-shim:\n *\n * import Link from '@flamingo-stack/openframe-frontend-core/embed-shims/next-link'\n * import Image from '@flamingo-stack/openframe-frontend-core/embed-shims/next-image'\n *\n * Companion to the docblocks on each individual shim file.\n */\nexport { default as Image, registerImage } from './next-image'\nexport { default as Link, registerLink } from './next-link'\nexport { default as dynamic, registerDynamic } from './next-dynamic'\nexport {\n useRouter,\n usePathname,\n useSearchParams,\n useParams,\n redirect,\n permanentRedirect,\n notFound,\n RedirectType,\n ServerInsertedHTMLContext,\n registerNavigation,\n type NavigationImpl,\n} from './next-navigation'\n"]}
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var _chunkEPXROXYCcjs = require('./chunk-EPXROXYC.cjs');
8
+ var _chunkCZITXP77cjs = require('./chunk-CZITXP77.cjs');
9
9
 
10
10
 
11
11
 
@@ -17,7 +17,7 @@ var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
17
17
  var _react = require('react');
18
18
  var _jsxruntime = require('react/jsx-runtime');
19
19
  function DevSectionView({ sectionKey, hero, preControls, children }) {
20
- const section = _chunkEPXROXYCcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
20
+ const section = _chunkCZITXP77cjs.OPENFRAME_DEV_SECTIONS[sectionKey];
21
21
  const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
22
22
  const pathname = _chunkG7UE6RKVcjs.usePathname.call(void 0, );
23
23
  const searchParams = _chunkG7UE6RKVcjs.useSearchParams.call(void 0, );
@@ -57,7 +57,7 @@ function DevSectionView({ sectionKey, hero, preControls, children }) {
57
57
  preControls,
58
58
  (search || filter) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
59
59
  search && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
60
- _chunkEPXROXYCcjs.SearchInput,
60
+ _chunkCZITXP77cjs.SearchInput,
61
61
  {
62
62
  showDropdown: false,
63
63
  placeholder: search.placeholder,
@@ -67,7 +67,7 @@ function DevSectionView({ sectionKey, hero, preControls, children }) {
67
67
  }
68
68
  ),
69
69
  filter && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
70
- _chunkEPXROXYCcjs.StatusFilterComponent,
70
+ _chunkCZITXP77cjs.StatusFilterComponent,
71
71
  {
72
72
  selectedStatus: currentFilterValue,
73
73
  onStatusChange: handleFilterChange,
@@ -92,13 +92,13 @@ function DevSectionPage({
92
92
  subtitle
93
93
  }) {
94
94
  const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
95
- const section = _chunkEPXROXYCcjs.OPENFRAME_DEV_SECTIONS[sectionKey];
95
+ const section = _chunkCZITXP77cjs.OPENFRAME_DEV_SECTIONS[sectionKey];
96
96
  const Icon = section.icon;
97
97
  const backCfg = backButton === false ? void 0 : {
98
98
  label: _nullishCoalesce((backButton ? backButton.label : void 0), () => ( "Back to home")),
99
99
  onClick: () => router.push(_nullishCoalesce((backButton ? backButton.href : void 0), () => ( "/")))
100
100
  };
101
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEPXROXYCcjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEPXROXYCcjs.PageLayout, { backButton: backCfg, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
101
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCZITXP77cjs.PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCZITXP77cjs.PageLayout, { backButton: backCfg, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
102
102
  DevSectionView,
103
103
  {
104
104
  sectionKey,
@@ -159,4 +159,4 @@ function DevCardRowSkeletonList({ rows = 5 }) {
159
159
 
160
160
 
161
161
  exports.DevSectionView = DevSectionView; exports.DevSectionPage = DevSectionPage; exports.DevCardRowContent = DevCardRowContent; exports.DevCardRowSkeleton = DevCardRowSkeleton; exports.DevCardRowSkeletonList = DevCardRowSkeletonList;
162
- //# sourceMappingURL=chunk-RJC3L5DT.cjs.map
162
+ //# sourceMappingURL=chunk-VXP553WT.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-RJC3L5DT.cjs","../src/components/shared/dev-section/dev-section-view.tsx","../src/components/shared/dev-section/dev-section-page.tsx","../src/components/shared/dev-section/dev-card-row.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-RJC3L5DT.cjs","sourcesContent":[null,"'use client';\n\n/**\n * DevSectionView — the canonical chrome for ANY dev-center section\n * (Roadmap / Delivery / Releases). One component, used in BOTH:\n *\n * - tabbed `/roadmap-and-releases` (compact title mode, no `hero`)\n * - full-page `/roadmap`, `/bug-fixes-and-enhancements`, `/releases`\n * (hero mode with icon + description + back link)\n *\n * Owns: title rendering, the inline search input, the filter pill row,\n * and the URL-param wiring that connects both. The list `children`\n * receive a clean URL contract — they read `?<paramKey>=...` via\n * `useSearchParams()` and refetch on change. No duplicated controls.\n */\n\nimport type { ReactNode } from 'react';\nimport { useState, useEffect } from 'react';\nimport { useRouter, useSearchParams, usePathname } from '../../../embed-shims';\nimport { SearchInput } from '../../ui';\nimport { StatusFilterComponent } from '../../features';\nimport {\n OPENFRAME_DEV_SECTIONS,\n type OpenframeDevSectionKey,\n} from '../../../utils/dev-sections/openframe-dev-sections';\n\nexport interface DevSectionViewProps {\n /** Which section to render — drives title, search, and filter\n * config via the `OPENFRAME_DEV_SECTIONS` registry. */\n sectionKey: OpenframeDevSectionKey;\n /** When set, renders the rich page-level hero (icon + h1 + description).\n * Omit for the compact tab-context heading. */\n hero?: {\n /** Pre-rendered icon JSX. Server components render the icon themselves\n * and pass the element here — function references can't cross the\n * server→client boundary, but React elements can. */\n icon: ReactNode;\n /** Hero title. Falls back to `OPENFRAME_DEV_SECTIONS[sectionKey].hero.title`\n * when omitted, so embedders can override the (OpenFrame-specific) default\n * copy without forking the registry. */\n title?: string;\n description: string;\n };\n /** Optional slot rendered BETWEEN the hero and the search/filter\n * controls. Use this for an entry-action surface that should sit\n * above the list (e.g. the Help Center's \"Open a new ticket\" form).\n * The slot is wrapped in the same `gap-10` flex column so spacing\n * matches the surrounding chrome — callers should NOT add their\n * own top/bottom margin. Renders `null` (no DOM) when omitted. */\n preControls?: ReactNode;\n /** The page-specific list body. Reads URL params written by this\n * component (search input + filter pills). */\n children: ReactNode;\n}\n\nexport function DevSectionView({ sectionKey, hero, preControls, children }: DevSectionViewProps) {\n const section = OPENFRAME_DEV_SECTIONS[sectionKey];\n const router = useRouter();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n\n const search = section.search;\n const filter = section.filter;\n\n const currentSearch = search ? searchParams.get(search.paramKey) || '' : '';\n const currentFilterValue = filter\n ? searchParams.get(filter.paramKey) || filter.defaultValue\n : '';\n\n // Controlled search-input state — input commits to the URL only on\n // Enter (not on every keystroke), preserving the legacy behavior.\n // Lazy init from URL avoids a brief flash of stale value on first\n // paint after URL-driven re-render (e.g. tab switch).\n const [searchValue, setSearchValue] = useState(() => currentSearch);\n useEffect(() => {\n setSearchValue(currentSearch);\n }, [currentSearch]);\n\n const handleSearchSubmit = (value: string) => {\n if (!search) return;\n const params = new URLSearchParams(searchParams.toString());\n if (value.trim()) params.set(search.paramKey, value.trim());\n else params.delete(search.paramKey);\n router.replace(`${pathname}?${params.toString()}`, { scroll: false });\n };\n\n const handleFilterChange = (value: string) => {\n if (!filter) return;\n const params = new URLSearchParams(searchParams.toString());\n if (value === filter.defaultValue) params.delete(filter.paramKey);\n else params.set(filter.paramKey, value);\n router.replace(`${pathname}?${params.toString()}`, { scroll: false });\n };\n\n return (\n <div className=\"w-full flex flex-col gap-10\">\n {hero ? (\n <div className=\"space-y-4\">\n <h1 className=\"text-h1 tracking-[-1.12px] text-ods-text-primary flex items-center gap-3\">\n {hero.icon}\n {hero.title ?? section.hero.title}\n </h1>\n <p className=\"font-['DM_Sans'] font-medium text-[18px] leading-[28px] text-ods-text-secondary max-w-3xl\">\n {hero.description}\n </p>\n </div>\n ) : (\n <div className=\"flex items-center justify-between w-full\">\n <h2 className=\"font-['Azeret_Mono'] font-semibold text-[32px] md:text-[40px] lg:text-[48px] leading-[40px] md:leading-[48px] lg:leading-[56px] text-ods-text-primary tracking-[-0.64px] md:tracking-[-0.8px] lg:tracking-[-0.96px]\">\n {section.hero.title}\n <span className=\"text-ods-accent\">:</span>\n </h2>\n </div>\n )}\n\n {preControls}\n\n {(search || filter) && (\n <div className=\"space-y-4\">\n {search && (\n <SearchInput\n showDropdown={false}\n placeholder={search.placeholder}\n value={searchValue}\n onChange={setSearchValue}\n onSubmit={handleSearchSubmit}\n />\n )}\n {filter && (\n <StatusFilterComponent\n selectedStatus={currentFilterValue}\n onStatusChange={handleFilterChange}\n statusOptions={[...filter.options]}\n />\n )}\n </div>\n )}\n\n {children}\n </div>\n );\n}\n","'use client';\n\n/**\n * DevSectionPage — full-page wrapper for a dev-center section\n * (`/roadmap`, `/bug-fixes-and-enhancements`, `/releases`).\n *\n * Mounts the lib's canonical `PageLayout` directly (no in-app wrapper)\n * so the back-button affordance stays in lockstep with whatever the\n * design system ships — any future lib change to BackButton / TitleBlock\n * propagates automatically.\n *\n * Composition: `PageShell` → `PageLayout` (back-to-home wired) →\n * `DevSectionView` (icon hero + search + filter pills) → list body.\n *\n * Adding a new section is one entry in `OPENFRAME_DEV_SECTIONS` plus a\n * single-line page file mounting this factory with the new key.\n */\n\nimport type { ReactNode } from 'react';\nimport { useRouter } from '../../../embed-shims/next-navigation';\nimport { PageShell, PageLayout } from '../../ui';\nimport { DevSectionView } from './dev-section-view';\nimport {\n OPENFRAME_DEV_SECTIONS,\n type OpenframeDevSectionKey,\n} from '../../../utils/dev-sections/openframe-dev-sections';\n\nconst SECTION_HERO_ICON_CLASS = 'h-10 w-10 text-ods-accent';\n\nexport interface DevSectionPageProps {\n sectionKey: OpenframeDevSectionKey;\n /** The page-specific list body (e.g. `<RoadmapList />`). */\n children: ReactNode;\n /** Optional slot rendered BETWEEN the hero and search/filter — see\n * `DevSectionView.preControls`. Used by surfaces that want an entry\n * action (e.g. Help Center's \"Open a new ticket\" form) above the\n * controls instead of below them. */\n preControls?: ReactNode;\n /** Back-button config — same shape as `LegalDocumentPage` /\n * `ReleaseDetailPage`. Pass `false` to hide entirely. Default\n * `{ label: 'Back to home', href: '/' }` — embedders whose \"home\" isn't `/`\n * should override `href`, or pass `false` if the embed has no home page. */\n backButton?: { label?: string; href?: string } | false;\n /** Override the hero title. Defaults to the (OpenFrame-specific) copy in\n * `OPENFRAME_DEV_SECTIONS[sectionKey].hero.title`. Set this to brand the\n * section for a non-OpenFrame embed. */\n title?: string;\n /** Override the hero subtitle/description. Defaults to\n * `OPENFRAME_DEV_SECTIONS[sectionKey].hero.description`. */\n subtitle?: string;\n}\n\nexport function DevSectionPage({\n sectionKey,\n children,\n preControls,\n backButton,\n title,\n subtitle,\n}: DevSectionPageProps) {\n const router = useRouter();\n const section = OPENFRAME_DEV_SECTIONS[sectionKey];\n const Icon = section.icon;\n\n // Back-button config — mirrors LegalDocumentPage / ReleaseDetailPage.\n // Default: { label: 'Back to home', href: '/' }. Pass `false` to hide.\n // After `backButton &&` narrowing, inner type is `{ label?, href? } |\n // undefined`; don't re-compare to `false` (TS2367).\n const backCfg =\n backButton === false\n ? undefined\n : {\n label: (backButton ? backButton.label : undefined) ?? 'Back to home',\n onClick: () => router.push((backButton ? backButton.href : undefined) ?? '/'),\n };\n\n return (\n <PageShell>\n <PageLayout backButton={backCfg}>\n <DevSectionView\n sectionKey={sectionKey}\n hero={{\n icon: <Icon className={SECTION_HERO_ICON_CLASS} />,\n title,\n description: subtitle ?? section.hero.description,\n }}\n preControls={preControls}\n >\n {children}\n </DevSectionView>\n </PageLayout>\n </PageShell>\n );\n}\n","'use client';\n\n/**\n * Shared row chrome for any `DevSectionPage` list (delivery, tickets,\n * future sections). One source of truth for the layout that every\n * dev-section card row uses:\n * left column → title (h3) / subtitle (h5 uppercase) / description\n * (h4 line-clamp-3), each in a fixed min-height block\n * so rows align across the grid\n * right column → caller-supplied stacked badges\n *\n * Surface stays small on purpose — `rightBadges` is a `ReactNode` so\n * the caller decides how many badges (delivery: 2, tickets: 1-2,\n * future: anything). No behavior baked in: the caller wraps the row\n * in a `<div>` (static, like delivery) or `<button>` (clickable, like\n * tickets) and renders the row content via this component.\n *\n * Pair with `DevCardRowSkeletonList` for the loading state — the\n * skeleton mirrors the same min-heights so the in-flight UI doesn't\n * shift the layout when real data lands.\n *\n * NOTE: the ticket conversation row is NOT here — it renders the shared\n * `<ChatMessageRow>` (`components/chat/chat-message-row.tsx`), the SAME\n * component the OpenMSP Slack-community feed uses, so the two surfaces stay\n * pixel-identical by construction.\n */\n\nimport type { ReactNode } from 'react';\n\nexport interface DevCardRowContentProps {\n title: string;\n /** Single-line uppercase metadata (e.g. \"UPDATED today, #4271, Code review\"). */\n subtitle: string;\n /** 3-line description block. Empty string renders the fallback. */\n description: string;\n /** Fallback copy when `description` is empty. Defaults to a generic\n * string; ticket / delivery surfaces override. */\n emptyDescription?: string;\n /** Right column — caller renders its own stacked badges. */\n rightBadges: ReactNode;\n}\n\nexport function DevCardRowContent({\n title,\n subtitle,\n description,\n emptyDescription = 'No description provided',\n rightBadges,\n}: DevCardRowContentProps) {\n return (\n <div className=\"flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full\">\n <div className=\"flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]\">\n <div className=\"min-h-[24px] flex items-center\">\n <h3 className=\"text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2 md:truncate break-words\">\n {title}\n </h3>\n </div>\n <div className=\"min-h-[20px] flex items-center\">\n <p className=\"text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate\">\n {subtitle}\n </p>\n </div>\n <div className=\"min-h-[72px] flex items-center\">\n <p className=\"text-h4 text-ods-text-secondary line-clamp-3 break-words\">\n {description || emptyDescription}\n </p>\n </div>\n </div>\n <div className=\"flex-shrink-0 self-start flex flex-col gap-2\">\n {rightBadges}\n </div>\n </div>\n );\n}\n\n/**\n * Skeleton rendering for a single row — the bars mirror the same\n * min-heights as `DevCardRowContent` so the loading→loaded swap\n * doesn't reflow.\n */\nexport function DevCardRowSkeleton() {\n return (\n <div className=\"border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px]\">\n <div className=\"flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full\">\n <div className=\"flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]\">\n <div className=\"min-h-[24px] flex items-center\">\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-full\" />\n </div>\n <div className=\"min-h-[20px] flex items-center\">\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-1/2\" />\n </div>\n <div className=\"min-h-[72px] flex items-center\">\n <div className=\"flex-1 space-y-1\">\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-full\" />\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-full\" />\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-2/3\" />\n </div>\n </div>\n </div>\n <div className=\"flex-shrink-0 self-start flex flex-col gap-2\">\n <div className=\"h-[32px] w-[100px] bg-ods-border rounded animate-pulse\" />\n <div className=\"h-[32px] w-[120px] bg-ods-border rounded animate-pulse\" />\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * The standard \"5 skeleton rows inside a bordered card\" loading state\n * used by every list shell. Both delivery (`delivery-table.tsx`) and\n * tickets (`tickets-list.tsx`) mount this directly.\n */\nexport function DevCardRowSkeletonList({ rows = 5 }: { rows?: number }) {\n return (\n <div className=\"bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full\">\n {Array.from({ length: rows }, (_, i) => (\n <DevCardRowSkeleton key={i} />\n ))}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-VXP553WT.cjs","../src/components/shared/dev-section/dev-section-view.tsx","../src/components/shared/dev-section/dev-section-page.tsx","../src/components/shared/dev-section/dev-card-row.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-VXP553WT.cjs","sourcesContent":[null,"'use client';\n\n/**\n * DevSectionView — the canonical chrome for ANY dev-center section\n * (Roadmap / Delivery / Releases). One component, used in BOTH:\n *\n * - tabbed `/roadmap-and-releases` (compact title mode, no `hero`)\n * - full-page `/roadmap`, `/bug-fixes-and-enhancements`, `/releases`\n * (hero mode with icon + description + back link)\n *\n * Owns: title rendering, the inline search input, the filter pill row,\n * and the URL-param wiring that connects both. The list `children`\n * receive a clean URL contract — they read `?<paramKey>=...` via\n * `useSearchParams()` and refetch on change. No duplicated controls.\n */\n\nimport type { ReactNode } from 'react';\nimport { useState, useEffect } from 'react';\nimport { useRouter, useSearchParams, usePathname } from '../../../embed-shims';\nimport { SearchInput } from '../../ui';\nimport { StatusFilterComponent } from '../../features';\nimport {\n OPENFRAME_DEV_SECTIONS,\n type OpenframeDevSectionKey,\n} from '../../../utils/dev-sections/openframe-dev-sections';\n\nexport interface DevSectionViewProps {\n /** Which section to render — drives title, search, and filter\n * config via the `OPENFRAME_DEV_SECTIONS` registry. */\n sectionKey: OpenframeDevSectionKey;\n /** When set, renders the rich page-level hero (icon + h1 + description).\n * Omit for the compact tab-context heading. */\n hero?: {\n /** Pre-rendered icon JSX. Server components render the icon themselves\n * and pass the element here — function references can't cross the\n * server→client boundary, but React elements can. */\n icon: ReactNode;\n /** Hero title. Falls back to `OPENFRAME_DEV_SECTIONS[sectionKey].hero.title`\n * when omitted, so embedders can override the (OpenFrame-specific) default\n * copy without forking the registry. */\n title?: string;\n description: string;\n };\n /** Optional slot rendered BETWEEN the hero and the search/filter\n * controls. Use this for an entry-action surface that should sit\n * above the list (e.g. the Help Center's \"Open a new ticket\" form).\n * The slot is wrapped in the same `gap-10` flex column so spacing\n * matches the surrounding chrome — callers should NOT add their\n * own top/bottom margin. Renders `null` (no DOM) when omitted. */\n preControls?: ReactNode;\n /** The page-specific list body. Reads URL params written by this\n * component (search input + filter pills). */\n children: ReactNode;\n}\n\nexport function DevSectionView({ sectionKey, hero, preControls, children }: DevSectionViewProps) {\n const section = OPENFRAME_DEV_SECTIONS[sectionKey];\n const router = useRouter();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n\n const search = section.search;\n const filter = section.filter;\n\n const currentSearch = search ? searchParams.get(search.paramKey) || '' : '';\n const currentFilterValue = filter\n ? searchParams.get(filter.paramKey) || filter.defaultValue\n : '';\n\n // Controlled search-input state — input commits to the URL only on\n // Enter (not on every keystroke), preserving the legacy behavior.\n // Lazy init from URL avoids a brief flash of stale value on first\n // paint after URL-driven re-render (e.g. tab switch).\n const [searchValue, setSearchValue] = useState(() => currentSearch);\n useEffect(() => {\n setSearchValue(currentSearch);\n }, [currentSearch]);\n\n const handleSearchSubmit = (value: string) => {\n if (!search) return;\n const params = new URLSearchParams(searchParams.toString());\n if (value.trim()) params.set(search.paramKey, value.trim());\n else params.delete(search.paramKey);\n router.replace(`${pathname}?${params.toString()}`, { scroll: false });\n };\n\n const handleFilterChange = (value: string) => {\n if (!filter) return;\n const params = new URLSearchParams(searchParams.toString());\n if (value === filter.defaultValue) params.delete(filter.paramKey);\n else params.set(filter.paramKey, value);\n router.replace(`${pathname}?${params.toString()}`, { scroll: false });\n };\n\n return (\n <div className=\"w-full flex flex-col gap-10\">\n {hero ? (\n <div className=\"space-y-4\">\n <h1 className=\"text-h1 tracking-[-1.12px] text-ods-text-primary flex items-center gap-3\">\n {hero.icon}\n {hero.title ?? section.hero.title}\n </h1>\n <p className=\"font-['DM_Sans'] font-medium text-[18px] leading-[28px] text-ods-text-secondary max-w-3xl\">\n {hero.description}\n </p>\n </div>\n ) : (\n <div className=\"flex items-center justify-between w-full\">\n <h2 className=\"font-['Azeret_Mono'] font-semibold text-[32px] md:text-[40px] lg:text-[48px] leading-[40px] md:leading-[48px] lg:leading-[56px] text-ods-text-primary tracking-[-0.64px] md:tracking-[-0.8px] lg:tracking-[-0.96px]\">\n {section.hero.title}\n <span className=\"text-ods-accent\">:</span>\n </h2>\n </div>\n )}\n\n {preControls}\n\n {(search || filter) && (\n <div className=\"space-y-4\">\n {search && (\n <SearchInput\n showDropdown={false}\n placeholder={search.placeholder}\n value={searchValue}\n onChange={setSearchValue}\n onSubmit={handleSearchSubmit}\n />\n )}\n {filter && (\n <StatusFilterComponent\n selectedStatus={currentFilterValue}\n onStatusChange={handleFilterChange}\n statusOptions={[...filter.options]}\n />\n )}\n </div>\n )}\n\n {children}\n </div>\n );\n}\n","'use client';\n\n/**\n * DevSectionPage — full-page wrapper for a dev-center section\n * (`/roadmap`, `/bug-fixes-and-enhancements`, `/releases`).\n *\n * Mounts the lib's canonical `PageLayout` directly (no in-app wrapper)\n * so the back-button affordance stays in lockstep with whatever the\n * design system ships — any future lib change to BackButton / TitleBlock\n * propagates automatically.\n *\n * Composition: `PageShell` → `PageLayout` (back-to-home wired) →\n * `DevSectionView` (icon hero + search + filter pills) → list body.\n *\n * Adding a new section is one entry in `OPENFRAME_DEV_SECTIONS` plus a\n * single-line page file mounting this factory with the new key.\n */\n\nimport type { ReactNode } from 'react';\nimport { useRouter } from '../../../embed-shims/next-navigation';\nimport { PageShell, PageLayout } from '../../ui';\nimport { DevSectionView } from './dev-section-view';\nimport {\n OPENFRAME_DEV_SECTIONS,\n type OpenframeDevSectionKey,\n} from '../../../utils/dev-sections/openframe-dev-sections';\n\nconst SECTION_HERO_ICON_CLASS = 'h-10 w-10 text-ods-accent';\n\nexport interface DevSectionPageProps {\n sectionKey: OpenframeDevSectionKey;\n /** The page-specific list body (e.g. `<RoadmapList />`). */\n children: ReactNode;\n /** Optional slot rendered BETWEEN the hero and search/filter — see\n * `DevSectionView.preControls`. Used by surfaces that want an entry\n * action (e.g. Help Center's \"Open a new ticket\" form) above the\n * controls instead of below them. */\n preControls?: ReactNode;\n /** Back-button config — same shape as `LegalDocumentPage` /\n * `ReleaseDetailPage`. Pass `false` to hide entirely. Default\n * `{ label: 'Back to home', href: '/' }` — embedders whose \"home\" isn't `/`\n * should override `href`, or pass `false` if the embed has no home page. */\n backButton?: { label?: string; href?: string } | false;\n /** Override the hero title. Defaults to the (OpenFrame-specific) copy in\n * `OPENFRAME_DEV_SECTIONS[sectionKey].hero.title`. Set this to brand the\n * section for a non-OpenFrame embed. */\n title?: string;\n /** Override the hero subtitle/description. Defaults to\n * `OPENFRAME_DEV_SECTIONS[sectionKey].hero.description`. */\n subtitle?: string;\n}\n\nexport function DevSectionPage({\n sectionKey,\n children,\n preControls,\n backButton,\n title,\n subtitle,\n}: DevSectionPageProps) {\n const router = useRouter();\n const section = OPENFRAME_DEV_SECTIONS[sectionKey];\n const Icon = section.icon;\n\n // Back-button config — mirrors LegalDocumentPage / ReleaseDetailPage.\n // Default: { label: 'Back to home', href: '/' }. Pass `false` to hide.\n // After `backButton &&` narrowing, inner type is `{ label?, href? } |\n // undefined`; don't re-compare to `false` (TS2367).\n const backCfg =\n backButton === false\n ? undefined\n : {\n label: (backButton ? backButton.label : undefined) ?? 'Back to home',\n onClick: () => router.push((backButton ? backButton.href : undefined) ?? '/'),\n };\n\n return (\n <PageShell>\n <PageLayout backButton={backCfg}>\n <DevSectionView\n sectionKey={sectionKey}\n hero={{\n icon: <Icon className={SECTION_HERO_ICON_CLASS} />,\n title,\n description: subtitle ?? section.hero.description,\n }}\n preControls={preControls}\n >\n {children}\n </DevSectionView>\n </PageLayout>\n </PageShell>\n );\n}\n","'use client';\n\n/**\n * Shared row chrome for any `DevSectionPage` list (delivery, tickets,\n * future sections). One source of truth for the layout that every\n * dev-section card row uses:\n * left column → title (h3) / subtitle (h5 uppercase) / description\n * (h4 line-clamp-3), each in a fixed min-height block\n * so rows align across the grid\n * right column → caller-supplied stacked badges\n *\n * Surface stays small on purpose — `rightBadges` is a `ReactNode` so\n * the caller decides how many badges (delivery: 2, tickets: 1-2,\n * future: anything). No behavior baked in: the caller wraps the row\n * in a `<div>` (static, like delivery) or `<button>` (clickable, like\n * tickets) and renders the row content via this component.\n *\n * Pair with `DevCardRowSkeletonList` for the loading state — the\n * skeleton mirrors the same min-heights so the in-flight UI doesn't\n * shift the layout when real data lands.\n *\n * NOTE: the ticket conversation row is NOT here — it renders the shared\n * `<ChatMessageRow>` (`components/chat/chat-message-row.tsx`), the SAME\n * component the OpenMSP Slack-community feed uses, so the two surfaces stay\n * pixel-identical by construction.\n */\n\nimport type { ReactNode } from 'react';\n\nexport interface DevCardRowContentProps {\n title: string;\n /** Single-line uppercase metadata (e.g. \"UPDATED today, #4271, Code review\"). */\n subtitle: string;\n /** 3-line description block. Empty string renders the fallback. */\n description: string;\n /** Fallback copy when `description` is empty. Defaults to a generic\n * string; ticket / delivery surfaces override. */\n emptyDescription?: string;\n /** Right column — caller renders its own stacked badges. */\n rightBadges: ReactNode;\n}\n\nexport function DevCardRowContent({\n title,\n subtitle,\n description,\n emptyDescription = 'No description provided',\n rightBadges,\n}: DevCardRowContentProps) {\n return (\n <div className=\"flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full\">\n <div className=\"flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]\">\n <div className=\"min-h-[24px] flex items-center\">\n <h3 className=\"text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2 md:truncate break-words\">\n {title}\n </h3>\n </div>\n <div className=\"min-h-[20px] flex items-center\">\n <p className=\"text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate\">\n {subtitle}\n </p>\n </div>\n <div className=\"min-h-[72px] flex items-center\">\n <p className=\"text-h4 text-ods-text-secondary line-clamp-3 break-words\">\n {description || emptyDescription}\n </p>\n </div>\n </div>\n <div className=\"flex-shrink-0 self-start flex flex-col gap-2\">\n {rightBadges}\n </div>\n </div>\n );\n}\n\n/**\n * Skeleton rendering for a single row — the bars mirror the same\n * min-heights as `DevCardRowContent` so the loading→loaded swap\n * doesn't reflow.\n */\nexport function DevCardRowSkeleton() {\n return (\n <div className=\"border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px]\">\n <div className=\"flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full\">\n <div className=\"flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]\">\n <div className=\"min-h-[24px] flex items-center\">\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-full\" />\n </div>\n <div className=\"min-h-[20px] flex items-center\">\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-1/2\" />\n </div>\n <div className=\"min-h-[72px] flex items-center\">\n <div className=\"flex-1 space-y-1\">\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-full\" />\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-full\" />\n <div className=\"h-[20px] bg-ods-border rounded animate-pulse w-2/3\" />\n </div>\n </div>\n </div>\n <div className=\"flex-shrink-0 self-start flex flex-col gap-2\">\n <div className=\"h-[32px] w-[100px] bg-ods-border rounded animate-pulse\" />\n <div className=\"h-[32px] w-[120px] bg-ods-border rounded animate-pulse\" />\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * The standard \"5 skeleton rows inside a bordered card\" loading state\n * used by every list shell. Both delivery (`delivery-table.tsx`) and\n * tickets (`tickets-list.tsx`) mount this directly.\n */\nexport function DevCardRowSkeletonList({ rows = 5 }: { rows?: number }) {\n return (\n <div className=\"bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full\">\n {Array.from({ length: rows }, (_, i) => (\n <DevCardRowSkeleton key={i} />\n ))}\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message-list.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-list.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAgFnD,QAAA,MAAM,eAAe,iHAyfpB,CAAA;AAID,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"chat-message-list.d.ts","sourceRoot":"","sources":["../../../src/components/chat/chat-message-list.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAgFnD,QAAA,MAAM,eAAe,iHAgepB,CAAA;AAID,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-chat-card-item.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/use-chat-card-item.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,OAAO;IAChD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB;AAyCD,wBAAgB,eAAe,CAAC,CAAC,GAAG,OAAO,EACzC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,qBAAqB,CAAC,CAAC,CAAC,CA4C1B"}
1
+ {"version":3,"file":"use-chat-card-item.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/use-chat-card-item.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,OAAO;IAChD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB;AAKD,wBAAgB,eAAe,CAAC,CAAC,GAAG,OAAO,EACzC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,qBAAqB,CAAC,CAAC,CAAC,CA4C1B"}
@@ -216,21 +216,16 @@
216
216
 
217
217
 
218
218
 
219
-
220
-
221
-
222
-
223
-
224
- var _chunkEPXROXYCcjs = require('../../chunk-EPXROXYC.cjs');
219
+ var _chunkCZITXP77cjs = require('../../chunk-CZITXP77.cjs');
220
+ require('../../chunk-27VVOBDB.cjs');
225
221
  require('../../chunk-MEAR2WHS.cjs');
222
+ require('../../chunk-27APPAJN.cjs');
226
223
  require('../../chunk-XL4V2PYG.cjs');
227
224
  require('../../chunk-BZFW3FOF.cjs');
228
- require('../../chunk-FSS2MIEA.cjs');
225
+ require('../../chunk-G7UE6RKV.cjs');
226
+ require('../../chunk-SGJBUL2Y.cjs');
229
227
  require('../../chunk-GRTZ23GL.cjs');
230
228
  require('../../chunk-WBR7H6E3.cjs');
231
- require('../../chunk-27VVOBDB.cjs');
232
- require('../../chunk-27APPAJN.cjs');
233
- require('../../chunk-G7UE6RKV.cjs');
234
229
  require('../../chunk-Z4IBEIWD.cjs');
235
230
  require('../../chunk-FIG2RKZF.cjs');
236
231
  require('../../chunk-C6ASEPZL.cjs');
@@ -455,10 +450,5 @@ require('../../chunk-VRHGVLSL.cjs');
455
450
 
456
451
 
457
452
 
458
-
459
-
460
-
461
-
462
-
463
- exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = _chunkEPXROXYCcjs.ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.APPROVAL_STATUS = _chunkEPXROXYCcjs.APPROVAL_STATUS; exports.ASSISTANT_TYPE = _chunkEPXROXYCcjs.ASSISTANT_TYPE; exports.AUTHOR_TYPE = _chunkEPXROXYCcjs.AUTHOR_TYPE; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = _chunkEPXROXYCcjs.AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.AdminContentCard = _chunkEPXROXYCcjs.AdminContentCard; exports.ApprovalBatchMessage = _chunkEPXROXYCcjs.ApprovalBatchMessage; exports.ApprovalRequestMessage = _chunkEPXROXYCcjs.ApprovalRequestMessage; exports.ArchiveChatModal = _chunkEPXROXYCcjs.ArchiveChatModal; exports.ArgRow = _chunkEPXROXYCcjs.ArgRow; exports.BlockCard = _chunkEPXROXYCcjs.BlockCard; exports.BlogCard = _chunkEPXROXYCcjs.BlogCard; exports.BlogCardSkeleton = _chunkEPXROXYCcjs.BlogCardSkeleton; exports.BlogImagePlaceholder = _chunkEPXROXYCcjs.BlogImagePlaceholder; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = _chunkEPXROXYCcjs.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = _chunkEPXROXYCcjs.CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.CHAT_ATTACHMENT_MIME_TYPES = _chunkEPXROXYCcjs.CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = _chunkEPXROXYCcjs.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = _chunkEPXROXYCcjs.CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = _chunkEPXROXYCcjs.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_TYPE = _chunkEPXROXYCcjs.CHAT_TYPE; exports.CHIP_ACTION_BUTTON_CLASS = _chunkEPXROXYCcjs.CHIP_ACTION_BUTTON_CLASS; exports.COMPACT_CARD_ICON_SLOT = _chunkEPXROXYCcjs.COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_IMAGE_SLOT = _chunkEPXROXYCcjs.COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_META_ROW = _chunkEPXROXYCcjs.COMPACT_CARD_META_ROW; exports.COMPACT_CARD_META_ROW_BOX = _chunkEPXROXYCcjs.COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_OUTER = _chunkEPXROXYCcjs.COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = _chunkEPXROXYCcjs.COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_ROW_FILLER = _chunkEPXROXYCcjs.COMPACT_CARD_ROW_FILLER; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = _chunkEPXROXYCcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_OUTER = _chunkEPXROXYCcjs.COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_SUBTITLE = _chunkEPXROXYCcjs.COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = _chunkEPXROXYCcjs.COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_TEXT_COL = _chunkEPXROXYCcjs.COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE = _chunkEPXROXYCcjs.COMPACT_CARD_TITLE; exports.COMPACT_CARD_TITLE_ROW = _chunkEPXROXYCcjs.COMPACT_CARD_TITLE_ROW; exports.COMPACT_HEADER_BUTTON = _chunkEPXROXYCcjs.COMPACT_HEADER_BUTTON; exports.CONNECTION_STATUS = _chunkEPXROXYCcjs.CONNECTION_STATUS; exports.CUSTOM_ITEM_ID = _chunkEPXROXYCcjs.CUSTOM_ITEM_ID; exports.CampaignCardAdmin = _chunkEPXROXYCcjs.CampaignCardAdmin; exports.CampaignCardAdminSkeleton = _chunkEPXROXYCcjs.CampaignCardAdminSkeleton; exports.CaseStudyCard = _chunkEPXROXYCcjs.CaseStudyCard; exports.CaseStudyCardSkeleton = _chunkEPXROXYCcjs.CaseStudyCardSkeleton; exports.ChatArchivePage = _chunkEPXROXYCcjs.ChatArchivePage; exports.ChatAttachmentAddButton = _chunkEPXROXYCcjs.ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = _chunkEPXROXYCcjs.ChatAttachmentChipStrip; exports.ChatCardLoader = _chunkEPXROXYCcjs.ChatCardLoader; exports.ChatComposer = _chunkEPXROXYCcjs.ChatComposer; exports.ChatContainer = _chunkEPXROXYCcjs.ChatContainer; exports.ChatContent = _chunkEPXROXYCcjs.ChatContent; exports.ChatDialogModals = _chunkEPXROXYCcjs.ChatDialogModals; exports.ChatFooter = _chunkEPXROXYCcjs.ChatFooter; exports.ChatHeader = _chunkEPXROXYCcjs.ChatHeader; exports.ChatHeaderIconButton = _chunkEPXROXYCcjs.ChatHeaderIconButton; exports.ChatIdentityProvider = _chunkEPXROXYCcjs.ChatIdentityProvider; exports.ChatInput = _chunkEPXROXYCcjs.ChatInput; exports.ChatMessageEnhanced = _chunkEPXROXYCcjs.MemoizedChatMessageEnhanced; exports.ChatMessageList = _chunkEPXROXYCcjs.ChatMessageList; exports.ChatMessageListSkeleton = _chunkEPXROXYCcjs.ChatMessageListSkeleton; exports.ChatMessageRow = _chunkEPXROXYCcjs.ChatMessageRow; exports.ChatMessageRowSkeleton = _chunkEPXROXYCcjs.ChatMessageRowSkeleton; exports.ChatMessageSkeleton = _chunkEPXROXYCcjs.ChatMessageSkeleton; exports.ChatPanelHeader = _chunkEPXROXYCcjs.ChatPanelHeader; exports.ChatQuickAction = _chunkEPXROXYCcjs.ChatQuickAction; exports.ChatSidebar = _chunkEPXROXYCcjs.ChatSidebar; exports.ChatTicketItem = _chunkEPXROXYCcjs.ChatTicketItem; exports.ChatTicketList = _chunkEPXROXYCcjs.ChatTicketList; exports.ChatTypingIndicator = _chunkEPXROXYCcjs.ChatTypingIndicator; exports.ChatVideoEntityCard = _chunkEPXROXYCcjs.ChatVideoEntityCard; exports.ContextCompactionDisplay = _chunkEPXROXYCcjs.ContextCompactionDisplay; exports.CustomerInterviewCard = _chunkEPXROXYCcjs.CustomerInterviewCard; exports.CustomerInterviewCardSkeleton = _chunkEPXROXYCcjs.CustomerInterviewCardSkeleton; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = _chunkEPXROXYCcjs.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.DataRoomDocCard = _chunkEPXROXYCcjs.DataRoomDocCard; exports.DataRoomDocCardSkeleton = _chunkEPXROXYCcjs.DataRoomDocCardSkeleton; exports.DialogListItem = _chunkEPXROXYCcjs.DialogListItem; exports.EMPTY_AUTHOR_PLACEHOLDER = _chunkEPXROXYCcjs.EMPTY_AUTHOR_PLACEHOLDER; exports.EmbeddableChat = _chunkEPXROXYCcjs.EmbeddableChat; exports.EntityAuthorCard = _chunkEPXROXYCcjs.EntityAuthorCard; exports.EntityMetadataAuthorCell = _chunkEPXROXYCcjs.EntityMetadataAuthorCell; exports.EntityMetadataValueCell = _chunkEPXROXYCcjs.EntityMetadataValueCell; exports.ErrorMessageDisplay = _chunkEPXROXYCcjs.ErrorMessageDisplay; exports.ExpandChevron = _chunkEPXROXYCcjs.ExpandChevron; exports.GenericEntityCard = _chunkEPXROXYCcjs.GenericEntityCard; exports.GenericEntityCardSkeleton = _chunkEPXROXYCcjs.GenericEntityCardSkeleton; exports.GitHubActivityCard = _chunkEPXROXYCcjs.GitHubActivityCard; exports.GitHubActivityCardSkeleton = _chunkEPXROXYCcjs.GitHubActivityCardSkeleton; exports.GuideModeBanner = _chunkEPXROXYCcjs.GuideModeBanner; exports.GuideWelcome = _chunkEPXROXYCcjs.GuideWelcome; exports.HubspotTicketCard = _chunkEPXROXYCcjs.HubspotTicketCard; exports.HubspotTicketCardSkeleton = _chunkEPXROXYCcjs.HubspotTicketCardSkeleton; exports.ICON_REGISTRY = _chunkEPXROXYCcjs.ICON_REGISTRY; exports.InvestorUpdateCard = _chunkEPXROXYCcjs.InvestorUpdateCard; exports.InvestorUpdateCardSkeleton = _chunkEPXROXYCcjs.InvestorUpdateCardSkeleton; exports.MESSAGE_ROLE = _chunkEPXROXYCcjs.MESSAGE_ROLE; exports.MESSAGE_TYPE = _chunkEPXROXYCcjs.MESSAGE_TYPE; exports.MessageSegmentAccumulator = _chunkEPXROXYCcjs.MessageSegmentAccumulator; exports.MingoChatHistory = _chunkEPXROXYCcjs.MingoChatHistory; exports.MingoChatHistorySkeleton = _chunkEPXROXYCcjs.MingoChatHistorySkeleton; exports.MingoOnboardingCard = _chunkEPXROXYCcjs.MingoOnboardingCard; exports.MingoOnboardingCardSkeleton = _chunkEPXROXYCcjs.MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = _chunkEPXROXYCcjs.MingoOnboardingListSkeleton; exports.MingoWelcome = _chunkEPXROXYCcjs.MingoWelcome; exports.ModelDisplay = _chunkEPXROXYCcjs.ModelDisplay; exports.NETWORK_CONFIG = _chunkEPXROXYCcjs.NETWORK_CONFIG; exports.NEW_TAB_FEATURES = _chunkEPXROXYCcjs.NEW_TAB_FEATURES; exports.NavLinkAnchorViaRuntime = _chunkEPXROXYCcjs.NavLinkAnchorViaRuntime; exports.OWNER_TYPE = _chunkEPXROXYCcjs.OWNER_TYPE; exports.OnboardingGuideCard = _chunkEPXROXYCcjs.OnboardingGuideCard; exports.OnboardingGuideCardSkeleton = _chunkEPXROXYCcjs.OnboardingGuideCardSkeleton; exports.ProductReleaseCard = _chunkEPXROXYCcjs.ProductReleaseCard; exports.ProductReleaseCardSkeleton = _chunkEPXROXYCcjs.ProductReleaseCardSkeleton; exports.ProgramCard = _chunkEPXROXYCcjs.ProgramCard; exports.ProgramCardSkeleton = _chunkEPXROXYCcjs.ProgramCardSkeleton; exports.RenameChatModal = _chunkEPXROXYCcjs.RenameChatModal; exports.ResultBlock = _chunkEPXROXYCcjs.ResultBlock; exports.RoadmapCard = _chunkEPXROXYCcjs.RoadmapCard; exports.RoadmapCardSkeleton = _chunkEPXROXYCcjs.RoadmapCardSkeleton; exports.RoadmapVoteButton = _chunkEPXROXYCcjs.RoadmapVoteButton; exports.SCROLL_ANCHOR = _chunkEPXROXYCcjs.SCROLL_ANCHOR; exports.SCROLL_ANCHOR_WIRE_KEY = _chunkEPXROXYCcjs.SCROLL_ANCHOR_WIRE_KEY; exports.SOURCE_ICON_NAMES = _chunkEPXROXYCcjs.SOURCE_ICON_NAMES; exports.SOURCE_LABELS_BY_TABLE = _chunkEPXROXYCcjs.SOURCE_LABELS_BY_TABLE; exports.SYNTHETIC_REALTIME_ID_PREFIXES = _chunkEPXROXYCcjs.SYNTHETIC_REALTIME_ID_PREFIXES; exports.SlackMessageCard = _chunkEPXROXYCcjs.SlackMessageCard; exports.SlackMessageCardSkeleton = _chunkEPXROXYCcjs.SlackMessageCardSkeleton; exports.SlashCommandSuggestions = _chunkEPXROXYCcjs.SlashCommandSuggestions; exports.SourceActionButton = _chunkEPXROXYCcjs.SourceActionButton; exports.TaskTypeIcon = _chunkEPXROXYCcjs.TaskTypeIcon; exports.ThinkingDisplay = _chunkEPXROXYCcjs.ThinkingDisplay; exports.ToolExecutionDisplay = _chunkEPXROXYCcjs.ToolExecutionDisplay; exports.UnarchiveChatModal = _chunkEPXROXYCcjs.UnarchiveChatModal; exports.applyProxyAuth = _chunkEPXROXYCcjs.applyProxyAuth; exports.buildAnchorProps = _chunkEPXROXYCcjs.buildAnchorProps; exports.buildAutoContinuationDirective = _chunkEPXROXYCcjs.buildAutoContinuationDirective; exports.buildChatAttachmentViewUrl = _chunkEPXROXYCcjs.buildChatAttachmentViewUrl; exports.buildChatRefKey = _chunkEPXROXYCcjs.buildChatRefKey; exports.buildDiscussAddendum = _chunkEPXROXYCcjs.buildDiscussAddendum; exports.buildNatsWsUrl = _chunkEPXROXYCcjs.buildNatsWsUrl; exports.buildProductReleaseCardProps = _chunkEPXROXYCcjs.buildProductReleaseCardProps; exports.chatAuthedFetch = _chunkEPXROXYCcjs.embedAuthedFetch; exports.chatChipClass = _chunkEPXROXYCcjs.chatChipClass; exports.clearChatProxyAuth = _chunkEPXROXYCcjs.clearEmbedProxyAuth; exports.clickupTaskUrl = _chunkEPXROXYCcjs.clickupTaskUrl; exports.computeHistoryPrepend = _chunkEPXROXYCcjs.computeHistoryPrepend; exports.computeIsNewTab = _chunkEPXROXYCcjs.computeIsNewTab; exports.createMessageSegmentAccumulator = _chunkEPXROXYCcjs.createMessageSegmentAccumulator; exports.decideNewTab = _chunkEPXROXYCcjs.decideNewTab; exports.defaultBuildProductReleaseCardProps = _chunkEPXROXYCcjs.defaultBuildProductReleaseCardProps; exports.defaultTableIdForDocumentType = _chunkEPXROXYCcjs.defaultTableIdForDocumentType; exports.escapeMarkdownInline = _chunkEPXROXYCcjs.escapeMarkdownInline; exports.executeNavigation = _chunkEPXROXYCcjs.executeNavigation; exports.executeNavigationImperative = _chunkEPXROXYCcjs.executeNavigationImperative; exports.extractEntityIdFilter = _chunkEPXROXYCcjs.extractEntityIdFilter; exports.extractErrorMessages = _chunkEPXROXYCcjs.extractErrorMessages; exports.extractIncompleteMessageState = _chunkEPXROXYCcjs.extractIncompleteMessageState; exports.extractTextFromChunk = _chunkEPXROXYCcjs.extractTextFromChunk; exports.fetchSlashCommands = _chunkEPXROXYCcjs.fetchSlashCommands; exports.flattenAssistantContent = _chunkEPXROXYCcjs.flattenAssistantContent; exports.flattenMessagePagesChronological = _chunkEPXROXYCcjs.flattenMessagePagesChronological; exports.formatChatAttachmentMarkdownForBubble = _chunkEPXROXYCcjs.formatChatAttachmentMarkdownForBubble; exports.formatInvestorUpdatePeriod = _chunkEPXROXYCcjs.formatInvestorUpdatePeriod; exports.formatSingularLookupInvocation = _chunkEPXROXYCcjs.formatSingularLookupInvocation; exports.getChatProxyAuth = _chunkEPXROXYCcjs.getEmbedProxyAuth; exports.getCommandText = _chunkEPXROXYCcjs.getCommandText; exports.getDynamicIcon = _chunkEPXROXYCcjs.getDynamicIcon; exports.getIconComponent = _chunkEPXROXYCcjs.getIconComponent; exports.getPersistedProxyEmail = _chunkEPXROXYCcjs.getPersistedProxyEmail; exports.getSourceIconName = _chunkEPXROXYCcjs.getSourceIconName; exports.getSourceLabel = _chunkEPXROXYCcjs.getSourceLabel; exports.getStatusColorScheme = _chunkEPXROXYCcjs.getStatusColorScheme; exports.getTaskTypeLabel = _chunkEPXROXYCcjs.getTaskTypeLabel; exports.handleChatNavClick = _chunkEPXROXYCcjs.handleChatNavClick; exports.isControlChunk = _chunkEPXROXYCcjs.isControlChunk; exports.isCrossOriginUrl = _chunkEPXROXYCcjs.isCrossOriginUrl; exports.isErrorChunk = _chunkEPXROXYCcjs.isErrorChunk; exports.isMetadataChunk = _chunkEPXROXYCcjs.isMetadataChunk; exports.isModifierClick = _chunkEPXROXYCcjs.isModifierClick; exports.isStructuredContent = _chunkEPXROXYCcjs.isStructuredContent; exports.maxPersistedStreamSeq = _chunkEPXROXYCcjs.maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = _chunkEPXROXYCcjs.mergeHistoryWithRealtime; exports.newTabAnchorAttrs = _chunkEPXROXYCcjs.newTabAnchorAttrs; exports.normalizeContent = _chunkEPXROXYCcjs.normalizeContent; exports.normalizeIconKey = _chunkEPXROXYCcjs.normalizeIconKey; exports.parseChunkToAction = _chunkEPXROXYCcjs.parseChunkToAction; exports.parseScrollAnchor = _chunkEPXROXYCcjs.parseScrollAnchor; exports.parseWireCommandOverride = _chunkEPXROXYCcjs.parseWireCommandOverride; exports.processHistoricalMessages = _chunkEPXROXYCcjs.processHistoricalMessages; exports.processHistoricalMessagesWithErrors = _chunkEPXROXYCcjs.processHistoricalMessagesWithErrors; exports.remarkCardLinks = _chunkEPXROXYCcjs.remarkCardLinks; exports.renderChatInlineEntityCard = _chunkEPXROXYCcjs.renderChatInlineEntityCard; exports.resolveExternalNavigation = _chunkEPXROXYCcjs.resolveExternalNavigation; exports.resolveSourceIcon = _chunkEPXROXYCcjs.resolveSourceIcon; exports.resolveSourceRowCTA = _chunkEPXROXYCcjs.resolveSourceRowCTA; exports.safeHref = _chunkEPXROXYCcjs.safeHref; exports.sanitizeTitleForChat = _chunkEPXROXYCcjs.sanitizeTitleForChat; exports.setChatProxyAuth = _chunkEPXROXYCcjs.setEmbedProxyAuth; exports.stripChatAttachmentMarkdown = _chunkEPXROXYCcjs.stripChatAttachmentMarkdown; exports.stripSameOriginToPath = _chunkEPXROXYCcjs.stripSameOriginToPath; exports.transformEventToProgram = _chunkEPXROXYCcjs.transformEventToProgram; exports.transformPodcastToProgram = _chunkEPXROXYCcjs.transformPodcastToProgram; exports.transformWebinarToProgram = _chunkEPXROXYCcjs.transformWebinarToProgram; exports.useChat = _chunkEPXROXYCcjs.useChat; exports.useChatAttachmentImageGallery = _chunkEPXROXYCcjs.useChatAttachmentImageGallery; exports.useChatAttachments = _chunkEPXROXYCcjs.useChatAttachments; exports.useChatCardItem = _chunkEPXROXYCcjs.useChatCardItem; exports.useChatIdentity = _chunkEPXROXYCcjs.useChatIdentity; exports.useChunkCatchup = _chunkEPXROXYCcjs.useChunkCatchup; exports.useCloseOnNavigation = _chunkEPXROXYCcjs.useCloseOnNavigation; exports.useCollapsible = _chunkEPXROXYCcjs.useCollapsible; exports.useEmbeddedChat = _chunkEPXROXYCcjs.useSseChatAdapter; exports.useJetStreamDialogSubscription = _chunkEPXROXYCcjs.useJetStreamDialogSubscription; exports.useNatsChatAdapter = _chunkEPXROXYCcjs.useNatsChatAdapter; exports.useNatsDialogSubscription = _chunkEPXROXYCcjs.useNatsDialogSubscription; exports.useProxiedImageUrl = _chunkEPXROXYCcjs.useProxiedImageUrl; exports.useRealtimeChunkProcessor = _chunkEPXROXYCcjs.useRealtimeChunkProcessor; exports.useSSE = _chunkEPXROXYCcjs.useSSE; exports.useSlashCommandRegistry = _chunkEPXROXYCcjs.useSlashCommandRegistry; exports.useSlashCommands = _chunkEPXROXYCcjs.useSlashCommands; exports.useSseChatAdapter = _chunkEPXROXYCcjs.useSseChatAdapter; exports.useUnifiedChat = _chunkEPXROXYCcjs.useUnifiedChat;
453
+ exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = _chunkCZITXP77cjs.ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.APPROVAL_STATUS = _chunkCZITXP77cjs.APPROVAL_STATUS; exports.ASSISTANT_TYPE = _chunkCZITXP77cjs.ASSISTANT_TYPE; exports.AUTHOR_TYPE = _chunkCZITXP77cjs.AUTHOR_TYPE; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = _chunkCZITXP77cjs.AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.AdminContentCard = _chunkCZITXP77cjs.AdminContentCard; exports.ApprovalBatchMessage = _chunkCZITXP77cjs.ApprovalBatchMessage; exports.ApprovalRequestMessage = _chunkCZITXP77cjs.ApprovalRequestMessage; exports.ArchiveChatModal = _chunkCZITXP77cjs.ArchiveChatModal; exports.ArgRow = _chunkCZITXP77cjs.ArgRow; exports.BlockCard = _chunkCZITXP77cjs.BlockCard; exports.BlogCard = _chunkCZITXP77cjs.BlogCard; exports.BlogCardSkeleton = _chunkCZITXP77cjs.BlogCardSkeleton; exports.BlogImagePlaceholder = _chunkCZITXP77cjs.BlogImagePlaceholder; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = _chunkCZITXP77cjs.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = _chunkCZITXP77cjs.CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.CHAT_ATTACHMENT_MIME_TYPES = _chunkCZITXP77cjs.CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = _chunkCZITXP77cjs.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = _chunkCZITXP77cjs.CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = _chunkCZITXP77cjs.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_TYPE = _chunkCZITXP77cjs.CHAT_TYPE; exports.CHIP_ACTION_BUTTON_CLASS = _chunkCZITXP77cjs.CHIP_ACTION_BUTTON_CLASS; exports.COMPACT_CARD_ICON_SLOT = _chunkCZITXP77cjs.COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_IMAGE_SLOT = _chunkCZITXP77cjs.COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_META_ROW = _chunkCZITXP77cjs.COMPACT_CARD_META_ROW; exports.COMPACT_CARD_META_ROW_BOX = _chunkCZITXP77cjs.COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_OUTER = _chunkCZITXP77cjs.COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = _chunkCZITXP77cjs.COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_ROW_FILLER = _chunkCZITXP77cjs.COMPACT_CARD_ROW_FILLER; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = _chunkCZITXP77cjs.COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_OUTER = _chunkCZITXP77cjs.COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_SUBTITLE = _chunkCZITXP77cjs.COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = _chunkCZITXP77cjs.COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_TEXT_COL = _chunkCZITXP77cjs.COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE = _chunkCZITXP77cjs.COMPACT_CARD_TITLE; exports.COMPACT_CARD_TITLE_ROW = _chunkCZITXP77cjs.COMPACT_CARD_TITLE_ROW; exports.COMPACT_HEADER_BUTTON = _chunkCZITXP77cjs.COMPACT_HEADER_BUTTON; exports.CONNECTION_STATUS = _chunkCZITXP77cjs.CONNECTION_STATUS; exports.CUSTOM_ITEM_ID = _chunkCZITXP77cjs.CUSTOM_ITEM_ID; exports.CampaignCardAdmin = _chunkCZITXP77cjs.CampaignCardAdmin; exports.CampaignCardAdminSkeleton = _chunkCZITXP77cjs.CampaignCardAdminSkeleton; exports.CaseStudyCard = _chunkCZITXP77cjs.CaseStudyCard; exports.CaseStudyCardSkeleton = _chunkCZITXP77cjs.CaseStudyCardSkeleton; exports.ChatArchivePage = _chunkCZITXP77cjs.ChatArchivePage; exports.ChatAttachmentAddButton = _chunkCZITXP77cjs.ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = _chunkCZITXP77cjs.ChatAttachmentChipStrip; exports.ChatCardLoader = _chunkCZITXP77cjs.ChatCardLoader; exports.ChatComposer = _chunkCZITXP77cjs.ChatComposer; exports.ChatContainer = _chunkCZITXP77cjs.ChatContainer; exports.ChatContent = _chunkCZITXP77cjs.ChatContent; exports.ChatDialogModals = _chunkCZITXP77cjs.ChatDialogModals; exports.ChatFooter = _chunkCZITXP77cjs.ChatFooter; exports.ChatHeader = _chunkCZITXP77cjs.ChatHeader; exports.ChatHeaderIconButton = _chunkCZITXP77cjs.ChatHeaderIconButton; exports.ChatIdentityProvider = _chunkCZITXP77cjs.ChatIdentityProvider; exports.ChatInput = _chunkCZITXP77cjs.ChatInput; exports.ChatMessageEnhanced = _chunkCZITXP77cjs.MemoizedChatMessageEnhanced; exports.ChatMessageList = _chunkCZITXP77cjs.ChatMessageList; exports.ChatMessageListSkeleton = _chunkCZITXP77cjs.ChatMessageListSkeleton; exports.ChatMessageRow = _chunkCZITXP77cjs.ChatMessageRow; exports.ChatMessageRowSkeleton = _chunkCZITXP77cjs.ChatMessageRowSkeleton; exports.ChatMessageSkeleton = _chunkCZITXP77cjs.ChatMessageSkeleton; exports.ChatPanelHeader = _chunkCZITXP77cjs.ChatPanelHeader; exports.ChatQuickAction = _chunkCZITXP77cjs.ChatQuickAction; exports.ChatSidebar = _chunkCZITXP77cjs.ChatSidebar; exports.ChatTicketItem = _chunkCZITXP77cjs.ChatTicketItem; exports.ChatTicketList = _chunkCZITXP77cjs.ChatTicketList; exports.ChatTypingIndicator = _chunkCZITXP77cjs.ChatTypingIndicator; exports.ChatVideoEntityCard = _chunkCZITXP77cjs.ChatVideoEntityCard; exports.ContextCompactionDisplay = _chunkCZITXP77cjs.ContextCompactionDisplay; exports.CustomerInterviewCard = _chunkCZITXP77cjs.CustomerInterviewCard; exports.CustomerInterviewCardSkeleton = _chunkCZITXP77cjs.CustomerInterviewCardSkeleton; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = _chunkCZITXP77cjs.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.DataRoomDocCard = _chunkCZITXP77cjs.DataRoomDocCard; exports.DataRoomDocCardSkeleton = _chunkCZITXP77cjs.DataRoomDocCardSkeleton; exports.DialogListItem = _chunkCZITXP77cjs.DialogListItem; exports.EMPTY_AUTHOR_PLACEHOLDER = _chunkCZITXP77cjs.EMPTY_AUTHOR_PLACEHOLDER; exports.EmbeddableChat = _chunkCZITXP77cjs.EmbeddableChat; exports.EntityAuthorCard = _chunkCZITXP77cjs.EntityAuthorCard; exports.EntityMetadataAuthorCell = _chunkCZITXP77cjs.EntityMetadataAuthorCell; exports.EntityMetadataValueCell = _chunkCZITXP77cjs.EntityMetadataValueCell; exports.ErrorMessageDisplay = _chunkCZITXP77cjs.ErrorMessageDisplay; exports.ExpandChevron = _chunkCZITXP77cjs.ExpandChevron; exports.GenericEntityCard = _chunkCZITXP77cjs.GenericEntityCard; exports.GenericEntityCardSkeleton = _chunkCZITXP77cjs.GenericEntityCardSkeleton; exports.GitHubActivityCard = _chunkCZITXP77cjs.GitHubActivityCard; exports.GitHubActivityCardSkeleton = _chunkCZITXP77cjs.GitHubActivityCardSkeleton; exports.GuideModeBanner = _chunkCZITXP77cjs.GuideModeBanner; exports.GuideWelcome = _chunkCZITXP77cjs.GuideWelcome; exports.HubspotTicketCard = _chunkCZITXP77cjs.HubspotTicketCard; exports.HubspotTicketCardSkeleton = _chunkCZITXP77cjs.HubspotTicketCardSkeleton; exports.ICON_REGISTRY = _chunkCZITXP77cjs.ICON_REGISTRY; exports.InvestorUpdateCard = _chunkCZITXP77cjs.InvestorUpdateCard; exports.InvestorUpdateCardSkeleton = _chunkCZITXP77cjs.InvestorUpdateCardSkeleton; exports.MESSAGE_ROLE = _chunkCZITXP77cjs.MESSAGE_ROLE; exports.MESSAGE_TYPE = _chunkCZITXP77cjs.MESSAGE_TYPE; exports.MessageSegmentAccumulator = _chunkCZITXP77cjs.MessageSegmentAccumulator; exports.MingoChatHistory = _chunkCZITXP77cjs.MingoChatHistory; exports.MingoChatHistorySkeleton = _chunkCZITXP77cjs.MingoChatHistorySkeleton; exports.MingoOnboardingCard = _chunkCZITXP77cjs.MingoOnboardingCard; exports.MingoOnboardingCardSkeleton = _chunkCZITXP77cjs.MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = _chunkCZITXP77cjs.MingoOnboardingListSkeleton; exports.MingoWelcome = _chunkCZITXP77cjs.MingoWelcome; exports.ModelDisplay = _chunkCZITXP77cjs.ModelDisplay; exports.NETWORK_CONFIG = _chunkCZITXP77cjs.NETWORK_CONFIG; exports.NEW_TAB_FEATURES = _chunkCZITXP77cjs.NEW_TAB_FEATURES; exports.NavLinkAnchorViaRuntime = _chunkCZITXP77cjs.NavLinkAnchorViaRuntime; exports.OWNER_TYPE = _chunkCZITXP77cjs.OWNER_TYPE; exports.OnboardingGuideCard = _chunkCZITXP77cjs.OnboardingGuideCard; exports.OnboardingGuideCardSkeleton = _chunkCZITXP77cjs.OnboardingGuideCardSkeleton; exports.ProductReleaseCard = _chunkCZITXP77cjs.ProductReleaseCard; exports.ProductReleaseCardSkeleton = _chunkCZITXP77cjs.ProductReleaseCardSkeleton; exports.ProgramCard = _chunkCZITXP77cjs.ProgramCard; exports.ProgramCardSkeleton = _chunkCZITXP77cjs.ProgramCardSkeleton; exports.RenameChatModal = _chunkCZITXP77cjs.RenameChatModal; exports.ResultBlock = _chunkCZITXP77cjs.ResultBlock; exports.RoadmapCard = _chunkCZITXP77cjs.RoadmapCard; exports.RoadmapCardSkeleton = _chunkCZITXP77cjs.RoadmapCardSkeleton; exports.RoadmapVoteButton = _chunkCZITXP77cjs.RoadmapVoteButton; exports.SCROLL_ANCHOR = _chunkCZITXP77cjs.SCROLL_ANCHOR; exports.SCROLL_ANCHOR_WIRE_KEY = _chunkCZITXP77cjs.SCROLL_ANCHOR_WIRE_KEY; exports.SOURCE_ICON_NAMES = _chunkCZITXP77cjs.SOURCE_ICON_NAMES; exports.SOURCE_LABELS_BY_TABLE = _chunkCZITXP77cjs.SOURCE_LABELS_BY_TABLE; exports.SlackMessageCard = _chunkCZITXP77cjs.SlackMessageCard; exports.SlackMessageCardSkeleton = _chunkCZITXP77cjs.SlackMessageCardSkeleton; exports.SlashCommandSuggestions = _chunkCZITXP77cjs.SlashCommandSuggestions; exports.SourceActionButton = _chunkCZITXP77cjs.SourceActionButton; exports.TaskTypeIcon = _chunkCZITXP77cjs.TaskTypeIcon; exports.ThinkingDisplay = _chunkCZITXP77cjs.ThinkingDisplay; exports.ToolExecutionDisplay = _chunkCZITXP77cjs.ToolExecutionDisplay; exports.UnarchiveChatModal = _chunkCZITXP77cjs.UnarchiveChatModal; exports.applyProxyAuth = _chunkCZITXP77cjs.applyProxyAuth; exports.buildAnchorProps = _chunkCZITXP77cjs.buildAnchorProps; exports.buildAutoContinuationDirective = _chunkCZITXP77cjs.buildAutoContinuationDirective; exports.buildChatAttachmentViewUrl = _chunkCZITXP77cjs.buildChatAttachmentViewUrl; exports.buildChatRefKey = _chunkCZITXP77cjs.buildChatRefKey; exports.buildDiscussAddendum = _chunkCZITXP77cjs.buildDiscussAddendum; exports.buildNatsWsUrl = _chunkCZITXP77cjs.buildNatsWsUrl; exports.buildProductReleaseCardProps = _chunkCZITXP77cjs.buildProductReleaseCardProps; exports.chatAuthedFetch = _chunkCZITXP77cjs.embedAuthedFetch; exports.chatChipClass = _chunkCZITXP77cjs.chatChipClass; exports.clearChatProxyAuth = _chunkCZITXP77cjs.clearEmbedProxyAuth; exports.clickupTaskUrl = _chunkCZITXP77cjs.clickupTaskUrl; exports.computeIsNewTab = _chunkCZITXP77cjs.computeIsNewTab; exports.createMessageSegmentAccumulator = _chunkCZITXP77cjs.createMessageSegmentAccumulator; exports.decideNewTab = _chunkCZITXP77cjs.decideNewTab; exports.defaultBuildProductReleaseCardProps = _chunkCZITXP77cjs.defaultBuildProductReleaseCardProps; exports.defaultTableIdForDocumentType = _chunkCZITXP77cjs.defaultTableIdForDocumentType; exports.escapeMarkdownInline = _chunkCZITXP77cjs.escapeMarkdownInline; exports.executeNavigation = _chunkCZITXP77cjs.executeNavigation; exports.executeNavigationImperative = _chunkCZITXP77cjs.executeNavigationImperative; exports.extractEntityIdFilter = _chunkCZITXP77cjs.extractEntityIdFilter; exports.extractErrorMessages = _chunkCZITXP77cjs.extractErrorMessages; exports.extractIncompleteMessageState = _chunkCZITXP77cjs.extractIncompleteMessageState; exports.extractTextFromChunk = _chunkCZITXP77cjs.extractTextFromChunk; exports.fetchSlashCommands = _chunkCZITXP77cjs.fetchSlashCommands; exports.flattenAssistantContent = _chunkCZITXP77cjs.flattenAssistantContent; exports.formatChatAttachmentMarkdownForBubble = _chunkCZITXP77cjs.formatChatAttachmentMarkdownForBubble; exports.formatInvestorUpdatePeriod = _chunkCZITXP77cjs.formatInvestorUpdatePeriod; exports.formatSingularLookupInvocation = _chunkCZITXP77cjs.formatSingularLookupInvocation; exports.getChatProxyAuth = _chunkCZITXP77cjs.getEmbedProxyAuth; exports.getCommandText = _chunkCZITXP77cjs.getCommandText; exports.getDynamicIcon = _chunkCZITXP77cjs.getDynamicIcon; exports.getIconComponent = _chunkCZITXP77cjs.getIconComponent; exports.getPersistedProxyEmail = _chunkCZITXP77cjs.getPersistedProxyEmail; exports.getSourceIconName = _chunkCZITXP77cjs.getSourceIconName; exports.getSourceLabel = _chunkCZITXP77cjs.getSourceLabel; exports.getStatusColorScheme = _chunkCZITXP77cjs.getStatusColorScheme; exports.getTaskTypeLabel = _chunkCZITXP77cjs.getTaskTypeLabel; exports.handleChatNavClick = _chunkCZITXP77cjs.handleChatNavClick; exports.isControlChunk = _chunkCZITXP77cjs.isControlChunk; exports.isCrossOriginUrl = _chunkCZITXP77cjs.isCrossOriginUrl; exports.isErrorChunk = _chunkCZITXP77cjs.isErrorChunk; exports.isMetadataChunk = _chunkCZITXP77cjs.isMetadataChunk; exports.isModifierClick = _chunkCZITXP77cjs.isModifierClick; exports.isStructuredContent = _chunkCZITXP77cjs.isStructuredContent; exports.newTabAnchorAttrs = _chunkCZITXP77cjs.newTabAnchorAttrs; exports.normalizeContent = _chunkCZITXP77cjs.normalizeContent; exports.normalizeIconKey = _chunkCZITXP77cjs.normalizeIconKey; exports.parseChunkToAction = _chunkCZITXP77cjs.parseChunkToAction; exports.parseScrollAnchor = _chunkCZITXP77cjs.parseScrollAnchor; exports.parseWireCommandOverride = _chunkCZITXP77cjs.parseWireCommandOverride; exports.processHistoricalMessages = _chunkCZITXP77cjs.processHistoricalMessages; exports.processHistoricalMessagesWithErrors = _chunkCZITXP77cjs.processHistoricalMessagesWithErrors; exports.remarkCardLinks = _chunkCZITXP77cjs.remarkCardLinks; exports.renderChatInlineEntityCard = _chunkCZITXP77cjs.renderChatInlineEntityCard; exports.resolveExternalNavigation = _chunkCZITXP77cjs.resolveExternalNavigation; exports.resolveSourceIcon = _chunkCZITXP77cjs.resolveSourceIcon; exports.resolveSourceRowCTA = _chunkCZITXP77cjs.resolveSourceRowCTA; exports.safeHref = _chunkCZITXP77cjs.safeHref; exports.sanitizeTitleForChat = _chunkCZITXP77cjs.sanitizeTitleForChat; exports.setChatProxyAuth = _chunkCZITXP77cjs.setEmbedProxyAuth; exports.stripChatAttachmentMarkdown = _chunkCZITXP77cjs.stripChatAttachmentMarkdown; exports.stripSameOriginToPath = _chunkCZITXP77cjs.stripSameOriginToPath; exports.transformEventToProgram = _chunkCZITXP77cjs.transformEventToProgram; exports.transformPodcastToProgram = _chunkCZITXP77cjs.transformPodcastToProgram; exports.transformWebinarToProgram = _chunkCZITXP77cjs.transformWebinarToProgram; exports.useChat = _chunkCZITXP77cjs.useChat; exports.useChatAttachmentImageGallery = _chunkCZITXP77cjs.useChatAttachmentImageGallery; exports.useChatAttachments = _chunkCZITXP77cjs.useChatAttachments; exports.useChatCardItem = _chunkCZITXP77cjs.useChatCardItem; exports.useChatIdentity = _chunkCZITXP77cjs.useChatIdentity; exports.useChunkCatchup = _chunkCZITXP77cjs.useChunkCatchup; exports.useCloseOnNavigation = _chunkCZITXP77cjs.useCloseOnNavigation; exports.useCollapsible = _chunkCZITXP77cjs.useCollapsible; exports.useEmbeddedChat = _chunkCZITXP77cjs.useSseChatAdapter; exports.useJetStreamDialogSubscription = _chunkCZITXP77cjs.useJetStreamDialogSubscription; exports.useNatsChatAdapter = _chunkCZITXP77cjs.useNatsChatAdapter; exports.useNatsDialogSubscription = _chunkCZITXP77cjs.useNatsDialogSubscription; exports.useProxiedImageUrl = _chunkCZITXP77cjs.useProxiedImageUrl; exports.useRealtimeChunkProcessor = _chunkCZITXP77cjs.useRealtimeChunkProcessor; exports.useSSE = _chunkCZITXP77cjs.useSSE; exports.useSlashCommandRegistry = _chunkCZITXP77cjs.useSlashCommandRegistry; exports.useSlashCommands = _chunkCZITXP77cjs.useSlashCommands; exports.useSseChatAdapter = _chunkCZITXP77cjs.useSseChatAdapter; exports.useUnifiedChat = _chunkCZITXP77cjs.useUnifiedChat;
464
454
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/chat/index.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,oneAAC","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/chat/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/chat/index.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ,YAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,ytdAAC","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/chat/index.cjs"}
@@ -124,7 +124,6 @@ import {
124
124
  SCROLL_ANCHOR_WIRE_KEY,
125
125
  SOURCE_ICON_NAMES,
126
126
  SOURCE_LABELS_BY_TABLE,
127
- SYNTHETIC_REALTIME_ID_PREFIXES,
128
127
  SlackMessageCard,
129
128
  SlackMessageCardSkeleton,
130
129
  SlashCommandSuggestions,
@@ -144,7 +143,6 @@ import {
144
143
  chatChipClass,
145
144
  clearEmbedProxyAuth,
146
145
  clickupTaskUrl,
147
- computeHistoryPrepend,
148
146
  computeIsNewTab,
149
147
  createMessageSegmentAccumulator,
150
148
  decideNewTab,
@@ -160,7 +158,6 @@ import {
160
158
  extractTextFromChunk,
161
159
  fetchSlashCommands,
162
160
  flattenAssistantContent,
163
- flattenMessagePagesChronological,
164
161
  formatChatAttachmentMarkdownForBubble,
165
162
  formatInvestorUpdatePeriod,
166
163
  formatSingularLookupInvocation,
@@ -180,8 +177,6 @@ import {
180
177
  isMetadataChunk,
181
178
  isModifierClick,
182
179
  isStructuredContent,
183
- maxPersistedStreamSeq,
184
- mergeHistoryWithRealtime,
185
180
  newTabAnchorAttrs,
186
181
  normalizeContent,
187
182
  normalizeIconKey,
@@ -221,16 +216,16 @@ import {
221
216
  useSlashCommands,
222
217
  useSseChatAdapter,
223
218
  useUnifiedChat
224
- } from "../../chunk-M7DPUWAL.js";
219
+ } from "../../chunk-FRRMXLU5.js";
220
+ import "../../chunk-UECRKCKH.js";
225
221
  import "../../chunk-4YKGXZ7W.js";
222
+ import "../../chunk-MJNXIEV2.js";
226
223
  import "../../chunk-LXC6P2EO.js";
227
224
  import "../../chunk-EL5YVPD5.js";
228
- import "../../chunk-LJGBFD52.js";
225
+ import "../../chunk-PLJLE4A4.js";
226
+ import "../../chunk-VAUI3CND.js";
229
227
  import "../../chunk-AGU44B7B.js";
230
228
  import "../../chunk-OHPI2HRK.js";
231
- import "../../chunk-UECRKCKH.js";
232
- import "../../chunk-MJNXIEV2.js";
233
- import "../../chunk-PLJLE4A4.js";
234
229
  import "../../chunk-265KKBV2.js";
235
230
  import "../../chunk-XTCBRQN2.js";
236
231
  import "../../chunk-4WZOFD46.js";
@@ -362,7 +357,6 @@ export {
362
357
  SCROLL_ANCHOR_WIRE_KEY,
363
358
  SOURCE_ICON_NAMES,
364
359
  SOURCE_LABELS_BY_TABLE,
365
- SYNTHETIC_REALTIME_ID_PREFIXES,
366
360
  SlackMessageCard,
367
361
  SlackMessageCardSkeleton,
368
362
  SlashCommandSuggestions,
@@ -383,7 +377,6 @@ export {
383
377
  chatChipClass,
384
378
  clearEmbedProxyAuth as clearChatProxyAuth,
385
379
  clickupTaskUrl,
386
- computeHistoryPrepend,
387
380
  computeIsNewTab,
388
381
  createMessageSegmentAccumulator,
389
382
  decideNewTab,
@@ -398,7 +391,6 @@ export {
398
391
  extractTextFromChunk,
399
392
  fetchSlashCommands,
400
393
  flattenAssistantContent,
401
- flattenMessagePagesChronological,
402
394
  formatChatAttachmentMarkdownForBubble,
403
395
  formatInvestorUpdatePeriod,
404
396
  formatSingularLookupInvocation,
@@ -418,8 +410,6 @@ export {
418
410
  isMetadataChunk,
419
411
  isModifierClick,
420
412
  isStructuredContent,
421
- maxPersistedStreamSeq,
422
- mergeHistoryWithRealtime,
423
413
  newTabAnchorAttrs,
424
414
  normalizeContent,
425
415
  normalizeIconKey,
@@ -1,23 +1,8 @@
1
1
  /**
2
- * ContentRef — the unified link/embed shape stored in JSONB columns
3
- * across investor updates, performance baselines, and any other entity
4
- * that surfaces "related content" rails.
5
- *
6
- * Lifted from `lib/data/investor-update-utils-shared.ts` in the hub
7
- * (the server-side data utils in the same file stay hub-side; only the
8
- * TYPE moves here).
2
+ * RELOCATED — the canonical `ContentRef` now lives at `src/types/content-ref.ts`
3
+ * (server-safe home, shared by the related-content rail + chat entities).
4
+ * This stub keeps the chat entities barrel + `entities/investor-update.ts`
5
+ * compiling unchanged. One definition package-wide.
9
6
  */
10
- export interface ContentRef {
11
- type: string;
12
- id: string;
13
- slug: string;
14
- url: string;
15
- targetPlatform?: string | null;
16
- title: string;
17
- summary?: string;
18
- image_url?: string;
19
- image_bg_color?: string;
20
- visibility: 'public' | 'internal';
21
- display_order: number;
22
- }
7
+ export type { ContentRef, ContentRefWithReason } from '../../../../types/content-ref';
23
8
  //# sourceMappingURL=content-ref.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-ref.d.ts","sourceRoot":"","sources":["../../../../../src/components/chat/types/entities/content-ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"content-ref.d.ts","sourceRoot":"","sources":["../../../../../src/components/chat/types/entities/content-ref.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -6,7 +6,6 @@ export { parseChunkToAction, isControlChunk, isErrorChunk, isMetadataChunk, extr
6
6
  export { MessageSegmentAccumulator, createMessageSegmentAccumulator, type AccumulatorCallbacks, } from './message-segment-accumulator';
7
7
  export { processHistoricalMessages, extractErrorMessages, processHistoricalMessagesWithErrors, } from './process-historical-messages';
8
8
  export { extractIncompleteMessageState, } from './extract-incomplete-message-state';
9
- export { mergeHistoryWithRealtime, computeHistoryPrepend, flattenMessagePagesChronological, maxPersistedStreamSeq, SYNTHETIC_REALTIME_ID_PREFIXES, type MergeableChatMessage, type HistoryMergeInput, type HistoryPrependResult, } from './history-merge';
10
9
  export { getCommandText } from './tool-call-helpers';
11
10
  export { CHIP_ACTION_BUTTON_CLASS } from './chip-action-class';
12
11
  export { chatChipClass, type ChipClassOptions } from './chip-styles';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/utils/index.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkZ6GGYZDRcjs = require('../../chunk-Z6GGYZDR.cjs');
5
- require('../../chunk-EPXROXYC.cjs');
4
+ var _chunkDUZBTUXFcjs = require('../../chunk-DUZBTUXF.cjs');
5
+ require('../../chunk-CZITXP77.cjs');
6
+ require('../../chunk-27VVOBDB.cjs');
6
7
  require('../../chunk-MEAR2WHS.cjs');
8
+ require('../../chunk-27APPAJN.cjs');
7
9
  require('../../chunk-XL4V2PYG.cjs');
8
10
  require('../../chunk-BZFW3FOF.cjs');
9
- require('../../chunk-FSS2MIEA.cjs');
11
+ require('../../chunk-G7UE6RKV.cjs');
12
+ require('../../chunk-SGJBUL2Y.cjs');
10
13
  require('../../chunk-GRTZ23GL.cjs');
11
14
  require('../../chunk-WBR7H6E3.cjs');
12
- require('../../chunk-27VVOBDB.cjs');
13
- require('../../chunk-27APPAJN.cjs');
14
- require('../../chunk-G7UE6RKV.cjs');
15
15
  require('../../chunk-Z4IBEIWD.cjs');
16
16
  require('../../chunk-FIG2RKZF.cjs');
17
17
  require('../../chunk-C6ASEPZL.cjs');
@@ -21,5 +21,5 @@ require('../../chunk-OZ3GH6OQ.cjs');
21
21
  require('../../chunk-VRHGVLSL.cjs');
22
22
 
23
23
 
24
- exports.ContactForm = _chunkZ6GGYZDRcjs.ContactForm;
24
+ exports.ContactForm = _chunkDUZBTUXFcjs.ContactForm;
25
25
  //# sourceMappingURL=index.cjs.map
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import {
3
3
  ContactForm
4
- } from "../../chunk-P5C732SC.js";
5
- import "../../chunk-M7DPUWAL.js";
4
+ } from "../../chunk-7ZHFCEJH.js";
5
+ import "../../chunk-FRRMXLU5.js";
6
+ import "../../chunk-UECRKCKH.js";
6
7
  import "../../chunk-4YKGXZ7W.js";
8
+ import "../../chunk-MJNXIEV2.js";
7
9
  import "../../chunk-LXC6P2EO.js";
8
10
  import "../../chunk-EL5YVPD5.js";
9
- import "../../chunk-LJGBFD52.js";
11
+ import "../../chunk-PLJLE4A4.js";
12
+ import "../../chunk-VAUI3CND.js";
10
13
  import "../../chunk-AGU44B7B.js";
11
14
  import "../../chunk-OHPI2HRK.js";
12
- import "../../chunk-UECRKCKH.js";
13
- import "../../chunk-MJNXIEV2.js";
14
- import "../../chunk-PLJLE4A4.js";
15
15
  import "../../chunk-265KKBV2.js";
16
16
  import "../../chunk-XTCBRQN2.js";
17
17
  import "../../chunk-4WZOFD46.js";
@@ -23,6 +23,12 @@ export interface FaqSectionProps {
23
23
  /** Overrides for the JSON-LD's name/description/url. */
24
24
  jsonLd?: FaqSchemaOptions;
25
25
  className?: string;
26
+ /** Maps to /api/faqs `?count=` (the 5-tier fill target). Absent → param
27
+ * not sent (server default applies). */
28
+ minResults?: number;
29
+ /** Fetch-URL prefix for third-party embeds / reverse proxies
30
+ * ('' = same-origin relative). */
31
+ apiBaseUrl?: string;
26
32
  }
27
33
  /**
28
34
  * Generic, embeddable FAQ display surface.
@@ -36,5 +42,5 @@ export interface FaqSectionProps {
36
42
  * useSelfFetch reports `error:true` (logged once); in embedded mode (heading
37
43
  * === null) this component renders nothing so the host page isn't disfigured.
38
44
  */
39
- export declare function FaqSection({ initialFaqs, entityType, entityId, heading, emitJsonLd, jsonLd, className, }: FaqSectionProps): React.JSX.Element | null;
45
+ export declare function FaqSection({ initialFaqs, entityType, entityId, heading, emitJsonLd, jsonLd, className, minResults, apiBaseUrl, }: FaqSectionProps): React.JSX.Element | null;
40
46
  //# sourceMappingURL=faq-section.d.ts.map