@graphcommerce/next-ui 10.0.0-canary.68 → 10.0.0
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.
- package/CHANGELOG.md +168 -0
- package/LayoutOverlay/components/LayoutOverlayHeader2.tsx +3 -3
- package/Overlay/components/Overlay.tsx +10 -3
- package/Overlay/components/OverlayContainer.tsx +5 -2
- package/Page/types.ts +1 -4
- package/RenderType/RenderType.tsx +8 -5
- package/Styles/withTheme.tsx +7 -6
- package/package.json +14 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,173 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 10.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [#2546](https://github.com/graphcommerce-org/graphcommerce/pull/2546) [`ed9332a`](https://github.com/graphcommerce-org/graphcommerce/commit/ed9332a7f78966d932041d9a7725641edc92b28d) - ## GraphCommerce 10 - Turbopack Support
|
|
8
|
+
|
|
9
|
+
This major release brings full Turbopack compatibility, dramatically improving development speed.
|
|
10
|
+
|
|
11
|
+
### 🚀 Turbopack-Compatible Interceptor System
|
|
12
|
+
|
|
13
|
+
The entire plugin/interceptor system has been rewritten to work with Turbopack:
|
|
14
|
+
|
|
15
|
+
- **No more Webpack plugins** - Removed `InterceptorPlugin` webpack plugin entirely
|
|
16
|
+
- **File-based interception** - Original files are moved to `.original.tsx` and replaced with interceptor content
|
|
17
|
+
- **Direct imports** - Interceptors import from `.original` files instead of embedding source
|
|
18
|
+
- **New CLI commands**:
|
|
19
|
+
- `graphcommerce codegen-interceptors` - Generate interceptor files
|
|
20
|
+
- `graphcommerce cleanup-interceptors` - Reset interceptor system, restore original files
|
|
21
|
+
- **Stable file hashing** - Deterministic interceptor generation for better caching
|
|
22
|
+
|
|
23
|
+
### ⚙️ Treeshakable Configuration System
|
|
24
|
+
|
|
25
|
+
Replaced Webpack `DefinePlugin`-based `import.meta.graphCommerce` with a new generated configuration system:
|
|
26
|
+
|
|
27
|
+
- **New `codegen-config-values` command** - Generates TypeScript files with precise typing
|
|
28
|
+
- **Schema-driven** - Dynamically introspects Zod schemas to determine all available properties
|
|
29
|
+
- **Fully treeshakable** - Unused config values are eliminated from the bundle
|
|
30
|
+
- **Type-safe** - Uses `Get<GraphCommerceConfig, 'path'>` for nested property access
|
|
31
|
+
- **Separate files for nested objects** - Optimal treeshaking for complex configurations
|
|
32
|
+
|
|
33
|
+
### 🔧 withGraphCommerce Changes
|
|
34
|
+
|
|
35
|
+
- **Removed** `InterceptorPlugin` - No longer needed with file-based interception
|
|
36
|
+
- **Removed** `DefinePlugin` for `import.meta.graphCommerce` - Replaced with generated config
|
|
37
|
+
- **Removed** `@mui/*` alias rewrites - No longer required
|
|
38
|
+
- **Added** Turbopack loader rules for `.yaml`, `.yml`, and `.po` files
|
|
39
|
+
- **Added** `serverExternalPackages` for all `@whatwg-node/*` packages
|
|
40
|
+
- **Added** `optimizePackageImports` for better bundle optimization
|
|
41
|
+
- **Added** `images.qualities: [52, 75]` for Next.js image optimization
|
|
42
|
+
|
|
43
|
+
### 📦 Lingui Configuration
|
|
44
|
+
|
|
45
|
+
- **Renamed** `lingui.config.js` → `lingui.config.ts` with TypeScript support
|
|
46
|
+
- **Updated** `@graphcommerce/lingui-next/config` to TypeScript with proper exports
|
|
47
|
+
- **Simplified** formatter options
|
|
48
|
+
|
|
49
|
+
### ⚛️ React 19 & Next.js 16 Compatibility
|
|
50
|
+
|
|
51
|
+
- Updated `RefObject<T>` types for React 19 (now includes `null` by default)
|
|
52
|
+
- Replaced deprecated `React.VFC` with `React.FC`
|
|
53
|
+
- Fixed `useRef` calls to require explicit initial values
|
|
54
|
+
- Updated `MutableRefObject` usage in `framer-scroller`
|
|
55
|
+
|
|
56
|
+
### 📋 ESLint 9 Flat Config
|
|
57
|
+
|
|
58
|
+
- Migrated from legacy `.eslintrc` to new flat config format (`eslint.config.mjs`)
|
|
59
|
+
- Updated `@typescript-eslint/*` packages to v8
|
|
60
|
+
- Fixed AST selector for `SxProps` rule (`typeParameters` → `typeArguments`)
|
|
61
|
+
|
|
62
|
+
### 🔄 Apollo Client
|
|
63
|
+
|
|
64
|
+
- Fixed deprecated `name` option → `clientAwareness: { name: 'ssr' }`
|
|
65
|
+
- Updated error handling types to accept `ApolloError | null | undefined`
|
|
66
|
+
|
|
67
|
+
### ⚠️ Breaking Changes
|
|
68
|
+
|
|
69
|
+
- **Node.js 24.x not supported** - Restricted to `>=20 <24.0.0` due to [nodejs/undici#4290](https://github.com/nodejs/undici/issues/4290)
|
|
70
|
+
- **Interceptor files changed** - Original components now at `.original.tsx`
|
|
71
|
+
- **Config access changed** - Use generated config values instead of `import.meta.graphCommerce`
|
|
72
|
+
- **ESLint config format** - Must use flat config (`eslint.config.mjs`)
|
|
73
|
+
- **Lingui config** - Rename `lingui.config.js` to `lingui.config.ts`
|
|
74
|
+
|
|
75
|
+
### 🗑️ Removed
|
|
76
|
+
|
|
77
|
+
- `InterceptorPlugin` webpack plugin
|
|
78
|
+
- `configToImportMeta` utility
|
|
79
|
+
- Webpack `DefinePlugin` usage for config
|
|
80
|
+
- `@mui/*` modern alias rewrites
|
|
81
|
+
- Debug plugins (`CircularDependencyPlugin`, `DuplicatesPlugin`) ([@paales](https://github.com/paales))
|
|
82
|
+
|
|
83
|
+
- [#2557](https://github.com/graphcommerce-org/graphcommerce/pull/2557) [`ceaadd8`](https://github.com/graphcommerce-org/graphcommerce/commit/ceaadd87f0648982a068a3b07b1fa149c9127f49) - ## Material UI v5 → v7 Migration
|
|
84
|
+
|
|
85
|
+
This release upgrades Material UI from v5 to v7 with full CSS variables support. ([@paales](https://github.com/paales))
|
|
86
|
+
|
|
87
|
+
- [#2565](https://github.com/graphcommerce-org/graphcommerce/pull/2565) [`c96dfcd`](https://github.com/graphcommerce-org/graphcommerce/commit/c96dfcdca981baca387c270ad9e2b9515cdd00cc) - Updated to Apollo Client 4 ([@paales](https://github.com/paales))
|
|
88
|
+
|
|
89
|
+
### Patch Changes
|
|
90
|
+
|
|
91
|
+
- [#2539](https://github.com/graphcommerce-org/graphcommerce/pull/2539) [`87fc3c2`](https://github.com/graphcommerce-org/graphcommerce/commit/87fc3c28165c7c66b48882b0f044bbc9b63b9846) - Created new Tabs and TabItem component to be used for MultiCart setup ([@paales](https://github.com/paales))
|
|
92
|
+
|
|
93
|
+
- [#2528](https://github.com/graphcommerce-org/graphcommerce/pull/2528) [`6a3e7f9`](https://github.com/graphcommerce-org/graphcommerce/commit/6a3e7f9bec6d03c146718ad594b064a75b536e99) - cssFlag and cssNotFlag css selector can now select values ([@paales](https://github.com/paales))
|
|
94
|
+
|
|
95
|
+
- [#2510](https://github.com/graphcommerce-org/graphcommerce/pull/2510) [`40ccfed`](https://github.com/graphcommerce-org/graphcommerce/commit/40ccfed07592c67ccf80311c821a01526e87dbcc) - Added missing href to secondary menu items ([@bramvanderholst](https://github.com/bramvanderholst))
|
|
96
|
+
|
|
97
|
+
- [#2567](https://github.com/graphcommerce-org/graphcommerce/pull/2567) [`a0ba773`](https://github.com/graphcommerce-org/graphcommerce/commit/a0ba773171bb76c7a998deb5bbacd974e5a3764d) - Fix LayoutOverlayHeader2 text overflowing beyond overlay size constraints ([@paales](https://github.com/paales))
|
|
98
|
+
|
|
99
|
+
- [#2493](https://github.com/graphcommerce-org/graphcommerce/pull/2493) [`a34c276`](https://github.com/graphcommerce-org/graphcommerce/commit/a34c276b69f9ff1a727023eef64f2db8b196864c) - Added lots of missing icon exports ([@paales](https://github.com/paales))
|
|
100
|
+
|
|
101
|
+
- [#2473](https://github.com/graphcommerce-org/graphcommerce/pull/2473) [`8df172e`](https://github.com/graphcommerce-org/graphcommerce/commit/8df172e4fa1364892d53bc96a437d037d245de35) - Do not warn about `:first-child` since all css is hoisted out of the components. ([@paales](https://github.com/paales))
|
|
102
|
+
|
|
103
|
+
- [#2493](https://github.com/graphcommerce-org/graphcommerce/pull/2493) [`2a09ca9`](https://github.com/graphcommerce-org/graphcommerce/commit/2a09ca933e0de88dc32dac5ae62f41b0e5953359) - Intl components now accept the sx prop. `<RelativeToTimeFormat />` now expects a date prop instead of children. ([@paales](https://github.com/paales))
|
|
104
|
+
|
|
105
|
+
- [#2567](https://github.com/graphcommerce-org/graphcommerce/pull/2567) [`4908a45`](https://github.com/graphcommerce-org/graphcommerce/commit/4908a457cac15c429d83d6b9274a8be9c8277ef6) - Allow setting OverlayContainer props, such as event listeners ([@paales](https://github.com/paales))
|
|
106
|
+
|
|
107
|
+
- [#2470](https://github.com/graphcommerce-org/graphcommerce/pull/2470) [`8f047a0`](https://github.com/graphcommerce-org/graphcommerce/commit/8f047a0860f9b915717f6db52be64805094d0b09) - Modify the type that is exposed for createTheme, should be faster for TypeScript to check. ([@paales](https://github.com/paales))
|
|
108
|
+
|
|
109
|
+
- [#2499](https://github.com/graphcommerce-org/graphcommerce/pull/2499) [`1e38811`](https://github.com/graphcommerce-org/graphcommerce/commit/1e3881177065548165b7141a29cff8ab27692b25) - Added support for meta_keyword for products and categories ([@paales](https://github.com/paales))
|
|
110
|
+
|
|
111
|
+
- [#2473](https://github.com/graphcommerce-org/graphcommerce/pull/2473) [`b076b2a`](https://github.com/graphcommerce-org/graphcommerce/commit/b076b2ae4881bebf1d2debd5333a83f220c26ca7) - Also accept false as value for sxx ([@paales](https://github.com/paales))
|
|
112
|
+
|
|
113
|
+
- [#2478](https://github.com/graphcommerce-org/graphcommerce/pull/2478) [`32bccbb`](https://github.com/graphcommerce-org/graphcommerce/commit/32bccbba4b000247d7e01e487f6d48b6dec07fb5) - Nesting multiple Containers will not increase the padding, will only be applied once. ([@paales](https://github.com/paales))
|
|
114
|
+
|
|
115
|
+
- [#2539](https://github.com/graphcommerce-org/graphcommerce/pull/2539) [`286a20e`](https://github.com/graphcommerce-org/graphcommerce/commit/286a20e01f2a565f058415fa1c8dfbb2eeb3163b) - Added an OverlayCloseButton and implemented it for various locations. ([@paales](https://github.com/paales))
|
|
116
|
+
|
|
117
|
+
- [#2539](https://github.com/graphcommerce-org/graphcommerce/pull/2539) [`65dcefb`](https://github.com/graphcommerce-org/graphcommerce/commit/65dcefb8740166fd5df662e0e895c65d70273393) - Solve hydration error because multiple literals could be in a DateTimeFormat ([@paales](https://github.com/paales))
|
|
118
|
+
|
|
119
|
+
- [#2543](https://github.com/graphcommerce-org/graphcommerce/pull/2543) [`7e1e33e`](https://github.com/graphcommerce-org/graphcommerce/commit/7e1e33e6d6238155884ba80cf249209e8eb3d542) - Fix IconBlocks width ([@StefanAngenent](https://github.com/StefanAngenent))
|
|
120
|
+
|
|
121
|
+
- [#2539](https://github.com/graphcommerce-org/graphcommerce/pull/2539) [`88fd114`](https://github.com/graphcommerce-org/graphcommerce/commit/88fd11485f9368e79d277fa45942e58214f794a6) - Created a LayoutOverlayHeader2 that does not support any floating modes or something and thus is simpler to customize. ([@paales](https://github.com/paales))
|
|
122
|
+
|
|
123
|
+
- [#2510](https://github.com/graphcommerce-org/graphcommerce/pull/2510) [`a79d7c2`](https://github.com/graphcommerce-org/graphcommerce/commit/a79d7c28da5ba227c3c3ff957149a732f3d71a39) - Added ripple to BlogTags ([@bramvanderholst](https://github.com/bramvanderholst))
|
|
124
|
+
|
|
125
|
+
- [#2528](https://github.com/graphcommerce-org/graphcommerce/pull/2528) [`a4344ed`](https://github.com/graphcommerce-org/graphcommerce/commit/a4344ed7ff7b3b5f88185c1f6a5fc4b6306fc472) - Created a useCookie hook that is synced between usages ([@paales](https://github.com/paales))
|
|
126
|
+
|
|
127
|
+
- [#2539](https://github.com/graphcommerce-org/graphcommerce/pull/2539) [`23793aa`](https://github.com/graphcommerce-org/graphcommerce/commit/23793aab26455b1bea0d1b3b37c96a228b656bc4) - Prevent excessive rerender when multiple images with the same url are in a product ([@paales](https://github.com/paales))
|
|
128
|
+
|
|
129
|
+
- [#2539](https://github.com/graphcommerce-org/graphcommerce/pull/2539) [`a419257`](https://github.com/graphcommerce-org/graphcommerce/commit/a4192571eb2332630ba3d103f61ff69dac8b2e5c) - Solve issue where the sidebar wasn't 100% width on the PDP on mobile ([@paales](https://github.com/paales))
|
|
130
|
+
|
|
131
|
+
- [#2510](https://github.com/graphcommerce-org/graphcommerce/pull/2510) [`ef83f7d`](https://github.com/graphcommerce-org/graphcommerce/commit/ef83f7d04fe0cf70da19f795e837ee3bda9884d4) - Use a more sensible theme var for LayoutHeaderContent gap ([@bramvanderholst](https://github.com/bramvanderholst))
|
|
132
|
+
|
|
133
|
+
- [#2517](https://github.com/graphcommerce-org/graphcommerce/pull/2517) [`547be7d`](https://github.com/graphcommerce-org/graphcommerce/commit/547be7d5ee39aca64ab4a9a80de66a01961990e4) - Fixed gallery zoom breaking on long sidebar content ([@bramvanderholst](https://github.com/bramvanderholst))
|
|
134
|
+
|
|
135
|
+
- [#2493](https://github.com/graphcommerce-org/graphcommerce/pull/2493) [`05a1744`](https://github.com/graphcommerce-org/graphcommerce/commit/05a1744ddeca31c4d24128fd5cd2513a7c491d5b) - Added search params to NextLink whenever present ([@paales](https://github.com/paales))
|
|
136
|
+
|
|
137
|
+
- [#2528](https://github.com/graphcommerce-org/graphcommerce/pull/2528) [`f89210b`](https://github.com/graphcommerce-org/graphcommerce/commit/f89210b09e64f520d308cb1bac693c027be1ac46) - Solve issue where the MenuFabSecondaryItem coudn't handle text overflow. ([@paales](https://github.com/paales))
|
|
138
|
+
|
|
139
|
+
- [`4564271`](https://github.com/graphcommerce-org/graphcommerce/commit/4564271e702aab11c28e425029f4a7c09a4d5d61) - Created a revalidate method that returns a single value so that it can be overwritten centrally ([@paales](https://github.com/paales))
|
|
140
|
+
|
|
141
|
+
- [#2485](https://github.com/graphcommerce-org/graphcommerce/pull/2485) [`b0ec078`](https://github.com/graphcommerce-org/graphcommerce/commit/b0ec0784a0b3ca977598ded3777d23bc929072b0) - Added a CurrencySymbol component that renders the current currency symbol ([@paales](https://github.com/paales))
|
|
142
|
+
|
|
143
|
+
- [`b423879`](https://github.com/graphcommerce-org/graphcommerce/commit/b4238796f1f8cce62325e57d90cc7a84a921a0fa) - DateTimeFormat, NumberFormat and RelativeTimeFormat (and all derivatives) will now wrap all number parts in a span, so that individual parts can be styled properly. ([@paales](https://github.com/paales))
|
|
144
|
+
|
|
145
|
+
- [#2510](https://github.com/graphcommerce-org/graphcommerce/pull/2510) [`7665579`](https://github.com/graphcommerce-org/graphcommerce/commit/76655792129dfa4fec3395a94b73e6761d323335) - Fixed back button width in overlays with long titles ([@bramvanderholst](https://github.com/bramvanderholst))
|
|
146
|
+
|
|
147
|
+
- [`90f8dd8`](https://github.com/graphcommerce-org/graphcommerce/commit/90f8dd89efd62e2b5a13e9c2bf265840d99e2473) - Create useCookies hook and simplify the useCookie query ([@paales](https://github.com/paales))
|
|
148
|
+
|
|
149
|
+
- [#2510](https://github.com/graphcommerce-org/graphcommerce/pull/2510) [`b536019`](https://github.com/graphcommerce-org/graphcommerce/commit/b53601965924ece86ee991bdb2b5897b3e7c642a) - Update various props from ReactElement to ReactNode to allow string values ([@bramvanderholst](https://github.com/bramvanderholst))
|
|
150
|
+
|
|
151
|
+
- [#2499](https://github.com/graphcommerce-org/graphcommerce/pull/2499) [`340c8ef`](https://github.com/graphcommerce-org/graphcommerce/commit/340c8ef93248a120cc4b92a6cd91f775ae662a1f) - Solve issue where ActionCard would crash the whole app because it forwarded components to string attributes ([@paales](https://github.com/paales))
|
|
152
|
+
|
|
153
|
+
## 10.0.0-canary.72
|
|
154
|
+
|
|
155
|
+
## 10.0.0-canary.71
|
|
156
|
+
|
|
157
|
+
## 10.0.0-canary.70
|
|
158
|
+
|
|
159
|
+
### Major Changes
|
|
160
|
+
|
|
161
|
+
- [#2565](https://github.com/graphcommerce-org/graphcommerce/pull/2565) [`c96dfcd`](https://github.com/graphcommerce-org/graphcommerce/commit/c96dfcdca981baca387c270ad9e2b9515cdd00cc) - Updated to Apollo Client 4 ([@paales](https://github.com/paales))
|
|
162
|
+
|
|
163
|
+
## 10.0.0-canary.69
|
|
164
|
+
|
|
165
|
+
### Patch Changes
|
|
166
|
+
|
|
167
|
+
- [#2567](https://github.com/graphcommerce-org/graphcommerce/pull/2567) [`a0ba773`](https://github.com/graphcommerce-org/graphcommerce/commit/a0ba773171bb76c7a998deb5bbacd974e5a3764d) - Fix LayoutOverlayHeader2 text overflowing beyond overlay size constraints ([@paales](https://github.com/paales))
|
|
168
|
+
|
|
169
|
+
- [#2567](https://github.com/graphcommerce-org/graphcommerce/pull/2567) [`4908a45`](https://github.com/graphcommerce-org/graphcommerce/commit/4908a457cac15c429d83d6b9274a8be9c8277ef6) - Allow setting OverlayContainer props, such as event listeners ([@paales](https://github.com/paales))
|
|
170
|
+
|
|
3
171
|
## 10.0.0-canary.68
|
|
4
172
|
|
|
5
173
|
### Major Changes
|
|
@@ -139,17 +139,17 @@ export const LayoutOverlayHeader2 = React.memo<LayoutOverlayHeader2Props>((props
|
|
|
139
139
|
// Left only
|
|
140
140
|
'&.left:not(.right)': {
|
|
141
141
|
gridTemplateAreas: '"left center"',
|
|
142
|
-
gridTemplateColumns: justify === 'center' ? '1fr
|
|
142
|
+
gridTemplateColumns: justify === 'center' ? '1fr auto' : 'auto 1fr',
|
|
143
143
|
},
|
|
144
144
|
// Right only
|
|
145
145
|
'&.right:not(.left)': {
|
|
146
146
|
gridTemplateAreas: '"center right"',
|
|
147
|
-
gridTemplateColumns: justify === 'center' ? '
|
|
147
|
+
gridTemplateColumns: justify === 'center' ? 'auto 1fr' : '1fr auto',
|
|
148
148
|
},
|
|
149
149
|
// Both left and right
|
|
150
150
|
'&.left.right': {
|
|
151
151
|
gridTemplateAreas: '"left center right"',
|
|
152
|
-
gridTemplateColumns: justify === 'center' ? '1fr
|
|
152
|
+
gridTemplateColumns: justify === 'center' ? '1fr auto 1fr' : 'auto 1fr auto',
|
|
153
153
|
},
|
|
154
154
|
}))}
|
|
155
155
|
>
|
|
@@ -5,20 +5,27 @@ import type { SetOptional } from 'type-fest'
|
|
|
5
5
|
import { variantsToScrollSnapType } from '../utils/variantsToScrollSnapType'
|
|
6
6
|
import type { LayoutOverlayBaseProps } from './OverlayBase'
|
|
7
7
|
import { OverlayBase } from './OverlayBase'
|
|
8
|
+
import type { OverlayContainerProps } from './OverlayContainer'
|
|
8
9
|
import { OverlayContainer } from './OverlayContainer'
|
|
9
10
|
|
|
10
11
|
export type OverlayTmpProps = Omit<
|
|
11
12
|
SetOptional<LayoutOverlayBaseProps, 'variantSm' | 'variantMd'>,
|
|
12
13
|
'offsetPageY' | 'isPresent' | 'safeToRemove'
|
|
13
|
-
>
|
|
14
|
+
> & { overlayContainerProps?: Partial<OverlayContainerProps> }
|
|
14
15
|
|
|
15
16
|
function OverlayUsePresence(props: OverlayTmpProps) {
|
|
16
|
-
const {
|
|
17
|
+
const {
|
|
18
|
+
variantSm = 'bottom',
|
|
19
|
+
variantMd = 'right',
|
|
20
|
+
active,
|
|
21
|
+
overlayContainerProps,
|
|
22
|
+
...otherProps
|
|
23
|
+
} = props
|
|
17
24
|
const [isPresent, safeToRemove] = usePresence()
|
|
18
25
|
|
|
19
26
|
return (
|
|
20
27
|
<Portal>
|
|
21
|
-
<OverlayContainer active={active}>
|
|
28
|
+
<OverlayContainer active={active} {...overlayContainerProps}>
|
|
22
29
|
<ScrollerProvider {...variantsToScrollSnapType(props)}>
|
|
23
30
|
<OverlayBase
|
|
24
31
|
active={active}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { sxx } from '@graphcommerce/next-ui'
|
|
2
|
+
import type { BoxProps } from '@mui/material'
|
|
2
3
|
import { Box } from '@mui/material'
|
|
3
4
|
import type { LayoutOverlayBaseProps } from './OverlayBase'
|
|
4
5
|
|
|
5
6
|
export type OverlayContainerProps = Pick<LayoutOverlayBaseProps, 'active'> & {
|
|
6
7
|
hidden?: boolean
|
|
7
8
|
children: React.ReactNode
|
|
8
|
-
}
|
|
9
|
+
} & BoxProps
|
|
9
10
|
|
|
10
11
|
export function OverlayContainer(props: OverlayContainerProps) {
|
|
11
|
-
const { children, active, hidden } = props
|
|
12
|
+
const { children, active, hidden, sx, ...rest } = props
|
|
12
13
|
|
|
13
14
|
return (
|
|
14
15
|
<Box
|
|
@@ -47,7 +48,9 @@ export function OverlayContainer(props: OverlayContainerProps) {
|
|
|
47
48
|
boxShadow: 0,
|
|
48
49
|
},
|
|
49
50
|
},
|
|
51
|
+
sx,
|
|
50
52
|
)}
|
|
53
|
+
{...rest}
|
|
51
54
|
>
|
|
52
55
|
{children}
|
|
53
56
|
</Box>
|
package/Page/types.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import type { ParsedUrlQuery } from 'querystring'
|
|
2
2
|
import type { UpPage } from '@graphcommerce/framer-next-pages'
|
|
3
|
-
// todo: remove references to GraphQL
|
|
4
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
5
|
-
import type { NormalizedCacheObject } from '@graphcommerce/graphql'
|
|
6
3
|
import type {
|
|
7
4
|
GetServerSideProps as GetServerSidePropsNext,
|
|
8
5
|
GetStaticProps as GetStaticPropsNext,
|
|
@@ -10,7 +7,7 @@ import type {
|
|
|
10
7
|
|
|
11
8
|
type AnyObj = Record<string, unknown>
|
|
12
9
|
|
|
13
|
-
export type ApolloStateProps = { apolloState:
|
|
10
|
+
export type ApolloStateProps = { apolloState: unknown; up?: UpPage | null }
|
|
14
11
|
|
|
15
12
|
export type GetStaticProps<
|
|
16
13
|
PL extends AnyObj,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { createElement } from 'react'
|
|
2
|
+
import type React from 'react'
|
|
2
3
|
|
|
3
4
|
/** To make renderers customizable we need to be able to provide renders for all types */
|
|
4
5
|
type TypeObject = { __typename: string; [index: string]: unknown }
|
|
@@ -24,6 +25,10 @@ export type TypeRenderer<
|
|
|
24
25
|
TAdd extends Record<string, unknown> = Record<string, unknown>,
|
|
25
26
|
> = TypeRenderMap<T, T['__typename'], TAdd>
|
|
26
27
|
|
|
28
|
+
function FallbackRenderer({ __typename }: { __typename: string }) {
|
|
29
|
+
return <>{process.env.NODE_ENV !== 'production' ? __typename : ''}</>
|
|
30
|
+
}
|
|
31
|
+
|
|
27
32
|
/**
|
|
28
33
|
* A simple array with renderers but with strict typing that validates of the provided Renderer is
|
|
29
34
|
* actually able to render the Type
|
|
@@ -35,11 +40,9 @@ export function RenderType<
|
|
|
35
40
|
A extends Record<string, unknown> = Record<string, unknown>,
|
|
36
41
|
>(props: { renderer: TypeRenderer<T, A> } & FilterTypeByTypename<T, T['__typename']> & A) {
|
|
37
42
|
const { renderer, __typename, ...typeItemProps } = props
|
|
38
|
-
const TypeItem: TypeRenderMethod<typeof typeItemProps> = renderer[__typename]
|
|
39
|
-
? renderer[__typename]
|
|
40
|
-
: () => <>{process.env.NODE_ENV !== 'production' ? __typename : ''}</>
|
|
43
|
+
const TypeItem: TypeRenderMethod<typeof typeItemProps> = renderer[__typename] ?? FallbackRenderer
|
|
41
44
|
|
|
42
|
-
return
|
|
45
|
+
return createElement(TypeItem, { ...typeItemProps, __typename })
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
/** @public */
|
package/Styles/withTheme.tsx
CHANGED
|
@@ -44,21 +44,22 @@ export function withTheme<T>(
|
|
|
44
44
|
Component: (value: T & WithSx) => React.ReactElement<any, any> | null,
|
|
45
45
|
theme: Theme,
|
|
46
46
|
): React.FC<T & WithSx> {
|
|
47
|
-
|
|
47
|
+
// eslint-disable-next-line react/function-component-definition
|
|
48
|
+
return function WithTheme(data: T & WithSx) {
|
|
48
49
|
const { sx = [] } = data
|
|
49
50
|
return (
|
|
50
51
|
<ThemeProvider theme={theme}>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
sx
|
|
52
|
+
{React.createElement(Component, {
|
|
53
|
+
...data,
|
|
54
|
+
sx: sxx(
|
|
54
55
|
{
|
|
55
56
|
typography: 'body1',
|
|
56
57
|
color: theme.vars.palette.text.primary,
|
|
57
58
|
backgroundColor: theme.vars.palette.background.default,
|
|
58
59
|
},
|
|
59
60
|
sx,
|
|
60
|
-
)
|
|
61
|
-
|
|
61
|
+
),
|
|
62
|
+
})}
|
|
62
63
|
</ThemeProvider>
|
|
63
64
|
)
|
|
64
65
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@graphcommerce/next-ui",
|
|
3
3
|
"homepage": "https://www.graphcommerce.org/",
|
|
4
4
|
"repository": "github:graphcommerce-org/graphcommerce",
|
|
5
|
-
"version": "10.0.0
|
|
5
|
+
"version": "10.0.0",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"prettier": "@graphcommerce/prettier-config-pwa",
|
|
8
8
|
"eslintConfig": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"./RenderType/filterNonNullableKeys": "./RenderType/filterNonNullableKeys.ts"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"cookie": "^1.
|
|
33
|
+
"cookie": "^1.1.1",
|
|
34
34
|
"react-is": "^19.2.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
@@ -38,21 +38,21 @@
|
|
|
38
38
|
"typescript": "5.9.3"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@emotion/cache": "^11",
|
|
42
|
-
"@emotion/react": "^11",
|
|
43
|
-
"@emotion/server": "^11",
|
|
44
|
-
"@emotion/styled": "^11",
|
|
45
|
-
"@graphcommerce/eslint-config-pwa": "^10.0.0
|
|
46
|
-
"@graphcommerce/framer-next-pages": "^10.0.0
|
|
47
|
-
"@graphcommerce/framer-scroller": "^10.0.0
|
|
48
|
-
"@graphcommerce/framer-utils": "^10.0.0
|
|
49
|
-
"@graphcommerce/image": "^10.0.0
|
|
50
|
-
"@graphcommerce/prettier-config-pwa": "^10.0.0
|
|
51
|
-
"@graphcommerce/typescript-config-pwa": "^10.0.0
|
|
41
|
+
"@emotion/cache": "^11.14.0",
|
|
42
|
+
"@emotion/react": "^11.14.0",
|
|
43
|
+
"@emotion/server": "^11.11.0",
|
|
44
|
+
"@emotion/styled": "^11.14.1",
|
|
45
|
+
"@graphcommerce/eslint-config-pwa": "^10.0.0",
|
|
46
|
+
"@graphcommerce/framer-next-pages": "^10.0.0",
|
|
47
|
+
"@graphcommerce/framer-scroller": "^10.0.0",
|
|
48
|
+
"@graphcommerce/framer-utils": "^10.0.0",
|
|
49
|
+
"@graphcommerce/image": "^10.0.0",
|
|
50
|
+
"@graphcommerce/prettier-config-pwa": "^10.0.0",
|
|
51
|
+
"@graphcommerce/typescript-config-pwa": "^10.0.0",
|
|
52
52
|
"@lingui/core": "^5",
|
|
53
53
|
"@lingui/macro": "^5",
|
|
54
54
|
"@lingui/react": "^5",
|
|
55
|
-
"@mui/lab": "
|
|
55
|
+
"@mui/lab": "7.0.1-beta.20",
|
|
56
56
|
"@mui/material": "^7.0.0",
|
|
57
57
|
"framer-motion": "^11.0.0",
|
|
58
58
|
"next": "*",
|