@trackunit/react-components 0.1.289 → 0.1.291
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
|
@@ -12,6 +12,7 @@ var IconSpriteOutline = require('@trackunit/ui-icons/icons-sprite-outline.svg');
|
|
|
12
12
|
var IconSpriteSolid = require('@trackunit/ui-icons/icons-sprite-solid.svg');
|
|
13
13
|
var stringTs = require('string-ts');
|
|
14
14
|
var cssClassVarianceUtilities = require('@trackunit/css-class-variance-utilities');
|
|
15
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
15
16
|
var reactUse = require('react-use');
|
|
16
17
|
var reactDayPicker = require('react-day-picker');
|
|
17
18
|
var tailwindMerge = require('tailwind-merge');
|
|
@@ -714,13 +715,18 @@ const cvaIconButton = cssClassVarianceUtilities.cvaMerge([], {
|
|
|
714
715
|
* @returns {JSX.Element} Button component
|
|
715
716
|
*/
|
|
716
717
|
const Button = React__namespace.forwardRef((_a, ref) => {
|
|
717
|
-
var { onClick, children, loading, disabled, className, fullWidth = false, prefix, suffix, variant = "primary", type = "button", size = "medium", square = false, dataTestId, title, role, tabIndex,
|
|
718
|
-
|
|
718
|
+
var { onClick, children, loading, disabled, className, fullWidth = false, prefix, suffix, variant = "primary", type = "button", size = "medium", square = false, dataTestId, title, role, tabIndex, asChild = false, circular } = _a, rest = __rest(_a, ["onClick", "children", "loading", "disabled", "className", "fullWidth", "prefix", "suffix", "variant", "type", "size", "square", "dataTestId", "title", "role", "tabIndex", "asChild", "circular"]);
|
|
719
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
720
|
+
const sharedCompProps = Object.assign({ ref,
|
|
719
721
|
title,
|
|
720
|
-
type,
|
|
721
722
|
role,
|
|
722
723
|
onClick,
|
|
723
|
-
tabIndex,
|
|
724
|
+
tabIndex, className: cvaButton({ rounded: circular, disabled, size, square, variant, loading, fullWidth, className }), "aria-label": title, "aria-disabled": disabled || loading, "data-testid": dataTestId }, rest);
|
|
725
|
+
const buttonSpecificProps = {
|
|
726
|
+
disabled: disabled || loading,
|
|
727
|
+
type,
|
|
728
|
+
};
|
|
729
|
+
return (jsxRuntime.jsxs(Comp, Object.assign({}, sharedCompProps, (asChild ? {} : buttonSpecificProps), { children: [loading ? (jsxRuntime.jsx(Spinner, { centering: "vertically", className: cvaButtonSpinner({ variant }), containerClassName: cvaButtonSpinnerContainer(), size: "small" })) : null, prefix && !loading ? jsxRuntime.jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: prefix }) : null, jsxRuntime.jsx(reactSlot.Slottable, { children: children }), suffix && !loading ? jsxRuntime.jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: suffix }) : null] })));
|
|
724
730
|
});
|
|
725
731
|
Button.displayName = "Button";
|
|
726
732
|
|
|
@@ -1275,7 +1281,7 @@ const SkeletonLines = React.memo(({ margin = "10px 0", lines = 1, height, width
|
|
|
1275
1281
|
return height;
|
|
1276
1282
|
};
|
|
1277
1283
|
for (let i = 0; i < lines; i++) {
|
|
1278
|
-
skeletonLines.push(jsxRuntime.jsx("div", { className: cvaSkeletonLine({ className }), "data-testid": dataTestId
|
|
1284
|
+
skeletonLines.push(jsxRuntime.jsx("div", { className: cvaSkeletonLine({ className }), "data-testid": dataTestId ? `${dataTestId}-${i}` : `skeleton-lines-${i}`, "data-type": "loading-skeleton-line", style: { height: getHeight(i), width: getWidth(i), margin: lines > 1 ? margin : "" }, children: lines > 1 && jsxRuntime.jsx(jsxRuntime.Fragment, { children: "\u00A0" }) }, i));
|
|
1279
1285
|
}
|
|
1280
1286
|
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
1281
1287
|
return jsxRuntime.jsx(jsxRuntime.Fragment, { children: skeletonLines });
|
|
@@ -3351,7 +3357,7 @@ const PageHeader = ({ className, dataTestId, action, showLoading, description, l
|
|
|
3351
3357
|
return (jsxRuntime.jsxs("div", { className: cvaPageHeaderContainer({
|
|
3352
3358
|
className,
|
|
3353
3359
|
withBorder: !tabsList,
|
|
3354
|
-
}), "data-testid": dataTestId, children: [jsxRuntime.jsxs("div", { className: cvaPageHeader(), children: [jsxRuntime.jsxs("div", { className: cvaPageHeaderHeadingAccessoriesContainer(), "data-testid": dataTestId ? `${dataTestId}-heading-container` : undefined, children: [jsxRuntime.jsxs("div", { className: cvaPageHeaderHeadingContainer(), children: [backTo ? (jsxRuntime.jsx(
|
|
3360
|
+
}), "data-testid": dataTestId, children: [jsxRuntime.jsxs("div", { className: cvaPageHeader(), children: [jsxRuntime.jsxs("div", { className: cvaPageHeaderHeadingAccessoriesContainer(), "data-testid": dataTestId ? `${dataTestId}-heading-container` : undefined, children: [jsxRuntime.jsxs("div", { className: cvaPageHeaderHeadingContainer(), children: [backTo ? (jsxRuntime.jsx(Button, { asChild: true, prefix: jsxRuntime.jsx(Icon, { name: "ArrowLeft", size: "small" }), size: "small", variant: "ghost-neutral", children: jsxRuntime.jsx(reactRouter.Link, { to: backTo }) })) : undefined, jsxRuntime.jsx("h1", { className: cvaPageHeaderHeading(), "data-testid": dataTestId ? `${dataTestId}-heading` : undefined, children: title }), description && !showLoading ? (jsxRuntime.jsxs("div", { className: cvaPageHeaderDescriptionAndLinkContainer(), children: [jsxRuntime.jsx(Tooltip, { dataTestId: dataTestId ? `${dataTestId}-tooltip` : undefined, iconProps: { name: "QuestionMarkCircle" }, label: description, placement: "bottom" }), link ? (jsxRuntime.jsxs(reactRouter.Link, { className: cvaPageHeaderLink(), "data-testid": "tooltip-link", params: prev => prev, target: "_blank", to: link, children: [linkText, jsxRuntime.jsx(Icon, { name: "ArrowTopRightOnSquare", size: "small" })] })) : undefined] })) : undefined] }), tag && !showLoading ? (jsxRuntime.jsx(Tag, { color: tagColor, dataTestId: dataTestId ? `${dataTestId}-tag` : undefined, children: tag })) : undefined, showLoading ? (jsxRuntime.jsx(Spinner, { centering: "vertically", dataTestId: dataTestId ? `${dataTestId}-spinner` : undefined })) : null, action] }), children ? jsxRuntime.jsx("div", { className: cvaPageHeaderChildContainer(), children: children }) : null] }), tabsList] }));
|
|
3355
3361
|
};
|
|
3356
3362
|
|
|
3357
3363
|
const cvaPagination = cssClassVarianceUtilities.cvaMerge(["flex", "items-center", "gap-1"]);
|
package/index.esm.js
CHANGED
|
@@ -9,6 +9,7 @@ import IconSpriteOutline from '@trackunit/ui-icons/icons-sprite-outline.svg';
|
|
|
9
9
|
import IconSpriteSolid from '@trackunit/ui-icons/icons-sprite-solid.svg';
|
|
10
10
|
import { snakeCase } from 'string-ts';
|
|
11
11
|
import { cvaMerge } from '@trackunit/css-class-variance-utilities';
|
|
12
|
+
import { Slottable, Slot } from '@radix-ui/react-slot';
|
|
12
13
|
import { useMeasure, useCopyToClipboard, usePrevious } from 'react-use';
|
|
13
14
|
import { DayPicker as DayPicker$1 } from 'react-day-picker';
|
|
14
15
|
import { twMerge } from 'tailwind-merge';
|
|
@@ -683,13 +684,18 @@ const cvaIconButton = cvaMerge([], {
|
|
|
683
684
|
* @returns {JSX.Element} Button component
|
|
684
685
|
*/
|
|
685
686
|
const Button = React.forwardRef((_a, ref) => {
|
|
686
|
-
var { onClick, children, loading, disabled, className, fullWidth = false, prefix, suffix, variant = "primary", type = "button", size = "medium", square = false, dataTestId, title, role, tabIndex,
|
|
687
|
-
|
|
687
|
+
var { onClick, children, loading, disabled, className, fullWidth = false, prefix, suffix, variant = "primary", type = "button", size = "medium", square = false, dataTestId, title, role, tabIndex, asChild = false, circular } = _a, rest = __rest(_a, ["onClick", "children", "loading", "disabled", "className", "fullWidth", "prefix", "suffix", "variant", "type", "size", "square", "dataTestId", "title", "role", "tabIndex", "asChild", "circular"]);
|
|
688
|
+
const Comp = asChild ? Slot : "button";
|
|
689
|
+
const sharedCompProps = Object.assign({ ref,
|
|
688
690
|
title,
|
|
689
|
-
type,
|
|
690
691
|
role,
|
|
691
692
|
onClick,
|
|
692
|
-
tabIndex,
|
|
693
|
+
tabIndex, className: cvaButton({ rounded: circular, disabled, size, square, variant, loading, fullWidth, className }), "aria-label": title, "aria-disabled": disabled || loading, "data-testid": dataTestId }, rest);
|
|
694
|
+
const buttonSpecificProps = {
|
|
695
|
+
disabled: disabled || loading,
|
|
696
|
+
type,
|
|
697
|
+
};
|
|
698
|
+
return (jsxs(Comp, Object.assign({}, sharedCompProps, (asChild ? {} : buttonSpecificProps), { children: [loading ? (jsx(Spinner, { centering: "vertically", className: cvaButtonSpinner({ variant }), containerClassName: cvaButtonSpinnerContainer(), size: "small" })) : null, prefix && !loading ? jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: prefix }) : null, jsx(Slottable, { children: children }), suffix && !loading ? jsx("div", { className: cvaButtonPrefixSuffix({ size: size }), children: suffix }) : null] })));
|
|
693
699
|
});
|
|
694
700
|
Button.displayName = "Button";
|
|
695
701
|
|
|
@@ -1244,7 +1250,7 @@ const SkeletonLines = memo(({ margin = "10px 0", lines = 1, height, width = "100
|
|
|
1244
1250
|
return height;
|
|
1245
1251
|
};
|
|
1246
1252
|
for (let i = 0; i < lines; i++) {
|
|
1247
|
-
skeletonLines.push(jsx("div", { className: cvaSkeletonLine({ className }), "data-testid": dataTestId
|
|
1253
|
+
skeletonLines.push(jsx("div", { className: cvaSkeletonLine({ className }), "data-testid": dataTestId ? `${dataTestId}-${i}` : `skeleton-lines-${i}`, "data-type": "loading-skeleton-line", style: { height: getHeight(i), width: getWidth(i), margin: lines > 1 ? margin : "" }, children: lines > 1 && jsx(Fragment, { children: "\u00A0" }) }, i));
|
|
1248
1254
|
}
|
|
1249
1255
|
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
1250
1256
|
return jsx(Fragment, { children: skeletonLines });
|
|
@@ -3320,7 +3326,7 @@ const PageHeader = ({ className, dataTestId, action, showLoading, description, l
|
|
|
3320
3326
|
return (jsxs("div", { className: cvaPageHeaderContainer({
|
|
3321
3327
|
className,
|
|
3322
3328
|
withBorder: !tabsList,
|
|
3323
|
-
}), "data-testid": dataTestId, children: [jsxs("div", { className: cvaPageHeader(), children: [jsxs("div", { className: cvaPageHeaderHeadingAccessoriesContainer(), "data-testid": dataTestId ? `${dataTestId}-heading-container` : undefined, children: [jsxs("div", { className: cvaPageHeaderHeadingContainer(), children: [backTo ? (jsx(
|
|
3329
|
+
}), "data-testid": dataTestId, children: [jsxs("div", { className: cvaPageHeader(), children: [jsxs("div", { className: cvaPageHeaderHeadingAccessoriesContainer(), "data-testid": dataTestId ? `${dataTestId}-heading-container` : undefined, children: [jsxs("div", { className: cvaPageHeaderHeadingContainer(), children: [backTo ? (jsx(Button, { asChild: true, prefix: jsx(Icon, { name: "ArrowLeft", size: "small" }), size: "small", variant: "ghost-neutral", children: jsx(Link, { to: backTo }) })) : undefined, jsx("h1", { className: cvaPageHeaderHeading(), "data-testid": dataTestId ? `${dataTestId}-heading` : undefined, children: title }), description && !showLoading ? (jsxs("div", { className: cvaPageHeaderDescriptionAndLinkContainer(), children: [jsx(Tooltip, { dataTestId: dataTestId ? `${dataTestId}-tooltip` : undefined, iconProps: { name: "QuestionMarkCircle" }, label: description, placement: "bottom" }), link ? (jsxs(Link, { className: cvaPageHeaderLink(), "data-testid": "tooltip-link", params: prev => prev, target: "_blank", to: link, children: [linkText, jsx(Icon, { name: "ArrowTopRightOnSquare", size: "small" })] })) : undefined] })) : undefined] }), tag && !showLoading ? (jsx(Tag, { color: tagColor, dataTestId: dataTestId ? `${dataTestId}-tag` : undefined, children: tag })) : undefined, showLoading ? (jsx(Spinner, { centering: "vertically", dataTestId: dataTestId ? `${dataTestId}-spinner` : undefined })) : null, action] }), children ? jsx("div", { className: cvaPageHeaderChildContainer(), children: children }) : null] }), tabsList] }));
|
|
3324
3330
|
};
|
|
3325
3331
|
|
|
3326
3332
|
const cvaPagination = cvaMerge(["flex", "items-center", "gap-1"]);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/react-components",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.291",
|
|
4
4
|
"repository": "https://github.com/Trackunit/manager",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"engines": {
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@trackunit/ui-design-tokens": "*",
|
|
11
|
+
"@radix-ui/react-slot": "^1.0.2",
|
|
11
12
|
"react": "^18.2.0",
|
|
12
13
|
"@trackunit/css-class-variance-utilities": "*",
|
|
13
14
|
"react-use": "^17.4.0",
|
|
@@ -23,9 +23,9 @@ export interface ButtonProps extends ButtonCommonProps {
|
|
|
23
23
|
*/
|
|
24
24
|
type?: ButtonType;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* If true the button will render as the child element, and not be a button element
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
asChild?: boolean;
|
|
29
29
|
/**
|
|
30
30
|
* The Id of the form to submit, for button type submit
|
|
31
31
|
*/
|