@gajae-code/tui 0.13.2 → 0.13.3

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.
@@ -0,0 +1,488 @@
1
+ {
2
+ "idle": [
3
+ "................",
4
+ "................",
5
+ ".....RRR........",
6
+ "....RRDRRR......",
7
+ "....RRRRRRR.....",
8
+ ".....RRRrRRR....",
9
+ ".........rRRR...",
10
+ "..........rRR...",
11
+ ".....R.....RRR..",
12
+ "....RR.....RRR..",
13
+ "...RR..RR..RRR..",
14
+ "..rRRRRRRRRRRr..",
15
+ "...rRRrRrRRRr...",
16
+ "....rr...rrr....",
17
+ "................",
18
+ "................"
19
+ ],
20
+ "tongue-1": [
21
+ "................",
22
+ "................",
23
+ ".....RRR........",
24
+ "....RRDRRR......",
25
+ "....RRRRRRR.....",
26
+ "....ARRRrRRR....",
27
+ ".........rRRR...",
28
+ "..........rRR...",
29
+ ".....R.....RRR..",
30
+ "....RR.....RRR..",
31
+ "...RR..RR..RRR..",
32
+ "..rRRRRRRRRRRr..",
33
+ "...rRRrRrRRRr...",
34
+ "....rr...rrr....",
35
+ "................",
36
+ "................"
37
+ ],
38
+ "tongue-2": [
39
+ "................",
40
+ "................",
41
+ ".....RRR........",
42
+ "....RRDRRR......",
43
+ "..A.RRRRRRR.....",
44
+ "...AARRRrRRR....",
45
+ ".........rRRR...",
46
+ "..........rRR...",
47
+ ".....R.....RRR..",
48
+ "....RR.....RRR..",
49
+ "...RR..RR..RRR..",
50
+ "..rRRRRRRRRRRr..",
51
+ "...rRRrRrRRRr...",
52
+ "....rr...rrr....",
53
+ "................",
54
+ "................"
55
+ ],
56
+ "blink": [
57
+ "................",
58
+ "................",
59
+ ".....RRR........",
60
+ "....RRRRRR......",
61
+ "....RRRRRRR.....",
62
+ ".....RRRrRRR....",
63
+ ".........rRRR...",
64
+ "..........rRR...",
65
+ ".....R.....RRR..",
66
+ "....RR.....RRR..",
67
+ "...RR..RR..RRR..",
68
+ "..rRRRRRRRRRRr..",
69
+ "...rRRrRrRRRr...",
70
+ "....rr...rrr....",
71
+ "................",
72
+ "................"
73
+ ],
74
+ "cry-1": [
75
+ "................",
76
+ "................",
77
+ ".....RRR........",
78
+ "....RRwRRR......",
79
+ "....RDRRRRR.....",
80
+ ".....RRRrRRR....",
81
+ ".........rRRR...",
82
+ "..........rRR...",
83
+ ".....R.....RRR..",
84
+ "....RR.....RRR..",
85
+ "...RR..RR..RRR..",
86
+ "..rRRRRRRRRRRr..",
87
+ "...rRRrRrRRRr...",
88
+ "....rr...rrr....",
89
+ "................",
90
+ "................"
91
+ ],
92
+ "cry-2": [
93
+ "................",
94
+ "........w.......",
95
+ "...w.RRR........",
96
+ "....RRRRRR......",
97
+ "....RDRRRRR.....",
98
+ ".....RRRrRRR....",
99
+ ".........rRRR...",
100
+ "..........rRR...",
101
+ ".....R.....RRR..",
102
+ "....RR.....RRR..",
103
+ "...RR..RR..RRR..",
104
+ "..rRRRRRRRRRRr..",
105
+ "...rRRrRrRRRr...",
106
+ "....rr...rrr....",
107
+ "................",
108
+ "................"
109
+ ],
110
+ "cry-3": [
111
+ "..........ww....",
112
+ "ww......w.......",
113
+ "...w.RRR........",
114
+ "....RRRRRR......",
115
+ "....RDRRRRR.....",
116
+ ".....RRRrRRR....",
117
+ ".........rRRR...",
118
+ "..........rRR...",
119
+ ".....R.....RRR..",
120
+ "....RR.....RRR..",
121
+ "...RR..RR..RRR..",
122
+ "..rRRRRRRRRRRr..",
123
+ "...rRRrRrRRRr...",
124
+ "....rr...rrr....",
125
+ "................",
126
+ "................"
127
+ ],
128
+ "heart-turn-0": [
129
+ "................",
130
+ "................",
131
+ ".....RRR........",
132
+ "....RRGRRR......",
133
+ "....RRRRRRR.....",
134
+ ".....RRRrRRR....",
135
+ ".........rRRR...",
136
+ "..........rRR...",
137
+ ".....R.....RRR..",
138
+ "....RR.....RRR..",
139
+ "...RR..RR..RRR..",
140
+ "..rRRRRRRRRRRr..",
141
+ "...rRRrRrRRRr...",
142
+ "....rr...rrr....",
143
+ "................",
144
+ "................"
145
+ ],
146
+ "heart-turn-1": [
147
+ "................",
148
+ "......RRR.......",
149
+ "....RRRRRRR.....",
150
+ "...RRRRrrRRR....",
151
+ "..RRGRr..rRRR...",
152
+ "..RRRR....RRRR..",
153
+ "...RR......RRR..",
154
+ "............RRR.",
155
+ "....R.......RRR.",
156
+ "...R........RRr.",
157
+ "..RR...RR..RRR..",
158
+ "..rRRRRRRRRRRr..",
159
+ "...rRRrRrRRRr...",
160
+ "....rr...rrr....",
161
+ "................",
162
+ "................"
163
+ ],
164
+ "heart-turn-3": [
165
+ "................",
166
+ ".....RRRRR......",
167
+ "...RRRRRRRRR....",
168
+ "..RRRrrrrrRRR...",
169
+ ".RRRr.....rRRR..",
170
+ "RRRR.......rRRR.",
171
+ "RGRR........rRR.",
172
+ "RRRR.........RR.",
173
+ ".RR..........RR.",
174
+ "............RRR.",
175
+ ".R.........RRRr.",
176
+ "..RR......RRRr..",
177
+ "...RRRRRRRRRR...",
178
+ "....rRRRRRRr....",
179
+ ".....rrrrrr.....",
180
+ "................"
181
+ ],
182
+ "heart-turn-4": [
183
+ "................",
184
+ "......RRRRR.....",
185
+ "....RRRRRRRR....",
186
+ "...RRrRrrRrRR...",
187
+ "..RRrr......RR..",
188
+ ".RRrr.......RRr.",
189
+ ".Rrr........RRr.",
190
+ "RRR.........RRR.",
191
+ "RRR.........RRR.",
192
+ ".RRR........RRr.",
193
+ ".RRRR......RRRr.",
194
+ "RRGR......RRRr..",
195
+ ".RRRR....RRRr...",
196
+ ".......RRRRr....",
197
+ ".....RRRRrr.....",
198
+ "................"
199
+ ],
200
+ "heart-turn-5": [
201
+ "................",
202
+ ".....RRRRRr.....",
203
+ "....RRRRRRRr....",
204
+ "...RRRr..RRRR...",
205
+ "..RRRr....RRRr..",
206
+ "..RRr......RRRr.",
207
+ ".RRr........RRr.",
208
+ ".RRr........RRr.",
209
+ ".RRr........RRr.",
210
+ ".RRr........RRr.",
211
+ ".RRr........RRr.",
212
+ "..RRr.......Rr..",
213
+ "..RRRRRR...RR...",
214
+ "...RRRRRR..R....",
215
+ "....RRGRR.R.....",
216
+ ".....RRR........"
217
+ ],
218
+ "heart-turn-6": [
219
+ "................",
220
+ ".....RRRrR......",
221
+ "....RRRRRRRrr...",
222
+ "..RRRR.RRRRRr...",
223
+ "..RRr....R.RRr..",
224
+ "..RR.......RRrr.",
225
+ ".RRRr.......RRr.",
226
+ ".RRr........RRR.",
227
+ ".RRr.........Rr.",
228
+ ".RRr.........RR.",
229
+ ".RRRr........R..",
230
+ "..RRr........R..",
231
+ "...RRrr.RRRR.R..",
232
+ "...RRRRRRRRR....",
233
+ ".....RRRRGRR....",
234
+ "........RRR....."
235
+ ],
236
+ "heart-turn-10": [
237
+ "................",
238
+ ".....rrRRrr.....",
239
+ "....RRRRRRRr....",
240
+ "...RRRRRRRRRr...",
241
+ "..RR......RRRr..",
242
+ ".RRr.......RRRr.",
243
+ ".RRR........RRr.",
244
+ ".RRr.........RR.",
245
+ ".RRr.........RR.",
246
+ ".RRR..........R.",
247
+ "..Rrr.........R.",
248
+ "..RRrr....R.R...",
249
+ "...RRrr..RRRR...",
250
+ "....RRrRRRRGR...",
251
+ ".....RRRRRRRR...",
252
+ ".......RR..R...."
253
+ ],
254
+ "heart-turn-11": [
255
+ "................",
256
+ "................",
257
+ "....RRR...RR....",
258
+ "...RRRRRRRRRR...",
259
+ "..RRRrrRRrrrRR..",
260
+ "..RRr..rr...rR..",
261
+ ".RRR.........R..",
262
+ ".RR.........A.A.",
263
+ ".RRR.........A..",
264
+ ".rRRR......RR...",
265
+ "..rRRR....RRRR..",
266
+ "...rRRR..RRGRR..",
267
+ "....rRRRRRRRRr..",
268
+ ".....rRRRRRrr...",
269
+ "......rrrrr.....",
270
+ "................"
271
+ ],
272
+ "heart": [
273
+ "................",
274
+ "................",
275
+ "....rrr...rr....",
276
+ "...rRRRrRrRRr...",
277
+ "..rRRRRRRRRRRr..",
278
+ "..RRR..RR..RR...",
279
+ "..RRR.....RR....",
280
+ "..RRR.....R.....",
281
+ "...RRr..........",
282
+ "...RRRr.........",
283
+ "....RRRrRRR.....",
284
+ ".....RRRRRRR....",
285
+ "......RRRGRR....",
286
+ "........RRR.....",
287
+ "................",
288
+ "................"
289
+ ],
290
+ "heart-accent": [
291
+ "................",
292
+ "................",
293
+ "....rrr...rr....",
294
+ "...rRRRrRrRRr...",
295
+ "..rRRRRRRRRRRr..",
296
+ "..RRR..RR..RR...",
297
+ "..RRR.....RR....",
298
+ "..RRR.....R.....",
299
+ "...RRr......A.A.",
300
+ "...RRRr......A..",
301
+ "....RRRrRRR.....",
302
+ ".....RRRRRRR....",
303
+ "......RRRDRR....",
304
+ "........RRR.....",
305
+ "................",
306
+ "................"
307
+ ],
308
+ "enter-1": [
309
+ "................",
310
+ "................",
311
+ "................",
312
+ ".RRRR...........",
313
+ ".RRGRRR.........",
314
+ ".rrRRRRR........",
315
+ "..rRRRRR........",
316
+ "....RRrRRR......",
317
+ "...R..RRRRRR....",
318
+ "..RR..rrRRRR....",
319
+ "..RRR.RRRRRR....",
320
+ "..rRRRRRRR......",
321
+ "...RRRRR........",
322
+ "....rr..........",
323
+ "................",
324
+ "................"
325
+ ],
326
+ "enter-2": [
327
+ "................",
328
+ "..RR............",
329
+ ".RRDR......RRR..",
330
+ ".RRRRR....RrrR..",
331
+ "..RRRRR..RR..RR.",
332
+ ".....rRRRRr..RR.",
333
+ ".R....rRRr....RR",
334
+ "R......RR.....RR",
335
+ "Rr.....rR.....RR",
336
+ "Rr....RrRR....Rr",
337
+ "RRR..RRrrRR..RRr",
338
+ ".rR..Rr..rR..Rr.",
339
+ "..RRRr....rRRR..",
340
+ "..rrr......rrr..",
341
+ "................",
342
+ "................"
343
+ ],
344
+ "spin-1": [
345
+ "................",
346
+ "..RR............",
347
+ ".RRGR......RRR..",
348
+ ".RRRRR....RrrR..",
349
+ "..RRRRR..RR..RR.",
350
+ ".....rRRRRr..RR.",
351
+ ".R....rRRr....RR",
352
+ "R......RR.....RR",
353
+ "Rr.....rR.....RR",
354
+ "Rr....RrRR....Rr",
355
+ "RRR..RRrrRR..RRr",
356
+ ".rR..Rr..rR..Rr.",
357
+ "..RRRr....rRRR..",
358
+ "..rrr......rrr..",
359
+ "................",
360
+ "................"
361
+ ],
362
+ "spin-2": [
363
+ "................",
364
+ "................",
365
+ "..RRR......RRR..",
366
+ "..RrrR....RrrR..",
367
+ ".RR..RR..RR..RR.",
368
+ "RRR..rRRRRr..RR.",
369
+ "RRR...rRRr....RR",
370
+ "RGR....RR.....RR",
371
+ "RR.....rR.....RR",
372
+ "......RrRR....Rr",
373
+ ".R...RRrrRR..RRr",
374
+ ".RR..Rr..rR..Rr.",
375
+ "..rRRr....rRRR..",
376
+ "...rr......rrr..",
377
+ "................",
378
+ "................"
379
+ ],
380
+ "spin-3": [
381
+ "................",
382
+ "................",
383
+ "..RRR......RRR..",
384
+ "..RrrR....RrrR..",
385
+ ".RR..RR..RR..RR.",
386
+ ".RR..rRRRRr..RR.",
387
+ "RR....rRRr....RR",
388
+ "RR.....rR.....RR",
389
+ "RR.....rR.....RR",
390
+ "RR....RrRR....Rr",
391
+ "rRR...r.rRR..RRr",
392
+ ".rRRR....rR..Rr.",
393
+ "..RRRRR...rRRR..",
394
+ "..RGRRR....rrr..",
395
+ "...RRR..........",
396
+ "................"
397
+ ],
398
+ "spin-4": [
399
+ "................",
400
+ "................",
401
+ "..RRR......RRR..",
402
+ "..RrrR....RrrR..",
403
+ ".RR..RR..R...RR.",
404
+ ".RR..rRR.....RR.",
405
+ "RR....rr......RR",
406
+ "RR.....RRR....RR",
407
+ "RR....RRGR....RR",
408
+ "rR....RRRR....Rr",
409
+ "rRR..RRRRrR..RRr",
410
+ ".rR..RrR.rr..Rr.",
411
+ "..RRRr....rRRR..",
412
+ "..rrr......rrr..",
413
+ "................",
414
+ "................"
415
+ ],
416
+ "spin-5": [
417
+ "...........RR...",
418
+ "..........RRRR..",
419
+ "..RRR.....RRGR..",
420
+ "..RrrR....RRRR..",
421
+ ".RR..RR..RRRR...",
422
+ ".RR..rRRRRr.....",
423
+ "RR....rRRr....R.",
424
+ "RR.....RR.....R.",
425
+ "RR.....Rr.....RR",
426
+ "rR....RRrR....Rr",
427
+ "rRR..RRrrRR..RRr",
428
+ ".rR..Rr..rR..Rr.",
429
+ "..RRRr....rRRR..",
430
+ "..rrr......rrr..",
431
+ "................",
432
+ "................"
433
+ ],
434
+ "spin-6": [
435
+ "................",
436
+ "................",
437
+ "..RRR......RRR..",
438
+ "..RrrR....RRRRR.",
439
+ ".RR..RR..RRrrRRR",
440
+ ".RR..rRRRRr..RRR",
441
+ "RR....rRRr...RRR",
442
+ "RR.....RR....RGR",
443
+ "RR.....Rr.....RR",
444
+ "rR....RRrR......",
445
+ "rRR..RRrrRR.....",
446
+ ".rR..Rr..rR...R.",
447
+ "..RRRr....rRRr..",
448
+ "..rrr......rr...",
449
+ "................",
450
+ "................"
451
+ ],
452
+ "spin-7": [
453
+ "................",
454
+ "................",
455
+ "..RRR......RRR..",
456
+ "..RrrR....RrrR..",
457
+ ".RR..RR..RR..RR.",
458
+ ".RR..rRRRRr..RR.",
459
+ "RR....rRRr....RR",
460
+ "RR.....Rr.....RR",
461
+ "RR.....Rr.....RR",
462
+ "rR....RRrR....RR",
463
+ "rRR..RRr.r...RRr",
464
+ ".rR..Rr....RRRr.",
465
+ "..RRRr...RRRRR..",
466
+ "..rrr....RRRGR..",
467
+ "..........RRR...",
468
+ "................"
469
+ ],
470
+ "spin-8": [
471
+ "................",
472
+ "................",
473
+ "..RRR......RRR..",
474
+ "..RrrR....RrrR..",
475
+ ".RR...R..RR..RR.",
476
+ ".RR.....RRr..RR.",
477
+ "RR......rr....RR",
478
+ "RR....RRR.....RR",
479
+ "RR....RGRR....RR",
480
+ "rR....RRRR....Rr",
481
+ "rRR..RrRRRR..RRr",
482
+ ".rR..rr.RrR..Rr.",
483
+ "..RRRr....rRRR..",
484
+ "..rrr......rrr..",
485
+ "................",
486
+ "................"
487
+ ]
488
+ }
@@ -0,0 +1,150 @@
1
+ import frames from "./ouroboros-pet-frames.json" with { type: "json" };
2
+
3
+ export const OUROBOROS_FRAME_NAMES = [
4
+ "idle",
5
+ "tongue-1",
6
+ "tongue-2",
7
+ "blink",
8
+ "cry-1",
9
+ "cry-2",
10
+ "cry-3",
11
+ "heart-turn-0",
12
+ "heart-turn-1",
13
+ "heart-turn-3",
14
+ "heart-turn-4",
15
+ "heart-turn-5",
16
+ "heart-turn-6",
17
+ "heart-turn-10",
18
+ "heart-turn-11",
19
+ "heart",
20
+ "heart-accent",
21
+ "enter-1",
22
+ "enter-2",
23
+ "spin-1",
24
+ "spin-2",
25
+ "spin-3",
26
+ "spin-4",
27
+ "spin-5",
28
+ "spin-6",
29
+ "spin-7",
30
+ "spin-8",
31
+ ] as const;
32
+
33
+ export type OuroborosFrameName = (typeof OUROBOROS_FRAME_NAMES)[number];
34
+
35
+ export const OUROBOROS_PIXEL_GRIDS: Record<OuroborosFrameName, string[]> = frames;
36
+
37
+ /** Quiet loop with frequent tongue flicks and an occasional three-drop sob. */
38
+ export const OUROBOROS_IDLE_STEPS: ReadonlyArray<readonly [OuroborosFrameName, number]> = [
39
+ ["idle", 1400],
40
+ ["blink", 120],
41
+ ["idle", 500],
42
+ ["tongue-1", 110],
43
+ ["tongue-2", 150],
44
+ ["tongue-1", 90],
45
+ ["idle", 1600],
46
+ ["tongue-1", 110],
47
+ ["tongue-2", 150],
48
+ ["tongue-1", 90],
49
+ ["idle", 2200],
50
+ ["blink", 120],
51
+ ["idle", 900],
52
+ ["tongue-1", 110],
53
+ ["tongue-2", 150],
54
+ ["tongue-1", 90],
55
+ ["idle", 1800],
56
+ ["cry-1", 180],
57
+ ["cry-2", 180],
58
+ ["cry-3", 320],
59
+ ["cry-2", 180],
60
+ ["cry-3", 320],
61
+ ["cry-2", 180],
62
+ ["cry-3", 420],
63
+ ["idle", 1600],
64
+ ];
65
+
66
+ /** One sob builds into three distinct tear drops: 1-2-3-2-3-2-3. */
67
+ export const OUROBOROS_CRY_STEPS: ReadonlyArray<readonly [OuroborosFrameName, number]> = [
68
+ ["cry-1", 180],
69
+ ["cry-2", 180],
70
+ ["cry-3", 320],
71
+ ["cry-2", 180],
72
+ ["cry-3", 320],
73
+ ["cry-2", 180],
74
+ ["cry-3", 420],
75
+ ];
76
+
77
+ /**
78
+ * Signature flex: the eye opens before the body rolls counterclockwise through
79
+ * 45°, 90°, 120°, and the final overlap with the heart pose. The return reuses
80
+ * the authored frames in reverse.
81
+ */
82
+ export const OUROBOROS_HEART_STEPS: ReadonlyArray<readonly [OuroborosFrameName, number]> = [
83
+ ["heart-turn-0", 100],
84
+ ["heart-turn-1", 110],
85
+ ["heart-turn-3", 110],
86
+ ["heart-turn-4", 110],
87
+ ["heart-turn-5", 110],
88
+ ["heart-turn-6", 110],
89
+ ["heart-turn-10", 110],
90
+ ["heart-turn-11", 110],
91
+ ["heart", 300],
92
+ ["heart-accent", 160],
93
+ ["heart", 110],
94
+ ["heart-accent", 160],
95
+ ["heart", 350],
96
+ ["heart-turn-11", 100],
97
+ ["heart-turn-10", 100],
98
+ ["heart-turn-6", 100],
99
+ ["heart-turn-5", 100],
100
+ ["heart-turn-4", 100],
101
+ ["heart-turn-3", 100],
102
+ ["heart-turn-1", 100],
103
+ ["heart-turn-0", 100],
104
+ ["idle", 500],
105
+ ];
106
+
107
+ /** Head leads left while the resting coil resolves into the infinity loop. */
108
+ export const OUROBOROS_WORK_ENTER_STEPS: ReadonlyArray<readonly [OuroborosFrameName, number]> = [
109
+ ["enter-1", 120],
110
+ ["enter-2", 120],
111
+ ];
112
+
113
+ /** The exact inverse of work entry, so stopping visibly unwinds into idle. */
114
+ export const OUROBOROS_WORK_EXIT_STEPS: ReadonlyArray<readonly [OuroborosFrameName, number]> = [
115
+ ["enter-2", 110],
116
+ ["enter-1", 120],
117
+ ["idle", 160],
118
+ ];
119
+
120
+ /** Retouched eight-frame infinity loop with the full body following the head. */
121
+ export const OUROBOROS_WORK_STEPS: ReadonlyArray<readonly [OuroborosFrameName, number]> = [
122
+ ["spin-1", 220],
123
+ ["spin-2", 220],
124
+ ["spin-3", 220],
125
+ ["spin-4", 220],
126
+ ["spin-5", 220],
127
+ ["spin-6", 220],
128
+ ["spin-7", 220],
129
+ ["spin-8", 220],
130
+ ];
131
+
132
+ /** Leave the infinity loop, perform the heart flourish, then resolve back into it. */
133
+ export const OUROBOROS_WORK_HEART_STEPS: ReadonlyArray<readonly [OuroborosFrameName, number]> = [
134
+ ["enter-2", 110],
135
+ ["enter-1", 120],
136
+ ...OUROBOROS_HEART_STEPS,
137
+ ["enter-1", 120],
138
+ ["enter-2", 140],
139
+ ];
140
+
141
+ /** Leave the infinity loop for a three-drop sob, then resume at full size. */
142
+ export const OUROBOROS_WORK_CRY_STEPS: ReadonlyArray<readonly [OuroborosFrameName, number]> = [
143
+ ["enter-2", 110],
144
+ ["enter-1", 120],
145
+ ["idle", 120],
146
+ ...OUROBOROS_CRY_STEPS,
147
+ ["idle", 220],
148
+ ["enter-1", 120],
149
+ ["enter-2", 140],
150
+ ];