webiny-admin-cms-catalog

$npx mdskill add webiny/webiny-js/webiny-admin-cms-catalog

Access 62 CMS admin abstractions for content management.

  • Enables agents to manipulate content entries and models.
  • Depends on webiny-api context and headless CMS types.
  • Selects specific abstractions like CmsContentEntry or CmsModel.
  • Returns typed interfaces and import paths for code generation.
SKILL.md
.github/skills/webiny-admin-cms-catalogView on GitHub ↗
---
name: webiny-admin-cms-catalog
context: webiny-api
description: >
  admin/cms — 62 abstractions.
---

# admin/cms

## How to Use

1. Find the abstraction you need below
2. Read the source file to get the exact interface and types
3. Import: `import { Name } from "<importPath>";`

## Abstractions

---

**Name:** `CmsContentEntry`
**Kind:** type
**Import:** `import type { CmsContentEntry } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms-common/types/index.ts`

---

**Name:** `CmsContentFormRenderer`
**Import:** `import { CmsContentFormRenderer } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/legacyPluginAdapters/CmsContentFormRenderer.tsx`

---

**Name:** `CmsIdentity`
**Kind:** type
**Import:** `import type { CmsIdentity } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms-common/types/index.ts`

---

**Name:** `CmsModel`
**Kind:** type
**Import:** `import type { CmsModel } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms-common/types/index.ts`

---

**Name:** `CmsModelField`
**Kind:** type
**Import:** `import type { CmsModelField } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms-common/types/index.ts`

---

**Name:** `CmsModelFieldRenderer`
**Import:** `import { CmsModelFieldRenderer } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/legacyPluginAdapters/CmsModelFieldRenderer.tsx`

---

**Name:** `CmsModelFieldType`
**Import:** `import { CmsModelFieldType } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/legacyPluginAdapters/CmsModelFieldType.tsx`

---

**Name:** `CmsModelFieldValidator`
**Import:** `import { CmsModelFieldValidator } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/legacyPluginAdapters/CmsModelFieldValidator.tsx`

---

**Name:** `CmsModelLayoutField`
**Kind:** type
**Import:** `import type { CmsModelLayoutField } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms-common/types/index.ts`

---

**Name:** `CmsModelLayoutFieldRenderer`
**Import:** `import { CmsModelLayoutFieldRenderer } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/legacyPluginAdapters/CmsModelLayoutFieldRenderer.tsx`

---

**Name:** `CmsModelLayoutFieldType`
**Import:** `import { CmsModelLayoutFieldType } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/legacyPluginAdapters/CmsModelLayoutFieldType.tsx`

---

**Name:** `ContentEntry`
**Import:** `import { ContentEntry } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/views/contentEntries/ContentEntry.tsx`

---

**Name:** `ContentEntryEditorConfig`
**Import:** `import { ContentEntryEditorConfig } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/config/contentEntries/index.ts`

---

**Name:** `ContentEntryForm`
**Import:** `import { ContentEntryForm } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/components/ContentEntryForm/ContentEntryForm.tsx`

---

**Name:** `ContentEntryFormMeta`
**Import:** `import { ContentEntryFormMeta } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntryHeaderLeft.tsx`

---

**Name:** `ContentEntryFormPreview`
**Import:** `import { ContentEntryFormPreview } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/components/ContentEntryForm/ContentEntryFormPreview.tsx`

---

**Name:** `ContentEntryFormTitle`
**Import:** `import { ContentEntryFormTitle } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/views/contentEntries/ContentEntry/FullScreenContentEntry/FullScreenContentEntryHeaderLeft.tsx`

---

**Name:** `ContentEntryListConfig`
**Import:** `import { ContentEntryListConfig } from "webiny/admin/cms/entry/list"`
**Source:** `@webiny/app-headless-cms/admin/config/contentEntries/index.ts`

---

**Name:** `DefaultLayout`
**Import:** `import { DefaultLayout } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/components/ContentEntryForm/DefaultLayout.tsx`

---

**Name:** `Divider`
**Import:** `import { Divider } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `DropDown`
**Import:** `import { DropDown } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `DropDownItem`
**Import:** `import { DropDownItem } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `DynamicZoneContainer`
**Import:** `import { DynamicZoneContainer } from "webiny/admin/cms/field-renderers/dynamic-zone"`
**Source:** `@webiny/app-headless-cms/admin/plugins/fieldRenderers/dynamicZone/index.tsx`

---

**Name:** `getNodeFromSelection`
**Import:** `import { getNodeFromSelection } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `Header`
**Import:** `import { Header } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/components/ContentEntryForm/Header/index.tsx`

---

**Name:** `IsModelPublishable`
**Import:** `import { IsModelPublishable } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/admin/components/IsModelPublishable.tsx`

---

**Name:** `Klass`
**Kind:** type
**Import:** `import type { Klass } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `LexicalEditorConfig`
**Import:** `import { LexicalEditorConfig } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/app-headless-cms/admin/lexicalConfig/LexicalEditorConfig.tsx`

---

**Name:** `LexicalHtmlRenderer`
**Import:** `import { LexicalHtmlRenderer } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `LexicalNode`
**Kind:** type
**Import:** `import type { LexicalNode } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `MultiValueContainer`
**Import:** `import { MultiValueContainer } from "webiny/admin/cms/field-renderers/dynamic-zone"`
**Source:** `@webiny/app-headless-cms/admin/plugins/fieldRenderers/dynamicZone/index.tsx`

---

**Name:** `MultiValueItem`
**Import:** `import { MultiValueItem } from "webiny/admin/cms/field-renderers/dynamic-zone"`
**Source:** `@webiny/app-headless-cms/admin/plugins/fieldRenderers/dynamicZone/index.tsx`

---

**Name:** `MultiValueItemContainer`
**Import:** `import { MultiValueItemContainer } from "webiny/admin/cms/field-renderers/dynamic-zone"`
**Source:** `@webiny/app-headless-cms/admin/plugins/fieldRenderers/dynamicZone/index.tsx`

---

**Name:** `MultiValueItemContainer`
**Import:** `import { MultiValueItemContainer } from "webiny/admin/cms/field-renderers/object"`
**Source:** `@webiny/app-headless-cms/admin/plugins/fieldRenderers/object/MultiValueItemContainer.tsx`

---

**Name:** `PermissionsEditor`
**Import:** `import { PermissionsEditor } from "webiny/admin/cms/model"`
**Source:** `@webiny/app-headless-cms/admin/components/FieldEditor/EditFieldDialog/PermissionsEditor/PermissionsEditor.tsx`

---

**Name:** `Routes`
**Import:** `import { Routes } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/routes.ts`

---

**Name:** `RulesEditor`
**Import:** `import { RulesEditor } from "webiny/admin/cms/model"`
**Source:** `@webiny/app-headless-cms/admin/components/FieldEditor/EditFieldDialog/RulesEditor/index.ts`

---

**Name:** `SingletonContentEntry`
**Import:** `import { SingletonContentEntry } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/views/contentEntries/ContentEntry/SingletonContentEntry.tsx`

---

**Name:** `SingleValueItemContainer`
**Import:** `import { SingleValueItemContainer } from "webiny/admin/cms/field-renderers/dynamic-zone"`
**Source:** `@webiny/app-headless-cms/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.tsx`

---

**Name:** `TemplateGallery`
**Import:** `import { TemplateGallery } from "webiny/admin/cms/field-renderers/dynamic-zone"`
**Source:** `@webiny/app-headless-cms/admin/plugins/fieldRenderers/dynamicZone/index.tsx`
**Description:** We're wrapping each component with `withShouldRender`, because they're all decoratable, and `withShouldRender` attaches a
conditional decorator, which optionally takes a `modelIds` prop, so you can control on which models that component will be decorated.

---

**Name:** `useCms`
**Import:** `import { useCms } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/admin/hooks/useCms.ts`

---

**Name:** `useContentEntriesList`
**Import:** `import { useContentEntriesList } from "webiny/admin/cms/entry/list"`
**Source:** `@webiny/app-headless-cms/admin/hooks/index.ts`

---

**Name:** `useContentEntry`
**Import:** `import { useContentEntry } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/views/contentEntries/hooks/index.ts`

---

**Name:** `useContentEntryForm`
**Import:** `import { useContentEntryForm } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/components/ContentEntryForm/useContentEntryForm.ts`

---

**Name:** `useCurrentElement`
**Import:** `import { useCurrentElement } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `useCurrentSelection`
**Import:** `import { useCurrentSelection } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `useDeriveValueFromSelection`
**Import:** `import { useDeriveValueFromSelection } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `useFieldAccessControlRules`
**Import:** `import { useFieldAccessControlRules } from "webiny/admin/cms/model"`
**Source:** `@webiny/app-headless-cms-common/Fields/index.ts`
**Description:** Hook that evaluates access control rules for the current identity.
Does not require `bindParentName` — only identity-based permissions.

---

**Name:** `useFieldEffectiveRules`
**Import:** `import { useFieldEffectiveRules } from "webiny/admin/cms/model"`
**Source:** `@webiny/app-headless-cms-common/Fields/index.ts`
**Description:** Composes useParentRules and useFieldRules into a single hook
that returns the effective (intersected) rules.

---

**Name:** `useFontColorPicker`
**Import:** `import { useFontColorPicker } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `useIsMounted`
**Import:** `import { useIsMounted } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `useLazyQuery`
**Import:** `import { useLazyQuery } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/admin/hooks/useLazyQuery.ts`

---

**Name:** `useLexicalEditorConfig`
**Import:** `import { useLexicalEditorConfig } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `useModel`
**Import:** `import { useModel } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/admin/components/ModelProvider/index.ts`
**Description:** Get model from the current context.

---

**Name:** `useMutation`
**Import:** `import { useMutation } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/admin/hooks/useMutation.ts`

---

**Name:** `usePermission`
**Import:** `import { usePermission } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/admin/hooks/usePermission.ts`

---

**Name:** `useQuery`
**Import:** `import { useQuery } from "webiny/admin/cms"`
**Source:** `@webiny/app-headless-cms/admin/hooks/useQuery.ts`

---

**Name:** `useRichTextEditor`
**Import:** `import { useRichTextEditor } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `useSingletonContentEntry`
**Import:** `import { useSingletonContentEntry } from "webiny/admin/cms/entry/editor"`
**Source:** `@webiny/app-headless-cms/admin/views/contentEntries/hooks/useSingletonContentEntry.ts`

---

**Name:** `useTemplate`
**Import:** `import { useTemplate } from "webiny/admin/cms/field-renderers/dynamic-zone"`
**Source:** `@webiny/app-headless-cms/admin/plugins/fieldRenderers/dynamicZone/index.tsx`

---

**Name:** `useTextAlignmentAction`
**Import:** `import { useTextAlignmentAction } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---

**Name:** `useTypographyAction`
**Import:** `import { useTypographyAction } from "webiny/admin/cms/lexical"`
**Source:** `@webiny/lexical-editor/exports/admin/lexical.ts`

---
More from webiny/webiny-js