Files
twenty/packages/twenty-shared/src/application/index.ts
T
Raphaël Bosi bd03073b6d [FRONT COMPONENTS] Declare command menu items in front components (#18047)
## Description

- Adds support for declaring command menu items directly within
`defineFrontComponent` via an optional command config property
- Introduces a new `CommandMenuItemManifest` type in twenty-shared and
wires it through the manifest build pipeline

## Example Of usage

```tsx
import { defineFrontComponent } from "twenty-sdk";

const TestAction = () => {
  return <div>Test Action</div>;
};

export default defineFrontComponent({
  universalIdentifier: "6c289461-0007-4a62-a99f-69e5c11a4ce7",
  name: "test-action",
  description: "Test Action",
  component: TestAction,
  command: {
    universalIdentifier: "c07df864-495f-46f3-9f5b-9d3ce2589e9b",
    label: "Run My Action",
    icon: "IconBolt",
    isPinned: false,
  },
});

```

## Video QA


https://github.com/user-attachments/assets/f910fc6a-44a9-45d1-87c5-f0ce64bb3878
2026-02-19 15:23:46 +01:00

63 lines
2.1 KiB
TypeScript

/*
* _____ _
*|_ _|_ _____ _ __ | |_ _ _
* | | \ \ /\ / / _ \ '_ \| __| | | | Auto-generated file
* | | \ V V / __/ | | | |_| |_| | Any edits to this will be overridden
* |_| \_/\_/ \___|_| |_|\__|\__, |
* |___/
*/
export type {
ApplicationMarketplaceData,
ApplicationManifest,
} from './applicationType';
export type { ApplicationVariables } from './applicationVariablesType';
export type { AssetManifest } from './assetManifestType';
export { ASSETS_DIR } from './constants/AssetDirectory';
export { DEFAULT_API_KEY_NAME } from './constants/DefaultApiKeyName';
export { DEFAULT_API_URL_NAME } from './constants/DefaultApiUrlName';
export { GENERATED_DIR } from './constants/GeneratedDirectory';
export { NODE_ESM_CJS_BANNER } from './constants/NodeEsmCjsBanner';
export { OUTPUT_DIR } from './constants/OutputDirectory';
export { SyncableEntity } from './enums/syncable-entities.enum';
export type {
RegularFieldManifest,
RelationFieldManifest,
FieldManifest,
} from './fieldManifestType';
export type {
CommandMenuItemManifest,
FrontComponentCommandManifest,
FrontComponentManifest,
} from './frontComponentManifestType';
export type {
LogicFunctionManifest,
CronTriggerSettings,
DatabaseEventTriggerSettings,
HttpRouteTriggerSettings,
} from './logicFunctionManifestType';
export type { Manifest } from './manifestType';
export type { NavigationMenuItemManifest } from './navigationMenuItemManifestType';
export type { ObjectFieldManifest } from './objectFieldManifest.type';
export type { ObjectManifest } from './objectManifestType';
export type {
PageLayoutWidgetManifest,
PageLayoutTabManifest,
PageLayoutManifest,
} from './pageLayoutManifestType';
export type {
ObjectPermissionManifest,
FieldPermissionManifest,
RoleManifest,
} from './roleManifestType';
export type { SyncableEntityOptions } from './syncableEntityOptionsType';
export type {
ViewManifestFilterValue,
ViewFieldManifest,
ViewFilterManifest,
ViewFilterGroupManifest,
ViewGroupManifest,
ViewFieldGroupManifest,
ViewManifest,
} from './viewManifestType';