## 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

- Corrected a native package validation regression introduced after CSS/theme folder naming work: `.uspdx` internal `styles/` directory markers are valid and should not be rejected.
- Hardened autosave for large image/drawing workbooks by applying a localStorage size guard and quota-error cleanup.

## dev-31.0.13 PackageCssLoadingContract
- Applied Host CSS loading technical requirements.
- Made CSS loading a manifest-driven contract rather than relying on implicit imports.
- Added package style scope documentation and visual regression checklist.

## dev-31.0.11 CssFilenameStandardization
- Standardized Host-facing theme CSS filenames to `unified_spread.css`.
- Kept package-specific naming aligned with lower_snake_case style and avoided generic generic theme CSS filename for Host contracts.

## dev-31.0.10 PolicyV19UnifiedControlLowerSnakeCase

- Applied app development policy v1.9.
- Integrated UnifiedControl dev-0.7.2/API 0.7 as the common Control Framework dependency.
- Standardized scripts/ module physical filenames to lower_snake_case.js.
- Updated manifest/docs/demo metadata while preserving dev-31.0.9 balanced menu UX.

## dev-31.0.9 BalancedMenuGrouping
- Adjusted MenuContribution definitions to use submenus only where they clarify related choices.
- Restored File to a Writer-like flat menu structure while preserving Export and other multi-choice submenus.
- Kept Format grouped because spreadsheet formatting benefits from Google Sheets-like categories.

## dev-31.0.8 GroupedMenuSubmenus
- Reworked MenuContribution definitions so top-level menus are shorter and grouped.
- Added non-command submenu group descriptors for File/Edit/View/Insert/Format/Data/Tools/Development/Help.
- Added i18n labels for submenu groups in JA/EN/ZH.

## dev-31.0.7 DevMenuReorg
- Reorganized the menu bar based on the latest UI policy review.
- Introduced a dedicated **Development** menu for end-user scripting / VBA / extension features.
- Reduced **Tools** to spreadsheet runtime functions.
- Relocated temporary internal package diagnostics to **Help** until they are removed for the product release.

## dev-31.0.4 XlsxDrawingStyleImportFix

Improved XLSX import fidelity for image-heavy workbooks and drawing-only sheets.


## 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
The dev-21.5.1 filter header policy correctly moved filter buttons to the table header row, but the dropdown could fail to appear depending on grid/document event ordering. dev-21.5.3 makes the filter button a first-class pointer target and anchors the popup to the button element.

## dev-21.5.1 FilterHeaderRowPolicyFix

Corrected Data Tools filter UX after validation with a product-list scenario. The implementation now follows spreadsheet behavior: the user-selected range owns the filter, and dropdowns are rendered inside the range's first-row cells rather than on column-letter headers.

## 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 milestone. NativeGrid now supports practical formatting metadata and rendering for fonts, number formats, alignment, borders, style presets and conditional formatting foundation. Styles remain model-owned and Host-command driven.

## dev-20.7.1

Demo maximization policy fix. Parameter-style Demo pages now collapse Demo-only panels and maximize only the Host Control frame. The behavior is isolated in `demo/assets/demo-maximize.js`, keeping product runtime code and Control API unchanged.

## dev-20.7.0

Spreadsheet Basic UX phase. Added fill handle, fill commands, keyboard navigation and structured copy/paste improvements while keeping operations routed through Command / Service / Engine / Model layers.


## dev-20.6.1
Selection overlay fix. Colored cells now remain visibly selected by painting the range highlight on a layer above the cell background.

# Development History

- dev-19.9.0: v1.6 policy-aligned package structure.
- dev-20.1.0: NativeGrid editing foundation.
- dev-20.4.0: UnifiedSpread rename and package identity cleanup based on the dev-20.3 NativeGrid UX milestone.
- dev-20.5.1: NativeGrid merge/unmerge, active-sheet CSV export, NameBox navigation, formula helper expansion and code comment quality pass.

- dev-20.5.2: Implemented spreadsheet-standard mouse range selection and smoothed row/column resize by previewing with guide lines before committing model changes.
- dev-20.6.0: Strengthened spreadsheet UX with cell formatting, toolbar state reflection, sheet operations, formula reference adjustment and XLSX style/dimension foundation.
- dev-20.7.1: Fixed Demo maximization to hide parameter/log panels and give the mounted Control frame the full viewport without remounting.

- dev-21.0.0: Introduced FormulaEngine foundation, dependency graph, cross-sheet references, named ranges and extended formula functions.

## dev-21.0.1
Formula reference picking was added for in-cell editing and Formula Bar editing. The implementation preserves the formula target cell and paints a separate reference overlay.

## dev-22.0.0 ChartImageObjectLayer

セルレイヤーとは独立した Object Layer を追加。Chart / Image / TextBox / Shape を worksheet floating object metadata として保持し、選択、移動、リサイズ、複製、削除、および `.uspdx` 保存復元の土台を実装した。


## dev-22.0.1 ChromeStabilityFix
Adjusted Demo maximization and Host frame CSS so the product chrome remains visible while users interact with charts, images, shapes, and grid scrollbars.

## dev-24.0.0 ChartImageObjectUX

Object Layer was strengthened from insertion/geometry foundation to practical UX. Image insertion now goes through the Host callback contract, chart objects can be refreshed and switched between column/line previews, and floating objects gained z-order, lock/unlock, keyboard nudge, and inline text editing behavior.

## 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-25.0.0 - dev-30.0.0 consolidated

The development roadmap from Excel compatibility deepening to Product RC was consolidated into dev-30.0.0.
The build focuses on compatibility seams, XLSM preserve-only handling, broader formula coverage, Host-oriented
Beyond Excel extension points and product release diagnostics.

## dev-31.0.0

UnifiedScriptEngineFoundation introduced a browser-safe script layer and VBA
conversion foundation.  The implementation prioritizes safe Workbook/Worksheet
automation and explicit unsupported reporting for browser-incompatible VBA.

## dev-31.0.1 TableFilterHeaderKeyboardFix

Real imported XLSX list data exposed three gaps: filter ranges could be too shallow, the sheet corner did not select the full sheet, and Ctrl/Shift arrow navigation did not match spreadsheet expectations. This build repairs filter table recognition in the model and keeps header/keyboard behavior in the renderer where DOM interaction belongs.


## dev-31.0.5 - PolicyV18SingleFileV12Integration

- Added `createEditorControl` and `createWorkbenchControl` public entries.
- Added canonical `spread.*` command descriptors and removed unprefixed command compatibility in dev-31.0.6.
- Added declarative Menu / Toolbar / ContextMenu Contribution API.
- Added `getFileCapabilities()` for OneEditor / Host file type composition.
- Added i18n-backed shell/menu/toolbar labels for JA/EN/ZH.
- Added `demo/oneeditor-integration.html`, `docs/ONEEDITOR_INTEGRATION.md`, and `docs/COMMAND_STANDARD.md`.
