Set up shared package for components and utilities#13486
Conversation
# Conflicts: # packages/site_shared/lib/_sass/base/_mixins.scss # packages/site_shared/lib/_sass/base/_reset.scss # packages/site_shared/lib/_sass/components/_alert.scss # packages/site_shared/lib/_sass/components/_banner.scss # packages/site_shared/lib/_sass/components/_breadcrumbs.scss # packages/site_shared/lib/_sass/components/_button.scss # packages/site_shared/lib/_sass/components/_card.scss # packages/site_shared/lib/_sass/components/_code.scss # packages/site_shared/lib/_sass/components/_cookie-notice.scss # packages/site_shared/lib/_sass/components/_dropdown.scss # packages/site_shared/lib/_sass/components/_quiz.scss # packages/site_shared/lib/_sass/components/_site-switcher.scss # packages/site_shared/lib/_sass/components/_stepper.scss # packages/site_shared/lib/_sass/components/_summary-card.scss # packages/site_shared/lib/_sass/components/_tabs.scss # packages/site_shared/lib/_sass/components/_theming.scss # packages/site_shared/lib/_sass/components/_tooltip.scss # packages/site_shared/lib/components/common/breadcrumbs.dart # packages/site_shared/lib/components/common/button.dart # packages/site_shared/lib/components/common/card.dart # packages/site_shared/lib/components/common/chip.dart # packages/site_shared/lib/components/common/client/collapse_button.dart # packages/site_shared/lib/components/common/client/cookie_notice.dart # packages/site_shared/lib/components/common/client/copy_button.dart # packages/site_shared/lib/components/common/client/download_button.dart # packages/site_shared/lib/components/common/client/feedback.dart # packages/site_shared/lib/components/common/client/on_this_page_button.dart # packages/site_shared/lib/components/common/client/page_header_options.dart # packages/site_shared/lib/components/common/client/simple_tooltip.dart # packages/site_shared/lib/components/common/dropdown.dart # packages/site_shared/lib/components/common/fragment_target.dart # packages/site_shared/lib/components/common/material_icon.dart # packages/site_shared/lib/components/common/search.dart # packages/site_shared/lib/components/common/tabs.dart # packages/site_shared/lib/components/common/tags.dart # packages/site_shared/lib/components/common/tooltip.dart # packages/site_shared/lib/components/common/wrapped_code_block.dart # packages/site_shared/lib/components/common/youtube_embed.dart # packages/site_shared/lib/components/dartpad/dartpad_injector.dart # packages/site_shared/lib/components/dartpad/embedded_dartpad.dart # packages/site_shared/lib/components/layout/menu_toggle.dart # packages/site_shared/lib/components/layout/site_switcher.dart # packages/site_shared/lib/components/layout/theme_switcher.dart # packages/site_shared/lib/components/tutorial/client/progress_ring.dart # packages/site_shared/lib/components/tutorial/client/quiz.dart # packages/site_shared/lib/components/tutorial/downloadable_snippet.dart # packages/site_shared/lib/components/tutorial/models/quiz_model.dart # packages/site_shared/lib/components/tutorial/models/summary_card_model.dart # packages/site_shared/lib/components/tutorial/models/tutorial_model.dart # packages/site_shared/lib/components/tutorial/progress_ring.dart # packages/site_shared/lib/components/tutorial/stepper.dart # packages/site_shared/lib/components/tutorial/summary_card.dart # packages/site_shared/lib/components/tutorial/tutorial_outline.dart # packages/site_shared/lib/components/utils/global_event_listener.dart # packages/site_shared/lib/extensions/attribute_processor.dart # packages/site_shared/lib/extensions/code_block_processor.dart # packages/site_shared/lib/extensions/header_extractor.dart # packages/site_shared/lib/extensions/header_processor.dart # packages/site_shared/lib/extensions/table_processor.dart # packages/site_shared/lib/src/builders/styles_hash_builder.dart # packages/site_shared/lib/src/highlight/theme/dark.dart # packages/site_shared/lib/src/highlight/theme/light.dart # packages/site_shared/lib/src/highlight/token_renderer.dart # packages/site_shared/lib/src/markdown/alert_syntax.dart # packages/site_shared/lib/src/markdown/attribute_syntax.dart # packages/site_shared/lib/src/markdown/fenced_code_block_syntax.dart # packages/site_shared/lib/src/markdown/header_syntax.dart # packages/site_shared/lib/src/markdown/markdown_parser.dart # packages/site_shared/lib/src/utils/retake_element.dart # packages/site_shared/lib/src/utils/retake_element_web.dart # pubspec.yaml # site/lib/_sass/base/_mixins.scss # site/lib/_sass/base/_reset.scss # site/lib/_sass/components/_alert.scss # site/lib/_sass/components/_banner.scss # site/lib/_sass/components/_breadcrumbs.scss # site/lib/_sass/components/_button.scss # site/lib/_sass/components/_card.scss # site/lib/_sass/components/_code.scss # site/lib/_sass/components/_cookie-notice.scss # site/lib/_sass/components/_dropdown.scss # site/lib/_sass/components/_quiz.scss # site/lib/_sass/components/_site-switcher.scss # site/lib/_sass/components/_stepper.scss # site/lib/_sass/components/_summary-card.scss # site/lib/_sass/components/_tabs.scss # site/lib/_sass/components/_theming.scss # site/lib/_sass/components/_tooltip.scss # site/lib/src/builders/styles_hash_builder.dart # site/lib/src/components/common/breadcrumbs.dart # site/lib/src/components/common/button.dart # site/lib/src/components/common/card.dart # site/lib/src/components/common/chip.dart # site/lib/src/components/common/client/collapse_button.dart # site/lib/src/components/common/client/cookie_notice.dart # site/lib/src/components/common/client/copy_button.dart # site/lib/src/components/common/client/download_button.dart # site/lib/src/components/common/client/feedback.dart # site/lib/src/components/common/client/on_this_page_button.dart # site/lib/src/components/common/client/page_header_options.dart # site/lib/src/components/common/client/simple_tooltip.dart # site/lib/src/components/common/dropdown.dart # site/lib/src/components/common/fragment_target.dart # site/lib/src/components/common/material_icon.dart # site/lib/src/components/common/search.dart # site/lib/src/components/common/tabs.dart # site/lib/src/components/common/tags.dart # site/lib/src/components/common/tooltip.dart # site/lib/src/components/common/wrapped_code_block.dart # site/lib/src/components/common/youtube_embed.dart # site/lib/src/components/dartpad/dartpad_injector.dart # site/lib/src/components/dartpad/embedded_dartpad.dart # site/lib/src/components/layout/menu_toggle.dart # site/lib/src/components/layout/site_switcher.dart # site/lib/src/components/layout/theme_switcher.dart # site/lib/src/components/tutorial/client/progress_ring.dart # site/lib/src/components/tutorial/client/quiz.dart # site/lib/src/components/tutorial/downloadable_snippet.dart # site/lib/src/components/tutorial/progress_ring.dart # site/lib/src/components/tutorial/stepper.dart # site/lib/src/components/tutorial/summary_card.dart # site/lib/src/components/tutorial/tutorial_outline.dart # site/lib/src/components/util/global_event_listener.dart # site/lib/src/components/util/retake_element.dart # site/lib/src/components/util/retake_element_web.dart # site/lib/src/extensions/attribute_processor.dart # site/lib/src/extensions/code_block_processor.dart # site/lib/src/extensions/header_extractor.dart # site/lib/src/extensions/header_processor.dart # site/lib/src/extensions/table_processor.dart # site/lib/src/highlight/theme/dark.dart # site/lib/src/highlight/theme/light.dart # site/lib/src/highlight/token_renderer.dart # site/lib/src/markdown/alert_syntax.dart # site/lib/src/markdown/attribute_syntax.dart # site/lib/src/markdown/fenced_code_block_syntax.dart # site/lib/src/markdown/header_syntax.dart # site/lib/src/markdown/markdown_parser.dart # site/lib/src/models/quiz_model.dart # site/lib/src/models/summary_card_model.dart # site/lib/src/models/tutorial_model.dart # sites/docs/lib/_sass/base/_mixins.scss # sites/docs/lib/_sass/base/_reset.scss # sites/docs/lib/_sass/components/_alert.scss # sites/docs/lib/_sass/components/_banner.scss # sites/docs/lib/_sass/components/_breadcrumbs.scss # sites/docs/lib/_sass/components/_button.scss # sites/docs/lib/_sass/components/_card.scss # sites/docs/lib/_sass/components/_code.scss # sites/docs/lib/_sass/components/_cookie-notice.scss # sites/docs/lib/_sass/components/_dropdown.scss # sites/docs/lib/_sass/components/_quiz.scss # sites/docs/lib/_sass/components/_site-switcher.scss # sites/docs/lib/_sass/components/_stepper.scss # sites/docs/lib/_sass/components/_summary-card.scss # sites/docs/lib/_sass/components/_tabs.scss # sites/docs/lib/_sass/components/_theming.scss # sites/docs/lib/_sass/components/_tooltip.scss # sites/docs/lib/builders.dart # sites/docs/lib/src/builders/styles_hash_builder.dart # sites/docs/lib/src/components/common/breadcrumbs.dart # sites/docs/lib/src/components/common/button.dart # sites/docs/lib/src/components/common/card.dart # sites/docs/lib/src/components/common/chip.dart # sites/docs/lib/src/components/common/client/collapse_button.dart # sites/docs/lib/src/components/common/client/cookie_notice.dart # sites/docs/lib/src/components/common/client/copy_button.dart # sites/docs/lib/src/components/common/client/download_button.dart # sites/docs/lib/src/components/common/client/feedback.dart # sites/docs/lib/src/components/common/client/on_this_page_button.dart # sites/docs/lib/src/components/common/client/page_header_options.dart # sites/docs/lib/src/components/common/client/simple_tooltip.dart # sites/docs/lib/src/components/common/dropdown.dart # sites/docs/lib/src/components/common/fragment_target.dart # sites/docs/lib/src/components/common/material_icon.dart # sites/docs/lib/src/components/common/search.dart # sites/docs/lib/src/components/common/tabs.dart # sites/docs/lib/src/components/common/tags.dart # sites/docs/lib/src/components/common/tooltip.dart # sites/docs/lib/src/components/common/wrapped_code_block.dart # sites/docs/lib/src/components/common/youtube_embed.dart # sites/docs/lib/src/components/dartpad/dartpad_injector.dart # sites/docs/lib/src/components/dartpad/embedded_dartpad.dart # sites/docs/lib/src/components/layout/banner.dart # sites/docs/lib/src/components/layout/menu_toggle.dart # sites/docs/lib/src/components/layout/site_switcher.dart # sites/docs/lib/src/components/layout/theme_switcher.dart # sites/docs/lib/src/components/tutorial/client/progress_ring.dart # sites/docs/lib/src/components/tutorial/client/quiz.dart # sites/docs/lib/src/components/tutorial/downloadable_snippet.dart # sites/docs/lib/src/components/tutorial/progress_ring.dart # sites/docs/lib/src/components/tutorial/quiz.dart # sites/docs/lib/src/components/tutorial/stepper.dart # sites/docs/lib/src/components/tutorial/summary_card.dart # sites/docs/lib/src/components/tutorial/tutorial_outline.dart # sites/docs/lib/src/components/util/component_ref.dart # sites/docs/lib/src/components/util/global_event_listener.dart # sites/docs/lib/src/components/util/retake_element.dart # sites/docs/lib/src/components/util/retake_element_vm.dart # sites/docs/lib/src/components/util/retake_element_web.dart # sites/docs/lib/src/extensions/attribute_processor.dart # sites/docs/lib/src/extensions/code_block_processor.dart # sites/docs/lib/src/extensions/header_extractor.dart # sites/docs/lib/src/extensions/header_processor.dart # sites/docs/lib/src/extensions/table_processor.dart # sites/docs/lib/src/highlight/theme/dark.dart # sites/docs/lib/src/highlight/theme/light.dart # sites/docs/lib/src/highlight/token_renderer.dart # sites/docs/lib/src/layouts/dash_layout.dart # sites/docs/lib/src/layouts/flutter_layout.dart # sites/docs/lib/src/markdown/alert_syntax.dart # sites/docs/lib/src/markdown/attribute_syntax.dart # sites/docs/lib/src/markdown/fenced_code_block_syntax.dart # sites/docs/lib/src/markdown/header_syntax.dart # sites/docs/lib/src/markdown/markdown_parser.dart # sites/docs/lib/src/models/quiz_model.dart # sites/docs/lib/src/models/summary_card_model.dart # sites/docs/lib/src/models/tutorial_model.dart # sites/docs/lib/src/util.dart # sites/docs/pubspec.yaml # sites/docs/src/data/banner.yml # sites/docs/src/data/site.yml
|
Staged preview of the updated docs.flutter.dev site (updated for commit ad806da): https://flutter-docs-prod--docs-pr13486-feat-site-shared-227hub3q.web.app |
|
Staged preview of the updated flutter.dev site (updated for commit ad806da): https://flutter-dev-230821--www-pr13486-feat-site-shared-w9ez94yu.web.app |
|
/gemini review |
Updates the docs-site banner to be updated by modifying the `sites/docs/src/data/banner.yml` file, specifying entries as either text or link based. This better fits our site implementation and will enable sharing additional setup with dart.dev. Extracted and modified from #13486.
sfshaza2
left a comment
There was a problem hiding this comment.
I know it's in draft form... lgtm
# Conflicts: # packages/site_shared/lib/layouts/dash_layout.dart # sites/docs/lib/src/components/layout/banner.dart # sites/docs/src/data/banner.yml
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request extracts shared logic, UI components, styles, and layouts from the docs site into a new centralized package named site_shared, updating the docs site to depend on it. The code review identified numerous critical syntax errors introduced during this refactoring, primarily consisting of invalid method and constructor shorthand invocations (such as .text, .fragment, .fromEnvironment, and .empty()) and unqualified enum values (e.g., .macOS, .windows). Additionally, issues regarding a potential null-pointer dereference on codeElement in CopyButton and a type mismatch with progress in ProgressRing were raised.
Adds a new
site_sharedpackage that contains components and other utilities for sharing with dart-lang/site-www.SiteSwitcherandQuiz)