Set up the initial build infrastructure for Ink.

Review Request #13562 — Created Feb. 20, 2024 and submitted — Latest diff uploaded




Ink is built as a combination of LessCSS and TypeScript, providing
component styles, implementations, and themes.

Upcoming changes will begin to set up more of the infrastructure for
building and testing Ink, and begin implementing components. To get
started, this change sets up the initial build infrastructure to support

We're using Rollup, Babel, and TypeScript to manage all the JavaScript.
This approach is similar to what we uses in Spina 3. We provide exports
for ESM modules, CommonJS modules, and UMD modules, with a top-level
Ink namespace made available for ESM and UMD.

Babel takes care of transpiling the TypeScript, and TypeScript is set up
to do the type checking.

We use ESLint with our standard Beanbag rules to keep code consistent.

Initial stubs for the LessCSS and TypeScript modules are all provided.
They're currently essentially blank, and will be populated in upcoming

By itself, this change doesn't do much. It build, but will fail to
copy to lib, since relevant directories don't yet exist. However,
this has been tested with in-progress changes.