ui icon indicating copy to clipboard operation
ui copied to clipboard

Chore/update ng 20

Open yangxiaolang opened this issue 4 months ago • 2 comments

Summary by CodeRabbit

  • New Features

    • Textarea inputs now support vertical resizing and improved overflow handling.
  • Refactor

    • Styles migrated to Sass modules with a unified theme entrypoint and namespaced theme utilities.
    • Storybook documentation/config upgraded to the newer addon format.
    • Reduced legacy portal/overlay internals for a leaner runtime.
  • Chores

    • Upgraded Angular, Storybook, TypeScript, and Yarn; added Yarn config and registry mirror.
    • Build now compiles Sass programmatically and copies theme assets.
    • Adopted ESLint flat-config and adjusted Stylelint rules.

yangxiaolang avatar Aug 27 '25 03:08 yangxiaolang

⚠️ No Changeset found

Latest commit: 39ab60e98981a0716cf1566ba4995138b1d200fd

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

changeset-bot[bot] avatar Aug 27 '25 03:08 changeset-bot[bot]

Walkthrough

Migrate most SCSS from legacy @import to Sass modules (@use/@forward) and add a theme entrypoint; upgrade tooling (Yarn→v4, Angular→v20, Storybook→v9, ESLint flat-config); replace gulp-dart-sass with dart-sass API in build scripts; remove ComponentFactoryResolver usages from portal/host code; refactor TableComponent template/providers; enable Corepack in CI and adjust related scripts.

Changes

Cohort / File(s) Summary
Storybook config & stories
.storybook/global.scss, .../.storybook/main.ts, .../.storybook/manager.ts, .../.storybook/preview.ts, stories/*/*.mdx
Switch Storybook SCSS @import@use; remove legacy addons from .storybook/main.ts; change some Storybook import paths (@storybook/manager-apistorybook/manager-api); update MDX imports to @storybook/addon-docs/blocks.
Tooling & CI
.stylelintrc, .yarnrc.yml, eslint.config.mjs, package.json, .github/workflows/*.yml
Add Yarn v4 config and npm mirror, enable Corepack steps in CI workflows, add Stylelint SCSS override, migrate ESLint to flat-config (FlatCompat), bump Angular/TS/Storybook and add sass/sass-loader/tslib; update lint scripts and packageManager.
Build & resource scripts
scripts/build.js, scripts/copy-resources.js, scripts/publish-version.js, scripts/run-lint.js
Remove gulp-dart-sass; use sass (Dart Sass) compileString API, copy SCSS partials and CDK CSS via fs, ensure destination dirs and error handling; change dist-tags fetch to npm view; add scripts/run-lint.js to run linters/tsc in parallel.
Theme system & entrypoint
src/theme/*, src/theme/index.scss, src/theme/motion/*, src/theme/_var.scss, src/theme/_mixin.scss
Add src/theme/index.scss; convert theme modules to @use/@forward; namespace modules (e.g., var, mixin, base-var, motion); change mixin defaults to var-based durations and migrate helpers to var.use-*/CSS-var-backed forms.
Bulk SCSS migration
src/**/*.scss (many files; e.g., src/**/.../*.scss, src/accordion/**, src/button/**, src/date-picker/**, etc.)
Large mechanical refactor: replace @import with @use/@forward, add module aliases (commonly var, mixin, others), qualify mixins/functions (mixin.*, var.use-*), add @use 'sass:map' and convert map-getmap.get where applicable; minor local adjustments.
Portal / DI removals
src/anchor/anchor.directive.ts, src/select/helper-directives.ts, src/message/base-message.ts, src/message/message.service.ts, src/notification/notification.service.ts
Remove ComponentFactoryResolver from constructors/usages; stop passing it into DomPortalOutlet and super calls; adjust constructor signatures.
Table component refactor
src/table/table.component.ts
Replace CDK-internal template/providers with an inline template that supports native HTML table and non-native paths; remove _COALESCED_STYLE_SCHEDULER provider and reduce CDK internals.
Small Angular edits & lint cleanup
src/date-picker/calendar/header/component.ts, src/dialog/dialog-content/dialog-content.component.ts, src/select/validators.ts, src/notification/notification.config.ts
Use inject() in a component, remove unused imports/pipes, and delete several inline ESLint suppression comments; no algorithmic changes.
Trivial removals
src/message/message-wrapper.component.scss, src/notification/notification-wrapper.component.scss, src/tabs/tab-group.component.scss
Remove unused theme import lines or blank lines; no behavioral/style changes beyond import removal.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Host as Host App
  participant Table as TableComponent
  participant Outlets as header/row/footer outlets

  Note over Table: Template now chooses native vs non-native render path
  Host->>Table: render <aui-table>
  alt native HTML table
    Table->>Outlets: render thead / tbody / tfoot with outlets
  else non-native
    Table->>Outlets: render headerRowOutlet / rowOutlet / noDataRowOutlet / footerRowOutlet
  end
sequenceDiagram
  autonumber
  participant Directive as Anchor/OptionContent/MessageService
  participant DOM as document.body
  participant App as ApplicationRef
  participant Inj as Injector
  participant Portal as DomPortalOutlet

  Note over Directive: ComponentFactoryResolver removed from constructor
  Directive->>Portal: new DomPortalOutlet(DOM, App, Inj)
  Portal-->>Directive: outlet ready (attach/detach unchanged)

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

I thump my paws on fresh new ground,
Old imports swapped for modules sound 🧶
Portals slimmer, tables reframe,
Themes gathered under one name.
Yarn and stories hop — hooray, spring! 🐇✨

[!TIP]

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
  • [ ] 📝 Generate Docstrings
🧪 Generate unit tests
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment
  • [ ] Commit unit tests in branch chore/update-ng-20

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbit in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbit in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbit gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbit read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbit help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbit ignore or @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbit summary or @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbit or @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

coderabbitai[bot] avatar Aug 27 '25 03:08 coderabbitai[bot]