feat(chrome)!: v0.4.0 — AdminShell + headers as /chrome sub-export
New `./chrome` entrypoint exporting `<AdminShell>` and the header
components (Search, SearchHistory, SearchOptions, Messages, BrowseApps,
HeaderCustomers, HeaderContacts, LogoutButton). Refactored from the
Chronos-style AdminShell that gscCRM was vendoring byte-for-byte —
header/footer/sidebar are now a single shared surface across apps.
Explicit props contract (no site-informations.json, no internal data
sources): `menus`, `apps`, `user`, `brand` are required; `features.*`
flags gate every section (search/browseApps/messages/notifications/
subbar*/pageHeader*/activityPanel/chat/footer); `slots.*` lets apps
inject content; `labels` overrides the next-intl "chrome" namespace.
Locale-aware navigation: chrome calls useLocale() and prepends
/{locale} to internal menu URLs, leaving externals (http(s)://…) and
the "#" sentinel alone. Breadcrumbs and the path-derived page title
strip the leading locale segment so they read "Contacts" not
"En › Contacts". Necessary for `localePrefix: 'always'` consumers like
gscCRM.
Phosphor 2.x icons: `normalizeIconClass` prepends the base `ph` class
(compound selectors `.ph.ph-house:before` require both). All hardcoded
`<i className="ph-…">` sites switched to `ph ph-…`.
`next-intl` and `next-auth` moved to peerDependencies (with devDep
copies for the kit's own typecheck/build). Consumers must symlink their
installed copies into the kit's node_modules at build time — otherwise
useTranslations()/useSession() bind to a separate React context and
next-intl throws Error(void 0) on render.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
29
package.json
29
package.json
@@ -1,12 +1,16 @@
|
||||
{
|
||||
"name": "@gsc/web-kit",
|
||||
"version": "0.3.0",
|
||||
"description": "GSC web app skeleton \u2014 layout, auth, data, forms, feedback, navigation. Built on @limitless/ui. Drop into a Next.js app and just write pages.",
|
||||
"version": "0.4.0",
|
||||
"description": "GSC web app skeleton — layout, auth, data, forms, feedback, navigation, chrome. 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",
|
||||
"files": [
|
||||
"dist",
|
||||
"migrations"
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
@@ -37,6 +41,10 @@
|
||||
"types": "./dist/shell/server.d.ts",
|
||||
"import": "./dist/shell/server.js"
|
||||
},
|
||||
"./chrome": {
|
||||
"types": "./dist/chrome/index.d.ts",
|
||||
"import": "./dist/chrome/index.js"
|
||||
},
|
||||
"./data": {
|
||||
"types": "./dist/data/index.d.ts",
|
||||
"import": "./dist/data/index.js"
|
||||
@@ -60,7 +68,10 @@
|
||||
"./utils": {
|
||||
"types": "./dist/utils/index.d.ts",
|
||||
"import": "./dist/utils/index.js"
|
||||
}
|
||||
},
|
||||
"./migrations/nav-schema.up.sql": "./migrations/nav-schema.up.sql",
|
||||
"./migrations/nav-apps-seed.up.sql": "./migrations/nav-apps-seed.up.sql",
|
||||
"./migrations/nav-menu-items-template.sql": "./migrations/nav-menu-items-template.sql"
|
||||
},
|
||||
"sideEffects": [
|
||||
"**/*.css"
|
||||
@@ -72,24 +83,28 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@limitless/ui": "file:../limitless-ui",
|
||||
"next-auth": "^5.0.0-beta.25",
|
||||
"next-intl": "^4.6.1",
|
||||
"zod": "^3.23.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@gsc/chat": "*",
|
||||
"bootstrap": "^5.3.3",
|
||||
"next": ">=15.0.0",
|
||||
"next-auth": "^5.0.0-beta.25",
|
||||
"next-intl": "^4.6.0",
|
||||
"react": "^18.2.0 || ^19.0.0",
|
||||
"react-dom": "^18.2.0 || ^19.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bootstrap": { "optional": true }
|
||||
"bootstrap": { "optional": true },
|
||||
"@gsc/chat": { "optional": true }
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.11.0",
|
||||
"@types/react": "^19.0.0",
|
||||
"@types/react-dom": "^19.0.0",
|
||||
"next": "16.1.1",
|
||||
"next-auth": "^5.0.0-beta.25",
|
||||
"next-intl": "^4.6.1",
|
||||
"typescript": "^5.4.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user