Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .babelrc.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = (api) => {
export default (api) => {
const env = api.env();

let dev = false;
Expand Down
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
# [3.0.0-beta.3](https://github.com/react-bootstrap/react-bootstrap/compare/v3.0.0-beta.2...v3.0.0-beta.3) (2025-07-28)


### Features

* **AccordionHeader:** add disabled prop ([#6940](https://github.com/react-bootstrap/react-bootstrap/issues/6940)) ([376c9ae](https://github.com/react-bootstrap/react-bootstrap/commit/376c9aeda3bf86ce88f36e42e6f78c66eb8ced4f))
* add better ESM support ([#6939](https://github.com/react-bootstrap/react-bootstrap/issues/6939)) ([e9e9457](https://github.com/react-bootstrap/react-bootstrap/commit/e9e9457c9b4d4d677d33c8fb664f7082fc0da304))





# [3.0.0-beta.2](https://github.com/react-bootstrap/react-bootstrap/compare/v3.0.0-beta.1...v3.0.0-beta.2) (2025-05-24)


Expand Down
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-bootstrap",
"version": "3.0.0-beta.2",
"version": "3.0.0-beta.3",
"description": "Bootstrap 5 components built with React",
"keywords": [
"bootstrap",
Expand All @@ -24,6 +24,7 @@
"lib",
"cjs"
],
"type": "module",
"main": "cjs/index.js",
"module": "lib/index.js",
"types": "lib/index.d.ts",
Expand Down Expand Up @@ -58,7 +59,7 @@
"scripts": {
"bootstrap": "yarn --network-timeout 100000 && yarn --cwd www --network-timeout 100000",
"build": "rimraf lib && yarn build:esm && yarn build:esm:types && yarn build:cjs && yarn build:cjs:types",
"build:esm": "babel src --out-dir lib --delete-dir-on-start --env-name esm --extensions .ts,.tsx --ignore '**/*.d.ts' && echo '{\"type\": \"module\"}' > lib/package.json",
"build:esm": "babel src --out-dir lib --delete-dir-on-start --env-name esm --extensions .ts,.tsx --ignore '**/*.d.ts'",
"build:cjs": "babel src --out-dir cjs --env-name cjs --delete-dir-on-start --extensions .ts,.tsx --ignore '**/*.d.ts' && echo '{\"type\": \"commonjs\"}' > cjs/package.json",
"build:esm:types": "tsc --emitDeclarationOnly",
"build:cjs:types": "tsc --emitDeclarationOnly --outDir cjs",
Expand All @@ -70,7 +71,7 @@
"release": "rollout",
"start": "yarn --cwd www start",
"tdd": "vitest",
"test": "npm run lint && npm run test-browser",
"test": "npm run lint && npm run test-browser -- --browser=chromium",
"test-browser": "vitest --run",
"prepare": "husky"
},
Expand All @@ -83,10 +84,10 @@
"dependencies": {
"@babel/runtime": "^7.27.0",
"@restart/hooks": "^0.6.2",
"@restart/ui": "^2.0.0-beta.3",
"@restart/ui": "^2.0.0-beta.6",
"@types/react-transition-group": "^4.4.12",
"clsx": "^2.1.1",
"dom-helpers": "^5.2.1",
"dom-helpers": "^6.0.1",
"invariant": "^2.2.4",
"react-transition-group": "^4.4.5",
"uncontrollable": "^9.0.0",
Expand Down
4 changes: 2 additions & 2 deletions src/AbstractModalHeader.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as React from 'react';
import { useContext } from 'react';
import useEventCallback from '@restart/hooks/useEventCallback';
import CloseButton, { type CloseButtonVariant } from './CloseButton';
import ModalContext from './ModalContext';
import CloseButton, { type CloseButtonVariant } from './CloseButton.js';
import ModalContext from './ModalContext.js';

export interface AbstractModalHeaderProps
extends React.HTMLAttributes<HTMLDivElement> {
Expand Down
14 changes: 7 additions & 7 deletions src/Accordion.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ import * as React from 'react';
import { useMemo } from 'react';
import { useUncontrolled } from 'uncontrollable';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import AccordionBody from './AccordionBody';
import AccordionButton from './AccordionButton';
import AccordionCollapse from './AccordionCollapse';
import { useBootstrapPrefix } from './ThemeProvider.js';
import AccordionBody from './AccordionBody.js';
import AccordionButton from './AccordionButton.js';
import AccordionCollapse from './AccordionCollapse.js';
import AccordionContext, {
type AccordionSelectCallback,
type AccordionEventKey,
} from './AccordionContext';
import AccordionHeader from './AccordionHeader';
import AccordionItem from './AccordionItem';
} from './AccordionContext.js';
import AccordionHeader from './AccordionHeader.js';
import AccordionItem from './AccordionItem.js';

export interface AccordionProps
extends Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> {
Expand Down
8 changes: 4 additions & 4 deletions src/AccordionBody.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import clsx from 'clsx';
import * as React from 'react';
import { useContext } from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import AccordionCollapse from './AccordionCollapse';
import AccordionItemContext from './AccordionItemContext';
import type { TransitionCallbacks } from './types';
import { useBootstrapPrefix } from './ThemeProvider.js';
import AccordionCollapse from './AccordionCollapse.js';
import AccordionItemContext from './AccordionItemContext.js';
import type { TransitionCallbacks } from './types.js';

export interface AccordionBodyProps
extends TransitionCallbacks,
Expand Down
10 changes: 6 additions & 4 deletions src/AccordionButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@ import * as React from 'react';
import { useContext } from 'react';
import clsx from 'clsx';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import AccordionContext, { isAccordionItemSelected } from './AccordionContext';
import AccordionItemContext from './AccordionItemContext';
import { useBootstrapPrefix } from './ThemeProvider';
import useAccordionButton from './useAccordionButton';
import AccordionContext, {
isAccordionItemSelected,
} from './AccordionContext.js';
import AccordionItemContext from './AccordionItemContext.js';
import { useBootstrapPrefix } from './ThemeProvider.js';
import useAccordionButton from './useAccordionButton.js';

export interface AccordionButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement> {
Expand Down
8 changes: 5 additions & 3 deletions src/AccordionCollapse.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ import * as React from 'react';
import { useContext } from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { Transition } from 'react-transition-group';
import { useBootstrapPrefix } from './ThemeProvider';
import Collapse, { type CollapseProps } from './Collapse';
import AccordionContext, { isAccordionItemSelected } from './AccordionContext';
import { useBootstrapPrefix } from './ThemeProvider.js';
import Collapse, { type CollapseProps } from './Collapse.js';
import AccordionContext, {
isAccordionItemSelected,
} from './AccordionContext.js';

export interface AccordionCollapseProps extends CollapseProps {
/**
Expand Down
4 changes: 2 additions & 2 deletions src/AccordionHeader.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import clsx from 'clsx';
import * as React from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import AccordionButton from './AccordionButton';
import { useBootstrapPrefix } from './ThemeProvider.js';
import AccordionButton from './AccordionButton.js';

export interface AccordionHeaderProps
extends React.HTMLAttributes<HTMLElement> {
Expand Down
4 changes: 2 additions & 2 deletions src/AccordionItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import clsx from 'clsx';
import * as React from 'react';
import { useMemo } from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';
import AccordionItemContext, {
type AccordionItemContextValue,
} from './AccordionItemContext';
} from './AccordionItemContext.js';

export interface AccordionItemProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
14 changes: 7 additions & 7 deletions src/Alert.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ import clsx from 'clsx';
import * as React from 'react';
import { useUncontrolled } from 'uncontrollable';
import useEventCallback from '@restart/hooks/useEventCallback';
import { useBootstrapPrefix } from './ThemeProvider';
import AlertHeading from './AlertHeading';
import AlertLink from './AlertLink';
import Fade from './Fade';
import CloseButton, { type CloseButtonVariant } from './CloseButton';
import type { Variant } from './types';
import type { TransitionType } from './helpers';
import { useBootstrapPrefix } from './ThemeProvider.js';
import AlertHeading from './AlertHeading.js';
import AlertLink from './AlertLink.js';
import Fade from './Fade.js';
import CloseButton, { type CloseButtonVariant } from './CloseButton.js';
import type { Variant } from './types.js';
import type { TransitionType } from './helpers.js';

export interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
/**
Expand Down
4 changes: 2 additions & 2 deletions src/AlertHeading.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as React from 'react';
import clsx from 'clsx';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import divWithClassName from './divWithClassName';
import { useBootstrapPrefix } from './ThemeProvider.js';
import divWithClassName from './divWithClassName.js';

const DivStyledAsH4 = divWithClassName('h4');
DivStyledAsH4.displayName = 'DivStyledAsH4';
Expand Down
2 changes: 1 addition & 1 deletion src/AlertLink.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as React from 'react';
import clsx from 'clsx';
import Anchor from '@restart/ui/Anchor';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface AlertLinkProps
extends React.AnchorHTMLAttributes<HTMLElement> {
Expand Down
4 changes: 2 additions & 2 deletions src/Badge.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import clsx from 'clsx';
import * as React from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import type { Color, Variant } from './types';
import { useBootstrapPrefix } from './ThemeProvider.js';
import type { Color, Variant } from './types.js';

export interface BadgeProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
4 changes: 2 additions & 2 deletions src/Breadcrumb.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import clsx from 'clsx';
import * as React from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import BreadcrumbItem from './BreadcrumbItem';
import { useBootstrapPrefix } from './ThemeProvider.js';
import BreadcrumbItem from './BreadcrumbItem.js';

export interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/BreadcrumbItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import clsx from 'clsx';
import * as React from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import Anchor from '@restart/ui/Anchor';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface BreadcrumbItemProps
extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {
Expand Down
4 changes: 2 additions & 2 deletions src/Button.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import {
type ButtonProps as BaseButtonProps,
} from '@restart/ui/Button';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import type { ButtonVariant } from './types';
import { useBootstrapPrefix } from './ThemeProvider.js';
import type { ButtonVariant } from './types.js';

export interface ButtonProps extends BaseButtonProps {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/ButtonGroup.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import clsx from 'clsx';
import * as React from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface ButtonGroupProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/ButtonToolbar.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import clsx from 'clsx';
import * as React from 'react';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface ButtonToolbarProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
22 changes: 11 additions & 11 deletions src/Card.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import clsx from 'clsx';
import * as React from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import CardBody from './CardBody';
import CardFooter from './CardFooter';
import CardHeader from './CardHeader';
import CardImg from './CardImg';
import CardImgOverlay from './CardImgOverlay';
import CardLink from './CardLink';
import CardSubtitle from './CardSubtitle';
import CardText from './CardText';
import CardTitle from './CardTitle';
import type { Color, Variant } from './types';
import { useBootstrapPrefix } from './ThemeProvider.js';
import CardBody from './CardBody.js';
import CardFooter from './CardFooter.js';
import CardHeader from './CardHeader.js';
import CardImg from './CardImg.js';
import CardImgOverlay from './CardImgOverlay.js';
import CardLink from './CardLink.js';
import CardSubtitle from './CardSubtitle.js';
import CardText from './CardText.js';
import CardTitle from './CardTitle.js';
import type { Color, Variant } from './types.js';

export interface CardProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/CardBody.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import clsx from 'clsx';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface CardBodyProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/CardFooter.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import clsx from 'clsx';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface CardFooterProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/CardGroup.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import clsx from 'clsx';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface CardGroupProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
4 changes: 2 additions & 2 deletions src/CardHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import clsx from 'clsx';
import * as React from 'react';
import { useMemo } from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import CardHeaderContext from './CardHeaderContext';
import { useBootstrapPrefix } from './ThemeProvider.js';
import CardHeaderContext from './CardHeaderContext.js';

export interface CardHeaderProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/CardImg.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import clsx from 'clsx';
import * as React from 'react';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface CardImgProps
extends React.ImgHTMLAttributes<HTMLImageElement> {
Expand Down
2 changes: 1 addition & 1 deletion src/CardImgOverlay.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import clsx from 'clsx';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface CardImgOverlayProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/CardLink.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import clsx from 'clsx';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface CardLinkProps extends React.AnchorHTMLAttributes<HTMLElement> {
/**
Expand Down
4 changes: 2 additions & 2 deletions src/CardSubtitle.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as React from 'react';
import clsx from 'clsx';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import divWithClassName from './divWithClassName';
import { useBootstrapPrefix } from './ThemeProvider.js';
import divWithClassName from './divWithClassName.js';

const DivStyledAsH6 = divWithClassName('h6');

Expand Down
2 changes: 1 addition & 1 deletion src/CardText.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import clsx from 'clsx';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';

export interface CardTextProps extends React.HTMLAttributes<HTMLElement> {
/**
Expand Down
4 changes: 2 additions & 2 deletions src/CardTitle.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import * as React from 'react';
import clsx from 'clsx';
import { useBootstrapPrefix } from './ThemeProvider';
import { useBootstrapPrefix } from './ThemeProvider.js';
import type { DynamicRefForwardingComponent } from '@restart/ui/types';
import divWithClassName from './divWithClassName';
import divWithClassName from './divWithClassName.js';

const DivStyledAsH5 = divWithClassName('h5');

Expand Down
Loading
Loading