@primer/react 37.32.0-rc.f8e94f384 → 38.0.0-rc.1

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 (155) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/dist/browser.esm.js +3 -3
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +3 -3
  5. package/dist/browser.umd.js.map +1 -1
  6. package/dist/components.css +162 -125
  7. package/generated/components.json +87 -200
  8. package/lib/Autocomplete/AutocompleteMenu.js +7 -7
  9. package/lib/CircleOcticon/CircleOcticon.d.ts +3 -0
  10. package/lib/CircleOcticon/CircleOcticon.d.ts.map +1 -1
  11. package/lib/CircleOcticon/CircleOcticon.js +3 -0
  12. package/lib/ConfirmationDialog/ConfirmationDialog.d.ts +8 -0
  13. package/lib/ConfirmationDialog/ConfirmationDialog.d.ts.map +1 -1
  14. package/lib/ConfirmationDialog/ConfirmationDialog.js +6 -2
  15. package/lib/FilteredActionList/FilteredActionList-96b126d7.css +2 -0
  16. package/lib/FilteredActionList/FilteredActionList-96b126d7.css.map +1 -0
  17. package/lib/FilteredActionList/FilteredActionList.d.ts.map +1 -1
  18. package/lib/FilteredActionList/FilteredActionList.js +3 -6
  19. package/lib/FilteredActionList/FilteredActionList.module.css.js +2 -2
  20. package/lib/PointerBox/PointerBox.d.ts +1 -1
  21. package/lib/PointerBox/PointerBox.d.ts.map +1 -1
  22. package/lib/PointerBox/PointerBox.js +1 -1
  23. package/lib/ProgressBar/ProgressBar-a0957632.css +2 -0
  24. package/lib/ProgressBar/ProgressBar-a0957632.css.map +1 -0
  25. package/lib/ProgressBar/ProgressBar.d.ts.map +1 -1
  26. package/lib/ProgressBar/ProgressBar.js +53 -49
  27. package/lib/ProgressBar/ProgressBar.module.css.js +1 -1
  28. package/lib/Radio/{Radio-b2a92b7d.css → Radio-df9a5c02.css} +2 -2
  29. package/lib/Radio/{Radio-b2a92b7d.css.map → Radio-df9a5c02.css.map} +1 -1
  30. package/lib/Radio/Radio.module.css.js +1 -1
  31. package/lib/Select/Select.js +61 -53
  32. package/lib/SelectPanel/SelectPanel.js +2 -2
  33. package/lib/SplitPageLayout/SplitPageLayout.d.ts +1 -2
  34. package/lib/SplitPageLayout/SplitPageLayout.d.ts.map +1 -1
  35. package/lib/Stack/Stack.d.ts.map +1 -1
  36. package/lib/Stack/Stack.js +110 -111
  37. package/lib/StateLabel/StateLabel-cd27f475.css +2 -0
  38. package/lib/StateLabel/StateLabel-cd27f475.css.map +1 -0
  39. package/lib/StateLabel/StateLabel.d.ts +1 -2
  40. package/lib/StateLabel/StateLabel.d.ts.map +1 -1
  41. package/lib/StateLabel/StateLabel.js +3 -5
  42. package/lib/StateLabel/StateLabel.module.css.js +7 -0
  43. package/lib/SubNav/SubNav.d.ts +8 -16
  44. package/lib/SubNav/SubNav.d.ts.map +1 -1
  45. package/lib/SubNav/SubNav.js +3 -6
  46. package/lib/ToggleSwitch/ToggleSwitch-65936b4b.css +4 -0
  47. package/lib/ToggleSwitch/ToggleSwitch-65936b4b.css.map +1 -0
  48. package/lib/ToggleSwitch/ToggleSwitch.d.ts +1 -2
  49. package/lib/ToggleSwitch/ToggleSwitch.d.ts.map +1 -1
  50. package/lib/ToggleSwitch/ToggleSwitch.js +163 -213
  51. package/lib/ToggleSwitch/ToggleSwitch.module.css.js +7 -0
  52. package/lib/ToggleSwitch/ToggleSwitchStoryWrapper.d.ts.map +1 -1
  53. package/lib/Token/index.d.ts +0 -1
  54. package/lib/Token/index.d.ts.map +1 -1
  55. package/lib/TreeView/shared.js +2 -2
  56. package/lib/VisuallyHidden/VisuallyHidden.d.ts +1 -2
  57. package/lib/VisuallyHidden/VisuallyHidden.d.ts.map +1 -1
  58. package/lib/VisuallyHidden/VisuallyHidden.js +1 -3
  59. package/lib/deprecated/UnderlineNav/UnderlineNav.d.ts +2 -3
  60. package/lib/deprecated/UnderlineNav/UnderlineNav.d.ts.map +1 -1
  61. package/lib/deprecated/UnderlineNav/UnderlineNav.js +2 -3
  62. package/lib/deprecated/index.d.ts +0 -2
  63. package/lib/deprecated/index.d.ts.map +1 -1
  64. package/lib/deprecated/index.js +0 -2
  65. package/lib/hooks/useMnemonics.js +1 -2
  66. package/lib/index.d.ts +1 -5
  67. package/lib/index.d.ts.map +1 -1
  68. package/lib/index.js +0 -6
  69. package/lib/{Caret.d.ts → internal/components/Caret.d.ts} +1 -1
  70. package/lib/internal/components/Caret.d.ts.map +1 -0
  71. package/lib-esm/Autocomplete/AutocompleteMenu.js +1 -1
  72. package/lib-esm/CircleOcticon/CircleOcticon.d.ts +3 -0
  73. package/lib-esm/CircleOcticon/CircleOcticon.js +3 -0
  74. package/lib-esm/ConfirmationDialog/ConfirmationDialog.d.ts +8 -0
  75. package/lib-esm/ConfirmationDialog/ConfirmationDialog.js +6 -2
  76. package/lib-esm/FilteredActionList/FilteredActionList-96b126d7.css +2 -0
  77. package/lib-esm/FilteredActionList/FilteredActionList-96b126d7.css.map +1 -0
  78. package/lib-esm/FilteredActionList/FilteredActionList.js +3 -6
  79. package/lib-esm/FilteredActionList/FilteredActionList.module.css.js +2 -2
  80. package/lib-esm/PointerBox/PointerBox.d.ts +1 -1
  81. package/lib-esm/PointerBox/PointerBox.js +1 -1
  82. package/lib-esm/ProgressBar/ProgressBar-a0957632.css +2 -0
  83. package/lib-esm/ProgressBar/ProgressBar-a0957632.css.map +1 -0
  84. package/lib-esm/ProgressBar/ProgressBar.js +53 -49
  85. package/lib-esm/ProgressBar/ProgressBar.module.css.js +1 -1
  86. package/lib-esm/Radio/{Radio-b2a92b7d.css → Radio-df9a5c02.css} +2 -2
  87. package/lib-esm/Radio/{Radio-b2a92b7d.css.map → Radio-df9a5c02.css.map} +1 -1
  88. package/lib-esm/Radio/Radio.module.css.js +1 -1
  89. package/lib-esm/Select/Select.js +61 -53
  90. package/lib-esm/SelectPanel/SelectPanel.js +1 -1
  91. package/lib-esm/SplitPageLayout/SplitPageLayout.d.ts +1 -2
  92. package/lib-esm/Stack/Stack.js +110 -111
  93. package/lib-esm/StateLabel/StateLabel-cd27f475.css +2 -0
  94. package/lib-esm/StateLabel/StateLabel-cd27f475.css.map +1 -0
  95. package/lib-esm/StateLabel/StateLabel.d.ts +1 -2
  96. package/lib-esm/StateLabel/StateLabel.js +3 -5
  97. package/lib-esm/StateLabel/StateLabel.module.css.js +5 -0
  98. package/lib-esm/SubNav/SubNav.d.ts +8 -16
  99. package/lib-esm/SubNav/SubNav.js +3 -6
  100. package/lib-esm/ToggleSwitch/ToggleSwitch-65936b4b.css +4 -0
  101. package/lib-esm/ToggleSwitch/ToggleSwitch-65936b4b.css.map +1 -0
  102. package/lib-esm/ToggleSwitch/ToggleSwitch.d.ts +1 -2
  103. package/lib-esm/ToggleSwitch/ToggleSwitch.js +163 -213
  104. package/lib-esm/ToggleSwitch/ToggleSwitch.module.css.js +5 -0
  105. package/lib-esm/Token/index.d.ts +0 -1
  106. package/lib-esm/TreeView/shared.js +2 -2
  107. package/lib-esm/VisuallyHidden/VisuallyHidden.d.ts +1 -2
  108. package/lib-esm/VisuallyHidden/VisuallyHidden.js +1 -3
  109. package/lib-esm/deprecated/UnderlineNav/UnderlineNav.d.ts +2 -3
  110. package/lib-esm/deprecated/UnderlineNav/UnderlineNav.js +2 -3
  111. package/lib-esm/deprecated/index.d.ts +0 -2
  112. package/lib-esm/deprecated/index.js +0 -1
  113. package/lib-esm/hooks/useMnemonics.js +1 -2
  114. package/lib-esm/index.d.ts +1 -5
  115. package/lib-esm/index.js +0 -3
  116. package/lib-esm/{Caret.d.ts → internal/components/Caret.d.ts} +1 -1
  117. package/package.json +13 -14
  118. package/lib/Caret.d.ts.map +0 -1
  119. package/lib/FilteredActionList/FilteredActionList-d1d6d026.css +0 -2
  120. package/lib/FilteredActionList/FilteredActionList-d1d6d026.css.map +0 -1
  121. package/lib/ProgressBar/ProgressBar-430cdef7.css +0 -2
  122. package/lib/ProgressBar/ProgressBar-430cdef7.css.map +0 -1
  123. package/lib/Token/AvatarToken-ff45cc85.css +0 -2
  124. package/lib/Token/AvatarToken-ff45cc85.css.map +0 -1
  125. package/lib/Token/AvatarToken.d.ts +0 -8
  126. package/lib/Token/AvatarToken.d.ts.map +0 -1
  127. package/lib/Token/AvatarToken.js +0 -99
  128. package/lib/Token/AvatarToken.module.css.js +0 -7
  129. package/lib/deprecated/AvatarPair/AvatarPair-68990abe.css +0 -2
  130. package/lib/deprecated/AvatarPair/AvatarPair-68990abe.css.map +0 -1
  131. package/lib/deprecated/AvatarPair/AvatarPair.d.ts +0 -14
  132. package/lib/deprecated/AvatarPair/AvatarPair.d.ts.map +0 -1
  133. package/lib/deprecated/AvatarPair/AvatarPair.js +0 -95
  134. package/lib/deprecated/AvatarPair/AvatarPair.module.css.js +0 -7
  135. package/lib/deprecated/AvatarPair/index.d.ts +0 -3
  136. package/lib/deprecated/AvatarPair/index.d.ts.map +0 -1
  137. package/lib/node_modules/@github/mini-throttle/dist/index.js +0 -43
  138. package/lib-esm/FilteredActionList/FilteredActionList-d1d6d026.css +0 -2
  139. package/lib-esm/FilteredActionList/FilteredActionList-d1d6d026.css.map +0 -1
  140. package/lib-esm/ProgressBar/ProgressBar-430cdef7.css +0 -2
  141. package/lib-esm/ProgressBar/ProgressBar-430cdef7.css.map +0 -1
  142. package/lib-esm/Token/AvatarToken-ff45cc85.css +0 -2
  143. package/lib-esm/Token/AvatarToken-ff45cc85.css.map +0 -1
  144. package/lib-esm/Token/AvatarToken.d.ts +0 -8
  145. package/lib-esm/Token/AvatarToken.js +0 -97
  146. package/lib-esm/Token/AvatarToken.module.css.js +0 -5
  147. package/lib-esm/deprecated/AvatarPair/AvatarPair-68990abe.css +0 -2
  148. package/lib-esm/deprecated/AvatarPair/AvatarPair-68990abe.css.map +0 -1
  149. package/lib-esm/deprecated/AvatarPair/AvatarPair.d.ts +0 -14
  150. package/lib-esm/deprecated/AvatarPair/AvatarPair.js +0 -89
  151. package/lib-esm/deprecated/AvatarPair/AvatarPair.module.css.js +0 -5
  152. package/lib-esm/deprecated/AvatarPair/index.d.ts +0 -3
  153. package/lib-esm/node_modules/@github/mini-throttle/dist/index.js +0 -40
  154. /package/lib/{Caret.js → internal/components/Caret.js} +0 -0
  155. /package/lib-esm/{Caret.js → internal/components/Caret.js} +0 -0
@@ -796,7 +796,7 @@
796
796
  "stories": [
797
797
  {
798
798
  "id": "components-anchoredoverlay--default",
799
- "code": "() => {\n const [open, setOpen] = useState(false)\n return (\n <AnchoredOverlay\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n renderAnchor={(props) => <Button {...props}>Button</Button>}\n overlayProps={{\n role: 'dialog',\n 'aria-modal': true,\n 'aria-label': 'User Card Overlay',\n sx: {\n minWidth: '320px',\n },\n }}\n focusZoneSettings={{\n disabled: true,\n }}\n preventOverflow={false}\n >\n {hoverCard}\n </AnchoredOverlay>\n )\n}"
799
+ "code": "() => {\n const [open, setOpen] = useState(false)\n return (\n <AnchoredOverlay\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n renderAnchor={(props) => <Button {...props}>Button</Button>}\n overlayProps={{\n role: 'dialog',\n 'aria-modal': true,\n 'aria-label': 'User Card Overlay',\n style: {\n minWidth: '320px',\n },\n }}\n focusZoneSettings={{\n disabled: true,\n }}\n preventOverflow={false}\n >\n {hoverCard}\n </AnchoredOverlay>\n )\n}"
800
800
  },
801
801
  {
802
802
  "id": "components-anchoredoverlay-features--portal-inside-scrolling-element",
@@ -989,7 +989,7 @@
989
989
  "stories": [
990
990
  {
991
991
  "id": "components-autocomplete--default",
992
- "code": "() => {\n return (\n <Box\n as=\"form\"\n sx={{\n p: 3,\n }}\n onSubmit={(event) => event.preventDefault()}\n >\n <FormControl>\n <FormControl.Label id=\"autocompleteLabel-default\">\n Label\n </FormControl.Label>\n <Autocomplete>\n <Autocomplete.Input />\n <Autocomplete.Overlay>\n <Autocomplete.Menu\n selectedItemIds={[]}\n aria-labelledby=\"autocompleteLabel-default\"\n items={items}\n />\n </Autocomplete.Overlay>\n </Autocomplete>\n </FormControl>\n </Box>\n )\n}"
992
+ "code": "() => {\n return (\n <form\n className={classes.DefaultForm}\n onSubmit={(event) => event.preventDefault()}\n >\n <FormControl>\n <FormControl.Label id=\"autocompleteLabel-default\">\n Label\n </FormControl.Label>\n <Autocomplete>\n <Autocomplete.Input />\n <Autocomplete.Overlay>\n <Autocomplete.Menu\n selectedItemIds={[]}\n aria-labelledby=\"autocompleteLabel-default\"\n items={items}\n />\n </Autocomplete.Overlay>\n </Autocomplete>\n </FormControl>\n </form>\n )\n}"
993
993
  },
994
994
  {
995
995
  "id": "components-autocomplete-features--with-token-input",
@@ -2161,19 +2161,19 @@
2161
2161
  },
2162
2162
  {
2163
2163
  "id": "components-checkbox-features--with-leading-visual",
2164
- "code": "() => {\n return (\n <Box as=\"form\">\n <FormControl>\n <FormControl.LeadingVisual>\n <MarkGithubIcon />\n </FormControl.LeadingVisual>\n <Checkbox value=\"default\" />\n <FormControl.Label>Default label</FormControl.Label>\n </FormControl>\n </Box>\n )\n}"
2164
+ "code": "() => {\n return (\n <form>\n <FormControl>\n <FormControl.LeadingVisual>\n <MarkGithubIcon />\n </FormControl.LeadingVisual>\n <Checkbox value=\"default\" />\n <FormControl.Label>Default label</FormControl.Label>\n </FormControl>\n </form>\n )\n}"
2165
2165
  },
2166
2166
  {
2167
2167
  "id": "components-checkbox-features--disabled",
2168
- "code": "() => {\n return (\n <Box as=\"form\">\n <FormControl disabled>\n <Checkbox value=\"default\" />\n <FormControl.Label>Default label</FormControl.Label>\n </FormControl>\n </Box>\n )\n}"
2168
+ "code": "() => {\n return (\n <form>\n <FormControl disabled>\n <Checkbox value=\"default\" />\n <FormControl.Label>Default label</FormControl.Label>\n </FormControl>\n </form>\n )\n}"
2169
2169
  },
2170
2170
  {
2171
2171
  "id": "components-checkbox-features--with-caption",
2172
- "code": "() => {\n return (\n <Box as=\"form\">\n <FormControl>\n <Checkbox value=\"default\" />\n <FormControl.Label>Default label</FormControl.Label>\n <FormControl.Caption>This is a caption</FormControl.Caption>\n </FormControl>\n </Box>\n )\n}"
2172
+ "code": "() => {\n return (\n <form>\n <FormControl>\n <Checkbox value=\"default\" />\n <FormControl.Label>Default label</FormControl.Label>\n <FormControl.Caption>This is a caption</FormControl.Caption>\n </FormControl>\n </form>\n )\n}"
2173
2173
  },
2174
2174
  {
2175
2175
  "id": "components-checkbox-features--indeterminate",
2176
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <Checkbox value=\"default\" indeterminate />\n <FormControl.Label>Default label</FormControl.Label>\n </FormControl>\n </Box>\n)"
2176
+ "code": "() => (\n <form>\n <FormControl>\n <Checkbox value=\"default\" indeterminate />\n <FormControl.Label>Default label</FormControl.Label>\n </FormControl>\n </form>\n)"
2177
2177
  }
2178
2178
  ],
2179
2179
  "importPath": "@primer/react",
@@ -2440,11 +2440,11 @@
2440
2440
  "source": "https://github.com/primer/react/tree/main/packages/react/src/CircleOcticon",
2441
2441
  "id": "circle_octicon",
2442
2442
  "name": "CircleOcticon",
2443
- "status": "alpha",
2443
+ "status": "deprecated",
2444
2444
  "a11yReviewed": "2025-01-08",
2445
2445
  "stories": [
2446
2446
  {
2447
- "id": "components-circleocticon--default",
2447
+ "id": "deprecated-components-circleocticon--default",
2448
2448
  "code": "() => (\n <CircleOcticon\n icon={CheckIcon}\n size={32}\n sx={{\n backgroundColor: 'success.emphasis',\n color: 'fg.onEmphasis',\n }}\n aria-label=\"Changes approved\"\n />\n)"
2449
2449
  }
2450
2450
  ],
@@ -2488,6 +2488,10 @@
2488
2488
  {
2489
2489
  "id": "components-confirmationdialog-features--shorthand-hook-from-action-menu",
2490
2490
  "code": "() => {\n const confirm = useConfirm()\n const [text, setText] = useState('open me')\n const onButtonClick = useCallback(async () => {\n if (\n await confirm({\n title: 'Are you sure?',\n content: 'Do you really want to do a trick?',\n })\n ) {\n setText('tada!')\n }\n }, [confirm])\n return (\n <div className={classes.ButtonContainer}>\n <ActionMenu>\n <ActionMenu.Button>{text}</ActionMenu.Button>\n <ActionMenu.Overlay>\n <ActionList>\n <ActionList.Item onSelect={onButtonClick}>\n Do a trick!\n </ActionList.Item>\n </ActionList>\n </ActionMenu.Overlay>\n </ActionMenu>\n </div>\n )\n}"
2491
+ },
2492
+ {
2493
+ "id": "components-confirmationdialog-features--loading-states",
2494
+ "code": "() => {\n const [isOpen, setIsOpen] = useState(false)\n const [isConfirmLoading, setIsConfirmLoading] = useState(false)\n const [isCancelLoading, setIsCancelLoading] = useState(false)\n const handleConfirm = useCallback(() => {\n setIsConfirmLoading(true)\n // Simulate async operation\n setTimeout(() => {\n setIsConfirmLoading(false)\n setIsOpen(false)\n }, 2000)\n }, [])\n const handleCancel = useCallback(() => {\n setIsCancelLoading(true)\n // Simulate async operation\n setTimeout(() => {\n setIsCancelLoading(false)\n setIsOpen(false)\n }, 1500)\n }, [])\n const handleClose = useCallback(\n (gesture: 'confirm' | 'close-button' | 'cancel' | 'escape') => {\n if (gesture === 'confirm') {\n handleConfirm()\n } else if (gesture === 'cancel') {\n handleCancel()\n } else {\n setIsOpen(false)\n }\n },\n [handleConfirm, handleCancel],\n )\n return (\n <div className={classes.ButtonContainer}>\n <Button onClick={() => setIsOpen(true)}>Show Loading Dialog</Button>\n {isOpen && (\n <ConfirmationDialog\n title=\"Delete this file?\"\n confirmButtonType=\"danger\"\n confirmButtonContent=\"Delete\"\n confirmButtonLoading={isConfirmLoading}\n cancelButtonLoading={isCancelLoading}\n onClose={handleClose}\n >\n This action cannot be undone. The file will be permanently deleted\n from your repository.\n </ConfirmationDialog>\n )}\n </div>\n )\n}"
2491
2495
  }
2492
2496
  ],
2493
2497
  "props": [
@@ -4440,7 +4444,7 @@
4440
4444
  "stories": [
4441
4445
  {
4442
4446
  "id": "private-components-overlay--default",
4443
- "code": "(args: Args) => {\n const [isOpen, setIsOpen] = useState(false)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const confirmButtonRef = useRef<HTMLButtonElement>(null)\n const anchorRef = useRef<HTMLDivElement>(null)\n const closeOverlay = () => setIsOpen(false)\n const containerRef = useRef<HTMLDivElement>(null)\n useFocusTrap({\n containerRef,\n disabled: !isOpen,\n })\n return (\n <Box ref={anchorRef}>\n <Button\n ref={buttonRef}\n onClick={() => {\n setIsOpen(!isOpen)\n }}\n >\n Open overlay\n </Button>\n {isOpen || args.open ? (\n <Overlay\n initialFocusRef={confirmButtonRef}\n returnFocusRef={buttonRef}\n ignoreClickRefs={[buttonRef]}\n onEscape={closeOverlay}\n onClickOutside={closeOverlay}\n width=\"large\"\n anchorSide=\"inside-right\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Sample overlay\"\n ref={containerRef}\n >\n <Box\n sx={{\n height: '100vh',\n maxWidth: 'calc(-1rem + 100vw)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <IconButton\n aria-label=\"Close\"\n onClick={closeOverlay}\n icon={XIcon}\n variant=\"invisible\"\n sx={{\n position: 'absolute',\n left: '5px',\n top: '5px',\n }}\n />\n <Text>Look! an overlay</Text>\n </Box>\n </Overlay>\n ) : null}\n </Box>\n )\n}"
4447
+ "code": "(args: Args) => {\n const [isOpen, setIsOpen] = useState(false)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const confirmButtonRef = useRef<HTMLButtonElement>(null)\n const anchorRef = useRef<HTMLDivElement>(null)\n const closeOverlay = () => setIsOpen(false)\n const containerRef = useRef<HTMLDivElement>(null)\n useFocusTrap({\n containerRef,\n disabled: !isOpen,\n })\n return (\n <div ref={anchorRef}>\n <Button\n ref={buttonRef}\n onClick={() => {\n setIsOpen(!isOpen)\n }}\n >\n Open overlay\n </Button>\n {isOpen || args.open ? (\n <Overlay\n initialFocusRef={confirmButtonRef}\n returnFocusRef={buttonRef}\n ignoreClickRefs={[buttonRef]}\n onEscape={closeOverlay}\n onClickOutside={closeOverlay}\n width=\"large\"\n anchorSide=\"inside-right\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Sample overlay\"\n ref={containerRef}\n >\n <div className={classes.FullHeightContent}>\n <IconButton\n aria-label=\"Close\"\n onClick={closeOverlay}\n icon={XIcon}\n variant=\"invisible\"\n className={classes.CloseButtonOverlay}\n />\n <Text>Look! an overlay</Text>\n </div>\n </Overlay>\n ) : null}\n </div>\n )\n}"
4444
4448
  },
4445
4449
  {
4446
4450
  "id": "private-components-overlay-features--dialog-overlay",
@@ -5661,15 +5665,15 @@
5661
5665
  },
5662
5666
  {
5663
5667
  "id": "components-progressbar-features--inline",
5664
- "code": "() => (\n <ProgressBar\n inline\n progress=\"66\"\n sx={{\n width: '100px',\n }}\n aria-label=\"Upload test.png\"\n />\n)"
5668
+ "code": "() => (\n <ProgressBar\n inline\n progress=\"66\"\n style={{\n width: '100px',\n }}\n aria-label=\"Upload test.png\"\n />\n)"
5665
5669
  },
5666
5670
  {
5667
- "id": "components-progressbar-features--color",
5668
- "code": "() => (\n <ProgressBar progress=\"66\" bg=\"done.emphasis\" aria-label=\"Upload test.png\" />\n)"
5671
+ "id": "components-progressbar-features--all-colors",
5672
+ "code": "() => (\n <ProgressBar aria-label=\"Upload test.png\">\n <ProgressBar.Item\n progress={20}\n aria-label=\"Photo Usage\"\n bg=\"accent.emphasis\"\n />\n <ProgressBar.Item\n progress={15}\n aria-label=\"Application Usage\"\n bg=\"danger.emphasis\"\n />\n <ProgressBar.Item\n progress={12}\n aria-label=\"Music Usage\"\n bg=\"severe.emphasis\"\n />\n <ProgressBar.Item\n progress={11}\n aria-label=\"Music Usage\"\n bg=\"done.emphasis\"\n />\n <ProgressBar.Item\n progress={8}\n aria-label=\"Music Usage\"\n bg=\"sponsors.emphasis\"\n />\n <ProgressBar.Item\n progress={7}\n aria-label=\"Music Usage\"\n bg=\"neutral.emphasis\"\n />\n <ProgressBar.Item\n progress={7}\n aria-label=\"Music Usage\"\n bg=\"attention.emphasis\"\n />\n </ProgressBar>\n)"
5669
5673
  },
5670
5674
  {
5671
5675
  "id": "components-progressbar-features--multiple-items",
5672
- "code": "() => (\n <ProgressBar>\n <ProgressBar.Item\n progress={33}\n aria-label=\"Photo Usage\"\n sx={{\n bg: 'accent.emphasis',\n }}\n />\n <ProgressBar.Item\n progress={23}\n aria-label=\"Application Usage\"\n bg={'danger.emphasis'}\n />\n <ProgressBar.Item\n progress={14}\n aria-label=\"Music Usage\"\n bg={'severe.emphasis'}\n />\n </ProgressBar>\n)"
5676
+ "code": "() => (\n <ProgressBar>\n <ProgressBar.Item\n progress={33}\n aria-label=\"Photo Usage\"\n bg=\"accent.emphasis\"\n />\n <ProgressBar.Item\n progress={23}\n aria-label=\"Application Usage\"\n bg={'danger.emphasis'}\n />\n <ProgressBar.Item\n progress={14}\n aria-label=\"Music Usage\"\n bg={'severe.emphasis'}\n />\n </ProgressBar>\n)"
5673
5677
  },
5674
5678
  {
5675
5679
  "id": "components-progressbar-features--animated",
@@ -6175,7 +6179,7 @@
6175
6179
  },
6176
6180
  {
6177
6181
  "id": "components-segmentedcontrol-features--associated-with-a-label-and-caption",
6178
- "code": "() => (\n <Box\n display=\"flex\"\n sx={(theme) => ({\n flexDirection: 'column',\n gap: theme.space[1],\n [`@media screen and (min-width: ${theme.breakpoints[1]})`]: {\n flexDirection: 'row',\n },\n })}\n >\n <Box flexGrow={1}>\n <Text fontSize={2} fontWeight=\"bold\" id=\"scLabel-vert\" display=\"block\">\n File view\n </Text>\n <Text color=\"fg.subtle\" fontSize={1} id=\"scCaption-vert\" display=\"block\">\n Change the way the file is viewed\n </Text>\n </Box>\n <SegmentedControl\n aria-labelledby=\"scLabel-vert\"\n aria-describedby=\"scCaption-vert\"\n >\n <SegmentedControl.Button defaultSelected>Preview</SegmentedControl.Button>\n <SegmentedControl.Button>Raw</SegmentedControl.Button>\n <SegmentedControl.Button>Blame</SegmentedControl.Button>\n </SegmentedControl>\n </Box>\n)"
6182
+ "code": "() => (\n <div className={classes.LabelAndCaptionContainer}>\n <div className={classes.LabelAndCaption}>\n <Text fontSize={2} fontWeight=\"bold\" id=\"scLabel-vert\" display=\"block\">\n File view\n </Text>\n <Text color=\"fg.subtle\" fontSize={1} id=\"scCaption-vert\" display=\"block\">\n Change the way the file is viewed\n </Text>\n </div>\n <SegmentedControl\n aria-labelledby=\"scLabel-vert\"\n aria-describedby=\"scCaption-vert\"\n >\n <SegmentedControl.Button defaultSelected>Preview</SegmentedControl.Button>\n <SegmentedControl.Button>Raw</SegmentedControl.Button>\n <SegmentedControl.Button>Blame</SegmentedControl.Button>\n </SegmentedControl>\n </div>\n)"
6179
6183
  }
6180
6184
  ],
6181
6185
  "importPath": "@primer/react",
@@ -6334,51 +6338,51 @@
6334
6338
  "stories": [
6335
6339
  {
6336
6340
  "id": "components-select--default",
6337
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </Box>\n)"
6341
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </form>\n)"
6338
6342
  },
6339
6343
  {
6340
6344
  "id": "components-select-features--with-option-groups",
6341
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.OptGroup label=\"Group one\">\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n </Select.OptGroup>\n <Select.OptGroup disabled label=\"Group two\">\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select.OptGroup>\n </Select>\n </FormControl>\n </Box>\n)"
6345
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.OptGroup label=\"Group one\">\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n </Select.OptGroup>\n <Select.OptGroup disabled label=\"Group two\">\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select.OptGroup>\n </Select>\n </FormControl>\n </form>\n)"
6342
6346
  },
6343
6347
  {
6344
6348
  "id": "components-select-features--disabled",
6345
- "code": "() => (\n <Box as=\"form\">\n <FormControl disabled>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </Box>\n)"
6349
+ "code": "() => (\n <form>\n <FormControl disabled>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </form>\n)"
6346
6350
  },
6347
6351
  {
6348
6352
  "id": "components-select-features--with-caption",
6349
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <FormControl.Caption>This is a caption</FormControl.Caption>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </Box>\n)"
6353
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <FormControl.Caption>This is a caption</FormControl.Caption>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </form>\n)"
6350
6354
  },
6351
6355
  {
6352
6356
  "id": "components-select-features--visually-hidden-label",
6353
- "code": "() => (\n <Box as=\"form\">\n <Heading as=\"h2\" variant=\"small\">\n Primer form title\n </Heading>\n <FormControl>\n <FormControl.Label visuallyHidden>Primer form label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n <FormControl.Caption>\n Label is visually hidden; the title describes the purpose visually\n </FormControl.Caption>\n </FormControl>\n </Box>\n)"
6357
+ "code": "() => (\n <form>\n <Heading as=\"h2\" variant=\"small\">\n Primer form title\n </Heading>\n <FormControl>\n <FormControl.Label visuallyHidden>Primer form label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n <FormControl.Caption>\n Label is visually hidden; the title describes the purpose visually\n </FormControl.Caption>\n </FormControl>\n </form>\n)"
6354
6358
  },
6355
6359
  {
6356
6360
  "id": "components-select-features--error",
6357
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n <FormControl.Validation variant=\"error\">\n Something went wrong\n </FormControl.Validation>\n </FormControl>\n </Box>\n)"
6361
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n <FormControl.Validation variant=\"error\">\n Something went wrong\n </FormControl.Validation>\n </FormControl>\n </form>\n)"
6358
6362
  },
6359
6363
  {
6360
6364
  "id": "components-select-features--success",
6361
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n <FormControl.Validation variant=\"success\">Success</FormControl.Validation>\n </FormControl>\n </Box>\n)"
6365
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n <FormControl.Validation variant=\"success\">Success</FormControl.Validation>\n </FormControl>\n </form>\n)"
6362
6366
  },
6363
6367
  {
6364
6368
  "id": "components-select-features--block",
6365
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select block>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </Box>\n)"
6369
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select block>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </form>\n)"
6366
6370
  },
6367
6371
  {
6368
6372
  "id": "components-select-features--small",
6369
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select size=\"small\">\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </Box>\n)"
6373
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select size=\"small\">\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </form>\n)"
6370
6374
  },
6371
6375
  {
6372
6376
  "id": "components-select-features--large",
6373
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select size=\"large\">\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </Box>\n)"
6377
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select size=\"large\">\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </form>\n)"
6374
6378
  },
6375
6379
  {
6376
6380
  "id": "components-select-features--with-custom-styling",
6377
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select\n sx={{\n borderRadius: '12px',\n border: '1px dashed #000000',\n }}\n >\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </Box>\n)"
6381
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select className={classes.CustomSelect}>\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </form>\n)"
6378
6382
  },
6379
6383
  {
6380
6384
  "id": "components-select-features--with-placeholder-option",
6381
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select placeholder=\"No choice selected\">\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </Box>\n)"
6385
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Select placeholder=\"No choice selected\">\n <Select.Option value=\"one\">Choice one</Select.Option>\n <Select.Option value=\"two\">Choice two</Select.Option>\n <Select.Option value=\"three\">Choice three</Select.Option>\n <Select.Option value=\"four\">Choice four</Select.Option>\n <Select.Option value=\"five\">Choice five</Select.Option>\n <Select.Option value=\"six\">Choice six</Select.Option>\n </Select>\n </FormControl>\n </form>\n)"
6382
6386
  }
6383
6387
  ],
6384
6388
  "importPath": "@primer/react",
@@ -6836,7 +6840,7 @@
6836
6840
  },
6837
6841
  {
6838
6842
  "id": "components-spinner-features--suppress-screen-reader-text",
6839
- "code": "() => (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n gap: '0.25rem',\n }}\n >\n <Spinner size=\"small\" srText={null} />\n <AriaStatus>Loading...</AriaStatus>\n </Box>\n)"
6843
+ "code": "() => (\n <Stack direction=\"horizontal\" className={classes.SuppressScreenReaderText}>\n <Spinner size=\"small\" srText={null} />\n <AriaStatus>Loading...</AriaStatus>\n </Stack>\n)"
6840
6844
  }
6841
6845
  ],
6842
6846
  "importPath": "@primer/react",
@@ -6889,15 +6893,14 @@
6889
6893
  },
6890
6894
  {
6891
6895
  "id": "components-splitpagelayout-features--settings-page",
6892
- "code": "() => (\n <SplitPageLayout>\n <SplitPageLayout.Pane position=\"start\" aria-label=\"Navigation Pane\">\n <NavList aria-label=\"Main navigation\">\n <NavList.Item href=\"#\">Profile</NavList.Item>\n <NavList.Item href=\"#\" aria-current=\"page\">\n Account\n </NavList.Item>\n <NavList.Item href=\"#\">Emails</NavList.Item>\n <NavList.Item href=\"#\">Notifications</NavList.Item>\n </NavList>\n </SplitPageLayout.Pane>\n <SplitPageLayout.Content>\n <Heading\n as=\"h2\"\n sx={{\n fontSize: 4,\n fontWeight: 'normal',\n color: 'danger.fg',\n mb: 2,\n }}\n >\n Danger zone\n </Heading>\n <Box\n sx={{\n border: '1px solid',\n borderColor: 'danger.emphasis',\n borderRadius: 2,\n p: 3,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 3,\n }}\n >\n <Box\n sx={{\n display: 'grid',\n gap: 1,\n }}\n >\n <Text\n sx={{\n fontSize: 1,\n fontWeight: 'bold',\n color: 'danger.fg',\n }}\n >\n Delete account\n </Text>\n <Text\n sx={{\n fontSize: 1,\n color: 'fg.muted',\n }}\n >\n Are you sure you don&apos;t want to just downgrade your account to a\n free account? We won&apos;t charge your credit card anymore.\n </Text>\n </Box>\n <Button variant=\"danger\">Delete account</Button>\n </Box>\n </SplitPageLayout.Content>\n </SplitPageLayout>\n)"
6896
+ "code": "() => (\n <SplitPageLayout>\n <SplitPageLayout.Pane position=\"start\" aria-label=\"Navigation Pane\">\n <NavList aria-label=\"Main navigation\">\n <NavList.Item href=\"#\">Profile</NavList.Item>\n <NavList.Item href=\"#\" aria-current=\"page\">\n Account\n </NavList.Item>\n <NavList.Item href=\"#\">Emails</NavList.Item>\n <NavList.Item href=\"#\">Notifications</NavList.Item>\n </NavList>\n </SplitPageLayout.Pane>\n <SplitPageLayout.Content>\n <Heading as=\"h2\" className={classes.SectionHeading}>\n Danger zone\n </Heading>\n <div className={classes.DeleteAccountContainer}>\n <div className={classes.DeleteAccountTextContainer}>\n <Text className={classes.DeleteAccountTitle}>Delete account</Text>\n <Text className={classes.DeleteAccountDescription}>\n Are you sure you don&apos;t want to just downgrade your account to a\n free account? We won&apos;t charge your credit card anymore.\n </Text>\n </div>\n <Button variant=\"danger\">Delete account</Button>\n </div>\n </SplitPageLayout.Content>\n </SplitPageLayout>\n)"
6893
6897
  }
6894
6898
  ],
6895
6899
  "importPath": "@primer/react",
6896
6900
  "props": [
6897
6901
  {
6898
- "name": "sx",
6899
- "type": "SystemStyleObject",
6900
- "deprecated": true
6902
+ "name": "className",
6903
+ "type": "string"
6901
6904
  }
6902
6905
  ],
6903
6906
  "subcomponents": [
@@ -6933,11 +6936,6 @@
6933
6936
  "type": "| boolean | { narrow?: boolean regular?: boolean wide?: boolean }",
6934
6937
  "defaultValue": "false",
6935
6938
  "description": "Whether the header is hidden."
6936
- },
6937
- {
6938
- "name": "sx",
6939
- "type": "SystemStyleObject",
6940
- "deprecated": true
6941
6939
  }
6942
6940
  ]
6943
6941
  },
@@ -6973,11 +6971,6 @@
6973
6971
  "type": "| boolean | { narrow?: boolean regular?: boolean wide?: boolean }",
6974
6972
  "defaultValue": "false",
6975
6973
  "description": "Whether the content is hidden."
6976
- },
6977
- {
6978
- "name": "sx",
6979
- "type": "SystemStyleObject",
6980
- "deprecated": true
6981
6974
  }
6982
6975
  ]
6983
6976
  },
@@ -7053,11 +7046,6 @@
7053
7046
  "type": "'end' | 'start' | {narrow?: 'end' | 'start', narrow?: 'end' | 'start', wide?: 'end' | 'start'}",
7054
7047
  "description": "Which side of the page the pane should be on. Can be changed for different viewport widths.",
7055
7048
  "defaultValue": "start"
7056
- },
7057
- {
7058
- "name": "sx",
7059
- "type": "SystemStyleObject",
7060
- "deprecated": true
7061
7049
  }
7062
7050
  ]
7063
7051
  },
@@ -7093,11 +7081,6 @@
7093
7081
  "type": "| boolean | { narrow?: boolean regular?: boolean wide?: boolean }",
7094
7082
  "defaultValue": "false",
7095
7083
  "description": "Whether the footer is hidden."
7096
- },
7097
- {
7098
- "name": "sx",
7099
- "type": "SystemStyleObject",
7100
- "deprecated": true
7101
7084
  }
7102
7085
  ]
7103
7086
  }
@@ -7249,11 +7232,6 @@
7249
7232
  "name": "status",
7250
7233
  "type": "'issueOpened' | 'issueClosed' | 'issueClosedNotPlanned' | 'pullOpened' | 'pullClosed' | 'pullMerged' | 'draft' | 'issueDraft' | 'unavailable' | 'open' | 'closed'",
7251
7234
  "required": true
7252
- },
7253
- {
7254
- "name": "sx",
7255
- "type": "SystemStyleObject",
7256
- "deprecated": true
7257
7235
  }
7258
7236
  ],
7259
7237
  "subcomponents": []
@@ -7419,11 +7397,11 @@
7419
7397
  },
7420
7398
  {
7421
7399
  "id": "components-text-features--polymorphism",
7422
- "code": "() => (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <Text as=\"em\">Emphasized text</Text>\n <Text as=\"i\">Italicized text</Text>\n <Text as=\"strong\">Strong text</Text>\n <Text as=\"small\">Small text</Text>\n <Text as=\"u\">Text with underline</Text>\n </Box>\n)"
7400
+ "code": "() => (\n <div className={classes.PolymorphismContainer}>\n <Text as=\"em\">Emphasized text</Text>\n <Text as=\"i\">Italicized text</Text>\n <Text as=\"strong\">Strong text</Text>\n <Text as=\"small\">Small text</Text>\n <Text as=\"u\">Text with underline</Text>\n </div>\n)"
7423
7401
  },
7424
7402
  {
7425
7403
  "id": "components-text-features--styled-text",
7426
- "code": "() => (\n <Text\n as=\"p\"\n sx={{\n color: 'fg.onEmphasis',\n bg: 'neutral.emphasis',\n p: 2,\n }}\n size=\"small\"\n >\n Stylized text\n </Text>\n)"
7404
+ "code": "() => (\n <Text as=\"p\" className={classes.StyledText} size=\"small\">\n Stylized text\n </Text>\n)"
7427
7405
  },
7428
7406
  {
7429
7407
  "id": "components-text-features--size-small",
@@ -7490,67 +7468,67 @@
7490
7468
  "stories": [
7491
7469
  {
7492
7470
  "id": "components-textinput--default",
7493
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput />\n </FormControl>\n </Box>\n)"
7471
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput />\n </FormControl>\n </form>\n)"
7494
7472
  },
7495
7473
  {
7496
7474
  "id": "components-textinput-features--disabled",
7497
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput disabled />\n </FormControl>\n </Box>\n)"
7475
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput disabled />\n </FormControl>\n </form>\n)"
7498
7476
  },
7499
7477
  {
7500
7478
  "id": "components-textinput-features--with-caption",
7501
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <FormControl.Caption>This is a caption</FormControl.Caption>\n <TextInput />\n </FormControl>\n </Box>\n)"
7479
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <FormControl.Caption>This is a caption</FormControl.Caption>\n <TextInput />\n </FormControl>\n </form>\n)"
7502
7480
  },
7503
7481
  {
7504
7482
  "id": "components-textinput-features--visually-hidden-label",
7505
- "code": "() => (\n <Box as=\"form\">\n <Heading as=\"h2\" variant=\"small\">\n Primer form title\n </Heading>\n <FormControl>\n <FormControl.Label visuallyHidden>Primer form label</FormControl.Label>\n <TextInput />\n <FormControl.Caption>\n Label is visually hidden; the title describes the purpose visually\n </FormControl.Caption>\n </FormControl>\n </Box>\n)"
7483
+ "code": "() => (\n <form>\n <Heading as=\"h2\" variant=\"small\">\n Primer form title\n </Heading>\n <FormControl>\n <FormControl.Label visuallyHidden>Primer form label</FormControl.Label>\n <TextInput />\n <FormControl.Caption>\n Label is visually hidden; the title describes the purpose visually\n </FormControl.Caption>\n </FormControl>\n </form>\n)"
7506
7484
  },
7507
7485
  {
7508
7486
  "id": "components-textinput-features--error",
7509
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput />\n <FormControl.Validation variant=\"error\">\n Something went wrong\n </FormControl.Validation>\n </FormControl>\n </Box>\n)"
7487
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput />\n <FormControl.Validation variant=\"error\">\n Something went wrong\n </FormControl.Validation>\n </FormControl>\n </form>\n)"
7510
7488
  },
7511
7489
  {
7512
7490
  "id": "components-textinput-features--success",
7513
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput />\n <FormControl.Validation variant=\"success\">\n Something went wrong\n </FormControl.Validation>\n </FormControl>\n </Box>\n)"
7491
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput />\n <FormControl.Validation variant=\"success\">\n Something went wrong\n </FormControl.Validation>\n </FormControl>\n </form>\n)"
7514
7492
  },
7515
7493
  {
7516
7494
  "id": "components-textinput-features--block",
7517
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput block />\n </FormControl>\n </Box>\n)"
7495
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput block />\n </FormControl>\n </form>\n)"
7518
7496
  },
7519
7497
  {
7520
7498
  "id": "components-textinput-features--small",
7521
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput size=\"small\" />\n </FormControl>\n </Box>\n)"
7499
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput size=\"small\" />\n </FormControl>\n </form>\n)"
7522
7500
  },
7523
7501
  {
7524
7502
  "id": "components-textinput-features--large",
7525
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput size=\"large\" />\n </FormControl>\n </Box>\n)"
7503
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput size=\"large\" />\n </FormControl>\n </form>\n)"
7526
7504
  },
7527
7505
  {
7528
7506
  "id": "components-textinput-features--required",
7529
- "code": "() => (\n <Box as=\"form\">\n <FormControl required>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput size=\"large\" />\n </FormControl>\n </Box>\n)"
7507
+ "code": "() => (\n <form>\n <FormControl required>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput size=\"large\" />\n </FormControl>\n </form>\n)"
7530
7508
  },
7531
7509
  {
7532
7510
  "id": "components-textinput-features--with-leading-visual",
7533
- "code": "() => {\n const Checkmark = () => <CheckIcon aria-label=\"Checkmark\" />\n return (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput leadingVisual={Checkmark} />\n </FormControl>\n <FormControl>\n <FormControl.Label>Enter monies</FormControl.Label>\n <TextInput leadingVisual=\"$\" />\n </FormControl>\n </Box>\n )\n}"
7511
+ "code": "() => {\n const Checkmark = () => <CheckIcon aria-label=\"Checkmark\" />\n return (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput leadingVisual={Checkmark} />\n </FormControl>\n <FormControl>\n <FormControl.Label>Enter monies</FormControl.Label>\n <TextInput leadingVisual=\"$\" />\n </FormControl>\n </form>\n )\n}"
7534
7512
  },
7535
7513
  {
7536
7514
  "id": "components-textinput-features--with-trailing-icon",
7537
- "code": "() => {\n const Checkmark = () => <CheckIcon aria-label=\"Checkmark\" />\n return (\n <Box>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput trailingVisual={Checkmark} />\n </FormControl>\n <FormControl>\n <FormControl.Label>Enter monies</FormControl.Label>\n <TextInput trailingVisual=\"minutes\" placeholder=\"200\" />\n </FormControl>\n </Box>\n )\n}"
7515
+ "code": "() => {\n const Checkmark = () => <CheckIcon aria-label=\"Checkmark\" />\n return (\n <div>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput trailingVisual={Checkmark} />\n </FormControl>\n <FormControl>\n <FormControl.Label>Enter monies</FormControl.Label>\n <TextInput trailingVisual=\"minutes\" placeholder=\"200\" />\n </FormControl>\n </div>\n )\n}"
7538
7516
  },
7539
7517
  {
7540
7518
  "id": "components-textinput-features--with-trailing-action",
7541
- "code": "() => {\n const [value, setValue] = useState('sample text')\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value)\n }\n return (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n value={value}\n onChange={handleChange}\n trailingAction={\n <Stack\n justify=\"center\"\n style={{\n minWidth: '34px',\n }}\n >\n {value.length ? (\n <TextInput.Action\n onClick={() => setValue('')}\n icon={XCircleFillIcon}\n aria-label=\"Clear input\"\n />\n ) : undefined}\n </Stack>\n }\n />\n </FormControl>\n </Box>\n )\n}"
7519
+ "code": "() => {\n const [value, setValue] = useState('sample text')\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value)\n }\n return (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n value={value}\n onChange={handleChange}\n trailingAction={\n <Stack\n justify=\"center\"\n style={{\n minWidth: '34px',\n }}\n >\n {value.length ? (\n <TextInput.Action\n onClick={() => setValue('')}\n icon={XCircleFillIcon}\n aria-label=\"Clear input\"\n />\n ) : undefined}\n </Stack>\n }\n />\n </FormControl>\n </form>\n )\n}"
7542
7520
  },
7543
7521
  {
7544
7522
  "id": "components-textinput-features--with-tooltip-direction",
7545
- "code": "() => {\n const [value, setValue] = useState('sample text')\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value)\n }\n return (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n value={value}\n onChange={handleChange}\n trailingAction={\n <Stack\n justify=\"center\"\n style={{\n minWidth: '34px',\n }}\n >\n {value.length ? (\n <TextInput.Action\n onClick={() => setValue('')}\n icon={XCircleFillIcon}\n aria-label=\"Clear input\"\n tooltipDirection=\"nw\"\n />\n ) : undefined}\n </Stack>\n }\n />\n </FormControl>\n </Box>\n )\n}"
7523
+ "code": "() => {\n const [value, setValue] = useState('sample text')\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value)\n }\n return (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n value={value}\n onChange={handleChange}\n trailingAction={\n <Stack\n justify=\"center\"\n style={{\n minWidth: '34px',\n }}\n >\n {value.length ? (\n <TextInput.Action\n onClick={() => setValue('')}\n icon={XCircleFillIcon}\n aria-label=\"Clear input\"\n tooltipDirection=\"nw\"\n />\n ) : undefined}\n </Stack>\n }\n />\n </FormControl>\n </form>\n )\n}"
7546
7524
  },
7547
7525
  {
7548
7526
  "id": "components-textinput-features--with-loading-indicator",
7549
- "code": "(args: FormControlArgs<TextInputProps>) => {\n return (\n <Box as=\"form\">\n <h3>No visual</h3>\n\n <Box mb={2}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput value=\"auto\" {...args} />\n </FormControl>\n </Box>\n <Box mb={2}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput value=\"leading\" {...args} loaderPosition=\"leading\" />\n </FormControl>\n </Box>\n <Box mb={5}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput value=\"trailing\" {...args} loaderPosition=\"trailing\" />\n </FormControl>\n </Box>\n\n <h3>Leading visual</h3>\n\n <Box mb={2}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput leadingVisual={Calendar} {...args} value=\"auto\" />\n </FormControl>\n </Box>\n <Box mb={2}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n leadingVisual={Calendar}\n {...args}\n loaderPosition=\"leading\"\n value=\"leading\"\n />\n </FormControl>\n </Box>\n <Box mb={5}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n leadingVisual={Calendar}\n {...args}\n loaderPosition=\"trailing\"\n value=\"trailing\"\n />\n </FormControl>\n </Box>\n\n <h3>Trailing visual</h3>\n <FormControl>\n <Box mb={2}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput trailingVisual={Calendar} {...args} value=\"auto\" />\n </FormControl>\n </Box>\n <Box mb={2}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n trailingVisual={Calendar}\n {...args}\n loaderPosition=\"leading\"\n value=\"leading\"\n />\n </FormControl>\n </Box>\n <Box mb={5}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n trailingVisual={Calendar}\n {...args}\n loaderPosition=\"trailing\"\n value=\"trailing\"\n />\n </FormControl>\n </Box>\n </FormControl>\n\n <h3>Both visuals</h3>\n\n <Box mb={2}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n size=\"small\"\n leadingVisual={Calendar}\n trailingVisual={Calendar}\n {...args}\n value=\"auto\"\n />\n </FormControl>\n </Box>\n <Box mb={2}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n leadingVisual={Calendar}\n trailingVisual={Calendar}\n {...args}\n loaderPosition=\"leading\"\n value=\"leading\"\n />\n </FormControl>\n </Box>\n <Box mb={2}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n size=\"large\"\n leadingVisual={Calendar}\n trailingVisual={Calendar}\n {...args}\n loaderPosition=\"trailing\"\n value=\"trailing\"\n />\n </FormControl>\n </Box>\n </Box>\n )\n}"
7527
+ "code": "(args: FormControlArgs<TextInputProps>) => {\n return (\n <div>\n <h3>No visual</h3>\n\n <div className={classes.MarginBottom}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput value=\"auto\" {...args} />\n </FormControl>\n </div>\n <div className={classes.MarginBottom}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput value=\"leading\" {...args} loaderPosition=\"leading\" />\n </FormControl>\n </div>\n <div className={classes.MarginBottomLarge}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput value=\"trailing\" {...args} loaderPosition=\"trailing\" />\n </FormControl>\n </div>\n\n <h3>Leading visual</h3>\n\n <div className={classes.MarginBottom}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput leadingVisual={Calendar} {...args} value=\"auto\" />\n </FormControl>\n </div>\n <div className={classes.MarginBottom}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n leadingVisual={Calendar}\n {...args}\n loaderPosition=\"leading\"\n value=\"leading\"\n />\n </FormControl>\n </div>\n <div className={classes.MarginBottomLarge}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n leadingVisual={Calendar}\n {...args}\n loaderPosition=\"trailing\"\n value=\"trailing\"\n />\n </FormControl>\n </div>\n\n <h3>Trailing visual</h3>\n <FormControl>\n <div className={classes.MarginBottom}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput trailingVisual={Calendar} {...args} value=\"auto\" />\n </FormControl>\n </div>\n <div className={classes.MarginBottom}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n trailingVisual={Calendar}\n {...args}\n loaderPosition=\"leading\"\n value=\"leading\"\n />\n </FormControl>\n </div>\n <div className={classes.MarginBottomLarge}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n trailingVisual={Calendar}\n {...args}\n loaderPosition=\"trailing\"\n value=\"trailing\"\n />\n </FormControl>\n </div>\n </FormControl>\n\n <h3>Both visuals</h3>\n\n <div className={classes.MarginBottom}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n size=\"small\"\n leadingVisual={Calendar}\n trailingVisual={Calendar}\n {...args}\n value=\"auto\"\n />\n </FormControl>\n </div>\n <div className={classes.MarginBottom}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n leadingVisual={Calendar}\n trailingVisual={Calendar}\n {...args}\n loaderPosition=\"leading\"\n value=\"leading\"\n />\n </FormControl>\n </div>\n <div className={classes.MarginBottom}>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInput\n size=\"large\"\n leadingVisual={Calendar}\n trailingVisual={Calendar}\n {...args}\n loaderPosition=\"trailing\"\n value=\"trailing\"\n />\n </FormControl>\n </div>\n </div>\n )\n}"
7550
7528
  },
7551
7529
  {
7552
7530
  "id": "components-textinput-features--with-autocomplete-attribute",
7553
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>First name</FormControl.Label>\n <TextInput autoComplete=\"given-name\" />\n </FormControl>\n <FormControl>\n <FormControl.Label>Last name</FormControl.Label>\n <TextInput autoComplete=\"family-name\" />\n </FormControl>\n </Box>\n)"
7531
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>First name</FormControl.Label>\n <TextInput autoComplete=\"given-name\" />\n </FormControl>\n <FormControl>\n <FormControl.Label>Last name</FormControl.Label>\n <TextInput autoComplete=\"family-name\" />\n </FormControl>\n </form>\n)"
7554
7532
  }
7555
7533
  ],
7556
7534
  "importPath": "@primer/react",
@@ -7750,31 +7728,31 @@
7750
7728
  },
7751
7729
  {
7752
7730
  "id": "components-textinputwithtokens-features--with-loading-indicator",
7753
- "code": "(args: FormControlArgs<TextInputWithTokensProps>) => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 3))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <Box\n display=\"grid\"\n sx={{\n gap: 3,\n }}\n as=\"form\"\n >\n <FormControl>\n <FormControl.Label>No visual</FormControl.Label>\n <TextInputWithTokens\n {...args}\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n />\n </FormControl>\n\n <FormControl>\n <FormControl.Label>Leading visual</FormControl.Label>\n <TextInputWithTokens\n {...args}\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n leadingVisual={NumberIcon}\n />\n </FormControl>\n\n <FormControl>\n <FormControl.Label>Both visuals</FormControl.Label>\n <TextInputWithTokens\n {...args}\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n leadingVisual={NumberIcon}\n trailingVisual={CheckIcon}\n />\n </FormControl>\n </Box>\n )\n}"
7731
+ "code": "(args: FormControlArgs<TextInputWithTokensProps>) => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 3))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <form className={classes.Grid}>\n <FormControl>\n <FormControl.Label>No visual</FormControl.Label>\n <TextInputWithTokens\n {...args}\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n />\n </FormControl>\n\n <FormControl>\n <FormControl.Label>Leading visual</FormControl.Label>\n <TextInputWithTokens\n {...args}\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n leadingVisual={NumberIcon}\n />\n </FormControl>\n\n <FormControl>\n <FormControl.Label>Both visuals</FormControl.Label>\n <TextInputWithTokens\n {...args}\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n leadingVisual={NumberIcon}\n trailingVisual={CheckIcon}\n />\n </FormControl>\n </form>\n )\n}"
7754
7732
  },
7755
7733
  {
7756
7734
  "id": "components-textinputwithtokens-features--using-issue-label-tokens",
7757
- "code": "() => {\n const [tokens, setTokens] = useState([\n {\n text: 'enhancement',\n id: 1,\n fillColor: '#a2eeef',\n },\n {\n text: 'bug',\n id: 2,\n fillColor: '#d73a4a',\n },\n {\n text: 'good first issue',\n id: 3,\n fillColor: '#0cf478',\n },\n ])\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokenComponent={IssueLabelToken}\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n />\n </FormControl>\n </Box>\n )\n}"
7735
+ "code": "() => {\n const [tokens, setTokens] = useState([\n {\n text: 'enhancement',\n id: 1,\n fillColor: '#a2eeef',\n },\n {\n text: 'bug',\n id: 2,\n fillColor: '#d73a4a',\n },\n {\n text: 'good first issue',\n id: 3,\n fillColor: '#0cf478',\n },\n ])\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokenComponent={IssueLabelToken}\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n />\n </FormControl>\n </form>\n )\n}"
7758
7736
  },
7759
7737
  {
7760
7738
  "id": "components-textinputwithtokens-features--unstyled",
7761
- "code": "() => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 2))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label visuallyHidden>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n sx={{\n border: '0',\n padding: '0',\n boxShadow: 'none',\n ':focus-within': {\n border: '0',\n boxShadow: 'none',\n },\n }}\n />\n </FormControl>\n </Box>\n )\n}"
7739
+ "code": "() => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 2))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <form>\n <FormControl>\n <FormControl.Label visuallyHidden>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n className={classes.Unstyled}\n />\n </FormControl>\n </form>\n )\n}"
7762
7740
  },
7763
7741
  {
7764
7742
  "id": "components-textinputwithtokens-features--prevent-tokens-from-wrapping",
7765
- "code": "() => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 3))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n preventTokenWrapping\n />\n </FormControl>\n </Box>\n )\n}"
7743
+ "code": "() => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 3))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n preventTokenWrapping\n />\n </FormControl>\n </form>\n )\n}"
7766
7744
  },
7767
7745
  {
7768
7746
  "id": "components-textinputwithtokens-features--max-height",
7769
- "code": "() => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 7))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <Box\n sx={{\n maxWidth: '300px',\n }}\n >\n {/* Setting max-width to force tokens to wrap and demo `maxHeight` behavior */}\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n maxHeight={70}\n block // `block` only needed to fill parent width without overflowing\n />\n </FormControl>\n </Box>\n )\n}"
7747
+ "code": "() => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 7))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <div className={classes.MaxWidth}>\n {/* Setting max-width to force tokens to wrap and demo `maxHeight` behavior */}\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n maxHeight={70}\n block // `block` only needed to fill parent width without overflowing\n />\n </FormControl>\n </div>\n )\n}"
7770
7748
  },
7771
7749
  {
7772
7750
  "id": "components-textinputwithtokens-features--size",
7773
- "code": "() => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 3))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n size=\"small\"\n />\n </FormControl>\n </Box>\n )\n}"
7751
+ "code": "() => {\n const [tokens, setTokens] = useState([...mockTokens].slice(0, 3))\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n size=\"small\"\n />\n </FormControl>\n </form>\n )\n}"
7774
7752
  },
7775
7753
  {
7776
7754
  "id": "components-textinputwithtokens-features--truncated",
7777
- "code": "() => {\n const [tokens, setTokens] = useState(mockTokens)\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n visibleTokenCount={5}\n />\n </FormControl>\n </Box>\n )\n}"
7755
+ "code": "() => {\n const [tokens, setTokens] = useState(mockTokens)\n const onTokenRemove: (tokenId: string | number) => void = (tokenId) => {\n setTokens(tokens.filter((token) => token.id !== tokenId))\n }\n return (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <TextInputWithTokens\n tokens={tokens}\n onTokenRemove={onTokenRemove}\n visibleTokenCount={5}\n />\n </FormControl>\n </form>\n )\n}"
7778
7756
  }
7779
7757
  ],
7780
7758
  "importPath": "@primer/react",
@@ -7851,39 +7829,39 @@
7851
7829
  "stories": [
7852
7830
  {
7853
7831
  "id": "components-textarea--default",
7854
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea />\n </FormControl>\n </Box>\n)"
7832
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea />\n </FormControl>\n </form>\n)"
7855
7833
  },
7856
7834
  {
7857
7835
  "id": "components-textarea-features--disabled",
7858
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea disabled />\n </FormControl>\n </Box>\n)"
7836
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea disabled />\n </FormControl>\n </form>\n)"
7859
7837
  },
7860
7838
  {
7861
7839
  "id": "components-textarea-features--with-caption",
7862
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <FormControl.Caption>This is a caption</FormControl.Caption>\n <Textarea />\n </FormControl>\n </Box>\n)"
7840
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <FormControl.Caption>This is a caption</FormControl.Caption>\n <Textarea />\n </FormControl>\n </form>\n)"
7863
7841
  },
7864
7842
  {
7865
7843
  "id": "components-textarea-features--visually-hidden-label",
7866
- "code": "() => (\n <Box as=\"form\">\n <Heading as=\"h2\" variant=\"small\">\n Primer form title\n </Heading>\n <FormControl>\n <FormControl.Label visuallyHidden>Primer form label</FormControl.Label>\n <Textarea />\n <FormControl.Caption>\n Label is visually hidden; the title describes the purpose visually\n </FormControl.Caption>\n </FormControl>\n </Box>\n)"
7844
+ "code": "() => (\n <form>\n <Heading as=\"h2\" variant=\"small\">\n Primer form title\n </Heading>\n <FormControl>\n <FormControl.Label visuallyHidden>Primer form label</FormControl.Label>\n <Textarea />\n <FormControl.Caption>\n Label is visually hidden; the title describes the purpose visually\n </FormControl.Caption>\n </FormControl>\n </form>\n)"
7867
7845
  },
7868
7846
  {
7869
7847
  "id": "components-textarea-features--error",
7870
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea />\n <FormControl.Validation variant=\"error\">\n Something went wrong\n </FormControl.Validation>\n </FormControl>\n </Box>\n)"
7848
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea />\n <FormControl.Validation variant=\"error\">\n Something went wrong\n </FormControl.Validation>\n </FormControl>\n </form>\n)"
7871
7849
  },
7872
7850
  {
7873
7851
  "id": "components-textarea-features--success",
7874
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea />\n <FormControl.Validation variant=\"success\">Success</FormControl.Validation>\n </FormControl>\n </Box>\n)"
7852
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea />\n <FormControl.Validation variant=\"success\">Success</FormControl.Validation>\n </FormControl>\n </form>\n)"
7875
7853
  },
7876
7854
  {
7877
7855
  "id": "components-textarea-features--block",
7878
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea block />\n </FormControl>\n </Box>\n)"
7856
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea block />\n </FormControl>\n </form>\n)"
7879
7857
  },
7880
7858
  {
7881
7859
  "id": "components-textarea-features--custom-height",
7882
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea rows={3} />\n </FormControl>\n </Box>\n)"
7860
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea rows={3} />\n </FormControl>\n </form>\n)"
7883
7861
  },
7884
7862
  {
7885
7863
  "id": "components-textarea-features--custom-width",
7886
- "code": "() => (\n <Box as=\"form\">\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea cols={60} />\n </FormControl>\n </Box>\n)"
7864
+ "code": "() => (\n <form>\n <FormControl>\n <FormControl.Label>Default label</FormControl.Label>\n <Textarea cols={60} />\n </FormControl>\n </form>\n)"
7887
7865
  },
7888
7866
  {
7889
7867
  "id": "components-textarea-features--custom-resize-behavior",
@@ -8196,7 +8174,7 @@
8196
8174
  },
8197
8175
  {
8198
8176
  "id": "components-token-features--interactive-token",
8199
- "code": "() => {\n return (\n <Box\n display=\"flex\"\n sx={{\n alignItems: 'start',\n gap: get('space.2'),\n }}\n >\n <Token\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Link\"\n />\n <Token as=\"button\" onClick={action('clicked')} text=\"Button\" />\n </Box>\n )\n}"
8177
+ "code": "() => {\n return (\n <div className={classes.TokenRow}>\n <Token\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Link\"\n />\n <Token as=\"button\" onClick={action('clicked')} text=\"Button\" />\n </div>\n )\n}"
8200
8178
  },
8201
8179
  {
8202
8180
  "id": "components-token-features--token-with-leading-visual",
@@ -8204,7 +8182,7 @@
8204
8182
  },
8205
8183
  {
8206
8184
  "id": "components-token-features--token-with-on-remove-fn",
8207
- "code": "({ ...args }) => {\n return (\n <Box\n display=\"flex\"\n sx={{\n alignItems: 'start',\n gap: get('space.2'),\n }}\n >\n <Token text=\"token\" onRemove={action('remove me')} {...args} />\n <Token\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n onRemove={action('remove me')}\n text=\"Link\"\n {...args}\n />\n <Token\n as=\"button\"\n onClick={action('clicked')}\n onRemove={action('remove me')}\n text=\"Button\"\n {...args}\n />\n </Box>\n )\n}"
8185
+ "code": "({ ...args }) => {\n return (\n <div className={classes.TokenRow}>\n <Token text=\"token\" onRemove={action('remove me')} {...args} />\n <Token\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n onRemove={action('remove me')}\n text=\"Link\"\n {...args}\n />\n <Token\n as=\"button\"\n onClick={action('clicked')}\n onRemove={action('remove me')}\n text=\"Button\"\n {...args}\n />\n </div>\n )\n}"
8208
8186
  },
8209
8187
  {
8210
8188
  "id": "components-token-features--default-issue-label-token",
@@ -8212,11 +8190,11 @@
8212
8190
  },
8213
8191
  {
8214
8192
  "id": "components-token-features--interactive-issue-label-token",
8215
- "code": "() => {\n return (\n <Box\n display=\"flex\"\n sx={{\n alignItems: 'start',\n gap: get('space.2'),\n }}\n >\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Link\"\n />\n <IssueLabelToken as=\"button\" onClick={action('clicked')} text=\"Button\" />\n </Box>\n )\n}"
8193
+ "code": "() => {\n return (\n <div className={classes.TokenRow}>\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Link\"\n />\n <IssueLabelToken as=\"button\" onClick={action('clicked')} text=\"Button\" />\n </div>\n )\n}"
8216
8194
  },
8217
8195
  {
8218
8196
  "id": "components-token-features--issue-label-token-with-on-remove-fn",
8219
- "code": "() => {\n return (\n <Box\n display=\"flex\"\n sx={{\n alignItems: 'start',\n gap: get('space.2'),\n }}\n >\n <IssueLabelToken text=\"token\" onRemove={action('remove me')} />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n onRemove={action('remove me')}\n text=\"Link\"\n />\n <IssueLabelToken\n as=\"button\"\n onClick={action('clicked')}\n onRemove={action('remove me')}\n text=\"Button\"\n />\n </Box>\n )\n}"
8197
+ "code": "() => {\n return (\n <div className={classes.TokenRow}>\n <IssueLabelToken text=\"token\" onRemove={action('remove me')} />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n onRemove={action('remove me')}\n text=\"Link\"\n />\n <IssueLabelToken\n as=\"button\"\n onClick={action('clicked')}\n onRemove={action('remove me')}\n text=\"Button\"\n />\n </div>\n )\n}"
8220
8198
  },
8221
8199
  {
8222
8200
  "id": "components-token-features--small-token",
@@ -8232,7 +8210,7 @@
8232
8210
  },
8233
8211
  {
8234
8212
  "id": "components-token-features--issue-label-token-custom-colors",
8235
- "code": "() => {\n return (\n <Box\n display=\"flex\"\n sx={{\n flexDirection: 'column',\n alignItems: 'start',\n gap: get('space.2'),\n }}\n >\n <Box\n display=\"flex\"\n sx={{\n alignItems: 'start',\n gap: get('space.2'),\n }}\n >\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Link\"\n fillColor=\"#0366d6\"\n />\n <IssueLabelToken\n as=\"button\"\n onClick={action('clicked')}\n text=\"Button\"\n fillColor=\"lightpink\"\n />\n </Box>\n <h3>Color examples</h3>\n <Box\n display=\"flex\"\n flexWrap=\"wrap\"\n sx={{\n alignItems: 'start',\n gap: get('space.2'),\n }}\n >\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"😀 Link\"\n fillColor=\"#8c50c8\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Token\"\n fillColor=\"#a9d3bc\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"🚨 Problem\"\n fillColor=\"#98afa7\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"📥 Inbox\"\n fillColor=\"#573807\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"deeppink\"\n fillColor=\"#b7b41e\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"👹 Link\"\n fillColor=\"#0f65b1\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Tiger\"\n fillColor=\"#e7bc68\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"🐛 coral\"\n fillColor=\"#D6F2DE\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Long label\"\n fillColor=\"#161E37\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"✅ Done\"\n fillColor=\"#232323\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Hello\"\n fillColor=\"#E0E0E0\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#aed531\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#d980fc\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#e7f922\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"🚀 Lorem\"\n fillColor=\"#ef70e9\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#72ea84\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#87e50b\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"🤷 Lorem\"\n fillColor=\"#fcf646\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"💡 Light\"\n fillColor=\"#E40C74\"\n />\n </Box>\n </Box>\n )\n}"
8213
+ "code": "() => {\n return (\n <div className={classes.TokenColumn}>\n <div className={classes.TokenRow}>\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Link\"\n fillColor=\"#0366d6\"\n />\n <IssueLabelToken\n as=\"button\"\n onClick={action('clicked')}\n text=\"Button\"\n fillColor=\"lightpink\"\n />\n </div>\n <h3>Color examples</h3>\n <div className={classes.TokenWrapRow}>\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"😀 Link\"\n fillColor=\"#8c50c8\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Token\"\n fillColor=\"#a9d3bc\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"🚨 Problem\"\n fillColor=\"#98afa7\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"📥 Inbox\"\n fillColor=\"#573807\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"deeppink\"\n fillColor=\"#b7b41e\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"👹 Link\"\n fillColor=\"#0f65b1\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Tiger\"\n fillColor=\"#e7bc68\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"🐛 coral\"\n fillColor=\"#D6F2DE\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Long label\"\n fillColor=\"#161E37\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"✅ Done\"\n fillColor=\"#232323\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Hello\"\n fillColor=\"#E0E0E0\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#aed531\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#d980fc\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#e7f922\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"🚀 Lorem\"\n fillColor=\"#ef70e9\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#72ea84\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"Lorem\"\n fillColor=\"#87e50b\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"🤷 Lorem\"\n fillColor=\"#fcf646\"\n />\n <IssueLabelToken\n as=\"a\"\n href=\"/?path=/story/components-token-features--issue-label-token-custom-colors\"\n text=\"💡 Light\"\n fillColor=\"#E40C74\"\n />\n </div>\n </div>\n )\n}"
8236
8214
  }
8237
8215
  ],
8238
8216
  "importPath": "@primer/react",
@@ -8335,56 +8313,6 @@
8335
8313
  "deprecated": true
8336
8314
  }
8337
8315
  ]
8338
- },
8339
- {
8340
- "name": "AvatarToken",
8341
- "props": [
8342
- {
8343
- "name": "avatarSrc",
8344
- "type": "string"
8345
- },
8346
- {
8347
- "name": "text",
8348
- "required": true,
8349
- "type": "string",
8350
- "description": "The text label inside the token"
8351
- },
8352
- {
8353
- "name": "as",
8354
- "type": "'button' | 'a' | 'span'",
8355
- "defaultValue": "'span'"
8356
- },
8357
- {
8358
- "name": "onRemove",
8359
- "type": "() => void",
8360
- "description": "The function that gets called when a user clicks the remove button, or keys `Backspace` or `Delete` when focused on the token"
8361
- },
8362
- {
8363
- "name": "hideRemoveButton",
8364
- "type": "boolean",
8365
- "description": "Whether the remove button should be rendered in the token"
8366
- },
8367
- {
8368
- "name": "isSelected",
8369
- "type": "boolean",
8370
- "description": "Whether the token is selected"
8371
- },
8372
- {
8373
- "name": "id",
8374
- "type": "number | string",
8375
- "description": "A unique identifier that can be associated with the token"
8376
- },
8377
- {
8378
- "name": "size",
8379
- "type": "'small' | 'medium' | 'large' | 'xlarge'",
8380
- "description": "Which size the token will be rendered at"
8381
- },
8382
- {
8383
- "name": "sx",
8384
- "type": "SystemStyleObject",
8385
- "deprecated": true
8386
- }
8387
- ]
8388
8316
  }
8389
8317
  ]
8390
8318
  },
@@ -8398,15 +8326,15 @@
8398
8326
  "stories": [
8399
8327
  {
8400
8328
  "id": "deprecated-components-tooltip--default",
8401
- "code": "() => (\n <>\n <Box\n sx={{\n mb: 3,\n }}\n >\n <Banner\n title=\"Planned for deprecation\"\n description={\n <div data-a11y-link-underlines=\"true\">\n There are plans to deprecate this component in a future release. We\n recommend using{' '}\n <Link\n inline={true}\n href=\"/react/storybook/?path=/story/components-tooltipv2--default\"\n >\n Tooltip\n </Link>{' '}\n instead.\n </div>\n }\n variant=\"warning\"\n />\n </Box>\n <Box\n sx={{\n p: 5,\n }}\n >\n <Tooltip aria-label=\"Hello, Tooltip!\">\n <Button>Hover me</Button>\n </Tooltip>\n </Box>\n </>\n)"
8329
+ "code": "() => (\n <>\n <div className={classes.BannerContainer}>\n <Banner\n title=\"Planned for deprecation\"\n description={\n <div data-a11y-link-underlines=\"true\">\n There are plans to deprecate this component in a future release. We\n recommend using{' '}\n <Link\n inline={true}\n href=\"/react/storybook/?path=/story/components-tooltipv2--default\"\n >\n Tooltip\n </Link>{' '}\n instead.\n </div>\n }\n variant=\"warning\"\n />\n </div>\n <div className={classes.PaddedContainer}>\n <Tooltip aria-label=\"Hello, Tooltip!\">\n <Button>Hover me</Button>\n </Tooltip>\n </div>\n </>\n)"
8402
8330
  },
8403
8331
  {
8404
8332
  "id": "deprecated-components-tooltip-features--all-directions",
8405
- "code": "() => (\n <Box\n sx={{\n padding: 5,\n display: 'flex',\n gap: '8px',\n }}\n >\n <Tooltip direction=\"n\" aria-label=\"Supplementary text\">\n <Button>North</Button>\n </Tooltip>\n <Tooltip direction=\"s\" aria-label=\"Supplementary text\">\n <Button>South</Button>\n </Tooltip>\n <Tooltip direction=\"e\" aria-label=\"Supplementary text\">\n <Button>East</Button>\n </Tooltip>\n <Tooltip direction=\"w\" aria-label=\"Supplementary text\">\n <Button>West</Button>\n </Tooltip>\n <Tooltip direction=\"ne\" aria-label=\"Supplementary text\">\n <Button>North East</Button>\n </Tooltip>\n <Tooltip direction=\"nw\" aria-label=\"Supplementary text\">\n <Button>North West</Button>\n </Tooltip>\n <Tooltip direction=\"se\" aria-label=\"Supplementary text\">\n <Button>Southeast</Button>\n </Tooltip>\n <Tooltip direction=\"sw\" aria-label=\"Supplementary text\">\n <Button>Southwest</Button>\n </Tooltip>\n </Box>\n)"
8333
+ "code": "() => (\n <div className={classes.AllDirectionsRow}>\n <Tooltip direction=\"n\" aria-label=\"Supplementary text\">\n <Button>North</Button>\n </Tooltip>\n <Tooltip direction=\"s\" aria-label=\"Supplementary text\">\n <Button>South</Button>\n </Tooltip>\n <Tooltip direction=\"e\" aria-label=\"Supplementary text\">\n <Button>East</Button>\n </Tooltip>\n <Tooltip direction=\"w\" aria-label=\"Supplementary text\">\n <Button>West</Button>\n </Tooltip>\n <Tooltip direction=\"ne\" aria-label=\"Supplementary text\">\n <Button>North East</Button>\n </Tooltip>\n <Tooltip direction=\"nw\" aria-label=\"Supplementary text\">\n <Button>North West</Button>\n </Tooltip>\n <Tooltip direction=\"se\" aria-label=\"Supplementary text\">\n <Button>Southeast</Button>\n </Tooltip>\n <Tooltip direction=\"sw\" aria-label=\"Supplementary text\">\n <Button>Southwest</Button>\n </Tooltip>\n </div>\n)"
8406
8334
  },
8407
8335
  {
8408
8336
  "id": "deprecated-components-tooltip-features--icon-button-tooltip",
8409
- "code": "() => (\n <Box\n sx={{\n p: 5,\n }}\n >\n <Tooltip aria-label=\"Search\">\n <IconButton icon={SearchIcon} aria-label=\"Search\" />\n </Tooltip>\n </Box>\n)"
8337
+ "code": "() => (\n <div className={classes.PaddedContainer}>\n <Tooltip aria-label=\"Search\">\n <IconButton icon={SearchIcon} aria-label=\"Search\" />\n </Tooltip>\n </div>\n)"
8410
8338
  }
8411
8339
  ],
8412
8340
  "importPath": "@primer/react/deprecated",
@@ -8455,39 +8383,39 @@
8455
8383
  "stories": [
8456
8384
  {
8457
8385
  "id": "components-tooltipv2--default",
8458
- "code": "() => (\n <Box\n sx={{\n p: 6,\n }}\n >\n <Tooltip text=\"This change can't be undone.\">\n <Button>Delete</Button>\n </Tooltip>\n </Box>\n)"
8386
+ "code": "() => (\n <div className={classes.PaddedContainer}>\n <Tooltip text=\"This change can't be undone.\">\n <Button>Delete</Button>\n </Tooltip>\n </div>\n)"
8459
8387
  },
8460
8388
  {
8461
8389
  "id": "components-tooltipv2-features--anchor-has-margin",
8462
- "code": "() => (\n <Box\n sx={{\n p: 5,\n }}\n >\n <Tooltip text=\"Tooltip is still centered\">\n <Button\n sx={{\n marginLeft: 3,\n }}\n >\n Button has 16px margin Left\n </Button>\n </Tooltip>\n </Box>\n)"
8390
+ "code": "() => (\n <div className={classes.PaddedContainer}>\n <Tooltip text=\"Tooltip is still centered\">\n <Button className={classes.MarginLeftButton}>\n Button has 16px margin Left\n </Button>\n </Tooltip>\n </div>\n)"
8463
8391
  },
8464
8392
  {
8465
8393
  "id": "components-tooltipv2-features--label-type",
8466
- "code": "() => (\n <Box>\n <Tooltip text=\"Contribution Documentation for 'Primer React'\" type=\"label\">\n <Link\n href=\"https://github.com/primer/react/contributor-docs/CONTRIBUTING.md\"\n sx={{\n ml: 1,\n color: 'fg.muted',\n }}\n >\n <Octicon\n icon={BookIcon}\n sx={{\n color: 'fg.muted',\n }}\n />\n </Link>\n </Tooltip>\n </Box>\n)"
8394
+ "code": "() => (\n <div>\n <Tooltip text=\"Contribution Documentation for 'Primer React'\" type=\"label\">\n <Link\n href=\"https://github.com/primer/react/contributor-docs/CONTRIBUTING.md\"\n className={classes.LabelLink}\n >\n <Octicon icon={BookIcon} className={classes.LabelIcon} />\n </Link>\n </Tooltip>\n </div>\n)"
8467
8395
  },
8468
8396
  {
8469
8397
  "id": "components-tooltipv2-features--description-type",
8470
- "code": "() => (\n <Box\n sx={{\n p: 5,\n }}\n >\n <Tooltip text=\"Supplementary text\" direction=\"n\">\n <Button>Save</Button>\n </Tooltip>\n </Box>\n)"
8398
+ "code": "() => (\n <div className={classes.PaddedContainer}>\n <Tooltip text=\"Supplementary text\" direction=\"n\">\n <Button>Save</Button>\n </Tooltip>\n </div>\n)"
8471
8399
  },
8472
8400
  {
8473
8401
  "id": "components-tooltipv2-features--icon-button-with-description",
8474
- "code": "() => (\n <Box\n sx={{\n p: 5,\n }}\n >\n <Tooltip text=\"Supplementary text for icon button\" direction=\"e\">\n <IconButton icon={SearchIcon} aria-label=\"Search\" />\n </Tooltip>\n </Box>\n)"
8402
+ "code": "() => (\n <div className={classes.PaddedContainer}>\n <Tooltip text=\"Supplementary text for icon button\" direction=\"e\">\n <IconButton icon={SearchIcon} aria-label=\"Search\" />\n </Tooltip>\n </div>\n)"
8475
8403
  },
8476
8404
  {
8477
8405
  "id": "components-tooltipv2-features--all-directions",
8478
- "code": "() => (\n <Box\n sx={{\n padding: 5,\n display: 'flex',\n gap: '8px',\n }}\n >\n <Tooltip direction=\"n\" text=\"Supplementary text\">\n <Button>North</Button>\n </Tooltip>\n <Tooltip direction=\"s\" text=\"Supplementary text\">\n <Button>South</Button>\n </Tooltip>\n <Tooltip direction=\"e\" text=\"Supplementary text\">\n <Button>East</Button>\n </Tooltip>\n <Tooltip direction=\"w\" text=\"Supplementary text\">\n <Button>West</Button>\n </Tooltip>\n <Tooltip direction=\"ne\" text=\"Supplementary text\">\n <Button>North East</Button>\n </Tooltip>\n <Tooltip direction=\"nw\" text=\"Supplementary text\">\n <Button>North West</Button>\n </Tooltip>\n <Tooltip direction=\"se\" text=\"Supplementary text\">\n <Button>Southeast</Button>\n </Tooltip>\n <Tooltip direction=\"sw\" text=\"Supplementary text\">\n <Button>Southwest</Button>\n </Tooltip>\n </Box>\n)"
8406
+ "code": "() => (\n <div className={classes.AllDirectionsRow}>\n <Tooltip direction=\"n\" text=\"Supplementary text\">\n <Button>North</Button>\n </Tooltip>\n <Tooltip direction=\"s\" text=\"Supplementary text\">\n <Button>South</Button>\n </Tooltip>\n <Tooltip direction=\"e\" text=\"Supplementary text\">\n <Button>East</Button>\n </Tooltip>\n <Tooltip direction=\"w\" text=\"Supplementary text\">\n <Button>West</Button>\n </Tooltip>\n <Tooltip direction=\"ne\" text=\"Supplementary text\">\n <Button>North East</Button>\n </Tooltip>\n <Tooltip direction=\"nw\" text=\"Supplementary text\">\n <Button>North West</Button>\n </Tooltip>\n <Tooltip direction=\"se\" text=\"Supplementary text\">\n <Button>Southeast</Button>\n </Tooltip>\n <Tooltip direction=\"sw\" text=\"Supplementary text\">\n <Button>Southwest</Button>\n </Tooltip>\n </div>\n)"
8479
8407
  },
8480
8408
  {
8481
8409
  "id": "components-tooltipv2-features--multiline-text",
8482
- "code": "() => (\n <Box>\n <Tooltip\n direction=\"e\"\n text=\"Random long text that needs to be wrapped and be multipline and have some paddings around\"\n >\n <Button>Multiline East</Button>\n </Tooltip>\n </Box>\n)"
8410
+ "code": "() => (\n <div>\n <Tooltip\n direction=\"e\"\n text=\"Random long text that needs to be wrapped and be multipline and have some paddings around\"\n >\n <Button>Multiline East</Button>\n </Tooltip>\n </div>\n)"
8483
8411
  },
8484
8412
  {
8485
8413
  "id": "components-tooltipv2-features--calculated-direction",
8486
- "code": "() => (\n <Box\n sx={{\n padding: 5,\n display: 'flex',\n gap: '8px',\n }}\n >\n <Tooltip\n direction=\"w\"\n text=\"But appears in the east direction due to not having enough space in the west\"\n >\n <Button>West</Button>\n </Tooltip>\n\n <Tooltip text=\"The direction here is north by default but there is not enough space in the north therefore the tooltip appears in the south\">\n <Button>North</Button>\n </Tooltip>\n </Box>\n)"
8414
+ "code": "() => (\n <div className={classes.AllDirectionsRow}>\n <Tooltip\n direction=\"w\"\n text=\"But appears in the east direction due to not having enough space in the west\"\n >\n <Button>West</Button>\n </Tooltip>\n\n <Tooltip text=\"The direction here is north by default but there is not enough space in the north therefore the tooltip appears in the south\">\n <Button>North</Button>\n </Tooltip>\n </div>\n)"
8487
8415
  },
8488
8416
  {
8489
8417
  "id": "components-tooltipv2-features--on-action-menu-anchor",
8490
- "code": "() => (\n <Box\n sx={{\n display: 'flex',\n padding: 5,\n gap: 2,\n }}\n >\n <ActionMenu>\n <ActionMenu.Anchor>\n <Tooltip text=\"Supplementary text to add here\" direction=\"n\">\n <Button\n leadingVisual={GitBranchIcon}\n trailingAction={TriangleDownIcon}\n >\n ActionMenu.Anchor w/ t\n </Button>\n </Tooltip>\n </ActionMenu.Anchor>\n <ActionMenu.Overlay width=\"medium\">\n <ActionList>\n <ActionList.Item onSelect={() => alert('Main')}>\n <ActionList.LeadingVisual>\n <CheckIcon />\n </ActionList.LeadingVisual>\n main <ActionList.TrailingVisual>default</ActionList.TrailingVisual>\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 1')}>\n branch-1\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 2')}>\n branch-2\n </ActionList.Item>\n </ActionList>\n </ActionMenu.Overlay>\n </ActionMenu>\n <ActionMenu>\n <Tooltip text=\"Supplementary text to add here\" direction=\"n\">\n <ActionMenu.Button leadingVisual={GitBranchIcon}>\n ActionMenu.Button w/ t\n </ActionMenu.Button>\n </Tooltip>\n <ActionMenu.Overlay width=\"medium\">\n <ActionList>\n <ActionList.Item onSelect={() => alert('Main')}>\n <ActionList.LeadingVisual>\n <CheckIcon />\n </ActionList.LeadingVisual>\n main <ActionList.TrailingVisual>default</ActionList.TrailingVisual>\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 1')}>\n branch-1\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 2')}>\n branch-2\n </ActionList.Item>\n </ActionList>\n </ActionMenu.Overlay>\n </ActionMenu>\n <ActionMenu>\n <ActionMenu.Anchor>\n <Button leadingVisual={GitBranchIcon} trailingAction={TriangleDownIcon}>\n ActionMenu.Anchor\n </Button>\n </ActionMenu.Anchor>\n <ActionMenu.Overlay width=\"medium\">\n <ActionList>\n <ActionList.Item onSelect={() => alert('Main')}>\n <ActionList.LeadingVisual>\n <CheckIcon />\n </ActionList.LeadingVisual>\n main <ActionList.TrailingVisual>default</ActionList.TrailingVisual>\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 1')}>\n branch-1\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 2')}>\n branch-2\n </ActionList.Item>\n </ActionList>\n </ActionMenu.Overlay>\n </ActionMenu>\n <ActionMenu>\n <ActionMenu.Button leadingVisual={GitBranchIcon}>\n ActionMenu.Button\n </ActionMenu.Button>\n\n <ActionMenu.Overlay width=\"medium\">\n <ActionList>\n <ActionList.Item onSelect={() => alert('Main')}>\n <ActionList.LeadingVisual>\n <CheckIcon />\n </ActionList.LeadingVisual>\n main <ActionList.TrailingVisual>default</ActionList.TrailingVisual>\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 1')}>\n branch-1\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 2')}>\n branch-2\n </ActionList.Item>\n </ActionList>\n </ActionMenu.Overlay>\n </ActionMenu>\n </Box>\n)"
8418
+ "code": "() => (\n <div className={classes.ActionMenuRow}>\n <ActionMenu>\n <ActionMenu.Anchor>\n <Tooltip text=\"Supplementary text to add here\" direction=\"n\">\n <Button\n leadingVisual={GitBranchIcon}\n trailingAction={TriangleDownIcon}\n >\n ActionMenu.Anchor w/ t\n </Button>\n </Tooltip>\n </ActionMenu.Anchor>\n <ActionMenu.Overlay width=\"medium\">\n <ActionList>\n <ActionList.Item onSelect={() => alert('Main')}>\n <ActionList.LeadingVisual>\n <CheckIcon />\n </ActionList.LeadingVisual>\n main <ActionList.TrailingVisual>default</ActionList.TrailingVisual>\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 1')}>\n branch-1\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 2')}>\n branch-2\n </ActionList.Item>\n </ActionList>\n </ActionMenu.Overlay>\n </ActionMenu>\n <ActionMenu>\n <Tooltip text=\"Supplementary text to add here\" direction=\"n\">\n <ActionMenu.Button leadingVisual={GitBranchIcon}>\n ActionMenu.Button w/ t\n </ActionMenu.Button>\n </Tooltip>\n <ActionMenu.Overlay width=\"medium\">\n <ActionList>\n <ActionList.Item onSelect={() => alert('Main')}>\n <ActionList.LeadingVisual>\n <CheckIcon />\n </ActionList.LeadingVisual>\n main <ActionList.TrailingVisual>default</ActionList.TrailingVisual>\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 1')}>\n branch-1\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 2')}>\n branch-2\n </ActionList.Item>\n </ActionList>\n </ActionMenu.Overlay>\n </ActionMenu>\n <ActionMenu>\n <ActionMenu.Anchor>\n <Button leadingVisual={GitBranchIcon} trailingAction={TriangleDownIcon}>\n ActionMenu.Anchor\n </Button>\n </ActionMenu.Anchor>\n <ActionMenu.Overlay width=\"medium\">\n <ActionList>\n <ActionList.Item onSelect={() => alert('Main')}>\n <ActionList.LeadingVisual>\n <CheckIcon />\n </ActionList.LeadingVisual>\n main <ActionList.TrailingVisual>default</ActionList.TrailingVisual>\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 1')}>\n branch-1\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 2')}>\n branch-2\n </ActionList.Item>\n </ActionList>\n </ActionMenu.Overlay>\n </ActionMenu>\n <ActionMenu>\n <ActionMenu.Button leadingVisual={GitBranchIcon}>\n ActionMenu.Button\n </ActionMenu.Button>\n\n <ActionMenu.Overlay width=\"medium\">\n <ActionList>\n <ActionList.Item onSelect={() => alert('Main')}>\n <ActionList.LeadingVisual>\n <CheckIcon />\n </ActionList.LeadingVisual>\n main <ActionList.TrailingVisual>default</ActionList.TrailingVisual>\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 1')}>\n branch-1\n </ActionList.Item>\n <ActionList.Item onSelect={() => alert('Branch 2')}>\n branch-2\n </ActionList.Item>\n </ActionList>\n </ActionMenu.Overlay>\n </ActionMenu>\n </div>\n)"
8491
8419
  }
8492
8420
  ],
8493
8421
  "props": [
@@ -8555,7 +8483,7 @@
8555
8483
  },
8556
8484
  {
8557
8485
  "id": "components-treeview-features--controlled",
8558
- "code": "() => {\n const [currentPath, setCurrentPath] = React.useState<string[]>([\n 'src',\n 'Avatar.tsx',\n ])\n const [tree, setTree] = React.useState<TreeItem[]>(initialTree)\n return (\n <Box\n sx={{\n display: 'grid',\n gap: 3,\n }}\n >\n <Box\n sx={{\n display: 'flex',\n gap: 2,\n }}\n >\n <Button onClick={() => setTree(collapseAll)}>Collapse all</Button>\n <Button onClick={() => setTree(expandAll)}>Expand all</Button>\n </Box>\n <nav aria-label=\"Files\">\n <CurrentPathContext.Provider\n value={{\n currentPath,\n setCurrentPath,\n }}\n >\n <TreeView aria-label=\"Files\">\n {tree.map((item) => (\n <TreeItem\n key={item.data.name}\n item={item}\n path={[item.data.name]}\n onExpandedChange={(path, expanded) =>\n setTree((tree) => setExpanded(tree, path, expanded))\n }\n />\n ))}\n </TreeView>\n </CurrentPathContext.Provider>\n </nav>\n </Box>\n )\n}"
8486
+ "code": "() => {\n const [currentPath, setCurrentPath] = React.useState<string[]>([\n 'src',\n 'Avatar.tsx',\n ])\n const [tree, setTree] = React.useState<TreeItem[]>(initialTree)\n return (\n <div className={classes.ControlledContainer}>\n <div className={classes.ButtonContainer}>\n <Button onClick={() => setTree(collapseAll)}>Collapse all</Button>\n <Button onClick={() => setTree(expandAll)}>Expand all</Button>\n </div>\n <nav aria-label=\"Files\">\n <CurrentPathContext.Provider\n value={{\n currentPath,\n setCurrentPath,\n }}\n >\n <TreeView aria-label=\"Files\">\n {tree.map((item) => (\n <TreeItem\n key={item.data.name}\n item={item}\n path={[item.data.name]}\n onExpandedChange={(path, expanded) =>\n setTree((tree) => setExpanded(tree, path, expanded))\n }\n />\n ))}\n </TreeView>\n </CurrentPathContext.Provider>\n </nav>\n </div>\n )\n}"
8559
8487
  }
8560
8488
  ],
8561
8489
  "importPath": "@primer/react",
@@ -8935,42 +8863,6 @@
8935
8863
  }
8936
8864
  ]
8937
8865
  },
8938
- "avatar_pair": {
8939
- "source": "https://github.com/primer/react/tree/main/packages/react/src/deprecated/AvatarPair",
8940
- "id": "avatar_pair",
8941
- "name": "AvatarPair",
8942
- "status": "alpha",
8943
- "a11yReviewed": "2025-01-08",
8944
- "stories": [
8945
- {
8946
- "id": "components-avatarpair--default",
8947
- "code": "() => (\n <AvatarPair>\n <Avatar\n src=\"https://avatars.githubusercontent.com/u/7143434?v=4\"\n alt=\"Primer avatar, parent\"\n />\n <Avatar\n src=\"https://avatars.githubusercontent.com/primer\"\n alt=\"Primer avatar, child\"\n />\n </AvatarPair>\n)"
8948
- },
8949
- {
8950
- "id": "components-avatarpair-features--parent-circle",
8951
- "code": "() => (\n <AvatarPair>\n <Avatar\n src=\"https://avatars.githubusercontent.com/u/7143434?v=4\"\n alt=\"Primer avatar, parent\"\n />\n <Avatar\n square\n src=\"https://avatars.githubusercontent.com/primer\"\n alt=\"Primer avatar, child\"\n />\n </AvatarPair>\n)"
8952
- },
8953
- {
8954
- "id": "components-avatarpair-features--parent-square",
8955
- "code": "() => (\n <AvatarPair>\n <Avatar\n square\n src=\"https://avatars.githubusercontent.com/primer\"\n alt=\"Primer avatar, parent\"\n />\n <Avatar\n src=\"https://avatars.githubusercontent.com/u/7143434?v=4\"\n alt=\"Primer avatar, child\"\n />\n </AvatarPair>\n)"
8956
- }
8957
- ],
8958
- "importPath": "@primer/react",
8959
- "props": [
8960
- {
8961
- "name": "children",
8962
- "type": "Avatar[]",
8963
- "defaultValue": "",
8964
- "description": ""
8965
- },
8966
- {
8967
- "name": "sx",
8968
- "type": "SystemStyleObject",
8969
- "deprecated": true
8970
- }
8971
- ],
8972
- "subcomponents": []
8973
- },
8974
8866
  "filtered_search": {
8975
8867
  "source": "https://github.com/primer/react/tree/main/packages/react/src/deprecated/FilteredSearch",
8976
8868
  "id": "filtered_search",
@@ -9035,11 +8927,6 @@
9035
8927
  "name": "aria-label",
9036
8928
  "type": "string",
9037
8929
  "description": "Used to set the `aria-label` on the top level `<nav>` element."
9038
- },
9039
- {
9040
- "name": "sx",
9041
- "type": "SystemStyleObject",
9042
- "deprecated": true
9043
8930
  }
9044
8931
  ],
9045
8932
  "subcomponents": [
@@ -9140,7 +9027,7 @@
9140
9027
  },
9141
9028
  {
9142
9029
  "id": "deprecated-components-selectpanel-features--with-warning",
9143
- "code": "() => {\n /* Selection */\n\n const initialAssigneeIds = data.issue.assigneeIds // mock initial state\n const [selectedAssigneeIds, setSelectedAssigneeIds] =\n React.useState<string[]>(initialAssigneeIds)\n const MAX_LIMIT = 3\n const onCollaboratorSelect = (colloratorId: string) => {\n if (!selectedAssigneeIds.includes(colloratorId))\n setSelectedAssigneeIds([...selectedAssigneeIds, colloratorId])\n else\n setSelectedAssigneeIds(\n selectedAssigneeIds.filter((id) => id !== colloratorId),\n )\n }\n const onClearSelection = () => setSelectedAssigneeIds([])\n const onSubmit = () => {\n data.issue.assigneeIds = selectedAssigneeIds // pretending to persist changes\n }\n const onCancel = () => {\n setSelectedAssigneeIds(initialAssigneeIds)\n }\n\n /* Filtering */\n const [filteredUsers, setFilteredUsers] = React.useState(data.collaborators)\n const [query, setQuery] = React.useState('')\n const onSearchInputChange: React.ChangeEventHandler<HTMLInputElement> = (\n event,\n ) => {\n const query = event.currentTarget.value\n setQuery(query)\n if (query === '') setFilteredUsers(data.collaborators)\n else {\n setFilteredUsers(\n data.collaborators\n .map((collaborator) => {\n if (collaborator.login.toLowerCase().startsWith(query))\n return {\n priority: 1,\n collaborator,\n }\n else if (collaborator.name.startsWith(query))\n return {\n priority: 2,\n collaborator,\n }\n else if (collaborator.login.toLowerCase().includes(query))\n return {\n priority: 3,\n collaborator,\n }\n else if (collaborator.name.toLowerCase().includes(query))\n return {\n priority: 4,\n collaborator,\n }\n else\n return {\n priority: -1,\n collaborator,\n }\n })\n .filter((result) => result.priority > 0)\n .map((result) => result.collaborator),\n )\n }\n }\n const sortingFn = (\n itemA: {\n id: string\n },\n itemB: {\n id: string\n },\n ) => {\n const initialSelectedIds = data.issue.assigneeIds\n if (\n initialSelectedIds.includes(itemA.id) &&\n initialSelectedIds.includes(itemB.id)\n )\n return 1\n else if (initialSelectedIds.includes(itemA.id)) return -1\n else if (initialSelectedIds.includes(itemB.id)) return 1\n else return 1\n }\n const itemsToShow = query ? filteredUsers : data.collaborators.sort(sortingFn)\n return (\n <>\n <h1>SelectPanel with warning</h1>\n\n <SelectPanel\n title=\"Set assignees\"\n description={`Select up to ${MAX_LIMIT} people`}\n onSubmit={onSubmit}\n onCancel={onCancel}\n onClearSelection={onClearSelection}\n >\n <SelectPanel.Button\n variant=\"invisible\"\n trailingAction={GearIcon}\n sx={{\n width: '200px',\n '[data-component=buttonContent]': {\n justifyContent: 'start',\n },\n }}\n >\n Assignees\n </SelectPanel.Button>\n <SelectPanel.Header>\n <SelectPanel.SearchInput\n onChange={onSearchInputChange}\n aria-label=\"Search\"\n />\n </SelectPanel.Header>\n\n {selectedAssigneeIds.length >= MAX_LIMIT ? (\n <SelectPanel.Message variant=\"warning\" size=\"inline\">\n You have reached the limit of {MAX_LIMIT} assignees on your free\n account. <Link href=\"/upgrade\">Upgrade your account.</Link>\n </SelectPanel.Message>\n ) : null}\n\n {itemsToShow.length === 0 ? (\n <SelectPanel.Message\n variant=\"empty\"\n title={`No labels found for \"${query}\"`}\n >\n Try a different search term\n </SelectPanel.Message>\n ) : (\n <ActionList>\n {itemsToShow.map((collaborator) => (\n <ActionList.Item\n key={collaborator.id}\n onSelect={() => onCollaboratorSelect(collaborator.id)}\n selected={selectedAssigneeIds.includes(collaborator.id)}\n disabled={\n selectedAssigneeIds.length >= MAX_LIMIT &&\n !selectedAssigneeIds.includes(collaborator.id)\n }\n >\n <ActionList.LeadingVisual>\n <Avatar\n src={`https://github.com/${collaborator.login}.png`}\n />\n </ActionList.LeadingVisual>\n {collaborator.login}\n <ActionList.Description>\n {collaborator.login}\n </ActionList.Description>\n </ActionList.Item>\n ))}\n </ActionList>\n )}\n\n <SelectPanel.Footer />\n </SelectPanel>\n </>\n )\n}"
9030
+ "code": "() => {\n /* Selection */\n\n const initialAssigneeIds = data.issue.assigneeIds // mock initial state\n const [selectedAssigneeIds, setSelectedAssigneeIds] =\n React.useState<string[]>(initialAssigneeIds)\n const MAX_LIMIT = 3\n const onCollaboratorSelect = (colloratorId: string) => {\n if (!selectedAssigneeIds.includes(colloratorId))\n setSelectedAssigneeIds([...selectedAssigneeIds, colloratorId])\n else\n setSelectedAssigneeIds(\n selectedAssigneeIds.filter((id) => id !== colloratorId),\n )\n }\n const onClearSelection = () => setSelectedAssigneeIds([])\n const onSubmit = () => {\n data.issue.assigneeIds = selectedAssigneeIds // pretending to persist changes\n }\n const onCancel = () => {\n setSelectedAssigneeIds(initialAssigneeIds)\n }\n\n /* Filtering */\n const [filteredUsers, setFilteredUsers] = React.useState(data.collaborators)\n const [query, setQuery] = React.useState('')\n const onSearchInputChange: React.ChangeEventHandler<HTMLInputElement> = (\n event,\n ) => {\n const query = event.currentTarget.value\n setQuery(query)\n if (query === '') setFilteredUsers(data.collaborators)\n else {\n setFilteredUsers(\n data.collaborators\n .map((collaborator) => {\n if (collaborator.login.toLowerCase().startsWith(query))\n return {\n priority: 1,\n collaborator,\n }\n else if (collaborator.name.startsWith(query))\n return {\n priority: 2,\n collaborator,\n }\n else if (collaborator.login.toLowerCase().includes(query))\n return {\n priority: 3,\n collaborator,\n }\n else if (collaborator.name.toLowerCase().includes(query))\n return {\n priority: 4,\n collaborator,\n }\n else\n return {\n priority: -1,\n collaborator,\n }\n })\n .filter((result) => result.priority > 0)\n .map((result) => result.collaborator),\n )\n }\n }\n const sortingFn = (\n itemA: {\n id: string\n },\n itemB: {\n id: string\n },\n ) => {\n const initialSelectedIds = data.issue.assigneeIds\n if (\n initialSelectedIds.includes(itemA.id) &&\n initialSelectedIds.includes(itemB.id)\n )\n return 1\n else if (initialSelectedIds.includes(itemA.id)) return -1\n else if (initialSelectedIds.includes(itemB.id)) return 1\n else return 1\n }\n const itemsToShow = query ? filteredUsers : data.collaborators.sort(sortingFn)\n return (\n <>\n <h1>SelectPanel with warning</h1>\n\n <SelectPanel\n title=\"Set assignees\"\n description={`Select up to ${MAX_LIMIT} people`}\n onSubmit={onSubmit}\n onCancel={onCancel}\n onClearSelection={onClearSelection}\n >\n <SelectPanel.Button\n variant=\"invisible\"\n trailingAction={GearIcon}\n className={classes.ButtonCustom}\n >\n Assignees\n </SelectPanel.Button>\n <SelectPanel.Header>\n <SelectPanel.SearchInput\n onChange={onSearchInputChange}\n aria-label=\"Search\"\n />\n </SelectPanel.Header>\n\n {selectedAssigneeIds.length >= MAX_LIMIT ? (\n <SelectPanel.Message variant=\"warning\" size=\"inline\">\n You have reached the limit of {MAX_LIMIT} assignees on your free\n account. <Link href=\"/upgrade\">Upgrade your account.</Link>\n </SelectPanel.Message>\n ) : null}\n\n {itemsToShow.length === 0 ? (\n <SelectPanel.Message\n variant=\"empty\"\n title={`No labels found for \"${query}\"`}\n >\n Try a different search term\n </SelectPanel.Message>\n ) : (\n <ActionList>\n {itemsToShow.map((collaborator) => (\n <ActionList.Item\n key={collaborator.id}\n onSelect={() => onCollaboratorSelect(collaborator.id)}\n selected={selectedAssigneeIds.includes(collaborator.id)}\n disabled={\n selectedAssigneeIds.length >= MAX_LIMIT &&\n !selectedAssigneeIds.includes(collaborator.id)\n }\n >\n <ActionList.LeadingVisual>\n <Avatar\n src={`https://github.com/${collaborator.login}.png`}\n />\n </ActionList.LeadingVisual>\n {collaborator.login}\n <ActionList.Description>\n {collaborator.login}\n </ActionList.Description>\n </ActionList.Item>\n ))}\n </ActionList>\n )}\n\n <SelectPanel.Footer />\n </SelectPanel>\n </>\n )\n}"
9144
9031
  },
9145
9032
  {
9146
9033
  "id": "deprecated-components-selectpanel-examples--open-from-menu",