Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
2001093
docs: add the API page generator, its CI gates and review aids
claude Jul 29, 2026
ecad8b6
docs(bulma-ui): generate the layout, columns and grid API pages
claude Jul 30, 2026
2eaaebd
docs(bulma-ui): generate the elements API pages
claude Jul 30, 2026
a9f8c14
chore: restore the component-catalog preamble this stack reverted
allxsmith Jul 31, 2026
0882a44
chore: restore the component-catalog preamble this stack reverted
allxsmith Jul 31, 2026
f778056
chore: restore the component-catalog preamble this stack reverted
allxsmith Jul 31, 2026
1b363e2
fix(docs): correct four prop-table defects in the API page extractor
allxsmith Jul 31, 2026
5e73ac7
fix(docs): drop the stale duplicate tables the elements pages kept
allxsmith Jul 31, 2026
5f8f8af
fix(docs): regenerate the grid pages with the corrected type cells
allxsmith Jul 31, 2026
8a6e640
fix(docs): add missing DOM_ELEMENT_LABELS entries and stop mislinking…
github-actions[bot] Jul 31, 2026
7a4d065
fix(docs): carry the catch-all fix through the rest of the stack
allxsmith Jul 31, 2026
6316568
fix(docs): carry the catch-all fix through the rest of the stack
allxsmith Jul 31, 2026
4d9450f
fix(docs): expand DateFormatOption instead of leaving a bare alias
allxsmith Jul 31, 2026
e8fa331
fix(docs): expand DateFormatOption instead of leaving a bare alias
allxsmith Jul 31, 2026
6df157b
fix(docs): expand DateFormatOption instead of leaving a bare alias
allxsmith Jul 31, 2026
e12a5c7
fix(docs): rebase the manifests onto main and address the review find…
allxsmith Jul 31, 2026
724501e
fix(docs): rebase the manifests onto main and address the review find…
allxsmith Jul 31, 2026
8b5c65d
fix(docs): rebase the manifests onto main and address the review find…
allxsmith Jul 31, 2026
2138976
fix(docs): restore bestax-migrate's manifest and the lockfile from main
allxsmith Jul 31, 2026
d6ebe92
fix(docs): restore bestax-migrate's manifest and the lockfile from main
allxsmith Jul 31, 2026
4c48aea
fix(docs): restore bestax-migrate's manifest and the lockfile from main
allxsmith Jul 31, 2026
7f8e60b
fix(docs): fail the alias fixpoint instead of degrading to bare names
allxsmith Jul 31, 2026
83515ae
fix(docs): make the marker stripper fail instead of no-opping silently
allxsmith Jul 31, 2026
9d682dd
fix(docs): correct three defects the #420 deep review found
allxsmith Jul 31, 2026
5711850
fix(docs): correct three defects the #420 deep review found
allxsmith Jul 31, 2026
c29a6a2
fix(docs): correct three defects the #420 deep review found
allxsmith Jul 31, 2026
dc147d3
Merge origin/main into claude/api-docs-tooling
allxsmith Jul 31, 2026
f6d9da1
Merge remote-tracking branch 'origin/claude/api-docs-tooling' into m421
allxsmith Jul 31, 2026
51b801c
Merge remote-tracking branch 'origin/claude/api-docs-layout' into m422
allxsmith Jul 31, 2026
4789784
fix(bulma-ui): correct the inverted Level.isMobile description
allxsmith Jul 31, 2026
7d680f9
fix(docs): close the theme.md fence my earlier edit left open
allxsmith Jul 31, 2026
4c41b85
docs: restore the flatten-llms-tabs description this stack replaced
allxsmith Jul 31, 2026
28d9664
Merge remote-tracking branch 'origin/main' into s422
allxsmith Jul 31, 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
16 changes: 6 additions & 10 deletions bulma-ui/src/elements/Block.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,25 @@ import {

/**
* Props for the Block component.
*
* @property {string} [className] - Additional CSS classes to apply.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
* @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the block.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
* @property {React.ReactNode} [children] - Content to be rendered inside the block.
*/
export interface BlockProps
extends
React.HTMLAttributes<HTMLDivElement>,
Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
/** Additional CSS classes to apply. */
className?: string;
/** Text color helper. */
textColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Bulma color modifier for the block. */
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
/** Background color helper. */
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Content to render inside the block. */
children?: React.ReactNode;
}

/**
* Block component for rendering a styled Bulma block element.
*
* A block is a simple utility element that adds spacing (margin-bottom) between elements.
* Supports Bulma helper classes for additional styling like text color, background color, and layout.
* The `Block` component renders a simple container with Bulma's `.block` class, adding vertical margin between sections of content.
*
* @function
* @param {BlockProps} props - Props for the Block component.
Expand Down
17 changes: 7 additions & 10 deletions bulma-ui/src/elements/Box.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,31 +8,28 @@ import {

/**
* Props for the Box component.
*
* @property {string} [className] - Additional CSS classes to apply.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
* @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the box.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
* @property {boolean} [hasShadow=true] - Whether the box has a shadow (default: true).
* @property {React.ReactNode} [children] - Content to be rendered inside the box.
*/
export interface BoxProps
/** @ignore */
extends
React.HTMLAttributes<HTMLDivElement>,
Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
/** Additional CSS classes to apply. */
className?: string;
/** Text color helper. */
textColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Bulma color modifier for the box. */
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
/** Background color helper. */
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Whether the box has a shadow (default: true). */
hasShadow?: boolean;
/** Content to render inside the box. */
children?: React.ReactNode;
}

/**
* Box component for rendering a styled Bulma box element.
*
* Supports Bulma helper classes for styling and layout, with optional shadow control.
* The `Box` component renders a bordered, padded container with an optional shadow using Bulma's `.box` class.
*
* @function
* @param {BoxProps} props - Props for the Box component.
Expand Down
52 changes: 25 additions & 27 deletions bulma-ui/src/elements/Button.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,34 +8,12 @@ import {

/**
* Props for the Button component.
*
* @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'white' | 'light' | 'dark' | 'black' | 'text' | 'ghost'} [color] - Bulma color modifier for the button.
* @property {'small' | 'normal' | 'medium' | 'large'} [size] - Button size.
* @property {boolean} [isLight] - Use the light version of the color.
* @property {boolean} [isRounded] - Button is fully rounded.
* @property {boolean} [isLoading] - Button shows a loading spinner.
* @property {boolean} [isStatic] - Button is static and non-interactive.
* @property {boolean} [isFullWidth] - Button takes the full width of parent.
* @property {boolean} [isOutlined] - Use outlined button style.
* @property {boolean} [isInverted] - Use inverted color style.
* @property {boolean} [isFocused] - Button is styled as focused.
* @property {boolean} [isActive] - Button is styled as active.
* @property {boolean} [isHovered] - Button is styled as hovered.
* @property {boolean} [isDisabled] - Button is disabled.
* @property {string} [className] - Additional CSS classes to apply.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
* @property {React.ElementType} [as] - Render as a `<button>`, `<a>`, or a custom component (e.g. a router `Link`). Defaults to `'button'`; anything else (including `'a'`) uses anchor-style prop handling.
* @property {string} [href] - Specifies the URL for anchor buttons.
* @property {React.MouseEventHandler<HTMLButtonElement> | React.MouseEventHandler<HTMLAnchorElement>} [onClick] - Click handler for the button or anchor.
* @property {string} [target] - Target for anchor element.
* @property {string} [rel] - Rel attribute for anchor element.
* @property {React.ReactNode} [children] - Content to be rendered inside the button.
*/
export interface ButtonProps
extends
Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'color' | 'onClick'>,
Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {
/** Bulma color variant for the button. `ghost` renders a link-like button; `text` renders a minimal text-only button. */
color?:
| 'primary'
| 'link'
Expand All @@ -49,42 +27,62 @@ export interface ButtonProps
| 'black'
| 'text'
| 'ghost';
/** Size of the button. */
size?: 'small' | 'normal' | 'medium' | 'large';
/** Applies a lighter color variant. */
isLight?: boolean;
/** Makes the button rounded. */
isRounded?: boolean;
/** Displays a loading spinner. */
isLoading?: boolean;
/** Makes the button non-interactive. */
isStatic?: boolean;
/** Makes the button full-width. */
isFullWidth?: boolean;
/** Applies outlined styling (requires color). */
isOutlined?: boolean;
/** Applies inverted styling (requires color). */
isInverted?: boolean;
/** Applies focused styling (visual only). */
isFocused?: boolean;
/** Applies active styling (visual only). */
isActive?: boolean;
/** Applies hovered styling (visual only). */
isHovered?: boolean;
/** Applies disabled styling. */
isDisabled?: boolean;
/** Custom class name. */
className?: string;
/** Text color helper. */
textColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Background color helper. */
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Render as a `<button>`, `<a>`, or a custom component (e.g. a router `Link`). Defaults to `'button'`; anything else (including `'a'`) uses anchor-style prop handling. */
as?: React.ElementType;
/** Href value (if rendering as `<a>`). */
href?: string;
/** Click event handler. */
onClick?:
| React.MouseEventHandler<HTMLButtonElement>
| React.MouseEventHandler<HTMLAnchorElement>;
/** Anchor tag target. */
target?: string;
/** Anchor tag rel. */
rel?: string;
/** Button content. */
children?: React.ReactNode;
}

const validButtonColors = [...validColors, 'text', 'ghost'] as const;

/**
* Button component for rendering a Bulma-styled button or anchor.
*
* Supports Bulma helper classes for colors, sizes, and various button states and modifiers.
* The `Button` component provides a flexible and highly customizable button for your Bulma React UI.
*
* @function
* @param {ButtonProps} props - Props for the Button component.
* @returns {JSX.Element} The rendered button or anchor element.
* @see {@link https://bulma.io/documentation/elements/button/ | Bulma Button documentation}
*/
const validButtonColors = [...validColors, 'text', 'ghost'] as const;

export const Button: React.FC<ButtonProps> = ({
color,
Expand Down
21 changes: 9 additions & 12 deletions bulma-ui/src/elements/Buttons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,32 +11,29 @@ import {

/**
* Props for the Buttons component.
*
* @property {string} [className] - Additional CSS classes to apply.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
* @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the buttons group.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
* @property {boolean} [isCentered] - Center the group of buttons.
* @property {boolean} [isRight] - Align the group of buttons to the right.
* @property {boolean} [hasAddons] - Group buttons together as addons.
* @property {React.ReactNode} children - The button elements to render inside the group.
*/
interface ButtonsProps
extends React.HTMLAttributes<HTMLDivElement>, BulmaClassesProps {
/** Additional CSS classes to apply. */
className?: string;
/** Text color helper for the button group. */
textColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Bulma color modifier for the button group. */
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
/** Background color helper for the button group. */
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Center the group of buttons. */
isCentered?: boolean;
/** Align the group of buttons to the right. */
isRight?: boolean;
/** Group buttons together as addons (removes spacing between them). */
hasAddons?: boolean;
/** The button elements to render inside the group. */
children: React.ReactNode;
}

/**
* Buttons component for rendering a group of Bulma-styled buttons.
*
* Supports Bulma helper classes for styling, color, and layout, including centering, right alignment, and grouping as addons.
* The `Buttons` component lets you group multiple `Button` elements together with Bulma's spacing, alignment, and add-on features.
*
* @function
* @param {ButtonsProps} props - Props for the Buttons component.
Expand Down
15 changes: 5 additions & 10 deletions bulma-ui/src/elements/Code.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,23 @@ import {

/**
* Props for the Code component.
*
* @property {string} [className] - Additional CSS classes to apply.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
* @property {React.ReactNode} [children] - Code content to be rendered inside the element.
*/
export interface CodeProps
extends
React.HTMLAttributes<HTMLElement>,
Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
/** Additional CSS classes to apply. */
className?: string;
/** Text color helper. */
textColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Background color helper. */
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Code content to render inside the element. */
children?: React.ReactNode;
}

/**
* Code component for rendering inline code snippets.
*
* A Code wraps the HTML `<code>` element with Bulma helper class integration.
* Use it for short inline code snippets, variable names, or technical terms.
* For multi-line code blocks, use the Pre component.
* The `Code` component renders a styled `<code>` element with Bulma helper class integration.
*
* @function
* @param {CodeProps} props - Props for the Code component.
Expand Down
18 changes: 7 additions & 11 deletions bulma-ui/src/elements/Content.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,34 +8,30 @@ import {

/**
* Props for the Content component.
*
* @property {string} [className] - Additional CSS classes to apply.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
* @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the content.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
* @property {'small' | 'normal' | 'medium' | 'large'} [size] - Size modifier for the content.
* @property {React.ReactNode} [children] - Content to be rendered inside the block.
*/
interface ContentProps
extends
React.HTMLAttributes<HTMLDivElement>,
Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
/** Additional CSS classes to apply. */
className?: string;
/** Text color helper (e.g., `'danger'` for `has-text-danger`). */
textColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Bulma color modifier for the content. */
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
/** Background color helper (e.g., `'info'` for `has-background-info`). */
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Size modifier for the content. */
size?: 'small' | 'normal' | 'medium' | 'large';
/** Content to be rendered inside the block. */
children?: React.ReactNode;
}

// Valid size modifiers for the content class
const validSizes = ['small', 'medium', 'large'] as const;

/**
* Content component for rendering a styled Bulma content block.
*
* Applies typographic styles to HTML content (e.g., paragraphs, headings, lists) with Bulma's content class.
* Supports size modifiers and Bulma helper classes for additional styling.
* The `Content` component applies Bulma’s typographic styles to its children, enhancing the appearance of HTML elements like paragraphs, headings, lists, and tables.
*
* @function
* @param {ContentProps} props - Props for the Content component.
Expand Down
21 changes: 9 additions & 12 deletions bulma-ui/src/elements/Delete.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,29 @@ import {

/**
* Props for the Delete component.
*
* @property {string} [className] - Additional CSS classes to apply.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
* @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the delete button.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
* @property {(event: React.MouseEvent<HTMLButtonElement>) => void} [onClick] - Click handler for the button.
* @property {'small' | 'medium' | 'large'} [size] - Size modifier for the delete button.
* @property {string} [ariaLabel='Close'] - ARIA label for accessibility (default: 'Close').
* @property {boolean} [disabled=false] - Whether the button is disabled (default: false).
*/
interface DeleteProps
extends React.HTMLAttributes<HTMLButtonElement>, BulmaClassesProps {
/** Additional CSS classes to apply. */
className?: string;
/** Text color helper. */
textColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Bulma color modifier for the button. */
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
/** Background color helper. */
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Click handler for the button. */
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
/** Size modifier for the delete button. */
size?: 'small' | 'medium' | 'large';
/** ARIA label for accessibility (default: 'Close'). */
ariaLabel?: string;
/** Whether the button is disabled (default: false). */
disabled?: boolean;
}

/**
* Delete component for rendering a Bulma-styled delete/close button.
*
* Supports Bulma helper classes for styling, color, and size, and includes accessibility and disabled state.
* The `Delete` component provides a Bulma-styled close/delete button for dismissing modals, notifications, tags, messages, and more.
*
* @function
* @param {DeleteProps} props - Props for the Delete component.
Expand Down
10 changes: 3 additions & 7 deletions bulma-ui/src/elements/Divider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,19 @@ import {

/**
* Props for the Divider component.
*
* @property {string} [className] - Additional CSS classes to apply.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
*/
export interface DividerProps
extends
React.HTMLAttributes<HTMLHRElement>,
Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
/** Additional CSS classes to apply. */
className?: string;
/** Background color helper. */
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
}

/**
* Divider component for rendering a styled horizontal rule element.
*
* A Divider wraps the HTML `<hr>` element with Bulma helper class integration.
* Use it to visually separate content sections with a horizontal line.
* The `Divider` component renders a styled horizontal rule (`<hr>`) element with Bulma helper class integration.
*
* @function
* @param {DividerProps} props - Props for the Divider component.
Expand Down
15 changes: 5 additions & 10 deletions bulma-ui/src/elements/Emphasis.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,23 @@ import {

/**
* Props for the Emphasis component.
*
* @property {string} [className] - Additional CSS classes to apply.
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color (Bulma color, 'inherit', or 'current').
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [bgColor] - Background color (Bulma color, 'inherit', or 'current').
* @property {React.ReactNode} [children] - Content to be rendered inside the em element.
*/
export interface EmphasisProps
extends
React.HTMLAttributes<HTMLElement>,
Omit<BulmaClassesProps, 'color' | 'backgroundColor'> {
/** Additional CSS classes to apply. */
className?: string;
/** Text color helper. */
textColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Background color helper. */
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
/** Content to render inside the em element. */
children?: React.ReactNode;
}

/**
* Emphasis component for rendering semantically emphasized italic text.
*
* An Emphasis wraps the HTML `<em>` element with Bulma helper class integration.
* Use it for text that has stress emphasis, affecting the meaning of the sentence.
* For visual-only italic styling without semantic meaning, use CSS font-style: italic.
* The `Emphasis` component renders a styled `<em>` element with Bulma helper class integration.
*
* @function
* @param {EmphasisProps} props - Props for the Emphasis component.
Expand Down
Loading
Loading