robot-toast 1.0.0-beta.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.
package/dist/index.js ADDED
@@ -0,0 +1,980 @@
1
+ 'use strict';var m=class m{constructor(){typeof document>"u"||m.injected||(m.injected=true,this.injectCSS());}injectCSS(){let t="robot-toast-styles";if(document.getElementById(t))return;let o=`
2
+ /* RobotToast v2 - CSS Styles */
3
+
4
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
5
+ /* WRAPPER - Fixed positioning container for each toast */
6
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
7
+
8
+ .robot-toast-wrapper {
9
+ position: fixed;
10
+ display: flex;
11
+ align-items: center;
12
+ gap: 12px;
13
+ opacity: 0;
14
+ z-index: 99999;
15
+ pointer-events: auto;
16
+ }
17
+
18
+ .robot-toast-wrapper.robot-toast-visible {
19
+ opacity: 1;
20
+ }
21
+
22
+ /* Position presets */
23
+ .robot-toast-wrapper.robot-toast-top-right {
24
+ top: 20px;
25
+ right: 20px;
26
+ flex-direction: row;
27
+ }
28
+
29
+ .robot-toast-wrapper.robot-toast-top-left {
30
+ top: 20px;
31
+ left: 20px;
32
+ flex-direction: row;
33
+ }
34
+
35
+ .robot-toast-wrapper.robot-toast-top-center {
36
+ top: 20px;
37
+ left: 50%;
38
+ transform: translateX(-50%);
39
+ flex-direction: row;
40
+ }
41
+
42
+ .robot-toast-wrapper.robot-toast-bottom-right {
43
+ bottom: 20px;
44
+ right: 20px;
45
+ flex-direction: row;
46
+ }
47
+
48
+ .robot-toast-wrapper.robot-toast-bottom-left {
49
+ bottom: 20px;
50
+ left: 20px;
51
+ flex-direction: row;
52
+ }
53
+
54
+ .robot-toast-wrapper.robot-toast-bottom-center {
55
+ bottom: 20px;
56
+ left: 50%;
57
+ transform: translateX(-50%);
58
+ flex-direction: row;
59
+ }
60
+
61
+ .robot-toast-wrapper.robot-toast-rtl {
62
+ direction: rtl;
63
+ }
64
+
65
+ .robot-toast-wrapper.robot-toast-dragging .robot-toast-message {
66
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
67
+ }
68
+
69
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
70
+ /* ROBOT - The animated character */
71
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
72
+
73
+ .robot-toast-robot {
74
+ width: 65px;
75
+ height: 70px;
76
+ flex-shrink: 0;
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ opacity: 0;
81
+ }
82
+
83
+ .robot-toast-robot img {
84
+ width: 100%;
85
+ height: 100%;
86
+ object-fit: contain;
87
+ display: block;
88
+ }
89
+
90
+ .robot-toast-robot.robot-enter-left {
91
+ animation: robot-enter-left 0.7s ease-out forwards;
92
+ }
93
+
94
+ .robot-toast-robot.robot-enter-right {
95
+ animation: robot-enter-right 0.7s ease-out forwards;
96
+ }
97
+
98
+ .robot-toast-robot.robot-exit-left {
99
+ animation: robot-exit-left 0.5s ease-in forwards;
100
+ }
101
+
102
+ .robot-toast-robot.robot-exit-right {
103
+ animation: robot-exit-right 0.5s ease-in forwards;
104
+ }
105
+
106
+ .robot-toast-robot.robot-idle {
107
+ opacity: 1;
108
+ animation: robot-idle 2s ease-in-out infinite;
109
+ }
110
+
111
+ .robot-toast-robot.robot-snap-left {
112
+ animation: robot-snap-left 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
113
+ }
114
+
115
+ .robot-toast-robot.robot-snap-right {
116
+ animation: robot-snap-right 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
117
+ }
118
+
119
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
120
+ /* MESSAGE BOX - Toast content container */
121
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
122
+
123
+ .robot-toast-message {
124
+ position: relative;
125
+ min-width: 280px;
126
+ max-width: 400px;
127
+ padding: 14px 12px 0 12px;
128
+ border-radius: 8px;
129
+ margin: 0;
130
+ opacity: 0;
131
+ display: flex;
132
+ flex-direction: column;
133
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
134
+ user-select: none;
135
+ cursor: default;
136
+ }
137
+
138
+ .robot-toast-message.robot-toast-theme-light {
139
+ background: #ffffff;
140
+ color: #333333;
141
+ border: 1px solid #e0e0e0;
142
+ }
143
+
144
+ .robot-toast-message.robot-toast-theme-dark {
145
+ background: #2d2d2d;
146
+ color: #f0f0f0;
147
+ border: 1px solid #444444;
148
+ }
149
+
150
+ .robot-toast-message.robot-toast-theme-colored {
151
+ color: #ffffff;
152
+ }
153
+
154
+ /* Type-specific colors for colored theme */
155
+ .robot-toast-message.robot-toast-theme-colored.robot-toast-type-default {
156
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
157
+ }
158
+
159
+ .robot-toast-message.robot-toast-theme-colored.robot-toast-type-info {
160
+ background: linear-gradient(135deg, #2193b0 0%, #6dd5ed 100%);
161
+ }
162
+
163
+ .robot-toast-message.robot-toast-theme-colored.robot-toast-type-success {
164
+ background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
165
+ }
166
+
167
+ .robot-toast-message.robot-toast-theme-colored.robot-toast-type-warning {
168
+ background: linear-gradient(135deg, #fb6e3b 0%, #f5a623 100%);
169
+ }
170
+
171
+ .robot-toast-message.robot-toast-theme-colored.robot-toast-type-error {
172
+ background: linear-gradient(135deg, #eb3349 0%, #f45c43 100%);
173
+ }
174
+
175
+ /* Light theme type-specific colors */
176
+ .robot-toast-message.robot-toast-theme-light.robot-toast-type-info {
177
+ border-left: 4px solid #2193b0;
178
+ }
179
+
180
+ .robot-toast-message.robot-toast-theme-light.robot-toast-type-success {
181
+ border-left: 4px solid #11998e;
182
+ }
183
+
184
+ .robot-toast-message.robot-toast-theme-light.robot-toast-type-warning {
185
+ border-left: 4px solid #fb6e3b;
186
+ }
187
+
188
+ .robot-toast-message.robot-toast-theme-light.robot-toast-type-error {
189
+ border-left: 4px solid #eb3349;
190
+ }
191
+
192
+ /* Dark theme type-specific colors */
193
+ .robot-toast-message.robot-toast-theme-dark.robot-toast-type-info {
194
+ border-left: 4px solid #6dd5ed;
195
+ }
196
+
197
+ .robot-toast-message.robot-toast-theme-dark.robot-toast-type-success {
198
+ border-left: 4px solid #38ef7d;
199
+ }
200
+
201
+ .robot-toast-message.robot-toast-theme-dark.robot-toast-type-warning {
202
+ border-left: 4px solid #f5a623;
203
+ }
204
+
205
+ .robot-toast-message.robot-toast-theme-dark.robot-toast-type-error {
206
+ border-left: 4px solid #f45c43;
207
+ }
208
+
209
+ .robot-toast-message.message-enter {
210
+ animation: message-enter 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
211
+ }
212
+
213
+ .robot-toast-message.message-exit {
214
+ animation: message-exit 0.3s ease-in forwards;
215
+ }
216
+
217
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
218
+ /* CLOSE BUTTON */
219
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
220
+
221
+ .robot-toast-close {
222
+ position: absolute;
223
+ top: 4px;
224
+ right: 4px;
225
+ background: none;
226
+ border: none;
227
+ font-size: 24px;
228
+ cursor: pointer;
229
+ opacity: 0.6;
230
+ transition: opacity 0.2s;
231
+ padding: 0;
232
+ width: 28px;
233
+ height: 28px;
234
+ display: flex;
235
+ align-items: center;
236
+ justify-content: center;
237
+ color: currentColor;
238
+ }
239
+
240
+ .robot-toast-close:hover {
241
+ opacity: 1;
242
+ }
243
+
244
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
245
+ /* DRAG HINT */
246
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
247
+
248
+ .robot-toast-drag-hint {
249
+ position: absolute;
250
+ left: 8px;
251
+ top: 50%;
252
+ transform: translateY(-50%);
253
+ display: flex;
254
+ flex-direction: column;
255
+ gap: 3px;
256
+ opacity: 0.4;
257
+ }
258
+
259
+ .robot-toast-drag-hint span {
260
+ display: block;
261
+ width: 4px;
262
+ height: 4px;
263
+ border-radius: 50%;
264
+ background: currentColor;
265
+ }
266
+
267
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
268
+ /* MESSAGE TEXT */
269
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
270
+
271
+ .robot-toast-text {
272
+ padding-right: 24px;
273
+ padding-bottom: 12px;
274
+ font-size: 14px;
275
+ line-height: 1.5;
276
+ word-break: break-word;
277
+ white-space: pre-wrap;
278
+ font-weight: 500;
279
+ }
280
+
281
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
282
+ /* PROGRESS BAR */
283
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
284
+
285
+ .robot-toast-progress-container {
286
+ width: 100%;
287
+ height: 3px;
288
+ background: rgba(0, 0, 0, 0.1);
289
+ border-radius: 2px;
290
+ overflow: hidden;
291
+ }
292
+
293
+ .robot-toast-message.robot-toast-theme-dark .robot-toast-progress-container {
294
+ background: rgba(255, 255, 255, 0.15);
295
+ }
296
+
297
+ .robot-toast-progress-bar {
298
+ height: 100%;
299
+ background: currentColor;
300
+ transform-origin: left;
301
+ transform: scaleX(1); /* \u2190 starts full */
302
+ }
303
+
304
+ .robot-toast-theme-light.robot-toast-type-success .robot-toast-progress-bar { background: #11998e; }
305
+ .robot-toast-theme-light.robot-toast-type-error .robot-toast-progress-bar { background: #eb3349; }
306
+ .robot-toast-theme-light.robot-toast-type-warning .robot-toast-progress-bar { background: #fb6e3b; }
307
+ .robot-toast-theme-light.robot-toast-type-info .robot-toast-progress-bar { background: #2193b0; }
308
+
309
+ /* Dark theme progress bar colors */
310
+ .robot-toast-theme-dark.robot-toast-type-success .robot-toast-progress-bar { background: #38ef7d; }
311
+ .robot-toast-theme-dark.robot-toast-type-error .robot-toast-progress-bar { background: #f45c43; }
312
+ .robot-toast-theme-dark.robot-toast-type-warning .robot-toast-progress-bar { background: #f5a623; }
313
+ .robot-toast-theme-dark.robot-toast-type-info .robot-toast-progress-bar { background: #6dd5ed; }
314
+
315
+
316
+ .robot-toast-progress-bar.robot-toast-progress-auto {
317
+ animation: robot-progress-countdown linear forwards;
318
+ opacity: 0.8;
319
+ }
320
+
321
+ .robot-toast-progress-bar.robot-toast-progress-paused {
322
+ animation-play-state: paused !important;
323
+ }
324
+
325
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
326
+ /* ANIMATIONS */
327
+ /* \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 */
328
+
329
+ @keyframes robot-enter-left {
330
+ 0% { opacity: 0; transform: translateY(-80px) translateX(-30px) scaleY(1.1) scaleX(0.9); }
331
+ 40% { opacity: 1; transform: translateY(10px) scaleY(0.85) scaleX(1.1); }
332
+ 65% { transform: translateY(-6px) scaleY(1.05) scaleX(0.97); }
333
+ 85% { transform: translateY(2px) scaleY(0.98); }
334
+ 100% { opacity: 1; transform: translateY(0) scale(1); }
335
+ }
336
+
337
+ @keyframes robot-enter-right {
338
+ 0% { opacity: 0; transform: translateY(-80px) translateX(30px) scaleY(1.1) scaleX(0.9); }
339
+ 40% { opacity: 1; transform: translateY(10px) scaleY(0.85) scaleX(1.1); }
340
+ 65% { transform: translateY(-6px) scaleY(1.05) scaleX(0.97); }
341
+ 85% { transform: translateY(2px) scaleY(0.98); }
342
+ 100% { opacity: 1; transform: translateY(0) scale(1); }
343
+ }
344
+
345
+ @keyframes robot-exit-left {
346
+ 0% { opacity: 1; transform: scale(1); }
347
+ 20% { transform: scaleY(0.85) scaleX(1.1) translateY(5px); }
348
+ 100% { opacity: 0; transform: translateY(-80px) translateX(-30px) scaleY(1.1) scaleX(0.9); }
349
+ }
350
+
351
+ @keyframes robot-exit-right {
352
+ 0% { opacity: 1; transform: scale(1); }
353
+ 20% { transform: scaleY(0.85) scaleX(1.1) translateY(5px); }
354
+ 100% { opacity: 0; transform: translateY(-80px) translateX(30px) scaleY(1.1) scaleX(0.9); }
355
+ }
356
+
357
+
358
+ @keyframes robot-idle {
359
+ 0%, 100% {
360
+ transform: translateY(0);
361
+ }
362
+ 50% {
363
+ transform: translateY(-4px);
364
+ }
365
+ }
366
+
367
+ @keyframes robot-snap-left {
368
+ from {
369
+ transform: scaleX(0.8);
370
+ }
371
+ to {
372
+ transform: scaleX(1);
373
+ }
374
+ }
375
+
376
+ @keyframes robot-snap-right {
377
+ from {
378
+ transform: scaleX(0.8);
379
+ }
380
+ to {
381
+ transform: scaleX(1);
382
+ }
383
+ }
384
+
385
+ @keyframes message-enter {
386
+ from {
387
+ opacity: 0;
388
+ transform: scale(0.8);
389
+ }
390
+ to {
391
+ opacity: 1;
392
+ transform: scale(1);
393
+ }
394
+ }
395
+
396
+ @keyframes message-exit {
397
+ from {
398
+ opacity: 1;
399
+ transform: scale(1);
400
+ }
401
+ to {
402
+ opacity: 0;
403
+ transform: scale(0.8);
404
+ }
405
+ }
406
+
407
+ @keyframes robot-progress-countdown {
408
+ from { transform: scaleX(1); }
409
+ to { transform: scaleX(0); }
410
+ }
411
+
412
+ /* Slide transition animations */
413
+ .robot-toast-robot.robot-enter-left-slide {
414
+ animation: robot-enter-left-slide 0.5s ease-out forwards;
415
+ }
416
+
417
+ .robot-toast-robot.robot-enter-right-slide {
418
+ animation: robot-enter-right-slide 0.5s ease-out forwards;
419
+ }
420
+
421
+ .robot-toast-robot.robot-exit-left-slide {
422
+ animation: robot-exit-left-slide 0.4s ease-in forwards;
423
+ }
424
+
425
+ .robot-toast-robot.robot-exit-right-slide {
426
+ animation: robot-exit-right-slide 0.4s ease-in forwards;
427
+ }
428
+
429
+ /* Zoom transition animations */
430
+ .robot-toast-robot.robot-enter-left-zoom,
431
+ .robot-toast-robot.robot-enter-right-zoom {
432
+ animation: robot-enter-zoom 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
433
+ }
434
+
435
+ .robot-toast-robot.robot-exit-left-zoom,
436
+ .robot-toast-robot.robot-exit-right-zoom {
437
+ animation: robot-exit-zoom 0.4s ease-in forwards;
438
+ }
439
+
440
+ /* Flip transition animations */
441
+ .robot-toast-robot.robot-enter-left-flip {
442
+ animation: robot-enter-left-flip 0.6s ease-out forwards;
443
+ }
444
+
445
+ .robot-toast-robot.robot-enter-right-flip {
446
+ animation: robot-enter-right-flip 0.6s ease-out forwards;
447
+ }
448
+
449
+ .robot-toast-robot.robot-exit-left-flip {
450
+ animation: robot-exit-left-flip 0.4s ease-in forwards;
451
+ }
452
+
453
+ .robot-toast-robot.robot-exit-right-flip {
454
+ animation: robot-exit-right-flip 0.4s ease-in forwards;
455
+ }
456
+
457
+ @keyframes robot-enter-left-slide {
458
+ from { opacity: 0; transform: translateX(-60px); }
459
+ to { opacity: 1; transform: translateX(0); }
460
+ }
461
+
462
+ @keyframes robot-enter-right-slide {
463
+ from { opacity: 0; transform: translateX(60px); }
464
+ to { opacity: 1; transform: translateX(0); }
465
+ }
466
+
467
+ @keyframes robot-exit-left-slide {
468
+ from { opacity: 1; transform: translateX(0); }
469
+ to { opacity: 0; transform: translateX(-60px); }
470
+ }
471
+
472
+ @keyframes robot-exit-right-slide {
473
+ from { opacity: 1; transform: translateX(0); }
474
+ to { opacity: 0; transform: translateX(60px); }
475
+ }
476
+
477
+ @keyframes robot-enter-zoom {
478
+ from { opacity: 0; transform: scale(0.2); }
479
+ to { opacity: 1; transform: scale(1); }
480
+ }
481
+
482
+ @keyframes robot-exit-zoom {
483
+ from { opacity: 1; transform: scale(1); }
484
+ to { opacity: 0; transform: scale(0.2); }
485
+ }
486
+
487
+ @keyframes robot-enter-left-flip {
488
+ from { opacity: 0; transform: perspective(600px) rotateY(90deg); }
489
+ to { opacity: 1; transform: perspective(600px) rotateY(0deg); }
490
+ }
491
+
492
+ @keyframes robot-enter-right-flip {
493
+ from { opacity: 0; transform: perspective(600px) rotateY(-90deg); }
494
+ to { opacity: 1; transform: perspective(600px) rotateY(0deg); }
495
+ }
496
+
497
+ @keyframes robot-exit-left-flip {
498
+ from { opacity: 1; transform: perspective(600px) rotateY(0deg); }
499
+ to { opacity: 0; transform: perspective(600px) rotateY(90deg); }
500
+ }
501
+
502
+ @keyframes robot-exit-right-flip {
503
+ from { opacity: 1; transform: perspective(600px) rotateY(0deg); }
504
+ to { opacity: 0; transform: perspective(600px) rotateY(-90deg); }
505
+ }
506
+
507
+ /* message-enter variants */
508
+ .robot-toast-message.message-enter-slide {
509
+ animation: message-enter-slide 0.35s ease-out forwards;
510
+ }
511
+ .robot-toast-message.message-enter-zoom {
512
+ animation: message-enter-zoom 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
513
+ }
514
+ .robot-toast-message.message-enter-flip {
515
+ animation: message-enter-flip 0.4s ease-out forwards;
516
+ }
517
+
518
+ @keyframes message-enter-slide {
519
+ from { opacity: 0; transform: translateY(10px); }
520
+ to { opacity: 1; transform: translateY(0); }
521
+ }
522
+ @keyframes message-enter-zoom {
523
+ from { opacity: 0; transform: scale(0.5); }
524
+ to { opacity: 1; transform: scale(1); }
525
+ }
526
+ @keyframes message-enter-flip {
527
+ from { opacity: 0; transform: perspective(400px) rotateX(-20deg); }
528
+ to { opacity: 1; transform: perspective(400px) rotateX(0deg); }
529
+ }
530
+ `,e=document.createElement("style");e.id=t,e.textContent=o,document.head.appendChild(e);}};m.injected=false;var k=m,A=k;function n(i){return `data:image/svg+xml;base64,${Buffer.from(i,"utf-8").toString("base64")}`}var l={wave:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
531
+ <defs>
532
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
533
+ <stop offset="0%" stop-color="#E2F0FF" />
534
+ <stop offset="100%" stop-color="#B8D8FF" />
535
+ </linearGradient>
536
+ </defs>
537
+
538
+ <path d="M 25 60 Q 15 65, 20 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
539
+ <path d="M 75 60 Q 95 45, 85 25" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
540
+
541
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
542
+
543
+ <rect x="25" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
544
+
545
+ <line x1="50" y1="20" x2="50" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
546
+ <circle cx="50" cy="8" r="4" fill="#FF6B6B" stroke="#2B3A55" stroke-width="2"/>
547
+
548
+ <circle cx="40" cy="38" r="4" fill="#2B3A55"/>
549
+ <path d="M 55 38 Q 60 33, 65 38" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
550
+ </svg>`,base:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
551
+ <defs>
552
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
553
+ <stop offset="0%" stop-color="#E2F0FF" />
554
+ <stop offset="100%" stop-color="#B8D8FF" />
555
+ </linearGradient>
556
+ </defs>
557
+
558
+ <path d="M 25 60 Q 15 70, 25 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
559
+ <path d="M 75 60 Q 85 70, 75 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
560
+
561
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
562
+
563
+ <rect x="25" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
564
+
565
+ <line x1="50" y1="20" x2="50" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
566
+ <circle cx="50" cy="8" r="4" fill="#4D96FF" stroke="#2B3A55" stroke-width="2"/>
567
+
568
+ <circle cx="40" cy="38" r="4" fill="#2B3A55"/>
569
+ <circle cx="60" cy="38" r="4" fill="#2B3A55"/>
570
+
571
+ <line x1="45" y1="46" x2="55" y2="46" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
572
+ </svg>`,success:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
573
+ <defs>
574
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
575
+ <stop offset="0%" stop-color="#E2F0FF" />
576
+ <stop offset="100%" stop-color="#B8D8FF" />
577
+ </linearGradient>
578
+ </defs>
579
+
580
+ <circle cx="20" cy="20" r="3" fill="#FF6B6B" />
581
+ <rect x="80" y="25" width="6" height="6" fill="#4D96FF" transform="rotate(45 80 25)"/>
582
+ <circle cx="75" cy="10" r="2" fill="#FFD93D" />
583
+
584
+ <path d="M 25 55 Q 10 40, 20 20" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
585
+ <path d="M 75 55 Q 90 40, 80 20" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
586
+
587
+ <rect x="35" y="50" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
588
+
589
+ <rect x="25" y="15" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
590
+
591
+ <line x1="50" y1="15" x2="50" y2="5" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
592
+ <circle cx="50" cy="3" r="4" fill="#4ECB71" stroke="#2B3A55" stroke-width="2"/>
593
+
594
+ <path d="M 35 32 Q 40 25, 45 32" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
595
+ <path d="M 55 32 Q 60 25, 65 32" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
596
+ </svg>`,error:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
597
+ <defs>
598
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
599
+ <stop offset="0%" stop-color="#E2F0FF" />
600
+ <stop offset="100%" stop-color="#B8D8FF" />
601
+ </linearGradient>
602
+ </defs>
603
+
604
+ <path d="M 85 15 L 95 35 L 75 35 Z" fill="#FF6B6B" stroke="#2B3A55" stroke-width="2" stroke-linejoin="round"/>
605
+ <text x="85" y="32" font-family="sans-serif" font-size="14" fill="#FFF" font-weight="bold" text-anchor="middle">!</text>
606
+
607
+ <path d="M 25 55 Q 10 50, 20 35" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
608
+ <path d="M 75 60 Q 90 70, 80 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
609
+
610
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
611
+
612
+ <rect x="23" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
613
+
614
+ <line x1="48" y1="20" x2="40" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
615
+ <circle cx="40" cy="8" r="4" fill="#FF6B6B" stroke="#2B3A55" stroke-width="2"/>
616
+
617
+ <path d="M 34 34 L 42 42 M 42 34 L 34 42" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
618
+ <path d="M 54 34 L 62 42 M 62 34 L 54 42" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
619
+
620
+ <path d="M 38 48 L 42 45 L 46 48 L 50 45 L 54 48 L 58 45" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
621
+ </svg>`,angry:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
622
+ <defs>
623
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
624
+ <stop offset="0%" stop-color="#E2F0FF" />
625
+ <stop offset="100%" stop-color="#B8D8FF" />
626
+ </linearGradient>
627
+ </defs>
628
+
629
+ <path d="M 20 30 Q 10 25, 15 15 Q 25 10, 30 20" fill="none" stroke="#A8B2C1" stroke-width="3" stroke-linecap="round"/>
630
+ <path d="M 80 30 Q 90 25, 85 15 Q 75 10, 70 20" fill="none" stroke="#A8B2C1" stroke-width="3" stroke-linecap="round"/>
631
+
632
+ <path d="M 25 60 L 15 75" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
633
+ <circle cx="15" cy="75" r="5" fill="#2B3A55"/>
634
+ <path d="M 75 60 L 85 75" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
635
+ <circle cx="85" cy="75" r="5" fill="#2B3A55"/>
636
+
637
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
638
+
639
+ <rect x="25" y="25" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
640
+
641
+ <line x1="50" y1="25" x2="50" y2="15" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
642
+ <circle cx="50" cy="13" r="4" fill="#FF3333" stroke="#2B3A55" stroke-width="2"/>
643
+
644
+ <path d="M 32 35 L 48 42" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
645
+ <path d="M 68 35 L 52 42" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
646
+
647
+ <rect x="40" y="48" width="20" height="6" rx="2" fill="#FFF" stroke="#2B3A55" stroke-width="2"/>
648
+ <line x1="45" y1="48" x2="45" y2="54" stroke="#2B3A55" stroke-width="2"/>
649
+ <line x1="50" y1="48" x2="50" y2="54" stroke="#2B3A55" stroke-width="2"/>
650
+ <line x1="55" y1="48" x2="55" y2="54" stroke="#2B3A55" stroke-width="2"/>
651
+ </svg>`,angry2:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
652
+ <defs>
653
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
654
+ <stop offset="0%" stop-color="#E2F0FF" />
655
+ <stop offset="100%" stop-color="#B8D8FF" />
656
+ </linearGradient>
657
+ </defs>
658
+
659
+ <path d="M 15 30 Q 10 20, 20 15 M 20 35 Q 15 25, 25 20" fill="none" stroke="#FF6B6B" stroke-width="3" stroke-linecap="round" opacity="0.7"/>
660
+ <path d="M 85 30 Q 90 20, 80 15 M 80 35 Q 85 25, 75 20" fill="none" stroke="#FF6B6B" stroke-width="3" stroke-linecap="round" opacity="0.7"/>
661
+
662
+ <path d="M 25 60 L 20 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
663
+ <path d="M 75 60 L 80 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
664
+
665
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
666
+
667
+ <rect x="25" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
668
+
669
+ <line x1="50" y1="20" x2="50" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
670
+ <circle cx="50" cy="8" r="4" fill="#FF6B6B" stroke="#2B3A55" stroke-width="2"/>
671
+
672
+ <circle cx="40" cy="38" r="3" fill="#2B3A55"/>
673
+ <circle cx="60" cy="38" r="3" fill="#2B3A55"/>
674
+ <path d="M 32 32 L 45 36 M 68 32 L 55 36" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
675
+
676
+ <path d="M 40 50 Q 50 44, 60 50" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
677
+ </svg>`,shock:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
678
+ <defs>
679
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
680
+ <stop offset="0%" stop-color="#E2F0FF" />
681
+ <stop offset="100%" stop-color="#B8D8FF" />
682
+ </linearGradient>
683
+ </defs>
684
+
685
+ <path d="M 75 15 Q 95 15, 95 30 Q 95 45, 80 45 L 70 50 L 72 42 Q 60 40, 60 30 Q 60 15, 75 15 Z" fill="#FFF" stroke="#2B3A55" stroke-width="3"/>
686
+
687
+ <path d="M 25 60 Q 15 70, 30 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
688
+ <path d="M 75 60 Q 85 40, 70 25" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
689
+
690
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
691
+
692
+ <rect x="25" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
693
+
694
+ <line x1="50" y1="20" x2="50" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
695
+ <circle cx="50" cy="8" r="4" fill="#4D96FF" stroke="#2B3A55" stroke-width="2"/>
696
+
697
+ <circle cx="40" cy="36" r="4" fill="#2B3A55"/>
698
+ <circle cx="60" cy="36" r="4" fill="#2B3A55"/>
699
+ <ellipse cx="50" cy="46" rx="6" ry="3" fill="#2B3A55"/>
700
+ </svg>`,think:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
701
+ <defs>
702
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
703
+ <stop offset="0%" stop-color="#E2F0FF" />
704
+ <stop offset="100%" stop-color="#B8D8FF" />
705
+ </linearGradient>
706
+ </defs>
707
+
708
+ <circle cx="80" cy="20" r="10" fill="#FFF" stroke="#2B3A55" stroke-width="3"/>
709
+ <text x="80" y="25" font-family="sans-serif" font-size="14" fill="#2B3A55" font-weight="bold" text-anchor="middle">?</text>
710
+
711
+ <path d="M 25 60 Q 15 65, 20 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
712
+ <path d="M 75 60 Q 85 55, 65 50" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
713
+
714
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
715
+
716
+ <g transform="rotate(-5 50 37)">
717
+ <rect x="25" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
718
+ <line x1="50" y1="20" x2="50" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
719
+ <circle cx="50" cy="8" r="4" fill="#FFD93D" stroke="#2B3A55" stroke-width="2"/>
720
+ <circle cx="40" cy="38" r="4" fill="#2B3A55"/>
721
+ <circle cx="60" cy="38" r="4" fill="#2B3A55"/>
722
+ </g>
723
+ </svg>`,search:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
724
+ <defs>
725
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
726
+ <stop offset="0%" stop-color="#E2F0FF" />
727
+ <stop offset="100%" stop-color="#B8D8FF" />
728
+ </linearGradient>
729
+ </defs>
730
+
731
+ <path d="M 40 38 L 10 20 A 30 30 0 0 0 10 56 Z" fill="#4ECB71" opacity="0.3"/>
732
+
733
+ <path d="M 25 60 Q 15 70, 25 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
734
+ <path d="M 75 60 Q 85 70, 75 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
735
+
736
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
737
+
738
+ <rect x="25" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
739
+
740
+ <line x1="50" y1="20" x2="50" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
741
+ <circle cx="50" cy="8" r="4" fill="#4ECB71" stroke="#2B3A55" stroke-width="2"/>
742
+
743
+ <circle cx="60" cy="38" r="4" fill="#2B3A55"/>
744
+
745
+ <circle cx="40" cy="38" r="6" fill="none" stroke="#4ECB71" stroke-width="2"/>
746
+ <circle cx="40" cy="38" r="2" fill="#4ECB71"/>
747
+ </svg>`,loading:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
748
+ <defs>
749
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
750
+ <stop offset="0%" stop-color="#E2F0FF" />
751
+ <stop offset="100%" stop-color="#B8D8FF" />
752
+ </linearGradient>
753
+ </defs>
754
+
755
+ <g stroke="#2B3A55" stroke-width="2" fill="#FFD93D">
756
+ <circle cx="85" cy="30" r="6" />
757
+ <path d="M85 22V24 M85 36V38 M93 30H91 M77 30H79" stroke-linecap="round"/>
758
+ <circle cx="15" cy="75" r="5" fill="#A8B2C1"/>
759
+ <path d="M15 68V70 M15 80V82 M22 75H20 M8 75H10" stroke-linecap="round"/>
760
+ </g>
761
+
762
+ <path d="M 25 60 Q 15 55, 30 45" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
763
+ <path d="M 28 43 L 22 37 M 32 47 L 36 43" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
764
+
765
+ <path d="M 75 60 Q 85 65, 80 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
766
+
767
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
768
+
769
+ <rect x="25" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
770
+
771
+ <line x1="50" y1="20" x2="50" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
772
+ <circle cx="50" cy="8" r="4" fill="#FFD93D" stroke="#2B3A55" stroke-width="2"/>
773
+
774
+ <circle cx="40" cy="38" r="4" fill="#2B3A55"/>
775
+ <circle cx="60" cy="38" r="4" fill="#2B3A55"/>
776
+ </svg>`,sleep:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
777
+ <defs>
778
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
779
+ <stop offset="0%" stop-color="#E2F0FF" />
780
+ <stop offset="100%" stop-color="#B8D8FF" />
781
+ </linearGradient>
782
+ </defs>
783
+
784
+ <text x="75" y="25" font-family="sans-serif" font-size="12" fill="#2B3A55" font-weight="bold">Z</text>
785
+ <text x="85" y="15" font-family="sans-serif" font-size="10" fill="#2B3A55" font-weight="bold">z</text>
786
+
787
+ <path d="M 25 60 Q 15 70, 25 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
788
+ <path d="M 75 60 Q 85 70, 75 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
789
+
790
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
791
+
792
+ <rect x="25" y="25" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
793
+
794
+ <path d="M 50 25 Q 45 15, 35 12" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
795
+ <circle cx="35" cy="12" r="4" fill="#A8B2C1" stroke="#2B3A55" stroke-width="2"/>
796
+
797
+ <path d="M 35 42 Q 40 46, 45 42" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
798
+ <path d="M 55 42 Q 60 46, 65 42" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
799
+ </svg>`,"head-palm":`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
800
+ <defs>
801
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
802
+ <stop offset="0%" stop-color="#E2F0FF" />
803
+ <stop offset="100%" stop-color="#B8D8FF" />
804
+ </linearGradient>
805
+ </defs>
806
+
807
+ <path d="M 25 60 Q 20 40, 35 35" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
808
+ <path d="M 75 60 Q 80 70, 78 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
809
+
810
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
811
+
812
+ <rect x="25" y="22" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
813
+
814
+ <path d="M 50 22 Q 55 12, 65 15" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
815
+ <circle cx="65" cy="15" r="4" fill="#A8B2C1" stroke="#2B3A55" stroke-width="2"/>
816
+
817
+ <path d="M 55 40 Q 60 36, 65 40" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
818
+
819
+ <rect x="30" y="28" width="20" height="20" rx="8" fill="#E2F0FF" stroke="#2B3A55" stroke-width="4" transform="rotate(-10 40 38)"/>
820
+
821
+ <line x1="55" y1="50" x2="65" y2="50" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
822
+ </svg>`,type:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
823
+ <defs>
824
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
825
+ <stop offset="0%" stop-color="#E2F0FF" />
826
+ <stop offset="100%" stop-color="#B8D8FF" />
827
+ </linearGradient>
828
+ </defs>
829
+
830
+ <rect x="30" y="80" width="40" height="10" rx="2" fill="#A8B2C1" stroke="#2B3A55" stroke-width="3"/>
831
+ <line x1="35" y1="85" x2="65" y2="85" stroke="#2B3A55" stroke-width="2" stroke-dasharray="4 2"/>
832
+
833
+ <path d="M 25 60 Q 25 75, 40 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
834
+ <path d="M 75 60 Q 75 75, 60 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
835
+
836
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
837
+
838
+ <rect x="25" y="22" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
839
+
840
+ <line x1="50" y1="22" x2="50" y2="12" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
841
+ <circle cx="50" cy="10" r="4" fill="#4D96FF" stroke="#2B3A55" stroke-width="2"/>
842
+
843
+ <ellipse cx="40" cy="40" rx="4" ry="2" fill="#2B3A55"/>
844
+ <ellipse cx="60" cy="40" rx="4" ry="2" fill="#2B3A55"/>
845
+ </svg>`,validation:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
846
+ <defs>
847
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
848
+ <stop offset="0%" stop-color="#E2F0FF" />
849
+ <stop offset="100%" stop-color="#B8D8FF" />
850
+ </linearGradient>
851
+ </defs>
852
+
853
+ <path d="M 25 60 Q 15 70, 25 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
854
+
855
+ <path d="M 75 60 Q 85 50, 85 35" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
856
+ <circle cx="80" cy="32" r="5" fill="#B8D8FF" stroke="#2B3A55" stroke-width="3"/>
857
+
858
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
859
+
860
+ <rect x="25" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
861
+
862
+ <line x1="50" y1="20" x2="50" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
863
+ <circle cx="50" cy="8" r="4" fill="#4ECB71" stroke="#2B3A55" stroke-width="2"/>
864
+
865
+ <circle cx="40" cy="36" r="4" fill="#2B3A55"/>
866
+ <path d="M 55 36 Q 60 31, 65 36" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
867
+ <path d="M 40 46 Q 50 52, 60 46" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
868
+ </svg>`,validation2:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
869
+ <defs>
870
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
871
+ <stop offset="0%" stop-color="#E2F0FF" />
872
+ <stop offset="100%" stop-color="#B8D8FF" />
873
+ </linearGradient>
874
+ </defs>
875
+
876
+ <path d="M 25 60 Q 15 70, 25 85" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
877
+
878
+ <path d="M 75 60 Q 85 55, 85 45" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
879
+ <path d="M 85 45 C 80 45, 78 40, 80 35 C 82 30, 88 30, 90 35 C 92 40, 95 40, 95 48 C 95 52, 90 55, 85 52" fill="#E2F0FF" stroke="#2B3A55" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
880
+
881
+
882
+ <rect x="35" y="55" width="30" height="30" rx="8" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
883
+
884
+ <rect x="25" y="20" width="50" height="35" rx="12" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
885
+
886
+ <line x1="50" y1="20" x2="50" y2="10" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
887
+ <circle cx="50" cy="8" r="4" fill="#4ECB71" stroke="#2B3A55" stroke-width="2"/>
888
+
889
+ <path d="M 35 36 Q 40 42, 45 36" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
890
+ <path d="M 55 36 Q 60 42, 65 36" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
891
+ </svg>`,base2:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100%" height="100%">
892
+ <defs>
893
+ <linearGradient id="roboGrad" x1="0" y1="0" x2="1" y2="1">
894
+ <stop offset="0%" stop-color="#FFFFFF" />
895
+ <stop offset="100%" stop-color="#D0E3FF" />
896
+ </linearGradient>
897
+
898
+ <linearGradient id="darkGrad" x1="0" y1="0" x2="1" y2="1">
899
+ <stop offset="0%" stop-color="#A8B2C1" />
900
+ <stop offset="100%" stop-color="#7B8CA5" />
901
+ </linearGradient>
902
+ </defs>
903
+
904
+ <line x1="50" y1="20" x2="50" y2="6" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
905
+ <circle cx="50" cy="6" r="5" fill="#FFD93D" stroke="#2B3A55" stroke-width="3"/>
906
+
907
+ <path d="M 32 60 Q 15 65, 18 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
908
+ <circle cx="18" cy="80" r="4" fill="url(#darkGrad)" stroke="#2B3A55" stroke-width="3"/>
909
+
910
+ <path d="M 68 60 Q 85 65, 82 80" fill="none" stroke="#2B3A55" stroke-width="4" stroke-linecap="round"/>
911
+ <circle cx="82" cy="80" r="4" fill="url(#darkGrad)" stroke="#2B3A55" stroke-width="3"/>
912
+
913
+ <rect x="42" y="48" width="16" height="12" fill="url(#darkGrad)" stroke="#2B3A55" stroke-width="4"/>
914
+
915
+ <path d="M 36 56 L 64 56 L 68 85 C 68 90, 62 94, 50 94 C 38 94, 32 90, 32 85 Z" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4" stroke-linejoin="round"/>
916
+
917
+ <rect x="42" y="66" width="16" height="8" rx="4" fill="#4D96FF" stroke="#2B3A55" stroke-width="3"/>
918
+
919
+ <rect x="16" y="28" width="10" height="16" rx="3" fill="url(#darkGrad)" stroke="#2B3A55" stroke-width="4"/>
920
+ <rect x="74" y="28" width="10" height="16" rx="3" fill="url(#darkGrad)" stroke="#2B3A55" stroke-width="4"/>
921
+
922
+ <rect x="22" y="20" width="56" height="34" rx="14" fill="url(#roboGrad)" stroke="#2B3A55" stroke-width="4"/>
923
+
924
+ <circle cx="36" cy="38" r="4" fill="#2B3A55"/>
925
+ <circle cx="64" cy="38" r="4" fill="#2B3A55"/>
926
+
927
+ <ellipse cx="28" cy="43" rx="4" ry="2" fill="#FF6B6B" opacity="0.5"/>
928
+ <ellipse cx="72" cy="43" rx="4" ry="2" fill="#FF6B6B" opacity="0.5"/>
929
+
930
+ <path d="M 46 44 Q 50 48, 54 44" fill="none" stroke="#2B3A55" stroke-width="3" stroke-linecap="round"/>
931
+ </svg>`},u={wave:n(l.wave),base:n(l.base),base2:n(l.base2),success:n(l.success),error:n(l.error),angry:n(l.angry),angry2:n(l.angry2),shock:n(l.shock),think:n(l.think),search:n(l.search),loading:n(l.loading),sleep:n(l.sleep),"head-palm":n(l["head-palm"]),type:n(l.type),validation:n(l.validation),validation2:n(l.validation2)};var F=1;function E(){return F++}var L=16,y=class{constructor(t,o,e){this.progressBar=null;this.timerStart=null;this.closeTimeout=null;this.isDragging=false;this.dragOffsetX=0;this.dragOffsetY=0;this.isHovered=false;this.isFocusLost=false;this.isClosed=false;this.cleanupFns=[];this.id=t,this.onRemove=e;let s={message:o.message,autoClose:o.autoClose??5e3,position:o.position??"bottom-right",type:o.type??"default",theme:o.theme??"light",style:o.style,typeSpeed:o.typeSpeed??30,robotVariant:o.robotVariant??"",hideProgressBar:o.hideProgressBar??false,pauseOnFocusLoss:o.pauseOnFocusLoss??true,draggable:o.draggable??true,nearScreen:o.nearScreen??true,pauseOnHover:o.pauseOnHover??true,rtl:o.rtl??false,transition:o.transition??"bounce",onOpen:o.onOpen,onClose:o.onClose};this.options=s;let r=s.position.includes("left"),a;s.nearScreen?a=r?"left":"right":a=r?"right":"left",this.currentRobotSide=a,this.autoCloseDuration=typeof s.autoClose=="number"?s.autoClose:s.autoClose?5e3:0,this.remainingTime=this.autoCloseDuration,this.wrapper=this.buildWrapper(),this.robotEl=this.buildRobot(),this.messageBox=this.buildMessageBox(),this.messageText=this.messageBox.querySelector(".robot-toast-text"),this.progressBar=this.messageBox.querySelector(".robot-toast-progress-bar"),this.assembleLayout(),document.body.appendChild(this.wrapper),s.draggable&&this.initDrag(),s.pauseOnFocusLoss&&this.initFocusWatcher(),s.pauseOnHover&&this.initHoverWatcher(),requestAnimationFrame(()=>this.playEntrance());}close(){this.isClosed||(this.isClosed=true,this.cancelTimer(),this.cleanupFns.forEach(t=>t()),this.cleanupFns=[],this.playExit(()=>{this.wrapper.parentNode&&this.wrapper.parentNode.removeChild(this.wrapper),this.options.onClose?.(),this.onRemove(this.id);}));}shiftVertical(t){this.options.position.startsWith("bottom")?this.wrapper.style.bottom=`${t}px`:this.wrapper.style.top=`${t}px`;}getWrapperHeight(){return this.wrapper.getBoundingClientRect().height||90}buildWrapper(){let t=document.createElement("div"),o=["robot-toast-wrapper",`robot-toast-${this.options.position}`];return this.options.rtl&&o.push("robot-toast-rtl"),t.className=o.join(" "),t}buildRobot(){let t=document.createElement("div");t.className="robot-toast-robot";let o=this.options.robotVariant;if(o==="none")t.style.display="none";else if(o)if(o in u){let e=document.createElement("img");e.src=u[o],e.alt="Robot",e.setAttribute("width","65"),e.setAttribute("height","70"),e.style.cssText="width:100%;height:100%;object-fit:contain;display:block;",e.onerror=()=>{t.innerHTML=this.getBuiltinSVG();},t.appendChild(e);}else if(![".svg",".png",".jpg",".jpeg",".gif",".webp"].some(r=>o.toLowerCase().endsWith(r)))t.innerHTML=this.getBuiltinSVG();else {let r=document.createElement("img");r.src=o,r.alt="Robot",r.setAttribute("width","65"),r.setAttribute("height","70"),r.style.cssText="width:100%;height:100%;object-fit:contain;display:block;",r.onerror=()=>{t.innerHTML=this.getBuiltinSVG();},t.appendChild(r);}else t.innerHTML=this.getBuiltinSVG();return t}buildMessageBox(){let t=document.createElement("div"),o=["robot-toast-message",`robot-toast-type-${this.options.type}`,`robot-toast-theme-${this.options.theme}`].filter(Boolean);t.className=o.join(" "),t.style.cursor=this.options.draggable?"grab":"default",this.options.style&&Object.entries(this.options.style).forEach(([c,f])=>{let h=c.replace(/-([a-z])/g,x=>x[1].toUpperCase());t.style[h]=f;});let e=document.createElement("button");e.className="robot-toast-close",e.innerHTML="&times;",e.title="Dismiss",e.addEventListener("click",c=>{c.stopPropagation(),this.close();}),t.appendChild(e);let s=document.createElement("div");s.className="robot-toast-text",t.appendChild(s);let r=document.createElement("div");r.className="robot-toast-progress-container",this.options.hideProgressBar&&(r.style.display="none");let a=document.createElement("div");return a.className="robot-toast-progress-bar",r.appendChild(a),t.appendChild(r),t}assembleLayout(){let{rtl:t}=this.options;this.wrapper.innerHTML="",(t?this.currentRobotSide==="right":this.currentRobotSide==="left")?(this.wrapper.appendChild(this.robotEl),this.wrapper.appendChild(this.messageBox)):(this.wrapper.appendChild(this.messageBox),this.wrapper.appendChild(this.robotEl));}playEntrance(){this.wrapper.classList.add("robot-toast-visible");let t=this.options.robotVariant==="none",o=()=>{let e=this.options.transition==="bounce"?"message-enter":`message-enter-${this.options.transition}`;this.messageBox.classList.add(e);let s=()=>{this.messageBox.removeEventListener("animationend",s),this.messageBox.classList.remove(e),this.messageBox.style.opacity="1",this.messageBox.style.transform="none",this.options.onOpen?.(),this.startTyping();};this.messageBox.addEventListener("animationend",s,{once:true});};if(t)o();else {let e=this.currentRobotSide==="left"?"left":"right",s=this.options.transition!=="bounce"?`-${this.options.transition}`:"",r=`robot-enter-${e}${s}`;this.robotEl.classList.add(r);let a=()=>{this.robotEl.removeEventListener("animationend",a),this.robotEl.style.opacity="1",this.robotEl.classList.remove(r),this.robotEl.classList.add("robot-idle"),o();};this.robotEl.addEventListener("animationend",a,{once:true});}}playExit(t){let o=this.options.robotVariant==="none";this.messageBox.classList.add("message-exit");let e=()=>{if(this.messageBox.removeEventListener("animationend",e),o)this.wrapper.classList.remove("robot-toast-visible"),setTimeout(t,260);else {this.robotEl.classList.remove("robot-idle","robot-snap-left","robot-snap-right");let s=this.currentRobotSide==="left"?"left":"right",r=this.options.transition!=="bounce"?`-${this.options.transition}`:"",a=`robot-exit-${s}${r}`;this.robotEl.classList.add(a);let c=()=>{this.robotEl.removeEventListener("animationend",c),this.wrapper.classList.remove("robot-toast-visible"),setTimeout(t,260);};this.robotEl.addEventListener("animationend",c,{once:true});}};this.messageBox.addEventListener("animationend",e,{once:true});}startTyping(){let{message:t,typeSpeed:o}=this.options,e=this.messageText;if(o===0){e.textContent=t,this.afterTypingComplete();return}let s=0,r=true;this.cleanupFns.push(()=>{r=false;});let a=()=>{r&&(s<t.length?(e.textContent+=t.charAt(s++),setTimeout(a,o)):this.afterTypingComplete());};a();}afterTypingComplete(){this.autoCloseDuration>0&&!this.options.hideProgressBar&&this.progressBar&&(this.progressBar.style.animationDuration=`${this.autoCloseDuration}ms`,this.progressBar.offsetWidth,this.progressBar.classList.add("robot-toast-progress-auto"),(this.isHovered||this.isFocusLost)&&this.progressBar.classList.add("robot-toast-progress-paused")),!this.isHovered&&!this.isFocusLost&&this.startTimer();}startTimer(){this.autoCloseDuration<=0||this.remainingTime<=0||(this.timerStart=Date.now(),this.closeTimeout=setTimeout(()=>this.close(),this.remainingTime));}pauseTimer(){if(this.closeTimeout&&(clearTimeout(this.closeTimeout),this.closeTimeout=null,this.timerStart!==null)){let t=Date.now()-this.timerStart;this.remainingTime=Math.max(0,this.remainingTime-t),this.timerStart=null;}this.progressBar?.classList.add("robot-toast-progress-paused");}resumeTimer(){this.isHovered||this.isFocusLost||this.isDragging||(this.progressBar?.classList.remove("robot-toast-progress-paused"),this.startTimer());}cancelTimer(){this.closeTimeout&&(clearTimeout(this.closeTimeout),this.closeTimeout=null);}initHoverWatcher(){let t=()=>{this.isHovered=true,this.pauseTimer();},o=()=>{this.isHovered=false,this.resumeTimer();};this.wrapper.addEventListener("mouseenter",t),this.wrapper.addEventListener("mouseleave",o),this.cleanupFns.push(()=>{this.wrapper.removeEventListener("mouseenter",t),this.wrapper.removeEventListener("mouseleave",o);});}initFocusWatcher(){let t=()=>{this.isFocusLost=true,this.pauseTimer();},o=()=>{this.isFocusLost=false,this.resumeTimer();};window.addEventListener("blur",t),window.addEventListener("focus",o),this.cleanupFns.push(()=>{window.removeEventListener("blur",t),window.removeEventListener("focus",o);});}initDrag(){this.messageBox.style.cursor="grab";let t=s=>{if(s.target.closest(".robot-toast-close")||s.button!==void 0&&s.button!==0)return;s.preventDefault(),this.isDragging=true,this.pauseTimer();let r=this.wrapper.getBoundingClientRect();this.wrapper.classList.add("robot-toast-dragging"),this.wrapper.style.top=`${r.top}px`,this.wrapper.style.left=`${r.left}px`,this.wrapper.style.right="auto",this.wrapper.style.bottom="auto",this.wrapper.style.transform="none",this.dragOffsetX=s.clientX-r.left,this.dragOffsetY=s.clientY-r.top,this.messageBox.style.cursor="grabbing",this.wrapper.setPointerCapture(s.pointerId);},o=s=>{if(!this.isDragging)return;s.preventDefault();let r=this.wrapper.getBoundingClientRect(),a=window.innerWidth-r.width,c=window.innerHeight-r.height,f=Math.max(0,Math.min(s.clientX-this.dragOffsetX,a)),h=Math.max(0,Math.min(s.clientY-this.dragOffsetY,c));this.wrapper.style.left=`${f}px`,this.wrapper.style.top=`${h}px`;},e=s=>{if(!this.isDragging)return;this.isDragging=false,this.wrapper.classList.remove("robot-toast-dragging"),this.messageBox.style.cursor="grab";let r=this.wrapper.getBoundingClientRect(),a=r.left+r.width/2,c=window.innerWidth/2,f=a<c,h=this.options.nearScreen?f?"left":"right":f?"right":"left",x=f?20:window.innerWidth-r.width-20,T=Math.max(20,Math.min(r.top,window.innerHeight-r.height-20));if(this.wrapper.style.transition="left 0.45s cubic-bezier(0.34,1.56,0.64,1), top 0.4s cubic-bezier(0.34,1.56,0.64,1)",this.wrapper.style.left=`${x}px`,this.wrapper.style.top=`${T}px`,h!==this.currentRobotSide){this.currentRobotSide=h;let B=h==="left";this.robotEl.style.order=B?"0":"1",this.messageBox.style.order=B?"1":"0";let v=h==="left"?"robot-snap-left":"robot-snap-right";this.robotEl.classList.remove("robot-idle","robot-snap-left","robot-snap-right"),this.robotEl.classList.add(v),this.robotEl.addEventListener("animationend",()=>{this.robotEl.style.opacity="1",this.robotEl.classList.remove(v),this.robotEl.classList.add("robot-idle");},{once:true});}setTimeout(()=>{this.wrapper.style.transition="";},500),this.resumeTimer();};this.wrapper.addEventListener("pointerdown",t),this.wrapper.addEventListener("pointermove",o),this.wrapper.addEventListener("pointerup",e),this.wrapper.addEventListener("pointercancel",e),this.cleanupFns.push(()=>{this.wrapper.removeEventListener("pointerdown",t),this.wrapper.removeEventListener("pointermove",o),this.wrapper.removeEventListener("pointerup",e),this.wrapper.removeEventListener("pointercancel",e);});}getBuiltinSVG(){return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 120"
932
+ width="100%" height="100%" role="img" aria-label="Robot">
933
+ <defs>
934
+ <linearGradient id="rtGrad${this.id}" x1="0" y1="0" x2="1" y2="1">
935
+ <stop offset="0%" stop-color="#E2F0FF"/>
936
+ <stop offset="100%" stop-color="#B8D8FF"/>
937
+ </linearGradient>
938
+ <linearGradient id="rtAccent${this.id}" x1="0" y1="0" x2="0" y2="1">
939
+ <stop offset="0%" stop-color="#7CB9FF"/>
940
+ <stop offset="100%" stop-color="#4A90D9"/>
941
+ </linearGradient>
942
+ </defs>
943
+ <!-- Antenna -->
944
+ <line x1="50" y1="4" x2="50" y2="18" stroke="#2B3A55" stroke-width="2.5" stroke-linecap="round"/>
945
+ <circle cx="50" cy="4" r="4" fill="#FF6B6B"/>
946
+ <!-- Head -->
947
+ <rect x="24" y="18" width="52" height="40" rx="10" ry="10"
948
+ fill="url(#rtGrad${this.id})" stroke="#2B3A55" stroke-width="2"/>
949
+ <!-- Eyes -->
950
+ <circle cx="38" cy="36" r="6" fill="#2B3A55"/>
951
+ <circle cx="62" cy="36" r="6" fill="#2B3A55"/>
952
+ <circle cx="40" cy="34" r="2" fill="#ffffff"/>
953
+ <circle cx="64" cy="34" r="2" fill="#ffffff"/>
954
+ <!-- Mouth -->
955
+ <path d="M 38 50 Q 50 58 62 50" stroke="#2B3A55" stroke-width="2"
956
+ fill="none" stroke-linecap="round"/>
957
+ <!-- Neck -->
958
+ <rect x="44" y="58" width="12" height="8" rx="3"
959
+ fill="url(#rtAccent${this.id})" stroke="#2B3A55" stroke-width="1.5"/>
960
+ <!-- Body -->
961
+ <rect x="22" y="66" width="56" height="44" rx="10" ry="10"
962
+ fill="url(#rtGrad${this.id})" stroke="#2B3A55" stroke-width="2"/>
963
+ <!-- Chest panel -->
964
+ <rect x="34" y="76" width="32" height="20" rx="5"
965
+ fill="url(#rtAccent${this.id})" stroke="#2B3A55" stroke-width="1.5"/>
966
+ <circle cx="42" cy="86" r="3" fill="#FF6B6B"/>
967
+ <circle cx="50" cy="86" r="3" fill="#FFD700"/>
968
+ <circle cx="58" cy="86" r="3" fill="#6BFF8A"/>
969
+ <!-- Arms -->
970
+ <rect x="4" y="68" width="18" height="30" rx="9"
971
+ fill="url(#rtGrad${this.id})" stroke="#2B3A55" stroke-width="2"/>
972
+ <rect x="78" y="68" width="18" height="30" rx="9"
973
+ fill="url(#rtGrad${this.id})" stroke="#2B3A55" stroke-width="2"/>
974
+ <!-- Legs -->
975
+ <rect x="30" y="110" width="16" height="10" rx="5"
976
+ fill="url(#rtAccent${this.id})" stroke="#2B3A55" stroke-width="1.5"/>
977
+ <rect x="54" y="110" width="16" height="10" rx="5"
978
+ fill="url(#rtAccent${this.id})" stroke="#2B3A55" stroke-width="1.5"/>
979
+ </svg>`}},b=class b{constructor(){this.activeToasts=[];this.queue=[];this.globalLimit=0;new A;}static getInstance(){return b._instance||(b._instance=new b),b._instance}show(t){if(typeof document>"u")return -1;let o=E(),e=t.limit??this.globalLimit;return e>0&&this.activeToasts.length>=e?(this.queue.push({options:t,id:o}),o):(this.spawnToast(t,o),o)}closeAll(){this.queue=[],[...this.activeToasts].forEach(t=>t.close());}closeById(t){let o=this.activeToasts.find(e=>e.id===t);o&&o.close(),this.queue=this.queue.filter(e=>e.id!==t);}spawnToast(t,o){let e=new y(o,t,r=>this.handleRemoved(r));t.newestOnTop??false?this.activeToasts.unshift(e):this.activeToasts.push(e),this.restack();}handleRemoved(t){if(this.activeToasts=this.activeToasts.filter(o=>o.id!==t),this.restack(),this.queue.length>0){let o=this.queue.shift();setTimeout(()=>this.spawnToast(o.options,o.id),120);}}restack(){let t={};this.activeToasts.forEach(o=>{let e=o.options.position;t[e]||(t[e]=[]),t[e].push(o);}),Object.keys(t).forEach(o=>{let e=t[o],s=20;e.forEach(r=>{r.shiftVertical(s),s+=r.getWrapperHeight()+L;});});}};b._instance=null;var d=b;function w(i=5e3){return new Promise((t,o)=>{if(typeof window>"u"){o(new Error("[RobotToast] Cannot run outside of a browser environment."));return}if(window.RobotToast){t(window.RobotToast);return}let e=Date.now(),s=setInterval(()=>{if(window.RobotToast){clearInterval(s),t(window.RobotToast);return}Date.now()-e>=i&&(clearInterval(s),o(new Error(`[RobotToast] Failed to load within ${i}ms.`)));},80);})}async function M(i){try{return (await w()).show(i)}catch(t){return console.error("[RobotToast] showRobotToast failed:",t),-1}}async function R(){try{(await w()).closeAll();}catch(i){console.error("[RobotToast] closeAllRobotToasts failed:",i);}}async function G(){return w()}var O=["top-right","top-left","top-center","bottom-right","bottom-left","bottom-center"],S=["default","info","success","warning","error"],C=["light","dark","colored"],I=["bounce","slide","zoom","flip"];function g(i){return typeof i=="string"?{message:i}:i}function p(i){return typeof window>"u"?-1:d.getInstance().show(g(i))}p.success=i=>p({...g(i),type:"success"});p.error=i=>p({...g(i),type:"error"});p.info=i=>p({...g(i),type:"info"});p.warning=i=>p({...g(i),type:"warning"});p.closeAll=()=>{typeof window>"u"||d.getInstance().closeAll();};p.closeById=i=>{typeof window>"u"||d.getInstance().closeById(i);};function D(){if(typeof window>"u"||window.__robotToastLoaded)return;window.__robotToastLoaded=true;let i={show:t=>d.getInstance().show(t),closeAll:()=>d.getInstance().closeAll(),closeById:t=>d.getInstance().closeById(t),getInstance:()=>d.getInstance()};window.RobotToast=i;}D();exports.ROBOT_IMAGES=u;exports.RobotToast=d;exports.RobotToastManager=d;exports.TOAST_POSITIONS=O;exports.TOAST_THEMES=C;exports.TOAST_TRANSITIONS=I;exports.TOAST_TYPES=S;exports.closeAllRobotToasts=R;exports.ensureRobotToastReady=w;exports.getRobotToastInstance=G;exports.showRobotToast=M;exports.toast=p;//# sourceMappingURL=index.js.map
980
+ //# sourceMappingURL=index.js.map