@beweco/aurora-ui 0.1.39 → 0.1.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/css/styles.css +1 -1
- package/dist/index.cjs.js +32 -15
- package/dist/index.esm.js +33 -16
- package/dist/types/components/kanban/Kanban.d.ts +1 -1
- package/dist/types/components/kanban/Kanban.d.ts.map +1 -1
- package/dist/types/components/kanban/Kanban.types.d.ts +15 -0
- package/dist/types/components/kanban/Kanban.types.d.ts.map +1 -1
- package/dist/types/components/kanban/_internal/KanbanColumn.d.ts +1 -1
- package/dist/types/components/kanban/_internal/KanbanColumn.d.ts.map +1 -1
- package/dist/types/styles/colors.default.d.ts +10 -10
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1071,18 +1071,18 @@ var themeColors = {
|
|
|
1071
1071
|
DEFAULT: "#FFD505",
|
|
1072
1072
|
},
|
|
1073
1073
|
secondary: {
|
|
1074
|
-
50: "#
|
|
1075
|
-
100: "#
|
|
1076
|
-
200: "#
|
|
1077
|
-
300: "#
|
|
1078
|
-
400: "#
|
|
1079
|
-
500: "#
|
|
1080
|
-
600: "#
|
|
1081
|
-
700: "#
|
|
1082
|
-
800: "#
|
|
1083
|
-
900: "#
|
|
1074
|
+
"50": "#002147",
|
|
1075
|
+
"100": "#003571",
|
|
1076
|
+
"200": "#00489b",
|
|
1077
|
+
"300": "#005cc4",
|
|
1078
|
+
"400": "#006fee",
|
|
1079
|
+
"500": "#2d88f1",
|
|
1080
|
+
"600": "#59a1f4",
|
|
1081
|
+
"700": "#86bbf7",
|
|
1082
|
+
"800": "#b3d4fa",
|
|
1083
|
+
"900": "#dfedfd",
|
|
1084
1084
|
foreground: "#fff",
|
|
1085
|
-
DEFAULT: "#
|
|
1085
|
+
DEFAULT: "#006fee",
|
|
1086
1086
|
},
|
|
1087
1087
|
focus: "#FFD505",
|
|
1088
1088
|
overlay: "#ffffff",
|
|
@@ -1748,7 +1748,7 @@ KanbanCard.displayName = "KanbanCard";
|
|
|
1748
1748
|
*/
|
|
1749
1749
|
var KanbanColumnComponent = function (_a) {
|
|
1750
1750
|
var _b, _c;
|
|
1751
|
-
var column = _a.column, renderItem = _a.renderItem, onCardClick = _a.onCardClick, cardClassName = _a.cardClassName, isCardClickable = _a.isCardClickable, className = _a.className, _d = _a.maxHeight, maxHeight = _d === void 0 ? "calc(100vh - 280px)" : _d, renderColumnHeader = _a.renderColumnHeader, renderEmptyState = _a.renderEmptyState, _e = _a.isDraggable, isDraggable = _e === void 0 ? false : _e, onDragStart = _a.onDragStart, onDragEnd = _a.onDragEnd, onDrop = _a.onDrop, _f = _a.isDragging, isDragging = _f === void 0 ? false : _f, _g = _a.translations, translations = _g === void 0 ? {} : _g;
|
|
1751
|
+
var column = _a.column, renderItem = _a.renderItem, onCardClick = _a.onCardClick, cardClassName = _a.cardClassName, isCardClickable = _a.isCardClickable, className = _a.className, _d = _a.maxHeight, maxHeight = _d === void 0 ? "calc(100vh - 280px)" : _d, renderColumnHeader = _a.renderColumnHeader, renderEmptyState = _a.renderEmptyState, _e = _a.isDraggable, isDraggable = _e === void 0 ? false : _e, onDragStart = _a.onDragStart, onDragEnd = _a.onDragEnd, onDrop = _a.onDrop, _f = _a.isDragging, isDragging = _f === void 0 ? false : _f, _g = _a.translations, translations = _g === void 0 ? {} : _g, onLoadMore = _a.onLoadMore;
|
|
1752
1752
|
// Traducciones con fallbacks
|
|
1753
1753
|
var t = {
|
|
1754
1754
|
dropHere: (_b = translations.dropHere) !== null && _b !== void 0 ? _b : "Soltar aquí",
|
|
@@ -1756,6 +1756,23 @@ var KanbanColumnComponent = function (_a) {
|
|
|
1756
1756
|
};
|
|
1757
1757
|
var _h = React.useState(false), isDragOver = _h[0], setIsDragOver = _h[1];
|
|
1758
1758
|
var _j = React.useState(null), dropIndex = _j[0], setDropIndex = _j[1];
|
|
1759
|
+
var scrollContainerRef = React.useRef(null);
|
|
1760
|
+
// Detección de scroll infinito
|
|
1761
|
+
React.useEffect(function () {
|
|
1762
|
+
var scrollContainer = scrollContainerRef.current;
|
|
1763
|
+
if (!scrollContainer || !onLoadMore)
|
|
1764
|
+
return;
|
|
1765
|
+
var handleScroll = function () {
|
|
1766
|
+
var scrollTop = scrollContainer.scrollTop, scrollHeight = scrollContainer.scrollHeight, clientHeight = scrollContainer.clientHeight;
|
|
1767
|
+
// Cargar más cuando esté a 100px del final
|
|
1768
|
+
var isNearBottom = scrollTop + clientHeight >= scrollHeight - 100;
|
|
1769
|
+
if (isNearBottom && column.hasMore && !column.isLoading) {
|
|
1770
|
+
onLoadMore();
|
|
1771
|
+
}
|
|
1772
|
+
};
|
|
1773
|
+
scrollContainer.addEventListener("scroll", handleScroll);
|
|
1774
|
+
return function () { return scrollContainer.removeEventListener("scroll", handleScroll); };
|
|
1775
|
+
}, [onLoadMore, column.hasMore, column.isLoading]);
|
|
1759
1776
|
var itemCount = column.items.length;
|
|
1760
1777
|
var isEmpty = itemCount === 0;
|
|
1761
1778
|
var handleDragOver = React.useCallback(function (e) {
|
|
@@ -1792,7 +1809,7 @@ var KanbanColumnComponent = function (_a) {
|
|
|
1792
1809
|
}, []);
|
|
1793
1810
|
return (jsxRuntime.jsxs("div", { className: react.cn("flex flex-col bg-default-50 rounded-lg border border-default-200 transition-colors", isDragOver && isDragging && "border-primary-400 bg-primary-50/30", className), onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, children: [renderColumnHeader ? (renderColumnHeader(column)) : (jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-b border-default-200", children: [jsxRuntime.jsx("h3", { className: "font-semibold text-foreground", children: column.title }), jsxRuntime.jsx(react.Badge, { content: itemCount, color: column.countBadgeColor || "default", variant: "flat", size: "md", classNames: {
|
|
1794
1811
|
badge: "text-xs font-medium min-w-6 h-6",
|
|
1795
|
-
}, children: jsxRuntime.jsxs("span", { className: "sr-only", children: [itemCount, " items"] }) })] })), jsxRuntime.jsx("div", { className: react.cn("flex-1 overflow-y-auto p-3 space-y-3", isDragOver && isEmpty && "min-h-24"), style: { maxHeight: maxHeight }, children: isEmpty ? (isDragOver && isDragging ? (jsxRuntime.jsx("div", { className: "h-24 border-2 border-dashed border-primary-300 rounded-lg bg-primary-50/50 flex items-center justify-center", children: jsxRuntime.jsx("span", { className: "text-primary-500 text-sm", children: t.dropHere }) })) : renderEmptyState ? (renderEmptyState(column)) : (jsxRuntime.jsx("div", { className: "flex items-center justify-center h-24 text-default-400 text-sm", children: column.emptyMessage || t.emptyMessage }))) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [column.items.map(function (item, index) { return (jsxRuntime.jsxs("div", { onDragOver: function (e) { return handleDragOverItem(e, index); }, children: [isDragOver && dropIndex === index && (jsxRuntime.jsx("div", { className: "h-1 bg-primary-400 rounded-full mb-3 animate-pulse" })), jsxRuntime.jsx(KanbanCard, { item: item, columnId: column.id, index: index, renderContent: renderItem, onCardClick: onCardClick, className: cardClassName, isClickable: isCardClickable, isDraggable: isDraggable, onDragStart: onDragStart, onDragEnd: onDragEnd })] }, item.id)); }), isDragOver && dropIndex === column.items.length && (jsxRuntime.jsx("div", { className: "h-1 bg-primary-400 rounded-full mt-3 animate-pulse" }))] })) })] }));
|
|
1812
|
+
}, children: jsxRuntime.jsxs("span", { className: "sr-only", children: [itemCount, " items"] }) })] })), jsxRuntime.jsx("div", { ref: scrollContainerRef, className: react.cn("flex-1 overflow-y-auto p-3 space-y-3", isDragOver && isEmpty && "min-h-24"), style: { maxHeight: maxHeight }, children: isEmpty ? (isDragOver && isDragging ? (jsxRuntime.jsx("div", { className: "h-24 border-2 border-dashed border-primary-300 rounded-lg bg-primary-50/50 flex items-center justify-center", children: jsxRuntime.jsx("span", { className: "text-primary-500 text-sm", children: t.dropHere }) })) : renderEmptyState ? (renderEmptyState(column)) : (jsxRuntime.jsx("div", { className: "flex items-center justify-center h-24 text-default-400 text-sm", children: column.emptyMessage || t.emptyMessage }))) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [column.items.map(function (item, index) { return (jsxRuntime.jsxs("div", { onDragOver: function (e) { return handleDragOverItem(e, index); }, children: [isDragOver && dropIndex === index && (jsxRuntime.jsx("div", { className: "h-1 bg-primary-400 rounded-full mb-3 animate-pulse" })), jsxRuntime.jsx(KanbanCard, { item: item, columnId: column.id, index: index, renderContent: renderItem, onCardClick: onCardClick, className: cardClassName, isClickable: isCardClickable, isDraggable: isDraggable, onDragStart: onDragStart, onDragEnd: onDragEnd })] }, item.id)); }), isDragOver && dropIndex === column.items.length && (jsxRuntime.jsx("div", { className: "h-1 bg-primary-400 rounded-full mt-3 animate-pulse" })), column.isLoading && (jsxRuntime.jsx("div", { className: "flex items-center justify-center py-4", children: jsxRuntime.jsx(react.Spinner, { size: "sm", color: "primary" }) }))] })) })] }));
|
|
1796
1813
|
};
|
|
1797
1814
|
var KanbanColumn = React.memo(KanbanColumnComponent);
|
|
1798
1815
|
KanbanColumn.displayName = "KanbanColumn";
|
|
@@ -1833,7 +1850,7 @@ var columnGapClasses = {
|
|
|
1833
1850
|
* ```
|
|
1834
1851
|
*/
|
|
1835
1852
|
var KanbanComponent = function (_a) {
|
|
1836
|
-
var columns = _a.columns, renderItem = _a.renderItem, onCardClick = _a.onCardClick, onItemMove = _a.onItemMove, isDraggable = _a.isDraggable, cardClassName = _a.cardClassName, isCardClickable = _a.isCardClickable, className = _a.className, _b = _a.columnWidth, columnWidth = _b === void 0 ? "280px" : _b, _c = _a.columnGap, columnGap = _c === void 0 ? "md" : _c, _d = _a.horizontalScroll, horizontalScroll = _d === void 0 ? true : _d, columnMaxHeight = _a.columnMaxHeight, renderColumnHeader = _a.renderColumnHeader, renderEmptyState = _a.renderEmptyState, _e = _a.translations, translations = _e === void 0 ? {} : _e;
|
|
1853
|
+
var columns = _a.columns, renderItem = _a.renderItem, onCardClick = _a.onCardClick, onItemMove = _a.onItemMove, isDraggable = _a.isDraggable, cardClassName = _a.cardClassName, isCardClickable = _a.isCardClickable, className = _a.className, _b = _a.columnWidth, columnWidth = _b === void 0 ? "280px" : _b, _c = _a.columnGap, columnGap = _c === void 0 ? "md" : _c, _d = _a.horizontalScroll, horizontalScroll = _d === void 0 ? true : _d, columnMaxHeight = _a.columnMaxHeight, renderColumnHeader = _a.renderColumnHeader, renderEmptyState = _a.renderEmptyState, _e = _a.translations, translations = _e === void 0 ? {} : _e, onLoadMore = _a.onLoadMore;
|
|
1837
1854
|
// Mezclar traducciones del usuario con las por defecto
|
|
1838
1855
|
var t = __assign(__assign({}, DEFAULT_TRANSLATIONS), translations);
|
|
1839
1856
|
// Determinar si drag está habilitado
|
|
@@ -1877,7 +1894,7 @@ var KanbanComponent = function (_a) {
|
|
|
1877
1894
|
});
|
|
1878
1895
|
handleDragEnd();
|
|
1879
1896
|
}, [onItemMove, handleDragEnd]);
|
|
1880
|
-
return (jsxRuntime.jsx("div", { className: react.cn("flex", columnGapClasses[columnGap], horizontalScroll && "overflow-x-auto pb-4", className), children: columns.map(function (column) { return (jsxRuntime.jsx("div", { className: "flex-shrink-0", style: { width: columnWidth }, children: jsxRuntime.jsx(KanbanColumn, { column: column, renderItem: renderItem, onCardClick: onCardClick, cardClassName: cardClassName, isCardClickable: isCardClickable, maxHeight: columnMaxHeight, renderColumnHeader: renderColumnHeader, renderEmptyState: renderEmptyState, isDraggable: dragEnabled, onDragStart: handleDragStart, onDragEnd: handleDragEnd, onDrop: handleDrop, isDragging: isDragging, translations: t }) }, column.id)); }) }));
|
|
1897
|
+
return (jsxRuntime.jsx("div", { className: react.cn("flex", columnGapClasses[columnGap], horizontalScroll && "overflow-x-auto pb-4", className), children: columns.map(function (column) { return (jsxRuntime.jsx("div", { className: "flex-shrink-0", style: { width: columnWidth }, children: jsxRuntime.jsx(KanbanColumn, { column: column, renderItem: renderItem, onCardClick: onCardClick, cardClassName: cardClassName, isCardClickable: isCardClickable, maxHeight: columnMaxHeight, renderColumnHeader: renderColumnHeader, renderEmptyState: renderEmptyState, isDraggable: dragEnabled, onDragStart: handleDragStart, onDragEnd: handleDragEnd, onDrop: handleDrop, isDragging: isDragging, translations: t, onLoadMore: onLoadMore ? function () { return onLoadMore(column.id); } : undefined }) }, column.id)); }) }));
|
|
1881
1898
|
};
|
|
1882
1899
|
var Kanban = React.memo(KanbanComponent);
|
|
1883
1900
|
Kanban.displayName = "Kanban";
|
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Skeleton, Button as Button$1, Chip as Chip$1, Accordion, AccordionItem, Pagination as Pagination$1, DatePicker as DatePicker$1, DateRangePicker as DateRangePicker$1, Input as Input$1, RadioGroup, Radio, cn, Card as Card$1, Spacer, Tabs, Tab, Dropdown, DropdownTrigger, DropdownMenu, DropdownItem, Autocomplete, Breadcrumbs, BreadcrumbItem, DropdownSection, Badge, ListboxItem, Popover, PopoverTrigger, Tooltip as Tooltip$1, PopoverContent, Listbox, ListboxSection, Avatar, CardBody, CardFooter, Link, Switch as Switch$1, TimeInput as TimeInput$1, Select as Select$1, Image as Image$1, Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, Textarea as Textarea$1, Alert, Modal as Modal$1, ModalContent as ModalContent$1, ModalHeader as ModalHeader$1, ModalBody as ModalBody$1, Slider, ModalFooter as ModalFooter$1,
|
|
1
|
+
import { Skeleton, Button as Button$1, Chip as Chip$1, Accordion, AccordionItem, Pagination as Pagination$1, DatePicker as DatePicker$1, DateRangePicker as DateRangePicker$1, Input as Input$1, RadioGroup, Radio, cn, Card as Card$1, Spacer, Tabs, Tab, Dropdown, DropdownTrigger, DropdownMenu, DropdownItem, Autocomplete, Breadcrumbs, BreadcrumbItem, DropdownSection, Badge, Spinner, ListboxItem, Popover, PopoverTrigger, Tooltip as Tooltip$1, PopoverContent, Listbox, ListboxSection, Avatar, CardBody, CardFooter, Link, Switch as Switch$1, TimeInput as TimeInput$1, Select as Select$1, Image as Image$1, Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, Textarea as Textarea$1, Alert, Modal as Modal$1, ModalContent as ModalContent$1, ModalHeader as ModalHeader$1, ModalBody as ModalBody$1, Slider, ModalFooter as ModalFooter$1, SelectItem, Drawer, DrawerContent, DrawerBody } from '@heroui/react';
|
|
2
2
|
export * from '@heroui/react';
|
|
3
3
|
export { Slider } from '@heroui/react';
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -1072,18 +1072,18 @@ var themeColors = {
|
|
|
1072
1072
|
DEFAULT: "#FFD505",
|
|
1073
1073
|
},
|
|
1074
1074
|
secondary: {
|
|
1075
|
-
50: "#
|
|
1076
|
-
100: "#
|
|
1077
|
-
200: "#
|
|
1078
|
-
300: "#
|
|
1079
|
-
400: "#
|
|
1080
|
-
500: "#
|
|
1081
|
-
600: "#
|
|
1082
|
-
700: "#
|
|
1083
|
-
800: "#
|
|
1084
|
-
900: "#
|
|
1075
|
+
"50": "#002147",
|
|
1076
|
+
"100": "#003571",
|
|
1077
|
+
"200": "#00489b",
|
|
1078
|
+
"300": "#005cc4",
|
|
1079
|
+
"400": "#006fee",
|
|
1080
|
+
"500": "#2d88f1",
|
|
1081
|
+
"600": "#59a1f4",
|
|
1082
|
+
"700": "#86bbf7",
|
|
1083
|
+
"800": "#b3d4fa",
|
|
1084
|
+
"900": "#dfedfd",
|
|
1085
1085
|
foreground: "#fff",
|
|
1086
|
-
DEFAULT: "#
|
|
1086
|
+
DEFAULT: "#006fee",
|
|
1087
1087
|
},
|
|
1088
1088
|
focus: "#FFD505",
|
|
1089
1089
|
overlay: "#ffffff",
|
|
@@ -1749,7 +1749,7 @@ KanbanCard.displayName = "KanbanCard";
|
|
|
1749
1749
|
*/
|
|
1750
1750
|
var KanbanColumnComponent = function (_a) {
|
|
1751
1751
|
var _b, _c;
|
|
1752
|
-
var column = _a.column, renderItem = _a.renderItem, onCardClick = _a.onCardClick, cardClassName = _a.cardClassName, isCardClickable = _a.isCardClickable, className = _a.className, _d = _a.maxHeight, maxHeight = _d === void 0 ? "calc(100vh - 280px)" : _d, renderColumnHeader = _a.renderColumnHeader, renderEmptyState = _a.renderEmptyState, _e = _a.isDraggable, isDraggable = _e === void 0 ? false : _e, onDragStart = _a.onDragStart, onDragEnd = _a.onDragEnd, onDrop = _a.onDrop, _f = _a.isDragging, isDragging = _f === void 0 ? false : _f, _g = _a.translations, translations = _g === void 0 ? {} : _g;
|
|
1752
|
+
var column = _a.column, renderItem = _a.renderItem, onCardClick = _a.onCardClick, cardClassName = _a.cardClassName, isCardClickable = _a.isCardClickable, className = _a.className, _d = _a.maxHeight, maxHeight = _d === void 0 ? "calc(100vh - 280px)" : _d, renderColumnHeader = _a.renderColumnHeader, renderEmptyState = _a.renderEmptyState, _e = _a.isDraggable, isDraggable = _e === void 0 ? false : _e, onDragStart = _a.onDragStart, onDragEnd = _a.onDragEnd, onDrop = _a.onDrop, _f = _a.isDragging, isDragging = _f === void 0 ? false : _f, _g = _a.translations, translations = _g === void 0 ? {} : _g, onLoadMore = _a.onLoadMore;
|
|
1753
1753
|
// Traducciones con fallbacks
|
|
1754
1754
|
var t = {
|
|
1755
1755
|
dropHere: (_b = translations.dropHere) !== null && _b !== void 0 ? _b : "Soltar aquí",
|
|
@@ -1757,6 +1757,23 @@ var KanbanColumnComponent = function (_a) {
|
|
|
1757
1757
|
};
|
|
1758
1758
|
var _h = useState(false), isDragOver = _h[0], setIsDragOver = _h[1];
|
|
1759
1759
|
var _j = useState(null), dropIndex = _j[0], setDropIndex = _j[1];
|
|
1760
|
+
var scrollContainerRef = useRef(null);
|
|
1761
|
+
// Detección de scroll infinito
|
|
1762
|
+
useEffect(function () {
|
|
1763
|
+
var scrollContainer = scrollContainerRef.current;
|
|
1764
|
+
if (!scrollContainer || !onLoadMore)
|
|
1765
|
+
return;
|
|
1766
|
+
var handleScroll = function () {
|
|
1767
|
+
var scrollTop = scrollContainer.scrollTop, scrollHeight = scrollContainer.scrollHeight, clientHeight = scrollContainer.clientHeight;
|
|
1768
|
+
// Cargar más cuando esté a 100px del final
|
|
1769
|
+
var isNearBottom = scrollTop + clientHeight >= scrollHeight - 100;
|
|
1770
|
+
if (isNearBottom && column.hasMore && !column.isLoading) {
|
|
1771
|
+
onLoadMore();
|
|
1772
|
+
}
|
|
1773
|
+
};
|
|
1774
|
+
scrollContainer.addEventListener("scroll", handleScroll);
|
|
1775
|
+
return function () { return scrollContainer.removeEventListener("scroll", handleScroll); };
|
|
1776
|
+
}, [onLoadMore, column.hasMore, column.isLoading]);
|
|
1760
1777
|
var itemCount = column.items.length;
|
|
1761
1778
|
var isEmpty = itemCount === 0;
|
|
1762
1779
|
var handleDragOver = useCallback(function (e) {
|
|
@@ -1793,7 +1810,7 @@ var KanbanColumnComponent = function (_a) {
|
|
|
1793
1810
|
}, []);
|
|
1794
1811
|
return (jsxs("div", { className: cn("flex flex-col bg-default-50 rounded-lg border border-default-200 transition-colors", isDragOver && isDragging && "border-primary-400 bg-primary-50/30", className), onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, children: [renderColumnHeader ? (renderColumnHeader(column)) : (jsxs("div", { className: "flex items-center justify-between px-4 py-3 border-b border-default-200", children: [jsx("h3", { className: "font-semibold text-foreground", children: column.title }), jsx(Badge, { content: itemCount, color: column.countBadgeColor || "default", variant: "flat", size: "md", classNames: {
|
|
1795
1812
|
badge: "text-xs font-medium min-w-6 h-6",
|
|
1796
|
-
}, children: jsxs("span", { className: "sr-only", children: [itemCount, " items"] }) })] })), jsx("div", { className: cn("flex-1 overflow-y-auto p-3 space-y-3", isDragOver && isEmpty && "min-h-24"), style: { maxHeight: maxHeight }, children: isEmpty ? (isDragOver && isDragging ? (jsx("div", { className: "h-24 border-2 border-dashed border-primary-300 rounded-lg bg-primary-50/50 flex items-center justify-center", children: jsx("span", { className: "text-primary-500 text-sm", children: t.dropHere }) })) : renderEmptyState ? (renderEmptyState(column)) : (jsx("div", { className: "flex items-center justify-center h-24 text-default-400 text-sm", children: column.emptyMessage || t.emptyMessage }))) : (jsxs(Fragment, { children: [column.items.map(function (item, index) { return (jsxs("div", { onDragOver: function (e) { return handleDragOverItem(e, index); }, children: [isDragOver && dropIndex === index && (jsx("div", { className: "h-1 bg-primary-400 rounded-full mb-3 animate-pulse" })), jsx(KanbanCard, { item: item, columnId: column.id, index: index, renderContent: renderItem, onCardClick: onCardClick, className: cardClassName, isClickable: isCardClickable, isDraggable: isDraggable, onDragStart: onDragStart, onDragEnd: onDragEnd })] }, item.id)); }), isDragOver && dropIndex === column.items.length && (jsx("div", { className: "h-1 bg-primary-400 rounded-full mt-3 animate-pulse" }))] })) })] }));
|
|
1813
|
+
}, children: jsxs("span", { className: "sr-only", children: [itemCount, " items"] }) })] })), jsx("div", { ref: scrollContainerRef, className: cn("flex-1 overflow-y-auto p-3 space-y-3", isDragOver && isEmpty && "min-h-24"), style: { maxHeight: maxHeight }, children: isEmpty ? (isDragOver && isDragging ? (jsx("div", { className: "h-24 border-2 border-dashed border-primary-300 rounded-lg bg-primary-50/50 flex items-center justify-center", children: jsx("span", { className: "text-primary-500 text-sm", children: t.dropHere }) })) : renderEmptyState ? (renderEmptyState(column)) : (jsx("div", { className: "flex items-center justify-center h-24 text-default-400 text-sm", children: column.emptyMessage || t.emptyMessage }))) : (jsxs(Fragment, { children: [column.items.map(function (item, index) { return (jsxs("div", { onDragOver: function (e) { return handleDragOverItem(e, index); }, children: [isDragOver && dropIndex === index && (jsx("div", { className: "h-1 bg-primary-400 rounded-full mb-3 animate-pulse" })), jsx(KanbanCard, { item: item, columnId: column.id, index: index, renderContent: renderItem, onCardClick: onCardClick, className: cardClassName, isClickable: isCardClickable, isDraggable: isDraggable, onDragStart: onDragStart, onDragEnd: onDragEnd })] }, item.id)); }), isDragOver && dropIndex === column.items.length && (jsx("div", { className: "h-1 bg-primary-400 rounded-full mt-3 animate-pulse" })), column.isLoading && (jsx("div", { className: "flex items-center justify-center py-4", children: jsx(Spinner, { size: "sm", color: "primary" }) }))] })) })] }));
|
|
1797
1814
|
};
|
|
1798
1815
|
var KanbanColumn = memo(KanbanColumnComponent);
|
|
1799
1816
|
KanbanColumn.displayName = "KanbanColumn";
|
|
@@ -1834,7 +1851,7 @@ var columnGapClasses = {
|
|
|
1834
1851
|
* ```
|
|
1835
1852
|
*/
|
|
1836
1853
|
var KanbanComponent = function (_a) {
|
|
1837
|
-
var columns = _a.columns, renderItem = _a.renderItem, onCardClick = _a.onCardClick, onItemMove = _a.onItemMove, isDraggable = _a.isDraggable, cardClassName = _a.cardClassName, isCardClickable = _a.isCardClickable, className = _a.className, _b = _a.columnWidth, columnWidth = _b === void 0 ? "280px" : _b, _c = _a.columnGap, columnGap = _c === void 0 ? "md" : _c, _d = _a.horizontalScroll, horizontalScroll = _d === void 0 ? true : _d, columnMaxHeight = _a.columnMaxHeight, renderColumnHeader = _a.renderColumnHeader, renderEmptyState = _a.renderEmptyState, _e = _a.translations, translations = _e === void 0 ? {} : _e;
|
|
1854
|
+
var columns = _a.columns, renderItem = _a.renderItem, onCardClick = _a.onCardClick, onItemMove = _a.onItemMove, isDraggable = _a.isDraggable, cardClassName = _a.cardClassName, isCardClickable = _a.isCardClickable, className = _a.className, _b = _a.columnWidth, columnWidth = _b === void 0 ? "280px" : _b, _c = _a.columnGap, columnGap = _c === void 0 ? "md" : _c, _d = _a.horizontalScroll, horizontalScroll = _d === void 0 ? true : _d, columnMaxHeight = _a.columnMaxHeight, renderColumnHeader = _a.renderColumnHeader, renderEmptyState = _a.renderEmptyState, _e = _a.translations, translations = _e === void 0 ? {} : _e, onLoadMore = _a.onLoadMore;
|
|
1838
1855
|
// Mezclar traducciones del usuario con las por defecto
|
|
1839
1856
|
var t = __assign(__assign({}, DEFAULT_TRANSLATIONS), translations);
|
|
1840
1857
|
// Determinar si drag está habilitado
|
|
@@ -1878,7 +1895,7 @@ var KanbanComponent = function (_a) {
|
|
|
1878
1895
|
});
|
|
1879
1896
|
handleDragEnd();
|
|
1880
1897
|
}, [onItemMove, handleDragEnd]);
|
|
1881
|
-
return (jsx("div", { className: cn("flex", columnGapClasses[columnGap], horizontalScroll && "overflow-x-auto pb-4", className), children: columns.map(function (column) { return (jsx("div", { className: "flex-shrink-0", style: { width: columnWidth }, children: jsx(KanbanColumn, { column: column, renderItem: renderItem, onCardClick: onCardClick, cardClassName: cardClassName, isCardClickable: isCardClickable, maxHeight: columnMaxHeight, renderColumnHeader: renderColumnHeader, renderEmptyState: renderEmptyState, isDraggable: dragEnabled, onDragStart: handleDragStart, onDragEnd: handleDragEnd, onDrop: handleDrop, isDragging: isDragging, translations: t }) }, column.id)); }) }));
|
|
1898
|
+
return (jsx("div", { className: cn("flex", columnGapClasses[columnGap], horizontalScroll && "overflow-x-auto pb-4", className), children: columns.map(function (column) { return (jsx("div", { className: "flex-shrink-0", style: { width: columnWidth }, children: jsx(KanbanColumn, { column: column, renderItem: renderItem, onCardClick: onCardClick, cardClassName: cardClassName, isCardClickable: isCardClickable, maxHeight: columnMaxHeight, renderColumnHeader: renderColumnHeader, renderEmptyState: renderEmptyState, isDraggable: dragEnabled, onDragStart: handleDragStart, onDragEnd: handleDragEnd, onDrop: handleDrop, isDragging: isDragging, translations: t, onLoadMore: onLoadMore ? function () { return onLoadMore(column.id); } : undefined }) }, column.id)); }) }));
|
|
1882
1899
|
};
|
|
1883
1900
|
var Kanban = memo(KanbanComponent);
|
|
1884
1901
|
Kanban.displayName = "Kanban";
|
|
@@ -21,7 +21,7 @@ import type { KanbanProps } from "./Kanban.types";
|
|
|
21
21
|
* />
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
declare const KanbanComponent: <T>({ columns, renderItem, onCardClick, onItemMove, isDraggable, cardClassName, isCardClickable, className, columnWidth, columnGap, horizontalScroll, columnMaxHeight, renderColumnHeader, renderEmptyState, translations, }: KanbanProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
declare const KanbanComponent: <T>({ columns, renderItem, onCardClick, onItemMove, isDraggable, cardClassName, isCardClickable, className, columnWidth, columnGap, horizontalScroll, columnMaxHeight, renderColumnHeader, renderEmptyState, translations, onLoadMore, }: KanbanProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
25
25
|
export declare const Kanban: typeof KanbanComponent;
|
|
26
26
|
export {};
|
|
27
27
|
//# sourceMappingURL=Kanban.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Kanban.d.ts","sourceRoot":"","sources":["../../../../src/components/kanban/Kanban.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,WAAW,EAAsB,MAAM,gBAAgB,CAAC;AAkBlF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,eAAe,GAAI,CAAC,EAAG,
|
|
1
|
+
{"version":3,"file":"Kanban.d.ts","sourceRoot":"","sources":["../../../../src/components/kanban/Kanban.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,WAAW,EAAsB,MAAM,gBAAgB,CAAC;AAkBlF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,QAAA,MAAM,eAAe,GAAI,CAAC,EAAG,sOAiB1B,WAAW,CAAC,CAAC,CAAC,4CAoGhB,CAAC;AAEF,eAAO,MAAM,MAAM,EAA4B,OAAO,eAAe,CAAC"}
|
|
@@ -33,6 +33,10 @@ export interface KanbanColumn<T = unknown> {
|
|
|
33
33
|
emptyMessage?: string;
|
|
34
34
|
/** Color del badge de conteo */
|
|
35
35
|
countBadgeColor?: "default" | "primary" | "secondary" | "success" | "warning" | "danger";
|
|
36
|
+
/** Si hay más items para cargar (scroll infinito) */
|
|
37
|
+
hasMore?: boolean;
|
|
38
|
+
/** Si está cargando más items */
|
|
39
|
+
isLoading?: boolean;
|
|
36
40
|
}
|
|
37
41
|
/**
|
|
38
42
|
* Información del movimiento de un item entre columnas
|
|
@@ -111,6 +115,8 @@ export interface KanbanColumnInternalProps<T = unknown> {
|
|
|
111
115
|
* Si no se proporciona, usa traducciones por defecto en español.
|
|
112
116
|
*/
|
|
113
117
|
translations?: KanbanTranslations;
|
|
118
|
+
/** Callback para cargar más items (scroll infinito) */
|
|
119
|
+
onLoadMore?: () => void;
|
|
114
120
|
}
|
|
115
121
|
/**
|
|
116
122
|
* Props para el componente Kanban principal
|
|
@@ -159,5 +165,14 @@ export interface KanbanProps<T = unknown> {
|
|
|
159
165
|
* ```
|
|
160
166
|
*/
|
|
161
167
|
translations?: KanbanTranslations;
|
|
168
|
+
/**
|
|
169
|
+
* Callback para cargar más items cuando se hace scroll al final de una columna.
|
|
170
|
+
* Recibe el ID de la columna que necesita más items.
|
|
171
|
+
* @example
|
|
172
|
+
* ```tsx
|
|
173
|
+
* <Kanban onLoadMore={(columnId) => loadMoreItems(columnId)} />
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
onLoadMore?: (columnId: string) => void;
|
|
162
177
|
}
|
|
163
178
|
//# sourceMappingURL=Kanban.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Kanban.types.d.ts","sourceRoot":"","sources":["../../../../src/components/kanban/Kanban.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACtC,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,IAAI,EAAE,CAAC,CAAC;CACR;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACxC,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,eAAe,CAAC,EACb,SAAS,GACT,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Kanban.types.d.ts","sourceRoot":"","sources":["../../../../src/components/kanban/Kanban.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import type { KanbanColumnInternalProps } from "../Kanban.types";
|
|
|
6
6
|
* una lista scrolleable de tarjetas, y estado vacío.
|
|
7
7
|
* Acepta drops de tarjetas de otras columnas.
|
|
8
8
|
*/
|
|
9
|
-
declare const KanbanColumnComponent: <T>({ column, renderItem, onCardClick, cardClassName, isCardClickable, className, maxHeight, renderColumnHeader, renderEmptyState, isDraggable, onDragStart, onDragEnd, onDrop, isDragging, translations, }: KanbanColumnInternalProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare const KanbanColumnComponent: <T>({ column, renderItem, onCardClick, cardClassName, isCardClickable, className, maxHeight, renderColumnHeader, renderEmptyState, isDraggable, onDragStart, onDragEnd, onDrop, isDragging, translations, onLoadMore, }: KanbanColumnInternalProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
export declare const KanbanColumn: typeof KanbanColumnComponent;
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=KanbanColumn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/kanban/_internal/KanbanColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE;;;;;;GAMG;AACH,QAAA,MAAM,qBAAqB,GAAI,CAAC,EAAG,
|
|
1
|
+
{"version":3,"file":"KanbanColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/kanban/_internal/KanbanColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE;;;;;;GAMG;AACH,QAAA,MAAM,qBAAqB,GAAI,CAAC,EAAG,qNAiBhC,yBAAyB,CAAC,CAAC,CAAC,4CA6K9B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAkC,OAAO,qBAAqB,CAAC"}
|
|
@@ -275,16 +275,16 @@ export declare const themeColors: {
|
|
|
275
275
|
DEFAULT: string;
|
|
276
276
|
};
|
|
277
277
|
secondary: {
|
|
278
|
-
50: string;
|
|
279
|
-
100: string;
|
|
280
|
-
200: string;
|
|
281
|
-
300: string;
|
|
282
|
-
400: string;
|
|
283
|
-
500: string;
|
|
284
|
-
600: string;
|
|
285
|
-
700: string;
|
|
286
|
-
800: string;
|
|
287
|
-
900: string;
|
|
278
|
+
"50": string;
|
|
279
|
+
"100": string;
|
|
280
|
+
"200": string;
|
|
281
|
+
"300": string;
|
|
282
|
+
"400": string;
|
|
283
|
+
"500": string;
|
|
284
|
+
"600": string;
|
|
285
|
+
"700": string;
|
|
286
|
+
"800": string;
|
|
287
|
+
"900": string;
|
|
288
288
|
foreground: string;
|
|
289
289
|
DEFAULT: string;
|
|
290
290
|
};
|