> ## Documentation Index
> Fetch the complete documentation index at: https://sidedish.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Layout Components

> Mix and match these building blocks to build your pages

## All items

All items share these properties:

<ParamField path="className" type="string">
  CSS class name to enable styling
</ParamField>

<ParamField path="field" type="string">
  Connect to a dynamic field of a product. **Only relevant for product pages.**
</ParamField>

<ParamField path="defaults" type="any">
  If the dynamic field is not set, use this as the default value.
</ParamField>

<ParamField path="emptyItem" type="ITEM">
  If the dynamic field is empty, don't show the item, but show this instead.
</ParamField>

### Stack

Represents a container `<div>` and is used as a parent for other items.

<ParamField path="items" type="ITEM[]" required>
  The items to be rendered inside the stack.
</ParamField>

<ParamField path="hideOnSearch" type="boolean">
  Whether to hide the stack when a search is made.
</ParamField>

<ParamField path="requiresAuth" type="boolean">
  Whether to hide the stack when the user is not authenticated.
</ParamField>

<ParamField path="withPurchase" type="boolean">
  Whether to show the stack only when the user has purchased the product or only when the user has not made a purchase.
  **Only relevant for product pages.**
</ParamField>

<ParamField path="withData" type="string">
  Only show the stack when data with this key was transferred as part of a purchase. **Only relevant for product pages.**
</ParamField>

<ParamField path="ifField" type="string">
  Only show if the dynamic field of this key is set. **Only relevant for product pages.**
</ParamField>

### Text

Renders text

<ParamField path="text" type="string" required>
  The text to be rendered. Required only if `field` is not set.
</ParamField>

### HTML

Represents HTML

<ParamField path="html" type="string" required>
  Placeholder text for the search bar. Required only if `field` is not set.
</ParamField>

### Image

Renders an image

<ParamField path="src" type="string" required>
  The URL of the image. Required only if `field` is not set.
</ParamField>

<ParamField path="title" type="string">
  The alt text of the image.
</ParamField>

<ParamField path="height" type="number">
  The height of the image, in pixels.
</ParamField>

<ParamField path="width" type="number">
  The width of the image, in pixels.
</ParamField>

### Video

Renders a video player

<ParamField path="src" type="string" required>
  The URL of the video. Required only if `field` is not set.
</ParamField>

<ParamField path="title" type="string">
  The alt text of the video.
</ParamField>

<ParamField path="poster" type="string">
  The URL of the poster image.
</ParamField>

<ParamField path="autoplay" type="boolean">
  Whether to autoplay the video. Autoplay is only allowed when muted.
</ParamField>

<ParamField path="loop" type="boolean">
  Whether to loop the video.
</ParamField>

<ParamField path="height" type="number">
  The height of the video, in pixels.
</ParamField>

<ParamField path="width" type="number">
  The width of the video, in pixels.
</ParamField>

### Link

Represents a link

<ParamField path="label" type="string" required>
  The text to be rendered. Required only if `field` is not set.
</ParamField>

<ParamField path="href" type="string" required>
  The url to link. Required only if `field` is not set.
</ParamField>

<ParamField path="target" type="string">
  The target of the link.
</ParamField>

<ParamField path="icon" type="LucideIcon">
  The icon to be rendered next to the text. Use from the lucide icon library ([https://lucide.dev/icons](https://lucide.dev/icons)) - like LuBox
</ParamField>

### List Item

Represents a value of an item in a list. Can only be used with a dynamic field of type `List`.

### Gallery

Represents a gallery of images.

<ParamField path="items" type="MediaItem[]" required>
  The items, either image or video. Required only if `field` is not set.
</ParamField>

<ParamField path="itemClassName" type="string">
  CSS class name to enable styling
</ParamField>

<ParamField path="thumbClassName" type="string">
  CSS class name to enable styling
</ParamField>

<ParamField path="thumbHeight" type="number" required>
  The height of the thumbnails, in pixels. Required for optimization purposes.
</ParamField>

<ParamField path="thumbWidth" type="number" required>
  The width of the thumbnails, in pixels. Required for optimization purposes.
</ParamField>

<ParamField path="withCaption" type="boolean">
  Wether to render captions for the items.
</ParamField>

<ParamField path="captionClassName" type="string">
  CSS class name to enable styling
</ParamField>

<ParamField path="withControls" type="boolean">
  Wether to render controls for carousel.
</ParamField>

### Iterator

Iterates over a list of items. Can only be used with a dynamic field of array.

<ParamField path="itemsType" type="ITEM" required>
  Item type. How to render the items.
</ParamField>

<ParamField path="itemProps" type="Object">
  Any props to pass to the item.
</ParamField>

<ParamField path="limit" type="number">
  Whether to limit the number of items to show.
</ParamField>

### Toggle

Represents a toggle.

### Search bar

Represents a search bar.

<ParamField path="placeholder" type="string">
  Placeholder text for the search bar.
</ParamField>

<ParamField path="classNames">
  CSS class names to enable styling
  Object with these keys: `form`, `input`, `reset`, `submit`, `submitIcon`, `resetIcon`, `loadingIndicator`.
</ParamField>

### Search results

Displays the search results.

<ParamField path="columns" type="number">
  Number of columns to show.
</ParamField>

<ParamField path="columnClassName" type="string">
  CSS class name to enable styling
</ParamField>

<ParamField path="hitsPerPage" type="number">
  Number of results to show per page.
</ParamField>

### Products

Renders a predefined list of products.

### Product card

Renders a product card.

### Filter option

by collection(any including category, keywords) / by custom field / by other fields
view in links, dropwdown,
allow multiple

### Tabs

Renders tabs, that the user can navigate between.

### Accordion

Renders an accordion like component, with header and hidden content that toggles on click.

### Reviews box

Renders a dynamic content of reviews. **Only relevant for product pages.**
