# Roadmap

> What slotsmith ships today and what is planned next, such as a spreadsheet mode for the data table. Unreleased changes are listed when there are any.

The roadmap shows where slotsmith stands: what is planned and what already ships, plus any changes merged and waiting for the next release. Planned items come from the author and from `TODO` tags in the library's source, and have no dates. To ask for something else, [open an issue](https://github.com/tmzm/slotsmith/issues/new).

## In progress

In the repository and waiting for the next release. [The changelog](https://slotsmith.dev/changelog/#unreleased) has the same notes.

- Each item in the shadcn/ui registry now installs a ready component next to its parts (`<DatePicker />` from `@/components/slotsmith/date-picker`), and the new `@slotsmith/provider` item applies all four adapters to the app through one `SlotsmithProvider`; see [Adapters](https://slotsmith.dev/components/date-picker/adapters/).
- The ready-made date-picker and autocomplete adapters lay out the calendar grid and the field themselves, so they hold together without slotsmith's stylesheet: Tailwind classes in shadcn/ui, `sx` in MUI, `css` in Chakra UI and a scoped style in Ant Design and Radix Themes. Copy them again from `slotsmith-ai`.

## Planned

An item with a `TODO` tag is marked in the library's source; the others are the author's plans. None has a date.

- **Hijri and Persian calendars in the date picker**: The date picker draws a Gregorian grid in every language. Hijri and Persian grids are planned. [How it works today](https://slotsmith.dev/languages/#calendars). `TODO(calendars)`
- **Locales that cross the server and client boundary**: A locale pack holds functions, so a server component cannot pass one to a client component. A serialisable form of a locale is planned. [How it works today](https://slotsmith.dev/languages/#nextjs). `TODO(server-locales)`

## Shipped

Published on npm. Each item links to its page and live demos.

- [Data table](https://slotsmith.dev/components/data-table/): A table with sorting, selection, pagination, server data, tree rows, virtual rows and row reorder.
- [Autocomplete](https://slotsmith.dev/components/autocomplete/): Combobox and select in one component.
- [Date picker](https://slotsmith.dev/components/date-picker/): A date picker for single days, ranges and multiple dates, with bounds, blocked days and presets.
- [File uploader](https://slotsmith.dev/components/file-uploader/): A file picker with uploads, tiles, validation, record editing and virtual lists.
- [Spreadsheet mode for the data table](https://slotsmith.dev/components/data-table/guides/spreadsheet/): Cells that are editors (text, numbers, a select, a date picker, a checkbox), selected, pasted, filled and undone like a spreadsheet, with `value` and `onValueChange`.
- [Data table rendering performance](https://slotsmith.dev/components/data-table/guides/spreadsheet/#storing-the-rows): A row re-renders only when its own data or state changes: editing one cell re-renders one row, and moving the selection re-renders only the cells it touches.
- [Row reorder while a column is sorted](https://slotsmith.dev/components/data-table/guides/row-reorder/#sorting-and-custom-rows): A drop while a column is sorted keeps the order on screen, with the row moved, and clears the sort; `reorderWhileSorted="block"` disables dragging while sorted instead.
- [Shared tokens and themes](https://slotsmith.dev/theming/): One set of `--ss-*` tokens restyles every component, and six themes ship with a light and a dark palette each.
- [Locale packs and right-to-left](https://slotsmith.dev/languages/): Locale packs translate every label, format numbers and plurals, and set the direction.
- [Adapters and the MCP server](https://slotsmith.dev/ai-tools/): `slotsmith-ai` copies an adapter for shadcn/ui, MUI, Chakra UI, Ant Design or Radix Themes into your project, and gives coding agents the real API.
