loading-dev 0.3.3 → 0.3.5

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.
Files changed (111) hide show
  1. package/README.md +7 -9
  2. package/dist/arc.d.ts +11 -0
  3. package/dist/arc.js +10 -0
  4. package/dist/atom.d.ts +10 -0
  5. package/dist/atom.js +9 -0
  6. package/dist/blocks.d.ts +11 -0
  7. package/dist/blocks.js +10 -0
  8. package/dist/bouncing-dots.d.ts +6 -0
  9. package/dist/bouncing-dots.js +8 -0
  10. package/dist/cap.d.ts +8 -0
  11. package/dist/cap.js +8 -0
  12. package/dist/cascade.d.ts +9 -0
  13. package/dist/cascade.js +9 -0
  14. package/dist/chunk-2LMGBBRJ.js +77 -0
  15. package/dist/chunk-2OX27TAE.js +69 -0
  16. package/dist/chunk-2TYML5J2.js +51 -0
  17. package/dist/chunk-3WMZVDPS.js +61 -0
  18. package/dist/chunk-4O4ADYWE.js +73 -0
  19. package/dist/chunk-5UAEBEER.js +78 -0
  20. package/dist/chunk-A2PZBHTA.js +41 -0
  21. package/dist/chunk-BAVSTTWG.js +88 -0
  22. package/dist/chunk-BCIAMPLU.js +87 -0
  23. package/dist/chunk-DKYEZLIN.js +72 -0
  24. package/dist/chunk-FQ2U2M7F.js +76 -0
  25. package/dist/chunk-FWH6VWVK.js +59 -0
  26. package/dist/chunk-HL7TIIDB.js +124 -0
  27. package/dist/chunk-IJJULNRU.js +53 -0
  28. package/dist/chunk-JKLL7YYG.js +85 -0
  29. package/dist/chunk-JNR4T6LZ.js +10 -0
  30. package/dist/chunk-JQNF5GYA.js +52 -0
  31. package/dist/chunk-KAZ5BTXC.js +74 -0
  32. package/dist/chunk-KOYM24WV.js +72 -0
  33. package/dist/chunk-L2DUMHO4.js +69 -0
  34. package/dist/chunk-LDXBT62V.js +57 -0
  35. package/dist/chunk-MAKBZTL3.js +56 -0
  36. package/dist/chunk-OMNMMKI7.js +64 -0
  37. package/dist/chunk-P4BSSDSY.js +51 -0
  38. package/dist/chunk-PM6DU637.js +70 -0
  39. package/dist/chunk-PVVWLDIS.js +33 -0
  40. package/dist/chunk-R5ZDKN3Z.js +59 -0
  41. package/dist/chunk-RAHAQ7XK.js +61 -0
  42. package/dist/chunk-SUUR5WMA.js +46 -0
  43. package/dist/chunk-UAO52LUL.js +48 -0
  44. package/dist/chunk-ULWRXY3A.js +50 -0
  45. package/dist/chunk-UOXB5QOZ.js +81 -0
  46. package/dist/chunk-UXTZTFNZ.js +62 -0
  47. package/dist/chunk-VZX7APSS.js +82 -0
  48. package/dist/chunk-YIB63EKJ.js +49 -0
  49. package/dist/circular-dots.d.ts +6 -0
  50. package/dist/circular-dots.js +9 -0
  51. package/dist/classic-v2.d.ts +6 -0
  52. package/dist/classic-v2.js +9 -0
  53. package/dist/classic.d.ts +6 -0
  54. package/dist/classic.js +9 -0
  55. package/dist/clock.d.ts +10 -0
  56. package/dist/clock.js +9 -0
  57. package/dist/comet.d.ts +10 -0
  58. package/dist/comet.js +9 -0
  59. package/dist/compass.d.ts +6 -0
  60. package/dist/compass.js +8 -0
  61. package/dist/dual.d.ts +11 -0
  62. package/dist/dual.js +10 -0
  63. package/dist/easing.d.ts +11 -0
  64. package/dist/easing.js +11 -0
  65. package/dist/eclipse.d.ts +6 -0
  66. package/dist/eclipse.js +8 -0
  67. package/dist/fade.d.ts +8 -0
  68. package/dist/fade.js +7 -0
  69. package/dist/flip.d.ts +6 -0
  70. package/dist/flip.js +8 -0
  71. package/dist/frame.d.ts +18 -0
  72. package/dist/frame.js +13 -0
  73. package/dist/gather.d.ts +6 -0
  74. package/dist/gather.js +8 -0
  75. package/dist/index.d.ts +35 -199
  76. package/dist/index.js +106 -1794
  77. package/dist/leap.d.ts +6 -0
  78. package/dist/leap.js +8 -0
  79. package/dist/linear-dots.d.ts +6 -0
  80. package/dist/linear-dots.js +8 -0
  81. package/dist/loading.d.ts +6 -0
  82. package/dist/loading.js +9 -0
  83. package/dist/morph.d.ts +6 -0
  84. package/dist/morph.js +8 -0
  85. package/dist/motion.d.ts +44 -0
  86. package/dist/motion.js +26 -0
  87. package/dist/orbit.d.ts +10 -0
  88. package/dist/orbit.js +9 -0
  89. package/dist/pulse.d.ts +6 -0
  90. package/dist/pulse.js +8 -0
  91. package/dist/radar.d.ts +10 -0
  92. package/dist/radar.js +9 -0
  93. package/dist/ring.d.ts +11 -0
  94. package/dist/ring.js +10 -0
  95. package/dist/ripple.d.ts +11 -0
  96. package/dist/ripple.js +10 -0
  97. package/dist/slide.d.ts +6 -0
  98. package/dist/slide.js +8 -0
  99. package/dist/snake.d.ts +11 -0
  100. package/dist/snake.js +10 -0
  101. package/dist/spinners.d.ts +68 -0
  102. package/dist/spinners.js +40 -0
  103. package/dist/swirl.d.ts +6 -0
  104. package/dist/swirl.js +9 -0
  105. package/dist/trace.d.ts +11 -0
  106. package/dist/trace.js +10 -0
  107. package/dist/types.d.ts +9 -0
  108. package/dist/types.js +0 -0
  109. package/dist/wave.d.ts +11 -0
  110. package/dist/wave.js +10 -0
  111. package/package.json +12 -9
package/dist/index.js CHANGED
@@ -1,1797 +1,109 @@
1
- // src/cap.ts
2
- var DEFAULT_CAP = "round";
3
- function linecap(cap = DEFAULT_CAP) {
4
- return cap === "flat" ? "butt" : "round";
5
- }
6
-
7
- // src/motion.ts
8
- var DURATION_VAR = "--ld-duration";
9
- var PLAY_STATE_VAR = "--ld-play-state";
10
- var SIZE_VAR = "--ld-size";
11
- var STEP_VAR = "--ld-step";
12
- var DEFAULT_SIZE = 20;
13
- var SIZE = `var(${SIZE_VAR}, ${DEFAULT_SIZE}px)`;
14
- var SPINNER_MOTION = {
15
- arc: 800,
16
- atom: 1e3,
17
- blocks: 1300,
18
- "bouncing-dots": 500,
19
- cascade: 1500,
20
- "circular-dots": 800,
21
- classic: 1200,
22
- "classic-v2": 800,
23
- clock: 1200,
24
- comet: 700,
25
- compass: 500,
26
- dual: 1e3,
27
- eclipse: 1200,
28
- flip: 1200,
29
- gather: 1600,
30
- leap: 1800,
31
- "linear-dots": 900,
32
- loading: 1e3,
33
- morph: 1200,
34
- orbit: 750,
35
- pulse: 1200,
36
- radar: 1500,
37
- ring: 800,
38
- ripple: 1200,
39
- slide: 2400,
40
- snake: 1400,
41
- swirl: 1200,
42
- trace: 1200,
43
- wave: 900
44
- };
45
- function duration(name) {
46
- return `var(${DURATION_VAR}, ${SPINNER_MOTION[name]}ms)`;
47
- }
48
- function stagger(name, count) {
49
- return `calc(${duration(name)} * (var(${STEP_VAR}) - ${count}) / ${count})`;
50
- }
51
- var PLAY_STATE = `var(${PLAY_STATE_VAR}, running)`;
52
-
53
- // src/easing.ts
54
- var DEFAULT_EASING = "linear";
55
- function spinClass(name, easing = DEFAULT_EASING) {
56
- const base = `ld-${name}-spin`;
57
- return easing === "linear" ? base : `${base} ${base}-${easing}`;
58
- }
59
- var ROTATE = `to {
60
- transform: rotate(360deg);
61
- }`;
62
- function rotationCss(name, turn = ROTATE) {
63
- return `
64
- .ld-${name}-spin {
65
- transform-origin: center;
66
- animation: ld-${name}-rotate ${duration(name)} linear infinite;
67
- animation-play-state: ${PLAY_STATE};
68
- }
69
-
70
- .ld-${name}-spin-ease-in-out {
71
- animation-timing-function: ease-in-out;
72
- }
73
-
74
- .ld-${name}-spin-stacked {
75
- animation-name: ld-${name}-rotate, ld-${name}-rotate;
76
- animation-timing-function: linear, ease-in-out;
77
- animation-composition: add;
78
- }
79
-
80
- @keyframes ld-${name}-rotate {
81
- ${turn}
82
- }
83
-
84
- @media (prefers-reduced-motion: reduce) {
85
- .ld-${name}-spin {
86
- animation: none;
87
- }
88
- }
89
- `;
90
- }
91
-
92
- // src/frame.tsx
93
- import { jsx } from "react/jsx-runtime";
94
- function SpinnerStyle({
95
- children,
96
- name
97
- }) {
98
- return /* @__PURE__ */ jsx("style", { href: `ld-${name}`, precedence: "loading-dev", children });
99
- }
100
- function cssVars(vars) {
101
- return vars;
102
- }
103
- function step(index) {
104
- return cssVars({ [STEP_VAR]: index });
105
- }
106
- function spinnerRoot(name, { className, color, duration: duration2, playState, size = DEFAULT_SIZE }) {
107
- return {
108
- "aria-hidden": true,
109
- className: [`ld-${name}`, className].filter(Boolean).join(" "),
110
- style: cssVars({
111
- [SIZE_VAR]: `${size}px`,
112
- ...color === void 0 ? null : { color },
113
- ...duration2 === void 0 ? null : { [DURATION_VAR]: `${duration2}ms` },
114
- ...playState === void 0 ? null : { [PLAY_STATE_VAR]: playState }
115
- })
116
- };
117
- }
118
-
119
- // src/arc.tsx
120
- import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
121
- var css = `
122
- .ld-arc {
123
- width: ${SIZE};
124
- height: ${SIZE};
125
- }
126
-
127
- ${rotationCss("arc")}
128
- `;
129
- function Arc({ cap, easing, ...rest }) {
130
- return /* @__PURE__ */ jsxs(Fragment, { children: [
131
- /* @__PURE__ */ jsx2(SpinnerStyle, { name: "arc", children: css }),
132
- /* @__PURE__ */ jsx2(
133
- "svg",
134
- {
135
- ...spinnerRoot("arc", rest),
136
- fill: "none",
137
- role: "presentation",
138
- viewBox: "0 0 24 24",
139
- children: /* @__PURE__ */ jsx2(
140
- "circle",
141
- {
142
- className: spinClass("arc", easing),
143
- cx: "12",
144
- cy: "12",
145
- r: "10",
146
- stroke: "currentColor",
147
- strokeDasharray: "18 44.8",
148
- strokeLinecap: linecap(cap),
149
- strokeWidth: "2.5"
150
- }
151
- )
152
- }
153
- )
154
- ] });
155
- }
156
-
157
- // src/atom.tsx
158
- import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
159
- var ORBITS = Array.from({ length: 3 }, (_, index) => index);
160
- var TILT = 180 / ORBITS.length;
161
- var STROKE = `calc(${SIZE} * 0.055)`;
162
- var INNER_STROKE = `calc(${SIZE} * 0.045)`;
163
- var css2 = `
164
- .ld-atom {
165
- position: relative;
166
- width: ${SIZE};
167
- height: ${SIZE};
168
- }
169
-
170
- .ld-atom-shell {
171
- position: absolute;
172
- inset: 0;
173
- box-sizing: border-box;
174
- border: ${STROKE} solid currentColor;
175
- border-radius: 9999px;
176
- }
177
-
178
- .ld-atom-orbit {
179
- position: absolute;
180
- inset: 0;
181
- transform-style: preserve-3d;
182
- transform: rotate(var(--ld-atom-tilt)) rotateX(90deg);
183
- }
184
-
185
- .ld-atom-ring {
186
- position: absolute;
187
- inset: 0;
188
- box-sizing: border-box;
189
- border: ${INNER_STROKE} solid currentColor;
190
- border-radius: 9999px;
191
- transform: rotateX(90deg);
192
- }
193
-
194
- ${rotationCss("atom")}
195
-
196
- .ld-atom-spin {
197
- position: absolute;
198
- inset: 0;
199
- transform-style: preserve-3d;
200
- animation-delay: ${stagger("atom", ORBITS.length)};
201
- }
202
-
203
- @media (prefers-reduced-motion: reduce) {
204
- .ld-atom-spin {
205
- transform: rotate(${TILT}deg);
206
- }
207
- }
208
- `;
209
- function Atom({ easing, ...rest }) {
210
- return /* @__PURE__ */ jsxs2(Fragment2, { children: [
211
- /* @__PURE__ */ jsx3(SpinnerStyle, { name: "atom", children: css2 }),
212
- /* @__PURE__ */ jsxs2("div", { ...spinnerRoot("atom", rest), children: [
213
- /* @__PURE__ */ jsx3("div", { className: "ld-atom-shell" }),
214
- ORBITS.map((index) => /* @__PURE__ */ jsx3(
215
- "div",
216
- {
217
- className: "ld-atom-orbit",
218
- style: cssVars({ "--ld-atom-tilt": `${index * TILT}deg` }),
219
- children: /* @__PURE__ */ jsx3("div", { className: spinClass("atom", easing), style: step(index), children: /* @__PURE__ */ jsx3("div", { className: "ld-atom-ring" }) })
220
- },
221
- index
222
- ))
223
- ] })
224
- ] });
225
- }
226
-
227
- // src/blocks.tsx
228
- import { Fragment as Fragment3, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
229
- var DEFAULT_BLOCKS_SWEEP = "diagonal";
230
- var SIDE = 3;
231
- var CELLS = Array.from({ length: SIDE * SIDE }, (_, index) => ({
232
- col: index % SIDE,
233
- row: Math.floor(index / SIDE)
234
- }));
235
- var SWEEPS = {
236
- columns: { count: SIDE, place: ({ col }) => col },
237
- diagonal: { count: SIDE * 2 - 1, place: ({ col, row }) => row + col },
238
- rows: { count: SIDE, place: ({ row }) => row }
239
- };
240
- var css3 = `
241
- .ld-blocks {
242
- display: grid;
243
- grid-template-columns: repeat(${SIDE}, 1fr);
244
- grid-template-rows: repeat(${SIDE}, 1fr);
245
- gap: calc(${SIZE} * 0.1);
246
- width: ${SIZE};
247
- height: ${SIZE};
248
- }
249
-
250
- .ld-blocks-cell {
251
- background: currentColor;
252
- border-radius: calc(${SIZE} * 0.0625);
253
- animation: ld-blocks-sweep ${duration("blocks")} ease-in-out infinite;
254
- animation-play-state: ${PLAY_STATE};
255
- }
256
- ${Object.entries(SWEEPS).map(
257
- ([sweep, { count }]) => `
258
- .ld-blocks-cell-${sweep} {
259
- animation-delay: ${stagger("blocks", count)};
260
- }
261
- `
262
- ).join("")}
263
- @keyframes ld-blocks-sweep {
264
- 0%,
265
- 70%,
266
- 100% {
267
- transform: scale(1);
268
- }
269
- 35% {
270
- transform: scale(0);
271
- }
272
- }
273
-
274
- @media (prefers-reduced-motion: reduce) {
275
- .ld-blocks-cell {
276
- transform: scale(0.8);
277
- animation: none;
278
- }
279
- }
280
- `;
281
- function Blocks({ sweep = DEFAULT_BLOCKS_SWEEP, ...rest }) {
282
- const { place } = SWEEPS[sweep];
283
- return /* @__PURE__ */ jsxs3(Fragment3, { children: [
284
- /* @__PURE__ */ jsx4(SpinnerStyle, { name: "blocks", children: css3 }),
285
- /* @__PURE__ */ jsx4("div", { ...spinnerRoot("blocks", rest), children: CELLS.map((cell) => /* @__PURE__ */ jsx4(
286
- "div",
287
- {
288
- className: `ld-blocks-cell ld-blocks-cell-${sweep}`,
289
- style: step(place(cell))
290
- },
291
- `${cell.col}-${cell.row}`
292
- )) })
293
- ] });
294
- }
295
-
296
- // src/bouncing-dots.tsx
297
- import { Fragment as Fragment4, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
298
- var DOTS = Array.from({ length: 3 }, (_, index) => index);
299
- var dur = duration("bouncing-dots");
300
- var css4 = `
301
- .ld-bouncing-dots {
302
- display: flex;
303
- align-items: center;
304
- gap: calc(${SIZE} * 0.2);
305
- height: ${SIZE};
306
- }
307
-
308
- .ld-bouncing-dots-dot {
309
- width: calc(${SIZE} * 0.22);
310
- height: calc(${SIZE} * 0.22);
311
- background: currentColor;
312
- border-radius: 9999px;
313
- animation: ld-bouncing-dots-bounce ${dur} ease-in-out infinite alternate;
314
- animation-play-state: ${PLAY_STATE};
315
- }
316
-
317
- .ld-bouncing-dots-dot:nth-child(1) {
318
- animation-delay: calc(${dur} * -0.64);
319
- }
320
-
321
- .ld-bouncing-dots-dot:nth-child(2) {
322
- animation-delay: calc(${dur} * -0.32);
323
- }
324
-
325
- @keyframes ld-bouncing-dots-bounce {
326
- from {
327
- transform: translateY(28%);
328
- }
329
- to {
330
- transform: translateY(-72%);
331
- }
332
- }
333
-
334
- @media (prefers-reduced-motion: reduce) {
335
- .ld-bouncing-dots-dot {
336
- animation: none;
337
- }
338
- }
339
- `;
340
- function BouncingDots(props) {
341
- return /* @__PURE__ */ jsxs4(Fragment4, { children: [
342
- /* @__PURE__ */ jsx5(SpinnerStyle, { name: "bouncing-dots", children: css4 }),
343
- /* @__PURE__ */ jsx5("div", { ...spinnerRoot("bouncing-dots", props), children: DOTS.map((dot) => /* @__PURE__ */ jsx5("div", { className: "ld-bouncing-dots-dot" }, dot)) })
344
- ] });
345
- }
346
-
347
- // src/cascade.tsx
348
- import { Fragment as Fragment5, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
349
- var RADII = [10.5, 7, 3.5];
350
- var SLOTS = 24;
351
- var css5 = `
352
- .ld-cascade {
353
- width: ${SIZE};
354
- height: ${SIZE};
355
- }
356
-
357
- .ld-cascade-arc {
358
- transform-origin: center;
359
- animation: ld-cascade-turn ${duration("cascade")} cubic-bezier(0.68, -0.75, 0.265, 1.75) infinite;
360
- animation-delay: ${stagger("cascade", SLOTS)};
361
- animation-play-state: ${PLAY_STATE};
362
- }
363
-
364
- @keyframes ld-cascade-turn {
365
- to {
366
- transform: rotate(360deg);
367
- }
368
- }
369
-
370
- @media (prefers-reduced-motion: reduce) {
371
- .ld-cascade-arc {
372
- animation: none;
373
- }
374
- }
375
- `;
376
- function Cascade({ cap, ...rest }) {
377
- return /* @__PURE__ */ jsxs5(Fragment5, { children: [
378
- /* @__PURE__ */ jsx6(SpinnerStyle, { name: "cascade", children: css5 }),
379
- /* @__PURE__ */ jsx6(
380
- "svg",
381
- {
382
- ...spinnerRoot("cascade", rest),
383
- fill: "none",
384
- role: "presentation",
385
- stroke: "currentColor",
386
- strokeLinecap: linecap(cap),
387
- strokeWidth: "2",
388
- viewBox: "0 0 24 24",
389
- children: RADII.map((r, index) => {
390
- const circumference = 2 * Math.PI * r;
391
- return /* @__PURE__ */ jsx6(
392
- "circle",
393
- {
394
- className: "ld-cascade-arc",
395
- cx: "12",
396
- cy: "12",
397
- r,
398
- strokeDasharray: `${circumference / 4} ${circumference * 3 / 4}`,
399
- style: step(index)
400
- },
401
- r
402
- );
403
- })
404
- }
405
- )
406
- ] });
407
- }
408
-
409
- // src/circular-dots.tsx
410
- import { Fragment as Fragment6, jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
411
- var DOTS2 = [
412
- [8, 1.5],
413
- [12.5962, 3.4038],
414
- [14.5, 8],
415
- [12.5962, 12.5962],
416
- [8, 14.5],
417
- [3.4038, 12.5962],
418
- [1.5, 8],
419
- [3.4038, 3.4038]
420
- ];
421
- var css6 = `
422
- .ld-circular-dots {
423
- width: ${SIZE};
424
- height: ${SIZE};
425
- }
426
-
427
- .ld-circular-dots-dot {
428
- animation: ld-circular-dots-fade ${duration("circular-dots")} linear infinite;
429
- animation-delay: ${stagger("circular-dots", DOTS2.length)};
430
- animation-play-state: ${PLAY_STATE};
431
- }
432
-
433
- @keyframes ld-circular-dots-fade {
434
- from {
435
- opacity: 1;
436
- }
437
- to {
438
- opacity: 0.2;
439
- }
440
- }
441
-
442
- @media (prefers-reduced-motion: reduce) {
443
- .ld-circular-dots-dot {
444
- opacity: 0.6;
445
- animation: none;
446
- }
447
- }
448
- `;
449
- function CircularDots(props) {
450
- return /* @__PURE__ */ jsxs6(Fragment6, { children: [
451
- /* @__PURE__ */ jsx7(SpinnerStyle, { name: "circular-dots", children: css6 }),
452
- /* @__PURE__ */ jsx7(
453
- "svg",
454
- {
455
- ...spinnerRoot("circular-dots", props),
456
- fill: "currentColor",
457
- role: "presentation",
458
- viewBox: "0 0 16 16",
459
- children: DOTS2.map(([cx, cy], index) => /* @__PURE__ */ jsx7(
460
- "circle",
461
- {
462
- className: "ld-circular-dots-dot",
463
- cx,
464
- cy,
465
- r: "1.5",
466
- style: step(index)
467
- },
468
- `${cx}-${cy}`
469
- ))
470
- }
471
- )
472
- ] });
473
- }
474
-
475
- // src/classic.tsx
476
- import { Fragment as Fragment7, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
477
- var BARS = Array.from({ length: 12 }, (_, index) => index);
478
- var css7 = `
479
- .ld-classic {
480
- width: ${SIZE};
481
- height: ${SIZE};
482
- }
483
-
484
- .ld-classic-inner {
485
- position: relative;
486
- top: 50%;
487
- left: 50%;
488
- width: ${SIZE};
489
- height: ${SIZE};
490
- }
491
-
492
- .ld-classic-bar {
493
- position: absolute;
494
- top: -3.9%;
495
- left: -10%;
496
- width: 24%;
497
- height: 8%;
498
- background: currentColor;
499
- border-radius: 6px;
500
- transform: rotate(calc(var(${STEP_VAR}) * 30deg)) translate(146%);
501
- animation: ld-classic-spin ${duration("classic")} linear infinite;
502
- animation-delay: ${stagger("classic", BARS.length)};
503
- animation-play-state: ${PLAY_STATE};
504
- }
505
-
506
- @keyframes ld-classic-spin {
507
- 0% {
508
- opacity: 1;
509
- }
510
- 100% {
511
- opacity: 0.15;
512
- }
513
- }
514
-
515
- @media (prefers-reduced-motion: reduce) {
516
- .ld-classic-bar {
517
- opacity: 0.5;
518
- animation: none;
519
- }
520
- }
521
- `;
522
- function Classic(props) {
523
- return /* @__PURE__ */ jsxs7(Fragment7, { children: [
524
- /* @__PURE__ */ jsx8(SpinnerStyle, { name: "classic", children: css7 }),
525
- /* @__PURE__ */ jsx8("div", { ...spinnerRoot("classic", props), children: /* @__PURE__ */ jsx8("div", { className: "ld-classic-inner", children: BARS.map((bar) => /* @__PURE__ */ jsx8("div", { className: "ld-classic-bar", style: step(bar) }, bar)) }) })
526
- ] });
527
- }
528
-
529
- // src/classic-v2.tsx
530
- import { Fragment as Fragment8, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
531
- var TICKS = [
532
- "M7.33334 0.666667C7.33334 0.298477 7.63181 0 8 0C8.36819 0 8.66667 0.298477 8.66667 0.666667V3.33333C8.66667 3.70152 8.36819 4 8 4C7.63181 4 7.33334 3.70152 7.33334 3.33333V0.666667Z",
533
- "M11.7712 5.17154C11.5109 5.43189 11.0888 5.43189 10.8284 5.17154C10.5681 4.91119 10.5681 4.48908 10.8284 4.22873L12.714 2.34311C12.9744 2.08276 13.3965 2.08276 13.6568 2.34311C13.9172 2.60346 13.9172 3.02557 13.6568 3.28592L11.7712 5.17154Z",
534
- "M12.6667 8.66667C12.2985 8.66667 12 8.36819 12 8.00001C12 7.63182 12.2985 7.33334 12.6667 7.33334H15.3333C15.7015 7.33334 16 7.63182 16 8.00001C16 8.36819 15.7015 8.66667 15.3333 8.66667H12.6667Z",
535
- "M10.8284 11.7713C10.5681 11.5109 10.5681 11.0888 10.8284 10.8284C11.0888 10.5681 11.5109 10.5681 11.7712 10.8284L13.6568 12.7141C13.9172 12.9744 13.9172 13.3965 13.6568 13.6569C13.3965 13.9172 12.9744 13.9172 12.714 13.6569L10.8284 11.7713Z",
536
- "M7.33333 12.6667C7.33333 12.2985 7.63181 12 8 12C8.36819 12 8.66667 12.2985 8.66667 12.6667V15.3333C8.66667 15.7015 8.36819 16 8 16C7.63181 16 7.33333 15.7015 7.33333 15.3333V12.6667Z",
537
- "M3.28594 13.6569C3.02559 13.9172 2.60348 13.9172 2.34313 13.6569C2.08278 13.3965 2.08278 12.9744 2.34313 12.714L4.22875 10.8284C4.4891 10.5681 4.91121 10.5681 5.17156 10.8284C5.43191 11.0888 5.43191 11.5109 5.17156 11.7712L3.28594 13.6569Z",
538
- "M0.666667 8.66667C0.298477 8.66667 1.60941e-08 8.36819 0 8.00001C-1.60941e-08 7.63182 0.298477 7.33334 0.666667 7.33334H3.33333C3.70152 7.33334 4 7.63182 4 8.00001C4 8.36819 3.70152 8.66667 3.33333 8.66667H0.666667Z",
539
- "M2.34315 3.28594C2.0828 3.02559 2.0828 2.60348 2.34315 2.34314C2.6035 2.08279 3.02561 2.08279 3.28596 2.34313L5.17158 4.22875C5.43193 4.4891 5.43193 4.91121 5.17158 5.17156C4.91123 5.43191 4.48912 5.43191 4.22877 5.17156L2.34315 3.28594Z"
540
- ];
541
- var css8 = `
542
- .ld-classic-v2 {
543
- width: ${SIZE};
544
- height: ${SIZE};
545
- }
546
-
547
- .ld-classic-v2-tick {
548
- animation: ld-classic-v2-fade ${duration("classic-v2")} linear infinite;
549
- animation-delay: ${stagger("classic-v2", TICKS.length)};
550
- animation-play-state: ${PLAY_STATE};
551
- }
552
-
553
- @keyframes ld-classic-v2-fade {
554
- 0% {
555
- opacity: 1;
556
- }
557
- 100% {
558
- opacity: 0.4;
559
- }
560
- }
561
-
562
- @media (prefers-reduced-motion: reduce) {
563
- .ld-classic-v2-tick {
564
- opacity: 0.5;
565
- animation: none;
566
- }
567
- }
568
- `;
569
- function ClassicV2(props) {
570
- return /* @__PURE__ */ jsxs8(Fragment8, { children: [
571
- /* @__PURE__ */ jsx9(SpinnerStyle, { name: "classic-v2", children: css8 }),
572
- /* @__PURE__ */ jsx9(
573
- "svg",
574
- {
575
- ...spinnerRoot("classic-v2", props),
576
- fill: "none",
577
- role: "presentation",
578
- viewBox: "0 0 16 16",
579
- children: /* @__PURE__ */ jsx9("g", { fill: "currentColor", children: TICKS.map((d, tick) => /* @__PURE__ */ jsx9(
580
- "path",
581
- {
582
- className: "ld-classic-v2-tick",
583
- d,
584
- style: step(tick)
585
- },
586
- d
587
- )) })
588
- }
589
- )
590
- ] });
591
- }
592
-
593
- // src/clock.tsx
594
- import { Fragment as Fragment9, jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
595
- var css9 = `
596
- .ld-clock {
597
- width: ${SIZE};
598
- height: ${SIZE};
599
- }
600
-
601
- ${rotationCss("clock")}
602
- `;
603
- function Clock({ easing, ...rest }) {
604
- return /* @__PURE__ */ jsxs9(Fragment9, { children: [
605
- /* @__PURE__ */ jsx10(SpinnerStyle, { name: "clock", children: css9 }),
606
- /* @__PURE__ */ jsxs9(
607
- "svg",
608
- {
609
- ...spinnerRoot("clock", rest),
610
- fill: "none",
611
- role: "presentation",
612
- viewBox: "0 0 16 16",
613
- children: [
614
- /* @__PURE__ */ jsx10("circle", { cx: "8", cy: "8", fill: "currentColor", opacity: "0.1", r: "8" }),
615
- /* @__PURE__ */ jsx10(
616
- "path",
617
- {
618
- className: spinClass("clock", easing),
619
- d: "M11.1937 2.92061C10.5206 2.49739 9.77304 2.21397 8.9954 2.08314C8.45076 1.99151 8 2.44772 8 3V7.20324C8 7.49211 8.12492 7.76686 8.34259 7.95677L11.8999 11.0603C12.3287 11.4344 12.9913 11.378 13.2643 10.8787C13.6356 10.1998 13.8736 9.45248 13.9617 8.67713C14.0892 7.55433 13.8971 6.41834 13.4074 5.39993C12.9177 4.38152 12.1503 3.5221 11.1937 2.92061Z",
620
- fill: "currentColor"
621
- }
622
- )
623
- ]
624
- }
625
- )
626
- ] });
627
- }
628
-
629
- // src/comet.tsx
630
- import { Fragment as Fragment10, jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
631
- var css10 = `
632
- .ld-comet {
633
- --ld-comet-stroke: calc(${SIZE} * 0.12);
634
- position: relative;
635
- width: ${SIZE};
636
- height: ${SIZE};
637
- }
638
-
639
- .ld-comet-spin {
640
- position: absolute;
641
- inset: 0;
642
- }
643
-
644
- .ld-comet-tail {
645
- position: absolute;
646
- inset: 0;
647
- border-radius: 9999px;
648
- background: conic-gradient(from 0deg, transparent, currentColor);
649
- -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - var(--ld-comet-stroke)), #000 0);
650
- mask: radial-gradient(farthest-side, transparent calc(100% - var(--ld-comet-stroke)), #000 0);
651
- }
652
-
653
- .ld-comet-head {
654
- position: absolute;
655
- top: 0;
656
- left: 50%;
657
- width: var(--ld-comet-stroke);
658
- height: var(--ld-comet-stroke);
659
- background: currentColor;
660
- border-radius: 9999px;
661
- transform: translateX(-50%);
662
- }
663
-
664
- ${rotationCss("comet")}
665
- `;
666
- function Comet({ easing, ...rest }) {
667
- return /* @__PURE__ */ jsxs10(Fragment10, { children: [
668
- /* @__PURE__ */ jsx11(SpinnerStyle, { name: "comet", children: css10 }),
669
- /* @__PURE__ */ jsx11("div", { ...spinnerRoot("comet", rest), children: /* @__PURE__ */ jsxs10("div", { className: spinClass("comet", easing), children: [
670
- /* @__PURE__ */ jsx11("div", { className: "ld-comet-tail" }),
671
- /* @__PURE__ */ jsx11("div", { className: "ld-comet-head" })
672
- ] }) })
673
- ] });
674
- }
675
-
676
- // src/compass.tsx
677
- import { Fragment as Fragment11, jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
678
- var css11 = `
679
- .ld-compass {
680
- width: ${SIZE};
681
- height: ${SIZE};
682
- }
683
-
684
- .ld-compass-ticks {
685
- transform-origin: center;
686
- animation: ld-compass-turn ${duration("compass")} ease-in-out infinite;
687
- animation-play-state: ${PLAY_STATE};
688
- }
689
-
690
- @keyframes ld-compass-turn {
691
- to {
692
- transform: rotate(90deg);
693
- }
694
- }
695
-
696
- @media (prefers-reduced-motion: reduce) {
697
- .ld-compass-ticks {
698
- animation: none;
699
- }
700
- }
701
- `;
702
- function Compass(props) {
703
- return /* @__PURE__ */ jsxs11(Fragment11, { children: [
704
- /* @__PURE__ */ jsx12(SpinnerStyle, { name: "compass", children: css11 }),
705
- /* @__PURE__ */ jsx12(
706
- "svg",
707
- {
708
- ...spinnerRoot("compass", props),
709
- fill: "none",
710
- role: "presentation",
711
- viewBox: "0 0 16 16",
712
- children: /* @__PURE__ */ jsxs11("g", { className: "ld-compass-ticks", fill: "currentColor", children: [
713
- /* @__PURE__ */ jsx12("path", { d: "M7.33334 0.666667C7.33334 0.298477 7.63181 0 8 0C8.36819 0 8.66667 0.298477 8.66667 0.666667V3.33333C8.66667 3.70152 8.36819 4 8 4C7.63181 4 7.33334 3.70152 7.33334 3.33333V0.666667Z" }),
714
- /* @__PURE__ */ jsx12("path", { d: "M12.6667 8.66667C12.2985 8.66667 12 8.3682 12 8.00001C12 7.63182 12.2985 7.33334 12.6667 7.33334H15.3333C15.7015 7.33334 16 7.63182 16 8.00001C16 8.3682 15.7015 8.66667 15.3333 8.66667H12.6667Z" }),
715
- /* @__PURE__ */ jsx12("path", { d: "M7.33333 12.6667C7.33333 12.2985 7.63181 12 8 12C8.36819 12 8.66667 12.2985 8.66667 12.6667V15.3333C8.66667 15.7015 8.36819 16 8 16C7.63181 16 7.33333 15.7015 7.33333 15.3333V12.6667Z" }),
716
- /* @__PURE__ */ jsx12("path", { d: "M0.666667 8.66667C0.298477 8.66667 1.60941e-08 8.3682 0 8.00001C-1.60941e-08 7.63182 0.298477 7.33334 0.666667 7.33334H3.33333C3.70152 7.33334 4 7.63182 4 8.00001C4 8.3682 3.70152 8.66667 3.33333 8.66667H0.666667Z" })
717
- ] })
718
- }
719
- )
720
- ] });
721
- }
722
-
723
- // src/dual.tsx
724
- import { Fragment as Fragment12, jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
725
- var css12 = `
726
- .ld-dual {
727
- width: ${SIZE};
728
- height: ${SIZE};
729
- }
730
-
731
- ${rotationCss("dual")}
732
-
733
- .ld-dual-inner {
734
- animation-direction: reverse;
735
- }
736
-
737
- @media (prefers-reduced-motion: reduce) {
738
- .ld-dual-inner {
739
- transform: rotate(180deg);
740
- }
741
- }
742
- `;
743
- function Dual({ cap, easing, ...rest }) {
744
- return /* @__PURE__ */ jsxs12(Fragment12, { children: [
745
- /* @__PURE__ */ jsx13(SpinnerStyle, { name: "dual", children: css12 }),
746
- /* @__PURE__ */ jsxs12(
747
- "svg",
748
- {
749
- ...spinnerRoot("dual", rest),
750
- fill: "none",
751
- role: "presentation",
752
- stroke: "currentColor",
753
- strokeLinecap: linecap(cap),
754
- strokeWidth: "2.5",
755
- viewBox: "0 0 24 24",
756
- children: [
757
- /* @__PURE__ */ jsx13(
758
- "circle",
759
- {
760
- className: spinClass("dual", easing),
761
- cx: "12",
762
- cy: "12",
763
- r: "10",
764
- strokeDasharray: "18 44.8"
765
- }
766
- ),
767
- /* @__PURE__ */ jsx13(
768
- "circle",
769
- {
770
- className: `ld-dual-inner ${spinClass("dual", easing)}`,
771
- cx: "12",
772
- cy: "12",
773
- r: "5.5",
774
- strokeDasharray: "10 24.6"
775
- }
776
- )
777
- ]
778
- }
779
- )
780
- ] });
781
- }
782
-
783
- // src/eclipse.tsx
784
- import { Fragment as Fragment13, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
785
- var DOTS3 = [0, 1];
786
- var css13 = `
787
- .ld-eclipse {
788
- position: relative;
789
- width: ${SIZE};
790
- height: ${SIZE};
791
- }
792
-
793
- .ld-eclipse-dot {
794
- position: absolute;
795
- top: 30%;
796
- left: 30%;
797
- width: 40%;
798
- height: 40%;
799
- background: currentColor;
800
- border-radius: 50%;
801
- animation:
802
- ld-eclipse-slide ${duration("eclipse")} ease-in-out infinite,
803
- ld-eclipse-depth ${duration("eclipse")} ease-in-out infinite;
804
- animation-delay: ${stagger("eclipse", DOTS3.length)};
805
- animation-play-state: ${PLAY_STATE};
806
- }
807
-
808
- @keyframes ld-eclipse-slide {
809
- 0%,
810
- 100% {
811
- translate: 75% 0;
812
- }
813
- 50% {
814
- translate: -75% 0;
815
- }
816
- }
817
-
818
- @keyframes ld-eclipse-depth {
819
- 0%,
820
- 50%,
821
- 100% {
822
- opacity: 0.75;
823
- scale: 1;
824
- }
825
- 25% {
826
- opacity: 1;
827
- scale: 1.3;
828
- }
829
- 75% {
830
- opacity: 0.5;
831
- scale: 0.7;
832
- }
833
- }
834
-
835
- @media (prefers-reduced-motion: reduce) {
836
- .ld-eclipse-dot {
837
- translate: calc(var(${STEP_VAR}) * 150% - 75%) 0;
838
- animation: none;
839
- }
840
- }
841
- `;
842
- function Eclipse(props) {
843
- return /* @__PURE__ */ jsxs13(Fragment13, { children: [
844
- /* @__PURE__ */ jsx14(SpinnerStyle, { name: "eclipse", children: css13 }),
845
- /* @__PURE__ */ jsx14("div", { ...spinnerRoot("eclipse", props), children: DOTS3.map((index) => /* @__PURE__ */ jsx14("div", { className: "ld-eclipse-dot", style: step(index) }, index)) })
846
- ] });
847
- }
848
-
849
- // src/flip.tsx
850
- import { Fragment as Fragment14, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
851
- var css14 = `
852
- .ld-flip {
853
- width: ${SIZE};
854
- height: ${SIZE};
855
- perspective: calc(${SIZE} * 3);
856
- }
857
-
858
- .ld-flip-face {
859
- width: 64%;
860
- height: 64%;
861
- margin: 18%;
862
- background: currentColor;
863
- border-radius: calc(${SIZE} * 0.06);
864
- animation: ld-flip-turn ${duration("flip")} ease-in-out infinite;
865
- animation-play-state: ${PLAY_STATE};
866
- }
867
-
868
- @keyframes ld-flip-turn {
869
- 0% {
870
- transform: rotateX(0) rotateY(0);
871
- }
872
- 50% {
873
- transform: rotateX(-180deg) rotateY(0);
874
- }
875
- 100% {
876
- transform: rotateX(-180deg) rotateY(-180deg);
877
- }
878
- }
879
-
880
- @media (prefers-reduced-motion: reduce) {
881
- .ld-flip-face {
882
- animation: none;
883
- }
884
- }
885
- `;
886
- function Flip(props) {
887
- return /* @__PURE__ */ jsxs14(Fragment14, { children: [
888
- /* @__PURE__ */ jsx15(SpinnerStyle, { name: "flip", children: css14 }),
889
- /* @__PURE__ */ jsx15("div", { ...spinnerRoot("flip", props), children: /* @__PURE__ */ jsx15("div", { className: "ld-flip-face" }) })
890
- ] });
891
- }
892
-
893
- // src/gather.tsx
894
- import { Fragment as Fragment15, jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
895
- var BLOCKS = [
896
- { x: 1, y: 1 },
897
- { x: -1, y: 1 },
898
- { x: 1, y: -1 },
899
- { x: -1, y: -1 }
900
- ];
901
- var GAP = 24;
902
- var GAP_IN = 8;
903
- var BLOCK = (100 - GAP) / 2;
904
- var PULL = `${((GAP - GAP_IN) / 2 / BLOCK * 100).toFixed(1)}%`;
905
- var css15 = `
906
- .ld-gather {
907
- width: ${SIZE};
908
- height: ${SIZE};
909
- }
910
-
911
- .ld-gather-group {
912
- display: grid;
913
- grid-template-columns: 1fr 1fr;
914
- gap: ${GAP}%;
915
- width: 100%;
916
- height: 100%;
917
- animation: ld-gather-turn ${duration("gather")} ease-in-out infinite;
918
- animation-play-state: ${PLAY_STATE};
919
- }
920
-
921
- .ld-gather-block {
922
- background: currentColor;
923
- border-radius: calc(${SIZE} * 0.14);
924
- animation: ld-gather-pull ${duration("gather")} ease-in-out infinite;
925
- animation-play-state: ${PLAY_STATE};
926
- }
927
-
928
- @keyframes ld-gather-pull {
929
- 0%,
930
- 100% {
931
- transform: translate(0, 0);
932
- }
933
- 30%,
934
- 60% {
935
- transform: translate(
936
- calc(var(--ld-gather-x) * ${PULL}),
937
- calc(var(--ld-gather-y) * ${PULL})
938
- );
939
- }
940
- }
941
-
942
- @keyframes ld-gather-turn {
943
- 0%,
944
- 30% {
945
- transform: rotate(0);
946
- }
947
- 60%,
948
- 100% {
949
- transform: rotate(90deg);
950
- }
951
- }
952
-
953
- @media (prefers-reduced-motion: reduce) {
954
- .ld-gather-group,
955
- .ld-gather-block {
956
- animation: none;
957
- }
958
- }
959
- `;
960
- function Gather(props) {
961
- return /* @__PURE__ */ jsxs15(Fragment15, { children: [
962
- /* @__PURE__ */ jsx16(SpinnerStyle, { name: "gather", children: css15 }),
963
- /* @__PURE__ */ jsx16("div", { ...spinnerRoot("gather", props), children: /* @__PURE__ */ jsx16("div", { className: "ld-gather-group", children: BLOCKS.map(({ x, y }) => /* @__PURE__ */ jsx16(
964
- "div",
965
- {
966
- className: "ld-gather-block",
967
- style: cssVars({ "--ld-gather-x": x, "--ld-gather-y": y })
968
- },
969
- `${x}${y}`
970
- )) }) })
971
- ] });
972
- }
973
-
974
- // src/leap.tsx
975
- import { Fragment as Fragment16, jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
976
- var DOTS4 = Array.from({ length: 3 }, (_, index) => index);
977
- var css16 = `
978
- .ld-leap {
979
- position: relative;
980
- width: ${SIZE};
981
- height: ${SIZE};
982
- }
983
-
984
- .ld-leap-wrapper {
985
- position: absolute;
986
- inset: 0;
987
- animation: ld-leap-hop ${duration("leap")} ease-in-out infinite;
988
- animation-delay: ${stagger("leap", DOTS4.length)};
989
- animation-play-state: ${PLAY_STATE};
990
- }
991
-
992
- .ld-leap-dot {
993
- position: absolute;
994
- top: 39%;
995
- left: 0;
996
- width: 22%;
997
- height: 22%;
998
- background: currentColor;
999
- border-radius: 50%;
1000
- }
1001
-
1002
- @keyframes ld-leap-hop {
1003
- 0% {
1004
- transform: translateX(0) rotate(0);
1005
- }
1006
- 33.33% {
1007
- transform: translateX(0) rotate(180deg);
1008
- }
1009
- 66.66% {
1010
- transform: translateX(-39%) rotate(180deg);
1011
- }
1012
- 99.99% {
1013
- transform: translateX(-78%) rotate(180deg);
1014
- }
1015
- 100% {
1016
- transform: translateX(0) rotate(0);
1017
- }
1018
- }
1019
-
1020
- @media (prefers-reduced-motion: reduce) {
1021
- .ld-leap-wrapper {
1022
- transform: translateX(calc(var(${STEP_VAR}) * 39%));
1023
- animation: none;
1024
- }
1025
- }
1026
- `;
1027
- function Leap(props) {
1028
- return /* @__PURE__ */ jsxs16(Fragment16, { children: [
1029
- /* @__PURE__ */ jsx17(SpinnerStyle, { name: "leap", children: css16 }),
1030
- /* @__PURE__ */ jsx17("div", { ...spinnerRoot("leap", props), children: DOTS4.map((index) => /* @__PURE__ */ jsx17("div", { className: "ld-leap-wrapper", style: step(index), children: /* @__PURE__ */ jsx17("div", { className: "ld-leap-dot" }) }, index)) })
1031
- ] });
1032
- }
1033
-
1034
- // src/linear-dots.tsx
1035
- import { Fragment as Fragment17, jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
1036
- var DOTS5 = Array.from({ length: 3 }, (_, index) => index);
1037
- var css17 = `
1038
- .ld-linear-dots {
1039
- display: flex;
1040
- align-items: center;
1041
- gap: calc(${SIZE} * 0.1875);
1042
- height: ${SIZE};
1043
- }
1044
-
1045
- .ld-linear-dots-dot {
1046
- width: calc(${SIZE} * 0.1875);
1047
- height: calc(${SIZE} * 0.1875);
1048
- background: currentColor;
1049
- border-radius: 9999px;
1050
- animation: ld-linear-dots-fade ${duration("linear-dots")} linear infinite;
1051
- animation-delay: ${stagger("linear-dots", DOTS5.length)};
1052
- animation-play-state: ${PLAY_STATE};
1053
- }
1054
-
1055
- @keyframes ld-linear-dots-fade {
1056
- 0% {
1057
- opacity: 1;
1058
- }
1059
- 66.67% {
1060
- opacity: 0.5;
1061
- }
1062
- 100% {
1063
- opacity: 1;
1064
- }
1065
- }
1066
-
1067
- @media (prefers-reduced-motion: reduce) {
1068
- .ld-linear-dots-dot {
1069
- opacity: 0.75;
1070
- animation: none;
1071
- }
1072
- }
1073
- `;
1074
- function LinearDots(props) {
1075
- return /* @__PURE__ */ jsxs17(Fragment17, { children: [
1076
- /* @__PURE__ */ jsx18(SpinnerStyle, { name: "linear-dots", children: css17 }),
1077
- /* @__PURE__ */ jsx18("div", { ...spinnerRoot("linear-dots", props), children: DOTS5.map((dot) => /* @__PURE__ */ jsx18("div", { className: "ld-linear-dots-dot", style: step(dot) }, dot)) })
1078
- ] });
1079
- }
1080
-
1081
- // src/loading.tsx
1082
- import { Fragment as Fragment18, jsx as jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
1083
- var BLOCK2 = "M0 0h1v1H0zM2 0h1v1H2zM0 2h1v1H0zM2 2h1v1H2z";
1084
- var SEGMENTS = [
1085
- { x: 12, y: 6 },
1086
- { x: 10, y: 10 },
1087
- { x: 6, y: 12 },
1088
- { x: 2, y: 10 },
1089
- { x: 0, y: 6 },
1090
- { x: 2, y: 2 },
1091
- { x: 6, y: 0 },
1092
- { x: 10, y: 2 }
1093
- ];
1094
- var css18 = `
1095
- .ld-loading {
1096
- width: ${SIZE};
1097
- height: ${SIZE};
1098
- }
1099
-
1100
- .ld-loading-segment {
1101
- animation: ld-loading-fade ${duration("loading")} linear infinite;
1102
- animation-delay: ${stagger("loading", SEGMENTS.length)};
1103
- animation-play-state: ${PLAY_STATE};
1104
- }
1105
-
1106
- @keyframes ld-loading-fade {
1107
- from {
1108
- opacity: 1;
1109
- }
1110
- to {
1111
- opacity: 0.2;
1112
- }
1113
- }
1114
-
1115
- @media (prefers-reduced-motion: reduce) {
1116
- .ld-loading-segment {
1117
- opacity: 0.6;
1118
- animation: none;
1119
- }
1120
- }
1121
- `;
1122
- function Loading(props) {
1123
- return /* @__PURE__ */ jsxs18(Fragment18, { children: [
1124
- /* @__PURE__ */ jsx19(SpinnerStyle, { name: "loading", children: css18 }),
1125
- /* @__PURE__ */ jsx19(
1126
- "svg",
1127
- {
1128
- ...spinnerRoot("loading", props),
1129
- fill: "currentColor",
1130
- role: "presentation",
1131
- viewBox: "0 0 15 15",
1132
- children: SEGMENTS.map(({ x, y }, segment) => /* @__PURE__ */ jsx19(
1133
- "path",
1134
- {
1135
- className: "ld-loading-segment",
1136
- d: BLOCK2,
1137
- style: step(segment),
1138
- transform: `translate(${x} ${y})`
1139
- },
1140
- `${x}-${y}`
1141
- ))
1142
- }
1143
- )
1144
- ] });
1145
- }
1146
-
1147
- // src/morph.tsx
1148
- import { Fragment as Fragment19, jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
1149
- var css19 = `
1150
- .ld-morph {
1151
- width: ${SIZE};
1152
- height: ${SIZE};
1153
- }
1154
-
1155
- .ld-morph-shape {
1156
- width: 64%;
1157
- height: 64%;
1158
- margin: 18%;
1159
- background: currentColor;
1160
- border-radius: calc(${SIZE} * 0.08);
1161
- animation: ld-morph-round ${duration("morph")} ease-in-out infinite;
1162
- animation-play-state: ${PLAY_STATE};
1163
- }
1164
-
1165
- @keyframes ld-morph-round {
1166
- 0% {
1167
- border-radius: calc(${SIZE} * 0.08);
1168
- transform: rotate(0);
1169
- }
1170
- 50% {
1171
- border-radius: 50%;
1172
- transform: rotate(45deg);
1173
- }
1174
- 100% {
1175
- border-radius: calc(${SIZE} * 0.08);
1176
- transform: rotate(90deg);
1177
- }
1178
- }
1179
-
1180
- @media (prefers-reduced-motion: reduce) {
1181
- .ld-morph-shape {
1182
- animation: none;
1183
- }
1184
- }
1185
- `;
1186
- function Morph(props) {
1187
- return /* @__PURE__ */ jsxs19(Fragment19, { children: [
1188
- /* @__PURE__ */ jsx20(SpinnerStyle, { name: "morph", children: css19 }),
1189
- /* @__PURE__ */ jsx20("div", { ...spinnerRoot("morph", props), children: /* @__PURE__ */ jsx20("div", { className: "ld-morph-shape" }) })
1190
- ] });
1191
- }
1192
-
1193
- // src/orbit.tsx
1194
- import { Fragment as Fragment20, jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
1195
- var css20 = `
1196
- .ld-orbit {
1197
- --ld-orbit-stroke: calc(${SIZE} * 0.0625);
1198
- position: relative;
1199
- width: ${SIZE};
1200
- height: ${SIZE};
1201
- }
1202
-
1203
- .ld-orbit-track {
1204
- position: absolute;
1205
- inset: 8%;
1206
- border-radius: 9999px;
1207
- background: conic-gradient(from 180deg, transparent 0deg, currentColor 180deg, transparent 180deg);
1208
- -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - var(--ld-orbit-stroke)), #000 0);
1209
- mask: radial-gradient(farthest-side, transparent calc(100% - var(--ld-orbit-stroke)), #000 0);
1210
- }
1211
-
1212
- .ld-orbit-dot {
1213
- position: absolute;
1214
- top: 50%;
1215
- left: 50%;
1216
- width: 25%;
1217
- height: 25%;
1218
- background: currentColor;
1219
- border-radius: 9999px;
1220
- transform: translate(-50%, -50%);
1221
- }
1222
-
1223
- ${rotationCss("orbit")}
1224
- `;
1225
- function Orbit({ easing, ...rest }) {
1226
- return /* @__PURE__ */ jsxs20(Fragment20, { children: [
1227
- /* @__PURE__ */ jsx21(SpinnerStyle, { name: "orbit", children: css20 }),
1228
- /* @__PURE__ */ jsxs20("div", { ...spinnerRoot("orbit", rest), children: [
1229
- /* @__PURE__ */ jsx21("div", { className: "ld-orbit-dot" }),
1230
- /* @__PURE__ */ jsx21("div", { className: `ld-orbit-track ${spinClass("orbit", easing)}` })
1231
- ] })
1232
- ] });
1233
- }
1234
-
1235
- // src/pulse.tsx
1236
- import { Fragment as Fragment21, jsx as jsx22, jsxs as jsxs21 } from "react/jsx-runtime";
1237
- var css21 = `
1238
- .ld-pulse {
1239
- width: ${SIZE};
1240
- height: ${SIZE};
1241
- }
1242
-
1243
- .ld-pulse-ring {
1244
- transform-origin: center;
1245
- animation: ld-pulse-ripple ${duration("pulse")} ease-out infinite;
1246
- animation-play-state: ${PLAY_STATE};
1247
- }
1248
-
1249
- @keyframes ld-pulse-ripple {
1250
- from {
1251
- opacity: 0.4;
1252
- transform: scale(0.25);
1253
- }
1254
- to {
1255
- opacity: 0;
1256
- transform: scale(1);
1257
- }
1258
- }
1259
-
1260
- @media (prefers-reduced-motion: reduce) {
1261
- .ld-pulse-ring {
1262
- opacity: 0.2;
1263
- animation: none;
1264
- }
1265
- }
1266
- `;
1267
- function Pulse(props) {
1268
- return /* @__PURE__ */ jsxs21(Fragment21, { children: [
1269
- /* @__PURE__ */ jsx22(SpinnerStyle, { name: "pulse", children: css21 }),
1270
- /* @__PURE__ */ jsxs21(
1271
- "svg",
1272
- {
1273
- ...spinnerRoot("pulse", props),
1274
- fill: "none",
1275
- role: "presentation",
1276
- viewBox: "0 0 16 16",
1277
- children: [
1278
- /* @__PURE__ */ jsx22(
1279
- "circle",
1280
- {
1281
- className: "ld-pulse-ring",
1282
- cx: "8",
1283
- cy: "8",
1284
- fill: "currentColor",
1285
- r: "8"
1286
- }
1287
- ),
1288
- /* @__PURE__ */ jsx22("circle", { cx: "8", cy: "8", fill: "currentColor", r: "2" })
1289
- ]
1290
- }
1291
- )
1292
- ] });
1293
- }
1294
-
1295
- // src/radar.tsx
1296
- import { useId } from "react";
1297
- import { Fragment as Fragment22, jsx as jsx23, jsxs as jsxs22 } from "react/jsx-runtime";
1298
- var css22 = `
1299
- .ld-radar {
1300
- width: ${SIZE};
1301
- height: ${SIZE};
1302
- }
1303
-
1304
- ${rotationCss("radar")}
1305
- `;
1306
- function Radar({ easing, ...rest }) {
1307
- const beamGradient = useId();
1308
- return /* @__PURE__ */ jsxs22(Fragment22, { children: [
1309
- /* @__PURE__ */ jsx23(SpinnerStyle, { name: "radar", children: css22 }),
1310
- /* @__PURE__ */ jsxs22(
1311
- "svg",
1312
- {
1313
- ...spinnerRoot("radar", rest),
1314
- fill: "none",
1315
- role: "presentation",
1316
- viewBox: "0 0 16 16",
1317
- children: [
1318
- /* @__PURE__ */ jsx23("defs", { children: /* @__PURE__ */ jsxs22(
1319
- "radialGradient",
1320
- {
1321
- cx: "8",
1322
- cy: "8",
1323
- gradientUnits: "userSpaceOnUse",
1324
- id: beamGradient,
1325
- r: "8",
1326
- children: [
1327
- /* @__PURE__ */ jsx23("stop", { offset: "0.3334", stopColor: "currentColor" }),
1328
- /* @__PURE__ */ jsx23("stop", { offset: "1", stopColor: "currentColor", stopOpacity: "0" })
1329
- ]
1330
- }
1331
- ) }),
1332
- /* @__PURE__ */ jsx23("circle", { cx: "8", cy: "8", fill: "currentColor", opacity: "0.2", r: "8" }),
1333
- /* @__PURE__ */ jsx23("circle", { cx: "8", cy: "8", opacity: "0.2", r: "5.5", stroke: "currentColor" }),
1334
- /* @__PURE__ */ jsx23(
1335
- "path",
1336
- {
1337
- className: spinClass("radar", easing),
1338
- d: "M8 0C9.50657 0 10.9824 0.425672 12.2578 1.22754C13.5333 2.02953 14.557 3.17533 15.21 4.5332C15.8629 5.89107 16.1193 7.40626 15.9492 8.90332C15.7791 10.4001 15.1896 11.8184 14.249 12.9951L10.4707 9.69922C10.8037 9.21598 11 8.63123 11 8C11 6.34315 9.65685 5 8 5V0Z",
1339
- fill: `url(#${beamGradient})`
1340
- }
1341
- ),
1342
- /* @__PURE__ */ jsx23("circle", { cx: "8", cy: "8", fill: "currentColor", r: "2" })
1343
- ]
1344
- }
1345
- )
1346
- ] });
1347
- }
1348
-
1349
- // src/ring.tsx
1350
- import { Fragment as Fragment23, jsx as jsx24, jsxs as jsxs23 } from "react/jsx-runtime";
1351
- var css23 = `
1352
- .ld-ring {
1353
- width: ${SIZE};
1354
- height: ${SIZE};
1355
- }
1356
-
1357
- ${rotationCss("ring")}
1358
- `;
1359
- function Ring({ cap, easing, ...rest }) {
1360
- return /* @__PURE__ */ jsxs23(Fragment23, { children: [
1361
- /* @__PURE__ */ jsx24(SpinnerStyle, { name: "ring", children: css23 }),
1362
- /* @__PURE__ */ jsxs23(
1363
- "svg",
1364
- {
1365
- ...spinnerRoot("ring", rest),
1366
- fill: "none",
1367
- role: "presentation",
1368
- viewBox: "0 0 24 24",
1369
- children: [
1370
- /* @__PURE__ */ jsx24(
1371
- "circle",
1372
- {
1373
- cx: "12",
1374
- cy: "12",
1375
- opacity: "0.2",
1376
- r: "10",
1377
- stroke: "currentColor",
1378
- strokeWidth: "2.5"
1379
- }
1380
- ),
1381
- /* @__PURE__ */ jsx24(
1382
- "circle",
1383
- {
1384
- className: spinClass("ring", easing),
1385
- cx: "12",
1386
- cy: "12",
1387
- r: "10",
1388
- stroke: "currentColor",
1389
- strokeDasharray: "16 46.8",
1390
- strokeLinecap: linecap(cap),
1391
- strokeWidth: "2.5"
1392
- }
1393
- )
1394
- ]
1395
- }
1396
- )
1397
- ] });
1398
- }
1399
-
1400
- // src/ripple.tsx
1401
- import { Fragment as Fragment24, jsx as jsx25, jsxs as jsxs24 } from "react/jsx-runtime";
1402
- var DEFAULT_RIPPLE_DIRECTION = "out";
1403
- var RINGS = Array.from({ length: 3 }, (_, index) => index);
1404
- var css24 = `
1405
- .ld-ripple {
1406
- position: relative;
1407
- width: ${SIZE};
1408
- height: ${SIZE};
1409
- }
1410
-
1411
- .ld-ripple-ring {
1412
- position: absolute;
1413
- inset: 0;
1414
- box-sizing: border-box;
1415
- border: calc(${SIZE} * 0.08) solid currentColor;
1416
- border-radius: 9999px;
1417
- animation: ld-ripple-spread ${duration("ripple")} ease-out infinite;
1418
- animation-delay: ${stagger("ripple", RINGS.length)};
1419
- animation-play-state: ${PLAY_STATE};
1420
- }
1421
-
1422
- .ld-ripple-ring-in {
1423
- animation-direction: reverse;
1424
- }
1425
-
1426
- @keyframes ld-ripple-spread {
1427
- from {
1428
- opacity: 1;
1429
- transform: scale(0);
1430
- }
1431
- to {
1432
- opacity: 0;
1433
- transform: scale(1);
1434
- }
1435
- }
1436
-
1437
- @media (prefers-reduced-motion: reduce) {
1438
- .ld-ripple-ring {
1439
- opacity: 0.4;
1440
- transform: scale(calc((var(${STEP_VAR}) + 1) / ${RINGS.length}));
1441
- animation: none;
1442
- }
1443
- }
1444
- `;
1445
- function Ripple({
1446
- direction = DEFAULT_RIPPLE_DIRECTION,
1447
- ...rest
1448
- }) {
1449
- return /* @__PURE__ */ jsxs24(Fragment24, { children: [
1450
- /* @__PURE__ */ jsx25(SpinnerStyle, { name: "ripple", children: css24 }),
1451
- /* @__PURE__ */ jsx25("div", { ...spinnerRoot("ripple", rest), children: RINGS.map((index) => /* @__PURE__ */ jsx25(
1452
- "div",
1453
- {
1454
- className: `ld-ripple-ring ld-ripple-ring-${direction}`,
1455
- style: step(index)
1456
- },
1457
- index
1458
- )) })
1459
- ] });
1460
- }
1461
-
1462
- // src/slide.tsx
1463
- import { Fragment as Fragment25, jsx as jsx26, jsxs as jsxs25 } from "react/jsx-runtime";
1464
- var DOT = 34;
1465
- var GAP2 = 20;
1466
- var MARGIN = (100 - 2 * DOT - GAP2) / 2;
1467
- var FAR = `${((DOT + GAP2) / DOT * 100).toFixed(1)}%`;
1468
- var RESTS = [
1469
- `translate(${FAR}, 0)`,
1470
- "translate(0, 0)",
1471
- `translate(0, ${FAR})`
1472
- ];
1473
- var css25 = `
1474
- .ld-slide {
1475
- position: relative;
1476
- width: ${SIZE};
1477
- height: ${SIZE};
1478
- }
1479
-
1480
- .ld-slide-dot {
1481
- position: absolute;
1482
- top: ${MARGIN}%;
1483
- left: ${MARGIN}%;
1484
- width: ${DOT}%;
1485
- height: ${DOT}%;
1486
- background: currentColor;
1487
- border-radius: 50%;
1488
- animation: ld-slide-walk ${duration("slide")} ease-in-out infinite;
1489
- animation-delay: ${stagger("slide", RESTS.length)};
1490
- animation-play-state: ${PLAY_STATE};
1491
- }
1492
-
1493
- @keyframes ld-slide-walk {
1494
- 0% {
1495
- transform: translate(${FAR}, 0);
1496
- }
1497
- 8.33%,
1498
- 25% {
1499
- transform: translate(${FAR}, ${FAR});
1500
- }
1501
- 33.33%,
1502
- 50% {
1503
- transform: translate(0, ${FAR});
1504
- }
1505
- 58.33%,
1506
- 75% {
1507
- transform: translate(0, 0);
1508
- }
1509
- 83.33%,
1510
- 100% {
1511
- transform: translate(${FAR}, 0);
1512
- }
1513
- }
1514
-
1515
- @media (prefers-reduced-motion: reduce) {
1516
- .ld-slide-dot {
1517
- transform: var(--ld-slide-rest);
1518
- animation: none;
1519
- }
1520
- }
1521
- `;
1522
- function Slide(props) {
1523
- return /* @__PURE__ */ jsxs25(Fragment25, { children: [
1524
- /* @__PURE__ */ jsx26(SpinnerStyle, { name: "slide", children: css25 }),
1525
- /* @__PURE__ */ jsx26("div", { ...spinnerRoot("slide", props), children: RESTS.map((rest, index) => /* @__PURE__ */ jsx26(
1526
- "div",
1527
- {
1528
- className: "ld-slide-dot",
1529
- style: cssVars({ ...step(index), "--ld-slide-rest": rest })
1530
- },
1531
- rest
1532
- )) })
1533
- ] });
1534
- }
1535
-
1536
- // src/snake.tsx
1537
- import { Fragment as Fragment26, jsx as jsx27, jsxs as jsxs26 } from "react/jsx-runtime";
1538
- var css26 = `
1539
- .ld-snake {
1540
- width: ${SIZE};
1541
- height: ${SIZE};
1542
- }
1543
-
1544
- ${rotationCss("snake")}
1545
-
1546
- .ld-snake-dash {
1547
- animation: ld-snake-stretch ${duration("snake")} ease-in-out infinite;
1548
- animation-play-state: ${PLAY_STATE};
1549
- }
1550
-
1551
- @keyframes ld-snake-stretch {
1552
- 0% {
1553
- stroke-dasharray: 1 100;
1554
- stroke-dashoffset: 0;
1555
- }
1556
- 50% {
1557
- stroke-dasharray: 45 100;
1558
- stroke-dashoffset: -17;
1559
- }
1560
- 100% {
1561
- stroke-dasharray: 45 100;
1562
- stroke-dashoffset: -62;
1563
- }
1564
- }
1565
-
1566
- @media (prefers-reduced-motion: reduce) {
1567
- .ld-snake-dash {
1568
- stroke-dasharray: 18 100;
1569
- animation: none;
1570
- }
1571
- }
1572
- `;
1573
- function Snake({ cap, easing, ...rest }) {
1574
- return /* @__PURE__ */ jsxs26(Fragment26, { children: [
1575
- /* @__PURE__ */ jsx27(SpinnerStyle, { name: "snake", children: css26 }),
1576
- /* @__PURE__ */ jsx27(
1577
- "svg",
1578
- {
1579
- ...spinnerRoot("snake", rest),
1580
- fill: "none",
1581
- role: "presentation",
1582
- viewBox: "0 0 24 24",
1583
- children: /* @__PURE__ */ jsx27("g", { className: spinClass("snake", easing), children: /* @__PURE__ */ jsx27(
1584
- "circle",
1585
- {
1586
- className: "ld-snake-dash",
1587
- cx: "12",
1588
- cy: "12",
1589
- r: "10",
1590
- stroke: "currentColor",
1591
- strokeLinecap: linecap(cap),
1592
- strokeWidth: "2.5"
1593
- }
1594
- ) })
1595
- }
1596
- )
1597
- ] });
1598
- }
1599
-
1600
- // src/swirl.tsx
1601
- import { Fragment as Fragment27, jsx as jsx28, jsxs as jsxs27 } from "react/jsx-runtime";
1602
- var RING = [0, 1, 2, 7, null, 3, 6, 5, 4];
1603
- var PLACES = RING.filter((place) => place !== null).length;
1604
- var css27 = `
1605
- .ld-swirl {
1606
- display: grid;
1607
- grid-template-columns: repeat(3, 1fr);
1608
- grid-template-rows: repeat(3, 1fr);
1609
- gap: calc(${SIZE} * 0.15625);
1610
- box-sizing: border-box;
1611
- width: ${SIZE};
1612
- height: ${SIZE};
1613
- padding: calc(${SIZE} * 0.0625);
1614
- }
1615
-
1616
- .ld-swirl-cell {
1617
- background: currentColor;
1618
- border-radius: calc(${SIZE} * 0.0625);
1619
- animation: ld-swirl-fade ${duration("swirl")} linear infinite;
1620
- animation-delay: ${stagger("swirl", PLACES)};
1621
- animation-play-state: ${PLAY_STATE};
1622
- }
1623
-
1624
- @keyframes ld-swirl-fade {
1625
- from {
1626
- opacity: 1;
1627
- }
1628
- to {
1629
- opacity: 0.2;
1630
- }
1631
- }
1632
-
1633
- @media (prefers-reduced-motion: reduce) {
1634
- .ld-swirl-cell {
1635
- opacity: 0.6;
1636
- animation: none;
1637
- }
1638
- }
1639
- `;
1640
- function Swirl(props) {
1641
- return /* @__PURE__ */ jsxs27(Fragment27, { children: [
1642
- /* @__PURE__ */ jsx28(SpinnerStyle, { name: "swirl", children: css27 }),
1643
- /* @__PURE__ */ jsx28("div", { ...spinnerRoot("swirl", props), children: RING.map(
1644
- (place, index) => place === null ? /* @__PURE__ */ jsx28("div", {}, index) : /* @__PURE__ */ jsx28("div", { className: "ld-swirl-cell", style: step(place) }, index)
1645
- ) })
1646
- ] });
1647
- }
1648
-
1649
- // src/trace.tsx
1650
- import { Fragment as Fragment28, jsx as jsx29, jsxs as jsxs28 } from "react/jsx-runtime";
1651
- var VIEW = 20;
1652
- var SIDE2 = 17.5;
1653
- var RADIUS = 4;
1654
- var PERIMETER = 4 * (SIDE2 - 2 * RADIUS) + 2 * Math.PI * RADIUS;
1655
- var DASH = 16;
1656
- var RECT = {
1657
- height: SIDE2,
1658
- rx: RADIUS,
1659
- width: SIDE2,
1660
- x: (VIEW - SIDE2) / 2,
1661
- y: (VIEW - SIDE2) / 2
1662
- };
1663
- var css28 = `
1664
- .ld-trace {
1665
- width: ${SIZE};
1666
- height: ${SIZE};
1667
- }
1668
-
1669
- ${rotationCss(
1670
- "trace",
1671
- `to {
1672
- stroke-dashoffset: ${-PERIMETER};
1673
- }`
1674
- )}
1675
- `;
1676
- function Trace({ cap, easing, ...rest }) {
1677
- return /* @__PURE__ */ jsxs28(Fragment28, { children: [
1678
- /* @__PURE__ */ jsx29(SpinnerStyle, { name: "trace", children: css28 }),
1679
- /* @__PURE__ */ jsxs28(
1680
- "svg",
1681
- {
1682
- ...spinnerRoot("trace", rest),
1683
- fill: "none",
1684
- role: "presentation",
1685
- stroke: "currentColor",
1686
- strokeWidth: "2.5",
1687
- viewBox: `0 0 ${VIEW} ${VIEW}`,
1688
- children: [
1689
- /* @__PURE__ */ jsx29("rect", { ...RECT, opacity: "0.2" }),
1690
- /* @__PURE__ */ jsx29(
1691
- "rect",
1692
- {
1693
- ...RECT,
1694
- className: spinClass("trace", easing),
1695
- strokeDasharray: `${DASH} ${PERIMETER - DASH}`,
1696
- strokeLinecap: linecap(cap)
1697
- }
1698
- )
1699
- ]
1700
- }
1701
- )
1702
- ] });
1703
- }
1704
-
1705
- // src/wave.tsx
1706
- import { Fragment as Fragment29, jsx as jsx30, jsxs as jsxs29 } from "react/jsx-runtime";
1707
- var DEFAULT_WAVE_ORIGIN = "center";
1708
- var BARS2 = Array.from({ length: 5 }, (_, index) => index);
1709
- var css29 = `
1710
- .ld-wave {
1711
- display: flex;
1712
- align-items: center;
1713
- justify-content: space-between;
1714
- width: ${SIZE};
1715
- height: ${SIZE};
1716
- }
1717
-
1718
- .ld-wave-bar {
1719
- width: calc(${SIZE} * 0.12);
1720
- height: 100%;
1721
- background: currentColor;
1722
- border-radius: 9999px;
1723
- animation: ld-wave-rise ${duration("wave")} ease-in-out infinite;
1724
- animation-delay: ${stagger("wave", BARS2.length)};
1725
- animation-play-state: ${PLAY_STATE};
1726
- }
1727
-
1728
- .ld-wave-bar-bottom {
1729
- align-self: flex-end;
1730
- }
1731
-
1732
- @keyframes ld-wave-rise {
1733
- 0%,
1734
- 100% {
1735
- height: 30%;
1736
- }
1737
- 50% {
1738
- height: 100%;
1739
- }
1740
- }
1741
-
1742
- @media (prefers-reduced-motion: reduce) {
1743
- .ld-wave-bar {
1744
- height: calc((0.4 + var(${STEP_VAR}) * 0.15) * 100%);
1745
- animation: none;
1746
- }
1747
- }
1748
- `;
1749
- function Wave({ origin = DEFAULT_WAVE_ORIGIN, ...rest }) {
1750
- return /* @__PURE__ */ jsxs29(Fragment29, { children: [
1751
- /* @__PURE__ */ jsx30(SpinnerStyle, { name: "wave", children: css29 }),
1752
- /* @__PURE__ */ jsx30("div", { ...spinnerRoot("wave", rest), children: BARS2.map((index) => /* @__PURE__ */ jsx30(
1753
- "div",
1754
- {
1755
- className: `ld-wave-bar ld-wave-bar-${origin}`,
1756
- style: step(index)
1757
- },
1758
- index
1759
- )) })
1760
- ] });
1761
- }
1762
-
1763
- // src/spinners.ts
1764
- var SPINNERS = {
1765
- arc: Arc,
1766
- atom: Atom,
1767
- blocks: Blocks,
1768
- "bouncing-dots": BouncingDots,
1769
- cascade: Cascade,
1770
- "circular-dots": CircularDots,
1771
- classic: Classic,
1772
- "classic-v2": ClassicV2,
1773
- clock: Clock,
1774
- comet: Comet,
1775
- compass: Compass,
1776
- dual: Dual,
1777
- eclipse: Eclipse,
1778
- flip: Flip,
1779
- gather: Gather,
1780
- leap: Leap,
1781
- "linear-dots": LinearDots,
1782
- loading: Loading,
1783
- morph: Morph,
1784
- orbit: Orbit,
1785
- pulse: Pulse,
1786
- radar: Radar,
1787
- ring: Ring,
1788
- ripple: Ripple,
1789
- slide: Slide,
1790
- snake: Snake,
1791
- swirl: Swirl,
1792
- trace: Trace,
1793
- wave: Wave
1794
- };
1
+ import {
2
+ SPINNERS
3
+ } from "./chunk-HL7TIIDB.js";
4
+ import {
5
+ Swirl
6
+ } from "./chunk-SUUR5WMA.js";
7
+ import {
8
+ Trace
9
+ } from "./chunk-KAZ5BTXC.js";
10
+ import {
11
+ DEFAULT_WAVE_ORIGIN,
12
+ Wave
13
+ } from "./chunk-DKYEZLIN.js";
14
+ import {
15
+ Orbit
16
+ } from "./chunk-LDXBT62V.js";
17
+ import {
18
+ Pulse
19
+ } from "./chunk-PM6DU637.js";
20
+ import {
21
+ Radar
22
+ } from "./chunk-2OX27TAE.js";
23
+ import {
24
+ Ring
25
+ } from "./chunk-L2DUMHO4.js";
26
+ import {
27
+ DEFAULT_RIPPLE_DIRECTION,
28
+ Ripple
29
+ } from "./chunk-FQ2U2M7F.js";
30
+ import {
31
+ Slide
32
+ } from "./chunk-BCIAMPLU.js";
33
+ import {
34
+ Snake
35
+ } from "./chunk-UOXB5QOZ.js";
36
+ import {
37
+ Flip
38
+ } from "./chunk-YIB63EKJ.js";
39
+ import {
40
+ Gather
41
+ } from "./chunk-JKLL7YYG.js";
42
+ import {
43
+ Leap
44
+ } from "./chunk-4O4ADYWE.js";
45
+ import {
46
+ LinearDots
47
+ } from "./chunk-FWH6VWVK.js";
48
+ import {
49
+ Loading
50
+ } from "./chunk-RAHAQ7XK.js";
51
+ import {
52
+ Morph
53
+ } from "./chunk-P4BSSDSY.js";
54
+ import {
55
+ Classic
56
+ } from "./chunk-IJJULNRU.js";
57
+ import {
58
+ Clock
59
+ } from "./chunk-2TYML5J2.js";
60
+ import {
61
+ Comet
62
+ } from "./chunk-UXTZTFNZ.js";
63
+ import {
64
+ Compass
65
+ } from "./chunk-JQNF5GYA.js";
66
+ import {
67
+ Dual
68
+ } from "./chunk-5UAEBEER.js";
69
+ import {
70
+ Eclipse
71
+ } from "./chunk-2LMGBBRJ.js";
72
+ import {
73
+ Arc
74
+ } from "./chunk-MAKBZTL3.js";
75
+ import {
76
+ Atom
77
+ } from "./chunk-BAVSTTWG.js";
78
+ import {
79
+ DEFAULT_EASING
80
+ } from "./chunk-A2PZBHTA.js";
81
+ import {
82
+ Blocks,
83
+ DEFAULT_BLOCKS_SWEEP
84
+ } from "./chunk-VZX7APSS.js";
85
+ import {
86
+ BouncingDots
87
+ } from "./chunk-ULWRXY3A.js";
88
+ import {
89
+ Cascade
90
+ } from "./chunk-KOYM24WV.js";
91
+ import {
92
+ DEFAULT_CAP
93
+ } from "./chunk-JNR4T6LZ.js";
94
+ import {
95
+ CircularDots
96
+ } from "./chunk-3WMZVDPS.js";
97
+ import {
98
+ ClassicV2
99
+ } from "./chunk-R5ZDKN3Z.js";
100
+ import "./chunk-PVVWLDIS.js";
101
+ import "./chunk-UAO52LUL.js";
102
+ import {
103
+ DURATION_VAR,
104
+ PLAY_STATE_VAR,
105
+ SPINNER_MOTION
106
+ } from "./chunk-OMNMMKI7.js";
1795
107
  export {
1796
108
  Arc,
1797
109
  Atom,