UnifiedSpread dev-31.0.14 ProgramableFilePayloadApi is based on dev-31.0.13 UspdxSecurityAutosaveFix and aligns the package with Single File Processing Policy v1.3: EditorControl exposes openFile/saveFile/saveAsFile/exportFile programmatic APIs using HostFilePayload/v1 and HostSavePayload/v1. UnifiedSpread dev-31.0.9 BalancedMenuGrouping is based on dev-31.0.8 GroupedMenuSubmenus and reduces over-grouping. File/Edit/Tools/Help are mostly flat like Writer and Google apps, while Format keeps Google Sheets-style grouped submenus. UnifiedSpread dev-31.0.0 UnifiedScriptEngineFoundation This build consolidates the confirmed dev-24.1.0 to dev-31.0.0 stabilization roadmap. It adds a shared floating UI policy, package security guards, CSV export safety, runtime regression smoke service, compatibility/property commands, and RC documentation while preserving the Host callback File I/O architecture. This build consolidates the confirmed roadmap through dev-31.0.0. It adds Pivot foundation, collaboration metadata, protected ranges, comment indicators, formula dirty-recalc metadata, XLSX hidden-metadata round-trip support, and command-level hooks for chart/object completion. Package root intentionally has no index.html. Run demos under demo/ via HTTP server. ## dev-22.0.0 FilterConditionUXFix - Fixed filter header dropdown buttons so the popup opens reliably from table header cells. - The popup is now anchored to the filter button and clamped inside the viewport. - The fix stays in demo/runtime separation: no Demo-only logic was added to runtime beyond the grid interaction bug fix. ## dev-21.5.1 FilterHeaderRowPolicyFix This build fixes Create Filter behavior so dropdown buttons appear on the selected table header cells, such as 商品 / 価格 / 数量, instead of on the A/B/C column chrome or unrelated active columns. It also keeps the selected filter range stable while criteria are applied. ## dev-21.5.0 DataToolsFoundation This build adds the first practical Data Tools layer: advanced filter criteria, multi-column sort foundation, data validation metadata and visual invalid markers, duplicate removal, split text to columns, and AutoFilter range import/export foundation. ## dev-21.0.1 FormulaReferencePickFix This package continues the UnifiedSpread NativeGrid implementation and adds the FormulaEngine foundation: a separated formula evaluator, dependency graph diagnostics, cross-sheet references, workbook-level named ranges, and extended logic/text/date/lookup functions. UnifiedSpread =========== Policy-aligned AMD package build. Run demos under demo/ via HTTP server. The package root intentionally has no index.html. Host integration entry: scripts/main.js RequireJS alias example: paths: { 'UnifiedSpread': '/scripts' } Native file: .uspdx (ZIP container) Excel interoperability: .xlsx/.xls import/export through SheetJS. ## dev-20.7.1 Demo Maximize Policy Fix This build fixes Demo maximization so that parameter-style Demo pages follow the package policy: - Maximization is implemented as demo-only shell behavior under `demo/assets`. - Parameter panels, callback logs, headers and toolbars are hidden during maximized mode. - The mounted `#controlFrame` consumes the full viewport without remounting the runtime Control. - A floating restore button and Esc key allow returning to normal Demo layout. - Body/page scrolling is suppressed during maximized mode to avoid competing scrollbars. ## dev-20.5.1 Demo Policy Fix This build fixes Demo and File I/O policy alignment: - Removed package-root index.html. - Demo HTML no longer embeds UnifiedSpread product UI markup. - Runtime Control renders the product shell inside the Host-provided container. - Demo Local Open / Save implementation is separated into demo/assets/local-file-callbacks.js. - Runtime file operations call Host-provided OpenFile / SaveFile callbacks. - Save As uses the selected filename extension to resolve .uspdx / .xlsx / .csv. - Demo frames support page-area maximization without polluting product runtime code. ## dev-20.5.x NativeGrid Quality - Freeze pane real display for first row, first column, current selection, and clear freeze. - Filter UI on column headers with value-list, non-empty, clear and apply operations. - Sort ascending/descending using the active column or selected range. - Formula bar synchronization with selected cell / range name box. - Formula display evaluation includes SUM / AVERAGE / AVG / MIN / MAX / COUNT / COUNTA / PRODUCT / ABS / SQRT / INT / ROUND and arithmetic cell references. - Multi-sheet bottom tab UI, sheet switching, sheet add and double-click rename. - .uspdx persistence keeps activeSheetIndex and sheet config such as freeze/filter/merge. - Merge / Unmerge cells is functional in NativeGrid rendering and XLSX export merge metadata. - CSV export is implemented for the active sheet. - NameBox navigation accepts A1 or A1:C5 and moves the current selection. - Core modules include richer comments for class responsibility, public methods and complex helpers. Known remaining NativeGrid roadmap items: - Large-data virtualization. - Rich number formats and chart/image/pivot support. ## dev-20.5.2 Mouse Selection / Resize Fix - Added mouse drag range selection for cells. - Added viewport edge auto-scroll during drag selection. - Improved merged-cell selection normalization. - Reworked row height / column width drag resizing to use a preview guide and commit once on mouseup. ## dev-20.6.0 Cell Formatting / XLSX Foundation This build adds cell formatting, toolbar state reflection, row/column header selection, sheet duplicate/delete/move, inline sheet rename, formula reference adjustment on copy/paste, and XLSX style/dimension foundation. ## dev-20.7.0 Spreadsheet Basic UX This build focuses on spreadsheet day-to-day operations before advanced chart/pivot work: - Fill Handle on the selected range bottom-right corner. - Fill Down / Fill Right commands with Ctrl+D / Ctrl+R shortcuts. - Range paste now tiles values when the selected paste target is larger than the copied area. - NativeGrid internal copy/paste preserves cell styles and adjusts relative formulas. - Keyboard navigation improved: Tab / Shift+Tab, Enter / Shift+Enter, F2 edit, Ctrl+A select all. - Context menu includes fill commands. - Fill / paste / keyboard code contains comments explaining model-renderer-command separation. dev-21.0.1 highlights: - FormulaEngine module separation. - Cross-sheet references and named range foundation. - Dependency graph and recalculate command path. - Extended logic/text/date/lookup formula functions. ## dev-22.0.0 Chart / Image / Object Layer foundation has been added. Use Insert > Chart / Image / Text Box / Shape to create floating worksheet objects. Objects can be selected, dragged, resized, duplicated, deleted and saved in .uspdx. dev-22.0.1 ChromeStabilityFix - Fixed Demo maximized layout so browser/page scrolling cannot hide the product title/menu chrome. - Added demo-only viewport lock classes on html/body and explicit runtime frame height constraints. - Kept the fix outside scripts/ Control API; product runtime remains Host-embedded. ## dev-31.0.0 ChartImageObjectUX - Real image insertion through Host OpenFile callback (`role: asset`). - Image payload persistence in `.uspdx` object metadata. - Multi-series chart snapshot generation from selected table ranges. - Column and line chart preview rendering. - Chart context actions: refresh, switch to column, switch to line. - Object z-order, lock/unlock, arrow-key nudge and inline TextBox editing. - Added `docs/CHART_IMAGE_OBJECT_UX.md`. Dev note: dev-31.0.0 UnifiedScriptEngineFoundation fixes body-level cell context menu styling so right-click menus render as vertical, scrollable popup menus instead of unstyled inline buttons. Dev note: dev-31.0.0 UnifiedScriptEngineFoundation groups the cell right-click menu into iconized submenus and adds JA/EN/ZH labels for NativeGrid context menu items. dev-31.0.0 UnifiedScriptEngineFoundation - Adds scripts/scripting/* runtime modules. - Adds scripts/compatibility/vba/* conversion/report modules. - Adds Script commands under Tools menu. - Stores script metadata in workbook.config.scripting and .uspdx shared/scripts.json. - VBA conversion excludes COM, Shell, Win32 API, ActiveX and direct filesystem operations. Dev 31.0.2 note: - Fixes list/table filter range recognition, header/corner selection, and Ctrl/Cmd+Arrow / Ctrl/Cmd+Shift+Arrow navigation. dev-31.0.6 update: - Public entries: createWorkbenchControl, createEditorControl. - Public command IDs use spread.* only; unprefixed historical IDs are rejected. - Contribution APIs: getMenuContributions, getToolbarContributions, getContextMenuContributions, getFileCapabilities. - OneEditor integration sample: demo/oneeditor-integration.html. ## dev-31.0.7 Dev Menu Reorganization - Added a top-level Development menu to collect scripting, VBA, compatibility, extension and add-on features intended for end users. - Reduced Tools to spreadsheet-oriented operations such as recalculation, comments, protection and change log. - Moved temporary internal package diagnostics such as Release Readiness and Developer Console under Help. - This is a development-time menu reorganization; internal Help items remain temporary and should be removed from the product release later. ## dev-31.0.8 Grouped Menu Submenus - Reorganized the menu bar so each top-level menu uses grouped submenus. - Grouping criteria were aligned with Google Sheets style patterns where practical, such as Text / Number / Alignment in Format and Sort / Filter in Data. - Kept the top-level Development menu introduced in dev-31.0.7. - Internal temporary items remain under Help. ## dev-31.0.9 Balanced Menu Grouping - Reduced over-grouping in top-level menus. - File now follows the Writer-style flat structure: New/Open, Save/Save As/Restore, Import/Export, Properties/Settings. - Edit, Tools and Help now expose common commands directly with separators. - Format keeps Google Sheets-style grouped submenus because that grouping is useful and familiar. - Data and Development keep only natural submenus such as Sort, Filter, Validation, Script, VBA/Macro and Extensions. ## dev-31.0.10 Policy v1.9 / UnifiedControl / lower_snake_case - Added UnifiedControl as a required peer package in PACKAGE_MANIFEST.json. - Demo RequireJS config now defines the UnifiedControl alias pointing to the standard internal CDN package root. - Public spreadsheet control extends UnifiedControl.Control. - Renamed scripts/ AMD module files to lower_snake_case.js and updated AMD dependency paths. - Kept createEditorControl/createWorkbenchControl as the public factories and kept balanced menu grouping. ## dev-31.0.11 Css Filename Standardization - Renamed public runtime theme CSS files from generic theme CSS filename to `unified_spread.css`. - Updated Demo HTML, PACKAGE_MANIFEST.json, README and docs references. - Added `styles.required`, `styles.themes`, and `styleScope` to PACKAGE_MANIFEST.json so Host integrations can discover and preload Control CSS. - Split required UnifiedSpread CSS into `unified_spread.css`, `grid_layout.css`, `sheet_tabs.css`, `formula_bar.css`, `panes.css`, and `context_menu.css`. ## dev-31.0.13 Package CSS Loading Contract - Added manifest-driven `styles.required`, `styles.themes`, `styles.hostOptional`, and `styleScope` entries. - Split UnifiedSpread required CSS into base, grid layout, sheet tabs, formula bar, panes, and context menu files. - Scoped package CSS under `.uspread`; body/html and generic Host selectors are no longer used by package CSS. - Updated Demo pages to load `PACKAGE_MANIFEST.json` and package CSS before creating the Control. - Added `docs/STYLE_CONTRACT.md` and `docs/VISUAL_REGRESSION_CHECKLIST.md`. ## dev-31.0.13 Uspdx Security / Autosave Fix - Allows safe directory marker entries in `.uspdx` ZIP packages: `styles/`, `shared/`, and `sheets/`. - Allows `shared/scripts.json`, which is written by the native package serializer. - Keeps all other `.uspdx` file entries on a strict allow-list. - Adds autosave size guard and quota-error handling to prevent repeated `QuotaExceededError` logs for large workbooks. ## dev-31.0.14 Programable File Payload API - Implements Single File Processing Policy v1.3 for EditorControl programmatic file APIs. - Adds `control.openFile(payload, context)`, `saveFile(payload, context)`, `saveAsFile(payload, context)`, `exportFile(payload, context)`, and `getFileContext()`. - Uses `HostFilePayload/v1` for already-acquired file data and `HostSavePayload/v1` for generated save/export data. - Keeps Workbench `OpenFile` / `SaveFile` callbacks as Host-facing picker/storage requests and delegates file parsing/data generation to EditorControl.