Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Refactor Field components into the base component's package #25593

Merged
merged 28 commits into from
Nov 10, 2022

Conversation

behowell
Copy link
Contributor

@behowell behowell commented Nov 9, 2022

Current Behavior

All field components (e.g. InputField) are exported from the @fluentui/react-field package.

New Behavior

As discussed in RFC: Field Package Layout #25380, the individual field components (e.g. InputField) should be exported from their base component's package (e.g. @fluentui/react-input) instead of @fluentui/react-field.

Related Issue(s)

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 9, 2022

📊 Bundle size report

Unchanged fixtures
Package & Exports Size (minified/GZIP)
react-combobox
Combobox (including child components)
78.076 kB
24.991 kB
react-combobox
Dropdown (including child components)
77.363 kB
24.893 kB
react-components
react-components: Button, FluentProvider & webLightTheme
62.941 kB
17.678 kB
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
189.948 kB
52.993 kB
react-components
react-components: FluentProvider & webLightTheme
33.446 kB
11.033 kB
react-input
Input
24.112 kB
7.892 kB
react-portal-compat
PortalCompatProvider
5.857 kB
1.978 kB
react-progress
Progress
13.526 kB
5.113 kB
react-radio
Radio
36.436 kB
12.126 kB
react-radio
RadioGroup
14.294 kB
5.723 kB
react-select
Select
23.428 kB
8.023 kB
react-slider
Slider
32.108 kB
10.195 kB
react-spinbutton
SpinButton
44.42 kB
12.815 kB
react-switch
Switch
33.443 kB
10.585 kB
react-textarea
Textarea
25.687 kB
8.331 kB
🤖 This report was generated against 715bd7f0686e1080ec0cbbdb5aa14c0d6ef18498

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 9, 2022

Perf Analysis (@fluentui/react-components)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 1550 1600 5000
Button mount 1119 1137 5000
FluentProvider mount 1885 1840 5000
FluentProviderWithTheme mount 760 747 10
FluentProviderWithTheme virtual-rerender 687 695 10
FluentProviderWithTheme virtual-rerender-with-unmount 745 753 10
MakeStyles mount 2249 2267 50000
SpinButton mount 3103 2984 5000

@size-auditor
Copy link

size-auditor bot commented Nov 9, 2022

Asset size changes

Size Auditor did not detect a change in bundle size for any component!

Baseline commit: 715bd7f0686e1080ec0cbbdb5aa14c0d6ef18498 (build)

@codesandbox-ci
Copy link

codesandbox-ci bot commented Nov 9, 2022

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 8f5f3b7:

Sandbox Source
@fluentui/react 8 starter Configuration
@fluentui/react-components 9 starter Configuration

@behowell behowell marked this pull request as ready for review November 10, 2022 00:28
} from '@fluentui/react-field';
import { SparkleFilled } from '@fluentui/react-icons';
import { CheckboxField_unstable as CheckboxField } from '@fluentui/react-checkbox';
import { ComboboxField_unstable as ComboboxField } from '@fluentui/react-combobox';
import { FieldControl, FieldPropsWithOptionalComponentProps } from '@fluentui/react-field/src/Field';
Copy link
Contributor

@sopranopillow sopranopillow Nov 10, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore if this isn't an issue for vr-tests

Suggested change
import { FieldControl, FieldPropsWithOptionalComponentProps } from '@fluentui/react-field/src/Field';
import { FieldControl } from '@fluentui/react-field/src/Field';
import type { FieldPropsWithOptionalComponentProps } from '@fluentui/react-field/src/Field';

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It turns out this import caused a build failure anyways, so I removed it, and am using InputFieldProps instead.

import type { InputFieldProps_unstable as InputFieldProps } from '@fluentui/react-input';

@behowell behowell merged commit 39ba7b6 into microsoft:master Nov 10, 2022
@behowell behowell deleted the field/move-components branch November 10, 2022 02:40
sunilsurana added a commit to sunilsurana/fluentuifork1 that referenced this pull request Nov 12, 2022
* stress-test: add "afterframe" dependency (microsoft#25560)

Previously stress-test used a "requestPostAnimationFrame" function that
is used to measure from just before style recalc, layout and paint are
executed to just afterward.

This change drops that function in favor of taking a dependency on
afterframe, a library that does the same thing.

* Fix: Update tabs to remain the same size between unselected and selected states (microsoft#25542)

* Add support to keep tabs from changing size when selected

* Update for naming and tests

* Rename update

* Update packages/react-components/react-tabs/src/components/TabList/TabList.types.ts

Co-authored-by: Sean Monahan <[email protected]>

Co-authored-by: Sean Monahan <[email protected]>

* chore: Add reduced-motion documentation to Spinner (microsoft#25561)

* chore: Add reduced-motion documentation to Spinner

* change file

* chore: Add documentation to Progress about reduced-motion (microsoft#25563)

* chore: Add documentation to Progress about reduced-motion

* change file

* stress-test: disable CSS transitions on injected styles (microsoft#25559)

This addresses an issue where Firefox's style recalculation measurement
becomes unstable when controls under test have CSS transitions.

Specifically, our test injects styles that update the background color
of selected controls and many Fluent controls transition the background
color for different states like "hover" and "focus".

With transitions running Firefox will sometimes include the transition
time in the style recalc measurement and sometimes not. Additionally,
Chromium browsers never include the transition time in the measurement.

Disabling transitions ensures measurement behavior is consistent in
Firefox and in alignment with the behavior of Chromium browsers.

* docs(rfcs): add triage automation rfc (microsoft#24817)

* chore: update beachball ignore list to apply to new project structure (microsoft#25531)

* bugfix(react-switch): adds line-height=0 to switch indicator slot (microsoft#25507)

* chore: add both options to useArrowNavigationGroup (microsoft#25568)

* chore: add both options to useArrowNavigationGroup

* chore: add changes

* chore: update api

* chore(vr-tests-v9): Convert Dialog and Image VR tests to CSF (microsoft#25527)

* chore: toolbar a11y improvements (microsoft#25562)

* feat: create vertical example

* chore: add navigation arrows for vertical scenario

* chore: add labels for all toolbar stories

* chore: update tooltip example

* chore: update radio example

* chore: update toolbar stories examples

* chore: add changes

* chore: use both in toolbar arrow key nav

* chore: update snapshot

* chore(react-dialog): migrate to new package structure (microsoft#25523)

Co-authored-by: Oleksandr Fediashov <[email protected]>

* chore(react-overflow): migrate to new package structure (microsoft#25524)

* Expand @fluentui/react root index file's export *s to uncover and fix duplicate exports. (microsoft#25545)

* expanding index.

* change.

* Replacing with inline deprecation exclusions.

* setting export * to warning.

* change.

* moving rules around.

* fix: v9 form controls with underline should have underline-specific disabled styling (microsoft#25543)

Updates disabled form styling for Input, Select, Spinbutton, Combobox, and Dropdown

* docs(public-docsite-v9): Adding a basic setup section to the SSR docs (microsoft#25564)

* applying package updates

* update regex

* updatE

* Update azure-pipelines.vrt-baseline.yml for Azure Pipelines

* Update azure-pipelines.vrt-baseline.yml for Azure Pipelines

* chore(deps): bump loader-utils from 2.0.0 to 2.0.3 (microsoft#25567)

Bumps [loader-utils](https://github.com/webpack/loader-utils) from 2.0.0 to 2.0.3.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v2.0.3/CHANGELOG.md)
- [Commits](webpack/loader-utils@v2.0.0...v2.0.3)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: migrate @types/node to 14 to align with our supported node version (microsoft#25510)

* chore(deps): resolve only to 1 @types/node version to mitigate global leaks and api-generation errors

* fix(bundle-size): fix type errors exposed by node 14 typings

* fix(tools): fix type errors exposed by node 14 typings

* fix(typings): fix type errors exposed by node 14 typings

* revert:  use resolution for @types/node

* chore(ts-minbar-test-react): use @types/node 14 explicitly

* generate changefiles

* chore: dedupe deps

* fix(scripts): fix type errors exposed by node 14 typings

* test: replace deprecated module.parent with require.main within isConformance

* generate changefiles

* test(react): clean up persona-coin test and use isConformant without side-effects

* fix(storybook): fix theme picker current selection (microsoft#25533)

* update

* chore(vr-tests-v9): Convert Accordion VR tests to CSF (microsoft#25525)

* fix: Update Avatar active ring color to match base color (microsoft#25497)

* RFC: Field Package Layout (microsoft#25380)

* Feature: Added large tab size to react-tabs (microsoft#25577)

* Added large tab size

* yarn change

* Update vr-tests

* Code review fix

* feat(react-infobutton): Adding size prop, HCM styles, and updating styles to match design spec (microsoft#25519)

* updating styles and adding size prop

* updating comment

* adding requested changes

* fix: Adding expanded styles for MenuButtons and making various other styling fixes for Button components (microsoft#25521)

* fix: Adding expanded styles for MenuButtons and making various other styling fixes for Button components.

* Adding change file.

* Addressing PR feedback.

Co-authored-by: KHMakoto <[email protected]>

* chore: Clean up Field tests and story imports in preparation of moving to individual packages (microsoft#25594)

* Remove custom `isConformant` function for Field tests, and instead inline the customizations in each call to `isConformant`
* Disable the `exported-top-level` test because the components will be exported as e.g. `InputField_unstable` from the component packages.
* Change the stories to import from `@fluentui/react-components/unstable`, instead of the individual package.
* Rename the `FieldComponent` type to `FieldControl` to correspond to the `control` slot name.

* Tabs icon toggle (microsoft#25597)

* Added regular filled icon toggling

* yarn change

* chore: Refactor Field components into the base component's package (microsoft#25593)

Move Field components into their respective packages, as discussed in RFC microsoft#25380

* Update Component Implementation Epic template (microsoft#25480)

* update to use vrscreenshotdiff beta

* change lock file

* update package version

* applying package updates

* update pr pipeline to add v8

* PR to add tasks in pipeline for v9 VRT integration (microsoft#25606)

* fix: create valid export maps (microsoft#25558)

* generate changefiles

* chore(deps): bump socket.io-parser from 4.0.4 to 4.0.5 (microsoft#25604)

Bumps [socket.io-parser](https://github.com/socketio/socket.io-parser) from 4.0.4 to 4.0.5.
- [Release notes](https://github.com/socketio/socket.io-parser/releases)
- [Changelog](https://github.com/socketio/socket.io-parser/blob/main/CHANGELOG.md)
- [Commits](socketio/socket.io-parser@4.0.4...4.0.5)

---
updated-dependencies:
- dependency-name: socket.io-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(react-dialog): removes unnecessary union case for DialogOpenChangeData (microsoft#25504)

* templatize

* update

* templatize

* updatE

* refactor(scripts): remove deprecated exec abstractions (microsoft#25569)

* fix(scripts): make eslint run again on pre-commit (microsoft#25537)

* feat(react-components): Move AvatarGroup to stable (microsoft#25005)

* update

* update version

* run partial tests

* update

* update

* update

* update

* update

* update

* updatE

* updatE

* update version

* update lock file

* update name

* update version

* add quotes

* docs: refactor Text documentation and add missing guidance for presets/alignment (microsoft#25587)

Fixes microsoft#24341
Fixes microsoft#25548

* update

* package version

* fix(react-menu): remove unwanted aria attributes on context menu (microsoft#25615)

* fix(react-menu): remove unwanted aria attributes on context menu

* chore: updates trigger selector for cypress tests

* remove unwanted param

* update

* applying package updates

* convert

* checkpoint

* add regex

* change convert script

* updates

* update sw version

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Sean Monahan <[email protected]>
Co-authored-by: Geoff Cox (Microsoft) <[email protected]>
Co-authored-by: tomi-msft <[email protected]>
Co-authored-by: Martin Hochel <[email protected]>
Co-authored-by: Bernardo Sunderhus <[email protected]>
Co-authored-by: chajun <[email protected]>
Co-authored-by: Tristan Watanabe <[email protected]>
Co-authored-by: Oleksandr Fediashov <[email protected]>
Co-authored-by: David Zearing <[email protected]>
Co-authored-by: Sarah Higley <[email protected]>
Co-authored-by: Esteban Munoz Facusse <[email protected]>
Co-authored-by: Fluent UI Build <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tudor Popa <[email protected]>
Co-authored-by: Ben Howell <[email protected]>
Co-authored-by: Makoto Morimoto <[email protected]>
Co-authored-by: KHMakoto <[email protected]>
Co-authored-by: Marcos Moura <[email protected]>
NotWoods pushed a commit to NotWoods/fluentui that referenced this pull request Nov 18, 2022
…icrosoft#25593)

Move Field components into their respective packages, as discussed in RFC microsoft#25380
Hotell pushed a commit to Hotell/fluentui that referenced this pull request Feb 9, 2023
…icrosoft#25593)

Move Field components into their respective packages, as discussed in RFC microsoft#25380
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

chore: Refactor Field components into the base component's package
4 participants