@graphcommerce/next-ui 7.1.0-canary.8 → 8.0.0-canary.40

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.
@@ -55,6 +55,7 @@ const parts = [
55
55
  'after',
56
56
  'secondaryAction',
57
57
  'reset',
58
+ 'end',
58
59
  ] as const
59
60
  const name = 'ActionCard'
60
61
 
@@ -317,6 +318,7 @@ export function ActionCard(props: ActionCardProps) {
317
318
  </Box>
318
319
 
319
320
  <Box
321
+ className={classes.end}
320
322
  sx={{
321
323
  display: 'flex',
322
324
  flexDirection: 'column',
package/CHANGELOG.md CHANGED
@@ -1,5 +1,89 @@
1
1
  # Change Log
2
2
 
3
+ ## 8.0.0-canary.40
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2077](https://github.com/graphcommerce-org/graphcommerce/pull/2077) [`727d1004d`](https://github.com/graphcommerce-org/graphcommerce/commit/727d1004dfcb7dddf6e35b6b157a34491bb05cc6) - Fixed ItemScroller component className. Changed from SidebarSlider to ItemScroller ([@bramvanderholst](https://github.com/bramvanderholst))
8
+
9
+ ## 7.1.0-canary.39
10
+
11
+ ## 7.1.0-canary.38
12
+
13
+ ### Patch Changes
14
+
15
+ - [#2048](https://github.com/graphcommerce-org/graphcommerce/pull/2048) [`695f40cf2`](https://github.com/graphcommerce-org/graphcommerce/commit/695f40cf220636d17f04bc9b0ce86c549c740386) - filterNonNullable keys simplified the types which caused unions to be collapsed ([@Jessevdpoel](https://github.com/Jessevdpoel))
16
+
17
+ ## 7.1.0-canary.37
18
+
19
+ ## 7.1.0-canary.36
20
+
21
+ ## 7.1.0-canary.35
22
+
23
+ ## 7.1.0-canary.34
24
+
25
+ ## 7.1.0-canary.33
26
+
27
+ ## 7.1.0-canary.32
28
+
29
+ ## 7.1.0-canary.31
30
+
31
+ ## 7.1.0-canary.30
32
+
33
+ ### Patch Changes
34
+
35
+ - [#2105](https://github.com/graphcommerce-org/graphcommerce/pull/2105) [`185f9ddeb`](https://github.com/graphcommerce-org/graphcommerce/commit/185f9ddebff0eaf1f388faebe88a5d400294512a) - Fixed bug where the mobile menu wouldn't open after the first selected level ([@mikekeehnen](https://github.com/mikekeehnen))
36
+
37
+ ## 7.1.0-canary.29
38
+
39
+ ## 7.1.0-canary.28
40
+
41
+ ### Minor Changes
42
+
43
+ - [#2018](https://github.com/graphcommerce-org/graphcommerce/pull/2018) [`750aa6a72`](https://github.com/graphcommerce-org/graphcommerce/commit/750aa6a72710869d54244467253212e551d335e0) - Changed the layout of the succes page. We are using ActionCards right now to match the design of the cart. ([@Jessevdpoel](https://github.com/Jessevdpoel))
44
+
45
+ ## 7.1.0-canary.27
46
+
47
+ ## 7.1.0-canary.26
48
+
49
+ ## 7.1.0-canary.25
50
+
51
+ ## 7.1.0-canary.24
52
+
53
+ ## 7.1.0-canary.23
54
+
55
+ ## 7.1.0-canary.22
56
+
57
+ ## 7.1.0-canary.21
58
+
59
+ ## 7.1.0-canary.20
60
+
61
+ ## 7.1.0-canary.19
62
+
63
+ ## 7.1.0-canary.18
64
+
65
+ ## 7.1.0-canary.17
66
+
67
+ ## 7.1.0-canary.16
68
+
69
+ ## 7.1.0-canary.15
70
+
71
+ ## 7.1.0-canary.14
72
+
73
+ ### Patch Changes
74
+
75
+ - [#2045](https://github.com/graphcommerce-org/graphcommerce/pull/2045) [`1ac1e0989`](https://github.com/graphcommerce-org/graphcommerce/commit/1ac1e09897daadd646200cb3ddc2aa75a51e182e) - Make sure the product image gallery traps focus and scrollbar doesn't disappear suddenly ([@JoshuaS98](https://github.com/JoshuaS98))
76
+
77
+ ## 7.1.0-canary.13
78
+
79
+ ## 7.1.0-canary.12
80
+
81
+ ## 7.1.0-canary.11
82
+
83
+ ## 7.1.0-canary.10
84
+
85
+ ## 7.1.0-canary.9
86
+
3
87
  ## 7.1.0-canary.8
4
88
 
5
89
  ### Minor Changes
@@ -0,0 +1,24 @@
1
+ extend input GraphCommerceConfig {
2
+ """
3
+ Configuration for the SidebarGallery component
4
+ """
5
+ sidebarGallery: SidebarGalleryConfig
6
+ }
7
+
8
+ """
9
+ Enumeration of all possible positions for the sidebar gallery thumbnails.
10
+ """
11
+ enum SidebarGalleryPaginationVariant {
12
+ DOTS
13
+ THUMBNAILS_BOTTOM
14
+ }
15
+
16
+ """
17
+ SidebarGalleryConfig will contain all configuration values for the Sidebar Gallery component.
18
+ """
19
+ input SidebarGalleryConfig {
20
+ """
21
+ Variant used for the pagination
22
+ """
23
+ paginationVariant: SidebarGalleryPaginationVariant
24
+ }
@@ -10,7 +10,7 @@ import { extendableComponent, responsiveVal } from '../Styles'
10
10
  import { useFabSize } from '../Theme'
11
11
  import { iconChevronLeft, iconChevronRight } from '../icons'
12
12
 
13
- const { classes } = extendableComponent('SidebarSlider', [
13
+ const { classes } = extendableComponent('ItemScroller', [
14
14
  'root',
15
15
  'grid',
16
16
  'sidebar',
@@ -21,13 +21,13 @@ const { classes } = extendableComponent('SidebarSlider', [
21
21
  'centerRight',
22
22
  ] as const)
23
23
 
24
- type SliderProps = {
24
+ export type ItemScrollerProps = {
25
25
  children: React.ReactNode
26
26
  sx?: SxProps<Theme>
27
27
  buttonSize?: ScrollerButtonProps['size']
28
28
  } & Pick<ScrollerButtonProps, 'showButtons'>
29
29
 
30
- export function ItemScroller(props: SliderProps) {
30
+ export function ItemScroller(props: ItemScrollerProps) {
31
31
  const { children, sx, buttonSize = 'responsive', showButtons } = props
32
32
 
33
33
  const size = useFabSize(buttonSize)
@@ -3,13 +3,23 @@ import {
3
3
  MotionImageAspect,
4
4
  MotionImageAspectProps,
5
5
  Scroller,
6
- ScrollerButton,
7
- ScrollerButtonProps,
8
6
  ScrollerDots,
7
+ ScrollerButton,
9
8
  ScrollerProvider,
9
+ unstable_usePreventScroll as usePreventScroll,
10
+ ScrollerButtonProps,
11
+ ScrollerThumbnails,
10
12
  } from '@graphcommerce/framer-scroller'
11
13
  import { dvh } from '@graphcommerce/framer-utils'
12
- import { Fab, useTheme, Box, styled, SxProps, Theme } from '@mui/material'
14
+ import {
15
+ Fab,
16
+ useTheme,
17
+ Box,
18
+ styled,
19
+ SxProps,
20
+ Theme,
21
+ Unstable_TrapFocus as TrapFocus,
22
+ } from '@mui/material'
13
23
  import { m, useDomEvent, useMotionValue } from 'framer-motion'
14
24
  import { useRouter } from 'next/router'
15
25
  import React, { useEffect, useRef } from 'react'
@@ -21,7 +31,7 @@ import { iconChevronLeft, iconChevronRight, iconFullscreen, iconFullscreenExit }
21
31
 
22
32
  const MotionBox = styled(m.div)({})
23
33
 
24
- type OwnerState = { zoomed: boolean }
34
+ type OwnerState = { zoomed: boolean; disableZoom: boolean }
25
35
  const name = 'SidebarGallery' as const
26
36
  const parts = [
27
37
  'row',
@@ -59,8 +69,8 @@ export function SidebarGallery(props: SidebarGalleryProps) {
59
69
  aspectRatio: [width, height] = [1, 1],
60
70
  sx,
61
71
  routeHash = 'gallery',
62
- disableZoom,
63
72
  showButtons,
73
+ disableZoom = false,
64
74
  } = props
65
75
 
66
76
  const router = useRouter()
@@ -70,6 +80,7 @@ export function SidebarGallery(props: SidebarGalleryProps) {
70
80
  const route = `#${routeHash}`
71
81
  // We're using the URL to manage the state of the gallery.
72
82
  const zoomed = router.asPath.endsWith(route)
83
+ usePreventScroll(zoomed)
73
84
 
74
85
  // cleanup if someone enters the page with #gallery
75
86
  useEffect(() => {
@@ -86,14 +97,13 @@ export function SidebarGallery(props: SidebarGalleryProps) {
86
97
  if (!zoomed) {
87
98
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
88
99
  router.push(route, undefined, { shallow: true })
89
- document.body.style.overflow = 'hidden'
90
100
  window.scrollTo({ top: 0, behavior: 'smooth' })
91
101
  } else {
92
102
  router.back()
93
103
  }
94
104
  }
95
105
 
96
- const classes = withState({ zoomed })
106
+ const classes = withState({ zoomed, disableZoom })
97
107
  const theme = useTheme()
98
108
  const windowRef = useRef(typeof window !== 'undefined' ? window : null)
99
109
 
@@ -132,8 +142,10 @@ export function SidebarGallery(props: SidebarGalleryProps) {
132
142
  {
133
143
  willChange: 'transform',
134
144
  display: 'grid',
145
+ gridTemplate: '"left" "right"',
135
146
  [theme.breakpoints.up('md')]: {
136
- gridTemplateColumns: '1fr auto',
147
+ // gridTemplateColumns: '1fr auto',
148
+ gridTemplate: '"left right" / 1fr auto',
137
149
  },
138
150
  background:
139
151
  theme.palette.mode === 'light'
@@ -152,178 +164,185 @@ export function SidebarGallery(props: SidebarGalleryProps) {
152
164
  },
153
165
  ]}
154
166
  >
155
- <MotionBox
156
- layout
157
- layoutDependency={zoomed}
158
- className={classes.scrollerContainer}
159
- sx={[
160
- {
161
- willChange: 'transform',
162
- height: 0, // https://stackoverflow.com/questions/44770074/css-grid-row-height-safari-bug
163
- backgroundColor: theme.palette.background.image,
164
- position: 'relative',
165
- paddingTop: `min(${ratio}, ${maxHeight})`,
166
- [theme.breakpoints.down('md')]: {
167
- width: '100vw',
168
- },
169
- [theme.breakpoints.up('md')]: {
170
- height: `calc(${dvh(100)} - ${theme.appShell.headerHeightMd} - ${
171
- theme.spacings.lg
172
- })`,
173
- position: 'sticky',
174
- top: theme.appShell.headerHeightMd,
175
- },
176
- },
177
- zoomed && {
178
- position: 'relative',
179
- top: 0,
180
- marginTop: 0,
181
- paddingTop: dvh(100),
182
- },
183
- ]}
184
- onLayoutAnimationComplete={() => {
185
- if (!zoomed) document.body.style.overflow = ''
186
- }}
187
- >
188
- <Scroller
189
- className={classes.scroller}
190
- hideScrollbar
191
- onMouseDown={onMouseDownScroller}
192
- onMouseUp={onMouseUpScroller}
167
+ <TrapFocus open={zoomed}>
168
+ <MotionBox
169
+ layout
170
+ layoutDependency={zoomed}
171
+ className={classes.scrollerContainer}
193
172
  sx={[
194
173
  {
174
+ gridArea: 'left',
195
175
  willChange: 'transform',
196
- position: 'absolute',
197
- top: 0,
198
- width: '100%',
199
- height: '100%',
200
- gridAutoColumns: `100%`,
201
- gridTemplateRows: `100%`,
202
- cursor: disableZoom ? 'auto' : 'zoom-in',
176
+ height: 0, // https://stackoverflow.com/questions/44770074/css-grid-row-height-safari-bug
177
+ backgroundColor: theme.palette.background.image,
178
+ position: 'relative',
179
+ paddingTop: `min(${ratio}, ${maxHeight})`,
180
+ [theme.breakpoints.down('md')]: {
181
+ width: '100vw',
182
+ },
183
+ [theme.breakpoints.up('md')]: {
184
+ height: `calc(${dvh(100)} - ${theme.appShell.headerHeightMd} - ${
185
+ theme.spacings.lg
186
+ })`,
187
+ position: 'sticky',
188
+ top: theme.appShell.headerHeightMd,
189
+ },
203
190
  },
204
191
  zoomed && {
205
- height: `var(--client-size-y)`,
206
- cursor: 'inherit',
192
+ position: 'relative',
193
+ top: 0,
194
+ marginTop: 0,
195
+ paddingTop: dvh(100),
207
196
  },
208
197
  ]}
198
+ onLayoutAnimationComplete={() => {
199
+ if (!zoomed) document.body.style.overflow = ''
200
+ }}
209
201
  >
210
- {images.map((image, idx) => (
211
- <MotionImageAspect
212
- key={typeof image.src === 'string' ? image.src : idx}
202
+ <Scroller
203
+ className={classes.scroller}
204
+ hideScrollbar
205
+ onMouseDown={onMouseDownScroller}
206
+ onMouseUp={onMouseUpScroller}
207
+ sx={[
208
+ {
209
+ willChange: 'transform',
210
+ position: 'absolute',
211
+ top: 0,
212
+ width: '100%',
213
+ height: '100%',
214
+ gridAutoColumns: `100%`,
215
+ gridTemplateRows: `100%`,
216
+ cursor: disableZoom ? 'auto' : 'zoom-in',
217
+ },
218
+ zoomed && {
219
+ height: `var(--client-size-y)`,
220
+ cursor: 'inherit',
221
+ },
222
+ ]}
223
+ >
224
+ {images.map((image, idx) => (
225
+ <MotionImageAspect
226
+ key={typeof image.src === 'string' ? image.src : idx}
227
+ layout
228
+ layoutDependency={zoomed}
229
+ src={image.src}
230
+ width={image.width}
231
+ height={image.height}
232
+ loading={idx === 0 ? 'eager' : 'lazy'}
233
+ sx={{ display: 'block', objectFit: 'contain' }}
234
+ sizes={{
235
+ 0: '100vw',
236
+ [theme.breakpoints.values.md]: zoomed ? '100vw' : '60vw',
237
+ }}
238
+ alt={image.alt || `Product Image ${idx}` || undefined}
239
+ dontReportWronglySizedImages
240
+ />
241
+ ))}
242
+ </Scroller>
243
+ <MotionBox
244
+ layout='position'
245
+ layoutDependency={zoomed}
246
+ className={classes.topRight}
247
+ sx={{
248
+ display: 'grid',
249
+ gridAutoFlow: 'column',
250
+ top: theme.spacings.sm,
251
+ gap: theme.spacings.xxs,
252
+ position: 'absolute',
253
+ right: theme.spacings.sm,
254
+ }}
255
+ >
256
+ {!disableZoom && (
257
+ <Fab
258
+ size='small'
259
+ className={classes.toggleIcon}
260
+ disabled={!hasImages}
261
+ onMouseUp={toggle}
262
+ aria-label='Toggle Fullscreen'
263
+ sx={{ boxShadow: 6 }}
264
+ >
265
+ {!zoomed ? (
266
+ <IconSvg src={iconFullscreen} />
267
+ ) : (
268
+ <IconSvg src={iconFullscreenExit} />
269
+ )}
270
+ </Fab>
271
+ )}
272
+ </MotionBox>
273
+ <Box
274
+ className={classes.centerLeft}
275
+ sx={{
276
+ display: 'grid',
277
+ gridAutoFlow: 'row',
278
+ gap: theme.spacings.xxs,
279
+ position: 'absolute',
280
+ left: theme.spacings.sm,
281
+ top: `calc(50% - 28px)`,
282
+ }}
283
+ >
284
+ <ScrollerButton
213
285
  layout
214
286
  layoutDependency={zoomed}
215
- src={image.src}
216
- width={image.width}
217
- height={image.height}
218
- loading={idx === 0 ? 'eager' : 'lazy'}
219
- sx={{ display: 'block', objectFit: 'contain' }}
220
- sizes={{
221
- 0: '100vw',
222
- [theme.breakpoints.values.md]: zoomed ? '100vw' : '60vw',
223
- }}
224
- alt={image.alt || `Product Image ${idx}` || undefined}
225
- dontReportWronglySizedImages
226
- />
227
- ))}
228
- </Scroller>
229
- <MotionBox
230
- layout='position'
231
- layoutDependency={zoomed}
232
- className={classes.topRight}
233
- sx={{
234
- display: 'grid',
235
- gridAutoFlow: 'column',
236
- top: theme.spacings.sm,
237
- gap: theme.spacings.xxs,
238
- position: 'absolute',
239
- right: theme.spacings.sm,
240
- }}
241
- >
242
- {!disableZoom && (
243
- <Fab
287
+ direction='left'
288
+ showButtons={showButtons}
244
289
  size='small'
245
- className={classes.toggleIcon}
246
- disabled={!hasImages}
247
- onMouseUp={toggle}
248
- aria-label='Toggle Fullscreen'
249
- sx={{ boxShadow: 6 }}
290
+ className={classes.sliderButtons}
250
291
  >
251
- {!zoomed ? (
252
- <IconSvg src={iconFullscreen} />
253
- ) : (
254
- <IconSvg src={iconFullscreenExit} />
255
- )}
256
- </Fab>
257
- )}
258
- </MotionBox>
259
- <Box
260
- className={classes.centerLeft}
261
- sx={{
262
- display: 'grid',
263
- gridAutoFlow: 'row',
264
- gap: theme.spacings.xxs,
265
- position: 'absolute',
266
- left: theme.spacings.sm,
267
- top: `calc(50% - 28px)`,
268
- }}
269
- >
270
- <ScrollerButton
271
- layout
272
- layoutDependency={zoomed}
273
- direction='left'
274
- showButtons={showButtons}
275
- size='small'
276
- className={classes.sliderButtons}
277
- >
278
- <IconSvg src={iconChevronLeft} />
279
- </ScrollerButton>
280
- </Box>
281
- <Box
282
- className={classes.centerRight}
283
- sx={{
284
- display: 'grid',
285
- gap: theme.spacings.xxs,
286
- position: 'absolute',
287
- right: theme.spacings.sm,
288
- top: `calc(50% - 28px)`,
289
- }}
290
- >
291
- <ScrollerButton
292
- layout
293
- layoutDependency={zoomed}
294
- direction='right'
295
- showButtons={showButtons}
296
- size='small'
297
- className={classes.sliderButtons}
292
+ <IconSvg src={iconChevronLeft} />
293
+ </ScrollerButton>
294
+ </Box>
295
+ <Box
296
+ className={classes.centerRight}
297
+ sx={{
298
+ display: 'grid',
299
+ gap: theme.spacings.xxs,
300
+ position: 'absolute',
301
+ right: theme.spacings.sm,
302
+ top: `calc(50% - 28px)`,
303
+ }}
298
304
  >
299
- <IconSvg src={iconChevronRight} />
300
- </ScrollerButton>
301
- </Box>
302
-
303
- <Box
304
- className={classes.bottomCenter}
305
- sx={{
306
- display: 'flex',
307
- px: theme.page.horizontal,
308
- gap: theme.spacings.xxs,
309
- position: 'absolute',
310
- bottom: theme.spacings.xxs,
311
- justifyContent: 'center',
312
- width: '100%',
313
- pointerEvents: 'none',
314
- '& > *': {
315
- pointerEvents: 'all',
316
- },
317
- }}
318
- >
319
- <ScrollerDots layout='position' layoutDependency={zoomed} />
320
- </Box>
321
- </MotionBox>
305
+ <ScrollerButton
306
+ layout
307
+ layoutDependency={zoomed}
308
+ direction='right'
309
+ showButtons={showButtons}
310
+ size='small'
311
+ className={classes.sliderButtons}
312
+ >
313
+ <IconSvg src={iconChevronRight} />
314
+ </ScrollerButton>
315
+ </Box>
322
316
 
317
+ <Box
318
+ className={classes.bottomCenter}
319
+ sx={{
320
+ display: 'flex',
321
+ gap: theme.spacings.xxs,
322
+ position: 'absolute',
323
+ bottom: theme.spacings.xxs,
324
+ justifyContent: 'center',
325
+ width: '100%',
326
+ pointerEvents: 'none',
327
+ '& > *': {
328
+ pointerEvents: 'all',
329
+ },
330
+ }}
331
+ >
332
+ {import.meta.graphCommerce.sidebarGallery?.paginationVariant ===
333
+ 'THUMBNAILS_BOTTOM' ? (
334
+ <ScrollerThumbnails images={images} />
335
+ ) : (
336
+ <ScrollerDots />
337
+ )}
338
+ </Box>
339
+ </MotionBox>
340
+ </TrapFocus>
323
341
  <Box
324
342
  className={classes.sidebarWrapper}
325
343
  sx={[
326
344
  {
345
+ gridArea: 'right',
327
346
  boxSizing: 'content-box',
328
347
  display: 'grid',
329
348
  justifyItems: 'start',
@@ -178,6 +178,7 @@ export const NavigationOverlay = React.memo((props: NavigationOverlayProps) => {
178
178
  (theme) => ({
179
179
  display: 'grid',
180
180
  alignItems: !stretchColumns ? 'start' : undefined,
181
+ justifyContent: 'end',
181
182
  [theme.breakpoints.down('md')]: {
182
183
  width:
183
184
  sizeSm !== 'floating'
@@ -2,8 +2,8 @@ import { usePageContext } from '@graphcommerce/framer-next-pages'
2
2
  import { addBasePath } from 'next/dist/client/add-base-path'
3
3
  import { addLocale } from 'next/dist/client/add-locale'
4
4
  import { getDomainLocale } from 'next/dist/client/get-domain-locale'
5
+ import { resolveHref } from 'next/dist/client/resolve-href'
5
6
  import { NextRouter } from 'next/dist/shared/lib/router/router'
6
- import { resolveHref } from 'next/dist/shared/lib/router/utils/resolve-href'
7
7
  import Head from 'next/head'
8
8
  import { useRouter } from 'next/router'
9
9
  import type {} from '@graphcommerce/next-config'
@@ -1,26 +1,23 @@
1
- import type { OptionalKeysOf, Simplify } from 'type-fest'
1
+ import type { OptionalKeysOf } from 'type-fest'
2
2
 
3
- export type RequiredKeys<
4
- T extends Record<string, unknown>,
5
- Keys extends OptionalKeysOf<T>,
6
- > = Simplify<
7
- Omit<T, Keys> & {
8
- [K in Keys]: NonNullable<T[K]>
9
- }
10
- >
3
+ export type RequiredKeys<T extends Record<string, unknown>, Keys extends OptionalKeysOf<T>> = Omit<
4
+ T,
5
+ Keys
6
+ > & { [K in Keys]: NonNullable<T[K]> }
11
7
 
12
8
  export function filterNonNullableKeys<
13
9
  T extends Record<string, unknown>,
14
10
  Keys extends OptionalKeysOf<T>,
15
- >(items: (T | null | undefined)[] | null | undefined, values: Keys[] = []) {
11
+ >(
12
+ items: (T | null | undefined)[] | null | undefined,
13
+ values: Keys[] = [],
14
+ ): RequiredKeys<T, Keys>[] {
16
15
  if (!items) return []
17
16
 
18
- const result = items.filter(
17
+ return items.filter(
19
18
  (item) =>
20
19
  item !== null &&
21
20
  typeof item !== 'undefined' &&
22
21
  values.every((v) => item?.[v] !== null && typeof item?.[v] !== 'undefined'),
23
- )
24
-
25
- return result as RequiredKeys<T, Keys>[]
22
+ ) as RequiredKeys<T, Keys>[]
26
23
  }
@@ -102,6 +102,9 @@ export function TextInputNumber(props: TextInputNumberProps) {
102
102
  width: responsiveVal(90, 120),
103
103
  },
104
104
  {
105
+ '& input[type=number]': {
106
+ MozAppearance: 'textfield',
107
+ },
105
108
  '& .MuiOutlinedInput-root': {
106
109
  px: '3px',
107
110
  display: 'grid',
package/package.json CHANGED
@@ -2,9 +2,7 @@
2
2
  "name": "@graphcommerce/next-ui",
3
3
  "homepage": "https://www.graphcommerce.org/",
4
4
  "repository": "github:graphcommerce-org/graphcommerce",
5
- "version": "7.1.0-canary.8",
6
- "author": "",
7
- "license": "MIT",
5
+ "version": "8.0.0-canary.40",
8
6
  "sideEffects": false,
9
7
  "prettier": "@graphcommerce/prettier-config-pwa",
10
8
  "eslintConfig": {
@@ -18,30 +16,30 @@
18
16
  "@emotion/react": "^11.11.1",
19
17
  "@emotion/server": "^11.11.0",
20
18
  "@emotion/styled": "^11.11.0",
21
- "@graphcommerce/framer-next-pages": "7.1.0-canary.8",
22
- "@graphcommerce/framer-scroller": "7.1.0-canary.8",
23
- "@graphcommerce/framer-utils": "7.1.0-canary.8",
24
- "@graphcommerce/image": "7.1.0-canary.8",
25
- "cookie": "^0.5.0",
26
- "react-is": "^18.2.0",
27
- "schema-dts": "^1.1.0"
19
+ "cookie": "^0.6.0",
20
+ "react-is": "^18.2.0"
28
21
  },
29
22
  "devDependencies": {
30
- "@graphcommerce/eslint-config-pwa": "7.1.0-canary.8",
31
- "@graphcommerce/prettier-config-pwa": "7.1.0-canary.8",
32
- "@graphcommerce/typescript-config-pwa": "7.1.0-canary.8",
33
- "@types/cookie": "^0.5.2",
34
- "@types/react-is": "^18.2.1",
23
+ "@types/cookie": "^0.5.4",
24
+ "@types/react-is": "^18.2.4",
25
+ "schema-dts": "^1.1.2",
35
26
  "typescript": "5.2.2"
36
27
  },
37
28
  "peerDependencies": {
29
+ "@graphcommerce/eslint-config-pwa": "8.0.0-canary.40",
30
+ "@graphcommerce/framer-next-pages": "8.0.0-canary.40",
31
+ "@graphcommerce/framer-scroller": "8.0.0-canary.40",
32
+ "@graphcommerce/framer-utils": "8.0.0-canary.40",
33
+ "@graphcommerce/image": "8.0.0-canary.40",
34
+ "@graphcommerce/prettier-config-pwa": "8.0.0-canary.40",
35
+ "@graphcommerce/typescript-config-pwa": "8.0.0-canary.40",
38
36
  "@lingui/core": "^4.2.1",
39
37
  "@lingui/macro": "^4.2.1",
40
38
  "@lingui/react": "^4.2.1",
41
39
  "@mui/lab": "^5.0.0-alpha.68",
42
40
  "@mui/material": "^5.10.16",
43
41
  "framer-motion": "^10.0.0",
44
- "next": "^13.2.0",
42
+ "next": "*",
45
43
  "react": "^18.2.0",
46
44
  "react-dom": "^18.2.0"
47
45
  }