premium-react-loaders 3.0.0 → 3.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 (153) hide show
  1. package/README.md +45 -3
  2. package/dist/components/3d/CubeSpinner.d.ts +21 -0
  3. package/dist/components/3d/CubeSpinner.d.ts.map +1 -0
  4. package/dist/components/3d/FlipCard.d.ts +21 -0
  5. package/dist/components/3d/FlipCard.d.ts.map +1 -0
  6. package/dist/components/3d/Helix.d.ts +23 -0
  7. package/dist/components/3d/Helix.d.ts.map +1 -0
  8. package/dist/components/3d/PerspectiveRing.d.ts +21 -0
  9. package/dist/components/3d/PerspectiveRing.d.ts.map +1 -0
  10. package/dist/components/3d/PlaneRotate.d.ts +21 -0
  11. package/dist/components/3d/PlaneRotate.d.ts.map +1 -0
  12. package/dist/components/3d/index.d.ts +6 -0
  13. package/dist/components/3d/index.d.ts.map +1 -0
  14. package/dist/components/accessibility/LiveRegion.d.ts +34 -0
  15. package/dist/components/accessibility/LiveRegion.d.ts.map +1 -0
  16. package/dist/components/accessibility/index.d.ts +2 -0
  17. package/dist/components/accessibility/index.d.ts.map +1 -0
  18. package/dist/components/index.d.ts +3 -0
  19. package/dist/components/index.d.ts.map +1 -1
  20. package/dist/components/skeleton/DataTableSkeleton.d.ts +25 -0
  21. package/dist/components/skeleton/DataTableSkeleton.d.ts.map +1 -0
  22. package/dist/components/skeleton/SmartSkeleton.d.ts +23 -0
  23. package/dist/components/skeleton/SmartSkeleton.d.ts.map +1 -0
  24. package/dist/components/skeleton/index.d.ts +2 -0
  25. package/dist/components/skeleton/index.d.ts.map +1 -1
  26. package/dist/components/smart/FormFieldLoader.d.ts +22 -0
  27. package/dist/components/smart/FormFieldLoader.d.ts.map +1 -0
  28. package/dist/components/smart/index.d.ts +2 -0
  29. package/dist/components/smart/index.d.ts.map +1 -0
  30. package/dist/hooks/index.d.ts +6 -0
  31. package/dist/hooks/index.d.ts.map +1 -1
  32. package/dist/hooks/useLoadingAnalytics.d.ts +101 -0
  33. package/dist/hooks/useLoadingAnalytics.d.ts.map +1 -0
  34. package/dist/hooks/useLoadingOrchestrator.d.ts +104 -0
  35. package/dist/hooks/useLoadingOrchestrator.d.ts.map +1 -0
  36. package/dist/hooks/useSmartLoader.d.ts +98 -0
  37. package/dist/hooks/useSmartLoader.d.ts.map +1 -0
  38. package/dist/index.cjs +49 -31
  39. package/dist/index.js +49 -31
  40. package/dist/index10.cjs +1 -1
  41. package/dist/index10.js +1 -1
  42. package/dist/index11.cjs +1 -1
  43. package/dist/index11.js +1 -1
  44. package/dist/index12.cjs +1 -1
  45. package/dist/index12.js +1 -1
  46. package/dist/index13.cjs +1 -1
  47. package/dist/index13.js +1 -1
  48. package/dist/index14.cjs +1 -1
  49. package/dist/index14.js +1 -1
  50. package/dist/index15.cjs +1 -1
  51. package/dist/index15.js +1 -1
  52. package/dist/index16.cjs +131 -66
  53. package/dist/index16.js +132 -67
  54. package/dist/index17.cjs +245 -30
  55. package/dist/index17.js +246 -31
  56. package/dist/index18.cjs +24 -36
  57. package/dist/index18.js +24 -36
  58. package/dist/index19.cjs +19 -21
  59. package/dist/index19.js +19 -21
  60. package/dist/index20.cjs +25 -20
  61. package/dist/index20.js +25 -20
  62. package/dist/index21.cjs +22 -32
  63. package/dist/index21.js +22 -32
  64. package/dist/index22.cjs +26 -35
  65. package/dist/index22.js +28 -37
  66. package/dist/index23.cjs +40 -76
  67. package/dist/index23.js +42 -78
  68. package/dist/index24.cjs +53 -102
  69. package/dist/index24.js +54 -103
  70. package/dist/index25.cjs +46 -80
  71. package/dist/index25.js +47 -81
  72. package/dist/index26.cjs +105 -103
  73. package/dist/index26.js +107 -105
  74. package/dist/index27.cjs +108 -27
  75. package/dist/index27.js +111 -30
  76. package/dist/index28.cjs +104 -36
  77. package/dist/index28.js +106 -38
  78. package/dist/index29.cjs +22 -30
  79. package/dist/index29.js +23 -31
  80. package/dist/index30.cjs +30 -32
  81. package/dist/index30.js +31 -33
  82. package/dist/index31.cjs +49 -52
  83. package/dist/index31.js +50 -53
  84. package/dist/index32.cjs +37 -108
  85. package/dist/index32.js +38 -109
  86. package/dist/index33.cjs +54 -72
  87. package/dist/index33.js +55 -73
  88. package/dist/index34.cjs +112 -80
  89. package/dist/index34.js +112 -80
  90. package/dist/index35.cjs +78 -145
  91. package/dist/index35.js +80 -147
  92. package/dist/index36.cjs +78 -57
  93. package/dist/index36.js +79 -58
  94. package/dist/index37.cjs +138 -84
  95. package/dist/index37.js +140 -86
  96. package/dist/index38.cjs +33 -106
  97. package/dist/index38.js +34 -107
  98. package/dist/index39.cjs +66 -50
  99. package/dist/index39.js +66 -50
  100. package/dist/index40.cjs +123 -44
  101. package/dist/index40.js +124 -45
  102. package/dist/index41.cjs +43 -85
  103. package/dist/index41.js +44 -86
  104. package/dist/index42.cjs +35 -27
  105. package/dist/index42.js +35 -27
  106. package/dist/index43.cjs +87 -58
  107. package/dist/index43.js +87 -58
  108. package/dist/index44.cjs +35 -88
  109. package/dist/index44.js +36 -89
  110. package/dist/index45.cjs +62 -58
  111. package/dist/index45.js +63 -59
  112. package/dist/index46.cjs +87 -110
  113. package/dist/index46.js +88 -111
  114. package/dist/index47.cjs +101 -120
  115. package/dist/index47.js +102 -121
  116. package/dist/index48.cjs +158 -0
  117. package/dist/index48.js +158 -0
  118. package/dist/index49.cjs +167 -0
  119. package/dist/index49.js +167 -0
  120. package/dist/index50.cjs +110 -0
  121. package/dist/index50.js +110 -0
  122. package/dist/index51.cjs +112 -0
  123. package/dist/index51.js +112 -0
  124. package/dist/index52.cjs +144 -0
  125. package/dist/index52.js +144 -0
  126. package/dist/index53.cjs +112 -0
  127. package/dist/index53.js +112 -0
  128. package/dist/index54.cjs +189 -0
  129. package/dist/index54.js +189 -0
  130. package/dist/index55.cjs +53 -0
  131. package/dist/index55.js +53 -0
  132. package/dist/index56.cjs +125 -0
  133. package/dist/index56.js +125 -0
  134. package/dist/index7.cjs +1 -1
  135. package/dist/index7.js +1 -1
  136. package/dist/index8.cjs +1 -1
  137. package/dist/index8.js +1 -1
  138. package/dist/index9.cjs +1 -1
  139. package/dist/index9.js +1 -1
  140. package/dist/premium-react-loaders.css +140 -0
  141. package/dist/types/3d.d.ts +85 -0
  142. package/dist/types/3d.d.ts.map +1 -0
  143. package/dist/types/accessibility.d.ts +35 -0
  144. package/dist/types/accessibility.d.ts.map +1 -0
  145. package/dist/types/index.d.ts +3 -0
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/dist/types/smart.d.ts +63 -0
  148. package/dist/types/smart.d.ts.map +1 -0
  149. package/dist/utils/accessibility.d.ts +67 -0
  150. package/dist/utils/accessibility.d.ts.map +1 -0
  151. package/dist/utils/index.d.ts +1 -0
  152. package/dist/utils/index.d.ts.map +1 -1
  153. package/package.json +1 -1
package/dist/index16.js CHANGED
@@ -1,81 +1,146 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
- import { useReducedMotion, useLoaderVisibility, getEffectiveDuration } from "./index47.js";
4
- import { cn } from "./index3.js";
5
- import { normalizeSize } from "./index4.js";
6
- const SpinnerCircle = forwardRef(
2
+ import { forwardRef, useState, useEffect } from "react";
3
+ import { SkeletonCard } from "./index11.js";
4
+ import { SkeletonTable } from "./index13.js";
5
+ import { SkeletonList } from "./index12.js";
6
+ import { SkeletonText } from "./index8.js";
7
+ import { SkeletonImage } from "./index10.js";
8
+ import { SkeletonForm } from "./index15.js";
9
+ const SmartSkeleton = forwardRef(
7
10
  ({
8
- size = "md",
9
- color = "#3b82f6",
10
- thickness = 4,
11
- speed = "normal",
12
- reverse = false,
13
- respectMotionPreference = true,
14
- delay = 0,
15
- minDuration = 0,
16
- transition,
11
+ contentType = "text",
12
+ referenceElement,
13
+ itemCount = 3,
14
+ detectionStrategy = "mixed",
15
+ width,
16
+ height,
17
+ animate = true,
18
+ baseColor,
19
+ highlightColor,
17
20
  className,
18
21
  style,
19
- testId = "spinner-circle",
22
+ testId = "smart-skeleton",
20
23
  visible = true,
21
- ariaLabel = "Loading...",
22
24
  ...rest
23
25
  }, ref) => {
24
- const prefersReducedMotion = useReducedMotion();
25
- const effectiveDuration = getEffectiveDuration(speed, respectMotionPreference, prefersReducedMotion);
26
- const { shouldRender, opacity, transitionStyle } = useLoaderVisibility(
26
+ const [detectedType, setDetectedType] = useState(contentType);
27
+ useEffect(() => {
28
+ if (contentType !== "auto" || !referenceElement) return;
29
+ const detectContentType = () => {
30
+ if (detectionStrategy === "dom" || detectionStrategy === "mixed") {
31
+ const tagName = referenceElement.tagName.toLowerCase();
32
+ if (tagName === "table" || referenceElement.querySelector("table")) {
33
+ return "table";
34
+ }
35
+ if (tagName === "form" || referenceElement.querySelector("form")) {
36
+ return "form";
37
+ }
38
+ if (tagName === "ul" || tagName === "ol" || referenceElement.querySelector("ul, ol")) {
39
+ return "list";
40
+ }
41
+ if (tagName === "img" || referenceElement.querySelector("img")) {
42
+ return "image";
43
+ }
44
+ const hasImage = !!referenceElement.querySelector("img");
45
+ const hasText = referenceElement.textContent && referenceElement.textContent.length > 50;
46
+ if (hasImage && hasText) {
47
+ return "card";
48
+ }
49
+ }
50
+ if (detectionStrategy === "dimensions" || detectionStrategy === "mixed") {
51
+ const { width: width2, height: height2 } = referenceElement.getBoundingClientRect();
52
+ const aspectRatio = width2 / height2;
53
+ if (aspectRatio > 2 && height2 < 100) {
54
+ return "text";
55
+ }
56
+ if (aspectRatio >= 0.7 && aspectRatio <= 1.5 && width2 > 200) {
57
+ return "card";
58
+ }
59
+ if (aspectRatio > 3) {
60
+ return "table";
61
+ }
62
+ if (aspectRatio < 0.5) {
63
+ return "list";
64
+ }
65
+ }
66
+ return "text";
67
+ };
68
+ const type = detectContentType();
69
+ setDetectedType(type);
70
+ }, [contentType, referenceElement, detectionStrategy]);
71
+ const activeType = contentType === "auto" ? detectedType : contentType;
72
+ const commonProps = {
73
+ ref,
74
+ className,
75
+ style,
76
+ testId,
27
77
  visible,
28
- delay,
29
- minDuration,
30
- transition
31
- );
32
- if (!shouldRender) return null;
33
- return /* @__PURE__ */ jsx(
34
- "div",
35
- {
36
- ref,
37
- "data-testid": testId,
38
- className: cn("inline-flex items-center justify-center", className),
39
- style: {
40
- ...style,
41
- opacity,
42
- transition: transitionStyle
43
- },
44
- role: "status",
45
- "aria-label": ariaLabel,
46
- "aria-busy": "true",
47
- ...rest,
48
- children: /* @__PURE__ */ jsx(
49
- "svg",
78
+ animate,
79
+ baseColor,
80
+ highlightColor,
81
+ ...rest
82
+ };
83
+ switch (activeType) {
84
+ case "card":
85
+ return /* @__PURE__ */ jsx(
86
+ SkeletonCard,
87
+ {
88
+ ...commonProps,
89
+ width,
90
+ hasAvatar: true,
91
+ lines: 3
92
+ }
93
+ );
94
+ case "table":
95
+ return /* @__PURE__ */ jsx(
96
+ SkeletonTable,
97
+ {
98
+ ...commonProps,
99
+ rows: itemCount,
100
+ columns: 4,
101
+ showHeader: true
102
+ }
103
+ );
104
+ case "list":
105
+ return /* @__PURE__ */ jsx(
106
+ SkeletonList,
107
+ {
108
+ ...commonProps,
109
+ items: itemCount,
110
+ itemHeight: 60
111
+ }
112
+ );
113
+ case "form":
114
+ return /* @__PURE__ */ jsx(
115
+ SkeletonForm,
116
+ {
117
+ ...commonProps,
118
+ fields: itemCount || 4,
119
+ showLabels: true
120
+ }
121
+ );
122
+ case "image":
123
+ return /* @__PURE__ */ jsx(
124
+ SkeletonImage,
125
+ {
126
+ ...commonProps,
127
+ width: width || "100%",
128
+ height: height || 200
129
+ }
130
+ );
131
+ case "text":
132
+ default:
133
+ return /* @__PURE__ */ jsx(
134
+ SkeletonText,
50
135
  {
51
- className: "animate-spinner-rotate",
52
- style: {
53
- width: normalizeSize(size),
54
- height: normalizeSize(size),
55
- animationDuration: effectiveDuration,
56
- animationDirection: reverse ? "reverse" : "normal"
57
- },
58
- viewBox: "0 0 50 50",
59
- children: /* @__PURE__ */ jsx(
60
- "circle",
61
- {
62
- cx: "25",
63
- cy: "25",
64
- r: 25 - thickness * 2,
65
- fill: "none",
66
- stroke: color,
67
- strokeWidth: thickness,
68
- strokeDasharray: "80, 200",
69
- strokeLinecap: "round"
70
- }
71
- )
136
+ ...commonProps,
137
+ lines: itemCount
72
138
  }
73
- )
74
- }
75
- );
139
+ );
140
+ }
76
141
  }
77
142
  );
78
- SpinnerCircle.displayName = "SpinnerCircle";
143
+ SmartSkeleton.displayName = "SmartSkeleton";
79
144
  export {
80
- SpinnerCircle
145
+ SmartSkeleton
81
146
  };
package/dist/index17.cjs CHANGED
@@ -2,30 +2,36 @@
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("./index47.cjs");
5
+ const Skeleton = require("./index7.cjs");
6
+ const hooks = require("./index56.cjs");
6
7
  const classNames = require("./index3.cjs");
7
- const colors = require("./index4.cjs");
8
- const SpinnerRing = react.forwardRef(
8
+ const DataTableSkeleton = react.forwardRef(
9
9
  ({
10
- size = "md",
11
- color = "#3b82f6",
12
- secondaryColor = "rgba(0, 0, 0, 0.1)",
13
- thickness = 4,
14
- speed = "normal",
15
- reverse = false,
16
- respectMotionPreference = true,
10
+ rows = 5,
11
+ columns = 4,
12
+ showHeader = true,
13
+ showSortIndicators = false,
14
+ showFilters = false,
15
+ showPagination = false,
16
+ showSelection = false,
17
+ showActions = false,
18
+ columnWidths,
19
+ rowHeight = 48,
20
+ striped = false,
21
+ width = "100%",
22
+ animate = true,
23
+ baseColor,
24
+ highlightColor,
17
25
  delay = 0,
18
26
  minDuration = 0,
19
27
  transition,
20
28
  className,
21
29
  style,
22
- testId = "spinner-ring",
30
+ testId = "data-table-skeleton",
23
31
  visible = true,
24
- ariaLabel = "Loading...",
32
+ ariaLabel = "Loading table...",
25
33
  ...rest
26
34
  }, ref) => {
27
- const prefersReducedMotion = hooks.useReducedMotion();
28
- const effectiveDuration = hooks.getEffectiveDuration(speed, respectMotionPreference, prefersReducedMotion);
29
35
  const { shouldRender, opacity, transitionStyle } = hooks.useLoaderVisibility(
30
36
  visible,
31
37
  delay,
@@ -33,14 +39,22 @@ const SpinnerRing = react.forwardRef(
33
39
  transition
34
40
  );
35
41
  if (!shouldRender) return null;
42
+ const getColumnWidth = (index) => {
43
+ if (columnWidths && columnWidths[index]) {
44
+ const width2 = columnWidths[index];
45
+ return typeof width2 === "number" ? `${width2}px` : width2 === "auto" ? "auto" : width2;
46
+ }
47
+ return "auto";
48
+ };
36
49
  return /* @__PURE__ */ jsxRuntime.jsx(
37
50
  "div",
38
51
  {
39
52
  ref,
40
53
  "data-testid": testId,
41
- className: classNames.cn("inline-flex items-center justify-center", className),
54
+ className: classNames.cn("w-full", className),
42
55
  style: {
43
56
  ...style,
57
+ width,
44
58
  opacity,
45
59
  transition: transitionStyle
46
60
  },
@@ -48,23 +62,224 @@ const SpinnerRing = react.forwardRef(
48
62
  "aria-label": ariaLabel,
49
63
  "aria-busy": "true",
50
64
  ...rest,
51
- children: /* @__PURE__ */ jsxRuntime.jsx(
52
- "div",
53
- {
54
- className: "rounded-full",
55
- style: {
56
- width: colors.normalizeSize(size),
57
- height: colors.normalizeSize(size),
58
- border: `${thickness}px solid ${secondaryColor}`,
59
- borderTopColor: color,
60
- animation: `spinner-rotate ${effectiveDuration} linear infinite`,
61
- animationDirection: reverse ? "reverse" : "normal"
65
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border border-gray-200 rounded-lg overflow-hidden", children: [
66
+ showHeader && /* @__PURE__ */ jsxRuntime.jsx(
67
+ "div",
68
+ {
69
+ className: "border-b border-gray-200",
70
+ style: {
71
+ backgroundColor: baseColor || "var(--skeleton-base, #f3f4f6)",
72
+ padding: "12px"
73
+ },
74
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
75
+ "div",
76
+ {
77
+ className: "grid gap-4",
78
+ style: {
79
+ gridTemplateColumns: [
80
+ showSelection && "40px",
81
+ ...Array.from({ length: columns }, (_, i) => getColumnWidth(i)),
82
+ showActions && "80px"
83
+ ].filter(Boolean).join(" ")
84
+ },
85
+ children: [
86
+ showSelection && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
87
+ Skeleton.Skeleton,
88
+ {
89
+ width: 18,
90
+ height: 18,
91
+ borderRadius: 3,
92
+ animate,
93
+ baseColor,
94
+ highlightColor
95
+ }
96
+ ) }),
97
+ Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
98
+ /* @__PURE__ */ jsxRuntime.jsx(
99
+ Skeleton.Skeleton,
100
+ {
101
+ width: "70%",
102
+ height: 16,
103
+ borderRadius: 4,
104
+ animate,
105
+ baseColor,
106
+ highlightColor
107
+ }
108
+ ),
109
+ showSortIndicators && /* @__PURE__ */ jsxRuntime.jsx(
110
+ Skeleton.Skeleton,
111
+ {
112
+ width: 12,
113
+ height: 12,
114
+ borderRadius: 2,
115
+ animate,
116
+ baseColor,
117
+ highlightColor
118
+ }
119
+ )
120
+ ] }, index)),
121
+ showActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
122
+ Skeleton.Skeleton,
123
+ {
124
+ width: 60,
125
+ height: 16,
126
+ borderRadius: 4,
127
+ animate,
128
+ baseColor,
129
+ highlightColor
130
+ }
131
+ ) })
132
+ ]
133
+ }
134
+ )
135
+ }
136
+ ),
137
+ showFilters && /* @__PURE__ */ jsxRuntime.jsx(
138
+ "div",
139
+ {
140
+ className: "border-b border-gray-200",
141
+ style: { padding: "8px 12px" },
142
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
143
+ "div",
144
+ {
145
+ className: "grid gap-4",
146
+ style: {
147
+ gridTemplateColumns: [
148
+ showSelection && "40px",
149
+ ...Array.from({ length: columns }, (_, i) => getColumnWidth(i)),
150
+ showActions && "80px"
151
+ ].filter(Boolean).join(" ")
152
+ },
153
+ children: [
154
+ showSelection && /* @__PURE__ */ jsxRuntime.jsx("div", {}),
155
+ Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
156
+ Skeleton.Skeleton,
157
+ {
158
+ width: "90%",
159
+ height: 28,
160
+ borderRadius: 4,
161
+ animate,
162
+ baseColor,
163
+ highlightColor
164
+ },
165
+ index
166
+ )),
167
+ showActions && /* @__PURE__ */ jsxRuntime.jsx("div", {})
168
+ ]
169
+ }
170
+ )
171
+ }
172
+ ),
173
+ Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsxRuntime.jsx(
174
+ "div",
175
+ {
176
+ className: classNames.cn(
177
+ "border-b border-gray-200 last:border-b-0",
178
+ striped && rowIndex % 2 === 1 && "bg-gray-50"
179
+ ),
180
+ style: { padding: "12px" },
181
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
182
+ "div",
183
+ {
184
+ className: "grid gap-4 items-center",
185
+ style: {
186
+ gridTemplateColumns: [
187
+ showSelection && "40px",
188
+ ...Array.from({ length: columns }, (_2, i) => getColumnWidth(i)),
189
+ showActions && "80px"
190
+ ].filter(Boolean).join(" "),
191
+ height: `${rowHeight - 24}px`
192
+ },
193
+ children: [
194
+ showSelection && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
195
+ Skeleton.Skeleton,
196
+ {
197
+ width: 18,
198
+ height: 18,
199
+ borderRadius: 3,
200
+ animate,
201
+ baseColor,
202
+ highlightColor
203
+ }
204
+ ) }),
205
+ Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsxRuntime.jsx(
206
+ Skeleton.Skeleton,
207
+ {
208
+ width: colIndex === 0 ? "80%" : "60%",
209
+ height: 14,
210
+ borderRadius: 4,
211
+ animate,
212
+ baseColor,
213
+ highlightColor
214
+ },
215
+ colIndex
216
+ )),
217
+ showActions && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center gap-2", children: [
218
+ /* @__PURE__ */ jsxRuntime.jsx(
219
+ Skeleton.Skeleton,
220
+ {
221
+ width: 24,
222
+ height: 24,
223
+ variant: "circular",
224
+ animate,
225
+ baseColor,
226
+ highlightColor
227
+ }
228
+ ),
229
+ /* @__PURE__ */ jsxRuntime.jsx(
230
+ Skeleton.Skeleton,
231
+ {
232
+ width: 24,
233
+ height: 24,
234
+ variant: "circular",
235
+ animate,
236
+ baseColor,
237
+ highlightColor
238
+ }
239
+ )
240
+ ] })
241
+ ]
242
+ }
243
+ )
244
+ },
245
+ rowIndex
246
+ )),
247
+ showPagination && /* @__PURE__ */ jsxRuntime.jsxs(
248
+ "div",
249
+ {
250
+ className: "border-t border-gray-200 flex items-center justify-between",
251
+ style: { padding: "12px" },
252
+ children: [
253
+ /* @__PURE__ */ jsxRuntime.jsx(
254
+ Skeleton.Skeleton,
255
+ {
256
+ width: 100,
257
+ height: 14,
258
+ borderRadius: 4,
259
+ animate,
260
+ baseColor,
261
+ highlightColor
262
+ }
263
+ ),
264
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: Array.from({ length: 3 }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
265
+ Skeleton.Skeleton,
266
+ {
267
+ width: 32,
268
+ height: 32,
269
+ borderRadius: 4,
270
+ animate,
271
+ baseColor,
272
+ highlightColor
273
+ },
274
+ index
275
+ )) })
276
+ ]
62
277
  }
63
- }
64
- )
278
+ )
279
+ ] })
65
280
  }
66
281
  );
67
282
  }
68
283
  );
69
- SpinnerRing.displayName = "SpinnerRing";
70
- exports.SpinnerRing = SpinnerRing;
284
+ DataTableSkeleton.displayName = "DataTableSkeleton";
285
+ exports.DataTableSkeleton = DataTableSkeleton;