Skip to content

10.11.0

Latest

Choose a tag to compare

@github-actions github-actions released this 28 Oct 14:31
· 32 commits to main since this release
745723b

@dextinity/admin@10.11.0

Patch Changes

  • 3e0526b: Add the selected files up to maxFiles in FileSelect and FinalFormFileSelect

    When more files are selected than maxFiles allows, the files up to the limit are added and only the remaining files are shown as rejected.
    Before, none of the selected files were added.
    The same applies when several files are selected in a single-file FileSelect: the first file is added.

  • 5bb4070: Fix styling of Switch with size="small"

    Previously, the thumb was too large and overflowed the track.

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • Updated dependencies [75ebfd4]

  • Updated dependencies [43ee19a]

    • @dextinity/admin-icons@10.11.0

@dextinity/admin-babel-preset@10.11.0

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

@dextinity/admin-color-picker@10.11.0

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • Updated dependencies [3e0526b]

  • Updated dependencies [5bb4070]

  • Updated dependencies [75ebfd4]

  • Updated dependencies [43ee19a]

    • @dextinity/admin@10.11.0
    • @dextinity/admin-icons@10.11.0

@dextinity/admin-date-time@10.11.0

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • Updated dependencies [3e0526b]

  • Updated dependencies [5bb4070]

  • Updated dependencies [75ebfd4]

  • Updated dependencies [43ee19a]

    • @dextinity/admin@10.11.0
    • @dextinity/admin-icons@10.11.0

@dextinity/admin-generator@10.11.0

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • 48a9757: Update commander to v14

    Commands now fail with "too many arguments" when they receive positional arguments they don't declare. Before, these arguments were ignored.
    For example, an unquoted glob passed to dextinity-admin-generator generate --file is expanded by the shell into several arguments, and only the first file was generated. Quote the glob so the admin generator receives it as one pattern:

    dextinity-admin-generator generate --file 'src/products/**/*.dextinityGen.tsx'
  • Updated dependencies [05ea45d]

  • Updated dependencies [3e0526b]

  • Updated dependencies [5bb4070]

  • Updated dependencies [75ebfd4]

  • Updated dependencies [a6f647b]

  • Updated dependencies [43ee19a]

  • Updated dependencies [8a645b7]

  • Updated dependencies [43ee19a]

  • Updated dependencies [96bf6f1]

  • Updated dependencies [c5f02ac]

  • Updated dependencies [f423240]

    • @dextinity/cms-admin@10.11.0
    • @dextinity/admin@10.11.0
    • @dextinity/admin-icons@10.11.0

@dextinity/admin-icons@10.11.0

Minor Changes

  • 43ee19a: Add RowInsertAbove, RowInsertBelow, RowMoveUp, RowMoveDown, ColumnInsertLeft, ColumnInsertRight, ColumnMoveLeft and ColumnMoveRight icons

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

@dextinity/admin-rte@10.11.0

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • Updated dependencies [3e0526b]

  • Updated dependencies [5bb4070]

  • Updated dependencies [75ebfd4]

  • Updated dependencies [43ee19a]

    • @dextinity/admin@10.11.0
    • @dextinity/admin-icons@10.11.0

@dextinity/brevo-admin@10.11.0

Patch Changes

  • Updated dependencies [05ea45d]
  • Updated dependencies [3e0526b]
  • Updated dependencies [5bb4070]
  • Updated dependencies [75ebfd4]
  • Updated dependencies [a6f647b]
  • Updated dependencies [43ee19a]
  • Updated dependencies [8a645b7]
  • Updated dependencies [43ee19a]
  • Updated dependencies [96bf6f1]
  • Updated dependencies [c5f02ac]
  • Updated dependencies [f423240]
    • @dextinity/cms-admin@10.11.0
    • @dextinity/admin@10.11.0
    • @dextinity/admin-icons@10.11.0

@dextinity/cms-admin@10.11.0

Minor Changes

  • 05ea45d: Add a DAM settings page to set the fallback image for invalid licenses

    When the license feature is enabled (enableLicenseFeature), the "More actions" menu of the DAM contains a "Settings" item.
    It opens a page where you can choose the image that replaces images whose license has expired or isn't valid yet on the site.

  • a6f647b: Render TableBlock with the data grid configured in DextinityConfig

    TableBlock no longer needs @mui/x-data-grid-pro.
    With the free DataGrid, rows and columns can only be moved with the menu items, not by dragging.
    TableBlock treats every configured grid other than MUI's DataGrid as a Pro or Premium grid, so configure DataGrid itself, not a wrapper around it.

    Action required for drag-and-drop

    To keep drag-and-drop, configure the Pro or Premium grid:

    <DextinityConfigProvider dataGrid={{ component: DataGridPro }}>
  • 8a645b7: Allow moving TableBlock rows and columns without dragging

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • 43ee19a: Use dedicated icons to insert and move rows and columns in the TableBlock menus

  • 96bf6f1: Keep the focus in the child block dialog of createTipTapRichTextBlock

    Choosing a child block from the toolbar's "Insert block" menu refocused the editor shortly after the dialog had opened, which moved the focus away from the dialog's fields, for instance from a field with autoFocus.

  • c5f02ac: Keep bold, italic and links on soft hyphens and non-breaking spaces in TipTap rich texts

    migrateFromDraftJs and the editor's soft hyphen and non-breaking space buttons created these nodes without the marks of the surrounding text.
    On the site, a soft hyphen in a bold word was rendered outside the <strong>, so the hyphen at a line break was thinner than the letters around it, and a link containing one was split into two links.

  • f423240: Update react-window to v2

    The page tree, the page tree select dialog and the folder list in the "Move DAM item" dialog use the new List API.
    react-virtualized-auto-sizer is no longer a dependency, as the lists size themselves to their container.

  • Updated dependencies [3e0526b]

  • Updated dependencies [5bb4070]

  • Updated dependencies [75ebfd4]

  • Updated dependencies [43ee19a]

    • @dextinity/admin@10.11.0
    • @dextinity/admin-icons@10.11.0
    • @dextinity/admin-rte@10.11.0

@dextinity/agent-features@10.11.0

@dextinity/api-generator@10.11.0

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • 48a9757: Update commander to v14

    Commands now fail with "too many arguments" when they receive positional arguments they don't declare. Before, these arguments were ignored.
    For example, an unquoted glob passed to dextinity-admin-generator generate --file is expanded by the shell into several arguments, and only the first file was generated. Quote the glob so the admin generator receives it as one pattern:

    dextinity-admin-generator generate --file 'src/products/**/*.dextinityGen.tsx'
  • Updated dependencies [97b3b42]

  • Updated dependencies [22bd832]

  • Updated dependencies [bc24036]

  • Updated dependencies [79c2746]

  • Updated dependencies [05ea45d]

  • Updated dependencies [79c2746]

  • Updated dependencies [75ebfd4]

  • Updated dependencies [9a5fd29]

  • Updated dependencies [c5f02ac]

  • Updated dependencies [a6050c4]

    • @dextinity/cms-api@10.11.0

@dextinity/brevo-api@10.11.0

Patch Changes

  • 97b3b42: Allow graphql-scalars v2

    v2 only drops support for graphql below v16 and for Node 20, so projects can update to it whenever they want.

  • 80298a2: Remove the uuid dependency

    Random UUIDs are now generated with randomUUID() from Node's crypto module.

  • Updated dependencies [97b3b42]

  • Updated dependencies [22bd832]

  • Updated dependencies [bc24036]

  • Updated dependencies [79c2746]

  • Updated dependencies [05ea45d]

  • Updated dependencies [79c2746]

  • Updated dependencies [75ebfd4]

  • Updated dependencies [9a5fd29]

  • Updated dependencies [c5f02ac]

  • Updated dependencies [a6050c4]

    • @dextinity/cms-api@10.11.0

@dextinity/cms-api@10.11.0

Minor Changes

  • 05ea45d: Replace images with an invalid license with a fallback image

    When the license feature is enabled (enableLicenseFeature), PixelImageBlock renders a fallback image instead of an image whose license has expired or isn't valid yet.
    The fallback image is set per DAM scope in the DAM settings.
    It is delivered under its own URL and with its own crop area, the crop area set in the block is ignored.
    If no fallback image is set, the block renders no image.

    SvgImageBlock, DamVideoBlock and DamFileDownloadLinkBlock render no file if its license is invalid, and DamVideoBlock leaves out captions with an invalid license.

    The GraphQL fields DamFile.fileUrl, DamFileImage.url and DamFileImage.urlTemplate return the fallback image's URL for a pixel image with an invalid license.
    DamFileImage.url and DamFileImage.urlTemplate return null if no fallback image is set.

    None of this applies to requests for preview DAM URLs, so the Admin keeps showing the original file.

    The public file and image URLs of a file with an invalid license respond with 410 Gone.

Patch Changes

  • 97b3b42: Allow graphql-scalars v2

    v2 only drops support for graphql below v16 and for Node 20, so projects can update to it whenever they want.

  • 22bd832: Fix the error after uploading files to the DAM when the asset list isn't sorted

    When no sort column was selected in the asset list, damItemListPosition failed with an SQL error such as column folder.undefined does not exist, and the admin showed this error after every upload.
    damItemsList and damItemListPosition now sort by name when no sort column is given, and the GraphQL schema declares name as the default of their sortColumnName argument.

  • bc24036: Keep inline styles and links in place after emojis when migrating Draft.js content to TipTap

    Draft.js stores the offsets of inline styles and entities in code points, but migrateFromDraftJs used them as string indices, which count UTF-16 code units.
    Every emoji or other character outside the Basic Multilingual Plane shifted the ranges after it by one character, and a range ending inside such a character split it into two broken characters.

  • 79c2746: Reject unknown block types in the input of createBlocksBlock and createOneOfBlock

    Previously, an item with a type that isn't in supportedBlocks was removed from blocks or attachedBlocks before validation, and the mutation saved the block without it.
    Now, such an input fails validation with an isIn error at the type of the item, for instance blocks.1.type.
    The index in the error path is the index of the item in the input.
    Code that calls blockInputFactory without validating the result keeps such an item now, and transformToBlockData() throws for it. Call validate() to detect it.

    The Admin only sends supported block types and isn't affected.
    Stored block data with unknown types is still filtered when loaded, as a block may have been removed from supportedBlocks since the data was saved.

  • 79c2746: Report invalid block input as validation errors instead of internal errors

    • createBlocksBlock and createOneOfBlock: Report a blocks or attachedBlocks value that isn't an array with an isArray error. Previously, the mutation failed with value.filter is not a function. createListBlock additionally reports an isArray error. All three report an item that is an array with an isObject error, which createListBlock accepted before and which failed when saving.
    • ChildBlockInput: Report a missing non-nullable child block with an isDefined error. Previously, the mutation failed with Missing child block input for '<key>'. Code that calls blockInputFactory without validating the result doesn't get this error anymore and must call validate() to detect a missing child block. This includes the openGraphImage of the SEO block, which was marked as optional although the mutation failed without it.
    • createRichTextBlock: Add a message to the isDraftContent error, which was empty
  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • 9a5fd29: Report each validation error in the openGraphImage of the SEO block once

    The field had an additional @ValidateNested() next to @ChildBlockInput(), which already adds it, so the image was validated twice.

  • c5f02ac: Keep bold, italic and links on soft hyphens and non-breaking spaces in TipTap rich texts

    migrateFromDraftJs and the editor's soft hyphen and non-breaking space buttons created these nodes without the marks of the surrounding text.
    On the site, a soft hyphen in a bold word was rendered outside the <strong>, so the hyphen at a line break was thinner than the letters around it, and a link containing one was split into two links.

  • a6050c4: Validate damFileId as UUID in PixelImageBlock and SvgImageBlock

    Previously, any non-empty string was accepted and saved, resulting in a broken image.

@dextinity/cli@10.11.0

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • 48a9757: Update commander to v14

    Commands now fail with "too many arguments" when they receive positional arguments they don't declare. Before, these arguments were ignored.
    For example, an unquoted glob passed to dextinity-admin-generator generate --file is expanded by the shell into several arguments, and only the first file was generated. Quote the glob so the admin generator receives it as one pattern:

    dextinity-admin-generator generate --file 'src/products/**/*.dextinityGen.tsx'

@dextinity/eslint-config@10.11.0

Patch Changes

  • 35f2b48: Update globals to v17

    The browser configs know about newer browser APIs.
    Audio worklet globals, such as registerProcessor and sampleRate, are no longer defined in the browser configs.

  • 2fb3ecf: Move npm-run-all2 to devDependencies

    It's only used by the package's own lint scripts, so projects using @dextinity/eslint-config no longer install it.

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • Updated dependencies [75ebfd4]

    • @dextinity/eslint-plugin@10.11.0

@dextinity/eslint-plugin@10.11.0

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

@dextinity/mail-react@10.11.0

Minor Changes

  • a4cc3bb: Make mail blocks selectable in the admin's block preview

    Mail blocks now work in the block preview like site blocks: a hover highlights them, and a click opens their form. The sent mail does not change.

    Wrap each mail block in withPreview and apply the className it passes to the block's root element:

    export const MailButtonBlock = withPreview<PropsWithData<MailButtonBlockData>>(
        ({ data, className }) => (
            <MjmlSection className={className}>
                <MjmlColumn>
                    <MjmlButton href={data.link.targetUrl}>{data.text}</MjmlButton>
                </MjmlColumn>
            </MjmlSection>
        ),
        { label: "Button" },
    );

    Pass the block's props as the type argument of withPreview, as in withPreview<PropsWithData<MailButtonBlockData>>, and it adds the className to them.

    In the block preview page, pass the result of useIFrameBridge to useRefToRegisterMailBlocksForPreview, and put the ref it returns on the element that contains the mail HTML:

    const mailContainerRef = useRefToRegisterMailBlocksForPreview<HTMLSpanElement>(useIFrameBridge());
    
    return <span ref={mailContainerRef} dangerouslySetInnerHTML={{ __html: mailHtml }} />;

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

@dextinity/site-nextjs@10.11.0

Patch Changes

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.

  • Updated dependencies [85eecab]

  • Updated dependencies [a4cc3bb]

  • Updated dependencies [75ebfd4]

    • @dextinity/site-react@10.11.0

@dextinity/site-react@10.11.0

Minor Changes

  • a4cc3bb: Make mail blocks selectable in the admin's block preview

    Mail blocks now work in the block preview like site blocks: a hover highlights them, and a click opens their form. The sent mail does not change.

    Wrap each mail block in withPreview and apply the className it passes to the block's root element:

    export const MailButtonBlock = withPreview<PropsWithData<MailButtonBlockData>>(
        ({ data, className }) => (
            <MjmlSection className={className}>
                <MjmlColumn>
                    <MjmlButton href={data.link.targetUrl}>{data.text}</MjmlButton>
                </MjmlColumn>
            </MjmlSection>
        ),
        { label: "Button" },
    );

    Pass the block's props as the type argument of withPreview, as in withPreview<PropsWithData<MailButtonBlockData>>, and it adds the className to them.

    In the block preview page, pass the result of useIFrameBridge to useRefToRegisterMailBlocksForPreview, and put the ref it returns on the element that contains the mail HTML:

    const mailContainerRef = useRefToRegisterMailBlocksForPreview<HTMLSpanElement>(useIFrameBridge());
    
    return <span ref={mailContainerRef} dangerouslySetInnerHTML={{ __html: mailHtml }} />;

Patch Changes

  • 85eecab: Keep the headers of a Request passed to fetch in the block preview

    BlockPreviewProvider wraps window.fetch to add the X-Block-Preview header.
    When fetch was called with a Request object, as openapi-fetch and other libraries do, the wrapper dropped all headers set on the Request.
    Now the headers of the Request and of init are merged, with init taking precedence.

  • 75ebfd4: Require Node.js 22.12.0 or later

    @dextinity/cms-api is a CommonJS package that loads dependencies which are only available as ES modules, for instance content-disposition.
    Node.js supports loading ES modules with require() without a flag only from version 22.12.0.
    On older versions, the API fails at startup with ERR_REQUIRE_ESM.
    The other packages require the same version, so that all packages have the same Node.js minimum.
    For @dextinity/site-react and @dextinity/site-nextjs, this drops support for Node.js 18 and 20, which no longer receive security updates.