feat: @gsc/web-kit v0.1.0 — Phase 1 scaffold

The kit. Drop into any GSC Next.js frontend; everything that's not
domain content lives here. Wraps @limitless/ui primitives with the
app-shaped patterns we keep reimplementing: layout, auth, data
display, forms, feedback, navigation.

Phase 1 ships the package skeleton:

- package.json with 14 sub-exports (./layout · ./auth · ./auth/server
  · ./auth/middleware · ./shell · ./shell/server · ./data · ./forms ·
  ./feedback · ./navigation · ./api · ./utils + the root and ./css).
- Empty module stubs so the import map resolves while later phases
  fill in real surface area.
- Canonical CSS bundle at @gsc/web-kit/css — all.min.css +
  sidebar-overrides.css + the seven layout-3 background images,
  copied from chronos and committed in one place so no app has to
  ship the 1MB sidecar on its own anymore.
- tsc-based build + a postbuild script that mirrors @limitless/ui:
  emits .js + .d.ts, copies styles/, rewrites bare ESM imports to
  include .js extensions.
- Peer deps on next, react, react-dom, bootstrap.
- Hard deps on @limitless/ui (file: dep), next-auth, next-intl, zod.

Build verified: tsc emits, all 14 export paths resolve under dist/.
No functional code yet — Phase 2 lands AppLayout / createAuth /
fetchShellConfig and the gscCRM pilot cuts over.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude
2026-05-11 00:09:36 +02:00
commit 957880e5c5
29 changed files with 34491 additions and 0 deletions

15
src/index.ts Normal file
View File

@@ -0,0 +1,15 @@
// @gsc/web-kit — top-level re-exports.
//
// Prefer the sub-exports (`@gsc/web-kit/layout`, `…/auth`, etc.) so
// tree-shaking can drop modules you don't use. This index is here
// for convenience and discovery.
export * from "./layout/index";
export * from "./shell/index";
export * from "./data/index";
export * from "./forms/index";
export * from "./feedback/index";
export * from "./navigation/index";
export * from "./api/index";
export * from "./utils/index";
// auth is client-only; auth/server is server-only. Don't aggregate.