@jrapps/my_tickets_chat_ui 0.1.1 → 0.2.0

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 (87) hide show
  1. package/dist/cjs/components/SiteChatComponent/index.js +1 -1
  2. package/dist/cjs/components/SiteChatComponent/index.js.map +2 -2
  3. package/dist/cjs/components/SiteChatComponentNew/index.js +1280 -0
  4. package/dist/cjs/components/SiteChatComponentNew/index.js.map +7 -0
  5. package/dist/cjs/index.js +1247 -2
  6. package/dist/cjs/index.js.map +4 -4
  7. package/dist/esm/chunks/{chunk-XNTJKZD3.js → chunk-QPJPV2T3.js} +2 -2
  8. package/dist/esm/chunks/chunk-QPJPV2T3.js.map +7 -0
  9. package/dist/esm/chunks/chunk-TWW7V724.js +1248 -0
  10. package/dist/esm/chunks/chunk-TWW7V724.js.map +7 -0
  11. package/dist/esm/components/SiteChatComponent/index.js +1 -1
  12. package/dist/esm/components/SiteChatComponentNew/index.js +9 -0
  13. package/dist/esm/components/SiteChatComponentNew/index.js.map +7 -0
  14. package/dist/esm/index.js +8 -2
  15. package/dist/types/components/SiteChatComponent/MessageContainer/MessageContainer.types.d.ts +1 -18
  16. package/dist/types/components/SiteChatComponent/MessageContainer/MessageContainer.types.d.ts.map +1 -1
  17. package/dist/types/components/SiteChatComponent/MessageContainer/messages/messages-wrapper.d.ts.map +1 -1
  18. package/dist/types/components/SiteChatComponentNew/Footer/Footer.d.ts +6 -0
  19. package/dist/types/components/SiteChatComponentNew/Footer/Footer.d.ts.map +1 -0
  20. package/dist/types/components/SiteChatComponentNew/Footer/index.d.ts +2 -0
  21. package/dist/types/components/SiteChatComponentNew/Footer/index.d.ts.map +1 -0
  22. package/dist/types/components/SiteChatComponentNew/Header/Header.d.ts +6 -0
  23. package/dist/types/components/SiteChatComponentNew/Header/Header.d.ts.map +1 -0
  24. package/dist/types/components/SiteChatComponentNew/Header/index.d.ts +2 -0
  25. package/dist/types/components/SiteChatComponentNew/Header/index.d.ts.map +1 -0
  26. package/dist/types/components/SiteChatComponentNew/Messages/AgentMessage.d.ts +9 -0
  27. package/dist/types/components/SiteChatComponentNew/Messages/AgentMessage.d.ts.map +1 -0
  28. package/dist/types/components/SiteChatComponentNew/Messages/AttachmentMessage.d.ts +9 -0
  29. package/dist/types/components/SiteChatComponentNew/Messages/AttachmentMessage.d.ts.map +1 -0
  30. package/dist/types/components/SiteChatComponentNew/Messages/MessageList.d.ts +9 -0
  31. package/dist/types/components/SiteChatComponentNew/Messages/MessageList.d.ts.map +1 -0
  32. package/dist/types/components/SiteChatComponentNew/Messages/MessageRenderer.d.ts +8 -0
  33. package/dist/types/components/SiteChatComponentNew/Messages/MessageRenderer.d.ts.map +1 -0
  34. package/dist/types/components/SiteChatComponentNew/Messages/SystemMessage.d.ts +9 -0
  35. package/dist/types/components/SiteChatComponentNew/Messages/SystemMessage.d.ts.map +1 -0
  36. package/dist/types/components/SiteChatComponentNew/Messages/TypingIndicator.d.ts +5 -0
  37. package/dist/types/components/SiteChatComponentNew/Messages/TypingIndicator.d.ts.map +1 -0
  38. package/dist/types/components/SiteChatComponentNew/Messages/UserMessage.d.ts +9 -0
  39. package/dist/types/components/SiteChatComponentNew/Messages/UserMessage.d.ts.map +1 -0
  40. package/dist/types/components/SiteChatComponentNew/Messages/index.d.ts +8 -0
  41. package/dist/types/components/SiteChatComponentNew/Messages/index.d.ts.map +1 -0
  42. package/dist/types/components/SiteChatComponentNew/OfflineForm/OfflineForm.d.ts +10 -0
  43. package/dist/types/components/SiteChatComponentNew/OfflineForm/OfflineForm.d.ts.map +1 -0
  44. package/dist/types/components/SiteChatComponentNew/OfflineForm/index.d.ts +2 -0
  45. package/dist/types/components/SiteChatComponentNew/OfflineForm/index.d.ts.map +1 -0
  46. package/dist/types/components/SiteChatComponentNew/Shared/Avatar.d.ts +10 -0
  47. package/dist/types/components/SiteChatComponentNew/Shared/Avatar.d.ts.map +1 -0
  48. package/dist/types/components/SiteChatComponentNew/Shared/Button.d.ts +14 -0
  49. package/dist/types/components/SiteChatComponentNew/Shared/Button.d.ts.map +1 -0
  50. package/dist/types/components/SiteChatComponentNew/Shared/index.d.ts +3 -0
  51. package/dist/types/components/SiteChatComponentNew/Shared/index.d.ts.map +1 -0
  52. package/dist/types/components/SiteChatComponentNew/SiteChatComponentNew.d.ts +5 -0
  53. package/dist/types/components/SiteChatComponentNew/SiteChatComponentNew.d.ts.map +1 -0
  54. package/dist/types/components/SiteChatComponentNew/SiteChatComponentNew.types.d.ts +114 -0
  55. package/dist/types/components/SiteChatComponentNew/SiteChatComponentNew.types.d.ts.map +1 -0
  56. package/dist/types/components/SiteChatComponentNew/States/ChatEndedState.d.ts +5 -0
  57. package/dist/types/components/SiteChatComponentNew/States/ChatEndedState.d.ts.map +1 -0
  58. package/dist/types/components/SiteChatComponentNew/States/LoadingState.d.ts +5 -0
  59. package/dist/types/components/SiteChatComponentNew/States/LoadingState.d.ts.map +1 -0
  60. package/dist/types/components/SiteChatComponentNew/States/OfflineState.d.ts +10 -0
  61. package/dist/types/components/SiteChatComponentNew/States/OfflineState.d.ts.map +1 -0
  62. package/dist/types/components/SiteChatComponentNew/States/StartChatState.d.ts +11 -0
  63. package/dist/types/components/SiteChatComponentNew/States/StartChatState.d.ts.map +1 -0
  64. package/dist/types/components/SiteChatComponentNew/States/index.d.ts +5 -0
  65. package/dist/types/components/SiteChatComponentNew/States/index.d.ts.map +1 -0
  66. package/dist/types/components/SiteChatComponentNew/hooks/index.d.ts +3 -0
  67. package/dist/types/components/SiteChatComponentNew/hooks/index.d.ts.map +1 -0
  68. package/dist/types/components/SiteChatComponentNew/hooks/useAutoScroll.d.ts +15 -0
  69. package/dist/types/components/SiteChatComponentNew/hooks/useAutoScroll.d.ts.map +1 -0
  70. package/dist/types/components/SiteChatComponentNew/hooks/useOfflineForm.d.ts +12 -0
  71. package/dist/types/components/SiteChatComponentNew/hooks/useOfflineForm.d.ts.map +1 -0
  72. package/dist/types/components/SiteChatComponentNew/index.d.ts +4 -0
  73. package/dist/types/components/SiteChatComponentNew/index.d.ts.map +1 -0
  74. package/dist/types/components/SiteChatComponentNew/useSiteChatComponentNew.d.ts +3 -0
  75. package/dist/types/components/SiteChatComponentNew/useSiteChatComponentNew.d.ts.map +1 -0
  76. package/dist/types/components/SiteChatComponentNew/utils/format.d.ts +9 -0
  77. package/dist/types/components/SiteChatComponentNew/utils/format.d.ts.map +1 -0
  78. package/dist/types/components/SiteChatComponentNew/utils/index.d.ts +4 -0
  79. package/dist/types/components/SiteChatComponentNew/utils/index.d.ts.map +1 -0
  80. package/dist/types/components/SiteChatComponentNew/utils/systemMessages.d.ts +4 -0
  81. package/dist/types/components/SiteChatComponentNew/utils/systemMessages.d.ts.map +1 -0
  82. package/dist/types/components/SiteChatComponentNew/utils/theme.d.ts +8 -0
  83. package/dist/types/components/SiteChatComponentNew/utils/theme.d.ts.map +1 -0
  84. package/dist/types/components/index.d.ts +1 -0
  85. package/dist/types/components/index.d.ts.map +1 -1
  86. package/package.json +2 -2
  87. package/dist/esm/chunks/chunk-XNTJKZD3.js.map +0 -7
@@ -0,0 +1,114 @@
1
+ export interface MessageProps {
2
+ _id?: string;
3
+ resourceId?: string;
4
+ ticketId?: string;
5
+ senderType?: 'user' | 'system' | 'agent';
6
+ senderId?: string;
7
+ message?: string;
8
+ messageType?: 'TEXT' | 'ATTACHMENT';
9
+ attachment?: {
10
+ id: string;
11
+ name: string;
12
+ url: string;
13
+ };
14
+ item?: {
15
+ id: string;
16
+ name: string;
17
+ url: string;
18
+ };
19
+ senderName?: string;
20
+ timestamp?: number;
21
+ teamId?: string;
22
+ }
23
+ export type ChatState = 'LOADING' | 'START' | 'ONLINE' | 'OFFLINE' | 'ENDED';
24
+ export type SystemEventType = 'AGENT_JOINED' | 'AGENT_LEFT' | 'USER_JOINED' | 'USER_LEFT' | 'CHAT_ENDED' | 'CHAT_REOPENED' | 'CHAT_TRANSFERRED' | 'WAITING_FOR_AGENT';
25
+ export interface ChatTheme {
26
+ /** Primary accent colour (header, user bubble, buttons). */
27
+ primary: string;
28
+ /** Main panel background. */
29
+ background: string;
30
+ /** Secondary surface colour (e.g. offline state background). */
31
+ surface: string;
32
+ /** Divider / border colour. */
33
+ border: string;
34
+ /** User message bubble background. */
35
+ userBubble: string;
36
+ /** User message bubble text colour. */
37
+ userText: string;
38
+ /** Agent message bubble background. */
39
+ agentBubble: string;
40
+ /** Agent message bubble text colour. */
41
+ agentText: string;
42
+ /** System / timestamp text colour. */
43
+ systemText: string;
44
+ /** Input field background colour. */
45
+ inputBackground: string;
46
+ /** Input field border colour. */
47
+ inputBorder: string;
48
+ /** Border-radius for buttons (px). */
49
+ buttonRadius: number;
50
+ /** Border-radius for the widget panel and bubbles (px). */
51
+ borderRadius: number;
52
+ }
53
+ export interface OfflineFieldOption {
54
+ label: string;
55
+ value: string;
56
+ }
57
+ export interface OfflineField {
58
+ id: string;
59
+ type: 'text' | 'email' | 'phone' | 'textarea' | 'select' | 'checkbox';
60
+ label: string;
61
+ placeholder?: string;
62
+ required?: boolean;
63
+ options?: OfflineFieldOption[];
64
+ }
65
+ export interface OfflineFormSchema {
66
+ title: string;
67
+ submitButtonText: string;
68
+ fields: OfflineField[];
69
+ }
70
+ export interface HeaderProps {
71
+ image?: string;
72
+ title: string;
73
+ subtitle?: string;
74
+ onClose(): void;
75
+ }
76
+ export interface FooterProps {
77
+ onSend(message: string): void;
78
+ onAttachment(file: File): void;
79
+ disabled?: boolean;
80
+ }
81
+ export interface ChatWidgetProps {
82
+ /** Widget header title. */
83
+ title: string;
84
+ /** Widget header subtitle. */
85
+ subtitle?: string;
86
+ /** Avatar image shown in the header and Start Chat screen. */
87
+ image?: string;
88
+ /** Partial theme overrides — all values are optional. */
89
+ theme?: Partial<ChatTheme>;
90
+ /** Message history to render in the conversation. */
91
+ messages: MessageProps[];
92
+ /** When provided the widget shows the offline form instead of the chat. */
93
+ offlineForm?: OfflineFormSchema;
94
+ /** Open the panel on first render. Defaults to false. */
95
+ defaultOpen?: boolean;
96
+ /** Show the loading/connecting spinner instead of the message list. */
97
+ loading?: boolean;
98
+ /** Show the "Chat Ended" banner below the message list. */
99
+ chatEnded?: boolean;
100
+ /** Called with the message string when the user hits Send or Enter. */
101
+ onSend(message: string): void;
102
+ /** Called with the selected File when the user picks an attachment. */
103
+ onAttachment(file: File): void;
104
+ /** Called with form values when the offline form is submitted. */
105
+ onOfflineSubmit(values: Record<string, unknown>): void;
106
+ /** Called after the panel is dismissed via the header close button. */
107
+ onClose?(): void;
108
+ }
109
+ export interface UseChatWidgetReturn {
110
+ open: boolean;
111
+ openWidget: () => void;
112
+ closeWidget: () => void;
113
+ }
114
+ //# sourceMappingURL=SiteChatComponentNew.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiteChatComponentNew.types.d.ts","sourceRoot":"","sources":["../../../../src/components/SiteChatComponentNew/SiteChatComponentNew.types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACpC,UAAU,CAAC,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,OAAO,GACP,QAAQ,GACR,SAAS,GACT,OAAO,CAAC;AAIZ,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,YAAY,GACZ,aAAa,GACb,WAAW,GACX,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,mBAAmB,CAAC;AAIxB,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,IAAI,IAAI,CAAC;CACjB;AAID,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uEAAuE;IACvE,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uEAAuE;IACvE,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,kEAAkE;IAClE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvD,uEAAuE;IACvE,OAAO,CAAC,IAAI,IAAI,CAAC;CAClB;AAID,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './ChatEndedState.css';
3
+ declare const ChatEndedState: React.FC;
4
+ export default ChatEndedState;
5
+ //# sourceMappingURL=ChatEndedState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatEndedState.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/States/ChatEndedState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,sBAAsB,CAAC;AAE9B,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EA4B3B,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import './LoadingState.css';
3
+ declare const LoadingState: React.FC;
4
+ export default LoadingState;
5
+ //# sourceMappingURL=LoadingState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingState.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/States/LoadingState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,CAAC;AAE5B,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAgBzB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { OfflineFormSchema } from '../SiteChatComponentNew.types';
3
+ import './OfflineState.css';
4
+ interface OfflineStateProps {
5
+ form?: OfflineFormSchema;
6
+ onSubmit: (values: Record<string, unknown>) => void;
7
+ }
8
+ declare const OfflineState: React.FC<OfflineStateProps>;
9
+ export default OfflineState;
10
+ //# sourceMappingURL=OfflineState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OfflineState.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/States/OfflineState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,oBAAoB,CAAC;AAE5B,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACrD;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAoC7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import './StartChatState.css';
3
+ interface StartChatStateProps {
4
+ image?: string;
5
+ title: string;
6
+ description?: string;
7
+ onStart: () => void;
8
+ }
9
+ declare const StartChatState: React.FC<StartChatStateProps>;
10
+ export default StartChatState;
11
+ //# sourceMappingURL=StartChatState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StartChatState.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/States/StartChatState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,sBAAsB,CAAC;AAE9B,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA4BjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { default as LoadingState } from './LoadingState';
2
+ export { default as StartChatState } from './StartChatState';
3
+ export { default as OfflineState } from './OfflineState';
4
+ export { default as ChatEndedState } from './ChatEndedState';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/States/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { useAutoScroll, useAutoScrollWithControl } from './useAutoScroll';
2
+ export { useOfflineForm } from './useOfflineForm';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Attaches a ref to a scrollable container. Automatically scrolls to the
3
+ * bottom when new content is added, unless the user has manually scrolled up.
4
+ */
5
+ export declare function useAutoScroll<T extends HTMLElement>(dependency: unknown): React.MutableRefObject<T | null>;
6
+ /**
7
+ * Expose a way for the consumer to force-scroll to bottom (e.g. when
8
+ * the user clicks a "scroll to bottom" button).
9
+ */
10
+ export declare function useAutoScrollWithControl<T extends HTMLElement>(dependency: unknown): {
11
+ ref: React.MutableRefObject<T | null>;
12
+ scrollToBottom: () => void;
13
+ isScrolledUp: boolean;
14
+ };
15
+ //# sourceMappingURL=useAutoScroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAutoScroll.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/hooks/useAutoScroll.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,EACjD,UAAU,EAAE,OAAO,GAClB,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,CA0BlC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,WAAW,EAC5D,UAAU,EAAE,OAAO,GAClB;IACD,GAAG,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB,CAmCA"}
@@ -0,0 +1,12 @@
1
+ import { OfflineFormSchema } from '../SiteChatComponentNew.types';
2
+ type FieldValues = Record<string, unknown>;
3
+ type FieldErrors = Record<string, string>;
4
+ export declare function useOfflineForm(schema: OfflineFormSchema): {
5
+ values: FieldValues;
6
+ errors: FieldErrors;
7
+ setValue: (id: string, value: unknown) => void;
8
+ handleSubmit: (onSubmit: (values: FieldValues) => void) => void;
9
+ reset: () => void;
10
+ };
11
+ export {};
12
+ //# sourceMappingURL=useOfflineForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOfflineForm.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/hooks/useOfflineForm.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEhF,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAgC1C,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB;;;mBAW/C,MAAM,SAAS,OAAO;6BA6BhB,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI;;EAiB3C"}
@@ -0,0 +1,4 @@
1
+ export { SiteChatComponentNew } from './SiteChatComponentNew';
2
+ export type { ChatWidgetProps, UseChatWidgetReturn } from './SiteChatComponentNew.types';
3
+ export { useSiteChatComponentNew } from './useSiteChatComponentNew';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/SiteChatComponentNew/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { UseChatWidgetReturn } from './SiteChatComponentNew.types';
2
+ export declare function useSiteChatComponentNew(defaultOpen?: boolean): UseChatWidgetReturn;
3
+ //# sourceMappingURL=useSiteChatComponentNew.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSiteChatComponentNew.d.ts","sourceRoot":"","sources":["../../../../src/components/SiteChatComponentNew/useSiteChatComponentNew.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,wBAAgB,uBAAuB,CAAC,WAAW,UAAQ,GAAG,mBAAmB,CAOhF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Format a Unix timestamp (ms) into a human-readable time string, e.g. "2:34 PM".
3
+ */
4
+ export declare function formatTime(timestamp: number): string;
5
+ /**
6
+ * Generate a simple unique id.
7
+ */
8
+ export declare function generateId(): string;
9
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
@@ -0,0 +1,4 @@
1
+ export { buildThemeVars, defaultTheme } from './theme';
2
+ export { getSystemLabel, isSystemEventType } from './systemMessages';
3
+ export { formatTime, generateId } from './format';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { SystemEventType } from '../SiteChatComponentNew.types';
2
+ export declare function getSystemLabel(event: string): string;
3
+ export declare function isSystemEventType(value: string): value is SystemEventType;
4
+ //# sourceMappingURL=systemMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"systemMessages.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/utils/systemMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAahE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAEzE"}
@@ -0,0 +1,8 @@
1
+ import { ChatTheme } from '../SiteChatComponentNew.types';
2
+ export declare const defaultTheme: ChatTheme;
3
+ /**
4
+ * Merges a partial user theme with the defaults and returns a style object
5
+ * containing CSS custom properties. Layout/font values are always fixed.
6
+ */
7
+ export declare function buildThemeVars(partial?: Partial<ChatTheme>): Record<string, string>;
8
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../../src/components/SiteChatComponentNew/utils/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAc1D,eAAO,MAAM,YAAY,EAAE,SAc1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BxB"}
@@ -1,2 +1,3 @@
1
1
  export * from './SiteChatComponent';
2
+ export * from './SiteChatComponentNew';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jrapps/my_tickets_chat_ui",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Chat UI for My Tickets Application",
5
5
  "license": "UNLICENSED",
6
6
  "author": "JRApplications",
@@ -32,7 +32,7 @@
32
32
  "react-dom": ">=18.0.0"
33
33
  },
34
34
  "dependencies": {
35
- "@jrapps/my_tickets_common_types": "^0.1.1",
35
+ "@jrapps/my_tickets_common_types": "^0.1.4",
36
36
  "@wix/design-system": "^1.285.0",
37
37
  "@wix/essentials": "1.0.8",
38
38
  "@wix/wix-ui-icons-common": "^3.168.0",
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/SiteChatComponent/SiteChatComponent.tsx", "../../../src/components/SiteChatComponent/useSiteChatComponent.ts", "../../../src/components/SiteChatComponent/FabButton/FabButton.tsx", "../../../src/components/SiteChatComponent/Footer/Footer.tsx", "../../../src/components/SiteChatComponent/Footer/send-button/send-button.tsx", "../../../src/components/SiteChatComponent/Footer/attachment-list/attachment-list.tsx", "../../../src/components/SiteChatComponent/Footer/message-input/message-input.tsx", "../../../src/components/SiteChatComponent/Footer/message-input/open-file-picker.ts", "../../../src/components/SiteChatComponent/Header/Header.tsx", "../../../src/components/SiteChatComponent/MessageContainer/MessageContainer.tsx", "../../../src/components/SiteChatComponent/MessageContainer/messages/messages-wrapper.tsx", "../../../src/components/SiteChatComponent/MessageContainer/messages/attachment.tsx", "../../../src/components/SiteChatComponent/SiteChatComponent.css"],
4
- "sourcesContent": ["import React from 'react';\nimport { Box, Text } from '@wix/design-system';\nimport '@wix/design-system/styles.global.css';\nimport type { SiteChatComponentProps } from './SiteChatComponent.types';\nimport { useSiteChatComponent } from './useSiteChatComponent';\nimport { FabButton } from './FabButton/FabButton';\nimport { Footer } from './Footer/Footer';\nimport { Header } from './Header/Header';\nimport { MessageContainer } from './MessageContainer/MessageContainer';\nimport './SiteChatComponent.css';\n\nconst SiteChatComponentRoot = React.forwardRef<HTMLDivElement, SiteChatComponentProps>(\n (\n {\n children,\n viewMode,\n editorShowChatPanel,\n handleToggle,\n buttonTextValue,\n isOpen,\n },\n _ref,\n ) => {\n useSiteChatComponent();\n\n if (viewMode === 'Editor') {\n if (typeof editorShowChatPanel === 'undefined') {\n return (\n <Box align=\"center\" verticalAlign=\"middle\" height=\"100%\" width=\"100%\">\n <Text>\n Editor view mode detected but editorShowChatPanel prop is not provided\n </Text>\n </Box>\n );\n }\n\n return (\n <Box>\n <FabButton onClick={handleToggle} text={buttonTextValue} />\n <Box className={`site-chat-component-panel ${editorShowChatPanel ? 'open' : ''}`}>\n {children}\n </Box>\n </Box>\n );\n }\n\n return (\n <Box>\n <FabButton onClick={handleToggle} text={buttonTextValue} />\n <Box className={`site-chat-component-panel ${isOpen ? 'open' : ''}`}>\n {children}\n </Box>\n </Box>\n );\n },\n);\n\nSiteChatComponentRoot.displayName = 'SiteChatComponent';\n\nexport const SiteChatComponent = Object.assign(SiteChatComponentRoot, {\n Header,\n MessageContainer,\n Footer,\n FabButton,\n});", "/**\n * useSiteChatComponent\n *\n * Internal hook that encapsulates the logic for SiteChatComponent.\n * Keep this file focused on state and side-effects; keep JSX in SiteChatComponent.tsx.\n */\nexport function useSiteChatComponent() {\n // Add state and derived values here\n\n return {};\n}\n", "import React from 'react';\nimport type { FabButtonProps } from './FabButton.types';\nimport { Box } from '@wix/design-system';\nimport { WixChat } from '@wix/wix-ui-icons-common';\n\nexport const FabButton = React.forwardRef<HTMLDivElement, FabButtonProps>(\n ({\n className,\n children,\n onClick,\n type = 'textIcon',\n icon = <WixChat />,\n text,\n ...rest\n }, ref) => {\n return (\n <div ref={ref}>\n <button\n className=\"site-chat-component-fab\"\n onClick={onClick}\n >\n {type === 'textIcon' ? <span className='site-chat-component-fab-fab-button-icon'><Box height=\"100%\">{icon}</Box></span> : null}\n {type === 'textIcon' || type === 'text' ? <span className='site-chat-component-fab-fab-button-text'><span className='site-chat-component-fab-fab-button-label'>{text}</span></span> : null}\n {type === 'icon' ? <span className='site-chat-component-fab-fab-button-icon'><Box height=\"100%\" width='max-content'>{icon}</Box></span> : null}\n </button>\n </div>\n );\n }\n);\n\nFabButton.displayName = 'SiteChatComponent.FabButton';\n", "import React from 'react';\nimport type { FooterProps } from './Footer.types';\nimport { Box, IconButton } from '@wix/design-system';\nimport SendButton from './send-button/send-button';\nimport { AttachmentSmall } from '@wix/wix-ui-icons-common';\nimport AttachmentList from './attachment-list/attachment-list';\nimport MessageInput from './message-input/message-input';\n\nexport const Footer = React.forwardRef<HTMLDivElement, FooterProps>(\n ({\n className,\n children,\n sendButtonConfig,\n attachmentListConfig,\n messageInputConfig,\n onAttachmentAdded,\n ...rest\n }, ref) => {\n const handleSendMessage = (text: string, messageType: 'TEXT' | 'ATTACHMENT', attachment?: { id: string; name: string; url: string }) => {\n if (sendButtonConfig?.onClick) {\n sendButtonConfig.onClick(text, messageType, attachment);\n } else {\n console.warn('handleSendMessage function is not provided in sendButtonConfig');\n }\n };\n return (\n <Box ref={ref} className=\"site-chat-component-footer-message-input-container\" direction=\"vertical\" gap={1} verticalAlign=\"middle\">\n <Box width=\"100%\">\n <AttachmentList items={attachmentListConfig?.items || []} onRemove={attachmentListConfig?.onRemove} onClick={attachmentListConfig?.onClick} onFilesSent={attachmentListConfig?.onFilesSent} />\n </Box>\n <Box alignContent=\"bottom\" width=\"100%\" direction=\"horizontal\" gap={2} verticalAlign=\"middle\">\n <MessageInput\n placeholder={messageInputConfig?.placeholder || 'Type your message here...'}\n className={messageInputConfig?.className || 'message-input'}\n value={messageInputConfig?.value || ''}\n onChange={messageInputConfig?.onChange}\n onKeyDown={messageInputConfig?.onKeyDown}\n disabled={messageInputConfig?.disabled}\n onAttachmentAdded={onAttachmentAdded}\n />\n <SendButton\n onClick={() => handleSendMessage(messageInputConfig?.value || '', attachmentListConfig?.items ? 'ATTACHMENT' : 'TEXT')}\n disabled={sendButtonConfig?.disabled}\n text={sendButtonConfig?.buttonText || 'Send'}\n />\n </Box>\n </Box>\n );\n }\n);\n\nFooter.displayName = 'SiteChatComponent.Footer';\n", "import React from 'react';\n\ninterface SendButtonProps {\n text?: string;\n className?: string;\n onClick?: () => void;\n disabled?: boolean;\n}\n\nconst SendButton: React.FC<SendButtonProps> = ({\n text = 'Send',\n className = '',\n onClick,\n disabled = false,\n}) => {\n return (\n <button \n className={`site-chat-component-footer-my-tickets-chat-widget-send-button ${className}`}\n onClick={onClick}\n disabled={disabled}\n >\n {text}\n </button>\n )\n}\n\nexport default SendButton;", "import { type FC, useState, useEffect } from 'react';\n\nimport { IconButton, Box } from '@wix/design-system';\nimport {\n Page as PageSmallIcon,\n DismissSmall as DismissIcon\n} from '@wix/wix-ui-icons-common';\nimport type { AttachmentListWrapperProps } from '@jrapps/my_tickets_common_types'\n\nconst AttachmentList: FC<AttachmentListWrapperProps> = ({ items, onRemove, onClick, onFilesSent }) => {\n const [localItems, setLocalItems] = useState(items);\n\n useEffect(() => {\n setLocalItems(items);\n }, [items]);\n\n const handleOnRemove = (id: string) => {\n if (onRemove) {\n onRemove(id);\n }\n setLocalItems(prev => prev.filter(item => item.id !== id));\n }\n\n const handleSendFiles = () => {\n if (onFilesSent && localItems.length > 0) {\n onFilesSent(localItems);\n setLocalItems([]);\n }\n };\n\n return (\n <Box direction='horizontal' gap={2} maxWidth='100%' minWidth=\"100%\" overflowY='hidden' boxSizing='border-box' scrollbarWidth='thin' overflowX='auto'>\n {localItems.map(item => (\n <div className='site-chat-component-footer-file-item-container' key={item.id} onClick={() => onClick && onClick(item.id, item.url)}>\n <PageSmallIcon size={'15px'} />\n <span className='site-chat-component-footer-file-name'>{item.name}</span>\n <IconButton size='tiny' onClick={() => handleOnRemove(item.id)}><DismissIcon /></IconButton>\n </div>\n ))}\n </Box>\n );\n}\n\nexport default AttachmentList;", "import React from 'react';\nimport { IconButton } from '@wix/design-system';\nimport { AttachmentSmall } from '@wix/wix-ui-icons-common';\nimport { openFilePicker } from './open-file-picker';\n\ninterface MessageInputProps {\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n suffix?: React.ReactNode;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n onAttachmentAdded?: (file: { id: string; name: string; url: string }) => void;\n}\n\nconst MessageInput: React.FC<MessageInputProps> = ({\n placeholder = 'Type a message...',\n disabled = false,\n className = '',\n suffix,\n value = '',\n onChange,\n onKeyDown,\n onAttachmentAdded,\n}) => {\n\n const handleAttachmentOnClick = async () => {\n try {\n await openFilePicker({ multiple: false }).then(file => {\n if (file && onAttachmentAdded) {\n onAttachmentAdded(file);\n }\n });\n } catch (error: any) {\n console.error('Error opening file picker:', error);\n }\n }\n\n return (\n <div className={`site-chat-component-footer-input-wrapper ${className}`}>\n <input\n name='messageInput'\n className='site-chat-component-footer-chat-input'\n placeholder={placeholder}\n disabled={disabled}\n value={value}\n onChange={onChange}\n onKeyDown={onKeyDown}\n />\n <sub className=\"site-chat-component-footer-suffix\"><IconButton onClick={handleAttachmentOnClick} className='attachment-icon-button'><AttachmentSmall /></IconButton></sub>\n </div>\n )\n};\n\nexport default MessageInput;", "import { httpClient }from '@wix/essentials';\n\ninterface WindowWithFilePicker extends Window {\n showOpenFilePicker?: (options?: { multiple?: boolean }) => Promise<FileSystemFileHandle[]>;\n}\n\ninterface OpenFilePickerOptions {\n multiple?: boolean;\n}\n\nconst uploadFile = async (file: File) => {\n try {\n const baseApiUrl = new URL(import.meta.url).origin;\n\n const response = await httpClient.fetchWithAuth(`${baseApiUrl}/api/widget/chat/upload-attachment`, {\n method: 'POST',\n headers: {\n 'Content-Type': file.type || 'application/octet-stream',\n 'x-file-name': encodeURIComponent(file.name),\n 'x-file-type': file.type || 'application/octet-stream',\n },\n body: file,\n });\n\n const data = await response.json();\n if (!response.ok) {\n throw new Error(data.error || 'Failed to upload file');\n }\n\n if (!data.file?.id || !data.file.displayName || !data.file.url) {\n throw new Error('Invalid response format from upload endpoint');\n }\n\n return data.file as { id: string; displayName: string; url: string };\n } catch (error) {\n console.error('Error uploading file:', error);\n return null;\n }\n}\n\nexport const openFilePicker = async (options?: OpenFilePickerOptions) => {\n const win = window as WindowWithFilePicker;\n if (!win.showOpenFilePicker) {\n console.error('File Picker API is not supported in this browser.');\n return;\n }\n\n try {\n const fileHandles = await win.showOpenFilePicker(options);\n const fileHandle = fileHandles[0];\n const file = await fileHandle.getFile();\n const uploadedFile = await uploadFile(file);\n\n if (!uploadedFile) {\n console.error('Failed to upload file.');\n return;\n }\n\n return {\n id: uploadedFile.id,\n name: uploadedFile.displayName,\n url: uploadedFile.url\n }\n } catch (error) {\n console.error('Error opening file picker:', error);\n return null;\n }\n};", "import React from 'react';\nimport { Box } from '@wix/design-system';\nimport type { HeaderProps } from './Header.types';\n\nexport const Header = React.forwardRef<HTMLDivElement, HeaderProps>(\n ({\n className,\n children,\n title,\n subtitle,\n image,\n onClose,\n ...rest\n }, ref) => {\n return (\n <Box ref={ref} className=\"site-chat-component-header-container\" verticalAlign='middle'>\n <Box width='100%' direction='horizontal' align='center' gap='10px'>\n {image && (\n <Box className='site-chat-component-header-image' width='60px' height='50px' borderRadius='999px'>\n <img style={{ borderRadius: '999px' }} width={'100%'} height={'100%'} src={String(image)} alt=\"Business Logo\" />\n </Box>\n )}\n <Box direction='vertical' className='site-chat-component-header-text-section'>\n <Box className=\"site-chat-component-header-top-section\">\n <Box className=\"site-chat-component-header-top\" verticalAlign='middle' WebkitJustifyContent='space-between' width=\"100%\">\n {title && (<h2 className='site-chat-component-header-title'>{title}</h2>)}\n <button\n onClick={onClose}\n aria-label=\"Close\"\n className=\"site-chat-component-header-close-button\"\n >\n \u2715\n </button>\n </Box>\n </Box>\n\n <Box className=\"site-chat-component-header-bottom-section\">\n {subtitle && (<h3 className=\"site-chat-component-header-subtitle\">{subtitle}</h3>)}\n </Box>\n </Box>\n </Box>\n </Box>\n\n );\n }\n);\n\nHeader.displayName = 'SiteChatComponent.Header';\n", "import React from 'react';\nimport type { MessageContainerProps } from './MessageContainer.types';\nimport { Box } from '@wix/design-system';\nimport MessageWrapper from './messages/messages-wrapper';\n\nexport const MessageContainer = React.forwardRef<HTMLDivElement, MessageContainerProps>(\n ({\n className,\n children,\n messages,\n loading,\n ...rest\n }, ref) => {\n return (\n <Box ref={ref} className=\"site-chat-component-message-container\">\n {loading && (\n <Box className=\"site-chat-component-message-container-loading-state\">\n <p>Loading messages...</p>\n </Box>\n )}\n {messages.length === 0 && !loading && (\n <Box className=\"site-chat-component-message-container-empty-state\">\n <p>No messages yet. Start a conversation</p>\n </Box>\n )}\n {messages.length > 0 && <MessageWrapper messages={messages} />}\n </Box>\n\n );\n }\n);\n\nMessageContainer.displayName = 'SiteChatComponent.MessageContainer';\n", "import { type FC } from 'react';\nimport { useRef, useEffect } from 'react';\nimport { Avatar } from '@wix/design-system';\nimport Attachment from './attachment';\nimport type { MessagesWrapperProps } from '@jrapps/my_tickets_common_types'\n\nconst AGENT_MESSAGE_GAP = '10px';\nconst AGENT_MESSAGE_WIDTH = '75%';\nconst AGENT_MESSAGE_INNER_GAP = '4px';\n\nconst ONE_MINUTE_MS = 60_000;\nconst ONE_DAY_MS = 86_400_000;\nconst DAYS_IN_WEEK = 7;\n\nconst formatTimestamp = (timestamp?: number): string => {\n if (!timestamp) return '';\n const date = new Date(timestamp);\n const now = new Date();\n\n if (now.getTime() - date.getTime() < ONE_MINUTE_MS) return 'Just now';\n\n const time = date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\n const startOfToday = new Date(now.getFullYear(), now.getMonth(), now.getDate());\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const diffDays = Math.floor((startOfToday.getTime() - startOfDay.getTime()) / ONE_DAY_MS);\n\n if (diffDays === 0) return `Today at ${time}`;\n if (diffDays === 1) return `Yesterday at ${time}`;\n if (diffDays < DAYS_IN_WEEK && date.getDay() < now.getDay())\n return `${date.toLocaleDateString([], { weekday: 'short' })} at ${time}`;\n return `${date.toLocaleDateString([], { month: 'short', day: 'numeric', year: 'numeric' })} at ${time}`;\n};\n\nconst MessagesWrapper: FC<MessagesWrapperProps> = ({ messages = [] }) => {\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (wrapperRef.current) {\n wrapperRef.current.scrollTop = wrapperRef.current.scrollHeight;\n }\n }, [messages]);\n\n return (\n <div className=\"site-chat-component-message-container-messages-wrapper\" ref={wrapperRef}>\n {messages.map(({ _id, message, attachment, timestamp, type, agentName }: any, index: any) => (\n <div key={_id || index} className={`message-item ${type}`}>\n {type === 'agent' ? (\n <AgentMessageWrapper message={message} attachment={attachment ? (Array.isArray(attachment) ? attachment[0] : attachment) : undefined} timestamp={timestamp} agentName={agentName} />\n ) : type === 'user' ? (\n <UserMessageWrapper message={message} attachment={attachment ? (Array.isArray(attachment) ? attachment[0] : attachment) : undefined} timestamp={timestamp} />\n ) : (\n <SystemMessageWrapper message={message} timestamp={timestamp} />\n )}\n </div>\n ))}\n </div>\n )\n}\n\nconst GetSystemMessage: FC<{ type: string | undefined }> = ({ type }) => {\n switch (type) {\n case 'AGENT_JOINED':\n return <div className='site-chat-component-message-container-system-message-message'>An agent has joined the chat.</div>;\n case 'AGENT_LEFT':\n return <div className='site-chat-component-message-container-system-message-message'>An agent has left the chat.</div>;\n case 'USER_JOINED':\n return <div className='site-chat-component-message-container-system-message-message'>A user has joined the chat.</div>;\n case 'USER_LEFT':\n return <div className='site-chat-component-message-container-system-message-message'>A user has left the chat.</div>;\n case 'CHAT_ENDED':\n return <div className='site-chat-component-message-container-system-message-message'>The chat has ended.</div>;\n case 'CHAT_REOPENED':\n return <div className='site-chat-component-message-container-system-message-message'>The chat has been reopened.</div>;\n case 'CHAT_TRANSFERRED':\n return <div className='site-chat-component-message-container-system-message-message'>The chat has been transferred to another agent.</div>;\n case 'WAITING_FOR_AGENT':\n return <div className='site-chat-component-message-container-system-message-message'>Waiting for an agent to join the chat...</div>;\n default:\n return <div className='site-chat-component-message-container-system-message-message'>System message</div>;\n }\n}\n\nconst SystemMessageWrapper: FC<{ message: string | undefined; timestamp?: number }> = ({ message, timestamp }) => {\n return (\n <div className=\"site-chat-component-message-container-system-message-wrapper\">\n <div className=\"site-chat-component-message-container-system-message\">\n <hr className=\"dashed\" />\n <GetSystemMessage type={message} />\n <hr className=\"dashed\" />\n </div>\n </div>\n )\n}\n\nconst AgentMessageWrapper: FC<{ message?: string; attachment?: { id: string; name: string; url: string }; timestamp?: number; agentName?: string }> = ({ message, attachment, timestamp, agentName }) => {\n return (\n <div style={{ display: 'flex', flexDirection: 'row', gap: AGENT_MESSAGE_GAP }}>\n <Avatar size=\"size24\" className=\"site-chat-component-message-container-agent-message-avatar\" name={agentName} />\n <div style={{ width: AGENT_MESSAGE_WIDTH, gap: AGENT_MESSAGE_INNER_GAP, display: 'flex', flexDirection: 'column' }}>\n {agentName && <div className='site-chat-component-message-container-agent-name-time-container'><div className=\"site-chat-component-message-container-agent-name\">{agentName}</div><div className='site-chat-component-message-container-agent-message-timestamp'>{formatTimestamp(timestamp)}</div></div>}\n <div className={`site-chat-component-message-container-agent-message-wrapper${attachment ? '-attachment' : ''}`}>\n <div className=\"site-chat-component-message-container-agent-message\">\n {message && message}\n {attachment && <Attachment item={attachment} />}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nconst UserMessageWrapper: FC<{ message?: string; attachment?: { id: string; name: string; url: string }; timestamp?: number }> = ({ message, attachment, timestamp }) => {\n return (\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'flex-end', gap: '4px' }}>\n {!attachment && <div className='site-chat-component-message-container-user-name'>Me</div>}\n <div className={`site-chat-component-message-container-user-message-wrapper${attachment ? '-attachment' : ''}`}>\n <div className=\"site-chat-component-message-container-user-message\">\n {message && message}\n {attachment && <Attachment item={attachment} />}\n </div>\n </div>\n </div>\n )\n}\n\nexport default MessagesWrapper;", "import { type FC } from 'react';\n\nimport { TextButton, Box } from '@wix/design-system';\nimport {\n Page as PageSmallIcon\n} from '@wix/wix-ui-icons-common';\nimport { ArrowTopRight as ArrowTopRightIcon, } from '@wix/wix-ui-icons-common/on-stage';\nimport type { AttachmentWrapperProps } from '@jrapps/my_tickets_common_types'\n\n\nconst Attachment: FC<AttachmentWrapperProps> = ({ item }) => {\n return (\n <Box direction='horizontal' maxWidth='100%' boxSizing='border-box' className='site-chat-component-message-container-in-chat-file-item-wrapper-box'>\n {item && (\n <div className='site-chat-component-message-container-in-chat-file-item-container' key={item.id}>\n <PageSmallIcon className='site-chat-component-message-container-in-chat-file-icon' width={'20px'} height={'20px'} />\n <div className='site-chat-component-message-container-in-chat-file-names-container'>\n <span className='site-chat-component-message-container-in-chat-file-name'>{item.name}</span>\n <span className='site-chat-component-message-container-in-chat-file-sub-name'>Attachment</span>\n </div>\n <TextButton size='tiny' onClick={() => window.open(item.url, '_blank')} suffixIcon={<ArrowTopRightIcon size={'tiny'} />}>Open</TextButton>\n </div>\n )}\n </Box>\n );\n}\n\nexport default Attachment;", "if (typeof document !== 'undefined' && !document.getElementById(\"jrapps-style-3c48ccde\")) {\n const s = document.createElement('style');\n s.id = \"jrapps-style-3c48ccde\";\n s.textContent = \".site-chat-component {\\n /* SiteChatComponent base styles */\\n}\\n\\n/* ---------- Header styles ---------- */\\n\\n.site-chat-component-header-container {\\n background: var(--my-tickets-chat-widget-panel-header-background-color);\\n padding: 10px;\\n border-top-right-radius: inherit;\\n border-top-left-radius: inherit;\\n}\\n\\n.site-chat-component-header-container .site-chat-component-header-text-section {\\n width: 100%;\\n}\\n\\n.site-chat-component-header-title {\\n font-style: var(--my-tickets-chat-widget-panel-header-title-font-style);\\n margin-bottom: 0 !important;\\n color: var(--my-tickets-chat-widget-panel-header-title-color);\\n}\\n\\n.site-chat-component-header-subtitle {\\n font-style: var(--my-tickets-chat-widget-panel-header-subtitle-font-style);\\n font-weight: normal !important;\\n margin-top: 0 !important;\\n color: var(--my-tickets-chat-widget-panel-header-subtitle-color);\\n}\\n\\n.site-chat-component-header-close-button {\\n cursor: pointer !important;\\n background: none;\\n border: none;\\n padding: 4px;\\n color: var(--my-tickets-chat-widget-panel-header-button-color);\\n font-size: 1.25rem;\\n line-height: 1;\\n border-radius: 4px;\\n transition: opacity 0.15s;\\n}\\n\\n.site-chat-component-header-close-button:hover {\\n opacity: 0.8;\\n}\\n\\n/* ---------- Footer styles ---------- */\\n\\n.site-chat-component-footer-message-input-container {\\n padding: var(--cw-space-md, 16px);\\n background: var(--my-tickets-chat-widget-panel-footer-background-color);\\n font-family: var(--cw-font, sans-serif);\\n border-radius: 0 0 var(--cw-radius-panel, 16px) var(--cw-radius-panel, 16px);\\n}\\n\\n.site-chat-component-footer-attachment-icon-button {\\n width: 20px;\\n height: 20px;\\n}\\n\\n.site-chat-component-footer-my-tickets-chat-widget-send-button {\\n background: var(--my-tickets-chat-widget-panel-footer-button-color);\\n border: 1px solid var(--my-tickets-chat-widget-panel-footer-button-border-color);\\n color: var(--my-tickets-chat-widget-panel-footer-button-text-color);\\n padding: 6px;\\n border-radius: 4px;\\n width: 80px;\\n cursor: pointer;\\n}\\n\\n.site-chat-component-footer-my-tickets-chat-widget-send-button:disabled {\\n opacity: 0.5;\\n cursor: default;\\n}\\n\\n.site-chat-component-footer-file-item-container {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 2px 4px;\\n border-radius: var(--wds-input-area-border-radius-default-medium, 6px);\\n background-color: var(--wds-color-surface, var(--wsr-color-surface, #FFFFFF));\\n border: 1px solid var(--wds-input-border-color, var(--wsr-color-B40, #D6E6FE));\\n box-sizing: border-box;\\n}\\n\\n.site-chat-component-footer-file-name {\\n font-family: var(--wds-font-family-default, var(--wsr-font-family, Madefor, \\\"Helvetica Neue\\\", Helvetica, Arial, \\\"\\\\30E1\\\\30A4\\\\30EA\\\\30AA\\\", \\\"meiryo\\\", \\\"\\\\30D2\\\\30E9\\\\30AE\\\\30CE\\\\89D2\\\\30B4 pro w3\\\", \\\"hiragino kaku gothic pro\\\", sans-serif));\\n font-size: var(--wds-font-size-body-small, var(--wsr-text-font-size-small, 14px));\\n font-weight: var(--wds-font-weight-regular, var(--wsr-font-weight-regular, 400));\\n line-height: var(--wds-font-line-height-body-small, var(--wsr-text-line-height-small, 20px));\\n letter-spacing: var(--wds-font-letter-spacing-0, unset);\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 115px;\\n}\\n\\n.site-chat-component-footer-input-wrapper {\\n padding: 5px;\\n box-sizing: border-box;\\n width: inherit;\\n display: flex;\\n justify-content: center;\\n flex-direction: row;\\n gap: 10px;\\n border-radius: 4px;\\n background: var(--my-tickets-chat-widget-panel-footer-input-background-color);\\n border: 2px solid var(--my-tickets-chat-widget-panel-footer-input-border-color);\\n color: var(--my-tickets-chat-widget-panel-footer-input-text-color);\\n font-size: var(--my-tickets-chat-widget-panel-footer-input-text-size);\\n font-family: 'Arial', sans-serif;\\n}\\n\\n.site-chat-component-footer-suffix {\\n background: inherit;\\n width: max-content;\\n min-height: 100%;\\n max-height: 100%;\\n align-items: center;\\n justify-content: center;\\n display: flex;\\n font-size: inherit;\\n padding: 0px;\\n margin: 0px;\\n font-family: inherit;\\n color: inherit;\\n box-sizing: border-box;\\n}\\n\\n.site-chat-component-footer-chat-input {\\n background: inherit;\\n border: none;\\n font-size: inherit;\\n font-family: inherit;\\n color: inherit;\\n width: inherit;\\n}\\n\\n.site-chat-component-footer-chat-input::placeholder {\\n background: inherit;\\n border: none;\\n font-size: inherit;\\n font-family: inherit;\\n color: inherit;\\n opacity: 0.5;\\n}\\n\\n.site-chat-component-footer-chat-input:focus {\\n outline: none;\\n}\\n\\n/* ---------- Messages styles ---------- */\\n/* Message Container */\\n.site-chat-component-message-container {\\n display: flex !important;\\n flex-direction: column !important;\\n padding: var(--cw-space-md, 16px) !important;\\n background: var(--my-tickets-chat-widget-panel-messages-background-color) !important;\\n flex: 1 !important;\\n min-height: 0;\\n overflow-y: auto !important;\\n}\\n\\n.site-chat-component-message-container-messages-wrapper {\\n display: flex;\\n flex-direction: column;\\n gap: var(--cw-space-sm, 8px);\\n}\\n\\n.site-chat-component-message-container-agent-message-wrapper,\\n.site-chat-component-message-container-user-message-wrapper {\\n display: flex;\\n padding: 10px 14px;\\n border-radius: var(--cw-radius-bubble, 12px);\\n width: max-content;\\n max-width: 80%;\\n font-family: var(--cw-font, sans-serif);\\n}\\n\\n.site-chat-component-message-container-agent-name {\\n color: var(--my-tickets-chat-widget-panel-messages-agent-name-text-color);\\n font-size: var(--my-tickets-chat-widget-panel-messages-agent-name-text-size);\\n font-weight: 500;\\n}\\n\\n.site-chat-component-message-container-user-name {\\n color: var(--my-tickets-chat-widget-panel-messages-user-name-text-color);\\n font-size: var(--my-tickets-chat-widget-panel-messages-user-name-text-size);\\n font-weight: 500;\\n display: var(--my-tickets-chat-widget-panel-messages-user-name-text-visible);\\n}\\n\\n.site-chat-component-message-container-agent-message-avatar {\\n margin-top: 20px;\\n display: var(--my-tickets-chat-widget-panel-messages-agent-icon-visible);\\n}\\n\\n.site-chat-component-message-container-user-message,\\n.site-chat-component-message-container-agent-message {\\n line-height: 1.5;\\n word-wrap: break-word;\\n}\\n\\n.site-chat-component-message-container-agent-message {\\n font-size: var(--my-tickets-chat-widget-panel-messages-agent-text-size);\\n}\\n\\n.site-chat-component-message-container-user-message {\\n font-size: var(--my-tickets-chat-widget-panel-messages-user-text-size);\\n}\\n\\n.site-chat-component-message-container-agent-message-wrapper {\\n justify-content: flex-start;\\n align-self: flex-start;\\n background-color: var(--my-tickets-chat-widget-panel-messages-agent-bubble-color);\\n color: var(--my-tickets-chat-widget-panel-messages-agent-text-color);\\n}\\n\\n.site-chat-component-message-container-user-message-wrapper {\\n justify-content: flex-end;\\n align-self: flex-end;\\n margin-left: auto;\\n background-color: var(--my-tickets-chat-widget-panel-messages-user-bubble-color);\\n color: var(--my-tickets-chat-widget-panel-messages-user-text-color);\\n}\\n\\n.site-chat-component-message-container-agent-name-time-container {\\n gap: 8px;\\n display: flex;\\n align-items: center;\\n font-family: 'Madefor';\\n font-size: 13px;\\n}\\n\\n/* System Messages */\\n\\n.site-chat-component-message-container-system-message {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n gap: var(--cw-space-sm, 8px);\\n}\\n\\n.site-chat-component-message-container-system-message .dashed {\\n flex: 1;\\n border: none;\\n border-top: 1px dashed var(--my-tickets-chat-widget-panel-messages-system-color);\\n margin: 0;\\n}\\n\\n.site-chat-component-message-container-system-message-message {\\n color: var(--my-tickets-chat-widget-panel-messages-system-color);\\n font-family: var(--cw-font, sans-serif);\\n font-size: var(--my-tickets-chat-widget-panel-messages-system-size);\\n font-weight: 500;\\n white-space: nowrap;\\n}\\n\\n/* Empty and Loading States */\\n\\n.site-chat-component-message-container-empty-state {\\n display: flex;\\n flex: 1;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.site-chat-component-message-container-empty-state p {\\n font-family: var(--cw-font, sans-serif);\\n font-size: 14px;\\n color: var(--my-tickets-chat-widget-panel-messages-system-color);\\n}\\n\\n.site-chat-component-message-container-loading-state {\\n display: flex;\\n flex: 1;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.site-chat-component-message-container-loading-state p {\\n font-family: var(--cw-font, sans-serif);\\n font-size: 14px;\\n color: var(--my-tickets-chat-widget-panel-messages-system-color);\\n}\\n\\n.site-chat-component-message-container-in-chat-file-item-container {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n padding: 4px 8px;\\n border-radius: var(--wds-input-area-border-radius-default-medium, 6px);\\n background-color: var(--wds-color-surface, var(--wsr-color-surface, #FFFFFF));\\n border: 1px solid var(--wds-input-border-color, var(--wsr-color-B40, #D6E6FE));\\n box-sizing: border-box;\\n}\\n\\n.site-chat-component-message-container-in-chat-file-name {\\n font-family: var(--wds-font-family-default, var(--wsr-font-family, Madefor, \\\"Helvetica Neue\\\", Helvetica, Arial, \\\"\\\\30E1\\\\30A4\\\\30EA\\\\30AA\\\", \\\"meiryo\\\", \\\"\\\\30D2\\\\30E9\\\\30AE\\\\30CE\\\\89D2\\\\30B4 pro w3\\\", \\\"hiragino kaku gothic pro\\\", sans-serif));\\n font-size: var(--wds-font-size-body-tiny, var(--wsr-text-font-size-tiny, 10px));\\n font-weight: var(--wds-font-weight-regular, var(--wsr-font-weight-regular, 400));\\n line-height: var(--wds-font-line-height-body-tiny, var(--wsr-text-line-height-tiny, 12px));\\n letter-spacing: var(--wds-font-letter-spacing-0, unset);\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n max-width: 150px;\\n color: black;\\n}\\n\\n.site-chat-component-message-container-in-chat-file-sub-name {\\n font-family: var(--wds-font-family-default, var(--wsr-font-family, Madefor, \\\"Helvetica Neue\\\", Helvetica, Arial, \\\"\\\\30E1\\\\30A4\\\\30EA\\\\30AA\\\", \\\"meiryo\\\", \\\"\\\\30D2\\\\30E9\\\\30AE\\\\30CE\\\\89D2\\\\30B4 pro w3\\\", \\\"hiragino kaku gothic pro\\\", sans-serif));\\n font-size: var(--wds-font-size-body-tiny, var(--wsr-text-font-size-tiny, 10px));\\n font-weight: var(--wds-font-weight-regular, var(--wsr-font-weight-regular, 400));\\n line-height: var(--wds-font-line-height-body-tiny, var(--wsr-text-line-height-tiny, 12px));\\n letter-spacing: var(--wds-font-letter-spacing-0, unset);\\n color: var(--wds-color-text-secondary, var(--wsr-color-text-secondary, #6B6B6B));\\n}\\n\\n.site-chat-component-message-container-in-chat-file-icon {\\n fill: black !important;\\n}\\n\\n.site-chat-component-message-container-in-chat-file-names-container {\\n display: flex;\\n flex-direction: column;\\n gap: 0px;\\n}\\n\\n.site-chat-component-message-container-user-message-wrapper-attachment .site-chat-component-message-container-in-chat-file-item-wrapper-box {\\n align-items: flex-end;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.site-chat-component-message-container-agent-message-wrapper-attachment .site-chat-component-message-container-in-chat-file-item-wrapper-box {\\n align-items: flex-start;\\n display: flex;\\n flex-direction: column;\\n}\\n\\n/* FAB */\\n.site-chat-component-fab {\\n position: fixed;\\n bottom: 24px;\\n right: 24px;\\n gap: 4.5px;\\n cursor: pointer;\\n z-index: 100;\\n user-select: none;\\n border-radius: 99px;\\n padding: 9px 25px;\\n transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-direction: row;\\n\\n font-size: var(--my-tickets-chat-widget-button-text-size) !important;\\n background-color: var(--my-tickets-chat-widget-button-color);\\n border: 1px solid var(--my-tickets-chat-widget-button-border-color);\\n color: var(--my-tickets-chat-widget-button-text-color);\\n font: var(--my-tickets-chat-widget-button-text-font);\\n}\\n\\n.site-chat-component-fab-fab-button-label {\\n margin: 0;\\n padding: 0;\\n line-height: 1;\\n display: inline-flex;\\n align-items: center;\\n margin-top: 2px;\\n}\\n\\n.site-chat-component-fab-fab-button-icon,\\n.site-chat-component-fab-fab-button-text {\\n display: inline-flex;\\n align-items: center;\\n height: 100%;\\n}\\n\\n.site-chat-component-fab-fab-button-icon svg {\\n width: var(--my-tickets-chat-widget-button-icon-size);\\n height: var(--my-tickets-chat-widget-button-icon-size);\\n font-weight: inherit;\\n}\\n\\n/* \u2500\u2500 Design Tokens \u2500\u2500 */\\n:host {\\n --cw-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\\n\\n /* Primary palette */\\n --cw-primary: #3B82F6;\\n --cw-primary-hover: #2563EB;\\n --cw-primary-light: #EFF6FF;\\n --cw-primary-shadow: rgba(59, 130, 246, 0.35);\\n --cw-primary-shadow-hover: rgba(59, 130, 246, 0.5);\\n\\n /* Neutrals */\\n --cw-bg: #F8FAFC;\\n --cw-surface: #FFFFFF;\\n --cw-border: #E2E8F0;\\n\\n /* Text */\\n --cw-text: #1E293B;\\n --cw-text-muted: #64748B;\\n --cw-text-inverse: #FFFFFF;\\n\\n /* Message bubbles */\\n --cw-bubble-user: var(--cw-primary);\\n --cw-bubble-user-text: var(--cw-text-inverse);\\n --cw-bubble-agent: #F1F5F9;\\n --cw-bubble-agent-text: var(--cw-text);\\n\\n /* Radii */\\n --cw-radius-panel: 16px;\\n --cw-radius-bubble: 12px;\\n --cw-radius-pill: 50px;\\n\\n /* Spacing */\\n --cw-space-xs: 4px;\\n --cw-space-sm: 8px;\\n --cw-space-md: 16px;\\n --cw-space-lg: 24px;\\n\\n /* Shadows */\\n --cw-shadow-panel: 0 20px 60px rgba(0, 0, 0, 0.12), 0 4px 16px rgba(0, 0, 0, 0.05);\\n --cw-shadow-fab: 0 8px 24px var(--cw-primary-shadow);\\n --cw-shadow-fab-hover: 0 12px 32px var(--cw-primary-shadow-hover);\\n}\\n\\n/* \u2500\u2500 Hide toggle \u2500\u2500 */\\n#site-chat-component-chat-toggle {\\n display: none;\\n}\\n\\n/* \u2500\u2500 Panel \u2500\u2500 */\\n.site-chat-component-panel {\\n position: fixed !important;\\n bottom: 60px;\\n right: 30px;\\n width: min(340px, 100vw);\\n max-height: 50vh;\\n max-height: 50dvh;\\n background: var(--cw-surface);\\n border-radius: var(--cw-radius-panel, 16px) !important;\\n box-shadow: var(--cw-shadow-panel);\\n transform: scale(0.85) translateY(16px);\\n transform-origin: bottom right;\\n opacity: 0;\\n pointer-events: none;\\n transition: transform 0.3s cubic-bezier(.175, .885, .32, 1.275), opacity 0.25s ease;\\n z-index: 99;\\n display: flex !important;\\n flex-direction: column !important;\\n min-height: 450px;\\n font-family: var(--cw-font);\\n overflow: hidden;\\n border: 0px solid var(--wst-color-line);\\n box-shadow: 0 2px 6px var(--wst-color-line), 0 0 0 1px var(--wst-color-line);\\n}\\n\\n.site-chat-component-panel.open {\\n transform: scale(1) translateY(0);\\n opacity: 1;\\n pointer-events: all;\\n z-index: 101;\\n bottom: 10px;\\n}\\n\\n/* \u2500\u2500 Mobile: fill screen \u2500\u2500 */\\n@media (max-width: 480px) {\\n .site-chat-component-panel {\\n width: 100vw;\\n height: 100vh;\\n height: 100dvh;\\n min-height: 0;\\n max-height: none;\\n bottom: 0;\\n right: 0;\\n }\\n\\n .site-chat-component-panel.open {\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n }\\n}\\n\\n/* \u2500\u2500 Small tablets \u2500\u2500 */\\n@media (min-width: 481px) and (max-width: 768px) {\\n .site-chat-component-panel {\\n width: min(380px, calc(100vw - 24px));\\n max-height: 70vh;\\n max-height: 70dvh;\\n }\\n}\\n\\n/* \u2500\u2500 Large screens \u2500\u2500 */\\n@media (min-width: 1200px) {\\n .site-chat-component-panel {\\n width: 350px;\\n max-height: 70vh;\\n max-height: 70dvh;\\n }\\n}\\n\";\n document.head.appendChild(s);\n}"],
5
- "mappings": "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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAChB,WAAS,KAAK,YAAY,CAAC;AAC7B;;;AZwBY,gBAAAI,OAQJ,QAAAC,aARI;AAlBZ,IAAM,wBAAwBC,OAAM;AAAA,EAClC,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GACA,SACG;AACH,yBAAqB;AAErB,QAAI,aAAa,UAAU;AACzB,UAAI,OAAO,wBAAwB,aAAa;AAC9C,eACE,gBAAAF,MAACG,MAAA,EAAI,OAAM,UAAS,eAAc,UAAS,QAAO,QAAO,OAAM,QAC7D,0BAAAH,MAAC,QAAK,oFAEN,GACF;AAAA,MAEJ;AAEA,aACE,gBAAAC,MAACE,MAAA,EACC;AAAA,wBAAAH,MAAC,aAAU,SAAS,cAAc,MAAM,iBAAiB;AAAA,QACzD,gBAAAA,MAACG,MAAA,EAAI,WAAW,6BAA6B,sBAAsB,SAAS,EAAE,IAC3E,UACH;AAAA,SACF;AAAA,IAEJ;AAEA,WACE,gBAAAF,MAACE,MAAA,EACC;AAAA,sBAAAH,MAAC,aAAU,SAAS,cAAc,MAAM,iBAAiB;AAAA,MACzD,gBAAAA,MAACG,MAAA,EAAI,WAAW,6BAA6B,SAAS,SAAS,EAAE,IAC9D,UACH;AAAA,OACF;AAAA,EAEJ;AACF;AAEA,sBAAsB,cAAc;AAE7B,IAAM,oBAAoB,OAAO,OAAO,uBAAuB;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;",
6
- "names": ["React", "Box", "React", "Box", "jsx", "Box", "jsx", "jsxs", "IconButton", "jsx", "jsxs", "IconButton", "jsx", "jsxs", "React", "Box", "React", "Box", "jsx", "jsxs", "React", "Box", "useEffect", "Box", "PageSmallIcon", "jsx", "jsxs", "jsx", "jsxs", "useEffect", "jsx", "jsxs", "React", "Box", "jsx", "jsxs", "React", "Box"]
7
- }