mirror of
https://github.com/spartan-ng/spartan.git
synced 2026-09-22 16:41:38 +08:00
74baa469d7
* feat(message-scroller): add Brain and Helm chat transcript scroller Port shadcn message-scroller behavior (auto-follow, scroll anchors, prepend preserve, overflow signals) with CLI generator, registry CSS, docs previews, and Storybook stories. * fix(message-scroller): pin CLI brain peer to 1.3.1 Match the rest of supported-ui-libraries.json and libs/brain so generators do not install an older Brain that lacks the message-scroller entrypoint. * fix(message-scroller): rebuild visibility observer on margin changes IntersectionObserver rootMargin is fixed at construction. Recreate the observer when scrollMargin or scrollPreviousItemPeek change while visibility tracking is active so visible ids stay aligned with geometry. * fix(message-scroller): polish demos and harden configure/destroy * style(message-scroller): apply prettier formatting * fix(message-scroller): move stable layout to Helm and Brain attrs Keep theme CSS for sizing/visual knobs only; host data-direction and first-frame hide on Brain so Helm stays styling-only. * fix(message-scroller): move Helm styles out of theme CSS Keep scrollbar width stable during autoScroll, put Tailwind classes on Helm so the CLI does not drop non-@apply rules, and center the jump button with start-1/2. Co-authored-by: Cursor <cursoragent@cursor.com> * feat(message-scroller): move scroller content gap into styles * docs: add message scroller nav item * chore: update tailwind 4.3 for scrollbar-* utils * feat(message-scroller): add data-autoscrolling classes to viewport * feat(message-scroller): update scroller button classes --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Marc Stammerjohann <8985933+marcjulian@users.noreply.github.com>
232 lines
7.5 KiB
JSON
232 lines
7.5 KiB
JSON
{
|
|
"name": "spartan",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"license": "MIT",
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "NODE_OPTIONS=--max-old-space-size=6000 nx run-many --target build --all --parallel=1",
|
|
"build-storybook": "nx build-storybook ui-storybook",
|
|
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
|
|
"dev": "nx serve app",
|
|
"drizzle": "npx drizzle-kit generate --config=./apps/app/drizzle.config.ts",
|
|
"e2e": "nx run-many --target e2e --projects=tag:scope:e2e --all --parallel=1 --outputStyle=stream",
|
|
"format": "nx format --write --all",
|
|
"generate-snippets": "npx nx generate @spartan-ng/tools:generate-primitive-snippets",
|
|
"lint": "nx run-many --target=lint --parallel",
|
|
"pre-manual-release": "pnpm run prepare-manual-release && pnpm run format && nx run tools:lint --fix",
|
|
"prepare-manual-release": "nx g @spartan-ng/tools:set-release-version && nx run-many --target=lint --parallel --fix && nx g @spartan-ng/tools:hlm-to-cli-generator",
|
|
"release": "pnpm run release-ui && pnpm run release-cli && pnpm run release-mcp",
|
|
"release-cli": "nx run-many --target=release --projects=tag:scope:cli --parallel=1",
|
|
"release-mcp": "nx run-many --target=release --projects=tag:scope:mcp --parallel=1",
|
|
"release-ui": "nx run-many --target=release --projects=tag:scope:brain --parallel=1",
|
|
"smoke": "nx run cli-smoke:smoke",
|
|
"start": "nx serve app",
|
|
"storybook": "nx storybook ui-storybook",
|
|
"test": "nx run-many --target test --all",
|
|
"update-contributors": "nx generate @spartan-ng/tools:update-contributors",
|
|
"update-hlm-component-preview": "nx generate @spartan-ng/tools:generate-hlm-component-preview",
|
|
"update-ui-docs-snapshot": "nx run tools:generate-ui-docs && nx test tools --skip-nx-cache -- --update"
|
|
},
|
|
"dependencies": {
|
|
"@algolia/client-search": "^5.40.0",
|
|
"@analogjs/content": "2.1.3",
|
|
"@analogjs/router": "2.1.3",
|
|
"@analogjs/trpc": "~0.5.0",
|
|
"@analogjs/vite-plugin-angular": "2.1.3",
|
|
"@angular/animations": "21.2.16",
|
|
"@angular/cdk": "21.2.14",
|
|
"@angular/common": "21.2.16",
|
|
"@angular/compiler": "21.2.16",
|
|
"@angular/core": "21.2.16",
|
|
"@angular/forms": "21.2.16",
|
|
"@angular/platform-browser": "21.2.16",
|
|
"@angular/platform-browser-dynamic": "21.2.16",
|
|
"@angular/platform-server": "21.2.16",
|
|
"@angular/router": "21.2.16",
|
|
"@angular/ssr": "21.2.14",
|
|
"@fontsource-variable/noto-sans-arabic": "^5.2.10",
|
|
"@fontsource-variable/noto-sans-hebrew": "^5.2.8",
|
|
"@fontsource/geist": "^5.2.5",
|
|
"@fontsource/geist-mono": "^5.2.5",
|
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
"@ng-icons/core": "^32.2.0",
|
|
"@nx/angular": "22.7.5",
|
|
"@nx/devkit": "22.7.5",
|
|
"@nx/plugin": "22.7.5",
|
|
"@stackblitz/sdk": "^1.11.0",
|
|
"@swc/helpers": "0.5.23",
|
|
"@tanstack/angular-charts": "0.16.0",
|
|
"@tanstack/angular-table": "9.1.2",
|
|
"@tanstack/charts": "0.16.0",
|
|
"@testing-library/cypress": "^10.0.2",
|
|
"@trpc/client": "10.45.2",
|
|
"@trpc/server": "10.45.2",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"drizzle-orm": "^0.33.0",
|
|
"embla-carousel-angular": "21.0.0",
|
|
"embla-carousel-autoplay": "^8.6.0",
|
|
"enquirer": "2.4.1",
|
|
"front-matter": "^4.0.2",
|
|
"h3": "^1.12.0",
|
|
"isomorphic-fetch": "^3.0.0",
|
|
"luxon": "^3.7.2",
|
|
"marked": "15.0.9",
|
|
"marked-gfm-heading-id": "4.1.2",
|
|
"marked-highlight": "2.2.2",
|
|
"marked-mangle": "1.1.11",
|
|
"mermaid": "^11.2.1",
|
|
"ngx-scrollbar": "19.1.5",
|
|
"ngxtension": "^7.0.2",
|
|
"node-html-parser": "^7.0.1",
|
|
"ofetch": "^1.4.0",
|
|
"ohash": "^1.1.4",
|
|
"postcss-selector-parser": "^7.1.1",
|
|
"postgres": "^3.4.4",
|
|
"prismjs": "^1.29.0",
|
|
"rxjs": "~7.8.2",
|
|
"semver": "7.6.3",
|
|
"storybook": "10.4.2",
|
|
"superjson": "^2.2.1",
|
|
"tailwind-merge": "^3.7.0",
|
|
"tslib": "~2.8.1",
|
|
"tw-animate-css": "^1.4.0",
|
|
"ufo": "1.5.4",
|
|
"zod": "^3.25.76",
|
|
"zone.js": "0.16.2"
|
|
},
|
|
"devDependencies": {
|
|
"@analogjs/platform": "2.1.3",
|
|
"@angular-devkit/build-angular": "21.2.14",
|
|
"@angular-devkit/core": "21.2.14",
|
|
"@angular-devkit/schematics": "21.2.14",
|
|
"@angular/build": "21.2.14",
|
|
"@angular/cli": "21.2.14",
|
|
"@angular/compiler-cli": "21.2.16",
|
|
"@angular/language-service": "21.2.16",
|
|
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
|
"@commitlint/cli": "^19.5.0",
|
|
"@commitlint/config-conventional": "^19.5.0",
|
|
"@eslint/js": "^9.15.0",
|
|
"@faker-js/faker": "^9.0.3",
|
|
"@ng-icons/lucide": "^32.2.0",
|
|
"@ng-icons/remixicon": "^32.2.0",
|
|
"@ng-icons/tabler-icons": "^32.2.0",
|
|
"@nx/cypress": "22.7.5",
|
|
"@nx/eslint": "22.7.5",
|
|
"@nx/eslint-plugin": "22.7.5",
|
|
"@nx/js": "22.7.5",
|
|
"@nx/storybook": "22.7.5",
|
|
"@nx/vite": "22.7.5",
|
|
"@nx/vitest": "22.7.5",
|
|
"@nx/web": "22.7.5",
|
|
"@nx/workspace": "22.7.5",
|
|
"@phenomnomnominal/tsquery": "^6.1.3",
|
|
"@rollup/plugin-replace": "^6.0.1",
|
|
"@schematics/angular": "21.2.14",
|
|
"@semantic-release/changelog": "^6.0.3",
|
|
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
"@semantic-release/exec": "^6.0.3",
|
|
"@semantic-release/git": "^10.0.1",
|
|
"@semantic-release/github": "^12.0.8",
|
|
"@semantic-release/npm": "^12.0.1",
|
|
"@semantic-release/release-notes-generator": "^14.0.1",
|
|
"@storybook/addon-a11y": "10.4.2",
|
|
"@storybook/addon-docs": "10.4.2",
|
|
"@storybook/addon-themes": "10.4.2",
|
|
"@storybook/angular": "10.4.2",
|
|
"@swc-node/register": "1.11.1",
|
|
"@swc/cli": "0.7.10",
|
|
"@swc/core": "1.15.8",
|
|
"@tailwindcss/cli": "^4.3.3",
|
|
"@tailwindcss/postcss": "^4.3.3",
|
|
"@testing-library/angular": "^19.4.1",
|
|
"@testing-library/jest-dom": "^6.5.0",
|
|
"@testing-library/user-event": "^14.5.2",
|
|
"@types/luxon": "^3.4.2",
|
|
"@types/marked": "^5.0.2",
|
|
"@types/node": "22.6.2",
|
|
"@types/prismjs": "^1.26.4",
|
|
"@types/semver": "^7.5.8",
|
|
"@typescript-eslint/utils": "^8.33.1",
|
|
"@vitest/browser": "2.1.9",
|
|
"@vitest/coverage-v8": "^2.1.8",
|
|
"@vitest/ui": "^2.1.8",
|
|
"angular-eslint": "21.4.0",
|
|
"axe-core": "^4.10.0",
|
|
"conventional-changelog": "^6.0.0",
|
|
"conventional-changelog-cli": "^5.0.0",
|
|
"cypress": "14.3.2",
|
|
"cypress-axe": "^1.5.0",
|
|
"cypress-real-events": "^1.13.0",
|
|
"drizzle-kit": "0.24.2",
|
|
"embla-carousel": "^8.6.0",
|
|
"esbuild": "^0.24.0",
|
|
"eslint": "^9.28.0",
|
|
"eslint-config-prettier": "10.1.2",
|
|
"eslint-plugin-cypress": "^3.5.0",
|
|
"eslint-plugin-storybook": "10.4.2",
|
|
"jiti": "2.4.2",
|
|
"jsdom": "^26.1.0",
|
|
"jsonc-eslint-parser": "^2.1.0",
|
|
"less": "^4.2.0",
|
|
"ng-packagr": "21.2.5",
|
|
"nx": "22.7.5",
|
|
"picocolors": "^1.1.1",
|
|
"playwright": "^1.47.2",
|
|
"postcss": "^8.5.13",
|
|
"postcss-import": "~16.1.0",
|
|
"postcss-preset-env": "~10.0.5",
|
|
"postcss-url": "~10.1.3",
|
|
"prettier": "^3.8.1",
|
|
"prettier-plugin-organize-imports": "^4.3.0",
|
|
"prettier-plugin-packagejson": "^3.0.0",
|
|
"prettier-plugin-tailwindcss": "^0.8.1",
|
|
"rollup": "^4.22.5",
|
|
"rollup-plugin-typescript-paths": "^1.5.0",
|
|
"rollup-plugin-visualizer": "^5.12.0",
|
|
"semantic-release": "^24.1.2",
|
|
"start-server-and-test": "^2.0.8",
|
|
"tailwindcss": "^4.3.3",
|
|
"tinyglobby": "^0.2.14",
|
|
"ts-morph": "^25.0.1",
|
|
"ts-node": "10.9.2",
|
|
"tw-animate-css": "^1.4.0",
|
|
"types-tsconfig": "^2.1.1",
|
|
"typescript": "5.9.3",
|
|
"typescript-eslint": "^8.33.1",
|
|
"verdaccio": "^6.7.2",
|
|
"vite": "6.2.1",
|
|
"vite-tsconfig-paths": "5.0.1",
|
|
"vitest": "^2.1.8"
|
|
},
|
|
"packageManager": "pnpm@10.30.3",
|
|
"engines": {
|
|
"node": ">=22.15",
|
|
"npm": "please-use-pnpm",
|
|
"pnpm": ">=10",
|
|
"yarn": "please-use-pnpm"
|
|
},
|
|
"engineStrict": true,
|
|
"pnpm": {
|
|
"overrides": {
|
|
"form-data": ">=4.0.5",
|
|
"handlebars": ">=4.7.9"
|
|
}
|
|
},
|
|
"nx": {
|
|
"includedScripts": []
|
|
},
|
|
"readme": "ERROR: No README data found!",
|
|
"trustedDependencies": [
|
|
"core-js",
|
|
"nx",
|
|
"esbuild",
|
|
"@swc/core",
|
|
"cypress",
|
|
"sharp"
|
|
],
|
|
"_id": "spartan@0.0.0"
|
|
}
|