@flamingo-stack/openframe-frontend-core 0.0.671 → 0.0.672

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 (108) hide show
  1. package/dist/chat-protocol/card-marker.d.ts +12 -0
  2. package/dist/chat-protocol/card-marker.d.ts.map +1 -1
  3. package/dist/chat-protocol/index.cjs +17 -0
  4. package/dist/chat-protocol/index.cjs.map +1 -1
  5. package/dist/chat-protocol/index.d.ts +1 -0
  6. package/dist/chat-protocol/index.d.ts.map +1 -1
  7. package/dist/chat-protocol/index.js +15 -1
  8. package/dist/chat-protocol/index.js.map +1 -1
  9. package/dist/{chunk-FUXUJSPP.cjs → chunk-3UDBK2YG.cjs} +1 -1
  10. package/dist/chunk-3UDBK2YG.cjs.map +1 -0
  11. package/dist/{chunk-NIYIK32F.js → chunk-42OVTTOM.js} +2 -2
  12. package/dist/{chunk-6C6UUOH4.js → chunk-4AZWVS7F.js} +6 -6
  13. package/dist/{chunk-FHTNCWIP.js → chunk-6S2KLT7O.js} +4 -4
  14. package/dist/{chunk-DUZEFACP.js → chunk-7KM34VWL.js} +2 -2
  15. package/dist/{chunk-SNNE34OP.js → chunk-AL4I5HHB.js} +5 -5
  16. package/dist/{chunk-PLG6LP7E.cjs → chunk-BODMICIH.cjs} +45 -45
  17. package/dist/{chunk-PLG6LP7E.cjs.map → chunk-BODMICIH.cjs.map} +1 -1
  18. package/dist/{chunk-SJZPKIW6.cjs → chunk-CBCETEB4.cjs} +10 -10
  19. package/dist/{chunk-SJZPKIW6.cjs.map → chunk-CBCETEB4.cjs.map} +1 -1
  20. package/dist/{chunk-PQ7YC5Y6.js → chunk-EKABOXNB.js} +3 -3
  21. package/dist/{chunk-YIDNSRPL.cjs → chunk-GV7R2NTS.cjs} +26 -26
  22. package/dist/{chunk-YIDNSRPL.cjs.map → chunk-GV7R2NTS.cjs.map} +1 -1
  23. package/dist/{chunk-II66XWU5.cjs → chunk-H54F476P.cjs} +3 -3
  24. package/dist/{chunk-II66XWU5.cjs.map → chunk-H54F476P.cjs.map} +1 -1
  25. package/dist/{chunk-BP542DGQ.cjs → chunk-HOEVEB7N.cjs} +22 -22
  26. package/dist/{chunk-BP542DGQ.cjs.map → chunk-HOEVEB7N.cjs.map} +1 -1
  27. package/dist/{chunk-OG2BNJ2Q.cjs → chunk-HVEX4BSC.cjs} +331 -331
  28. package/dist/{chunk-OG2BNJ2Q.cjs.map → chunk-HVEX4BSC.cjs.map} +1 -1
  29. package/dist/{chunk-RKUCK6MN.js → chunk-IBGHJLNT.js} +2 -2
  30. package/dist/{chunk-TLLTL6LB.js → chunk-JD4U7QMG.js} +1 -1
  31. package/dist/chunk-JD4U7QMG.js.map +1 -0
  32. package/dist/{chunk-GF5TSQ6C.cjs → chunk-JREG4T6K.cjs} +10 -10
  33. package/dist/{chunk-GF5TSQ6C.cjs.map → chunk-JREG4T6K.cjs.map} +1 -1
  34. package/dist/{chunk-OYMOG544.js → chunk-KSBDARII.js} +5 -5
  35. package/dist/{chunk-EIAVE6SE.cjs → chunk-NETIHUEY.cjs} +10 -10
  36. package/dist/{chunk-EIAVE6SE.cjs.map → chunk-NETIHUEY.cjs.map} +1 -1
  37. package/dist/{chunk-R22IA7MP.js → chunk-O5PYXQ6H.js} +3 -3
  38. package/dist/{chunk-DAGKBFZN.cjs → chunk-PSL2WBEO.cjs} +33 -33
  39. package/dist/{chunk-DAGKBFZN.cjs.map → chunk-PSL2WBEO.cjs.map} +1 -1
  40. package/dist/{chunk-G64BNLDO.js → chunk-PWPYCJ33.js} +2 -2
  41. package/dist/{chunk-DAWYS25M.cjs → chunk-RD3I5PBB.cjs} +15 -15
  42. package/dist/{chunk-DAWYS25M.cjs.map → chunk-RD3I5PBB.cjs.map} +1 -1
  43. package/dist/{chunk-XH4MRTZM.cjs → chunk-SNWAN52K.cjs} +5 -5
  44. package/dist/{chunk-XH4MRTZM.cjs.map → chunk-SNWAN52K.cjs.map} +1 -1
  45. package/dist/{chunk-UH3BL2OT.js → chunk-T3KXCOB2.js} +2 -2
  46. package/dist/{chunk-STLBB6PF.js → chunk-TFSGYKWG.js} +3 -3
  47. package/dist/{chunk-K3O4D7LW.js → chunk-TQPKNG2E.js} +3 -3
  48. package/dist/{chunk-XGXHHSDU.cjs → chunk-UOQRNZIB.cjs} +22 -22
  49. package/dist/{chunk-XGXHHSDU.cjs.map → chunk-UOQRNZIB.cjs.map} +1 -1
  50. package/dist/{chunk-YJWR7D6O.cjs → chunk-UUOBCUHW.cjs} +3 -3
  51. package/dist/{chunk-YJWR7D6O.cjs.map → chunk-UUOBCUHW.cjs.map} +1 -1
  52. package/dist/{chunk-T3ACDOVD.cjs → chunk-VZRVQEMT.cjs} +4 -4
  53. package/dist/{chunk-T3ACDOVD.cjs.map → chunk-VZRVQEMT.cjs.map} +1 -1
  54. package/dist/{chunk-4PVY4JJN.js → chunk-XDTU23P4.js} +3 -3
  55. package/dist/{chunk-FAJUQKWQ.cjs → chunk-XLJNYTUW.cjs} +71 -71
  56. package/dist/{chunk-FAJUQKWQ.cjs.map → chunk-XLJNYTUW.cjs.map} +1 -1
  57. package/dist/{chunk-IJIIL6WU.js → chunk-Z6E45TJM.js} +5 -5
  58. package/dist/components/case-studies/index.cjs +14 -14
  59. package/dist/components/case-studies/index.js +3 -3
  60. package/dist/components/chat/index.cjs +2 -2
  61. package/dist/components/chat/index.js +1 -1
  62. package/dist/components/contact/index.cjs +4 -4
  63. package/dist/components/contact/index.js +3 -3
  64. package/dist/components/docs/index.cjs +7 -7
  65. package/dist/components/docs/index.js +6 -6
  66. package/dist/components/embeds/index.cjs +4 -4
  67. package/dist/components/embeds/index.js +3 -3
  68. package/dist/components/faq/index.cjs +4 -4
  69. package/dist/components/faq/index.js +3 -3
  70. package/dist/components/features/index.cjs +3 -3
  71. package/dist/components/features/index.js +2 -2
  72. package/dist/components/help-center-pages/index.cjs +73 -73
  73. package/dist/components/help-center-pages/index.js +14 -14
  74. package/dist/components/index.cjs +39 -39
  75. package/dist/components/index.js +13 -13
  76. package/dist/components/meeting-scheduler/index.cjs +24 -24
  77. package/dist/components/meeting-scheduler/index.js +2 -2
  78. package/dist/components/navigation/index.cjs +6 -6
  79. package/dist/components/navigation/index.js +5 -5
  80. package/dist/components/onboarding-guides/index.cjs +6 -6
  81. package/dist/components/onboarding-guides/index.js +5 -5
  82. package/dist/components/tickets/index.cjs +7 -7
  83. package/dist/components/tickets/index.js +6 -6
  84. package/dist/components/ui/index.cjs +3 -3
  85. package/dist/components/ui/index.js +2 -2
  86. package/dist/index.cjs +7 -7
  87. package/dist/index.js +6 -6
  88. package/package.json +1 -1
  89. package/src/chat-protocol/__tests__/card-marker.test.ts +27 -1
  90. package/src/chat-protocol/card-marker.ts +24 -0
  91. package/src/chat-protocol/index.ts +3 -0
  92. package/dist/chunk-FUXUJSPP.cjs.map +0 -1
  93. package/dist/chunk-TLLTL6LB.js.map +0 -1
  94. /package/dist/{chunk-NIYIK32F.js.map → chunk-42OVTTOM.js.map} +0 -0
  95. /package/dist/{chunk-6C6UUOH4.js.map → chunk-4AZWVS7F.js.map} +0 -0
  96. /package/dist/{chunk-FHTNCWIP.js.map → chunk-6S2KLT7O.js.map} +0 -0
  97. /package/dist/{chunk-DUZEFACP.js.map → chunk-7KM34VWL.js.map} +0 -0
  98. /package/dist/{chunk-SNNE34OP.js.map → chunk-AL4I5HHB.js.map} +0 -0
  99. /package/dist/{chunk-PQ7YC5Y6.js.map → chunk-EKABOXNB.js.map} +0 -0
  100. /package/dist/{chunk-RKUCK6MN.js.map → chunk-IBGHJLNT.js.map} +0 -0
  101. /package/dist/{chunk-OYMOG544.js.map → chunk-KSBDARII.js.map} +0 -0
  102. /package/dist/{chunk-R22IA7MP.js.map → chunk-O5PYXQ6H.js.map} +0 -0
  103. /package/dist/{chunk-G64BNLDO.js.map → chunk-PWPYCJ33.js.map} +0 -0
  104. /package/dist/{chunk-UH3BL2OT.js.map → chunk-T3KXCOB2.js.map} +0 -0
  105. /package/dist/{chunk-STLBB6PF.js.map → chunk-TFSGYKWG.js.map} +0 -0
  106. /package/dist/{chunk-K3O4D7LW.js.map → chunk-TQPKNG2E.js.map} +0 -0
  107. /package/dist/{chunk-4PVY4JJN.js.map → chunk-XDTU23P4.js.map} +0 -0
  108. /package/dist/{chunk-IJIIL6WU.js.map → chunk-Z6E45TJM.js.map} +0 -0
@@ -38,3 +38,27 @@ export const CARD_REFERENCE = new RegExp(`^\\[card://(${CARD_TYPE}):(${CARD_ID})
38
38
  export function createCardMarkerScanner(): RegExp {
39
39
  return new RegExp(`\\[card://(${CARD_TYPE}):(${CARD_ID})[\\])]`, 'g');
40
40
  }
41
+
42
+ /** One `[card://<type>:<id>]` reference, split into its two halves. */
43
+ export interface CardReference {
44
+ type: string;
45
+ id: string;
46
+ }
47
+
48
+ /**
49
+ * Every card reference EMBEDDED in a text, in order of first appearance,
50
+ * each once. The server reads the references an answer cites through this
51
+ * (the hub's MCP `ask_guide` returns them as `cards[]`), so a host and the
52
+ * body renderer can never disagree about which markers a text carries.
53
+ */
54
+ export function extractCardReferences(text: string): CardReference[] {
55
+ const seen = new Set<string>();
56
+ const out: CardReference[] = [];
57
+ for (const match of text.matchAll(createCardMarkerScanner())) {
58
+ const key = `${match[1]}:${match[2]}`;
59
+ if (seen.has(key)) continue;
60
+ seen.add(key);
61
+ out.push({ type: match[1], id: match[2] });
62
+ }
63
+ return out;
64
+ }
@@ -23,3 +23,6 @@ export * from './ip-normalize';
23
23
  // forwarding above must be parsed IDENTICALLY on both sides of the seam.
24
24
  export * from './env-flag';
25
25
  export { isRecord, unwrapEnvelope } from './wire-narrow';
26
+ // The `[card://<type>:<id>]` grammar — the renderer's and the server's one
27
+ // definition, so a reference the hub emits is one the client expands.
28
+ export * from './card-marker';