loading-state-zoo 0.2.0 → 0.4.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/README.md +244 -4
- package/dist/index.cjs +337 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -3
- package/dist/index.d.ts +30 -3
- package/dist/index.js +336 -39
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +334 -37
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +113 -1
- package/dist/react.d.ts +113 -1
- package/dist/react.js +334 -37
- package/dist/react.js.map +1 -1
- package/dist/theme.css +555 -7
- package/docs/AI.md +19 -9
- package/docs/components.json +259 -3
- package/package.json +2 -2
package/dist/theme.css
CHANGED
|
@@ -151,6 +151,84 @@
|
|
|
151
151
|
transform: scale(var(--lz-ellipsis-min, 0.8));
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
+
@keyframes lz-orb-breathe {
|
|
155
|
+
0%, 100% {
|
|
156
|
+
transform: scale(1);
|
|
157
|
+
opacity: 1;
|
|
158
|
+
}
|
|
159
|
+
50% {
|
|
160
|
+
transform: scale(var(--lz-orb-scale, 1.16));
|
|
161
|
+
opacity: var(--lz-orb-fade, 0.88);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
@keyframes lz-ios-glow {
|
|
165
|
+
0%, 100% {
|
|
166
|
+
opacity: var(--lz-ios-fade, 0.2);
|
|
167
|
+
transform: scale(var(--lz-ios-min, 0.5));
|
|
168
|
+
}
|
|
169
|
+
35% {
|
|
170
|
+
opacity: 1;
|
|
171
|
+
transform: scale(var(--lz-ios-peak, 1.25));
|
|
172
|
+
}
|
|
173
|
+
50% {
|
|
174
|
+
opacity: 1;
|
|
175
|
+
transform: scale(var(--lz-ios-peak, 1.25));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
@keyframes lz-ai-sparkle {
|
|
179
|
+
0%, 100% {
|
|
180
|
+
opacity: 0;
|
|
181
|
+
transform: scale(0.1) rotate(0deg);
|
|
182
|
+
}
|
|
183
|
+
20% {
|
|
184
|
+
opacity: 1;
|
|
185
|
+
transform: scale(1) rotate(8deg);
|
|
186
|
+
}
|
|
187
|
+
45% {
|
|
188
|
+
opacity: 0;
|
|
189
|
+
transform: scale(1.35) rotate(14deg);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
@keyframes lz-waveform {
|
|
193
|
+
0%, 100% {
|
|
194
|
+
transform: scaleY(var(--lz-wf-min, 0.22));
|
|
195
|
+
}
|
|
196
|
+
50% {
|
|
197
|
+
transform: scaleY(1);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
@keyframes lz-sonar-ring {
|
|
201
|
+
0% {
|
|
202
|
+
transform: scale(0.18);
|
|
203
|
+
opacity: var(--lz-sonar-fade, 0.9);
|
|
204
|
+
}
|
|
205
|
+
100% {
|
|
206
|
+
transform: scale(1);
|
|
207
|
+
opacity: 0;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
@keyframes lz-note-bob {
|
|
211
|
+
0%, 100% {
|
|
212
|
+
transform: translateY(0);
|
|
213
|
+
}
|
|
214
|
+
45% {
|
|
215
|
+
transform: translateY(var(--lz-note-bob, 0.35em));
|
|
216
|
+
}
|
|
217
|
+
60% {
|
|
218
|
+
transform: rotate(4deg) translateY(var(--lz-note-bob, 0.35em));
|
|
219
|
+
}
|
|
220
|
+
75% {
|
|
221
|
+
transform: rotate(-4deg) translateY(var(--lz-note-bob, 0.35em));
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
@keyframes lz-needle-bob {
|
|
225
|
+
0%, 100% {
|
|
226
|
+
transform: rotate(22deg);
|
|
227
|
+
}
|
|
228
|
+
50% {
|
|
229
|
+
transform: rotate(27deg);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
154
232
|
.lz-bouncing-dots {
|
|
155
233
|
display: flex;
|
|
156
234
|
gap: 0.7em;
|
|
@@ -306,20 +384,57 @@
|
|
|
306
384
|
border-radius: 50%;
|
|
307
385
|
border: 1px solid var(--lz-track, rgba(255, 255, 255, 0.12));
|
|
308
386
|
}
|
|
387
|
+
.lz-scan-sweep .lz-dial {
|
|
388
|
+
position: absolute;
|
|
389
|
+
inset: 0.075em;
|
|
390
|
+
border-radius: 50%;
|
|
391
|
+
border: 1px dashed rgba(255, 255, 255, 0.1);
|
|
392
|
+
animation: lz-spin-reverse calc(10s * var(--lz-speed, 1)) linear infinite;
|
|
393
|
+
}
|
|
309
394
|
.lz-scan-sweep .lz-ring-inner {
|
|
310
395
|
position: absolute;
|
|
311
|
-
inset: 0.
|
|
396
|
+
inset: 0.27em;
|
|
312
397
|
border-radius: 50%;
|
|
313
398
|
border: 1px solid var(--lz-track-weak, rgba(255, 255, 255, 0.08));
|
|
314
399
|
}
|
|
315
|
-
.lz-scan-sweep .lz-
|
|
400
|
+
.lz-scan-sweep .lz-tick-slot {
|
|
316
401
|
position: absolute;
|
|
317
|
-
|
|
402
|
+
left: 50%;
|
|
403
|
+
top: 50%;
|
|
404
|
+
width: 0;
|
|
405
|
+
height: 0;
|
|
406
|
+
}
|
|
407
|
+
.lz-scan-sweep .lz-tick {
|
|
408
|
+
position: absolute;
|
|
409
|
+
left: -0.025em;
|
|
410
|
+
top: 0;
|
|
411
|
+
width: 0.05em;
|
|
318
412
|
height: 0.14em;
|
|
319
|
-
|
|
320
|
-
|
|
413
|
+
border-radius: 1px;
|
|
414
|
+
background: var(--lz-color-weak, rgba(245, 245, 247, 0.8));
|
|
415
|
+
}
|
|
416
|
+
.lz-scan-sweep .lz-tick.short {
|
|
417
|
+
height: 0.09em;
|
|
418
|
+
}
|
|
419
|
+
.lz-scan-sweep .lz-core-ring {
|
|
420
|
+
position: absolute;
|
|
421
|
+
left: 50%;
|
|
422
|
+
top: 50%;
|
|
423
|
+
width: 0.26em;
|
|
424
|
+
height: 0.26em;
|
|
425
|
+
margin: -0.13em 0 0 -0.13em;
|
|
426
|
+
border-radius: 50%;
|
|
427
|
+
border: 1px solid var(--lz-track-weak, rgba(255, 255, 255, 0.08));
|
|
428
|
+
}
|
|
429
|
+
.lz-scan-sweep .lz-core {
|
|
430
|
+
position: absolute;
|
|
431
|
+
width: 0.1em;
|
|
432
|
+
height: 0.1em;
|
|
433
|
+
left: 0.45em;
|
|
434
|
+
top: 0.45em;
|
|
321
435
|
border-radius: 50%;
|
|
322
436
|
background: var(--lz-color-weak, rgba(245, 245, 247, 0.8));
|
|
437
|
+
box-shadow: 0 0 0.18em 0.03em color-mix(in srgb, var(--lz-color, #f5f5f7) 45%, transparent);
|
|
323
438
|
}
|
|
324
439
|
.lz-scan-sweep .lz-sweep {
|
|
325
440
|
position: absolute;
|
|
@@ -329,12 +444,34 @@
|
|
|
329
444
|
conic-gradient(
|
|
330
445
|
from 0deg,
|
|
331
446
|
var(--lz-color, #f5f5f7) 0deg,
|
|
332
|
-
var(--lz-color-sweep, rgba(245, 245, 247, 0.08))
|
|
333
|
-
transparent
|
|
447
|
+
var(--lz-color-sweep, rgba(245, 245, 247, 0.08)) 8deg,
|
|
448
|
+
color-mix(in srgb, var(--lz-color, #f5f5f7) 5%, transparent) 55deg,
|
|
449
|
+
transparent 95deg);
|
|
334
450
|
-webkit-mask: radial-gradient(closest-side, #000 100%);
|
|
335
451
|
mask: radial-gradient(closest-side, #000 100%);
|
|
336
452
|
animation: lz-spin calc(2.5s * var(--lz-speed, 1)) linear infinite;
|
|
337
453
|
}
|
|
454
|
+
.lz-scan-sweep .lz-sweep-edge {
|
|
455
|
+
position: absolute;
|
|
456
|
+
inset: 0;
|
|
457
|
+
border-radius: 50%;
|
|
458
|
+
background:
|
|
459
|
+
conic-gradient(
|
|
460
|
+
from 0deg,
|
|
461
|
+
var(--lz-color, #f5f5f7) 0deg,
|
|
462
|
+
transparent 5deg);
|
|
463
|
+
-webkit-mask:
|
|
464
|
+
radial-gradient(
|
|
465
|
+
farthest-side,
|
|
466
|
+
transparent calc(100% - 0.07em),
|
|
467
|
+
#000 calc(100% - 0.07em));
|
|
468
|
+
mask:
|
|
469
|
+
radial-gradient(
|
|
470
|
+
farthest-side,
|
|
471
|
+
transparent calc(100% - 0.07em),
|
|
472
|
+
#000 calc(100% - 0.07em));
|
|
473
|
+
animation: lz-spin calc(2.5s * var(--lz-speed, 1)) linear infinite;
|
|
474
|
+
}
|
|
338
475
|
.lz-orbit-dots {
|
|
339
476
|
position: relative;
|
|
340
477
|
width: var(--lz-size, 44px);
|
|
@@ -665,3 +802,414 @@
|
|
|
665
802
|
transparent);
|
|
666
803
|
animation: lz-skeleton-sheen calc(1.4s * var(--lz-speed, 1)) linear infinite;
|
|
667
804
|
}
|
|
805
|
+
.lz-ios-27-orb {
|
|
806
|
+
position: relative;
|
|
807
|
+
width: var(--lz-size, 44px);
|
|
808
|
+
height: var(--lz-size, 44px);
|
|
809
|
+
}
|
|
810
|
+
.lz-ios-27-orb .lz-slot {
|
|
811
|
+
position: absolute;
|
|
812
|
+
left: 50%;
|
|
813
|
+
top: 50%;
|
|
814
|
+
width: 0;
|
|
815
|
+
height: 0;
|
|
816
|
+
}
|
|
817
|
+
.lz-ios-27-orb .lz-dot {
|
|
818
|
+
position: absolute;
|
|
819
|
+
border-radius: 50%;
|
|
820
|
+
background: currentColor;
|
|
821
|
+
box-shadow: 0 0 0.12em 0.05em currentColor;
|
|
822
|
+
animation: lz-ios-glow calc(3.2s * var(--lz-speed, 1)) ease-in-out infinite;
|
|
823
|
+
}
|
|
824
|
+
.lz-ai-orb {
|
|
825
|
+
position: relative;
|
|
826
|
+
width: var(--lz-size, 44px);
|
|
827
|
+
height: var(--lz-size, 44px);
|
|
828
|
+
}
|
|
829
|
+
.lz-ai-orb .lz-orb {
|
|
830
|
+
position: absolute;
|
|
831
|
+
inset: 0.08em;
|
|
832
|
+
border-radius: 50%;
|
|
833
|
+
background:
|
|
834
|
+
radial-gradient(
|
|
835
|
+
circle at 34% 32%,
|
|
836
|
+
color-mix(in srgb, var(--lz-accent, #0a84ff) 18%, white) 0%,
|
|
837
|
+
var(--lz-accent, #0a84ff) 40%,
|
|
838
|
+
color-mix(in srgb, var(--lz-accent, #0a84ff) 45%, transparent) 74%,
|
|
839
|
+
transparent 100%);
|
|
840
|
+
box-shadow: 0 0 0.5em color-mix(in srgb, var(--lz-accent, #0a84ff) 35%, transparent);
|
|
841
|
+
animation: lz-orb-breathe calc(2.4s * var(--lz-speed, 1)) ease-in-out infinite;
|
|
842
|
+
}
|
|
843
|
+
.lz-ai-orb .lz-orbit {
|
|
844
|
+
position: absolute;
|
|
845
|
+
inset: 0;
|
|
846
|
+
animation: lz-spin calc(4.5s * var(--lz-speed, 1)) linear infinite;
|
|
847
|
+
}
|
|
848
|
+
.lz-ai-orb .lz-light {
|
|
849
|
+
position: absolute;
|
|
850
|
+
left: 50%;
|
|
851
|
+
top: calc(50% - 0.46em);
|
|
852
|
+
width: 0.13em;
|
|
853
|
+
height: 0.13em;
|
|
854
|
+
margin-left: -0.065em;
|
|
855
|
+
border-radius: 50%;
|
|
856
|
+
background: var(--lz-color, #f5f5f7);
|
|
857
|
+
box-shadow: 0 0 0.22em 0.05em color-mix(in srgb, var(--lz-color, #f5f5f7) 55%, transparent);
|
|
858
|
+
animation: lz-pulse-breath calc(1.1s * var(--lz-speed, 1)) ease-in-out infinite;
|
|
859
|
+
}
|
|
860
|
+
.lz-ai-orb .lz-sparkle {
|
|
861
|
+
position: absolute;
|
|
862
|
+
width: 0.28em;
|
|
863
|
+
height: 0.28em;
|
|
864
|
+
animation: lz-ai-sparkle calc(3s * var(--lz-speed, 1)) ease-in-out infinite;
|
|
865
|
+
}
|
|
866
|
+
.lz-ai-orb .lz-sparkle::before,
|
|
867
|
+
.lz-ai-orb .lz-sparkle::after {
|
|
868
|
+
content: "";
|
|
869
|
+
position: absolute;
|
|
870
|
+
inset: 0;
|
|
871
|
+
background: var(--lz-color, #f5f5f7);
|
|
872
|
+
}
|
|
873
|
+
.lz-ai-orb .lz-sparkle::before {
|
|
874
|
+
clip-path: polygon(50% 0, 58% 50%, 50% 100%, 42% 50%);
|
|
875
|
+
}
|
|
876
|
+
.lz-ai-orb .lz-sparkle::after {
|
|
877
|
+
clip-path: polygon(50% 0, 58% 50%, 50% 100%, 42% 50%);
|
|
878
|
+
transform: rotate(90deg);
|
|
879
|
+
}
|
|
880
|
+
.lz-ai-orb .lz-sparkle.a {
|
|
881
|
+
right: 0.01em;
|
|
882
|
+
top: -0.01em;
|
|
883
|
+
}
|
|
884
|
+
.lz-ai-orb .lz-sparkle.b {
|
|
885
|
+
left: -0.01em;
|
|
886
|
+
bottom: 0.02em;
|
|
887
|
+
animation-delay: -1.5s;
|
|
888
|
+
}
|
|
889
|
+
.lz-ai-thinking {
|
|
890
|
+
position: relative;
|
|
891
|
+
width: 2.1em;
|
|
892
|
+
height: 0.66em;
|
|
893
|
+
font-size: var(--lz-size, 40px);
|
|
894
|
+
}
|
|
895
|
+
.lz-ai-thinking .lz-field {
|
|
896
|
+
position: absolute;
|
|
897
|
+
inset: 0;
|
|
898
|
+
display: flex;
|
|
899
|
+
align-items: center;
|
|
900
|
+
justify-content: center;
|
|
901
|
+
gap: 0.32em;
|
|
902
|
+
border-radius: 999px;
|
|
903
|
+
background: var(--lz-surface, rgba(255, 255, 255, 0.07));
|
|
904
|
+
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--lz-color, #f5f5f7) 12%, transparent);
|
|
905
|
+
}
|
|
906
|
+
.lz-ai-thinking .lz-dot {
|
|
907
|
+
width: 0.16em;
|
|
908
|
+
height: 0.16em;
|
|
909
|
+
border-radius: 50%;
|
|
910
|
+
background: var(--lz-color, #f5f5f7);
|
|
911
|
+
animation: lz-typing-pulse calc(1s * var(--lz-speed, 1)) cubic-bezier(0.28, 0.1, 0.25, 1.15) infinite;
|
|
912
|
+
}
|
|
913
|
+
.lz-ai-thinking .lz-field .lz-dot:nth-child(2) {
|
|
914
|
+
animation-delay: -0.2s;
|
|
915
|
+
}
|
|
916
|
+
.lz-ai-thinking .lz-field .lz-dot:nth-child(3) {
|
|
917
|
+
animation-delay: -0.4s;
|
|
918
|
+
}
|
|
919
|
+
.lz-ai-thinking .lz-aura {
|
|
920
|
+
position: absolute;
|
|
921
|
+
inset: -0.16em;
|
|
922
|
+
border-radius: 999px;
|
|
923
|
+
border: 2px solid transparent;
|
|
924
|
+
background:
|
|
925
|
+
conic-gradient(
|
|
926
|
+
from 0deg,
|
|
927
|
+
transparent 0deg,
|
|
928
|
+
var(--lz-accent, #0a84ff) 8deg,
|
|
929
|
+
color-mix(in srgb, var(--lz-accent, #0a84ff) 30%, transparent) 34deg,
|
|
930
|
+
transparent 92deg) border-box;
|
|
931
|
+
-webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
|
|
932
|
+
-webkit-mask-composite: xor;
|
|
933
|
+
-webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
|
|
934
|
+
mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
|
|
935
|
+
-webkit-mask-composite: xor;
|
|
936
|
+
mask-composite: exclude;
|
|
937
|
+
animation: lz-spin calc(1.9s * var(--lz-speed, 1)) linear infinite;
|
|
938
|
+
}
|
|
939
|
+
.lz-ai-neural {
|
|
940
|
+
display: grid;
|
|
941
|
+
grid-template-columns: repeat(5, 1em);
|
|
942
|
+
gap: var(--lz-grid-gap, 10px);
|
|
943
|
+
font-size: var(--lz-size, 6px);
|
|
944
|
+
}
|
|
945
|
+
.lz-ai-neural .lz-dot {
|
|
946
|
+
width: 1em;
|
|
947
|
+
height: 1em;
|
|
948
|
+
border-radius: 50%;
|
|
949
|
+
animation: lz-grid-dot-wave calc(1.5s * var(--lz-speed, 1)) cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
|
|
950
|
+
}
|
|
951
|
+
.lz-waveform {
|
|
952
|
+
display: flex;
|
|
953
|
+
align-items: center;
|
|
954
|
+
gap: var(--lz-gap, 4px);
|
|
955
|
+
}
|
|
956
|
+
.lz-waveform .lz-bar {
|
|
957
|
+
width: var(--lz-bar-width, 4px);
|
|
958
|
+
height: var(--lz-size, 32px);
|
|
959
|
+
border-radius: 2px;
|
|
960
|
+
transform-origin: center;
|
|
961
|
+
background: var(--lz-color, #f5f5f7);
|
|
962
|
+
animation: lz-waveform calc(1.6s * var(--lz-speed, 1)) ease-in-out infinite;
|
|
963
|
+
}
|
|
964
|
+
.lz-waveform .lz-bar.accent {
|
|
965
|
+
background: var(--lz-accent, #0a84ff);
|
|
966
|
+
}
|
|
967
|
+
.lz-vinyl {
|
|
968
|
+
position: relative;
|
|
969
|
+
width: 2.2em;
|
|
970
|
+
height: 2.2em;
|
|
971
|
+
font-size: var(--lz-size, 48px);
|
|
972
|
+
}
|
|
973
|
+
.lz-vinyl .lz-disc {
|
|
974
|
+
position: absolute;
|
|
975
|
+
inset: 0;
|
|
976
|
+
border-radius: 50%;
|
|
977
|
+
overflow: hidden;
|
|
978
|
+
background:
|
|
979
|
+
repeating-radial-gradient(
|
|
980
|
+
circle at 50% 50%,
|
|
981
|
+
rgba(255, 255, 255, 0.055) 0 1px,
|
|
982
|
+
transparent 1px 4px),
|
|
983
|
+
radial-gradient(
|
|
984
|
+
circle at 50% 50%,
|
|
985
|
+
rgba(255, 255, 255, 0.05) 0 17%,
|
|
986
|
+
rgba(0, 0, 0, 0.22) 17% 18%,
|
|
987
|
+
transparent 18% 20%,
|
|
988
|
+
rgba(255, 255, 255, 0.045) 20% 21%,
|
|
989
|
+
transparent 21% 100%),
|
|
990
|
+
radial-gradient(circle at 50% 50%, #141216 0 100%);
|
|
991
|
+
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
|
|
992
|
+
animation: lz-spin calc(3.2s * var(--lz-speed, 1)) linear infinite;
|
|
993
|
+
}
|
|
994
|
+
.lz-vinyl .lz-disc::before {
|
|
995
|
+
content: "";
|
|
996
|
+
position: absolute;
|
|
997
|
+
inset: 0;
|
|
998
|
+
border-radius: 50%;
|
|
999
|
+
background:
|
|
1000
|
+
linear-gradient(
|
|
1001
|
+
112deg,
|
|
1002
|
+
transparent 26%,
|
|
1003
|
+
rgba(255, 255, 255, 0.17) 40%,
|
|
1004
|
+
rgba(255, 255, 255, 0.04) 49%,
|
|
1005
|
+
transparent 62%);
|
|
1006
|
+
}
|
|
1007
|
+
.lz-vinyl .lz-label {
|
|
1008
|
+
position: absolute;
|
|
1009
|
+
left: 50%;
|
|
1010
|
+
top: 50%;
|
|
1011
|
+
width: 0.5em;
|
|
1012
|
+
height: 0.5em;
|
|
1013
|
+
margin: -0.25em 0 0 -0.25em;
|
|
1014
|
+
border-radius: 50%;
|
|
1015
|
+
background:
|
|
1016
|
+
radial-gradient(
|
|
1017
|
+
circle at 36% 30%,
|
|
1018
|
+
rgba(255, 255, 255, 0.35) 0 5%,
|
|
1019
|
+
transparent 6%),
|
|
1020
|
+
radial-gradient(
|
|
1021
|
+
circle at 63% 68%,
|
|
1022
|
+
rgba(0, 0, 0, 0.4) 0 7%,
|
|
1023
|
+
transparent 8%),
|
|
1024
|
+
var(--lz-accent, #0a84ff);
|
|
1025
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.4);
|
|
1026
|
+
}
|
|
1027
|
+
.lz-vinyl .lz-spindle {
|
|
1028
|
+
position: absolute;
|
|
1029
|
+
left: 50%;
|
|
1030
|
+
top: 50%;
|
|
1031
|
+
width: 0.09em;
|
|
1032
|
+
height: 0.09em;
|
|
1033
|
+
margin: -0.045em 0 0 -0.045em;
|
|
1034
|
+
border-radius: 50%;
|
|
1035
|
+
background: rgba(0, 0, 0, 0.9);
|
|
1036
|
+
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
|
|
1037
|
+
}
|
|
1038
|
+
.lz-vinyl .lz-arm {
|
|
1039
|
+
position: absolute;
|
|
1040
|
+
top: 0.05em;
|
|
1041
|
+
right: 0.06em;
|
|
1042
|
+
width: 0.8em;
|
|
1043
|
+
height: 0.8em;
|
|
1044
|
+
transform-origin: top right;
|
|
1045
|
+
animation: lz-needle-bob calc(1.8s * var(--lz-speed, 1)) ease-in-out infinite;
|
|
1046
|
+
}
|
|
1047
|
+
.lz-vinyl .lz-post {
|
|
1048
|
+
position: absolute;
|
|
1049
|
+
right: -0.01em;
|
|
1050
|
+
top: -0.01em;
|
|
1051
|
+
width: 0.13em;
|
|
1052
|
+
height: 0.13em;
|
|
1053
|
+
border-radius: 50%;
|
|
1054
|
+
background:
|
|
1055
|
+
radial-gradient(
|
|
1056
|
+
circle at 35% 30%,
|
|
1057
|
+
var(--lz-color, #f5f5f7) 0 42%,
|
|
1058
|
+
color-mix(in srgb, var(--lz-color, #f5f5f7) 45%, transparent) 100%);
|
|
1059
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.3);
|
|
1060
|
+
}
|
|
1061
|
+
.lz-vinyl .lz-shaft {
|
|
1062
|
+
position: absolute;
|
|
1063
|
+
right: 0.045em;
|
|
1064
|
+
top: 0.02em;
|
|
1065
|
+
width: 0.06em;
|
|
1066
|
+
height: 0.48em;
|
|
1067
|
+
border-radius: 3px;
|
|
1068
|
+
background: linear-gradient(var(--lz-color, #f5f5f7), color-mix(in srgb, var(--lz-color, #f5f5f7) 35%, transparent));
|
|
1069
|
+
box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.25);
|
|
1070
|
+
transform-origin: top center;
|
|
1071
|
+
transform: rotate(24deg);
|
|
1072
|
+
}
|
|
1073
|
+
.lz-vinyl .lz-shaft::before {
|
|
1074
|
+
content: "";
|
|
1075
|
+
position: absolute;
|
|
1076
|
+
top: -0.035em;
|
|
1077
|
+
left: -0.04em;
|
|
1078
|
+
width: 0.14em;
|
|
1079
|
+
height: 0.14em;
|
|
1080
|
+
border-radius: 50%;
|
|
1081
|
+
background: var(--lz-color, #f5f5f7);
|
|
1082
|
+
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.25);
|
|
1083
|
+
}
|
|
1084
|
+
.lz-vinyl .lz-shaft::after {
|
|
1085
|
+
content: "";
|
|
1086
|
+
position: absolute;
|
|
1087
|
+
bottom: -0.05em;
|
|
1088
|
+
left: 0.005em;
|
|
1089
|
+
width: 0.05em;
|
|
1090
|
+
height: 0.1em;
|
|
1091
|
+
border-radius: 0 0 3px 3px;
|
|
1092
|
+
background: color-mix(in srgb, var(--lz-accent, #0a84ff) 75%, white);
|
|
1093
|
+
}
|
|
1094
|
+
.lz-sonar {
|
|
1095
|
+
position: relative;
|
|
1096
|
+
width: var(--lz-size, 44px);
|
|
1097
|
+
height: var(--lz-size, 44px);
|
|
1098
|
+
}
|
|
1099
|
+
.lz-sonar .lz-core {
|
|
1100
|
+
position: absolute;
|
|
1101
|
+
left: 50%;
|
|
1102
|
+
top: 50%;
|
|
1103
|
+
width: 0.18em;
|
|
1104
|
+
height: 0.18em;
|
|
1105
|
+
margin: -0.09em 0 0 -0.09em;
|
|
1106
|
+
border-radius: 50%;
|
|
1107
|
+
background: var(--lz-color, #f5f5f7);
|
|
1108
|
+
box-shadow: 0 0 calc(0.2em) color-mix(in srgb, var(--lz-color, #f5f5f7) 50%, transparent);
|
|
1109
|
+
}
|
|
1110
|
+
.lz-sonar .lz-ring {
|
|
1111
|
+
position: absolute;
|
|
1112
|
+
inset: 0.14em;
|
|
1113
|
+
border-radius: 50%;
|
|
1114
|
+
border: 1px solid var(--lz-accent, #0a84ff);
|
|
1115
|
+
animation: lz-sonar-ring calc(3.6s * var(--lz-speed, 1)) cubic-bezier(0.2, 0.6, 0.35, 1) infinite;
|
|
1116
|
+
}
|
|
1117
|
+
.lz-sonar .lz-ring:nth-child(2) {
|
|
1118
|
+
animation-delay: -1.2s;
|
|
1119
|
+
}
|
|
1120
|
+
.lz-sonar .lz-ring:nth-child(3) {
|
|
1121
|
+
animation-delay: -2.4s;
|
|
1122
|
+
}
|
|
1123
|
+
.lz-sonar .lz-ring:nth-child(4) {
|
|
1124
|
+
animation-delay: -0.9s;
|
|
1125
|
+
}
|
|
1126
|
+
.lz-music-note {
|
|
1127
|
+
display: flex;
|
|
1128
|
+
align-items: center;
|
|
1129
|
+
gap: 0.5em;
|
|
1130
|
+
font-size: var(--lz-size, 32px);
|
|
1131
|
+
line-height: 1;
|
|
1132
|
+
}
|
|
1133
|
+
.lz-music-note .lz-note {
|
|
1134
|
+
position: relative;
|
|
1135
|
+
display: inline-block;
|
|
1136
|
+
width: 0.42em;
|
|
1137
|
+
height: 0.88em;
|
|
1138
|
+
animation: lz-note-bob calc(1.4s * var(--lz-speed, 1)) ease-in-out infinite;
|
|
1139
|
+
}
|
|
1140
|
+
.lz-music-note .lz-head {
|
|
1141
|
+
position: absolute;
|
|
1142
|
+
left: 0;
|
|
1143
|
+
bottom: 0.06em;
|
|
1144
|
+
width: 0.3em;
|
|
1145
|
+
height: 0.24em;
|
|
1146
|
+
border-radius: 55% 45% 50% 50%;
|
|
1147
|
+
background: var(--lz-color, #f5f5f7);
|
|
1148
|
+
box-shadow: inset -0.045em -0.02em 0 color-mix(in srgb, var(--lz-color, #f5f5f7) 55%, #000);
|
|
1149
|
+
transform: rotate(-18deg);
|
|
1150
|
+
}
|
|
1151
|
+
.lz-music-note .lz-stem {
|
|
1152
|
+
position: absolute;
|
|
1153
|
+
left: 0.175em;
|
|
1154
|
+
bottom: 0.13em;
|
|
1155
|
+
width: 0.045em;
|
|
1156
|
+
height: 0.6em;
|
|
1157
|
+
border-radius: 2px;
|
|
1158
|
+
background: var(--lz-color, #f5f5f7);
|
|
1159
|
+
}
|
|
1160
|
+
.lz-music-note .lz-flag {
|
|
1161
|
+
position: absolute;
|
|
1162
|
+
left: 0.22em;
|
|
1163
|
+
bottom: 0.61em;
|
|
1164
|
+
width: 0.24em;
|
|
1165
|
+
height: 0.2em;
|
|
1166
|
+
border: 0.045em solid var(--lz-color, #f5f5f7);
|
|
1167
|
+
border-left: none;
|
|
1168
|
+
border-top: none;
|
|
1169
|
+
border-radius: 0 0 0.14em 0.02em / 0 0 0.26em 0.02em;
|
|
1170
|
+
}
|
|
1171
|
+
.lz-music-note .lz-note.second .lz-head {
|
|
1172
|
+
background: color-mix(in srgb, var(--lz-color, #f5f5f7) 45%, var(--lz-accent, #0a84ff));
|
|
1173
|
+
}
|
|
1174
|
+
.lz-activity-rings {
|
|
1175
|
+
width: var(--lz-size, 44px);
|
|
1176
|
+
height: var(--lz-size, 44px);
|
|
1177
|
+
}
|
|
1178
|
+
.lz-activity-rings svg {
|
|
1179
|
+
width: 100%;
|
|
1180
|
+
height: 100%;
|
|
1181
|
+
display: block;
|
|
1182
|
+
}
|
|
1183
|
+
.lz-activity-rings .lz-g {
|
|
1184
|
+
animation: lz-spin calc(2.8s * var(--lz-speed, 1)) linear infinite;
|
|
1185
|
+
transform-origin: center;
|
|
1186
|
+
}
|
|
1187
|
+
.lz-activity-rings .lz-g.mid {
|
|
1188
|
+
animation-duration: calc(3.6s * var(--lz-speed, 1));
|
|
1189
|
+
animation-direction: reverse;
|
|
1190
|
+
}
|
|
1191
|
+
.lz-activity-rings .lz-g.inner {
|
|
1192
|
+
animation-duration: calc(2.1s * var(--lz-speed, 1));
|
|
1193
|
+
}
|
|
1194
|
+
.lz-activity-rings .lz-track {
|
|
1195
|
+
fill: none;
|
|
1196
|
+
stroke: var(--lz-track, rgba(255, 255, 255, 0.08));
|
|
1197
|
+
stroke-width: 5;
|
|
1198
|
+
}
|
|
1199
|
+
.lz-activity-rings .lz-ring {
|
|
1200
|
+
fill: none;
|
|
1201
|
+
stroke-linecap: round;
|
|
1202
|
+
stroke-width: 5;
|
|
1203
|
+
}
|
|
1204
|
+
.lz-activity-rings .lz-outer {
|
|
1205
|
+
stroke: var(--lz-accent, #fa114f);
|
|
1206
|
+
stroke-dasharray: 209 58;
|
|
1207
|
+
}
|
|
1208
|
+
.lz-activity-rings .lz-mid {
|
|
1209
|
+
stroke: var(--lz-color, #30d158);
|
|
1210
|
+
stroke-dasharray: 169 48;
|
|
1211
|
+
}
|
|
1212
|
+
.lz-activity-rings .lz-inner {
|
|
1213
|
+
stroke: var(--lz-color-weak, #32d7ff);
|
|
1214
|
+
stroke-dasharray: 128 39;
|
|
1215
|
+
}
|
package/docs/AI.md
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
## Package identity
|
|
6
6
|
|
|
7
7
|
- Package name: `loading-state-zoo`
|
|
8
|
-
- Version: `0.
|
|
9
|
-
-
|
|
8
|
+
- Version: `0.4.0`
|
|
9
|
+
- 30 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
11
|
|
|
12
12
|
## Entry points (exact import strings)
|
|
@@ -38,17 +38,27 @@
|
|
|
38
38
|
- Dots: dot diameter (default 8 → Helix/Grid 6).
|
|
39
39
|
- Spinners/shapes: the square bounding box (default 44 → Breathing 36).
|
|
40
40
|
- Bars/skeletons: use `width` + `height` instead (Indeterminate 160×6, Skeleton 120×28), Equalizer uses `size` = bar height (22).
|
|
41
|
-
7. **Progress ring
|
|
41
|
+
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
42
|
|
|
43
|
-
## Component registry (
|
|
43
|
+
## Component registry (30)
|
|
44
44
|
|
|
45
|
-
Dots: `lz-bouncing-dots`, `lz-typing-dots`, `lz-wave-dots`, `lz-helix-dots`, `lz-dot-grid-wave`
|
|
46
|
-
Spinners: `lz-arc-spinner`, `lz-material-double-arc`, `lz-scan-sweep`, `lz-orbit-dots`, `lz-orbit-ring-dots`
|
|
45
|
+
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`, `lz-sonar`
|
|
47
|
+
Orbs: `lz-ios-27-orb`
|
|
48
|
+
AI: `lz-ai-orb`, `lz-ai-thinking`, `lz-ai-neural`
|
|
47
49
|
Shapes: `lz-eyes`, `lz-morphing-square`, `lz-breathing-pulse`
|
|
48
|
-
Bars & rings: `lz-equalizer`, `lz-progress-ring`, `lz-indeterminate-progress-bar`
|
|
49
|
-
|
|
50
|
+
Bars & rings: `lz-equalizer`, `lz-progress-ring`, `lz-progress-bar`, `lz-indeterminate-progress-bar`, `lz-activity-rings`
|
|
51
|
+
Music: `lz-waveform`, `lz-vinyl`, `lz-music-note`
|
|
52
|
+
Skeletons: `lz-skeleton-shimmer`, `lz-skeleton-card`, `lz-skeleton-list`
|
|
50
53
|
|
|
51
|
-
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)`.
|
|
54
|
+
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:
|
|
55
|
+
|
|
56
|
+
- **`lz-ios-27-orb`** renders exactly 27 dots (14 outer + 8 mid + 4 inner + 1 center) wired into a ring/spiral layout. The bright glow travels dot-to-dot (per-dot `lz-ios-glow`, negative delays `-(idx/27)*3.2s`). Dot color mixes between `--lz-color` (cool pole) and `--lz-accent` (warm pole) by angle. Geometry uses inline absolute positioning (`left`/`top` in em, negative margins) so the animated `transform`/`opacity` effects are never overridden. No `count` attribute — 27 is fixed.
|
|
57
|
+
- **AI patterns:** `lz-ai-orb` (breathing gradient sphere + orbiting light dot + sparkles), `lz-ai-thinking` (pill field with typing dots + rotating conic-gradient ring via `mask-composite: exclude`), `lz-ai-neural` (dot grid like `lz-dot-grid-wave` but with a diagonal wave, delays `-(r+c)*0.12s`; details: alternating checking/resting dots via `color-mix` of `--lz-accent` and `--lz-color`).
|
|
58
|
+
- **Orbs** now only `lz-ios-27-orb`: `accent` + `color` pick the two hue poles; `--lz-ios-fade`/`--lz-ios-min`/`--lz-ios-peak` tune the glow.
|
|
59
|
+
- **`lz-sonar`** moved to the Spinners family (radar use).
|
|
60
|
+
- **Music** patterns: `lz-waveform` (`count`, `bar-width`, `gap`), `lz-vinyl` (label/spindle/sheen rotate with the disc; `accent` = label/stylus, `color` = tonearm), `lz-music-note` (drawn note = head + stem + flag, `count` notes).
|
|
61
|
+
- **`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.
|
|
52
62
|
|
|
53
63
|
## Minimal valid usage
|
|
54
64
|
|