Releases: graphcommerce-org/graphcommerce
Release 10.1.0-canary.26
chore(release): update prerelease versions
Release 10.1.0-canary.25
@graphcommerce/magento-cart@10.1.0-canary.25
Patch Changes
- #2637
9f5e765- Added disableScrollEffects prop to CartFab & NavigationFab for easier customization of the header (@bramvanderholst)
@graphcommerce/next-ui@10.1.0-canary.25
Minor Changes
- #2637
bdaa6ec- RefactoredLayoutNavigationinto composable pieces (Header,HeaderContainer,MenuOverlay, project-localLayoutDefault).LayoutDefault/LayoutDefaultPropsin@graphcommerce/next-uiare marked@deprecated. If you are upgrading and do not want these changes, you can just discard them. This is just a structural change for more ease of use. No visually change. (@bramvanderholst)
Patch Changes
-
#2637
9f5e765- Added disableScrollEffects prop to CartFab & NavigationFab for easier customization of the header (@bramvanderholst) -
#2637
21a676b- Changed Footer props type to allow setting footer container props (@bramvanderholst)
Release 10.1.0-canary.24
@graphcommerce/next-config@10.1.0-canary.24
Patch Changes
- #2636
78f9803- Fix Turbopack panic ("Cannot find module …graphcommerce.config.cjs") when loadinggraphcommerce.config.ts. cosmiconfig's sync TypeScript loader transpiles the config to a fixed temp.cjspath on disk and deletes it again, which races between Next.js worker processes. The.tsloader now transpiles via SWC and writes to a per-process unique filename next to the source so concurrent loads never collide. (@bramvanderholst)
Release 10.1.0-canary.23
@graphcommerce/graphql@10.1.0-canary.23
Patch Changes
- #2634
06082ad- Make GraphCommerce compatible with Apollo Client 4.2+ by augmenting Apollo'sDefaultOptionstype with thepreviewextension and the SSR clients'errorPolicy: 'all'default. (@bramvanderholst)
@graphcommerce/storyblok-ui@10.1.0-canary.23
Patch Changes
- #2634
e1a7e85- Sync Storyblok content with the Visual Editor's selected language (@bramvanderholst)
Release 10.1.0-canary.22
@graphcommerce/magento-product@10.1.0-canary.22
Minor Changes
-
#2627
95c188f- AddYoutubeEmbedcomponent — a lightweight lazy-loading YouTube player that defers iframe creation until the user clicks the poster. Uses preconnect on hover for fast playback start and is styled with MUI sx, so no external CSS is required. Supports playlists, no-cookie mode, custom aspect ratios and ad-network preconnect hints.ProductVideo(used byProductPageGallery) now delegates YouTube playback toYoutubeEmbed, so any product whose Magentomedia_gallerycontains a YouTube video entry gets the new lazy-loading player on its product page. Vimeo and self-hosted video paths are unchanged. The Magento preview image is passed as the YoutubeEmbedthumbnailso the visible poster stays consistent with the rest of the gallery.Fix
SidebarGalleryso it forwards theAdditionalandslotPropsfrom each image toMotionImageAspect. Before this fix the gallery silently dropped both props, which meant anyAdditionaloverlay configured byProductPageGallery(the<ProductVideo>overlay with itsPlayCircleand the newYoutubeEmbed) never reached the DOM. That was a latent regression that made all video-gallery entries render as static images, with or without this PR's YouTube changes.Fix
playwright.config.tssonpx playwright testactually loads. The config previously importedexamples/magento-graphcms/next.config.ts, which transitively pulled@graphcommerce/next-config's ESM build into a CJS context and crashed withReferenceError: exports is not defined. Replaced with an opt-inPLAYWRIGHT_LOCALESenv var for the multi-locale projects that the next.config import was meant to drive. (@paales)
@graphcommerce/next-ui@10.1.0-canary.22
Minor Changes
-
#2627
95c188f- AddYoutubeEmbedcomponent — a lightweight lazy-loading YouTube player that defers iframe creation until the user clicks the poster. Uses preconnect on hover for fast playback start and is styled with MUI sx, so no external CSS is required. Supports playlists, no-cookie mode, custom aspect ratios and ad-network preconnect hints.ProductVideo(used byProductPageGallery) now delegates YouTube playback toYoutubeEmbed, so any product whose Magentomedia_gallerycontains a YouTube video entry gets the new lazy-loading player on its product page. Vimeo and self-hosted video paths are unchanged. The Magento preview image is passed as the YoutubeEmbedthumbnailso the visible poster stays consistent with the rest of the gallery.Fix
SidebarGalleryso it forwards theAdditionalandslotPropsfrom each image toMotionImageAspect. Before this fix the gallery silently dropped both props, which meant anyAdditionaloverlay configured byProductPageGallery(the<ProductVideo>overlay with itsPlayCircleand the newYoutubeEmbed) never reached the DOM. That was a latent regression that made all video-gallery entries render as static images, with or without this PR's YouTube changes.Fix
playwright.config.tssonpx playwright testactually loads. The config previously importedexamples/magento-graphcms/next.config.ts, which transitively pulled@graphcommerce/next-config's ESM build into a CJS context and crashed withReferenceError: exports is not defined. Replaced with an opt-inPLAYWRIGHT_LOCALESenv var for the multi-locale projects that the next.config import was meant to drive. (@paales)
@graphcommerce/misc@10.1.0-canary.22
Patch Changes
-
#2627
95c188f- AddYoutubeEmbedcomponent — a lightweight lazy-loading YouTube player that defers iframe creation until the user clicks the poster. Uses preconnect on hover for fast playback start and is styled with MUI sx, so no external CSS is required. Supports playlists, no-cookie mode, custom aspect ratios and ad-network preconnect hints.ProductVideo(used byProductPageGallery) now delegates YouTube playback toYoutubeEmbed, so any product whose Magentomedia_gallerycontains a YouTube video entry gets the new lazy-loading player on its product page. Vimeo and self-hosted video paths are unchanged. The Magento preview image is passed as the YoutubeEmbedthumbnailso the visible poster stays consistent with the rest of the gallery.Fix
SidebarGalleryso it forwards theAdditionalandslotPropsfrom each image toMotionImageAspect. Before this fix the gallery silently dropped both props, which meant anyAdditionaloverlay configured byProductPageGallery(the<ProductVideo>overlay with itsPlayCircleand the newYoutubeEmbed) never reached the DOM. That was a latent regression that made all video-gallery entries render as static images, with or without this PR's YouTube changes.Fix
playwright.config.tssonpx playwright testactually loads. The config previously importedexamples/magento-graphcms/next.config.ts, which transitively pulled@graphcommerce/next-config's ESM build into a CJS context and crashed withReferenceError: exports is not defined. Replaced with an opt-inPLAYWRIGHT_LOCALESenv var for the multi-locale projects that the next.config import was meant to drive. (@paales)
Release 10.1.0-canary.21
@graphcommerce/next-ui@10.1.0-canary.21
Patch Changes
- #2633
7554ad4- Fix:<Fab variant="extended">no longer gets a fixedwidthfromMuiFabSizes. The size-based width/height variants are now scoped tovariant: 'circular'only, so extended Fabs can grow with their label (controlled viamin-widthinstead) as MUI intends. Previously every extended Fab without an explicitsizematched the defaultlargerule and was forced to 54px wide. (@paales)
Release 10.1.0-canary.20
@graphcommerce/next-config@10.1.0-canary.20
Patch Changes
- #2632
c25106b- Regenerate themergeEnvIntoConfigsnapshot soyarn testpasses on canary. The test input already feedsGC_DEMO_MODEandGC_STOREFRONT_<i>_HYGRAPH_LOCALES_0into the env-schema parser, but the snapshot it was compared against still reflected the pre-demoMode/ pre-flattened-hygraphLocalesschema, so every CI run since those config fields were added has been failing thetestjob on every PR with a snapshot mismatch unrelated to the PR's own changes. (@paales)
Release 10.1.0-canary.18
@graphcommerce/misc@10.1.0-canary.18
Patch Changes
Release 10.1.0-canary.17
@graphcommerce/hygraph-dynamic-rows-ui@10.1.0-canary.17
Patch Changes
- #2623
241576a- Bump Next.js from 16.1.1 to 16.2.6 across the framework and example storefronts. Also bumps the matching@next/envand@next/eslint-plugin-nextpins. (@paales)
@graphcommerce/magento-customer@10.1.0-canary.17
Minor Changes
-
#2624
cbad1fd-CustomerUpdateFormnow acceptsuseFormGqlOptionsandmutationOptionsprops that get forwarded to its underlyinguseCustomerUpdateFormhook. Lets consumers attach anonComplete(e.g. to close an overlay and navigate back on a successful save), anonBeforeSubmit(to amend or veto the variables), or any other option already supported byuseFormGqlMutation/useMutation— without having to drop down and rebuild the form from scratch.Defaults preserve existing behaviour, so the change is backwards compatible. (@paales)
@graphcommerce/eslint-config-pwa@10.1.0-canary.17
Patch Changes
- #2623
241576a- Bump Next.js from 16.1.1 to 16.2.6 across the framework and example storefronts. Also bumps the matching@next/envand@next/eslint-plugin-nextpins. (@paales)
@graphcommerce/misc@10.1.0-canary.17
Patch Changes
Release 10.1.0-canary.13
@graphcommerce/magento-customer@10.1.0-canary.13
Minor Changes
-
#2620
43a0ed2-SignUpFormnow acceptsfieldsetsandrenderprops (mirroringCustomerUpdateForm), so consumers can group dynamic customer attributes into custom labelled sections viaAttributesFormAutoLayout. Defaults to the existing[nameFieldset(attributes)]/CustomerAttributeFieldbehaviour, so unchanged for projects that don't supply the props.This avoids the unstyled, untranslated
Otherfallback header thatAttributesFormAutoLayoutadds whenever attributes don't fit any registered fieldset — projects that extend the customer schema (e.g. with aclubattribute) can now declare their own fieldset alongsidenameFieldset.The fallback header itself in
AttributesFormAutoLayoutis now wrapped in<Trans>Other</Trans>so it picks up project translations instead of rendering as a hardcoded English string.Bug fix in
nameFieldset: when a store doesn't registerdob/genderon the registration form, theadditionalrow was empty and the helper producedgrid-template-areas: "firstname lastname" "", which is invalid CSS and made the whole declaration fall back to the default single-column layout — firstname/lastname stacked on separate rows even at md+. Empty rows are now filtered out, so the side-by-side md layout works as intended. (@paales)
@graphcommerce/magento-store@10.1.0-canary.13
Patch Changes
-
#2625
539b353-CustomAttributesField_to_AttributeValueInputswas filtering out any falsy form value (if (!value) return), so empty strings andfalsebooleans never made it into the resultingAttributeValueInput[]. That meant a consumer who picked the empty-string option of a SELECT attribute (e.g. a "-- None --" option used to undo a previous choice) couldn't actually clear the attribute — the mutation simply omitted it and Magento kept the old value.Skip only when the value is
undefined(the attribute was never touched). Pass empty strings andfalsebooleans through to the mutation so the backend can interpret them as "clear this attribute". (@paales) -
#2620
43a0ed2-SignUpFormnow acceptsfieldsetsandrenderprops (mirroringCustomerUpdateForm), so consumers can group dynamic customer attributes into custom labelled sections viaAttributesFormAutoLayout. Defaults to the existing[nameFieldset(attributes)]/CustomerAttributeFieldbehaviour, so unchanged for projects that don't supply the props.This avoids the unstyled, untranslated
Otherfallback header thatAttributesFormAutoLayoutadds whenever attributes don't fit any registered fieldset — projects that extend the customer schema (e.g. with aclubattribute) can now declare their own fieldset alongsidenameFieldset.The fallback header itself in
AttributesFormAutoLayoutis now wrapped in<Trans>Other</Trans>so it picks up project translations instead of rendering as a hardcoded English string.Bug fix in
nameFieldset: when a store doesn't registerdob/genderon the registration form, theadditionalrow was empty and the helper producedgrid-template-areas: "firstname lastname" "", which is invalid CSS and made the whole declaration fall back to the default single-column layout — firstname/lastname stacked on separate rows even at md+. Empty rows are now filtered out, so the side-by-side md layout works as intended. (@paales)
@graphcommerce/next-config@10.1.0-canary.13
Patch Changes
-
#2621
4eccccd-graphcommerce cleanup-interceptorsnow actually finds and restores.original.tsx/.original.tsfiles when run from a consumer project. PreviouslyfindDotOriginalFileswalked up looking for a@graphcommerce/*parent package; from a consumer project (where there is no such parent)parentPathended upnulland the glob expanded to literallynull/**/*.original.tsx, so the command silently restored nothing. Now it falls back tocwdandcwd/node_modules/@graphcommercewhere interceptors actually live for consumers.Also fixes a display bug — the final
X files restored from .originalline printed an always-0counter (restoredCountwas declared but never incremented; the now-removedremovedCountwas the one being incremented). Counter and message are now consistent. (@paales)