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:
51
package.json
Normal file
51
package.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"name": "@gsc/web-kit",
|
||||
"version": "0.1.0",
|
||||
"description": "GSC web app skeleton — layout, auth, data, forms, feedback, navigation. Built on @limitless/ui. Drop into a Next.js app and just write pages.",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"exports": {
|
||||
".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" },
|
||||
"./css": "./dist/styles/index.css",
|
||||
"./layout": { "import": "./dist/layout/index.js", "types": "./dist/layout/index.d.ts" },
|
||||
"./auth": { "import": "./dist/auth/index.js", "types": "./dist/auth/index.d.ts" },
|
||||
"./auth/server":{ "import": "./dist/auth/server.js", "types": "./dist/auth/server.d.ts" },
|
||||
"./auth/middleware": { "import": "./dist/auth/middleware.js", "types": "./dist/auth/middleware.d.ts" },
|
||||
"./shell": { "import": "./dist/shell/index.js", "types": "./dist/shell/index.d.ts" },
|
||||
"./shell/server":{ "import": "./dist/shell/server.js", "types": "./dist/shell/server.d.ts" },
|
||||
"./data": { "import": "./dist/data/index.js", "types": "./dist/data/index.d.ts" },
|
||||
"./forms": { "import": "./dist/forms/index.js", "types": "./dist/forms/index.d.ts" },
|
||||
"./feedback": { "import": "./dist/feedback/index.js", "types": "./dist/feedback/index.d.ts" },
|
||||
"./navigation": { "import": "./dist/navigation/index.js", "types": "./dist/navigation/index.d.ts" },
|
||||
"./api": { "import": "./dist/api/index.js", "types": "./dist/api/index.d.ts" },
|
||||
"./utils": { "import": "./dist/utils/index.js", "types": "./dist/utils/index.d.ts" }
|
||||
},
|
||||
"sideEffects": [
|
||||
"**/*.css"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "tsc -p tsconfig.json --noEmit false",
|
||||
"postbuild": "node ./scripts/postbuild.cjs",
|
||||
"typecheck": "tsc -p tsconfig.json --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@limitless/ui": "file:../limitless-ui",
|
||||
"next-auth": "^5.0.0-beta.25",
|
||||
"next-intl": "^4.6.1",
|
||||
"zod": "^3.23.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bootstrap": "^5.3.3",
|
||||
"next": ">=15.0.0",
|
||||
"react": "^18.2.0 || ^19.0.0",
|
||||
"react-dom": "^18.2.0 || ^19.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^19.0.0",
|
||||
"@types/react-dom": "^19.0.0",
|
||||
"typescript": "^5.4.0"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user