Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
db41114
fix: [docs] sync props tables with components
Shreyag02 Oct 12, 2026
eb767c2
fix: [docs] list the props each component declares
Shreyag02 Oct 14, 2026
ea3d801
fix: [docs] correct required props, defaults and examples
Shreyag02 Oct 15, 2026
ab4d998
fix: [docs] document button style, search placeholder and select details
Shreyag02 Oct 15, 2026
5aab562
fix: [docs] remove extra JSDoc tags and wording changes
Shreyag02 Oct 15, 2026
dfb3fb2
fix: [docs] correct sidepanel, empty state, tooltip and preview card …
Shreyag02 Oct 15, 2026
87a60c0
fix: [docs] correct callback arguments, field error match, message sl…
Shreyag02 Oct 15, 2026
55cd58e
fix: [docs] document drawer, popover and code block parts
Shreyag02 Oct 15, 2026
420abc5
fix: [indicator] default the fallback label to the accent variant
Shreyag02 Oct 16, 2026
c912d8a
fix: [docs] correct defaults, types and descriptions in props tables
Shreyag02 Oct 16, 2026
2d06e53
fix: [docs] describe null for defaultFilterValue
Shreyag02 Oct 16, 2026
c6f7f48
Merge branch 'main' into fix/docs-props-sync
Shreyag02 Oct 19, 2026
3114980
chore: [indicator] move the fallback label fix to its own branch
Shreyag02 Oct 19, 2026
0b8bb93
fix: [docs] fix props tables flagged by the check
Shreyag02 Oct 19, 2026
ed823f8
fix: [indicator, data-view] mark classNames as deprecated
Shreyag02 Oct 19, 2026
a689ce2
fix: [progress] make value optional to match its default
Shreyag02 Oct 19, 2026
7655bbe
feat: [docs] check props tables against component types in ci
Shreyag02 Oct 19, 2026
75945fd
feat: [docs] show each component's changelog from git history
Shreyag02 Oct 19, 2026
293e73e
Merge branch 'main' into fix/docs-props-sync
Shreyag02 Oct 27, 2026
010d3c4
fix: [docs] correct the RangePicker onSelect description
Shreyag02 Oct 28, 2026
64382d6
Merge branch 'main' into fix/docs-props-sync
Shreyag02 Oct 28, 2026
17b2edf
fix: [docs] address review comments on command, editor and the props …
Shreyag02 Oct 28, 2026
1cdbc98
Merge branch 'main' into fix/docs-props-sync
Shreyag02 Oct 29, 2026
319e8fb
chore: [docs] remove the props check and the per-component changelog
Shreyag02 Oct 29, 2026
4ccee72
fix: [docs] correct inherited props notes and two defaults
Shreyag02 Oct 29, 2026
edf64f8
Merge remote-tracking branch 'origin/main' into fix/docs-props-sync
Shreyag02 Oct 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion apps/www/src/content/docs/ai-elements/message/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ Every rendered part carries a stable `data-slot` attribute for [styling and test
| `message-group` | Wrapper around consecutive messages from one sender |
| `message-avatar` | The sender avatar |
| `message-header` | Row above the bubble, for sender name and timestamp |
| `message-content` | The bubble holding the message body |
| `message-content` | Column holding the message bubbles |
| `message-bubble` | The message surface |
| `message-actions` | Action row revealed on the message |
| `message-footer` | Row below the bubble |

Expand Down
2 changes: 2 additions & 0 deletions apps/www/src/content/docs/ai-elements/prompt-input/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,8 @@ The text field, built on `TextArea variant="borderless"`. It grows with its
content up to a max-height cap (override with
`--prompt-input-textarea-max-height`), then scrolls.

- Inherits all TextArea props except `value`, `defaultValue`, `onValueChange`, `variant`, `size` and `rows`

<auto-type-table path="./props.ts" name="PromptInputTextareaProps" />

### Editor
Expand Down
10 changes: 2 additions & 8 deletions apps/www/src/content/docs/components/accordion/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,6 @@ export interface AccordionRootProps<Value = string> {
*/
disabled?: boolean;

/**
* The orientation of the accordion
* @defaultValue "vertical"
*/
orientation?: 'horizontal' | 'vertical';

/**
* Whether to keep the element in the DOM while the panel is closed
* @defaultValue false
Expand All @@ -56,9 +50,9 @@ export interface AccordionRootProps<Value = string> {

export interface AccordionItemProps {
/**
* A unique value for the item
* A unique value for the item. Base UI generates one when it is not set.
*/
value: string;
value?: string;

/**
* Whether the item is disabled
Expand Down
6 changes: 6 additions & 0 deletions apps/www/src/content/docs/components/alert-dialog/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,8 @@ Renders the alert dialog panel overlay.

Renders the alert dialog header section.

- Inherits all Flex props

<auto-type-table path="./props.ts" name="AlertDialogHeaderProps" />

### Title
Expand All @@ -90,6 +92,8 @@ Renders the alert dialog title text.

Renders the main content area of the alert dialog.

- Inherits all Flex props

<auto-type-table path="./props.ts" name="AlertDialogBodyProps" />

### Description
Expand All @@ -108,6 +112,8 @@ Renders the element that opens the alert dialog.

Renders the alert dialog footer section.

- Inherits all Flex props

<auto-type-table path="./props.ts" name="AlertDialogFooterProps" />

### Slots
Expand Down
6 changes: 3 additions & 3 deletions apps/www/src/content/docs/components/breadcrumb/props.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { ReactElement, ReactNode } from 'react';

export interface BreadcrumbItem {
/** Text to display for the item */
label: string;
/** Content of the item, usually its text */
children?: ReactNode;

/** URL for the item link */
href?: string;
Expand Down Expand Up @@ -63,7 +63,7 @@ export interface BreadcrumbProps {
export interface BreadcrumbSeparatorProps {
/**
* Custom separator between items
* @defaultValue "/"
* @defaultValue <ChevronRightIcon />
*/
children?: ReactNode;
/** Custom CSS class names */
Expand Down
3 changes: 3 additions & 0 deletions apps/www/src/content/docs/components/button/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ export type ButtonProps = {
/** Additional CSS class names */
className?: string;

/** Inline styles for the button */
style?: React.CSSProperties;

/**
* Corner radius for this button only. Overrides the theme's `radius`.
* @defaultValue The theme's `radius`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,8 @@ The portaled popover surface. Takes `Popover.Content` props — `side`, `align`,

The typeable date field.

- Inherits all Input props except `value` and `defaultValue`

<auto-type-table path="./props.ts" name="CalendarPreviewInputProps" />

### CalendarPreview.Body
Expand Down Expand Up @@ -213,6 +215,8 @@ Step the view one month.

Restores `defaultDate`, reporting `reason: 'reset'`. Carries `data-restored` while there is nothing to restore.

- Inherits all IconButton props

<auto-type-table path="./props.ts" name="CalendarPreviewResetProps" />

### CalendarPreview.Scales / CalendarPreview.Scale
Expand All @@ -237,6 +241,8 @@ The field label above the input, and the rule between the switcher and the view.

The row below the calendar. A bare string is wrapped in `Text`; anything else renders as given.

- Inherits all Flex props

<auto-type-table path="./props.ts" name="CalendarPreviewFooterProps" />

### useCalendar
Expand Down
2 changes: 1 addition & 1 deletion apps/www/src/content/docs/components/calendar/demo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ export const rangePickerDemo = {
{
name: 'Disabled',
code: `
/* Disabling either input gates the whole picker — the shared popover would otherwise let users rewrite the "disabled" side through the calendar grid. To fix one side, constrain the calendar via \`calendarProps\` instead. */
/* Disabling either input gates the whole picker. The shared popover would otherwise let users rewrite the "disabled" side through the calendar grid. To fix one side, constrain the calendar via \`slotProps.calendar\` instead. */
<RangePicker slotProps={{ startInput: { disabled: true }, endInput: { disabled: true } }} />
`
},
Expand Down
24 changes: 13 additions & 11 deletions apps/www/src/content/docs/components/calendar/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,11 @@ export interface CalendarProps {
}

export interface RangePickerProps {
/**
* Additional CSS class names for the group that holds the start and end inputs. Ignored when `children` is set.
*/
pickerGroupClassName?: string;

/**
* Format for displaying the date. Supports various formats:
* - With slashes: "DD/MM/YYYY", "MM/DD/YYYY", "YYYY/MM/DD"
Expand All @@ -150,24 +155,24 @@ export interface RangePickerProps {
dateFormat?: string;

/**
* Fires on every step of range selection — not only on the completed range.
* Both fields are optional during partial selection; gate on `range.to` if
* you only want completed ranges.
* Fires on each day picked in the calendar. `from` is always set, and `to`
* is set only when the range is complete. Check `range.to` to handle only
* completed ranges.
*/
onSelect?: (range: { from?: Date; to?: Date }) => void;
onSelect?: (range: { from: Date | undefined; to?: Date }) => void;

/** Initial (uncontrolled) date range. */
defaultValue?: { from?: Date; to?: Date };
defaultValue?: { from: Date | undefined; to?: Date };

/** Controlled date range. */
value?: { from?: Date; to?: Date };
value?: { from: Date | undefined; to?: Date };

/**
* Props for each picker slot. When both this and the legacy
* `inputsProps` / `calendarProps` / `popoverProps` are set, `slotProps` wins.
*
* Input event handlers (`onChange`, `onFocus`, `onBlur`, `onKeyUp`) are not
* forwarded — use `onSelect` for value changes.
* The inputs are read-only. RangePicker replaces their `value` and `onClick`.
* Use `onSelect` for value changes.
*/
slotProps?: {
startInput?: InputProps;
Expand Down Expand Up @@ -259,9 +264,6 @@ export interface DatePickerProps {
*/
onErrorChange?: (error: string | undefined) => void;

/** @deprecated Use `slotProps.calendar` instead. */
calendarProps?: CalendarProps;

/**
* Render prop or custom trigger. Pass a function to render a custom trigger
* receiving the formatted `selectedDate` string, or a ReactNode to replace
Expand Down
5 changes: 4 additions & 1 deletion apps/www/src/content/docs/components/callout/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,14 @@ export interface CalloutProps {
onDismiss?: () => void;

/** Text content of the callout */
children?: React.ReactNode;
children: React.ReactNode;

/** Additional CSS class names */
className?: string;

/** Inline styles for the callout */
style?: React.CSSProperties;

/**
* Corner radius for this callout only. Overrides the theme's `radius`.
* @defaultValue The theme's `radius`
Expand Down
6 changes: 3 additions & 3 deletions apps/www/src/content/docs/components/checkbox/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export interface CheckboxProps {
/**
* Event handler called when the state changes
*/
onCheckedChange?: (checked: boolean) => void;
onCheckedChange?: (checked: boolean, eventDetails: unknown) => void;

/**
* When true, the checkbox is in an indeterminate state
Expand All @@ -34,7 +34,7 @@ export interface CheckboxProps {

/**
* When true, the user must tick the checkbox before submitting a form.
* @defaultValue false
* @default the `required` of the surrounding `Field`, otherwise false
*/
required?: boolean;

Expand Down Expand Up @@ -75,7 +75,7 @@ export interface CheckboxGroupProps {
value?: string[];

/** Event handler called when the checked values change. */
onValueChange?: (value: string[], event: Event) => void;
onValueChange?: (value: string[], eventDetails: unknown) => void;

/**
* All checkbox values in the group. Required when using a parent checkbox.
Expand Down
3 changes: 3 additions & 0 deletions apps/www/src/content/docs/components/chip/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ export interface ChipProps {
/** ReactNode to display as an icon after the label */
trailingIcon?: React.ReactNode;

/** Disables the chip and blocks pointer clicks on it */
disabled?: boolean;

/** Content to display inside the chip */
children?: React.ReactNode;

Expand Down
27 changes: 26 additions & 1 deletion apps/www/src/content/docs/components/code-block/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ import { CodeBlock } from '@raystack/apsara'
<CodeBlock.Label />
<CodeBlock.LanguageSelect>
<CodeBlock.LanguageSelectTrigger />
<CodeBlock.LanguageSelectContent>
<CodeBlock.LanguageSelectItem />
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
</CodeBlock.LanguageSelectContent>
</CodeBlock.LanguageSelect>
<CodeBlock.CopyButton />
</CodeBlock.Header>
Expand Down Expand Up @@ -95,6 +98,8 @@ Groups all parts of the code block and manages state.

Renders the optional header section for labels and controls.

- Inherits all Flex props

<auto-type-table path="./props.ts" name="CodeBlockHeaderProps" />

### Content
Expand All @@ -107,24 +112,40 @@ Renders the main content area containing code blocks.

Renders a text label displayed in the header.

- Inherits all Text props

<auto-type-table path="./props.ts" name="CodeBlockLabelProps" />

### LanguageSelect

Renders a language selection dropdown container.
Renders a language selection dropdown container. Set `value`, `defaultValue` and `onValueChange` on the `CodeBlock` root.

- Inherits all Select props for a single selection

<auto-type-table path="./props.ts" name="CodeBlockLanguageSelectProps" />

### LanguageSelectTrigger

Renders the button that opens language selection.

- Inherits all Select.Trigger props

<auto-type-table path="./props.ts" name="CodeBlockLanguageSelectTriggerProps" />

### LanguageSelectContent

Renders the dropdown that lists the languages. It is [`Select.Content`](/docs/components/select) and takes the same props.

### LanguageSelectItem

Renders one language in the dropdown. Selecting it shows the `CodeBlock.Code` with the same `value`, or the same `language` when that block sets no `value`. It is [`Select.Item`](/docs/components/select) and takes the same props.

### CopyButton

Renders a button for copying code to clipboard.

- Inherits all CopyButton props except `text`

<auto-type-table path="./props.ts" name="CodeBlockCopyButtonProps" />

### Code
Expand All @@ -137,6 +158,8 @@ Renders a syntax-highlighted code block.

Renders a button to expand or collapse long code blocks.

- Inherits all Button props

<auto-type-table path="./props.ts" name="CodeBlockCollapseTriggerProps" />

### Slots
Expand All @@ -159,6 +182,8 @@ Every rendered part carries a stable `data-slot` attribute for [styling and test
| `code-block-collapse-trigger` | The show/hide button (when `maxLines` is exceeded) |
| `code-block-language-select-trigger` | The language select trigger button |
| `code-block-language-select-value` | The selected language value inside the trigger |
| `select-content` | The `CodeBlock.LanguageSelectContent` popup |
| `select-item` | Each `CodeBlock.LanguageSelectItem` option |

## Accessibility

Expand Down
32 changes: 24 additions & 8 deletions apps/www/src/content/docs/components/code-block/props.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export interface CodeBlockProps {
/**
* The code content to display
*/
children: ReactNode;
children?: ReactNode;

/**
* Additional CSS class name
Expand Down Expand Up @@ -83,7 +83,7 @@ export interface CodeBlockHeaderProps {
/**
* The content to display in the header
*/
children: ReactNode;
children?: ReactNode;

/**
* Additional CSS class name
Expand All @@ -95,7 +95,7 @@ export interface CodeBlockContentProps {
/**
* The content to display
*/
children: ReactNode;
children?: ReactNode;

/**
* Additional CSS class name
Expand All @@ -107,7 +107,7 @@ export interface CodeBlockLabelProps {
/**
* The label text to display
*/
children: ReactNode;
children?: ReactNode;

/**
* Additional CSS class name
Expand All @@ -117,14 +117,30 @@ export interface CodeBlockLabelProps {

export interface CodeBlockLanguageSelectProps {
/**
* Available languages for selection
* The `CodeBlock.LanguageSelectTrigger` and `CodeBlock.LanguageSelectContent` parts
*/
children: ReactNode;
children?: ReactNode;

/**
* Additional CSS class name
* The controlled open state of the dropdown
*/
className?: string;
open?: boolean;

/**
* The initial open state when uncontrolled
* @default false
*/
defaultOpen?: boolean;

/**
* Callback fired when the open state changes
*/
onOpenChange?: (open: boolean) => void;

/**
* Prevents the user from changing the language
*/
disabled?: boolean;
}

export interface CodeBlockLanguageSelectTriggerProps {
Expand Down
Loading
Loading