--- title: Extension Components sidebar_label: Overview sidebar_position: 1 --- # Extension Components These UI components are available to Superset extension developers through the `@apache-superset/core/ui` package. They provide a consistent look and feel with the rest of Superset and are designed to be used in extension panels, views, and other UI elements. ## Available Components - [Alert](./alert) ## Usage All components are exported from the `@apache-superset/core/ui` package: ```tsx import { Alert } from '@apache-superset/core/ui'; export function MyExtensionPanel() { return ( Welcome to my extension! ); } ``` ## Adding New Components Components in `@apache-superset/core/ui` are automatically documented here. To add a new extension component: 1. Add the component to `superset-frontend/packages/superset-core/src/ui/components/` 2. Export it from `superset-frontend/packages/superset-core/src/ui/components/index.ts` 3. Create a Storybook story with an `Interactive` export: ```tsx export default { title: 'Extension Components/MyComponent', component: MyComponent, parameters: { docs: { description: { component: 'Description of the component...', }, }, }, }; export const InteractiveMyComponent = (args) => ; InteractiveMyComponent.args = { variant: 'primary', disabled: false, }; InteractiveMyComponent.argTypes = { variant: { control: { type: 'select' }, options: ['primary', 'secondary'], }, disabled: { control: { type: 'boolean' }, }, }; ``` 4. Run `yarn start` in `docs/` - the page generates automatically! ## Interactive Documentation For interactive examples with controls, visit the [Storybook](/storybook/?path=/docs/extension-components--docs).