@cossistant/next 0.0.26 → 0.0.29

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 (101) 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/day-separator.d.ts +76 -0
  5. package/day-separator.d.ts.map +1 -0
  6. package/events.d.ts +32 -0
  7. package/events.d.ts.map +1 -0
  8. package/fallback.d.ts.map +1 -1
  9. package/handle.d.ts +63 -0
  10. package/handle.d.ts.map +1 -0
  11. package/hooks/index.d.ts +2 -2
  12. package/identify-visitor2.d.ts +1 -0
  13. package/identify-visitor2.d.ts.map +1 -1
  14. package/index.d.ts +9 -5
  15. package/index.js +3 -3
  16. package/index2.d.ts +2 -1
  17. package/index2.parts.d.ts +3 -1
  18. package/index4.d.ts +3 -1
  19. package/index7.d.ts +1 -70
  20. package/index8.d.ts +239 -3
  21. package/index8.d.ts.map +1 -0
  22. package/index9.d.ts +4 -0
  23. package/keys.d.ts +2 -0
  24. package/keys.d.ts.map +1 -1
  25. package/merge-refs.d.ts +1 -0
  26. package/package.json +2 -2
  27. package/primitives/index.d.ts +4 -2
  28. package/primitives/index.js +2 -2
  29. package/provider2.d.ts +2 -0
  30. package/provider2.d.ts.map +1 -1
  31. package/router.d.ts +1 -0
  32. package/router.d.ts.map +1 -1
  33. package/router2.d.ts +20 -3
  34. package/router2.d.ts.map +1 -1
  35. package/seen-store.d.ts +2 -0
  36. package/seen-store.d.ts.map +1 -1
  37. package/slots.d.ts +18 -0
  38. package/slots.d.ts.map +1 -0
  39. package/support/index.d.ts +5 -3
  40. package/support/index.js +2 -2
  41. package/support-config2.d.ts +1 -0
  42. package/support-config2.d.ts.map +1 -1
  43. package/support-store.d.ts +42 -14
  44. package/support-store.d.ts.map +1 -1
  45. package/support.css +2 -2
  46. package/timeline-item-attachments.d.ts +65 -0
  47. package/timeline-item-attachments.d.ts.map +1 -0
  48. package/timeline-item-group.d.ts +1 -0
  49. package/timeline-item-group.d.ts.map +1 -1
  50. package/trigger.d.ts +91 -0
  51. package/trigger.d.ts.map +1 -0
  52. package/types.d.ts +75 -12
  53. package/types.d.ts.map +1 -1
  54. package/typing-indicator.d.ts +1 -0
  55. package/typing-indicator.d.ts.map +1 -1
  56. package/typing-store.d.ts +2 -0
  57. package/typing-store.d.ts.map +1 -1
  58. package/typing.d.ts +4 -1
  59. package/typing.d.ts.map +1 -1
  60. package/use-client-query.d.ts +8 -0
  61. package/use-client-query.d.ts.map +1 -1
  62. package/use-conversation-auto-seen.d.ts +2 -1
  63. package/use-conversation-auto-seen.d.ts.map +1 -1
  64. package/use-conversation-history-page.d.ts +2 -0
  65. package/use-conversation-history-page.d.ts.map +1 -1
  66. package/use-conversation-page.d.ts +1 -0
  67. package/use-conversation-page.d.ts.map +1 -1
  68. package/use-conversation-preview.d.ts +3 -1
  69. package/use-conversation-preview.d.ts.map +1 -1
  70. package/use-conversation-timeline-items.d.ts +2 -1
  71. package/use-conversation-timeline-items.d.ts.map +1 -1
  72. package/use-conversation-timeline.d.ts.map +1 -1
  73. package/use-conversation-typing.d.ts +2 -0
  74. package/use-conversation-typing.d.ts.map +1 -1
  75. package/use-conversations.d.ts +2 -1
  76. package/use-conversations.d.ts.map +1 -1
  77. package/use-create-conversation.d.ts +2 -0
  78. package/use-create-conversation.d.ts.map +1 -1
  79. package/use-file-upload.d.ts +1 -0
  80. package/use-grouped-messages.d.ts +10 -6
  81. package/use-grouped-messages.d.ts.map +1 -1
  82. package/use-home-page.d.ts +2 -0
  83. package/use-home-page.d.ts.map +1 -1
  84. package/use-message-composer.d.ts +11 -0
  85. package/use-message-composer.d.ts.map +1 -1
  86. package/use-multimodal-input.d.ts.map +1 -1
  87. package/use-render-element.d.ts.map +1 -1
  88. package/use-rest-client.d.ts +2 -0
  89. package/use-rest-client.d.ts.map +1 -1
  90. package/use-send-message.d.ts +3 -1
  91. package/use-send-message.d.ts.map +1 -1
  92. package/use-visitor.d.ts +2 -0
  93. package/use-visitor.d.ts.map +1 -1
  94. package/utils/index.d.ts +1 -1
  95. package/websocket.d.ts +1 -0
  96. package/websocket.d.ts.map +1 -1
  97. package/window.d.ts +12 -1
  98. package/window.d.ts.map +1 -1
  99. package/bubble.d.ts +0 -29
  100. package/bubble.d.ts.map +0 -1
  101. package/index7.d.ts.map +0 -1
package/index8.d.ts CHANGED
@@ -1,3 +1,239 @@
1
- import { shouldDisplayConversation } from "./conversation.js";
2
- import { PENDING_CONVERSATION_ID, generateShortPrimaryId } from "./id.js";
3
- import { useRenderElement } from "./use-render-element.js";
1
+ import { SupportLocale, SupportTextContentOverrides } from "./keys.js";
2
+ import { CustomPage, PageProps } from "./router2.js";
3
+ import { SlotProps } from "./slots.js";
4
+ import { ConversationEndEvent, ConversationStartEvent, ErrorEvent, MessageReceivedEvent, MessageSentEvent } from "./events.js";
5
+ import { SupportHandle } from "./handle.js";
6
+ import "./index6.js";
7
+ import { Align, CollisionPadding, ContentProps, RootProps, Side, TriggerRenderProps } from "./types.js";
8
+ import "./button2.js";
9
+ import { WebSocketContextValue, WebSocketProvider, useWebSocket } from "./websocket.js";
10
+ import { useSupportConfig, useSupportNavigation, useSupportStore } from "./support-store.js";
11
+ import "./index7.js";
12
+ import * as _cossistant_core0 from "@cossistant/core";
13
+ import { DefaultMessage } from "@cossistant/types";
14
+ import * as React$1 from "react";
15
+
16
+ //#region ../react/src/support/index.d.ts
17
+ type SupportProps<Locale extends string = SupportLocale> = {
18
+ /**
19
+ * Additional CSS classes for the root wrapper.
20
+ */
21
+ className?: string;
22
+ /**
23
+ * Which side of the trigger to place the content.
24
+ * @default "top"
25
+ */
26
+ side?: Side;
27
+ /**
28
+ * Alignment along the side axis.
29
+ * @default "end"
30
+ */
31
+ align?: Align;
32
+ /**
33
+ * Distance (in pixels) between the trigger and the content.
34
+ * @default 16
35
+ */
36
+ sideOffset?: number;
37
+ /**
38
+ * Enable automatic collision avoidance.
39
+ * When true, the content repositions to stay within the viewport.
40
+ * @default true
41
+ */
42
+ avoidCollisions?: boolean;
43
+ /**
44
+ * Padding from viewport edges when avoiding collisions.
45
+ * @default 8
46
+ */
47
+ collisionPadding?: CollisionPadding;
48
+ /**
49
+ * Granular className overrides for specific parts.
50
+ */
51
+ classNames?: {
52
+ trigger?: string;
53
+ content?: string;
54
+ };
55
+ /**
56
+ * Force a specific theme. Omit for automatic detection.
57
+ */
58
+ theme?: "light" | "dark";
59
+ /**
60
+ * Controlled open state.
61
+ * When provided, the widget operates in controlled mode.
62
+ * Use with `onOpenChange` to manage state externally.
63
+ */
64
+ open?: boolean;
65
+ /**
66
+ * Callback fired when the open state should change.
67
+ * Use with `open` prop for controlled mode.
68
+ *
69
+ * @example
70
+ * const [isOpen, setIsOpen] = useState(false);
71
+ * <Support open={isOpen} onOpenChange={setIsOpen} />
72
+ */
73
+ onOpenChange?: (open: boolean) => void;
74
+ /**
75
+ * Whether the widget should open automatically on mount (uncontrolled mode).
76
+ * Ignored when `open` prop is provided (controlled mode).
77
+ * @default false
78
+ */
79
+ defaultOpen?: boolean;
80
+ /**
81
+ * Quick reply options displayed to users.
82
+ */
83
+ quickOptions?: string[];
84
+ /**
85
+ * Custom welcome messages shown before a conversation starts.
86
+ */
87
+ defaultMessages?: DefaultMessage[];
88
+ /**
89
+ * Locale string for widget translations.
90
+ */
91
+ locale?: Locale;
92
+ /**
93
+ * Custom text content overrides for internationalization.
94
+ */
95
+ content?: SupportTextContentOverrides<Locale>;
96
+ /**
97
+ * Custom pages to add to the router.
98
+ */
99
+ customPages?: CustomPage[];
100
+ /**
101
+ * Called when a new conversation is started.
102
+ */
103
+ onConversationStart?: (event: ConversationStartEvent) => void;
104
+ /**
105
+ * Called when a conversation ends (resolved, closed, etc.).
106
+ */
107
+ onConversationEnd?: (event: ConversationEndEvent) => void;
108
+ /**
109
+ * Called when the visitor sends a message.
110
+ */
111
+ onMessageSent?: (event: MessageSentEvent) => void;
112
+ /**
113
+ * Called when a message is received from an agent (human or AI).
114
+ */
115
+ onMessageReceived?: (event: MessageReceivedEvent) => void;
116
+ /**
117
+ * Called when an error occurs within the widget.
118
+ */
119
+ onError?: (event: ErrorEvent) => void;
120
+ /**
121
+ * Children for composition. Can include:
122
+ * - <Support.Trigger> for custom trigger
123
+ * - <Support.Content> for custom content positioning
124
+ * - <Support.Page> components for custom routes
125
+ */
126
+ children?: React$1.ReactNode;
127
+ };
128
+ type SupportContentProps = {
129
+ className?: string;
130
+ /**
131
+ * Which side of the trigger to place the content.
132
+ * @default "top"
133
+ */
134
+ side?: Side;
135
+ /**
136
+ * Alignment along the side axis.
137
+ * @default "end"
138
+ */
139
+ align?: Align;
140
+ /**
141
+ * Distance (in pixels) between the trigger and the content.
142
+ * @default 16
143
+ */
144
+ sideOffset?: number;
145
+ /**
146
+ * Enable automatic collision avoidance.
147
+ * When true, the content repositions to stay within the viewport.
148
+ * @default true
149
+ */
150
+ avoidCollisions?: boolean;
151
+ /**
152
+ * Padding from viewport edges when avoiding collisions.
153
+ * @default 8
154
+ */
155
+ collisionPadding?: CollisionPadding;
156
+ children?: React$1.ReactNode;
157
+ };
158
+ type SupportRouterProps = {
159
+ /**
160
+ * Custom pages to add alongside built-in pages.
161
+ */
162
+ customPages?: CustomPage[];
163
+ /**
164
+ * Page components to register.
165
+ */
166
+ children?: React$1.ReactNode;
167
+ };
168
+ type SupportRootProps = {
169
+ /**
170
+ * Controlled open state.
171
+ * When provided, the widget operates in controlled mode.
172
+ */
173
+ open?: boolean;
174
+ /**
175
+ * Callback fired when the open state should change.
176
+ * Use with `open` prop for controlled mode.
177
+ */
178
+ onOpenChange?: (open: boolean) => void;
179
+ /**
180
+ * Whether the widget should open automatically (uncontrolled mode).
181
+ * Ignored when `open` prop is provided.
182
+ * @default false
183
+ */
184
+ defaultOpen?: boolean;
185
+ /**
186
+ * Force a specific theme.
187
+ */
188
+ theme?: "light" | "dark";
189
+ /**
190
+ * Additional CSS classes.
191
+ */
192
+ className?: string;
193
+ /**
194
+ * Called when a new conversation is started.
195
+ */
196
+ onConversationStart?: (event: ConversationStartEvent) => void;
197
+ /**
198
+ * Called when a conversation ends.
199
+ */
200
+ onConversationEnd?: (event: ConversationEndEvent) => void;
201
+ /**
202
+ * Called when the visitor sends a message.
203
+ */
204
+ onMessageSent?: (event: MessageSentEvent) => void;
205
+ /**
206
+ * Called when a message is received from an agent.
207
+ */
208
+ onMessageReceived?: (event: MessageReceivedEvent) => void;
209
+ /**
210
+ * Called when an error occurs.
211
+ */
212
+ onError?: (event: ErrorEvent) => void;
213
+ children: React$1.ReactNode;
214
+ };
215
+ declare const Support: (<Locale extends string = SupportLocale>(props: SupportProps<Locale> & {
216
+ ref?: React$1.Ref<SupportHandle>;
217
+ }) => React$1.ReactElement | null) & {
218
+ Root: React$1.ForwardRefExoticComponent<SupportRootProps & React$1.RefAttributes<SupportHandle>>;
219
+ Trigger: React$1.ForwardRefExoticComponent<Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
220
+ /**
221
+ * Content to render inside the trigger.
222
+ * Can be static content or a function receiving render props.
223
+ */
224
+ children?: React$1.ReactNode | ((props: TriggerRenderProps) => React$1.ReactNode);
225
+ /**
226
+ * When true, renders children directly with all props passed through.
227
+ */
228
+ asChild?: boolean;
229
+ className?: string;
230
+ } & React$1.RefAttributes<HTMLButtonElement>>;
231
+ Content: React$1.FC<SupportContentProps>;
232
+ Router: React$1.FC<SupportRouterProps>;
233
+ Page: <K extends keyof _cossistant_core0.RouteRegistry>(_props: PageProps<K>) => null;
234
+ Header: React$1.FC<SlotProps>;
235
+ Footer: React$1.FC<SlotProps>;
236
+ };
237
+ //#endregion
238
+ export { Support, SupportProps };
239
+ //# sourceMappingURL=index8.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index8.d.ts","names":[],"sources":["../../react/src/support/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;KAsCY,qCAAqC;;;;;;;;AAAjD;EAAiD,IAAA,CAAA,EAUzC,IAVyC;EAUzC;;;;EA6EE,KAAA,CAAA,EAvED,KAuEC;EAK6B;;;;EAmBV,UAAA,CAAA,EAAA,MAAA;EAKJ;;;;;EA6Qb,eAAA,CAAA,EAAA,OAAmB;EAMvB;;;;EAsBmB,gBAAA,CAAA,EA1XP,gBA0XO;EA2Cf;AAkEZ;;EAgC6B,UAAA,CAAA,EAAA;IAIJ,OAAA,CAAA,EAAA,MAAA;IAII,OAAA,CAAA,EAAA,MAAA;EAIV,CAAA;EACR;;AA2FX;EAxUsB,KAAA,CAAA,EAAA,OAAA,GAAA,MAAA;EAED;;;;;;;;;;;;;;EAeyC,YAAM,CAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,GAAA,IAAA;;;;;;;;;;;;;;oBAzQjD;;;;WAKT;;;;YAKC,4BAA4B;;;;gBAKxB;;;;gCASgB;;;;8BAKF;;;;0BAKJ;;;;8BAKI;;;;oBAKV;;;;;;;aAQP,OAAA,CAAM;;KA2PN,mBAAA;;;;;;SAMJ;;;;;UAKC;;;;;;;;;;;;;;;;qBAgBW;aACR,OAAA,CAAM;;KA2CN,kBAAA;;;;gBAIG;;;;aAIH,OAAA,CAAM;;KA0DN,gBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA4BmB;;;;8BAIF;;;;0BAIJ;;;;8BAII;;;;oBAIV;YACR,OAAA,CAAM;;cA2FJ,mCAxUS,sBAEd,aAAa;QAAkB,OAAA,CAAM,IAAI;MAC5C,OAAA,CAAM;;;;;;;eAcC,OAAA,CAAM,qBAAqB,uBAAuB,OAAA,CAAM"}
package/index9.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { shouldDisplayConversation } from "./conversation.js";
2
+ import { PENDING_CONVERSATION_ID, generateShortPrimaryId } from "./id.js";
3
+ import "./merge-refs.js";
4
+ import { useRenderElement } from "./use-render-element.js";
package/keys.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { AvailableAIAgent, AvailableHumanAgent, PublicWebsiteResponse } from "@cossistant/types";
2
+
1
3
  //#region ../react/src/support/text/locales/keys.d.ts
2
4
  type SupportLocale = "en" | "fr" | "es";
3
5
  type SupportTimeOfDayToken = "morning" | "afternoon" | "evening";
package/keys.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","names":[],"sources":["../../react/src/support/text/locales/keys.ts"],"sourcesContent":[],"mappings":";AAMY,KAAA,aAAA,GAAa,IAAA,GAAA,IAAA,GAAA,IAAA;AAEb,KAAA,qBAAA,GAAqB,SAAA,GAAA,WAAA,GAAA,SAAA;AAErB,KAAA,qBAAA,GAAqB;EAKrB,KAAA,EAJJ,qBAIoB;EAOhB,KAAA,EAAA,MAAA;CACF;AACA,KATE,gBAAA,GASF;EACI,YAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAT2B,IAAA,CAAK,mBAShC,EAAA,GAAA,MAAA;EACH,SAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA;IAAgB,GAAA,EAAA,MAAA;IAad,KAAA,EAAA,MAAA;EA2HD,CAAA,EAAA,GAAA,MAAA;EACA,SAAA,EAAA,CAAA,KAAc,EAAA,MAAA,EAAA,GAAS,MAAA;EAEvB,SAAA,EAAA,GAAA,GAlJM,qBAkJc;CAAW;AAC1C,KAhJW,kBAAA,GAgJX;EAAuB,OAAA,EA/Id,qBA+Ic,GAAA,IAAA;EAAC,OAAA,EA9If,qBA8Ie,CAAA,SAAA,CAAA,GAAA,IAAA;EAEpB,WAAA,EA/IS,mBA+IG,EAAA;EAAW,QAAA,EA9IjB,gBA8IiB,EAAA;CAC3B;AAAuB,cAlIX,sBAkIW,EAAA;EAAC,SAAA,4BAAA,EAAA;IAEpB,SAAA,SAAgB,EAAA,SAAA;EACV,CAAA;EACkB,SAAA,4BAAA,EAAA;IAArB,SAAA,SAAA,EAAA,SAAA;EACJ,CAAA;EAEY,SAAA,2BAAA,EAAA;IAAb,SAAA,SAAA,EAAA;MACC,SAAA,QAAA,EAAA,MAAA;IACA,CAAA;EAAI,CAAA;EAEI,SAAA,wBAAkB,EAAA;IACnB,SAAA,SAAA,EAAA,SAAA;EACkB,CAAA;EAArB,SAAA,8BAAA,EAAA;IAIuB,SAAA,SAAA,EAAA,SAAA;EAAG,CAAA;EAApB,SAAA,6BAAA,EAAA;IACF,SAAA,SAAA,EAAA,SAAA;EACF,CAAA;EAAgB,SAAA,0BAAA,EAAA;IAOd,SAAA,SAAA,EAAA,SAA2B;EAAyB,CAAA;EAExD,SAAA,8BAAA,EAAA;IACgB,SAAA,SAAA,EAAA,SAAA;EAAnB,CAAA;EACe,SAAA,0BAAA,EAAA;IAAgB,SAAA,SAAA,EAAA,SAAA;EAA2B,CAAA;EAAnB,SAAA,sBAAA,EAAA;IAA/B,SAAA,SAAA,EAAA,SAAA;EAAR,CAAA;EAHJ,SAAA,gCAAA,EAAA;IAAO,SAAA,SAAA,EAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAlCI,sBAAA,UAAgC;KAChC,cAAA,SAAuB;KAEvB,iCAA+B,kBAC1C,uBAAuB;KAEnB,yBAAuB,kBAC3B,uBAAuB;;;KAEnB,6BACM,uBACH,qBAAqB,QACzB,qCAED,aAAa,oBACZ,mBACA;KAEQ,+BACD,uBACH,qBAAqB;aAIf,iBAAiB,KAAG;WACtB;SACF;;KAOE,oDAAoD,iBAC/D,gBACO,iBACH,mBAAmB,KACnB,QAAQ,OAAO,gBAAgB,QAAQ,mBAAmB"}
1
+ {"version":3,"file":"keys.d.ts","names":[],"sources":["../../react/src/support/text/locales/keys.ts"],"sourcesContent":[],"mappings":";;;KAMY,aAAA;KAEA,qBAAA;AAFA,KAIA,qBAAA,GAJa;EAEb,KAAA,EAGJ,qBAHyB;EAErB,KAAA,EAAA,MAAA;AAKZ,CAAA;AAOY,KAPA,gBAAA,GAOkB;EACpB,YAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAP+B,IAAA,CAAK,mBAOpC,EAAA,GAAA,MAAA;EACA,SAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA;IACI,GAAA,EAAA,MAAA;IACH,KAAA,EAAA,MAAA;EAAgB,CAAA,EAAA,GAAA,MAAA;EAad,SAAA,EAAA,CAAA,KAAA,EAAA,MAyHsD,EAAA,GAAA,MAAA;EAEvD,SAAA,EAAA,GAAA,GA/IM,qBA+I0B;AAC5C,CAAA;AAEY,KA/IA,kBAAA,GA+IoB;EAAW,OAAA,EA9IjC,qBA8IiC,GAAA,IAAA;EAC1C,OAAA,EA9IS,qBA8IT,CAAA,SAAA,CAAA,GAAA,IAAA;EAAuB,WAAA,EA7IV,mBA6IU,EAAA;EAAC,QAAA,EA5Id,gBA4Ic,EAAA;AAAe,CAAA;AAEZ,cAjIf,sBAiIe,EAAA;EAC3B,SAAA,4BAAA,EAAA;IAAuB,SAAA,SAAA,EAAA,SAAA;EAAC,CAAA;EAEpB,SAAA,4BAAgB,EAAA;IACV,SAAA,SAAA,EAAA,SAAA;EACkB,CAAA;EAArB,SAAA,2BAAA,EAAA;IACJ,SAAA,SAAA,EAAA;MAEY,SAAA,QAAA,EAAA,MAAA;IAAb,CAAA;EACC,CAAA;EACA,SAAA,wBAAA,EAAA;IAAI,SAAA,SAAA,EAAA,SAAA;EAEI,CAAA;EACD,SAAA,8BAAA,EAAA;IACkB,SAAA,SAAA,EAAA,SAAA;EAArB,CAAA;EAIuB,SAAA,6BAAA,EAAA;IAAG,SAAA,SAAA,EAAA,SAAA;EAApB,CAAA;EACF,SAAA,0BAAA,EAAA;IACF,SAAA,SAAA,EAAA,SAAA;EAAgB,CAAA;EAOd,SAAA,8BAA2B,EAAA;IAAyB,SAAA,SAAA,EAAA,SAAA;EAExD,CAAA;EACgB,SAAA,0BAAA,EAAA;IAAnB,SAAA,SAAA,EAAA,SAAA;EACe,CAAA;EAAgB,SAAA,sBAAA,EAAA;IAA2B,SAAA,SAAA,EAAA,SAAA;EAAnB,CAAA;EAA/B,SAAA,gCAAA,EAAA;IAAR,SAAA,SAAA,EAAA,SAAA;EAHJ,CAAA;EAAO,SAAA,6BAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAlCI,sBAAA,UAAgC;KAChC,cAAA,SAAuB;KAEvB,iCAA+B,kBAC1C,uBAAuB;KAEnB,yBAAuB,kBAC3B,uBAAuB;;;KAEnB,6BACM,uBACH,qBAAqB,QACzB,qCAED,aAAa,oBACZ,mBACA;KAEQ,+BACD,uBACH,qBAAqB;aAIf,iBAAiB,KAAG;WACtB;SACF;;KAOE,oDAAoD,iBAC/D,gBACO,iBACH,mBAAmB,KACnB,QAAQ,OAAO,gBAAgB,QAAQ,mBAAmB"}
@@ -0,0 +1 @@
1
+ import "react";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cossistant/next",
3
3
  "type": "module",
4
- "version": "0.0.26",
4
+ "version": "0.0.29",
5
5
  "private": false,
6
6
  "author": "Cossistant team",
7
7
  "description": "Next.js-ready SDK for building AI-powered support/chat widgets. Hooks + primitives, WS-driven, TypeScript-first. Next.js-ready, Tailwind optional.",
@@ -91,7 +91,7 @@
91
91
  "access": "public"
92
92
  },
93
93
  "dependencies": {
94
- "@cossistant/react": "0.0.26",
94
+ "@cossistant/react": "0.0.29",
95
95
  "tailwindcss": "^4.1.13"
96
96
  },
97
97
  "peerDependencies": {
@@ -3,13 +3,15 @@ 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";
8
+ import { DaySeparator, DaySeparatorLabel, DaySeparatorLabelProps, DaySeparatorLine, DaySeparatorLineProps, DaySeparatorProps, DaySeparatorRenderProps, defaultFormatDate } from "../day-separator.js";
9
9
  import { FileInput, MultimodalInput, SupportInput } from "../multimodal-input.js";
10
10
  import { PageDefinition, Router, RouterProps } from "../router.js";
11
11
  import { TimelineItem, TimelineItemContent, TimelineItemTimestamp } from "../timeline-item.js";
12
+ import { TimelineItemAttachments, TimelineItemFiles, TimelineItemImages, extractFileParts, extractImageParts, hasAttachments } from "../timeline-item-attachments.js";
12
13
  import { TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator } from "../timeline-item-group.js";
14
+ import { SupportTrigger, TriggerProps, TriggerRenderProps } from "../trigger.js";
13
15
  import { SupportWindow } from "../window.js";
14
16
  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 };
17
+ export { Avatar, AvatarFallback, AvatarImage, Button, SupportConfig as Config, ConversationTimeline, ConversationTimelineContainer, ConversationTimelineEmpty, ConversationTimelineLoading, DaySeparator, DaySeparatorLabel, type DaySeparatorLabelProps, DaySeparatorLine, type DaySeparatorLineProps, type DaySeparatorProps, type DaySeparatorRenderProps, 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, defaultFormatDate, 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, DaySeparator, DaySeparatorLabel, DaySeparatorLine, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, Trigger, TypingIndicator, Window, defaultFormatDate, 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, DaySeparator, DaySeparatorLabel, DaySeparatorLine, FileInput, Input, MultimodalInput, Router, TimelineItem, TimelineItemAttachments, TimelineItemContent, TimelineItemFiles, TimelineItemGroup, TimelineItemGroupAvatar, TimelineItemGroupContent, TimelineItemGroupHeader, TimelineItemGroupReadIndicator, TimelineItemGroupSeenIndicator, TimelineItemImages, TimelineItemTimestamp, Trigger, TypingIndicator, Window, defaultFormatDate, 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}}