@cossistant/next 0.0.25 → 0.0.28

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 (98) hide show
  1. package/conversation-timeline.d.ts.map +1 -1
  2. package/conversation.d.ts +2 -0
  3. package/conversation.d.ts.map +1 -1
  4. package/events.d.ts +32 -0
  5. package/events.d.ts.map +1 -0
  6. package/handle.d.ts +63 -0
  7. package/handle.d.ts.map +1 -0
  8. package/identify-visitor2.d.ts +1 -0
  9. package/identify-visitor2.d.ts.map +1 -1
  10. package/index.d.ts +7 -4
  11. package/index.js +3 -3
  12. package/index2.d.ts +1 -0
  13. package/index2.parts.d.ts +2 -1
  14. package/index4.d.ts +2 -1
  15. package/index7.d.ts +1 -70
  16. package/index8.d.ts +239 -3
  17. package/index8.d.ts.map +1 -0
  18. package/index9.d.ts +4 -0
  19. package/keys.d.ts +2 -0
  20. package/keys.d.ts.map +1 -1
  21. package/merge-refs.d.ts +1 -0
  22. package/multimodal-input.d.ts +2 -2
  23. package/multimodal-input.d.ts.map +1 -1
  24. package/package.json +2 -2
  25. package/primitives/index.d.ts +3 -2
  26. package/primitives/index.js +2 -2
  27. package/provider2.d.ts +2 -0
  28. package/provider2.d.ts.map +1 -1
  29. package/router.d.ts +1 -0
  30. package/router.d.ts.map +1 -1
  31. package/router2.d.ts +20 -3
  32. package/router2.d.ts.map +1 -1
  33. package/seen-store.d.ts +2 -0
  34. package/seen-store.d.ts.map +1 -1
  35. package/slots.d.ts +18 -0
  36. package/slots.d.ts.map +1 -0
  37. package/support/index.d.ts +5 -3
  38. package/support/index.js +2 -2
  39. package/support-config2.d.ts +1 -0
  40. package/support-config2.d.ts.map +1 -1
  41. package/support-store.d.ts +42 -14
  42. package/support-store.d.ts.map +1 -1
  43. package/support.css +2 -2
  44. package/timeline-item-attachments.d.ts +65 -0
  45. package/timeline-item-attachments.d.ts.map +1 -0
  46. package/timeline-item-group.d.ts +1 -0
  47. package/timeline-item-group.d.ts.map +1 -1
  48. package/trigger.d.ts +91 -0
  49. package/trigger.d.ts.map +1 -0
  50. package/types.d.ts +75 -12
  51. package/types.d.ts.map +1 -1
  52. package/typing-indicator.d.ts +1 -0
  53. package/typing-indicator.d.ts.map +1 -1
  54. package/typing-store.d.ts +2 -0
  55. package/typing-store.d.ts.map +1 -1
  56. package/typing.d.ts +4 -1
  57. package/typing.d.ts.map +1 -1
  58. package/use-client-query.d.ts +8 -0
  59. package/use-client-query.d.ts.map +1 -1
  60. package/use-conversation-auto-seen.d.ts +2 -1
  61. package/use-conversation-auto-seen.d.ts.map +1 -1
  62. package/use-conversation-history-page.d.ts +2 -0
  63. package/use-conversation-history-page.d.ts.map +1 -1
  64. package/use-conversation-page.d.ts +1 -0
  65. package/use-conversation-page.d.ts.map +1 -1
  66. package/use-conversation-preview.d.ts +3 -1
  67. package/use-conversation-preview.d.ts.map +1 -1
  68. package/use-conversation-timeline-items.d.ts +2 -1
  69. package/use-conversation-timeline-items.d.ts.map +1 -1
  70. package/use-conversation-typing.d.ts +2 -0
  71. package/use-conversation-typing.d.ts.map +1 -1
  72. package/use-conversations.d.ts +2 -1
  73. package/use-conversations.d.ts.map +1 -1
  74. package/use-create-conversation.d.ts +2 -0
  75. package/use-create-conversation.d.ts.map +1 -1
  76. package/use-file-upload.d.ts +1 -0
  77. package/use-grouped-messages.d.ts +2 -1
  78. package/use-grouped-messages.d.ts.map +1 -1
  79. package/use-home-page.d.ts +2 -0
  80. package/use-home-page.d.ts.map +1 -1
  81. package/use-message-composer.d.ts +11 -0
  82. package/use-message-composer.d.ts.map +1 -1
  83. package/use-multimodal-input.d.ts.map +1 -1
  84. package/use-render-element.d.ts.map +1 -1
  85. package/use-rest-client.d.ts +2 -0
  86. package/use-rest-client.d.ts.map +1 -1
  87. package/use-send-message.d.ts +3 -1
  88. package/use-send-message.d.ts.map +1 -1
  89. package/use-visitor.d.ts +2 -0
  90. package/use-visitor.d.ts.map +1 -1
  91. package/utils/index.d.ts +1 -1
  92. package/websocket.d.ts +1 -0
  93. package/websocket.d.ts.map +1 -1
  94. package/window.d.ts +12 -1
  95. package/window.d.ts.map +1 -1
  96. package/bubble.d.ts +0 -29
  97. package/bubble.d.ts.map +0 -1
  98. package/index7.d.ts.map +0 -1
@@ -3,13 +3,14 @@ import { SupportConfig } from "../support-config2.js";
3
3
  import { Avatar } from "../avatar.js";
4
4
  import { AvatarFallback } from "../fallback.js";
5
5
  import { AvatarImage } from "../image.js";
6
- import { SupportBubble } from "../bubble.js";
7
6
  import { Button } from "../button.js";
8
7
  import { ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading } from "../conversation-timeline.js";
9
8
  import { FileInput, MultimodalInput, SupportInput } from "../multimodal-input.js";
10
9
  import { PageDefinition, Router, RouterProps } from "../router.js";
11
10
  import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "../timeline-item.js";
11
+ import { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments } from "../timeline-item-attachments.js";
12
12
  import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "../timeline-item-group.js";
13
+ import { SupportTrigger, TriggerProps, TriggerRenderProps } from "../trigger.js";
13
14
  import { SupportWindow } from "../window.js";
14
15
  import "../index4.js";
15
- export { Avatar, AvatarFallback, AvatarImage, SupportBubble as Bubble, Button, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, SupportInput as Input, MultimodalInput, type PageDefinition, Router, type RouterProps, TimelineItem, TimelineItemContent, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemTimestamp, TypingIndicator, type TypingIndicatorProps, type TypingParticipant, type TypingParticipantType, SupportWindow as Window };
16
+ export { Avatar, AvatarFallback, AvatarImage, Button, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, SupportInput as Input, MultimodalInput, type PageDefinition, Router, type RouterProps, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, SupportTrigger as Trigger, type TriggerProps, type TriggerRenderProps, TypingIndicator, type TypingIndicatorProps, type TypingParticipant, type TypingParticipantType, SupportWindow as Window, extractFileParts, extractImageParts, hasAttachments };
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
3
 
4
- import { Avatar, AvatarFallback, AvatarImage, Bubble, Button, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemContent, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemTimestamp, TypingIndicator, Window } from "@cossistant/react/primitives";
4
+ import { Avatar, AvatarFallback, AvatarImage, Button, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, Trigger, TypingIndicator, Window, extractFileParts, extractImageParts, hasAttachments } from "@cossistant/react/primitives";
5
5
 
6
- export { Avatar, AvatarFallback, AvatarImage, Bubble, Button, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemContent, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemTimestamp, TypingIndicator, Window };
6
+ export { Avatar, AvatarFallback, AvatarImage, Button, Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, Trigger, TypingIndicator, Window, extractFileParts, extractImageParts, hasAttachments };
package/provider2.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { CossistantClient } from "@cossistant/core";
2
+ import { DefaultMessage, PublicWebsiteResponse } from "@cossistant/types";
1
3
  import React from "react";
2
4
 
3
5
  //#region ../react/src/provider.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"provider2.d.ts","names":[],"sources":["../../react/src/provider.tsx"],"sourcesContent":[],"mappings":";;;AAgBY,KAAA,oBAAA,GAAoB;EACrB,QAAM,EAAN,KAAA,CAAM,SAAA;EAKE,WAAA,CAAA,EAAA,OAAA;EAKE,MAAA,CAAA,EAAA,MAAA;EAAK,KAAA,CAAA,EAAA,MAAA;EAId,SAAA,CAAA,EAAA,MAAA;EAEA,eAAA,CAAA,EAXO,cAWe,EAAA;EACxB,YAAA,CAAA,EAAA,MAAA,EAAA;EACQ,WAAA,CAAA,EAAA,OAAA;EAEc,WAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAKxB,cAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACC,SAAA,CAAA,EAAA,CAAA,KAAA,EAhBY,KAgBZ,EAAA,GAAA,IAAA;EAAgB,IAAA,CAAA,EAAA,QAAA,GAAA,QAAA;AAKvB,CAAA;AAIG,KArBO,uBAAA,GAA0B,oBAqBhB;AAAG,KAnBb,sBAAA,GAmBa;EAEV,OAAA,EApBL,qBAoBK,GAAA,IAAA;EAAZ,eAAA,EAnBe,cAmBf,EAAA;EAAW,YAAA,EAAA,MAAA,EAAA;EAwCF,kBAAe,EAAA,CAAA,QAAA,EAzDK,cAyDL,EAAA,EAAA,GAAA,IAAA;EAAG,eAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,EAAA,GAAA,IAAA;EACK,WAAA,EAAA,MAAA;EAAZ,cAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EACS,SAAA,EAAA,OAAA;EAAZ,KAAA,EAtDZ,KAsDY,GAAA,IAAA;EACT,MAAA,EAtDF,gBAsDE;EAAiB,MAAA,EAAA,OAAA;EAIf,IAAA,EAAA,GAAA,GAAA,IAAA;EAmRG,KAAA,EAAA,GAAA,GAAA,IAAA;EACf,MAAA,EAAA,GAAA,GAAA,IAAA;CACA;KAxUI,WAAA,GAAc,WAyUlB,CAzU8B,sBAyU9B,CAAA,SAAA,CAAA,CAAA;KAvUI,iBAAA,GAAoB,WAwUxB,CAAA,SAAA,CAAA,SAAA,IAAA,GAAA,SAAA,GAAA,SAAA,GAtUE,WAsUF,CAtUc,WAsUd,CAAA,SAAA,CAAA,CAAA,GAAA;EACA,MAAA,EAAA,MAAA,GAAA,IAAA;CACA;AACA,KAjSW,eAAA,GAAkB,sBAiS7B,GAAA;EACA,oBAAA,EAjSsB,WAiStB,CAjSkC,WAiSlC,CAAA,sBAAA,CAAA,CAAA,GAAA,EAAA;EACA,iBAAA,EAjSmB,WAiSnB,CAjS+B,WAiS/B,CAAA,mBAAA,CAAA,CAAA,GAAA,EAAA;EACA,OAAA,CAAA,EAjSU,iBAiSV;EACA,IAAA,EAAA,QAAA,GAAA,QAAA;CACA;AACE,cAhSU,cAgSV,EAhSwB,KAAA,CAAA,OAgSxB,CAhSwB,sBAgSxB,GAAA,SAAA,CAAA;;;AAwBH;;;;iBArCgB,eAAA;;;;;;;;;;;;;GAab,uBAAuB,KAAA,CAAM;;;;;iBAwBhB,UAAA,CAAA,GAAc"}
1
+ {"version":3,"file":"provider2.d.ts","names":[],"sources":["../../react/src/provider.tsx"],"sourcesContent":[],"mappings":";;;;;KAgBY,oBAAA;YACD,KAAA,CAAM;EADL,WAAA,CAAA,EAAA,OAAA;EACD,MAAM,CAAA,EAAA,MAAA;EAKE,KAAA,CAAA,EAAA,MAAA;EAKE,SAAA,CAAA,EAAA,MAAA;EAAK,eAAA,CAAA,EALP,cAKO,EAAA;EAId,YAAA,CAAA,EAAA,MAAA,EAAA;EAEA,WAAA,CAAA,EAAA,OAAA;EACF,WAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACQ,cAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAEc,SAAA,CAAA,EAAA,CAAA,KAAA,EAVX,KAUW,EAAA,GAAA,IAAA;EAKxB,IAAA,CAAA,EAAA,QAAA,GAAA,QAAA;CACC;AAAgB,KAZb,uBAAA,GAA0B,oBAYb;AAOpB,KAjBO,sBAAA,GAiBmB;EAE1B,OAAA,EAlBK,qBAkBY,GAAA,IAAA;EAAG,eAAA,EAjBP,cAiBO,EAAA;EAEV,YAAA,EAAA,MAAA,EAAA;EAAZ,kBAAA,EAAA,CAAA,QAAA,EAjB6B,cAiB7B,EAAA,EAAA,GAAA,IAAA;EAAW,eAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,EAAA,GAAA,IAAA;EA6CF,WAAA,EAAA,MAAe;EAAG,cAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EACK,SAAA,EAAA,OAAA;EAAZ,KAAA,EA1Df,KA0De,GAAA,IAAA;EACS,MAAA,EA1DvB,gBA0DuB;EAAZ,MAAA,EAAA,OAAA;EACT,IAAA,EAAA,GAAA,GAAA,IAAA;EAAiB,KAAA,EAAA,GAAA,GAAA,IAAA;EAIf,MAAA,EAAA,GAAA,GAAA,IAED;AA4RZ,CAAA;KAtVK,WAAA,GAAc,WAuVlB,CAvV8B,sBAuV9B,CAAA,SAAA,CAAA,CAAA;KArVI,iBAAA,GAAoB,WAsVxB,CAAA,SAAA,CAAA,SAAA,IAAA,GAAA,SAAA,GAAA,SAAA,GApVE,WAoVF,CApVc,WAoVd,CAAA,SAAA,CAAA,CAAA,GAAA;EACA,MAAA,EAAA,MAAA,GAAA,IAAA;CACA;AACA,KA1SW,eAAA,GAAkB,sBA0S7B,GAAA;EACA,oBAAA,EA1SsB,WA0StB,CA1SkC,WA0SlC,CAAA,sBAAA,CAAA,CAAA,GAAA,EAAA;EACA,iBAAA,EA1SmB,WA0SnB,CA1S+B,WA0S/B,CAAA,mBAAA,CAAA,CAAA,GAAA,EAAA;EACA,OAAA,CAAA,EA1SU,iBA0SV;EACA,IAAA,EAAA,QAAA,GAAA,QAAA;CACA;AACA,cAzSY,cAySZ,EAzS0B,KAAA,CAAA,OAyS1B,CAzS0B,sBAyS1B,GAAA,SAAA,CAAA;;;;;AA0BD;;iBArCgB,eAAA;;;;;;;;;;;;;GAab,uBAAuB,KAAA,CAAM;;;;;iBAwBhB,UAAA,CAAA,GAAc"}
package/router.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { RouteRegistry } from "@cossistant/core";
1
2
  import React from "react";
2
3
 
3
4
  //#region ../react/src/primitives/router.d.ts
package/router.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","names":[],"sources":["../../react/src/primitives/router.tsx"],"sourcesContent":[],"mappings":";;;KAIY,+BACK,sBAAsB;EAD3B,IAAA,EAGL,CAHK;EACK,SAAA,EAGL,KAAA,CAAM,aAHD,CAAA;IAAsB,MAAA,CAAA,EAGI,aAHJ,CAGkB,CAHlB,CAAA;EAEhC,CAAA,CAAA;CACoC;AAAc,KAI7C,WAAA,GAJ6C;EAA7C,IAAM,EAAA,MAKL,aALK;EAAa,MAAA,CAAA,EAMrB,aANqB,CAAA,MAMD,aANC,CAAA;EAInB,KAAA,EAGJ,cAHe,EAAA;EACV,QAAA,CAAA,EAGD,KAAA,CAAM,aAHL,CAAA;IACH,MAAA,CAAA,EAAA,OAAA;EAAoB,CAAA,CAAA;CACtB;;;AAgBR;;;;;;;;;;cAAa,QAAQ,KAAA,CAAM,GAAG"}
1
+ {"version":3,"file":"router.d.ts","names":[],"sources":["../../react/src/primitives/router.tsx"],"sourcesContent":[],"mappings":";;;;KAIY,+BACK,sBAAsB;QAEhC;EAHK,SAAA,EAIA,KAAA,CAAM,aAJQ,CAAA;IACT,MAAA,CAAA,EAG0B,aAH1B,CAGwC,CAHxC,CAAA;EAAsB,CAAA,CAAA;CAEhC;AACoC,KAI/B,WAAA,GAJ+B;EAAc,IAAA,EAAA,MAK5C,aAL4C;EAA7C,MAAM,CAAA,EAMR,aANQ,CAAA,MAMY,aANZ,CAAA;EAAa,KAAA,EAOvB,cAPuB,EAAA;EAInB,QAAA,CAAA,EAIA,KAAA,CAAM,aAJK,CAAA;IACV,MAAA,CAAA,EAAA,OAAA;EACH,CAAA,CAAA;CAAoB;;;;AAiB9B;;;;;;;;;cAAa,QAAQ,KAAA,CAAM,GAAG"}
package/router2.d.ts CHANGED
@@ -1,12 +1,29 @@
1
- import React from "react";
1
+ import { RouteRegistry } from "@cossistant/core";
2
+ import * as React$1 from "react";
2
3
 
3
4
  //#region ../react/src/support/router.d.ts
5
+
6
+ /**
7
+ * Type for custom pages that ensures they match RouteRegistry.
8
+ */
4
9
  type CustomPage<K extends keyof RouteRegistry = keyof RouteRegistry> = {
5
10
  name: K;
6
- component: React.ComponentType<{
11
+ component: React$1.ComponentType<{
12
+ params?: RouteRegistry[K];
13
+ }>;
14
+ };
15
+ type PageProps<K extends keyof RouteRegistry = keyof RouteRegistry> = {
16
+ /**
17
+ * The route name for this page.
18
+ */
19
+ name: K;
20
+ /**
21
+ * The component to render for this page.
22
+ */
23
+ component: React$1.ComponentType<{
7
24
  params?: RouteRegistry[K];
8
25
  }>;
9
26
  };
10
27
  //#endregion
11
- export { CustomPage };
28
+ export { CustomPage, PageProps };
12
29
  //# sourceMappingURL=router2.d.ts.map
package/router2.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"router2.d.ts","names":[],"sources":["../../react/src/support/router.tsx"],"sourcesContent":[],"mappings":";;;KAWY,2BAA2B,sBAAsB;EAAjD,IAAA,EACL,CADK;EAA2B,SAAA,EAE3B,KAAA,CAAM,aAFqB,CAAA;IAAsB,MAAA,CAAA,EAElB,aAFkB,CAEJ,CAFI,CAAA;EACtD,CAAA,CAAA;CACoC"}
1
+ {"version":3,"file":"router2.d.ts","names":[],"sources":["../../react/src/support/router.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAaA;AAAuC,KAA3B,UAA2B,CAAA,UAAA,MAAA,aAAA,GAAA,MAAsB,aAAtB,CAAA,GAAA;EAAsB,IAAA,EACtD,CADsD;EACtD,SAAA,EACK,OAAA,CAAM,aADX,CAAA;IACoC,MAAA,CAAA,EAAA,aAAA,CAAc,CAAd,CAAA;EAAc,CAAA,CAAA;CAA7C;KA4GA,0BAA0B,sBAAsB;;;;QAIrD;;;;aAIK,OAAA,CAAM;aAAyB,cAAc"}
package/seen-store.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { SeenActorType } from "@cossistant/core";
2
+
1
3
  //#region ../react/src/realtime/seen-store.d.ts
2
4
 
3
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"seen-store.d.ts","names":[],"sources":["../../react/src/realtime/seen-store.ts"],"sourcesContent":[],"mappings":";;;;;iBA6DgB,uBAAA,kCAEN;;;;iBAQM,sBAAA;;aAEJ;;cAEC;;;;;;iBAYG,0BAAA,QACR"}
1
+ {"version":3,"file":"seen-store.d.ts","names":[],"sources":["../../react/src/realtime/seen-store.ts"],"sourcesContent":[],"mappings":";;;;;;;iBA6DgB,uBAAA,kCAEN;;;;iBAQM,sBAAA;;aAEJ;;cAEC;;;;;;iBAYG,0BAAA,QACR"}
package/slots.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region ../react/src/support/context/slots.d.ts
4
+
5
+ type SlotProps = {
6
+ /**
7
+ * Content to render in the slot.
8
+ */
9
+ children: React$1.ReactNode;
10
+ /**
11
+ * When true, renders children directly without a wrapper.
12
+ * Useful when you want your component to receive all props.
13
+ */
14
+ asChild?: boolean;
15
+ };
16
+ //#endregion
17
+ export { SlotProps };
18
+ //# sourceMappingURL=slots.d.ts.map
package/slots.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slots.d.ts","names":[],"sources":["../../react/src/support/context/slots.tsx"],"sourcesContent":[],"mappings":";;;;KA8GY,SAAA;;;;YAID,OAAA,CAAM"}
@@ -1,4 +1,6 @@
1
+ import { CustomPage } from "../router2.js";
2
+ import { Align, ContentProps, RootProps, Side } from "../types.js";
1
3
  import { WebSocketContextValue, WebSocketProvider, useWebSocket } from "../websocket.js";
2
- import { useSupportConfig, useSupportStore } from "../support-store.js";
3
- import { Support, SupportProps } from "../index7.js";
4
- export { Support, type SupportProps, type WebSocketContextValue, WebSocketProvider, useSupportConfig, useSupportStore, useWebSocket };
4
+ import { useSupportConfig, useSupportNavigation, useSupportStore } from "../support-store.js";
5
+ import { Support, SupportProps } from "../index8.js";
6
+ export { type Align, type ContentProps, type CustomPage, type RootProps, type Side, Support, type SupportProps, type WebSocketContextValue, WebSocketProvider, useSupportConfig, useSupportNavigation, useSupportStore, useWebSocket };
package/support/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
3
 
4
- import { Support, WebSocketProvider, useSupportConfig, useSupportStore, useWebSocket } from "@cossistant/react/support";
4
+ import { Support, WebSocketProvider, useSupportConfig, useSupportNavigation, useSupportStore, useWebSocket } from "@cossistant/react/support";
5
5
 
6
- export { Support, WebSocketProvider, useSupportConfig, useSupportStore, useWebSocket };
6
+ export { Support, WebSocketProvider, useSupportConfig, useSupportNavigation, useSupportStore, useWebSocket };
@@ -1,3 +1,4 @@
1
+ import { DefaultMessage } from "@cossistant/types";
1
2
  import * as React$1 from "react";
2
3
 
3
4
  //#region ../react/src/support-config.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"support-config2.d.ts","names":[],"sources":["../../react/src/support-config.tsx"],"sourcesContent":[],"mappings":";;;KAMY,kBAAA;EAAA,eAAA,CAAA,EACO,cAAA,EAAA;EAON,YAAA,CAAA,EAAA,MAoBZ,EAAA;;;;;AAjByC,cAH7B,aAG6B,EAAA;;;;KAAvC,qBAAqB,OAAA,CAAM"}
1
+ {"version":3,"file":"support-config2.d.ts","names":[],"sources":["../../react/src/support-config.tsx"],"sourcesContent":[],"mappings":";;;;KAMY,kBAAA;oBACO;EADP,YAAA,CAAA,EAAA,MAAkB,EAAA;AAQ9B,CAAA;;;;AAGwB,cAHX,aAGiB,EAAA;EAAY,CAAA;IAAA,eAAA;IAAA;EAAA,CAAA,EAAvC,kBAAuC,CAAA,EAAlB,OAAA,CAAM,YAAY,GAAA,IAAA"}
@@ -1,3 +1,6 @@
1
+ import * as _cossistant_core3 from "@cossistant/core";
2
+ import { SupportConfig, SupportStore, SupportStoreState } from "@cossistant/core";
3
+
1
4
  //#region ../react/src/support/store/support-store.d.ts
2
5
  type UseSupportStoreResult = SupportStoreState & Pick<SupportStore, "navigate" | "replace" | "goBack" | "open" | "close" | "toggle" | "updateConfig" | "reset">;
3
6
  /**
@@ -7,26 +10,51 @@ type UseSupportStoreResult = SupportStoreState & Pick<SupportStore, "navigate" |
7
10
  * const { isOpen, navigate, toggle } = useSupportStore();
8
11
  */
9
12
  declare function useSupportStore(): UseSupportStoreResult;
13
+ type UseSupportConfigResult = {
14
+ isOpen: boolean;
15
+ size: SupportConfig["size"];
16
+ open: () => void;
17
+ close: () => void;
18
+ toggle: () => void;
19
+ };
10
20
  /**
11
21
  * Access widget configuration (isOpen, size) and toggle helpers.
22
+ * Supports both controlled and uncontrolled modes.
23
+ *
24
+ * In controlled mode (when `open` prop is provided to Support),
25
+ * the `isOpen` state is driven by the prop, and `open`/`close`/`toggle`
26
+ * will call `onOpenChange` instead of updating internal state.
12
27
  *
13
28
  * @example
29
+ * // Uncontrolled (internal state)
14
30
  * const { isOpen, open, close, toggle } = useSupportConfig();
31
+ *
32
+ * @example
33
+ * // Controlled (external state via Support props)
34
+ * <Support open={isOpen} onOpenChange={setIsOpen}>
35
+ * <MyComponent />
36
+ * </Support>
15
37
  */
16
- declare const useSupportConfig: () => {
17
- open: () => void;
18
- close: () => void;
19
- toggle: () => void;
20
- size: "normal" | "larger";
21
- isOpen: boolean;
22
- content: {
23
- home?: {
24
- header?: string;
25
- subheader?: string;
26
- ctaLabel?: string;
27
- };
28
- };
38
+ declare const useSupportConfig: () => UseSupportConfigResult;
39
+ /**
40
+ * Access navigation state and routing methods.
41
+ *
42
+ * @example
43
+ * const { navigate, goBack, page, params } = useSupportNavigation();
44
+ */
45
+ declare const useSupportNavigation: () => {
46
+ current: _cossistant_core3.NavigationState<_cossistant_core3.RouteRegistry>;
47
+ page: "HOME" | "ARTICLES" | "CONVERSATION" | "CONVERSATION_HISTORY";
48
+ params: {
49
+ conversationId: string;
50
+ initialMessage?: string;
51
+ } | undefined;
52
+ previousPages: _cossistant_core3.NavigationState<_cossistant_core3.RouteRegistry>[];
53
+ navigate: (state: _cossistant_core3.NavigationState<_cossistant_core3.RouteRegistry>) => void;
54
+ replace: (state: _cossistant_core3.NavigationState<_cossistant_core3.RouteRegistry>) => void;
55
+ goBack: () => void;
56
+ canGoBack: boolean;
29
57
  };
30
58
  //#endregion
31
- export { useSupportConfig, useSupportStore };
59
+ export { UseSupportConfigResult, UseSupportStoreResult, useSupportConfig, useSupportNavigation, useSupportStore };
32
60
  //# sourceMappingURL=support-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"support-store.d.ts","names":[],"sources":["../../react/src/support/store/support-store.ts"],"sourcesContent":[],"mappings":";AA8CY,KAAA,qBAAA,GAAwB,iBAAH,GAChC,IADgC,CAE/B,YAF+B,EAAA,UAAA,GAAA,SAAA,GAAA,QAAA,GAAA,MAAA,GAAA,OAAA,GAAA,QAAA,GAAA,cAAA,GAAA,OAAA,CAAA;;;;;AAmBjC;AAyBA;iBAzBgB,eAAA,CAAA,GAAmB;;;;;;;cAyBtB"}
1
+ {"version":3,"file":"support-store.d.ts","names":[],"sources":["../../react/src/support/store/support-store.ts"],"sourcesContent":[],"mappings":";;;;KA+CY,qBAAA,GAAwB,oBACnC,KACC;;;AAFF;;;;AACK,iBAkBW,eAAA,CAAA,CAlBX,EAkB8B,qBAlB9B;AAkBW,KAmBJ,sBAAA,GAnBuB;EAmBvB,MAAA,EAAA,OAAA;EA0BC,IAAA,EAxBN,aAuEN,CAAA,MAAA,CAAA;EAQY,IAAA,EAAA,GAAA,GAAA,IAAA;EAiBZ,KAAA,EAAA,GAAA,GAAA,IAAA;;;;;;;;;;;;;;;;;;;;;cAxEY,wBAAuB;;;;;;;cAuDvB;6CAiBZ,iBAAA,CAAA,aAAA"}
package/support.css CHANGED
@@ -1,2 +1,2 @@
1
- /*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
2
- @layer base{.cossistant{scroll-behavior:smooth;color:var(--co-primary);color-scheme:normal;--co-font-sans:var(--co-theme-font-sans,"Geist","Inter",sans-serif);--co-font-mono:var(--co-theme-font-mono,"Geist Mono","Inter Mono",monospace);--co-radius:var(--co-theme-radius,.625rem);--co-background-base:var(--co-theme-background,oklch(99% 0 0));--co-foreground-base:var(--co-theme-foreground,oklch(20.5% 0 0));--co-popover-base:var(--co-theme-popover,var(--co-background-base));--co-popover-foreground-base:var(--co-theme-popover-foreground,var(--co-foreground-base));--co-primary-base:var(--co-theme-primary,oklch(14.5% 0 0));--co-primary-foreground-base:var(--co-theme-primary-foreground,oklch(98.5% 0 0));--co-secondary-base:var(--co-theme-secondary,oklch(97% 0 0));--co-secondary-foreground-base:var(--co-theme-secondary-foreground,oklch(14.5% 0 0));--co-border-base:var(--co-theme-border,oklch(92.2% 0 0));--co-input-base:var(--co-theme-input,oklch(92.2% 0 0));--co-ring-base:var(--co-theme-ring,var(--co-primary-base));--co-accent-base:var(--co-theme-accent,var(--co-primary-base));--co-accent-foreground-base:var(--co-theme-accent-foreground,var(--co-primary-foreground-base));--co-background-50-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-50-mix:color-mix(in oklch,var(--co-background-base)98%,var(--co-foreground-base))}}.cossistant{--co-background-100-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-100-mix:color-mix(in oklch,var(--co-background-base)97%,var(--co-foreground-base))}}.cossistant{--co-background-200-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-200-mix:color-mix(in oklch,var(--co-background-base)96%,var(--co-foreground-base))}}.cossistant{--co-background-300-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-300-mix:color-mix(in oklch,var(--co-background-base)95%,var(--co-foreground-base))}}.cossistant{--co-background-400-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-400-mix:color-mix(in oklch,var(--co-background-base)94%,var(--co-foreground-base))}}.cossistant{--co-background-500-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-500-mix:color-mix(in oklch,var(--co-background-base)93%,var(--co-foreground-base))}}.cossistant{--co-background-600-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-600-mix:color-mix(in oklch,var(--co-background-base)92%,var(--co-foreground-base))}}.cossistant{--co-muted-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-muted-mix:color-mix(in oklch,var(--co-background-base)85%,var(--co-foreground-base))}}.cossistant{--co-muted-foreground-mix:var(--co-foreground-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-muted-foreground-mix:color-mix(in oklch,var(--co-foreground-base)70%,white)}}.cossistant{--co-background:var(--co-background-base);--co-background-50:var(--co-theme-background-50,var(--co-background-50-mix,oklch(92% 0 0)));--co-background-100:var(--co-theme-background-100,var(--co-background-100-mix,oklch(93% 0 0)));--co-background-200:var(--co-theme-background-200,var(--co-background-200-mix,oklch(94% 0 0)));--co-background-300:var(--co-theme-background-300,var(--co-background-300-mix,oklch(95% 0 0)));--co-background-400:var(--co-theme-background-400,var(--co-background-400-mix,oklch(96% 0 0)));--co-background-500:var(--co-theme-background-500,var(--co-background-500-mix,oklch(97% 0 0)));--co-background-600:var(--co-theme-background-600,var(--co-background-600-mix,oklch(98% 0 0)));--co-foreground:var(--co-foreground-base);--co-popover:var(--co-popover-base);--co-popover-foreground:var(--co-popover-foreground-base);--co-primary:var(--co-primary-base);--co-primary-foreground:var(--co-primary-foreground-base);--co-secondary:var(--co-secondary-base);--co-secondary-foreground:var(--co-secondary-foreground-base);--co-muted:var(--co-theme-muted,var(--co-muted-mix,oklch(97% 0 0)));--co-muted-foreground:var(--co-theme-muted-foreground,var(--co-muted-foreground-mix,oklch(55.6% 0 0)));--co-border:var(--co-border-base);--co-input:var(--co-input-base);--co-ring:var(--co-ring-base);--co-accent:var(--co-accent-base);--co-accent-foreground:var(--co-accent-foreground-base);--co-pink:var(--co-theme-pink,oklch(76.3% .152 354));--co-yellow:var(--co-theme-yellow,oklch(86.4% .144 99));--co-blue:var(--co-theme-blue,oklch(72.5% .132 241));--co-orange:var(--co-theme-orange,oklch(74.5% .166 50));--co-destructive:var(--co-theme-destructive,oklch(57.7% .245 27.325));--co-destructive-foreground:var(--co-theme-destructive-foreground,oklch(57.7% .245 27.325));--co-success:var(--co-theme-success,oklch(71.7% .18 142));--co-success-foreground:var(--co-theme-success-foreground,oklch(26.5% .052 142.7));--co-neutral:var(--co-theme-neutral,oklch(60.8% 0 0));--co-neutral-foreground:var(--co-theme-neutral-foreground,oklch(25.6% 0 0));--co-warning:var(--co-theme-warning,oklch(86.4% .144 99));--co-warning-foreground:var(--co-theme-warning-foreground,oklch(41.4% .071 99))}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-base:var(--co-theme-background,oklch(15.5% 0 0));--co-foreground-base:var(--co-theme-foreground,oklch(95% 0 0));--co-popover-base:var(--co-theme-popover,oklch(14.5% 0 0));--co-popover-foreground-base:var(--co-theme-popover-foreground,oklch(95% 0 0));--co-primary-base:var(--co-theme-primary,oklch(98.5% 0 0));--co-primary-foreground-base:var(--co-theme-primary-foreground,oklch(14.5% 0 0));--co-secondary-base:var(--co-theme-secondary,oklch(26.9% 0 0));--co-secondary-foreground-base:var(--co-theme-secondary-foreground,oklch(95% 0 0));--co-border-base:var(--co-theme-border,oklch(26.9% 0 0));--co-input-base:var(--co-theme-input,oklch(26.9% 0 0));--co-ring-base:var(--co-theme-ring,var(--co-primary-base));--co-accent-base:var(--co-theme-accent,var(--co-primary-base));--co-accent-foreground-base:var(--co-theme-accent-foreground,var(--co-primary-foreground-base));--co-muted-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-muted-mix:color-mix(in oklch,var(--co-background-base)55%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-muted-foreground-mix:var(--co-foreground-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-muted-foreground-mix:color-mix(in oklch,var(--co-foreground-base)65%,white)}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-50-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-50-mix:color-mix(in oklch,var(--co-background-base)98%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-100-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-100-mix:color-mix(in oklch,var(--co-background-base)96%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-200-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-200-mix:color-mix(in oklch,var(--co-background-base)94%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-300-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-300-mix:color-mix(in oklch,var(--co-background-base)92%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-400-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-400-mix:color-mix(in oklch,var(--co-background-base)90%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-500-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-500-mix:color-mix(in oklch,var(--co-background-base)88%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-600-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-600-mix:color-mix(in oklch,var(--co-background-base)86%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-pink:var(--co-theme-pink,oklch(84.2% .109 354));--co-yellow:var(--co-theme-yellow,oklch(90.3% .111 99));--co-blue:var(--co-theme-blue,oklch(79.8% .089 241));--co-orange:var(--co-theme-orange,oklch(68.2% .194 50));--co-destructive:var(--co-theme-destructive,oklch(39.6% .141 25.723));--co-destructive-foreground:var(--co-theme-destructive-foreground,oklch(63.7% .237 25.331));--co-success:var(--co-theme-success,oklch(60% .15 142));--co-success-foreground:var(--co-theme-success-foreground,oklch(85% .12 142));--co-neutral:var(--co-theme-neutral,oklch(50% 0 0));--co-neutral-foreground:var(--co-theme-neutral-foreground,oklch(85% 0 0));--co-warning:var(--co-theme-warning,oklch(90.3% .111 99));--co-warning-foreground:var(--co-theme-warning-foreground,oklch(85% .1 99))}}@layer utilities{.cossistant .co-scrollbar-thin{scrollbar-width:thin;scrollbar-color:oklch(from var(--co-primary)l c h/.3)transparent}.cossistant .co-scrollbar-thin::-webkit-scrollbar{width:8px;height:8px}.cossistant .co-scrollbar-thin::-webkit-scrollbar-track{background:0 0}.cossistant .co-scrollbar-thin::-webkit-scrollbar-thumb{background-color:oklch(from var(--co-primary)l c h/.3);border-radius:4px}.cossistant .co-scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:oklch(from var(--co-primary)l c h/.5)}.cossistant .animation-delay-0{animation-delay:0s}.cossistant .animation-delay-200{animation-delay:.2s}.cossistant .animation-delay-400{animation-delay:.4s}.cossistant .dot-bounce-1{animation:1.4s infinite bounce-dot}.cossistant .dot-bounce-2{animation:1.4s .16s infinite bounce-dot}.cossistant .dot-bounce-3{animation:1.4s .32s infinite bounce-dot}}
1
+ /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
+ @layer base{.cossistant{color:var(--co-primary);color-scheme:normal;--co-font-sans:var(--co-theme-font-sans,"Geist","Inter",sans-serif);--co-font-mono:var(--co-theme-font-mono,"Geist Mono","Inter Mono",monospace);--co-radius:var(--co-theme-radius,.625rem);--co-background-base:var(--co-theme-background,oklch(99% 0 0));--co-foreground-base:var(--co-theme-foreground,oklch(20.5% 0 0));--co-popover-base:var(--co-theme-popover,var(--co-background-base));--co-popover-foreground-base:var(--co-theme-popover-foreground,var(--co-foreground-base));--co-primary-base:var(--co-theme-primary,oklch(14.5% 0 0));--co-primary-foreground-base:var(--co-theme-primary-foreground,oklch(98.5% 0 0));--co-secondary-base:var(--co-theme-secondary,oklch(97% 0 0));--co-secondary-foreground-base:var(--co-theme-secondary-foreground,oklch(14.5% 0 0));--co-border-base:var(--co-theme-border,oklch(92.2% 0 0));--co-input-base:var(--co-theme-input,oklch(92.2% 0 0));--co-ring-base:var(--co-theme-ring,var(--co-primary-base));--co-accent-base:var(--co-theme-accent,var(--co-primary-base));--co-accent-foreground-base:var(--co-theme-accent-foreground,var(--co-primary-foreground-base));--co-background-50-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-50-mix:color-mix(in oklch,var(--co-background-base)98%,var(--co-foreground-base))}}.cossistant{--co-background-100-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-100-mix:color-mix(in oklch,var(--co-background-base)97%,var(--co-foreground-base))}}.cossistant{--co-background-200-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-200-mix:color-mix(in oklch,var(--co-background-base)96%,var(--co-foreground-base))}}.cossistant{--co-background-300-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-300-mix:color-mix(in oklch,var(--co-background-base)95%,var(--co-foreground-base))}}.cossistant{--co-background-400-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-400-mix:color-mix(in oklch,var(--co-background-base)94%,var(--co-foreground-base))}}.cossistant{--co-background-500-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-500-mix:color-mix(in oklch,var(--co-background-base)93%,var(--co-foreground-base))}}.cossistant{--co-background-600-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-background-600-mix:color-mix(in oklch,var(--co-background-base)92%,var(--co-foreground-base))}}.cossistant{--co-muted-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-muted-mix:color-mix(in oklch,var(--co-background-base)85%,var(--co-foreground-base))}}.cossistant{--co-muted-foreground-mix:var(--co-foreground-base)}@supports (color:color-mix(in lab, red, red)){.cossistant{--co-muted-foreground-mix:color-mix(in oklch,var(--co-foreground-base)70%,white)}}.cossistant{--co-background:var(--co-background-base);--co-background-50:var(--co-theme-background-50,var(--co-background-50-mix,oklch(92% 0 0)));--co-background-100:var(--co-theme-background-100,var(--co-background-100-mix,oklch(93% 0 0)));--co-background-200:var(--co-theme-background-200,var(--co-background-200-mix,oklch(94% 0 0)));--co-background-300:var(--co-theme-background-300,var(--co-background-300-mix,oklch(95% 0 0)));--co-background-400:var(--co-theme-background-400,var(--co-background-400-mix,oklch(96% 0 0)));--co-background-500:var(--co-theme-background-500,var(--co-background-500-mix,oklch(97% 0 0)));--co-background-600:var(--co-theme-background-600,var(--co-background-600-mix,oklch(98% 0 0)));--co-foreground:var(--co-foreground-base);--co-popover:var(--co-popover-base);--co-popover-foreground:var(--co-popover-foreground-base);--co-primary:var(--co-primary-base);--co-primary-foreground:var(--co-primary-foreground-base);--co-secondary:var(--co-secondary-base);--co-secondary-foreground:var(--co-secondary-foreground-base);--co-muted:var(--co-theme-muted,var(--co-muted-mix,oklch(97% 0 0)));--co-muted-foreground:var(--co-theme-muted-foreground,var(--co-muted-foreground-mix,oklch(55.6% 0 0)));--co-border:var(--co-border-base);--co-input:var(--co-input-base);--co-ring:var(--co-ring-base);--co-accent:var(--co-accent-base);--co-accent-foreground:var(--co-accent-foreground-base);--co-pink:var(--co-theme-pink,oklch(76.3% .152 354));--co-yellow:var(--co-theme-yellow,oklch(86.4% .144 99));--co-blue:var(--co-theme-blue,oklch(72.5% .132 241));--co-orange:var(--co-theme-orange,oklch(74.5% .166 50));--co-destructive:var(--co-theme-destructive,oklch(57.7% .245 27.325));--co-destructive-foreground:var(--co-theme-destructive-foreground,oklch(57.7% .245 27.325));--co-success:var(--co-theme-success,oklch(71.7% .18 142));--co-success-foreground:var(--co-theme-success-foreground,oklch(26.5% .052 142.7));--co-neutral:var(--co-theme-neutral,oklch(60.8% 0 0));--co-neutral-foreground:var(--co-theme-neutral-foreground,oklch(25.6% 0 0));--co-warning:var(--co-theme-warning,oklch(86.4% .144 99));--co-warning-foreground:var(--co-theme-warning-foreground,oklch(41.4% .071 99))}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-base:var(--co-theme-background,oklch(15.5% 0 0));--co-foreground-base:var(--co-theme-foreground,oklch(95% 0 0));--co-popover-base:var(--co-theme-popover,oklch(14.5% 0 0));--co-popover-foreground-base:var(--co-theme-popover-foreground,oklch(95% 0 0));--co-primary-base:var(--co-theme-primary,oklch(98.5% 0 0));--co-primary-foreground-base:var(--co-theme-primary-foreground,oklch(14.5% 0 0));--co-secondary-base:var(--co-theme-secondary,oklch(26.9% 0 0));--co-secondary-foreground-base:var(--co-theme-secondary-foreground,oklch(95% 0 0));--co-border-base:var(--co-theme-border,oklch(26.9% 0 0));--co-input-base:var(--co-theme-input,oklch(26.9% 0 0));--co-ring-base:var(--co-theme-ring,var(--co-primary-base));--co-accent-base:var(--co-theme-accent,var(--co-primary-base));--co-accent-foreground-base:var(--co-theme-accent-foreground,var(--co-primary-foreground-base));--co-muted-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-muted-mix:color-mix(in oklch,var(--co-background-base)55%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-muted-foreground-mix:var(--co-foreground-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-muted-foreground-mix:color-mix(in oklch,var(--co-foreground-base)65%,white)}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-50-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-50-mix:color-mix(in oklch,var(--co-background-base)98%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-100-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-100-mix:color-mix(in oklch,var(--co-background-base)96%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-200-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-200-mix:color-mix(in oklch,var(--co-background-base)94%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-300-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-300-mix:color-mix(in oklch,var(--co-background-base)92%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-400-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-400-mix:color-mix(in oklch,var(--co-background-base)90%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-500-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-500-mix:color-mix(in oklch,var(--co-background-base)88%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-600-mix:var(--co-background-base)}@supports (color:color-mix(in lab, red, red)){.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-background-600-mix:color-mix(in oklch,var(--co-background-base)86%,var(--co-foreground-base))}}.dark .cossistant,.cossistant[data-color-scheme=dark]{--co-pink:var(--co-theme-pink,oklch(84.2% .109 354));--co-yellow:var(--co-theme-yellow,oklch(90.3% .111 99));--co-blue:var(--co-theme-blue,oklch(79.8% .089 241));--co-orange:var(--co-theme-orange,oklch(68.2% .194 50));--co-destructive:var(--co-theme-destructive,oklch(39.6% .141 25.723));--co-destructive-foreground:var(--co-theme-destructive-foreground,oklch(63.7% .237 25.331));--co-success:var(--co-theme-success,oklch(60% .15 142));--co-success-foreground:var(--co-theme-success-foreground,oklch(85% .12 142));--co-neutral:var(--co-theme-neutral,oklch(50% 0 0));--co-neutral-foreground:var(--co-theme-neutral-foreground,oklch(85% 0 0));--co-warning:var(--co-theme-warning,oklch(90.3% .111 99));--co-warning-foreground:var(--co-theme-warning-foreground,oklch(85% .1 99))}}@layer utilities{.cossistant .co-scrollbar-thin{scrollbar-width:thin;scrollbar-color:oklch(from var(--co-primary)l c h/.3)transparent}.cossistant .co-scrollbar-thin::-webkit-scrollbar{width:8px;height:8px}.cossistant .co-scrollbar-thin::-webkit-scrollbar-track{background:0 0}.cossistant .co-scrollbar-thin::-webkit-scrollbar-thumb{background-color:oklch(from var(--co-primary)l c h/.3);border-radius:4px}.cossistant .co-scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:oklch(from var(--co-primary)l c h/.5)}.cossistant .animation-delay-0{animation-delay:0s}.cossistant .animation-delay-200{animation-delay:.2s}.cossistant .animation-delay-400{animation-delay:.4s}.cossistant .dot-bounce-1{animation:1.4s infinite bounce-dot}.cossistant .dot-bounce-2{animation:1.4s .16s infinite bounce-dot}.cossistant .dot-bounce-3{animation:1.4s .32s infinite bounce-dot}}
@@ -0,0 +1,65 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region ../react/src/primitives/timeline-item-attachments.d.ts
4
+
5
+ /**
6
+ * Extract image parts from timeline item parts array.
7
+ */
8
+ declare function extractImageParts(parts: TimelineItemParts): TimelinePartImage[];
9
+ /**
10
+ * Extract file parts from timeline item parts array.
11
+ */
12
+ declare function extractFileParts(parts: TimelineItemParts): TimelinePartFile[];
13
+ /**
14
+ * Check if timeline item has any attachments (images or files).
15
+ */
16
+ declare function hasAttachments(parts: TimelineItemParts): boolean;
17
+ /**
18
+ * Renders a grid of image thumbnails from timeline item parts.
19
+ * Supports custom rendering via children render prop.
20
+ */
21
+ declare const TimelineItemImages: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> & {
22
+ children?: React$1.ReactNode | ((images: TimelinePartImage[], onImageClick?: (index: number) => void) => React$1.ReactNode);
23
+ asChild?: boolean;
24
+ className?: string;
25
+ images: TimelinePartImage[];
26
+ /**
27
+ * Callback when an image is clicked (for lightbox).
28
+ */
29
+ onImageClick?: (index: number) => void;
30
+ } & React$1.RefAttributes<HTMLDivElement>>;
31
+ /**
32
+ * Renders a list of file attachments from timeline item parts.
33
+ * Supports custom rendering via children render prop.
34
+ */
35
+ declare const TimelineItemFiles: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> & {
36
+ children?: React$1.ReactNode | ((files: TimelinePartFile[]) => React$1.ReactNode);
37
+ asChild?: boolean;
38
+ className?: string;
39
+ files: TimelinePartFile[];
40
+ } & React$1.RefAttributes<HTMLDivElement>>;
41
+ /**
42
+ * Convenience component that renders both images and files from timeline parts.
43
+ * Extracts the appropriate parts and renders them in a single container.
44
+ */
45
+ declare const TimelineItemAttachments: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement>, "children"> & {
46
+ children?: React$1.ReactNode;
47
+ asChild?: boolean;
48
+ className?: string;
49
+ parts: TimelineItemParts;
50
+ /**
51
+ * Callback when an image is clicked (for lightbox).
52
+ */
53
+ onImageClick?: (index: number) => void;
54
+ /**
55
+ * Custom className for the images container.
56
+ */
57
+ imagesClassName?: string;
58
+ /**
59
+ * Custom className for the files container.
60
+ */
61
+ filesClassName?: string;
62
+ } & React$1.RefAttributes<HTMLDivElement>>;
63
+ //#endregion
64
+ export { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments };
65
+ //# sourceMappingURL=timeline-item-attachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeline-item-attachments.d.ts","names":[],"sources":["../../react/src/primitives/timeline-item-attachments.tsx"],"sourcesContent":[],"mappings":";;;;;AAcA;AAWA;AAOgB,iBAlBA,iBAAA,CAkBsB,KAAA,EAjB9B,iBAiB+C,CAAA,EAhBpD,iBAgBoD,EAAA;AA+BvD;;;AAA+B,iBAtCf,gBAAA,CAsCe,KAAA,EAtCS,iBAsCT,CAAA,EAtC6B,gBAsC7B,EAAA;;;;AAXtB,iBApBO,cAAA,CAoBP,KAAA,EApB6B,iBAoB7B,CAAA,EAAA,OAAA;;;;;AAsGqB,cA3FjB,kBA2FiB,EA3FC,OAAA,CAAA,yBA2FD,CA3FC,IA2FD,CA3FC,OAAA,CAAA,cA2FD,CA3FC,cA2FD,CAAA,EAAA,UAAA,CAAA,GAAA;EAAA,QAAA,CAAA,EA7G1B,OAAA,CAAM,SA6GoB,GAAA,CAAA,CAAA,MAAA,EA3GlB,iBA2GkB,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,GAAA,IAAA,EAAA,GAzGrB,OAAA,CAAM,SAyGe,CAAA;EAyFjB,OAAA,CAAA,EAAA,OAAA;EAAuB,SAAA,CAAA,EAAA,MAAA;EAAA,MAAA,EA/L3B,iBA+L2B,EAAA;EAAA;;;;;;;;;cAzFvB,mBAAiB,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aA1BlB,OAAA,CAAM,qBAAqB,uBAAuB,OAAA,CAAM;;;SAG5D;;;;;;cAgHK,yBAAuB,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAtBxB,OAAA,CAAM;;;SAGV"}
@@ -1,3 +1,4 @@
1
+ import { SenderType } from "@cossistant/types";
1
2
  import * as React$1 from "react";
2
3
 
3
4
  //#region ../react/src/primitives/timeline-item-group.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"timeline-item-group.d.ts","names":[],"sources":["../../react/src/primitives/timeline-item-group.tsx"],"sourcesContent":[],"mappings":";;;;AASA;AAmDA;;;AAA8B,KAnDlB,4BAAA,GAmDkB;EArB1B,UAAM,EA5BG,UA4BH;EACG,QAAA,EAAA,MAAA;EAAiC,UAAM,CAAA,EA3BtC,UA2BsC;EAG5C,cAAA,EAAA,OAAA;EAIM,kBAAA,EAAA,OAAA;EAIK,SAAA,EAAA,OAAA;;;EASW,SAAA,EAAA,MAAA;EAAA,WAAA,EAAA,MAAA,GAAA,SAAA;EAuHjB,UAAA,EAAA,MAAA,GAAA,SAuBT;EAvBgC,mBAAA,CAAA,EAAA,OAAA;EAAA,SAAA,CAAA,EAAA,SAAA,MAAA,EAAA;CAAA;;;;;;;AAgDA,cAvKvB,iBAuKuB,EAvKN,OAAA,CAAA,yBAuKM,CAvKN,IAuKM,CAvKN,OAAA,CAAA,cAuKM,CAvKN,cAuKM,CAAA,EAAA,UAAA,CAAA,GAAA;EAyDvB,QAAA,CAAA,EArPT,OAAA,CAAM,SAqPG,GAuBT,CAAA,CAAA,KAAA,EA3QS,4BA2QT,EAAA,GA3Q0C,OAAA,CAAM,SA2QhD,CAAA;EAvBiC,OAAA,CAAA,EAAA,OAAA;EAAA,SAAA,CAAA,EAAA,MAAA;EAAA,KAAA,EAjP7B,gBAiP6B,EAAA;EAVzB,QAAM,CAAA,EAAA,MAAA;eAnOJ;;EA6OuB,eAAA,CAAA,EAzOlB,GAyOkB,CAAA,MAAA,EAAA,MAAA,CAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;;;;;AA6CM,cAtJ9B,uBAsJ8B,EAtJP,OAAA,CAAA,yBAsJO,CAtJP,IAsJO,CAtJP,OAAA,CAAA,cAsJO,CAtJP,cAsJO,CAAA,EAAA,UAAA,CAAA,GAAA;EA+D9B,QAAA,CAAA,EA9ND,OAAA,CAAM,SA8NL;EAA8B,OAAA,CAAA,EAAA,OAAA;EAAA,SAAA,CAAA,EAAA,MAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;;;;;;cArK9B,yBAAuB,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAlBhC,OAAA,CAAM;;;iBAIO;QACP,OAAA,CAAM;;;;;eAKF;;;;;;;cAiED,0BAAwB,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAVzB,OAAA,CAAM;;;;;;;;;cAuDL,gCAA8B,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAfvC,OAAA,CAAM;;;QAIA,OAAA,CAAM;;;;;;;;;;cA0EH,gCAA8B,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAhBvC,OAAA,CAAM;aAEG;;;;;QAEH,OAAA,CAAM;;;;oBAIG"}
1
+ {"version":3,"file":"timeline-item-group.d.ts","names":[],"sources":["../../react/src/primitives/timeline-item-group.tsx"],"sourcesContent":[],"mappings":";;;;;;AASA;AAmDA;;AAA8B,KAnDlB,4BAAA,GAmDkB;EAAA,UAAA,EAjDjB,UAiDiB;EArB1B,QAAM,EAAA,MAAA;EACG,UAAA,CAAA,EA3BC,UA2BD;EAAiC,cAAM,EAAA,OAAA;EAG5C,kBAAA,EAAA,OAAA;EAIM,SAAA,EAAA,OAAA;EAIK,IAAA,EAAA,OAAA;;;EASW,WAAA,EAAA,MAAA,GAAA,SAAA;EAAA,UAAA,EAAA,MAAA,GAAA,SAAA;EAuHjB,mBAAA,CAAA,EAAA,OAuBT;EAvBgC,SAAA,CAAA,EAAA,SAAA,MAAA,EAAA;CAAA;;;;;;;AAgDA,cAvKvB,iBAuKuB,EAvKN,OAAA,CAAA,yBAuKM,CAvKN,IAuKM,CAvKN,OAAA,CAAA,cAuKM,CAvKN,cAuKM,CAAA,EAAA,UAAA,CAAA,GAAA;EAAA,QAAA,CAAA,EA5LhC,OAAA,CAAM,SA4L0B,GAAA,CAAA,CAAA,KAAA,EA3LvB,4BA2LuB,EAAA,GA3LU,OAAA,CAAM,SA2LhB,CAAA;EAyDvB,OAAA,CAAA,EAAA,OAAA;EAAwB,SAAA,CAAA,EAAA,MAAA;EAAA,KAAA,EAjP7B,gBAiP6B,EAAA;EAAA,QAAA,CAAA,EAAA,MAAA;EAVzB,UAAM,CAAA,EAnOJ,UAmOI;;oBA/NC;CAyOkB,wBAAA,eAAA,CAAA,CAAA;;;;;AA6CM,cAtJ9B,uBAsJ8B,EAtJP,OAAA,CAAA,yBAsJO,CAtJP,IAsJO,CAtJP,OAAA,CAAA,cAsJO,CAtJP,cAsJO,CAAA,EAAA,UAAA,CAAA,GAAA;EAAA,QAAA,CAAA,EA/J/B,OAAA,CAAM,SA+JyB;EA+D9B,OAAA,CAAA,EAAA,OAAA;EAA8B,SAAA,CAAA,EAAA,MAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;;;;;;cArK9B,yBAAuB,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAlBhC,OAAA,CAAM;;;iBAIO;QACP,OAAA,CAAM;;;;;eAKF;;;;;;;cAiED,0BAAwB,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAVzB,OAAA,CAAM;;;;;;;;;cAuDL,gCAA8B,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAfvC,OAAA,CAAM;;;QAIA,OAAA,CAAM;;;;;;;;;;cA0EH,gCAA8B,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,eAAA;aAhBvC,OAAA,CAAM;aAEG;;;;;QAEH,OAAA,CAAM;;;;oBAIG"}
package/trigger.d.ts ADDED
@@ -0,0 +1,91 @@
1
+ import * as React$1 from "react";
2
+
3
+ //#region ../react/src/primitives/trigger.d.ts
4
+
5
+ /**
6
+ * Render props provided to the Trigger's children function.
7
+ */
8
+ type TriggerRenderProps = {
9
+ isOpen: boolean;
10
+ unreadCount: number;
11
+ isTyping: boolean;
12
+ toggle: () => void;
13
+ };
14
+ type TriggerProps = Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
15
+ /**
16
+ * Content to render inside the trigger.
17
+ * Can be a ReactNode or a function that receives render props.
18
+ *
19
+ * @example
20
+ * // Static content
21
+ * <Trigger>Help</Trigger>
22
+ *
23
+ * @example
24
+ * // Dynamic content with render props
25
+ * <Trigger>
26
+ * {({ isOpen, unreadCount }) => (
27
+ * <span>{isOpen ? "Close" : `Help (${unreadCount})`}</span>
28
+ * )}
29
+ * </Trigger>
30
+ */
31
+ children?: React$1.ReactNode | ((props: TriggerRenderProps) => React$1.ReactNode);
32
+ /**
33
+ * When true, the Trigger will render its children directly,
34
+ * passing all props to the child element.
35
+ */
36
+ asChild?: boolean;
37
+ className?: string;
38
+ };
39
+ /**
40
+ * Trigger button that toggles the support window.
41
+ * Can be placed anywhere in the DOM - the window will position itself relative to this element.
42
+ *
43
+ * @example
44
+ * // Simple usage
45
+ * <Trigger className="my-button">Need help?</Trigger>
46
+ *
47
+ * @example
48
+ * // With render props
49
+ * <Trigger>
50
+ * {({ isOpen, unreadCount, isTyping }) => (
51
+ * <button className="flex items-center gap-2">
52
+ * {isOpen ? "×" : "💬"}
53
+ * {unreadCount > 0 && <span className="badge">{unreadCount}</span>}
54
+ * </button>
55
+ * )}
56
+ * </Trigger>
57
+ *
58
+ * @example
59
+ * // With asChild pattern
60
+ * <Trigger asChild>
61
+ * <MyCustomButton>Help</MyCustomButton>
62
+ * </Trigger>
63
+ */
64
+ declare const SupportTrigger: React$1.ForwardRefExoticComponent<Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
65
+ /**
66
+ * Content to render inside the trigger.
67
+ * Can be a ReactNode or a function that receives render props.
68
+ *
69
+ * @example
70
+ * // Static content
71
+ * <Trigger>Help</Trigger>
72
+ *
73
+ * @example
74
+ * // Dynamic content with render props
75
+ * <Trigger>
76
+ * {({ isOpen, unreadCount }) => (
77
+ * <span>{isOpen ? "Close" : `Help (${unreadCount})`}</span>
78
+ * )}
79
+ * </Trigger>
80
+ */
81
+ children?: React$1.ReactNode | ((props: TriggerRenderProps) => React$1.ReactNode);
82
+ /**
83
+ * When true, the Trigger will render its children directly,
84
+ * passing all props to the child element.
85
+ */
86
+ asChild?: boolean;
87
+ className?: string;
88
+ } & React$1.RefAttributes<HTMLButtonElement>>;
89
+ //#endregion
90
+ export { SupportTrigger, TriggerProps, TriggerRenderProps };
91
+ //# sourceMappingURL=trigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger.d.ts","names":[],"sources":["../../react/src/primitives/trigger.tsx"],"sourcesContent":[],"mappings":";;;;;;AAUA;AAOY,KAPA,kBAAA,GAOY;EACI,MAAA,EAAA,OAAA;EAA3B,WAAM,EAAA,MAAA;EADoB,QAAA,EAAA,OAAA;EAoBf,MAAM,EAAA,GAAA,GAAA,IAAA;CAAqB;AAAuB,KApBlD,YAAA,GAAe,IAoByC,CAnBnE,OAAA,CAAM,oBAmB6D,CAnBxC,iBAmBwC,CAAA,EAAA,UAAA,CAAA,GAAA;EAAS;AAkC7E;;;;;;;;;;;;;;;aAlCY,OAAA,CAAM,qBAAqB,uBAAuB,OAAA,CAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkCvD,gBAAc,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,qBAAA;;;;;;;;;;;;;;;;;aAlCf,OAAA,CAAM,qBAAqB,uBAAuB,OAAA,CAAM"}
package/types.d.ts CHANGED
@@ -3,26 +3,89 @@ import React from "react";
3
3
  //#region ../react/src/support/types.d.ts
4
4
 
5
5
  /**
6
- * Props for custom Bubble slot component
6
+ * Side of the trigger where the content appears.
7
7
  */
8
- type BubbleSlotProps = {
9
- className?: string;
8
+ type Side = "top" | "bottom" | "left" | "right";
9
+ /**
10
+ * Alignment along the side axis.
11
+ */
12
+ type Align = "start" | "center" | "end";
13
+ /**
14
+ * Render props provided to the Trigger's children function.
15
+ * Use this when you need dynamic content based on widget state.
16
+ *
17
+ * @example
18
+ * <Support.Trigger>
19
+ * {({ isOpen, isTyping, unreadCount }) => (
20
+ * <span>{isOpen ? "Close" : `Help (${unreadCount})`}</span>
21
+ * )}
22
+ * </Support.Trigger>
23
+ */
24
+ type TriggerRenderProps = {
25
+ /** Whether the support window is currently open */
26
+ isOpen: boolean;
27
+ /** Whether an agent or AI is currently typing */
28
+ isTyping: boolean;
29
+ /** Number of unread messages */
30
+ unreadCount: number;
31
+ /** Toggle the support window open/closed */
32
+ toggle: () => void;
10
33
  };
11
34
  /**
12
- * Props for custom Container slot component
35
+ * Padding from viewport edges when avoiding collisions.
36
+ * Can be a single number for all sides, or an object with per-side values.
13
37
  */
14
- type ContainerSlotProps = {
15
- className?: string;
16
- children: React.ReactNode;
17
- position?: "top" | "bottom";
18
- align?: "right" | "left";
38
+ type CollisionPadding = number | {
39
+ top?: number;
40
+ right?: number;
41
+ bottom?: number;
42
+ left?: number;
19
43
  };
20
44
  /**
21
- * Props for custom Router slot component
45
+ * Props for the Content component.
22
46
  */
23
- type RouterSlotProps = {
47
+ type ContentProps = {
48
+ className?: string;
49
+ /**
50
+ * Which side of the trigger to place the content.
51
+ * @default "top"
52
+ */
53
+ side?: Side;
54
+ /**
55
+ * Alignment along the side axis.
56
+ * @default "end"
57
+ */
58
+ align?: Align;
59
+ /**
60
+ * Distance (in pixels) between the trigger and the content.
61
+ * @default 16
62
+ */
63
+ sideOffset?: number;
64
+ /**
65
+ * Disable automatic collision avoidance.
66
+ * When true, the content will use static CSS positioning and may overflow the viewport.
67
+ * @default false
68
+ */
69
+ avoidCollisions?: boolean;
70
+ /**
71
+ * Padding from viewport edges when avoiding collisions.
72
+ * Used by flip and shift middleware to determine when to reposition.
73
+ * @default 8
74
+ */
75
+ collisionPadding?: CollisionPadding;
24
76
  children?: React.ReactNode;
25
77
  };
78
+ /**
79
+ * Props for the Root component (full composition mode).
80
+ */
81
+ type RootProps = {
82
+ /**
83
+ * Whether the widget should open automatically on mount.
84
+ * @default false
85
+ */
86
+ defaultOpen?: boolean;
87
+ children: React.ReactNode;
88
+ };
26
89
  //#endregion
27
- export { BubbleSlotProps, ContainerSlotProps, RouterSlotProps };
90
+ export { Align, CollisionPadding, ContentProps, RootProps, Side, TriggerRenderProps };
28
91
  //# sourceMappingURL=types.d.ts.map
package/types.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../react/src/support/types.ts"],"sourcesContent":[],"mappings":";;;;;;AAKA;AAOY,KAPA,eAAA,GAOkB;EAUlB,SAAA,CAAA,EAAA,MAAe;;;;;KAVf,kBAAA;;YAED,KAAA,CAAM;;;;;;;KAQL,eAAA;aACA,KAAA,CAAM"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../react/src/support/types.ts"],"sourcesContent":[],"mappings":";;;;;;AASA;AAKY,KALA,IAAA,GAKK,KAAA,GAAA,QAAA,GAAA,MAAA,GAAA,OAAA;AAiBjB;AAmBA;AAOA;AAMQ,KAjDI,KAAA,GAiDJ,OAAA,GAAA,QAAA,GAAA,KAAA;;;;;AAiCR;;;;;;;KAjEY,kBAAA;;;;;;;;;;;;;;KAmBA,gBAAA;;;;;;;;;KAOA,YAAA;;;;;;SAMJ;;;;;UAKC;;;;;;;;;;;;;;;;;qBAiBW;aACR,KAAA,CAAM;;;;;KAUN,SAAA;;;;;;YAMD,KAAA,CAAM"}
@@ -1,3 +1,4 @@
1
+ import { AvailableAIAgent, AvailableHumanAgent } from "@cossistant/types";
1
2
  import * as React$1 from "react";
2
3
 
3
4
  //#region ../react/src/support/components/typing-indicator.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"typing-indicator.d.ts","names":[],"sources":["../../react/src/support/components/typing-indicator.tsx"],"sourcesContent":[],"mappings":";;;KAKY,qBAAA;AAAA,KAEA,iBAAA,GAFqB;EAErB,EAAA,EAAA,MAAA;EAKA,IAAA,EAHL,qBAGyB;CAAwB;AAArB,KAAvB,oBAAA,GAAuB,OAAA,CAAM,cAAA,CAAe,cAAf,CAAA,GAAA;EAC1B,YAAA,EAAA,iBAAA,EAAA;EACM,iBAAA,CAAA,EAAA,gBAAA,EAAA;EACG,oBAAA,CAAA,EAAA,mBAAA,EAAA;EAAmB,WAAA,CAAA,EAAA,OAAA;AA+B3C,CAAA;AAhCqB,cAgCR,eAhCQ,EAgCO,OAAA,CAAA,yBAhCP,CAgCO,OAAA,CAAA,cAhCP,CAgCO,cAhCP,CAAA,GAAA;EACG,YAAA,EAFT,iBAES,EAAA;sBADH;yBACG;EA+BI,WAAA,CAAA,EAAA,OAAA;CAAA,wBAAA,eAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"typing-indicator.d.ts","names":[],"sources":["../../react/src/support/components/typing-indicator.tsx"],"sourcesContent":[],"mappings":";;;;KAKY,qBAAA;KAEA,iBAAA;EAFA,EAAA,EAAA,MAAA;EAEA,IAAA,EAEL,qBAFsB;AAK7B,CAAA;AAAwD,KAA5C,oBAAA,GAAuB,OAAA,CAAM,cAAe,CAAA,cAAA,CAAA,GAAA;EAArB,YAAM,EAC1B,iBAD0B,EAAA;EAC1B,iBAAA,CAAA,EACM,gBADN,EAAA;EACM,oBAAA,CAAA,EACG,mBADH,EAAA;EACG,WAAA,CAAA,EAAA,OAAA;CAAmB;AAF5B,cAiCF,eAjCE,EAiCa,OAAA,CAAA,yBAjCb,CAiCa,OAAA,CAAA,cAjCb,CAiCa,cAjCb,CAAA,GAAA;EACM,YAAA,EADN,iBACM,EAAA;EACG,iBAAA,CAAA,EADH,gBACG,EAAA;yBAAA;;CA+BI,wBAAA,eAAA,CAAA,CAAA"}
package/typing-store.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { TypingActorType } from "@cossistant/core";
2
+
1
3
  //#region ../react/src/realtime/typing-store.d.ts
2
4
 
3
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"typing-store.d.ts","names":[],"sources":["../../react/src/realtime/typing-store.ts"],"sourcesContent":[],"mappings":";;;;;;iBA+DgB,cAAA;;aAEJ;;;;;;;;;iBAYI,gBAAA;;aAEJ;;;;;;;iBAUI,4BAAA,QACR;;;;;;;;;;iBAeQ,2BAAA,QACR"}
1
+ {"version":3,"file":"typing-store.d.ts","names":[],"sources":["../../react/src/realtime/typing-store.ts"],"sourcesContent":[],"mappings":";;;;;;;;iBA+DgB,cAAA;;aAEJ;;;;;;;;;iBAYI,gBAAA;;aAEJ;;;;;;;iBAUI,4BAAA,QACR;;;;;;;;;;iBAeQ,2BAAA,QACR"}