admesh-ui-sdk 1.0.28 → 1.0.30

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 (89) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/CONVERSATIONAL_GUIDE.md +1 -1
  3. package/INTEGRATION_GUIDE.md +1 -1
  4. package/README.md +39 -78
  5. package/dist/admesh-ui-sdk.css +1 -1
  6. package/dist/components/AdMeshCompactCard.d.ts +5 -0
  7. package/dist/components/AdMeshCompactCard.d.ts.map +1 -0
  8. package/dist/components/AdMeshFollowup.d.ts +2 -2
  9. package/dist/components/AdMeshFollowup.d.ts.map +1 -1
  10. package/dist/components/AdMeshIntentAssistant.d.ts +5 -2
  11. package/dist/components/AdMeshIntentAssistant.d.ts.map +1 -1
  12. package/dist/components/AdMeshLayout.d.ts.map +1 -1
  13. package/dist/components/AdMeshRecommendations.d.ts +18 -9
  14. package/dist/components/AdMeshRecommendations.d.ts.map +1 -1
  15. package/dist/components/AdMeshTailAd.d.ts +7 -4
  16. package/dist/components/AdMeshTailAd.d.ts.map +1 -1
  17. package/dist/components/AdMeshViewabilityTracker.d.ts +2 -0
  18. package/dist/components/AdMeshViewabilityTracker.d.ts.map +1 -1
  19. package/dist/components/WeaveAdFormatContainer.d.ts +3 -2
  20. package/dist/components/WeaveAdFormatContainer.d.ts.map +1 -1
  21. package/dist/components/WeaveFallbackRecommendations.d.ts.map +1 -1
  22. package/dist/context/AdMeshContext.d.ts +21 -2
  23. package/dist/context/AdMeshContext.d.ts.map +1 -1
  24. package/dist/context/AdMeshProvider.d.ts +13 -4
  25. package/dist/context/AdMeshProvider.d.ts.map +1 -1
  26. package/dist/hooks/useAdMesh.d.ts +27 -4
  27. package/dist/hooks/useAdMesh.d.ts.map +1 -1
  28. package/dist/hooks/useWeaveAdFormat.d.ts +1 -1
  29. package/dist/index.d.ts +3 -5
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +94 -78
  32. package/dist/index.js.map +1 -1
  33. package/dist/index.mjs +4737 -4288
  34. package/dist/index.mjs.map +1 -1
  35. package/dist/publisherAssistantEmbed.d.ts +2 -0
  36. package/dist/publisherAssistantEmbed.d.ts.map +1 -0
  37. package/dist/sdk/AdMeshRenderer.d.ts +15 -7
  38. package/dist/sdk/AdMeshRenderer.d.ts.map +1 -1
  39. package/dist/sdk/AdMeshSDK.d.ts +48 -20
  40. package/dist/sdk/AdMeshSDK.d.ts.map +1 -1
  41. package/dist/sdk/AdMeshTracker.d.ts +1 -1
  42. package/dist/sdk/AdMeshTracker.d.ts.map +1 -1
  43. package/dist/sdk/WeaveResponseProcessor.d.ts +12 -12
  44. package/dist/sdk/WeaveResponseProcessor.d.ts.map +1 -1
  45. package/dist/types/index.d.ts +372 -375
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/package.json +2 -1
  48. package/dist/components/AdMeshBridgeFormat.d.ts +0 -15
  49. package/dist/components/AdMeshBridgeFormat.d.ts.map +0 -1
  50. package/dist/components/AdMeshEcommerceCards.d.ts +0 -88
  51. package/dist/components/AdMeshEcommerceCards.d.ts.map +0 -1
  52. package/dist/components/assistant-ui/assistant-modal.d.ts +0 -3
  53. package/dist/components/assistant-ui/assistant-modal.d.ts.map +0 -1
  54. package/dist/components/assistant-ui/attachment.d.ts +0 -5
  55. package/dist/components/assistant-ui/attachment.d.ts.map +0 -1
  56. package/dist/components/assistant-ui/markdown-text.d.ts +0 -2
  57. package/dist/components/assistant-ui/markdown-text.d.ts.map +0 -1
  58. package/dist/components/assistant-ui/thread.d.ts +0 -3
  59. package/dist/components/assistant-ui/thread.d.ts.map +0 -1
  60. package/dist/components/assistant-ui/tool-fallback.d.ts +0 -32
  61. package/dist/components/assistant-ui/tool-fallback.d.ts.map +0 -1
  62. package/dist/components/assistant-ui/tooltip-icon-button.d.ts +0 -8
  63. package/dist/components/assistant-ui/tooltip-icon-button.d.ts.map +0 -1
  64. package/dist/components/index.d.ts +0 -7
  65. package/dist/components/index.d.ts.map +0 -1
  66. package/dist/components/ui/avatar.d.ts +0 -7
  67. package/dist/components/ui/avatar.d.ts.map +0 -1
  68. package/dist/components/ui/button.d.ts +0 -12
  69. package/dist/components/ui/button.d.ts.map +0 -1
  70. package/dist/components/ui/collapsible.d.ts +0 -6
  71. package/dist/components/ui/collapsible.d.ts.map +0 -1
  72. package/dist/components/ui/dialog.d.ts +0 -20
  73. package/dist/components/ui/dialog.d.ts.map +0 -1
  74. package/dist/components/ui/tooltip.d.ts +0 -8
  75. package/dist/components/ui/tooltip.d.ts.map +0 -1
  76. package/dist/hooks/useAdMeshTracker.d.ts +0 -16
  77. package/dist/hooks/useAdMeshTracker.d.ts.map +0 -1
  78. package/dist/lib/utils.d.ts +0 -3
  79. package/dist/lib/utils.d.ts.map +0 -1
  80. package/dist/sdk/AdMeshSessionManager.d.ts +0 -41
  81. package/dist/sdk/AdMeshSessionManager.d.ts.map +0 -1
  82. package/dist/sdk/index.d.ts +0 -16
  83. package/dist/sdk/index.d.ts.map +0 -1
  84. package/dist/utils/disclosureUtils.d.ts +0 -53
  85. package/dist/utils/disclosureUtils.d.ts.map +0 -1
  86. package/dist/utils/themeUtils.d.ts +0 -37
  87. package/dist/utils/themeUtils.d.ts.map +0 -1
  88. package/dist/utils/themingSystem.d.ts +0 -83
  89. package/dist/utils/themingSystem.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -110,7 +110,7 @@ If you were using the deprecated Weave format pattern:
110
110
  - **WeaveAdFormatContainer component** - Recommended pattern for Weave Ad Format
111
111
  - Automatically detects AdMesh links in LLM responses
112
112
  - Fires exposure tracking for detected links
113
- - Adds [Ad] labels to links
113
+ - Adds Ad labels to links
114
114
  - Shows "Why this ad?" tooltip on hover
115
115
  - Conditionally renders fallback UI only when no links detected
116
116
 
@@ -310,7 +310,7 @@ disableViewabilityAnalytics(false);
310
310
  - **Weave Mode**: Automatic link detection and enhancement for organic LLM responses
311
311
  - **WeaveResponseProcessor**: New utility for scanning and processing AdMesh links in HTML/markdown content
312
312
  - **Multi-Domain Support**: Support for both `api.useadmesh.com` and `*.useadmesh.com` domains
313
- - **Automatic Label Enhancement**: Adds `[Ad]` labels to detected AdMesh links
313
+ - **Automatic Label Enhancement**: Adds `Ad` labels to detected AdMesh links
314
314
  - **Exposure Tracking**: Automatic pixel firing for detected links
315
315
  - **Streaming Response Support**: MutationObserver integration for detecting links in streaming responses
316
316
  - **npm Publication**: Package fully prepared for npm registry publication
@@ -385,7 +385,7 @@ const getRecommendations = async (userQuery, sessionId) => {
385
385
  headers: { 'Content-Type': 'application/json' },
386
386
  body: JSON.stringify({
387
387
  query: userQuery,
388
- session_id: sessionId,
388
+ sessionId,
389
389
  context: 'chat'
390
390
  })
391
391
  });
@@ -305,7 +305,7 @@ const handleProductClick = (adId, admeshLink) => {
305
305
  > **Important**: Individual components no longer show disclosures. Use AdMeshLayout for platform integration to ensure FTC compliance.
306
306
 
307
307
  ```jsx
308
- import { AdMeshProductCard, AdMeshEcommerceCards } from 'admesh-ui-sdk';
308
+ import { AdMeshProductCard, AdMeshTailAd } from 'admesh-ui-sdk';
309
309
 
310
310
  // Use individual cards (no disclosures - for internal use only)
311
311
  <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
package/README.md CHANGED
@@ -90,7 +90,7 @@ const sessionId = AdMeshSDK.createSession();
90
90
  await admesh.showRecommendations({
91
91
  query: userQuery,
92
92
  containerId: 'admesh-recommendations',
93
- session_id: sessionId
93
+ sessionId
94
94
  });
95
95
  ```
96
96
 
@@ -109,9 +109,8 @@ async function handleUserQuery(query: string, sessionId: string, messageId: stri
109
109
  await admesh.showRecommendations({
110
110
  query: query,
111
111
  containerId: 'admesh-recommendations',
112
- format: 'auto',
113
- session_id: sessionId,
114
- message_id: messageId
112
+ sessionId,
113
+ messageId
115
114
  });
116
115
  } catch (error) {
117
116
  console.error('Failed to fetch recommendations:', error);
@@ -135,7 +134,7 @@ The SDK is **stateless** regarding session management. Your platform is responsi
135
134
  - **Creating Sessions**: Use `AdMeshSDK.createSession()` to generate a session ID
136
135
  - **Creating Message IDs**: Use `AdMeshSDK.createMessageId(sessionId)` to generate message IDs
137
136
  - **Storing Sessions**: Store session IDs in your platform's storage (localStorage, database, etc.)
138
- - **Passing IDs to SDK**: Provide `session_id` and `message_id` when calling `showRecommendations()`
137
+ - **Passing IDs to SDK**: Provide `sessionId` and `messageId` when calling `showRecommendations()`
139
138
 
140
139
  ```typescript
141
140
  // Generate IDs on your platform
@@ -149,8 +148,8 @@ localStorage.setItem('admesh_session_id', sessionId);
149
148
  await admesh.showRecommendations({
150
149
  query: userQuery,
151
150
  containerId: 'admesh-recommendations',
152
- session_id: sessionId,
153
- message_id: messageId
151
+ sessionId,
152
+ messageId
154
153
  });
155
154
  ```
156
155
 
@@ -198,9 +197,8 @@ For custom styling needs, use the `showRecommendations()` method with the `theme
198
197
  await admesh.showRecommendations({
199
198
  query: 'best CRM for small business',
200
199
  containerId: 'recommendations',
201
- format: 'product',
202
- session_id: sessionId,
203
- message_id: messageId,
200
+ sessionId,
201
+ messageId,
204
202
  theme: {
205
203
  mode: 'dark',
206
204
  colors: {
@@ -324,7 +322,7 @@ Choose the right component for your use case:
324
322
  |-----------|----------|---------------|----------------------|------------------|
325
323
  | **AdMeshLayout** | All use cases | Auto-adaptive | ⭐ Easy | ✅ Yes |
326
324
  | **AdMeshProductCard** | Individual products | Single card | ⭐ Easy | ✅ Yes |
327
- | **AdMeshEcommerceCards** | Product carousels | Horizontal scroll | ⭐ Easy | ✅ Yes |
325
+ | **AdMeshTailAd** | Sponsored follow-up and product-rich tail ads | Inline/tail | ⭐ Easy | ✅ Yes |
328
326
 
329
327
  ## 🎯 AdMeshLayout
330
328
 
@@ -412,28 +410,23 @@ Individual product recommendation card with rich information display.
412
410
  - `showBadges` (boolean, default: true) - Whether to show product badges
413
411
  - `showMatchScore` (boolean, default: false) - Deprecated, match score removed from UI
414
412
 
415
- #### AdMeshEcommerceCards
416
- Horizontal scrolling product cards for ecommerce recommendations, similar to Google product search results.
413
+ #### AdMeshTailAd
414
+ Canonical sponsored recommendation component used for inline tail ads and product-rich responses.
417
415
 
418
416
  ```tsx
419
- <AdMeshEcommerceCards
420
- products={ecommerceProducts}
421
- title="Recommended Laptops"
422
- showPricing={true}
423
- showRatings={true}
424
- showBrand={true}
425
- cardWidth="md"
426
- maxCards={10}
427
- onProductClick={(product) => window.open(product.admesh_link || product.url)}
417
+ <AdMeshTailAd
418
+ recommendation={recommendation}
419
+ sessionId={sessionId}
420
+ onFollowupClick={(query) => onExecuteQuery(query)}
428
421
  />
429
422
  ```
430
423
 
431
424
  **Perfect for:**
432
- - Product search results
433
- - Ecommerce recommendations
434
- - Mixed AdMesh + Walmart/Amazon products
435
- - Google-style product carousels
436
- - Shopping comparison displays
425
+ - Inline sponsored answers
426
+ - Canonical `/aip/context` rendering
427
+ - Product-rich tail ads
428
+ - Sponsored follow-up suggestions
429
+ - Search and assistant integrations
437
430
 
438
431
  ### Summary Components
439
432
 
@@ -626,16 +619,6 @@ interface AdMeshRecommendation {
626
619
  height: number;
627
620
  };
628
621
  }>;
629
- product_logo?: { // Product logo
630
- url: string;
631
- storage_path: string;
632
- filename: string;
633
- content_type: string;
634
- dimensions: {
635
- width: number;
636
- height: number;
637
- };
638
- };
639
622
  feature_sections?: Array<{ // Feature sections for expandable units
640
623
  title: string;
641
624
  description: string;
@@ -653,27 +636,10 @@ interface AdMeshRecommendation {
653
636
  ### API Response Structure
654
637
 
655
638
  ```typescript
656
- interface AgentRecommendationResponse {
657
- session_id: string;
658
- intent: {
659
- goal: string;
660
- intent_group: string;
661
- purchase_intent: string;
662
- intent_type: string;
663
- layout_type: string;
664
- categories: string[];
665
- };
666
- response: {
667
- summary: string;
668
- recommendations: AdMeshRecommendation[];
669
- followup_suggestions: Array<{
670
- label: string;
671
- query: string;
672
- }>;
673
- layout_type: string;
674
- };
675
- tokens_used: number;
676
- model_used: string;
639
+ interface AdMeshRecommendationResponse {
640
+ sessionId: string;
641
+ messageId: string;
642
+ recommendations: PlatformResponse[];
677
643
  }
678
644
  ```
679
645
 
@@ -702,7 +668,7 @@ const recommendations: AdMeshRecommendation[] = [
702
668
  // Use with any ad unit
703
669
  {recommendations.map(rec => <AdMeshProductCard key={rec.ad_id} recommendation={rec} />)}
704
670
  <AdMeshLayout recommendations={recommendations} layout="auto" />
705
- <AdMeshEcommerceCards recommendations={recommendations} />
671
+ <AdMeshTailAd recommendation={recommendations[0]} />
706
672
  ```
707
673
 
708
674
  ## 🎯 Layout-Based Integration
@@ -719,7 +685,7 @@ const recommendations = [
719
685
  {
720
686
  product_id: "hubspot-crm",
721
687
  title: "HubSpot CRM",
722
- recommendation_description: "Perfect for remote teams with excellent collaboration features",
688
+ description: "Perfect for remote teams with excellent collaboration features",
723
689
  admesh_link: "https://useadmesh.com/track?ad_id=hubspot-123",
724
690
  categories: ["CRM", "Sales", "Marketing"],
725
691
  trust_score: 95.0,
@@ -736,7 +702,7 @@ function RecommendationDisplay() {
736
702
  <div className="recommendations-container">
737
703
  <AdMeshLayout
738
704
  response={{
739
- layout_type: 'auto',
705
+ layout: 'list',
740
706
  recommendations: recommendations
741
707
  }}
742
708
  />
@@ -1038,8 +1004,8 @@ Tracking is handled automatically by the SDK components:
1038
1004
 
1039
1005
  ```tsx
1040
1006
  // All components automatically track interactions via exposure/click URLs
1041
- <AdMeshEcommerceCards
1042
- brand={recommendation}
1007
+ <AdMeshTailAd
1008
+ recommendation={recommendation.recommendation}
1043
1009
  // Exposure tracking handled by AdMeshViewabilityTracker (fires exposure_url)
1044
1010
  // Click tracking handled by AdMeshLinkTracker (uses click_url/admesh_link)
1045
1011
  />
@@ -1091,14 +1057,12 @@ const client = new AdMesh({ apiKey: 'your-api-key' });
1091
1057
  async function getRecommendations(query: string) {
1092
1058
  const response = await client.recommend.getRecommendations({
1093
1059
  query,
1094
- format: 'auto'
1060
+ sessionId: AdMeshSDK.createSession(),
1061
+ messageId: AdMeshSDK.createMessageId()
1095
1062
  });
1096
1063
 
1097
1064
  return (
1098
- <AdMeshProductCard
1099
- recommendation={response.response?.recommendations?.[0]}
1100
- autoLayout={true}
1101
- />
1065
+ <AdMeshTailAd recommendation={response.recommendations?.[0]?.recommendation} />
1102
1066
  );
1103
1067
  }
1104
1068
 
@@ -1120,12 +1084,12 @@ function ChatApp() {
1120
1084
  // Add assistant response
1121
1085
  setMessages(prev => [...prev, {
1122
1086
  role: 'assistant',
1123
- content: response.response?.summary || 'Here are some recommendations...'
1087
+ content: response.summary || 'Here are some recommendations...'
1124
1088
  }]);
1125
1089
 
1126
1090
  // Show recommendations
1127
- if (response.response?.recommendations) {
1128
- setRecommendations(response.response.recommendations);
1091
+ if (response.recommendations) {
1092
+ setRecommendations(response.recommendations);
1129
1093
  }
1130
1094
  };
1131
1095
 
@@ -1170,12 +1134,9 @@ function MultiFormatDemo({ recommendations }: { recommendations: AdMeshRecommend
1170
1134
  layout="citation"
1171
1135
  />
1172
1136
 
1173
- {/* Ecommerce cards */}
1137
+ {/* Canonical tail ad */}
1174
1138
  {recommendations.length > 0 && (
1175
- <AdMeshEcommerceCards
1176
- recommendations={recommendations}
1177
- showPricing={true}
1178
- />
1139
+ <AdMeshTailAd recommendation={recommendations[0].recommendation} />
1179
1140
  )}
1180
1141
  </div>
1181
1142
  );
@@ -1472,9 +1433,9 @@ const recommendations = [{
1472
1433
  const MemoizedAdMeshProductCard = React.memo(AdMeshProductCard);
1473
1434
 
1474
1435
  // ✅ Lazy load components
1475
- const AdMeshEcommerceCards = React.lazy(() =>
1436
+ const AdMeshTailAd = React.lazy(() =>
1476
1437
  import('admesh-ui-sdk').then(module => ({
1477
- default: module.AdMeshEcommerceCards
1438
+ default: module.AdMeshTailAd
1478
1439
  }))
1479
1440
  );
1480
1441
  ```
@@ -1 +1 @@
1
- /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-1\/2,.top-\[50\%\]{top:50%}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-50{z-index:50}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.container{width:100%}.mx-auto{margin-inline:auto}.my-auto{margin-block:auto}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-full{width:100%;height:100%}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[80dvh\]{max-height:80dvh}.max-h-\[80vh\]{max-height:80vh}.min-h-screen{min-height:100vh}.w-\[305px\]{width:305px}.w-\[345px\]{width:345px}.w-\[385px\]{width:385px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-\(--thread-max-width\){max-width:var(--thread-max-width)}.max-w-\[85\%\]{max-width:85%}.max-w-\[305px\]{max-width:305px}.max-w-\[345px\]{max-width:345px}.max-w-\[385px\]{max-width:385px}.max-w-full{max-width:100%}.min-w-\[305px\]{min-width:305px}.min-w-\[345px\]{min-width:345px}.min-w-\[385px\]{min-width:385px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:--radix-tooltip-content-transform-origin}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.auto-rows-auto{grid-auto-rows:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[minmax\(72px\,1fr\)_auto\]{grid-template-columns:minmax(72px,1fr) auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.self-center{align-self:center}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.overscroll-contain{overscroll-behavior:contain}.scroll-smooth{scroll-behavior:smooth}.rounded-\[14px\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-none{border-radius:0}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.bg-\[\#E5E5E5\]{background-color:#e5e5e5}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.stroke-\[1\.5px\]{stroke-width:1.5px}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.text-center{text-align:center}.text-left{text-align:left}.text-\[0\.85em\]{font-size:.85em}.leading-none{--tw-leading:1;line-height:1}.break-words,.wrap-break-word{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#000\]{color:#000}.text-\[\#24A0ED\]{color:#24a0ed}.lowercase{text-transform:lowercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-\[0_4px_6px_-1px_rgba\(0\,0\,0\,0\.1\)\,0_2px_4px_-1px_rgba\(0\,0\,0\,0\.06\)\]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.delay-75{transition-delay:75ms}.duration-\(--animation-duration\){--tw-duration:var(--animation-duration);transition-duration:var(--animation-duration)}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[state\=closed\]\/trigger\:-rotate-90:is(:where(.group\/trigger)[data-state=closed] *){rotate:-90deg}.group-data-\[state\=open\]\/trigger\:rotate-0:is(:where(.group\/trigger)[data-state=open] *){rotate:none}.first\:border-t:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.last\:border-r:last-child{border-right-style:var(--tw-border-style);border-right-width:1px}.empty\:hidden:empty{display:none}@media(hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:text-\[\#24A0ED\]:hover{color:#24a0ed}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-75:hover{opacity:.75}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_10px_15px_-3px_rgba\(0\,0\,0\,0\.1\)\,0_4px_6px_-2px_rgba\(0\,0\,0\,0\.05\)\]:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-90:active{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:invisible:disabled{visibility:hidden}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[textarea\:focus-visible\]\:ring-2:has(:is(textarea:focus-visible)){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-floating\:absolute[data-floating]{position:absolute}.data-floating\:border[data-floating]{border-style:var(--tw-border-style);border-width:1px}.data-\[dragging\=true\]\:border-dashed[data-dragging=true]{--tw-border-style:dashed;border-style:dashed}.data-\[state\=closed\]\:pointer-events-none[data-state=closed]{pointer-events:none}.data-\[state\=closed\]\:scale-0[data-state=closed]{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[state\=closed\]\:scale-100[data-state=closed]{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[state\=closed\]\:-rotate-90[data-state=closed]{rotate:-90deg}.data-\[state\=closed\]\:rotate-0[data-state=closed]{rotate:none}.data-\[state\=closed\]\:duration-\(--animation-duration\)[data-state=closed]{--tw-duration:var(--animation-duration);transition-duration:var(--animation-duration)}.data-\[state\=open\]\:scale-0[data-state=open]{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[state\=open\]\:scale-100[data-state=open]{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\[state\=open\]\:rotate-0[data-state=open]{rotate:none}.data-\[state\=open\]\:rotate-90[data-state=open]{rotate:90deg}.data-\[state\=open\]\:duration-\(--animation-duration\)[data-state=open]{--tw-duration:var(--animation-duration);transition-duration:var(--animation-duration)}.nth-\[n\+3\]\:hidden:nth-child(n+3){display:none}@media(prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}}@media(prefers-color-scheme:dark){.dark\:bg-\[\#262626\]{background-color:#262626}.dark\:stroke-\[2\.5px\]{stroke-width:2.5px}.dark\:text-\[\#FFF\]{color:#fff}.dark\:shadow-\[0_4px_6px_-1px_rgba\(0\,0\,0\,0\.3\)\,0_2px_4px_-1px_rgba\(0\,0\,0\,0\.2\)\]{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000004d),0 2px 4px -1px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media(hover:hover){.dark\:hover\:shadow-\[0_10px_15px_-3px_rgba\(0\,0\,0\,0\.4\)\,0_4px_6px_-2px_rgba\(0\,0\,0\,0\.3\)\]:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0006),0 4px 6px -2px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\[align\=center\]\]\:text-center[align=center]{text-align:center}.\[\[align\=right\]\]\:text-right[align=right]{text-align:right}.\[\&\:where\(\>\*\)\]\:col-start-2:where(){grid-column-start:2}.\[\&\>\.aui-thread-root\]\:bg-inherit>.aui-thread-root{background-color:inherit}.\[\&\>a\]\:no-underline>a{text-decoration-line:none}.\[\&\>button\]\:rounded-full>button{border-radius:3.40282e38px}.\[\&\>button\]\:opacity-100>button{opacity:1}.\[\&\>button\]\:ring-0\!>button{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.admesh-component{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.prose{color:inherit!important}.prose p{margin-bottom:1rem!important;line-height:1.6!important}.prose strong{color:inherit!important;font-weight:600!important}.prose ul,.prose ol{margin-bottom:1rem!important;padding-left:1.5rem!important}.prose li{margin-bottom:.5rem!important}.prose h2{margin-top:1.5rem!important;margin-bottom:1rem!important;font-size:1.25rem!important;font-weight:600!important}.prose h3{margin-top:1rem!important;margin-bottom:.75rem!important;font-size:1.125rem!important;font-weight:600!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
1
+ /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.z-10{z-index:10}.container{width:100%}.mx-auto{margin-inline:auto}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[280px\]{max-height:280px}.min-h-screen{min-height:100vh}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-\[85\%\]{max-width:85%}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[1\.5rem\]{border-radius:1.5rem}.rounded-\[1\.75rem\]{border-radius:1.75rem}.rounded-\[2rem\]{border-radius:2rem}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.bg-\[\#E5E5E5\]{background-color:#e5e5e5}.object-cover{-o-object-fit:cover;object-fit:cover}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.whitespace-nowrap{white-space:nowrap}.text-\[\#000\]{color:#000}.text-\[\#24A0ED\]{color:#24a0ed}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}@media(hover:hover){.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-\[1\.01\]:hover{scale:1.01}.hover\:text-\[\#24A0ED\]:hover{color:#24a0ed}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\:scale-\[0\.99\]:active{scale:.99}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media(prefers-color-scheme:dark){.dark\:bg-\[\#262626\]{background-color:#262626}.dark\:text-\[\#FFF\]{color:#fff}}.admesh-component{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.prose{color:inherit!important}.prose p{margin-bottom:1rem!important;line-height:1.6!important}.prose strong{color:inherit!important;font-weight:600!important}.prose ul,.prose ol{margin-bottom:1rem!important;padding-left:1.5rem!important}.prose li{margin-bottom:.5rem!important}.prose h2{margin-top:1.5rem!important;margin-bottom:1rem!important;font-size:1.25rem!important;font-weight:600!important}.prose h3{margin-top:1rem!important;margin-bottom:.75rem!important;font-size:1.125rem!important;font-weight:600!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
@@ -0,0 +1,5 @@
1
+ import { default as React } from 'react';
2
+ import { AdMeshTailAdProps } from './AdMeshTailAd';
3
+ export declare const AdMeshCompactCard: React.FC<AdMeshTailAdProps>;
4
+ export default AdMeshCompactCard;
5
+ //# sourceMappingURL=AdMeshCompactCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdMeshCompactCard.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshCompactCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAqDxD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAmgBzD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { default as React } from 'react';
2
- import { AdMeshRecommendation, AdMeshTheme } from '../types/index';
2
+ import { PlatformResponse, AdMeshTheme } from '../types/index';
3
3
  import { AdMeshSDK } from '../sdk/AdMeshSDK';
4
4
  export interface AdMeshFollowupProps {
5
- recommendation: AdMeshRecommendation;
5
+ recommendation: PlatformResponse;
6
6
  theme?: AdMeshTheme;
7
7
  sdk: AdMeshSDK;
8
8
  sessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AdMeshFollowup.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshFollowup.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,oBAAoB,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAoBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwFxD,CAAC"}
1
+ {"version":3,"file":"AdMeshFollowup.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshFollowup.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,gBAAgB,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAoBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAgGxD,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import { default as React } from 'react';
2
- import { AdMeshRecommendation, AdMeshTheme } from '../types/index';
2
+ import { PlatformResponse, AdMeshTheme } from '../types/index';
3
3
  export interface Suggestion {
4
4
  id: string;
5
5
  text: string;
6
6
  type: 'product' | 'comparison' | 'information' | 'action';
7
7
  is_sponsored?: boolean;
8
- recommendation?: AdMeshRecommendation;
8
+ recommendation?: PlatformResponse;
9
9
  metadata?: Record<string, unknown>;
10
10
  }
11
11
  export interface AdMeshIntentAssistantProps {
@@ -13,6 +13,7 @@ export interface AdMeshIntentAssistantProps {
13
13
  open?: boolean;
14
14
  onOpenChange?: (open: boolean) => void;
15
15
  unstable_openOnRunStart?: boolean;
16
+ layout?: 'floating' | 'inline';
16
17
  position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
17
18
  size?: 'sm' | 'md' | 'lg' | 'xl';
18
19
  theme?: AdMeshTheme;
@@ -29,8 +30,10 @@ export interface AdMeshIntentAssistantProps {
29
30
  showWelcomeMessage?: boolean;
30
31
  welcomeMessage?: string;
31
32
  placeholder?: string;
33
+ adsEnabled?: boolean;
32
34
  suggestions?: Suggestion[];
33
35
  maxSuggestions?: number;
36
+ onlyShowWhenSponsored?: boolean;
34
37
  onOpen?: () => void;
35
38
  onClose?: () => void;
36
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AdMeshIntentAssistant.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshIntentAssistant.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AAqG9F,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,0BAA0B;IAEzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAGlC,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IACrE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AA0CD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAiyBtE,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"AdMeshIntentAssistant.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshIntentAssistant.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAe,MAAM,gBAAgB,CAAC;AAoGjF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,0BAA0B;IAEzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAGlC,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC/B,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IACrE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAGhC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AA0CD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA+6BtE,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdMeshLayout.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,gBAAgB,CAAC;AAK3F,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6HpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"AdMeshLayout.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6DpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { PlatformResponse, DelegationActivationPayload } from '../types/index';
1
2
  export interface AdMeshRecommendationsProps {
2
3
  /** Optional callback when recommendations are shown */
3
4
  onRecommendationsShown?: (messageId: string) => void;
@@ -20,21 +21,23 @@ export interface AdMeshRecommendationsProps {
20
21
  * The backend requires a valid query parameter.
21
22
  */
22
23
  query?: string;
23
- /**
24
- * Callback to paste content to input field (for bridge format CTA button).
25
- * When provided, the bridge format will show a CTA button that pastes
26
- * the bridge_content into the input field when clicked.
27
- */
24
+ /** Legacy bridge CTA callback; prefer onStartDelegation. */
28
25
  onPasteToInput?: (content: string) => void;
26
+ /** Called when the SDK needs host approval before starting a delegated brand flow. */
27
+ onDelegationConsent?: (recommendation: PlatformResponse) => boolean | Promise<boolean>;
28
+ /** Called with normalized delegation metadata after consent/engagement. */
29
+ onDelegationActivated?: (payload: DelegationActivationPayload) => void | Promise<void>;
30
+ /** Called after consent is granted so the host can create/open the delegation session. */
31
+ onStartDelegation?: (recommendation: PlatformResponse) => void | Promise<void>;
29
32
  /**
30
33
  * Optional container ID for follow-up suggestions.
31
- * When provided and the recommendation includes a followup_query,
34
+ * When provided and the recommendation includes a followup_suggestion,
32
35
  * the SDK will automatically render the follow-up in this container.
33
36
  */
34
37
  followups_container_id?: string;
35
38
  /**
36
39
  * Callback to execute query when follow-up is selected (required for follow-up functionality).
37
- * When a user clicks on a follow-up suggestion, this callback is invoked with the followup_query.
40
+ * When a user clicks on a follow-up suggestion, this callback is invoked with the followup_suggestion.query.
38
41
  * This allows the platform to continue the conversation with the sponsored follow-up query.
39
42
  */
40
43
  onExecuteQuery?: (query: string) => void | Promise<void>;
@@ -66,7 +69,8 @@ export interface AdMeshRecommendationsProps {
66
69
  * />
67
70
  * ```
68
71
  */
69
- onFollowupDetected?: (followupQuery: string, followupEngagementUrl: string, recommendationId: string) => void;
72
+ onFollowupDetected?: (followupSuggestion: any, // Will be updated to proper type later
73
+ recommendationId: string) => void;
70
74
  /**
71
75
  * Signal indicating if the followup container is ready in the DOM.
72
76
  *
@@ -79,6 +83,11 @@ export interface AdMeshRecommendationsProps {
79
83
  * Useful for per-message or specific user tracking scenarios.
80
84
  */
81
85
  userId?: string;
86
+ /**
87
+ * Optional pre-fetched canonical platform result from an upstream backend flow.
88
+ * When provided, the component reuses this payload and skips calling /aip/context.
89
+ */
90
+ initialRecommendation?: PlatformResponse;
82
91
  }
83
92
  /**
84
93
  * AdMeshRecommendations - Citation/Product Format Recommendation Display
@@ -121,6 +130,6 @@ export interface AdMeshRecommendationsProps {
121
130
  * </AdMeshProvider>
122
131
  * ```
123
132
  */
124
- export declare const AdMeshRecommendations: ({ onRecommendationsShown, onError, messageId, query, onPasteToInput, followups_container_id: _followups_container_id, onExecuteQuery: _onExecuteQuery, onFollowupDetected, isContainerReady, userId: propUserId, }: AdMeshRecommendationsProps) => import("react/jsx-runtime").JSX.Element | null;
133
+ export declare const AdMeshRecommendations: ({ onRecommendationsShown, onError, messageId, query, userId: propUserId, initialRecommendation, followups_container_id, onPasteToInput, onDelegationConsent, onDelegationActivated, onStartDelegation, onExecuteQuery, onFollowupDetected, isContainerReady, }: AdMeshRecommendationsProps) => import("react/jsx-runtime").JSX.Element | null;
125
134
  export default AdMeshRecommendations;
126
135
  //# sourceMappingURL=AdMeshRecommendations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdMeshRecommendations.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshRecommendations.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAErD,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IAEH,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9G;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,qBAAqB,GAAI,oNAYnC,0BAA0B,mDA+Z5B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"AdMeshRecommendations.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshRecommendations.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAE5B,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,0BAA0B;IACzC,uDAAuD;IACvD,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAErD,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,4DAA4D;IAC5D,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvF,2EAA2E;IAC3E,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvF,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IAEH,kBAAkB,CAAC,EAAE,CACnB,kBAAkB,EAAE,GAAG,EAAE,uCAAuC;IAChE,gBAAgB,EAAE,MAAM,KACrB,IAAI,CAAC;IAEV;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,gBAAgB,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,qBAAqB,GAAI,gQAenC,0BAA0B,mDAihB5B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -1,13 +1,16 @@
1
1
  import { default as React } from 'react';
2
- import { AdMeshRecommendation, AdMeshTheme } from '../types/index';
2
+ import { PlatformResponse, AdMeshTheme, DelegationActivationPayload } from '../types/index';
3
3
  export interface AdMeshTailAdProps {
4
- summaryText?: string;
5
- recommendations: AdMeshRecommendation[];
4
+ recommendations: PlatformResponse[];
6
5
  theme?: AdMeshTheme;
7
6
  className?: string;
8
7
  style?: React.CSSProperties;
9
- onLinkClick?: (recommendation: AdMeshRecommendation) => void;
10
8
  sessionId?: string;
9
+ triggerExposureUrl?: boolean;
10
+ onDelegationConsent?: (recommendation: PlatformResponse) => boolean | Promise<boolean>;
11
+ onDelegationActivated?: (payload: DelegationActivationPayload) => void | Promise<void>;
12
+ onStartDelegation?: (recommendation: PlatformResponse) => void | Promise<void>;
13
+ onPasteToInput?: (content: string) => void;
11
14
  }
12
15
  export declare const AdMeshTailAd: React.FC<AdMeshTailAdProps>;
13
16
  export default AdMeshTailAd;
@@ -1 +1 @@
1
- {"version":3,"file":"AdMeshTailAd.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshTailAd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIxE,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+BD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6gBpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"AdMeshTailAd.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshTailAd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,gBAAgB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvF,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AA2GD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAusBpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -13,6 +13,8 @@ export interface AdMeshViewabilityTrackerProps {
13
13
  exposureUrl?: string;
14
14
  /** Session ID (for exposure tracking) */
15
15
  sessionId?: string;
16
+ /** Whether to fire exposure URL when ad becomes viewable (defaults to true) */
17
+ triggerExposureUrl?: boolean;
16
18
  /** Children to wrap with viewability tracking */
17
19
  children: React.ReactNode;
18
20
  /** Custom viewability tracker configuration */
@@ -1 +1 @@
1
- {"version":3,"file":"AdMeshViewabilityTracker.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshViewabilityTracker.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3C,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAmH5E,CAAC"}
1
+ {"version":3,"file":"AdMeshViewabilityTracker.d.ts","sourceRoot":"","sources":["../../src/components/AdMeshViewabilityTracker.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,WAAW,6BAA6B;IAC5C,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3C,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAoH5E,CAAC"}
@@ -27,7 +27,8 @@ export interface WeaveAdFormatContainerProps {
27
27
  /** Callback to execute query when follow-up is selected (required for follow-up functionality) */
28
28
  onExecuteQuery?: (query: string) => void | Promise<void>;
29
29
  /** Optional callback when a sponsored followup is detected */
30
- onFollowupDetected?: (followupQuery: string, followupEngagementUrl: string, recommendationId: string) => void;
30
+ onFollowupDetected?: (followupSuggestion: any, // Will be updated to proper type later
31
+ recommendationId: string) => void;
31
32
  /** Signal indicating if the followup container is ready in the DOM */
32
33
  isContainerReady?: boolean;
33
34
  }
@@ -37,7 +38,7 @@ export interface WeaveAdFormatContainerProps {
37
38
  * Wraps LLM response content and automatically:
38
39
  * - Detects AdMesh links in the content
39
40
  * - Fires exposure tracking for detected links
40
- * - Adds [Ad] labels to links
41
+ * - Adds Ad labels to links
41
42
  * - Shows "Why this ad?" tooltip on hover
42
43
  * - Provides context for WeaveFallbackRecommendations component
43
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"WeaveAdFormatContainer.d.ts","sourceRoot":"","sources":["../../src/components/WeaveAdFormatContainer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAwOxE,MAAM,WAAW,2BAA2B;IAC1C,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAElB,0DAA0D;IAC1D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAEpC,uDAAuD;IACvD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE/B,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IAErD,0DAA0D;IAC1D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7C,mEAAmE;IACnE,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhF,sDAAsD;IACtD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,kGAAkG;IAClG,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9G,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CA+WxE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"WeaveAdFormatContainer.d.ts","sourceRoot":"","sources":["../../src/components/WeaveAdFormatContainer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAoOxE,MAAM,WAAW,2BAA2B;IAC1C,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAElB,0DAA0D;IAC1D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAEpC,uDAAuD;IACvD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE/B,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IAErD,0DAA0D;IAC1D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7C,mEAAmE;IACnE,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhF,sDAAsD;IACtD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,kGAAkG;IAClG,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,CACnB,kBAAkB,EAAE,GAAG,EAAE,uCAAuC;IAChE,gBAAgB,EAAE,MAAM,KACrB,IAAI,CAAC;IAEV,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAsOxE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WeaveFallbackRecommendations.d.ts","sourceRoot":"","sources":["../../src/components/WeaveFallbackRecommendations.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,MAAM,WAAW,iCAAiC;IAChD;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAE5B,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,GAAG,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,4BAA4B,EAAE,KAAK,CAAC,EAAE,CAAC,iCAAiC,CAmPpF,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"WeaveFallbackRecommendations.d.ts","sourceRoot":"","sources":["../../src/components/WeaveFallbackRecommendations.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,MAAM,WAAW,iCAAiC;IAChD;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAE5B,iCAAiC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,GAAG,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,4BAA4B,EAAE,KAAK,CAAC,EAAE,CAAC,iCAAiC,CAsNpF,CAAC;AAEF,eAAe,4BAA4B,CAAC"}