1
0
mirror of synced 2025-12-19 09:57:42 -05:00

chore: update dependencies and add global styles for Primer React

- Updated @primer/react to version 37.30.0 and added @primer/primitives and @primer/view-components.
- Introduced a new global CSS file for consolidated Primer React styles.
- Added empty stubs for deprecated and removed components in the view-components library.
- Updated the _app.tsx file to include the new global CSS.
- Changed the import of Banner component from @primer/react/drafts to @primer/react/experimental in SearchOverlay.
This commit is contained in:
Mardav Wala
2025-08-07 19:01:06 -04:00
parent f4236da361
commit fb091b4e7f
23 changed files with 4212 additions and 4794 deletions

View File

@@ -36,6 +36,8 @@ export default {
'color-4-api',
'mixed-decls',
],
// Allow resolving our local stubs for removed @primer/view-components sass partials
includePaths: [path.join(process.cwd(), 'src/frame/stylesheets/vendor')],
},
// Don't use automatic Next.js logging in dev unless the log level is `debug` or higher
// See `src/observability/logger/README.md` for log levels
@@ -53,6 +55,16 @@ export default {
config.experiments = config.experiments || {}
config.experiments.topLevelAwait = true
config.resolve.fallback = { fs: false, async_hooks: false }
// Alias missing Ruby view-components SCSS imports to local empty stubs
config.resolve.alias = {
...(config.resolve.alias || {}),
'@primer/view-components': path.join(
process.cwd(),
'src/frame/stylesheets/vendor/@primer/view-components',
),
// Force ESM build of @primer/react so restored TabNav export is used and to avoid CJS CSS requires
'@primer/react$': path.join(process.cwd(), 'node_modules/@primer/react/lib-esm/index.js'),
}
return config
},

8881
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -257,7 +257,9 @@
"@primer/live-region-element": "^0.7.2",
"@primer/octicons": "^19.14.0",
"@primer/octicons-react": "^19.14.0",
"@primer/react": "36.27.0",
"@primer/primitives": "^10.7.0",
"@primer/react": "^37.30.0",
"@primer/view-components": "^0.43.6",
"accept-language-parser": "^1.5.0",
"ajv": "^8.17.1",
"ajv-errors": "^3.0.0",
@@ -311,8 +313,8 @@
"ora": "^8.0.1",
"parse5": "7.1.2",
"quick-lru": "7.0.1",
"react": "18.3.1",
"react-dom": "18.3.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-markdown": "^10.1.0",
"rehype-highlight": "^7.0.2",
"rehype-raw": "^7.0.0",

View File

@@ -0,0 +1,83 @@
/* Consolidated Primer React hashed component CSS imported once at app root */
@import '../../../node_modules/@primer/react/lib-esm/ActionList/ActionList-167cf6c7.css';
@import '../../../node_modules/@primer/react/lib-esm/ActionList/Group-2c8b5711.css';
@import '../../../node_modules/@primer/react/lib-esm/ActionList/Heading-b9360636.css';
@import '../../../node_modules/@primer/react/lib-esm/ActionBar/ActionBar-e6a5d54e.css';
@import '../../../node_modules/@primer/react/lib-esm/ActionMenu/ActionMenu-5fe972e2.css';
@import '../../../node_modules/@primer/react/lib-esm/AnchoredOverlay/AnchoredOverlay-73c1b2d1.css';
@import '../../../node_modules/@primer/react/lib-esm/Autocomplete/AutocompleteMenu-7f135c03.css';
@import '../../../node_modules/@primer/react/lib-esm/Autocomplete/AutocompleteOverlay-d99d778c.css';
@import '../../../node_modules/@primer/react/lib-esm/Avatar/Avatar-61b19061.css';
@import '../../../node_modules/@primer/react/lib-esm/AvatarPair/AvatarPair-68990abe.css';
@import '../../../node_modules/@primer/react/lib-esm/AvatarStack/AvatarStack-f0712fca.css';
@import '../../../node_modules/@primer/react/lib-esm/Banner/Banner-a1837714.css';
@import '../../../node_modules/@primer/react/lib-esm/SideNav-baa2364d.css';
@import '../../../node_modules/@primer/react/lib-esm/BaseStyles-79fd37c4.css';
@import '../../../node_modules/@primer/react/lib-esm/Blankslate/Blankslate-2be5efdc.css';
@import '../../../node_modules/@primer/react/lib-esm/BranchName/BranchName-2fad4f4b.css';
@import '../../../node_modules/@primer/react/lib-esm/Breadcrumbs/Breadcrumbs-99078f17.css';
@import '../../../node_modules/@primer/react/lib-esm/Button/ButtonBase-0a7871f4.css';
@import '../../../node_modules/@primer/react/lib-esm/ButtonGroup/ButtonGroup-10292330.css';
@import '../../../node_modules/@primer/react/lib-esm/Checkbox/Checkbox-2aef6693.css';
@import '../../../node_modules/@primer/react/lib-esm/Checkbox/shared-edc41e16.css';
@import '../../../node_modules/@primer/react/lib-esm/ConfirmationDialog/ConfirmationDialog-de0401ff.css';
@import '../../../node_modules/@primer/react/lib-esm/CounterLabel/CounterLabel-44fb5d16.css';
@import '../../../node_modules/@primer/react/lib-esm/DataTable/Pagination-b6f8418c.css';
@import '../../../node_modules/@primer/react/lib-esm/DataTable/Table-87f4043f.css';
@import '../../../node_modules/@primer/react/lib-esm/Details/Details-8093044f.css';
@import '../../../node_modules/@primer/react/lib-esm/Dialog/Dialog-8a809d11.css';
@import '../../../node_modules/@primer/react/lib-esm/FilteredActionList/FilteredActionList-c11b6d2f.css';
@import '../../../node_modules/@primer/react/lib-esm/FilteredActionList/FilteredActionListLoaders-6f14c45b.css';
@import '../../../node_modules/@primer/react/lib-esm/Flash/Flash-a3596568.css';
@import '../../../node_modules/@primer/react/lib-esm/FormControl/FormControl-fa33984d.css';
@import '../../../node_modules/@primer/react/lib-esm/FormControl/FormControlCaption-f58db5f7.css';
@import '../../../node_modules/@primer/react/lib-esm/Header/Header-aff64597.css';
@import '../../../node_modules/@primer/react/lib-esm/Heading/Heading-26b4879b.css';
@import '../../../node_modules/@primer/react/lib-esm/Hidden/Hidden-b3896306.css';
@import '../../../node_modules/@primer/react/lib-esm/InlineMessage/InlineMessage-80d97643.css';
@import '../../../node_modules/@primer/react/lib-esm/Label/Label-7904957c.css';
@import '../../../node_modules/@primer/react/lib-esm/Overlay/Overlay-e34594a5.css';
@import '../../../node_modules/@primer/react/lib-esm/PageLayout/PageLayout-8a294e74.css';
@import '../../../node_modules/@primer/react/lib-esm/Pagination/Pagination-e98833e8.css';
@import '../../../node_modules/@primer/react/lib-esm/Popover/Popover-b609f443.css';
@import '../../../node_modules/@primer/react/lib-esm/ProgressBar/ProgressBar-430cdef7.css';
@import '../../../node_modules/@primer/react/lib-esm/Radio/Radio-b2a92b7d.css';
@import '../../../node_modules/@primer/react/lib-esm/KeybindingHint/KeybindingHint-0856c11b.css';
@import '../../../node_modules/@primer/react/lib-esm/Link/Link-948b910e.css';
@import '../../../node_modules/@primer/react/lib-esm/PageHeader/PageHeader-4e1d8fee.css';
@import '../../../node_modules/@primer/react/lib-esm/SegmentedControl/SegmentedControl-459caec8.css';
@import '../../../node_modules/@primer/react/lib-esm/Skeleton/SkeletonBox-248bfcc3.css';
@import '../../../node_modules/@primer/react/lib-esm/SkeletonAvatar/SkeletonAvatar-e00fff32.css';
@import '../../../node_modules/@primer/react/lib-esm/SkeletonText/SkeletonText-5cf908c1.css';
@import '../../../node_modules/@primer/react/lib-esm/Spinner/Spinner-2dbceeca.css';
@import '../../../node_modules/@primer/react/lib-esm/Stack/Stack-9e7b935d.css';
@import '../../../node_modules/@primer/react/lib-esm/SubNav/SubNav-88128e5c.css';
@import '../../../node_modules/@primer/react/lib-esm/TabNav/TabNav-83c6145e.css';
@import '../../../node_modules/@primer/react/lib-esm/Text/Text-ca7603b7.css';
@import '../../../node_modules/@primer/react/lib-esm/TextInputWithTokens/TextInputWithTokens-fb9b5109.css';
@import '../../../node_modules/@primer/react/lib-esm/Textarea/TextArea-54099020.css';
@import '../../../node_modules/@primer/react/lib-esm/Timeline/Timeline-e8e88a13.css';
@import '../../../node_modules/@primer/react/lib-esm/Token/Token-942271b0.css';
@import '../../../node_modules/@primer/react/lib-esm/Token/IssueLabelToken-99c9b914.css';
@import '../../../node_modules/@primer/react/lib-esm/Token/TokenBase-0386597b.css';
@import '../../../node_modules/@primer/react/lib-esm/Token/AvatarToken-ff45cc85.css';
@import '../../../node_modules/@primer/react/lib-esm/Token/_RemoveTokenButton-d7f5985b.css';
@import '../../../node_modules/@primer/react/lib-esm/Token/_TokenTextContainer-2ab10996.css';
@import '../../../node_modules/@primer/react/lib-esm/VisuallyHidden/VisuallyHidden-ce2a3270.css';
@import '../../../node_modules/@primer/react/lib-esm/experimental/IssueLabel/IssueLabel-5507fbf3.css';
@import '../../../node_modules/@primer/react/lib-esm/experimental/UnderlinePanels/UnderlinePanels-e4b325b9.css';
@import '../../../node_modules/@primer/react/lib-esm/experimental/SelectPanel2/SelectPanel-e919f619.css';
@import '../../../node_modules/@primer/react/lib-esm/internal/components/ButtonReset-904f2483.css';
@import '../../../node_modules/@primer/react/lib-esm/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup-e38b5339.css';
@import '../../../node_modules/@primer/react/lib-esm/internal/components/InputLabel-eb267c58.css';
@import '../../../node_modules/@primer/react/lib-esm/internal/components/InputValidation-057236a4.css';
@import '../../../node_modules/@primer/react/lib-esm/internal/components/TextInputInnerAction-477e9b99.css';
@import '../../../node_modules/@primer/react/lib-esm/internal/components/TextInputInnerVisualSlot-4a14b955.css';
@import '../../../node_modules/@primer/react/lib-esm/internal/components/TextInputWrapper-889df5d3.css';
@import '../../../node_modules/@primer/react/lib-esm/internal/components/UnderlineTabbedInterface-addc90dd.css';
@import '../../../node_modules/@primer/react/lib-esm/internal/components/UnstyledTextInput-8270f063.css';
@import '../../../node_modules/@primer/react/lib-esm/TooltipV2/Tooltip-5a80d7b2.css';
@import '../../../node_modules/@primer/react/lib-esm/TreeView/TreeView-cd08cabc.css';
@import '../../../node_modules/@primer/react/lib-esm/Truncate/Truncate-030d5f52.css';
@import '../../../node_modules/@primer/react/lib-esm/Select/Select-ab428dc7.css';
@import '../../../node_modules/@primer/react/lib-esm/SelectPanel/SelectPanel-06900070.css';

View File

@@ -0,0 +1 @@
// Empty stub for removed @primer/view-components truncate partial

View File

@@ -0,0 +1 @@
// Empty stub for alpha dialog partial

View File

@@ -0,0 +1 @@
// Stub for deprecated alpha layout.

View File

@@ -0,0 +1 @@
// Stub for removed alpha menu view-component.

View File

@@ -0,0 +1 @@
// Empty stub for alpha tab nav partial

View File

@@ -0,0 +1 @@
// Stub for deprecated alpha text_field.

View File

@@ -0,0 +1 @@
// Empty stub for alpha underline nav partial

View File

@@ -0,0 +1 @@
// Empty stub for beta avatar partial

View File

@@ -0,0 +1,3 @@
// Placeholder stub for deprecated Primer ViewComponents border_box import.
// The original Ruby-based ViewComponent stylesheet is not needed in this
// Next.js docs site build. This file intentionally left blank.

View File

@@ -0,0 +1 @@
// Stub for deprecated breadcrumbs component. Intentionally empty.

View File

@@ -0,0 +1 @@
// Empty stub for beta counter partial

View File

@@ -0,0 +1 @@
// Empty stub for beta flash partial

View File

@@ -0,0 +1 @@
// Empty stub for beta label partial

View File

@@ -0,0 +1 @@
// Stub for deprecated beta link.

View File

@@ -0,0 +1 @@
// Empty stub for beta popover partial

View File

@@ -0,0 +1 @@
// Empty stub for beta state partial

View File

@@ -0,0 +1 @@
// Empty stub for beta truncate partial

View File

@@ -1,3 +1,4 @@
import '@/frame/stylesheets/index.scss'
import '@/frame/stylesheets/primer-react-global.css'
export { default } from '@/frame/pages/app'

View File

@@ -33,7 +33,7 @@ import {
} from '../helpers/execute-search-actions'
import styles from './SearchOverlay.module.scss'
import { Banner } from '@primer/react/drafts'
import { Banner } from '@primer/react/experimental'
import { useCombinedSearchResults } from '@/search/components/hooks/useAISearchAutocomplete'
import { AskAIResults } from './AskAIResults'
import { sendEvent, uuidv4 } from '@/events/components/events'