@papernote/ui 1.10.9 → 1.10.11
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/components/Badge.d.ts +3 -1
- package/dist/components/Badge.d.ts.map +1 -1
- package/dist/components/Button.d.ts +4 -0
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/DataTable.d.ts +5 -1
- package/dist/components/DataTable.d.ts.map +1 -1
- package/dist/components/Progress.d.ts +5 -1
- package/dist/components/Progress.d.ts.map +1 -1
- package/dist/index.d.ts +17 -3
- package/dist/index.esm.js +135 -24
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +133 -22
- package/dist/index.js.map +1 -1
- package/dist/styles.css +54 -5
- package/package.json +1 -1
- package/src/components/Badge.stories.tsx +56 -0
- package/src/components/Badge.tsx +5 -0
- package/src/components/Button.stories.tsx +98 -0
- package/src/components/Button.tsx +45 -6
- package/src/components/DataTable.stories.tsx +63 -1
- package/src/components/DataTable.tsx +41 -1
- package/src/components/Progress.stories.tsx +116 -0
- package/src/components/Progress.tsx +153 -26
- package/tailwind.config.js +12 -0
|
@@ -14,6 +14,8 @@ export interface BadgeProps {
|
|
|
14
14
|
truncate?: boolean;
|
|
15
15
|
/** Maximum width for the badge (useful with truncate), e.g. '150px' or '10rem' */
|
|
16
16
|
maxWidth?: string;
|
|
17
|
+
/** Apply fade-in animation when badge appears */
|
|
18
|
+
animate?: boolean;
|
|
17
19
|
}
|
|
18
|
-
export default function Badge({ children, variant, size, icon, onRemove, className, dot, pill, truncate, maxWidth, }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export default function Badge({ children, variant, size, icon, onRemove, className, dot, pill, truncate, maxWidth, animate, }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
19
21
|
//# sourceMappingURL=Badge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oEAAoE;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,QAAQ,EACR,OAAmB,EACnB,IAAW,EACX,IAAI,EACJ,QAAQ,EACR,SAAc,EACd,GAAW,EACX,IAAY,EACZ,QAAgB,EAChB,QAAQ,
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oEAAoE;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,QAAQ,EACR,OAAmB,EACnB,IAAW,EACX,IAAI,EACJ,QAAQ,EACR,SAAc,EACd,GAAW,EACX,IAAY,EACZ,QAAgB,EAChB,QAAQ,EACR,OAAe,GAChB,EAAE,UAAU,2CAqFZ"}
|
|
@@ -21,6 +21,10 @@ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElemen
|
|
|
21
21
|
badge?: number | string;
|
|
22
22
|
/** Badge color variant */
|
|
23
23
|
badgeVariant?: 'primary' | 'success' | 'warning' | 'error';
|
|
24
|
+
/** Show success checkmark animation (briefly shows checkmark, then reverts) */
|
|
25
|
+
showSuccess?: boolean;
|
|
26
|
+
/** Duration in ms for success animation (default: 1500) */
|
|
27
|
+
successDuration?: number;
|
|
24
28
|
}
|
|
25
29
|
/**
|
|
26
30
|
* Button - Interactive button component with variants, sizes, and loading states
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAGvE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IAChF,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnE,kBAAkB;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAC3D,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,QAAA,MAAM,MAAM,uFA6IV,CAAC;AAIH,eAAe,MAAM,CAAC"}
|
|
@@ -180,6 +180,10 @@ interface DataTableProps<T extends BaseDataItem = BaseDataItem> {
|
|
|
180
180
|
rowHighlight?: (item: T) => string | undefined;
|
|
181
181
|
/** ID of a single row to highlight */
|
|
182
182
|
highlightedRowId?: string | number;
|
|
183
|
+
/** Array of row IDs to temporarily highlight (flash animation) */
|
|
184
|
+
highlightedRows?: (string | number)[];
|
|
185
|
+
/** Duration in ms for temporary row highlight (default: 2000) */
|
|
186
|
+
highlightDuration?: number;
|
|
183
187
|
/** Enable cell borders */
|
|
184
188
|
bordered?: boolean;
|
|
185
189
|
/** Custom border color (Tailwind class like 'border-paper-200') */
|
|
@@ -275,6 +279,6 @@ interface DataTableProps<T extends BaseDataItem = BaseDataItem> {
|
|
|
275
279
|
* />
|
|
276
280
|
* ```
|
|
277
281
|
*/
|
|
278
|
-
export default function DataTable<T extends BaseDataItem = BaseDataItem>({ data, columns, loading, error, emptyMessage, loadingRows, className, onSortChange, currentSort, onEdit, onDelete, actions, enableContextMenu, onRowClick, onRowDoubleClick, selectable, selectedRows: externalSelectedRows, onRowSelect, keyExtractor, expandable, expandedRows: externalExpandedRows, renderExpandedRow, expandedRowConfig, showExpandChevron, striped, stripedColor, density, rowClassName, rowHighlight, highlightedRowId, bordered, borderColor, disableHover, hiddenColumns, headerClassName, renderEmptyState: customRenderEmptyState, resizable, onColumnResize, reorderable, onColumnReorder, virtualized, virtualHeight, virtualRowHeight, paginated, currentPage, pageSize, totalItems, onPageChange, pageSizeOptions, onPageSizeChange, showPageSizeSelector, mobileView, cardConfig, cardGap, cardClassName, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
282
|
+
export default function DataTable<T extends BaseDataItem = BaseDataItem>({ data, columns, loading, error, emptyMessage, loadingRows, className, onSortChange, currentSort, onEdit, onDelete, actions, enableContextMenu, onRowClick, onRowDoubleClick, selectable, selectedRows: externalSelectedRows, onRowSelect, keyExtractor, expandable, expandedRows: externalExpandedRows, renderExpandedRow, expandedRowConfig, showExpandChevron, striped, stripedColor, density, rowClassName, rowHighlight, highlightedRowId, highlightedRows, highlightDuration, bordered, borderColor, disableHover, hiddenColumns, headerClassName, renderEmptyState: customRenderEmptyState, resizable, onColumnResize, reorderable, onColumnReorder, virtualized, virtualHeight, virtualRowHeight, paginated, currentPage, pageSize, totalItems, onPageChange, pageSizeOptions, onPageSizeChange, showPageSizeSelector, mobileView, cardConfig, cardGap, cardClassName, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
279
283
|
export {};
|
|
280
284
|
//# sourceMappingURL=DataTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../src/components/DataTable.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../src/components/DataTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,12 @@ export interface ProgressProps {
|
|
|
15
15
|
striped?: boolean;
|
|
16
16
|
/** Animated stripes (requires striped=true) */
|
|
17
17
|
animated?: boolean;
|
|
18
|
+
/** Milestone markers (array of values 0-100) */
|
|
19
|
+
milestones?: number[];
|
|
20
|
+
/** Show labels at milestone markers */
|
|
21
|
+
showMilestoneLabels?: boolean;
|
|
18
22
|
/** Class name for container */
|
|
19
23
|
className?: string;
|
|
20
24
|
}
|
|
21
|
-
export default function Progress({ value, variant, size, color, showLabel, label, striped, animated, className, }: ProgressProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export default function Progress({ value, variant, size, color, showLabel, label, striped, animated, milestones, showMilestoneLabels, className, }: ProgressProps): import("react/jsx-runtime").JSX.Element;
|
|
22
26
|
//# sourceMappingURL=Progress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../src/components/Progress.tsx"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACzC,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACpD,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,OAAkB,EAClB,IAAW,EACX,KAAiB,EACjB,SAAiB,EACjB,KAAK,EACL,OAAe,EACf,QAAgB,EAChB,SAAc,GACf,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../src/components/Progress.tsx"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACzC,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACpD,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,uCAAuC;IACvC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,OAAkB,EAClB,IAAW,EACX,KAAiB,EACjB,SAAiB,EACjB,KAAK,EACL,OAAe,EACf,QAAgB,EAChB,UAAU,EACV,mBAA2B,EAC3B,SAAc,GACf,EAAE,aAAa,2CAuPf"}
|
package/dist/index.d.ts
CHANGED
|
@@ -28,6 +28,10 @@ interface ButtonProps extends React__default.ButtonHTMLAttributes<HTMLButtonElem
|
|
|
28
28
|
badge?: number | string;
|
|
29
29
|
/** Badge color variant */
|
|
30
30
|
badgeVariant?: 'primary' | 'success' | 'warning' | 'error';
|
|
31
|
+
/** Show success checkmark animation (briefly shows checkmark, then reverts) */
|
|
32
|
+
showSuccess?: boolean;
|
|
33
|
+
/** Duration in ms for success animation (default: 1500) */
|
|
34
|
+
successDuration?: number;
|
|
31
35
|
}
|
|
32
36
|
/**
|
|
33
37
|
* Button - Interactive button component with variants, sizes, and loading states
|
|
@@ -3442,8 +3446,10 @@ interface BadgeProps {
|
|
|
3442
3446
|
truncate?: boolean;
|
|
3443
3447
|
/** Maximum width for the badge (useful with truncate), e.g. '150px' or '10rem' */
|
|
3444
3448
|
maxWidth?: string;
|
|
3449
|
+
/** Apply fade-in animation when badge appears */
|
|
3450
|
+
animate?: boolean;
|
|
3445
3451
|
}
|
|
3446
|
-
declare function Badge({ children, variant, size, icon, onRemove, className, dot, pill, truncate, maxWidth, }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
3452
|
+
declare function Badge({ children, variant, size, icon, onRemove, className, dot, pill, truncate, maxWidth, animate, }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
3447
3453
|
|
|
3448
3454
|
interface AvatarProps {
|
|
3449
3455
|
/** User's first name (for initials) */
|
|
@@ -3550,10 +3556,14 @@ interface ProgressProps {
|
|
|
3550
3556
|
striped?: boolean;
|
|
3551
3557
|
/** Animated stripes (requires striped=true) */
|
|
3552
3558
|
animated?: boolean;
|
|
3559
|
+
/** Milestone markers (array of values 0-100) */
|
|
3560
|
+
milestones?: number[];
|
|
3561
|
+
/** Show labels at milestone markers */
|
|
3562
|
+
showMilestoneLabels?: boolean;
|
|
3553
3563
|
/** Class name for container */
|
|
3554
3564
|
className?: string;
|
|
3555
3565
|
}
|
|
3556
|
-
declare function Progress({ value, variant, size, color, showLabel, label, striped, animated, className, }: ProgressProps): react_jsx_runtime.JSX.Element;
|
|
3566
|
+
declare function Progress({ value, variant, size, color, showLabel, label, striped, animated, milestones, showMilestoneLabels, className, }: ProgressProps): react_jsx_runtime.JSX.Element;
|
|
3557
3567
|
|
|
3558
3568
|
interface AccordionItem {
|
|
3559
3569
|
id: string;
|
|
@@ -4805,6 +4815,10 @@ interface DataTableProps<T extends BaseDataItem$1 = BaseDataItem$1> {
|
|
|
4805
4815
|
rowHighlight?: (item: T) => string | undefined;
|
|
4806
4816
|
/** ID of a single row to highlight */
|
|
4807
4817
|
highlightedRowId?: string | number;
|
|
4818
|
+
/** Array of row IDs to temporarily highlight (flash animation) */
|
|
4819
|
+
highlightedRows?: (string | number)[];
|
|
4820
|
+
/** Duration in ms for temporary row highlight (default: 2000) */
|
|
4821
|
+
highlightDuration?: number;
|
|
4808
4822
|
/** Enable cell borders */
|
|
4809
4823
|
bordered?: boolean;
|
|
4810
4824
|
/** Custom border color (Tailwind class like 'border-paper-200') */
|
|
@@ -4900,7 +4914,7 @@ interface DataTableProps<T extends BaseDataItem$1 = BaseDataItem$1> {
|
|
|
4900
4914
|
* />
|
|
4901
4915
|
* ```
|
|
4902
4916
|
*/
|
|
4903
|
-
declare function DataTable<T extends BaseDataItem$1 = BaseDataItem$1>({ data, columns, loading, error, emptyMessage, loadingRows, className, onSortChange, currentSort, onEdit, onDelete, actions, enableContextMenu, onRowClick, onRowDoubleClick, selectable, selectedRows: externalSelectedRows, onRowSelect, keyExtractor, expandable, expandedRows: externalExpandedRows, renderExpandedRow, expandedRowConfig, showExpandChevron, striped, stripedColor, density, rowClassName, rowHighlight, highlightedRowId, bordered, borderColor, disableHover, hiddenColumns, headerClassName, renderEmptyState: customRenderEmptyState, resizable, onColumnResize, reorderable, onColumnReorder, virtualized, virtualHeight, virtualRowHeight, paginated, currentPage, pageSize, totalItems, onPageChange, pageSizeOptions, onPageSizeChange, showPageSizeSelector, mobileView, cardConfig, cardGap, cardClassName, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
4917
|
+
declare function DataTable<T extends BaseDataItem$1 = BaseDataItem$1>({ data, columns, loading, error, emptyMessage, loadingRows, className, onSortChange, currentSort, onEdit, onDelete, actions, enableContextMenu, onRowClick, onRowDoubleClick, selectable, selectedRows: externalSelectedRows, onRowSelect, keyExtractor, expandable, expandedRows: externalExpandedRows, renderExpandedRow, expandedRowConfig, showExpandChevron, striped, stripedColor, density, rowClassName, rowHighlight, highlightedRowId, highlightedRows, highlightDuration, bordered, borderColor, disableHover, hiddenColumns, headerClassName, renderEmptyState: customRenderEmptyState, resizable, onColumnResize, reorderable, onColumnReorder, virtualized, virtualHeight, virtualRowHeight, paginated, currentPage, pageSize, totalItems, onPageChange, pageSizeOptions, onPageSizeChange, showPageSizeSelector, mobileView, cardConfig, cardGap, cardClassName, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
|
|
4904
4918
|
|
|
4905
4919
|
/**
|
|
4906
4920
|
* Cell value type - can be primitive or formula
|
package/dist/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import React__default, { forwardRef, useState, useEffect, useCallback,
|
|
4
|
-
import { Loader2, X, EyeOff, Eye, AlertTriangle, CheckCircle, AlertCircle, ChevronDown, Search,
|
|
3
|
+
import React__default, { forwardRef, useState, useRef, useEffect, useCallback, useId, useImperativeHandle, useMemo, Children, isValidElement, cloneElement, Component, createContext as createContext$1, useContext, useLayoutEffect, createElement, useReducer } from 'react';
|
|
4
|
+
import { Loader2, Check, X, EyeOff, Eye, AlertTriangle, CheckCircle, AlertCircle, ChevronDown, Search, Minus, Star, Calendar as Calendar$1, ChevronLeft, ChevronRight, Clock, ChevronUp, Plus, TrendingUp, TrendingDown, Info, Trash2, ChevronsLeft, ChevronsRight, Circle, MoreVertical, GripVertical, Upload, Bold, Italic, Underline, List, ListOrdered, Code, Link, MoreHorizontal, Home, FileText, Image, File as File$1, Menu as Menu$1, ArrowDown, User, Settings, LogOut, Moon, Sun, Bell, ExternalLink, Edit, Trash, Pin, PinOff, Download, Save, ArrowUpDown, Filter, XCircle, BarChart3, MessageSquare } from 'lucide-react';
|
|
5
5
|
import { createPortal } from 'react-dom';
|
|
6
6
|
import { useInRouterContext, useNavigate, useLocation, Link as Link$1 } from 'react-router-dom';
|
|
7
7
|
|
|
@@ -61,7 +61,29 @@ function _mergeNamespaces(n, m) {
|
|
|
61
61
|
* <Button ref={buttonRef}>Focusable</Button>
|
|
62
62
|
* ```
|
|
63
63
|
*/
|
|
64
|
-
const Button = forwardRef(({ variant = 'primary', size = 'md', loading = false, icon, iconPosition = 'left', fullWidth = false, iconOnly = false, badge, badgeVariant = 'error', children, disabled, className = '', ...props }, ref) => {
|
|
64
|
+
const Button = forwardRef(({ variant = 'primary', size = 'md', loading = false, icon, iconPosition = 'left', fullWidth = false, iconOnly = false, badge, badgeVariant = 'error', showSuccess = false, successDuration = 1500, children, disabled, className = '', ...props }, ref) => {
|
|
65
|
+
// Track success animation state
|
|
66
|
+
const [isShowingSuccess, setIsShowingSuccess] = useState(false);
|
|
67
|
+
const successTimeoutRef = useRef(null);
|
|
68
|
+
// Handle showSuccess prop changes
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
if (showSuccess && !isShowingSuccess) {
|
|
71
|
+
setIsShowingSuccess(true);
|
|
72
|
+
// Clear any existing timeout
|
|
73
|
+
if (successTimeoutRef.current) {
|
|
74
|
+
window.clearTimeout(successTimeoutRef.current);
|
|
75
|
+
}
|
|
76
|
+
// Set timeout to revert back
|
|
77
|
+
successTimeoutRef.current = window.setTimeout(() => {
|
|
78
|
+
setIsShowingSuccess(false);
|
|
79
|
+
}, successDuration);
|
|
80
|
+
}
|
|
81
|
+
return () => {
|
|
82
|
+
if (successTimeoutRef.current) {
|
|
83
|
+
window.clearTimeout(successTimeoutRef.current);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}, [showSuccess, successDuration, isShowingSuccess]);
|
|
65
87
|
const baseStyles = 'inline-flex items-center justify-center font-medium rounded-lg border transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-accent-400 disabled:opacity-40 disabled:cursor-not-allowed';
|
|
66
88
|
const variantStyles = {
|
|
67
89
|
primary: 'bg-accent-500 text-white border-accent-500 hover:bg-accent-600 hover:shadow-sm active:scale-[0.98]',
|
|
@@ -92,13 +114,15 @@ const Button = forwardRef(({ variant = 'primary', size = 'md', loading = false,
|
|
|
92
114
|
md: 'min-w-[18px] h-[18px] text-[11px] px-1.5',
|
|
93
115
|
lg: 'min-w-[20px] h-5 text-xs px-1.5',
|
|
94
116
|
};
|
|
117
|
+
// Determine what to show inside button
|
|
118
|
+
const showSuccessState = isShowingSuccess && !loading;
|
|
95
119
|
const buttonElement = (jsxs("button", { ref: ref, className: `
|
|
96
120
|
${baseStyles}
|
|
97
|
-
${variantStyles[variant]}
|
|
121
|
+
${showSuccessState ? 'bg-success-500 border-success-500 text-white' : variantStyles[variant]}
|
|
98
122
|
${sizeStyles[size]}
|
|
99
123
|
${fullWidth && !iconOnly ? 'w-full' : ''}
|
|
100
124
|
${className}
|
|
101
|
-
`, disabled: disabled || loading, "aria-label": iconOnly && typeof children === 'string' ? children : props['aria-label'], ...props, children: [loading && (jsx(Loader2, { className: `${iconSize[size]} animate-spin` })), !loading && icon && iconPosition === 'left' && (jsx("span", { className: iconSize[size], children: icon })), !iconOnly && children, !loading && icon && iconPosition === 'right' && !iconOnly && (jsx("span", { className: iconSize[size], children: icon }))] }));
|
|
125
|
+
`, disabled: disabled || loading, "aria-label": iconOnly && typeof children === 'string' ? children : props['aria-label'], ...props, children: [loading && (jsx(Loader2, { className: `${iconSize[size]} animate-spin` })), showSuccessState && (jsx(Check, { className: `${iconSize[size]} animate-success-check` })), !loading && !showSuccessState && icon && iconPosition === 'left' && (jsx("span", { className: iconSize[size], children: icon })), !iconOnly && !showSuccessState && children, !loading && !showSuccessState && icon && iconPosition === 'right' && !iconOnly && (jsx("span", { className: iconSize[size], children: icon }))] }));
|
|
102
126
|
// If no badge, return button directly
|
|
103
127
|
if (!badge && badge !== 0) {
|
|
104
128
|
return buttonElement;
|
|
@@ -8872,7 +8896,7 @@ function Breadcrumbs({ items, showHome = true }) {
|
|
|
8872
8896
|
})] }));
|
|
8873
8897
|
}
|
|
8874
8898
|
|
|
8875
|
-
function Badge({ children, variant = 'neutral', size = 'md', icon, onRemove, className = '', dot = false, pill = false, truncate = false, maxWidth, }) {
|
|
8899
|
+
function Badge({ children, variant = 'neutral', size = 'md', icon, onRemove, className = '', dot = false, pill = false, truncate = false, maxWidth, animate = false, }) {
|
|
8876
8900
|
const variantStyles = {
|
|
8877
8901
|
success: 'bg-success-50 text-success-700 border-success-200',
|
|
8878
8902
|
warning: 'bg-warning-50 text-warning-700 border-warning-200',
|
|
@@ -8914,6 +8938,7 @@ function Badge({ children, variant = 'neutral', size = 'md', icon, onRemove, cla
|
|
|
8914
8938
|
inline-block rounded-full
|
|
8915
8939
|
${dotVariantStyles[variant]}
|
|
8916
8940
|
${dotSizeStyles[size]}
|
|
8941
|
+
${animate ? 'animate-fade-in' : ''}
|
|
8917
8942
|
${className}
|
|
8918
8943
|
`, "aria-label": `${variant} indicator` }));
|
|
8919
8944
|
}
|
|
@@ -8924,6 +8949,7 @@ function Badge({ children, variant = 'neutral', size = 'md', icon, onRemove, cla
|
|
|
8924
8949
|
${variantStyles[variant]}
|
|
8925
8950
|
${pill ? pillSizeStyles[size] : sizeStyles[size]}
|
|
8926
8951
|
${truncate ? 'max-w-full overflow-hidden' : ''}
|
|
8952
|
+
${animate ? 'animate-fade-in' : ''}
|
|
8927
8953
|
${className}
|
|
8928
8954
|
`, style: maxWidth ? { maxWidth } : undefined, children: [icon && jsx("span", { className: `${iconSize[size]} flex-shrink-0`, children: icon }), jsx("span", { className: truncate ? 'truncate' : '', children: children }), onRemove && (jsx("button", { onClick: onRemove, className: "ml-1 hover:opacity-70 transition-opacity flex-shrink-0", "aria-label": "Remove badge", children: jsx(X, { className: iconSize[size] }) }))] }));
|
|
8929
8955
|
}
|
|
@@ -9486,7 +9512,7 @@ function ComingSoon({ title, description, icon, features = [], estimatedDate })
|
|
|
9486
9512
|
return (jsx("div", { className: "p-6 max-w-4xl mx-auto", children: jsxs("div", { className: "bg-paper-50 dark:bg-paper-800 rounded-lg shadow-sm border border-paper-200 dark:border-paper-700 p-8", children: [jsxs("div", { className: "flex items-start gap-4 mb-6", children: [jsx("div", { className: "p-3 bg-primary-100 dark:bg-primary-900 rounded-lg", children: icon || jsx(FileText, { className: "h-8 w-8 text-primary-600 dark:text-primary-400" }) }), jsxs("div", { className: "flex-1", children: [jsx("h1", { className: "text-2xl font-bold text-ink-900 dark:text-ink-100 mb-2", children: title }), jsx("p", { className: "text-base text-ink-600 dark:text-ink-400", children: description })] })] }), jsx("div", { className: "mb-6", children: jsxs("div", { className: "inline-flex items-center gap-2 px-4 py-2 bg-warning-100 dark:bg-warning-900 rounded-full", children: [jsx(AlertCircle, { className: "h-4 w-4 text-warning-700 dark:text-warning-300" }), jsx("span", { className: "text-sm font-medium text-warning-700 dark:text-warning-300", children: "Coming Soon - Under Development" })] }) }), features.length > 0 && (jsxs("div", { className: "mb-6", children: [jsxs("h2", { className: "text-lg font-semibold text-ink-900 dark:text-ink-100 mb-3 flex items-center gap-2", children: [jsx(TrendingUp, { className: "h-5 w-5" }), "Planned Features"] }), jsx("ul", { className: "space-y-2", children: features.map((feature, index) => (jsxs("li", { className: "flex items-start gap-2 text-ink-600 dark:text-ink-400", children: [jsx("span", { className: "text-primary-500 mt-1", children: "\u2022" }), jsx("span", { children: feature })] }, index))) })] })), estimatedDate && (jsx("div", { className: "pt-6 border-t border-paper-300 dark:border-paper-600", children: jsxs("div", { className: "flex items-center gap-2 text-sm text-ink-600 dark:text-ink-400", children: [jsx(Calendar$1, { className: "h-4 w-4" }), jsxs("span", { children: [jsx("span", { className: "font-medium", children: "Estimated Release:" }), " ", estimatedDate] })] }) })), jsx("div", { className: "mt-6 p-4 bg-paper-100 dark:bg-paper-700 rounded", children: jsxs("p", { className: "text-sm text-ink-600 dark:text-ink-400", children: [jsx("span", { className: "font-medium", children: "Need this feature sooner?" }), " Contact your administrator to discuss prioritization."] }) })] }) }));
|
|
9487
9513
|
}
|
|
9488
9514
|
|
|
9489
|
-
function Progress({ value, variant = 'linear', size = 'md', color = 'primary', showLabel = false, label, striped = false, animated = false, className = '', }) {
|
|
9515
|
+
function Progress({ value, variant = 'linear', size = 'md', color = 'primary', showLabel = false, label, striped = false, animated = false, milestones, showMilestoneLabels = false, className = '', }) {
|
|
9490
9516
|
// Clamp value between 0 and 100
|
|
9491
9517
|
const clampedValue = Math.min(100, Math.max(0, value));
|
|
9492
9518
|
const colorClasses = {
|
|
@@ -9510,24 +9536,43 @@ function Progress({ value, variant = 'linear', size = 'md', color = 'primary', s
|
|
|
9510
9536
|
md: 'h-2',
|
|
9511
9537
|
lg: 'h-3',
|
|
9512
9538
|
};
|
|
9513
|
-
|
|
9514
|
-
|
|
9515
|
-
|
|
9516
|
-
|
|
9517
|
-
|
|
9518
|
-
|
|
9519
|
-
|
|
9520
|
-
|
|
9521
|
-
|
|
9522
|
-
|
|
9539
|
+
const tickSizes = {
|
|
9540
|
+
sm: { height: 8, width: 2 },
|
|
9541
|
+
md: { height: 12, width: 2 },
|
|
9542
|
+
lg: { height: 16, width: 3 },
|
|
9543
|
+
};
|
|
9544
|
+
// Sort and clamp milestones
|
|
9545
|
+
const sortedMilestones = milestones
|
|
9546
|
+
? [...milestones].map(m => Math.min(100, Math.max(0, m))).sort((a, b) => a - b)
|
|
9547
|
+
: [];
|
|
9548
|
+
return (jsxs("div", { className: `w-full ${className}`, children: [jsxs("div", { className: "relative", children: [jsx("div", { className: `relative w-full rounded-full overflow-hidden ${bgColorClasses[color]} ${heightClasses[size]}`, children: jsx("div", { className: `
|
|
9549
|
+
h-full transition-all duration-300 ease-out
|
|
9550
|
+
${colorClasses[color]}
|
|
9551
|
+
${striped ? 'bg-striped' : ''}
|
|
9552
|
+
${animated && striped ? 'animate-striped' : ''}
|
|
9553
|
+
`, style: {
|
|
9554
|
+
width: `${clampedValue}%`,
|
|
9555
|
+
backgroundImage: striped ? 'linear-gradient(45deg, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent)' : undefined,
|
|
9556
|
+
backgroundSize: striped ? '1rem 1rem' : undefined,
|
|
9557
|
+
}, role: "progressbar", "aria-valuenow": clampedValue, "aria-valuemin": 0, "aria-valuemax": 100 }) }), sortedMilestones.length > 0 && (jsx("div", { className: "absolute inset-0 pointer-events-none", children: sortedMilestones.map((milestone) => (jsx("div", { className: "absolute flex flex-col items-center", style: {
|
|
9558
|
+
left: `${milestone}%`,
|
|
9559
|
+
top: '50%',
|
|
9560
|
+
transform: 'translate(-50%, -50%)',
|
|
9561
|
+
}, children: jsx("div", { className: `rounded-full ${milestone <= clampedValue ? 'bg-ink-700' : 'bg-ink-400'}`, style: {
|
|
9562
|
+
width: tickSizes[size].width,
|
|
9563
|
+
height: tickSizes[size].height,
|
|
9564
|
+
} }) }, milestone))) }))] }), showMilestoneLabels && sortedMilestones.length > 0 && (jsx("div", { className: "relative w-full mt-1", style: { height: '1rem' }, children: sortedMilestones.map((milestone) => (jsxs("span", { className: "absolute text-xs text-ink-500", style: {
|
|
9565
|
+
left: `${milestone}%`,
|
|
9566
|
+
transform: 'translateX(-50%)',
|
|
9567
|
+
}, children: [milestone, "%"] }, milestone))) })), (showLabel || label) && !showMilestoneLabels && (jsx("p", { className: "text-xs text-ink-600 mt-1", children: label || `${Math.round(clampedValue)}%` }))] }));
|
|
9523
9568
|
}
|
|
9524
9569
|
// Circular progress
|
|
9525
9570
|
const sizeValues = {
|
|
9526
|
-
sm: { size: 40, stroke: 3, fontSize: 'text-xs' },
|
|
9527
|
-
md: { size: 60, stroke: 4, fontSize: 'text-sm' },
|
|
9528
|
-
lg: { size: 80, stroke: 5, fontSize: 'text-base' },
|
|
9571
|
+
sm: { size: 40, stroke: 3, fontSize: 'text-xs', dotSize: 4, labelOffset: 14 },
|
|
9572
|
+
md: { size: 60, stroke: 4, fontSize: 'text-sm', dotSize: 5, labelOffset: 18 },
|
|
9573
|
+
lg: { size: 80, stroke: 5, fontSize: 'text-base', dotSize: 6, labelOffset: 22 },
|
|
9529
9574
|
};
|
|
9530
|
-
const { size: svgSize, stroke: strokeWidth, fontSize } = sizeValues[size];
|
|
9575
|
+
const { size: svgSize, stroke: strokeWidth, fontSize, dotSize, labelOffset } = sizeValues[size];
|
|
9531
9576
|
const radius = (svgSize - strokeWidth) / 2;
|
|
9532
9577
|
const circumference = 2 * Math.PI * radius;
|
|
9533
9578
|
const offset = circumference - (clampedValue / 100) * circumference;
|
|
@@ -9543,7 +9588,44 @@ function Progress({ value, variant = 'linear', size = 'md', color = 'primary', s
|
|
|
9543
9588
|
warning: 'stroke-warning-100',
|
|
9544
9589
|
error: 'stroke-error-100',
|
|
9545
9590
|
};
|
|
9546
|
-
|
|
9591
|
+
// Sort and clamp milestones for circular
|
|
9592
|
+
const sortedMilestones = milestones
|
|
9593
|
+
? [...milestones].map(m => Math.min(100, Math.max(0, m))).sort((a, b) => a - b)
|
|
9594
|
+
: [];
|
|
9595
|
+
// Calculate position on circle for a given percentage
|
|
9596
|
+
// SVG is rotated -90deg so 0% is at top
|
|
9597
|
+
const getMilestonePosition = (percentage, r) => {
|
|
9598
|
+
const angle = (percentage / 100) * 2 * Math.PI - Math.PI / 2;
|
|
9599
|
+
return {
|
|
9600
|
+
x: svgSize / 2 + r * Math.cos(angle),
|
|
9601
|
+
y: svgSize / 2 + r * Math.sin(angle),
|
|
9602
|
+
};
|
|
9603
|
+
};
|
|
9604
|
+
// Size for the container when labels are shown
|
|
9605
|
+
const containerSize = showMilestoneLabels && sortedMilestones.length > 0
|
|
9606
|
+
? svgSize + labelOffset * 2
|
|
9607
|
+
: svgSize;
|
|
9608
|
+
return (jsx("div", { className: `inline-flex flex-col items-center ${className}`, children: jsxs("div", { className: "relative", style: { width: containerSize, height: containerSize }, children: [jsxs("svg", { width: svgSize, height: svgSize, style: {
|
|
9609
|
+
position: 'absolute',
|
|
9610
|
+
left: showMilestoneLabels && sortedMilestones.length > 0 ? labelOffset : 0,
|
|
9611
|
+
top: showMilestoneLabels && sortedMilestones.length > 0 ? labelOffset : 0,
|
|
9612
|
+
}, children: [jsx("circle", { cx: svgSize / 2, cy: svgSize / 2, r: radius, fill: "none", strokeWidth: strokeWidth, className: strokeBgColorClasses[color] }), jsx("circle", { cx: svgSize / 2, cy: svgSize / 2, r: radius, fill: "none", strokeWidth: strokeWidth, strokeDasharray: circumference, strokeDashoffset: offset, strokeLinecap: "round", className: `${strokeColorClasses[color]} transition-all duration-300 ease-out`, style: { transform: 'rotate(-90deg)', transformOrigin: 'center' } }), sortedMilestones.map((milestone) => {
|
|
9613
|
+
const pos = getMilestonePosition(milestone, radius);
|
|
9614
|
+
return (jsx("circle", { cx: pos.x, cy: pos.y, r: dotSize / 2, className: milestone <= clampedValue ? 'fill-ink-700' : 'fill-ink-400' }, milestone));
|
|
9615
|
+
})] }), (showLabel || label) && (jsx("div", { className: "absolute flex items-center justify-center", style: {
|
|
9616
|
+
left: showMilestoneLabels && sortedMilestones.length > 0 ? labelOffset : 0,
|
|
9617
|
+
top: showMilestoneLabels && sortedMilestones.length > 0 ? labelOffset : 0,
|
|
9618
|
+
width: svgSize,
|
|
9619
|
+
height: svgSize,
|
|
9620
|
+
}, children: jsx("span", { className: `font-medium text-ink-900 ${fontSize}`, children: label || `${Math.round(clampedValue)}%` }) })), showMilestoneLabels && sortedMilestones.map((milestone) => {
|
|
9621
|
+
const pos = getMilestonePosition(milestone, radius + labelOffset);
|
|
9622
|
+
return (jsxs("span", { className: "absolute text-xs text-ink-500", style: {
|
|
9623
|
+
left: pos.x + labelOffset - 12,
|
|
9624
|
+
top: pos.y + labelOffset - 6,
|
|
9625
|
+
width: 24,
|
|
9626
|
+
textAlign: 'center',
|
|
9627
|
+
}, children: [milestone, "%"] }, milestone));
|
|
9628
|
+
})] }) }));
|
|
9547
9629
|
}
|
|
9548
9630
|
|
|
9549
9631
|
function Accordion({ items, allowMultiple = false, defaultOpen = [], onChange, expandIcon, collapseIcon, showStepNumbers = false, }) {
|
|
@@ -11617,7 +11699,7 @@ function getColumnStyle(column, dynamicWidth) {
|
|
|
11617
11699
|
*/
|
|
11618
11700
|
function DataTable({ data, columns, loading = false, error = null, emptyMessage = 'No data available', loadingRows = 5, className = '', onSortChange, currentSort = null, onEdit, onDelete, actions = [], enableContextMenu = true, onRowClick, onRowDoubleClick, selectable = false, selectedRows: externalSelectedRows, onRowSelect, keyExtractor, expandable = false, expandedRows: externalExpandedRows, renderExpandedRow, expandedRowConfig, showExpandChevron = false,
|
|
11619
11701
|
// Visual customization props
|
|
11620
|
-
striped = false, stripedColor, density = 'normal', rowClassName, rowHighlight, highlightedRowId, bordered = false, borderColor = 'border-paper-200', disableHover = false, hiddenColumns = [], headerClassName = '', renderEmptyState: customRenderEmptyState, resizable = false, onColumnResize, reorderable = false, onColumnReorder, virtualized = false, virtualHeight = '600px', virtualRowHeight = 60,
|
|
11702
|
+
striped = false, stripedColor, density = 'normal', rowClassName, rowHighlight, highlightedRowId, highlightedRows = [], highlightDuration = 2000, bordered = false, borderColor = 'border-paper-200', disableHover = false, hiddenColumns = [], headerClassName = '', renderEmptyState: customRenderEmptyState, resizable = false, onColumnResize, reorderable = false, onColumnReorder, virtualized = false, virtualHeight = '600px', virtualRowHeight = 60,
|
|
11621
11703
|
// Pagination props
|
|
11622
11704
|
paginated = false, currentPage = 1, pageSize = 10, totalItems, onPageChange, pageSizeOptions = [10, 25, 50, 100], onPageSizeChange, showPageSizeSelector = true,
|
|
11623
11705
|
// Mobile view props
|
|
@@ -11638,6 +11720,9 @@ mobileView = 'auto', cardConfig, cardGap = 'md', cardClassName, }) {
|
|
|
11638
11720
|
const tableContainerRef = useRef(null);
|
|
11639
11721
|
// Row hover state (for coordinating primary + secondary row highlighting)
|
|
11640
11722
|
const [hoveredRowKey, setHoveredRowKey] = useState(null);
|
|
11723
|
+
// Temporary row highlight state (for flash animation)
|
|
11724
|
+
const [flashingRows, setFlashingRows] = useState(new Set());
|
|
11725
|
+
const flashTimeoutRef = useRef(null);
|
|
11641
11726
|
// Context menu state
|
|
11642
11727
|
const [contextMenuState, setContextMenuState] = useState({
|
|
11643
11728
|
isOpen: false,
|
|
@@ -11652,6 +11737,27 @@ mobileView = 'auto', cardConfig, cardGap = 'md', cardClassName, }) {
|
|
|
11652
11737
|
setColumnOrder(baseVisibleColumns.map(col => String(col.key)));
|
|
11653
11738
|
}
|
|
11654
11739
|
}, [baseVisibleColumns, columnOrder.length]);
|
|
11740
|
+
// Handle temporary row highlighting (flash animation)
|
|
11741
|
+
useEffect(() => {
|
|
11742
|
+
if (highlightedRows.length > 0) {
|
|
11743
|
+
// Add new highlighted rows to flashing set
|
|
11744
|
+
const newFlashingRows = new Set(highlightedRows.map(id => String(id)));
|
|
11745
|
+
setFlashingRows(newFlashingRows);
|
|
11746
|
+
// Clear any existing timeout
|
|
11747
|
+
if (flashTimeoutRef.current) {
|
|
11748
|
+
window.clearTimeout(flashTimeoutRef.current);
|
|
11749
|
+
}
|
|
11750
|
+
// Set timeout to clear the flash
|
|
11751
|
+
flashTimeoutRef.current = window.setTimeout(() => {
|
|
11752
|
+
setFlashingRows(new Set());
|
|
11753
|
+
}, highlightDuration);
|
|
11754
|
+
}
|
|
11755
|
+
return () => {
|
|
11756
|
+
if (flashTimeoutRef.current) {
|
|
11757
|
+
window.clearTimeout(flashTimeoutRef.current);
|
|
11758
|
+
}
|
|
11759
|
+
};
|
|
11760
|
+
}, [highlightedRows, highlightDuration]);
|
|
11655
11761
|
// Apply column order
|
|
11656
11762
|
const visibleColumns = reorderable && columnOrder.length > 0
|
|
11657
11763
|
? columnOrder
|
|
@@ -11682,8 +11788,13 @@ mobileView = 'auto', cardConfig, cardGap = 'md', cardClassName, }) {
|
|
|
11682
11788
|
// Get row background class based on striping and highlighting
|
|
11683
11789
|
const getRowBackgroundClass = (item, index) => {
|
|
11684
11790
|
const classes = [];
|
|
11791
|
+
const rowKey = getRowKey(item);
|
|
11792
|
+
// Check for temporary flash highlight (takes priority)
|
|
11793
|
+
if (flashingRows.has(rowKey)) {
|
|
11794
|
+
classes.push('animate-row-flash');
|
|
11795
|
+
}
|
|
11685
11796
|
// Check for highlighted row
|
|
11686
|
-
if (highlightedRowId !== undefined &&
|
|
11797
|
+
else if (highlightedRowId !== undefined && rowKey === String(highlightedRowId)) {
|
|
11687
11798
|
classes.push('bg-accent-100');
|
|
11688
11799
|
}
|
|
11689
11800
|
// Check for custom row highlight
|