@hapticjs/core 0.2.0 → 0.3.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.cjs +1390 -166
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +417 -10
- package/dist/index.d.ts +417 -10
- package/dist/index.js +1375 -167
- package/dist/index.js.map +1 -1
- package/dist/presets/index.cjs +257 -78
- package/dist/presets/index.cjs.map +1 -1
- package/dist/presets/index.d.cts +307 -1
- package/dist/presets/index.d.ts +307 -1
- package/dist/presets/index.js +257 -79
- package/dist/presets/index.js.map +1 -1
- package/package.json +1 -1
package/dist/presets/index.cjs
CHANGED
|
@@ -5,15 +5,15 @@ var ui = {
|
|
|
5
5
|
/** Light button tap */
|
|
6
6
|
tap: {
|
|
7
7
|
name: "ui.tap",
|
|
8
|
-
steps: [{ type: "vibrate", duration:
|
|
8
|
+
steps: [{ type: "vibrate", duration: 30, intensity: 0.6 }]
|
|
9
9
|
},
|
|
10
10
|
/** Double tap */
|
|
11
11
|
doubleTap: {
|
|
12
12
|
name: "ui.doubleTap",
|
|
13
13
|
steps: [
|
|
14
|
-
{ type: "vibrate", duration:
|
|
14
|
+
{ type: "vibrate", duration: 25, intensity: 0.6 },
|
|
15
15
|
{ type: "pause", duration: 80, intensity: 0 },
|
|
16
|
-
{ type: "vibrate", duration:
|
|
16
|
+
{ type: "vibrate", duration: 25, intensity: 0.6 }
|
|
17
17
|
]
|
|
18
18
|
},
|
|
19
19
|
/** Long press acknowledgment */
|
|
@@ -24,58 +24,58 @@ var ui = {
|
|
|
24
24
|
/** Toggle switch on */
|
|
25
25
|
toggleOn: {
|
|
26
26
|
name: "ui.toggleOn",
|
|
27
|
-
steps: [{ type: "vibrate", duration:
|
|
27
|
+
steps: [{ type: "vibrate", duration: 30, intensity: 0.6 }]
|
|
28
28
|
},
|
|
29
29
|
/** Toggle switch off */
|
|
30
30
|
toggleOff: {
|
|
31
31
|
name: "ui.toggleOff",
|
|
32
|
-
steps: [{ type: "vibrate", duration:
|
|
32
|
+
steps: [{ type: "vibrate", duration: 25, intensity: 0.4 }]
|
|
33
33
|
},
|
|
34
34
|
/** Slider snap to value */
|
|
35
35
|
sliderSnap: {
|
|
36
36
|
name: "ui.sliderSnap",
|
|
37
|
-
steps: [{ type: "vibrate", duration:
|
|
37
|
+
steps: [{ type: "vibrate", duration: 25, intensity: 0.5 }]
|
|
38
38
|
},
|
|
39
39
|
/** Selection changed */
|
|
40
40
|
selection: {
|
|
41
41
|
name: "ui.selection",
|
|
42
|
-
steps: [{ type: "vibrate", duration:
|
|
42
|
+
steps: [{ type: "vibrate", duration: 25, intensity: 0.5 }]
|
|
43
43
|
},
|
|
44
44
|
/** Pull to refresh threshold reached */
|
|
45
45
|
pullToRefresh: {
|
|
46
46
|
name: "ui.pullToRefresh",
|
|
47
47
|
steps: [
|
|
48
|
-
{ type: "vibrate", duration:
|
|
48
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
49
49
|
{ type: "pause", duration: 40, intensity: 0 },
|
|
50
|
-
{ type: "vibrate", duration:
|
|
50
|
+
{ type: "vibrate", duration: 40, intensity: 0.7 }
|
|
51
51
|
]
|
|
52
52
|
},
|
|
53
53
|
/** Swipe action triggered */
|
|
54
54
|
swipe: {
|
|
55
55
|
name: "ui.swipe",
|
|
56
56
|
steps: [
|
|
57
|
-
{ type: "vibrate", duration:
|
|
57
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
58
58
|
{ type: "pause", duration: 30, intensity: 0 },
|
|
59
|
-
{ type: "vibrate", duration:
|
|
59
|
+
{ type: "vibrate", duration: 25, intensity: 0.4 }
|
|
60
60
|
]
|
|
61
61
|
},
|
|
62
62
|
/** Context menu appearance */
|
|
63
63
|
contextMenu: {
|
|
64
64
|
name: "ui.contextMenu",
|
|
65
|
-
steps: [{ type: "vibrate", duration:
|
|
65
|
+
steps: [{ type: "vibrate", duration: 35, intensity: 0.7 }]
|
|
66
66
|
},
|
|
67
67
|
/** Drag start */
|
|
68
68
|
dragStart: {
|
|
69
69
|
name: "ui.dragStart",
|
|
70
|
-
steps: [{ type: "vibrate", duration:
|
|
70
|
+
steps: [{ type: "vibrate", duration: 30, intensity: 0.5 }]
|
|
71
71
|
},
|
|
72
72
|
/** Drag drop */
|
|
73
73
|
drop: {
|
|
74
74
|
name: "ui.drop",
|
|
75
75
|
steps: [
|
|
76
|
-
{ type: "vibrate", duration:
|
|
76
|
+
{ type: "vibrate", duration: 30, intensity: 0.8 },
|
|
77
77
|
{ type: "pause", duration: 30, intensity: 0 },
|
|
78
|
-
{ type: "vibrate", duration:
|
|
78
|
+
{ type: "vibrate", duration: 25, intensity: 0.5 }
|
|
79
79
|
]
|
|
80
80
|
}
|
|
81
81
|
};
|
|
@@ -86,9 +86,9 @@ var notifications = {
|
|
|
86
86
|
success: {
|
|
87
87
|
name: "notifications.success",
|
|
88
88
|
steps: [
|
|
89
|
-
{ type: "vibrate", duration:
|
|
89
|
+
{ type: "vibrate", duration: 35, intensity: 0.5 },
|
|
90
90
|
{ type: "pause", duration: 60, intensity: 0 },
|
|
91
|
-
{ type: "vibrate", duration:
|
|
91
|
+
{ type: "vibrate", duration: 45, intensity: 0.8 }
|
|
92
92
|
]
|
|
93
93
|
},
|
|
94
94
|
/** Warning — three even pulses */
|
|
@@ -115,16 +115,16 @@ var notifications = {
|
|
|
115
115
|
info: {
|
|
116
116
|
name: "notifications.info",
|
|
117
117
|
steps: [
|
|
118
|
-
{ type: "vibrate", duration:
|
|
118
|
+
{ type: "vibrate", duration: 35, intensity: 0.5 }
|
|
119
119
|
]
|
|
120
120
|
},
|
|
121
121
|
/** Message received */
|
|
122
122
|
messageReceived: {
|
|
123
123
|
name: "notifications.messageReceived",
|
|
124
124
|
steps: [
|
|
125
|
-
{ type: "vibrate", duration:
|
|
125
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
126
126
|
{ type: "pause", duration: 100, intensity: 0 },
|
|
127
|
-
{ type: "vibrate", duration:
|
|
127
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 }
|
|
128
128
|
]
|
|
129
129
|
},
|
|
130
130
|
/** Alarm — urgent repeating pattern */
|
|
@@ -148,9 +148,9 @@ var notifications = {
|
|
|
148
148
|
reminder: {
|
|
149
149
|
name: "notifications.reminder",
|
|
150
150
|
steps: [
|
|
151
|
-
{ type: "vibrate", duration:
|
|
151
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
152
152
|
{ type: "pause", duration: 150, intensity: 0 },
|
|
153
|
-
{ type: "vibrate", duration:
|
|
153
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 }
|
|
154
154
|
]
|
|
155
155
|
}
|
|
156
156
|
};
|
|
@@ -164,26 +164,25 @@ var gaming = {
|
|
|
164
164
|
{ type: "vibrate", duration: 100, intensity: 1 },
|
|
165
165
|
{ type: "vibrate", duration: 80, intensity: 0.8 },
|
|
166
166
|
{ type: "vibrate", duration: 60, intensity: 0.5 },
|
|
167
|
-
{ type: "vibrate", duration: 40, intensity: 0.3 }
|
|
168
|
-
{ type: "vibrate", duration: 30, intensity: 0.1 }
|
|
167
|
+
{ type: "vibrate", duration: 40, intensity: 0.3 }
|
|
169
168
|
]
|
|
170
169
|
},
|
|
171
170
|
/** Collision — sharp impact */
|
|
172
171
|
collision: {
|
|
173
172
|
name: "gaming.collision",
|
|
174
173
|
steps: [
|
|
175
|
-
{ type: "vibrate", duration:
|
|
176
|
-
{ type: "pause", duration:
|
|
177
|
-
{ type: "vibrate", duration:
|
|
174
|
+
{ type: "vibrate", duration: 40, intensity: 1 },
|
|
175
|
+
{ type: "pause", duration: 30, intensity: 0 },
|
|
176
|
+
{ type: "vibrate", duration: 25, intensity: 0.5 }
|
|
178
177
|
]
|
|
179
178
|
},
|
|
180
179
|
/** Heartbeat — rhythmic pulse */
|
|
181
180
|
heartbeat: {
|
|
182
181
|
name: "gaming.heartbeat",
|
|
183
182
|
steps: [
|
|
184
|
-
{ type: "vibrate", duration:
|
|
183
|
+
{ type: "vibrate", duration: 30, intensity: 0.8 },
|
|
185
184
|
{ type: "pause", duration: 80, intensity: 0 },
|
|
186
|
-
{ type: "vibrate", duration:
|
|
185
|
+
{ type: "vibrate", duration: 40, intensity: 1 },
|
|
187
186
|
{ type: "pause", duration: 400, intensity: 0 }
|
|
188
187
|
]
|
|
189
188
|
},
|
|
@@ -191,17 +190,17 @@ var gaming = {
|
|
|
191
190
|
gunshot: {
|
|
192
191
|
name: "gaming.gunshot",
|
|
193
192
|
steps: [
|
|
194
|
-
{ type: "vibrate", duration:
|
|
195
|
-
{ type: "vibrate", duration:
|
|
193
|
+
{ type: "vibrate", duration: 30, intensity: 1 },
|
|
194
|
+
{ type: "vibrate", duration: 40, intensity: 0.4 }
|
|
196
195
|
]
|
|
197
196
|
},
|
|
198
197
|
/** Sword clash — metallic ring */
|
|
199
198
|
swordClash: {
|
|
200
199
|
name: "gaming.swordClash",
|
|
201
200
|
steps: [
|
|
202
|
-
{ type: "vibrate", duration:
|
|
203
|
-
{ type: "pause", duration:
|
|
204
|
-
{ type: "vibrate", duration:
|
|
201
|
+
{ type: "vibrate", duration: 25, intensity: 1 },
|
|
202
|
+
{ type: "pause", duration: 20, intensity: 0 },
|
|
203
|
+
{ type: "vibrate", duration: 40, intensity: 0.6 },
|
|
205
204
|
{ type: "vibrate", duration: 50, intensity: 0.3 }
|
|
206
205
|
]
|
|
207
206
|
},
|
|
@@ -209,10 +208,10 @@ var gaming = {
|
|
|
209
208
|
powerUp: {
|
|
210
209
|
name: "gaming.powerUp",
|
|
211
210
|
steps: [
|
|
212
|
-
{ type: "vibrate", duration: 40, intensity: 0.
|
|
213
|
-
{ type: "vibrate", duration: 40, intensity: 0.
|
|
214
|
-
{ type: "vibrate", duration: 40, intensity: 0.
|
|
215
|
-
{ type: "vibrate", duration: 40, intensity: 0.
|
|
211
|
+
{ type: "vibrate", duration: 40, intensity: 0.3 },
|
|
212
|
+
{ type: "vibrate", duration: 40, intensity: 0.5 },
|
|
213
|
+
{ type: "vibrate", duration: 40, intensity: 0.7 },
|
|
214
|
+
{ type: "vibrate", duration: 40, intensity: 0.9 },
|
|
216
215
|
{ type: "vibrate", duration: 60, intensity: 1 }
|
|
217
216
|
]
|
|
218
217
|
},
|
|
@@ -220,46 +219,46 @@ var gaming = {
|
|
|
220
219
|
damage: {
|
|
221
220
|
name: "gaming.damage",
|
|
222
221
|
steps: [
|
|
223
|
-
{ type: "vibrate", duration:
|
|
224
|
-
{ type: "pause", duration:
|
|
225
|
-
{ type: "vibrate", duration:
|
|
226
|
-
{ type: "pause", duration:
|
|
227
|
-
{ type: "vibrate", duration:
|
|
222
|
+
{ type: "vibrate", duration: 50, intensity: 0.9 },
|
|
223
|
+
{ type: "pause", duration: 25, intensity: 0 },
|
|
224
|
+
{ type: "vibrate", duration: 40, intensity: 0.6 },
|
|
225
|
+
{ type: "pause", duration: 25, intensity: 0 },
|
|
226
|
+
{ type: "vibrate", duration: 30, intensity: 0.4 }
|
|
228
227
|
]
|
|
229
228
|
},
|
|
230
229
|
/** Item pickup — light cheerful */
|
|
231
230
|
pickup: {
|
|
232
231
|
name: "gaming.pickup",
|
|
233
232
|
steps: [
|
|
234
|
-
{ type: "vibrate", duration:
|
|
233
|
+
{ type: "vibrate", duration: 25, intensity: 0.4 },
|
|
235
234
|
{ type: "pause", duration: 40, intensity: 0 },
|
|
236
|
-
{ type: "vibrate", duration:
|
|
235
|
+
{ type: "vibrate", duration: 30, intensity: 0.7 }
|
|
237
236
|
]
|
|
238
237
|
},
|
|
239
238
|
/** Level complete — celebratory */
|
|
240
239
|
levelComplete: {
|
|
241
240
|
name: "gaming.levelComplete",
|
|
242
241
|
steps: [
|
|
243
|
-
{ type: "vibrate", duration:
|
|
242
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
244
243
|
{ type: "pause", duration: 60, intensity: 0 },
|
|
245
|
-
{ type: "vibrate", duration:
|
|
244
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
246
245
|
{ type: "pause", duration: 60, intensity: 0 },
|
|
247
|
-
{ type: "vibrate", duration:
|
|
246
|
+
{ type: "vibrate", duration: 40, intensity: 0.7 },
|
|
248
247
|
{ type: "pause", duration: 60, intensity: 0 },
|
|
249
|
-
{ type: "vibrate", duration:
|
|
248
|
+
{ type: "vibrate", duration: 60, intensity: 1 }
|
|
250
249
|
]
|
|
251
250
|
},
|
|
252
251
|
/** Engine rumble — continuous vibration */
|
|
253
252
|
engineRumble: {
|
|
254
253
|
name: "gaming.engineRumble",
|
|
255
254
|
steps: [
|
|
256
|
-
{ type: "vibrate", duration:
|
|
257
|
-
{ type: "pause", duration:
|
|
258
|
-
{ type: "vibrate", duration:
|
|
259
|
-
{ type: "pause", duration:
|
|
260
|
-
{ type: "vibrate", duration:
|
|
261
|
-
{ type: "pause", duration:
|
|
262
|
-
{ type: "vibrate", duration:
|
|
255
|
+
{ type: "vibrate", duration: 40, intensity: 0.5 },
|
|
256
|
+
{ type: "pause", duration: 15, intensity: 0 },
|
|
257
|
+
{ type: "vibrate", duration: 40, intensity: 0.6 },
|
|
258
|
+
{ type: "pause", duration: 15, intensity: 0 },
|
|
259
|
+
{ type: "vibrate", duration: 40, intensity: 0.5 },
|
|
260
|
+
{ type: "pause", duration: 15, intensity: 0 },
|
|
261
|
+
{ type: "vibrate", duration: 40, intensity: 0.6 }
|
|
263
262
|
]
|
|
264
263
|
}
|
|
265
264
|
};
|
|
@@ -270,9 +269,9 @@ var accessibility = {
|
|
|
270
269
|
confirm: {
|
|
271
270
|
name: "accessibility.confirm",
|
|
272
271
|
steps: [
|
|
273
|
-
{ type: "vibrate", duration:
|
|
272
|
+
{ type: "vibrate", duration: 35, intensity: 0.7 },
|
|
274
273
|
{ type: "pause", duration: 100, intensity: 0 },
|
|
275
|
-
{ type: "vibrate", duration:
|
|
274
|
+
{ type: "vibrate", duration: 35, intensity: 0.7 }
|
|
276
275
|
]
|
|
277
276
|
},
|
|
278
277
|
/** Deny/reject — long single buzz */
|
|
@@ -286,41 +285,41 @@ var accessibility = {
|
|
|
286
285
|
boundary: {
|
|
287
286
|
name: "accessibility.boundary",
|
|
288
287
|
steps: [
|
|
289
|
-
{ type: "vibrate", duration:
|
|
288
|
+
{ type: "vibrate", duration: 30, intensity: 1 }
|
|
290
289
|
]
|
|
291
290
|
},
|
|
292
291
|
/** Focus change — subtle tick */
|
|
293
292
|
focusChange: {
|
|
294
293
|
name: "accessibility.focusChange",
|
|
295
294
|
steps: [
|
|
296
|
-
{ type: "vibrate", duration:
|
|
295
|
+
{ type: "vibrate", duration: 25, intensity: 0.5 }
|
|
297
296
|
]
|
|
298
297
|
},
|
|
299
298
|
/** Counting rhythm — one tick per count */
|
|
300
299
|
countTick: {
|
|
301
300
|
name: "accessibility.countTick",
|
|
302
301
|
steps: [
|
|
303
|
-
{ type: "vibrate", duration:
|
|
302
|
+
{ type: "vibrate", duration: 25, intensity: 0.5 }
|
|
304
303
|
]
|
|
305
304
|
},
|
|
306
305
|
/** Navigation landmark reached */
|
|
307
306
|
landmark: {
|
|
308
307
|
name: "accessibility.landmark",
|
|
309
308
|
steps: [
|
|
310
|
-
{ type: "vibrate", duration:
|
|
309
|
+
{ type: "vibrate", duration: 25, intensity: 0.6 },
|
|
311
310
|
{ type: "pause", duration: 40, intensity: 0 },
|
|
312
|
-
{ type: "vibrate", duration:
|
|
311
|
+
{ type: "vibrate", duration: 25, intensity: 0.6 },
|
|
313
312
|
{ type: "pause", duration: 40, intensity: 0 },
|
|
314
|
-
{ type: "vibrate", duration:
|
|
313
|
+
{ type: "vibrate", duration: 25, intensity: 0.6 }
|
|
315
314
|
]
|
|
316
315
|
},
|
|
317
316
|
/** Progress checkpoint — escalating feedback */
|
|
318
317
|
progressCheckpoint: {
|
|
319
318
|
name: "accessibility.progressCheckpoint",
|
|
320
319
|
steps: [
|
|
321
|
-
{ type: "vibrate", duration:
|
|
320
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
322
321
|
{ type: "pause", duration: 60, intensity: 0 },
|
|
323
|
-
{ type: "vibrate", duration:
|
|
322
|
+
{ type: "vibrate", duration: 35, intensity: 0.7 }
|
|
324
323
|
]
|
|
325
324
|
}
|
|
326
325
|
};
|
|
@@ -330,51 +329,229 @@ var system = {
|
|
|
330
329
|
/** Keyboard key press */
|
|
331
330
|
keyPress: {
|
|
332
331
|
name: "system.keyPress",
|
|
333
|
-
steps: [{ type: "vibrate", duration:
|
|
332
|
+
steps: [{ type: "vibrate", duration: 25, intensity: 0.5 }]
|
|
334
333
|
},
|
|
335
334
|
/** Scroll tick (detent-like) */
|
|
336
335
|
scrollTick: {
|
|
337
336
|
name: "system.scrollTick",
|
|
338
|
-
steps: [{ type: "vibrate", duration:
|
|
337
|
+
steps: [{ type: "vibrate", duration: 20, intensity: 0.4 }]
|
|
339
338
|
},
|
|
340
339
|
/** Scroll boundary reached */
|
|
341
340
|
scrollBounce: {
|
|
342
341
|
name: "system.scrollBounce",
|
|
343
342
|
steps: [
|
|
344
|
-
{ type: "vibrate", duration:
|
|
345
|
-
{ type: "vibrate", duration:
|
|
343
|
+
{ type: "vibrate", duration: 25, intensity: 0.6 },
|
|
344
|
+
{ type: "vibrate", duration: 30, intensity: 0.4 }
|
|
346
345
|
]
|
|
347
346
|
},
|
|
348
347
|
/** Delete action */
|
|
349
348
|
delete: {
|
|
350
349
|
name: "system.delete",
|
|
351
350
|
steps: [
|
|
352
|
-
{ type: "vibrate", duration:
|
|
351
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
353
352
|
{ type: "pause", duration: 50, intensity: 0 },
|
|
354
|
-
{ type: "vibrate", duration:
|
|
353
|
+
{ type: "vibrate", duration: 40, intensity: 0.8 }
|
|
355
354
|
]
|
|
356
355
|
},
|
|
357
356
|
/** Undo action */
|
|
358
357
|
undo: {
|
|
359
358
|
name: "system.undo",
|
|
360
359
|
steps: [
|
|
361
|
-
{ type: "vibrate", duration:
|
|
360
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
362
361
|
{ type: "pause", duration: 80, intensity: 0 },
|
|
363
|
-
{ type: "vibrate", duration:
|
|
362
|
+
{ type: "vibrate", duration: 25, intensity: 0.4 }
|
|
364
363
|
]
|
|
365
364
|
},
|
|
366
365
|
/** Copy to clipboard */
|
|
367
366
|
copy: {
|
|
368
367
|
name: "system.copy",
|
|
369
|
-
steps: [{ type: "vibrate", duration:
|
|
368
|
+
steps: [{ type: "vibrate", duration: 30, intensity: 0.5 }]
|
|
370
369
|
},
|
|
371
370
|
/** Paste from clipboard */
|
|
372
371
|
paste: {
|
|
373
372
|
name: "system.paste",
|
|
374
373
|
steps: [
|
|
375
|
-
{ type: "vibrate", duration:
|
|
374
|
+
{ type: "vibrate", duration: 25, intensity: 0.4 },
|
|
375
|
+
{ type: "pause", duration: 30, intensity: 0 },
|
|
376
|
+
{ type: "vibrate", duration: 30, intensity: 0.6 }
|
|
377
|
+
]
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
// src/presets/emotions.ts
|
|
382
|
+
var emotions = {
|
|
383
|
+
/** Excited — fast, energetic pulses building up */
|
|
384
|
+
excited: {
|
|
385
|
+
name: "emotions.excited",
|
|
386
|
+
steps: [
|
|
387
|
+
{ type: "vibrate", duration: 30, intensity: 0.5 },
|
|
388
|
+
{ type: "pause", duration: 30, intensity: 0 },
|
|
389
|
+
{ type: "vibrate", duration: 30, intensity: 0.6 },
|
|
390
|
+
{ type: "pause", duration: 25, intensity: 0 },
|
|
391
|
+
{ type: "vibrate", duration: 35, intensity: 0.7 },
|
|
392
|
+
{ type: "pause", duration: 25, intensity: 0 },
|
|
393
|
+
{ type: "vibrate", duration: 35, intensity: 0.8 },
|
|
394
|
+
{ type: "pause", duration: 25, intensity: 0 },
|
|
395
|
+
{ type: "vibrate", duration: 40, intensity: 0.9 },
|
|
396
|
+
{ type: "vibrate", duration: 50, intensity: 1 }
|
|
397
|
+
]
|
|
398
|
+
},
|
|
399
|
+
/** Calm — slow, gentle wave with soft sustained vibrations */
|
|
400
|
+
calm: {
|
|
401
|
+
name: "emotions.calm",
|
|
402
|
+
steps: [
|
|
403
|
+
{ type: "vibrate", duration: 80, intensity: 0.2 },
|
|
404
|
+
{ type: "pause", duration: 200, intensity: 0 },
|
|
405
|
+
{ type: "vibrate", duration: 100, intensity: 0.25 },
|
|
406
|
+
{ type: "pause", duration: 250, intensity: 0 },
|
|
407
|
+
{ type: "vibrate", duration: 80, intensity: 0.2 },
|
|
408
|
+
{ type: "pause", duration: 200, intensity: 0 },
|
|
409
|
+
{ type: "vibrate", duration: 100, intensity: 0.15 }
|
|
410
|
+
]
|
|
411
|
+
},
|
|
412
|
+
/** Tense — tight, irregular short heavy bursts */
|
|
413
|
+
tense: {
|
|
414
|
+
name: "emotions.tense",
|
|
415
|
+
steps: [
|
|
416
|
+
{ type: "vibrate", duration: 35, intensity: 0.8 },
|
|
417
|
+
{ type: "pause", duration: 40, intensity: 0 },
|
|
418
|
+
{ type: "vibrate", duration: 30, intensity: 0.9 },
|
|
419
|
+
{ type: "pause", duration: 30, intensity: 0 },
|
|
420
|
+
{ type: "vibrate", duration: 40, intensity: 0.85 },
|
|
421
|
+
{ type: "pause", duration: 35, intensity: 0 },
|
|
422
|
+
{ type: "vibrate", duration: 30, intensity: 0.9 },
|
|
423
|
+
{ type: "pause", duration: 45, intensity: 0 },
|
|
424
|
+
{ type: "vibrate", duration: 35, intensity: 0.8 }
|
|
425
|
+
]
|
|
426
|
+
},
|
|
427
|
+
/** Happy — bouncy, playful ascending rhythm */
|
|
428
|
+
happy: {
|
|
429
|
+
name: "emotions.happy",
|
|
430
|
+
steps: [
|
|
431
|
+
{ type: "vibrate", duration: 30, intensity: 0.4 },
|
|
432
|
+
{ type: "pause", duration: 50, intensity: 0 },
|
|
433
|
+
{ type: "vibrate", duration: 35, intensity: 0.5 },
|
|
434
|
+
{ type: "pause", duration: 50, intensity: 0 },
|
|
435
|
+
{ type: "vibrate", duration: 35, intensity: 0.6 },
|
|
436
|
+
{ type: "pause", duration: 40, intensity: 0 },
|
|
437
|
+
{ type: "vibrate", duration: 40, intensity: 0.7 },
|
|
438
|
+
{ type: "pause", duration: 40, intensity: 0 },
|
|
439
|
+
{ type: "vibrate", duration: 45, intensity: 0.8 }
|
|
440
|
+
]
|
|
441
|
+
},
|
|
442
|
+
/** Sad — slow, heavy, descending vibrations that fade */
|
|
443
|
+
sad: {
|
|
444
|
+
name: "emotions.sad",
|
|
445
|
+
steps: [
|
|
446
|
+
{ type: "vibrate", duration: 100, intensity: 0.8 },
|
|
447
|
+
{ type: "pause", duration: 120, intensity: 0 },
|
|
448
|
+
{ type: "vibrate", duration: 90, intensity: 0.6 },
|
|
449
|
+
{ type: "pause", duration: 140, intensity: 0 },
|
|
450
|
+
{ type: "vibrate", duration: 80, intensity: 0.4 },
|
|
451
|
+
{ type: "pause", duration: 160, intensity: 0 },
|
|
452
|
+
{ type: "vibrate", duration: 70, intensity: 0.25 }
|
|
453
|
+
]
|
|
454
|
+
},
|
|
455
|
+
/** Angry — aggressive, chaotic heavy rapid hits */
|
|
456
|
+
angry: {
|
|
457
|
+
name: "emotions.angry",
|
|
458
|
+
steps: [
|
|
459
|
+
{ type: "vibrate", duration: 40, intensity: 1 },
|
|
460
|
+
{ type: "pause", duration: 25, intensity: 0 },
|
|
461
|
+
{ type: "vibrate", duration: 35, intensity: 0.9 },
|
|
462
|
+
{ type: "pause", duration: 25, intensity: 0 },
|
|
463
|
+
{ type: "vibrate", duration: 45, intensity: 1 },
|
|
376
464
|
{ type: "pause", duration: 30, intensity: 0 },
|
|
377
|
-
{ type: "vibrate", duration:
|
|
465
|
+
{ type: "vibrate", duration: 40, intensity: 0.95 },
|
|
466
|
+
{ type: "vibrate", duration: 50, intensity: 1 },
|
|
467
|
+
{ type: "pause", duration: 25, intensity: 0 },
|
|
468
|
+
{ type: "vibrate", duration: 45, intensity: 0.9 }
|
|
469
|
+
]
|
|
470
|
+
},
|
|
471
|
+
/** Surprised — sharp sudden hit, silence, then lighter hit */
|
|
472
|
+
surprised: {
|
|
473
|
+
name: "emotions.surprised",
|
|
474
|
+
steps: [
|
|
475
|
+
{ type: "vibrate", duration: 40, intensity: 1 },
|
|
476
|
+
{ type: "pause", duration: 200, intensity: 0 },
|
|
477
|
+
{ type: "vibrate", duration: 30, intensity: 0.4 }
|
|
478
|
+
]
|
|
479
|
+
},
|
|
480
|
+
/** Anxious — fast irregular heartbeat with inconsistent spacing */
|
|
481
|
+
anxious: {
|
|
482
|
+
name: "emotions.anxious",
|
|
483
|
+
steps: [
|
|
484
|
+
{ type: "vibrate", duration: 30, intensity: 0.7 },
|
|
485
|
+
{ type: "pause", duration: 60, intensity: 0 },
|
|
486
|
+
{ type: "vibrate", duration: 35, intensity: 0.8 },
|
|
487
|
+
{ type: "pause", duration: 40, intensity: 0 },
|
|
488
|
+
{ type: "vibrate", duration: 25, intensity: 0.6 },
|
|
489
|
+
{ type: "pause", duration: 80, intensity: 0 },
|
|
490
|
+
{ type: "vibrate", duration: 30, intensity: 0.75 },
|
|
491
|
+
{ type: "pause", duration: 50, intensity: 0 },
|
|
492
|
+
{ type: "vibrate", duration: 35, intensity: 0.85 },
|
|
493
|
+
{ type: "pause", duration: 35, intensity: 0 },
|
|
494
|
+
{ type: "vibrate", duration: 30, intensity: 0.7 }
|
|
495
|
+
]
|
|
496
|
+
},
|
|
497
|
+
/** Confident — strong, steady, measured even pulses */
|
|
498
|
+
confident: {
|
|
499
|
+
name: "emotions.confident",
|
|
500
|
+
steps: [
|
|
501
|
+
{ type: "vibrate", duration: 50, intensity: 0.8 },
|
|
502
|
+
{ type: "pause", duration: 80, intensity: 0 },
|
|
503
|
+
{ type: "vibrate", duration: 50, intensity: 0.8 },
|
|
504
|
+
{ type: "pause", duration: 80, intensity: 0 },
|
|
505
|
+
{ type: "vibrate", duration: 50, intensity: 0.8 },
|
|
506
|
+
{ type: "pause", duration: 80, intensity: 0 },
|
|
507
|
+
{ type: "vibrate", duration: 50, intensity: 0.8 }
|
|
508
|
+
]
|
|
509
|
+
},
|
|
510
|
+
/** Playful — alternating light-heavy in bouncy rhythm */
|
|
511
|
+
playful: {
|
|
512
|
+
name: "emotions.playful",
|
|
513
|
+
steps: [
|
|
514
|
+
{ type: "vibrate", duration: 25, intensity: 0.3 },
|
|
515
|
+
{ type: "pause", duration: 40, intensity: 0 },
|
|
516
|
+
{ type: "vibrate", duration: 40, intensity: 0.7 },
|
|
517
|
+
{ type: "pause", duration: 50, intensity: 0 },
|
|
518
|
+
{ type: "vibrate", duration: 25, intensity: 0.35 },
|
|
519
|
+
{ type: "pause", duration: 40, intensity: 0 },
|
|
520
|
+
{ type: "vibrate", duration: 40, intensity: 0.75 },
|
|
521
|
+
{ type: "pause", duration: 50, intensity: 0 },
|
|
522
|
+
{ type: "vibrate", duration: 25, intensity: 0.3 },
|
|
523
|
+
{ type: "pause", duration: 40, intensity: 0 },
|
|
524
|
+
{ type: "vibrate", duration: 45, intensity: 0.8 }
|
|
525
|
+
]
|
|
526
|
+
},
|
|
527
|
+
/** Romantic — gentle heartbeat rhythm, two soft pulses, long pause, repeat */
|
|
528
|
+
romantic: {
|
|
529
|
+
name: "emotions.romantic",
|
|
530
|
+
steps: [
|
|
531
|
+
{ type: "vibrate", duration: 35, intensity: 0.4 },
|
|
532
|
+
{ type: "pause", duration: 60, intensity: 0 },
|
|
533
|
+
{ type: "vibrate", duration: 45, intensity: 0.5 },
|
|
534
|
+
{ type: "pause", duration: 300, intensity: 0 },
|
|
535
|
+
{ type: "vibrate", duration: 35, intensity: 0.4 },
|
|
536
|
+
{ type: "pause", duration: 60, intensity: 0 },
|
|
537
|
+
{ type: "vibrate", duration: 45, intensity: 0.5 },
|
|
538
|
+
{ type: "pause", duration: 300, intensity: 0 },
|
|
539
|
+
{ type: "vibrate", duration: 35, intensity: 0.4 },
|
|
540
|
+
{ type: "pause", duration: 60, intensity: 0 },
|
|
541
|
+
{ type: "vibrate", duration: 45, intensity: 0.5 }
|
|
542
|
+
]
|
|
543
|
+
},
|
|
544
|
+
/** Peaceful — very subtle, barely-there ultra-light slow pulses */
|
|
545
|
+
peaceful: {
|
|
546
|
+
name: "emotions.peaceful",
|
|
547
|
+
steps: [
|
|
548
|
+
{ type: "vibrate", duration: 60, intensity: 0.1 },
|
|
549
|
+
{ type: "pause", duration: 300, intensity: 0 },
|
|
550
|
+
{ type: "vibrate", duration: 70, intensity: 0.12 },
|
|
551
|
+
{ type: "pause", duration: 350, intensity: 0 },
|
|
552
|
+
{ type: "vibrate", duration: 60, intensity: 0.1 },
|
|
553
|
+
{ type: "pause", duration: 300, intensity: 0 },
|
|
554
|
+
{ type: "vibrate", duration: 70, intensity: 0.08 }
|
|
378
555
|
]
|
|
379
556
|
}
|
|
380
557
|
};
|
|
@@ -385,10 +562,12 @@ var presets = {
|
|
|
385
562
|
notifications,
|
|
386
563
|
gaming,
|
|
387
564
|
accessibility,
|
|
388
|
-
system
|
|
565
|
+
system,
|
|
566
|
+
emotions
|
|
389
567
|
};
|
|
390
568
|
|
|
391
569
|
exports.accessibility = accessibility;
|
|
570
|
+
exports.emotions = emotions;
|
|
392
571
|
exports.gaming = gaming;
|
|
393
572
|
exports.notifications = notifications;
|
|
394
573
|
exports.presets = presets;
|