@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
1
  {
2
2
  "name": "@trackunit/react-modal",
3
- "version": "1.25.1",
3
+ "version": "1.25.2",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -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
  */