Math.js: For numerical calculations, matrix algebra, unit conversions, expression parsing.
Nerdamer.js (specifically the nerdamer.all.min.js bundle, often from the nerdamer-prime fork): For symbolic mathematics including equation solving, calculus, and algebraic manipulation.
Manifest Version: Chrome Manifest V3.
Storage:
chrome.storage.local: Used for persisting calculator state such as calculation history, user-defined variables, and user-defined functions.
chrome.storage.sync: Used for storing user-configurable options (e.g., font sizes, pop-out window dimensions) to allow potential synchronization across a user's Chrome profiles.
Permissions:
storage: Essential for saving user data (history, variables, options) locally.
clipboardWrite: Enables the user-initiated "copy result to clipboard" feature (Ctrl/Cmd+Click on a result).