premium-react-loaders 4.0.0 → 4.1.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.
Files changed (162) hide show
  1. package/dist/components/index.d.ts +1 -0
  2. package/dist/components/index.d.ts.map +1 -1
  3. package/dist/components/neon/NeonPulse.d.ts +12 -0
  4. package/dist/components/neon/NeonPulse.d.ts.map +1 -0
  5. package/dist/components/neon/NeonSpinner.d.ts +12 -0
  6. package/dist/components/neon/NeonSpinner.d.ts.map +1 -0
  7. package/dist/components/neon/NeonText.d.ts +12 -0
  8. package/dist/components/neon/NeonText.d.ts.map +1 -0
  9. package/dist/components/neon/index.d.ts +4 -0
  10. package/dist/components/neon/index.d.ts.map +1 -0
  11. package/dist/components/particle/ParticleField.d.ts +3 -0
  12. package/dist/components/particle/ParticleField.d.ts.map +1 -0
  13. package/dist/components/particle/ParticleTrail.d.ts +12 -0
  14. package/dist/components/particle/ParticleTrail.d.ts.map +1 -0
  15. package/dist/components/particle/index.d.ts +2 -0
  16. package/dist/components/particle/index.d.ts.map +1 -1
  17. package/dist/components/status/InfoIndicator.d.ts +29 -0
  18. package/dist/components/status/InfoIndicator.d.ts.map +1 -0
  19. package/dist/components/status/WarningIndicator.d.ts +29 -0
  20. package/dist/components/status/WarningIndicator.d.ts.map +1 -0
  21. package/dist/components/status/index.d.ts +2 -0
  22. package/dist/components/status/index.d.ts.map +1 -1
  23. package/dist/index.cjs +41 -27
  24. package/dist/index.js +41 -27
  25. package/dist/index10.cjs +1 -1
  26. package/dist/index10.js +1 -1
  27. package/dist/index11.cjs +1 -1
  28. package/dist/index11.js +1 -1
  29. package/dist/index12.cjs +1 -1
  30. package/dist/index12.js +1 -1
  31. package/dist/index13.cjs +1 -1
  32. package/dist/index13.js +1 -1
  33. package/dist/index14.cjs +1 -1
  34. package/dist/index14.js +1 -1
  35. package/dist/index15.cjs +1 -1
  36. package/dist/index15.js +1 -1
  37. package/dist/index17.cjs +1 -1
  38. package/dist/index17.js +1 -1
  39. package/dist/index18.cjs +1 -1
  40. package/dist/index18.js +1 -1
  41. package/dist/index19.cjs +1 -1
  42. package/dist/index19.js +1 -1
  43. package/dist/index20.cjs +1 -1
  44. package/dist/index20.js +1 -1
  45. package/dist/index21.cjs +1 -1
  46. package/dist/index21.js +1 -1
  47. package/dist/index22.cjs +1 -1
  48. package/dist/index22.js +1 -1
  49. package/dist/index23.cjs +1 -1
  50. package/dist/index23.js +1 -1
  51. package/dist/index24.cjs +1 -1
  52. package/dist/index24.js +1 -1
  53. package/dist/index25.cjs +1 -1
  54. package/dist/index25.js +1 -1
  55. package/dist/index26.cjs +1 -1
  56. package/dist/index26.js +1 -1
  57. package/dist/index27.cjs +1 -1
  58. package/dist/index27.js +1 -1
  59. package/dist/index28.cjs +1 -1
  60. package/dist/index28.js +1 -1
  61. package/dist/index29.cjs +1 -1
  62. package/dist/index29.js +1 -1
  63. package/dist/index30.cjs +1 -1
  64. package/dist/index30.js +1 -1
  65. package/dist/index31.cjs +1 -1
  66. package/dist/index31.js +1 -1
  67. package/dist/index32.cjs +1 -1
  68. package/dist/index32.js +1 -1
  69. package/dist/index33.cjs +1 -1
  70. package/dist/index33.js +1 -1
  71. package/dist/index34.cjs +1 -1
  72. package/dist/index34.js +1 -1
  73. package/dist/index35.cjs +1 -1
  74. package/dist/index35.js +1 -1
  75. package/dist/index36.cjs +1 -1
  76. package/dist/index36.js +1 -1
  77. package/dist/index37.cjs +59 -145
  78. package/dist/index37.js +61 -147
  79. package/dist/index38.cjs +32 -53
  80. package/dist/index38.js +33 -54
  81. package/dist/index39.cjs +138 -84
  82. package/dist/index39.js +140 -86
  83. package/dist/index40.cjs +33 -106
  84. package/dist/index40.js +34 -107
  85. package/dist/index41.cjs +66 -50
  86. package/dist/index41.js +66 -50
  87. package/dist/index42.cjs +123 -44
  88. package/dist/index42.js +124 -45
  89. package/dist/index43.cjs +43 -85
  90. package/dist/index43.js +44 -86
  91. package/dist/index44.cjs +35 -27
  92. package/dist/index44.js +35 -27
  93. package/dist/index45.cjs +87 -58
  94. package/dist/index45.js +87 -58
  95. package/dist/index46.cjs +35 -88
  96. package/dist/index46.js +36 -89
  97. package/dist/index47.cjs +62 -58
  98. package/dist/index47.js +63 -59
  99. package/dist/index48.cjs +87 -110
  100. package/dist/index48.js +88 -111
  101. package/dist/index49.cjs +48 -109
  102. package/dist/index49.js +49 -110
  103. package/dist/index50.cjs +110 -62
  104. package/dist/index50.js +111 -63
  105. package/dist/index51.cjs +104 -49
  106. package/dist/index51.js +104 -49
  107. package/dist/index52.cjs +43 -77
  108. package/dist/index52.js +44 -78
  109. package/dist/index53.cjs +56 -56
  110. package/dist/index53.js +56 -56
  111. package/dist/index54.cjs +104 -149
  112. package/dist/index54.js +106 -151
  113. package/dist/index55.cjs +97 -38
  114. package/dist/index55.js +99 -40
  115. package/dist/index56.cjs +161 -27
  116. package/dist/index56.js +162 -28
  117. package/dist/index57.cjs +36 -102
  118. package/dist/index57.js +38 -104
  119. package/dist/index58.cjs +19 -34
  120. package/dist/index58.js +20 -35
  121. package/dist/index59.cjs +87 -34
  122. package/dist/index59.js +89 -36
  123. package/dist/index60.cjs +25 -23
  124. package/dist/index60.js +25 -23
  125. package/dist/index61.cjs +32 -65
  126. package/dist/index61.js +34 -67
  127. package/dist/index62.cjs +29 -36
  128. package/dist/index62.js +30 -37
  129. package/dist/index63.cjs +66 -59
  130. package/dist/index63.js +69 -62
  131. package/dist/index64.cjs +71 -121
  132. package/dist/index64.js +72 -122
  133. package/dist/index65.cjs +92 -0
  134. package/dist/index65.js +92 -0
  135. package/dist/index66.cjs +76 -0
  136. package/dist/index66.js +76 -0
  137. package/dist/index67.cjs +76 -0
  138. package/dist/index67.js +76 -0
  139. package/dist/index68.cjs +64 -0
  140. package/dist/index68.js +64 -0
  141. package/dist/index69.cjs +60 -0
  142. package/dist/index69.js +60 -0
  143. package/dist/index7.cjs +1 -1
  144. package/dist/index7.js +1 -1
  145. package/dist/index70.cjs +57 -0
  146. package/dist/index70.js +57 -0
  147. package/dist/index71.cjs +125 -0
  148. package/dist/index71.js +125 -0
  149. package/dist/index8.cjs +1 -1
  150. package/dist/index8.js +1 -1
  151. package/dist/index9.cjs +1 -1
  152. package/dist/index9.js +1 -1
  153. package/dist/premium-react-loaders.css +85 -0
  154. package/dist/types/index.d.ts +1 -0
  155. package/dist/types/index.d.ts.map +1 -1
  156. package/dist/types/neon.d.ts +26 -0
  157. package/dist/types/neon.d.ts.map +1 -0
  158. package/dist/types/particle.d.ts +18 -0
  159. package/dist/types/particle.d.ts.map +1 -1
  160. package/dist/types/status.d.ts +30 -0
  161. package/dist/types/status.d.ts.map +1 -1
  162. package/package.json +1 -1
package/dist/index48.cjs CHANGED
@@ -2,28 +2,29 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const react = require("react");
5
- const hooks = require("./index64.cjs");
5
+ const hooks = require("./index71.cjs");
6
6
  const classNames = require("./index3.cjs");
7
- const LoadingText = react.forwardRef(
7
+ const colors = require("./index4.cjs");
8
+ const InfinityLoader = react.forwardRef(
8
9
  ({
9
- text = "Loading",
10
- animation = "dots",
11
- fontSize = 16,
12
- fontWeight = 500,
13
- color = "#374151",
14
- dotCount = 3,
15
- showEllipsis = true,
16
- textClassName,
10
+ size = "md",
11
+ color = "#3b82f6",
12
+ secondaryColor,
13
+ thickness = 3,
14
+ gradient = false,
15
+ showDot = false,
16
+ dotSize = 6,
17
17
  speed = "normal",
18
+ reverse = false,
18
19
  respectMotionPreference = true,
19
20
  delay = 0,
20
21
  minDuration = 0,
21
22
  transition,
22
23
  className,
23
24
  style,
24
- testId = "loading-text",
25
+ testId = "infinity-loader",
25
26
  visible = true,
26
- ariaLabel,
27
+ ariaLabel = "Loading...",
27
28
  ...rest
28
29
  }, ref) => {
29
30
  const prefersReducedMotion = hooks.useReducedMotion();
@@ -35,118 +36,94 @@ const LoadingText = react.forwardRef(
35
36
  transition
36
37
  );
37
38
  if (!shouldRender) return null;
38
- const durationNum = parseInt(effectiveDuration, 10);
39
- const normalizedFontSize = typeof fontSize === "number" ? `${fontSize}px` : fontSize;
40
- const renderDots = () => {
41
- if (!showEllipsis) return null;
42
- switch (animation) {
43
- case "dots":
44
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex", children: Array.from({ length: dotCount }, (_, index) => /* @__PURE__ */ jsxRuntime.jsx(
45
- "span",
46
- {
47
- style: {
48
- animation: `loading-text-dot ${durationNum}ms ease-in-out infinite`,
49
- animationDelay: `${index * (durationNum / dotCount / 2)}ms`
50
- },
51
- children: "."
52
- },
53
- index
54
- )) });
55
- case "fade":
56
- return /* @__PURE__ */ jsxRuntime.jsx(
57
- "span",
58
- {
59
- style: {
60
- animation: `loading-text-fade ${durationNum}ms ease-in-out infinite`
61
- },
62
- children: "..."
63
- }
64
- );
65
- case "bounce":
66
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex", children: Array.from({ length: dotCount }, (_, index) => /* @__PURE__ */ jsxRuntime.jsx(
67
- "span",
68
- {
69
- className: "inline-block",
70
- style: {
71
- animation: `loading-text-bounce ${durationNum}ms ease-in-out infinite`,
72
- animationDelay: `${index * (durationNum / dotCount / 2)}ms`
73
- },
74
- children: "."
75
- },
76
- index
77
- )) });
78
- case "wave":
79
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex", children: Array.from({ length: dotCount }, (_, index) => /* @__PURE__ */ jsxRuntime.jsx(
80
- "span",
81
- {
82
- className: "inline-block",
83
- style: {
84
- animation: `loading-text-wave ${durationNum}ms ease-in-out infinite`,
85
- animationDelay: `${index * (durationNum / dotCount / 1.5)}ms`
86
- },
87
- children: "."
88
- },
89
- index
90
- )) });
91
- default:
92
- return "...";
93
- }
94
- };
95
- const renderText = () => {
96
- if (animation === "wave" || animation === "bounce") {
97
- return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: text.split("").map((char, index) => /* @__PURE__ */ jsxRuntime.jsx(
98
- "span",
99
- {
100
- className: "inline-block",
101
- style: {
102
- animation: `loading-text-${animation} ${durationNum}ms ease-in-out infinite`,
103
- animationDelay: `${index * 50}ms`
104
- },
105
- children: char === " " ? " " : char
106
- },
107
- index
108
- )) });
109
- }
110
- if (animation === "fade") {
111
- return /* @__PURE__ */ jsxRuntime.jsx(
112
- "span",
113
- {
114
- style: {
115
- animation: `loading-text-fade ${durationNum}ms ease-in-out infinite`
116
- },
117
- children: text
118
- }
119
- );
120
- }
121
- return text;
122
- };
39
+ const normalizedSize = colors.normalizeSize(size);
40
+ const sizeNum = parseInt(normalizedSize, 10);
41
+ const width = sizeNum;
42
+ const height = sizeNum * 0.5;
43
+ const infinityPath = `M ${width * 0.15} ${height * 0.5}
44
+ C ${width * 0.15} ${height * 0.1}, ${width * 0.4} ${height * 0.1}, ${width * 0.5} ${height * 0.5}
45
+ C ${width * 0.6} ${height * 0.9}, ${width * 0.85} ${height * 0.9}, ${width * 0.85} ${height * 0.5}
46
+ C ${width * 0.85} ${height * 0.1}, ${width * 0.6} ${height * 0.1}, ${width * 0.5} ${height * 0.5}
47
+ C ${width * 0.4} ${height * 0.9}, ${width * 0.15} ${height * 0.9}, ${width * 0.15} ${height * 0.5}`;
48
+ const gradientId = `infinity-gradient-${testId}`;
49
+ const pathId = `infinity-path-${testId}`;
123
50
  return /* @__PURE__ */ jsxRuntime.jsx(
124
51
  "div",
125
52
  {
126
53
  ref,
127
54
  "data-testid": testId,
128
- className: classNames.cn("inline-flex items-center", className),
55
+ className: classNames.cn("inline-flex items-center justify-center", className),
129
56
  style: {
57
+ width,
58
+ height,
130
59
  opacity,
131
60
  transition: transitionStyle,
132
61
  ...style
133
62
  },
134
63
  role: "status",
135
- "aria-label": ariaLabel || `${text}...`,
64
+ "aria-label": ariaLabel,
136
65
  "aria-busy": "true",
137
66
  ...rest,
138
67
  children: /* @__PURE__ */ jsxRuntime.jsxs(
139
- "span",
68
+ "svg",
140
69
  {
141
- className: classNames.cn("inline-flex items-baseline", textClassName),
142
- style: {
143
- fontSize: normalizedFontSize,
144
- fontWeight,
145
- color
146
- },
70
+ width,
71
+ height,
72
+ viewBox: `0 0 ${width} ${height}`,
73
+ fill: "none",
147
74
  children: [
148
- renderText(),
149
- renderDots()
75
+ gradient && secondaryColor && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: gradientId, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
76
+ /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: color }),
77
+ /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: secondaryColor })
78
+ ] }) }),
79
+ /* @__PURE__ */ jsxRuntime.jsx(
80
+ "path",
81
+ {
82
+ d: infinityPath,
83
+ stroke: gradient && secondaryColor ? `url(#${gradientId})` : color,
84
+ strokeWidth: thickness,
85
+ strokeLinecap: "round",
86
+ fill: "none",
87
+ opacity: 0.2
88
+ }
89
+ ),
90
+ /* @__PURE__ */ jsxRuntime.jsx(
91
+ "path",
92
+ {
93
+ id: pathId,
94
+ d: infinityPath,
95
+ stroke: gradient && secondaryColor ? `url(#${gradientId})` : color,
96
+ strokeWidth: thickness,
97
+ strokeLinecap: "round",
98
+ fill: "none",
99
+ style: {
100
+ strokeDasharray: "50 200",
101
+ animation: `infinity-dash ${effectiveDuration} linear infinite`,
102
+ animationDirection: reverse ? "reverse" : "normal"
103
+ }
104
+ }
105
+ ),
106
+ showDot && /* @__PURE__ */ jsxRuntime.jsx(
107
+ "circle",
108
+ {
109
+ r: dotSize / 2,
110
+ fill: secondaryColor || color,
111
+ style: {
112
+ animation: `infinity-dot ${effectiveDuration} linear infinite`,
113
+ animationDirection: reverse ? "reverse" : "normal"
114
+ },
115
+ children: /* @__PURE__ */ jsxRuntime.jsx(
116
+ "animateMotion",
117
+ {
118
+ dur: effectiveDuration,
119
+ repeatCount: "indefinite",
120
+ path: infinityPath,
121
+ keyPoints: reverse ? "1;0" : "0;1",
122
+ keyTimes: "0;1"
123
+ }
124
+ )
125
+ }
126
+ )
150
127
  ]
151
128
  }
152
129
  )
@@ -154,5 +131,5 @@ const LoadingText = react.forwardRef(
154
131
  );
155
132
  }
156
133
  );
157
- LoadingText.displayName = "LoadingText";
158
- exports.LoadingText = LoadingText;
134
+ InfinityLoader.displayName = "InfinityLoader";
135
+ exports.InfinityLoader = InfinityLoader;
package/dist/index48.js CHANGED
@@ -1,27 +1,28 @@
1
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { useReducedMotion, useLoaderVisibility, getEffectiveDuration } from "./index64.js";
3
+ import { useReducedMotion, useLoaderVisibility, getEffectiveDuration } from "./index71.js";
4
4
  import { cn } from "./index3.js";
5
- const LoadingText = forwardRef(
5
+ import { normalizeSize } from "./index4.js";
6
+ const InfinityLoader = forwardRef(
6
7
  ({
7
- text = "Loading",
8
- animation = "dots",
9
- fontSize = 16,
10
- fontWeight = 500,
11
- color = "#374151",
12
- dotCount = 3,
13
- showEllipsis = true,
14
- textClassName,
8
+ size = "md",
9
+ color = "#3b82f6",
10
+ secondaryColor,
11
+ thickness = 3,
12
+ gradient = false,
13
+ showDot = false,
14
+ dotSize = 6,
15
15
  speed = "normal",
16
+ reverse = false,
16
17
  respectMotionPreference = true,
17
18
  delay = 0,
18
19
  minDuration = 0,
19
20
  transition,
20
21
  className,
21
22
  style,
22
- testId = "loading-text",
23
+ testId = "infinity-loader",
23
24
  visible = true,
24
- ariaLabel,
25
+ ariaLabel = "Loading...",
25
26
  ...rest
26
27
  }, ref) => {
27
28
  const prefersReducedMotion = useReducedMotion();
@@ -33,118 +34,94 @@ const LoadingText = forwardRef(
33
34
  transition
34
35
  );
35
36
  if (!shouldRender) return null;
36
- const durationNum = parseInt(effectiveDuration, 10);
37
- const normalizedFontSize = typeof fontSize === "number" ? `${fontSize}px` : fontSize;
38
- const renderDots = () => {
39
- if (!showEllipsis) return null;
40
- switch (animation) {
41
- case "dots":
42
- return /* @__PURE__ */ jsx("span", { className: "inline-flex", children: Array.from({ length: dotCount }, (_, index) => /* @__PURE__ */ jsx(
43
- "span",
44
- {
45
- style: {
46
- animation: `loading-text-dot ${durationNum}ms ease-in-out infinite`,
47
- animationDelay: `${index * (durationNum / dotCount / 2)}ms`
48
- },
49
- children: "."
50
- },
51
- index
52
- )) });
53
- case "fade":
54
- return /* @__PURE__ */ jsx(
55
- "span",
56
- {
57
- style: {
58
- animation: `loading-text-fade ${durationNum}ms ease-in-out infinite`
59
- },
60
- children: "..."
61
- }
62
- );
63
- case "bounce":
64
- return /* @__PURE__ */ jsx("span", { className: "inline-flex", children: Array.from({ length: dotCount }, (_, index) => /* @__PURE__ */ jsx(
65
- "span",
66
- {
67
- className: "inline-block",
68
- style: {
69
- animation: `loading-text-bounce ${durationNum}ms ease-in-out infinite`,
70
- animationDelay: `${index * (durationNum / dotCount / 2)}ms`
71
- },
72
- children: "."
73
- },
74
- index
75
- )) });
76
- case "wave":
77
- return /* @__PURE__ */ jsx("span", { className: "inline-flex", children: Array.from({ length: dotCount }, (_, index) => /* @__PURE__ */ jsx(
78
- "span",
79
- {
80
- className: "inline-block",
81
- style: {
82
- animation: `loading-text-wave ${durationNum}ms ease-in-out infinite`,
83
- animationDelay: `${index * (durationNum / dotCount / 1.5)}ms`
84
- },
85
- children: "."
86
- },
87
- index
88
- )) });
89
- default:
90
- return "...";
91
- }
92
- };
93
- const renderText = () => {
94
- if (animation === "wave" || animation === "bounce") {
95
- return /* @__PURE__ */ jsx(Fragment, { children: text.split("").map((char, index) => /* @__PURE__ */ jsx(
96
- "span",
97
- {
98
- className: "inline-block",
99
- style: {
100
- animation: `loading-text-${animation} ${durationNum}ms ease-in-out infinite`,
101
- animationDelay: `${index * 50}ms`
102
- },
103
- children: char === " " ? " " : char
104
- },
105
- index
106
- )) });
107
- }
108
- if (animation === "fade") {
109
- return /* @__PURE__ */ jsx(
110
- "span",
111
- {
112
- style: {
113
- animation: `loading-text-fade ${durationNum}ms ease-in-out infinite`
114
- },
115
- children: text
116
- }
117
- );
118
- }
119
- return text;
120
- };
37
+ const normalizedSize = normalizeSize(size);
38
+ const sizeNum = parseInt(normalizedSize, 10);
39
+ const width = sizeNum;
40
+ const height = sizeNum * 0.5;
41
+ const infinityPath = `M ${width * 0.15} ${height * 0.5}
42
+ C ${width * 0.15} ${height * 0.1}, ${width * 0.4} ${height * 0.1}, ${width * 0.5} ${height * 0.5}
43
+ C ${width * 0.6} ${height * 0.9}, ${width * 0.85} ${height * 0.9}, ${width * 0.85} ${height * 0.5}
44
+ C ${width * 0.85} ${height * 0.1}, ${width * 0.6} ${height * 0.1}, ${width * 0.5} ${height * 0.5}
45
+ C ${width * 0.4} ${height * 0.9}, ${width * 0.15} ${height * 0.9}, ${width * 0.15} ${height * 0.5}`;
46
+ const gradientId = `infinity-gradient-${testId}`;
47
+ const pathId = `infinity-path-${testId}`;
121
48
  return /* @__PURE__ */ jsx(
122
49
  "div",
123
50
  {
124
51
  ref,
125
52
  "data-testid": testId,
126
- className: cn("inline-flex items-center", className),
53
+ className: cn("inline-flex items-center justify-center", className),
127
54
  style: {
55
+ width,
56
+ height,
128
57
  opacity,
129
58
  transition: transitionStyle,
130
59
  ...style
131
60
  },
132
61
  role: "status",
133
- "aria-label": ariaLabel || `${text}...`,
62
+ "aria-label": ariaLabel,
134
63
  "aria-busy": "true",
135
64
  ...rest,
136
65
  children: /* @__PURE__ */ jsxs(
137
- "span",
66
+ "svg",
138
67
  {
139
- className: cn("inline-flex items-baseline", textClassName),
140
- style: {
141
- fontSize: normalizedFontSize,
142
- fontWeight,
143
- color
144
- },
68
+ width,
69
+ height,
70
+ viewBox: `0 0 ${width} ${height}`,
71
+ fill: "none",
145
72
  children: [
146
- renderText(),
147
- renderDots()
73
+ gradient && secondaryColor && /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("linearGradient", { id: gradientId, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
74
+ /* @__PURE__ */ jsx("stop", { offset: "0%", stopColor: color }),
75
+ /* @__PURE__ */ jsx("stop", { offset: "100%", stopColor: secondaryColor })
76
+ ] }) }),
77
+ /* @__PURE__ */ jsx(
78
+ "path",
79
+ {
80
+ d: infinityPath,
81
+ stroke: gradient && secondaryColor ? `url(#${gradientId})` : color,
82
+ strokeWidth: thickness,
83
+ strokeLinecap: "round",
84
+ fill: "none",
85
+ opacity: 0.2
86
+ }
87
+ ),
88
+ /* @__PURE__ */ jsx(
89
+ "path",
90
+ {
91
+ id: pathId,
92
+ d: infinityPath,
93
+ stroke: gradient && secondaryColor ? `url(#${gradientId})` : color,
94
+ strokeWidth: thickness,
95
+ strokeLinecap: "round",
96
+ fill: "none",
97
+ style: {
98
+ strokeDasharray: "50 200",
99
+ animation: `infinity-dash ${effectiveDuration} linear infinite`,
100
+ animationDirection: reverse ? "reverse" : "normal"
101
+ }
102
+ }
103
+ ),
104
+ showDot && /* @__PURE__ */ jsx(
105
+ "circle",
106
+ {
107
+ r: dotSize / 2,
108
+ fill: secondaryColor || color,
109
+ style: {
110
+ animation: `infinity-dot ${effectiveDuration} linear infinite`,
111
+ animationDirection: reverse ? "reverse" : "normal"
112
+ },
113
+ children: /* @__PURE__ */ jsx(
114
+ "animateMotion",
115
+ {
116
+ dur: effectiveDuration,
117
+ repeatCount: "indefinite",
118
+ path: infinityPath,
119
+ keyPoints: reverse ? "1;0" : "0;1",
120
+ keyTimes: "0;1"
121
+ }
122
+ )
123
+ }
124
+ )
148
125
  ]
149
126
  }
150
127
  )
@@ -152,7 +129,7 @@ const LoadingText = forwardRef(
152
129
  );
153
130
  }
154
131
  );
155
- LoadingText.displayName = "LoadingText";
132
+ InfinityLoader.displayName = "InfinityLoader";
156
133
  export {
157
- LoadingText
134
+ InfinityLoader
158
135
  };