@ricsam/react-spreadsheets 0.0.12 → 0.0.14
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/README.md +16 -0
- package/dist/cjs/lib.cjs +190 -178
- package/dist/cjs/lib.cjs.map +4 -4
- package/dist/cjs/package.json +1 -1
- package/dist/mjs/lib.mjs +190 -178
- package/dist/mjs/lib.mjs.map +4 -4
- package/dist/mjs/package.json +1 -1
- package/package.json +1 -1
package/dist/cjs/lib.cjs.map
CHANGED
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"/**\n * Inline icons.\n *\n * The library intentionally ships no icon dependency, so the handful of glyphs\n * used by overlay frames are defined here as plain SVG. Paths are from the\n * Material Design icon set (Apache-2.0).\n */\nimport type { SVGProps } from \"react\";\n\ntype IconProps = Omit<SVGProps<SVGSVGElement>, \"size\"> & { size?: number };\n\nconst iconBase = (size: number): SVGProps<SVGSVGElement> => ({\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": true,\n focusable: false,\n});\n\nexport function DeleteIcon({ size = 16, ...props }: IconProps) {\n return (\n <svg {...iconBase(size)} {...props}>\n <path d=\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\" />\n </svg>\n );\n}\n\nexport function GridOnIcon({ size = 16, ...props }: IconProps) {\n return (\n <svg {...iconBase(size)} {...props}>\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\" />\n </svg>\n );\n}\n\nexport function GridOffIcon({ size = 16, ...props }: IconProps) {\n return (\n <svg {...iconBase(size)} {...props}>\n <path d=\"M8 4v1.45l2 2V4h4v4h-3.45l2 2H14v1.45l2 2V10h4v4h-3.45l2 2H20v1.45l1.71 1.71c.18-.28.29-.6.29-.96V4c0-1.1-.9-2-2-2H4.55L6.55 4H8zm12 0v4h-4V4h4zM1.27 1.27L0 2.55l2 2V20c0 1.1.9 2 2 2h15.46l2 2 1.27-1.27L1.27 1.27zM10 12.55L11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm6 6h-4v-4h4v4zm2 0v-1.45L17.45 20H16z\" />\n </svg>\n );\n}\n",
|
|
15
15
|
"import type { CSSProperties, ReactNode } from 'react';\n\n/**\n * Initial state for a GridChild component\n */\nexport interface GridChildInitial {\n /** Initial X coordinate in px */\n x: number;\n /** Initial Y coordinate in px */\n y: number;\n /** Initial width in px */\n width: number;\n /** Initial height in px */\n height: number;\n /** Initial zoom/scale (default: 1) */\n zoom?: number;\n}\n\n/**\n * Represents a child component that can be positioned within the Grid.\n * Each child has a position, size, and render function.\n */\nexport interface GridChild {\n /** X coordinate in px */\n x: number;\n /** Y coordinate in px */\n y: number;\n /** Width in px */\n width: number;\n /** Height in px */\n height: number;\n /** Zoom/scale factor for the child (default: 1) */\n zoom?: number;\n /** Whether the child is minimized */\n minimized?: boolean;\n /** Whether the child is maximized (displayed full-screen instead of in grid) */\n maximized?: boolean;\n /** Initial state for reset functionality */\n initial?: GridChildInitial;\n /** Name of the component to render */\n component: string;\n /** Unique identifier for the child */\n id: string;\n /** Display title for the child */\n title: string;\n /**\n * If true, the child will remain mounted even when outside the viewport.\n * Useful for components that need to maintain state or perform background operations.\n */\n persistent?: boolean;\n /** Whether the child can be closed */\n canClose?: boolean;\n /** Props for the component */\n props?: any;\n}\n\nexport interface ChildState {\n /** Whether the child is selected */\n isSelected: boolean;\n /** Whether the child is minimized */\n isMinimized: boolean;\n /** Whether the child is maximized */\n isMaximized: boolean;\n}\n\nexport type GridComponent = (gridChild: GridChild, state: ChildState) => ReactNode;\n\n/**\n * Configuration for a placeholder component that follows the mouse until placed.\n */\nexport interface PlaceholderConfig {\n /** Type of component being placed */\n componentType: string;\n /** Title/name for the placeholder */\n title: string;\n /** Width of the placeholder in pixels */\n width: number;\n /** Height of the placeholder in pixels */\n height: number;\n /** Callback when the placeholder is placed - receives world coordinates */\n onPlaced: (x: number, y: number) => void;\n /** Optional callback when placement is cancelled */\n onCancel?: () => void;\n}\n\n/**\n * Options for zooming to a specific area\n */\nexport interface ZoomToOptions {\n /** Target x coordinate */\n x: number;\n /** Target y coordinate */\n y: number;\n /** Target zoom level */\n zoom?: number;\n /** Whether to animate the transition (default: false) */\n animate?: boolean;\n}\n\n/**\n * Options for focusing on a child component\n */\nexport interface FocusChildOptions {\n /** ID of the child to focus */\n childId: string;\n /** Padding around the child in pixels (default: 200) */\n padding?: number;\n /** Target zoom level (default: 1) */\n zoom?: number;\n /** Whether to animate the transition (default: false) */\n animate?: boolean;\n}\n\n/**\n * Grid component ref API for programmatic control\n */\nexport interface GridRef {\n /** Zoom to a specific position and zoom level */\n zoomTo: (options: ZoomToOptions) => void;\n /** Focus on a specific child component */\n focusChild: (options: FocusChildOptions) => void;\n /** Get current viewport state */\n getViewport: () => ViewportState;\n /** Set viewport state */\n setViewport: (viewport: ViewportState) => void;\n /** Zoom in by one step */\n zoomIn: () => void;\n /** Zoom out by one step */\n zoomOut: () => void;\n /** Reset zoom to 100% */\n resetZoom: () => void;\n}\n\n/**\n * Props for the Grid component.\n */\nexport interface GridProps {\n /** Array of child components to render in the grid */\n children: GridChild[];\n /** Map of component names to their render functions */\n components: Record<string, GridComponent>;\n /** Optional CSS styles for the grid container */\n style?: CSSProperties;\n /** Size of each grid cell in pixels (default: 20) */\n gridSize?: number;\n /** ID of the currently selected child */\n selectedChildId?: string | null;\n /** Callback when a child is selected */\n onChildSelect?: (childId: string | null) => void;\n /** Callback when a component is blurred (deselected) */\n onComponentBlur?: (childId: string) => void;\n /** Callback when viewport changes - used for saving state, not for controlling the viewport */\n onViewportChange?: (viewport: ViewportState) => void;\n /** Callback when children change (for controlled mode) */\n onChildrenChange?: (children: GridChild[]) => void;\n /** Callback when a child requests to be maximized/restored */\n onMaximize?: (childId: string) => void;\n /** Initial viewport state (used only on mount, not controlled) */\n initialViewport?: ViewportState;\n /** Whether to show the background grid lines (default: true) */\n showGrid?: boolean;\n /** Grid rendering style: 'lines' for grid lines, 'dots' for dots at intersections (default: 'lines') */\n gridStyle?: 'lines' | 'dots';\n /** Placeholder configuration for component placement flow */\n placeholder?: PlaceholderConfig;\n /** Whether to show built-in zoom controls (default: true) */\n showZoomControls?: boolean;\n}\n\n/**\n * Represents the current state of the viewport including position and zoom level.\n */\nexport interface ViewportState {\n /** Current X offset of the viewport */\n x: number;\n /** Current Y offset of the viewport */\n y: number;\n /** Current zoom level (1.0 = 100%) */\n zoom: number;\n}\n\nexport type ResizeHandle =\n | 'top'\n | 'right'\n | 'bottom'\n | 'left'\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right';\n\n// Simple viewport stream implementation\nexport class ViewportStream {\n currentViewport: ViewportState;\n\n constructor(initialViewport: ViewportState) {\n this.currentViewport = initialViewport;\n }\n\n private subscribers: ((viewport: ViewportState) => void)[] = [];\n\n subscribe(callback: (viewport: ViewportState) => void) {\n this.subscribers.push(callback);\n return () => {\n const index = this.subscribers.indexOf(callback);\n if (index > -1) {\n this.subscribers.splice(index, 1);\n }\n };\n }\n\n next(nextViewport: ViewportState) {\n this.currentViewport = nextViewport;\n this.subscribers.forEach((callback) => callback(nextViewport));\n }\n}\n",
|
|
16
16
|
"import { DEFAULT_CELL_HEIGHT, DEFAULT_CELL_WIDTH } from './constants';\nimport { indexToColumn } from './utils';\n\nexport interface CellSnapAnchor {\n startCol: number;\n startRow: number;\n endCol: number;\n endRow: number;\n}\n\nexport interface CellSnapRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport type CellSnapResizeHandle =\n | 'top'\n | 'right'\n | 'bottom'\n | 'left'\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right';\n\nexport const normalizeCellSnapAnchor = (anchor: CellSnapAnchor): CellSnapAnchor => {\n const startCol = Math.max(0, Math.floor(anchor.startCol));\n const startRow = Math.max(0, Math.floor(anchor.startRow));\n\n return {\n startCol,\n startRow,\n endCol: Math.max(startCol + 1, Math.floor(anchor.endCol)),\n endRow: Math.max(startRow + 1, Math.floor(anchor.endRow))\n };\n};\n\nconst getColumnWidthByIndex = (colIndex: number, columnWidths: Map<string, number>): number => {\n const width = columnWidths.get(indexToColumn(colIndex));\n return typeof width === 'number' && Number.isFinite(width) && width > 0 ? width : DEFAULT_CELL_WIDTH;\n};\n\nconst getRowHeightByIndex = (rowIndex: number, rowHeights: Map<number, number>): number => {\n const height = rowHeights.get(rowIndex + 1);\n return typeof height === 'number' && Number.isFinite(height) && height > 0 ? height : DEFAULT_CELL_HEIGHT;\n};\n\nexport const getColumnEdgePosition = (edgeIndex: number, columnWidths: Map<string, number>): number => {\n const safeEdgeIndex = Math.max(0, Math.floor(edgeIndex));\n let x = 0;\n\n for (let colIndex = 0; colIndex < safeEdgeIndex; colIndex++) {\n x += getColumnWidthByIndex(colIndex, columnWidths);\n }\n\n return x;\n};\n\nexport const getRowEdgePosition = (edgeIndex: number, rowHeights: Map<number, number>): number => {\n const safeEdgeIndex = Math.max(0, Math.floor(edgeIndex));\n let y = 0;\n\n for (let rowIndex = 0; rowIndex < safeEdgeIndex; rowIndex++) {\n y += getRowHeightByIndex(rowIndex, rowHeights);\n }\n\n return y;\n};\n\nexport const getNearestColumnEdgeIndex = (x: number, columnWidths: Map<string, number>): number => {\n const targetX = Math.max(0, x);\n let edgeIndex = 0;\n let currentX = 0;\n\n while (true) {\n const nextX = currentX + getColumnWidthByIndex(edgeIndex, columnWidths);\n if (targetX <= nextX) {\n return targetX - currentX <= nextX - targetX ? edgeIndex : edgeIndex + 1;\n }\n\n currentX = nextX;\n edgeIndex++;\n }\n};\n\nexport const getNearestRowEdgeIndex = (y: number, rowHeights: Map<number, number>): number => {\n const targetY = Math.max(0, y);\n let edgeIndex = 0;\n let currentY = 0;\n\n while (true) {\n const nextY = currentY + getRowHeightByIndex(edgeIndex, rowHeights);\n if (targetY <= nextY) {\n return targetY - currentY <= nextY - targetY ? edgeIndex : edgeIndex + 1;\n }\n\n currentY = nextY;\n edgeIndex++;\n }\n};\n\nexport const getCellSnapAnchorFromRect = (\n rect: CellSnapRect,\n columnWidths: Map<string, number>,\n rowHeights: Map<number, number>\n): CellSnapAnchor => {\n const startCol = getNearestColumnEdgeIndex(rect.x, columnWidths);\n const startRow = getNearestRowEdgeIndex(rect.y, rowHeights);\n const endCol = getNearestColumnEdgeIndex(rect.x + Math.max(0, rect.width), columnWidths);\n const endRow = getNearestRowEdgeIndex(rect.y + Math.max(0, rect.height), rowHeights);\n\n return normalizeCellSnapAnchor({\n startCol,\n startRow,\n endCol,\n endRow\n });\n};\n\nexport const getRectFromCellSnapAnchor = (\n anchor: CellSnapAnchor,\n columnWidths: Map<string, number>,\n rowHeights: Map<number, number>\n): CellSnapRect => {\n const normalizedAnchor = normalizeCellSnapAnchor(anchor);\n const x = getColumnEdgePosition(normalizedAnchor.startCol, columnWidths);\n const y = getRowEdgePosition(normalizedAnchor.startRow, rowHeights);\n const right = getColumnEdgePosition(normalizedAnchor.endCol, columnWidths);\n const bottom = getRowEdgePosition(normalizedAnchor.endRow, rowHeights);\n\n return {\n x,\n y,\n width: right - x,\n height: bottom - y\n };\n};\n\nexport const moveCellSnapAnchorToNearestOrigin = (\n anchor: CellSnapAnchor,\n rect: CellSnapRect,\n columnWidths: Map<string, number>,\n rowHeights: Map<number, number>\n): CellSnapAnchor => {\n const normalizedAnchor = normalizeCellSnapAnchor(anchor);\n const colSpan = normalizedAnchor.endCol - normalizedAnchor.startCol;\n const rowSpan = normalizedAnchor.endRow - normalizedAnchor.startRow;\n const startCol = getNearestColumnEdgeIndex(rect.x, columnWidths);\n const startRow = getNearestRowEdgeIndex(rect.y, rowHeights);\n\n return {\n startCol,\n startRow,\n endCol: startCol + colSpan,\n endRow: startRow + rowSpan\n };\n};\n\nconst handleIncludesLeft = (handle: CellSnapResizeHandle): boolean =>\n handle === 'left' || handle === 'top-left' || handle === 'bottom-left';\n\nconst handleIncludesRight = (handle: CellSnapResizeHandle): boolean =>\n handle === 'right' || handle === 'top-right' || handle === 'bottom-right';\n\nconst handleIncludesTop = (handle: CellSnapResizeHandle): boolean =>\n handle === 'top' || handle === 'top-left' || handle === 'top-right';\n\nconst handleIncludesBottom = (handle: CellSnapResizeHandle): boolean =>\n handle === 'bottom' || handle === 'bottom-left' || handle === 'bottom-right';\n\nexport const resizeCellSnapAnchorToNearestEdges = (\n anchor: CellSnapAnchor,\n rect: CellSnapRect,\n handle: CellSnapResizeHandle,\n columnWidths: Map<string, number>,\n rowHeights: Map<number, number>\n): CellSnapAnchor => {\n const nextAnchor = normalizeCellSnapAnchor(anchor);\n\n if (handleIncludesLeft(handle)) {\n nextAnchor.startCol = getNearestColumnEdgeIndex(rect.x, columnWidths);\n }\n if (handleIncludesRight(handle)) {\n nextAnchor.endCol = getNearestColumnEdgeIndex(rect.x + Math.max(0, rect.width), columnWidths);\n }\n if (handleIncludesTop(handle)) {\n nextAnchor.startRow = getNearestRowEdgeIndex(rect.y, rowHeights);\n }\n if (handleIncludesBottom(handle)) {\n nextAnchor.endRow = getNearestRowEdgeIndex(rect.y + Math.max(0, rect.height), rowHeights);\n }\n\n if (nextAnchor.startCol >= nextAnchor.endCol) {\n if (handleIncludesLeft(handle) && !handleIncludesRight(handle)) {\n nextAnchor.startCol = Math.max(0, nextAnchor.endCol - 1);\n } else {\n nextAnchor.endCol = nextAnchor.startCol + 1;\n }\n }\n\n if (nextAnchor.startRow >= nextAnchor.endRow) {\n if (handleIncludesTop(handle) && !handleIncludesBottom(handle)) {\n nextAnchor.startRow = Math.max(0, nextAnchor.endRow - 1);\n } else {\n nextAnchor.endRow = nextAnchor.startRow + 1;\n }\n }\n\n return nextAnchor;\n};\n",
|
|
17
|
-
"import {\n FormulaEngine,\n type CellAddress,\n type CellStyle,\n type SerializedCellValue,\n type SpreadsheetRange,\n type SpreadsheetRangeEnd,\n indexToColumn,\n parseCellReference,\n getCellReference,\n type RangeAddress\n} from '@ricsam/formula-engine';\n\nimport type {\n SelectionManager,\n SelectionNavigationModel,\n SMCell,\n SMArea,\n SMTable\n} from '@ricsam/selection-manager';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\nimport { Spreadsheet, type SpreadsheetProps } from '../spreadsheet/spreadsheet';\nimport type {\n CellRenderContext,\n SpreadsheetColumnWidths,\n SpreadsheetRowHeights\n} from '../types';\nimport type { WorkbookSelectionManager } from './workbook-selection-manager';\nimport { cn } from '../utils/cn';\nimport { useSchemeRoot } from '../utils/use-scheme-root';\nimport { type CellDataUpdate, ClipboardUtils } from '../clipboard/clipboard-manager';\nimport { normalizeBorderSides, hasAnyBorderSide } from './border-sides';\nimport { coerceCellInput, getCellDisplayText, getCellDisplayValue } from './cell-data-type';\nimport { queueCellEditError } from './cell-edit-error';\n\nconst getWrapCellStyle = (style?: CellStyle): React.CSSProperties =>\n style?.wrapText\n ? {\n whiteSpace: 'pre-wrap',\n overflowWrap: 'anywhere',\n wordBreak: 'normal',\n textOverflow: 'clip',\n alignItems: 'flex-start'\n }\n : {};\n\nconst getWrapContentStyle = (style?: CellStyle): React.CSSProperties =>\n style?.wrapText\n ? {\n whiteSpace: 'pre-wrap',\n overflowWrap: 'anywhere',\n wordBreak: 'normal',\n textOverflow: 'clip',\n width: '100%',\n minWidth: 0\n }\n : {};\n\nconst getBorderCellStyle = (style?: CellStyle): React.CSSProperties =>\n (() => {\n if (!style?.borderColor) {\n return {};\n }\n\n const borderSides = normalizeBorderSides(style.borderSides, true);\n if (!hasAnyBorderSide(borderSides)) {\n return {};\n }\n\n return {\n ...(borderSides.top && { borderTopColor: style.borderColor }),\n ...(borderSides.right && { borderRightColor: style.borderColor }),\n ...(borderSides.bottom && { borderBottomColor: style.borderColor }),\n ...(borderSides.left && { borderLeftColor: style.borderColor })\n };\n })();\n\n// Icon Components\nconst Edit2Icon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\" />\n <path d=\"m15 5 4 4\" />\n </svg>\n);\n\nconst CopyIcon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n);\n\nconst Trash2Icon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\" />\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" />\n <line x1=\"10\" x2=\"10\" y1=\"11\" y2=\"17\" />\n <line x1=\"14\" x2=\"14\" y1=\"11\" y2=\"17\" />\n </svg>\n);\n\nconst PlusIcon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n);\n\nconst MinusIcon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <path d=\"M5 12h14\" />\n </svg>\n);\n\ntype SpreadsheetLayout = {\n columnWidths?: SpreadsheetColumnWidths;\n rowHeights?: SpreadsheetRowHeights;\n};\n\nexport interface FormulaSheetProps\n extends Omit<\n SpreadsheetProps,\n | 'selection'\n | 'customCellStyle'\n | 'customCellRenderer'\n | 'components'\n | 'overlayChildren'\n | 'selectedOverlayId'\n | 'onOverlaySelect'\n | 'onOverlayChildrenChange'\n | 'overlayPlaceholder'\n | 'parentSelected'\n > {\n clipboardManager?: WorkbookClipboardManager;\n sheetName: string;\n workbookName: string;\n engine: FormulaEngine;\n verboseErrors?: boolean;\n selection?: SpreadsheetProps['selection'];\n selectionManager?: WorkbookSelectionManager;\n /** Stable identity used to distinguish duplicate mounted views of this sheet. */\n viewId?: string;\n customCellStyle?: (\n cell: CellRenderContext,\n internalStyle: React.CSSProperties\n ) => React.CSSProperties;\n customCellRenderer?: (\n cell: CellRenderContext,\n internalElement: React.ReactNode\n ) => React.ReactNode;\n // Add overlay component props\n components?: SpreadsheetProps['components'];\n overlayChildren?: SpreadsheetProps['overlayChildren'];\n selectedOverlayId?: SpreadsheetProps['selectedOverlayId'];\n onOverlaySelect?: SpreadsheetProps['onOverlaySelect'];\n onOverlayChildrenChange?: SpreadsheetProps['onOverlayChildrenChange'];\n overlayPlaceholder?: SpreadsheetProps['overlayPlaceholder'];\n /** Whether the grid child is selected (controls interactivity) */\n isSelected?: boolean;\n /** Optional toolbar to render above the sheet */\n toolbar?: React.ReactNode;\n /** When true, cells display raw formulas instead of computed values */\n showFormulas?: boolean;\n}\n\nfunction useEngine(engine: FormulaEngine): ReturnType<typeof FormulaEngine.prototype.getState> {\n const [state, setState] = useState<ReturnType<typeof FormulaEngine.prototype.getState>>(() =>\n engine.getState()\n );\n\n React.useEffect(() => {\n return engine.onUpdate(() => {\n setState(engine.getState());\n });\n }, [engine]);\n\n return state;\n}\n\nexport class WorkbookClipboardManager extends ClipboardUtils {\n constructor(private engine: FormulaEngine) {\n super();\n }\n copiedCells: CellAddress[] = [];\n signature: string = '';\n isCut: boolean = false;\n\n public triggerCopy(context: {\n workbookName: string;\n sheetName: string;\n selectionManager: SelectionManager;\n copyType: 'value' | 'formula';\n cut?: boolean;\n }): void {\n const cellData = this.engine.getSheet({\n workbookName: context.workbookName,\n sheetName: context.sheetName\n })?.content;\n if (!cellData) return;\n const extractedCells = this.extractCellsFromSelection(context.selectionManager, cellData);\n if (!extractedCells) return;\n const { width, height, cells } = extractedCells;\n const valueExportGrid = this.createExportGrid(width, height);\n const formulaExportGrid = this.createExportGrid(width, height);\n this.copiedCells = [];\n this.isCut = context.cut ?? false;\n cells.forEach(({ relative, absolute }) => {\n const cellAddress: CellAddress = {\n workbookName: context.workbookName,\n sheetName: context.sheetName,\n colIndex: absolute.columnIndex,\n rowIndex: absolute.rowIndex\n };\n this.copiedCells.push(cellAddress);\n const value = this.engine.getCellValue(cellAddress, false);\n const formula = cellData.get(getCellReference(cellAddress));\n valueExportGrid[relative.rowIndex]![relative.columnIndex] = getCellDisplayValue(value);\n formulaExportGrid[relative.rowIndex]![relative.columnIndex] = formula;\n });\n this.signature = this.getTsvString(context.copyType === 'formula' ? formulaExportGrid : valueExportGrid);\n this.writeToOsClipboard(context.copyType === 'formula' ? formulaExportGrid : valueExportGrid);\n }\n public triggerPaste(context: {\n workbookName: string;\n sheetName: string;\n selectionManager: SelectionManager;\n updates: CellDataUpdate[];\n rawString: string;\n pasteType: 'value' | 'formula';\n }): void {\n if (context.rawString === this.signature) {\n // Internal paste operation - use smartPaste to handle both copy and fill\n const selections = context.selectionManager.selections;\n if (!selections || selections.length === 0) return;\n\n // Convert each SMArea to SpreadsheetRange\n const convertSMAreaToSpreadsheetRange = (area: SMArea): SpreadsheetRange => {\n return {\n start: {\n col: area.start.col,\n row: area.start.row\n },\n end: {\n col:\n area.end.col.type === 'infinity'\n ? { type: 'infinity' as const, sign: 'positive' as const }\n : { type: 'number' as const, value: area.end.col.value },\n row:\n area.end.row.type === 'infinity'\n ? { type: 'infinity' as const, sign: 'positive' as const }\n : { type: 'number' as const, value: area.end.row.value }\n }\n };\n };\n\n const areas = selections.map(convertSMAreaToSpreadsheetRange);\n\n console.log('pasting', { cut: this.isCut });\n this.engine.smartPaste(\n this.copiedCells,\n {\n workbookName: context.workbookName,\n sheetName: context.sheetName,\n areas\n },\n {\n cut: this.isCut,\n type: context.pasteType,\n include: 'all'\n }\n );\n\n // Reset isCut after paste\n this.isCut = false;\n } else {\n // External paste operation\n context.selectionManager.saveCellValues(context.updates);\n }\n }\n}\n\nexport function FormulaSheet({\n sheetName,\n workbookName,\n engine,\n verboseErrors = false,\n selection,\n selectionManager,\n viewId,\n customCellStyle,\n customCellRenderer,\n onCellDataChangeError = queueCellEditError,\n // Add overlay props\n components,\n overlayChildren,\n selectedOverlayId,\n onOverlaySelect,\n onOverlayChildrenChange,\n overlayPlaceholder,\n clipboardManager: controlledClipboardManager,\n isSelected = false,\n toolbar,\n showFormulas = false,\n ...rest\n}: FormulaSheetProps) {\n const schemeRoot = useSchemeRoot();\n const [selectedArea, setSelectedArea] = useState<SMArea | null>(null);\n\n const clipboardManager = React.useMemo(\n () => controlledClipboardManager ?? new WorkbookClipboardManager(engine!),\n [controlledClipboardManager, engine]\n );\n\n const state = useEngine(engine);\n\n const sheet = state.workbooks.get(workbookName)?.sheets.get(sheetName);\n\n const getEngineTableAt = useCallback(\n (cell: SMCell): SMTable | undefined => {\n const table = engine.isCellInTable({\n workbookName,\n sheetName,\n rowIndex: cell.row,\n colIndex: cell.col\n });\n if (!table) return undefined;\n\n const endRow =\n table.endRow.type === 'number'\n ? { type: 'number' as const, value: table.endRow.value }\n : { type: 'infinity' as const };\n const endCol = {\n type: 'number' as const,\n value: table.start.colIndex + table.headers.size - 1\n };\n const hasDataRows = endRow.type === 'infinity' || endRow.value > table.start.rowIndex;\n\n return {\n id: `${table.workbookName}/${table.name}`,\n bounds: {\n start: { row: table.start.rowIndex, col: table.start.colIndex },\n end: { row: endRow, col: endCol }\n },\n ...(hasDataRows\n ? {\n dataBounds: {\n start: {\n row: table.start.rowIndex + 1,\n col: table.start.colIndex\n },\n end: { row: endRow, col: endCol }\n }\n }\n : {})\n };\n },\n [engine, sheetName, workbookName]\n );\n const formulaNavigation = useMemo<SelectionNavigationModel>(\n () => ({\n ...selection?.navigation,\n getTableAt: selection?.navigation?.getTableAt ?? getEngineTableAt\n }),\n [getEngineTableAt, selection?.navigation]\n );\n\n // Handle cell data changes from the spreadsheet\n const onCellDataChange = useCallback(\n (updatedSpreadsheet: Map<string, SerializedCellValue>) => {\n const data = new Map<string, SerializedCellValue>(updatedSpreadsheet);\n data.forEach((value, key) => {\n if (typeof value === 'string') {\n const { colIndex, rowIndex } = parseCellReference(key);\n const coercedValue = coerceCellInput(\n value,\n engine.getCellDataType({ workbookName, sheetName, colIndex, rowIndex })\n );\n if (coercedValue === undefined) {\n data.delete(key);\n } else {\n data.set(key, coercedValue);\n }\n }\n });\n engine.setSheetContent({ sheetName, workbookName }, data);\n },\n [sheetName, engine, workbookName]\n );\n\n const passedSelectionEffects = selection?.effects;\n\n // Selection manager effects for tracking cell selection\n const selectionManagerEffects = useCallback(\n (spreadsheetSelectionManager: SelectionManager) => {\n const convertSmAreaToSpreadsheetRange = (area: SMArea): SpreadsheetRange => {\n const rowEnd: SpreadsheetRangeEnd =\n area.end.row.type === 'infinity'\n ? {\n type: 'infinity',\n sign: 'positive'\n }\n : {\n type: 'number',\n value: area.end.row.value\n };\n const colEnd: SpreadsheetRangeEnd =\n area.end.col.type === 'infinity'\n ? {\n type: 'infinity',\n sign: 'positive'\n }\n : {\n type: 'number',\n value: area.end.col.value\n };\n return {\n start: {\n col: area.start.col,\n row: area.start.row\n },\n end: {\n row: rowEnd,\n col: colEnd\n }\n };\n };\n\n const cleanups = [\n spreadsheetSelectionManager.listenToCopy((cut) => {\n console.log('cut??', cut);\n clipboardManager.triggerCopy({\n workbookName,\n sheetName,\n selectionManager: spreadsheetSelectionManager,\n copyType: showFormulas ? 'formula' : 'value',\n cut\n });\n }),\n spreadsheetSelectionManager.listenToPaste(({ updates, rawString }) => {\n clipboardManager.triggerPaste({\n workbookName,\n sheetName,\n selectionManager: spreadsheetSelectionManager,\n updates,\n rawString,\n pasteType: 'formula'\n });\n }),\n spreadsheetSelectionManager.listenToFill((ev) => {\n if (ev.type === 'extend') {\n engine.autoFill(\n { sheetName, workbookName },\n convertSmAreaToSpreadsheetRange(ev.seedRange),\n [convertSmAreaToSpreadsheetRange(ev.fillRange)],\n ev.direction\n );\n } else {\n engine.clearSpreadsheetRange({\n sheetName,\n workbookName,\n range: convertSmAreaToSpreadsheetRange(ev.rangeToClear)\n });\n }\n }),\n spreadsheetSelectionManager.observeStateChange(\n (state) => {\n const currentSelection: SMArea | undefined =\n state.selections.length === 1 ? state.selections[0] : undefined;\n return currentSelection;\n },\n (selection) => {\n setSelectedArea(selection ?? null);\n }\n )\n ];\n\n const handleUndoRedoKeyDown = (event: KeyboardEvent) => {\n if (!spreadsheetSelectionManager.hasFocus) return;\n if (spreadsheetSelectionManager.isEditing.type !== 'none') return;\n\n const target = event.target;\n if (target instanceof HTMLElement) {\n const isEditableTarget =\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SELECT' ||\n target.isContentEditable ||\n Boolean(target.closest('[contenteditable=\"true\"]'));\n\n if (isEditableTarget) return;\n }\n\n if (!event.metaKey && !event.ctrlKey) return;\n\n const key = event.key.toLowerCase();\n const isUndo = key === 'z' && !event.shiftKey;\n const isRedo = key === 'y' || (key === 'z' && event.shiftKey);\n\n if (!isUndo && !isRedo) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n if (isUndo) {\n engine.undo();\n } else {\n engine.redo();\n }\n };\n\n document.addEventListener('keydown', handleUndoRedoKeyDown);\n cleanups.push(() => {\n document.removeEventListener('keydown', handleUndoRedoKeyDown);\n });\n\n // Register this spreadsheet's SelectionManager with the WorkbookSelectionManager\n if (selectionManager) {\n const workbookManagerCleanup = selectionManager.add(spreadsheetSelectionManager, {\n workbookName,\n sheetName,\n ...(viewId === undefined ? {} : { viewId })\n });\n cleanups.push(workbookManagerCleanup);\n }\n\n // Call user-provided effects if present\n let userCleanup: (() => void) | void;\n if (passedSelectionEffects) {\n userCleanup = passedSelectionEffects(spreadsheetSelectionManager);\n }\n\n return () => {\n cleanups.forEach((cleanup) => cleanup());\n if (userCleanup) {\n userCleanup();\n }\n };\n },\n [\n clipboardManager,\n engine,\n passedSelectionEffects,\n selectionManager,\n sheetName,\n showFormulas,\n viewId,\n workbookName\n ]\n );\n\n // If the sheet doesn't exist (e.g. during a rename where the engine has\n // updated but React hasn't re-rendered with the new sheet name yet),\n // render nothing. The next render will have the correct sheet name.\n if (!sheet) {\n return (\n <div className=\"rsp-root rsp-workbook\" {...schemeRoot}>\n {toolbar}\n <div style={{ flex: 1 }} />\n </div>\n );\n }\n\n return (\n <div className=\"rsp-root rsp-workbook\" {...schemeRoot}>\n {/* Optional Toolbar */}\n {toolbar}\n\n {/* Main spreadsheet area */}\n <div className=\"rsp-workbook-body\">\n <Spreadsheet\n disableClipboard={true}\n style={{ height: '100%', width: '100%' }}\n cellData={sheet?.content}\n onCellDataChange={onCellDataChange}\n onCellDataChangeError={onCellDataChangeError}\n {...rest}\n // Add overlay props\n components={components}\n overlayChildren={overlayChildren}\n selectedOverlayId={selectedOverlayId}\n onOverlaySelect={onOverlaySelect}\n onOverlayChildrenChange={onOverlayChildrenChange}\n overlayPlaceholder={overlayPlaceholder}\n parentSelected={isSelected}\n selection={{\n ...selection,\n navigation: formulaNavigation,\n effects: selectionManagerEffects\n }}\n containerProps={\n (isSelected && selectedArea\n ? {\n 'data-grid-no-interaction': 'true'\n }\n : {}) as React.HTMLAttributes<HTMLDivElement>\n }\n customCellStyle={(cell) => {\n // Check for conditional styling first\n const conditionalStyle = engine.getCellStyle({\n sheetName,\n colIndex: cell.colIndex,\n rowIndex: cell.rowIndex,\n workbookName\n });\n\n const tableInfo = engine.isCellInTable({\n sheetName,\n colIndex: cell.colIndex,\n rowIndex: cell.rowIndex,\n workbookName\n });\n\n if (!tableInfo) {\n // Not in a table, apply the engine style first and always give the\n // consumer a chance to augment it. Reference highlights, search\n // results and other transient decorations commonly target plain\n // cells, so limiting this callback to table cells makes the API\n // ineffective for those use cases.\n const style: React.CSSProperties = conditionalStyle\n ? {\n ...(conditionalStyle.backgroundColor && {\n backgroundColor: conditionalStyle.backgroundColor\n }),\n ...(conditionalStyle.color && {\n color: conditionalStyle.color\n }),\n ...(conditionalStyle.fontSize && {\n fontSize: conditionalStyle.fontSize\n }),\n ...(conditionalStyle.bold && {\n fontWeight: 'bold' as const\n }),\n ...(conditionalStyle.italic && {\n fontStyle: 'italic' as const\n }),\n ...(conditionalStyle.underline && {\n textDecoration: 'underline'\n }),\n ...getBorderCellStyle(conditionalStyle),\n ...getWrapCellStyle(conditionalStyle)\n }\n : {};\n\n return customCellStyle ? customCellStyle(cell, style) : style;\n }\n\n const isHeaderRow = cell.rowIndex === tableInfo.start.rowIndex;\n const isFirstColumn = cell.colIndex === tableInfo.start.colIndex;\n const isLastColumn = cell.colIndex === tableInfo.start.colIndex + tableInfo.headers.size - 1;\n\n // Calculate if this is the last row of the table\n const isLastRow =\n tableInfo.endRow.type === 'number' ? cell.rowIndex === tableInfo.endRow.value : false; // For infinite tables, we don't style the last row differently\n\n // Excel-like table styling. These custom properties are declared in\n // the package stylesheet (`styles.css`) and resolve through\n // `light-dark()`, so tables follow the active color scheme.\n const style: React.CSSProperties = {\n border: '1px solid var(--_rsp-table-border-light)'\n };\n\n if (isHeaderRow) {\n // Header row styling - accent theme like Excel\n style.backgroundColor = 'var(--_rsp-table-header-bg)';\n style.color = 'var(--_rsp-table-header-color)';\n style.fontWeight = 'bold';\n style.borderBottom = '2px solid var(--_rsp-table-header-border)';\n } else {\n // Data rows - alternating background\n const dataRowIndex = cell.rowIndex - tableInfo.start.rowIndex - 1;\n if (dataRowIndex % 2 === 0) {\n style.backgroundColor = 'var(--_rsp-table-even-row-bg)';\n } else {\n style.backgroundColor = 'var(--_rsp-table-odd-row-bg)';\n }\n }\n\n // Border styling\n if (isFirstColumn) {\n style.borderLeft = '2px solid var(--_rsp-table-border-color)';\n }\n if (isLastColumn) {\n style.borderRight = '2px solid var(--_rsp-table-border-color)';\n }\n if (isHeaderRow) {\n style.borderTop = '2px solid var(--_rsp-table-border-color)';\n }\n if (isLastRow) {\n style.borderBottom = '2px solid var(--_rsp-table-border-color)';\n }\n\n // Merge conditional styling with table styling\n // User custom styles can now override table header styles\n if (conditionalStyle?.backgroundColor) {\n style.backgroundColor = conditionalStyle.backgroundColor;\n }\n // Apply text color from conditional styling (overrides header white text if user wants)\n if (conditionalStyle?.color) {\n style.color = conditionalStyle.color;\n }\n // Apply font size from conditional styling\n if (conditionalStyle?.fontSize) {\n style.fontSize = conditionalStyle.fontSize;\n }\n // Apply bold from conditional styling (merge with header row bold)\n if (conditionalStyle?.bold) {\n style.fontWeight = 'bold';\n }\n // Apply italic from conditional styling\n if (conditionalStyle?.italic) {\n style.fontStyle = 'italic';\n }\n // Apply underline from conditional styling\n if (conditionalStyle?.underline) {\n style.textDecoration = 'underline';\n }\n Object.assign(style, getBorderCellStyle(conditionalStyle));\n Object.assign(style, getWrapCellStyle(conditionalStyle));\n\n if (customCellStyle) {\n return customCellStyle(cell, style);\n }\n\n return style;\n }}\n customCellRenderer={(cell) => {\n const cellRef = getCellReference({\n colIndex: cell.colIndex,\n rowIndex: cell.rowIndex\n });\n\n // When showFormulas is enabled, display the raw cell content (formula string)\n // instead of the computed value from the engine\n const value = showFormulas\n ? sheet?.content.get(cellRef)\n : engine.getCellValue(\n {\n sheetName,\n workbookName,\n colIndex: cell.colIndex,\n rowIndex: cell.rowIndex\n },\n verboseErrors\n );\n\n const conditionalStyle = engine.getCellStyle({\n sheetName,\n colIndex: cell.colIndex,\n rowIndex: cell.rowIndex,\n workbookName\n });\n\n const conditionalStyleProps: React.CSSProperties = {};\n if (conditionalStyle?.backgroundColor) {\n conditionalStyleProps.backgroundColor = conditionalStyle.backgroundColor;\n }\n if (conditionalStyle?.color) {\n conditionalStyleProps.color = conditionalStyle.color;\n }\n if (conditionalStyle?.fontSize) {\n conditionalStyleProps.fontSize = conditionalStyle.fontSize;\n }\n if (conditionalStyle?.bold) {\n conditionalStyleProps.fontWeight = 'bold';\n }\n if (conditionalStyle?.italic) {\n conditionalStyleProps.fontStyle = 'italic';\n }\n if (conditionalStyle?.underline) {\n conditionalStyleProps.textDecoration = 'underline';\n }\n Object.assign(conditionalStyleProps, getWrapContentStyle(conditionalStyle));\n\n let defaultElement: React.ReactNode;\n if (showFormulas) {\n // In show-formulas mode, always render raw content as-is (no number formatting)\n defaultElement = (\n <div\n data-conditional-background={conditionalStyle?.backgroundColor}\n data-conditional-text-color={conditionalStyle?.color}\n style={conditionalStyleProps}\n >\n {getCellDisplayText(value)}\n </div>\n );\n } else if (typeof value === 'boolean') {\n defaultElement = (\n <div\n data-conditional-background={conditionalStyle?.backgroundColor}\n data-conditional-text-color={conditionalStyle?.color}\n data-type=\"boolean\"\n style={{\n ...conditionalStyleProps,\n width: '100%',\n textAlign: 'center',\n fontFamily: \"'Courier New', monospace\"\n }}\n >\n {value ? 'TRUE' : 'FALSE'}\n </div>\n );\n } else if (typeof value === 'number') {\n // Format numbers nicely\n defaultElement = (\n <div\n data-conditional-background={conditionalStyle?.backgroundColor}\n data-conditional-text-color={conditionalStyle?.color}\n data-type=\"number\"\n style={{ ...conditionalStyleProps, width: '100%', textAlign: 'right' }}\n >\n {value.toLocaleString('en-US', {\n minimumFractionDigits: 0,\n maximumFractionDigits: 10\n })}\n </div>\n );\n } else {\n defaultElement = (\n <div\n data-conditional-background={conditionalStyle?.backgroundColor}\n data-conditional-text-color={conditionalStyle?.color}\n style={{ ...conditionalStyleProps, width: '100%', textAlign: 'left' }}\n >\n {getCellDisplayText(value)}\n </div>\n );\n }\n\n if (customCellRenderer) {\n return customCellRenderer(cell, defaultElement);\n }\n return defaultElement;\n }}\n />\n </div>\n </div>\n );\n}\n\nexport interface FormulaWorkbookProps\n extends Omit<\n SpreadsheetProps,\n | 'cellData'\n | 'onCellDataChange'\n | 'selection'\n | 'customCellStyle'\n | 'customCellRenderer'\n | 'components'\n | 'overlayChildren'\n | 'selectedOverlayId'\n | 'onOverlaySelect'\n | 'onOverlayChildrenChange'\n | 'overlayPlaceholder'\n | 'parentSelected'\n | 'columnWidths'\n | 'onColumnWidthsChange'\n | 'rowHeights'\n | 'onRowHeightsChange'\n > {\n workbookName: string;\n clipboardManager?: WorkbookClipboardManager;\n engine: FormulaEngine;\n activeSheet?: string;\n onActiveSheetChange?: (sheetName: string) => void;\n verboseErrors?: boolean;\n selection?: SpreadsheetProps['selection'];\n selectionManager?: WorkbookSelectionManager;\n /** Stable identity used to distinguish duplicate mounted views of this workbook. */\n viewId?: string;\n customCellStyle?: (\n cell: CellRenderContext,\n internalStyle: React.CSSProperties\n ) => React.CSSProperties;\n customCellRenderer?: (\n cell: CellRenderContext,\n internalElement: React.ReactNode\n ) => React.ReactNode;\n // Add overlay component props with per-sheet support\n components?: SpreadsheetProps['components'];\n // Map of sheet name to overlay children for that sheet\n sheetOverlayChildren?: Record<string, SpreadsheetProps['overlayChildren']>;\n // Map of sheet name to selected overlay ID for that sheet\n sheetSelectedOverlayIds?: Record<string, SpreadsheetProps['selectedOverlayId']>;\n sheetLayouts?: Record<string, SpreadsheetLayout>;\n onSheetColumnWidthsChange?: (sheetName: string, columnWidths: SpreadsheetColumnWidths) => void;\n onSheetRowHeightsChange?: (sheetName: string, rowHeights: SpreadsheetRowHeights) => void;\n onOverlaySelect?: (sheetName: string, overlayId: string | null) => void;\n onOverlayChildrenChange?: (\n sheetName: string,\n children: NonNullable<SpreadsheetProps['overlayChildren']>\n ) => void;\n overlayPlaceholder?: SpreadsheetProps['overlayPlaceholder'];\n /** Whether the grid child is selected (controls interactivity) */\n isSelected?: boolean;\n /** Optional toolbar to render above the workbook */\n toolbar?: React.ReactNode;\n /** When true, cells display raw formulas instead of computed values */\n showFormulas?: boolean;\n}\n\nexport function FormulaWorkbook({\n clipboardManager: controlledClipboardManager,\n workbookName,\n engine,\n activeSheet: controlledActiveSheet,\n onActiveSheetChange,\n verboseErrors = false,\n selectionManager,\n viewId,\n // Add overlay props\n components,\n sheetOverlayChildren,\n sheetSelectedOverlayIds,\n sheetLayouts,\n onSheetColumnWidthsChange,\n onSheetRowHeightsChange,\n onOverlaySelect,\n onOverlayChildrenChange,\n overlayPlaceholder,\n isSelected = false,\n toolbar,\n showFormulas = false,\n ...rest\n}: FormulaWorkbookProps) {\n const schemeRoot = useSchemeRoot();\n const state = useEngine(engine);\n const [renamingSheet, setRenamingSheet] = useState<string | null>(null);\n const [newSheetName, setNewSheetName] = useState<string>('');\n const [spreadsheetZoom, setSpreadsheetZoom] = useState(1);\n const renameCommittedRef = useRef(false);\n\n const clipboardManager = React.useMemo(\n () => controlledClipboardManager ?? new WorkbookClipboardManager(engine!),\n [controlledClipboardManager, engine]\n );\n\n // Recompute on every render because the engine mutates sheet maps in place.\n // Depending on the Map reference in useMemo makes tab order stale after updates.\n const sheetNames = engine.getOrderedSheetNames(workbookName);\n\n // Internal state for uncontrolled mode\n const [internalActiveSheet, setInternalActiveSheet] = useState<string>(() => {\n return sheetNames[0] || '';\n });\n\n // Track if component is controlled\n const isControlledRef = useRef(controlledActiveSheet !== undefined);\n\n // Check for controlled/uncontrolled mode changes\n React.useEffect(() => {\n const isCurrentlyControlled = controlledActiveSheet !== undefined;\n if (isControlledRef.current !== isCurrentlyControlled) {\n console.error(\n `FormulaWorkbook: Component changed from ${isControlledRef.current ? 'controlled' : 'uncontrolled'} to ${isCurrentlyControlled ? 'controlled' : 'uncontrolled'} mode. ` +\n `A component should not switch between controlled and uncontrolled modes. ` +\n `Decide between using activeSheet and onActiveSheetChange props (controlled) or neither (uncontrolled) for the lifetime of the component.`\n );\n }\n isControlledRef.current = isCurrentlyControlled;\n }, [controlledActiveSheet]);\n\n // Use controlled value if provided, otherwise use internal state\n const activeSheet = controlledActiveSheet ?? internalActiveSheet;\n\n // Handle sheet changes\n const handleActiveSheetChange = useCallback(\n (sheetName: string) => {\n if (onActiveSheetChange) {\n // Controlled mode\n onActiveSheetChange(sheetName);\n } else {\n // Uncontrolled mode\n setInternalActiveSheet(sheetName);\n }\n },\n [onActiveSheetChange]\n );\n\n // Get overlay and layout data for the active sheet\n const activeSheetOverlayChildren = sheetOverlayChildren?.[activeSheet];\n const activeSheetSelectedOverlayId = sheetSelectedOverlayIds?.[activeSheet];\n const activeSheetColumnWidths = sheetLayouts?.[activeSheet]?.columnWidths;\n const activeSheetRowHeights = sheetLayouts?.[activeSheet]?.rowHeights;\n\n // Create sheet-specific callbacks\n const handleOverlaySelect = useCallback(\n (overlayId: string | null) => {\n onOverlaySelect?.(activeSheet, overlayId);\n },\n [onOverlaySelect, activeSheet]\n );\n\n const handleOverlayChildrenChange = useCallback(\n (children: NonNullable<SpreadsheetProps['overlayChildren']>) => {\n onOverlayChildrenChange?.(activeSheet, children);\n },\n [onOverlayChildrenChange, activeSheet]\n );\n\n const handleColumnWidthsChange = useCallback(\n (columnWidths: SpreadsheetColumnWidths) => {\n onSheetColumnWidthsChange?.(activeSheet, columnWidths);\n },\n [activeSheet, onSheetColumnWidthsChange]\n );\n\n const handleRowHeightsChange = useCallback(\n (rowHeights: SpreadsheetRowHeights) => {\n onSheetRowHeightsChange?.(activeSheet, rowHeights);\n },\n [activeSheet, onSheetRowHeightsChange]\n );\n\n // Add new sheet handler\n const addSheet = () => {\n try {\n const newSheet = engine.createSheet({\n workbookName\n });\n\n // Switch to the new sheet\n handleActiveSheetChange(newSheet.name);\n } catch (error) {\n console.error('Failed to add sheet:', error);\n }\n };\n\n // Start renaming a sheet\n const startRenaming = (sheetName: string) => {\n renameCommittedRef.current = false;\n setRenamingSheet(sheetName);\n setNewSheetName(sheetName);\n };\n\n // Cancel renaming\n const cancelRenaming = () => {\n setRenamingSheet(null);\n setNewSheetName('');\n };\n\n // Rename sheet\n const renameSheet = (oldName: string, newName: string) => {\n // Guard against double-fire (e.g. onBlur firing after onKeyDown already committed)\n if (renameCommittedRef.current) {\n cancelRenaming();\n return;\n }\n\n if (!newName.trim() || newName.trim() === oldName) {\n cancelRenaming();\n return;\n }\n\n try {\n renameCommittedRef.current = true;\n engine.renameSheet({\n workbookName,\n sheetName: oldName,\n newSheetName: newName.trim()\n });\n\n // Update active sheet if we renamed the active one\n if (activeSheet === oldName) {\n handleActiveSheetChange(newName.trim());\n }\n\n cancelRenaming();\n } catch (error) {\n console.error('Failed to rename sheet:', error);\n cancelRenaming();\n }\n };\n\n // Delete sheet\n const deleteSheet = (sheetName: string) => {\n if (sheetNames.length <= 1) {\n console.error('Cannot delete the last sheet');\n return;\n }\n\n try {\n engine.removeSheet({ workbookName, sheetName });\n\n // If we deleted the active sheet, switch to the first available sheet\n if (activeSheet === sheetName) {\n const remainingSheets = sheetNames.filter((name) => name !== sheetName);\n const nextSheet = remainingSheets[0];\n if (nextSheet) {\n handleActiveSheetChange(nextSheet);\n }\n }\n } catch (error) {\n console.error('Failed to delete sheet:', error);\n }\n };\n\n return (\n <div className=\"rsp-root rsp-workbook\" {...schemeRoot}>\n {/* Optional Toolbar */}\n {toolbar}\n\n {/* Workbook Header */}\n <div className=\"rsp-workbook-header\">\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }}\n >\n <span className=\"rsp-workbook-name\" data-testid={`workbook-name-${workbookName}`}>\n {workbookName}\n </span>\n </div>\n <span className=\"rsp-zoom-value\" data-testid={`sheet-count-${workbookName}`}>\n Sheets: {sheetNames.length}\n </span>\n </div>\n\n {/* Spreadsheet Content */}\n <div style={{ flex: 1, overflow: 'hidden' }}>\n <div\n style={{\n transform: spreadsheetZoom !== 1 ? `scale(${spreadsheetZoom})` : undefined,\n transformOrigin: '0 0',\n width: spreadsheetZoom !== 1 ? `${100 / spreadsheetZoom}%` : '100%',\n height: spreadsheetZoom !== 1 ? `${100 / spreadsheetZoom}%` : '100%'\n }}\n >\n <FormulaSheet\n key={`${workbookName}-${activeSheet}`}\n sheetName={activeSheet}\n workbookName={workbookName}\n engine={engine}\n verboseErrors={verboseErrors}\n selectionManager={selectionManager}\n viewId={viewId}\n {...rest}\n // Pass overlay props for the active sheet\n components={components}\n overlayChildren={activeSheetOverlayChildren}\n selectedOverlayId={activeSheetSelectedOverlayId}\n columnWidths={activeSheetColumnWidths}\n onColumnWidthsChange={handleColumnWidthsChange}\n rowHeights={activeSheetRowHeights}\n onRowHeightsChange={handleRowHeightsChange}\n onOverlaySelect={handleOverlaySelect}\n onOverlayChildrenChange={handleOverlayChildrenChange}\n overlayPlaceholder={overlayPlaceholder}\n clipboardManager={clipboardManager}\n isSelected={isSelected}\n showFormulas={showFormulas}\n />\n </div>\n </div>\n\n {/* Sheet Tabs at Bottom (Excel-style) */}\n <div className=\"rsp-sheet-tabs\">\n <div className=\"rsp-sheet-tabs-scroll\">\n <div style={{ display: 'flex', alignItems: 'center', gap: 4 }}>\n {sheetNames.map((sheetName) => {\n const isRenaming = renamingSheet === sheetName;\n const isActive = activeSheet === sheetName;\n\n return (\n <div key={sheetName}>\n {isRenaming ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: 4 }}>\n <input\n className=\"rsp-sheet-tab-input\"\n type=\"text\"\n value={newSheetName}\n onChange={(e) => setNewSheetName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n renameSheet(sheetName, newSheetName);\n } else if (e.key === 'Escape') {\n cancelRenaming();\n }\n }}\n onBlur={() => {\n if (newSheetName.trim() && newSheetName.trim() !== sheetName) {\n renameSheet(sheetName, newSheetName);\n } else {\n cancelRenaming();\n }\n }}\n autoFocus\n data-testid={`rename-sheet-input-${sheetName}`}\n />\n </div>\n ) : (\n <div\n className={cn('rsp-sheet-tab', {\n 'rsp-sheet-tab-active': isActive\n })}\n onClick={() => handleActiveSheetChange(sheetName)}\n onDoubleClick={() => startRenaming(sheetName)}\n data-testid={`sheet-tab-${sheetName}`}\n >\n <span>{sheetName}</span>\n\n {/* Sheet actions (visible on hover, inside tab) */}\n <div className=\"sheet-tab-actions\">\n <button\n type=\"button\"\n className=\"rsp-icon-button\"\n onClick={(e) => {\n e.stopPropagation();\n startRenaming(sheetName);\n }}\n title=\"Rename Sheet\"\n data-testid={`rename-sheet-${sheetName}`}\n >\n <Edit2Icon style={{ width: 12, height: 12 }} />\n </button>\n {sheetNames.length > 1 && (\n <button\n type=\"button\"\n className=\"rsp-icon-button rsp-icon-button-delete\"\n onClick={(e) => {\n e.stopPropagation();\n if (confirm(`Are you sure you want to delete sheet \"${sheetName}\"?`)) {\n deleteSheet(sheetName);\n }\n }}\n title=\"Delete Sheet\"\n data-testid={`delete-sheet-${sheetName}`}\n >\n <Trash2Icon style={{ width: 12, height: 12 }} />\n </button>\n )}\n </div>\n </div>\n )}\n </div>\n );\n })}\n </div>\n\n {/* Add Sheet Button (Excel-style, to the right) */}\n <button\n type=\"button\"\n className=\"rsp-add-sheet-button\"\n onClick={addSheet}\n title=\"Add Sheet\"\n data-testid={`add-sheet-${workbookName}`}\n >\n <PlusIcon style={{ width: 12, height: 12 }} />\n </button>\n </div>\n\n {/* Spreadsheet Zoom Controls - pinned to the right */}\n <div className=\"rsp-zoom-controls\">\n <button\n type=\"button\"\n className=\"rsp-icon-button\"\n onClick={() => setSpreadsheetZoom(Math.max(0.5, spreadsheetZoom - 0.1))}\n disabled={spreadsheetZoom <= 0.5}\n title=\"Zoom Out\"\n style={{ opacity: spreadsheetZoom <= 0.5 ? 0.5 : 1 }}\n >\n <MinusIcon style={{ width: 12, height: 12 }} />\n </button>\n <span className=\"rsp-zoom-value\">{Math.round(spreadsheetZoom * 100)}%</span>\n <button\n type=\"button\"\n className=\"rsp-icon-button\"\n onClick={() => setSpreadsheetZoom(Math.min(2, spreadsheetZoom + 0.1))}\n disabled={spreadsheetZoom >= 2}\n title=\"Zoom In\"\n style={{ opacity: spreadsheetZoom >= 2 ? 0.5 : 1 }}\n >\n <PlusIcon style={{ width: 12, height: 12 }} />\n </button>\n </div>\n </div>\n </div>\n );\n}\n\n// Export WorkbookSelectionManager\nexport { WorkbookSelectionManager } from './workbook-selection-manager';\n",
|
|
17
|
+
"import {\n FormulaEngine,\n type CellAddress,\n type CellStyle,\n type SerializedCellValue,\n type SpreadsheetRange,\n type SpreadsheetRangeEnd,\n indexToColumn,\n parseCellReference,\n getCellReference,\n type RangeAddress\n} from '@ricsam/formula-engine';\n\nimport type {\n SelectionManager,\n SelectionNavigationModel,\n SMCell,\n SMArea,\n SMTable\n} from '@ricsam/selection-manager';\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\nimport { Spreadsheet, type SpreadsheetProps } from '../spreadsheet/spreadsheet';\nimport type {\n CellRenderContext,\n SpreadsheetColumnWidths,\n SpreadsheetRowHeights\n} from '../types';\nimport type { WorkbookSelectionManager } from './workbook-selection-manager';\nimport { cn } from '../utils/cn';\nimport { useSchemeRoot } from '../utils/use-scheme-root';\nimport { type CellDataUpdate, ClipboardUtils } from '../clipboard/clipboard-manager';\nimport { normalizeBorderSides, hasAnyBorderSide } from './border-sides';\nimport { coerceCellInput, getCellDisplayText, getCellDisplayValue } from './cell-data-type';\nimport { queueCellEditError } from './cell-edit-error';\n\nconst getWrapCellStyle = (style?: CellStyle): React.CSSProperties =>\n style?.wrapText\n ? {\n whiteSpace: 'pre-wrap',\n overflowWrap: 'anywhere',\n wordBreak: 'normal',\n textOverflow: 'clip',\n alignItems: 'flex-start'\n }\n : {};\n\nconst getWrapContentStyle = (style?: CellStyle): React.CSSProperties =>\n style?.wrapText\n ? {\n whiteSpace: 'pre-wrap',\n overflowWrap: 'anywhere',\n wordBreak: 'normal',\n textOverflow: 'clip',\n width: '100%',\n minWidth: 0\n }\n : {};\n\nconst getBorderCellStyle = (style?: CellStyle): React.CSSProperties =>\n (() => {\n if (!style?.borderColor) {\n return {};\n }\n\n const borderSides = normalizeBorderSides(style.borderSides, true);\n if (!hasAnyBorderSide(borderSides)) {\n return {};\n }\n\n return {\n ...(borderSides.top && { borderTopColor: style.borderColor }),\n ...(borderSides.right && { borderRightColor: style.borderColor }),\n ...(borderSides.bottom && { borderBottomColor: style.borderColor }),\n ...(borderSides.left && { borderLeftColor: style.borderColor })\n };\n })();\n\n// Icon Components\nconst Edit2Icon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <path d=\"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z\" />\n <path d=\"m15 5 4 4\" />\n </svg>\n);\n\nconst CopyIcon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n);\n\nconst Trash2Icon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <path d=\"M3 6h18\" />\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\" />\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" />\n <line x1=\"10\" x2=\"10\" y1=\"11\" y2=\"17\" />\n <line x1=\"14\" x2=\"14\" y1=\"11\" y2=\"17\" />\n </svg>\n);\n\nconst PlusIcon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n);\n\nconst MinusIcon = ({ className = '', ...props }: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n {...props}\n >\n <path d=\"M5 12h14\" />\n </svg>\n);\n\ntype SpreadsheetLayout = {\n columnWidths?: SpreadsheetColumnWidths;\n rowHeights?: SpreadsheetRowHeights;\n};\n\nexport interface FormulaSheetProps\n extends Omit<\n SpreadsheetProps,\n | 'selection'\n | 'customCellStyle'\n | 'customCellRenderer'\n | 'components'\n | 'overlayChildren'\n | 'selectedOverlayId'\n | 'onOverlaySelect'\n | 'onOverlayChildrenChange'\n | 'overlayPlaceholder'\n | 'parentSelected'\n > {\n clipboardManager?: WorkbookClipboardManager;\n sheetName: string;\n workbookName: string;\n engine: FormulaEngine;\n verboseErrors?: boolean;\n selection?: SpreadsheetProps['selection'];\n selectionManager?: WorkbookSelectionManager;\n /** Stable identity used to distinguish duplicate mounted views of this sheet. */\n viewId?: string;\n customCellStyle?: (\n cell: CellRenderContext,\n internalStyle: React.CSSProperties\n ) => React.CSSProperties;\n customCellRenderer?: (\n cell: CellRenderContext,\n internalElement: React.ReactNode\n ) => React.ReactNode;\n // Add overlay component props\n components?: SpreadsheetProps['components'];\n overlayChildren?: SpreadsheetProps['overlayChildren'];\n selectedOverlayId?: SpreadsheetProps['selectedOverlayId'];\n onOverlaySelect?: SpreadsheetProps['onOverlaySelect'];\n onOverlayChildrenChange?: SpreadsheetProps['onOverlayChildrenChange'];\n overlayPlaceholder?: SpreadsheetProps['overlayPlaceholder'];\n /** Whether the grid child is selected (controls interactivity) */\n isSelected?: boolean;\n /** Optional toolbar to render above the sheet */\n toolbar?: React.ReactNode;\n /** When true, cells display raw formulas instead of computed values */\n showFormulas?: boolean;\n}\n\nfunction useEngine(engine: FormulaEngine): ReturnType<typeof FormulaEngine.prototype.getState> {\n const [state, setState] = useState<ReturnType<typeof FormulaEngine.prototype.getState>>(() =>\n engine.getState()\n );\n\n React.useEffect(() => {\n return engine.onUpdate(() => {\n setState(engine.getState());\n });\n }, [engine]);\n\n return state;\n}\n\nexport class WorkbookClipboardManager extends ClipboardUtils {\n constructor(private engine: FormulaEngine) {\n super();\n }\n copiedCells: CellAddress[] = [];\n signature: string = '';\n isCut: boolean = false;\n\n public triggerCopy(context: {\n workbookName: string;\n sheetName: string;\n selectionManager: SelectionManager;\n copyType: 'value' | 'formula';\n cut?: boolean;\n }): void {\n const cellData = this.engine.getSheet({\n workbookName: context.workbookName,\n sheetName: context.sheetName\n })?.content;\n if (!cellData) return;\n const extractedCells = this.extractCellsFromSelection(context.selectionManager, cellData);\n if (!extractedCells) return;\n const { width, height, cells } = extractedCells;\n const valueExportGrid = this.createExportGrid(width, height);\n const formulaExportGrid = this.createExportGrid(width, height);\n this.copiedCells = [];\n this.isCut = context.cut ?? false;\n cells.forEach(({ relative, absolute }) => {\n const cellAddress: CellAddress = {\n workbookName: context.workbookName,\n sheetName: context.sheetName,\n colIndex: absolute.columnIndex,\n rowIndex: absolute.rowIndex\n };\n this.copiedCells.push(cellAddress);\n const value = this.engine.getCellValue(cellAddress, false);\n const formula = cellData.get(getCellReference(cellAddress));\n valueExportGrid[relative.rowIndex]![relative.columnIndex] = getCellDisplayValue(value);\n formulaExportGrid[relative.rowIndex]![relative.columnIndex] = formula;\n });\n this.signature = this.getTsvString(context.copyType === 'formula' ? formulaExportGrid : valueExportGrid);\n this.writeToOsClipboard(context.copyType === 'formula' ? formulaExportGrid : valueExportGrid);\n }\n public triggerPaste(context: {\n workbookName: string;\n sheetName: string;\n selectionManager: SelectionManager;\n updates: CellDataUpdate[];\n rawString: string;\n pasteType: 'value' | 'formula';\n }): void {\n if (context.rawString === this.signature) {\n // Internal paste operation - use smartPaste to handle both copy and fill\n const selections = context.selectionManager.selections;\n if (!selections || selections.length === 0) return;\n\n // Convert each SMArea to SpreadsheetRange\n const convertSMAreaToSpreadsheetRange = (area: SMArea): SpreadsheetRange => {\n return {\n start: {\n col: area.start.col,\n row: area.start.row\n },\n end: {\n col:\n area.end.col.type === 'infinity'\n ? { type: 'infinity' as const, sign: 'positive' as const }\n : { type: 'number' as const, value: area.end.col.value },\n row:\n area.end.row.type === 'infinity'\n ? { type: 'infinity' as const, sign: 'positive' as const }\n : { type: 'number' as const, value: area.end.row.value }\n }\n };\n };\n\n const areas = selections.map(convertSMAreaToSpreadsheetRange);\n\n console.log('pasting', { cut: this.isCut });\n this.engine.smartPaste(\n this.copiedCells,\n {\n workbookName: context.workbookName,\n sheetName: context.sheetName,\n areas\n },\n {\n cut: this.isCut,\n type: context.pasteType,\n include: 'all'\n }\n );\n\n // Reset isCut after paste\n this.isCut = false;\n } else {\n // External paste operation\n context.selectionManager.saveCellValues(context.updates);\n }\n }\n}\n\nexport function FormulaSheet({\n sheetName,\n workbookName,\n engine,\n verboseErrors = false,\n selection,\n selectionManager,\n viewId,\n customCellStyle,\n customCellRenderer,\n onCellDataChangeError = queueCellEditError,\n // Add overlay props\n components,\n overlayChildren,\n selectedOverlayId,\n onOverlaySelect,\n onOverlayChildrenChange,\n overlayPlaceholder,\n clipboardManager: controlledClipboardManager,\n isSelected = false,\n toolbar,\n showFormulas = false,\n ...rest\n}: FormulaSheetProps) {\n const schemeRoot = useSchemeRoot();\n const [selectedArea, setSelectedArea] = useState<SMArea | null>(null);\n\n const clipboardManager = React.useMemo(\n () => controlledClipboardManager ?? new WorkbookClipboardManager(engine!),\n [controlledClipboardManager, engine]\n );\n\n const state = useEngine(engine);\n\n const sheet = state.workbooks.get(workbookName)?.sheets.get(sheetName);\n\n const getEngineTableAt = useCallback(\n (cell: SMCell): SMTable | undefined => {\n const table = engine.isCellInTable({\n workbookName,\n sheetName,\n rowIndex: cell.row,\n colIndex: cell.col\n });\n if (!table) return undefined;\n\n const endRow =\n table.endRow.type === 'number'\n ? { type: 'number' as const, value: table.endRow.value }\n : { type: 'infinity' as const };\n const endCol = {\n type: 'number' as const,\n value: table.start.colIndex + table.headers.size - 1\n };\n const hasDataRows = endRow.type === 'infinity' || endRow.value > table.start.rowIndex;\n\n return {\n id: `${table.workbookName}/${table.name}`,\n bounds: {\n start: { row: table.start.rowIndex, col: table.start.colIndex },\n end: { row: endRow, col: endCol }\n },\n ...(hasDataRows\n ? {\n dataBounds: {\n start: {\n row: table.start.rowIndex + 1,\n col: table.start.colIndex\n },\n end: { row: endRow, col: endCol }\n }\n }\n : {})\n };\n },\n [engine, sheetName, workbookName]\n );\n const formulaNavigation = useMemo<SelectionNavigationModel>(\n () => ({\n ...selection?.navigation,\n getTableAt: selection?.navigation?.getTableAt ?? getEngineTableAt\n }),\n [getEngineTableAt, selection?.navigation]\n );\n\n // Handle cell data changes from the spreadsheet\n const onCellDataChange = useCallback(\n (updatedSpreadsheet: Map<string, SerializedCellValue>) => {\n const data = new Map<string, SerializedCellValue>(updatedSpreadsheet);\n data.forEach((value, key) => {\n if (typeof value === 'string') {\n const { colIndex, rowIndex } = parseCellReference(key);\n const coercedValue = coerceCellInput(\n value,\n engine.getCellDataType({ workbookName, sheetName, colIndex, rowIndex })\n );\n if (coercedValue === undefined) {\n data.delete(key);\n } else {\n data.set(key, coercedValue);\n }\n }\n });\n engine.setSheetContent({ sheetName, workbookName }, data);\n },\n [sheetName, engine, workbookName]\n );\n\n const passedSelectionEffects = selection?.effects;\n\n // Selection manager effects for tracking cell selection\n const selectionManagerEffects = useCallback(\n (spreadsheetSelectionManager: SelectionManager) => {\n const convertSmAreaToSpreadsheetRange = (area: SMArea): SpreadsheetRange => {\n const rowEnd: SpreadsheetRangeEnd =\n area.end.row.type === 'infinity'\n ? {\n type: 'infinity',\n sign: 'positive'\n }\n : {\n type: 'number',\n value: area.end.row.value\n };\n const colEnd: SpreadsheetRangeEnd =\n area.end.col.type === 'infinity'\n ? {\n type: 'infinity',\n sign: 'positive'\n }\n : {\n type: 'number',\n value: area.end.col.value\n };\n return {\n start: {\n col: area.start.col,\n row: area.start.row\n },\n end: {\n row: rowEnd,\n col: colEnd\n }\n };\n };\n\n const cleanups = [\n spreadsheetSelectionManager.listenToCopy((cut) => {\n console.log('cut??', cut);\n clipboardManager.triggerCopy({\n workbookName,\n sheetName,\n selectionManager: spreadsheetSelectionManager,\n copyType: showFormulas ? 'formula' : 'value',\n cut\n });\n }),\n spreadsheetSelectionManager.listenToPaste(({ updates, rawString }) => {\n clipboardManager.triggerPaste({\n workbookName,\n sheetName,\n selectionManager: spreadsheetSelectionManager,\n updates,\n rawString,\n pasteType: 'formula'\n });\n }),\n spreadsheetSelectionManager.listenToFill((ev) => {\n if (ev.type === 'extend') {\n engine.autoFill(\n { sheetName, workbookName },\n convertSmAreaToSpreadsheetRange(ev.seedRange),\n [convertSmAreaToSpreadsheetRange(ev.fillRange)],\n ev.direction\n );\n } else {\n engine.clearSpreadsheetRange({\n sheetName,\n workbookName,\n range: convertSmAreaToSpreadsheetRange(ev.rangeToClear)\n });\n }\n }),\n spreadsheetSelectionManager.observeStateChange(\n (state) => {\n const currentSelection: SMArea | undefined =\n state.selections.length === 1 ? state.selections[0] : undefined;\n return currentSelection;\n },\n (selection) => {\n setSelectedArea(selection ?? null);\n }\n )\n ];\n\n const handleUndoRedoKeyDown = (event: KeyboardEvent) => {\n if (!spreadsheetSelectionManager.hasFocus) return;\n if (spreadsheetSelectionManager.isEditing.type !== 'none') return;\n\n const target = event.target;\n if (target instanceof HTMLElement) {\n const isEditableTarget =\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SELECT' ||\n target.isContentEditable ||\n Boolean(target.closest('[contenteditable=\"true\"]'));\n\n if (isEditableTarget) return;\n }\n\n if (!event.metaKey && !event.ctrlKey) return;\n\n const key = event.key.toLowerCase();\n const isUndo = key === 'z' && !event.shiftKey;\n const isRedo = key === 'y' || (key === 'z' && event.shiftKey);\n\n if (!isUndo && !isRedo) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n if (isUndo) {\n engine.undo();\n } else {\n engine.redo();\n }\n };\n\n document.addEventListener('keydown', handleUndoRedoKeyDown);\n cleanups.push(() => {\n document.removeEventListener('keydown', handleUndoRedoKeyDown);\n });\n\n // Register this spreadsheet's SelectionManager with the WorkbookSelectionManager\n if (selectionManager) {\n const workbookManagerCleanup = selectionManager.add(spreadsheetSelectionManager, {\n workbookName,\n sheetName,\n ...(viewId === undefined ? {} : { viewId })\n });\n cleanups.push(workbookManagerCleanup);\n }\n\n // Call user-provided effects if present\n let userCleanup: (() => void) | void;\n if (passedSelectionEffects) {\n userCleanup = passedSelectionEffects(spreadsheetSelectionManager);\n }\n\n return () => {\n cleanups.forEach((cleanup) => cleanup());\n if (userCleanup) {\n userCleanup();\n }\n };\n },\n [\n clipboardManager,\n engine,\n passedSelectionEffects,\n selectionManager,\n sheetName,\n showFormulas,\n viewId,\n workbookName\n ]\n );\n\n // Selection changes must not invalidate engine rendering. Invalidate on every\n // engine update (including other sheets): conditional styles can depend on any\n // formula input, not just this sheet's content. Bound the cache for long scrolls.\n const renderCallbacks = useMemo(() => {\n type RenderStyle = CellStyle & { fontFamily?: string };\n const metadata = engine.getWorkbookMetadata(workbookName) as\n { defaultCellStyle?: RenderStyle } | undefined;\n const defaults = metadata?.defaultCellStyle;\n const fontStyle = (style?: RenderStyle): React.CSSProperties => ({\n ...(style?.fontFamily && { fontFamily: style.fontFamily }),\n ...(style?.bold !== undefined && { fontWeight: style.bold ? 'bold' : 'normal' }),\n ...(style?.italic !== undefined && { fontStyle: style.italic ? 'italic' : 'normal' }),\n ...(style?.underline !== undefined && { textDecoration: style.underline ? 'underline' : 'none' })\n });\n const styles = new Map<string, RenderStyle | undefined>();\n const getStyle = (cell: CellRenderContext): RenderStyle | undefined => {\n if (styles.has(cell.id)) return styles.get(cell.id);\n const explicit = engine.getCellStyle({\n sheetName, workbookName, colIndex: cell.colIndex, rowIndex: cell.rowIndex\n });\n const style = defaults ? { ...defaults, ...explicit } : explicit;\n if (styles.size >= 4096) styles.clear();\n styles.set(cell.id, style);\n return style;\n };\n return {\n customCellStyle: (cell: CellRenderContext) => {\n // Check for conditional styling first\n const conditionalStyle = getStyle(cell);\n\n const tableInfo = engine.isCellInTable({\n sheetName,\n colIndex: cell.colIndex,\n rowIndex: cell.rowIndex,\n workbookName\n });\n\n if (!tableInfo) {\n // Not in a table, apply the engine style first and always give the\n // consumer a chance to augment it. Reference highlights, search\n // results and other transient decorations commonly target plain\n // cells, so limiting this callback to table cells makes the API\n // ineffective for those use cases.\n const style: React.CSSProperties = conditionalStyle\n ? {\n ...(conditionalStyle.backgroundColor && {\n backgroundColor: conditionalStyle.backgroundColor\n }),\n ...(conditionalStyle.color && {\n color: conditionalStyle.color\n }),\n ...(conditionalStyle.fontSize && {\n fontSize: conditionalStyle.fontSize\n }),\n ...fontStyle(conditionalStyle),\n ...getBorderCellStyle(conditionalStyle),\n ...getWrapCellStyle(conditionalStyle)\n }\n : {};\n\n return customCellStyle ? customCellStyle(cell, style) : style;\n }\n\n const isHeaderRow = cell.rowIndex === tableInfo.start.rowIndex;\n const isFirstColumn = cell.colIndex === tableInfo.start.colIndex;\n const isLastColumn = cell.colIndex === tableInfo.start.colIndex + tableInfo.headers.size - 1;\n\n // Calculate if this is the last row of the table\n const isLastRow =\n tableInfo.endRow.type === 'number' ? cell.rowIndex === tableInfo.endRow.value : false; // For infinite tables, we don't style the last row differently\n\n // Excel-like table styling. These custom properties are declared in\n // the package stylesheet (`styles.css`) and resolve through\n // `light-dark()`, so tables follow the active color scheme.\n const style: React.CSSProperties = {\n border: '1px solid var(--_rsp-table-border-light)'\n };\n\n if (isHeaderRow) {\n // Header row styling - accent theme like Excel\n style.backgroundColor = 'var(--_rsp-table-header-bg)';\n style.color = 'var(--_rsp-table-header-color)';\n style.fontWeight = 'bold';\n style.borderBottom = '2px solid var(--_rsp-table-header-border)';\n } else {\n // Data rows - alternating background\n const dataRowIndex = cell.rowIndex - tableInfo.start.rowIndex - 1;\n if (dataRowIndex % 2 === 0) {\n style.backgroundColor = 'var(--_rsp-table-even-row-bg)';\n } else {\n style.backgroundColor = 'var(--_rsp-table-odd-row-bg)';\n }\n }\n\n // Border styling\n if (isFirstColumn) {\n style.borderLeft = '2px solid var(--_rsp-table-border-color)';\n }\n if (isLastColumn) {\n style.borderRight = '2px solid var(--_rsp-table-border-color)';\n }\n if (isHeaderRow) {\n style.borderTop = '2px solid var(--_rsp-table-border-color)';\n }\n if (isLastRow) {\n style.borderBottom = '2px solid var(--_rsp-table-border-color)';\n }\n\n // Merge conditional styling with table styling\n // User custom styles can now override table header styles\n if (conditionalStyle?.backgroundColor) {\n style.backgroundColor = conditionalStyle.backgroundColor;\n }\n // Apply text color from conditional styling (overrides header white text if user wants)\n if (conditionalStyle?.color) {\n style.color = conditionalStyle.color;\n }\n // Apply font size from conditional styling\n if (conditionalStyle?.fontSize) {\n style.fontSize = conditionalStyle.fontSize;\n }\n Object.assign(style, fontStyle(conditionalStyle));\n Object.assign(style, getBorderCellStyle(conditionalStyle));\n Object.assign(style, getWrapCellStyle(conditionalStyle));\n\n if (customCellStyle) {\n return customCellStyle(cell, style);\n }\n\n return style;\n },\n customCellRenderer: (cell: CellRenderContext) => {\n const cellRef = getCellReference({\n colIndex: cell.colIndex,\n rowIndex: cell.rowIndex\n });\n\n // When showFormulas is enabled, display the raw cell content (formula string)\n // instead of the computed value from the engine\n const value = showFormulas\n ? sheet?.content.get(cellRef)\n : engine.getCellValue(\n {\n sheetName,\n workbookName,\n colIndex: cell.colIndex,\n rowIndex: cell.rowIndex\n },\n verboseErrors\n );\n\n const conditionalStyle = getStyle(cell);\n\n const conditionalStyleProps: React.CSSProperties = {};\n if (conditionalStyle?.backgroundColor) {\n conditionalStyleProps.backgroundColor = conditionalStyle.backgroundColor;\n }\n if (conditionalStyle?.color) {\n conditionalStyleProps.color = conditionalStyle.color;\n }\n if (conditionalStyle?.fontSize) {\n conditionalStyleProps.fontSize = conditionalStyle.fontSize;\n }\n Object.assign(conditionalStyleProps, fontStyle(conditionalStyle), getWrapContentStyle(conditionalStyle));\n\n let defaultElement: React.ReactNode;\n if (showFormulas) {\n // In show-formulas mode, always render raw content as-is (no number formatting)\n defaultElement = (\n <div\n data-conditional-background={conditionalStyle?.backgroundColor}\n data-conditional-text-color={conditionalStyle?.color}\n style={conditionalStyleProps}\n >\n {getCellDisplayText(value)}\n </div>\n );\n } else if (typeof value === 'boolean') {\n defaultElement = (\n <div\n data-conditional-background={conditionalStyle?.backgroundColor}\n data-conditional-text-color={conditionalStyle?.color}\n data-type=\"boolean\"\n style={{\n ...conditionalStyleProps,\n width: '100%',\n textAlign: 'center',\n fontFamily: conditionalStyle?.fontFamily ?? \"'Courier New', monospace\"\n }}\n >\n {value ? 'TRUE' : 'FALSE'}\n </div>\n );\n } else if (typeof value === 'number') {\n // Format numbers nicely\n defaultElement = (\n <div\n data-conditional-background={conditionalStyle?.backgroundColor}\n data-conditional-text-color={conditionalStyle?.color}\n data-type=\"number\"\n style={{ ...conditionalStyleProps, width: '100%', textAlign: 'right' }}\n >\n {value.toLocaleString('en-US', {\n minimumFractionDigits: 0,\n maximumFractionDigits: 10\n })}\n </div>\n );\n } else {\n defaultElement = (\n <div\n data-conditional-background={conditionalStyle?.backgroundColor}\n data-conditional-text-color={conditionalStyle?.color}\n style={{ ...conditionalStyleProps, width: '100%', textAlign: 'left' }}\n >\n {getCellDisplayText(value)}\n </div>\n );\n }\n\n if (customCellRenderer) {\n return customCellRenderer(cell, defaultElement);\n }\n return defaultElement;\n }\n };\n }, [engine, state, workbookName, sheetName, sheet, showFormulas, verboseErrors,\n customCellStyle, customCellRenderer]);\n\n // If the sheet doesn't exist (e.g. during a rename where the engine has\n // updated but React hasn't re-rendered with the new sheet name yet),\n // render nothing. The next render will have the correct sheet name.\n if (!sheet) {\n return (\n <div className=\"rsp-root rsp-workbook\" {...schemeRoot}>\n {toolbar}\n <div style={{ flex: 1 }} />\n </div>\n );\n }\n\n return (\n <div className=\"rsp-root rsp-workbook\" {...schemeRoot}>\n {/* Optional Toolbar */}\n {toolbar}\n\n {/* Main spreadsheet area */}\n <div className=\"rsp-workbook-body\">\n <Spreadsheet\n disableClipboard={true}\n style={{ height: '100%', width: '100%' }}\n cellData={sheet?.content}\n onCellDataChange={onCellDataChange}\n onCellDataChangeError={onCellDataChangeError}\n {...rest}\n // Add overlay props\n components={components}\n overlayChildren={overlayChildren}\n selectedOverlayId={selectedOverlayId}\n onOverlaySelect={onOverlaySelect}\n onOverlayChildrenChange={onOverlayChildrenChange}\n overlayPlaceholder={overlayPlaceholder}\n parentSelected={isSelected}\n selection={{\n ...selection,\n navigation: formulaNavigation,\n effects: selectionManagerEffects\n }}\n containerProps={\n (isSelected && selectedArea\n ? {\n 'data-grid-no-interaction': 'true'\n }\n : {}) as React.HTMLAttributes<HTMLDivElement>\n }\n {...renderCallbacks}\n />\n </div>\n </div>\n );\n}\n\nexport interface FormulaWorkbookProps\n extends Omit<\n SpreadsheetProps,\n | 'cellData'\n | 'onCellDataChange'\n | 'selection'\n | 'customCellStyle'\n | 'customCellRenderer'\n | 'components'\n | 'overlayChildren'\n | 'selectedOverlayId'\n | 'onOverlaySelect'\n | 'onOverlayChildrenChange'\n | 'overlayPlaceholder'\n | 'parentSelected'\n | 'columnWidths'\n | 'onColumnWidthsChange'\n | 'rowHeights'\n | 'onRowHeightsChange'\n > {\n workbookName: string;\n clipboardManager?: WorkbookClipboardManager;\n engine: FormulaEngine;\n activeSheet?: string;\n onActiveSheetChange?: (sheetName: string) => void;\n verboseErrors?: boolean;\n selection?: SpreadsheetProps['selection'];\n selectionManager?: WorkbookSelectionManager;\n /** Stable identity used to distinguish duplicate mounted views of this workbook. */\n viewId?: string;\n customCellStyle?: (\n cell: CellRenderContext,\n internalStyle: React.CSSProperties\n ) => React.CSSProperties;\n customCellRenderer?: (\n cell: CellRenderContext,\n internalElement: React.ReactNode\n ) => React.ReactNode;\n // Add overlay component props with per-sheet support\n components?: SpreadsheetProps['components'];\n // Map of sheet name to overlay children for that sheet\n sheetOverlayChildren?: Record<string, SpreadsheetProps['overlayChildren']>;\n // Map of sheet name to selected overlay ID for that sheet\n sheetSelectedOverlayIds?: Record<string, SpreadsheetProps['selectedOverlayId']>;\n sheetLayouts?: Record<string, SpreadsheetLayout>;\n onSheetColumnWidthsChange?: (sheetName: string, columnWidths: SpreadsheetColumnWidths) => void;\n onSheetRowHeightsChange?: (sheetName: string, rowHeights: SpreadsheetRowHeights) => void;\n onOverlaySelect?: (sheetName: string, overlayId: string | null) => void;\n onOverlayChildrenChange?: (\n sheetName: string,\n children: NonNullable<SpreadsheetProps['overlayChildren']>\n ) => void;\n overlayPlaceholder?: SpreadsheetProps['overlayPlaceholder'];\n /** Whether the grid child is selected (controls interactivity) */\n isSelected?: boolean;\n /** Optional toolbar to render above the workbook */\n toolbar?: React.ReactNode;\n /** When true, cells display raw formulas instead of computed values */\n showFormulas?: boolean;\n}\n\nexport function FormulaWorkbook({\n clipboardManager: controlledClipboardManager,\n workbookName,\n engine,\n activeSheet: controlledActiveSheet,\n onActiveSheetChange,\n verboseErrors = false,\n selectionManager,\n viewId,\n // Add overlay props\n components,\n sheetOverlayChildren,\n sheetSelectedOverlayIds,\n sheetLayouts,\n onSheetColumnWidthsChange,\n onSheetRowHeightsChange,\n onOverlaySelect,\n onOverlayChildrenChange,\n overlayPlaceholder,\n isSelected = false,\n toolbar,\n showFormulas = false,\n ...rest\n}: FormulaWorkbookProps) {\n const schemeRoot = useSchemeRoot();\n const state = useEngine(engine);\n const [renamingSheet, setRenamingSheet] = useState<string | null>(null);\n const [newSheetName, setNewSheetName] = useState<string>('');\n const [spreadsheetZoom, setSpreadsheetZoom] = useState(1);\n const renameCommittedRef = useRef(false);\n\n const clipboardManager = React.useMemo(\n () => controlledClipboardManager ?? new WorkbookClipboardManager(engine!),\n [controlledClipboardManager, engine]\n );\n\n // Recompute on every render because the engine mutates sheet maps in place.\n // Depending on the Map reference in useMemo makes tab order stale after updates.\n const sheetNames = engine.getOrderedSheetNames(workbookName);\n\n // Internal state for uncontrolled mode\n const [internalActiveSheet, setInternalActiveSheet] = useState<string>(() => {\n return sheetNames[0] || '';\n });\n\n // Track if component is controlled\n const isControlledRef = useRef(controlledActiveSheet !== undefined);\n\n // Check for controlled/uncontrolled mode changes\n React.useEffect(() => {\n const isCurrentlyControlled = controlledActiveSheet !== undefined;\n if (isControlledRef.current !== isCurrentlyControlled) {\n console.error(\n `FormulaWorkbook: Component changed from ${isControlledRef.current ? 'controlled' : 'uncontrolled'} to ${isCurrentlyControlled ? 'controlled' : 'uncontrolled'} mode. ` +\n `A component should not switch between controlled and uncontrolled modes. ` +\n `Decide between using activeSheet and onActiveSheetChange props (controlled) or neither (uncontrolled) for the lifetime of the component.`\n );\n }\n isControlledRef.current = isCurrentlyControlled;\n }, [controlledActiveSheet]);\n\n // Use controlled value if provided, otherwise use internal state\n const activeSheet = controlledActiveSheet ?? internalActiveSheet;\n\n // Handle sheet changes\n const handleActiveSheetChange = useCallback(\n (sheetName: string) => {\n if (onActiveSheetChange) {\n // Controlled mode\n onActiveSheetChange(sheetName);\n } else {\n // Uncontrolled mode\n setInternalActiveSheet(sheetName);\n }\n },\n [onActiveSheetChange]\n );\n\n // Get overlay and layout data for the active sheet\n const activeSheetOverlayChildren = sheetOverlayChildren?.[activeSheet];\n const activeSheetSelectedOverlayId = sheetSelectedOverlayIds?.[activeSheet];\n const activeSheetColumnWidths = sheetLayouts?.[activeSheet]?.columnWidths;\n const activeSheetRowHeights = sheetLayouts?.[activeSheet]?.rowHeights;\n\n // Create sheet-specific callbacks\n const handleOverlaySelect = useCallback(\n (overlayId: string | null) => {\n onOverlaySelect?.(activeSheet, overlayId);\n },\n [onOverlaySelect, activeSheet]\n );\n\n const handleOverlayChildrenChange = useCallback(\n (children: NonNullable<SpreadsheetProps['overlayChildren']>) => {\n onOverlayChildrenChange?.(activeSheet, children);\n },\n [onOverlayChildrenChange, activeSheet]\n );\n\n const handleColumnWidthsChange = useCallback(\n (columnWidths: SpreadsheetColumnWidths) => {\n onSheetColumnWidthsChange?.(activeSheet, columnWidths);\n },\n [activeSheet, onSheetColumnWidthsChange]\n );\n\n const handleRowHeightsChange = useCallback(\n (rowHeights: SpreadsheetRowHeights) => {\n onSheetRowHeightsChange?.(activeSheet, rowHeights);\n },\n [activeSheet, onSheetRowHeightsChange]\n );\n\n // Add new sheet handler\n const addSheet = () => {\n try {\n const newSheet = engine.createSheet({\n workbookName\n });\n\n // Switch to the new sheet\n handleActiveSheetChange(newSheet.name);\n } catch (error) {\n console.error('Failed to add sheet:', error);\n }\n };\n\n // Start renaming a sheet\n const startRenaming = (sheetName: string) => {\n renameCommittedRef.current = false;\n setRenamingSheet(sheetName);\n setNewSheetName(sheetName);\n };\n\n // Cancel renaming\n const cancelRenaming = () => {\n setRenamingSheet(null);\n setNewSheetName('');\n };\n\n // Rename sheet\n const renameSheet = (oldName: string, newName: string) => {\n // Guard against double-fire (e.g. onBlur firing after onKeyDown already committed)\n if (renameCommittedRef.current) {\n cancelRenaming();\n return;\n }\n\n if (!newName.trim() || newName.trim() === oldName) {\n cancelRenaming();\n return;\n }\n\n try {\n renameCommittedRef.current = true;\n engine.renameSheet({\n workbookName,\n sheetName: oldName,\n newSheetName: newName.trim()\n });\n\n // Update active sheet if we renamed the active one\n if (activeSheet === oldName) {\n handleActiveSheetChange(newName.trim());\n }\n\n cancelRenaming();\n } catch (error) {\n console.error('Failed to rename sheet:', error);\n cancelRenaming();\n }\n };\n\n // Delete sheet\n const deleteSheet = (sheetName: string) => {\n if (sheetNames.length <= 1) {\n console.error('Cannot delete the last sheet');\n return;\n }\n\n try {\n engine.removeSheet({ workbookName, sheetName });\n\n // If we deleted the active sheet, switch to the first available sheet\n if (activeSheet === sheetName) {\n const remainingSheets = sheetNames.filter((name) => name !== sheetName);\n const nextSheet = remainingSheets[0];\n if (nextSheet) {\n handleActiveSheetChange(nextSheet);\n }\n }\n } catch (error) {\n console.error('Failed to delete sheet:', error);\n }\n };\n\n return (\n <div className=\"rsp-root rsp-workbook\" {...schemeRoot}>\n {/* Optional Toolbar */}\n {toolbar}\n\n {/* Workbook Header */}\n <div className=\"rsp-workbook-header\">\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n flex: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }}\n >\n <span className=\"rsp-workbook-name\" data-testid={`workbook-name-${workbookName}`}>\n {workbookName}\n </span>\n </div>\n <span className=\"rsp-zoom-value\" data-testid={`sheet-count-${workbookName}`}>\n Sheets: {sheetNames.length}\n </span>\n </div>\n\n {/* Spreadsheet Content */}\n <div style={{ flex: 1, overflow: 'hidden' }}>\n <div\n style={{\n transform: spreadsheetZoom !== 1 ? `scale(${spreadsheetZoom})` : undefined,\n transformOrigin: '0 0',\n width: spreadsheetZoom !== 1 ? `${100 / spreadsheetZoom}%` : '100%',\n height: spreadsheetZoom !== 1 ? `${100 / spreadsheetZoom}%` : '100%'\n }}\n >\n <FormulaSheet\n key={`${workbookName}-${activeSheet}`}\n sheetName={activeSheet}\n workbookName={workbookName}\n engine={engine}\n verboseErrors={verboseErrors}\n selectionManager={selectionManager}\n viewId={viewId}\n {...rest}\n // Pass overlay props for the active sheet\n components={components}\n overlayChildren={activeSheetOverlayChildren}\n selectedOverlayId={activeSheetSelectedOverlayId}\n columnWidths={activeSheetColumnWidths}\n onColumnWidthsChange={handleColumnWidthsChange}\n rowHeights={activeSheetRowHeights}\n onRowHeightsChange={handleRowHeightsChange}\n onOverlaySelect={handleOverlaySelect}\n onOverlayChildrenChange={handleOverlayChildrenChange}\n overlayPlaceholder={overlayPlaceholder}\n clipboardManager={clipboardManager}\n isSelected={isSelected}\n showFormulas={showFormulas}\n />\n </div>\n </div>\n\n {/* Sheet Tabs at Bottom (Excel-style) */}\n <div className=\"rsp-sheet-tabs\">\n <div className=\"rsp-sheet-tabs-scroll\">\n <div style={{ display: 'flex', alignItems: 'center', gap: 4 }}>\n {sheetNames.map((sheetName) => {\n const isRenaming = renamingSheet === sheetName;\n const isActive = activeSheet === sheetName;\n\n return (\n <div key={sheetName}>\n {isRenaming ? (\n <div style={{ display: 'flex', alignItems: 'center', gap: 4 }}>\n <input\n className=\"rsp-sheet-tab-input\"\n type=\"text\"\n value={newSheetName}\n onChange={(e) => setNewSheetName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n renameSheet(sheetName, newSheetName);\n } else if (e.key === 'Escape') {\n cancelRenaming();\n }\n }}\n onBlur={() => {\n if (newSheetName.trim() && newSheetName.trim() !== sheetName) {\n renameSheet(sheetName, newSheetName);\n } else {\n cancelRenaming();\n }\n }}\n autoFocus\n data-testid={`rename-sheet-input-${sheetName}`}\n />\n </div>\n ) : (\n <div\n className={cn('rsp-sheet-tab', {\n 'rsp-sheet-tab-active': isActive\n })}\n onClick={() => handleActiveSheetChange(sheetName)}\n onDoubleClick={() => startRenaming(sheetName)}\n data-testid={`sheet-tab-${sheetName}`}\n >\n <span>{sheetName}</span>\n\n {/* Sheet actions (visible on hover, inside tab) */}\n <div className=\"sheet-tab-actions\">\n <button\n type=\"button\"\n className=\"rsp-icon-button\"\n onClick={(e) => {\n e.stopPropagation();\n startRenaming(sheetName);\n }}\n title=\"Rename Sheet\"\n data-testid={`rename-sheet-${sheetName}`}\n >\n <Edit2Icon style={{ width: 12, height: 12 }} />\n </button>\n {sheetNames.length > 1 && (\n <button\n type=\"button\"\n className=\"rsp-icon-button rsp-icon-button-delete\"\n onClick={(e) => {\n e.stopPropagation();\n if (confirm(`Are you sure you want to delete sheet \"${sheetName}\"?`)) {\n deleteSheet(sheetName);\n }\n }}\n title=\"Delete Sheet\"\n data-testid={`delete-sheet-${sheetName}`}\n >\n <Trash2Icon style={{ width: 12, height: 12 }} />\n </button>\n )}\n </div>\n </div>\n )}\n </div>\n );\n })}\n </div>\n\n {/* Add Sheet Button (Excel-style, to the right) */}\n <button\n type=\"button\"\n className=\"rsp-add-sheet-button\"\n onClick={addSheet}\n title=\"Add Sheet\"\n data-testid={`add-sheet-${workbookName}`}\n >\n <PlusIcon style={{ width: 12, height: 12 }} />\n </button>\n </div>\n\n {/* Spreadsheet Zoom Controls - pinned to the right */}\n <div className=\"rsp-zoom-controls\">\n <button\n type=\"button\"\n className=\"rsp-icon-button\"\n onClick={() => setSpreadsheetZoom(Math.max(0.5, spreadsheetZoom - 0.1))}\n disabled={spreadsheetZoom <= 0.5}\n title=\"Zoom Out\"\n style={{ opacity: spreadsheetZoom <= 0.5 ? 0.5 : 1 }}\n >\n <MinusIcon style={{ width: 12, height: 12 }} />\n </button>\n <span className=\"rsp-zoom-value\">{Math.round(spreadsheetZoom * 100)}%</span>\n <button\n type=\"button\"\n className=\"rsp-icon-button\"\n onClick={() => setSpreadsheetZoom(Math.min(2, spreadsheetZoom + 0.1))}\n disabled={spreadsheetZoom >= 2}\n title=\"Zoom In\"\n style={{ opacity: spreadsheetZoom >= 2 ? 0.5 : 1 }}\n >\n <PlusIcon style={{ width: 12, height: 12 }} />\n </button>\n </div>\n </div>\n </div>\n );\n}\n\n// Export WorkbookSelectionManager\nexport { WorkbookSelectionManager } from './workbook-selection-manager';\n",
|
|
18
18
|
"import { useState } from \"react\";\nimport { useColorScheme, type ColorScheme } from \"./use-color-scheme\";\n\n/**\n * Props for a `.rsp-root` element so its light/dark tokens match the inherited\n * `color-scheme`.\n *\n * A stylesheet cannot branch on an *ancestor's* `color-scheme`, and the\n * `light-dark()` function is rewritten by some bundlers into switch variables\n * that only exist next to a `color-scheme` declaration (see `styles.css`).\n * Resolving the scheme from the mounted element and reflecting it as\n * `data-rsp-scheme` keeps the tokens correct without the component declaring\n * `color-scheme` itself, which would override a consumer's pin.\n */\nexport function useSchemeRoot(): {\n ref: (element: HTMLElement | null) => void;\n \"data-rsp-scheme\": ColorScheme;\n} {\n const [element, setElement] = useState<HTMLElement | null>(null);\n const scheme = useColorScheme(element);\n\n return { ref: setElement, \"data-rsp-scheme\": scheme };\n}\n",
|
|
19
19
|
"import type { CellStyle } from \"@ricsam/formula-engine\";\n\nexport type BorderSides = NonNullable<CellStyle[\"borderSides\"]>;\n\nexport type NormalizedBorderSides = {\n top: boolean;\n right: boolean;\n bottom: boolean;\n left: boolean;\n};\n\n/**\n * Normalizes a partial border-sides record into a fully specified one.\n *\n * When `borderSides` is omitted entirely the style is interpreted as \"all\n * sides\", which matches how a plain `borderColor` is expected to behave.\n *\n * @param sides Partial per-side flags from a `CellStyle`.\n * @param defaultAllWhenUnset Value used for every side when `sides` is undefined.\n */\nexport function normalizeBorderSides(\n sides: BorderSides | undefined,\n defaultAllWhenUnset = false,\n): NormalizedBorderSides {\n if (!sides) {\n return {\n top: defaultAllWhenUnset,\n right: defaultAllWhenUnset,\n bottom: defaultAllWhenUnset,\n left: defaultAllWhenUnset,\n };\n }\n\n return {\n top: Boolean(sides.top),\n right: Boolean(sides.right),\n bottom: Boolean(sides.bottom),\n left: Boolean(sides.left),\n };\n}\n\n/** True when at least one side should be drawn. */\nexport function hasAnyBorderSide(sides: NormalizedBorderSides): boolean {\n return sides.top || sides.right || sides.bottom || sides.left;\n}\n",
|
|
20
20
|
"import type { CellDataType, SerializedCellValue } from \"@ricsam/formula-engine\";\n\n/**\n * Cell input coercion and display helpers.\n *\n * The grid always hands back raw strings from the editor. These helpers turn\n * that string into the value the engine should store, honouring an explicit\n * per-cell data type when one has been set.\n */\n\nconst TRUE_LITERALS = new Set([\"true\", \"yes\"]);\nconst FALSE_LITERALS = new Set([\"false\", \"no\"]);\n\n/** Parses a numeric string, accepting `,` as a decimal separator. */\nconst parseNumeric = (value: string): number | undefined => {\n const trimmed = value.trim();\n if (trimmed === \"\") return undefined;\n\n // Accept European-style decimals, but only when there is a single comma and\n // no dot, so thousands separators are not silently mangled.\n const normalized =\n trimmed.includes(\",\") && !trimmed.includes(\".\") && trimmed.split(\",\").length === 2\n ? trimmed.replace(\",\", \".\")\n : trimmed;\n\n const parsed = Number(normalized);\n return Number.isFinite(parsed) ? parsed : undefined;\n};\n\n/**\n * Converts raw editor input into the value to store for a cell.\n *\n * - Formulas (leading `=`) are always preserved verbatim.\n * - `\"general\"` infers number/boolean, otherwise keeps the string.\n * - An explicit data type forces that interpretation, falling back to the raw\n * string when the input cannot be represented.\n * - An empty string clears the cell (`undefined`).\n */\nexport function coerceCellInput(\n value: string,\n dataType: CellDataType = \"general\",\n): SerializedCellValue {\n if (value === \"\") return undefined;\n\n // Never reinterpret a formula; the engine owns its parsing.\n if (value.startsWith(\"=\")) return value;\n\n switch (dataType) {\n case \"text\":\n return value;\n\n case \"number\": {\n const parsed = parseNumeric(value);\n return parsed === undefined ? value : parsed;\n }\n\n case \"boolean\": {\n const lower = value.trim().toLowerCase();\n if (TRUE_LITERALS.has(lower)) return true;\n if (FALSE_LITERALS.has(lower)) return false;\n return value;\n }\n\n case \"general\":\n default: {\n const lower = value.trim().toLowerCase();\n if (TRUE_LITERALS.has(lower)) return true;\n if (FALSE_LITERALS.has(lower)) return false;\n\n const parsed = parseNumeric(value);\n // Only treat it as a number when the text round-trips, so values such as\n // \"1abc\" or a leading-zero code like \"007\" stay text.\n if (parsed !== undefined && String(parsed) === value.trim()) {\n return parsed;\n }\n\n return value;\n }\n }\n}\n\n/** Formats an evaluated value for display, with thousands separators. */\nexport function getCellDisplayText(value: SerializedCellValue): string {\n if (value === undefined) return \"\";\n if (typeof value === \"boolean\") return value ? \"TRUE\" : \"FALSE\";\n if (typeof value === \"number\") {\n return value.toLocaleString(\"en-US\", {\n minimumFractionDigits: 0,\n maximumFractionDigits: 10,\n });\n }\n return String(value);\n}\n\n/** Serializes a value for the clipboard (unformatted, round-trippable). */\nexport function getCellDisplayValue(value: SerializedCellValue): string {\n if (value === undefined) return \"\";\n if (typeof value === \"boolean\") return value ? \"TRUE\" : \"FALSE\";\n return String(value);\n}\n",
|
|
21
21
|
"/**\n * Cell edit error reporting.\n *\n * The original component reported rejected edits through an app-specific\n * snackbar. A reusable library must not own UI for that, so errors are routed\n * through a subscribable sink instead: by default they are logged, and a host\n * app can subscribe to render them however it likes.\n */\n\nexport type CellEditErrorListener = (error: unknown) => void;\n\nconst listeners = new Set<CellEditErrorListener>();\n\n/**\n * Subscribes to cell edit errors (e.g. the engine rejecting a formula).\n *\n * @returns An unsubscribe function.\n */\nexport function onCellEditError(listener: CellEditErrorListener): () => void {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n}\n\n/**\n * Default `onCellDataChangeError` handler.\n *\n * Notifies subscribers; if there are none it falls back to `console.error` so\n * failures are never silently swallowed during development.\n */\nexport function queueCellEditError(error: unknown): void {\n if (listeners.size === 0) {\n console.error(\"Cell edit rejected:\", error);\n return;\n }\n\n listeners.forEach((listener) => {\n try {\n listener(error);\n } catch (listenerError) {\n console.error(\"Cell edit error listener threw:\", listenerError);\n }\n });\n}\n",
|
|
22
|
-
"import type { RangeAddress, SpreadsheetRange, SpreadsheetRangeEnd } from '@ricsam/formula-engine';\nimport { indexToColumn } from '@ricsam/formula-engine';\nimport type {\n SelectionManager,\n SMArea,\n ViewportAlignment\n} from '@ricsam/selection-manager';\n\nexport interface WorkbookSelectionContext {\n workbookName: string;\n sheetName: string;\n /**\n * Stable identity for this rendered workbook view. Supply this when the same\n * workbook/sheet can be mounted more than once, such as in split-screen panes.\n */\n viewId?: string;\n}\n\nexport interface WorkbookRangeFocusOptions {\n /** How the target range should be positioned in the spreadsheet viewport. */\n align?: ViewportAlignment;\n /** Target one mounted copy when the workbook/sheet is rendered more than once. */\n viewId?: string;\n}\n\ninterface PendingRangeFocus {\n address: RangeAddress;\n options: WorkbookRangeFocusOptions;\n}\n\nexport class WorkbookSelectionManager {\n private managers = new Map<SelectionManager, WorkbookSelectionContext>();\n private lastFocusedManager: {\n sm: SelectionManager;\n context: WorkbookSelectionContext;\n } | null = null;\n private lastSelections: RangeAddress[] = [];\n private selectionsByView = new Map<string, SMArea[]>();\n private listeners = new Set<(selections: RangeAddress[]) => void>();\n private cleanupFunctions = new Map<SelectionManager, () => void>();\n private pendingRangeFocus: PendingRangeFocus | null = null;\n private applyingRangeFocus = new Set<SelectionManager>();\n\n private getViewKey(context: WorkbookSelectionContext): string {\n return JSON.stringify([context.workbookName, context.sheetName, context.viewId ?? null]);\n }\n\n private cloneSmArea(area: SMArea): SMArea {\n return {\n start: { row: area.start.row, col: area.start.col },\n end: {\n row:\n area.end.row.type === 'infinity'\n ? { type: 'infinity' }\n : { type: 'number', value: area.end.row.value },\n col:\n area.end.col.type === 'infinity'\n ? { type: 'infinity' }\n : { type: 'number', value: area.end.col.value }\n }\n };\n }\n\n private smAreaToSpreadsheetRange(area: SMArea): SpreadsheetRange {\n const rowEnd: SpreadsheetRangeEnd =\n area.end.row.type === 'infinity'\n ? { type: 'infinity', sign: 'positive' }\n : { type: 'number', value: area.end.row.value };\n\n const colEnd: SpreadsheetRangeEnd =\n area.end.col.type === 'infinity'\n ? { type: 'infinity', sign: 'positive' }\n : { type: 'number', value: area.end.col.value };\n\n return {\n start: {\n col: area.start.col,\n row: area.start.row\n },\n end: {\n row: rowEnd,\n col: colEnd\n }\n };\n }\n\n private spreadsheetRangeToSmArea(range: SpreadsheetRange): SMArea {\n return {\n start: { row: range.start.row, col: range.start.col },\n end: {\n row:\n range.end.row.type === 'infinity'\n ? { type: 'infinity' }\n : { type: 'number', value: range.end.row.value },\n col:\n range.end.col.type === 'infinity'\n ? { type: 'infinity' }\n : { type: 'number', value: range.end.col.value }\n }\n };\n }\n\n private cloneRangeAddress(address: RangeAddress): RangeAddress {\n return {\n workbookName: address.workbookName,\n sheetName: address.sheetName,\n range: this.smAreaToSpreadsheetRange(this.spreadsheetRangeToSmArea(address.range))\n };\n }\n\n private areasToRangeAddresses(\n areas: readonly SMArea[],\n context: WorkbookSelectionContext\n ): RangeAddress[] {\n return areas.map((area) => ({\n workbookName: context.workbookName,\n sheetName: context.sheetName,\n range: this.smAreaToSpreadsheetRange(area)\n }));\n }\n\n private rememberSelections(\n manager: SelectionManager,\n context: WorkbookSelectionContext,\n areas: readonly SMArea[] = manager.getState().selections\n ): void {\n const cachedAreas = areas.map((area) => this.cloneSmArea(area));\n this.selectionsByView.set(this.getViewKey(context), cachedAreas);\n this.lastFocusedManager = { sm: manager, context };\n this.lastSelections = this.areasToRangeAddresses(cachedAreas, context);\n }\n\n private matchesContext(\n address: RangeAddress,\n context: WorkbookSelectionContext,\n viewId?: string\n ): boolean {\n return (\n address.workbookName === context.workbookName &&\n address.sheetName === context.sheetName &&\n (viewId === undefined || context.viewId === viewId)\n );\n }\n\n private applyRangeFocus(\n manager: SelectionManager,\n context: WorkbookSelectionContext,\n request: PendingRangeFocus\n ): void {\n const selection = this.spreadsheetRangeToSmArea(request.address.range);\n\n // SelectionManager notifies render subscribers for replaceSelections even\n // when this grid already has focus. Suppress only this coordinator's own\n // observers so one programmatic action emits one workbook-level update.\n this.applyingRangeFocus.add(manager);\n try {\n manager.replaceSelections([selection]);\n manager.focus();\n } finally {\n this.applyingRangeFocus.delete(manager);\n }\n manager.revealRange(selection, request.options);\n this.rememberSelections(manager, context, [selection]);\n this.emitChange();\n }\n\n private applyPendingRangeFocusOnMount(\n manager: SelectionManager,\n context: WorkbookSelectionContext\n ): void {\n const pending = this.pendingRangeFocus;\n if (!pending || !this.matchesContext(pending.address, context, pending.options.viewId)) return;\n\n // Spreadsheet registers its consumer of SelectionManager viewport requests\n // in a later effect than FormulaSheet registers with this manager. Defer\n // until that listener exists so a queued reveal cannot be lost on mount.\n queueMicrotask(() => {\n if (this.pendingRangeFocus !== pending) return;\n const mountedContext = this.managers.get(manager);\n if (\n !mountedContext ||\n !this.matchesContext(pending.address, mountedContext, pending.options.viewId)\n ) {\n return;\n }\n\n this.pendingRangeFocus = null;\n this.applyRangeFocus(manager, mountedContext, pending);\n });\n }\n\n /**\n * Register a SelectionManager with its workbook/sheet context\n * Returns a cleanup function to unregister\n */\n add(manager: SelectionManager, context: WorkbookSelectionContext): () => void {\n const registeredContext = { ...context };\n this.managers.set(manager, registeredContext);\n\n const cachedSelections = this.selectionsByView.get(this.getViewKey(registeredContext));\n if (cachedSelections && manager.getState().selections.length === 0) {\n manager.replaceSelections(cachedSelections);\n }\n\n // Listen to focus changes\n const focusCleanup = manager.observeStateChange(\n (state) => state.hasFocus,\n (hasFocus) => {\n if (hasFocus && !this.applyingRangeFocus.has(manager)) {\n this.rememberSelections(manager, registeredContext);\n this.emitChange();\n }\n }\n );\n\n // Listen to selection changes\n const selectionCleanup = manager.observeStateChange(\n (state) => JSON.stringify(state.selections),\n (selectionsJson) => {\n if (this.applyingRangeFocus.has(manager)) return;\n const selections = JSON.parse(selectionsJson) as SMArea[];\n if (selections && selections.length > 0) {\n this.rememberSelections(manager, registeredContext, selections);\n this.emitChange();\n }\n }\n );\n\n // Store combined cleanup function\n const cleanup = () => {\n focusCleanup();\n selectionCleanup();\n this.managers.delete(manager);\n this.cleanupFunctions.delete(manager);\n if (this.lastFocusedManager?.sm === manager) {\n // Keep the logical selection while a FormulaWorkbook replaces the grid\n // for a sheet switch. A later mount of this view restores its own cache.\n this.rememberSelections(manager, registeredContext);\n this.lastFocusedManager = null;\n }\n };\n\n this.cleanupFunctions.set(manager, cleanup);\n this.applyPendingRangeFocusOnMount(manager, registeredContext);\n return cleanup;\n }\n\n /**\n * Get the SelectionManager that was last focused or had selection activity\n */\n getLastFocusedSelectionManager(): {\n sm: SelectionManager;\n context: WorkbookSelectionContext;\n } | null {\n return this.lastFocusedManager;\n }\n\n /**\n * Get all current selections from the last focused manager.\n */\n getSelections(): RangeAddress[] {\n return this.lastSelections.map((selection) => this.cloneRangeAddress(selection));\n }\n\n /**\n * Get the last/primary selection from the last focused manager\n */\n getLastSelection(): RangeAddress | null {\n const selections = this.getSelections();\n return selections[selections.length - 1] ?? null;\n }\n\n /**\n * Subscribe to selection changes\n * Returns cleanup function\n */\n onSelectionChange(callback: (selections: RangeAddress[]) => void): () => void {\n this.listeners.add(callback);\n return () => {\n this.listeners.delete(callback);\n };\n }\n\n /**\n * Format the last selection as a range string\n * e.g., \"[Workbook]Sheet!A1:C10\" or \"[Workbook]'My Sheet'!A1:INFINITY\"\n */\n formatLastSelectionAsRange(): string {\n const lastSelection = this.getLastSelection();\n if (!lastSelection) {\n return '';\n }\n\n const { workbookName, sheetName, range } = lastSelection;\n\n // Convert start position to Excel notation\n const startCol = indexToColumn(range.start.col);\n const startRow = range.start.row + 1; // Convert to 1-based\n\n // Convert end position to Excel notation\n let endCol: string;\n let endRow: string;\n\n // Handle end column\n if (range.end.col.type === 'infinity') {\n endCol = '∞';\n } else {\n endCol = indexToColumn(range.end.col.value);\n }\n\n // Handle end row\n if (range.end.row.type === 'infinity') {\n endRow = '∞';\n } else {\n endRow = String(range.end.row.value + 1); // Convert to 1-based\n }\n\n // Build range string based on what's infinite\n let rangeStr: string;\n const isColInfinity = range.end.col.type === 'infinity';\n const isRowInfinity = range.end.row.type === 'infinity';\n\n if (isColInfinity && isRowInfinity) {\n // Both infinite: A5:INFINITY\n rangeStr = `${startCol}${startRow}:INFINITY`;\n } else if (isColInfinity) {\n // Column infinite: A5:10 (row-bounded)\n rangeStr = `${startCol}${startRow}:${endRow}`;\n } else if (isRowInfinity) {\n // Row infinite: A5:C (col-bounded)\n rangeStr = `${startCol}${startRow}:${endCol}`;\n } else {\n // Closed rectangle: A5:C10\n rangeStr = `${startCol}${startRow}:${endCol}${endRow}`;\n }\n\n // Quote sheet name if it contains spaces or special characters\n const needsQuotes = /[ '!]/.test(sheetName);\n const sheetRef = needsQuotes ? `'${sheetName.replace(/'/g, \"''\")}'` : sheetName;\n\n // Return formatted string: [Workbook]Sheet!Range\n return `[${workbookName}]${sheetRef}!${rangeStr}`;\n }\n\n /**\n * Blur all selection managers (remove focus from all)\n * This should be called when the component loses focus\n */\n blur(): void {\n this.managers.forEach((_context, manager) => {\n manager.clearSelections();\n manager.blur();\n });\n // Clear the last focused manager and emit change to notify listeners\n this.selectionsByView.clear();\n this.lastFocusedManager = null;\n this.lastSelections = [];\n this.emitChange();\n }\n\n /**\n * Focus the selection manager for a specific workbook (first sheet found).\n * This is useful when programmatically switching focus, e.g., after maximizing a window.\n */\n focusWorkbook(workbookName: string, viewId?: string): void {\n for (const [manager, context] of this.managers) {\n if (\n context.workbookName === workbookName &&\n (viewId === undefined || context.viewId === viewId)\n ) {\n manager.focus();\n this.rememberSelections(manager, context);\n this.emitChange();\n return;\n }\n }\n }\n\n /**\n * Focus the selection manager for a specific sheet without changing the cell selection.\n */\n focusSheet(workbookName: string, sheetName: string, viewId?: string): boolean {\n for (const [manager, context] of this.managers) {\n if (\n context.workbookName === workbookName &&\n context.sheetName === sheetName &&\n (viewId === undefined || context.viewId === viewId)\n ) {\n manager.focus();\n this.rememberSelections(manager, context);\n this.emitChange();\n return true;\n }\n }\n return false;\n }\n\n /**\n * Focus a specific cell in a specific workbook and sheet.\n * Finds the matching SelectionManager, sets its selection to the given cell,\n * and focuses it.\n *\n * @returns true when focused immediately, false when queued until the target\n * sheet mounts.\n */\n focusCell(\n workbookName: string,\n sheetName: string,\n row: number,\n col: number,\n options: WorkbookRangeFocusOptions = {}\n ): boolean {\n return this.focusRange(\n {\n workbookName,\n sheetName,\n range: {\n start: { row, col },\n end: {\n row: { type: 'number', value: row },\n col: { type: 'number', value: col }\n }\n }\n },\n options\n );\n }\n\n /**\n * Focus, select and reveal a range in its workbook/sheet.\n *\n * If the sheet is not mounted yet, the latest request is queued and applied\n * when that sheet registers. This lets controlled workbooks switch their\n * active sheet before the target grid exists.\n *\n * @returns true when applied immediately, false when queued for a future mount.\n */\n focusRange(address: RangeAddress, options: WorkbookRangeFocusOptions = {}): boolean {\n const request: PendingRangeFocus = {\n address: this.cloneRangeAddress(address),\n options: { ...options }\n };\n\n for (const [manager, context] of this.managers) {\n if (!this.matchesContext(request.address, context, request.options.viewId)) continue;\n this.pendingRangeFocus = null;\n this.applyRangeFocus(manager, context, request);\n return true;\n }\n\n this.pendingRangeFocus = request;\n return false;\n }\n\n /** Cancel the latest queued range focus before its target view mounts. */\n cancelPendingFocusRange(): void {\n this.pendingRangeFocus = null;\n }\n\n /**\n * Notify all listeners of selection change\n */\n private emitChange(): void {\n const currentSelection = this.getLastSelection();\n const selections = currentSelection ? [currentSelection] : [];\n this.listeners.forEach((listener) => {\n listener(selections);\n });\n }\n}\n",
|
|
22
|
+
"import type { RangeAddress, SpreadsheetRange, SpreadsheetRangeEnd } from '@ricsam/formula-engine';\nimport { indexToColumn } from '@ricsam/formula-engine';\nimport type {\n SelectionManager,\n SMArea,\n ViewportAlignment\n} from '@ricsam/selection-manager';\n\nexport interface WorkbookSelectionContext {\n workbookName: string;\n sheetName: string;\n /**\n * Stable identity for this rendered workbook view. Supply this when the same\n * workbook/sheet can be mounted more than once, such as in split-screen panes.\n */\n viewId?: string;\n}\n\nexport interface WorkbookRangeFocusOptions {\n /** How the target range should be positioned in the spreadsheet viewport. */\n align?: ViewportAlignment;\n /** Target one mounted copy when the workbook/sheet is rendered more than once. */\n viewId?: string;\n}\n\ninterface PendingRangeFocus {\n address: RangeAddress;\n options: WorkbookRangeFocusOptions;\n}\n\nexport class WorkbookSelectionManager {\n private managers = new Map<SelectionManager, WorkbookSelectionContext>();\n private lastFocusedManager: {\n sm: SelectionManager;\n context: WorkbookSelectionContext;\n } | null = null;\n private lastSelections: RangeAddress[] = [];\n private selectionsByView = new Map<string, SMArea[]>();\n private listeners = new Set<(selections: RangeAddress[]) => void>();\n private cleanupFunctions = new Map<SelectionManager, () => void>();\n private pendingRangeFocus: PendingRangeFocus | null = null;\n private applyingRangeFocus = new Set<SelectionManager>();\n\n private getViewKey(context: WorkbookSelectionContext): string {\n return JSON.stringify([context.workbookName, context.sheetName, context.viewId ?? null]);\n }\n\n private cloneSmArea(area: SMArea): SMArea {\n return {\n start: { row: area.start.row, col: area.start.col },\n end: {\n row:\n area.end.row.type === 'infinity'\n ? { type: 'infinity' }\n : { type: 'number', value: area.end.row.value },\n col:\n area.end.col.type === 'infinity'\n ? { type: 'infinity' }\n : { type: 'number', value: area.end.col.value }\n }\n };\n }\n\n private smAreaToSpreadsheetRange(area: SMArea): SpreadsheetRange {\n const rowEnd: SpreadsheetRangeEnd =\n area.end.row.type === 'infinity'\n ? { type: 'infinity', sign: 'positive' }\n : { type: 'number', value: area.end.row.value };\n\n const colEnd: SpreadsheetRangeEnd =\n area.end.col.type === 'infinity'\n ? { type: 'infinity', sign: 'positive' }\n : { type: 'number', value: area.end.col.value };\n\n return {\n start: {\n col: area.start.col,\n row: area.start.row\n },\n end: {\n row: rowEnd,\n col: colEnd\n }\n };\n }\n\n private spreadsheetRangeToSmArea(range: SpreadsheetRange): SMArea {\n return {\n start: { row: range.start.row, col: range.start.col },\n end: {\n row:\n range.end.row.type === 'infinity'\n ? { type: 'infinity' }\n : { type: 'number', value: range.end.row.value },\n col:\n range.end.col.type === 'infinity'\n ? { type: 'infinity' }\n : { type: 'number', value: range.end.col.value }\n }\n };\n }\n\n private cloneRangeAddress(address: RangeAddress): RangeAddress {\n return {\n workbookName: address.workbookName,\n sheetName: address.sheetName,\n range: this.smAreaToSpreadsheetRange(this.spreadsheetRangeToSmArea(address.range))\n };\n }\n\n private areasToRangeAddresses(\n areas: readonly SMArea[],\n context: WorkbookSelectionContext\n ): RangeAddress[] {\n return areas.map((area) => ({\n workbookName: context.workbookName,\n sheetName: context.sheetName,\n range: this.smAreaToSpreadsheetRange(area)\n }));\n }\n\n private rememberSelections(\n manager: SelectionManager,\n context: WorkbookSelectionContext,\n areas: readonly SMArea[] = manager.getState().selections\n ): void {\n const cachedAreas = areas.map((area) => this.cloneSmArea(area));\n this.selectionsByView.set(this.getViewKey(context), cachedAreas);\n this.lastFocusedManager = { sm: manager, context };\n this.lastSelections = this.areasToRangeAddresses(cachedAreas, context);\n }\n\n private matchesContext(\n address: RangeAddress,\n context: WorkbookSelectionContext,\n viewId?: string\n ): boolean {\n return (\n address.workbookName === context.workbookName &&\n address.sheetName === context.sheetName &&\n (viewId === undefined || context.viewId === viewId)\n );\n }\n\n private applyRangeFocus(\n manager: SelectionManager,\n context: WorkbookSelectionContext,\n request: PendingRangeFocus\n ): void {\n const selection = this.spreadsheetRangeToSmArea(request.address.range);\n\n // SelectionManager notifies render subscribers for replaceSelections even\n // when this grid already has focus. Suppress only this coordinator's own\n // observers so one programmatic action emits one workbook-level update.\n this.applyingRangeFocus.add(manager);\n try {\n manager.replaceSelections([selection]);\n manager.focus();\n } finally {\n this.applyingRangeFocus.delete(manager);\n }\n manager.revealRange(selection, request.options);\n this.rememberSelections(manager, context, [selection]);\n this.emitChange();\n }\n\n private applyPendingRangeFocusOnMount(\n manager: SelectionManager,\n context: WorkbookSelectionContext\n ): void {\n const pending = this.pendingRangeFocus;\n if (!pending || !this.matchesContext(pending.address, context, pending.options.viewId)) return;\n\n // Spreadsheet registers its consumer of SelectionManager viewport requests\n // in a later effect than FormulaSheet registers with this manager. Defer\n // until that listener exists so a queued reveal cannot be lost on mount.\n queueMicrotask(() => {\n if (this.pendingRangeFocus !== pending) return;\n const mountedContext = this.managers.get(manager);\n if (\n !mountedContext ||\n !this.matchesContext(pending.address, mountedContext, pending.options.viewId)\n ) {\n return;\n }\n\n this.pendingRangeFocus = null;\n this.applyRangeFocus(manager, mountedContext, pending);\n });\n }\n\n /**\n * Register a SelectionManager with its workbook/sheet context\n * Returns a cleanup function to unregister\n */\n add(manager: SelectionManager, context: WorkbookSelectionContext): () => void {\n const registeredContext = { ...context };\n this.managers.set(manager, registeredContext);\n\n const cachedSelections = this.selectionsByView.get(this.getViewKey(registeredContext));\n if (cachedSelections && manager.getState().selections.length === 0) {\n manager.replaceSelections(cachedSelections);\n }\n\n // observeStateChange invokes its first callback on any subsequent update,\n // even if the selected value is unchanged. Seed baselines so unrelated\n // window mouseup/blur events cannot activate a view's saved selection.\n let previousFocus = manager.getState().hasFocus;\n let previousSelections = JSON.stringify(manager.getState().selections);\n const focusCleanup = manager.observeStateChange(\n (state) => state.hasFocus,\n (hasFocus) => {\n if (hasFocus === previousFocus) return;\n previousFocus = hasFocus;\n if (hasFocus && !this.applyingRangeFocus.has(manager)) {\n this.rememberSelections(manager, registeredContext);\n this.emitChange();\n }\n }\n );\n\n // Listen to selection changes\n const selectionCleanup = manager.observeStateChange(\n (state) => JSON.stringify(state.selections),\n (selectionsJson) => {\n if (selectionsJson === previousSelections) return;\n previousSelections = selectionsJson;\n if (this.applyingRangeFocus.has(manager)) return;\n const selections = JSON.parse(selectionsJson) as SMArea[];\n if (selections && selections.length > 0) {\n this.rememberSelections(manager, registeredContext, selections);\n this.emitChange();\n }\n }\n );\n\n // Store combined cleanup function\n const cleanup = () => {\n focusCleanup();\n selectionCleanup();\n this.managers.delete(manager);\n this.cleanupFunctions.delete(manager);\n if (this.lastFocusedManager?.sm === manager) {\n // Keep the logical selection while a FormulaWorkbook replaces the grid\n // for a sheet switch. A later mount of this view restores its own cache.\n this.rememberSelections(manager, registeredContext);\n this.lastFocusedManager = null;\n }\n };\n\n this.cleanupFunctions.set(manager, cleanup);\n this.applyPendingRangeFocusOnMount(manager, registeredContext);\n return cleanup;\n }\n\n /**\n * Get the SelectionManager that was last focused or had selection activity\n */\n getLastFocusedSelectionManager(): {\n sm: SelectionManager;\n context: WorkbookSelectionContext;\n } | null {\n return this.lastFocusedManager;\n }\n\n /**\n * Get all current selections from the last focused manager.\n */\n getSelections(): RangeAddress[] {\n return this.lastSelections.map((selection) => this.cloneRangeAddress(selection));\n }\n\n /**\n * Get the last/primary selection from the last focused manager\n */\n getLastSelection(): RangeAddress | null {\n const selections = this.getSelections();\n return selections[selections.length - 1] ?? null;\n }\n\n /**\n * Subscribe to selection changes\n * Returns cleanup function\n */\n onSelectionChange(callback: (selections: RangeAddress[]) => void): () => void {\n this.listeners.add(callback);\n return () => {\n this.listeners.delete(callback);\n };\n }\n\n /**\n * Format the last selection as a range string\n * e.g., \"[Workbook]Sheet!A1:C10\" or \"[Workbook]'My Sheet'!A1:INFINITY\"\n */\n formatLastSelectionAsRange(): string {\n const lastSelection = this.getLastSelection();\n if (!lastSelection) {\n return '';\n }\n\n const { workbookName, sheetName, range } = lastSelection;\n\n // Convert start position to Excel notation\n const startCol = indexToColumn(range.start.col);\n const startRow = range.start.row + 1; // Convert to 1-based\n\n // Convert end position to Excel notation\n let endCol: string;\n let endRow: string;\n\n // Handle end column\n if (range.end.col.type === 'infinity') {\n endCol = '∞';\n } else {\n endCol = indexToColumn(range.end.col.value);\n }\n\n // Handle end row\n if (range.end.row.type === 'infinity') {\n endRow = '∞';\n } else {\n endRow = String(range.end.row.value + 1); // Convert to 1-based\n }\n\n // Build range string based on what's infinite\n let rangeStr: string;\n const isColInfinity = range.end.col.type === 'infinity';\n const isRowInfinity = range.end.row.type === 'infinity';\n\n if (isColInfinity && isRowInfinity) {\n // Both infinite: A5:INFINITY\n rangeStr = `${startCol}${startRow}:INFINITY`;\n } else if (isColInfinity) {\n // Column infinite: A5:10 (row-bounded)\n rangeStr = `${startCol}${startRow}:${endRow}`;\n } else if (isRowInfinity) {\n // Row infinite: A5:C (col-bounded)\n rangeStr = `${startCol}${startRow}:${endCol}`;\n } else {\n // Closed rectangle: A5:C10\n rangeStr = `${startCol}${startRow}:${endCol}${endRow}`;\n }\n\n // Quote sheet name if it contains spaces or special characters\n const needsQuotes = /[ '!]/.test(sheetName);\n const sheetRef = needsQuotes ? `'${sheetName.replace(/'/g, \"''\")}'` : sheetName;\n\n // Return formatted string: [Workbook]Sheet!Range\n return `[${workbookName}]${sheetRef}!${rangeStr}`;\n }\n\n /**\n * Blur all selection managers (remove focus from all)\n * This should be called when the component loses focus\n */\n blur(): void {\n this.managers.forEach((_context, manager) => {\n manager.clearSelections();\n manager.blur();\n });\n // Clear the last focused manager and emit change to notify listeners\n this.selectionsByView.clear();\n this.lastFocusedManager = null;\n this.lastSelections = [];\n this.emitChange();\n }\n\n /**\n * Focus the selection manager for a specific workbook (first sheet found).\n * This is useful when programmatically switching focus, e.g., after maximizing a window.\n */\n focusWorkbook(workbookName: string, viewId?: string): void {\n for (const [manager, context] of this.managers) {\n if (\n context.workbookName === workbookName &&\n (viewId === undefined || context.viewId === viewId)\n ) {\n manager.focus();\n this.rememberSelections(manager, context);\n this.emitChange();\n return;\n }\n }\n }\n\n /**\n * Focus the selection manager for a specific sheet without changing the cell selection.\n */\n focusSheet(workbookName: string, sheetName: string, viewId?: string): boolean {\n for (const [manager, context] of this.managers) {\n if (\n context.workbookName === workbookName &&\n context.sheetName === sheetName &&\n (viewId === undefined || context.viewId === viewId)\n ) {\n manager.focus();\n this.rememberSelections(manager, context);\n this.emitChange();\n return true;\n }\n }\n return false;\n }\n\n /**\n * Focus a specific cell in a specific workbook and sheet.\n * Finds the matching SelectionManager, sets its selection to the given cell,\n * and focuses it.\n *\n * @returns true when focused immediately, false when queued until the target\n * sheet mounts.\n */\n focusCell(\n workbookName: string,\n sheetName: string,\n row: number,\n col: number,\n options: WorkbookRangeFocusOptions = {}\n ): boolean {\n return this.focusRange(\n {\n workbookName,\n sheetName,\n range: {\n start: { row, col },\n end: {\n row: { type: 'number', value: row },\n col: { type: 'number', value: col }\n }\n }\n },\n options\n );\n }\n\n /**\n * Focus, select and reveal a range in its workbook/sheet.\n *\n * If the sheet is not mounted yet, the latest request is queued and applied\n * when that sheet registers. This lets controlled workbooks switch their\n * active sheet before the target grid exists.\n *\n * @returns true when applied immediately, false when queued for a future mount.\n */\n focusRange(address: RangeAddress, options: WorkbookRangeFocusOptions = {}): boolean {\n const request: PendingRangeFocus = {\n address: this.cloneRangeAddress(address),\n options: { ...options }\n };\n\n for (const [manager, context] of this.managers) {\n if (!this.matchesContext(request.address, context, request.options.viewId)) continue;\n this.pendingRangeFocus = null;\n this.applyRangeFocus(manager, context, request);\n return true;\n }\n\n this.pendingRangeFocus = request;\n return false;\n }\n\n /** Cancel the latest queued range focus before its target view mounts. */\n cancelPendingFocusRange(): void {\n this.pendingRangeFocus = null;\n }\n\n /**\n * Notify all listeners of selection change\n */\n private emitChange(): void {\n const currentSelection = this.getLastSelection();\n const selections = currentSelection ? [currentSelection] : [];\n this.listeners.forEach((listener) => {\n listener(selections);\n });\n }\n}\n",
|
|
23
23
|
"export const ZOOM_FACTOR = 0.05; // Normal zoom speed\nexport const CONTROLLED_ZOOM_FACTOR = 0.01; // Slower zoom when holding opt/alt\n\nexport const DEFAULT_ZOOM = 1;\nexport const MIN_ZOOM = 0.5;\nexport const MAX_ZOOM = 3;\n",
|
|
24
24
|
"import { useEffect } from 'react';\n\nexport const useClickAway = (ref: HTMLElement | null, callback: (away: boolean) => void) => {\n useEffect(() => {\n const handleClickAway = (event: MouseEvent) => {\n if (ref) {\n const away = !ref.contains(event.target as Node);\n callback(away);\n }\n };\n\n document.addEventListener('mousedown', handleClickAway);\n return () => {\n document.removeEventListener('mousedown', handleClickAway);\n };\n }, [ref, callback]);\n};\n"
|
|
25
25
|
],
|
|
26
|
-
"mappings": "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",
|
|
27
|
-
"debugId": "
|
|
26
|
+
"mappings": "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",
|
|
27
|
+
"debugId": "07CD4F6A4866444B64756E2164756E21",
|
|
28
28
|
"names": []
|
|
29
29
|
}
|