chore: initialize @limitless/ui git repo + add AppShell

This brings the long-untracked @limitless/ui source tree under version
control. Until now /srv/k8s/templates/limitless-ui has been a plain
file: dependency consumed by gscChronos / gscCRM / gscAdmin, with
copies scattered across web/gsc{Portal,WWW,Aether,Register}/ and
apps/gsc{Meet,Share}/. None were git-tracked.

Treating /srv/k8s/templates/limitless-ui as the canonical going
forward; secondary copies should be replaced with this version
in their consumers' Dockerfiles when they next get touched.

Changes in this initial commit beyond the snapshot:
- Add src/layout/AppShell.tsx — runtime-loaded chrome (header,
  sidebar, footer) backed by gsc-shell-api. Public surface:
    AppShell, ShellProvider, useShell, ShellConfig types
  Framework-agnostic (no Next.js dep). Apps pass appKey + apiUrl +
  getToken; AppShell composes the existing PageShell / Navbar /
  Sidebar / Footer primitives with API data.
- Re-export AppShell from src/index.ts.
- Fix build script: `tsc -p tsconfig.json --noEmit false`. The bare
  `tsc` command was a no-op because tsconfig.json sets noEmit:true
  for typecheck speed. Existing dist/ only existed because of an
  earlier emit; clean rebuilds were silently broken.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude
2026-05-10 09:42:57 +02:00
commit cf068ce4ec
115 changed files with 36542 additions and 0 deletions

62
package.json Normal file
View File

@@ -0,0 +1,62 @@
{
"name": "@limitless/ui",
"version": "0.1.0",
"description": "Limitless-inspired Bootstrap 5 React UI kit (no jQuery), ready for Next.js/Remix.",
"license": "MIT",
"type": "module",
"main": "dist/index.js",
"module": "dist/index.js",
"types": "dist/index.d.ts",
"exports": {
".": {
"import": "./dist/index.js",
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
},
"./css": "./dist/styles.css",
"./validation": {
"import": "./dist/validation/index.js",
"types": "./dist/validation/index.d.ts"
},
"./validation/server": {
"import": "./dist/validation/server/index.js",
"types": "./dist/validation/server/index.d.ts"
},
"./server": {
"import": "./dist/server/index.js",
"types": "./dist/server/index.d.ts"
},
"./genui/content": {
"import": "./dist/genui/content.js",
"types": "./dist/genui/content.d.ts"
}
},
"dependencies": {
"@floating-ui/react": "^0.24.8",
"nodemailer": "^6.9.0",
"@tanstack/react-table": "^8.13.0",
"react-colorful": "^5.6.1",
"react-day-picker": "^9.0.8",
"react-select": "^5.8.0"
},
"sideEffects": [
"**/*.css"
],
"scripts": {
"build": "tsc -p tsconfig.json --noEmit false",
"postbuild": "node ./scripts/postbuild.cjs",
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"peerDependencies": {
"bootstrap": "^5.3.3",
"react": "^18.2.0 || ^19.0.0",
"react-dom": "^18.2.0 || ^19.0.0"
},
"devDependencies": {
"@types/google.maps": "^3.55.0",
"@types/nodemailer": "^6.4.0",
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0",
"typescript": "^5.4.0"
}
}