modern-loaders 1.0.0 → 1.2.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 CHANGED
@@ -1,69 +1,301 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import './index.css';const h = [
3
- "aurora",
4
- "orbit",
5
- "rings",
6
- "wave",
7
- "bars",
8
- "blob",
9
- "cube",
10
- "spiral",
11
- "bar",
12
- "grid"
13
- ], l = {
14
- aurora: 0,
15
- orbit: 3,
16
- rings: 3,
17
- wave: 5,
18
- bars: 5,
19
- blob: 0,
20
- cube: 2,
21
- spiral: 0,
22
- bar: 0,
23
- grid: 9
24
- }, o = (a, s) => typeof a == "number" ? `${a}${s}` : a;
25
- function n({
26
- variant: a = "aurora",
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import './index.css';const n = [
3
+ // ---- Spinners ----
4
+ { id: "aurora", label: "Aurora", group: "Spinners", cells: 0 },
5
+ { id: "spiral", label: "Spiral", group: "Spinners", cells: 0 },
6
+ { id: "ring-dash", label: "Ring Dash", group: "Spinners", cells: 0 },
7
+ { id: "ring-gap", label: "Ring Gap", group: "Spinners", cells: 0 },
8
+ { id: "comet", label: "Comet", group: "Spinners", cells: 1 },
9
+ { id: "arc-trio", label: "Arc Trio", group: "Spinners", cells: 3 },
10
+ { id: "halo", label: "Halo", group: "Spinners", cells: 1 },
11
+ { id: "sweep", label: "Sweep", group: "Spinners", cells: 0 },
12
+ { id: "dot-ring", label: "Dot Ring", group: "Spinners", cells: 8 },
13
+ { id: "petal", label: "Petal", group: "Spinners", cells: 8 },
14
+ // ---- Dots ----
15
+ { id: "wave", label: "Wave", group: "Dots", cells: 5 },
16
+ { id: "orbit", label: "Orbit", group: "Dots", cells: 3 },
17
+ { id: "bounce", label: "Bounce", group: "Dots", cells: 3 },
18
+ { id: "fade-dots", label: "Fade Dots", group: "Dots", cells: 3 },
19
+ { id: "pulse-dots", label: "Pulse Dots", group: "Dots", cells: 3 },
20
+ { id: "typing", label: "Typing", group: "Dots", cells: 3 },
21
+ { id: "chase", label: "Chase", group: "Dots", cells: 6 },
22
+ { id: "snake", label: "Snake", group: "Dots", cells: 5 },
23
+ { id: "swap", label: "Swap", group: "Dots", cells: 2 },
24
+ { id: "juggle", label: "Juggle", group: "Dots", cells: 3 },
25
+ // ---- Bars ----
26
+ { id: "bars", label: "Bars", group: "Bars", cells: 5 },
27
+ { id: "ladder", label: "Ladder", group: "Bars", cells: 4 },
28
+ { id: "stretch", label: "Stretch", group: "Bars", cells: 5 },
29
+ { id: "flip-bars", label: "Flip Bars", group: "Bars", cells: 5 },
30
+ { id: "slide-bars", label: "Slide Bars", group: "Bars", cells: 3 },
31
+ { id: "drop-bars", label: "Drop Bars", group: "Bars", cells: 5 },
32
+ { id: "meter", label: "Meter", group: "Bars", cells: 5 },
33
+ { id: "wave-bars", label: "Wave Bars", group: "Bars", cells: 7 },
34
+ { id: "split-bars", label: "Split Bars", group: "Bars", cells: 4 },
35
+ { id: "scan-bars", label: "Scan Bars", group: "Bars", cells: 6 },
36
+ // ---- Shapes ----
37
+ { id: "blob", label: "Blob", group: "Shapes", cells: 0 },
38
+ { id: "cube", label: "Cube", group: "Shapes", cells: 2 },
39
+ { id: "triangle", label: "Triangle", group: "Shapes", cells: 0 },
40
+ { id: "hexagon", label: "Hexagon", group: "Shapes", cells: 0 },
41
+ { id: "diamond", label: "Diamond", group: "Shapes", cells: 0 },
42
+ { id: "star", label: "Star", group: "Shapes", cells: 0 },
43
+ { id: "squircle", label: "Squircle", group: "Shapes", cells: 0 },
44
+ { id: "folding", label: "Folding", group: "Shapes", cells: 4 },
45
+ { id: "pentagon", label: "Pentagon", group: "Shapes", cells: 0 },
46
+ { id: "shape-shift", label: "Shape Shift", group: "Shapes", cells: 0 },
47
+ // ---- Progress ----
48
+ { id: "bar", label: "Bar", group: "Progress", cells: 0 },
49
+ { id: "bar-stripes", label: "Bar Stripes", group: "Progress", cells: 0 },
50
+ { id: "bar-dual", label: "Bar Dual", group: "Progress", cells: 0 },
51
+ { id: "bar-segments", label: "Bar Segments", group: "Progress", cells: 5 },
52
+ { id: "bar-pill", label: "Bar Pill", group: "Progress", cells: 0 },
53
+ { id: "bar-glow", label: "Bar Glow", group: "Progress", cells: 0 },
54
+ { id: "bar-wave", label: "Bar Wave", group: "Progress", cells: 0 },
55
+ { id: "bar-dots", label: "Bar Dots", group: "Progress", cells: 5 },
56
+ { id: "bar-snake", label: "Bar Snake", group: "Progress", cells: 0 },
57
+ { id: "bar-fill", label: "Bar Fill", group: "Progress", cells: 0 },
58
+ // ---- Grids ----
59
+ { id: "grid", label: "Grid", group: "Grids", cells: 9 },
60
+ { id: "checker", label: "Checker", group: "Grids", cells: 9 },
61
+ { id: "cascade", label: "Cascade", group: "Grids", cells: 9 },
62
+ { id: "tiles", label: "Tiles", group: "Grids", cells: 9 },
63
+ { id: "pixel", label: "Pixel", group: "Grids", cells: 16 },
64
+ { id: "matrix", label: "Matrix", group: "Grids", cells: 9 },
65
+ { id: "mosaic", label: "Mosaic", group: "Grids", cells: 9 },
66
+ { id: "ripple-grid", label: "Ripple Grid", group: "Grids", cells: 9 },
67
+ { id: "domino", label: "Domino", group: "Grids", cells: 9 },
68
+ { id: "sparkle", label: "Sparkle", group: "Grids", cells: 9 },
69
+ // ---- Pulses ----
70
+ { id: "rings", label: "Rings", group: "Pulses", cells: 3 },
71
+ { id: "radar", label: "Radar", group: "Pulses", cells: 2 },
72
+ { id: "sonar", label: "Sonar", group: "Pulses", cells: 3 },
73
+ { id: "echo", label: "Echo", group: "Pulses", cells: 3 },
74
+ { id: "shockwave", label: "Shockwave", group: "Pulses", cells: 2 },
75
+ { id: "bloom", label: "Bloom", group: "Pulses", cells: 3 },
76
+ { id: "droplet", label: "Droplet", group: "Pulses", cells: 2 },
77
+ { id: "concentric", label: "Concentric", group: "Pulses", cells: 3 },
78
+ { id: "aura", label: "Aura", group: "Pulses", cells: 1 },
79
+ { id: "beacon", label: "Beacon", group: "Pulses", cells: 2 },
80
+ // ---- Organic ----
81
+ { id: "heart", label: "Heart", group: "Organic", cells: 0 },
82
+ { id: "moon", label: "Moon", group: "Organic", cells: 0 },
83
+ { id: "sun", label: "Sun", group: "Organic", cells: 8 },
84
+ { id: "flame", label: "Flame", group: "Organic", cells: 0 },
85
+ { id: "bubble", label: "Bubble", group: "Organic", cells: 3 },
86
+ { id: "jelly", label: "Jelly", group: "Organic", cells: 0 },
87
+ { id: "spring", label: "Spring", group: "Organic", cells: 0 },
88
+ { id: "float", label: "Float", group: "Organic", cells: 1 },
89
+ { id: "leaf", label: "Leaf", group: "Organic", cells: 0 },
90
+ { id: "windmill", label: "Windmill", group: "Organic", cells: 4 },
91
+ // ---- Skeletons ----
92
+ { id: "shimmer", label: "Shimmer", group: "Skeletons", cells: 0 },
93
+ { id: "sk-text", label: "Text", group: "Skeletons", cells: 3 },
94
+ { id: "sk-card", label: "Card", group: "Skeletons", cells: 3 },
95
+ { id: "sk-avatar", label: "Avatar", group: "Skeletons", cells: 2 },
96
+ { id: "sk-image", label: "Image", group: "Skeletons", cells: 0 },
97
+ { id: "sk-list", label: "List", group: "Skeletons", cells: 3 },
98
+ { id: "sk-table", label: "Table", group: "Skeletons", cells: 4 },
99
+ { id: "sk-chip", label: "Chips", group: "Skeletons", cells: 3 },
100
+ { id: "sk-paragraph", label: "Paragraph", group: "Skeletons", cells: 4 },
101
+ { id: "sk-media", label: "Media", group: "Skeletons", cells: 2 },
102
+ // ---- Dimensional ----
103
+ { id: "helix", label: "Helix", group: "Dimensional", cells: 8 },
104
+ { id: "pendulum", label: "Pendulum", group: "Dimensional", cells: 5 },
105
+ { id: "atom", label: "Atom", group: "Dimensional", cells: 3 },
106
+ { id: "gyro", label: "Gyro", group: "Dimensional", cells: 3 },
107
+ { id: "coil", label: "Coil", group: "Dimensional", cells: 5 },
108
+ { id: "vortex", label: "Vortex", group: "Dimensional", cells: 4 },
109
+ { id: "prism", label: "Prism", group: "Dimensional", cells: 3 },
110
+ { id: "torus", label: "Torus", group: "Dimensional", cells: 0 },
111
+ { id: "cylinder", label: "Cylinder", group: "Dimensional", cells: 4 },
112
+ { id: "galaxy", label: "Galaxy", group: "Dimensional", cells: 6 },
113
+ // ---- Neon ----
114
+ { id: "neon-ring", label: "Neon Ring", group: "Neon", cells: 0 },
115
+ { id: "neon-pulse", label: "Neon Pulse", group: "Neon", cells: 0 },
116
+ { id: "neon-tube", label: "Neon Tube", group: "Neon", cells: 0 },
117
+ { id: "neon-sign", label: "Neon Sign", group: "Neon", cells: 4 },
118
+ { id: "laser", label: "Laser", group: "Neon", cells: 0 },
119
+ { id: "light-trail", label: "Light Trail", group: "Neon", cells: 0 },
120
+ { id: "neon-arc", label: "Neon Arc", group: "Neon", cells: 0 },
121
+ { id: "plasma", label: "Plasma", group: "Neon", cells: 0 },
122
+ { id: "strobe", label: "Strobe", group: "Neon", cells: 3 },
123
+ { id: "glow-dots", label: "Glow Dots", group: "Neon", cells: 5 },
124
+ { id: "retro-grid", label: "Retro Grid", group: "Neon", cells: 0 },
125
+ { id: "firefly", label: "Firefly", group: "Neon", cells: 5 },
126
+ // ---- Liquid ----
127
+ { id: "liquid-fill", label: "Liquid Fill", group: "Liquid", cells: 2 },
128
+ { id: "drip", label: "Drip", group: "Liquid", cells: 1 },
129
+ { id: "metaball", label: "Metaball", group: "Liquid", cells: 2 },
130
+ { id: "wave-tank", label: "Wave Tank", group: "Liquid", cells: 2 },
131
+ { id: "ripple-pool", label: "Ripple Pool", group: "Liquid", cells: 3 },
132
+ { id: "mercury", label: "Mercury", group: "Liquid", cells: 0 },
133
+ { id: "lava", label: "Lava", group: "Liquid", cells: 3 },
134
+ { id: "ink", label: "Ink", group: "Liquid", cells: 3 },
135
+ { id: "splash", label: "Splash", group: "Liquid", cells: 3 },
136
+ { id: "whirl", label: "Whirl", group: "Liquid", cells: 0 },
137
+ { id: "pour", label: "Pour", group: "Liquid", cells: 2 },
138
+ // ---- Glitch ----
139
+ { id: "glitch-block", label: "Glitch Block", group: "Glitch", cells: 0 },
140
+ { id: "glitch-text", label: "Glitch Text", group: "Glitch", cells: 3 },
141
+ { id: "rgb-split", label: "RGB Split", group: "Glitch", cells: 3 },
142
+ { id: "scanlines", label: "Scanlines", group: "Glitch", cells: 0 },
143
+ { id: "static-noise", label: "Static", group: "Glitch", cells: 0 },
144
+ { id: "datamosh", label: "Datamosh", group: "Glitch", cells: 5 },
145
+ { id: "corrupt-bar", label: "Corrupt Bar", group: "Glitch", cells: 0 },
146
+ { id: "signal-loss", label: "Signal Loss", group: "Glitch", cells: 4 },
147
+ { id: "vhs", label: "VHS", group: "Glitch", cells: 0 },
148
+ { id: "pixel-drift", label: "Pixel Drift", group: "Glitch", cells: 9 },
149
+ { id: "terminal", label: "Terminal", group: "Glitch", cells: 2 },
150
+ // ---- Particles ----
151
+ { id: "confetti", label: "Confetti", group: "Particles", cells: 8 },
152
+ { id: "firework", label: "Firework", group: "Particles", cells: 8 },
153
+ { id: "snow", label: "Snow", group: "Particles", cells: 6 },
154
+ { id: "embers", label: "Embers", group: "Particles", cells: 5 },
155
+ { id: "starfield", label: "Starfield", group: "Particles", cells: 8 },
156
+ { id: "dust", label: "Dust", group: "Particles", cells: 7 },
157
+ { id: "burst", label: "Burst", group: "Particles", cells: 6 },
158
+ { id: "swarm", label: "Swarm", group: "Particles", cells: 7 },
159
+ { id: "rain", label: "Rain", group: "Particles", cells: 6 },
160
+ { id: "magnet", label: "Magnet", group: "Particles", cells: 7 },
161
+ { id: "nebula", label: "Nebula", group: "Particles", cells: 6 },
162
+ // ---- Futuristic ----
163
+ { id: "hud-ring", label: "HUD Ring", group: "Futuristic", cells: 2 },
164
+ { id: "reactor", label: "Reactor", group: "Futuristic", cells: 3 },
165
+ { id: "hologram", label: "Hologram", group: "Futuristic", cells: 3 },
166
+ { id: "warp", label: "Warp", group: "Futuristic", cells: 4 },
167
+ { id: "targeting", label: "Targeting", group: "Futuristic", cells: 4 },
168
+ { id: "circuit", label: "Circuit", group: "Futuristic", cells: 3 },
169
+ { id: "barcode", label: "Barcode", group: "Futuristic", cells: 0 },
170
+ { id: "quantum", label: "Quantum", group: "Futuristic", cells: 6 },
171
+ { id: "portal", label: "Portal", group: "Futuristic", cells: 0 },
172
+ { id: "shield", label: "Shield", group: "Futuristic", cells: 2 },
173
+ { id: "satellite", label: "Satellite", group: "Futuristic", cells: 3 },
174
+ { id: "teleport", label: "Teleport", group: "Futuristic", cells: 6 },
175
+ // ---- Elastic ----
176
+ { id: "rubber-band", label: "Rubber Band", group: "Elastic", cells: 1 },
177
+ { id: "bungee", label: "Bungee", group: "Elastic", cells: 1 },
178
+ { id: "trampoline", label: "Trampoline", group: "Elastic", cells: 1 },
179
+ { id: "wobble", label: "Wobble", group: "Elastic", cells: 0 },
180
+ { id: "pogo", label: "Pogo", group: "Elastic", cells: 1 },
181
+ { id: "elastic-bar", label: "Elastic Bar", group: "Elastic", cells: 0 },
182
+ { id: "catapult", label: "Catapult", group: "Elastic", cells: 1 },
183
+ { id: "yo-yo", label: "Yo-yo", group: "Elastic", cells: 1 },
184
+ { id: "elastic-ring", label: "Elastic Ring", group: "Elastic", cells: 0 },
185
+ { id: "snap-dots", label: "Snap Dots", group: "Elastic", cells: 2 },
186
+ { id: "chain", label: "Chain", group: "Elastic", cells: 5 },
187
+ // ---- Minimal ----
188
+ { id: "hairline", label: "Hairline", group: "Minimal", cells: 0 },
189
+ { id: "tick", label: "Tick", group: "Minimal", cells: 0 },
190
+ { id: "quarter", label: "Quarter", group: "Minimal", cells: 0 },
191
+ { id: "dot-fade", label: "Dot Fade", group: "Minimal", cells: 0 },
192
+ { id: "underline", label: "Underline", group: "Minimal", cells: 0 },
193
+ { id: "pill-swap", label: "Pill Swap", group: "Minimal", cells: 0 },
194
+ { id: "bracket", label: "Bracket", group: "Minimal", cells: 2 },
195
+ { id: "slash", label: "Slash", group: "Minimal", cells: 0 },
196
+ { id: "micro-dots", label: "Micro Dots", group: "Minimal", cells: 3 },
197
+ { id: "ring-thin", label: "Ring Thin", group: "Minimal", cells: 0 },
198
+ { id: "crosshair", label: "Crosshair", group: "Minimal", cells: 0 },
199
+ // ---- Gradient ----
200
+ { id: "mesh", label: "Mesh", group: "Gradient", cells: 0 },
201
+ { id: "hue-ring", label: "Hue Ring", group: "Gradient", cells: 0 },
202
+ { id: "gradient-orb", label: "Gradient Orb", group: "Gradient", cells: 0 },
203
+ { id: "chroma", label: "Chroma", group: "Gradient", cells: 3 },
204
+ { id: "ombre", label: "Ombré", group: "Gradient", cells: 6 },
205
+ { id: "iridescent", label: "Iridescent", group: "Gradient", cells: 0 },
206
+ { id: "sunrise", label: "Sunrise", group: "Gradient", cells: 0 },
207
+ { id: "refract", label: "Refract", group: "Gradient", cells: 3 },
208
+ { id: "gradient-border", label: "Gradient Border", group: "Gradient", cells: 0 },
209
+ { id: "color-cycle", label: "Color Cycle", group: "Gradient", cells: 0 },
210
+ { id: "northern", label: "Northern", group: "Gradient", cells: 4 },
211
+ // ---- Kinetic ----
212
+ { id: "gears", label: "Gears", group: "Kinetic", cells: 2 },
213
+ { id: "metronome", label: "Metronome", group: "Kinetic", cells: 1 },
214
+ { id: "hourglass", label: "Hourglass", group: "Kinetic", cells: 3 },
215
+ { id: "piston", label: "Piston", group: "Kinetic", cells: 1 },
216
+ { id: "carousel", label: "Carousel", group: "Kinetic", cells: 5 },
217
+ { id: "clockwork", label: "Clockwork", group: "Kinetic", cells: 3 },
218
+ { id: "abacus", label: "Abacus", group: "Kinetic", cells: 3 },
219
+ { id: "conveyor", label: "Conveyor", group: "Kinetic", cells: 3 },
220
+ { id: "pie", label: "Pie", group: "Kinetic", cells: 0 },
221
+ { id: "seesaw", label: "Seesaw", group: "Kinetic", cells: 1 },
222
+ { id: "roller", label: "Roller", group: "Kinetic", cells: 2 },
223
+ // ---- Premium ----
224
+ { id: "logo-morph", label: "Logo Morph", group: "Premium", cells: 3 },
225
+ { id: "card-stack", label: "Card Stack", group: "Premium", cells: 3 },
226
+ { id: "progress-ring", label: "Progress Ring", group: "Premium", cells: 1 },
227
+ { id: "pill-progress", label: "Pill Progress", group: "Premium", cells: 0 },
228
+ { id: "glass-ring", label: "Glass Ring", group: "Premium", cells: 0 },
229
+ { id: "orbit-avatar", label: "Orbit Avatar", group: "Premium", cells: 5 },
230
+ { id: "checklist", label: "Checklist", group: "Premium", cells: 3 },
231
+ { id: "upload-cloud", label: "Upload Cloud", group: "Premium", cells: 3 },
232
+ { id: "sync", label: "Sync", group: "Premium", cells: 2 },
233
+ { id: "steps", label: "Steps", group: "Premium", cells: 4 },
234
+ { id: "spark-line", label: "Spark Line", group: "Premium", cells: 2 }
235
+ ], S = [
236
+ { name: "Spinners", description: "Rings and arcs — the classic shape, modernised." },
237
+ { name: "Dots", description: "Small, quiet, and good inline with text." },
238
+ { name: "Bars", description: "Equalizer-style motion with a strong rhythm." },
239
+ { name: "Shapes", description: "Geometry that morphs, folds, and turns." },
240
+ { name: "Progress", description: "Wide, indeterminate tracks for page and upload states." },
241
+ { name: "Grids", description: "Cell fields that pulse, flip, and cascade." },
242
+ { name: "Pulses", description: "Expanding rings for live, waiting, or listening states." },
243
+ { name: "Organic", description: "Playful, physical motion with personality." },
244
+ { name: "Skeletons", description: "Content-shaped placeholders — use these over spinners for page loads." },
245
+ { name: "Dimensional", description: "Depth, 3D rotation, and orbital motion." },
246
+ { name: "Neon", description: "Light that hums, blooms, and flickers alight." },
247
+ { name: "Liquid", description: "Fluid behaviour — filling, pouring, rippling, merging." },
248
+ { name: "Glitch", description: "Digital damage: tearing, static, dropout, corruption." },
249
+ { name: "Particles", description: "Fields of small things falling, bursting, drifting, swarming." },
250
+ { name: "Futuristic", description: "Reticles, reactors, and hardware that does not exist yet." },
251
+ { name: "Elastic", description: "Spring physics with genuine overshoot and recoil." },
252
+ { name: "Minimal", description: "Quiet motion for dense UI, toolbars, and inline text." },
253
+ { name: "Gradient", description: "Colour itself is the animation." },
254
+ { name: "Kinetic", description: "Mechanisms — gears, cranks, belts, beams, and escapements." },
255
+ { name: "Premium", description: "Product-grade motion for onboarding, uploads, and sync." }
256
+ ], P = n.map((l) => l.id), b = Object.fromEntries(n.map((l) => [l.id, l.cells])), c = (l, s) => typeof l == "number" ? `${l}${s}` : l;
257
+ function i({
258
+ variant: l = "aurora",
27
259
  size: s = 48,
28
- speed: b = 1,
29
- colors: t,
30
- label: e = "Loading",
31
- className: c,
32
- style: d,
33
- ...v
260
+ speed: t = 1,
261
+ colors: r,
262
+ label: o = "Loading",
263
+ className: d,
264
+ style: u,
265
+ ...p
34
266
  }) {
35
- const i = {
36
- "--size": o(s, "px"),
37
- "--speed": o(b, "s")
267
+ const a = {
268
+ "--size": c(s, "px"),
269
+ "--speed": c(t, "s")
38
270
  };
39
- t != null && t.length && (i["--c1"] = t[0], i["--c2"] = t[1 % t.length], i["--c3"] = t[2 % t.length]);
40
- const u = l[a];
41
- return /* @__PURE__ */ r(
271
+ return r != null && r.length && (a["--c1"] = r[0], a["--c2"] = r[1 % r.length], a["--c3"] = r[2 % r.length]), /* @__PURE__ */ e(
42
272
  "div",
43
273
  {
44
- ...v,
45
- className: ["ldr", `ldr--${a}`, c].filter(Boolean).join(" "),
46
- style: { ...i, ...d },
47
- role: e ? "status" : void 0,
48
- "aria-label": e ?? void 0,
49
- "aria-hidden": e ? void 0 : !0,
50
- children: Array.from({ length: u }, (p, g) => /* @__PURE__ */ r("span", {}, g))
274
+ ...p,
275
+ className: ["ldr", `ldr--${l}`, d].filter(Boolean).join(" "),
276
+ style: { ...a, ...u },
277
+ role: o ? "status" : void 0,
278
+ "aria-label": o ?? void 0,
279
+ "aria-hidden": o ? void 0 : !0,
280
+ children: Array.from({ length: b[l] ?? 0 }, (m, g) => /* @__PURE__ */ e("span", {}, g))
51
281
  }
52
282
  );
53
283
  }
54
- const m = (a) => /* @__PURE__ */ r(n, { variant: "aurora", ...a }), A = (a) => /* @__PURE__ */ r(n, { variant: "orbit", ...a }), L = (a) => /* @__PURE__ */ r(n, { variant: "rings", ...a }), B = (a) => /* @__PURE__ */ r(n, { variant: "wave", ...a }), w = (a) => /* @__PURE__ */ r(n, { variant: "bars", ...a }), x = (a) => /* @__PURE__ */ r(n, { variant: "blob", ...a }), y = (a) => /* @__PURE__ */ r(n, { variant: "cube", ...a }), R = (a) => /* @__PURE__ */ r(n, { variant: "spiral", ...a }), S = (a) => /* @__PURE__ */ r(n, { variant: "bar", ...a }), $ = (a) => /* @__PURE__ */ r(n, { variant: "grid", ...a });
284
+ const k = (l) => /* @__PURE__ */ e(i, { variant: "aurora", ...l }), G = (l) => /* @__PURE__ */ e(i, { variant: "orbit", ...l }), B = (l) => /* @__PURE__ */ e(i, { variant: "rings", ...l }), f = (l) => /* @__PURE__ */ e(i, { variant: "wave", ...l }), D = (l) => /* @__PURE__ */ e(i, { variant: "bars", ...l }), w = (l) => /* @__PURE__ */ e(i, { variant: "blob", ...l }), v = (l) => /* @__PURE__ */ e(i, { variant: "cube", ...l }), y = (l) => /* @__PURE__ */ e(i, { variant: "spiral", ...l }), C = (l) => /* @__PURE__ */ e(i, { variant: "bar", ...l }), L = (l) => /* @__PURE__ */ e(i, { variant: "grid", ...l });
55
285
  export {
56
- m as Aurora,
57
- S as Bar,
58
- w as Bars,
59
- x as Blob,
60
- y as Cube,
61
- $ as Grid,
62
- h as LOADER_VARIANTS,
63
- n as Loader,
64
- A as Orbit,
65
- L as Rings,
66
- R as Spiral,
67
- B as Wave
286
+ k as Aurora,
287
+ C as Bar,
288
+ D as Bars,
289
+ w as Blob,
290
+ v as Cube,
291
+ S as GROUPS,
292
+ L as Grid,
293
+ P as LOADER_VARIANTS,
294
+ i as Loader,
295
+ G as Orbit,
296
+ B as Rings,
297
+ y as Spiral,
298
+ n as VARIANTS,
299
+ f as Wave
68
300
  };
69
301
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/Loader.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes } from \"react\";\nimport \"./loaders.css\";\n\nexport const LOADER_VARIANTS = [\n \"aurora\",\n \"orbit\",\n \"rings\",\n \"wave\",\n \"bars\",\n \"blob\",\n \"cube\",\n \"spiral\",\n \"bar\",\n \"grid\",\n] as const;\n\nexport type LoaderVariant = (typeof LOADER_VARIANTS)[number];\n\n/** How many <span> children each variant's CSS expects. */\nconst CELLS: Record<LoaderVariant, number> = {\n aurora: 0,\n orbit: 3,\n rings: 3,\n wave: 5,\n bars: 5,\n blob: 0,\n cube: 2,\n spiral: 0,\n bar: 0,\n grid: 9,\n};\n\nexport interface LoaderProps extends Omit<HTMLAttributes<HTMLDivElement>, \"color\"> {\n /** Which loader to render. @default \"aurora\" */\n variant?: LoaderVariant;\n /** Box size. A number is treated as pixels. @default 48 */\n size?: number | string;\n /** Base animation duration. A number is treated as seconds. @default 1 */\n speed?: number | string;\n /**\n * One to three colors. Fewer than three are cycled, so a single color still\n * produces a coherent (monochrome) loader.\n */\n colors?: string[];\n /** Announced to screen readers. Pass `null` to render the loader as decorative. */\n label?: string | null;\n}\n\nconst unit = (v: number | string | undefined, suffix: string) =>\n typeof v === \"number\" ? `${v}${suffix}` : v;\n\nexport function Loader({\n variant = \"aurora\",\n size = 48,\n speed = 1,\n colors,\n label = \"Loading\",\n className,\n style,\n ...rest\n}: LoaderProps) {\n const vars: CSSProperties & Record<string, string | undefined> = {\n \"--size\": unit(size, \"px\"),\n \"--speed\": unit(speed, \"s\"),\n };\n\n if (colors?.length) {\n // Cycle whatever was given across the three slots the CSS reads.\n vars[\"--c1\"] = colors[0];\n vars[\"--c2\"] = colors[1 % colors.length];\n vars[\"--c3\"] = colors[2 % colors.length];\n }\n\n const cells = CELLS[variant];\n\n return (\n <div\n {...rest}\n className={[\"ldr\", `ldr--${variant}`, className].filter(Boolean).join(\" \")}\n style={{ ...vars, ...style }}\n role={label ? \"status\" : undefined}\n aria-label={label ?? undefined}\n aria-hidden={label ? undefined : true}\n >\n {Array.from({ length: cells }, (_, i) => (\n <span key={i} />\n ))}\n </div>\n );\n}\n\n/** Convenience wrappers, so `<Aurora />` works as well as `<Loader variant=\"aurora\" />`. */\ntype VariantProps = Omit<LoaderProps, \"variant\">;\n\nexport const Aurora = (p: VariantProps) => <Loader variant=\"aurora\" {...p} />;\nexport const Orbit = (p: VariantProps) => <Loader variant=\"orbit\" {...p} />;\nexport const Rings = (p: VariantProps) => <Loader variant=\"rings\" {...p} />;\nexport const Wave = (p: VariantProps) => <Loader variant=\"wave\" {...p} />;\nexport const Bars = (p: VariantProps) => <Loader variant=\"bars\" {...p} />;\nexport const Blob = (p: VariantProps) => <Loader variant=\"blob\" {...p} />;\nexport const Cube = (p: VariantProps) => <Loader variant=\"cube\" {...p} />;\nexport const Spiral = (p: VariantProps) => <Loader variant=\"spiral\" {...p} />;\nexport const Bar = (p: VariantProps) => <Loader variant=\"bar\" {...p} />;\nexport const Grid = (p: VariantProps) => <Loader variant=\"grid\" {...p} />;\n"],"names":["LOADER_VARIANTS","CELLS","unit","v","suffix","Loader","variant","size","speed","colors","label","className","style","rest","vars","cells","jsx","_","i","Aurora","p","Orbit","Rings","Wave","Bars","Blob","Cube","Spiral","Bar","Grid"],"mappings":";AAGO,MAAMA,IAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKMC,IAAuC;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AACR,GAkBMC,IAAO,CAACC,GAAgCC,MAC5C,OAAOD,KAAM,WAAW,GAAGA,CAAC,GAAGC,CAAM,KAAKD;AAErC,SAASE,EAAO;AAAA,EACrB,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,QAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GAAgB;AACd,QAAMC,IAA2D;AAAA,IAC/D,UAAUZ,EAAKK,GAAM,IAAI;AAAA,IACzB,WAAWL,EAAKM,GAAO,GAAG;AAAA,EAAA;AAG5B,EAAIC,KAAA,QAAAA,EAAQ,WAEVK,EAAK,MAAM,IAAIL,EAAO,CAAC,GACvBK,EAAK,MAAM,IAAIL,EAAO,IAAIA,EAAO,MAAM,GACvCK,EAAK,MAAM,IAAIL,EAAO,IAAIA,EAAO,MAAM;AAGzC,QAAMM,IAAQd,EAAMK,CAAO;AAE3B,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGH;AAAA,MACJ,WAAW,CAAC,OAAO,QAAQP,CAAO,IAAIK,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MACzE,OAAO,EAAE,GAAGG,GAAM,GAAGF,EAAA;AAAA,MACrB,MAAMF,IAAQ,WAAW;AAAA,MACzB,cAAYA,KAAS;AAAA,MACrB,eAAaA,IAAQ,SAAY;AAAA,MAEhC,UAAA,MAAM,KAAK,EAAE,QAAQK,EAAA,GAAS,CAACE,GAAGC,MACjC,gBAAAF,EAAC,QAAA,CAAA,GAAUE,CAAG,CACf;AAAA,IAAA;AAAA,EAAA;AAGP;AAKO,MAAMC,IAAS,CAACC,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,UAAU,GAAGe,EAAA,CAAG,GAC9DC,IAAS,CAACD,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,SAAU,GAAGe,EAAA,CAAG,GAC9DE,IAAS,CAACF,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,SAAU,GAAGe,EAAA,CAAG,GAC9DG,IAAS,CAACH,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,QAAU,GAAGe,EAAA,CAAG,GAC9DI,IAAS,CAACJ,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,QAAU,GAAGe,EAAA,CAAG,GAC9DK,IAAS,CAACL,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,QAAU,GAAGe,EAAA,CAAG,GAC9DM,IAAS,CAACN,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,QAAU,GAAGe,EAAA,CAAG,GAC9DO,IAAS,CAACP,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,UAAU,GAAGe,EAAA,CAAG,GAC9DQ,IAAS,CAACR,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,OAAU,GAAGe,EAAA,CAAG,GAC9DS,IAAS,CAACT,MAAoB,gBAAAJ,EAACX,KAAO,SAAQ,QAAU,GAAGe,EAAA,CAAG;"}
1
+ {"version":3,"file":"index.js","sources":["../src/variants.ts","../src/Loader.tsx"],"sourcesContent":["/**\n * The single source of truth for every loader.\n * `id` must match a `.ldr--<id>` class in ./styles, and `cells` is how many\n * <span> children that variant's CSS expects.\n */\nexport const VARIANTS = [\n // ---- Spinners ----\n { id: \"aurora\", label: \"Aurora\", group: \"Spinners\", cells: 0 },\n { id: \"spiral\", label: \"Spiral\", group: \"Spinners\", cells: 0 },\n { id: \"ring-dash\", label: \"Ring Dash\", group: \"Spinners\", cells: 0 },\n { id: \"ring-gap\", label: \"Ring Gap\", group: \"Spinners\", cells: 0 },\n { id: \"comet\", label: \"Comet\", group: \"Spinners\", cells: 1 },\n { id: \"arc-trio\", label: \"Arc Trio\", group: \"Spinners\", cells: 3 },\n { id: \"halo\", label: \"Halo\", group: \"Spinners\", cells: 1 },\n { id: \"sweep\", label: \"Sweep\", group: \"Spinners\", cells: 0 },\n { id: \"dot-ring\", label: \"Dot Ring\", group: \"Spinners\", cells: 8 },\n { id: \"petal\", label: \"Petal\", group: \"Spinners\", cells: 8 },\n // ---- Dots ----\n { id: \"wave\", label: \"Wave\", group: \"Dots\", cells: 5 },\n { id: \"orbit\", label: \"Orbit\", group: \"Dots\", cells: 3 },\n { id: \"bounce\", label: \"Bounce\", group: \"Dots\", cells: 3 },\n { id: \"fade-dots\", label: \"Fade Dots\", group: \"Dots\", cells: 3 },\n { id: \"pulse-dots\", label: \"Pulse Dots\", group: \"Dots\", cells: 3 },\n { id: \"typing\", label: \"Typing\", group: \"Dots\", cells: 3 },\n { id: \"chase\", label: \"Chase\", group: \"Dots\", cells: 6 },\n { id: \"snake\", label: \"Snake\", group: \"Dots\", cells: 5 },\n { id: \"swap\", label: \"Swap\", group: \"Dots\", cells: 2 },\n { id: \"juggle\", label: \"Juggle\", group: \"Dots\", cells: 3 },\n // ---- Bars ----\n { id: \"bars\", label: \"Bars\", group: \"Bars\", cells: 5 },\n { id: \"ladder\", label: \"Ladder\", group: \"Bars\", cells: 4 },\n { id: \"stretch\", label: \"Stretch\", group: \"Bars\", cells: 5 },\n { id: \"flip-bars\", label: \"Flip Bars\", group: \"Bars\", cells: 5 },\n { id: \"slide-bars\", label: \"Slide Bars\", group: \"Bars\", cells: 3 },\n { id: \"drop-bars\", label: \"Drop Bars\", group: \"Bars\", cells: 5 },\n { id: \"meter\", label: \"Meter\", group: \"Bars\", cells: 5 },\n { id: \"wave-bars\", label: \"Wave Bars\", group: \"Bars\", cells: 7 },\n { id: \"split-bars\", label: \"Split Bars\", group: \"Bars\", cells: 4 },\n { id: \"scan-bars\", label: \"Scan Bars\", group: \"Bars\", cells: 6 },\n // ---- Shapes ----\n { id: \"blob\", label: \"Blob\", group: \"Shapes\", cells: 0 },\n { id: \"cube\", label: \"Cube\", group: \"Shapes\", cells: 2 },\n { id: \"triangle\", label: \"Triangle\", group: \"Shapes\", cells: 0 },\n { id: \"hexagon\", label: \"Hexagon\", group: \"Shapes\", cells: 0 },\n { id: \"diamond\", label: \"Diamond\", group: \"Shapes\", cells: 0 },\n { id: \"star\", label: \"Star\", group: \"Shapes\", cells: 0 },\n { id: \"squircle\", label: \"Squircle\", group: \"Shapes\", cells: 0 },\n { id: \"folding\", label: \"Folding\", group: \"Shapes\", cells: 4 },\n { id: \"pentagon\", label: \"Pentagon\", group: \"Shapes\", cells: 0 },\n { id: \"shape-shift\", label: \"Shape Shift\", group: \"Shapes\", cells: 0 },\n // ---- Progress ----\n { id: \"bar\", label: \"Bar\", group: \"Progress\", cells: 0 },\n { id: \"bar-stripes\", label: \"Bar Stripes\", group: \"Progress\", cells: 0 },\n { id: \"bar-dual\", label: \"Bar Dual\", group: \"Progress\", cells: 0 },\n { id: \"bar-segments\", label: \"Bar Segments\", group: \"Progress\", cells: 5 },\n { id: \"bar-pill\", label: \"Bar Pill\", group: \"Progress\", cells: 0 },\n { id: \"bar-glow\", label: \"Bar Glow\", group: \"Progress\", cells: 0 },\n { id: \"bar-wave\", label: \"Bar Wave\", group: \"Progress\", cells: 0 },\n { id: \"bar-dots\", label: \"Bar Dots\", group: \"Progress\", cells: 5 },\n { id: \"bar-snake\", label: \"Bar Snake\", group: \"Progress\", cells: 0 },\n { id: \"bar-fill\", label: \"Bar Fill\", group: \"Progress\", cells: 0 },\n // ---- Grids ----\n { id: \"grid\", label: \"Grid\", group: \"Grids\", cells: 9 },\n { id: \"checker\", label: \"Checker\", group: \"Grids\", cells: 9 },\n { id: \"cascade\", label: \"Cascade\", group: \"Grids\", cells: 9 },\n { id: \"tiles\", label: \"Tiles\", group: \"Grids\", cells: 9 },\n { id: \"pixel\", label: \"Pixel\", group: \"Grids\", cells: 16 },\n { id: \"matrix\", label: \"Matrix\", group: \"Grids\", cells: 9 },\n { id: \"mosaic\", label: \"Mosaic\", group: \"Grids\", cells: 9 },\n { id: \"ripple-grid\", label: \"Ripple Grid\", group: \"Grids\", cells: 9 },\n { id: \"domino\", label: \"Domino\", group: \"Grids\", cells: 9 },\n { id: \"sparkle\", label: \"Sparkle\", group: \"Grids\", cells: 9 },\n // ---- Pulses ----\n { id: \"rings\", label: \"Rings\", group: \"Pulses\", cells: 3 },\n { id: \"radar\", label: \"Radar\", group: \"Pulses\", cells: 2 },\n { id: \"sonar\", label: \"Sonar\", group: \"Pulses\", cells: 3 },\n { id: \"echo\", label: \"Echo\", group: \"Pulses\", cells: 3 },\n { id: \"shockwave\", label: \"Shockwave\", group: \"Pulses\", cells: 2 },\n { id: \"bloom\", label: \"Bloom\", group: \"Pulses\", cells: 3 },\n { id: \"droplet\", label: \"Droplet\", group: \"Pulses\", cells: 2 },\n { id: \"concentric\", label: \"Concentric\", group: \"Pulses\", cells: 3 },\n { id: \"aura\", label: \"Aura\", group: \"Pulses\", cells: 1 },\n { id: \"beacon\", label: \"Beacon\", group: \"Pulses\", cells: 2 },\n // ---- Organic ----\n { id: \"heart\", label: \"Heart\", group: \"Organic\", cells: 0 },\n { id: \"moon\", label: \"Moon\", group: \"Organic\", cells: 0 },\n { id: \"sun\", label: \"Sun\", group: \"Organic\", cells: 8 },\n { id: \"flame\", label: \"Flame\", group: \"Organic\", cells: 0 },\n { id: \"bubble\", label: \"Bubble\", group: \"Organic\", cells: 3 },\n { id: \"jelly\", label: \"Jelly\", group: \"Organic\", cells: 0 },\n { id: \"spring\", label: \"Spring\", group: \"Organic\", cells: 0 },\n { id: \"float\", label: \"Float\", group: \"Organic\", cells: 1 },\n { id: \"leaf\", label: \"Leaf\", group: \"Organic\", cells: 0 },\n { id: \"windmill\", label: \"Windmill\", group: \"Organic\", cells: 4 },\n // ---- Skeletons ----\n { id: \"shimmer\", label: \"Shimmer\", group: \"Skeletons\", cells: 0 },\n { id: \"sk-text\", label: \"Text\", group: \"Skeletons\", cells: 3 },\n { id: \"sk-card\", label: \"Card\", group: \"Skeletons\", cells: 3 },\n { id: \"sk-avatar\", label: \"Avatar\", group: \"Skeletons\", cells: 2 },\n { id: \"sk-image\", label: \"Image\", group: \"Skeletons\", cells: 0 },\n { id: \"sk-list\", label: \"List\", group: \"Skeletons\", cells: 3 },\n { id: \"sk-table\", label: \"Table\", group: \"Skeletons\", cells: 4 },\n { id: \"sk-chip\", label: \"Chips\", group: \"Skeletons\", cells: 3 },\n { id: \"sk-paragraph\", label: \"Paragraph\", group: \"Skeletons\", cells: 4 },\n { id: \"sk-media\", label: \"Media\", group: \"Skeletons\", cells: 2 },\n // ---- Dimensional ----\n { id: \"helix\", label: \"Helix\", group: \"Dimensional\", cells: 8 },\n { id: \"pendulum\", label: \"Pendulum\", group: \"Dimensional\", cells: 5 },\n { id: \"atom\", label: \"Atom\", group: \"Dimensional\", cells: 3 },\n { id: \"gyro\", label: \"Gyro\", group: \"Dimensional\", cells: 3 },\n { id: \"coil\", label: \"Coil\", group: \"Dimensional\", cells: 5 },\n { id: \"vortex\", label: \"Vortex\", group: \"Dimensional\", cells: 4 },\n { id: \"prism\", label: \"Prism\", group: \"Dimensional\", cells: 3 },\n { id: \"torus\", label: \"Torus\", group: \"Dimensional\", cells: 0 },\n { id: \"cylinder\", label: \"Cylinder\", group: \"Dimensional\", cells: 4 },\n { id: \"galaxy\", label: \"Galaxy\", group: \"Dimensional\", cells: 6 },\n // ---- Neon ----\n { id: \"neon-ring\", label: \"Neon Ring\", group: \"Neon\", cells: 0 },\n { id: \"neon-pulse\", label: \"Neon Pulse\", group: \"Neon\", cells: 0 },\n { id: \"neon-tube\", label: \"Neon Tube\", group: \"Neon\", cells: 0 },\n { id: \"neon-sign\", label: \"Neon Sign\", group: \"Neon\", cells: 4 },\n { id: \"laser\", label: \"Laser\", group: \"Neon\", cells: 0 },\n { id: \"light-trail\", label: \"Light Trail\", group: \"Neon\", cells: 0 },\n { id: \"neon-arc\", label: \"Neon Arc\", group: \"Neon\", cells: 0 },\n { id: \"plasma\", label: \"Plasma\", group: \"Neon\", cells: 0 },\n { id: \"strobe\", label: \"Strobe\", group: \"Neon\", cells: 3 },\n { id: \"glow-dots\", label: \"Glow Dots\", group: \"Neon\", cells: 5 },\n { id: \"retro-grid\", label: \"Retro Grid\", group: \"Neon\", cells: 0 },\n { id: \"firefly\", label: \"Firefly\", group: \"Neon\", cells: 5 },\n // ---- Liquid ----\n { id: \"liquid-fill\", label: \"Liquid Fill\", group: \"Liquid\", cells: 2 },\n { id: \"drip\", label: \"Drip\", group: \"Liquid\", cells: 1 },\n { id: \"metaball\", label: \"Metaball\", group: \"Liquid\", cells: 2 },\n { id: \"wave-tank\", label: \"Wave Tank\", group: \"Liquid\", cells: 2 },\n { id: \"ripple-pool\", label: \"Ripple Pool\", group: \"Liquid\", cells: 3 },\n { id: \"mercury\", label: \"Mercury\", group: \"Liquid\", cells: 0 },\n { id: \"lava\", label: \"Lava\", group: \"Liquid\", cells: 3 },\n { id: \"ink\", label: \"Ink\", group: \"Liquid\", cells: 3 },\n { id: \"splash\", label: \"Splash\", group: \"Liquid\", cells: 3 },\n { id: \"whirl\", label: \"Whirl\", group: \"Liquid\", cells: 0 },\n { id: \"pour\", label: \"Pour\", group: \"Liquid\", cells: 2 },\n // ---- Glitch ----\n { id: \"glitch-block\", label: \"Glitch Block\", group: \"Glitch\", cells: 0 },\n { id: \"glitch-text\", label: \"Glitch Text\", group: \"Glitch\", cells: 3 },\n { id: \"rgb-split\", label: \"RGB Split\", group: \"Glitch\", cells: 3 },\n { id: \"scanlines\", label: \"Scanlines\", group: \"Glitch\", cells: 0 },\n { id: \"static-noise\", label: \"Static\", group: \"Glitch\", cells: 0 },\n { id: \"datamosh\", label: \"Datamosh\", group: \"Glitch\", cells: 5 },\n { id: \"corrupt-bar\", label: \"Corrupt Bar\", group: \"Glitch\", cells: 0 },\n { id: \"signal-loss\", label: \"Signal Loss\", group: \"Glitch\", cells: 4 },\n { id: \"vhs\", label: \"VHS\", group: \"Glitch\", cells: 0 },\n { id: \"pixel-drift\", label: \"Pixel Drift\", group: \"Glitch\", cells: 9 },\n { id: \"terminal\", label: \"Terminal\", group: \"Glitch\", cells: 2 },\n // ---- Particles ----\n { id: \"confetti\", label: \"Confetti\", group: \"Particles\", cells: 8 },\n { id: \"firework\", label: \"Firework\", group: \"Particles\", cells: 8 },\n { id: \"snow\", label: \"Snow\", group: \"Particles\", cells: 6 },\n { id: \"embers\", label: \"Embers\", group: \"Particles\", cells: 5 },\n { id: \"starfield\", label: \"Starfield\", group: \"Particles\", cells: 8 },\n { id: \"dust\", label: \"Dust\", group: \"Particles\", cells: 7 },\n { id: \"burst\", label: \"Burst\", group: \"Particles\", cells: 6 },\n { id: \"swarm\", label: \"Swarm\", group: \"Particles\", cells: 7 },\n { id: \"rain\", label: \"Rain\", group: \"Particles\", cells: 6 },\n { id: \"magnet\", label: \"Magnet\", group: \"Particles\", cells: 7 },\n { id: \"nebula\", label: \"Nebula\", group: \"Particles\", cells: 6 },\n // ---- Futuristic ----\n { id: \"hud-ring\", label: \"HUD Ring\", group: \"Futuristic\", cells: 2 },\n { id: \"reactor\", label: \"Reactor\", group: \"Futuristic\", cells: 3 },\n { id: \"hologram\", label: \"Hologram\", group: \"Futuristic\", cells: 3 },\n { id: \"warp\", label: \"Warp\", group: \"Futuristic\", cells: 4 },\n { id: \"targeting\", label: \"Targeting\", group: \"Futuristic\", cells: 4 },\n { id: \"circuit\", label: \"Circuit\", group: \"Futuristic\", cells: 3 },\n { id: \"barcode\", label: \"Barcode\", group: \"Futuristic\", cells: 0 },\n { id: \"quantum\", label: \"Quantum\", group: \"Futuristic\", cells: 6 },\n { id: \"portal\", label: \"Portal\", group: \"Futuristic\", cells: 0 },\n { id: \"shield\", label: \"Shield\", group: \"Futuristic\", cells: 2 },\n { id: \"satellite\", label: \"Satellite\", group: \"Futuristic\", cells: 3 },\n { id: \"teleport\", label: \"Teleport\", group: \"Futuristic\", cells: 6 },\n // ---- Elastic ----\n { id: \"rubber-band\", label: \"Rubber Band\", group: \"Elastic\", cells: 1 },\n { id: \"bungee\", label: \"Bungee\", group: \"Elastic\", cells: 1 },\n { id: \"trampoline\", label: \"Trampoline\", group: \"Elastic\", cells: 1 },\n { id: \"wobble\", label: \"Wobble\", group: \"Elastic\", cells: 0 },\n { id: \"pogo\", label: \"Pogo\", group: \"Elastic\", cells: 1 },\n { id: \"elastic-bar\", label: \"Elastic Bar\", group: \"Elastic\", cells: 0 },\n { id: \"catapult\", label: \"Catapult\", group: \"Elastic\", cells: 1 },\n { id: \"yo-yo\", label: \"Yo-yo\", group: \"Elastic\", cells: 1 },\n { id: \"elastic-ring\", label: \"Elastic Ring\", group: \"Elastic\", cells: 0 },\n { id: \"snap-dots\", label: \"Snap Dots\", group: \"Elastic\", cells: 2 },\n { id: \"chain\", label: \"Chain\", group: \"Elastic\", cells: 5 },\n // ---- Minimal ----\n { id: \"hairline\", label: \"Hairline\", group: \"Minimal\", cells: 0 },\n { id: \"tick\", label: \"Tick\", group: \"Minimal\", cells: 0 },\n { id: \"quarter\", label: \"Quarter\", group: \"Minimal\", cells: 0 },\n { id: \"dot-fade\", label: \"Dot Fade\", group: \"Minimal\", cells: 0 },\n { id: \"underline\", label: \"Underline\", group: \"Minimal\", cells: 0 },\n { id: \"pill-swap\", label: \"Pill Swap\", group: \"Minimal\", cells: 0 },\n { id: \"bracket\", label: \"Bracket\", group: \"Minimal\", cells: 2 },\n { id: \"slash\", label: \"Slash\", group: \"Minimal\", cells: 0 },\n { id: \"micro-dots\", label: \"Micro Dots\", group: \"Minimal\", cells: 3 },\n { id: \"ring-thin\", label: \"Ring Thin\", group: \"Minimal\", cells: 0 },\n { id: \"crosshair\", label: \"Crosshair\", group: \"Minimal\", cells: 0 },\n // ---- Gradient ----\n { id: \"mesh\", label: \"Mesh\", group: \"Gradient\", cells: 0 },\n { id: \"hue-ring\", label: \"Hue Ring\", group: \"Gradient\", cells: 0 },\n { id: \"gradient-orb\", label: \"Gradient Orb\", group: \"Gradient\", cells: 0 },\n { id: \"chroma\", label: \"Chroma\", group: \"Gradient\", cells: 3 },\n { id: \"ombre\", label: \"Ombré\", group: \"Gradient\", cells: 6 },\n { id: \"iridescent\", label: \"Iridescent\", group: \"Gradient\", cells: 0 },\n { id: \"sunrise\", label: \"Sunrise\", group: \"Gradient\", cells: 0 },\n { id: \"refract\", label: \"Refract\", group: \"Gradient\", cells: 3 },\n { id: \"gradient-border\", label: \"Gradient Border\", group: \"Gradient\", cells: 0 },\n { id: \"color-cycle\", label: \"Color Cycle\", group: \"Gradient\", cells: 0 },\n { id: \"northern\", label: \"Northern\", group: \"Gradient\", cells: 4 },\n // ---- Kinetic ----\n { id: \"gears\", label: \"Gears\", group: \"Kinetic\", cells: 2 },\n { id: \"metronome\", label: \"Metronome\", group: \"Kinetic\", cells: 1 },\n { id: \"hourglass\", label: \"Hourglass\", group: \"Kinetic\", cells: 3 },\n { id: \"piston\", label: \"Piston\", group: \"Kinetic\", cells: 1 },\n { id: \"carousel\", label: \"Carousel\", group: \"Kinetic\", cells: 5 },\n { id: \"clockwork\", label: \"Clockwork\", group: \"Kinetic\", cells: 3 },\n { id: \"abacus\", label: \"Abacus\", group: \"Kinetic\", cells: 3 },\n { id: \"conveyor\", label: \"Conveyor\", group: \"Kinetic\", cells: 3 },\n { id: \"pie\", label: \"Pie\", group: \"Kinetic\", cells: 0 },\n { id: \"seesaw\", label: \"Seesaw\", group: \"Kinetic\", cells: 1 },\n { id: \"roller\", label: \"Roller\", group: \"Kinetic\", cells: 2 },\n // ---- Premium ----\n { id: \"logo-morph\", label: \"Logo Morph\", group: \"Premium\", cells: 3 },\n { id: \"card-stack\", label: \"Card Stack\", group: \"Premium\", cells: 3 },\n { id: \"progress-ring\", label: \"Progress Ring\", group: \"Premium\", cells: 1 },\n { id: \"pill-progress\", label: \"Pill Progress\", group: \"Premium\", cells: 0 },\n { id: \"glass-ring\", label: \"Glass Ring\", group: \"Premium\", cells: 0 },\n { id: \"orbit-avatar\", label: \"Orbit Avatar\", group: \"Premium\", cells: 5 },\n { id: \"checklist\", label: \"Checklist\", group: \"Premium\", cells: 3 },\n { id: \"upload-cloud\", label: \"Upload Cloud\", group: \"Premium\", cells: 3 },\n { id: \"sync\", label: \"Sync\", group: \"Premium\", cells: 2 },\n { id: \"steps\", label: \"Steps\", group: \"Premium\", cells: 4 },\n { id: \"spark-line\", label: \"Spark Line\", group: \"Premium\", cells: 2 },\n] as const;\n\nexport const GROUPS = [\n { name: \"Spinners\", description: \"Rings and arcs — the classic shape, modernised.\" },\n { name: \"Dots\", description: \"Small, quiet, and good inline with text.\" },\n { name: \"Bars\", description: \"Equalizer-style motion with a strong rhythm.\" },\n { name: \"Shapes\", description: \"Geometry that morphs, folds, and turns.\" },\n { name: \"Progress\", description: \"Wide, indeterminate tracks for page and upload states.\" },\n { name: \"Grids\", description: \"Cell fields that pulse, flip, and cascade.\" },\n { name: \"Pulses\", description: \"Expanding rings for live, waiting, or listening states.\" },\n { name: \"Organic\", description: \"Playful, physical motion with personality.\" },\n { name: \"Skeletons\", description: \"Content-shaped placeholders — use these over spinners for page loads.\" },\n { name: \"Dimensional\", description: \"Depth, 3D rotation, and orbital motion.\" },\n { name: \"Neon\", description: \"Light that hums, blooms, and flickers alight.\" },\n { name: \"Liquid\", description: \"Fluid behaviour — filling, pouring, rippling, merging.\" },\n { name: \"Glitch\", description: \"Digital damage: tearing, static, dropout, corruption.\" },\n { name: \"Particles\", description: \"Fields of small things falling, bursting, drifting, swarming.\" },\n { name: \"Futuristic\", description: \"Reticles, reactors, and hardware that does not exist yet.\" },\n { name: \"Elastic\", description: \"Spring physics with genuine overshoot and recoil.\" },\n { name: \"Minimal\", description: \"Quiet motion for dense UI, toolbars, and inline text.\" },\n { name: \"Gradient\", description: \"Colour itself is the animation.\" },\n { name: \"Kinetic\", description: \"Mechanisms — gears, cranks, belts, beams, and escapements.\" },\n { name: \"Premium\", description: \"Product-grade motion for onboarding, uploads, and sync.\" },\n] as const;\n\nexport type LoaderVariant = (typeof VARIANTS)[number][\"id\"];\nexport type LoaderGroup = (typeof GROUPS)[number][\"name\"];\nexport type VariantMeta = (typeof VARIANTS)[number];\n","import type { CSSProperties, HTMLAttributes } from \"react\";\nimport { VARIANTS, type LoaderVariant } from \"./variants\";\nimport \"./loaders.css\";\n\nexport { VARIANTS, GROUPS } from \"./variants\";\nexport type { LoaderVariant, LoaderGroup, VariantMeta } from \"./variants\";\n\n/** Every variant id, in display order. */\nexport const LOADER_VARIANTS = VARIANTS.map((v) => v.id) as readonly LoaderVariant[];\n\n/** How many <span> children each variant's CSS expects. */\nconst CELLS = Object.fromEntries(VARIANTS.map((v) => [v.id, v.cells])) as Record<\n LoaderVariant,\n number\n>;\n\nexport interface LoaderProps extends Omit<HTMLAttributes<HTMLDivElement>, \"color\"> {\n /** Which loader to render. @default \"aurora\" */\n variant?: LoaderVariant;\n /** Box size. A number is treated as pixels. @default 48 */\n size?: number | string;\n /** Base animation duration. A number is treated as seconds. @default 1 */\n speed?: number | string;\n /**\n * One to three colors. Fewer than three are cycled, so a single color still\n * produces a coherent (monochrome) loader.\n */\n colors?: string[];\n /** Announced to screen readers. Pass `null` to render the loader as decorative. */\n label?: string | null;\n}\n\nconst unit = (v: number | string | undefined, suffix: string) =>\n typeof v === \"number\" ? `${v}${suffix}` : v;\n\nexport function Loader({\n variant = \"aurora\",\n size = 48,\n speed = 1,\n colors,\n label = \"Loading\",\n className,\n style,\n ...rest\n}: LoaderProps) {\n const vars: CSSProperties & Record<string, string | undefined> = {\n \"--size\": unit(size, \"px\"),\n \"--speed\": unit(speed, \"s\"),\n };\n\n if (colors?.length) {\n // Cycle whatever was given across the three slots the CSS reads.\n vars[\"--c1\"] = colors[0];\n vars[\"--c2\"] = colors[1 % colors.length];\n vars[\"--c3\"] = colors[2 % colors.length];\n }\n\n return (\n <div\n {...rest}\n className={[\"ldr\", `ldr--${variant}`, className].filter(Boolean).join(\" \")}\n style={{ ...vars, ...style }}\n role={label ? \"status\" : undefined}\n aria-label={label ?? undefined}\n aria-hidden={label ? undefined : true}\n >\n {Array.from({ length: CELLS[variant] ?? 0 }, (_, i) => (\n <span key={i} />\n ))}\n </div>\n );\n}\n\n/**\n * Named wrappers for the original ten variants, kept for backward compatibility\n * with 1.0.x. The other 90 are reached through `<Loader variant=\"…\" />` — a hundred\n * named exports would bloat the API surface for no real gain.\n */\ntype VariantProps = Omit<LoaderProps, \"variant\">;\n\nexport const Aurora = (p: VariantProps) => <Loader variant=\"aurora\" {...p} />;\nexport const Orbit = (p: VariantProps) => <Loader variant=\"orbit\" {...p} />;\nexport const Rings = (p: VariantProps) => <Loader variant=\"rings\" {...p} />;\nexport const Wave = (p: VariantProps) => <Loader variant=\"wave\" {...p} />;\nexport const Bars = (p: VariantProps) => <Loader variant=\"bars\" {...p} />;\nexport const Blob = (p: VariantProps) => <Loader variant=\"blob\" {...p} />;\nexport const Cube = (p: VariantProps) => <Loader variant=\"cube\" {...p} />;\nexport const Spiral = (p: VariantProps) => <Loader variant=\"spiral\" {...p} />;\nexport const Bar = (p: VariantProps) => <Loader variant=\"bar\" {...p} />;\nexport const Grid = (p: VariantProps) => <Loader variant=\"grid\" {...p} />;\n"],"names":["VARIANTS","GROUPS","LOADER_VARIANTS","v","CELLS","unit","suffix","Loader","variant","size","speed","colors","label","className","style","rest","vars","jsx","_","i","Aurora","p","Orbit","Rings","Wave","Bars","Blob","Cube","Spiral","Bar","Grid"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "modern-loaders",
3
- "version": "1.0.0",
4
- "description": "10 modern, colorful, animated React loaders — pure CSS, zero runtime dependencies",
3
+ "version": "1.2.0",
4
+ "description": "212 modern, colorful, animated React loaders \u2014 pure CSS, zero runtime dependencies",
5
5
  "author": "suman",
6
6
  "license": "ISC",
7
7
  "type": "module",
@@ -21,7 +21,8 @@
21
21
  },
22
22
  "files": [
23
23
  "dist",
24
- "README.md"
24
+ "README.md",
25
+ "LICENSE"
25
26
  ],
26
27
  "keywords": [
27
28
  "react",
@@ -30,7 +31,12 @@
30
31
  "loading",
31
32
  "css",
32
33
  "animation",
33
- "skeleton"
34
+ "skeleton",
35
+ "neon",
36
+ "glitch",
37
+ "particles",
38
+ "gradient",
39
+ "ui"
34
40
  ],
35
41
  "scripts": {
36
42
  "dev": "vite",