@carbon/react 1.114.0 → 1.115.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.playwright/INTERNAL_AVT_REPORT_DO_NOT_USE.json +2640 -1163
- package/es/components/BigNumber/BigNumber.d.ts +82 -0
- package/es/components/BigNumber/BigNumberSkeleton.d.ts +16 -0
- package/es/components/BigNumber/constants.d.ts +19 -0
- package/es/components/BigNumber/index.d.ts +9 -0
- package/es/components/Card/Card.d.ts +1 -1
- package/es/components/Card/Card.js +19 -7
- package/es/components/Card/Card.types.d.ts +38 -7
- package/es/components/Card/CardActions.js +1 -1
- package/es/components/Card/CardBody.d.ts +2 -1
- package/es/components/Card/CardBody.js +3 -2
- package/es/components/Card/CardFooter.d.ts +5 -1
- package/es/components/Card/CardFooter.js +13 -2
- package/es/components/Card/CardTitle.d.ts +1 -1
- package/es/components/DatePicker/DatePicker.d.ts +1 -1
- package/es/components/DatePicker/plugins/rangePlugin.d.ts +1 -1
- package/es/components/FileUploader/FileUploaderDropContainer.js +11 -5
- package/es/components/FormLabel/FormLabel.d.ts +2 -2
- package/es/components/FormLabel/FormLabel.js +1 -1
- package/es/components/Tabs/Tabs.js +13 -2
- package/es/components/Tile/Tile.js +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.js +1 -1
- package/es/internal/DisplayBox.d.ts +14 -0
- package/es/internal/getSupportedLocale.d.ts +12 -0
- package/lib/components/BigNumber/BigNumber.d.ts +82 -0
- package/lib/components/BigNumber/BigNumberSkeleton.d.ts +16 -0
- package/lib/components/BigNumber/constants.d.ts +19 -0
- package/lib/components/BigNumber/index.d.ts +9 -0
- package/lib/components/Card/Card.d.ts +1 -1
- package/lib/components/Card/Card.js +19 -7
- package/lib/components/Card/Card.types.d.ts +38 -7
- package/lib/components/Card/CardActions.js +1 -1
- package/lib/components/Card/CardBody.d.ts +2 -1
- package/lib/components/Card/CardBody.js +3 -2
- package/lib/components/Card/CardFooter.d.ts +5 -1
- package/lib/components/Card/CardFooter.js +13 -2
- package/lib/components/Card/CardTitle.d.ts +1 -1
- package/lib/components/DatePicker/DatePicker.d.ts +1 -1
- package/lib/components/DatePicker/plugins/rangePlugin.d.ts +1 -1
- package/lib/components/FileUploader/FileUploaderDropContainer.js +11 -5
- package/lib/components/FormLabel/FormLabel.d.ts +2 -2
- package/lib/components/FormLabel/FormLabel.js +1 -1
- package/lib/components/Tabs/Tabs.js +13 -2
- package/lib/components/Tile/Tile.js +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +1 -1
- package/lib/internal/DisplayBox.d.ts +14 -0
- package/lib/internal/getSupportedLocale.d.ts +12 -0
- package/package.json +20 -20
- package/scss/_border-radius.scss +9 -0
- package/scss/components/OptionsTile/_index.scss +5 -0
- package/scss/components/OptionsTile/_options-tile.scss +5 -0
- package/scss/components/big-number/_big-number.scss +9 -0
- package/scss/components/big-number/_index.scss +9 -0
- package/scss/components/coachmark/_coachmark.scss +5 -0
- package/scss/components/coachmark/_index.scss +5 -0
- package/scss/components/edit-in-place/_edit-in-place.scss +5 -0
- package/scss/components/edit-in-place/_index.scss +5 -0
- package/scss/components/full-page-error/_full-page-error.scss +5 -0
- package/scss/components/full-page-error/_index.scss +5 -0
- package/scss/components/interstitial-screen/_index.scss +6 -0
- package/scss/components/interstitial-screen/_interstitial-screen.scss +12 -0
- package/scss/components/scroll-gradient/_index.scss +9 -0
- package/scss/components/scroll-gradient/_scroll-gradient.scss +9 -0
- package/scss/components/user-avatar/_index.scss +9 -0
- package/scss/components/user-avatar/_user-avatar.scss +9 -0
- package/telemetry.yml +91 -3
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import { BigNumberProps } from './BigNumber';
|
|
9
|
+
/**
|
|
10
|
+
* BigNumberSkeleton is used to display a skeleton version while
|
|
11
|
+
* content is loading (handled by the BigNumber prop `loading`).
|
|
12
|
+
*
|
|
13
|
+
* Note: This component is only used within BigNumber.
|
|
14
|
+
*/
|
|
15
|
+
export type BigNumberSkeletonProps = Pick<BigNumberProps, 'className' | 'size'> & React.HTMLAttributes<HTMLDivElement>;
|
|
16
|
+
export declare const BigNumberSkeleton: React.ForwardRefExoticComponent<Pick<BigNumberProps, "className" | "size"> & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
export declare enum BigNumberSize {
|
|
8
|
+
Default = "default",
|
|
9
|
+
Large = "lg",
|
|
10
|
+
XLarge = "xl"
|
|
11
|
+
}
|
|
12
|
+
export type BigNumberSizeValues = `${BigNumberSize}`;
|
|
13
|
+
export declare enum Characters {
|
|
14
|
+
Dash = "\u2013",
|
|
15
|
+
Slash = "/"
|
|
16
|
+
}
|
|
17
|
+
export declare const DefaultLocale = "en-US";
|
|
18
|
+
export declare const formatValue: (locale: Intl.LocalesArgument, value: number | null | undefined, fractionDigits: number, truncate: boolean) => string | null | undefined;
|
|
19
|
+
export declare const getIconSize: (size: BigNumberSizeValues) => number;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
export { BigNumber } from './BigNumber';
|
|
8
|
+
export type { BigNumberProps } from './BigNumber';
|
|
9
|
+
export { BigNumberSkeleton } from './BigNumberSkeleton';
|
|
@@ -17,7 +17,7 @@ import { CardActions } from './CardActions';
|
|
|
17
17
|
import { CardAction } from './CardAction';
|
|
18
18
|
export declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>> & {
|
|
19
19
|
Header: React.ForwardRefExoticComponent<import("./Card.types").CardBaseProps & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
-
Body: React.ForwardRefExoticComponent<import("./Card.types").
|
|
20
|
+
Body: React.ForwardRefExoticComponent<import("./Card.types").CardBodyProps & React.RefAttributes<HTMLDivElement>>;
|
|
21
21
|
Footer: React.ForwardRefExoticComponent<import("./Card.types").CardBaseProps & React.RefAttributes<HTMLDivElement>>;
|
|
22
22
|
HeaderMedia: {
|
|
23
23
|
({ children, className, ...rest }: import("./CardHeaderMedia").CardHeaderMediaProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -23,6 +23,7 @@ react = require_runtime.__toESM(react);
|
|
|
23
23
|
let classnames = require("classnames");
|
|
24
24
|
classnames = require_runtime.__toESM(classnames);
|
|
25
25
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
26
|
+
let _carbon_icons_react = require("@carbon/icons-react");
|
|
26
27
|
//#region src/components/Card/Card.tsx
|
|
27
28
|
/**
|
|
28
29
|
* Copyright IBM Corp. 2026
|
|
@@ -34,19 +35,23 @@ const componentName = "Card";
|
|
|
34
35
|
/**
|
|
35
36
|
* Card component - Root container for composable card
|
|
36
37
|
*/
|
|
37
|
-
const CardComponent = (0, react.forwardRef)(({ clickable = false, onClick, onKeyDown, disabled = false, density = "productive", decorator, horizontal = false, className, children, ...rest }, ref) => {
|
|
38
|
+
const CardComponent = (0, react.forwardRef)(({ as, clickable = false, onClick, onKeyDown, disabled = false, density = "productive", decorator, horizontal = false, renderFooterIcon: FooterIcon = _carbon_icons_react.ArrowRight, className, children, ...rest }, ref) => {
|
|
38
39
|
const blockClass = `${require_usePrefix.usePrefix()}--card`;
|
|
39
40
|
const hasAILabel = (0, react.useMemo)(() => (0, react.isValidElement)(decorator) && decorator.type === require_index.AILabel, [decorator]);
|
|
41
|
+
if (FooterIcon !== _carbon_icons_react.ArrowRight && !clickable) console.error("[Card] `renderFooterIcon` only has effect when `clickable` is true.");
|
|
42
|
+
if (clickable && !rest["aria-label"] && !rest["aria-labelledby"]) console.error("[Card] A clickable card must have an accessible name. Pass `aria-label` or `aria-labelledby` to the Card.");
|
|
40
43
|
const contextValue = (0, react.useMemo)(() => ({
|
|
41
44
|
clickable,
|
|
42
45
|
disabled,
|
|
43
46
|
decorator,
|
|
44
|
-
horizontal
|
|
47
|
+
horizontal,
|
|
48
|
+
onClick
|
|
45
49
|
}), [
|
|
46
50
|
clickable,
|
|
47
51
|
disabled,
|
|
48
52
|
decorator,
|
|
49
|
-
horizontal
|
|
53
|
+
horizontal,
|
|
54
|
+
onClick
|
|
50
55
|
]);
|
|
51
56
|
const handleKeyDown = (0, react.useCallback)((event) => {
|
|
52
57
|
if (clickable && !disabled && (event.key === "Enter" || event.key === " ")) {
|
|
@@ -70,17 +75,20 @@ const CardComponent = (0, react.forwardRef)(({ clickable = false, onClick, onKey
|
|
|
70
75
|
[`${blockClass}--has-ai-label`]: hasAILabel,
|
|
71
76
|
[`${blockClass}--horizontal`]: horizontal
|
|
72
77
|
});
|
|
78
|
+
const BaseComponent = as ?? "div";
|
|
79
|
+
const isAnchor = BaseComponent === "a";
|
|
73
80
|
const cardProps = {
|
|
74
81
|
...rest,
|
|
75
82
|
ref,
|
|
76
83
|
className: cardClasses,
|
|
77
|
-
...
|
|
84
|
+
...disabled && { "aria-disabled": true },
|
|
85
|
+
...clickable && { ...isAnchor ? { onClick: handleClick } : {
|
|
78
86
|
role: "button",
|
|
79
87
|
tabIndex: disabled ? -1 : 0,
|
|
80
88
|
onClick: handleClick,
|
|
81
89
|
onKeyDown: handleKeyDown,
|
|
82
90
|
"aria-disabled": disabled
|
|
83
|
-
}
|
|
91
|
+
} }
|
|
84
92
|
};
|
|
85
93
|
const { mediaChildren, contentChildren, mediaIsFirst } = (0, react.useMemo)(() => {
|
|
86
94
|
if (!horizontal) return {
|
|
@@ -106,9 +114,13 @@ const CardComponent = (0, react.forwardRef)(({ clickable = false, onClick, onKey
|
|
|
106
114
|
}
|
|
107
115
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CardContext.CardContext.Provider, {
|
|
108
116
|
value: contextValue,
|
|
109
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.
|
|
117
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(BaseComponent, {
|
|
110
118
|
...cardProps,
|
|
111
|
-
children: renderedChildren
|
|
119
|
+
children: [renderedChildren, clickable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
120
|
+
className: `${blockClass}__clickable-footer`,
|
|
121
|
+
"aria-hidden": "true",
|
|
122
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FooterIcon, { "aria-hidden": "true" })
|
|
123
|
+
})]
|
|
112
124
|
})
|
|
113
125
|
});
|
|
114
126
|
});
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import { ReactNode } from 'react';
|
|
7
|
+
import React, { ReactNode } from 'react';
|
|
8
8
|
/**
|
|
9
9
|
* Base props shared across card components
|
|
10
10
|
*/
|
|
@@ -23,17 +23,29 @@ export interface CardBaseProps {
|
|
|
23
23
|
*/
|
|
24
24
|
export interface CardProps extends CardBaseProps {
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* The underlying element or component to render the card as.
|
|
27
|
+
* Defaults to `'div'`. Use `'a'` or a router Link component for
|
|
28
|
+
* navigation cards when combined with `clickable`.
|
|
29
|
+
* @example <Card as="a" clickable href="/dashboard">...</Card>
|
|
30
|
+
* @example <Card as={RouterLink} clickable to="/dashboard">...</Card>
|
|
31
|
+
*/
|
|
32
|
+
as?: React.ElementType;
|
|
33
|
+
/**
|
|
34
|
+
* Makes the entire card clickable. When true, the card gains interactive
|
|
35
|
+
* styles (hover, focus, active) and renders a built-in footer affordance
|
|
36
|
+
* with an arrow icon. Use `onClick` for action cards or `as="a"` with
|
|
37
|
+
* `href` for navigation cards.
|
|
27
38
|
*/
|
|
28
39
|
clickable?: boolean;
|
|
29
40
|
/**
|
|
30
|
-
* Click handler for clickable cards
|
|
41
|
+
* Click handler for clickable cards. Only has effect when `clickable`
|
|
42
|
+
* is true.
|
|
31
43
|
*/
|
|
32
|
-
onClick?: (event: React.MouseEvent
|
|
44
|
+
onClick?: (event: React.MouseEvent) => void;
|
|
33
45
|
/**
|
|
34
|
-
* Keyboard event handler
|
|
46
|
+
* Keyboard event handler. Only has effect when `clickable` is true.
|
|
35
47
|
*/
|
|
36
|
-
onKeyDown?: (event: React.KeyboardEvent
|
|
48
|
+
onKeyDown?: (event: React.KeyboardEvent) => void;
|
|
37
49
|
/**
|
|
38
50
|
* Disables the card and all interactive elements
|
|
39
51
|
*/
|
|
@@ -52,6 +64,13 @@ export interface CardProps extends CardBaseProps {
|
|
|
52
64
|
* header/body/footer stacked vertically on the right.
|
|
53
65
|
*/
|
|
54
66
|
horizontal?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Icon rendered in the built-in footer affordance of a clickable card.
|
|
69
|
+
* Only has effect when `clickable` is true. Defaults to ArrowRight.
|
|
70
|
+
* Pass any icon component from `@carbon/icons-react`.
|
|
71
|
+
* @example <Card clickable renderFooterIcon={Launch}>...</Card>
|
|
72
|
+
*/
|
|
73
|
+
renderFooterIcon?: React.ElementType;
|
|
55
74
|
}
|
|
56
75
|
/**
|
|
57
76
|
* Props for CardHeader component
|
|
@@ -60,7 +79,14 @@ export type CardHeaderProps = CardBaseProps;
|
|
|
60
79
|
/**
|
|
61
80
|
* Props for CardBody component
|
|
62
81
|
*/
|
|
63
|
-
export
|
|
82
|
+
export interface CardBodyProps extends CardBaseProps {
|
|
83
|
+
/**
|
|
84
|
+
* When true, removes all padding so content fills the body edge-to-edge.
|
|
85
|
+
* Use when the body contains a component (e.g. a table, chart, or image)
|
|
86
|
+
* that manages its own internal spacing.
|
|
87
|
+
*/
|
|
88
|
+
isFlush?: boolean;
|
|
89
|
+
}
|
|
64
90
|
/**
|
|
65
91
|
* Props for CardFooter component
|
|
66
92
|
*/
|
|
@@ -85,4 +111,9 @@ export interface CardContextValue {
|
|
|
85
111
|
* Whether the card is in horizontal layout mode
|
|
86
112
|
*/
|
|
87
113
|
horizontal?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Click handler forwarded from the Card root, available to child components
|
|
116
|
+
* (e.g. the built-in clickable footer affordance).
|
|
117
|
+
*/
|
|
118
|
+
onClick?: (event: React.MouseEvent) => void;
|
|
88
119
|
}
|
|
@@ -76,7 +76,7 @@ const CardActions = ({ children, className, overflowMenuLabel = "More actions",
|
|
|
76
76
|
style: { position: "relative" },
|
|
77
77
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.OverflowMenu, {
|
|
78
78
|
size: "sm",
|
|
79
|
-
|
|
79
|
+
label: overflowMenuLabel,
|
|
80
80
|
children: hiddenItems.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MenuItem.MenuItem, {
|
|
81
81
|
label: item.label || "Action",
|
|
82
82
|
onClick: () => {
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
|
+
import { CardBodyProps } from './Card.types';
|
|
8
9
|
/**
|
|
9
10
|
* CardBody component - Body section of the card for free-form content
|
|
10
11
|
*/
|
|
11
|
-
export declare const CardBody: React.ForwardRefExoticComponent<
|
|
12
|
+
export declare const CardBody: React.ForwardRefExoticComponent<CardBodyProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -23,8 +23,9 @@ const componentName = "CardBody";
|
|
|
23
23
|
/**
|
|
24
24
|
* CardBody component - Body section of the card for free-form content
|
|
25
25
|
*/
|
|
26
|
-
const CardBody = (0, react.forwardRef)(({ className, children, ...rest }, ref) => {
|
|
27
|
-
const
|
|
26
|
+
const CardBody = (0, react.forwardRef)(({ className, children, isFlush = false, ...rest }, ref) => {
|
|
27
|
+
const prefix = require_usePrefix.usePrefix();
|
|
28
|
+
const bodyClasses = (0, classnames.default)(`${prefix}--card__body`, className, { [`${prefix}--card__body--flush`]: isFlush });
|
|
28
29
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
29
30
|
...rest,
|
|
30
31
|
ref,
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
8
|
/**
|
|
9
|
-
* CardFooter component - Footer section of the card
|
|
9
|
+
* CardFooter component - Footer section of the card.
|
|
10
|
+
*
|
|
11
|
+
* Not supported inside a `clickable` card. A clickable card renders its own
|
|
12
|
+
* built-in footer affordance automatically. Use the `renderFooterIcon` prop on
|
|
13
|
+
* `Card` to customize the icon.
|
|
10
14
|
*/
|
|
11
15
|
export declare const CardFooter: React.ForwardRefExoticComponent<import("./Card.types").CardBaseProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
const require_runtime = require("../../_virtual/_rolldown/runtime.js");
|
|
9
9
|
const require_usePrefix = require("../../internal/usePrefix.js");
|
|
10
|
+
const require_CardContext = require("./CardContext.js");
|
|
10
11
|
let react = require("react");
|
|
11
12
|
react = require_runtime.__toESM(react);
|
|
12
13
|
let classnames = require("classnames");
|
|
@@ -21,10 +22,20 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
21
22
|
*/
|
|
22
23
|
const componentName = "CardFooter";
|
|
23
24
|
/**
|
|
24
|
-
* CardFooter component - Footer section of the card
|
|
25
|
+
* CardFooter component - Footer section of the card.
|
|
26
|
+
*
|
|
27
|
+
* Not supported inside a `clickable` card. A clickable card renders its own
|
|
28
|
+
* built-in footer affordance automatically. Use the `renderFooterIcon` prop on
|
|
29
|
+
* `Card` to customize the icon.
|
|
25
30
|
*/
|
|
26
31
|
const CardFooter = (0, react.forwardRef)(({ className, children, ...rest }, ref) => {
|
|
27
|
-
const
|
|
32
|
+
const prefix = require_usePrefix.usePrefix();
|
|
33
|
+
const { clickable } = require_CardContext.useCardContext();
|
|
34
|
+
if (clickable) {
|
|
35
|
+
console.error("[Card] `Card.Footer` cannot be used inside a `clickable` card. A clickable card renders its own footer affordance automatically. Use the `renderFooterIcon` prop on `Card` to customize the icon.");
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const footerClasses = (0, classnames.default)(`${prefix}--card__footer`, className);
|
|
28
39
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
29
40
|
...rest,
|
|
30
41
|
ref,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import React, { ReactNode } from 'react';
|
|
8
|
-
export interface CardTitleProps {
|
|
8
|
+
export interface CardTitleProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
9
9
|
/**
|
|
10
10
|
* Provide the contents of the CardTitle.
|
|
11
11
|
*/
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import React, { type ReactNode } from 'react';
|
|
8
8
|
import flatpickr from 'flatpickr';
|
|
9
|
-
import { DateLimit, DateOption } from 'flatpickr/dist/types/options';
|
|
9
|
+
import type { DateLimit, DateOption } from 'flatpickr/dist/types/options';
|
|
10
10
|
import { type SupportedLocale } from './DatePickerLocales';
|
|
11
11
|
export type DatePickerTypes = 'simple' | 'single' | 'range';
|
|
12
12
|
export interface DatePickerProps {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import { type Config } from 'flatpickr/dist/plugins/rangePlugin';
|
|
8
|
-
import { Instance } from 'flatpickr/dist/types/instance';
|
|
8
|
+
import type { Instance } from 'flatpickr/dist/types/instance';
|
|
9
9
|
/**
|
|
10
10
|
* @param config Plugin configuration.
|
|
11
11
|
* @returns An extension of Flatpickr `rangePlugin` that does the following:
|
|
@@ -57,13 +57,13 @@ function FileUploaderDropContainer({ accept = [], className, id, disabled, label
|
|
|
57
57
|
return acc.concat([curr]);
|
|
58
58
|
}, []);
|
|
59
59
|
}
|
|
60
|
-
const
|
|
61
|
-
if (!files.length) return
|
|
62
|
-
return
|
|
60
|
+
const getAddedFiles = (files) => {
|
|
61
|
+
if (!files.length) return [];
|
|
62
|
+
return validateFiles(multiple ? files : [files[0]]);
|
|
63
63
|
};
|
|
64
64
|
const handleChange = (event) => {
|
|
65
65
|
const files = [...event.target.files ?? []];
|
|
66
|
-
return
|
|
66
|
+
return onAddFiles(event, { addedFiles: getAddedFiles(files) });
|
|
67
67
|
};
|
|
68
68
|
const handleDrop = (event) => {
|
|
69
69
|
const items = [...event.dataTransfer.items ?? []];
|
|
@@ -74,7 +74,13 @@ function FileUploaderDropContainer({ accept = [], className, id, disabled, label
|
|
|
74
74
|
if (file) acc.push(file);
|
|
75
75
|
return acc;
|
|
76
76
|
}, []) : [...event.dataTransfer.files];
|
|
77
|
-
|
|
77
|
+
const addedFiles = getAddedFiles(files);
|
|
78
|
+
if (inputRef.current) try {
|
|
79
|
+
const dataTransfer = new DataTransfer();
|
|
80
|
+
addedFiles.forEach((file) => dataTransfer.items.add(file));
|
|
81
|
+
inputRef.current.files = dataTransfer.files;
|
|
82
|
+
} catch {}
|
|
83
|
+
return onAddFiles(event, { addedFiles });
|
|
78
84
|
};
|
|
79
85
|
const handleClick = () => {
|
|
80
86
|
if (!disabled) inputRef.current?.click();
|
|
@@ -16,7 +16,7 @@ export interface FormLabelProps extends Omit<React.LabelHTMLAttributes<HTMLLabel
|
|
|
16
16
|
*/
|
|
17
17
|
className?: string;
|
|
18
18
|
/**
|
|
19
|
-
* Provide a unique id for the given
|
|
19
|
+
* Provide a unique id for the given `FormLabel`
|
|
20
20
|
*/
|
|
21
21
|
id?: string;
|
|
22
22
|
}
|
|
@@ -32,7 +32,7 @@ declare namespace FormLabel {
|
|
|
32
32
|
*/
|
|
33
33
|
className: PropTypes.Requireable<string>;
|
|
34
34
|
/**
|
|
35
|
-
* Provide a unique id for the given
|
|
35
|
+
* Provide a unique id for the given `FormLabel`
|
|
36
36
|
*/
|
|
37
37
|
id: PropTypes.Requireable<string>;
|
|
38
38
|
};
|
|
@@ -197,6 +197,7 @@ function TabList({ activation = "automatic", "aria-label": label, children, clas
|
|
|
197
197
|
const ref = (0, react.useRef)(null);
|
|
198
198
|
const previousButton = (0, react.useRef)(null);
|
|
199
199
|
const nextButton = (0, react.useRef)(null);
|
|
200
|
+
const resizeAnimationFrame = (0, react.useRef)(null);
|
|
200
201
|
const [isScrollable, setIsScrollable] = (0, react.useState)(false);
|
|
201
202
|
const [scrollLeft, setScrollLeft] = (0, react.useState)(0);
|
|
202
203
|
const hasSecondaryLabelTabs = contained && react.Children.toArray(children).some((child) => require_utils.isComponentElement(child, Tab) && typeof child.props.secondaryLabel !== "undefined");
|
|
@@ -302,9 +303,19 @@ function TabList({ activation = "automatic", "aria-label": label, children, clas
|
|
|
302
303
|
const element = containerRef.current;
|
|
303
304
|
if (!element) return;
|
|
304
305
|
updateOverflowState();
|
|
305
|
-
const resizeObserver = new ResizeObserver(
|
|
306
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
307
|
+
if (resizeAnimationFrame.current !== null) cancelAnimationFrame(resizeAnimationFrame.current);
|
|
308
|
+
resizeAnimationFrame.current = requestAnimationFrame(() => {
|
|
309
|
+
resizeAnimationFrame.current = null;
|
|
310
|
+
updateOverflowState();
|
|
311
|
+
});
|
|
312
|
+
});
|
|
306
313
|
resizeObserver.observe(element);
|
|
307
314
|
return () => {
|
|
315
|
+
if (resizeAnimationFrame.current !== null) {
|
|
316
|
+
cancelAnimationFrame(resizeAnimationFrame.current);
|
|
317
|
+
resizeAnimationFrame.current = null;
|
|
318
|
+
}
|
|
308
319
|
resizeObserver.disconnect();
|
|
309
320
|
};
|
|
310
321
|
}, [updateOverflowState]);
|
|
@@ -865,7 +876,7 @@ const IconTab = react.default.forwardRef(({ badgeIndicator, children, className:
|
|
|
865
876
|
className: `${prefix}--icon-tooltip`,
|
|
866
877
|
enterDelayMs,
|
|
867
878
|
label,
|
|
868
|
-
leaveDelayMs,
|
|
879
|
+
leaveDelayMs: leaveDelayMs ?? 0,
|
|
869
880
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tab, {
|
|
870
881
|
className: classNames,
|
|
871
882
|
ref,
|
|
@@ -201,7 +201,7 @@ ClickableTile.propTypes = {
|
|
|
201
201
|
*/
|
|
202
202
|
renderIcon: prop_types.default.oneOfType([prop_types.default.func, prop_types.default.object])
|
|
203
203
|
};
|
|
204
|
-
const SelectableTile = react.default.forwardRef(({ children, className, decorator, disabled, id, light, onClick = () => {}, onChange = () => {}, onKeyDown = () => {}, selected = false, tabIndex = 0, title
|
|
204
|
+
const SelectableTile = react.default.forwardRef(({ children, className, decorator, disabled, id, light, onClick = () => {}, onChange = () => {}, onKeyDown = () => {}, selected = false, tabIndex = 0, title, slug, hasRoundedCorners, ...rest }, ref) => {
|
|
205
205
|
const prefix = require_usePrefix.usePrefix();
|
|
206
206
|
const clickHandler = onClick;
|
|
207
207
|
const keyDownHandler = onKeyDown;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright IBM Corp. 2016,
|
|
2
|
+
* Copyright IBM Corp. 2016, 2026
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import './feature-flags';
|
|
8
8
|
import './internal/warnAboutDeprecatedReactVersion';
|
|
9
9
|
export * from './components/Accordion';
|
|
10
|
+
export type { BigNumberProps as preview__BigNumberProps } from './components/BigNumber';
|
|
10
11
|
export * from './components/AccordionItem';
|
|
11
12
|
export * from './components/AspectRatio';
|
|
12
13
|
export * from './components/Breadcrumb';
|
package/lib/index.js
CHANGED
|
@@ -248,7 +248,7 @@ const require_AISkeletonText = require("./components/AISkeleton/AISkeletonText.j
|
|
|
248
248
|
const require_index$21 = require("./components/Theme/index.js");
|
|
249
249
|
//#region src/index.ts
|
|
250
250
|
/**
|
|
251
|
-
* Copyright IBM Corp. 2016,
|
|
251
|
+
* Copyright IBM Corp. 2016, 2026
|
|
252
252
|
*
|
|
253
253
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
254
254
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2022, 2022
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import { type ReactNode } from 'react';
|
|
8
|
+
interface DisplayBoxProps {
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
className?: string;
|
|
11
|
+
msg?: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export declare const DisplayBox: ({ children, className, msg }: DisplayBoxProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2025
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Returns the provided locale if it is supported by the runtime's
|
|
9
|
+
* `Intl.NumberFormat`, otherwise falls back to the provided fallback
|
|
10
|
+
* (or `'en-US'` when no fallback is given).
|
|
11
|
+
*/
|
|
12
|
+
export declare function getSupportedLocale(locale: string | undefined, fallback?: string): string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carbon/react",
|
|
3
3
|
"description": "React components for the Carbon Design System",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.115.0-rc.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -54,13 +54,13 @@
|
|
|
54
54
|
"sass": "^1.33.0"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@babel/runtime": "^
|
|
58
|
-
"@carbon/feature-flags": "^1.
|
|
59
|
-
"@carbon/icons-react": "^11.
|
|
60
|
-
"@carbon/layout": "^11.
|
|
61
|
-
"@carbon/motion": "^11.
|
|
62
|
-
"@carbon/styles": "^1.
|
|
63
|
-
"@carbon/utilities": "^0.
|
|
57
|
+
"@babel/runtime": "^8.0.0",
|
|
58
|
+
"@carbon/feature-flags": "^1.8.0-rc.0",
|
|
59
|
+
"@carbon/icons-react": "^11.87.0-rc.0",
|
|
60
|
+
"@carbon/layout": "^11.58.0-rc.0",
|
|
61
|
+
"@carbon/motion": "^11.51.0-rc.0",
|
|
62
|
+
"@carbon/styles": "^1.114.0-rc.0",
|
|
63
|
+
"@carbon/utilities": "^0.25.0-rc.0",
|
|
64
64
|
"@floating-ui/react": "^0.27.4",
|
|
65
65
|
"@ibm/telemetry-js": "^1.5.0",
|
|
66
66
|
"classnames": "2.5.1",
|
|
@@ -75,17 +75,17 @@
|
|
|
75
75
|
"tabbable": "^6.2.0"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
|
-
"@babel/core": "^
|
|
79
|
-
"@babel/plugin-proposal-export-default-from": "^
|
|
80
|
-
"@babel/plugin-transform-class-properties": "^
|
|
81
|
-
"@babel/plugin-transform-export-namespace-from": "^
|
|
82
|
-
"@babel/plugin-transform-react-constant-elements": "^
|
|
83
|
-
"@babel/preset-env": "^
|
|
84
|
-
"@babel/preset-react": "^
|
|
85
|
-
"@babel/preset-typescript": "^
|
|
78
|
+
"@babel/core": "^8.0.0",
|
|
79
|
+
"@babel/plugin-proposal-export-default-from": "^8.0.0",
|
|
80
|
+
"@babel/plugin-transform-class-properties": "^8.0.0",
|
|
81
|
+
"@babel/plugin-transform-export-namespace-from": "^8.0.0",
|
|
82
|
+
"@babel/plugin-transform-react-constant-elements": "^8.0.0",
|
|
83
|
+
"@babel/preset-env": "^8.0.0",
|
|
84
|
+
"@babel/preset-react": "^8.0.0",
|
|
85
|
+
"@babel/preset-typescript": "^8.0.0",
|
|
86
86
|
"@carbon/test-utils": "^10.41.0",
|
|
87
|
-
"@carbon/themes": "^11.
|
|
88
|
-
"@figma/code-connect": "^
|
|
87
|
+
"@carbon/themes": "^11.80.0-rc.0",
|
|
88
|
+
"@figma/code-connect": "^2.0.0",
|
|
89
89
|
"@rolldown/plugin-babel": "^0.2.0",
|
|
90
90
|
"@stackblitz/sdk": "^1.11.0",
|
|
91
91
|
"@storybook/addon-a11y": "^10.3.5",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"@types/use-sync-external-store": "^1",
|
|
98
98
|
"@vitejs/plugin-react": "^6.0.0",
|
|
99
99
|
"babel-plugin-dev-expression": "^0.2.3",
|
|
100
|
-
"babel-preset-carbon": "^0.
|
|
100
|
+
"babel-preset-carbon": "^0.9.0-rc.0",
|
|
101
101
|
"browserify-zlib": "^0.2.0",
|
|
102
102
|
"browserslist-config-carbon": "^11.2.0",
|
|
103
103
|
"enquirer": "^2.3.6",
|
|
@@ -132,5 +132,5 @@
|
|
|
132
132
|
"**/*.scss",
|
|
133
133
|
"**/*.css"
|
|
134
134
|
],
|
|
135
|
-
"gitHead": "
|
|
135
|
+
"gitHead": "e848b98936051ac0026fb83551c91bfe603c589c"
|
|
136
136
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Code generated by @carbon/react. DO NOT EDIT.
|
|
2
|
+
//
|
|
3
|
+
// Copyright IBM Corp. 2018, 2023
|
|
4
|
+
//
|
|
5
|
+
// This source code is licensed under the Apache-2.0 license found in the
|
|
6
|
+
// LICENSE file in the root directory of this source tree.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
@forward '@carbon/styles/scss/border-radius';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Code generated by @carbon/react. DO NOT EDIT.
|
|
2
|
+
//
|
|
3
|
+
// Copyright IBM Corp. 2026
|
|
4
|
+
//
|
|
5
|
+
// This source code is licensed under the Apache-2.0 license found in the
|
|
6
|
+
// LICENSE file in the root directory of this source tree.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
@forward '@carbon/styles/scss/components/big-number/big-number';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Code generated by @carbon/react. DO NOT EDIT.
|
|
2
|
+
//
|
|
3
|
+
// Copyright IBM Corp. 2026
|
|
4
|
+
//
|
|
5
|
+
// This source code is licensed under the Apache-2.0 license found in the
|
|
6
|
+
// LICENSE file in the root directory of this source tree.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
@forward '@carbon/styles/scss/components/big-number';
|