## dev-31.0.14 Programable File Payload API

Single File Policy v1.3 alignment:

- `EditorControl.openFile(payload, context)` consumes `HostFilePayload/v1` acquired by Host / WorkbenchControl / OneEditor.
- `EditorControl.saveFile(payload, context)`, `saveAsFile(payload, context)` and `exportFile(payload, context)` generate `HostSavePayload/v1` and place the generated Blob in `payload.data`.
- Workbench File menu commands still call Host callbacks (`OpenFile` / `SaveFile`) for picker, destination and storage writing, then delegate parsing/data generation to the EditorControl API.
- Callback direction is now explicitly separated from EditorControl programmatic API direction.

## dev-31.0.13 UspdxSecurityAutosaveFix

- Fixed `.uspdx` validation so JSZip directory entries such as `styles/`, `shared/` and `sheets/` are allowed while file entries remain strictly allow-listed.
- Added `shared/scripts.json` to the native package allow-list because UnifiedSpread writes browser-safe script metadata there.
- Changed autosave to skip oversized workbook states before writing to localStorage and to handle quota errors without repeated noisy failures.

## dev-31.0.13 PackageCssLoadingContract

- Added `styles.required`, `styles.themes`, `styles.hostOptional`, and `styleScope` to `PACKAGE_MANIFEST.json`.
- Split required CSS for UnifiedSpread into base/grid/tabs/formula/panes/context-menu files.
- Scoped runtime package CSS under `.uspread` and added package-specific floating overlay class usage.
- Updated Demo pages to load package CSS from manifest before Control mount.

## dev-31.0.11 CssFilenameStandardization

- Renamed public runtime CSS theme files from generic theme CSS filename to `unified_spread.css`.
- Updated Demo and manifest references.
- Added manifest `themeStyles` entries for Host-side CSS discovery.

## dev-31.0.10 PolicyV19UnifiedControlLowerSnakeCase

- Added UnifiedControl as required peer package metadata.
- Updated Demo RequireJS aliases for UnifiedControl CDN usage.
- Changed the public spreadsheet control to extend UnifiedControl.Control.
- Renamed scripts/ AMD module filenames and module paths to lower_snake_case.js.

## dev-31.0.9 BalancedMenuGrouping

- Reduced the over-grouped menu structure from dev-31.0.8.
- File/Edit/Tools/Help now use direct command rows and separators for common operations.
- Format keeps Google Sheets-style grouped submenus; Data and Development keep only naturally grouped submenus.

## dev-31.0.8 GroupedMenuSubmenus

- Reorganized each top-level menu into grouped submenus.
- Grouping was aligned with Google Sheets style menu structure where practical, especially in Format and Data.
- Kept the dedicated Development menu and temporary internal Help items.

## dev-31.0.7 DevMenuReorg

- Added a top-level **Development** menu for end-user development functions.
- Moved scripting, VBA, compatibility, Beyond Excel extensions and add-on commands from **Tools** to **Development**.
- Kept **Tools** focused on spreadsheet operations such as recalculation, comments, protection and change history.
- Moved temporary internal items such as **Release Readiness** and **Developer Console** under **Help**.

## dev-31.0.4 XlsxDrawingStyleImportFix

- Imported XLSX drawing image objects from OOXML relationships.
- Expanded drawing-only sheets so images/background-like content is visible.
- Improved date display formatting during XLSX import.


## dev-31.0.4 XlsxDrawingStyleImportFix
- Added a best-effort OOXML style import bridge so arbitrary XLSX files keep common font/fill/border/alignment/number format metadata even when SheetJS CE does not expose cell styles.
- Reworked the filter popup to prioritize the candidate value list, with compact Quick actions and collapsible condition filtering.
- Fixed top menu positioning by preventing the body-level floating UI rule from forcing menu panels to fixed coordinates.
- Added explicit menu-close signaling from grid cell/header interactions so dropdowns do not remain open after normal sheet clicks.


## dev-31.0.2 TableFilterPerformanceFix

- Improved XLSX imported table/list detection for filters.
- Added capped filter value loading and search for large lists.
- Optimized filter row visibility checks to reduce UI stalls.
- Added `docs/TABLE_FILTER_PERFORMANCE_FIX.md`.

## dev-24.9.3 ContextMenuSubmenuI18nFix
- Grouped the cell context menu into Clipboard / Fill / Rows & columns / Format / Data / Comments & protection / View submenus.
- Added icons and JA / EN / ZH labels to NativeGrid context menu groups and items.
- Added submenu viewport flipping and vertical clamping.

## dev-24.9.1 ContextMenuPositionFix
- Consolidated dev-24.1.0 through dev-24.9.1 stabilization and product-quality work.
- Added floating UI overlay policy for menu/popup/context-menu stability.
- Added `.uspdx` security guards and CSV formula-injection export guard.
- Added compatibility/property commands and regression smoke-test service.
- Updated docs for UI stability, XLSX compatibility, object/chart, pivot, performance, collaboration, regression/security and RC readiness.


## dev-24.0.0 WorksheetCompletionFoundation

- Added Pivot foundation with selected-range to Pivot sheet generation.
- Added collaboration metadata: comments, protected ranges and workbook change log.
- Added formula dirty recalculation metadata and command.
- Added XLSX hidden metadata round-trip support for UnifiedSpread-native workbook data.
- Added command hooks for chart title/options and collaboration commands.
- Added protected-cell/comment markers in NativeGrid rendering.
- Added documentation for Worksheet Completion, Pivot, Collaboration Metadata and XLSX Round Trip foundation.

## dev-21.5.3 FilterConditionUXFix
- Fixed filter dropdown buttons rendered inside the selected table header row.
- Changed filter button opening from click-only to mousedown anchoring to avoid global close-handler races.
- Added viewport-clamped popup placement and menu interaction guards.

## dev-21.5.1 FilterHeaderRowPolicyFix

- Fixed Create Filter range ownership. Multi-cell selections now become the filter table range, and the first row of that range is treated as the header row.
- Moved filter dropdown buttons from spreadsheet column headers to the actual worksheet header cells. A selected 商品 / 価格 / 数量 table now receives buttons on those cells.
- Preserved the selected filter range when filter criteria are applied, preventing accidental K-column or used-range filters.
- Added current-region fallback for single-cell Create Filter operations.
- Added source comments explaining the distinction between grid chrome and worksheet data header cells.

## dev-21.5.0 DataToolsFoundation

- Added advanced filter criteria foundation: blank / non-blank / text contains / number greater than / number between.
- Added multi-column sort command based on selected columns.
- Added data validation metadata, invalid-cell overlay markers, and list / number-between commands.
- Added remove duplicates and split text to columns commands.
- Added XLSX AutoFilter range import/export foundation.
- Added implementation comments around validation metadata, duplicate handling, and filter criteria.

# dev-21.0.0 FormulaEngineFoundation

- Separated formula evaluation into `NativeGridFormulaEngine`.
- Added dependency graph generation and explicit recalculate command path.
- Added cross-sheet references and workbook-level named range foundation.
- Added logic, text, date and lookup foundation functions.
- Preserved `.uspdx` named range metadata in native package save/restore.

## dev-21.0.0 FormulaEngineFoundation

- Expanded cell formatting from basic toggles to practical spreadsheet formatting.
- Added font family, extended number formats, vertical alignment, indent and shrink-to-fit metadata.
- Added edge-aware borders: all, outer, inner, top, right, bottom, left and clear.
- Added cell style presets: normal, header, input, good, warning and bad.
- Added conditional formatting foundation for greater-than / less-than rules and rule clear.
- Extended XLSX style mapping for borders, alignment, shrink-to-fit, indent and number formats.
- Added code comments around effective style layering, number formatting and border metadata.

## dev-20.7.1 DemoMaximizePolicyFix

- Fixed parameter-style Demo maximization so the Control frame, not the entire Demo page with side panels, occupies the viewport.
- Added `demo/assets/demo-maximize.js` as a demo-only helper for maximize/restore behavior.
- Hides Demo header, toolbar, parameter panel and log panel during maximized mode.
- Added floating restore button and Esc key restore.
- Prevents body/page scrolling while maximized and triggers resize events for the mounted grid.

## dev-20.7.0 SpreadsheetBasicUX

- Added fill handle preview and commit workflow.
- Added Fill Down / Fill Right commands and Ctrl+D / Ctrl+R shortcuts.
- Improved keyboard navigation with Tab / Enter / F2 / Ctrl+A.
- Enhanced clipboard paste to preserve NativeGrid styles and adjust formulas.
- Added range paste tiling for larger selected targets.


## dev-20.6.1 SelectionOverlayFix

- Fixed range selection visibility on cells that have an explicit fill/background color.
- Moved selection visual feedback to a pseudo-element overlay so formatted cell backgrounds and selection highlights can coexist.
- Added comments around `paintSelection()` to document the separation between semantic selection state and visual selection painting.
- Added `docs/SELECTION_VISUAL_LAYER.md`.

# Changelog

## 1.0.0 / dev-20.5.1
- Added NativeGrid Merge / Unmerge cell implementation with rowspan/colspan rendering and persisted merge config.
- Added active-sheet CSV Export.
- Added editable NameBox navigation for A1 and A1:C5 style selection.
- Expanded lightweight formula display evaluation with COUNTA / PRODUCT / ABS / SQRT / INT / ROUND.
- Added richer source comments in NativeGrid Model / Renderer / Engine, WorkbookService and MenuView.
- Kept UnifiedSpread package identity from dev-20.4.0.
- Added NativeGrid real Freeze panes.
- Added column-header Filter UI and filtering criteria.
- Added NativeGrid sort implementation.
- Added Formula Bar synchronization and active-cell editing.
- Added lightweight formula display evaluation.
- Added Multi Sheet bottom tabs, add sheet and rename.
- Updated `.uspdx` persistence to retain activeSheetIndex and sheet config such as freeze/filter.

## 1.0.0 / dev-20.1.0
- Added NativeGrid editing foundation.
- Added range selection, copy/cut/paste, undo/redo, row/column operations and resize.

## 1.0.0 / dev-19.9.0
- Added VERSION.json and PACKAGE_MANIFEST.json.
- Reorganized into scripts/themes/demo/docs.
- Added Host-facing createWorkbenchControl/createEditorControl entries.

## dev-20.5.1

- Demo を Host 組み込みサンプルとして再整理。
- 成果物直下の `index.html` を削除。
- Demo HTML から本体 UI markup を削除し、Control 表示用 DIV フレームへ mount する方式に変更。
- Local Disk Open / Save を `demo/assets/local-file-callbacks.js` に分離。
- Runtime の File I/O を `OpenFile` / `SaveFile` callback 方針へ寄せた。

## dev-20.5.2

- Implemented mouse drag multi-cell selection in NativeGrid.
- Added auto-scroll while range-selecting near grid viewport edges.
- Improved selection handling around merged cells.
- Replaced per-mousemove row/column resize re-rendering with a smooth guide-line preview and single commit on mouseup.
- Added `docs/MOUSE_INTERACTION.md`.

## dev-20.6.0

- Added cell formatting model foundation: bold, italic, underline, text color, fill color, alignment, wrap, border, number format, font size.
- Added toolbar state reflection from selection style.
- Added row/column header selection.
- Added sheet duplicate/delete/move and sheet tab context menu.
- Replaced sheet rename browser prompt with inline sheet tab rename.
- Added formula copy/paste relative reference adjustment and simple cycle detection.
- Added XLSX import/export foundation for row heights, column widths, merges and basic style metadata.
- Added `docs/CELL_FORMATTING_XLSX_FOUNDATION.md`.

## dev-21.0.1 FormulaReferencePickFix
- Fixed formula reference picking: clicking or dragging cells while editing a formula now inserts A1/range references into the in-cell editor or Formula Bar instead of changing the formula target cell.

## dev-22.0.0 ChartImageObjectLayer

- Added floating sheet Object Layer for charts, image placeholders, text boxes and shapes.
- Added insert chart / image placeholder / text box / shape commands.
- Added object move, resize, duplicate and delete operations.
- Persisted `sheet.objects[]` in `.uspdx` workbook data.
- Added object-layer renderer comments and documentation.


## dev-22.0.1 ChromeStabilityFix
- Fixed a layout issue where the UnifiedSpread title/menu row could scroll out of view during Demo maximization and object-layer operations.
- Strengthened demo maximization policy: hide only Demo panels, lock page scrolling, and keep grid scrolling inside the product frame.

## dev-24.0.0 ChartImageObjectUX

- `spread.insert.image` now uses the Host `OpenFile` callback to insert real image files as floating image objects.
- Kept `spread.insert.image.placeholder` as an explicit fallback/debug command.
- Added multi-series chart payload generation from table-like selected ranges.
- Added column and line chart preview rendering.
- Added chart object commands: refresh data, switch to column chart, switch to line chart.
- Added object z-order commands: bring forward, send backward, bring to front, send to back.
- Added object lock/unlock and prevented drag/resize/nudge on locked objects.
- Added arrow-key object nudging, with Shift for larger steps.
- Added inline TextBox editing without browser prompt APIs.
- Added `docs/CHART_IMAGE_OBJECT_UX.md`.

## dev-24.9.2 ContextMenuStyleFix

- Fixed body-level cell context menu styling regression.
- Context menu items now render vertically with UnifiedSpread popup styling.
- Long context menus are scrollable and remain viewport-safe.

## dev-30.0.0 ExcelBeyondRC

- Consolidated dev-25.0.0 through dev-30.0.0 compatibility and product-readiness roadmap.
- Added `.xlsm` open/save/export format support and macro-preservation metadata.
- Expanded FormulaEngine with SUMIF/COUNTIF/AVERAGEIF/IFERROR/TEXT/VALUE/DATEVALUE/EOMONTH/HLOOKUP/XLOOKUP/LOOKUP.
- Added release readiness and Beyond Excel diagnostic commands.
- Added Excel/XLSM compatibility, formula expansion and final RC documentation.

## dev-31.0.0 UnifiedScriptEngineFoundation

- Added browser-safe UnifiedSpread Script Engine foundation.
- Added script runtime API for workbook/sheet/range/cell operations.
- Added script module persistence in workbook metadata and `.uspdx` `shared/scripts.json`.
- Added first-stage VBA compatibility report and VBA-to-UnifiedScript transpiler.
- Added script commands to CommandRegistry/Menu/Host exec path.
- Clarified that COM/Shell/Win32/FileSystem/ActiveX VBA is out of scope.

## dev-31.0.1 TableFilterHeaderKeyboardFix

- Fixed filter dropdown value collection for imported/list tables whose filter range was header-only.
- Added table-region repair for active filter ranges.
- Added top-left corner sheet selection.
- Added Shift-click extension for row and column header selection.
- Added Ctrl/Cmd + Arrow and Ctrl/Cmd + Shift + Arrow spreadsheet navigation.
- Added selected header chrome styling.


## dev-31.0.5

Policy compliance update for app development policy v1.8 and single-file processing policy v1.2. Adds EditorControl/WorkbenchControl creation entries, canonical command descriptors, declarative contribution APIs, OneEditor integration Demo/Doc, and i18n-backed command/menu/toolbar labels.
