@neo4j-ndl/react
Version:
React implementation of Neo4j Design System
188 lines (155 loc) • 5.4 kB
Markdown
# IconButtonArrayComponent
Import: `import { IconButtonArrayComponent } from '@neo4j-ndl/react'`
## Props
### IconButtonArrayComponent
| Prop | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `as` | `ElementType<any, keyof IntrinsicElements>` | | | An override of the default HTML tag of the root of the component. Can also be another React component. |
| `children` | `ReactNode` | ✅ | | Content displayed in the icon button array |
| `isFloating` | `boolean` | | `false` | Whether the icon button array is floating |
| `orientation` | `'horizontal' \| 'vertical'` | | `horizontal` | Orientation of the icon button array |
| `ref` | `any` | | | A ref to apply to the root element. |
| `size` | `'large' \| 'medium' \| 'small'` | | `medium` | Size of the icon button array |
### IconButtonArray.CollapsibleButtonWrapper
| Prop | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `children` | `ReactElement<CleanIconButtonButtonProps & { as?: ElementType<any, keyof IntrinsicElements>; } & BaseProps<ElementType<any, keyof IntrinsicElements>>, string \| JSXElementConstructor<...>> \| ReactElement<...>[]` | ✅ | | Icon buttons to be displayed in the collapsible button wrapper |
## Examples
### Collapsible
```tsx
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
import { CleanIconButton, IconButtonArray } from '@neo4j-ndl/react';
import {
FunnelIconOutline,
MagnifyingGlassIconOutline,
PencilIconOutline,
UserCircleIconOutline,
} from '@neo4j-ndl/react/icons';
const Component = () => {
return (
<IconButtonArray orientation="horizontal" size="medium">
<CleanIconButton description="Search">
<MagnifyingGlassIconOutline />
</CleanIconButton>
<CleanIconButton description="Filter">
<FunnelIconOutline />
</CleanIconButton>
<IconButtonArray.CollapsibleButtonWrapper>
<CleanIconButton description="User">
<UserCircleIconOutline />
</CleanIconButton>
<CleanIconButton description="Edit">
<PencilIconOutline />
</CleanIconButton>
</IconButtonArray.CollapsibleButtonWrapper>
</IconButtonArray>
);
};
export default Component;
```
### Floating
```tsx
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
import { CleanIconButton, IconButtonArray } from '@neo4j-ndl/react';
import {
FunnelIconOutline,
MagnifyingGlassIconOutline,
} from '@neo4j-ndl/react/icons';
const Component = () => {
return (
<IconButtonArray orientation="horizontal" isFloating={true} size="medium">
<CleanIconButton description="Search">
<MagnifyingGlassIconOutline />
</CleanIconButton>
<CleanIconButton description="Filter">
<FunnelIconOutline />
</CleanIconButton>
</IconButtonArray>
);
};
export default Component;
```
### Horizontal
```tsx
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
import { CleanIconButton, IconButtonArray } from '@neo4j-ndl/react';
import {
FunnelIconOutline,
MagnifyingGlassIconOutline,
} from '@neo4j-ndl/react/icons';
const Component = () => {
return (
<IconButtonArray orientation="horizontal" size="medium">
<CleanIconButton description="Search">
<MagnifyingGlassIconOutline />
</CleanIconButton>
<CleanIconButton description="Filter">
<FunnelIconOutline />
</CleanIconButton>
</IconButtonArray>
);
};
export default Component;
```
### Sizes
```tsx
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
import { CleanIconButton, IconButtonArray } from '@neo4j-ndl/react';
import {
FunnelIconOutline,
MagnifyingGlassIconOutline,
} from '@neo4j-ndl/react/icons';
const Component = () => {
return (
<div className="n-flex n-items-start n-gap-token-16">
<IconButtonArray orientation="horizontal" size="small">
<CleanIconButton description="Search">
<MagnifyingGlassIconOutline />
</CleanIconButton>
<CleanIconButton description="Filter">
<FunnelIconOutline />
</CleanIconButton>
</IconButtonArray>
<IconButtonArray orientation="horizontal" size="medium">
<CleanIconButton description="Search">
<MagnifyingGlassIconOutline />
</CleanIconButton>
<CleanIconButton description="Filter">
<FunnelIconOutline />
</CleanIconButton>
</IconButtonArray>
<IconButtonArray orientation="horizontal" size="large">
<CleanIconButton description="Search">
<MagnifyingGlassIconOutline />
</CleanIconButton>
<CleanIconButton description="Filter">
<FunnelIconOutline />
</CleanIconButton>
</IconButtonArray>
</div>
);
};
export default Component;
```
### Vertical
```tsx
import '@neo4j-ndl/base/lib/neo4j-ds-styles.css';
import { CleanIconButton, IconButtonArray } from '@neo4j-ndl/react';
import {
FunnelIconOutline,
MagnifyingGlassIconOutline,
} from '@neo4j-ndl/react/icons';
const Component = () => {
return (
<IconButtonArray orientation="vertical" size="medium">
<CleanIconButton description="Search">
<MagnifyingGlassIconOutline />
</CleanIconButton>
<CleanIconButton description="Filter">
<FunnelIconOutline />
</CleanIconButton>
</IconButtonArray>
);
};
export default Component;
```