loading-state-zoo 0.4.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/README.md +5 -77
- package/dist/index.cjs +45 -152
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -15
- package/dist/index.d.ts +3 -15
- package/dist/index.js +45 -152
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +40 -147
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +1 -54
- package/dist/react.d.ts +1 -54
- package/dist/react.js +40 -147
- package/dist/react.js.map +1 -1
- package/dist/theme.css +5 -179
- package/docs/AI.md +8 -11
- package/docs/components.json +1500 -385
- package/package.json +2 -2
package/dist/theme.css
CHANGED
|
@@ -161,34 +161,6 @@
|
|
|
161
161
|
opacity: var(--lz-orb-fade, 0.88);
|
|
162
162
|
}
|
|
163
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
164
|
@keyframes lz-waveform {
|
|
193
165
|
0%, 100% {
|
|
194
166
|
transform: scaleY(var(--lz-wf-min, 0.22));
|
|
@@ -389,7 +361,7 @@
|
|
|
389
361
|
inset: 0.075em;
|
|
390
362
|
border-radius: 50%;
|
|
391
363
|
border: 1px dashed rgba(255, 255, 255, 0.1);
|
|
392
|
-
animation: lz-spin-reverse calc(
|
|
364
|
+
animation: lz-spin-reverse calc(12s * var(--lz-speed, 1)) linear infinite;
|
|
393
365
|
}
|
|
394
366
|
.lz-scan-sweep .lz-ring-inner {
|
|
395
367
|
position: absolute;
|
|
@@ -449,7 +421,7 @@
|
|
|
449
421
|
transparent 95deg);
|
|
450
422
|
-webkit-mask: radial-gradient(closest-side, #000 100%);
|
|
451
423
|
mask: radial-gradient(closest-side, #000 100%);
|
|
452
|
-
animation: lz-spin calc(
|
|
424
|
+
animation: lz-spin calc(4s * var(--lz-speed, 1)) linear infinite;
|
|
453
425
|
}
|
|
454
426
|
.lz-scan-sweep .lz-sweep-edge {
|
|
455
427
|
position: absolute;
|
|
@@ -470,7 +442,7 @@
|
|
|
470
442
|
farthest-side,
|
|
471
443
|
transparent calc(100% - 0.07em),
|
|
472
444
|
#000 calc(100% - 0.07em));
|
|
473
|
-
animation: lz-spin calc(
|
|
445
|
+
animation: lz-spin calc(4s * var(--lz-speed, 1)) linear infinite;
|
|
474
446
|
}
|
|
475
447
|
.lz-orbit-dots {
|
|
476
448
|
position: relative;
|
|
@@ -802,152 +774,6 @@
|
|
|
802
774
|
transparent);
|
|
803
775
|
animation: lz-skeleton-sheen calc(1.4s * var(--lz-speed, 1)) linear infinite;
|
|
804
776
|
}
|
|
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
777
|
.lz-waveform {
|
|
952
778
|
display: flex;
|
|
953
779
|
align-items: center;
|
|
@@ -989,7 +815,7 @@
|
|
|
989
815
|
transparent 21% 100%),
|
|
990
816
|
radial-gradient(circle at 50% 50%, #141216 0 100%);
|
|
991
817
|
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
|
|
992
|
-
animation: lz-spin calc(
|
|
818
|
+
animation: lz-spin calc(7s * var(--lz-speed, 1)) linear infinite;
|
|
993
819
|
}
|
|
994
820
|
.lz-vinyl .lz-disc::before {
|
|
995
821
|
content: "";
|
|
@@ -1042,7 +868,7 @@
|
|
|
1042
868
|
width: 0.8em;
|
|
1043
869
|
height: 0.8em;
|
|
1044
870
|
transform-origin: top right;
|
|
1045
|
-
animation: lz-needle-bob calc(
|
|
871
|
+
animation: lz-needle-bob calc(2.4s * var(--lz-speed, 1)) ease-in-out infinite;
|
|
1046
872
|
}
|
|
1047
873
|
.lz-vinyl .lz-post {
|
|
1048
874
|
position: absolute;
|
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.4.
|
|
9
|
-
-
|
|
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,20 @@
|
|
|
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 (
|
|
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
47
|
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`
|
|
49
48
|
Shapes: `lz-eyes`, `lz-morphing-square`, `lz-breathing-pulse`
|
|
50
49
|
Bars & rings: `lz-equalizer`, `lz-progress-ring`, `lz-progress-bar`, `lz-indeterminate-progress-bar`, `lz-activity-rings`
|
|
51
50
|
Music: `lz-waveform`, `lz-vinyl`, `lz-music-note`
|
|
52
51
|
Skeletons: `lz-skeleton-shimmer`, `lz-skeleton-card`, `lz-skeleton-list`
|
|
53
52
|
|
|
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.
|
|
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:
|
|
55
54
|
|
|
56
|
-
- **`lz-
|
|
57
|
-
- **
|
|
58
|
-
-
|
|
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).
|
|
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.
|
|
61
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.
|
|
62
59
|
|
|
63
60
|
## Minimal valid usage
|