003d4fde1b
Refactor the calc-02 demo to use a single popup menu component for angle mode and constants, align the menus to their trigger buttons, and update the README/project notes to reflect the portrait-first demo layout and constant API.
1.6 KiB
1.6 KiB
State
- Core engine:
src/rpn-calculator.js - Active demo:
samples/calc-02/portrait-only HP48GX layout; display-adjacent button row stays in 4 columns and uses compact popup menus for mode/constants - Mode button shows the current angle mode only; selecting a mode uses a popup menu
- Public API:
push,pop,clear,swap,remove,edit,isValidIndex,input,command,getOperationsByCategory,getConstants,listConstants,setConstant,removeConstant,hasConstant - Config:
maxSize,base,angleMode,enabledCommands - Commands: arithmetic, stack, trigonometry, constants
piande; arithmetic now includesrootfor y-th roots; constants can now be added or removed dynamically through the core API and the calc-02 constant menu reads from the engine - Demo actions: keyboard focus is kept on the hidden input on desktop so typing keeps working; the keypad layout places Enter in the bottom-left, ± in the former Enter position, and Esc before Clear for safety; paste parses clipboard text as a number before pushing it to the stack; Ctrl+V is supported via the hidden input paste event; backspace is ignored when the stack is empty; operation errors are shown as an overlay bar on top of the calculator with a shorter timeout and darker red; the display button row uses a 4-column grid with a spacer cell to preserve alignment; mode and constant popups are aligned to the left edge of their trigger buttons; the portrait layout reference now lives in
samples/calc-02/visual-portrait.md - Exports: browser
window.RpnCalculator, CommonJSmodule.exports