9.0.0-beta.1
Pre-release@comet/admin@9.0.0-beta.1
Minor Changes
-
8c2fdde: Add filtering and sorting to
DependenciesListandDependentsListUsers can now filter dependencies/dependents by name, type, secondary information, and visibility, and sort by all columns. A default filter shows only visible items. The
GqlFiltertype is now exported from@comet/admin.Breaking changes:
@comet/cms-api:DependencyFilter.targetGraphqlObjectTypeandDependentFilter.rootGraphqlObjectTypechanged fromstringtoStringFilter. Update any code passing a plain string to use{ equal: "..." }instead.@comet/cms-api:DependenciesService.getDependents()andgetDependencies()consolidated thefilter,paginationArgs, andoptionsparameters into a singleoptionsobject. If you call these methods directly, merge the arguments:// Before service.getDependents(target, filter, { offset, limit }, { forceRefresh, sort }); // After service.getDependents(target, { filter, offset, limit, forceRefresh, sort });
@comet/cms-admin: The GQL queries passed toDependenciesListandDependentsListmust now accept$filterand$sortvariables and forward them to thedependencies/dependentsfield. Update your queries as follows:# DependentsList query MyDependents($id: ID!, $offset: Int!, $limit: Int!, $forceRefresh: Boolean = false, $filter: DependentFilter, $sort: [DependencySort!]) { item: myEntity(id: $id) { id dependents(offset: $offset, limit: $limit, forceRefresh: $forceRefresh, filter: $filter, sort: $sort) { nodes { rootGraphqlObjectType rootId rootColumnName jsonPath name secondaryInformation visible } totalCount } } } # DependenciesList query MyDependencies($id: ID!, $offset: Int!, $limit: Int!, $forceRefresh: Boolean = false, $filter: DependencyFilter, $sort: [DependencySort!]) { item: myEntity(id: $id) { id dependencies(offset: $offset, limit: $limit, forceRefresh: $forceRefresh, filter: $filter, sort: $sort) { nodes { targetGraphqlObjectType targetId rootColumnName jsonPath name secondaryInformation visible } totalCount } } }
-
8e3a074: New helper: downloadFile, to be used instead of file-saver dependency
@comet/cms-admin@9.0.0-beta.1
Major Changes
-
8c2fdde: Add filtering and sorting to
DependenciesListandDependentsListUsers can now filter dependencies/dependents by name, type, secondary information, and visibility, and sort by all columns. A default filter shows only visible items. The
GqlFiltertype is now exported from@comet/admin.Breaking changes:
@comet/cms-api:DependencyFilter.targetGraphqlObjectTypeandDependentFilter.rootGraphqlObjectTypechanged fromstringtoStringFilter. Update any code passing a plain string to use{ equal: "..." }instead.@comet/cms-api:DependenciesService.getDependents()andgetDependencies()consolidated thefilter,paginationArgs, andoptionsparameters into a singleoptionsobject. If you call these methods directly, merge the arguments:// Before service.getDependents(target, filter, { offset, limit }, { forceRefresh, sort }); // After service.getDependents(target, { filter, offset, limit, forceRefresh, sort });
@comet/cms-admin: The GQL queries passed toDependenciesListandDependentsListmust now accept$filterand$sortvariables and forward them to thedependencies/dependentsfield. Update your queries as follows:# DependentsList query MyDependents($id: ID!, $offset: Int!, $limit: Int!, $forceRefresh: Boolean = false, $filter: DependentFilter, $sort: [DependencySort!]) { item: myEntity(id: $id) { id dependents(offset: $offset, limit: $limit, forceRefresh: $forceRefresh, filter: $filter, sort: $sort) { nodes { rootGraphqlObjectType rootId rootColumnName jsonPath name secondaryInformation visible } totalCount } } } # DependenciesList query MyDependencies($id: ID!, $offset: Int!, $limit: Int!, $forceRefresh: Boolean = false, $filter: DependencyFilter, $sort: [DependencySort!]) { item: myEntity(id: $id) { id dependencies(offset: $offset, limit: $limit, forceRefresh: $forceRefresh, filter: $filter, sort: $sort) { nodes { targetGraphqlObjectType targetId rootColumnName jsonPath name secondaryInformation visible } totalCount } } }
-
85b09a2: Replace
DependencyListwithDependenciesListandDependentsListBreaking change:
DependencyListhas been removed. UseDependenciesListfor queries returningitem.dependenciesandDependentsListfor queries returningitem.dependents. -
171c335: Redirects: add
domainsource typeTo fully support domain redirects, additional handling is required in the site middleware.
@comet/cms-api@9.0.0-beta.1
Major Changes
-
8c2fdde: Add filtering and sorting to
DependenciesListandDependentsListUsers can now filter dependencies/dependents by name, type, secondary information, and visibility, and sort by all columns. A default filter shows only visible items. The
GqlFiltertype is now exported from@comet/admin.Breaking changes:
@comet/cms-api:DependencyFilter.targetGraphqlObjectTypeandDependentFilter.rootGraphqlObjectTypechanged fromstringtoStringFilter. Update any code passing a plain string to use{ equal: "..." }instead.@comet/cms-api:DependenciesService.getDependents()andgetDependencies()consolidated thefilter,paginationArgs, andoptionsparameters into a singleoptionsobject. If you call these methods directly, merge the arguments:// Before service.getDependents(target, filter, { offset, limit }, { forceRefresh, sort }); // After service.getDependents(target, { filter, offset, limit, forceRefresh, sort });
@comet/cms-admin: The GQL queries passed toDependenciesListandDependentsListmust now accept$filterand$sortvariables and forward them to thedependencies/dependentsfield. Update your queries as follows:# DependentsList query MyDependents($id: ID!, $offset: Int!, $limit: Int!, $forceRefresh: Boolean = false, $filter: DependentFilter, $sort: [DependencySort!]) { item: myEntity(id: $id) { id dependents(offset: $offset, limit: $limit, forceRefresh: $forceRefresh, filter: $filter, sort: $sort) { nodes { rootGraphqlObjectType rootId rootColumnName jsonPath name secondaryInformation visible } totalCount } } } # DependenciesList query MyDependencies($id: ID!, $offset: Int!, $limit: Int!, $forceRefresh: Boolean = false, $filter: DependencyFilter, $sort: [DependencySort!]) { item: myEntity(id: $id) { id dependencies(offset: $offset, limit: $limit, forceRefresh: $forceRefresh, filter: $filter, sort: $sort) { nodes { targetGraphqlObjectType targetId rootColumnName jsonPath name secondaryInformation visible } totalCount } } }
-
3f3da52: Switch to SQL-based entity info system
The
@EntityInfodecorator now accepts a field-path-based object or a raw SQL string instead of a TypeScript function or service class.
This enables efficient SQL-level filtering and sorting of dependencies and warnings based on entity info.Breaking changes:
@EntityInfodecorator API changed: now accepts{ name, secondaryInformation?, visible? }with dot-notation field paths, or a raw SQL stringEntityInfoServiceInterfacehas been removed from exportsPageTreeNodeDocumentEntityInfoServicehas been removed;@EntityInfoonPage,Link, and similar document entities is no longer neededblock_index_dependenciesview exposes two new columnsblockVisibleandentityVisible;visibleis now their logical AND (previously only reflected block-level visibility)block_index_dependenciesview now includesrootName,rootSecondaryInformation,targetName, andtargetSecondaryInformationcolumns fromEntityInfo, removing the need for a runtime JOIN when querying dependencies/dependents
-
171c335: Redirects: add
domainsource typeTo fully support domain redirects, additional handling is required in the site middleware.
Patch Changes
-
19a0528: Fix
MailerLogStatusGQL enum name (was incorrectly registered asWarningStatus) -
f162fa5: Fix
AzureOpenAiContentGenerationServicefor newer GPT modelsWe still used the deprecated
max_tokensthat isn't supported anymore by newer models.
Replaced it with the newermax_completion_tokens.
@comet/eslint-config@9.0.0-beta.1
Patch Changes
- 4b1d586: Fix missing Rules of React in
@comet/eslint-config/nextjs.js
@comet/mail-react@9.0.0-beta.1
Minor Changes
-
6104af6: Add
MjmlMailRootcomponent that provides the standard email skeleton (<Mjml>,<MjmlHead>,<MjmlBody>) with zero-padding defaults -
ea8bbe6: Add
disableResponsiveBehaviorandslotPropsprops toMjmlSection -
ed3b395: Add
registerStylesfor component-level responsive CSSRegister CSS styles at module scope via
registerStyles. Registered styles are automatically rendered as<mj-style>elements in<MjmlHead>byMjmlMailRoot. Styles can be static CSS strings or functions that receive the active theme. -
5e626ca: Add
renderMailHtmlfunction via/serverand/clientsub-path exportsThe new
renderMailHtmlfunction handles the full React → MJML → HTML pipeline in a single call, returning{ html, mjmlWarnings }.
Use@comet/mail-react/serverin Node.js environments and@comet/mail-react/clientin browser environments.Example
// In a Node.js context (e.g. email sending service): import { renderMailHtml } from "@comet/mail-react/server"; const { html, mjmlWarnings } = renderMailHtml(<MyEmail />);
// In a browser context (e.g. Storybook, preview): import { renderMailHtml } from "@comet/mail-react/client"; const { html, mjmlWarnings } = renderMailHtml(<MyEmail />);
-
ed3b395: Add
ResponsiveValue<T>type withgetDefaultFromResponsiveValueandgetResponsiveOverrideshelpersGeneric type for breakpoint-aware theme tokens. A
ResponsiveValueis either a plain value or an object keyed by breakpoint names with a requireddefault. The helpers resolve the default value for inline styles and extract per-breakpoint overrides for media queries.Use this when augmenting the theme with values that should vary per breakpoint, e.g. a custom
titleFontSize: ResponsiveValue. -
ed3b395: Add
indentprop toMjmlSectionfor content indentationMjmlSectionnow accepts an optionalindentboolean prop that applies left/right padding based ontheme.sizes.contentIndentation. The default indentation is applied as inline padding, with responsive overrides via registered media queries. -
2e9b518: Add Storybook addon preset at
@comet/mail-react/storybookConsumers add a single line to
.storybook/main.tsto get a complete mail development setup:const config: StorybookConfig = { addons: ["@comet/mail-react/storybook"], };
The preset auto-registers:
- A mail renderer decorator that wraps stories in
<MjmlMailRoot>and renders them to HTML - A "Copy Mail HTML" toolbar button to copy the rendered email HTML to the clipboard
- A "Use public image URLs" toggle to replace image sources with public placeholder URLs (useful for testing on external services like Email on Acid)
- An "MJML Warnings" panel showing validation warnings with a badge count
- A mail renderer decorator that wraps stories in
-
59e9904: Add theme system with
createTheme,ThemeProvider, anduseThemecreateThemeproduces aThemewith layout design tokens (sizes.bodyWidth,breakpoints.default,breakpoints.mobile). Pass an overrides object to customize sizes and breakpoints — breakpoint values are constructed withcreateBreakpoint. All theme interfaces support TypeScript module augmentation for project-specific extensions.MjmlMailRootnow accepts an optionalthemeprop. When provided, it sets the email body width and MJML responsive breakpoint from the theme.
@comet/site-nextjs@9.0.0-beta.1
Patch Changes
- 865fcfd: Remove legacy CJS fields (
module,types) from package.json as these packages are ESM-only
@comet/site-react@9.0.0-beta.1
Patch Changes
- 865fcfd: Remove legacy CJS fields (
module,types) from package.json as these packages are ESM-only