@rehover/icons 0.1.0-beta.1 → 0.1.0-beta.2
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/cli/index.js +343 -105
- package/dist/index.js +340 -102
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -156,6 +156,200 @@ var metadata3 = {
|
|
|
156
156
|
animationDescription: "The bell rocks back and forth around its top mount, settling to center."
|
|
157
157
|
};
|
|
158
158
|
|
|
159
|
+
// icons/brain/paths.ts
|
|
160
|
+
var brainPaths = {
|
|
161
|
+
leftHalf: {
|
|
162
|
+
type: "path",
|
|
163
|
+
d: "M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"
|
|
164
|
+
},
|
|
165
|
+
rightHalf: {
|
|
166
|
+
type: "path",
|
|
167
|
+
d: "M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"
|
|
168
|
+
},
|
|
169
|
+
veinCenter: { type: "path", d: "M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4" },
|
|
170
|
+
veinTopRight: { type: "path", d: "M17.599 6.5A3 3 0 0 0 13.6 3.4" },
|
|
171
|
+
veinTopLeft: { type: "path", d: "M6.4 6.5A3 3 0 0 1 10.4 3.4" },
|
|
172
|
+
veinMiddleRight: { type: "path", d: "M18.5 10.5A2.5 2.5 0 0 0 15 9" },
|
|
173
|
+
veinMiddleLeft: { type: "path", d: "M5.5 10.5A2.5 2.5 0 0 1 9 9" },
|
|
174
|
+
veinBottomRight: { type: "path", d: "M16.5 15.5A2.5 2.5 0 0 0 13 16" },
|
|
175
|
+
veinBottomLeft: { type: "path", d: "M7.5 15.5A2.5 2.5 0 0 1 11 16" }
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
// icons/brain/animation.spec.ts
|
|
179
|
+
var brainSpec = {
|
|
180
|
+
elements: {
|
|
181
|
+
leftHalf: { id: "brain-left-half", description: "Left hemisphere outline" },
|
|
182
|
+
rightHalf: {
|
|
183
|
+
id: "brain-right-half",
|
|
184
|
+
description: "Right hemisphere outline"
|
|
185
|
+
},
|
|
186
|
+
veinCenter: {
|
|
187
|
+
id: "brain-vein-center",
|
|
188
|
+
description: "Central neural pathway"
|
|
189
|
+
},
|
|
190
|
+
veinTopLeft: {
|
|
191
|
+
id: "brain-vein-top-left",
|
|
192
|
+
description: "Top left neural pathway"
|
|
193
|
+
},
|
|
194
|
+
veinTopRight: {
|
|
195
|
+
id: "brain-vein-top-right",
|
|
196
|
+
description: "Top right neural pathway"
|
|
197
|
+
},
|
|
198
|
+
veinMiddleLeft: {
|
|
199
|
+
id: "brain-vein-middle-left",
|
|
200
|
+
description: "Middle left neural pathway"
|
|
201
|
+
},
|
|
202
|
+
veinMiddleRight: {
|
|
203
|
+
id: "brain-vein-middle-right",
|
|
204
|
+
description: "Middle right neural pathway"
|
|
205
|
+
},
|
|
206
|
+
veinBottomLeft: {
|
|
207
|
+
id: "brain-vein-bottom-left",
|
|
208
|
+
description: "Bottom left neural pathway"
|
|
209
|
+
},
|
|
210
|
+
veinBottomRight: {
|
|
211
|
+
id: "brain-vein-bottom-right",
|
|
212
|
+
description: "Bottom right neural pathway"
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
sequences: {
|
|
216
|
+
trigger: [
|
|
217
|
+
{
|
|
218
|
+
element: "veinCenter",
|
|
219
|
+
property: "pathLength",
|
|
220
|
+
values: [1, 0, 1],
|
|
221
|
+
duration: 1.5,
|
|
222
|
+
ease: "easeInOut"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
element: "veinCenter",
|
|
226
|
+
property: "opacity",
|
|
227
|
+
values: [1, 0.2, 1],
|
|
228
|
+
duration: 1.5,
|
|
229
|
+
ease: "easeInOut"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
element: "veinTopRight",
|
|
233
|
+
property: "pathLength",
|
|
234
|
+
values: [1, 0, 1],
|
|
235
|
+
duration: 1.5,
|
|
236
|
+
delay: 0.3,
|
|
237
|
+
ease: "easeInOut"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
element: "veinTopRight",
|
|
241
|
+
property: "opacity",
|
|
242
|
+
values: [1, 0.2, 1],
|
|
243
|
+
duration: 1.5,
|
|
244
|
+
delay: 0.3,
|
|
245
|
+
ease: "easeInOut"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
element: "veinTopLeft",
|
|
249
|
+
property: "pathLength",
|
|
250
|
+
values: [1, 0, 1],
|
|
251
|
+
duration: 1.5,
|
|
252
|
+
delay: 0.3,
|
|
253
|
+
ease: "easeInOut"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
element: "veinTopLeft",
|
|
257
|
+
property: "opacity",
|
|
258
|
+
values: [1, 0.2, 1],
|
|
259
|
+
duration: 1.5,
|
|
260
|
+
delay: 0.3,
|
|
261
|
+
ease: "easeInOut"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
element: "veinMiddleRight",
|
|
265
|
+
property: "pathLength",
|
|
266
|
+
values: [1, 0, 1],
|
|
267
|
+
duration: 1.5,
|
|
268
|
+
delay: 0.6,
|
|
269
|
+
ease: "easeInOut"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
element: "veinMiddleRight",
|
|
273
|
+
property: "opacity",
|
|
274
|
+
values: [1, 0.2, 1],
|
|
275
|
+
duration: 1.5,
|
|
276
|
+
delay: 0.6,
|
|
277
|
+
ease: "easeInOut"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
element: "veinMiddleLeft",
|
|
281
|
+
property: "pathLength",
|
|
282
|
+
values: [1, 0, 1],
|
|
283
|
+
duration: 1.5,
|
|
284
|
+
delay: 0.6,
|
|
285
|
+
ease: "easeInOut"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
element: "veinMiddleLeft",
|
|
289
|
+
property: "opacity",
|
|
290
|
+
values: [1, 0.2, 1],
|
|
291
|
+
duration: 1.5,
|
|
292
|
+
delay: 0.6,
|
|
293
|
+
ease: "easeInOut"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
element: "veinBottomRight",
|
|
297
|
+
property: "pathLength",
|
|
298
|
+
values: [1, 0, 1],
|
|
299
|
+
duration: 1.5,
|
|
300
|
+
delay: 0.9,
|
|
301
|
+
ease: "easeInOut"
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
element: "veinBottomRight",
|
|
305
|
+
property: "opacity",
|
|
306
|
+
values: [1, 0.2, 1],
|
|
307
|
+
duration: 1.5,
|
|
308
|
+
delay: 0.9,
|
|
309
|
+
ease: "easeInOut"
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
element: "veinBottomLeft",
|
|
313
|
+
property: "pathLength",
|
|
314
|
+
values: [1, 0, 1],
|
|
315
|
+
duration: 1.5,
|
|
316
|
+
delay: 0.9,
|
|
317
|
+
ease: "easeInOut"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
element: "veinBottomLeft",
|
|
321
|
+
property: "opacity",
|
|
322
|
+
values: [1, 0.2, 1],
|
|
323
|
+
duration: 1.5,
|
|
324
|
+
delay: 0.9,
|
|
325
|
+
ease: "easeInOut"
|
|
326
|
+
}
|
|
327
|
+
]
|
|
328
|
+
},
|
|
329
|
+
defaultTrigger: "inView",
|
|
330
|
+
defaultLoop: true
|
|
331
|
+
};
|
|
332
|
+
var animation_spec_default4 = brainSpec;
|
|
333
|
+
|
|
334
|
+
// icons/brain/metadata.ts
|
|
335
|
+
var metadata4 = {
|
|
336
|
+
name: "Brain",
|
|
337
|
+
slug: "brain",
|
|
338
|
+
category: "Technology",
|
|
339
|
+
tags: [
|
|
340
|
+
"brain",
|
|
341
|
+
"ai",
|
|
342
|
+
"artificial intelligence",
|
|
343
|
+
"mind",
|
|
344
|
+
"neural",
|
|
345
|
+
"thinking",
|
|
346
|
+
"machine learning"
|
|
347
|
+
],
|
|
348
|
+
featured: false,
|
|
349
|
+
description: "A brain symbolizing artificial intelligence and neural networks.",
|
|
350
|
+
animationDescription: "The internal neural pathways sequentially pulse and redraw, representing active thinking and data processing."
|
|
351
|
+
};
|
|
352
|
+
|
|
159
353
|
// icons/card-flip/paths.ts
|
|
160
354
|
var cardFlipPaths = {
|
|
161
355
|
// Rounded card outline spanning x:4–20, y:6–18.
|
|
@@ -199,10 +393,10 @@ var cardFlipSpec = {
|
|
|
199
393
|
defaultTrigger: "hoverHold",
|
|
200
394
|
perspective: 500
|
|
201
395
|
};
|
|
202
|
-
var
|
|
396
|
+
var animation_spec_default5 = cardFlipSpec;
|
|
203
397
|
|
|
204
398
|
// icons/card-flip/metadata.ts
|
|
205
|
-
var
|
|
399
|
+
var metadata5 = {
|
|
206
400
|
name: "CardFlip",
|
|
207
401
|
slug: "card-flip",
|
|
208
402
|
category: "Objects",
|
|
@@ -246,10 +440,10 @@ var checkSpec = {
|
|
|
246
440
|
},
|
|
247
441
|
defaultTrigger: "hover"
|
|
248
442
|
};
|
|
249
|
-
var
|
|
443
|
+
var animation_spec_default6 = checkSpec;
|
|
250
444
|
|
|
251
445
|
// icons/check/metadata.ts
|
|
252
|
-
var
|
|
446
|
+
var metadata6 = {
|
|
253
447
|
name: "Check",
|
|
254
448
|
slug: "check",
|
|
255
449
|
category: "Status",
|
|
@@ -294,10 +488,10 @@ var clockSpec = {
|
|
|
294
488
|
},
|
|
295
489
|
defaultTrigger: "hoverHold"
|
|
296
490
|
};
|
|
297
|
-
var
|
|
491
|
+
var animation_spec_default7 = clockSpec;
|
|
298
492
|
|
|
299
493
|
// icons/clock/metadata.ts
|
|
300
|
-
var
|
|
494
|
+
var metadata7 = {
|
|
301
495
|
name: "Clock",
|
|
302
496
|
slug: "clock",
|
|
303
497
|
category: "Time",
|
|
@@ -309,75 +503,48 @@ var metadata6 = {
|
|
|
309
503
|
|
|
310
504
|
// icons/creating-file/paths.ts
|
|
311
505
|
var creatingFilePaths = {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
},
|
|
316
|
-
|
|
317
|
-
type: "path",
|
|
318
|
-
d: "M10 11l1-.8 1.2 1.4 1-.9 1.2 1"
|
|
319
|
-
},
|
|
320
|
-
lineTop: {
|
|
321
|
-
type: "path",
|
|
322
|
-
d: "M10 11l1-.7 1.1 1.2 1-.8 1.2.9H16"
|
|
323
|
-
},
|
|
324
|
-
lineMiddle: {
|
|
325
|
-
type: "path",
|
|
326
|
-
d: "M10 14l.9-.5 1.2 1.5 1-.9 1.1.6H15"
|
|
327
|
-
},
|
|
328
|
-
lineBottom: {
|
|
329
|
-
type: "path",
|
|
330
|
-
d: "M10 17l1-.6 1 1 1.1-.7 1.1.8H16"
|
|
331
|
-
}
|
|
506
|
+
outline: { type: "path", d: "M6 4L14 4L18 8L18 20L6 20L6 4" },
|
|
507
|
+
fold: { type: "path", d: "M14 4L14 8L18 8" },
|
|
508
|
+
line1: { type: "path", d: "M9 10L15 10" },
|
|
509
|
+
line2: { type: "path", d: "M9 13L15 13" },
|
|
510
|
+
line3: { type: "path", d: "M9 16L12 16" }
|
|
332
511
|
};
|
|
333
512
|
|
|
334
513
|
// icons/creating-file/animation.spec.ts
|
|
335
514
|
var creatingFileSpec = {
|
|
336
515
|
elements: {
|
|
337
|
-
|
|
338
|
-
id: "creating-file-
|
|
339
|
-
description: "
|
|
340
|
-
},
|
|
341
|
-
fold: {
|
|
342
|
-
id: "creating-file-fold",
|
|
343
|
-
description: "Folded page corner"
|
|
516
|
+
outline: {
|
|
517
|
+
id: "creating-file-outline",
|
|
518
|
+
description: "File outline with folded corner"
|
|
344
519
|
},
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
}
|
|
349
|
-
lineMiddle: {
|
|
350
|
-
id: "creating-file-lineMiddle",
|
|
351
|
-
description: "Middle content line"
|
|
352
|
-
},
|
|
353
|
-
lineBottom: {
|
|
354
|
-
id: "creating-file-lineBottom",
|
|
355
|
-
description: "Bottom content line"
|
|
356
|
-
}
|
|
520
|
+
fold: { id: "creating-file-fold", description: "Folded corner detail" },
|
|
521
|
+
line1: { id: "creating-file-line1", description: "First text line" },
|
|
522
|
+
line2: { id: "creating-file-line2", description: "Second text line" },
|
|
523
|
+
line3: { id: "creating-file-line3", description: "Third text line" }
|
|
357
524
|
},
|
|
358
525
|
sequences: {
|
|
359
526
|
trigger: [
|
|
360
527
|
{
|
|
361
|
-
element: "
|
|
528
|
+
element: "line1",
|
|
362
529
|
property: "opacity",
|
|
363
|
-
values: [0.3, 1
|
|
364
|
-
duration: 0.
|
|
530
|
+
values: [1, 0.3, 1],
|
|
531
|
+
duration: 0.6,
|
|
365
532
|
ease: "easeInOut"
|
|
366
533
|
},
|
|
367
534
|
{
|
|
368
|
-
element: "
|
|
535
|
+
element: "line2",
|
|
369
536
|
property: "opacity",
|
|
370
|
-
values: [0.3, 1
|
|
371
|
-
duration: 0.
|
|
372
|
-
delay: 0.
|
|
537
|
+
values: [1, 0.3, 1],
|
|
538
|
+
duration: 0.6,
|
|
539
|
+
delay: 0.2,
|
|
373
540
|
ease: "easeInOut"
|
|
374
541
|
},
|
|
375
542
|
{
|
|
376
|
-
element: "
|
|
543
|
+
element: "line3",
|
|
377
544
|
property: "opacity",
|
|
378
|
-
values: [0.3, 1
|
|
379
|
-
duration: 0.
|
|
380
|
-
delay: 0.
|
|
545
|
+
values: [1, 0.3, 1],
|
|
546
|
+
duration: 0.6,
|
|
547
|
+
delay: 0.4,
|
|
381
548
|
ease: "easeInOut"
|
|
382
549
|
}
|
|
383
550
|
]
|
|
@@ -385,10 +552,10 @@ var creatingFileSpec = {
|
|
|
385
552
|
defaultTrigger: "inView",
|
|
386
553
|
defaultLoop: true
|
|
387
554
|
};
|
|
388
|
-
var
|
|
555
|
+
var animation_spec_default8 = creatingFileSpec;
|
|
389
556
|
|
|
390
557
|
// icons/creating-file/metadata.ts
|
|
391
|
-
var
|
|
558
|
+
var metadata8 = {
|
|
392
559
|
name: "CreatingFile",
|
|
393
560
|
slug: "creating-file",
|
|
394
561
|
category: "AI",
|
|
@@ -449,10 +616,10 @@ var doorSpec = {
|
|
|
449
616
|
defaultTrigger: "hoverHold",
|
|
450
617
|
perspective: 500
|
|
451
618
|
};
|
|
452
|
-
var
|
|
619
|
+
var animation_spec_default9 = doorSpec;
|
|
453
620
|
|
|
454
621
|
// icons/door/metadata.ts
|
|
455
|
-
var
|
|
622
|
+
var metadata9 = {
|
|
456
623
|
name: "Door",
|
|
457
624
|
slug: "door",
|
|
458
625
|
category: "Objects",
|
|
@@ -503,10 +670,10 @@ var downloadSpec = {
|
|
|
503
670
|
},
|
|
504
671
|
defaultTrigger: "hoverHold"
|
|
505
672
|
};
|
|
506
|
-
var
|
|
673
|
+
var animation_spec_default10 = downloadSpec;
|
|
507
674
|
|
|
508
675
|
// icons/download/metadata.ts
|
|
509
|
-
var
|
|
676
|
+
var metadata10 = {
|
|
510
677
|
name: "Download",
|
|
511
678
|
slug: "download",
|
|
512
679
|
category: "Actions",
|
|
@@ -584,10 +751,10 @@ var externalLinkSpec = {
|
|
|
584
751
|
},
|
|
585
752
|
defaultTrigger: "hoverHold"
|
|
586
753
|
};
|
|
587
|
-
var
|
|
754
|
+
var animation_spec_default11 = externalLinkSpec;
|
|
588
755
|
|
|
589
756
|
// icons/external-link/metadata.ts
|
|
590
|
-
var
|
|
757
|
+
var metadata11 = {
|
|
591
758
|
name: "ExternalLink",
|
|
592
759
|
slug: "external-link",
|
|
593
760
|
category: "Uncategorized",
|
|
@@ -631,10 +798,10 @@ var eyeSpec = {
|
|
|
631
798
|
},
|
|
632
799
|
defaultTrigger: "hoverHold"
|
|
633
800
|
};
|
|
634
|
-
var
|
|
801
|
+
var animation_spec_default12 = eyeSpec;
|
|
635
802
|
|
|
636
803
|
// icons/eye/metadata.ts
|
|
637
|
-
var
|
|
804
|
+
var metadata12 = {
|
|
638
805
|
name: "Eye",
|
|
639
806
|
slug: "eye",
|
|
640
807
|
category: "Visibility",
|
|
@@ -671,10 +838,10 @@ var heartSpec = {
|
|
|
671
838
|
},
|
|
672
839
|
defaultTrigger: "hover"
|
|
673
840
|
};
|
|
674
|
-
var
|
|
841
|
+
var animation_spec_default13 = heartSpec;
|
|
675
842
|
|
|
676
843
|
// icons/heart/metadata.ts
|
|
677
|
-
var
|
|
844
|
+
var metadata13 = {
|
|
678
845
|
name: "Heart",
|
|
679
846
|
slug: "heart",
|
|
680
847
|
category: "Social",
|
|
@@ -722,10 +889,10 @@ var helpSpec = {
|
|
|
722
889
|
},
|
|
723
890
|
defaultTrigger: "hover"
|
|
724
891
|
};
|
|
725
|
-
var
|
|
892
|
+
var animation_spec_default14 = helpSpec;
|
|
726
893
|
|
|
727
894
|
// icons/help/metadata.ts
|
|
728
|
-
var
|
|
895
|
+
var metadata14 = {
|
|
729
896
|
name: "Help",
|
|
730
897
|
slug: "help",
|
|
731
898
|
category: "Interface",
|
|
@@ -799,10 +966,10 @@ var layersSpec = {
|
|
|
799
966
|
},
|
|
800
967
|
defaultTrigger: "hover"
|
|
801
968
|
};
|
|
802
|
-
var
|
|
969
|
+
var animation_spec_default15 = layersSpec;
|
|
803
970
|
|
|
804
971
|
// icons/layers/metadata.ts
|
|
805
|
-
var
|
|
972
|
+
var metadata15 = {
|
|
806
973
|
name: "Layers",
|
|
807
974
|
slug: "layers",
|
|
808
975
|
category: "Interface",
|
|
@@ -839,10 +1006,10 @@ var refreshSpec = {
|
|
|
839
1006
|
},
|
|
840
1007
|
defaultTrigger: "hover"
|
|
841
1008
|
};
|
|
842
|
-
var
|
|
1009
|
+
var animation_spec_default16 = refreshSpec;
|
|
843
1010
|
|
|
844
1011
|
// icons/refresh/metadata.ts
|
|
845
|
-
var
|
|
1012
|
+
var metadata16 = {
|
|
846
1013
|
name: "Refresh",
|
|
847
1014
|
slug: "refresh",
|
|
848
1015
|
category: "Interface",
|
|
@@ -898,10 +1065,10 @@ var searchSpec = {
|
|
|
898
1065
|
},
|
|
899
1066
|
defaultTrigger: "hover"
|
|
900
1067
|
};
|
|
901
|
-
var
|
|
1068
|
+
var animation_spec_default17 = searchSpec;
|
|
902
1069
|
|
|
903
1070
|
// icons/search/metadata.ts
|
|
904
|
-
var
|
|
1071
|
+
var metadata17 = {
|
|
905
1072
|
name: "Search",
|
|
906
1073
|
slug: "search",
|
|
907
1074
|
category: "Interface",
|
|
@@ -965,10 +1132,10 @@ var signalSpec = {
|
|
|
965
1132
|
},
|
|
966
1133
|
defaultTrigger: "hover"
|
|
967
1134
|
};
|
|
968
|
-
var
|
|
1135
|
+
var animation_spec_default18 = signalSpec;
|
|
969
1136
|
|
|
970
1137
|
// icons/signal/metadata.ts
|
|
971
|
-
var
|
|
1138
|
+
var metadata18 = {
|
|
972
1139
|
name: "Signal",
|
|
973
1140
|
slug: "signal",
|
|
974
1141
|
category: "Communication",
|
|
@@ -978,6 +1145,75 @@ var metadata17 = {
|
|
|
978
1145
|
animationDescription: "The bars compress and spring back in a staggered cascade, like a pulse sweeping across the signal."
|
|
979
1146
|
};
|
|
980
1147
|
|
|
1148
|
+
// icons/syncing/paths.ts
|
|
1149
|
+
var syncingPaths = {
|
|
1150
|
+
arrowOuter: {
|
|
1151
|
+
type: "path",
|
|
1152
|
+
d: "M 21 12 A 9 9 0 1 1 12 3 C 14.52 3 16.93 4 18.74 5.74 L 21 8 M 21 3 v 5 h -5"
|
|
1153
|
+
},
|
|
1154
|
+
arrowInner: {
|
|
1155
|
+
type: "path",
|
|
1156
|
+
d: "M 7 12 A 5 5 0 1 0 12 17 C 10.6 17 9.26 16.44 8.26 15.47 L 7 14 M 12 14 h -5 v 5"
|
|
1157
|
+
}
|
|
1158
|
+
};
|
|
1159
|
+
|
|
1160
|
+
// icons/syncing/animation.spec.ts
|
|
1161
|
+
var syncingSpec = {
|
|
1162
|
+
elements: {
|
|
1163
|
+
arrowOuter: {
|
|
1164
|
+
id: "syncing-arrow-outer",
|
|
1165
|
+
description: "Outer clockwise arrow"
|
|
1166
|
+
},
|
|
1167
|
+
arrowInner: {
|
|
1168
|
+
id: "syncing-arrow-inner",
|
|
1169
|
+
description: "Inner counter-clockwise arrow"
|
|
1170
|
+
}
|
|
1171
|
+
},
|
|
1172
|
+
sequences: {
|
|
1173
|
+
trigger: [
|
|
1174
|
+
{
|
|
1175
|
+
element: "arrowOuter",
|
|
1176
|
+
property: "rotate",
|
|
1177
|
+
values: [0, 360, 360],
|
|
1178
|
+
duration: 2.2,
|
|
1179
|
+
ease: "easeInOut",
|
|
1180
|
+
origin: { x: 12, y: 12 }
|
|
1181
|
+
},
|
|
1182
|
+
{
|
|
1183
|
+
element: "arrowInner",
|
|
1184
|
+
property: "rotate",
|
|
1185
|
+
values: [0, -360, -360],
|
|
1186
|
+
duration: 2.2,
|
|
1187
|
+
ease: "easeInOut",
|
|
1188
|
+
origin: { x: 12, y: 12 }
|
|
1189
|
+
}
|
|
1190
|
+
]
|
|
1191
|
+
},
|
|
1192
|
+
defaultTrigger: "inView",
|
|
1193
|
+
defaultLoop: true
|
|
1194
|
+
};
|
|
1195
|
+
var animation_spec_default19 = syncingSpec;
|
|
1196
|
+
|
|
1197
|
+
// icons/syncing/metadata.ts
|
|
1198
|
+
var metadata19 = {
|
|
1199
|
+
name: "Syncing",
|
|
1200
|
+
slug: "syncing",
|
|
1201
|
+
category: "System",
|
|
1202
|
+
tags: [
|
|
1203
|
+
"sync",
|
|
1204
|
+
"syncing",
|
|
1205
|
+
"refresh",
|
|
1206
|
+
"update",
|
|
1207
|
+
"loading",
|
|
1208
|
+
"process",
|
|
1209
|
+
"arrows",
|
|
1210
|
+
"cycle"
|
|
1211
|
+
],
|
|
1212
|
+
featured: false,
|
|
1213
|
+
description: "Two concentric arrows indicating synchronization or background processing.",
|
|
1214
|
+
animationDescription: "The two circular arrows rotate around a shared center in opposite directions, then align briefly before continuing."
|
|
1215
|
+
};
|
|
1216
|
+
|
|
981
1217
|
// icons/user/paths.ts
|
|
982
1218
|
var userPaths = {
|
|
983
1219
|
shape: {
|
|
@@ -1015,10 +1251,10 @@ var userSpec = {
|
|
|
1015
1251
|
},
|
|
1016
1252
|
defaultTrigger: "hover"
|
|
1017
1253
|
};
|
|
1018
|
-
var
|
|
1254
|
+
var animation_spec_default20 = userSpec;
|
|
1019
1255
|
|
|
1020
1256
|
// icons/user/metadata.ts
|
|
1021
|
-
var
|
|
1257
|
+
var metadata20 = {
|
|
1022
1258
|
name: "User",
|
|
1023
1259
|
slug: "user",
|
|
1024
1260
|
category: "Uncategorized",
|
|
@@ -1069,10 +1305,10 @@ var wifiSpec = {
|
|
|
1069
1305
|
},
|
|
1070
1306
|
defaultTrigger: "hover"
|
|
1071
1307
|
};
|
|
1072
|
-
var
|
|
1308
|
+
var animation_spec_default21 = wifiSpec;
|
|
1073
1309
|
|
|
1074
1310
|
// icons/wifi/metadata.ts
|
|
1075
|
-
var
|
|
1311
|
+
var metadata21 = {
|
|
1076
1312
|
name: "Wifi",
|
|
1077
1313
|
slug: "wifi",
|
|
1078
1314
|
category: "Connectivity",
|
|
@@ -1087,22 +1323,24 @@ var ICON_SOURCES = {
|
|
|
1087
1323
|
"badge-check": { paths: badgeCheckPaths, spec: animation_spec_default, metadata },
|
|
1088
1324
|
"ball": { paths: ballPaths, spec: animation_spec_default2, metadata: metadata2 },
|
|
1089
1325
|
"bell": { paths: bellPaths, spec: animation_spec_default3, metadata: metadata3 },
|
|
1090
|
-
"
|
|
1091
|
-
"
|
|
1092
|
-
"
|
|
1093
|
-
"
|
|
1094
|
-
"
|
|
1095
|
-
"
|
|
1096
|
-
"
|
|
1097
|
-
"
|
|
1098
|
-
"
|
|
1099
|
-
"
|
|
1100
|
-
"
|
|
1101
|
-
"
|
|
1102
|
-
"
|
|
1103
|
-
"
|
|
1104
|
-
"
|
|
1105
|
-
"
|
|
1326
|
+
"brain": { paths: brainPaths, spec: animation_spec_default4, metadata: metadata4 },
|
|
1327
|
+
"card-flip": { paths: cardFlipPaths, spec: animation_spec_default5, metadata: metadata5 },
|
|
1328
|
+
"check": { paths: checkPaths, spec: animation_spec_default6, metadata: metadata6 },
|
|
1329
|
+
"clock": { paths: clockPaths, spec: animation_spec_default7, metadata: metadata7 },
|
|
1330
|
+
"creating-file": { paths: creatingFilePaths, spec: animation_spec_default8, metadata: metadata8 },
|
|
1331
|
+
"door": { paths: doorPaths, spec: animation_spec_default9, metadata: metadata9 },
|
|
1332
|
+
"download": { paths: downloadPaths, spec: animation_spec_default10, metadata: metadata10 },
|
|
1333
|
+
"external-link": { paths: externalLinkPaths, spec: animation_spec_default11, metadata: metadata11 },
|
|
1334
|
+
"eye": { paths: eyePaths, spec: animation_spec_default12, metadata: metadata12 },
|
|
1335
|
+
"heart": { paths: heartPaths, spec: animation_spec_default13, metadata: metadata13 },
|
|
1336
|
+
"help": { paths: helpPaths, spec: animation_spec_default14, metadata: metadata14 },
|
|
1337
|
+
"layers": { paths: layersPaths, spec: animation_spec_default15, metadata: metadata15 },
|
|
1338
|
+
"refresh": { paths: refreshPaths, spec: animation_spec_default16, metadata: metadata16 },
|
|
1339
|
+
"search": { paths: searchPaths, spec: animation_spec_default17, metadata: metadata17 },
|
|
1340
|
+
"signal": { paths: signalPaths, spec: animation_spec_default18, metadata: metadata18 },
|
|
1341
|
+
"syncing": { paths: syncingPaths, spec: animation_spec_default19, metadata: metadata19 },
|
|
1342
|
+
"user": { paths: userPaths, spec: animation_spec_default20, metadata: metadata20 },
|
|
1343
|
+
"wifi": { paths: wifiPaths, spec: animation_spec_default21, metadata: metadata21 }
|
|
1106
1344
|
};
|
|
1107
1345
|
|
|
1108
1346
|
// lib/icon-sources.ts
|
|
@@ -1467,7 +1705,7 @@ function compileSpec(spec, paths) {
|
|
|
1467
1705
|
}
|
|
1468
1706
|
|
|
1469
1707
|
// lib/generators/runtime-template.generated.ts
|
|
1470
|
-
var
|
|
1708
|
+
var REHOVER_RUNTIME_TS = '/**\r\n * Rehover animation runtime \u2014 framework-agnostic, dependency-free, and safe to\r\n * copy into your project. Every generated icon (Vue/Svelte/Angular/Astro) ships\r\n * its SVG markup with `data-rehover` targets plus a compiled `plan`, then calls\r\n * `animateIcon(root, plan, props)` from here. All trigger behavior lives in this\r\n * one file, so it is identical across frameworks.\r\n *\r\n * This file has no imports on purpose: it is emitted verbatim next to your icons\r\n * (as `rehover-runtime.ts`) so nothing has to be installed. Tweak it freely.\r\n */\r\n\r\n/** What event starts an icon\'s animation. */\r\nexport type AnimationTrigger =\r\n | "hover"\r\n | "hoverHold"\r\n | "click"\r\n | "inView"\r\n | "autoplay"\r\n | "none";\r\n\r\n/** One element\'s compiled animation, keyed by its `data-rehover` target. */\r\nexport interface StepAnimation {\r\n /** Matches the `data-rehover` attribute on the element this animates. */\r\n key: string;\r\n /** Full keyframes (round-trip or destination) for hover/click/inView/autoplay. */\r\n active: Keyframe[];\r\n /** Rest \u2192 peak keyframes for `hoverHold` (the return is the reverse of this). */\r\n hold: Keyframe[];\r\n /** Base duration in seconds (before the `speed` prop divides it). */\r\n duration: number;\r\n /** Base delay in seconds (before `speed`; the `delay` prop is added at runtime). */\r\n delay: number;\r\n /** CSS timing-function string. */\r\n easing: string;\r\n /** Loops regardless of the `loop` prop (continuous/`repeat` steps). */\r\n alwaysLoop: boolean;\r\n}\r\n\r\n/** What the runtime needs from a compiled plan. */\r\nexport interface RuntimePlan {\r\n /** Per-element animations. */\r\n animations: StepAnimation[];\r\n /** Whether the icon autostarts (continuous specs). */\r\n continuous: boolean;\r\n}\r\n\r\n/** The runtime-tunable props that map to the icon\'s public API. */\r\nexport interface IconRuntimeProps {\r\n trigger: AnimationTrigger;\r\n speed: number;\r\n loop: boolean;\r\n delay: number;\r\n}\r\n\r\n/** Handle returned by {@link animateIcon} for prop updates and teardown. */\r\nexport interface IconController {\r\n /** Re-wire for new props (e.g. the playground changing `trigger`). */\r\n update(props: IconRuntimeProps): void;\r\n /** Remove all listeners/observers and cancel running animations. */\r\n destroy(): void;\r\n}\r\n\r\ntype Variant = "active" | "hold";\r\n\r\ninterface Bound {\r\n anim: StepAnimation;\r\n el: Element;\r\n}\r\n\r\n/** Attach the animation runtime to an already-rendered icon root. */\r\nexport function animateIcon(\r\n root: SVGSVGElement,\r\n plan: RuntimePlan,\r\n initialProps: IconRuntimeProps,\r\n): IconController {\r\n let props = initialProps;\r\n\r\n // Resolve each animation\'s DOM target once.\r\n const bound: Bound[] = [];\r\n for (const anim of plan.animations) {\r\n const el = root.querySelector(`[data-rehover="${anim.key}"]`);\r\n if (el) bound.push({ anim, el });\r\n }\r\n\r\n // The currently-playing Animation per target (for restart/reverse).\r\n const current = new Map<string, Animation>();\r\n const cleanups: Array<() => void> = [];\r\n let observer: IntersectionObserver | null = null;\r\n\r\n function makeAnimation(b: Bound, variant: Variant): Animation {\r\n const { anim } = b;\r\n const keyframes = variant === "hold" ? anim.hold : anim.active;\r\n const loops = variant === "active" && (anim.alwaysLoop || props.loop);\r\n return b.el.animate(keyframes, {\r\n duration: (anim.duration / props.speed) * 1000,\r\n delay: ((anim.delay + props.delay) / props.speed) * 1000,\r\n easing: anim.easing,\r\n fill: "forwards",\r\n iterations: loops ? Infinity : 1,\r\n });\r\n }\r\n\r\n /** (Re)start a variant on every target, cancelling any in-flight run. */\r\n function play(variant: Variant): void {\r\n for (const b of bound) {\r\n current.get(b.anim.key)?.cancel();\r\n current.set(b.anim.key, makeAnimation(b, variant));\r\n }\r\n }\r\n\r\n /** Reverse the held pose back to rest (smooth, from the current position). */\r\n function reverseToRest(): void {\r\n for (const b of bound) {\r\n const running = current.get(b.anim.key);\r\n if (running) running.reverse();\r\n }\r\n }\r\n\r\n function on(type: string, handler: EventListener): void {\r\n root.addEventListener(type, handler);\r\n cleanups.push(() => root.removeEventListener(type, handler));\r\n }\r\n\r\n /** Tear down listeners/observers and stop animations (keeps final pose). */\r\n function teardown(): void {\r\n for (const c of cleanups) c();\r\n cleanups.length = 0;\r\n observer?.disconnect();\r\n observer = null;\r\n }\r\n\r\n function setup(): void {\r\n teardown();\r\n\r\n // Accessibility reflects interactivity and stays in sync with `trigger`.\r\n if (props.trigger === "click") {\r\n root.setAttribute("role", "button");\r\n root.setAttribute("tabindex", "0");\r\n } else {\r\n root.setAttribute("role", "img");\r\n root.removeAttribute("tabindex");\r\n }\r\n\r\n // Continuous specs and autoplay start immediately.\r\n if (plan.continuous || props.trigger === "autoplay") play("active");\r\n\r\n switch (props.trigger) {\r\n case "hover":\r\n on("mouseenter", () => play("active"));\r\n on("focus", () => play("active"));\r\n break;\r\n case "hoverHold":\r\n on("mouseenter", () => play("hold"));\r\n on("mouseleave", () => reverseToRest());\r\n on("focus", () => play("hold"));\r\n on("blur", () => reverseToRest());\r\n break;\r\n case "click":\r\n on("click", () => play("active"));\r\n on("keydown", (e) => {\r\n const key = (e as KeyboardEvent).key;\r\n if (key === "Enter" || key === " ") {\r\n e.preventDefault();\r\n play("active");\r\n }\r\n });\r\n break;\r\n case "inView":\r\n observer = new IntersectionObserver(\r\n (entries) => {\r\n if (entries.some((entry) => entry.isIntersecting)) {\r\n play("active");\r\n observer?.disconnect();\r\n observer = null;\r\n }\r\n },\r\n { threshold: 0.5 },\r\n );\r\n observer.observe(root);\r\n break;\r\n }\r\n }\r\n\r\n setup();\r\n\r\n return {\r\n update(next: IconRuntimeProps) {\r\n props = next;\r\n // Reset every target to rest before re-wiring for the new props.\r\n for (const a of current.values()) a.cancel();\r\n current.clear();\r\n setup();\r\n },\r\n destroy() {\r\n teardown();\r\n for (const a of current.values()) a.cancel();\r\n current.clear();\r\n },\r\n };\r\n}\r\n';
|
|
1471
1709
|
|
|
1472
1710
|
// lib/generators/vue.ts
|
|
1473
1711
|
var RUNTIME_FILENAME = "rehover-runtime";
|
|
@@ -1476,7 +1714,7 @@ function styleAttr(style) {
|
|
|
1476
1714
|
return s ? ` style="${s}"` : "";
|
|
1477
1715
|
}
|
|
1478
1716
|
function shapeMarkup(node) {
|
|
1479
|
-
const draw = node.drawKey ? ` data-
|
|
1717
|
+
const draw = node.drawKey ? ` data-rehover="${node.drawKey}" pathLength="1" style="stroke-dasharray: 1"` : "";
|
|
1480
1718
|
const d = node.data;
|
|
1481
1719
|
switch (d.type) {
|
|
1482
1720
|
case "path":
|
|
@@ -1492,7 +1730,7 @@ function shapeMarkup(node) {
|
|
|
1492
1730
|
function nodeMarkup(node, indent) {
|
|
1493
1731
|
if (node.kind === "shape") return shapeMarkup(node);
|
|
1494
1732
|
const child = nodeMarkup(node.child, `${indent} `);
|
|
1495
|
-
return `<g data-
|
|
1733
|
+
return `<g data-rehover="${node.key}"${styleAttr(node.style)}>
|
|
1496
1734
|
${indent} ${child}
|
|
1497
1735
|
${indent}</g>`;
|
|
1498
1736
|
}
|
|
@@ -1597,7 +1835,7 @@ onUnmounted(() => controller?.destroy())
|
|
|
1597
1835
|
importStatement: `import ${name} from '@/components/icons/${name}.vue';`,
|
|
1598
1836
|
usageSnippet: `<${name} />`,
|
|
1599
1837
|
dependencies: "none \u2014 self-contained (no npm install)",
|
|
1600
|
-
runtime: { filename: `${RUNTIME_FILENAME}.ts`, code:
|
|
1838
|
+
runtime: { filename: `${RUNTIME_FILENAME}.ts`, code: REHOVER_RUNTIME_TS }
|
|
1601
1839
|
};
|
|
1602
1840
|
}
|
|
1603
1841
|
};
|
|
@@ -1612,7 +1850,7 @@ function getIconGenerator(framework) {
|
|
|
1612
1850
|
}
|
|
1613
1851
|
|
|
1614
1852
|
// cli/index.ts
|
|
1615
|
-
var VERSION = true ? "0.1.0-beta.
|
|
1853
|
+
var VERSION = true ? "0.1.0-beta.2" : "0.0.0";
|
|
1616
1854
|
var supportsColor = process.stdout.isTTY && process.env.NO_COLOR === void 0;
|
|
1617
1855
|
var paint = (code, s) => supportsColor ? `\x1B[${code}m${s}\x1B[0m` : s;
|
|
1618
1856
|
var green = (s) => paint("32", s);
|
|
@@ -1637,7 +1875,7 @@ function resolveFramework(input) {
|
|
|
1637
1875
|
};
|
|
1638
1876
|
return aliases[key];
|
|
1639
1877
|
}
|
|
1640
|
-
var
|
|
1878
|
+
var REHOVER_ICONS_DIR = "rehover";
|
|
1641
1879
|
function detectComponentsDir() {
|
|
1642
1880
|
const candidates = [
|
|
1643
1881
|
(0, import_node_path.join)("src", "components"),
|
|
@@ -1651,7 +1889,7 @@ function detectComponentsDir() {
|
|
|
1651
1889
|
return (0, import_node_fs.existsSync)((0, import_node_path.join)(process.cwd(), "src")) ? (0, import_node_path.join)("src", "components") : "components";
|
|
1652
1890
|
}
|
|
1653
1891
|
function resolveOutputDir(outDir) {
|
|
1654
|
-
return outDir ?? (0, import_node_path.join)(detectComponentsDir(),
|
|
1892
|
+
return outDir ?? (0, import_node_path.join)(detectComponentsDir(), REHOVER_ICONS_DIR);
|
|
1655
1893
|
}
|
|
1656
1894
|
function outputPath(slug, ext, dir) {
|
|
1657
1895
|
const fileBase = toPascalCase(slug);
|