Releases: vivid-planet/comet
8.20.0
@comet/admin@8.20.0
Patch Changes
- 412ed19: Prevent form components used within
Field/FieldContainerfrom overflowing their parent
@comet/admin-icons@8.20.0
Patch Changes
- caceff8: Remove deprecated
xlinkHrefprop fromCometColoricon component
@comet/cms-admin@8.20.0
Minor Changes
-
ed00704: Add
TableBlockusing thecreateTableBlock()factoryThe passed in
richTextblock is used to edit the cell content.Admin:
import { createTableBlock } from "@comet/cms-admin"; import { RichTextBlock } from "./RichTextBlock"; export const TableBlock = createTableBlock({ richText: RichTextBlock });
API:
import { createTableBlock } from "@comet/cms-api"; import { RichTextBlock } from "./rich-text.block"; export const TableBlock = createTableBlock({ richText: RichTextBlock });
@comet/cms-api@8.20.0
Minor Changes
-
ed00704: Add
TableBlockusing thecreateTableBlock()factoryThe passed in
richTextblock is used to edit the cell content.Admin:
import { createTableBlock } from "@comet/cms-admin"; import { RichTextBlock } from "./RichTextBlock"; export const TableBlock = createTableBlock({ richText: RichTextBlock });
API:
import { createTableBlock } from "@comet/cms-api"; import { RichTextBlock } from "./rich-text.block"; export const TableBlock = createTableBlock({ richText: RichTextBlock });
@comet/cli@8.20.0
Minor Changes
-
7c27867:
install-agent-skills: add support for askills/directory as the primary source for agent skillsThe
project-skills/andpackage-skills/directories are no longer supported. Move all skills into a singleskills/directory at the repo root:- Skills previously in
project-skills/: move toskills/and addmetadata.internal: trueto theirSKILL.md - Skills previously in
package-skills/: move toskills/(without theinternalflag)
- Skills previously in
8.19.0
@comet/admin@8.19.0
Minor Changes
-
fff2cc2: Add support for
onBlurandonFocusprops toDatePicker,DateRangePicker,DateTimePicker,DateTimeRangePickerandTimePickerErrors and warnings are now correctly shown after validation in
DatePickerField,DateRangePickerField,DateTimePickerField,DateTimeRangePickerFieldandTimePickerField. -
fff2cc2: Add aria-labels to the open picker buttons of date/time picker components
@comet/admin-generator@8.19.0
Patch Changes
- 4bb3d09: Fix Prettier formatting in monorepo setups by using the Prettier API directly instead of the CLI
@comet/api-generator@8.19.0
Patch Changes
- 4bb3d09: Fix Prettier formatting in monorepo setups by using the Prettier API directly instead of the CLI
@comet/cms-api@8.19.0
Patch Changes
- 0eb28a7: Skip block index view creation when no root block entities are found instead of failing with a SQL syntax error
@comet/cli@8.19.0
Minor Changes
-
539d53f: Add
install-agent-skillscommandsee https://docs.comet-dxp.com/docs/guides/installing-agent-skills for more info
8.18.0
@comet/admin@8.18.0
Patch Changes
- 0ce431c: Toggle filter panel when clicking on
GridFilterButton - d344f53: Remove Data Grid Pro usages to allow usage without the Pro version
@comet/admin-generator@8.18.0
Patch Changes
- b35454a: Fix
asyncSelectform field generation andstaticSelectgrid column generation for nested fields from 1:1 relations (e.g.,"product.category") - 69324f9: Grid: Fix emitting string literals for non-string
initialFiltervalues
@comet/cms-admin@8.18.0
Minor Changes
- 64b70bc: Re-add "Usages" column to the DAM
FolderDataGrid, displaying the number of dependents for each file
Patch Changes
-
ed029fb: Export
CurrentUserContextfrom@comet/cms-adminCurrentUserContextis now exported so that consumers can directly access the React context. This is needed for use cases such as providing a custom implementation of the context (e.g. in tests or in applications that manage their own user context) and for components that need to consume the context directly rather than through theuseCurrentUserhook.
@comet/cms-api@8.18.0
Minor Changes
-
64b70bc: Deduplicate block index refreshes using PostgreSQL advisory locks
Replace the race-condition-prone
pg_stat_activitycheck inDependenciesService.refreshViews()withpg_try_advisory_xact_lock, ensuring only one refresh runs at a time. This fixes the issue where many parallel requests (e.g., from the DAM Usages column) could trigger multiple concurrentREFRESH MATERIALIZED VIEWoperations, overloading the database. -
ef98821: Add option
shouldInvokeUserServicetocreateJwtAuthServiceSometimes it is preferred to load the user from the
UserServiceinstead of using the data from the ID-Token (e.g. because theUserServiceprovides additional data). This options allows to force this behavior.
Patch Changes
-
e9c54bc: Fix
DamFolder.mpathcolumn typeChange the column type from
"uuid array"to"uuid[]"to match PostgreSQL's canonical array type notation, preventing a redundantalter column ... type uuid arraystatement from being generated for every new migration. -
b3bfe86: Update
@aws-sdk/dependencies to fix CVE-2026-25896
@comet/site-react@8.18.0
Minor Changes
-
2a9e770: Add HTML anchor props pass-through to
DamFileDownloadLinkBlockThese link block component now accept and pass through standard HTML anchor element attributes (such as
id,className,style,target,rel,aria-*,data-*,onClick, etc.) to the rendered<a>element.Example:
<DamFileDownloadLinkBlock data={linkData} className="custom-link"> <span>Download file</span> </DamFileDownloadLinkBlock>
9.0.0-beta.0
@comet/admin@9.0.0-beta.0
Major Changes
-
5f1566a: Make packages ESM-only
-
3fda20b: Remove the "Future" prefix from date/time components as they are now considered stable
If already in use, update the imports of these components and their types:
DatePicker:
-
Future_DatePicker->DatePicker -
Future_DatePickerProps->DatePickerProps -
Future_DatePickerClassKey->DatePickerClassKey -
Future_DatePickerField->DatePickerField -
Future_DatePickerFieldProps->DatePickerFieldPropsDateRangePicker:
-
Future_DateRangePicker->DateRangePicker -
Future_DateRangePickerProps->DateRangePickerProps -
Future_DateRangePickerClassKey->DateRangePickerClassKey -
Future_DateRangePickerField->DateRangePickerField -
Future_DateRangePickerFieldProps->DateRangePickerFieldPropsTimePicker:
-
Future_TimePicker->TimePicker -
Future_TimePickerProps->TimePickerProps -
Future_TimePickerClassKey->TimePickerClassKey -
Future_TimePickerField->TimePickerField -
Future_TimePickerFieldProps->TimePickerFieldPropsDateTimePicker:
-
Future_DateTimePicker->DateTimePicker -
Future_DateTimePickerProps->DateTimePickerProps -
Future_DateTimePickerClassKey->DateTimePickerClassKey -
Future_DateTimePickerField->DateTimePickerField -
Future_DateTimePickerFieldProps->DateTimePickerFieldPropsIf your theme is using
defaultPropsorstyleOverridesfor any of these components, update their component-keys: -
CometAdminFutureDatePicker->CometAdminDatePicker -
CometAdminFutureDateRangePicker->CometAdminDateRangePicker -
CometAdminFutureTimePicker->CometAdminTimePicker -
CometAdminFutureDateTimePicker->CometAdminDateTimePickerIf you are using class-names to access these components' slots, update them:
-
CometAdminFuture_DatePicker-*->CometAdminDatePicker-* -
CometAdminFuture_DateRangePicker-*->CometAdminDateRangePicker-* -
CometAdminFuture_TimePicker-*->CometAdminTimePicker-* -
CometAdminFuture_DateTimePicker-*->CometAdminDateTimePicker-*
-
-
fd5c36f: Remove
clearableprop fromAutocomplete,FinalFormInput,FinalFormNumberInputandFinalFormSearchTextFieldThose fields are now clearable automatically when not set to
required,disabledorreadOnly. -
631540c: Rename
variantprop ofTooltiptocolorand remove theneutralandprimaryoptions<Tooltip title="Title" - variant="light" + color="light" > <Info /> </Tooltip><Tooltip title="Title" - variant="neutral" > <Info /> </Tooltip>
Minor Changes
- f066335: Add support for React 19
@comet/admin-babel-preset@9.0.0-beta.0
Major Changes
- 5f1566a: Make packages ESM-only
@comet/admin-color-picker@9.0.0-beta.0
Major Changes
- 5f1566a: Make packages ESM-only
Minor Changes
- f066335: Add support for React 19
@comet/admin-date-time@9.0.0-beta.0
Major Changes
-
3fda20b: Add a "Legacy" prefix to class-names and theme component-keys
This affects the components of which their new counterparts are now considered stable in
@comet/admin.Consider using the new components from
@comet/adminIn most cases, the new components will be a drop-in replacement for the legacy components, so you can simply replace the imports:
| Legacy component from
@comet/admin-date-time| New component from@comet/admin|
| ---------------------------------------------- | -------------------------------------------------- |
|DatePicker|DatePicker|
|DateField|DatePickerField|
|FinalFormDatePicker|DatePickerField(without using<Field />) |
|DateRangePicker|DateRangePicker|
|DateRangeField|DateRangePickerField|
|FinalFormDateRangePicker|DateRangePickerField(without using<Field />) |
|TimePicker|TimePicker|
|TimeField|TimePickerField|
|FinalFormTimePicker|TimePickerField(without using<Field />) |
|DateTimePicker|DateTimePicker|
|DateTimeField|DateTimePickerField|
|FinalFormDateTimePicker|DateTimePickerField(without using<Field />) |To continue using the existing components, the following changes will need to be made:
Update any use of class-names of the component's slots:
-
CometAdminDatePicker-*->CometAdminLegacyDatePicker-* -
CometAdminDateRangePicker-*->CometAdminLegacyDateRangePicker-* -
CometAdminDateTimePicker-*->CometAdminLegacyDateTimePicker-* -
CometAdminTimePicker-*->CometAdminLegacyTimePicker-*Update the component-keys when using
defaultPropsorstyleOverridesin the theme: -
CometAdminDatePicker->CometAdminLegacyDatePicker -
CometAdminDateRangePicker->CometAdminLegacyDateRangePicker -
CometAdminDateTimePicker->CometAdminLegacyDateTimePicker -
CometAdminTimePicker->CometAdminLegacyTimePicker
-
-
5f1566a: Make packages ESM-only
Minor Changes
- f066335: Add support for React 19
@comet/admin-generator@9.0.0-beta.0
Major Changes
-
0ec748a: Convert to ESM
To upgrade, make the following changes to your
tsconfig.json:{ "compilerOptions": { - "module": "ESNext", - "moduleResolution": "Node", + "module": "preserve", + "moduleResolution": "bundler" } }
Minor Changes
- f066335: Add support for React 19
@comet/admin-icons@9.0.0-beta.0
Major Changes
- 5f1566a: Make packages ESM-only
Minor Changes
- f066335: Add support for React 19
@comet/admin-rte@9.0.0-beta.0
Major Changes
- 5f1566a: Make packages ESM-only
Minor Changes
- f066335: Add support for React 19
@comet/brevo-admin@9.0.0-beta.0
Minor Changes
- f066335: Add support for React 19
@comet/cms-admin@9.0.0-beta.0
Major Changes
-
ee24125: Remove
createHttpClientfunctionUse native fetch instead.
-
5f1566a: Make packages ESM-only
-
790e8d0: Remove the
filesInfoTextslot fromFileSelect
Minor Changes
- f066335: Add support for React 19
@comet/api-generator@9.0.0-beta.0
Major Changes
-
18748d1: Stop generating GraphQL selection-set based
populatehandling in generated CRUD list resolvers.MikroORM dataloader must now be enabled in API projects (for example with
dataloader: DataloaderType.ALLin your MikroORM config) to efficiently resolve relation fields. -
10dda8c: Remove
targetDirectoryconfig from@CrudGeneratordecorator and always generate files to${__dirname}/../generated/
Minor Changes
- 623111e: Support re-using an enum (for filters) in multiple models by using a shared generated filter type
@comet/eslint-config@9.0.0-beta.0
Major Changes
-
db6b83a: Prevent lib imports from
@comet/packagesUse
no-restricted-importsto prevent importing private files from@comet/*/lib. For example, the following import would be forbidden:import { something } from "@comet/admin/lib/some/private/file";
-
740dba8: Bump Next.js peer dependency to v16
@comet/eslint-plugin@9.0.0-beta.0
Major Changes
-
db6b83a: Prevent lib imports from
@comet/packagesUse
no-restricted-importsto prevent importing private files from@comet/*/lib. For example, the following import would be forbidden:import { something } from "@comet/admin/lib/some/private/file";
@comet/site-nextjs@9.0.0-beta.0
Major Changes
-
740dba8: Bump Next.js peer dependency to v16
-
740dba8: Bump React peer dependency to v19
Follow the official migration guide to upgrade.
@comet/site-react@9.0.0-beta.0
Minor Changes
- 740dba8: Add support for React 19
8.17.1
@comet/admin-icons@8.17.1
Patch Changes
- 91e9a8f: Update fast-xml-parser to 5.3.6 to fix CVE-2026-26278 (entity expansion DoS)
@comet/brevo-api@8.17.1
Patch Changes
- 91e9a8f: Update axios to 1.13.5 to fix CVE-2026-25639 (DoS via proto key in mergeConfig)
@comet/cms-api@8.17.1
Patch Changes
- 91e9a8f: Update fast-xml-parser to 5.3.6 to fix CVE-2026-26278 (entity expansion DoS)
@comet/site-nextjs@8.17.1
Patch Changes
- 91e9a8f: Raise Next.js peer dependency minimum to 14.2.35 to fix CVE-2026-23864 (request deserialization DoS)
8.17.0
@comet/admin@8.17.0
Minor Changes
- 45163f1: Add DataGrid helper
useDataGridUrlStatethat can be used likeuseDataGridRemoteto store state as location params but for client side (non paginated) filter/sort
@comet/admin-generator@8.17.0
Minor Changes
-
cd854dc: Grid: Add automatic
onRowClicknavigationGenerated grids now automatically navigate to the edit page when a row is clicked, improving user experience.
- When
rowActionPropisfalse(default): generates ahandleRowClickhandler usinguseStackSwitchApi().activatePage("edit", id) - When
rowActionPropistrue: adds anonRowClickprop to allow parent components to implement needed action
- When
-
45163f1: Grid: Enable client side filter and sort when non paging api is used
@comet/site-react@8.17.0
Minor Changes
-
35c338e: Add HTML anchor props pass-through to
ExternalLinkBlock,PhoneLinkBlock, andEmailLinkBlockThese link block components now accept and pass through standard HTML anchor element attributes (such as
id,className,style,target,rel,aria-*,data-*,onClick, etc.) to the rendered<a>element.Example:
<ExternalLinkBlock data={linkData} className="custom-link" aria-label="Opens external site" data-tracking="external-click"> <span>External Link</span> </ExternalLinkBlock>
8.16.0
@comet/admin@8.16.0
Minor Changes
-
472b496: useDataGridRemote: store sort/filter/paging state additionally to query-param in local state and fall back to it if the query-param is lost
Avoids losing grid state, for instance, when opening an EditDialog that creates its own sub-route.
@comet/api-generator@8.16.0
Minor Changes
- 9ce5bb4: Add optional paging. It is now possible to create a non-paginated list query using @CrudGenerator paging=false option. Use with care.
8.15.0
@comet/admin@8.15.0
Minor Changes
- 39a9bb0: Add support for non-paginated apis in useDataGridExcelExport
- 5b52998: Add tooltip for childless items in closed
MainNavigation
Patch Changes
- cc96333: Fix FinalForm to forward submissionErrors (return from submit handler) correctly
- 180d1e3: Fix required validation for
AsyncAutocompleteFieldwith multiple select - f7b9de9: Fix DataGrid singleSelect filter height to prevent autocomplete values from being truncated
- 0c2435a: Hide
filesInfoTextfrom FileSelect
@comet/admin-generator@8.15.0
Minor Changes
- 82ff4c2: Form field boolean: use
labelas field label (before: checkbox label) and add newcheckboxLabeloption - 14f9ef0: Add support for
<FormattedMessage />in staticSelect values label - 39a9bb0: Make paging conditional in grid generation: only add paging args (
offset,limit) and paging return (totalCount, nestednodes) when the GQL schema query returns a paginated type - cc96333: Add support for custom error responses in update and create mutation and show it in form as submission error
Patch Changes
- 33ac500: Use the GraphQL schema scope type in generated grids when scope comes from context.
- 47ed8cf: Only emit grid sort variables and helpers when the schema supports sorting.
@comet/cms-admin@8.15.0
Minor Changes
- 9333e9c: Readd "Start impersonation" button to UserGrid
Patch Changes
-
2bbb9c1: Fix scope not switching when impersonating a user
Previously, the
ContentScopeProviderblindly restored the scope from localStorage, which could redirect impersonated users to scopes they don't have access to.Now, the stored scope is validated against the user's allowed scopes before being applied. If the stored scope is not allowed, it is cleared from localStorage and the default scope is used instead.
Additionally, the
NODE_ENVguard on persisting the selected scope to localStorage is removed so scope persistence is also done locally again.
@comet/api-generator@8.15.0
Minor Changes
-
cc96333: Add support for custom error responses in update and create mutation and show it in form as submission error
-
0b266f4: Add support for hooksService that allows injecting a custom service into update/create mutation for custom validation logic
Usage example:
export class ProductService implements CrudGeneratorHooksService { async validateCreateInput(input: ProductInput, options: { currentUser: CurrentUser, scope: Scope, args: { department: string } }): Promise<void> { //add custom validation logic here } async validateUpdateInput(input: ProductInput, options: { currentUser: CurrentUser, entity: Product }): Promise<void> { //add custom validation logic here } } @CrudGenerator({ .... hooksService: ProductService }) class Products ...
@comet/brevo-api@8.15.0
Patch Changes
- 317ca97: Fix email campaigns getting stuck in broken state when scheduled in the past
- Replace
@MinDate(new Date())with@MinDate(() => new Date())to evaluate validation at runtime instead of class definition time - Check actual campaign status from Brevo before blocking updates to past-scheduled campaigns
- Only block updates if campaign has actually been sent (not just scheduled in the past)
- Automatically sync local campaign state with Brevo's actual state
- Replace
@comet/cli@8.15.0
Minor Changes
-
7740f1e: Support 1Password references in site configs
Allows referencing secrets stored in 1Password directly in the site config using the
{{ op://... }}syntax. For example:export default ((env) => { return { // ,,, apiKey: `{{ op://example-project-prod/api-key/password }}`, }; }) satisfies GetSiteConfig;
They are then replaced with the actual values by
inject-site-configs.
8.14.0
@comet/admin@8.14.0
Minor Changes
- f31b52e: Add FinalFormDebug component to display React Final Form state for debugging purposes
- d0a7c96: Automatically hide the
MasterMenuandAppHeaderMenuButtonif only one menu item is available
Patch Changes
- 5075f7a: Render
ToolbarBackButtonas a link for improved accessibility
@comet/admin-generator@8.14.0
Patch Changes
- 540f8c8: Form: Use scope type from gql schema when using scope from context
@comet/cms-admin@8.14.0
Minor Changes
- d0a7c96: Automatically hide the
MasterMenuandAppHeaderMenuButtonif only one menu item is available
@comet/cms-api@8.14.0
Minor Changes
-
736e4ae: Add
@AffectedScopedecorator
@comet/eslint-config@8.14.0
Minor Changes
- af265a8: Clarify
next/imageimport restriction in@comet/eslint-config/nextjs.js
Patch Changes
- 3d0af69: Fix extending Next.js' ESLint config in
@comet/eslint-config/nextjs.js
@comet/mail-react@8.14.0
Minor Changes
- 57a7c95: Re-export all components from
@faire/mjml-reactand remove it as apeerDependency
8.13.0
@comet/admin@8.13.0
Patch Changes
- 60ecc0a: Store open state of
MainNavigationin local storage and restore it on page load - dbf8774: Don't open the mobile
MainNavigationwhen resizing the window to a smaller width
@comet/admin-generator@8.13.0
Minor Changes
- 94abd9b: Add initialValuesAsProp config to generate a initialValues prop for the form that allows injecting dynamic initialValues
@comet/cms-admin@8.13.0
Minor Changes
- 6b0b088: Allow UserService to implement getAccountUrl() which provides a "My Account" link in the UserHeaderItem
Patch Changes
- 60ecc0a: Store open state of
MainNavigationin local storage and restore it on page load - 5cfa88d: Fix renaming of DAM folders
@comet/api-generator@8.13.0
Patch Changes
- 5e8a5c5: Fix resolver and DTO for nested OneToMany relations
@comet/cms-api@8.13.0
Minor Changes
-
6b0b088: Allow UserService to implement getAccountUrl() which provides a "My Account" link in the UserHeaderItem
-
05638ed:
MailerService.sendMail()now automatically creates a plaintext version from the HTML contentWhen the params passed to
sendMail()do not include atextproperty but do include ahtmlproperty, a plaintext version will be automatically generated based on the HTML content.
@comet/site-react@8.13.0
Patch Changes
- 9f5c4e6: Fix height of DamVideoBlock when fill prop is set