@xcelsior/ui-spreadsheets 1.1.3 → 1.1.5

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.
@@ -1,28 +1,28 @@
1
1
 
2
- > @xcelsior/ui-spreadsheets@1.0.14 build /Users/tuannguyen/Work/xcelsior-packages/packages/ui/ui-spreadsheets
2
+ > @xcelsior/ui-spreadsheets@1.1.5 build /home/circleci/repo/packages/ui/ui-spreadsheets
3
3
  > tsup && tsc --noEmit
4
4
 
5
5
  CLI Building entry: src/index.ts, src/styles/globals.css
6
6
  CLI Using tsconfig: tsconfig.json
7
7
  CLI tsup v8.5.1
8
- CLI Using tsup config: /Users/tuannguyen/Work/xcelsior-packages/packages/ui/ui-spreadsheets/tsup.config.ts
8
+ CLI Using tsup config: /home/circleci/repo/packages/ui/ui-spreadsheets/tsup.config.ts
9
9
  CLI Target: es2020
10
10
  CLI Cleaning output folder
11
11
  CJS Build start
12
12
  ESM Build start
13
- DTS Build start
14
- ESM dist/index.mjs 147.76 KB
15
- ESM dist/styles/globals.css 33.17 KB
16
- ESM dist/styles/globals.css.map 55.33 KB
17
- ESM dist/index.mjs.map 4.62 MB
18
- ESM ⚡️ Build success in 359ms
19
- CJS dist/styles/globals.css 33.17 KB
20
- CJS dist/index.js 158.96 KB
21
- CJS dist/styles/globals.css.map 55.33 KB
22
- CJS dist/index.js.map 4.62 MB
23
- CJS ⚡️ Build success in 360ms
24
- DTS ⚡️ Build success in 2017ms
25
- DTS dist/styles/globals.d.ts 13.00 B
26
- DTS dist/index.d.ts 22.84 KB
27
- DTS dist/styles/globals.d.mts 13.00 B
28
- DTS dist/index.d.mts 22.84 KB
13
+ DTS Build start
14
+ ESM dist/styles/globals.css 33.16 KB
15
+ ESM dist/index.mjs 162.16 KB
16
+ ESM dist/styles/globals.css.map 55.29 KB
17
+ ESM dist/index.mjs.map 4.65 MB
18
+ ESM ⚡️ Build success in 892ms
19
+ CJS dist/index.js 173.50 KB
20
+ CJS dist/styles/globals.css 33.16 KB
21
+ CJS dist/index.js.map 4.65 MB
22
+ CJS dist/styles/globals.css.map 55.29 KB
23
+ CJS ⚡️ Build success in 893ms
24
+ DTS ⚡️ Build success in 5596ms
25
+ DTS dist/styles/globals.d.ts 13.00 B
26
+ DTS dist/index.d.ts 26.27 KB
27
+ DTS dist/styles/globals.d.mts 13.00 B
28
+ DTS dist/index.d.mts 26.27 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @xcelsior/ui-spreadsheets
2
2
 
3
+ ## 1.1.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 8db1f10: improve row context menu
8
+ - Updated dependencies [8db1f10]
9
+ - @xcelsior/design-system@1.0.8
10
+
3
11
  ## 1.0.15
4
12
 
5
13
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -247,6 +247,28 @@ interface RowAction<T = any> {
247
247
  /** Custom className */
248
248
  className?: string;
249
249
  }
250
+ /**
251
+ * Row context menu item configuration
252
+ * Used for the 3-dot menu that appears on row hover
253
+ */
254
+ interface RowContextMenuItem<T = any> {
255
+ /** Unique identifier */
256
+ id: string;
257
+ /** Display label for the menu item */
258
+ label: string;
259
+ /** Icon component to display next to the label */
260
+ icon?: React$1.ReactNode;
261
+ /** Callback when menu item is clicked */
262
+ onClick: (row: T, rowId: string | number) => void;
263
+ /** Whether the menu item is visible */
264
+ visible?: (row: T) => boolean;
265
+ /** Whether the menu item is disabled */
266
+ disabled?: (row: T) => boolean;
267
+ /** Variant for styling (e.g., destructive for delete actions) */
268
+ variant?: 'default' | 'destructive';
269
+ /** Custom className */
270
+ className?: string;
271
+ }
250
272
  /**
251
273
  * Props for the main Spreadsheet component
252
274
  */
@@ -271,14 +293,16 @@ interface SpreadsheetProps<T = any> {
271
293
  onRowClick?: (row: T, rowIndex: number) => void;
272
294
  /** Callback for row double click */
273
295
  onRowDoubleClick?: (row: T, rowIndex: number) => void;
274
- /** Callback when a row is cloned/duplicated */
275
- onRowClone?: (row: T, rowId: string | number) => void;
276
- /** Callback when a row is deleted */
277
- onRowDelete?: (row: T, rowId: string | number) => void;
278
296
  /** Callback when a cell comment is added */
279
297
  onAddCellComment?: (rowId: string | number, columnId: string, comment: string) => void;
298
+ /** Callback when a comment's resolved status is toggled */
299
+ onToggleCommentResolved?: (commentId: string) => void;
280
300
  /** Callback when row highlight is toggled */
281
301
  onRowHighlight?: (rowId: string | number, color: string | null) => void;
302
+ /** Callback when column highlight is toggled */
303
+ onColumnHighlight?: (columnId: string, color: string | null) => void;
304
+ /** Callback when cell highlight is toggled */
305
+ onCellHighlight?: (rowId: string | number, columnId: string, color: string | null) => void;
282
306
  /** Whether to show the toolbar */
283
307
  showToolbar?: boolean;
284
308
  /** Whether to show pagination */
@@ -329,10 +353,20 @@ interface SpreadsheetProps<T = any> {
329
353
  emptyMessage?: string;
330
354
  /** Row highlights (externally controlled) */
331
355
  rowHighlights?: CellHighlight[];
356
+ /** Column highlights (externally controlled) */
357
+ columnHighlights?: Record<string, string>;
358
+ /** Cell highlights (externally controlled) */
359
+ cellHighlights?: CellHighlight[];
332
360
  /** Cell comments (externally controlled) */
333
361
  cellComments?: CellComment[];
334
362
  /** Custom row actions to display in the index column */
335
363
  rowActions?: RowAction<T>[];
364
+ /**
365
+ * Context menu items to display in the 3-dot menu for each row.
366
+ * These appear in a dropdown when the user clicks the 3-dot icon on row hover.
367
+ * Use this for actions like clone, delete, view, edit, etc.
368
+ */
369
+ rowContextMenuItems?: RowContextMenuItem<T>[];
336
370
  /** Custom menu items to display in the toolbar's "More" dropdown menu */
337
371
  toolbarMenuItems?: ToolbarMenuItem[];
338
372
  /**
@@ -620,7 +654,7 @@ interface SpreadsheetColumnGroupHeaderProps {
620
654
  * />
621
655
  * ```
622
656
  */
623
- declare function Spreadsheet<T extends Record<string, any>>({ data, columns, columnGroups, getRowId, onCellsEdit, onSelectionChange, onSortChange, onFilterChange, onRowClick, onRowDoubleClick, onRowClone, onRowDelete, onAddCellComment, onRowHighlight, showToolbar, showPagination, enableRowSelection, enableCellEditing, enableComments, enableHighlighting, enableUndoRedo, pageSizeOptions, onSave, settings: initialSettings, onSettingsChange, isLoading, className, emptyMessage, rowHighlights: externalRowHighlights, cellComments: externalCellComments, rowActions, toolbarMenuItems, serverSide, totalItems, currentPage: controlledCurrentPage, pageSize: controlledPageSize, sortConfig: controlledSortConfig, onPageChange, filters: controlledFilters, }: SpreadsheetProps<T>): react_jsx_runtime.JSX.Element;
657
+ declare function Spreadsheet<T extends Record<string, any>>({ data, columns, columnGroups, getRowId, onCellsEdit, onSelectionChange, onSortChange, onFilterChange, onRowClick, onRowDoubleClick, onAddCellComment, onToggleCommentResolved, onRowHighlight, onColumnHighlight, onCellHighlight, showToolbar, showPagination, enableRowSelection, enableCellEditing, enableComments, enableHighlighting, enableUndoRedo, pageSizeOptions, onSave, settings: initialSettings, onSettingsChange, isLoading, className, emptyMessage, rowHighlights: externalRowHighlights, columnHighlights: externalColumnHighlights, cellHighlights: externalCellHighlights, cellComments: externalCellComments, rowActions, rowContextMenuItems, toolbarMenuItems, serverSide, totalItems, currentPage: controlledCurrentPage, pageSize: controlledPageSize, sortConfig: controlledSortConfig, onPageChange, filters: controlledFilters, }: SpreadsheetProps<T>): react_jsx_runtime.JSX.Element;
624
658
  declare namespace Spreadsheet {
625
659
  var displayName: string;
626
660
  }
@@ -730,4 +764,25 @@ interface SpreadsheetSettingsModalProps {
730
764
  */
731
765
  declare const SpreadsheetSettingsModal: React.FC<SpreadsheetSettingsModalProps>;
732
766
 
733
- export { type CellComment, type CellEdit, type CellHighlight, type CellPosition, type CellRange, type PaginationState, type RowAction, type SelectionEdge, type SelectionState, Spreadsheet, MemoizedSpreadsheetCell as SpreadsheetCell, type SpreadsheetCellProps, type SpreadsheetColumn, type SpreadsheetColumnFilter, type SpreadsheetColumnGroup, type SpreadsheetColumnGroupHeaderProps, SpreadsheetFilterDropdown, type SpreadsheetFilterDropdownProps, SpreadsheetHeader, type SpreadsheetHeaderProps, type SpreadsheetProps, type SpreadsheetSettings, SpreadsheetSettingsModal, type SpreadsheetSortConfig, type SpreadsheetState, SpreadsheetToolbar, type SpreadsheetToolbarProps, type ToolbarMenuItem };
767
+ interface RowContextMenuProps<T = any> {
768
+ /** The row data */
769
+ row: T;
770
+ /** The row ID */
771
+ rowId: string | number;
772
+ /** Menu items to display */
773
+ items: RowContextMenuItem<T>[];
774
+ /** Whether compact mode is enabled */
775
+ compactMode?: boolean;
776
+ /** Custom className for the trigger button */
777
+ className?: string;
778
+ }
779
+ /**
780
+ * RowContextMenu component - A 3-dot menu that appears on row hover
781
+ * Displays a dropdown with action items (icons + text)
782
+ */
783
+ declare function RowContextMenu<T>({ row, rowId, items, compactMode, className, }: RowContextMenuProps<T>): react_jsx_runtime.JSX.Element | null;
784
+ declare namespace RowContextMenu {
785
+ var displayName: string;
786
+ }
787
+
788
+ export { type CellComment, type CellEdit, type CellHighlight, type CellPosition, type CellRange, type PaginationState, type RowAction, RowContextMenu, type RowContextMenuItem, type SelectionEdge, type SelectionState, Spreadsheet, MemoizedSpreadsheetCell as SpreadsheetCell, type SpreadsheetCellProps, type SpreadsheetColumn, type SpreadsheetColumnFilter, type SpreadsheetColumnGroup, type SpreadsheetColumnGroupHeaderProps, SpreadsheetFilterDropdown, type SpreadsheetFilterDropdownProps, SpreadsheetHeader, type SpreadsheetHeaderProps, type SpreadsheetProps, type SpreadsheetSettings, SpreadsheetSettingsModal, type SpreadsheetSortConfig, type SpreadsheetState, SpreadsheetToolbar, type SpreadsheetToolbarProps, type ToolbarMenuItem };
package/dist/index.d.ts CHANGED
@@ -247,6 +247,28 @@ interface RowAction<T = any> {
247
247
  /** Custom className */
248
248
  className?: string;
249
249
  }
250
+ /**
251
+ * Row context menu item configuration
252
+ * Used for the 3-dot menu that appears on row hover
253
+ */
254
+ interface RowContextMenuItem<T = any> {
255
+ /** Unique identifier */
256
+ id: string;
257
+ /** Display label for the menu item */
258
+ label: string;
259
+ /** Icon component to display next to the label */
260
+ icon?: React$1.ReactNode;
261
+ /** Callback when menu item is clicked */
262
+ onClick: (row: T, rowId: string | number) => void;
263
+ /** Whether the menu item is visible */
264
+ visible?: (row: T) => boolean;
265
+ /** Whether the menu item is disabled */
266
+ disabled?: (row: T) => boolean;
267
+ /** Variant for styling (e.g., destructive for delete actions) */
268
+ variant?: 'default' | 'destructive';
269
+ /** Custom className */
270
+ className?: string;
271
+ }
250
272
  /**
251
273
  * Props for the main Spreadsheet component
252
274
  */
@@ -271,14 +293,16 @@ interface SpreadsheetProps<T = any> {
271
293
  onRowClick?: (row: T, rowIndex: number) => void;
272
294
  /** Callback for row double click */
273
295
  onRowDoubleClick?: (row: T, rowIndex: number) => void;
274
- /** Callback when a row is cloned/duplicated */
275
- onRowClone?: (row: T, rowId: string | number) => void;
276
- /** Callback when a row is deleted */
277
- onRowDelete?: (row: T, rowId: string | number) => void;
278
296
  /** Callback when a cell comment is added */
279
297
  onAddCellComment?: (rowId: string | number, columnId: string, comment: string) => void;
298
+ /** Callback when a comment's resolved status is toggled */
299
+ onToggleCommentResolved?: (commentId: string) => void;
280
300
  /** Callback when row highlight is toggled */
281
301
  onRowHighlight?: (rowId: string | number, color: string | null) => void;
302
+ /** Callback when column highlight is toggled */
303
+ onColumnHighlight?: (columnId: string, color: string | null) => void;
304
+ /** Callback when cell highlight is toggled */
305
+ onCellHighlight?: (rowId: string | number, columnId: string, color: string | null) => void;
282
306
  /** Whether to show the toolbar */
283
307
  showToolbar?: boolean;
284
308
  /** Whether to show pagination */
@@ -329,10 +353,20 @@ interface SpreadsheetProps<T = any> {
329
353
  emptyMessage?: string;
330
354
  /** Row highlights (externally controlled) */
331
355
  rowHighlights?: CellHighlight[];
356
+ /** Column highlights (externally controlled) */
357
+ columnHighlights?: Record<string, string>;
358
+ /** Cell highlights (externally controlled) */
359
+ cellHighlights?: CellHighlight[];
332
360
  /** Cell comments (externally controlled) */
333
361
  cellComments?: CellComment[];
334
362
  /** Custom row actions to display in the index column */
335
363
  rowActions?: RowAction<T>[];
364
+ /**
365
+ * Context menu items to display in the 3-dot menu for each row.
366
+ * These appear in a dropdown when the user clicks the 3-dot icon on row hover.
367
+ * Use this for actions like clone, delete, view, edit, etc.
368
+ */
369
+ rowContextMenuItems?: RowContextMenuItem<T>[];
336
370
  /** Custom menu items to display in the toolbar's "More" dropdown menu */
337
371
  toolbarMenuItems?: ToolbarMenuItem[];
338
372
  /**
@@ -620,7 +654,7 @@ interface SpreadsheetColumnGroupHeaderProps {
620
654
  * />
621
655
  * ```
622
656
  */
623
- declare function Spreadsheet<T extends Record<string, any>>({ data, columns, columnGroups, getRowId, onCellsEdit, onSelectionChange, onSortChange, onFilterChange, onRowClick, onRowDoubleClick, onRowClone, onRowDelete, onAddCellComment, onRowHighlight, showToolbar, showPagination, enableRowSelection, enableCellEditing, enableComments, enableHighlighting, enableUndoRedo, pageSizeOptions, onSave, settings: initialSettings, onSettingsChange, isLoading, className, emptyMessage, rowHighlights: externalRowHighlights, cellComments: externalCellComments, rowActions, toolbarMenuItems, serverSide, totalItems, currentPage: controlledCurrentPage, pageSize: controlledPageSize, sortConfig: controlledSortConfig, onPageChange, filters: controlledFilters, }: SpreadsheetProps<T>): react_jsx_runtime.JSX.Element;
657
+ declare function Spreadsheet<T extends Record<string, any>>({ data, columns, columnGroups, getRowId, onCellsEdit, onSelectionChange, onSortChange, onFilterChange, onRowClick, onRowDoubleClick, onAddCellComment, onToggleCommentResolved, onRowHighlight, onColumnHighlight, onCellHighlight, showToolbar, showPagination, enableRowSelection, enableCellEditing, enableComments, enableHighlighting, enableUndoRedo, pageSizeOptions, onSave, settings: initialSettings, onSettingsChange, isLoading, className, emptyMessage, rowHighlights: externalRowHighlights, columnHighlights: externalColumnHighlights, cellHighlights: externalCellHighlights, cellComments: externalCellComments, rowActions, rowContextMenuItems, toolbarMenuItems, serverSide, totalItems, currentPage: controlledCurrentPage, pageSize: controlledPageSize, sortConfig: controlledSortConfig, onPageChange, filters: controlledFilters, }: SpreadsheetProps<T>): react_jsx_runtime.JSX.Element;
624
658
  declare namespace Spreadsheet {
625
659
  var displayName: string;
626
660
  }
@@ -730,4 +764,25 @@ interface SpreadsheetSettingsModalProps {
730
764
  */
731
765
  declare const SpreadsheetSettingsModal: React.FC<SpreadsheetSettingsModalProps>;
732
766
 
733
- export { type CellComment, type CellEdit, type CellHighlight, type CellPosition, type CellRange, type PaginationState, type RowAction, type SelectionEdge, type SelectionState, Spreadsheet, MemoizedSpreadsheetCell as SpreadsheetCell, type SpreadsheetCellProps, type SpreadsheetColumn, type SpreadsheetColumnFilter, type SpreadsheetColumnGroup, type SpreadsheetColumnGroupHeaderProps, SpreadsheetFilterDropdown, type SpreadsheetFilterDropdownProps, SpreadsheetHeader, type SpreadsheetHeaderProps, type SpreadsheetProps, type SpreadsheetSettings, SpreadsheetSettingsModal, type SpreadsheetSortConfig, type SpreadsheetState, SpreadsheetToolbar, type SpreadsheetToolbarProps, type ToolbarMenuItem };
767
+ interface RowContextMenuProps<T = any> {
768
+ /** The row data */
769
+ row: T;
770
+ /** The row ID */
771
+ rowId: string | number;
772
+ /** Menu items to display */
773
+ items: RowContextMenuItem<T>[];
774
+ /** Whether compact mode is enabled */
775
+ compactMode?: boolean;
776
+ /** Custom className for the trigger button */
777
+ className?: string;
778
+ }
779
+ /**
780
+ * RowContextMenu component - A 3-dot menu that appears on row hover
781
+ * Displays a dropdown with action items (icons + text)
782
+ */
783
+ declare function RowContextMenu<T>({ row, rowId, items, compactMode, className, }: RowContextMenuProps<T>): react_jsx_runtime.JSX.Element | null;
784
+ declare namespace RowContextMenu {
785
+ var displayName: string;
786
+ }
787
+
788
+ export { type CellComment, type CellEdit, type CellHighlight, type CellPosition, type CellRange, type PaginationState, type RowAction, RowContextMenu, type RowContextMenuItem, type SelectionEdge, type SelectionState, Spreadsheet, MemoizedSpreadsheetCell as SpreadsheetCell, type SpreadsheetCellProps, type SpreadsheetColumn, type SpreadsheetColumnFilter, type SpreadsheetColumnGroup, type SpreadsheetColumnGroupHeaderProps, SpreadsheetFilterDropdown, type SpreadsheetFilterDropdownProps, SpreadsheetHeader, type SpreadsheetHeaderProps, type SpreadsheetProps, type SpreadsheetSettings, SpreadsheetSettingsModal, type SpreadsheetSortConfig, type SpreadsheetState, SpreadsheetToolbar, type SpreadsheetToolbarProps, type ToolbarMenuItem };