loading-state-zoo 0.3.0 → 0.4.1

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/theme.css CHANGED
@@ -161,46 +161,6 @@
161
161
  opacity: var(--lz-orb-fade, 0.88);
162
162
  }
163
163
  }
164
- @keyframes lz-blob-morph {
165
- 0% {
166
- border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%;
167
- transform: rotate(0deg) scale(1);
168
- }
169
- 25% {
170
- border-radius: 58% 42% 55% 45% / 55% 48% 52% 45%;
171
- transform: rotate(6deg) scale(1.06);
172
- }
173
- 50% {
174
- border-radius: 46% 54% 48% 52% / 48% 55% 45% 52%;
175
- transform: rotate(-5deg) scale(0.95);
176
- }
177
- 75% {
178
- border-radius: 55% 45% 52% 48% / 46% 52% 48% 55%;
179
- transform: rotate(3deg) scale(1.05);
180
- }
181
- 100% {
182
- border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%;
183
- transform: rotate(0deg) scale(1);
184
- }
185
- }
186
- @keyframes lz-siri-sheen {
187
- 0% {
188
- transform: translate3d(-24%, -14%, 0) rotate(0deg);
189
- }
190
- 100% {
191
- transform: translate3d(24%, 14%, 0) rotate(360deg);
192
- }
193
- }
194
- @keyframes lz-dot-orb {
195
- 0%, 100% {
196
- opacity: var(--lz-orb-fade, 0.14);
197
- transform: scale(var(--lz-dot-min, 0.7));
198
- }
199
- 50% {
200
- opacity: 1;
201
- transform: scale(1);
202
- }
203
- }
204
164
  @keyframes lz-waveform {
205
165
  0%, 100% {
206
166
  transform: scaleY(var(--lz-wf-min, 0.22));
@@ -235,10 +195,10 @@
235
195
  }
236
196
  @keyframes lz-needle-bob {
237
197
  0%, 100% {
238
- transform: rotate(38deg);
198
+ transform: rotate(22deg);
239
199
  }
240
200
  50% {
241
- transform: rotate(43deg);
201
+ transform: rotate(27deg);
242
202
  }
243
203
  }
244
204
  .lz-bouncing-dots {
@@ -396,20 +356,57 @@
396
356
  border-radius: 50%;
397
357
  border: 1px solid var(--lz-track, rgba(255, 255, 255, 0.12));
398
358
  }
359
+ .lz-scan-sweep .lz-dial {
360
+ position: absolute;
361
+ inset: 0.075em;
362
+ border-radius: 50%;
363
+ border: 1px dashed rgba(255, 255, 255, 0.1);
364
+ animation: lz-spin-reverse calc(12s * var(--lz-speed, 1)) linear infinite;
365
+ }
399
366
  .lz-scan-sweep .lz-ring-inner {
400
367
  position: absolute;
401
- inset: 0.28em;
368
+ inset: 0.27em;
402
369
  border-radius: 50%;
403
370
  border: 1px solid var(--lz-track-weak, rgba(255, 255, 255, 0.08));
404
371
  }
405
- .lz-scan-sweep .lz-core {
372
+ .lz-scan-sweep .lz-tick-slot {
406
373
  position: absolute;
407
- width: 0.14em;
374
+ left: 50%;
375
+ top: 50%;
376
+ width: 0;
377
+ height: 0;
378
+ }
379
+ .lz-scan-sweep .lz-tick {
380
+ position: absolute;
381
+ left: -0.025em;
382
+ top: 0;
383
+ width: 0.05em;
408
384
  height: 0.14em;
409
- left: 0.43em;
410
- top: 0.43em;
385
+ border-radius: 1px;
386
+ background: var(--lz-color-weak, rgba(245, 245, 247, 0.8));
387
+ }
388
+ .lz-scan-sweep .lz-tick.short {
389
+ height: 0.09em;
390
+ }
391
+ .lz-scan-sweep .lz-core-ring {
392
+ position: absolute;
393
+ left: 50%;
394
+ top: 50%;
395
+ width: 0.26em;
396
+ height: 0.26em;
397
+ margin: -0.13em 0 0 -0.13em;
398
+ border-radius: 50%;
399
+ border: 1px solid var(--lz-track-weak, rgba(255, 255, 255, 0.08));
400
+ }
401
+ .lz-scan-sweep .lz-core {
402
+ position: absolute;
403
+ width: 0.1em;
404
+ height: 0.1em;
405
+ left: 0.45em;
406
+ top: 0.45em;
411
407
  border-radius: 50%;
412
408
  background: var(--lz-color-weak, rgba(245, 245, 247, 0.8));
409
+ box-shadow: 0 0 0.18em 0.03em color-mix(in srgb, var(--lz-color, #f5f5f7) 45%, transparent);
413
410
  }
414
411
  .lz-scan-sweep .lz-sweep {
415
412
  position: absolute;
@@ -419,11 +416,33 @@
419
416
  conic-gradient(
420
417
  from 0deg,
421
418
  var(--lz-color, #f5f5f7) 0deg,
422
- var(--lz-color-sweep, rgba(245, 245, 247, 0.08)) 60deg,
423
- transparent 90deg);
419
+ var(--lz-color-sweep, rgba(245, 245, 247, 0.08)) 8deg,
420
+ color-mix(in srgb, var(--lz-color, #f5f5f7) 5%, transparent) 55deg,
421
+ transparent 95deg);
424
422
  -webkit-mask: radial-gradient(closest-side, #000 100%);
425
423
  mask: radial-gradient(closest-side, #000 100%);
426
- animation: lz-spin calc(2.5s * var(--lz-speed, 1)) linear infinite;
424
+ animation: lz-spin calc(4s * var(--lz-speed, 1)) linear infinite;
425
+ }
426
+ .lz-scan-sweep .lz-sweep-edge {
427
+ position: absolute;
428
+ inset: 0;
429
+ border-radius: 50%;
430
+ background:
431
+ conic-gradient(
432
+ from 0deg,
433
+ var(--lz-color, #f5f5f7) 0deg,
434
+ transparent 5deg);
435
+ -webkit-mask:
436
+ radial-gradient(
437
+ farthest-side,
438
+ transparent calc(100% - 0.07em),
439
+ #000 calc(100% - 0.07em));
440
+ mask:
441
+ radial-gradient(
442
+ farthest-side,
443
+ transparent calc(100% - 0.07em),
444
+ #000 calc(100% - 0.07em));
445
+ animation: lz-spin calc(4s * var(--lz-speed, 1)) linear infinite;
427
446
  }
428
447
  .lz-orbit-dots {
429
448
  position: relative;
@@ -755,210 +774,6 @@
755
774
  transparent);
756
775
  animation: lz-skeleton-sheen calc(1.4s * var(--lz-speed, 1)) linear infinite;
757
776
  }
758
- .lz-pulsing-orb {
759
- width: var(--lz-size, 44px);
760
- height: var(--lz-size, 44px);
761
- border-radius: 50%;
762
- background:
763
- radial-gradient(
764
- circle at 35% 32%,
765
- var(--lz-accent, #0a84ff) 0%,
766
- color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, transparent) 55%,
767
- transparent 72%);
768
- box-shadow: 0 0 calc(0.5 * var(--lz-size, 44px)) color-mix(in srgb, var(--lz-accent, #0a84ff) 40%, transparent);
769
- animation: lz-orb-breathe calc(2.2s * var(--lz-speed, 1)) ease-in-out infinite;
770
- }
771
- .lz-morphing-orb {
772
- width: var(--lz-size, 44px);
773
- height: var(--lz-size, 44px);
774
- background:
775
- radial-gradient(
776
- circle at 34% 30%,
777
- var(--lz-accent, #0a84ff) 0%,
778
- color-mix(in srgb, var(--lz-accent, #0a84ff) 60%, transparent) 62%,
779
- transparent 78%);
780
- box-shadow: 0 0 calc(0.55 * var(--lz-size, 44px)) color-mix(in srgb, var(--lz-accent, #0a84ff) 35%, transparent);
781
- animation: lz-blob-morph calc(3.4s * var(--lz-speed, 1)) ease-in-out infinite;
782
- }
783
- .lz-siri-orb {
784
- position: relative;
785
- overflow: hidden;
786
- width: var(--lz-size, 44px);
787
- height: var(--lz-size, 44px);
788
- border-radius: 50%;
789
- background:
790
- radial-gradient(
791
- circle at 30% 28%,
792
- color-mix(in srgb, var(--lz-accent, #0a84ff) 75%, white) 0%,
793
- transparent 60%);
794
- animation: lz-orb-breathe calc(2.6s * var(--lz-speed, 1)) ease-in-out infinite;
795
- }
796
- .lz-siri-orb .lz-sheen {
797
- position: absolute;
798
- width: calc(2.4 * var(--lz-size, 44px));
799
- height: calc(2.4 * var(--lz-size, 44px));
800
- left: 50%;
801
- top: 50%;
802
- margin: -1.2em 0 0 -1.2em;
803
- background:
804
- conic-gradient(
805
- from 0deg at 50% 50%,
806
- transparent 0deg,
807
- color-mix(in srgb, var(--lz-accent, #0a84ff) 55%, transparent) 40deg,
808
- transparent 90deg,
809
- color-mix(in srgb, var(--lz-accent, #0a84ff) 35%, transparent) 150deg,
810
- transparent 200deg,
811
- color-mix(in srgb, var(--lz-accent, #0a84ff) 50%, transparent) 270deg,
812
- transparent 360deg);
813
- animation: lz-siri-sheen calc(5s * var(--lz-speed, 1)) linear infinite;
814
- opacity: 0.9;
815
- }
816
- .lz-dot-orb {
817
- position: relative;
818
- width: var(--lz-size, 44px);
819
- height: var(--lz-size, 44px);
820
- }
821
- .lz-dot-orb .lz-slot {
822
- position: absolute;
823
- left: 50%;
824
- top: 50%;
825
- width: 0;
826
- height: 0;
827
- }
828
- .lz-dot-orb .lz-dot {
829
- position: absolute;
830
- left: -0.08em;
831
- top: -0.08em;
832
- width: 0.16em;
833
- height: 0.16em;
834
- border-radius: 50%;
835
- background: var(--lz-color, #f5f5f7);
836
- animation: lz-dot-orb calc(2s * var(--lz-speed, 1)) ease-in-out infinite;
837
- }
838
- .lz-dot-orb .lz-slot:nth-child(1) {
839
- transform: rotate(0deg) translateY(-0.32em);
840
- }
841
- .lz-dot-orb .lz-slot:nth-child(2) {
842
- transform: rotate(45deg) translateY(-0.32em);
843
- }
844
- .lz-dot-orb .lz-slot:nth-child(3) {
845
- transform: rotate(90deg) translateY(-0.32em);
846
- }
847
- .lz-dot-orb .lz-slot:nth-child(4) {
848
- transform: rotate(135deg) translateY(-0.32em);
849
- }
850
- .lz-dot-orb .lz-slot:nth-child(5) {
851
- transform: rotate(180deg) translateY(-0.32em);
852
- }
853
- .lz-dot-orb .lz-slot:nth-child(6) {
854
- transform: rotate(225deg) translateY(-0.32em);
855
- }
856
- .lz-dot-orb .lz-slot:nth-child(7) {
857
- transform: rotate(270deg) translateY(-0.32em);
858
- }
859
- .lz-dot-orb .lz-slot:nth-child(8) {
860
- transform: rotate(315deg) translateY(-0.32em);
861
- }
862
- .lz-dot-orb .lz-slot:nth-child(odd) .lz-dot {
863
- animation-delay: -0.25s;
864
- }
865
- .lz-planet-orb {
866
- position: relative;
867
- width: var(--lz-size, 44px);
868
- height: var(--lz-size, 44px);
869
- }
870
- .lz-planet-orb .lz-core {
871
- position: absolute;
872
- left: 50%;
873
- top: 50%;
874
- width: 0.42em;
875
- height: 0.42em;
876
- margin: -0.21em 0 0 -0.21em;
877
- border-radius: 50%;
878
- background:
879
- radial-gradient(
880
- circle at 35% 30%,
881
- color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, white) 0%,
882
- var(--lz-accent, #0a84ff) 50%,
883
- color-mix(in srgb, var(--lz-accent, #0a84ff) 40%, transparent) 100%);
884
- box-shadow: 0 0 calc(0.3em) color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, transparent);
885
- animation: lz-orb-breathe calc(2.4s * var(--lz-speed, 1)) ease-in-out infinite;
886
- }
887
- .lz-planet-orb .lz-orbit {
888
- position: absolute;
889
- inset: 0;
890
- animation: lz-spin calc(2.2s * var(--lz-speed, 1)) linear infinite;
891
- }
892
- .lz-planet-orb .lz-moon {
893
- position: absolute;
894
- left: 50%;
895
- top: 50%;
896
- width: 0.14em;
897
- height: 0.14em;
898
- margin: -0.07em 0 0 -0.07em;
899
- border-radius: 50%;
900
- background: var(--lz-color, #f5f5f7);
901
- box-shadow: 0 0 calc(0.16em) color-mix(in srgb, var(--lz-color, #f5f5f7) 50%, transparent);
902
- }
903
- .lz-planet-orb .lz-moon:nth-child(1) {
904
- transform: rotate(0deg) translateX(0.36em);
905
- }
906
- .lz-planet-orb .lz-moon:nth-child(2) {
907
- transform: rotate(180deg) translateX(0.36em);
908
- }
909
- .lz-planet-orb .lz-moon:nth-child(3) {
910
- transform: rotate(120deg) translateX(0.36em);
911
- }
912
- .lz-planet-orb .lz-moon:nth-child(4) {
913
- transform: rotate(240deg) translateX(0.36em);
914
- }
915
- .lz-planet-orb .lz-moon:nth-child(5) {
916
- transform: rotate(72deg) translateX(0.36em);
917
- }
918
- .lz-aura-orb {
919
- position: relative;
920
- width: var(--lz-size, 44px);
921
- height: var(--lz-size, 44px);
922
- }
923
- .lz-aura-orb .lz-layer {
924
- position: absolute;
925
- inset: 0;
926
- animation: lz-spin calc(3s * var(--lz-speed, 1)) linear infinite;
927
- }
928
- .lz-aura-orb .lz-layer.a {
929
- animation-duration: calc(2.6s * var(--lz-speed, 1));
930
- }
931
- .lz-aura-orb .lz-layer.b {
932
- animation-name: lz-spin-reverse;
933
- animation-duration: calc(3.4s * var(--lz-speed, 1));
934
- }
935
- .lz-aura-orb .lz-orb {
936
- position: absolute;
937
- left: 50%;
938
- top: 50%;
939
- width: 0.78em;
940
- height: 0.78em;
941
- margin: -0.39em 0 0 -0.39em;
942
- border-radius: 50%;
943
- transform: translateX(0.14em);
944
- }
945
- .lz-aura-orb .lz-layer.a .lz-orb {
946
- background:
947
- radial-gradient(
948
- circle at 35% 30%,
949
- color-mix(in srgb, var(--lz-color, #f5f5f7) 90%, transparent) 0%,
950
- color-mix(in srgb, var(--lz-color, #f5f5f7) 40%, transparent) 62%,
951
- transparent 76%);
952
- }
953
- .lz-aura-orb .lz-layer.b .lz-orb {
954
- background:
955
- radial-gradient(
956
- circle at 35% 30%,
957
- var(--lz-accent, #0a84ff) 0%,
958
- color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, transparent) 62%,
959
- transparent 76%);
960
- opacity: 0.9;
961
- }
962
777
  .lz-waveform {
963
778
  display: flex;
964
779
  align-items: center;
@@ -985,40 +800,122 @@
985
800
  position: absolute;
986
801
  inset: 0;
987
802
  border-radius: 50%;
803
+ overflow: hidden;
988
804
  background:
989
805
  repeating-radial-gradient(
990
806
  circle at 50% 50%,
991
- rgba(255, 255, 255, 0.06) 0 1px,
807
+ rgba(255, 255, 255, 0.055) 0 1px,
992
808
  transparent 1px 4px),
993
809
  radial-gradient(
994
810
  circle at 50% 50%,
995
- var(--lz-accent, #0a84ff) 0 13%,
996
- rgba(0, 0, 0, 0.88) 14% 100%);
811
+ rgba(255, 255, 255, 0.05) 0 17%,
812
+ rgba(0, 0, 0, 0.22) 17% 18%,
813
+ transparent 18% 20%,
814
+ rgba(255, 255, 255, 0.045) 20% 21%,
815
+ transparent 21% 100%),
816
+ radial-gradient(circle at 50% 50%, #141216 0 100%);
997
817
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
998
- animation: lz-spin calc(3.5s * var(--lz-speed, 1)) linear infinite;
818
+ animation: lz-spin calc(7s * var(--lz-speed, 1)) linear infinite;
999
819
  }
1000
- .lz-vinyl .lz-needle {
820
+ .lz-vinyl .lz-disc::before {
821
+ content: "";
1001
822
  position: absolute;
1002
- top: 0.08em;
1003
- right: 0.18em;
823
+ inset: 0;
824
+ border-radius: 50%;
825
+ background:
826
+ linear-gradient(
827
+ 112deg,
828
+ transparent 26%,
829
+ rgba(255, 255, 255, 0.17) 40%,
830
+ rgba(255, 255, 255, 0.04) 49%,
831
+ transparent 62%);
832
+ }
833
+ .lz-vinyl .lz-label {
834
+ position: absolute;
835
+ left: 50%;
836
+ top: 50%;
837
+ width: 0.5em;
838
+ height: 0.5em;
839
+ margin: -0.25em 0 0 -0.25em;
840
+ border-radius: 50%;
841
+ background:
842
+ radial-gradient(
843
+ circle at 36% 30%,
844
+ rgba(255, 255, 255, 0.35) 0 5%,
845
+ transparent 6%),
846
+ radial-gradient(
847
+ circle at 63% 68%,
848
+ rgba(0, 0, 0, 0.4) 0 7%,
849
+ transparent 8%),
850
+ var(--lz-accent, #0a84ff);
851
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.4);
852
+ }
853
+ .lz-vinyl .lz-spindle {
854
+ position: absolute;
855
+ left: 50%;
856
+ top: 50%;
857
+ width: 0.09em;
858
+ height: 0.09em;
859
+ margin: -0.045em 0 0 -0.045em;
860
+ border-radius: 50%;
861
+ background: rgba(0, 0, 0, 0.9);
862
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
863
+ }
864
+ .lz-vinyl .lz-arm {
865
+ position: absolute;
866
+ top: 0.05em;
867
+ right: 0.06em;
868
+ width: 0.8em;
869
+ height: 0.8em;
870
+ transform-origin: top right;
871
+ animation: lz-needle-bob calc(2.4s * var(--lz-speed, 1)) ease-in-out infinite;
872
+ }
873
+ .lz-vinyl .lz-post {
874
+ position: absolute;
875
+ right: -0.01em;
876
+ top: -0.01em;
877
+ width: 0.13em;
878
+ height: 0.13em;
879
+ border-radius: 50%;
880
+ background:
881
+ radial-gradient(
882
+ circle at 35% 30%,
883
+ var(--lz-color, #f5f5f7) 0 42%,
884
+ color-mix(in srgb, var(--lz-color, #f5f5f7) 45%, transparent) 100%);
885
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.3);
886
+ }
887
+ .lz-vinyl .lz-shaft {
888
+ position: absolute;
889
+ right: 0.045em;
890
+ top: 0.02em;
1004
891
  width: 0.06em;
1005
- height: 0.7em;
892
+ height: 0.48em;
1006
893
  border-radius: 3px;
1007
- background: linear-gradient(var(--lz-color, #f5f5f7), color-mix(in srgb, var(--lz-color, #f5f5f7) 30%, transparent));
1008
- transform: rotate(38deg);
1009
- transform-origin: top right;
1010
- animation: lz-needle-bob calc(1.8s * var(--lz-speed, 1)) ease-in-out infinite;
894
+ background: linear-gradient(var(--lz-color, #f5f5f7), color-mix(in srgb, var(--lz-color, #f5f5f7) 35%, transparent));
895
+ box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.25);
896
+ transform-origin: top center;
897
+ transform: rotate(24deg);
1011
898
  }
1012
- .lz-vinyl .lz-needle .lz-tip {
899
+ .lz-vinyl .lz-shaft::before {
900
+ content: "";
1013
901
  position: absolute;
1014
- bottom: 0;
1015
- left: 50%;
1016
- width: 0.1em;
1017
- height: 0.1em;
1018
- margin-left: -0.05em;
1019
- transform: translateY(0.1em);
902
+ top: -0.035em;
903
+ left: -0.04em;
904
+ width: 0.14em;
905
+ height: 0.14em;
1020
906
  border-radius: 50%;
1021
- background: var(--lz-accent, #0a84ff);
907
+ background: var(--lz-color, #f5f5f7);
908
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.25);
909
+ }
910
+ .lz-vinyl .lz-shaft::after {
911
+ content: "";
912
+ position: absolute;
913
+ bottom: -0.05em;
914
+ left: 0.005em;
915
+ width: 0.05em;
916
+ height: 0.1em;
917
+ border-radius: 0 0 3px 3px;
918
+ background: color-mix(in srgb, var(--lz-accent, #0a84ff) 75%, white);
1022
919
  }
1023
920
  .lz-sonar {
1024
921
  position: relative;
@@ -1054,25 +951,51 @@
1054
951
  }
1055
952
  .lz-music-note {
1056
953
  display: flex;
1057
- align-items: baseline;
1058
- gap: 0.45em;
954
+ align-items: center;
955
+ gap: 0.5em;
1059
956
  font-size: var(--lz-size, 32px);
1060
957
  line-height: 1;
1061
958
  }
1062
959
  .lz-music-note .lz-note {
960
+ position: relative;
1063
961
  display: inline-block;
1064
- line-height: 1;
1065
- color: var(--lz-color, #f5f5f7);
962
+ width: 0.42em;
963
+ height: 0.88em;
1066
964
  animation: lz-note-bob calc(1.4s * var(--lz-speed, 1)) ease-in-out infinite;
1067
965
  }
1068
- .lz-music-note .lz-note:nth-child(2) {
1069
- animation-delay: -0.5s;
966
+ .lz-music-note .lz-head {
967
+ position: absolute;
968
+ left: 0;
969
+ bottom: 0.06em;
970
+ width: 0.3em;
971
+ height: 0.24em;
972
+ border-radius: 55% 45% 50% 50%;
973
+ background: var(--lz-color, #f5f5f7);
974
+ box-shadow: inset -0.045em -0.02em 0 color-mix(in srgb, var(--lz-color, #f5f5f7) 55%, #000);
975
+ transform: rotate(-18deg);
1070
976
  }
1071
- .lz-music-note .lz-note:nth-child(3) {
1072
- animation-delay: -0.9s;
977
+ .lz-music-note .lz-stem {
978
+ position: absolute;
979
+ left: 0.175em;
980
+ bottom: 0.13em;
981
+ width: 0.045em;
982
+ height: 0.6em;
983
+ border-radius: 2px;
984
+ background: var(--lz-color, #f5f5f7);
1073
985
  }
1074
- .lz-music-note .lz-note:nth-child(4) {
1075
- animation-delay: -0.3s;
986
+ .lz-music-note .lz-flag {
987
+ position: absolute;
988
+ left: 0.22em;
989
+ bottom: 0.61em;
990
+ width: 0.24em;
991
+ height: 0.2em;
992
+ border: 0.045em solid var(--lz-color, #f5f5f7);
993
+ border-left: none;
994
+ border-top: none;
995
+ border-radius: 0 0 0.14em 0.02em / 0 0 0.26em 0.02em;
996
+ }
997
+ .lz-music-note .lz-note.second .lz-head {
998
+ background: color-mix(in srgb, var(--lz-color, #f5f5f7) 45%, var(--lz-accent, #0a84ff));
1076
999
  }
1077
1000
  .lz-activity-rings {
1078
1001
  width: var(--lz-size, 44px);
package/docs/AI.md CHANGED
@@ -5,9 +5,10 @@
5
5
  ## Package identity
6
6
 
7
7
  - Package name: `loading-state-zoo`
8
- - Version: `0.3.0`
9
- - 32 loading-pattern UI components. All are *web components* (custom elements) with a thin React wrapper plus a standalone CSS theme.
8
+ - Version: `0.4.1`
9
+ - 26 loading-pattern UI components. All are *web components* (custom elements) with a thin React wrapper plus a standalone CSS theme.
10
10
  - License: MIT. No data collection of any kind.
11
+ - **Recommended production version:** `^0.4.1` is the stable line; use it for production installs.
11
12
 
12
13
  ## Entry points (exact import strings)
13
14
 
@@ -40,24 +41,22 @@
40
41
  - Bars/skeletons: use `width` + `height` instead (Indeterminate 160×6, Skeleton 120×28), Equalizer uses `size` = bar height (22).
41
42
  7. **Progress ring and progress bar are static** (driven by `percent` 0–100, clamped; `role="progressbar"` with live `aria-valuenow`). They do not animate by themselves.
42
43
 
43
- ## Component registry (32)
44
+ ## Component registry (26)
44
45
 
45
46
  Dots: `lz-bouncing-dots`, `lz-typing-dots`, `lz-wave-dots`, `lz-helix-dots`, `lz-dot-grid-wave`, `lz-ellipsis`
46
- Spinners: `lz-arc-spinner`, `lz-material-double-arc`, `lz-scan-sweep`, `lz-orbit-dots`, `lz-orbit-ring-dots`
47
- Orbs: `lz-pulsing-orb`, `lz-morphing-orb`, `lz-siri-orb`, `lz-dot-orb`, `lz-planet-orb`, `lz-aura-orb`
47
+ Spinners: `lz-arc-spinner`, `lz-material-double-arc`, `lz-scan-sweep`, `lz-orbit-dots`, `lz-orbit-ring-dots`, `lz-sonar`
48
48
  Shapes: `lz-eyes`, `lz-morphing-square`, `lz-breathing-pulse`
49
49
  Bars & rings: `lz-equalizer`, `lz-progress-ring`, `lz-progress-bar`, `lz-indeterminate-progress-bar`, `lz-activity-rings`
50
- Music: `lz-waveform`, `lz-vinyl`, `lz-sonar`, `lz-music-note`
50
+ Music: `lz-waveform`, `lz-vinyl`, `lz-music-note`
51
51
  Skeletons: `lz-skeleton-shimmer`, `lz-skeleton-card`, `lz-skeleton-list`
52
52
 
53
- Every element: shadow DOM (`mode:"open"`), inline `<style>` per element (shared keyframes string), geometry in `em` relative to host `font-size: var(--lz-size, 44px)`. Sized elements (progress bars, skeletons) take explicit `width`/`height` instead. New families:
53
+ Every element: shadow DOM (`mode:"open"`), inline `<style>` per element (shared keyframes string), geometry in `em` relative to host `font-size: var(--lz-size, 44px)`. Sized elements (progress bars, skeletons) take explicit `width`/`height` instead. Family notes:
54
54
 
55
- - **Orbs** use `accent` as their primary hue (default `#0a84ff`); `lz-dot-orb` and `lz-planet-orb` also accept `count`; `lz-planet-orb`/`lz-aura-orb` use `color` for moons/second orb.
56
- - **Music** patterns: `lz-waveform` (`count`, `bar-width`, `gap`), `lz-vinyl` (`accent` = label/stylus, `color` = tonearm), `lz-sonar` (`count` rings, `accent` = ring, `color` = core), `lz-music-note` (`count` notes).
55
+ - **`lz-sonar`** lives in the Spinners family (radar use).
56
+ - **Music** patterns: `lz-waveform` (`count`, `bar-width`, `gap`), `lz-vinyl` (label/spindle/sheen rotate with a slow-spinning disc; `accent` = label/stylus, `color` = tonearm disc spins over 7s so the motion reads as a record turning, not a blur), `lz-music-note` (drawn note = head + stem + flag, `count` notes).
57
+ - **`lz-scan-sweep`** radar sweep rotates over 4s (dial counter-rotates over 12s). Slower means calmer — the sweep stays legible instead of whipping round.
57
58
  - **`lz-activity-rings`** is SVG-based (role `img`), defaults to Apple watch hues: outer `accent` `#fa114f`, middle `color` `#30d158`, inner `color-weak` `#32d7ff`; three rings rotate via `lz-spin` / reverse at distinct durations.
58
59
 
59
- Every element: shadow DOM (`mode:"open"`), inline `<style>` per element (shared keyframes string), geometry in `em` relative to host `font-size: var(--lz-size, 44px)`. Sized elements (progress bars, skeletons) take explicit `width`/`height` instead.
60
-
61
60
  ## Minimal valid usage
62
61
 
63
62
  Web: