analytica-frontend-lib 1.0.58 → 1.0.59

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.
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/components/Skeleton/Skeleton.tsx
21
+ var Skeleton_exports = {};
22
+ __export(Skeleton_exports, {
23
+ Skeleton: () => Skeleton,
24
+ SkeletonCard: () => SkeletonCard,
25
+ SkeletonCircle: () => SkeletonCircle,
26
+ SkeletonList: () => SkeletonList,
27
+ SkeletonRectangle: () => SkeletonRectangle,
28
+ SkeletonRounded: () => SkeletonRounded,
29
+ SkeletonTable: () => SkeletonTable,
30
+ SkeletonText: () => SkeletonText
31
+ });
32
+ module.exports = __toCommonJS(Skeleton_exports);
33
+ var import_react = require("react");
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var SKELETON_ANIMATION_CLASSES = {
36
+ pulse: "animate-pulse",
37
+ none: ""
38
+ };
39
+ var SKELETON_VARIANT_CLASSES = {
40
+ text: "h-4 bg-background-200 rounded",
41
+ circular: "bg-background-200 rounded-full",
42
+ rectangular: "bg-background-200",
43
+ rounded: "bg-background-200 rounded-lg"
44
+ };
45
+ var SPACING_CLASSES = {
46
+ none: "",
47
+ small: "space-y-1",
48
+ medium: "space-y-2",
49
+ large: "space-y-3"
50
+ };
51
+ var Skeleton = (0, import_react.forwardRef)(
52
+ ({
53
+ variant = "text",
54
+ width,
55
+ height,
56
+ animation = "pulse",
57
+ lines = 1,
58
+ spacing = "none",
59
+ className = "",
60
+ children,
61
+ ...props
62
+ }, ref) => {
63
+ const animationClass = SKELETON_ANIMATION_CLASSES[animation];
64
+ const variantClass = SKELETON_VARIANT_CLASSES[variant];
65
+ const spacingClass = SPACING_CLASSES[spacing];
66
+ const style = {
67
+ width: typeof width === "number" ? `${width}px` : width,
68
+ height: typeof height === "number" ? `${height}px` : height
69
+ };
70
+ if (variant === "text" && lines > 1) {
71
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
72
+ "div",
73
+ {
74
+ ref,
75
+ className: `flex flex-col ${spacingClass} ${className}`,
76
+ ...props,
77
+ children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
78
+ "div",
79
+ {
80
+ className: `${variantClass} ${animationClass}`,
81
+ style: index === lines - 1 ? { width: "60%" } : void 0
82
+ },
83
+ index
84
+ ))
85
+ }
86
+ );
87
+ }
88
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
89
+ "div",
90
+ {
91
+ ref,
92
+ className: `${variantClass} ${animationClass} ${className}`,
93
+ style,
94
+ ...props,
95
+ children
96
+ }
97
+ );
98
+ }
99
+ );
100
+ var SkeletonText = (0, import_react.forwardRef)(
101
+ (props, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Skeleton, { ref, variant: "text", ...props })
102
+ );
103
+ var SkeletonCircle = (0, import_react.forwardRef)((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Skeleton, { ref, variant: "circular", ...props }));
104
+ var SkeletonRectangle = (0, import_react.forwardRef)((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Skeleton, { ref, variant: "rectangular", ...props }));
105
+ var SkeletonRounded = (0, import_react.forwardRef)((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Skeleton, { ref, variant: "rounded", ...props }));
106
+ var SkeletonCard = (0, import_react.forwardRef)(
107
+ ({
108
+ showAvatar = true,
109
+ showTitle = true,
110
+ showDescription = true,
111
+ showActions = true,
112
+ lines = 2,
113
+ className = "",
114
+ ...props
115
+ }, ref) => {
116
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
117
+ "div",
118
+ {
119
+ ref,
120
+ className: `w-full p-4 bg-background border border-border-200 rounded-lg ${className}`,
121
+ ...props,
122
+ children: [
123
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-start space-x-3", children: [
124
+ showAvatar && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SkeletonCircle, { width: 40, height: 40 }),
125
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 space-y-2", children: [
126
+ showTitle && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SkeletonText, { width: "60%", height: 20 }),
127
+ showDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SkeletonText, { lines, spacing: "small" })
128
+ ] })
129
+ ] }),
130
+ showActions && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex justify-end space-x-2 mt-4", children: [
131
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SkeletonRectangle, { width: 80, height: 32 }),
132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SkeletonRectangle, { width: 80, height: 32 })
133
+ ] })
134
+ ]
135
+ }
136
+ );
137
+ }
138
+ );
139
+ var SkeletonList = (0, import_react.forwardRef)(
140
+ ({
141
+ items = 3,
142
+ showAvatar = true,
143
+ showTitle = true,
144
+ showDescription = true,
145
+ lines = 1,
146
+ className = "",
147
+ ...props
148
+ }, ref) => {
149
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref, className: `space-y-3 ${className}`, ...props, children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-start space-x-3 p-3", children: [
150
+ showAvatar && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SkeletonCircle, { width: 32, height: 32 }),
151
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 space-y-2", children: [
152
+ showTitle && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SkeletonText, { width: "40%", height: 16 }),
153
+ showDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SkeletonText, { lines, spacing: "small" })
154
+ ] })
155
+ ] }, index)) });
156
+ }
157
+ );
158
+ var SkeletonTable = (0, import_react.forwardRef)(
159
+ ({ rows = 5, columns = 4, showHeader = true, className = "", ...props }, ref) => {
160
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ref, className: `w-full ${className}`, ...props, children: [
161
+ showHeader && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex space-x-2 mb-3", children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
162
+ SkeletonText,
163
+ {
164
+ width: `${100 / columns}%`,
165
+ height: 20
166
+ },
167
+ index
168
+ )) }),
169
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "space-y-2", children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex space-x-2", children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
170
+ SkeletonText,
171
+ {
172
+ width: `${100 / columns}%`,
173
+ height: 16
174
+ },
175
+ colIndex
176
+ )) }, rowIndex)) })
177
+ ] });
178
+ }
179
+ );
180
+ // Annotate the CommonJS export names for ESM import in node:
181
+ 0 && (module.exports = {
182
+ Skeleton,
183
+ SkeletonCard,
184
+ SkeletonCircle,
185
+ SkeletonList,
186
+ SkeletonRectangle,
187
+ SkeletonRounded,
188
+ SkeletonTable,
189
+ SkeletonText
190
+ });
191
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import React, { forwardRef, HTMLAttributes } from 'react';\n\ninterface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n variant?: 'text' | 'circular' | 'rectangular' | 'rounded';\n width?: string | number;\n height?: string | number;\n animation?: 'pulse' | 'none';\n lines?: number;\n spacing?: 'none' | 'small' | 'medium' | 'large';\n}\n\nconst SKELETON_ANIMATION_CLASSES = {\n pulse: 'animate-pulse',\n none: '',\n};\n\nconst SKELETON_VARIANT_CLASSES = {\n text: 'h-4 bg-background-200 rounded',\n circular: 'bg-background-200 rounded-full',\n rectangular: 'bg-background-200',\n rounded: 'bg-background-200 rounded-lg',\n};\n\nconst SPACING_CLASSES = {\n none: '',\n small: 'space-y-1',\n medium: 'space-y-2',\n large: 'space-y-3',\n};\n\nconst Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n variant = 'text',\n width,\n height,\n animation = 'pulse',\n lines = 1,\n spacing = 'none',\n className = '',\n children,\n ...props\n },\n ref\n ) => {\n const animationClass = SKELETON_ANIMATION_CLASSES[animation];\n const variantClass = SKELETON_VARIANT_CLASSES[variant];\n const spacingClass = SPACING_CLASSES[spacing];\n\n const style: React.CSSProperties = {\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n };\n\n // Se for múltiplas linhas de texto\n if (variant === 'text' && lines > 1) {\n return (\n <div\n ref={ref}\n className={`flex flex-col ${spacingClass} ${className}`}\n {...props}\n >\n {Array.from({ length: lines }, (_, index) => (\n <div\n key={index}\n className={`${variantClass} ${animationClass}`}\n style={index === lines - 1 ? { width: '60%' } : undefined}\n />\n ))}\n </div>\n );\n }\n\n // Se for um único elemento\n return (\n <div\n ref={ref}\n className={`${variantClass} ${animationClass} ${className}`}\n style={style}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\n// Componentes específicos para casos comuns\nconst SkeletonText = forwardRef<HTMLDivElement, Omit<SkeletonProps, 'variant'>>(\n (props, ref) => <Skeleton ref={ref} variant=\"text\" {...props} />\n);\n\nconst SkeletonCircle = forwardRef<\n HTMLDivElement,\n Omit<SkeletonProps, 'variant'>\n>((props, ref) => <Skeleton ref={ref} variant=\"circular\" {...props} />);\n\nconst SkeletonRectangle = forwardRef<\n HTMLDivElement,\n Omit<SkeletonProps, 'variant'>\n>((props, ref) => <Skeleton ref={ref} variant=\"rectangular\" {...props} />);\n\nconst SkeletonRounded = forwardRef<\n HTMLDivElement,\n Omit<SkeletonProps, 'variant'>\n>((props, ref) => <Skeleton ref={ref} variant=\"rounded\" {...props} />);\n\n// Componente para card skeleton\ninterface SkeletonCardProps extends HTMLAttributes<HTMLDivElement> {\n showAvatar?: boolean;\n showTitle?: boolean;\n showDescription?: boolean;\n showActions?: boolean;\n lines?: number;\n}\n\nconst SkeletonCard = forwardRef<HTMLDivElement, SkeletonCardProps>(\n (\n {\n showAvatar = true,\n showTitle = true,\n showDescription = true,\n showActions = true,\n lines = 2,\n className = '',\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={`w-full p-4 bg-background border border-border-200 rounded-lg ${className}`}\n {...props}\n >\n <div className=\"flex items-start space-x-3\">\n {showAvatar && <SkeletonCircle width={40} height={40} />}\n\n <div className=\"flex-1 space-y-2\">\n {showTitle && <SkeletonText width=\"60%\" height={20} />}\n\n {showDescription && <SkeletonText lines={lines} spacing=\"small\" />}\n </div>\n </div>\n\n {showActions && (\n <div className=\"flex justify-end space-x-2 mt-4\">\n <SkeletonRectangle width={80} height={32} />\n <SkeletonRectangle width={80} height={32} />\n </div>\n )}\n </div>\n );\n }\n);\n\n// Componente para lista skeleton\ninterface SkeletonListProps extends HTMLAttributes<HTMLDivElement> {\n items?: number;\n showAvatar?: boolean;\n showTitle?: boolean;\n showDescription?: boolean;\n lines?: number;\n}\n\nconst SkeletonList = forwardRef<HTMLDivElement, SkeletonListProps>(\n (\n {\n items = 3,\n showAvatar = true,\n showTitle = true,\n showDescription = true,\n lines = 1,\n className = '',\n ...props\n },\n ref\n ) => {\n return (\n <div ref={ref} className={`space-y-3 ${className}`} {...props}>\n {Array.from({ length: items }, (_, index) => (\n <div key={index} className=\"flex items-start space-x-3 p-3\">\n {showAvatar && <SkeletonCircle width={32} height={32} />}\n\n <div className=\"flex-1 space-y-2\">\n {showTitle && <SkeletonText width=\"40%\" height={16} />}\n\n {showDescription && (\n <SkeletonText lines={lines} spacing=\"small\" />\n )}\n </div>\n </div>\n ))}\n </div>\n );\n }\n);\n\n// Componente para tabela skeleton\ninterface SkeletonTableProps extends HTMLAttributes<HTMLDivElement> {\n rows?: number;\n columns?: number;\n showHeader?: boolean;\n}\n\nconst SkeletonTable = forwardRef<HTMLDivElement, SkeletonTableProps>(\n (\n { rows = 5, columns = 4, showHeader = true, className = '', ...props },\n ref\n ) => {\n return (\n <div ref={ref} className={`w-full ${className}`} {...props}>\n {showHeader && (\n <div className=\"flex space-x-2 mb-3\">\n {Array.from({ length: columns }, (_, index) => (\n <SkeletonText\n key={index}\n width={`${100 / columns}%`}\n height={20}\n />\n ))}\n </div>\n )}\n\n <div className=\"space-y-2\">\n {Array.from({ length: rows }, (_, rowIndex) => (\n <div key={rowIndex} className=\"flex space-x-2\">\n {Array.from({ length: columns }, (_, colIndex) => (\n <SkeletonText\n key={colIndex}\n width={`${100 / columns}%`}\n height={16}\n />\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n }\n);\n\nexport {\n Skeleton,\n SkeletonText,\n SkeletonCircle,\n SkeletonRectangle,\n SkeletonRounded,\n SkeletonCard,\n SkeletonList,\n SkeletonTable,\n};\n"],"mappings":"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","names":["_"]}
@@ -0,0 +1,159 @@
1
+ // src/components/Skeleton/Skeleton.tsx
2
+ import { forwardRef } from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ var SKELETON_ANIMATION_CLASSES = {
5
+ pulse: "animate-pulse",
6
+ none: ""
7
+ };
8
+ var SKELETON_VARIANT_CLASSES = {
9
+ text: "h-4 bg-background-200 rounded",
10
+ circular: "bg-background-200 rounded-full",
11
+ rectangular: "bg-background-200",
12
+ rounded: "bg-background-200 rounded-lg"
13
+ };
14
+ var SPACING_CLASSES = {
15
+ none: "",
16
+ small: "space-y-1",
17
+ medium: "space-y-2",
18
+ large: "space-y-3"
19
+ };
20
+ var Skeleton = forwardRef(
21
+ ({
22
+ variant = "text",
23
+ width,
24
+ height,
25
+ animation = "pulse",
26
+ lines = 1,
27
+ spacing = "none",
28
+ className = "",
29
+ children,
30
+ ...props
31
+ }, ref) => {
32
+ const animationClass = SKELETON_ANIMATION_CLASSES[animation];
33
+ const variantClass = SKELETON_VARIANT_CLASSES[variant];
34
+ const spacingClass = SPACING_CLASSES[spacing];
35
+ const style = {
36
+ width: typeof width === "number" ? `${width}px` : width,
37
+ height: typeof height === "number" ? `${height}px` : height
38
+ };
39
+ if (variant === "text" && lines > 1) {
40
+ return /* @__PURE__ */ jsx(
41
+ "div",
42
+ {
43
+ ref,
44
+ className: `flex flex-col ${spacingClass} ${className}`,
45
+ ...props,
46
+ children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx(
47
+ "div",
48
+ {
49
+ className: `${variantClass} ${animationClass}`,
50
+ style: index === lines - 1 ? { width: "60%" } : void 0
51
+ },
52
+ index
53
+ ))
54
+ }
55
+ );
56
+ }
57
+ return /* @__PURE__ */ jsx(
58
+ "div",
59
+ {
60
+ ref,
61
+ className: `${variantClass} ${animationClass} ${className}`,
62
+ style,
63
+ ...props,
64
+ children
65
+ }
66
+ );
67
+ }
68
+ );
69
+ var SkeletonText = forwardRef(
70
+ (props, ref) => /* @__PURE__ */ jsx(Skeleton, { ref, variant: "text", ...props })
71
+ );
72
+ var SkeletonCircle = forwardRef((props, ref) => /* @__PURE__ */ jsx(Skeleton, { ref, variant: "circular", ...props }));
73
+ var SkeletonRectangle = forwardRef((props, ref) => /* @__PURE__ */ jsx(Skeleton, { ref, variant: "rectangular", ...props }));
74
+ var SkeletonRounded = forwardRef((props, ref) => /* @__PURE__ */ jsx(Skeleton, { ref, variant: "rounded", ...props }));
75
+ var SkeletonCard = forwardRef(
76
+ ({
77
+ showAvatar = true,
78
+ showTitle = true,
79
+ showDescription = true,
80
+ showActions = true,
81
+ lines = 2,
82
+ className = "",
83
+ ...props
84
+ }, ref) => {
85
+ return /* @__PURE__ */ jsxs(
86
+ "div",
87
+ {
88
+ ref,
89
+ className: `w-full p-4 bg-background border border-border-200 rounded-lg ${className}`,
90
+ ...props,
91
+ children: [
92
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start space-x-3", children: [
93
+ showAvatar && /* @__PURE__ */ jsx(SkeletonCircle, { width: 40, height: 40 }),
94
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-2", children: [
95
+ showTitle && /* @__PURE__ */ jsx(SkeletonText, { width: "60%", height: 20 }),
96
+ showDescription && /* @__PURE__ */ jsx(SkeletonText, { lines, spacing: "small" })
97
+ ] })
98
+ ] }),
99
+ showActions && /* @__PURE__ */ jsxs("div", { className: "flex justify-end space-x-2 mt-4", children: [
100
+ /* @__PURE__ */ jsx(SkeletonRectangle, { width: 80, height: 32 }),
101
+ /* @__PURE__ */ jsx(SkeletonRectangle, { width: 80, height: 32 })
102
+ ] })
103
+ ]
104
+ }
105
+ );
106
+ }
107
+ );
108
+ var SkeletonList = forwardRef(
109
+ ({
110
+ items = 3,
111
+ showAvatar = true,
112
+ showTitle = true,
113
+ showDescription = true,
114
+ lines = 1,
115
+ className = "",
116
+ ...props
117
+ }, ref) => {
118
+ return /* @__PURE__ */ jsx("div", { ref, className: `space-y-3 ${className}`, ...props, children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs("div", { className: "flex items-start space-x-3 p-3", children: [
119
+ showAvatar && /* @__PURE__ */ jsx(SkeletonCircle, { width: 32, height: 32 }),
120
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-2", children: [
121
+ showTitle && /* @__PURE__ */ jsx(SkeletonText, { width: "40%", height: 16 }),
122
+ showDescription && /* @__PURE__ */ jsx(SkeletonText, { lines, spacing: "small" })
123
+ ] })
124
+ ] }, index)) });
125
+ }
126
+ );
127
+ var SkeletonTable = forwardRef(
128
+ ({ rows = 5, columns = 4, showHeader = true, className = "", ...props }, ref) => {
129
+ return /* @__PURE__ */ jsxs("div", { ref, className: `w-full ${className}`, ...props, children: [
130
+ showHeader && /* @__PURE__ */ jsx("div", { className: "flex space-x-2 mb-3", children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx(
131
+ SkeletonText,
132
+ {
133
+ width: `${100 / columns}%`,
134
+ height: 20
135
+ },
136
+ index
137
+ )) }),
138
+ /* @__PURE__ */ jsx("div", { className: "space-y-2", children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx("div", { className: "flex space-x-2", children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx(
139
+ SkeletonText,
140
+ {
141
+ width: `${100 / columns}%`,
142
+ height: 16
143
+ },
144
+ colIndex
145
+ )) }, rowIndex)) })
146
+ ] });
147
+ }
148
+ );
149
+ export {
150
+ Skeleton,
151
+ SkeletonCard,
152
+ SkeletonCircle,
153
+ SkeletonList,
154
+ SkeletonRectangle,
155
+ SkeletonRounded,
156
+ SkeletonTable,
157
+ SkeletonText
158
+ };
159
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import React, { forwardRef, HTMLAttributes } from 'react';\n\ninterface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n variant?: 'text' | 'circular' | 'rectangular' | 'rounded';\n width?: string | number;\n height?: string | number;\n animation?: 'pulse' | 'none';\n lines?: number;\n spacing?: 'none' | 'small' | 'medium' | 'large';\n}\n\nconst SKELETON_ANIMATION_CLASSES = {\n pulse: 'animate-pulse',\n none: '',\n};\n\nconst SKELETON_VARIANT_CLASSES = {\n text: 'h-4 bg-background-200 rounded',\n circular: 'bg-background-200 rounded-full',\n rectangular: 'bg-background-200',\n rounded: 'bg-background-200 rounded-lg',\n};\n\nconst SPACING_CLASSES = {\n none: '',\n small: 'space-y-1',\n medium: 'space-y-2',\n large: 'space-y-3',\n};\n\nconst Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n variant = 'text',\n width,\n height,\n animation = 'pulse',\n lines = 1,\n spacing = 'none',\n className = '',\n children,\n ...props\n },\n ref\n ) => {\n const animationClass = SKELETON_ANIMATION_CLASSES[animation];\n const variantClass = SKELETON_VARIANT_CLASSES[variant];\n const spacingClass = SPACING_CLASSES[spacing];\n\n const style: React.CSSProperties = {\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n };\n\n // Se for múltiplas linhas de texto\n if (variant === 'text' && lines > 1) {\n return (\n <div\n ref={ref}\n className={`flex flex-col ${spacingClass} ${className}`}\n {...props}\n >\n {Array.from({ length: lines }, (_, index) => (\n <div\n key={index}\n className={`${variantClass} ${animationClass}`}\n style={index === lines - 1 ? { width: '60%' } : undefined}\n />\n ))}\n </div>\n );\n }\n\n // Se for um único elemento\n return (\n <div\n ref={ref}\n className={`${variantClass} ${animationClass} ${className}`}\n style={style}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\n// Componentes específicos para casos comuns\nconst SkeletonText = forwardRef<HTMLDivElement, Omit<SkeletonProps, 'variant'>>(\n (props, ref) => <Skeleton ref={ref} variant=\"text\" {...props} />\n);\n\nconst SkeletonCircle = forwardRef<\n HTMLDivElement,\n Omit<SkeletonProps, 'variant'>\n>((props, ref) => <Skeleton ref={ref} variant=\"circular\" {...props} />);\n\nconst SkeletonRectangle = forwardRef<\n HTMLDivElement,\n Omit<SkeletonProps, 'variant'>\n>((props, ref) => <Skeleton ref={ref} variant=\"rectangular\" {...props} />);\n\nconst SkeletonRounded = forwardRef<\n HTMLDivElement,\n Omit<SkeletonProps, 'variant'>\n>((props, ref) => <Skeleton ref={ref} variant=\"rounded\" {...props} />);\n\n// Componente para card skeleton\ninterface SkeletonCardProps extends HTMLAttributes<HTMLDivElement> {\n showAvatar?: boolean;\n showTitle?: boolean;\n showDescription?: boolean;\n showActions?: boolean;\n lines?: number;\n}\n\nconst SkeletonCard = forwardRef<HTMLDivElement, SkeletonCardProps>(\n (\n {\n showAvatar = true,\n showTitle = true,\n showDescription = true,\n showActions = true,\n lines = 2,\n className = '',\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={`w-full p-4 bg-background border border-border-200 rounded-lg ${className}`}\n {...props}\n >\n <div className=\"flex items-start space-x-3\">\n {showAvatar && <SkeletonCircle width={40} height={40} />}\n\n <div className=\"flex-1 space-y-2\">\n {showTitle && <SkeletonText width=\"60%\" height={20} />}\n\n {showDescription && <SkeletonText lines={lines} spacing=\"small\" />}\n </div>\n </div>\n\n {showActions && (\n <div className=\"flex justify-end space-x-2 mt-4\">\n <SkeletonRectangle width={80} height={32} />\n <SkeletonRectangle width={80} height={32} />\n </div>\n )}\n </div>\n );\n }\n);\n\n// Componente para lista skeleton\ninterface SkeletonListProps extends HTMLAttributes<HTMLDivElement> {\n items?: number;\n showAvatar?: boolean;\n showTitle?: boolean;\n showDescription?: boolean;\n lines?: number;\n}\n\nconst SkeletonList = forwardRef<HTMLDivElement, SkeletonListProps>(\n (\n {\n items = 3,\n showAvatar = true,\n showTitle = true,\n showDescription = true,\n lines = 1,\n className = '',\n ...props\n },\n ref\n ) => {\n return (\n <div ref={ref} className={`space-y-3 ${className}`} {...props}>\n {Array.from({ length: items }, (_, index) => (\n <div key={index} className=\"flex items-start space-x-3 p-3\">\n {showAvatar && <SkeletonCircle width={32} height={32} />}\n\n <div className=\"flex-1 space-y-2\">\n {showTitle && <SkeletonText width=\"40%\" height={16} />}\n\n {showDescription && (\n <SkeletonText lines={lines} spacing=\"small\" />\n )}\n </div>\n </div>\n ))}\n </div>\n );\n }\n);\n\n// Componente para tabela skeleton\ninterface SkeletonTableProps extends HTMLAttributes<HTMLDivElement> {\n rows?: number;\n columns?: number;\n showHeader?: boolean;\n}\n\nconst SkeletonTable = forwardRef<HTMLDivElement, SkeletonTableProps>(\n (\n { rows = 5, columns = 4, showHeader = true, className = '', ...props },\n ref\n ) => {\n return (\n <div ref={ref} className={`w-full ${className}`} {...props}>\n {showHeader && (\n <div className=\"flex space-x-2 mb-3\">\n {Array.from({ length: columns }, (_, index) => (\n <SkeletonText\n key={index}\n width={`${100 / columns}%`}\n height={20}\n />\n ))}\n </div>\n )}\n\n <div className=\"space-y-2\">\n {Array.from({ length: rows }, (_, rowIndex) => (\n <div key={rowIndex} className=\"flex space-x-2\">\n {Array.from({ length: columns }, (_, colIndex) => (\n <SkeletonText\n key={colIndex}\n width={`${100 / columns}%`}\n height={16}\n />\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n }\n);\n\nexport {\n Skeleton,\n SkeletonText,\n SkeletonCircle,\n SkeletonRectangle,\n SkeletonRounded,\n SkeletonCard,\n SkeletonList,\n SkeletonTable,\n};\n"],"mappings":"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","names":["_"]}
package/dist/index.css CHANGED
@@ -75,6 +75,7 @@
75
75
  --radius-xl: 0.75rem;
76
76
  --radius-3xl: 1.5rem;
77
77
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
78
+ --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
78
79
  --blur-xs: 4px;
79
80
  --default-transition-duration: 150ms;
80
81
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -717,15 +718,21 @@
717
718
  .min-h-6 {
718
719
  min-height: calc(var(--spacing) * 6);
719
720
  }
721
+ .min-h-16 {
722
+ min-height: calc(var(--spacing) * 16);
723
+ }
720
724
  .min-h-20 {
721
725
  min-height: calc(var(--spacing) * 20);
722
726
  }
723
- .min-h-20\.5 {
724
- min-height: calc(var(--spacing) * 20.5);
727
+ .min-h-24 {
728
+ min-height: calc(var(--spacing) * 24);
725
729
  }
726
730
  .min-h-\[50px\] {
727
731
  min-height: 50px;
728
732
  }
733
+ .min-h-\[80px\] {
734
+ min-height: 80px;
735
+ }
729
736
  .min-h-\[300px\] {
730
737
  min-height: 300px;
731
738
  }
@@ -903,6 +910,9 @@
903
910
  .min-w-\[2\.5rem\] {
904
911
  min-width: 2.5rem;
905
912
  }
913
+ .min-w-\[80px\] {
914
+ min-width: 80px;
915
+ }
906
916
  .min-w-\[210px\] {
907
917
  min-width: 210px;
908
918
  }
@@ -955,6 +965,9 @@
955
965
  .transform {
956
966
  transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
957
967
  }
968
+ .animate-pulse {
969
+ animation: var(--animate-pulse);
970
+ }
958
971
  .cursor-default {
959
972
  cursor: default;
960
973
  }
@@ -996,6 +1009,9 @@
996
1009
  .grid-cols-7 {
997
1010
  grid-template-columns: repeat(7, minmax(0, 1fr));
998
1011
  }
1012
+ .grid-cols-\[1fr_auto\] {
1013
+ grid-template-columns: 1fr auto;
1014
+ }
999
1015
  .flex-col {
1000
1016
  flex-direction: column;
1001
1017
  }
@@ -1071,6 +1087,13 @@
1071
1087
  .gap-16 {
1072
1088
  gap: calc(var(--spacing) * 16);
1073
1089
  }
1090
+ .space-y-1 {
1091
+ :where(& > :not(:last-child)) {
1092
+ --tw-space-y-reverse: 0;
1093
+ margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
1094
+ margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
1095
+ }
1096
+ }
1074
1097
  .space-y-2 {
1075
1098
  :where(& > :not(:last-child)) {
1076
1099
  --tw-space-y-reverse: 0;
@@ -1078,6 +1101,13 @@
1078
1101
  margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
1079
1102
  }
1080
1103
  }
1104
+ .space-y-3 {
1105
+ :where(& > :not(:last-child)) {
1106
+ --tw-space-y-reverse: 0;
1107
+ margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
1108
+ margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
1109
+ }
1110
+ }
1081
1111
  .space-y-4 {
1082
1112
  :where(& > :not(:last-child)) {
1083
1113
  --tw-space-y-reverse: 0;
@@ -1099,6 +1129,27 @@
1099
1129
  margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));
1100
1130
  }
1101
1131
  }
1132
+ .space-x-2 {
1133
+ :where(& > :not(:last-child)) {
1134
+ --tw-space-x-reverse: 0;
1135
+ margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
1136
+ margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
1137
+ }
1138
+ }
1139
+ .space-x-3 {
1140
+ :where(& > :not(:last-child)) {
1141
+ --tw-space-x-reverse: 0;
1142
+ margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));
1143
+ margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)));
1144
+ }
1145
+ }
1146
+ .space-x-4 {
1147
+ :where(& > :not(:last-child)) {
1148
+ --tw-space-x-reverse: 0;
1149
+ margin-inline-start: calc(calc(var(--spacing) * 4) * var(--tw-space-x-reverse));
1150
+ margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));
1151
+ }
1152
+ }
1102
1153
  .truncate {
1103
1154
  overflow: hidden;
1104
1155
  text-overflow: ellipsis;
@@ -1333,6 +1384,9 @@
1333
1384
  .bg-background-100 {
1334
1385
  background-color: var(--color-background-100);
1335
1386
  }
1387
+ .bg-background-200 {
1388
+ background-color: var(--color-background-200);
1389
+ }
1336
1390
  .bg-background-300 {
1337
1391
  background-color: var(--color-background-300);
1338
1392
  }
@@ -3643,6 +3697,7 @@
3643
3697
  @property --tw-skew-x { syntax: "*"; inherits: false; }
3644
3698
  @property --tw-skew-y { syntax: "*"; inherits: false; }
3645
3699
  @property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }
3700
+ @property --tw-space-x-reverse { syntax: "*"; inherits: false; initial-value: 0; }
3646
3701
  @property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }
3647
3702
  @property --tw-leading { syntax: "*"; inherits: false; }
3648
3703
  @property --tw-font-weight { syntax: "*"; inherits: false; }
@@ -3686,6 +3741,11 @@
3686
3741
  @property --tw-backdrop-sepia { syntax: "*"; inherits: false; }
3687
3742
  @property --tw-duration { syntax: "*"; inherits: false; }
3688
3743
  @property --tw-ease { syntax: "*"; inherits: false; }
3744
+ @keyframes pulse {
3745
+ 50% {
3746
+ opacity: 0.5;
3747
+ }
3748
+ }
3689
3749
  @layer properties {
3690
3750
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
3691
3751
  *,
@@ -3701,6 +3761,7 @@
3701
3761
  --tw-skew-x: initial;
3702
3762
  --tw-skew-y: initial;
3703
3763
  --tw-space-y-reverse: 0;
3764
+ --tw-space-x-reverse: 0;
3704
3765
  --tw-border-style: solid;
3705
3766
  --tw-leading: initial;
3706
3767
  --tw-font-weight: initial;