diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 525aa60..a22ffae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: with: fetch-depth: 0 - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 - uses: actions/setup-node@v5 with: diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 8d52b0f..0bec404 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -8,20 +8,18 @@ on: permissions: contents: read - pages: write - id-token: write concurrency: - group: pages + group: deploy-docs cancel-in-progress: true jobs: - build: + deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v6 - uses: actions/setup-node@v5 with: @@ -33,22 +31,13 @@ jobs: - name: Build docs run: pnpm nx build docs - env: - DOCS_BASE: /angular-gsap/ - - - name: SPA fallback - run: cp dist/apps/docs/analog/public/index.html dist/apps/docs/analog/public/404.html - - - uses: actions/upload-pages-artifact@v4 - with: - path: dist/apps/docs/analog/public - deploy: - needs: build - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - id: deployment - uses: actions/deploy-pages@v4 + - name: Deploy to Netlify + run: > + pnpm dlx netlify-cli deploy + --prod + --dir dist/apps/docs/analog/public + --message "${{ github.event_name }}: ${{ github.sha }}" + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} diff --git a/README.md b/README.md index 39c3fc9..766df6d 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,10 @@ signals; change one and the entrance replays. When the OS asks for reduced motion they don't animate at all. They are deliberately **not** general-purpose tween wrappers: anything beyond a preset entrance belongs in `injectGsap`. +There are ten more preset directives (`splitReveal`, `scrambleText`, `drawSvg`, +`counter`, `parallax`, `drag`, `scrollTo`, `observe`, `hover`, `sequence`), +each covered with a running demo in the docs. + ### Patterns **State-driven choreography.** A `viewChildren` query is a signal: when state adds or removes elements, the query updates and the animation replays, with the DOM already rendered: @@ -212,7 +216,7 @@ pnpm nx serve docs ## Small and fast -- The package is about 6 kB (FESM + types) with no dependencies beyond Angular, GSAP, and tslib. No rxjs, no zone.js. +- The package is about 6 kB minified and gzipped, with no dependencies beyond Angular, GSAP, and tslib. No rxjs, no zone.js. - `sideEffects: false`: exports you don't use (the directives, the helpers) tree-shake away, and GSAP plugins are bundled only when you import them. `provideGsap` also works in lazy route `providers`, which keeps a plugin's code in that route's chunk instead of the main bundle. - Animations are created outside Angular's change detection and run on GSAP's ticker. A 60 fps tween schedules no Angular work, and the whole library is zoneless-ready. diff --git a/apps/docs/public/_redirects b/apps/docs/public/_redirects new file mode 100644 index 0000000..7797f7c --- /dev/null +++ b/apps/docs/public/_redirects @@ -0,0 +1 @@ +/* /index.html 200 diff --git a/apps/docs/src/app/pages/(home).page.ts b/apps/docs/src/app/pages/(home).page.ts index e6b2035..28df282 100644 --- a/apps/docs/src/app/pages/(home).page.ts +++ b/apps/docs/src/app/pages/(home).page.ts @@ -57,7 +57,7 @@ const COPY = { }, { title: 'Tree-shakeable', - body: 'Use two directives and the other nine leave your bundle. Plugins cost bytes only when you import them.', + body: 'Use two directives and the other ten leave your bundle. Plugins cost bytes only when you import them.', }, { title: 'Zero change detection cost', @@ -105,7 +105,7 @@ const COPY = { }, { title: 'Tree-shakeable', - body: 'Usa dos directivas y las otras nueve salen del bundle. Los plugins cuestan bytes solo cuando los importas.', + body: 'Usa dos directivas y las otras diez salen del bundle. Los plugins cuestan bytes solo cuando los importas.', }, { title: 'Cero costo en change detection', diff --git a/apps/docs/src/app/pages/reference.page.ts b/apps/docs/src/app/pages/reference.page.ts index 3b14cd4..037bb97 100644 --- a/apps/docs/src/app/pages/reference.page.ts +++ b/apps/docs/src/app/pages/reference.page.ts @@ -144,6 +144,13 @@ export const routeMeta: RouteMeta = { tween. +
effectsgsap.registerEffect(), usable as
+ gsap.effects.name() in any callback.
+