@blockspark/chat-widget 1.0.7 → 1.0.9

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 (202) hide show
  1. package/README.md +117 -140
  2. package/dist/_virtual/_plugin-vue_export-helper.cjs.js +2 -0
  3. package/dist/_virtual/_plugin-vue_export-helper.cjs.js.map +1 -0
  4. package/dist/_virtual/_plugin-vue_export-helper.esm.js +11 -0
  5. package/dist/_virtual/_plugin-vue_export-helper.esm.js.map +1 -0
  6. package/dist/components/ChatWidget.cjs.js +2 -0
  7. package/dist/components/ChatWidget.cjs.js.map +1 -0
  8. package/dist/components/ChatWidget.d.ts.map +1 -1
  9. package/dist/components/ChatWidget.esm.js +1129 -0
  10. package/dist/components/ChatWidget.esm.js.map +1 -0
  11. package/dist/components/ChatWidget.vue.cjs.js +2 -0
  12. package/dist/components/ChatWidget.vue.cjs.js.map +1 -0
  13. package/dist/components/ChatWidget.vue.cjs2.js +2 -0
  14. package/dist/components/ChatWidget.vue.cjs2.js.map +1 -0
  15. package/dist/components/ChatWidget.vue.esm.js +8 -0
  16. package/dist/components/ChatWidget.vue.esm.js.map +1 -0
  17. package/dist/components/ChatWidget.vue.esm2.js +374 -0
  18. package/dist/components/ChatWidget.vue.esm2.js.map +1 -0
  19. package/dist/composables/useChatWidget.cjs.js +2 -0
  20. package/dist/composables/useChatWidget.cjs.js.map +1 -0
  21. package/dist/composables/useChatWidget.d.ts +35 -0
  22. package/dist/composables/useChatWidget.d.ts.map +1 -0
  23. package/dist/composables/useChatWidget.esm.js +75 -0
  24. package/dist/composables/useChatWidget.esm.js.map +1 -0
  25. package/dist/core/stateManager.cjs.js +2 -0
  26. package/dist/core/stateManager.cjs.js.map +1 -0
  27. package/dist/core/stateManager.esm.js +915 -0
  28. package/dist/core/stateManager.esm.js.map +1 -0
  29. package/dist/entry/nuxt.d.ts +9 -4
  30. package/dist/entry/nuxt.d.ts.map +1 -1
  31. package/dist/entry/vanilla.cjs.js +2 -0
  32. package/dist/entry/vanilla.cjs.js.map +1 -0
  33. package/dist/entry/vanilla.esm.js +50 -0
  34. package/dist/entry/vanilla.esm.js.map +1 -0
  35. package/dist/entry/vue.d.ts +8 -5
  36. package/dist/entry/vue.d.ts.map +1 -1
  37. package/dist/hooks/useChatMode.cjs.js +2 -0
  38. package/dist/hooks/useChatMode.cjs.js.map +1 -0
  39. package/dist/hooks/useChatMode.esm.js +61 -0
  40. package/dist/hooks/useChatMode.esm.js.map +1 -0
  41. package/dist/index.cjs.js +2 -2
  42. package/dist/index.cjs.js.map +1 -0
  43. package/dist/index.esm.js +16 -2
  44. package/dist/index.esm.js.map +1 -0
  45. package/dist/node_modules/jose/dist/browser/jws/compact/sign.cjs.js +2 -0
  46. package/dist/node_modules/jose/dist/browser/jws/compact/sign.cjs.js.map +1 -0
  47. package/dist/node_modules/jose/dist/browser/jws/compact/sign.esm.js +21 -0
  48. package/dist/node_modules/jose/dist/browser/jws/compact/sign.esm.js.map +1 -0
  49. package/dist/node_modules/jose/dist/browser/jws/flattened/sign.cjs.js +2 -0
  50. package/dist/node_modules/jose/dist/browser/jws/flattened/sign.cjs.js.map +1 -0
  51. package/dist/node_modules/jose/dist/browser/jws/flattened/sign.esm.js +84 -0
  52. package/dist/node_modules/jose/dist/browser/jws/flattened/sign.esm.js.map +1 -0
  53. package/dist/node_modules/jose/dist/browser/jwt/produce.cjs.js +2 -0
  54. package/dist/node_modules/jose/dist/browser/jwt/produce.cjs.js.map +1 -0
  55. package/dist/node_modules/jose/dist/browser/jwt/produce.esm.js +72 -0
  56. package/dist/node_modules/jose/dist/browser/jwt/produce.esm.js.map +1 -0
  57. package/dist/node_modules/jose/dist/browser/jwt/sign.cjs.js +2 -0
  58. package/dist/node_modules/jose/dist/browser/jwt/sign.cjs.js.map +1 -0
  59. package/dist/node_modules/jose/dist/browser/jwt/sign.esm.js +22 -0
  60. package/dist/node_modules/jose/dist/browser/jwt/sign.esm.js.map +1 -0
  61. package/dist/node_modules/jose/dist/browser/key/import.cjs.js +2 -0
  62. package/dist/node_modules/jose/dist/browser/key/import.cjs.js.map +1 -0
  63. package/dist/node_modules/jose/dist/browser/key/import.esm.js +11 -0
  64. package/dist/node_modules/jose/dist/browser/key/import.esm.js.map +1 -0
  65. package/dist/node_modules/jose/dist/browser/lib/buffer_utils.cjs.js +2 -0
  66. package/dist/node_modules/jose/dist/browser/lib/buffer_utils.cjs.js.map +1 -0
  67. package/dist/node_modules/jose/dist/browser/lib/buffer_utils.esm.js +18 -0
  68. package/dist/node_modules/jose/dist/browser/lib/buffer_utils.esm.js.map +1 -0
  69. package/dist/node_modules/jose/dist/browser/lib/check_key_type.cjs.js +2 -0
  70. package/dist/node_modules/jose/dist/browser/lib/check_key_type.cjs.js.map +1 -0
  71. package/dist/node_modules/jose/dist/browser/lib/check_key_type.esm.js +77 -0
  72. package/dist/node_modules/jose/dist/browser/lib/check_key_type.esm.js.map +1 -0
  73. package/dist/node_modules/jose/dist/browser/lib/crypto_key.cjs.js +2 -0
  74. package/dist/node_modules/jose/dist/browser/lib/crypto_key.cjs.js.map +1 -0
  75. package/dist/node_modules/jose/dist/browser/lib/crypto_key.esm.js +101 -0
  76. package/dist/node_modules/jose/dist/browser/lib/crypto_key.esm.js.map +1 -0
  77. package/dist/node_modules/jose/dist/browser/lib/epoch.cjs.js +2 -0
  78. package/dist/node_modules/jose/dist/browser/lib/epoch.cjs.js.map +1 -0
  79. package/dist/node_modules/jose/dist/browser/lib/epoch.esm.js +5 -0
  80. package/dist/node_modules/jose/dist/browser/lib/epoch.esm.js.map +1 -0
  81. package/dist/node_modules/jose/dist/browser/lib/invalid_key_input.cjs.js +2 -0
  82. package/dist/node_modules/jose/dist/browser/lib/invalid_key_input.cjs.js.map +1 -0
  83. package/dist/node_modules/jose/dist/browser/lib/invalid_key_input.esm.js +32 -0
  84. package/dist/node_modules/jose/dist/browser/lib/invalid_key_input.esm.js.map +1 -0
  85. package/dist/node_modules/jose/dist/browser/lib/is_disjoint.cjs.js +2 -0
  86. package/dist/node_modules/jose/dist/browser/lib/is_disjoint.cjs.js.map +1 -0
  87. package/dist/node_modules/jose/dist/browser/lib/is_disjoint.esm.js +25 -0
  88. package/dist/node_modules/jose/dist/browser/lib/is_disjoint.esm.js.map +1 -0
  89. package/dist/node_modules/jose/dist/browser/lib/is_jwk.cjs.js +2 -0
  90. package/dist/node_modules/jose/dist/browser/lib/is_jwk.cjs.js.map +1 -0
  91. package/dist/node_modules/jose/dist/browser/lib/is_jwk.esm.js +20 -0
  92. package/dist/node_modules/jose/dist/browser/lib/is_jwk.esm.js.map +1 -0
  93. package/dist/node_modules/jose/dist/browser/lib/is_object.cjs.js +2 -0
  94. package/dist/node_modules/jose/dist/browser/lib/is_object.cjs.js.map +1 -0
  95. package/dist/node_modules/jose/dist/browser/lib/is_object.esm.js +20 -0
  96. package/dist/node_modules/jose/dist/browser/lib/is_object.esm.js.map +1 -0
  97. package/dist/node_modules/jose/dist/browser/lib/secs.cjs.js +2 -0
  98. package/dist/node_modules/jose/dist/browser/lib/secs.cjs.js.map +1 -0
  99. package/dist/node_modules/jose/dist/browser/lib/secs.esm.js +59 -0
  100. package/dist/node_modules/jose/dist/browser/lib/secs.esm.js.map +1 -0
  101. package/dist/node_modules/jose/dist/browser/lib/validate_crit.cjs.js +2 -0
  102. package/dist/node_modules/jose/dist/browser/lib/validate_crit.cjs.js.map +1 -0
  103. package/dist/node_modules/jose/dist/browser/lib/validate_crit.esm.js +34 -0
  104. package/dist/node_modules/jose/dist/browser/lib/validate_crit.esm.js.map +1 -0
  105. package/dist/node_modules/jose/dist/browser/runtime/asn1.cjs.js +2 -0
  106. package/dist/node_modules/jose/dist/browser/runtime/asn1.cjs.js.map +1 -0
  107. package/dist/node_modules/jose/dist/browser/runtime/asn1.esm.js +103 -0
  108. package/dist/node_modules/jose/dist/browser/runtime/asn1.esm.js.map +1 -0
  109. package/dist/node_modules/jose/dist/browser/runtime/base64url.cjs.js +2 -0
  110. package/dist/node_modules/jose/dist/browser/runtime/base64url.cjs.js.map +1 -0
  111. package/dist/node_modules/jose/dist/browser/runtime/base64url.esm.js +43 -0
  112. package/dist/node_modules/jose/dist/browser/runtime/base64url.esm.js.map +1 -0
  113. package/dist/node_modules/jose/dist/browser/runtime/check_key_length.cjs.js +2 -0
  114. package/dist/node_modules/jose/dist/browser/runtime/check_key_length.cjs.js.map +1 -0
  115. package/dist/node_modules/jose/dist/browser/runtime/check_key_length.esm.js +12 -0
  116. package/dist/node_modules/jose/dist/browser/runtime/check_key_length.esm.js.map +1 -0
  117. package/dist/node_modules/jose/dist/browser/runtime/get_sign_verify_key.cjs.js +2 -0
  118. package/dist/node_modules/jose/dist/browser/runtime/get_sign_verify_key.cjs.js.map +1 -0
  119. package/dist/node_modules/jose/dist/browser/runtime/get_sign_verify_key.esm.js +25 -0
  120. package/dist/node_modules/jose/dist/browser/runtime/get_sign_verify_key.esm.js.map +1 -0
  121. package/dist/node_modules/jose/dist/browser/runtime/is_key_like.cjs.js +2 -0
  122. package/dist/node_modules/jose/dist/browser/runtime/is_key_like.cjs.js.map +1 -0
  123. package/dist/node_modules/jose/dist/browser/runtime/is_key_like.esm.js +13 -0
  124. package/dist/node_modules/jose/dist/browser/runtime/is_key_like.esm.js.map +1 -0
  125. package/dist/node_modules/jose/dist/browser/runtime/jwk_to_key.cjs.js +2 -0
  126. package/dist/node_modules/jose/dist/browser/runtime/jwk_to_key.cjs.js.map +1 -0
  127. package/dist/node_modules/jose/dist/browser/runtime/jwk_to_key.esm.js +107 -0
  128. package/dist/node_modules/jose/dist/browser/runtime/jwk_to_key.esm.js.map +1 -0
  129. package/dist/node_modules/jose/dist/browser/runtime/normalize_key.cjs.js +2 -0
  130. package/dist/node_modules/jose/dist/browser/runtime/normalize_key.cjs.js.map +1 -0
  131. package/dist/node_modules/jose/dist/browser/runtime/normalize_key.esm.js +71 -0
  132. package/dist/node_modules/jose/dist/browser/runtime/normalize_key.esm.js.map +1 -0
  133. package/dist/node_modules/jose/dist/browser/runtime/sign.cjs.js +2 -0
  134. package/dist/node_modules/jose/dist/browser/runtime/sign.cjs.js.map +1 -0
  135. package/dist/node_modules/jose/dist/browser/runtime/sign.esm.js +14 -0
  136. package/dist/node_modules/jose/dist/browser/runtime/sign.esm.js.map +1 -0
  137. package/dist/node_modules/jose/dist/browser/runtime/subtle_dsa.cjs.js +2 -0
  138. package/dist/node_modules/jose/dist/browser/runtime/subtle_dsa.cjs.js.map +1 -0
  139. package/dist/node_modules/jose/dist/browser/runtime/subtle_dsa.esm.js +32 -0
  140. package/dist/node_modules/jose/dist/browser/runtime/subtle_dsa.esm.js.map +1 -0
  141. package/dist/node_modules/jose/dist/browser/runtime/webcrypto.cjs.js +2 -0
  142. package/dist/node_modules/jose/dist/browser/runtime/webcrypto.cjs.js.map +1 -0
  143. package/dist/node_modules/jose/dist/browser/runtime/webcrypto.esm.js +7 -0
  144. package/dist/node_modules/jose/dist/browser/runtime/webcrypto.esm.js.map +1 -0
  145. package/dist/node_modules/jose/dist/browser/util/errors.cjs.js +2 -0
  146. package/dist/node_modules/jose/dist/browser/util/errors.cjs.js.map +1 -0
  147. package/dist/node_modules/jose/dist/browser/util/errors.esm.js +131 -0
  148. package/dist/node_modules/jose/dist/browser/util/errors.esm.js.map +1 -0
  149. package/dist/node_modules/react-dom/client.cjs.js +2 -0
  150. package/dist/node_modules/react-dom/client.cjs.js.map +1 -0
  151. package/dist/node_modules/react-dom/client.esm.js +21 -0
  152. package/dist/node_modules/react-dom/client.esm.js.map +1 -0
  153. package/dist/nuxt.cjs.js +2 -0
  154. package/dist/nuxt.cjs.js.map +1 -0
  155. package/dist/nuxt.esm.js +10 -0
  156. package/dist/nuxt.esm.js.map +1 -0
  157. package/dist/services/chatService.cjs.js +2 -0
  158. package/dist/services/chatService.cjs.js.map +1 -0
  159. package/dist/services/chatService.esm.js +482 -0
  160. package/dist/services/chatService.esm.js.map +1 -0
  161. package/dist/services/dialogflowClient.cjs.js +2 -0
  162. package/dist/services/dialogflowClient.cjs.js.map +1 -0
  163. package/dist/services/dialogflowClient.esm.js +282 -0
  164. package/dist/services/dialogflowClient.esm.js.map +1 -0
  165. package/dist/services/sessionManager.cjs.js +2 -0
  166. package/dist/services/sessionManager.cjs.js.map +1 -0
  167. package/dist/services/sessionManager.esm.js +48 -0
  168. package/dist/services/sessionManager.esm.js.map +1 -0
  169. package/dist/styles.css +1 -596
  170. package/dist/utils/frameworkDetector.cjs.js +2 -0
  171. package/dist/utils/frameworkDetector.cjs.js.map +1 -0
  172. package/dist/utils/frameworkDetector.esm.js +125 -0
  173. package/dist/utils/frameworkDetector.esm.js.map +1 -0
  174. package/dist/utils/sanitize.cjs.js +2 -0
  175. package/dist/utils/sanitize.cjs.js.map +1 -0
  176. package/dist/utils/sanitize.d.ts +25 -0
  177. package/dist/utils/sanitize.d.ts.map +1 -0
  178. package/dist/utils/sanitize.esm.js +52 -0
  179. package/dist/utils/sanitize.esm.js.map +1 -0
  180. package/dist/utils/ssr.d.ts +35 -0
  181. package/dist/utils/ssr.d.ts.map +1 -0
  182. package/dist/vue.cjs.js +2 -1
  183. package/dist/vue.cjs.js.map +1 -0
  184. package/dist/vue.esm.js +10 -1
  185. package/dist/vue.esm.js.map +1 -0
  186. package/package.json +30 -23
  187. package/dist/index.cjs.js.LICENSE.txt +0 -27
  188. package/dist/index.esm.js.LICENSE.txt +0 -27
  189. package/dist/index.js +0 -2
  190. package/dist/index.js.LICENSE.txt +0 -9
  191. package/dist/index.umd.js +0 -2
  192. package/dist/index.umd.js.LICENSE.txt +0 -27
  193. package/dist/react.cjs.js +0 -2
  194. package/dist/react.cjs.js.LICENSE.txt +0 -9
  195. package/dist/react.esm.js +0 -2
  196. package/dist/react.esm.js.LICENSE.txt +0 -9
  197. package/dist/vue/ChatWidgetWrapper.d.ts +0 -182
  198. package/dist/vue/ChatWidgetWrapper.d.ts.map +0 -1
  199. package/dist/vue/index.d.ts +0 -191
  200. package/dist/vue/index.d.ts.map +0 -1
  201. package/dist/vue.js +0 -2
  202. package/dist/vue.js.LICENSE.txt +0 -39
package/dist/styles.css CHANGED
@@ -1,596 +1 @@
1
- /* ========================================
2
- Custom Chat Widget Styles
3
- ======================================== */
4
-
5
- /* Global Font Family - Segoe UI */
6
- .custom-chat-widget,
7
- .custom-welcome-popup,
8
- .custom-chat-window,
9
- .custom-chat-toggle-btn {
10
- font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
11
- -webkit-font-smoothing: antialiased;
12
- -moz-osx-font-smoothing: grayscale;
13
- }
14
-
15
- /* Welcome Popup */
16
- .custom-welcome-popup {
17
- position: fixed;
18
- bottom: 20px;
19
- right: 90px;
20
- background: linear-gradient(135deg, #091e3e 0%, #091e3e 100%);
21
- color: white;
22
- padding: 20px;
23
- border-radius: 12px;
24
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
25
- max-width: 350px;
26
- z-index: 99998;
27
- animation: customSlideIn 0.4s ease-out;
28
- cursor: pointer;
29
- transition: transform 0.2s;
30
- }
31
-
32
- .custom-welcome-popup:hover {
33
- transform: translateY(-2px);
34
- box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2);
35
- }
36
-
37
- @keyframes customSlideIn {
38
- from {
39
- transform: translateY(20px);
40
- opacity: 0;
41
- }
42
- to {
43
- transform: translateY(0);
44
- opacity: 1;
45
- }
46
- }
47
-
48
- .custom-welcome-header {
49
- display: flex;
50
- align-items: flex-start;
51
- justify-content: space-between;
52
- margin-bottom: 12px;
53
- }
54
-
55
- .custom-welcome-title {
56
- display: flex;
57
- align-items: center;
58
- gap: 8px;
59
- font-size: 16px;
60
- font-weight: 600;
61
- font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
62
- }
63
-
64
- .custom-close-popup {
65
- background: none;
66
- border: none;
67
- color: white;
68
- font-size: 24px;
69
- cursor: pointer;
70
- padding: 0;
71
- width: 24px;
72
- height: 24px;
73
- display: flex;
74
- align-items: center;
75
- justify-content: center;
76
- opacity: 0.8;
77
- transition: opacity 0.2s;
78
- }
79
-
80
- .custom-close-popup:hover {
81
- opacity: 1;
82
- }
83
-
84
- .custom-welcome-message {
85
- font-size: 14px;
86
- line-height: 1.5;
87
- margin-bottom: 10px;
88
- }
89
-
90
- .custom-welcome-cta {
91
- font-size: 13px;
92
- opacity: 0.9;
93
- font-style: italic;
94
- }
95
-
96
- /* Chat Toggle Button */
97
- .custom-chat-toggle-btn {
98
- position: fixed;
99
- bottom: 20px;
100
- right: 20px;
101
- width: 60px;
102
- height: 60px;
103
- border-radius: 50%;
104
- background: linear-gradient(135deg, #091e3e 0%, #091e3e 100%);
105
- color: white;
106
- border: none;
107
- cursor: pointer;
108
- display: flex;
109
- align-items: center;
110
- justify-content: center;
111
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
112
- z-index: 99999;
113
- transition: transform 0.2s, box-shadow 0.2s;
114
- }
115
-
116
- .custom-chat-toggle-btn:hover {
117
- transform: scale(1.1);
118
- box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
119
- }
120
-
121
- .custom-chat-toggle-btn:active {
122
- transform: scale(0.95);
123
- }
124
-
125
- /* Chat Window */
126
- .custom-chat-window {
127
- position: fixed;
128
- bottom: 20px;
129
- right: 20px;
130
- width: 380px;
131
- height: 600px;
132
- max-height: calc(100vh - 40px);
133
- background: white;
134
- border-radius: 16px;
135
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
136
- display: flex;
137
- flex-direction: column;
138
- z-index: 99999;
139
- animation: customChatSlideUp 0.3s ease-out;
140
- overflow: hidden;
141
- }
142
-
143
- @keyframes customChatSlideUp {
144
- from {
145
- transform: translateY(20px);
146
- opacity: 0;
147
- }
148
- to {
149
- transform: translateY(0);
150
- opacity: 1;
151
- }
152
- }
153
-
154
- /* Chat Header */
155
- .custom-chat-header {
156
- background: #091E3E;
157
- color: white;
158
- padding: 20px;
159
- display: flex;
160
- justify-content: space-between;
161
- align-items: flex-start;
162
- flex-shrink: 0;
163
- }
164
-
165
- .custom-chat-header-content {
166
- flex: 1;
167
- }
168
-
169
- .custom-chat-title {
170
- font-size: 18px;
171
- font-weight: 600;
172
- margin-bottom: 4px;
173
- }
174
-
175
- .custom-chat-subtitle {
176
- font-size: 12px;
177
- opacity: 0.9;
178
- }
179
-
180
- .custom-mode-indicator {
181
- font-size: 11px;
182
- margin-left: 4px;
183
- opacity: 0.85;
184
- }
185
-
186
- .custom-mode-badge {
187
- font-size: 10px;
188
- margin-top: 6px;
189
- padding: 4px 8px;
190
- background: rgba(255, 255, 255, 0.15);
191
- border-radius: 12px;
192
- display: inline-block;
193
- font-weight: 500;
194
- letter-spacing: 0.5px;
195
- }
196
-
197
- .custom-agent-info {
198
- font-size: 11px;
199
- margin-top: 4px;
200
- opacity: 0.9;
201
- display: flex;
202
- align-items: center;
203
- gap: 4px;
204
- }
205
-
206
- .custom-agent-label {
207
- opacity: 0.8;
208
- }
209
-
210
- .custom-agent-name {
211
- font-weight: 500;
212
- }
213
-
214
- .custom-chat-close-btn {
215
- background: none;
216
- border: none;
217
- color: white;
218
- font-size: 28px;
219
- cursor: pointer;
220
- padding: 0;
221
- width: 32px;
222
- height: 32px;
223
- display: flex;
224
- align-items: center;
225
- justify-content: center;
226
- opacity: 0.8;
227
- transition: opacity 0.2s;
228
- line-height: 1;
229
- border-radius: 50%;
230
- }
231
-
232
- .custom-chat-close-btn:hover {
233
- opacity: 1;
234
- background: rgba(255, 255, 255, 0.1);
235
- }
236
-
237
- /* Chat Messages Area */
238
- .custom-chat-messages {
239
- flex: 1;
240
- overflow-y: auto;
241
- padding: 20px;
242
- display: flex;
243
- flex-direction: column;
244
- gap: 12px;
245
- background: #f8f9fa;
246
- }
247
-
248
- .custom-chat-messages::-webkit-scrollbar {
249
- width: 6px;
250
- }
251
-
252
- .custom-chat-messages::-webkit-scrollbar-track {
253
- background: transparent;
254
- }
255
-
256
- .custom-chat-messages::-webkit-scrollbar-thumb {
257
- background: #ddd;
258
- border-radius: 3px;
259
- }
260
-
261
- .custom-chat-messages::-webkit-scrollbar-thumb:hover {
262
- background: #bbb;
263
- }
264
-
265
- .custom-chat-empty {
266
- display: flex;
267
- flex-direction: column;
268
- align-items: center;
269
- justify-content: center;
270
- height: 100%;
271
- text-align: center;
272
- color: #666;
273
- }
274
-
275
- .custom-chat-empty-icon {
276
- font-size: 48px;
277
- margin-bottom: 12px;
278
- }
279
-
280
- .custom-chat-empty p {
281
- font-size: 16px;
282
- line-height: 1.5;
283
- }
284
-
285
- /* Messages */
286
- .custom-message {
287
- display: flex;
288
- flex-direction: column;
289
- max-width: 75%;
290
- animation: customMessageFadeIn 0.3s ease-out;
291
- }
292
-
293
- @keyframes customMessageFadeIn {
294
- from {
295
- opacity: 0;
296
- transform: translateY(10px);
297
- }
298
- to {
299
- opacity: 1;
300
- transform: translateY(0);
301
- }
302
- }
303
-
304
- .custom-message-user {
305
- align-self: flex-end;
306
- }
307
-
308
- .custom-message-bot {
309
- align-self: flex-start;
310
- }
311
-
312
- .custom-message-agent {
313
- align-self: flex-start;
314
- }
315
-
316
- .custom-message-content {
317
- padding: 12px 16px;
318
- border-radius: 16px;
319
- word-wrap: break-word;
320
- line-height: 1.5;
321
- font-size: 14px;
322
- }
323
-
324
- .custom-message-user .custom-message-content {
325
- background: #091E3E;
326
- color: white;
327
- border-bottom-right-radius: 4px;
328
- }
329
-
330
- .custom-message-bot .custom-message-content {
331
- background: white;
332
- color: #333;
333
- border-bottom-left-radius: 4px;
334
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
335
- }
336
-
337
- .custom-message-agent .custom-message-content {
338
- background: white;
339
- color: #333;
340
- border-bottom-left-radius: 4px;
341
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
342
- }
343
-
344
- .custom-message-time {
345
- font-size: 10px;
346
- color: #999;
347
- margin-top: 4px;
348
- padding: 0 4px;
349
- }
350
-
351
- /* Chip Buttons */
352
- .custom-chips-container {
353
- margin-top: 12px;
354
- display: flex;
355
- flex-direction: column;
356
- gap: 8px;
357
- }
358
-
359
- .custom-chips-group {
360
- display: flex;
361
- flex-wrap: wrap;
362
- gap: 8px;
363
- }
364
-
365
- .custom-chip-button {
366
- background: white;
367
- border: 1.5px solid #091e3e;
368
- color: #091e3e;
369
- padding: 8px 16px;
370
- border-radius: 20px;
371
- font-size: 13px;
372
- font-weight: 500;
373
- cursor: pointer;
374
- transition: all 0.2s ease;
375
- white-space: nowrap;
376
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
377
- }
378
-
379
- .custom-chip-button:hover {
380
- background: linear-gradient(135deg, #091e3e 0%, #091e3e 100%);
381
- color: white;
382
- transform: translateY(-1px);
383
- box-shadow: 0 2px 6px rgba(45, 122, 79, 0.3);
384
- }
385
-
386
- .custom-chip-button:active {
387
- transform: translateY(0);
388
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
389
- }
390
-
391
- /* Typing Indicator */
392
- .custom-typing-indicator {
393
- display: flex;
394
- gap: 4px;
395
- padding: 12px 16px;
396
- background: white;
397
- border-radius: 16px;
398
- border-bottom-left-radius: 4px;
399
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
400
- width: fit-content;
401
- }
402
-
403
- .custom-typing-indicator span {
404
- width: 8px;
405
- height: 8px;
406
- border-radius: 50%;
407
- background: #999;
408
- animation: customTypingBounce 1.4s infinite ease-in-out;
409
- }
410
-
411
- .custom-typing-indicator span:nth-child(1) {
412
- animation-delay: -0.32s;
413
- }
414
-
415
- .custom-typing-indicator span:nth-child(2) {
416
- animation-delay: -0.16s;
417
- }
418
-
419
- @keyframes customTypingBounce {
420
- 0%,
421
- 80%,
422
- 100% {
423
- transform: scale(0.8);
424
- opacity: 0.5;
425
- }
426
- 40% {
427
- transform: scale(1);
428
- opacity: 1;
429
- }
430
- }
431
-
432
- /* Agent Typing Indicator */
433
- .custom-agent-typing-indicator {
434
- display: flex;
435
- align-items: center;
436
- gap: 8px;
437
- padding: 8px 16px;
438
- margin: 4px 0;
439
- color: #666;
440
- font-size: 14px;
441
- font-style: italic;
442
- }
443
-
444
- .custom-typing-dots {
445
- display: inline-flex;
446
- gap: 2px;
447
- }
448
-
449
- .custom-typing-dots span {
450
- display: inline-block;
451
- width: 4px;
452
- height: 4px;
453
- border-radius: 50%;
454
- background-color: #666;
455
- animation: customTypingBounce 1.4s infinite ease-in-out;
456
- }
457
-
458
- .custom-typing-dots span:nth-child(2) {
459
- animation-delay: -0.16s;
460
- }
461
-
462
- .custom-typing-dots span:nth-child(3) {
463
- animation-delay: -0.32s;
464
- }
465
-
466
- .custom-typing-text {
467
- color: #666;
468
- }
469
-
470
- /* Chat Input Form */
471
- .custom-chat-input-form {
472
- display: flex;
473
- padding: 16px;
474
- background: white;
475
- border-top: 1px solid #e0e0e0;
476
- gap: 8px;
477
- flex-shrink: 0;
478
- }
479
-
480
- /* Resolved (terminal) banner */
481
- .custom-chat-resolved-banner {
482
- display: flex;
483
- align-items: center;
484
- justify-content: space-between;
485
- gap: 12px;
486
- padding: 12px 16px;
487
- border-top: 1px solid #e0e0e0;
488
- background: #f6f8ff;
489
- color: #1f2a44;
490
- flex-shrink: 0;
491
- }
492
-
493
- .custom-chat-resolved-text {
494
- flex: 1;
495
- font-size: 13px;
496
- line-height: 1.35;
497
- }
498
-
499
- .custom-chat-resolved-btn {
500
- background: #091e3e;
501
- color: white;
502
- border: none;
503
- border-radius: 10px;
504
- padding: 10px 12px;
505
- font-size: 12px;
506
- font-weight: 600;
507
- cursor: pointer;
508
- transition: transform 0.15s, opacity 0.15s;
509
- flex-shrink: 0;
510
- }
511
-
512
- .custom-chat-resolved-btn:hover:not(:disabled) {
513
- transform: scale(1.02);
514
- }
515
-
516
- .custom-chat-resolved-btn:disabled {
517
- opacity: 0.6;
518
- cursor: not-allowed;
519
- }
520
-
521
- .custom-chat-input {
522
- flex: 1;
523
- padding: 12px 16px;
524
- border: 1px solid #e0e0e0;
525
- border-radius: 24px;
526
- outline: none;
527
- font-size: 14px;
528
- transition: border-color 0.2s;
529
- font-family: inherit;
530
- }
531
-
532
- .custom-chat-input:focus {
533
- border-color: #091e3e;
534
- }
535
-
536
- .custom-chat-input:disabled {
537
- background: #f5f5f5;
538
- cursor: not-allowed;
539
- }
540
-
541
- .custom-chat-send-btn {
542
- width: 44px;
543
- height: 44px;
544
- border-radius: 50%;
545
- background: #091e3e;
546
- color: white;
547
- border: none;
548
- cursor: pointer;
549
- display: flex;
550
- align-items: center;
551
- justify-content: center;
552
- transition: transform 0.2s, opacity 0.2s;
553
- flex-shrink: 0;
554
- }
555
-
556
- .custom-chat-send-btn:hover:not(:disabled) {
557
- transform: scale(1.05);
558
- }
559
-
560
- .custom-chat-send-btn:active:not(:disabled) {
561
- transform: scale(0.95);
562
- }
563
-
564
- .custom-chat-send-btn:disabled {
565
- opacity: 0.5;
566
- cursor: not-allowed;
567
- }
568
-
569
- /* Responsive Design */
570
- @media (max-width: 480px) {
571
- .custom-welcome-popup {
572
- right: 10px;
573
- left: 10px;
574
- bottom: 90px;
575
- max-width: none;
576
- }
577
-
578
- .custom-chat-window {
579
- width: calc(100vw - 20px);
580
- height: calc(100vh - 20px);
581
- bottom: 10px;
582
- right: 10px;
583
- border-radius: 12px;
584
- }
585
-
586
- .custom-chat-toggle-btn {
587
- bottom: 10px;
588
- right: 10px;
589
- width: 56px;
590
- height: 56px;
591
- }
592
-
593
- .custom-message {
594
- max-width: 85%;
595
- }
596
- }
1
+ .custom-chat-widget,.custom-welcome-popup,.custom-chat-window,.custom-chat-toggle-btn{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.custom-welcome-popup{position:fixed;bottom:20px;right:90px;background:linear-gradient(135deg,#091e3e 0% 100%);color:#fff;padding:20px;border-radius:12px;box-shadow:0 8px 24px #00000026;max-width:350px;z-index:99998;animation:customSlideIn .4s ease-out;cursor:pointer;transition:transform .2s}.custom-welcome-popup:hover{transform:translateY(-2px);box-shadow:0 10px 28px #0003}@keyframes customSlideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.custom-welcome-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.custom-welcome-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.custom-close-popup{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s}.custom-close-popup:hover{opacity:1}.custom-welcome-message{font-size:14px;line-height:1.5;margin-bottom:10px}.custom-welcome-cta{font-size:13px;opacity:.9;font-style:italic}.custom-chat-toggle-btn{position:fixed;bottom:20px;right:20px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#091e3e 0% 100%);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026;z-index:99999;transition:transform .2s,box-shadow .2s}.custom-chat-toggle-btn:hover{transform:scale(1.1);box-shadow:0 6px 16px #0003}.custom-chat-toggle-btn:active{transform:scale(.95)}.custom-chat-window{position:fixed;bottom:20px;right:20px;width:380px;height:600px;max-height:calc(100vh - 40px);background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;z-index:99999;animation:customChatSlideUp .3s ease-out;overflow:hidden}@keyframes customChatSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.custom-chat-header{background:#091e3e;color:#fff;padding:20px;display:flex;justify-content:space-between;align-items:flex-start;flex-shrink:0}.custom-chat-header-content{flex:1}.custom-chat-title{font-size:18px;font-weight:600;margin-bottom:4px}.custom-chat-subtitle{font-size:12px;opacity:.9}.custom-mode-indicator{font-size:11px;margin-left:4px;opacity:.85}.custom-mode-badge{font-size:10px;margin-top:6px;padding:4px 8px;background:#ffffff26;border-radius:12px;display:inline-block;font-weight:500;letter-spacing:.5px}.custom-agent-info{font-size:11px;margin-top:4px;opacity:.9;display:flex;align-items:center;gap:4px}.custom-agent-label{opacity:.8}.custom-agent-name{font-weight:500}.custom-chat-close-btn{background:none;border:none;color:#fff;font-size:28px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s;line-height:1;border-radius:50%}.custom-chat-close-btn:hover{opacity:1;background:#ffffff1a}.custom-chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px;background:#f8f9fa}.custom-chat-messages::-webkit-scrollbar{width:6px}.custom-chat-messages::-webkit-scrollbar-track{background:transparent}.custom-chat-messages::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.custom-chat-messages::-webkit-scrollbar-thumb:hover{background:#bbb}.custom-chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:#666}.custom-chat-empty-icon{font-size:48px;margin-bottom:12px}.custom-chat-empty p{font-size:16px;line-height:1.5}.custom-message{display:flex;flex-direction:column;max-width:75%;animation:customMessageFadeIn .3s ease-out}@keyframes customMessageFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.custom-message-user{align-self:flex-end}.custom-message-bot,.custom-message-agent{align-self:flex-start}.custom-message-content{padding:12px 16px;border-radius:16px;word-wrap:break-word;line-height:1.5;font-size:14px}.custom-message-user .custom-message-content{background:#091e3e;color:#fff;border-bottom-right-radius:4px}.custom-message-bot .custom-message-content,.custom-message-agent .custom-message-content{background:#fff;color:#333;border-bottom-left-radius:4px;box-shadow:0 2px 4px #0000001a}.custom-message-time{font-size:10px;color:#999;margin-top:4px;padding:0 4px}.custom-chips-container{margin-top:12px;display:flex;flex-direction:column;gap:8px}.custom-chips-group{display:flex;flex-wrap:wrap;gap:8px}.custom-chip-button{background:#fff;border:1.5px solid #091e3e;color:#091e3e;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:0 1px 3px #0000001a}.custom-chip-button:hover{background:linear-gradient(135deg,#091e3e 0% 100%);color:#fff;transform:translateY(-1px);box-shadow:0 2px 6px #2d7a4f4d}.custom-chip-button:active{transform:translateY(0);box-shadow:0 1px 3px #0000001a}.custom-typing-indicator{display:flex;gap:4px;padding:12px 16px;background:#fff;border-radius:16px 16px 16px 4px;box-shadow:0 2px 4px #0000001a;width:fit-content}.custom-typing-indicator span{width:8px;height:8px;border-radius:50%;background:#999;animation:customTypingBounce 1.4s infinite ease-in-out}.custom-typing-indicator span:nth-child(1){animation-delay:-.32s}.custom-typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes customTypingBounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.custom-agent-typing-indicator{display:flex;align-items:center;gap:8px;padding:8px 16px;margin:4px 0;color:#666;font-size:14px;font-style:italic}.custom-typing-dots{display:inline-flex;gap:2px}.custom-typing-dots span{display:inline-block;width:4px;height:4px;border-radius:50%;background-color:#666;animation:customTypingBounce 1.4s infinite ease-in-out}.custom-typing-dots span:nth-child(2){animation-delay:-.16s}.custom-typing-dots span:nth-child(3){animation-delay:-.32s}.custom-typing-text{color:#666}.custom-chat-input-form{display:flex;padding:16px;background:#fff;border-top:1px solid #e0e0e0;gap:8px;flex-shrink:0}.custom-chat-resolved-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid #e0e0e0;background:#f6f8ff;color:#1f2a44;flex-shrink:0}.custom-chat-resolved-text{flex:1;font-size:13px;line-height:1.35}.custom-chat-resolved-btn{background:#091e3e;color:#fff;border:none;border-radius:10px;padding:10px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:transform .15s,opacity .15s;flex-shrink:0}.custom-chat-resolved-btn:hover:not(:disabled){transform:scale(1.02)}.custom-chat-resolved-btn:disabled{opacity:.6;cursor:not-allowed}.custom-chat-input{flex:1;padding:12px 16px;border:1px solid #e0e0e0;border-radius:24px;outline:none;font-size:14px;transition:border-color .2s;font-family:inherit}.custom-chat-input:focus{border-color:#091e3e}.custom-chat-input:disabled{background:#f5f5f5;cursor:not-allowed}.custom-chat-send-btn{width:44px;height:44px;border-radius:50%;background:#091e3e;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s,opacity .2s;flex-shrink:0}.custom-chat-send-btn:hover:not(:disabled){transform:scale(1.05)}.custom-chat-send-btn:active:not(:disabled){transform:scale(.95)}.custom-chat-send-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.custom-welcome-popup{right:10px;left:10px;bottom:90px;max-width:none}.custom-chat-window{width:calc(100vw - 20px);height:calc(100vh - 20px);bottom:10px;right:10px;border-radius:12px}.custom-chat-toggle-btn{bottom:10px;right:10px;width:56px;height:56px}.custom-message{max-width:85%}}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e="undefined"!=typeof document?document.currentScript:null;function r(){const r="undefined"==typeof window;if("undefined"!=typeof process&&process.env?.NEXT_RUNTIME)return{name:"next",version:process.env.NEXT_VERSION,isSSR:r};if("undefined"!=typeof process&&(process.env?.NUXT||globalThis.__NUXT__))return{name:"nuxt",version:process.env.NUXT_VERSION,isSSR:r};if(void 0!=={url:"undefined"==typeof document?require("url").pathToFileURL(__filename).href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("utils/frameworkDetector.cjs.js",document.baseURI).href}){const n={url:"undefined"==typeof document?require("url").pathToFileURL(__filename).href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("utils/frameworkDetector.cjs.js",document.baseURI).href};if(n.env?.DEV)return{name:"vite",version:n.env?.VITE_VERSION,isSSR:r}}return function(){if("undefined"!=typeof window&&(window.React||window.react))return!0;if("undefined"!=typeof require)try{return!!require.resolve("react")}catch{return!1}if("undefined"!=typeof module&&module.hot)return!0;return!1}()?{name:"react",version:n(),isSSR:r}:function(){if("undefined"!=typeof window&&(window.Vue||window.vue))return!0;if("undefined"!=typeof require)try{return!!require.resolve("vue")}catch{return!1}return!1}()?{name:"vue",version:t(),isSSR:r}:{name:"vanilla",isSSR:r}}function n(){try{if("undefined"!=typeof window&&window.React?.version)return window.React.version;if("undefined"!=typeof require){return require("react").version}}catch{}}function t(){try{if("undefined"!=typeof window&&window.Vue?.version)return window.Vue.version;if("undefined"!=typeof require){return require("vue").version}}catch{}}let o=null;exports.detectFramework=r,exports.getFramework=function(){return o?{name:o,isSSR:"undefined"==typeof window}:r()},exports.setFramework=function(e){o=e};
2
+ //# sourceMappingURL=frameworkDetector.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworkDetector.cjs.js","sources":["../../src/utils/frameworkDetector.ts"],"sourcesContent":["/**\n * Framework Detection Utility\n * Detects which framework is available in the runtime environment\n */\n\nexport type Framework = 'react' | 'vue' | 'next' | 'nuxt' | 'vite' | 'vanilla';\n\nexport interface FrameworkInfo {\n name: Framework;\n version?: string;\n isSSR: boolean;\n}\n\n/**\n * Detects the framework in the current environment\n */\nexport function detectFramework(): FrameworkInfo {\n const isSSR = typeof window === 'undefined';\n \n // Check for Next.js\n if (typeof process !== 'undefined' && process.env?.NEXT_RUNTIME) {\n return {\n name: 'next',\n version: process.env.NEXT_VERSION,\n isSSR,\n };\n }\n \n // Check for Nuxt\n if (typeof process !== 'undefined' && (process.env?.NUXT || (globalThis as any).__NUXT__)) {\n return {\n name: 'nuxt',\n version: (process.env as any).NUXT_VERSION,\n isSSR,\n };\n }\n \n // Check for Vite (development)\n if (typeof import.meta !== 'undefined') {\n const meta = import.meta as any;\n if (meta.env?.DEV) {\n return {\n name: 'vite',\n version: meta.env?.VITE_VERSION,\n isSSR,\n };\n }\n }\n \n // Check for React\n if (detectReact()) {\n return {\n name: 'react',\n version: getReactVersion(),\n isSSR,\n };\n }\n \n // Check for Vue\n if (detectVue()) {\n return {\n name: 'vue',\n version: getVueVersion(),\n isSSR,\n };\n }\n \n // Default to vanilla\n return {\n name: 'vanilla',\n isSSR,\n };\n}\n\n/**\n * Detects if React is available\n */\nfunction detectReact(): boolean {\n // Check global React\n if (typeof window !== 'undefined') {\n if ((window as any).React || (window as any).react) {\n return true;\n }\n }\n \n // Check for React in CommonJS\n if (typeof require !== 'undefined') {\n try {\n // Use a try-catch to handle module resolution errors gracefully\n const resolved = require.resolve('react');\n return !!resolved;\n } catch {\n // React not found - this is expected if React is not installed\n return false;\n }\n }\n \n // Check for React in ES modules (runtime)\n if (typeof module !== 'undefined' && (module as any).hot) {\n // Likely in a module environment that supports React\n return true;\n }\n \n return false;\n}\n\n/**\n * Gets React version if available\n */\nfunction getReactVersion(): string | undefined {\n try {\n if (typeof window !== 'undefined' && (window as any).React?.version) {\n return (window as any).React.version;\n }\n \n if (typeof require !== 'undefined') {\n const react = require('react');\n return react.version;\n }\n } catch {\n // Version not available\n }\n \n return undefined;\n}\n\n/**\n * Detects if Vue is available\n */\nfunction detectVue(): boolean {\n // Check global Vue\n if (typeof window !== 'undefined') {\n if ((window as any).Vue || (window as any).vue) {\n return true;\n }\n }\n \n // Check for Vue in CommonJS\n if (typeof require !== 'undefined') {\n try {\n // Use a try-catch to handle module resolution errors gracefully\n const resolved = require.resolve('vue');\n return !!resolved;\n } catch {\n // Vue not found - this is expected if Vue is not installed\n return false;\n }\n }\n \n return false;\n}\n\n/**\n * Gets Vue version if available\n */\nfunction getVueVersion(): string | undefined {\n try {\n if (typeof window !== 'undefined' && (window as any).Vue?.version) {\n return (window as any).Vue.version;\n }\n \n if (typeof require !== 'undefined') {\n const vue = require('vue');\n return vue.version;\n }\n } catch {\n // Version not available\n }\n \n return undefined;\n}\n\n/**\n * Forces a specific framework (useful for testing or explicit configuration)\n */\nlet forcedFramework: Framework | null = null;\n\nexport function setFramework(framework: Framework): void {\n forcedFramework = framework;\n}\n\nexport function getFramework(): FrameworkInfo {\n if (forcedFramework) {\n return {\n name: forcedFramework,\n isSSR: typeof window === 'undefined',\n };\n }\n return detectFramework();\n}\n"],"names":["detectFramework","isSSR","window","process","env","NEXT_RUNTIME","name","version","NEXT_VERSION","NUXT","globalThis","__NUXT__","NUXT_VERSION","url","document","require","pathToFileURL","__filename","href","_documentCurrentScript","tagName","toUpperCase","src","URL","baseURI","meta","DEV","VITE_VERSION","React","react","module","hot","detectReact","getReactVersion","Vue","vue","detectVue","getVueVersion","forcedFramework","framework"],"mappings":"oSAgBO,SAASA,IACd,MAAMC,EAA0B,oBAAXC,OAGrB,GAAuB,oBAAZC,SAA2BA,QAAQC,KAAKC,aACjD,MAAO,CACLC,KAAM,OACNC,QAASJ,QAAQC,IAAII,aACrBP,SAKJ,GAAuB,oBAAZE,UAA4BA,QAAQC,KAAKK,MAASC,WAAmBC,UAC9E,MAAO,CACLL,KAAM,OACNC,QAAUJ,QAAQC,IAAYQ,aAC9BX,SAKJ,QAA2B,IAAhB,CAAAY,IAAA,oBAAAC,SAAAC,QAAA,OAAAC,cAAAC,YAAAC,KAAAC,GAAA,WAAAA,EAAAC,QAAAC,eAAAF,EAAAG,KAAA,IAAAC,IAAA,iCAAAT,SAAAU,SAAAN,MAA6B,CACtC,MAAMO,EAAO,CAAAZ,IAAA,oBAAAC,SAAAC,QAAA,OAAAC,cAAAC,YAAAC,KAAAC,GAAA,WAAAA,EAAAC,QAAAC,eAAAF,EAAAG,KAAA,IAAAC,IAAA,iCAAAT,SAAAU,SAAAN,MACb,GAAIO,EAAKrB,KAAKsB,IACZ,MAAO,CACLpB,KAAM,OACNC,QAASkB,EAAKrB,KAAKuB,aACnB1B,QAGN,CAGA,OA2BF,WAEE,GAAsB,oBAAXC,SACJA,OAAe0B,OAAU1B,OAAe2B,OAC3C,OAAO,EAKX,GAAuB,oBAAZd,QACT,IAGE,QADiBA,gBAAgB,QAEnC,CAAA,MAEE,OAAO,CACT,CAIF,GAAsB,oBAAXe,QAA2BA,OAAeC,IAEnD,OAAO,EAGT,OAAO,CACT,CAtDMC,GACK,CACL1B,KAAM,QACNC,QAAS0B,IACThC,SA2EN,WAEE,GAAsB,oBAAXC,SACJA,OAAegC,KAAQhC,OAAeiC,KACzC,OAAO,EAKX,GAAuB,oBAAZpB,QACT,IAGE,QADiBA,gBAAgB,MAEnC,CAAA,MAEE,OAAO,CACT,CAGF,OAAO,CACT,CA3FMqB,GACK,CACL9B,KAAM,MACNC,QAAS8B,IACTpC,SAKG,CACLK,KAAM,UACNL,QAEJ,CAqCA,SAASgC,IACP,IACE,GAAsB,oBAAX/B,QAA2BA,OAAe0B,OAAOrB,QAC1D,OAAQL,OAAe0B,MAAMrB,QAG/B,GAAuB,oBAAZQ,QAAyB,CAElC,OADcA,QAAQ,SACTR,OACf,CACF,CAAA,MAEA,CAGF,CA+BA,SAAS8B,IACP,IACE,GAAsB,oBAAXnC,QAA2BA,OAAegC,KAAK3B,QACxD,OAAQL,OAAegC,IAAI3B,QAG7B,GAAuB,oBAAZQ,QAAyB,CAElC,OADYA,QAAQ,OACTR,OACb,CACF,CAAA,MAEA,CAGF,CAKA,IAAI+B,EAAoC,oDAMjC,WACL,OAAIA,EACK,CACLhC,KAAMgC,EACNrC,MAAyB,oBAAXC,QAGXF,GACT,uBAZO,SAAsBuC,GAC3BD,EAAkBC,CACpB"}