Skip to content

fix: improve phone number initials handling - #36711

Draft
Paul Mardling (PaulGMardling) wants to merge 2 commits into
microsoft:masterfrom
PaulGMardling:fix/initials-regex
Draft

fix: improve phone number initials handling#36711
Paul Mardling (PaulGMardling) wants to merge 2 commits into
microsoft:masterfrom
PaulGMardling:fix/initials-regex

Conversation

@PaulGMardling

@PaulGMardling Paul Mardling (PaulGMardling) commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Previous Behavior

Initials generation used the same phone-number matching expression in the v9 Avatar, v8 utilities, and Web Components implementations.

New Behavior

All three implementations now use separate matching forms for ordinary numbers and numbers with an extension. Existing phone-number results are preserved, and focused long-input coverage keeps behavior consistent across packages.

Validation

  • yarn nx run react-avatar:test --runTestsByPath=packages/react-components/react-avatar/library/src/utils/getInitials.test.ts --runInBand
  • yarn nx run utilities:test --runTestsByPath=packages/utilities/src/initials.test.ts --runInBand
  • yarn nx run web-components:e2e -- src/avatar/avatar.spec.ts (96 tests across Chromium, Firefox, and WebKit CSR/SSR)
  • yarn nx run react-avatar:build
  • yarn nx run react-avatar:type-check
  • utilities:type-check and web-components:type-check through Nx
  • yarn nx format:check --base origin/master

Related Issue(s)

  • N/A

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react
ActivityItem
71.511 kB
23.466 kB
71.525 kB
23.473 kB
14 B
7 B
react
DocumentCard
215.813 kB
63.838 kB
215.827 kB
63.843 kB
14 B
5 B
react
Facepile
209.377 kB
62.564 kB
209.391 kB
62.57 kB
14 B
6 B
react
FloatingPicker
240.836 kB
68.395 kB
240.85 kB
68.402 kB
14 B
7 B
react
Persona
114.726 kB
36.572 kB
114.74 kB
36.578 kB
14 B
6 B
react
PersonaCoin
114.726 kB
36.572 kB
114.74 kB
36.578 kB
14 B
6 B
react
Pickers
297.834 kB
83.212 kB
297.848 kB
83.215 kB
14 B
3 B
react
Fluent UI React (entire library)
1.017 MB
283.569 kB
1.017 MB
283.578 kB
14 B
9 B
react
SelectedItemsList
231.319 kB
67.352 kB
231.333 kB
67.359 kB
14 B
7 B
react
Utilities
83.123 kB
25.271 kB
83.137 kB
25.277 kB
14 B
6 B
react-avatar
Avatar
48.256 kB
15.276 kB
48.27 kB
15.282 kB
14 B
6 B
react-avatar
AvatarGroupItem
61.24 kB
19.139 kB
61.254 kB
19.145 kB
14 B
6 B
react-components
react-components: all base hooks
217.893 kB
68.338 kB
217.907 kB
68.345 kB
14 B
7 B
react-components
react-components: entire library
1.283 MB
322.086 kB
1.283 MB
322.09 kB
14 B
4 B
react-headless-components-preview
react-headless-components-preview: entire library
241.736 kB
68.14 kB
241.75 kB
68.146 kB
14 B
6 B
react-persona
Persona
55.209 kB
17.22 kB
55.223 kB
17.226 kB
14 B
6 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
react
Announced
38.766 kB
13.382 kB
react
Autofill
15.557 kB
4.803 kB
react
Breadcrumb
200.779 kB
59.775 kB
react
Button
194.363 kB
56.054 kB
react
ButtonGrid
179.244 kB
54.067 kB
react
Calendar
121.293 kB
36.952 kB
react
Callout
84.456 kB
27.693 kB
react
Check
53.471 kB
17.936 kB
react
Checkbox
60.225 kB
19.994 kB
react
ChoiceGroup
65.717 kB
21.576 kB
react
ChoiceGroupOption
59.03 kB
19.464 kB
react
Coachmark
92.829 kB
29.434 kB
react
Color
7.94 kB
3.172 kB
react
ColorPicker
135.091 kB
42.254 kB
react
ComboBox
250.592 kB
71.678 kB
react
CommandBar
201.824 kB
59.54 kB
react
ContextualMenu
154.274 kB
47.7 kB
react
DatePicker
183.22 kB
56.023 kB
react
DateTimeUtilities
5.447 kB
1.917 kB
react
DetailsList
230.008 kB
66.014 kB
react
Dialog
210.074 kB
62.5 kB
react
Divider
19.893 kB
6.936 kB
react
DragDrop
8.546 kB
2.789 kB
react
DraggableZone
34.582 kB
11.592 kB
react
Dropdown
233.079 kB
68.135 kB
react
ExtendedPicker
97.086 kB
27.95 kB
react
Fabric
42.006 kB
14.453 kB
react
FocusTrapZone
17.113 kB
5.936 kB
react
FocusZone
55.391 kB
17.548 kB
react
Grid
179.244 kB
54.067 kB
react
GroupedList
135.213 kB
40.822 kB
react
GroupedListV2
122.837 kB
37.889 kB
react
HoverCard
96.917 kB
30.798 kB
react
Icon
52.159 kB
17.378 kB
react
Icons
66.627 kB
24.479 kB
react
Image
47.183 kB
15.787 kB
react
Keytip
81.486 kB
26.762 kB
react
KeytipData
14.201 kB
4.644 kB
react
KeytipLayer
103.226 kB
32.003 kB
react
Keytips
106 kB
33.025 kB
react
Label
38.627 kB
13.349 kB
react
Layer
48.346 kB
16.468 kB
react
Link
39.947 kB
13.766 kB
react
List
39.648 kB
12.531 kB
react
MarqueeSelection
74.764 kB
22.533 kB
react
MessageBar
189.392 kB
56.484 kB
react
Modal
93.845 kB
30.319 kB
react
Nav
186.842 kB
55.869 kB
react
OverflowSet
33.636 kB
11.36 kB
react
Overlay
41.175 kB
14.19 kB
react
Panel
200.3 kB
59.482 kB
react
PersonaPresence
58.341 kB
19.48 kB
react
Pivot
187.719 kB
56.623 kB
react
Popup
12.427 kB
4.226 kB
react
Positioning
23.112 kB
7.761 kB
react
PositioningContainer
73.679 kB
23.818 kB
react
ProgressIndicator
39.765 kB
13.638 kB
react
Rating
82.323 kB
26.225 kB
react
ResizeGroup
13.467 kB
4.42 kB
react
ResponsiveMode
8.271 kB
3.006 kB
react
ScrollablePane
55.802 kB
17.829 kB
react
SearchBox
187.632 kB
56.064 kB
react
SelectableOption
927 B
479 B
react
Selection
42.719 kB
12.376 kB
react
Separator
35.667 kB
12.227 kB
react
Shimmer
49.51 kB
16.36 kB
react
ShimmeredDetailsList
240.74 kB
68.726 kB
react
Slider
57.89 kB
19.313 kB
react
SpinButton
191.276 kB
57.148 kB
react
Spinner
42.053 kB
14.565 kB
react
Stack
42.343 kB
14.467 kB
react
Sticky
32.868 kB
10.589 kB
react
Styling
46.377 kB
15.242 kB
react
SwatchColorPicker
189.597 kB
57.615 kB
react
TeachingBubble
204.608 kB
60.477 kB
react
Text
37.19 kB
12.879 kB
react
TextField
81.017 kB
25.418 kB
react
Theme
43.822 kB
14.276 kB
react
ThemeGenerator
12.525 kB
4.15 kB
react
TimePicker
240.406 kB
69.476 kB
react
Toggle
46.48 kB
16.079 kB
react
Tooltip
87.247 kB
28.262 kB
react
Viewport
24.178 kB
7.716 kB
react
WeeklyDayPicker
101.544 kB
31.769 kB
react
WindowProvider
1.262 kB
614 B
react-avatar
AvatarGroup
17.269 kB
6.89 kB
react-charting
AreaChart
305.154 kB
95.909 kB
react-charting
ChartHoverCard
37.29 kB
12.738 kB
react-charting
DeclarativeChart
680.459 kB
193.864 kB
react-charting
DonutChart
204.416 kB
64.319 kB
react-charting
GanttChart
287.222 kB
90.82 kB
react-charting
GaugeChart
197.731 kB
61.769 kB
react-charting
GroupedVerticalBarChart
297.023 kB
93.155 kB
react-charting
HeatMapChart
287.919 kB
90.559 kB
react-charting
HorizontalBarChart
127.475 kB
40.118 kB
react-charting
HorizontalBarChartWithAxis
298.395 kB
93.219 kB
react-charting
Legends
152.037 kB
46.832 kB
react-charting
LineChart
334.72 kB
102.945 kB
react-charting
MultiStackedBarChart
182.57 kB
55.844 kB
react-charting
PieChart
135.059 kB
42.757 kB
react-charting
PolarChart
235.701 kB
74.718 kB
react-charting
SankeyChart
158.576 kB
49.642 kB
react-charting
ScatterChart
291.196 kB
92.181 kB
react-charting
Sparkline
88.144 kB
29.862 kB
react-charting
StackedBarChart
176.145 kB
53.411 kB
react-charting
TreeChart
85.764 kB
27.102 kB
react-charting
VerticalBarChart
308.085 kB
95.291 kB
react-charting
VerticalStackedBarChart
305.195 kB
94.973 kB
react-components
react-components: Button, FluentProvider & webLightTheme
67.471 kB
19.465 kB
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
227.136 kB
68.41 kB
react-components
react-components: FluentProvider & webLightTheme
40.694 kB
13.549 kB
react-headless-components-preview
@fluentui/react-headless-components-preview/tag-picker
54.012 kB
17.756 kB
react-headless-components-preview
@fluentui/react-headless-components-preview/teaching-popover
36.073 kB
12.006 kB
react-portal-compat
PortalCompatProvider
5.341 kB
2.146 kB
react-table
DataGrid
147.809 kB
43.977 kB
react-table
Table (Primitives only)
38.042 kB
12.69 kB
react-table
Table as DataGrid
119.68 kB
33.755 kB
react-table
Table (Selection only)
66.557 kB
18.957 kB
react-table
Table (Sort only)
65.22 kB
18.58 kB
react-tag-picker
@fluentui/react-tag-picker - package
174.763 kB
54.56 kB
react-tags
InteractionTag
13.629 kB
5.386 kB
react-tags
Tag
29.542 kB
9.338 kB
react-tags
TagGroup
70.806 kB
21.811 kB
react-timepicker-compat
TimePicker
142.037 kB
46.44 kB
react-tree
FlatTree
136.693 kB
40.821 kB
react-tree
PersonaFlatTree
138.556 kB
41.361 kB
react-tree
PersonaTree
134.637 kB
40.143 kB
react-tree
Tree
132.78 kB
39.638 kB
🤖 This report was generated against f51ba35768877b1e01346ac76e3ad4af7689a5eb

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Pull request demo site: URL

@@ -0,0 +1,6 @@
{

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🕵🏾‍♀️ visual changes to review in the Visual Change Report

vr-tests-react-components/Menu 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Menu.Nested Submenus Small Viewport Flipped.nested menu.chromium.png 644 Changed
vr-tests-react-components/Menu Converged - submenuIndicator slotted content 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Menu Converged - submenuIndicator slotted content.default.submenus open.chromium.png 413 Changed
vr-tests-react-components/Menu Converged - submenuIndicator slotted content.default - RTL.submenus open.chromium.png 404 Changed
vr-tests-react-components/Positioning 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Positioning.Positioning end.updated 2 times.chromium.png 727 Changed
vr-tests-react-components/ProgressBar converged 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - High Contrast.default.chromium.png 34 Changed
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - Dark Mode.default.chromium.png 58 Changed
vr-tests-react-components/TagPicker 3 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/TagPicker.disabled - Dark Mode.disabled input hover.chromium.png 658 Changed
vr-tests-react-components/TagPicker.disabled - High Contrast.chromium.png 1319 Changed
vr-tests-react-components/TagPicker.disabled.chromium.png 677 Changed
vr-tests-web-components/Accordion 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-web-components/Accordion. - Dark Mode.normal.chromium_1.png 3398 Changed
vr-tests-web-components/Badge 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-web-components/Badge. - Dark Mode.normal.chromium.png 443 Changed
vr-tests-web-components/MenuList 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-web-components/MenuList. - RTL.2nd selected.chromium.png 17 Changed
vr-tests/Callout 7 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/Callout.Bottom auto edge.default.chromium.png 2195 Changed
vr-tests/Callout.Gap space 25.default.chromium.png 2195 Changed
vr-tests/Callout.No beak.default.chromium.png 2192 Changed
vr-tests/Callout.Top left edge.default.chromium.png 2212 Changed
vr-tests/Callout.Right bottom edge.default.chromium.png 3095 Changed
vr-tests/Callout.Top center.default.chromium.png 2127 Changed
vr-tests/Callout.Right center.default.chromium.png 2117 Changed
vr-tests/Keytip 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/Keytip.Disabled.default.chromium.png 24 Changed
vr-tests/Keytip.Offset.default.chromium.png 86 Changed
vr-tests/react-charting-AreaChart 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/react-charting-AreaChart.Custom Accessibility.default.chromium.png 11 Changed
vr-tests/react-charting-LineChart 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/react-charting-LineChart.Multiple - RTL.default.chromium.png 200 Changed
vr-tests/react-charting-LineChart.Events.default.chromium.png 1 Changed
vr-tests/react-charting-MultiStackBarChart 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/react-charting-MultiStackBarChart.Basic_Absolute.default.chromium.png 359 Changed
vr-tests/react-charting-MultiStackBarChart.Basic_PartToWhole.default.chromium.png 359 Changed
vr-tests/react-charting-SankeyChart 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/react-charting-SankeyChart.PlaceHolder - RTL.default.chromium.png 77 Changed
vr-tests/react-charting-SankeyChart.PlaceHolder - Dark Mode.default.chromium.png 78 Changed
vr-tests/react-charting-VerticalBarChart 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/react-charting-VerticalBarChart.Basic - Secondary Y Axis.default.chromium.png 3 Changed

There were 4 duplicate changes discarded. Check the build logs for more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant