Commit Graph
15 Commits
Author SHA1 Message Date
Kamran Ahmed 75edd1b4bc Restructure as a Turborepo monorepo
packages/driver is the library (still published as driver.js, with
repository.directory set); playground and docs move to apps/. One root
pnpm workspace and lockfile replace the three standalone projects, with
turbo orchestrating build/test/lint:package (apps depend on the library
build; local + CI caching via .turbo).

Apps keep importing the library from source for HMR — the aliases now
point at ../../packages/driver/src and each app gains a workspace:*
dependency so the task graph knows the edge. The dev-server fs scope
widens to the repo root accordingly.

Releases run from packages/driver (root `pnpm release` delegates). The
changelog still lives in the docs app, so the release scripts reach it
via ../../../apps/docs and the after:bump hook stages it explicitly —
release-it no longer sits above both directories.

The merged workspace settings keep sharp unbuilt on purpose (prebuilt
binaries; building from source needs node-gyp and fails) — the docs app
had this right and the playground setting was the accident. postcss and
postcss-scss were unreferenced devDependencies and are dropped; prettier
moves to the root as the only shared tool.
2026-07-16 19:45:23 +01:00
Kamran Ahmed d4c5182ee6 Migrate the package build to tsdown
One tool replaces four: both vite lib configs, vite-plugin-dts,
api-extractor and the terser postbuild. tsdown covers each of their jobs
natively — per-entry declaration bundling (from the actual lib entry, so
the vite-plugin-dts types-field footgun is structurally gone), oxc
minification, and CSS extraction with @import inlining via @tsdown/css.

The config keeps the two-isolated-builds decision as a config array: a
single multi-entry build would still split the shared popover primitive
into a common chunk and merge the stylesheets. Filenames, the exports
map and the CDN globals (window["driver"]["js"].driver, driverHints)
are unchanged; attw/publint stay green across node10/node16/bundler for
both entries.

Verified against the previous pipeline's output: identical file list,
identical driver.css rule set, hints.css differs only in Lightning CSS
keeping the inset shorthand our source already uses (baseline everywhere
driver.js supports), and every artifact's gzip size is equal or smaller.
Build drops from ~6.8s to ~2.2s — three TypeScript passes down to one
plus tsdown's per-entry declaration emit.

The postbuild shrinks to the two plain .d.ts copies node10 resolution
needs. vitest config moves to vitest.config.ts (vite itself is no longer
a direct dependency), and a local *.css module declaration replaces
vite/client's ambient types.
2026-07-16 18:59:15 +01:00
Kamran Ahmed 1910fb2c30 Minify the ESM bundle with Terser in postbuild 2026-07-08 03:38:26 +01:00
Kamran Ahmed 2088df4a90 Switch release tooling from np to release-it
- Tag and commit use the unreleased version with no v prefix
- Move changelog Unreleased entries under the version on bump
- GitHub release notes are pulled from the changelog section
2026-06-25 18:07:16 +01:00
Kamran Ahmed bf461234b8 Validate the package on publish/CI; fix dual-format types 2026-06-23 13:48:29 +01:00
Kamran Ahmed 498be73ba3 Modernize build and docs tooling 2026-06-23 13:48:29 +01:00
Kamran Ahmed 61c33f7a41 Add np for interactive releases 2026-06-23 09:48:04 +01:00
Kamran Ahmed c324835cc8 Modernize tooling and add an Astro examples playground 2026-06-23 09:48:04 +01:00
Kamran Ahmed 55c95d547c Update cdn version in docs 2025-01-31 01:05:52 +00:00
Kamran Ahmed d9dddec4d7 Upgrade dependencies 2023-09-04 11:21:47 +01:00
Kamran Ahmed 529f19abbe Fixes #391 allowKeyboardControl option not working 2023-08-04 01:22:11 +01:00
Kamran Ahmed 8869f63387 Run prettier 2023-06-24 01:41:15 +01:00
Kamran Ahmed b0d29314ec Custom class popover test 2023-06-18 00:59:16 +01:00
Kamran Ahmed edd7dca2df Refactor stage padding and radius 2023-06-11 02:49:32 +01:00
Kamran Ahmed aa3b624a52 Add basic highlight functionality 2023-05-08 00:26:47 +01:00