@primer/react 38.37.1-rc.f8f4193e4 → 38.38.0-rc.1d4172bf2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/dist/ActionBar/ActionBar.js +2 -2
  3. package/dist/ActionList/Description.js +2 -2
  4. package/dist/ActionList/Divider.js +1 -1
  5. package/dist/ActionList/Group.js +4 -4
  6. package/dist/ActionList/GroupHeadingTrailingAction.js +1 -1
  7. package/dist/ActionList/Heading.js +3 -3
  8. package/dist/ActionList/Item.js +3 -3
  9. package/dist/ActionList/List.js +2 -2
  10. package/dist/ActionList/Selection.js +1 -1
  11. package/dist/ActionList/TrailingAction.js +2 -2
  12. package/dist/ActionList/Visuals.js +2 -2
  13. package/dist/ActionMenu/ActionMenu.js +2 -2
  14. package/dist/AnchoredOverlay/AnchoredOverlay.js +3 -3
  15. package/dist/Autocomplete/Autocomplete.js +1 -1
  16. package/dist/Autocomplete/AutocompleteInput.js +7 -2
  17. package/dist/Autocomplete/AutocompleteMenu.js +81 -75
  18. package/dist/Autocomplete/AutocompleteOverlay.js +2 -2
  19. package/dist/Avatar/Avatar.js +2 -2
  20. package/dist/AvatarStack/AvatarStack.js +2 -2
  21. package/dist/Banner/Banner.js +2 -2
  22. package/dist/BaseStyles.js +1 -1
  23. package/dist/Blankslate/Blankslate.js +2 -2
  24. package/dist/BranchName/BranchName.js +1 -1
  25. package/dist/Breadcrumbs/Breadcrumbs.js +2 -2
  26. package/dist/Button/Button.js +1 -1
  27. package/dist/Button/ButtonBase.js +4 -4
  28. package/dist/Button/IconButton.js +2 -2
  29. package/dist/Button/LinkButton.js +1 -1
  30. package/dist/ButtonGroup/ButtonGroup.js +2 -2
  31. package/dist/Card/Card.js +2 -2
  32. package/dist/Checkbox/Checkbox.js +2 -2
  33. package/dist/CheckboxGroup/CheckboxGroup.js +1 -1
  34. package/dist/CircleBadge/CircleBadge.js +1 -1
  35. package/dist/ConfirmationDialog/ConfirmationDialog.js +1 -1
  36. package/dist/CounterLabel/CounterLabel.js +3 -3
  37. package/dist/DataTable/Pagination.js +4 -4
  38. package/dist/DataTable/Table.js +3 -3
  39. package/dist/Details/Details.js +2 -2
  40. package/dist/Dialog/Dialog.js +3 -3
  41. package/dist/FeatureFlags/FeatureFlags.js +1 -1
  42. package/dist/FilteredActionList/FilteredActionList.js +2 -2
  43. package/dist/FilteredActionList/FilteredActionListInput.js +1 -1
  44. package/dist/FilteredActionList/useAnnouncements.js +1 -1
  45. package/dist/Flash/Flash.js +2 -2
  46. package/dist/FormControl/FormControl.js +3 -3
  47. package/dist/FormControl/FormControlCaption.js +1 -1
  48. package/dist/Header/Header.js +2 -2
  49. package/dist/Heading/Heading.js +2 -2
  50. package/dist/Hidden/Hidden.js +1 -1
  51. package/dist/InlineMessage/InlineMessage.js +1 -1
  52. package/dist/KeybindingHint/KeybindingHint.js +2 -2
  53. package/dist/KeybindingHint/components/Chord.js +3 -3
  54. package/dist/KeybindingHint/components/Sequence.js +3 -3
  55. package/dist/Label/Label.js +2 -2
  56. package/dist/LabelGroup/LabelGroup.js +2 -2
  57. package/dist/Link/Link.js +2 -2
  58. package/dist/NavList/NavList.js +5 -5
  59. package/dist/Octicon/Octicon.js +1 -1
  60. package/dist/Overlay/Overlay.js +2 -2
  61. package/dist/PageHeader/PageHeader.js +3 -3
  62. package/dist/PageLayout/DragHandle.js +1 -1
  63. package/dist/PageLayout/PageLayout.js +2 -2
  64. package/dist/Pagehead/Pagehead.js +1 -1
  65. package/dist/Pagination/Pagination.js +3 -3
  66. package/dist/Popover/Popover.js +2 -2
  67. package/dist/ProgressBar/ProgressBar.js +2 -2
  68. package/dist/Radio/Radio.js +2 -2
  69. package/dist/RelativeTime/RelativeTime.js +2 -1
  70. package/dist/ScrollableRegion/ScrollableRegion.js +2 -2
  71. package/dist/SegmentedControl/SegmentedControl.js +3 -3
  72. package/dist/SegmentedControl/SegmentedControlButton.js +1 -1
  73. package/dist/SegmentedControl/SegmentedControlIconButton.js +1 -1
  74. package/dist/Select/Select.js +2 -2
  75. package/dist/SelectPanel/SelectPanel.js +4 -4
  76. package/dist/SelectPanel/SelectPanelMessage.js +1 -1
  77. package/dist/SideNav.js +1 -1
  78. package/dist/Skeleton/SkeletonBox.js +2 -2
  79. package/dist/SkeletonAvatar/SkeletonAvatar.js +1 -1
  80. package/dist/SkeletonText/SkeletonText.js +1 -1
  81. package/dist/Spinner/Spinner.js +2 -2
  82. package/dist/Stack/Stack.js +2 -2
  83. package/dist/StateLabel/StateLabel.js +2 -2
  84. package/dist/SubNav/SubNav.js +2 -2
  85. package/dist/TabNav/TabNav.js +2 -2
  86. package/dist/Text/Text.js +1 -1
  87. package/dist/TextInput/TextInput.js +5 -5
  88. package/dist/TextInputWithTokens/TextInputWithTokens.js +2 -2
  89. package/dist/Textarea/Textarea.js +3 -3
  90. package/dist/ThemeProvider.js +1 -1
  91. package/dist/Timeline/Timeline.js +2 -2
  92. package/dist/ToggleSwitch/ToggleSwitch.js +3 -3
  93. package/dist/Token/IssueLabelToken.js +2 -2
  94. package/dist/Token/Token.js +2 -2
  95. package/dist/Token/TokenBase.js +2 -2
  96. package/dist/Token/_RemoveTokenButton.js +1 -1
  97. package/dist/Token/_TokenTextContainer.js +1 -1
  98. package/dist/Tooltip/Tooltip.js +2 -2
  99. package/dist/TooltipV2/Tooltip.js +4 -4
  100. package/dist/TopicTag/TopicTag.js +1 -1
  101. package/dist/TopicTag/TopicTagGroup.js +1 -1
  102. package/dist/TreeView/TreeView.js +9 -9
  103. package/dist/Truncate/Truncate.js +2 -2
  104. package/dist/UnderlineNav/UnderlineNav.js +2 -2
  105. package/dist/UnderlineNav/UnderlineNavItem.js +1 -1
  106. package/dist/VisuallyHidden/VisuallyHidden.js +1 -1
  107. package/dist/_VisuallyHidden.js +1 -1
  108. package/dist/deprecated/ActionList/Header.js +1 -1
  109. package/dist/deprecated/ActionList/Item.js +3 -3
  110. package/dist/deprecated/ActionList/List.js +2 -2
  111. package/dist/deprecated/ActionMenu.js +1 -1
  112. package/dist/deprecated/DialogV1/Dialog.js +3 -3
  113. package/dist/deprecated/FilteredSearch/FilteredSearch.js +1 -1
  114. package/dist/deprecated/UnderlineNav/UnderlineNav.js +2 -2
  115. package/dist/experimental/IssueLabel/IssueLabel.js +1 -1
  116. package/dist/experimental/SelectPanel2/SelectPanel.js +6 -6
  117. package/dist/experimental/Tabs/Tabs.js +1 -1
  118. package/dist/experimental/UnderlinePanels/UnderlinePanels.js +6 -6
  119. package/dist/experimental/index.d.ts +3 -3
  120. package/dist/experimental/index.js +1 -1
  121. package/dist/index.d.ts +3 -1
  122. package/dist/index.js +3 -1
  123. package/dist/internal/components/ButtonReset.js +1 -1
  124. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.js +3 -3
  125. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupCaption.js +2 -2
  126. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupLabel.js +2 -2
  127. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroupValidation.js +1 -1
  128. package/dist/internal/components/InputLabel.js +1 -1
  129. package/dist/internal/components/InputValidation.js +1 -1
  130. package/dist/internal/components/OverflowObserverProvider.js +1 -1
  131. package/dist/internal/components/TextInputInnerAction.js +3 -3
  132. package/dist/internal/components/TextInputInnerVisualSlot.js +1 -1
  133. package/dist/internal/components/TextInputWrapper.js +2 -2
  134. package/dist/internal/components/UnderlineTabbedInterface-a5cd75c0.css +2 -0
  135. package/dist/internal/components/UnderlineTabbedInterface-a5cd75c0.css.map +1 -0
  136. package/dist/internal/components/UnderlineTabbedInterface.js +2 -2
  137. package/dist/internal/components/UnderlineTabbedInterface.module.css.js +1 -1
  138. package/dist/internal/components/UnstyledTextInput.js +2 -2
  139. package/dist/internal/components/ValidationAnimationContainer.js +1 -1
  140. package/dist/live-region/Announce.js +2 -2
  141. package/dist/live-region/AriaAlert.d.ts +1 -1
  142. package/dist/utils/descendant-registry.js +1 -1
  143. package/generated/components.json +73 -0
  144. package/package.json +2 -2
  145. package/dist/internal/components/UnderlineTabbedInterface-8a52007f.css +0 -2
  146. package/dist/internal/components/UnderlineTabbedInterface-8a52007f.css.map +0 -1
@@ -9151,6 +9151,79 @@
9151
9151
  }
9152
9152
  ]
9153
9153
  },
9154
+ "aria-alert": {
9155
+ "source": "https://github.com/primer/react/tree/main/packages/react/src/live-region",
9156
+ "id": "aria-alert",
9157
+ "name": "AriaAlert",
9158
+ "status": "alpha",
9159
+ "a11yReviewed": false,
9160
+ "importPath": "@primer/react",
9161
+ "stories": [
9162
+ {
9163
+ "id": "components-ariaalert--default",
9164
+ "code": "() => {\n const [message, setMessage] = useState('Default message')\n useEffect(() => {\n const interval = setInterval(() => {\n setMessage(`Last updated at ${new Date().toLocaleTimeString()}`)\n }, 5000)\n return () => {\n clearInterval(interval)\n }\n }, [])\n return <AriaAlert>{message}</AriaAlert>\n}"
9165
+ },
9166
+ {
9167
+ "id": "components-ariaalert-features--visually-hidden-story",
9168
+ "code": "() => {\n return (\n <>\n <p>This is an example</p>\n <VisuallyHidden>\n <AriaAlert>A visually hidden message</AriaAlert>\n </VisuallyHidden>\n </>\n )\n}"
9169
+ }
9170
+ ],
9171
+ "props": [
9172
+ {
9173
+ "name": "announceOnShow",
9174
+ "type": "boolean",
9175
+ "description": "Specify if the content of the element should be announced when this component is rendered and is not hidden",
9176
+ "defaultValue": "true"
9177
+ },
9178
+ {
9179
+ "name": "hidden",
9180
+ "type": "boolean",
9181
+ "description": "Specify if the element is hidden",
9182
+ "defaultValue": "false"
9183
+ }
9184
+ ]
9185
+ },
9186
+ "aria-status": {
9187
+ "source": "https://github.com/primer/react/tree/main/packages/react/src/live-region",
9188
+ "id": "aria-status",
9189
+ "name": "AriaStatus",
9190
+ "status": "alpha",
9191
+ "a11yReviewed": false,
9192
+ "importPath": "@primer/react",
9193
+ "stories": [
9194
+ {
9195
+ "id": "components-ariastatus--default",
9196
+ "code": "() => {\n const [message, setMessage] = useState('Default message')\n useEffect(() => {\n const interval = setInterval(() => {\n setMessage(`Last updated at ${new Date().toLocaleTimeString()}`)\n }, 5000)\n return () => {\n clearInterval(interval)\n }\n }, [])\n return <AriaStatus>{message}</AriaStatus>\n}"
9197
+ },
9198
+ {
9199
+ "id": "components-ariastatus-features--visually-hidden-story",
9200
+ "code": "() => {\n return (\n <>\n <p>This is an example</p>\n <VisuallyHidden>\n <AriaStatus>A visually hidden message</AriaStatus>\n </VisuallyHidden>\n </>\n )\n}"
9201
+ },
9202
+ {
9203
+ "id": "components-ariastatus-features--with-delay",
9204
+ "code": "() => {\n const [message, setMessage] = useState('Default message')\n useEffect(() => {\n const interval = setInterval(() => {\n setMessage(`Last updated at ${new Date().toLocaleTimeString()}`)\n }, 5000)\n return () => {\n clearInterval(interval)\n }\n }, [])\n return <AriaStatus delayMs={1000}>{message}</AriaStatus>\n}"
9205
+ }
9206
+ ],
9207
+ "props": [
9208
+ {
9209
+ "name": "announceOnShow",
9210
+ "type": "boolean",
9211
+ "description": "Specify if the content of the element should be announced when this component is rendered and is not hidden",
9212
+ "defaultValue": "false"
9213
+ },
9214
+ {
9215
+ "name": "hidden",
9216
+ "type": "boolean",
9217
+ "description": "Specify if the element is hidden",
9218
+ "defaultValue": "false"
9219
+ },
9220
+ {
9221
+ "name": "delayMs",
9222
+ "type": "number",
9223
+ "description": "Provide a delay in milliseconds before the announcement is made"
9224
+ }
9225
+ ]
9226
+ },
9154
9227
  "dialog": {
9155
9228
  "source": "https://github.com/primer/react/tree/main/packages/react/src/deprecated/DialogV1",
9156
9229
  "id": "dialog",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@primer/react",
3
3
  "type": "module",
4
- "version": "38.37.1-rc.f8f4193e4",
4
+ "version": "38.38.0-rc.1d4172bf2",
5
5
  "description": "An implementation of GitHub's Primer Design System using React",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
@@ -166,7 +166,7 @@
166
166
  "react-is": "18.3.1",
167
167
  "recast": "0.23.7",
168
168
  "rimraf": "5.0.5",
169
- "rolldown": "^1.2.3",
169
+ "rolldown": "^1.2.5",
170
170
  "rolldown-plugin-dts": "^0.26.0",
171
171
  "rolldown-plugin-import-css": "^0.0.0",
172
172
  "rolldown-plugin-preserve-directives": "^0.0.0",
@@ -1,2 +0,0 @@
1
- .prc-components-UnderlineWrapper-eT-Yj{align-items:flex-start;box-shadow:inset 0 -1px var(--borderColor-muted,#d1d9e0b3);display:flex;justify-content:flex-start;min-height:var(--control-xlarge-size,3rem);padding-top:var(--base-size-8,.5rem);padding-inline:var(--stack-padding-normal,1rem)}.prc-components-UnderlineWrapper-eT-Yj[data-variant=flush]{padding-inline:unset}.prc-components-UnderlineWrapper-eT-Yj[data-overflow-mode=wrap]{border-block:0!important;box-sizing:border-box!important;max-height:var(--control-xlarge-size,3rem);overflow:hidden;padding-block:var(--base-size-8,.5rem) 0!important}.prc-components-UnderlineWrapper-eT-Yj[data-overflow-mode=wrap] .prc-components-UnderlineItemList-xKlKC{flex-grow:1;flex-wrap:wrap;overflow:hidden}.prc-components-UnderlineItemList-xKlKC{contain:layout;display:flex;gap:var(--stack-gap-condensed,.5rem);list-style:none;margin:0;padding:0;white-space:nowrap}.prc-components-UnderlineItem-7fP-n,.prc-components-UnderlineItemList-xKlKC{align-items:center;position:relative}.prc-components-UnderlineItem-7fP-n{appearance:none;background-color:transparent;border:0;border-radius:var(--borderRadius-medium,.375rem);color:var(--fgColor-default,#1f2328);cursor:pointer;display:inline-flex;font:inherit;font-size:var(--text-body-size-medium,.875rem);height:var(--base-size-32,2rem);line-height:var(--text-body-lineHeight-medium,1.4285);margin-bottom:var(--base-size-8,.5rem);max-width:100%;padding-block:var(--base-size-6,.375rem);padding-inline:var(--base-size-8,.5rem);text-align:center;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.prc-components-UnderlineItem-7fP-n:hover{background-color:var(--bgColor-neutral-muted,#818b981f);-webkit-text-decoration:none;text-decoration:none;transition:background-color .12s ease-out}}.prc-components-UnderlineItem-7fP-n:focus{box-shadow:inset 0 0 0 2px var(--fgColor-accent,#0969da);outline:2px solid transparent}.prc-components-UnderlineItem-7fP-n:focus:not(:focus-visible){box-shadow:none}.prc-components-UnderlineItem-7fP-n:focus-visible{box-shadow:inset 0 0 0 2px var(--fgColor-accent,#0969da);outline:2px solid transparent}.prc-components-UnderlineItem-7fP-n [data-content]:before{content:attr(data-content);display:block;font-weight:var(--base-text-weight-semibold,600);height:0;visibility:hidden;white-space:nowrap}.prc-components-UnderlineItem-7fP-n [data-component=icon]{align-items:center;color:var(--fgColor-muted,#59636e);display:inline-flex;margin-inline-end:var(--base-size-8,.5rem)}.prc-components-UnderlineItem-7fP-n [data-component=text]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prc-components-UnderlineItem-7fP-n [data-component=counter]{align-items:center;display:flex;margin-inline-start:var(--base-size-8,.5rem)}.prc-components-UnderlineItem-7fP-n:after{background-color:transparent;content:"";height:2px;inset:auto 0 0;margin-bottom:calc(var(--base-size-8,.5rem)*-1);pointer-events:none;position:absolute}.prc-components-UnderlineItem-7fP-n[aria-current]:not([aria-current=false]) [data-component=text],.prc-components-UnderlineItem-7fP-n[aria-selected=true] [data-component=text]{font-weight:var(--base-text-weight-semibold,600)}.prc-components-UnderlineItem-7fP-n[aria-current]:not([aria-current=false]):after,.prc-components-UnderlineItem-7fP-n[aria-selected=true]:after{background-color:var(--underlineNav-borderColor-active,var(--color-primer-border-active,#fd8c73))}@media (forced-colors:active){.prc-components-UnderlineItem-7fP-n[aria-current]:not([aria-current=false]):after,.prc-components-UnderlineItem-7fP-n[aria-selected=true]:after{background-color:LinkText}}.prc-components-LoadingCounter-dBuLy{animation:prc-components-loadingCounterKeyFrames-8tMlf 1.2s ease-in-out infinite alternate;background-color:var(--bgColor-neutral-muted,#818b981f);border-color:var(--borderColor-default,#d1d9e0);border-radius:20px;display:inline-block;height:1rem;width:1.5rem}@keyframes prc-components-loadingCounterKeyFrames-8tMlf{0%{opacity:1}to{opacity:.2}}
2
- /*# sourceMappingURL=UnderlineTabbedInterface-8a52007f.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/internal/components/UnderlineTabbedInterface.module.css.js"],"names":[],"mappings":"AAAA,uCAME,sBAAuB,CAOvB,0DAAiD,CAZjD,YAAa,CAIb,0BAA2B,CAI3B,0CAAsC,CAPtC,oCAA+B,CAE/B,+CAgCF,CArBE,2DAEE,oBACF,CAEA,gEAOE,wBAA0B,CAD1B,+BAAiC,CAHjC,0CAAsC,CADtC,eAAgB,CAMhB,kDAOF,CALE,wGACE,WAAY,CACZ,cAAe,CACf,eACF,CAIJ,wCAaE,cAAe,CAXf,YAAa,CAMb,oCAA+B,CAF/B,eAAgB,CAFhB,QAAS,CADT,SAAU,CAEV,kBASF,CAEA,4EATE,kBAAmB,CANnB,iBA8CF,CA/BA,oCAmBE,eAAgB,CARhB,4BAA6B,CAC7B,QAAS,CACT,gDAAyC,CANzC,oCAA6B,CAG7B,cAAe,CAPf,mBAAoB,CACpB,YAAa,CACb,8CAAuC,CAWvC,+BAA2B,CAV3B,qDAAuD,CASvD,sCAAiC,CADjC,cAAe,CAOf,wCAAiC,CADjC,uCAAkC,CAZlC,iBAAkB,CAClB,4BAAqB,CAArB,oBAsBF,CAPE,qBACE,0CAEE,uDAA8C,CAD9C,4BAAqB,CAArB,oBAAqB,CAErB,yCACF,CACF,CAGF,0CAGE,wDAAiD,CAFjD,6BAQF,CAHE,8DACE,eACF,CAGF,kDAGE,wDAAiD,CAFjD,6BAGF,CAGA,0DAME,0BAA2B,CAL3B,aAAc,CAEd,gDAA6C,CAD7C,QAAS,CAGT,iBAAkB,CADlB,kBAGF,CAEA,0DAGE,kBAAmB,CADnB,kCAA2B,CAD3B,mBAAoB,CAGpB,0CACF,CAGA,0DACE,eAAgB,CAChB,sBAAuB,CACvB,kBACF,CAEA,6DAGE,kBAAmB,CADnB,YAAa,CADb,4CAGF,CAEA,0CAOE,4BAA6B,CAD7B,UAAW,CAFX,UAAW,CAFX,cAAe,CACf,+CAA4C,CAE5C,mBAAoB,CAJpB,iBAOF,CAEA,gLAEE,gDACF,CAEA,gJAGE,iGAMF,CAJE,8BALF,gJAOI,yBAEJ,CADE,CAGF,qCASE,0FAAsE,CAJtE,uDAA8C,CAC9C,+CAAwC,CAExC,kBAAmB,CAPnB,oBAAqB,CAErB,WAAY,CADZ,YAQF,CAEA,wDACE,GACE,SACF,CAEA,GACE,UACF,CACF","file":"UnderlineTabbedInterface-8a52007f.css","sourcesContent":[".UnderlineWrapper {\n display: flex;\n padding-top: var(--base-size-8);\n /* stylelint-disable-next-line primer/spacing */\n padding-inline: var(--stack-padding-normal);\n justify-content: flex-start;\n align-items: flex-start;\n\n /* make space for the underline */\n min-height: var(--control-xlarge-size);\n\n /* using a box-shadow instead of a border to accommodate 'overflow-y: hidden' on UnderlinePanels */\n /* stylelint-disable-next-line primer/box-shadow */\n box-shadow: inset 0 -1px var(--borderColor-muted);\n\n &[data-variant='flush'] {\n /* stylelint-disable-next-line primer/spacing */\n padding-inline: unset;\n }\n\n &[data-overflow-mode='wrap'] {\n /* Wrap items onto hidden next lines */\n overflow: hidden;\n max-height: var(--control-xlarge-size);\n\n /* Pin the vertical box model so external box-sizing/border/padding overrides can't change the height budget and incorrectly trigger the overflow \"more\" menu */\n box-sizing: border-box !important;\n border-block: 0 !important;\n padding-block: var(--base-size-8) 0 !important;\n\n .UnderlineItemList {\n flex-grow: 1;\n flex-wrap: wrap;\n overflow: hidden;\n }\n }\n}\n\n.UnderlineItemList {\n position: relative;\n display: flex;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n list-style: none;\n align-items: center;\n gap: var(--stack-gap-condensed);\n\n /* Isolate the ResizeObserver-driven item swapping (UnderlineNav overflow menu / UnderlinePanels)\n so it can't invalidate ancestor layout. Safe because UnderlineNav's overflow menu is rendered via ActionMenu.Overlay\n (portal by default), and layout containment does not clip. */\n contain: layout;\n}\n\n.UnderlineItem {\n /* underline tab specific styles */\n position: relative;\n display: inline-flex;\n font: inherit;\n font-size: var(--text-body-size-medium);\n line-height: var(--text-body-lineHeight-medium, 1.4285);\n color: var(--fgColor-default);\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n background-color: transparent;\n border: 0;\n border-radius: var(--borderRadius-medium);\n max-width: 100%;\n margin-bottom: var(--base-size-8);\n height: var(--base-size-32);\n\n /* button resets */\n appearance: none;\n padding-inline: var(--base-size-8);\n padding-block: var(--base-size-6);\n align-items: center;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: none;\n background-color: var(--bgColor-neutral-muted);\n transition: background-color 0.12s ease-out;\n }\n }\n}\n\n.UnderlineItem:focus {\n outline: 2px solid transparent;\n /* stylelint-disable-next-line primer/box-shadow */\n box-shadow: inset 0 0 0 2px var(--fgColor-accent);\n\n /* where focus-visible is supported, remove the focus box-shadow */\n &:not(:focus-visible) {\n box-shadow: none;\n }\n}\n\n.UnderlineItem:focus-visible {\n outline: 2px solid transparent;\n /* stylelint-disable-next-line primer/box-shadow */\n box-shadow: inset 0 0 0 2px var(--fgColor-accent);\n}\n\n/* renders a visibly hidden \"copy\" of the label in bold, reserving box space for when label becomes bold on selected */\n.UnderlineItem [data-content]::before {\n display: block;\n height: 0;\n font-weight: var(--base-text-weight-semibold);\n white-space: nowrap;\n visibility: hidden;\n content: attr(data-content);\n}\n\n.UnderlineItem [data-component='icon'] {\n display: inline-flex;\n color: var(--fgColor-muted);\n align-items: center;\n margin-inline-end: var(--base-size-8);\n}\n\n/* Truncate items if necessary (should only ever apply to the last item after everything else overflows) */\n.UnderlineItem [data-component='text'] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.UnderlineItem [data-component='counter'] {\n margin-inline-start: var(--base-size-8);\n display: flex;\n align-items: center;\n}\n\n.UnderlineItem::after {\n position: absolute;\n inset: auto 0 0;\n margin-bottom: calc(-1 * var(--base-size-8));\n height: 2px;\n pointer-events: none;\n content: '';\n background-color: transparent;\n}\n\n.UnderlineItem[aria-current]:not([aria-current='false']) [data-component='text'],\n.UnderlineItem[aria-selected='true'] [data-component='text'] {\n font-weight: var(--base-text-weight-semibold);\n}\n\n.UnderlineItem[aria-current]:not([aria-current='false'])::after,\n.UnderlineItem[aria-selected='true']::after {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--underlineNav-borderColor-active, var(--color-primer-border-active, #fd8c73));\n\n @media (forced-colors: active) {\n /* Support for Window Force Color Mode https://learn.microsoft.com/en-us/fluent-ui/web-components/design-system/high-contrast */\n background-color: LinkText;\n }\n}\n\n.LoadingCounter {\n display: inline-block;\n width: 1.5rem;\n height: 1rem;\n /* 16px */\n background-color: var(--bgColor-neutral-muted);\n border-color: var(--borderColor-default);\n /* stylelint-disable-next-line primer/borders */\n border-radius: 20px;\n animation: loadingCounterKeyFrames 1.2s ease-in-out infinite alternate;\n}\n\n@keyframes loadingCounterKeyFrames {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0.2;\n }\n}\n"]}