@trackunit/react-components 0.1.239 → 0.1.241

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
@@ -458,7 +458,7 @@ const cvaSpinnerContainer = cssClassVarianceUtilities.cvaMerge(["box-border", "p
458
458
  * @param {SpinnerProps} props - The props for the Spinner component
459
459
  * @returns {JSX.Element} Spinner component
460
460
  */
461
- const Spinner = ({ mode = "light", size = "medium", centering = "centered", className, containerClassName, dataTestId, }) => {
461
+ const Spinner = ({ mode = "light", size = "medium", centering = "centered", className, containerClassName, dataTestId = "spinner", }) => {
462
462
  return (jsxRuntime.jsx("div", { className: cvaSpinnerContainer({ centering, className: containerClassName }), children: jsxRuntime.jsx("div", { role: "spinbutton", className: cvaSpinner({ size, mode, className }), "data-testid": dataTestId }) }));
463
463
  };
464
464
 
@@ -1008,34 +1008,29 @@ const CardHeader = ({ heading, headingVariant = "primary", subHeading, onClose,
1008
1008
  const cvaCollapse = cssClassVarianceUtilities.cvaMerge([
1009
1009
  "block",
1010
1010
  "w-full",
1011
- "border-b",
1011
+ "border",
1012
1012
  "border-solid",
1013
- "border-neutral-100",
1014
- "pb-3",
1015
- "mb-4",
1016
- "last:border-0",
1017
- "last:m-0",
1018
- "only:border-0",
1019
- "only:m-0",
1013
+ "border-secondary-200",
1014
+ "rounded",
1015
+ "overflow-hidden",
1020
1016
  ]);
1021
- const cvaCollapseLabel = cssClassVarianceUtilities.cvaMerge(["block", "w-full", "cursor-pointer"]);
1022
- const cvaCollapseLabelContainer = cssClassVarianceUtilities.cvaMerge(["flex", "items-center"], {
1023
- defaultVariants: { layout: "fullwidth" },
1024
- variants: { layout: { fullwidth: "justify-between", compact: "justify-start" } },
1017
+ const cvaCollapseHeader = cssClassVarianceUtilities.cvaMerge([
1018
+ "flex",
1019
+ "w-full",
1020
+ "items-center",
1021
+ "justify-between",
1022
+ "cursor-pointer",
1023
+ "bg-secondary-50",
1024
+ "px-4",
1025
+ "gap-4",
1026
+ "py-2",
1027
+ "transition-all",
1028
+ ], {
1029
+ variants: { expanded: { true: ["border-secondary-200", "border-b", "border-solid"], false: "" } },
1025
1030
  });
1026
- cssClassVarianceUtilities.cvaMerge(["block", "relative", "w-full", "mt-1", "p-1"]);
1031
+ const cvaCollapseLabelContainer = cssClassVarianceUtilities.cvaMerge(["flex", "items-center", "gap-2"]);
1032
+ const cvaCollapsible = cssClassVarianceUtilities.cvaMerge(["block", "relative", "w-full", "p-4"]);
1027
1033
  const cvaCollapseAnimated = cssClassVarianceUtilities.cvaMerge(["overflow-y-hidden", "transition-all"]);
1028
- const cvaCollapseIcon = cssClassVarianceUtilities.cvaMerge(["ease-in-out", "duration-200"], {
1029
- variants: {
1030
- expanded: {
1031
- false: "",
1032
- true: "rotate-180",
1033
- },
1034
- },
1035
- defaultVariants: {
1036
- expanded: false,
1037
- },
1038
- });
1039
1034
 
1040
1035
  /**
1041
1036
  * The Collapse component is used to condense non-important information.
@@ -1043,7 +1038,7 @@ const cvaCollapseIcon = cssClassVarianceUtilities.cvaMerge(["ease-in-out", "dura
1043
1038
  * @param {CollapseProps} props - The props for the Collapse component
1044
1039
  * @returns {JSX.Element} Collapse component
1045
1040
  */
1046
- const Collapse = ({ id, initialExpanded = false, onToggle, label, children, layout = "fullwidth", className, dataTestId, }) => {
1041
+ const Collapse = ({ id, initialExpanded = false, onToggle, label, children, className, headerAddon, dataTestId, }) => {
1047
1042
  const [expanded, setExpanded] = React__namespace.useState(initialExpanded);
1048
1043
  const handleClick = React__namespace.useCallback((e) => {
1049
1044
  if (onToggle) {
@@ -1051,11 +1046,11 @@ const Collapse = ({ id, initialExpanded = false, onToggle, label, children, layo
1051
1046
  }
1052
1047
  setExpanded(!expanded);
1053
1048
  }, [expanded, onToggle]);
1054
- return (jsxRuntime.jsxs("div", { className: cvaCollapse({ className }), "data-testid": dataTestId, children: [jsxRuntime.jsx("div", { className: cvaCollapseLabel(), role: "button", "aria-expanded": expanded, "aria-controls": id, onClick: handleClick, children: jsxRuntime.jsxs("div", { className: cvaCollapseLabelContainer({ layout }), children: [jsxRuntime.jsx(Text, { type: "span", weight: "bold", children: label }), jsxRuntime.jsx(IconButton, { icon: jsxRuntime.jsx(Icon, { className: cvaCollapseIcon({ expanded }), name: "ChevronDown", size: "small" }), size: "medium", variant: "transparent", color: "secondary" })] }) }), jsxRuntime.jsx(Collapsible, { expanded: expanded, id: id, children: children })] }));
1049
+ return (jsxRuntime.jsxs("div", { className: cvaCollapse({ className }), "data-testid": dataTestId, children: [jsxRuntime.jsxs("div", { className: cvaCollapseHeader({ expanded }), role: "button", "aria-expanded": expanded, "aria-controls": id, onClick: handleClick, children: [jsxRuntime.jsxs("div", { className: cvaCollapseLabelContainer(), children: [jsxRuntime.jsx(Text, { type: "span", weight: "bold", children: label }), jsxRuntime.jsx(IconButton, { icon: jsxRuntime.jsx(Icon, { name: "ChevronUpDown", size: "small" }), size: "medium", variant: "transparent", color: "secondary" })] }), headerAddon ? headerAddon : null] }), jsxRuntime.jsx(Collapsible, { expanded: expanded, id: id, children: children })] }));
1055
1050
  };
1056
1051
  const Collapsible = ({ children, expanded, id }) => {
1057
1052
  const [ref, { height }] = reactUse.useMeasure();
1058
- return (jsxRuntime.jsx("div", { className: cvaCollapseAnimated(), id: id, style: { height: expanded ? height : "0" }, children: jsxRuntime.jsx("div", { className: cvaCollapse(), ref: ref, children: children }) }));
1053
+ return (jsxRuntime.jsx("div", { className: cvaCollapseAnimated(), id: id, style: { height: expanded ? height : "0" }, children: jsxRuntime.jsx("div", { ref: ref, children: jsxRuntime.jsx("div", { className: cvaCollapsible(), children: children }) }) }));
1059
1054
  };
1060
1055
 
1061
1056
  const cvaCopyableText = cssClassVarianceUtilities.cvaMerge([
package/index.esm.js CHANGED
@@ -428,7 +428,7 @@ const cvaSpinnerContainer = cvaMerge(["box-border", "p-0.5", "overflow-hidden"],
428
428
  * @param {SpinnerProps} props - The props for the Spinner component
429
429
  * @returns {JSX.Element} Spinner component
430
430
  */
431
- const Spinner = ({ mode = "light", size = "medium", centering = "centered", className, containerClassName, dataTestId, }) => {
431
+ const Spinner = ({ mode = "light", size = "medium", centering = "centered", className, containerClassName, dataTestId = "spinner", }) => {
432
432
  return (jsx("div", { className: cvaSpinnerContainer({ centering, className: containerClassName }), children: jsx("div", { role: "spinbutton", className: cvaSpinner({ size, mode, className }), "data-testid": dataTestId }) }));
433
433
  };
434
434
 
@@ -978,34 +978,29 @@ const CardHeader = ({ heading, headingVariant = "primary", subHeading, onClose,
978
978
  const cvaCollapse = cvaMerge([
979
979
  "block",
980
980
  "w-full",
981
- "border-b",
981
+ "border",
982
982
  "border-solid",
983
- "border-neutral-100",
984
- "pb-3",
985
- "mb-4",
986
- "last:border-0",
987
- "last:m-0",
988
- "only:border-0",
989
- "only:m-0",
983
+ "border-secondary-200",
984
+ "rounded",
985
+ "overflow-hidden",
990
986
  ]);
991
- const cvaCollapseLabel = cvaMerge(["block", "w-full", "cursor-pointer"]);
992
- const cvaCollapseLabelContainer = cvaMerge(["flex", "items-center"], {
993
- defaultVariants: { layout: "fullwidth" },
994
- variants: { layout: { fullwidth: "justify-between", compact: "justify-start" } },
987
+ const cvaCollapseHeader = cvaMerge([
988
+ "flex",
989
+ "w-full",
990
+ "items-center",
991
+ "justify-between",
992
+ "cursor-pointer",
993
+ "bg-secondary-50",
994
+ "px-4",
995
+ "gap-4",
996
+ "py-2",
997
+ "transition-all",
998
+ ], {
999
+ variants: { expanded: { true: ["border-secondary-200", "border-b", "border-solid"], false: "" } },
995
1000
  });
996
- cvaMerge(["block", "relative", "w-full", "mt-1", "p-1"]);
1001
+ const cvaCollapseLabelContainer = cvaMerge(["flex", "items-center", "gap-2"]);
1002
+ const cvaCollapsible = cvaMerge(["block", "relative", "w-full", "p-4"]);
997
1003
  const cvaCollapseAnimated = cvaMerge(["overflow-y-hidden", "transition-all"]);
998
- const cvaCollapseIcon = cvaMerge(["ease-in-out", "duration-200"], {
999
- variants: {
1000
- expanded: {
1001
- false: "",
1002
- true: "rotate-180",
1003
- },
1004
- },
1005
- defaultVariants: {
1006
- expanded: false,
1007
- },
1008
- });
1009
1004
 
1010
1005
  /**
1011
1006
  * The Collapse component is used to condense non-important information.
@@ -1013,7 +1008,7 @@ const cvaCollapseIcon = cvaMerge(["ease-in-out", "duration-200"], {
1013
1008
  * @param {CollapseProps} props - The props for the Collapse component
1014
1009
  * @returns {JSX.Element} Collapse component
1015
1010
  */
1016
- const Collapse = ({ id, initialExpanded = false, onToggle, label, children, layout = "fullwidth", className, dataTestId, }) => {
1011
+ const Collapse = ({ id, initialExpanded = false, onToggle, label, children, className, headerAddon, dataTestId, }) => {
1017
1012
  const [expanded, setExpanded] = React.useState(initialExpanded);
1018
1013
  const handleClick = React.useCallback((e) => {
1019
1014
  if (onToggle) {
@@ -1021,11 +1016,11 @@ const Collapse = ({ id, initialExpanded = false, onToggle, label, children, layo
1021
1016
  }
1022
1017
  setExpanded(!expanded);
1023
1018
  }, [expanded, onToggle]);
1024
- return (jsxs("div", { className: cvaCollapse({ className }), "data-testid": dataTestId, children: [jsx("div", { className: cvaCollapseLabel(), role: "button", "aria-expanded": expanded, "aria-controls": id, onClick: handleClick, children: jsxs("div", { className: cvaCollapseLabelContainer({ layout }), children: [jsx(Text, { type: "span", weight: "bold", children: label }), jsx(IconButton, { icon: jsx(Icon, { className: cvaCollapseIcon({ expanded }), name: "ChevronDown", size: "small" }), size: "medium", variant: "transparent", color: "secondary" })] }) }), jsx(Collapsible, { expanded: expanded, id: id, children: children })] }));
1019
+ return (jsxs("div", { className: cvaCollapse({ className }), "data-testid": dataTestId, children: [jsxs("div", { className: cvaCollapseHeader({ expanded }), role: "button", "aria-expanded": expanded, "aria-controls": id, onClick: handleClick, children: [jsxs("div", { className: cvaCollapseLabelContainer(), children: [jsx(Text, { type: "span", weight: "bold", children: label }), jsx(IconButton, { icon: jsx(Icon, { name: "ChevronUpDown", size: "small" }), size: "medium", variant: "transparent", color: "secondary" })] }), headerAddon ? headerAddon : null] }), jsx(Collapsible, { expanded: expanded, id: id, children: children })] }));
1025
1020
  };
1026
1021
  const Collapsible = ({ children, expanded, id }) => {
1027
1022
  const [ref, { height }] = useMeasure();
1028
- return (jsx("div", { className: cvaCollapseAnimated(), id: id, style: { height: expanded ? height : "0" }, children: jsx("div", { className: cvaCollapse(), ref: ref, children: children }) }));
1023
+ return (jsx("div", { className: cvaCollapseAnimated(), id: id, style: { height: expanded ? height : "0" }, children: jsx("div", { ref: ref, children: jsx("div", { className: cvaCollapsible(), children: children }) }) }));
1029
1024
  };
1030
1025
 
1031
1026
  const cvaCopyableText = cvaMerge([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-components",
3
- "version": "0.1.239",
3
+ "version": "0.1.241",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -19,9 +19,10 @@ export interface CollapseProps extends CommonProps {
19
19
  */
20
20
  label: React.ReactNode;
21
21
  /**
22
- * layout - The layout of the Collapse component. (full width is default)
22
+ * An addon to add to the header.
23
+ * This can be used for a status indicator or similar.
23
24
  */
24
- layout?: "fullwidth" | "compact";
25
+ headerAddon?: React.ReactNode;
25
26
  }
26
27
  /**
27
28
  * The Collapse component is used to condense non-important information.
@@ -29,4 +30,4 @@ export interface CollapseProps extends CommonProps {
29
30
  * @param {CollapseProps} props - The props for the Collapse component
30
31
  * @returns {JSX.Element} Collapse component
31
32
  */
32
- export declare const Collapse: ({ id, initialExpanded, onToggle, label, children, layout, className, dataTestId, }: CollapseProps) => JSX.Element;
33
+ export declare const Collapse: ({ id, initialExpanded, onToggle, label, children, className, headerAddon, dataTestId, }: CollapseProps) => JSX.Element;
@@ -1,10 +1,7 @@
1
1
  export declare const cvaCollapse: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
2
- export declare const cvaCollapseLabel: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
3
- export declare const cvaCollapseLabelContainer: (props?: ({
4
- layout?: "fullwidth" | "compact" | null | undefined;
2
+ export declare const cvaCollapseHeader: (props?: ({
3
+ expanded?: boolean | null | undefined;
5
4
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
5
+ export declare const cvaCollapseLabelContainer: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
6
6
  export declare const cvaCollapsible: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
7
7
  export declare const cvaCollapseAnimated: (props?: import("class-variance-authority/dist/types").ClassProp | undefined) => string;
8
- export declare const cvaCollapseIcon: (props?: ({
9
- expanded?: boolean | null | undefined;
10
- } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;