@trackunit/react-modal 1.25.1 → 1.25.2
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/index.cjs.js
CHANGED
|
@@ -414,8 +414,8 @@ const cvaModalBodyContainer = cssClassVarianceUtilities.cvaMerge([
|
|
|
414
414
|
* @param {string} [props."data-testid"] Optional test id for the container.
|
|
415
415
|
* @returns {ReactElement} Modal body wrapper element.
|
|
416
416
|
*/
|
|
417
|
-
const ModalBody = react.forwardRef(({ children, id, "data-testid": dataTestId, className }, ref) => {
|
|
418
|
-
return (jsxRuntime.jsx("div", { className: cvaModalBodyContainer({ className }), "data-modal-body": true, "data-testid": dataTestId, id: id, ref: ref, children: children }));
|
|
417
|
+
const ModalBody = react.forwardRef(({ children, id, "data-testid": dataTestId, className, style }, ref) => {
|
|
418
|
+
return (jsxRuntime.jsx("div", { className: cvaModalBodyContainer({ className }), "data-modal-body": true, "data-testid": dataTestId, id: id, ref: ref, style: style, children: children }));
|
|
419
419
|
});
|
|
420
420
|
|
|
421
421
|
const cvaModalFooterContainer = cssClassVarianceUtilities.cvaMerge([
|
|
@@ -499,14 +499,14 @@ function isCustom(props) {
|
|
|
499
499
|
* @returns {ReactElement} Modal footer container element.
|
|
500
500
|
*/
|
|
501
501
|
const ModalFooter = react.forwardRef((props, ref) => {
|
|
502
|
-
const { "data-testid": dataTestId, className } = props;
|
|
502
|
+
const { "data-testid": dataTestId, className, style } = props;
|
|
503
503
|
if (isCustom(props)) {
|
|
504
504
|
// Branch with children: everything else is not required
|
|
505
|
-
return (jsxRuntime.jsx("div", { className: cvaModalFooterContainer({ className }), "data-modal-footer": true, "data-testid": dataTestId, ref: ref, children: props.children }));
|
|
505
|
+
return (jsxRuntime.jsx("div", { className: cvaModalFooterContainer({ className }), "data-modal-footer": true, "data-testid": dataTestId, ref: ref, style: style, children: props.children }));
|
|
506
506
|
}
|
|
507
507
|
// Branch with built-in buttons
|
|
508
508
|
const { onCancel: onClickCancel, cancelLabel, primaryLabel, primaryAction, primaryVariant = "primary", primaryLoading = false, primaryDisabled = false, primaryFormId, secondaryLabel, secondaryAction, secondaryVariant = "secondary", secondaryLoading = false, secondaryDisabled = false, primaryName, secondaryName, cancelName, } = props;
|
|
509
|
-
return (jsxRuntime.jsxs("div", { className: cvaModalFooterContainer({ className }), "data-modal-footer": true, "data-testid": dataTestId, children: [jsxRuntime.jsx(reactComponents.Button, { "data-testid": dataTestId ? `${dataTestId}-cancel` : undefined, disabled: secondaryLoading || primaryLoading, name: cancelName, onClick: onClickCancel, variant: "ghost-neutral", children: cancelLabel }), secondaryLabel && secondaryAction ? (jsxRuntime.jsx(reactComponents.Button, { "data-testid": dataTestId ? `${dataTestId}-secondary` : undefined, disabled: primaryLoading || secondaryDisabled, loading: secondaryLoading, name: secondaryName,
|
|
509
|
+
return (jsxRuntime.jsxs("div", { className: cvaModalFooterContainer({ className }), "data-modal-footer": true, "data-testid": dataTestId, style: style, children: [jsxRuntime.jsx(reactComponents.Button, { "data-testid": dataTestId ? `${dataTestId}-cancel` : undefined, disabled: secondaryLoading || primaryLoading, name: cancelName, onClick: onClickCancel, variant: "ghost-neutral", children: cancelLabel }), secondaryLabel && secondaryAction ? (jsxRuntime.jsx(reactComponents.Button, { "data-testid": dataTestId ? `${dataTestId}-secondary` : undefined, disabled: primaryLoading || secondaryDisabled, loading: secondaryLoading, name: secondaryName,
|
|
510
510
|
// eslint-disable-next-line @trackunit/prefer-event-specific-callback-naming
|
|
511
511
|
onClick: secondaryAction, role: "button", variant: secondaryVariant, children: secondaryLabel })) : null, primaryLabel ? (jsxRuntime.jsx(reactComponents.Button, { "data-testid": dataTestId ? `${dataTestId}-primary` : undefined, disabled: secondaryLoading || primaryDisabled, form: primaryFormId, loading: primaryLoading, name: primaryName,
|
|
512
512
|
// eslint-disable-next-line @trackunit/prefer-event-specific-callback-naming
|
|
@@ -570,10 +570,10 @@ const cvaIconContainer = cssClassVarianceUtilities.cvaMerge(["flex", "place-item
|
|
|
570
570
|
* @param {string} [props.className] Optional additional class name(s).
|
|
571
571
|
* @returns The modal header element.
|
|
572
572
|
*/
|
|
573
|
-
const ModalHeader = react.forwardRef(({ heading, subHeading, onClickClose, "data-testid": dataTestId, className, id, children, accessories, }, ref) => {
|
|
573
|
+
const ModalHeader = react.forwardRef(({ heading, subHeading, onClickClose, "data-testid": dataTestId, className, style, id, children, accessories, }, ref) => {
|
|
574
574
|
return (jsxRuntime.jsxs("div", { className: cvaContainer({
|
|
575
575
|
className,
|
|
576
|
-
}), "data-testid": dataTestId, id: id, ref: ref, children: [jsxRuntime.jsxs("div", { className: cvaHeadingContainer(), children: [jsxRuntime.jsxs("div", { className: cvaTitleContainer(), children: [jsxRuntime.jsx(reactComponents.Heading, { variant: "tertiary", children: heading }), accessories] }), Boolean(subHeading) ? (jsxRuntime.jsx(reactComponents.Text, { size: "small", subtle: true, children: subHeading })) : null, children] }), jsxRuntime.jsx("div", { className: cvaIconContainer(), children: jsxRuntime.jsx(reactComponents.IconButton, { className: "!h-min", "data-testid": dataTestId ? `${dataTestId}-close-button` : "modal-close-button", icon: jsxRuntime.jsx(reactComponents.Icon, { name: "XMark", size: "small" }), onClick: onClickClose, size: "small", variant: "ghost-neutral" }) })] }));
|
|
576
|
+
}), "data-testid": dataTestId, id: id, ref: ref, style: style, children: [jsxRuntime.jsxs("div", { className: cvaHeadingContainer(), children: [jsxRuntime.jsxs("div", { className: cvaTitleContainer(), children: [jsxRuntime.jsx(reactComponents.Heading, { variant: "tertiary", children: heading }), accessories] }), Boolean(subHeading) ? (jsxRuntime.jsx(reactComponents.Text, { size: "small", subtle: true, children: subHeading })) : null, children] }), jsxRuntime.jsx("div", { className: cvaIconContainer(), children: jsxRuntime.jsx(reactComponents.IconButton, { className: "!h-min", "data-testid": dataTestId ? `${dataTestId}-close-button` : "modal-close-button", icon: jsxRuntime.jsx(reactComponents.Icon, { name: "XMark", size: "small" }), onClick: onClickClose, size: "small", variant: "ghost-neutral" }) })] }));
|
|
577
577
|
});
|
|
578
578
|
|
|
579
579
|
/**
|
package/index.esm.js
CHANGED
|
@@ -412,8 +412,8 @@ const cvaModalBodyContainer = cvaMerge([
|
|
|
412
412
|
* @param {string} [props."data-testid"] Optional test id for the container.
|
|
413
413
|
* @returns {ReactElement} Modal body wrapper element.
|
|
414
414
|
*/
|
|
415
|
-
const ModalBody = forwardRef(({ children, id, "data-testid": dataTestId, className }, ref) => {
|
|
416
|
-
return (jsx("div", { className: cvaModalBodyContainer({ className }), "data-modal-body": true, "data-testid": dataTestId, id: id, ref: ref, children: children }));
|
|
415
|
+
const ModalBody = forwardRef(({ children, id, "data-testid": dataTestId, className, style }, ref) => {
|
|
416
|
+
return (jsx("div", { className: cvaModalBodyContainer({ className }), "data-modal-body": true, "data-testid": dataTestId, id: id, ref: ref, style: style, children: children }));
|
|
417
417
|
});
|
|
418
418
|
|
|
419
419
|
const cvaModalFooterContainer = cvaMerge([
|
|
@@ -497,14 +497,14 @@ function isCustom(props) {
|
|
|
497
497
|
* @returns {ReactElement} Modal footer container element.
|
|
498
498
|
*/
|
|
499
499
|
const ModalFooter = forwardRef((props, ref) => {
|
|
500
|
-
const { "data-testid": dataTestId, className } = props;
|
|
500
|
+
const { "data-testid": dataTestId, className, style } = props;
|
|
501
501
|
if (isCustom(props)) {
|
|
502
502
|
// Branch with children: everything else is not required
|
|
503
|
-
return (jsx("div", { className: cvaModalFooterContainer({ className }), "data-modal-footer": true, "data-testid": dataTestId, ref: ref, children: props.children }));
|
|
503
|
+
return (jsx("div", { className: cvaModalFooterContainer({ className }), "data-modal-footer": true, "data-testid": dataTestId, ref: ref, style: style, children: props.children }));
|
|
504
504
|
}
|
|
505
505
|
// Branch with built-in buttons
|
|
506
506
|
const { onCancel: onClickCancel, cancelLabel, primaryLabel, primaryAction, primaryVariant = "primary", primaryLoading = false, primaryDisabled = false, primaryFormId, secondaryLabel, secondaryAction, secondaryVariant = "secondary", secondaryLoading = false, secondaryDisabled = false, primaryName, secondaryName, cancelName, } = props;
|
|
507
|
-
return (jsxs("div", { className: cvaModalFooterContainer({ className }), "data-modal-footer": true, "data-testid": dataTestId, children: [jsx(Button, { "data-testid": dataTestId ? `${dataTestId}-cancel` : undefined, disabled: secondaryLoading || primaryLoading, name: cancelName, onClick: onClickCancel, variant: "ghost-neutral", children: cancelLabel }), secondaryLabel && secondaryAction ? (jsx(Button, { "data-testid": dataTestId ? `${dataTestId}-secondary` : undefined, disabled: primaryLoading || secondaryDisabled, loading: secondaryLoading, name: secondaryName,
|
|
507
|
+
return (jsxs("div", { className: cvaModalFooterContainer({ className }), "data-modal-footer": true, "data-testid": dataTestId, style: style, children: [jsx(Button, { "data-testid": dataTestId ? `${dataTestId}-cancel` : undefined, disabled: secondaryLoading || primaryLoading, name: cancelName, onClick: onClickCancel, variant: "ghost-neutral", children: cancelLabel }), secondaryLabel && secondaryAction ? (jsx(Button, { "data-testid": dataTestId ? `${dataTestId}-secondary` : undefined, disabled: primaryLoading || secondaryDisabled, loading: secondaryLoading, name: secondaryName,
|
|
508
508
|
// eslint-disable-next-line @trackunit/prefer-event-specific-callback-naming
|
|
509
509
|
onClick: secondaryAction, role: "button", variant: secondaryVariant, children: secondaryLabel })) : null, primaryLabel ? (jsx(Button, { "data-testid": dataTestId ? `${dataTestId}-primary` : undefined, disabled: secondaryLoading || primaryDisabled, form: primaryFormId, loading: primaryLoading, name: primaryName,
|
|
510
510
|
// eslint-disable-next-line @trackunit/prefer-event-specific-callback-naming
|
|
@@ -568,10 +568,10 @@ const cvaIconContainer = cvaMerge(["flex", "place-items-center"]);
|
|
|
568
568
|
* @param {string} [props.className] Optional additional class name(s).
|
|
569
569
|
* @returns The modal header element.
|
|
570
570
|
*/
|
|
571
|
-
const ModalHeader = forwardRef(({ heading, subHeading, onClickClose, "data-testid": dataTestId, className, id, children, accessories, }, ref) => {
|
|
571
|
+
const ModalHeader = forwardRef(({ heading, subHeading, onClickClose, "data-testid": dataTestId, className, style, id, children, accessories, }, ref) => {
|
|
572
572
|
return (jsxs("div", { className: cvaContainer({
|
|
573
573
|
className,
|
|
574
|
-
}), "data-testid": dataTestId, id: id, ref: ref, children: [jsxs("div", { className: cvaHeadingContainer(), children: [jsxs("div", { className: cvaTitleContainer(), children: [jsx(Heading, { variant: "tertiary", children: heading }), accessories] }), Boolean(subHeading) ? (jsx(Text, { size: "small", subtle: true, children: subHeading })) : null, children] }), jsx("div", { className: cvaIconContainer(), children: jsx(IconButton, { className: "!h-min", "data-testid": dataTestId ? `${dataTestId}-close-button` : "modal-close-button", icon: jsx(Icon, { name: "XMark", size: "small" }), onClick: onClickClose, size: "small", variant: "ghost-neutral" }) })] }));
|
|
574
|
+
}), "data-testid": dataTestId, id: id, ref: ref, style: style, children: [jsxs("div", { className: cvaHeadingContainer(), children: [jsxs("div", { className: cvaTitleContainer(), children: [jsx(Heading, { variant: "tertiary", children: heading }), accessories] }), Boolean(subHeading) ? (jsx(Text, { size: "small", subtle: true, children: subHeading })) : null, children] }), jsx("div", { className: cvaIconContainer(), children: jsx(IconButton, { className: "!h-min", "data-testid": dataTestId ? `${dataTestId}-close-button` : "modal-close-button", icon: jsx(Icon, { name: "XMark", size: "small" }), onClick: onClickClose, size: "small", variant: "ghost-neutral" }) })] }));
|
|
575
575
|
});
|
|
576
576
|
|
|
577
577
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CommonProps } from "@trackunit/react-components";
|
|
1
|
+
import { CommonProps, type Styleable } from "@trackunit/react-components";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
|
-
export interface ModalBodyProps extends CommonProps {
|
|
3
|
+
export interface ModalBodyProps extends CommonProps, Styleable {
|
|
4
4
|
/**
|
|
5
5
|
* Content to render inside the modal body. Accepts any React nodes.
|
|
6
6
|
* Typically text, lists, forms or other components.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CommonProps } from "@trackunit/react-components";
|
|
1
|
+
import { CommonProps, type Styleable } from "@trackunit/react-components";
|
|
2
2
|
import { MouseEventHandler, ReactNode } from "react";
|
|
3
|
-
interface ModalFooterBuiltInProps extends CommonProps {
|
|
3
|
+
interface ModalFooterBuiltInProps extends CommonProps, Styleable {
|
|
4
4
|
children?: null | undefined;
|
|
5
5
|
/**
|
|
6
6
|
* Click handler for the Cancel button.
|
|
@@ -66,7 +66,7 @@ interface ModalFooterBuiltInProps extends CommonProps {
|
|
|
66
66
|
secondaryName?: string;
|
|
67
67
|
cancelName?: string;
|
|
68
68
|
}
|
|
69
|
-
interface ModalFooterCustomProps extends CommonProps {
|
|
69
|
+
interface ModalFooterCustomProps extends CommonProps, Styleable {
|
|
70
70
|
children: ReactNode;
|
|
71
71
|
onCancel?: never;
|
|
72
72
|
cancelLabel?: never;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CommonProps } from "@trackunit/react-components";
|
|
1
|
+
import { CommonProps, type Styleable } from "@trackunit/react-components";
|
|
2
2
|
import { MouseEventHandler, ReactNode } from "react";
|
|
3
|
-
export interface ModalHeaderProps extends CommonProps {
|
|
3
|
+
export interface ModalHeaderProps extends CommonProps, Styleable {
|
|
4
4
|
/**
|
|
5
5
|
* Main title displayed in the modal header.
|
|
6
6
|
*/
|