@stateglyph/core 0.1.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,1107 @@
1
+ // src/define-state-icon.ts
2
+ function defineStateIcon(definition) {
3
+ return definition;
4
+ }
5
+
6
+ // src/icons/upload.ts
7
+ var uploadStateIcon = defineStateIcon({
8
+ id: "upload",
9
+ title: "Upload",
10
+ description: "Shows the current state of a file upload.",
11
+ category: "async",
12
+ states: {
13
+ idle: { icon: "upload", label: "Upload", description: "Ready to upload." },
14
+ loading: {
15
+ icon: "loader-circle",
16
+ label: "Uploading",
17
+ description: "Uploading is in progress.",
18
+ continuous: true
19
+ },
20
+ success: {
21
+ icon: "circle-check",
22
+ label: "Upload complete",
23
+ description: "Upload complete successfully."
24
+ },
25
+ error: {
26
+ icon: "circle-alert",
27
+ label: "Upload failed",
28
+ description: "The upload action failed."
29
+ }
30
+ },
31
+ initialState: "idle",
32
+ transition: "scale-fade",
33
+ tags: ["upload", "idle", "loading", "success", "error"],
34
+ source: {
35
+ library: "lucide",
36
+ license: "ISC",
37
+ url: "https://lucide.dev",
38
+ icons: ["upload", "loader-circle", "circle-check", "circle-alert"]
39
+ }
40
+ });
41
+
42
+ // src/icons/download.ts
43
+ var downloadStateIcon = defineStateIcon({
44
+ id: "download",
45
+ title: "Download",
46
+ description: "Shows the current state of a file download.",
47
+ category: "async",
48
+ states: {
49
+ idle: {
50
+ icon: "download",
51
+ label: "Download",
52
+ description: "Ready to download."
53
+ },
54
+ loading: {
55
+ icon: "loader-circle",
56
+ label: "Downloading",
57
+ description: "Downloading is in progress.",
58
+ continuous: true
59
+ },
60
+ success: {
61
+ icon: "circle-check",
62
+ label: "Download complete",
63
+ description: "Download complete successfully."
64
+ },
65
+ error: {
66
+ icon: "circle-alert",
67
+ label: "Download failed",
68
+ description: "The download action failed."
69
+ }
70
+ },
71
+ initialState: "idle",
72
+ transition: "scale-fade",
73
+ tags: ["download", "idle", "loading", "success", "error"],
74
+ source: {
75
+ library: "lucide",
76
+ license: "ISC",
77
+ url: "https://lucide.dev",
78
+ icons: ["download", "loader-circle", "circle-check", "circle-alert"]
79
+ }
80
+ });
81
+
82
+ // src/icons/save.ts
83
+ var saveStateIcon = defineStateIcon({
84
+ id: "save",
85
+ title: "Save",
86
+ description: "Shows whether a change is saving, saved, or failed.",
87
+ category: "async",
88
+ states: {
89
+ idle: { icon: "save", label: "Save", description: "Ready to save." },
90
+ saving: {
91
+ icon: "loader-circle",
92
+ label: "Saving",
93
+ description: "Saving is in progress.",
94
+ continuous: true
95
+ },
96
+ saved: {
97
+ icon: "circle-check",
98
+ label: "Saved",
99
+ description: "Saved successfully."
100
+ },
101
+ error: {
102
+ icon: "circle-alert",
103
+ label: "Save failed",
104
+ description: "The save action failed."
105
+ }
106
+ },
107
+ initialState: "idle",
108
+ transition: "scale-fade",
109
+ tags: ["save", "idle", "saving", "saved", "error"],
110
+ source: {
111
+ library: "lucide",
112
+ license: "ISC",
113
+ url: "https://lucide.dev",
114
+ icons: ["save", "loader-circle", "circle-check", "circle-alert"]
115
+ }
116
+ });
117
+
118
+ // src/icons/delete.ts
119
+ var deleteStateIcon = defineStateIcon({
120
+ id: "delete",
121
+ title: "Delete",
122
+ description: "Shows the lifecycle of a delete action.",
123
+ category: "async",
124
+ states: {
125
+ idle: { icon: "trash-2", label: "Delete", description: "Ready to delete." },
126
+ deleting: {
127
+ icon: "loader-circle",
128
+ label: "Deleting",
129
+ description: "Deleting is in progress.",
130
+ continuous: true
131
+ },
132
+ deleted: {
133
+ icon: "circle-check",
134
+ label: "Deleted",
135
+ description: "Deleted successfully."
136
+ },
137
+ error: {
138
+ icon: "circle-alert",
139
+ label: "Delete failed",
140
+ description: "The delete action failed."
141
+ }
142
+ },
143
+ initialState: "idle",
144
+ transition: "scale-fade",
145
+ tags: ["delete", "idle", "deleting", "deleted", "error"],
146
+ source: {
147
+ library: "lucide",
148
+ license: "ISC",
149
+ url: "https://lucide.dev",
150
+ icons: ["trash-2", "loader-circle", "circle-check", "circle-alert"]
151
+ }
152
+ });
153
+
154
+ // src/icons/refresh.ts
155
+ var refreshStateIcon = defineStateIcon({
156
+ id: "refresh",
157
+ title: "Refresh",
158
+ description: "Shows the progress and result of refreshing content.",
159
+ category: "async",
160
+ states: {
161
+ idle: {
162
+ icon: "refresh-cw",
163
+ label: "Refresh",
164
+ description: "Ready to refresh."
165
+ },
166
+ refreshing: {
167
+ icon: "loader-circle",
168
+ label: "Refreshing",
169
+ description: "Refreshing is in progress.",
170
+ continuous: true
171
+ },
172
+ complete: {
173
+ icon: "circle-check",
174
+ label: "Refresh complete",
175
+ description: "Refresh complete successfully."
176
+ },
177
+ error: {
178
+ icon: "circle-alert",
179
+ label: "Refresh failed",
180
+ description: "The refresh action failed."
181
+ }
182
+ },
183
+ initialState: "idle",
184
+ transition: "scale-fade",
185
+ tags: ["refresh", "idle", "refreshing", "complete", "error"],
186
+ source: {
187
+ library: "lucide",
188
+ license: "ISC",
189
+ url: "https://lucide.dev",
190
+ icons: ["refresh-cw", "loader-circle", "circle-check", "circle-alert"]
191
+ }
192
+ });
193
+
194
+ // src/icons/sync.ts
195
+ var syncStateIcon = defineStateIcon({
196
+ id: "sync",
197
+ title: "Sync",
198
+ description: "Shows whether data is idle, syncing, synced, or failed.",
199
+ category: "async",
200
+ states: {
201
+ idle: { icon: "refresh-cw", label: "Sync", description: "Ready to sync." },
202
+ syncing: {
203
+ icon: "loader-circle",
204
+ label: "Syncing",
205
+ description: "Syncing is in progress.",
206
+ continuous: true
207
+ },
208
+ synced: {
209
+ icon: "circle-check",
210
+ label: "Synced",
211
+ description: "Synced successfully."
212
+ },
213
+ error: {
214
+ icon: "circle-alert",
215
+ label: "Sync failed",
216
+ description: "The sync action failed."
217
+ }
218
+ },
219
+ initialState: "idle",
220
+ transition: "scale-fade",
221
+ tags: ["sync", "idle", "syncing", "synced", "error"],
222
+ source: {
223
+ library: "lucide",
224
+ license: "ISC",
225
+ url: "https://lucide.dev",
226
+ icons: ["refresh-cw", "loader-circle", "circle-check", "circle-alert"]
227
+ }
228
+ });
229
+
230
+ // src/icons/send.ts
231
+ var sendStateIcon = defineStateIcon({
232
+ id: "send",
233
+ title: "Send",
234
+ description: "Shows the progress and result of sending content.",
235
+ category: "async",
236
+ states: {
237
+ idle: { icon: "send", label: "Send", description: "Ready to send." },
238
+ sending: {
239
+ icon: "loader-circle",
240
+ label: "Sending",
241
+ description: "Sending is in progress.",
242
+ continuous: true
243
+ },
244
+ sent: {
245
+ icon: "circle-check",
246
+ label: "Sent",
247
+ description: "Sent successfully."
248
+ },
249
+ error: {
250
+ icon: "circle-alert",
251
+ label: "Send failed",
252
+ description: "The send action failed."
253
+ }
254
+ },
255
+ initialState: "idle",
256
+ transition: "scale-fade",
257
+ tags: ["send", "idle", "sending", "sent", "error"],
258
+ source: {
259
+ library: "lucide",
260
+ license: "ISC",
261
+ url: "https://lucide.dev",
262
+ icons: ["send", "loader-circle", "circle-check", "circle-alert"]
263
+ }
264
+ });
265
+
266
+ // src/icons/payment.ts
267
+ var paymentStateIcon = defineStateIcon({
268
+ id: "payment",
269
+ title: "Payment",
270
+ description: "Shows a payment moving through processing and completion.",
271
+ category: "commerce",
272
+ states: {
273
+ idle: {
274
+ icon: "credit-card",
275
+ label: "Payment",
276
+ description: "Ready to payment."
277
+ },
278
+ processing: {
279
+ icon: "loader-circle",
280
+ label: "Processing payment",
281
+ description: "Processing payment is in progress.",
282
+ continuous: true
283
+ },
284
+ success: {
285
+ icon: "circle-check",
286
+ label: "Payment complete",
287
+ description: "Payment complete successfully."
288
+ },
289
+ error: {
290
+ icon: "circle-alert",
291
+ label: "Payment failed",
292
+ description: "The payment action failed."
293
+ }
294
+ },
295
+ initialState: "idle",
296
+ transition: "scale-fade",
297
+ tags: ["payment", "idle", "processing", "success", "error"],
298
+ source: {
299
+ library: "lucide",
300
+ license: "ISC",
301
+ url: "https://lucide.dev",
302
+ icons: ["credit-card", "loader-circle", "circle-check", "circle-alert"]
303
+ }
304
+ });
305
+
306
+ // src/icons/add-to-cart.ts
307
+ var addToCartStateIcon = defineStateIcon({
308
+ id: "add-to-cart",
309
+ title: "Add to cart",
310
+ description: "Shows the lifecycle of adding an item to a cart.",
311
+ category: "commerce",
312
+ states: {
313
+ idle: {
314
+ icon: "shopping-cart",
315
+ label: "Add to cart",
316
+ description: "Ready to add to cart."
317
+ },
318
+ adding: {
319
+ icon: "loader-circle",
320
+ label: "Adding to cart",
321
+ description: "Adding to cart is in progress.",
322
+ continuous: true
323
+ },
324
+ added: {
325
+ icon: "circle-check",
326
+ label: "Added to cart",
327
+ description: "Added to cart successfully."
328
+ },
329
+ error: {
330
+ icon: "circle-alert",
331
+ label: "Add to cart failed",
332
+ description: "The add to cart action failed."
333
+ }
334
+ },
335
+ initialState: "idle",
336
+ transition: "scale-fade",
337
+ tags: [
338
+ "add-to-cart",
339
+ "add",
340
+ "to",
341
+ "cart",
342
+ "idle",
343
+ "adding",
344
+ "added",
345
+ "error"
346
+ ],
347
+ source: {
348
+ library: "lucide",
349
+ license: "ISC",
350
+ url: "https://lucide.dev",
351
+ icons: ["shopping-cart", "loader-circle", "circle-check", "circle-alert"]
352
+ }
353
+ });
354
+
355
+ // src/icons/submit.ts
356
+ var submitStateIcon = defineStateIcon({
357
+ id: "submit",
358
+ title: "Submit",
359
+ description: "Shows the progress and result of a form submission.",
360
+ category: "form",
361
+ states: {
362
+ idle: {
363
+ icon: "send-horizontal",
364
+ label: "Submit",
365
+ description: "Ready to submit."
366
+ },
367
+ submitting: {
368
+ icon: "loader-circle",
369
+ label: "Submitting",
370
+ description: "Submitting is in progress.",
371
+ continuous: true
372
+ },
373
+ success: {
374
+ icon: "circle-check",
375
+ label: "Submission complete",
376
+ description: "Submission complete successfully."
377
+ },
378
+ error: {
379
+ icon: "circle-alert",
380
+ label: "Submit failed",
381
+ description: "The submit action failed."
382
+ }
383
+ },
384
+ initialState: "idle",
385
+ transition: "scale-fade",
386
+ tags: ["submit", "idle", "submitting", "success", "error"],
387
+ source: {
388
+ library: "lucide",
389
+ license: "ISC",
390
+ url: "https://lucide.dev",
391
+ icons: ["send-horizontal", "loader-circle", "circle-check", "circle-alert"]
392
+ }
393
+ });
394
+
395
+ // src/icons/install.ts
396
+ var installStateIcon = defineStateIcon({
397
+ id: "install",
398
+ title: "Install",
399
+ description: "Shows the lifecycle of installing a package or application.",
400
+ category: "async",
401
+ states: {
402
+ idle: {
403
+ icon: "package",
404
+ label: "Install",
405
+ description: "Ready to install."
406
+ },
407
+ installing: {
408
+ icon: "loader-circle",
409
+ label: "Installing",
410
+ description: "Installing is in progress.",
411
+ continuous: true
412
+ },
413
+ installed: {
414
+ icon: "package-check",
415
+ label: "Installed",
416
+ description: "Installed successfully."
417
+ },
418
+ error: {
419
+ icon: "circle-alert",
420
+ label: "Install failed",
421
+ description: "The install action failed."
422
+ }
423
+ },
424
+ initialState: "idle",
425
+ transition: "scale-fade",
426
+ tags: ["install", "idle", "installing", "installed", "error"],
427
+ source: {
428
+ library: "lucide",
429
+ license: "ISC",
430
+ url: "https://lucide.dev",
431
+ icons: ["package", "loader-circle", "package-check", "circle-alert"]
432
+ }
433
+ });
434
+
435
+ // src/icons/publish.ts
436
+ var publishStateIcon = defineStateIcon({
437
+ id: "publish",
438
+ title: "Publish",
439
+ description: "Shows content moving from draft to published.",
440
+ category: "async",
441
+ states: {
442
+ draft: {
443
+ icon: "file-pen-line",
444
+ label: "Draft",
445
+ description: "The content is still a draft."
446
+ },
447
+ publishing: {
448
+ icon: "loader-circle",
449
+ label: "Publishing",
450
+ description: "Publication is in progress.",
451
+ continuous: true
452
+ },
453
+ published: {
454
+ icon: "circle-check",
455
+ label: "Published",
456
+ description: "The content is published."
457
+ },
458
+ error: {
459
+ icon: "circle-alert",
460
+ label: "Publishing failed",
461
+ description: "The content could not be published."
462
+ }
463
+ },
464
+ initialState: "draft",
465
+ transition: "scale-fade",
466
+ tags: ["publish", "draft", "publishing", "published", "error"],
467
+ source: {
468
+ library: "lucide",
469
+ license: "ISC",
470
+ url: "https://lucide.dev",
471
+ icons: ["file-pen-line", "loader-circle", "circle-check", "circle-alert"]
472
+ }
473
+ });
474
+
475
+ // src/icons/play-pause.ts
476
+ var playPauseStateIcon = defineStateIcon({
477
+ id: "play-pause",
478
+ title: "Play and pause",
479
+ description: "Switches between paused and playing media states.",
480
+ category: "media",
481
+ states: {
482
+ paused: {
483
+ icon: "play",
484
+ label: "Play",
485
+ description: "Media is paused and can be played."
486
+ },
487
+ playing: {
488
+ icon: "pause",
489
+ label: "Pause",
490
+ description: "Media is playing and can be paused."
491
+ }
492
+ },
493
+ initialState: "paused",
494
+ transition: "morph",
495
+ tags: ["play-pause", "play", "pause", "paused", "playing"],
496
+ source: {
497
+ library: "lucide",
498
+ license: "ISC",
499
+ url: "https://lucide.dev",
500
+ icons: ["play", "pause"]
501
+ }
502
+ });
503
+
504
+ // src/icons/playback.ts
505
+ var playbackStateIcon = defineStateIcon({
506
+ id: "playback",
507
+ title: "Playback",
508
+ description: "Represents idle, buffering, playing, and paused media.",
509
+ category: "media",
510
+ states: {
511
+ idle: {
512
+ icon: "play",
513
+ label: "Play",
514
+ description: "Media is ready to play."
515
+ },
516
+ buffering: {
517
+ icon: "loader-circle",
518
+ label: "Buffering",
519
+ description: "Media is buffering.",
520
+ continuous: true
521
+ },
522
+ playing: {
523
+ icon: "pause",
524
+ label: "Pause",
525
+ description: "Media is currently playing."
526
+ },
527
+ paused: { icon: "play", label: "Resume", description: "Media is paused." }
528
+ },
529
+ initialState: "idle",
530
+ transition: "scale-fade",
531
+ tags: ["playback", "idle", "buffering", "playing", "paused"],
532
+ source: {
533
+ library: "lucide",
534
+ license: "ISC",
535
+ url: "https://lucide.dev",
536
+ icons: ["play", "loader-circle", "pause"]
537
+ }
538
+ });
539
+
540
+ // src/icons/volume.ts
541
+ var volumeStateIcon = defineStateIcon({
542
+ id: "volume",
543
+ title: "Volume",
544
+ description: "Switches between audible and muted audio states.",
545
+ category: "media",
546
+ states: {
547
+ audible: {
548
+ icon: "volume-2",
549
+ label: "Mute audio",
550
+ description: "Audio is audible."
551
+ },
552
+ muted: {
553
+ icon: "volume-x",
554
+ label: "Unmute audio",
555
+ description: "Audio is muted."
556
+ }
557
+ },
558
+ initialState: "audible",
559
+ transition: "morph",
560
+ tags: ["volume", "audible", "muted"],
561
+ source: {
562
+ library: "lucide",
563
+ license: "ISC",
564
+ url: "https://lucide.dev",
565
+ icons: ["volume-2", "volume-x"]
566
+ }
567
+ });
568
+
569
+ // src/icons/microphone.ts
570
+ var microphoneStateIcon = defineStateIcon({
571
+ id: "microphone",
572
+ title: "Microphone",
573
+ description: "Switches between active and muted microphone states.",
574
+ category: "media",
575
+ states: {
576
+ active: {
577
+ icon: "mic",
578
+ label: "Mute microphone",
579
+ description: "The microphone is active."
580
+ },
581
+ muted: {
582
+ icon: "mic-off",
583
+ label: "Unmute microphone",
584
+ description: "The microphone is muted."
585
+ }
586
+ },
587
+ initialState: "active",
588
+ transition: "morph",
589
+ tags: ["microphone", "active", "muted"],
590
+ source: {
591
+ library: "lucide",
592
+ license: "ISC",
593
+ url: "https://lucide.dev",
594
+ icons: ["mic", "mic-off"]
595
+ }
596
+ });
597
+
598
+ // src/icons/camera.ts
599
+ var cameraStateIcon = defineStateIcon({
600
+ id: "camera",
601
+ title: "Camera",
602
+ description: "Switches between active and disabled camera states.",
603
+ category: "media",
604
+ states: {
605
+ active: {
606
+ icon: "video",
607
+ label: "Disable camera",
608
+ description: "The camera is active."
609
+ },
610
+ disabled: {
611
+ icon: "video-off",
612
+ label: "Enable camera",
613
+ description: "The camera is disabled."
614
+ }
615
+ },
616
+ initialState: "active",
617
+ transition: "morph",
618
+ tags: ["camera", "active", "disabled"],
619
+ source: {
620
+ library: "lucide",
621
+ license: "ISC",
622
+ url: "https://lucide.dev",
623
+ icons: ["video", "video-off"]
624
+ }
625
+ });
626
+
627
+ // src/icons/fullscreen.ts
628
+ var fullscreenStateIcon = defineStateIcon({
629
+ id: "fullscreen",
630
+ title: "Fullscreen",
631
+ description: "Switches between windowed and fullscreen layouts.",
632
+ category: "media",
633
+ states: {
634
+ windowed: {
635
+ icon: "maximize",
636
+ label: "Enter fullscreen",
637
+ description: "The view is windowed."
638
+ },
639
+ fullscreen: {
640
+ icon: "minimize",
641
+ label: "Exit fullscreen",
642
+ description: "The view is fullscreen."
643
+ }
644
+ },
645
+ initialState: "windowed",
646
+ transition: "morph",
647
+ tags: ["fullscreen", "windowed"],
648
+ source: {
649
+ library: "lucide",
650
+ license: "ISC",
651
+ url: "https://lucide.dev",
652
+ icons: ["maximize", "minimize"]
653
+ }
654
+ });
655
+
656
+ // src/icons/repeat.ts
657
+ var repeatStateIcon = defineStateIcon({
658
+ id: "repeat",
659
+ title: "Repeat",
660
+ description: "Shows whether media repeat is on or off.",
661
+ category: "media",
662
+ states: {
663
+ off: {
664
+ icon: "repeat",
665
+ label: "Turn repeat on",
666
+ description: "Repeat is off."
667
+ },
668
+ on: {
669
+ icon: "repeat-2",
670
+ label: "Turn repeat off",
671
+ description: "Repeat is on."
672
+ }
673
+ },
674
+ initialState: "off",
675
+ transition: "morph",
676
+ tags: ["repeat", "off", "on"],
677
+ source: {
678
+ library: "lucide",
679
+ license: "ISC",
680
+ url: "https://lucide.dev",
681
+ icons: ["repeat", "repeat-2"]
682
+ }
683
+ });
684
+
685
+ // src/icons/shuffle.ts
686
+ var shuffleStateIcon = defineStateIcon({
687
+ id: "shuffle",
688
+ title: "Shuffle",
689
+ description: "Shows whether shuffled playback is on or off.",
690
+ category: "media",
691
+ states: {
692
+ off: {
693
+ icon: "list-ordered",
694
+ label: "Turn shuffle on",
695
+ description: "Shuffle is off."
696
+ },
697
+ on: {
698
+ icon: "shuffle",
699
+ label: "Turn shuffle off",
700
+ description: "Shuffle is on."
701
+ }
702
+ },
703
+ initialState: "off",
704
+ transition: "morph",
705
+ tags: ["shuffle", "off", "on"],
706
+ source: {
707
+ library: "lucide",
708
+ license: "ISC",
709
+ url: "https://lucide.dev",
710
+ icons: ["list-ordered", "shuffle"]
711
+ }
712
+ });
713
+
714
+ // src/icons/menu.ts
715
+ var menuStateIcon = defineStateIcon({
716
+ id: "menu",
717
+ title: "Menu",
718
+ description: "Switches between closed and open navigation menus.",
719
+ category: "navigation",
720
+ states: {
721
+ closed: {
722
+ icon: "menu",
723
+ label: "Open menu",
724
+ description: "The menu is closed."
725
+ },
726
+ open: { icon: "x", label: "Close menu", description: "The menu is open." }
727
+ },
728
+ initialState: "closed",
729
+ transition: "morph",
730
+ tags: ["menu", "closed", "open"],
731
+ source: {
732
+ library: "lucide",
733
+ license: "ISC",
734
+ url: "https://lucide.dev",
735
+ icons: ["menu", "x"]
736
+ }
737
+ });
738
+
739
+ // src/icons/expand.ts
740
+ var expandStateIcon = defineStateIcon({
741
+ id: "expand",
742
+ title: "Expand",
743
+ description: "Switches between collapsed and expanded content.",
744
+ category: "navigation",
745
+ states: {
746
+ collapsed: {
747
+ icon: "chevrons-up-down",
748
+ label: "Expand",
749
+ description: "The content is collapsed."
750
+ },
751
+ expanded: {
752
+ icon: "chevrons-down-up",
753
+ label: "Collapse",
754
+ description: "The content is expanded."
755
+ }
756
+ },
757
+ initialState: "collapsed",
758
+ transition: "morph",
759
+ tags: ["expand", "collapsed", "expanded"],
760
+ source: {
761
+ library: "lucide",
762
+ license: "ISC",
763
+ url: "https://lucide.dev",
764
+ icons: ["chevrons-up-down", "chevrons-down-up"]
765
+ }
766
+ });
767
+
768
+ // src/icons/sidebar.ts
769
+ var sidebarStateIcon = defineStateIcon({
770
+ id: "sidebar",
771
+ title: "Sidebar",
772
+ description: "Switches between open and closed sidebar layouts.",
773
+ category: "navigation",
774
+ states: {
775
+ open: {
776
+ icon: "panel-left-close",
777
+ label: "Close sidebar",
778
+ description: "The sidebar is open."
779
+ },
780
+ closed: {
781
+ icon: "panel-left-open",
782
+ label: "Open sidebar",
783
+ description: "The sidebar is closed."
784
+ }
785
+ },
786
+ initialState: "open",
787
+ transition: "morph",
788
+ tags: ["sidebar", "open", "closed"],
789
+ source: {
790
+ library: "lucide",
791
+ license: "ISC",
792
+ url: "https://lucide.dev",
793
+ icons: ["panel-left-close", "panel-left-open"]
794
+ }
795
+ });
796
+
797
+ // src/icons/view.ts
798
+ var viewStateIcon = defineStateIcon({
799
+ id: "view",
800
+ title: "Grid and list",
801
+ description: "Switches a collection between grid and list layouts.",
802
+ category: "navigation",
803
+ states: {
804
+ grid: {
805
+ icon: "layout-grid",
806
+ label: "Show as list",
807
+ description: "The collection uses a grid layout."
808
+ },
809
+ list: {
810
+ icon: "list",
811
+ label: "Show as grid",
812
+ description: "The collection uses a list layout."
813
+ }
814
+ },
815
+ initialState: "grid",
816
+ transition: "morph",
817
+ tags: ["view", "grid", "list"],
818
+ source: {
819
+ library: "lucide",
820
+ license: "ISC",
821
+ url: "https://lucide.dev",
822
+ icons: ["layout-grid", "list"]
823
+ }
824
+ });
825
+
826
+ // src/icons/chevron-vertical.ts
827
+ var chevronVerticalStateIcon = defineStateIcon({
828
+ id: "chevron-vertical",
829
+ title: "Vertical chevron",
830
+ description: "Switches between upward and downward directions.",
831
+ category: "navigation",
832
+ states: {
833
+ up: {
834
+ icon: "chevron-up",
835
+ label: "Point up",
836
+ description: "The chevron points upward."
837
+ },
838
+ down: {
839
+ icon: "chevron-down",
840
+ label: "Point down",
841
+ description: "The chevron points downward."
842
+ }
843
+ },
844
+ initialState: "down",
845
+ transition: "morph",
846
+ tags: ["chevron-vertical", "chevron", "vertical", "up", "down"],
847
+ source: {
848
+ library: "lucide",
849
+ license: "ISC",
850
+ url: "https://lucide.dev",
851
+ icons: ["chevron-up", "chevron-down"]
852
+ }
853
+ });
854
+
855
+ // src/icons/chevron-horizontal.ts
856
+ var chevronHorizontalStateIcon = defineStateIcon({
857
+ id: "chevron-horizontal",
858
+ title: "Horizontal chevron",
859
+ description: "Switches between left and right directions.",
860
+ category: "navigation",
861
+ states: {
862
+ left: {
863
+ icon: "chevron-left",
864
+ label: "Point left",
865
+ description: "The chevron points left."
866
+ },
867
+ right: {
868
+ icon: "chevron-right",
869
+ label: "Point right",
870
+ description: "The chevron points right."
871
+ }
872
+ },
873
+ initialState: "right",
874
+ transition: "morph",
875
+ tags: ["chevron-horizontal", "chevron", "horizontal", "left", "right"],
876
+ source: {
877
+ library: "lucide",
878
+ license: "ISC",
879
+ url: "https://lucide.dev",
880
+ icons: ["chevron-left", "chevron-right"]
881
+ }
882
+ });
883
+
884
+ // src/icons/panel.ts
885
+ var panelStateIcon = defineStateIcon({
886
+ id: "panel",
887
+ title: "Panel",
888
+ description: "Switches between restored and maximized panel sizes.",
889
+ category: "navigation",
890
+ states: {
891
+ restored: {
892
+ icon: "maximize-2",
893
+ label: "Maximize panel",
894
+ description: "The panel is restored."
895
+ },
896
+ maximized: {
897
+ icon: "minimize-2",
898
+ label: "Restore panel",
899
+ description: "The panel is maximized."
900
+ }
901
+ },
902
+ initialState: "restored",
903
+ transition: "morph",
904
+ tags: ["panel", "restored", "maximized"],
905
+ source: {
906
+ library: "lucide",
907
+ license: "ISC",
908
+ url: "https://lucide.dev",
909
+ icons: ["maximize-2", "minimize-2"]
910
+ }
911
+ });
912
+
913
+ // src/icons/copy.ts
914
+ var copyStateIcon = defineStateIcon({
915
+ id: "copy",
916
+ title: "Copy",
917
+ description: "Shows idle, copied, and reset clipboard feedback.",
918
+ category: "feedback",
919
+ states: {
920
+ idle: {
921
+ icon: "copy",
922
+ label: "Copy",
923
+ description: "Content is ready to be copied."
924
+ },
925
+ copied: {
926
+ icon: "check",
927
+ label: "Copied",
928
+ description: "Content was copied."
929
+ },
930
+ reset: {
931
+ icon: "rotate-ccw",
932
+ label: "Copy again",
933
+ description: "Copy feedback has reset."
934
+ }
935
+ },
936
+ initialState: "idle",
937
+ transition: "scale-fade",
938
+ tags: ["copy", "idle", "copied", "reset"],
939
+ source: {
940
+ library: "lucide",
941
+ license: "ISC",
942
+ url: "https://lucide.dev",
943
+ icons: ["copy", "check", "rotate-ccw"]
944
+ }
945
+ });
946
+
947
+ // src/icons/like.ts
948
+ var likeStateIcon = defineStateIcon({
949
+ id: "like",
950
+ title: "Like",
951
+ description: "Switches between liked and unliked feedback states.",
952
+ category: "feedback",
953
+ states: {
954
+ unliked: {
955
+ icon: "heart",
956
+ label: "Like",
957
+ description: "The item is not liked."
958
+ },
959
+ liked: {
960
+ icon: "heart-off",
961
+ label: "Remove like",
962
+ description: "The item is liked."
963
+ }
964
+ },
965
+ initialState: "unliked",
966
+ transition: "morph",
967
+ tags: ["like", "unliked", "liked"],
968
+ source: {
969
+ library: "lucide",
970
+ license: "ISC",
971
+ url: "https://lucide.dev",
972
+ icons: ["heart", "heart-off"]
973
+ }
974
+ });
975
+
976
+ // src/icons/bookmark.ts
977
+ var bookmarkStateIcon = defineStateIcon({
978
+ id: "bookmark",
979
+ title: "Bookmark",
980
+ description: "Switches between bookmarked and unbookmarked states.",
981
+ category: "feedback",
982
+ states: {
983
+ unbookmarked: {
984
+ icon: "bookmark",
985
+ label: "Add bookmark",
986
+ description: "The item is not bookmarked."
987
+ },
988
+ bookmarked: {
989
+ icon: "bookmark-check",
990
+ label: "Remove bookmark",
991
+ description: "The item is bookmarked."
992
+ }
993
+ },
994
+ initialState: "unbookmarked",
995
+ transition: "morph",
996
+ tags: ["bookmark", "unbookmarked", "bookmarked"],
997
+ source: {
998
+ library: "lucide",
999
+ license: "ISC",
1000
+ url: "https://lucide.dev",
1001
+ icons: ["bookmark", "bookmark-check"]
1002
+ }
1003
+ });
1004
+
1005
+ // src/icons/notification.ts
1006
+ var notificationStateIcon = defineStateIcon({
1007
+ id: "notification",
1008
+ title: "Notification",
1009
+ description: "Shows off, enabled, and unread notification states.",
1010
+ category: "notification",
1011
+ states: {
1012
+ off: {
1013
+ icon: "bell-off",
1014
+ label: "Enable notifications",
1015
+ description: "Notifications are off."
1016
+ },
1017
+ on: {
1018
+ icon: "bell",
1019
+ label: "Notifications on",
1020
+ description: "Notifications are enabled."
1021
+ },
1022
+ unread: {
1023
+ icon: "bell-ring",
1024
+ label: "Unread notifications",
1025
+ description: "There are unread notifications."
1026
+ }
1027
+ },
1028
+ initialState: "off",
1029
+ transition: "scale-fade",
1030
+ tags: ["notification", "off", "on", "unread"],
1031
+ source: {
1032
+ library: "lucide",
1033
+ license: "ISC",
1034
+ url: "https://lucide.dev",
1035
+ icons: ["bell-off", "bell", "bell-ring"]
1036
+ }
1037
+ });
1038
+
1039
+ // src/catalog.ts
1040
+ var stateIconCatalog = [
1041
+ uploadStateIcon,
1042
+ downloadStateIcon,
1043
+ saveStateIcon,
1044
+ deleteStateIcon,
1045
+ refreshStateIcon,
1046
+ syncStateIcon,
1047
+ sendStateIcon,
1048
+ paymentStateIcon,
1049
+ addToCartStateIcon,
1050
+ submitStateIcon,
1051
+ installStateIcon,
1052
+ publishStateIcon,
1053
+ playPauseStateIcon,
1054
+ playbackStateIcon,
1055
+ volumeStateIcon,
1056
+ microphoneStateIcon,
1057
+ cameraStateIcon,
1058
+ fullscreenStateIcon,
1059
+ repeatStateIcon,
1060
+ shuffleStateIcon,
1061
+ menuStateIcon,
1062
+ expandStateIcon,
1063
+ sidebarStateIcon,
1064
+ viewStateIcon,
1065
+ chevronVerticalStateIcon,
1066
+ chevronHorizontalStateIcon,
1067
+ panelStateIcon,
1068
+ copyStateIcon,
1069
+ likeStateIcon,
1070
+ bookmarkStateIcon,
1071
+ notificationStateIcon
1072
+ ];
1073
+ export {
1074
+ addToCartStateIcon,
1075
+ bookmarkStateIcon,
1076
+ cameraStateIcon,
1077
+ chevronHorizontalStateIcon,
1078
+ chevronVerticalStateIcon,
1079
+ copyStateIcon,
1080
+ defineStateIcon,
1081
+ deleteStateIcon,
1082
+ downloadStateIcon,
1083
+ expandStateIcon,
1084
+ fullscreenStateIcon,
1085
+ installStateIcon,
1086
+ likeStateIcon,
1087
+ menuStateIcon,
1088
+ microphoneStateIcon,
1089
+ notificationStateIcon,
1090
+ panelStateIcon,
1091
+ paymentStateIcon,
1092
+ playPauseStateIcon,
1093
+ playbackStateIcon,
1094
+ publishStateIcon,
1095
+ refreshStateIcon,
1096
+ repeatStateIcon,
1097
+ saveStateIcon,
1098
+ sendStateIcon,
1099
+ shuffleStateIcon,
1100
+ sidebarStateIcon,
1101
+ stateIconCatalog,
1102
+ submitStateIcon,
1103
+ syncStateIcon,
1104
+ uploadStateIcon,
1105
+ viewStateIcon,
1106
+ volumeStateIcon
1107
+ };