@trackunit/react-components 0.4.9 → 0.4.11

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
@@ -10,7 +10,6 @@ var IconSpriteMini = require('@trackunit/ui-icons/icons-sprite-mini.svg');
10
10
  var IconSpriteOutline = require('@trackunit/ui-icons/icons-sprite-outline.svg');
11
11
  var IconSpriteSolid = require('@trackunit/ui-icons/icons-sprite-solid.svg');
12
12
  var stringTs = require('string-ts');
13
- var uuid = require('uuid');
14
13
  var cssClassVarianceUtilities = require('@trackunit/css-class-variance-utilities');
15
14
  var reactSlot = require('@radix-ui/react-slot');
16
15
  var isEqual = require('lodash/isEqual');
@@ -168,7 +167,7 @@ const isSafari = () => {
168
167
  */
169
168
  const Icon = ({ name, size = "large", className, dataTestId, color, onClick, type, style, forwardedRef, ariaLabel, fontSize, ariaLabelledBy, ariaDescribedBy, }) => {
170
169
  const useTagRef = React.useRef(null);
171
- const ICON_CONTAINER_ID = uuid.v4();
170
+ const ICON_CONTAINER_ID = sharedUtils.uuidv4();
172
171
  const correctIconType = React.useMemo(() => {
173
172
  if (size === "small") {
174
173
  return "micro";
@@ -1459,7 +1458,7 @@ const BreadcrumbForMediumScreen = ({ dataTestId, breadcrumbItems }) => {
1459
1458
  return reducedArrayElements;
1460
1459
  }, [breadcrumbItems, dataTestId]);
1461
1460
  const reducedArray = getReducedArray();
1462
- return (jsxRuntime.jsx("div", { className: cvaBreadcrumbForMediumScreen({ expanded }), "data-testid": dataTestId, children: (!expanded && reducedArray.length !== 0 ? reducedArray : breadcrumbItems).map(item => (jsxRuntime.jsx(BreadcrumbItem, { dataTestId: `breadcrumbItem-${dataTestId}`, item: item }, `${item.props.label}-${uuid.v4()}`))) }));
1461
+ return (jsxRuntime.jsx("div", { className: cvaBreadcrumbForMediumScreen({ expanded }), "data-testid": dataTestId, children: (!expanded && reducedArray.length !== 0 ? reducedArray : breadcrumbItems).map(item => (jsxRuntime.jsx(BreadcrumbItem, { dataTestId: `breadcrumbItem-${dataTestId}`, item: item }, `${item.props.label}-${sharedUtils.uuidv4()}`))) }));
1463
1462
  };
1464
1463
 
1465
1464
  /**
@@ -1522,7 +1521,7 @@ const BreadcrumbContainer = ({ dataTestId, breadcrumbItems }) => {
1522
1521
  * BreadcrumbItem is a helper component that renders the individual breadcrumb item.
1523
1522
  */
1524
1523
  const BreadcrumbItem = ({ item, dataTestId }) => {
1525
- const id = uuid.v4();
1524
+ const id = sharedUtils.uuidv4();
1526
1525
  return (jsxRuntime.jsx("div", { className: cvaBreadcrumbItem(), "data-testid": dataTestId, id: `${item.props.label}-${id}`, children: item }));
1527
1526
  };
1528
1527
 
@@ -1792,7 +1791,7 @@ const cvaChevronIcon = cssClassVarianceUtilities.cvaMerge(["transition-transform
1792
1791
  * @returns {JSX.Element} Collapse component
1793
1792
  */
1794
1793
  const Collapse = ({ id, initialExpanded = false, onToggle, label, children, className, headerClassName, headerAddon, dataTestId, }) => {
1795
- const LABEL_ID = uuid.v4();
1794
+ const LABEL_ID = sharedUtils.uuidv4();
1796
1795
  const [expanded, setExpanded] = React__namespace.useState(initialExpanded);
1797
1796
  const handleClick = React__namespace.useCallback((e) => {
1798
1797
  if (onToggle) {
@@ -4725,7 +4724,7 @@ function defaultHeader(date, showTime) {
4725
4724
  }
4726
4725
 
4727
4726
  const cvaToggleGroup = cssClassVarianceUtilities.cvaMerge(["inline-flex", "divide-x", "divide-slate-300"]);
4728
- const cvaToggleItem = cssClassVarianceUtilities.cvaMerge(["text-slate-600", "rounded-none", "bg-transparent", "flex", "border-x-0"], {
4727
+ const cvaToggleItem = cssClassVarianceUtilities.cvaMerge(["text-slate-600", "rounded-none", "bg-transparent", "flex", "border-x-0", "bg-white"], {
4729
4728
  variants: {
4730
4729
  selected: {
4731
4730
  true: ["bg-slate-200", "hover:bg-slate-200", "text-slate-800"],
@@ -4758,7 +4757,10 @@ const ToggleGroup = ({ list, selected, setSelected, onChange, disabled = false,
4758
4757
  onChange === null || onChange === void 0 ? void 0 : onChange(item.id);
4759
4758
  }, selected: selected === item.id, size: size, text: item.text, title: item.title, tooltip: item.tooltip }, item.id))) }));
4760
4759
  };
4761
- const ToggleItem = ({ title, onClick, disabled, isIconOnly, iconName, size, className, selected, text, tooltip, dataTestId, }) => {
4760
+ /**
4761
+ * Individual TooggleItem to create custom ToggleGroups
4762
+ */
4763
+ const ToggleItem = ({ title, onClick, disabled = false, isIconOnly = false, iconName, size, className, selected = false, text, tooltip, dataTestId, }) => {
4762
4764
  return isIconOnly ? (jsxRuntime.jsx(Tooltip, { label: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) || title, placement: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.placement) || "top", children: jsxRuntime.jsx(IconButton, { className: cvaToggleItem({ className, selected }), "data-testid": dataTestId, disabled: disabled, icon: iconName ? (jsxRuntime.jsx(Icon, { className: selected ? "text-slate-600" : "text-slate-400", name: iconName, size: "small" })) : null, onClick: onClick, size: size, title: iconName, variant: "secondary" }) })) : (jsxRuntime.jsx(Tooltip, { disabled: !(text === null || text === void 0 ? void 0 : text.truncate) && (tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) === undefined, label: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) || title, placement: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.placement) || "top", children: jsxRuntime.jsx(Button, { className: cvaToggleItem({ className, selected }), "data-testid": dataTestId, disabled: disabled, onClick: onClick, prefix: iconName ? (jsxRuntime.jsx(Icon, { className: selected ? "text-slate-600" : "text-slate-400", name: iconName, size: "small" })) : null, size: size, variant: "secondary", children: jsxRuntime.jsx("span", { className: cvaToggleItemText({ disabledAndSelected: disabled && selected, maxWidth: text === null || text === void 0 ? void 0 : text.maxWidth }), children: title }) }) }));
4763
4765
  };
4764
4766
 
@@ -5046,6 +5048,7 @@ exports.Text = Text;
5046
5048
  exports.Timeline = Timeline;
5047
5049
  exports.TimelineElement = TimelineElement;
5048
5050
  exports.ToggleGroup = ToggleGroup;
5051
+ exports.ToggleItem = ToggleItem;
5049
5052
  exports.Tooltip = Tooltip;
5050
5053
  exports.ValueBar = ValueBar;
5051
5054
  exports.VirtualizedList = VirtualizedList;
package/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default, { useRef, useMemo, useEffect, useState, useReducer, useCallback, memo, forwardRef, createContext, useContext, isValidElement, cloneElement, Children } from 'react';
4
- import { objectKeys, objectEntries, objectValues } from '@trackunit/shared-utils';
4
+ import { objectKeys, uuidv4, objectEntries, objectValues } from '@trackunit/shared-utils';
5
5
  import { rentalStatusPalette, intentPalette, generalPalette, criticalityPalette, activityPalette, utilizationPalette, sitesPalette, themeScreenSizeAsNumber, color } from '@trackunit/ui-design-tokens';
6
6
  import { iconNames } from '@trackunit/ui-icons';
7
7
  import IconSpriteMicro from '@trackunit/ui-icons/icons-sprite-micro.svg';
@@ -9,7 +9,6 @@ import IconSpriteMini from '@trackunit/ui-icons/icons-sprite-mini.svg';
9
9
  import IconSpriteOutline from '@trackunit/ui-icons/icons-sprite-outline.svg';
10
10
  import IconSpriteSolid from '@trackunit/ui-icons/icons-sprite-solid.svg';
11
11
  import { snakeCase, titleCase } from 'string-ts';
12
- import { v4 } from 'uuid';
13
12
  import { cvaMerge } from '@trackunit/css-class-variance-utilities';
14
13
  import { Slottable, Slot } from '@radix-ui/react-slot';
15
14
  import isEqual from 'lodash/isEqual';
@@ -148,7 +147,7 @@ const isSafari = () => {
148
147
  */
149
148
  const Icon = ({ name, size = "large", className, dataTestId, color, onClick, type, style, forwardedRef, ariaLabel, fontSize, ariaLabelledBy, ariaDescribedBy, }) => {
150
149
  const useTagRef = useRef(null);
151
- const ICON_CONTAINER_ID = v4();
150
+ const ICON_CONTAINER_ID = uuidv4();
152
151
  const correctIconType = useMemo(() => {
153
152
  if (size === "small") {
154
153
  return "micro";
@@ -1439,7 +1438,7 @@ const BreadcrumbForMediumScreen = ({ dataTestId, breadcrumbItems }) => {
1439
1438
  return reducedArrayElements;
1440
1439
  }, [breadcrumbItems, dataTestId]);
1441
1440
  const reducedArray = getReducedArray();
1442
- return (jsx("div", { className: cvaBreadcrumbForMediumScreen({ expanded }), "data-testid": dataTestId, children: (!expanded && reducedArray.length !== 0 ? reducedArray : breadcrumbItems).map(item => (jsx(BreadcrumbItem, { dataTestId: `breadcrumbItem-${dataTestId}`, item: item }, `${item.props.label}-${v4()}`))) }));
1441
+ return (jsx("div", { className: cvaBreadcrumbForMediumScreen({ expanded }), "data-testid": dataTestId, children: (!expanded && reducedArray.length !== 0 ? reducedArray : breadcrumbItems).map(item => (jsx(BreadcrumbItem, { dataTestId: `breadcrumbItem-${dataTestId}`, item: item }, `${item.props.label}-${uuidv4()}`))) }));
1443
1442
  };
1444
1443
 
1445
1444
  /**
@@ -1502,7 +1501,7 @@ const BreadcrumbContainer = ({ dataTestId, breadcrumbItems }) => {
1502
1501
  * BreadcrumbItem is a helper component that renders the individual breadcrumb item.
1503
1502
  */
1504
1503
  const BreadcrumbItem = ({ item, dataTestId }) => {
1505
- const id = v4();
1504
+ const id = uuidv4();
1506
1505
  return (jsx("div", { className: cvaBreadcrumbItem(), "data-testid": dataTestId, id: `${item.props.label}-${id}`, children: item }));
1507
1506
  };
1508
1507
 
@@ -1772,7 +1771,7 @@ const cvaChevronIcon = cvaMerge(["transition-transform"], {
1772
1771
  * @returns {JSX.Element} Collapse component
1773
1772
  */
1774
1773
  const Collapse = ({ id, initialExpanded = false, onToggle, label, children, className, headerClassName, headerAddon, dataTestId, }) => {
1775
- const LABEL_ID = v4();
1774
+ const LABEL_ID = uuidv4();
1776
1775
  const [expanded, setExpanded] = React.useState(initialExpanded);
1777
1776
  const handleClick = React.useCallback((e) => {
1778
1777
  if (onToggle) {
@@ -4705,7 +4704,7 @@ function defaultHeader(date, showTime) {
4705
4704
  }
4706
4705
 
4707
4706
  const cvaToggleGroup = cvaMerge(["inline-flex", "divide-x", "divide-slate-300"]);
4708
- const cvaToggleItem = cvaMerge(["text-slate-600", "rounded-none", "bg-transparent", "flex", "border-x-0"], {
4707
+ const cvaToggleItem = cvaMerge(["text-slate-600", "rounded-none", "bg-transparent", "flex", "border-x-0", "bg-white"], {
4709
4708
  variants: {
4710
4709
  selected: {
4711
4710
  true: ["bg-slate-200", "hover:bg-slate-200", "text-slate-800"],
@@ -4738,7 +4737,10 @@ const ToggleGroup = ({ list, selected, setSelected, onChange, disabled = false,
4738
4737
  onChange === null || onChange === void 0 ? void 0 : onChange(item.id);
4739
4738
  }, selected: selected === item.id, size: size, text: item.text, title: item.title, tooltip: item.tooltip }, item.id))) }));
4740
4739
  };
4741
- const ToggleItem = ({ title, onClick, disabled, isIconOnly, iconName, size, className, selected, text, tooltip, dataTestId, }) => {
4740
+ /**
4741
+ * Individual TooggleItem to create custom ToggleGroups
4742
+ */
4743
+ const ToggleItem = ({ title, onClick, disabled = false, isIconOnly = false, iconName, size, className, selected = false, text, tooltip, dataTestId, }) => {
4742
4744
  return isIconOnly ? (jsx(Tooltip, { label: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) || title, placement: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.placement) || "top", children: jsx(IconButton, { className: cvaToggleItem({ className, selected }), "data-testid": dataTestId, disabled: disabled, icon: iconName ? (jsx(Icon, { className: selected ? "text-slate-600" : "text-slate-400", name: iconName, size: "small" })) : null, onClick: onClick, size: size, title: iconName, variant: "secondary" }) })) : (jsx(Tooltip, { disabled: !(text === null || text === void 0 ? void 0 : text.truncate) && (tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) === undefined, label: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) || title, placement: (tooltip === null || tooltip === void 0 ? void 0 : tooltip.placement) || "top", children: jsx(Button, { className: cvaToggleItem({ className, selected }), "data-testid": dataTestId, disabled: disabled, onClick: onClick, prefix: iconName ? (jsx(Icon, { className: selected ? "text-slate-600" : "text-slate-400", name: iconName, size: "small" })) : null, size: size, variant: "secondary", children: jsx("span", { className: cvaToggleItemText({ disabledAndSelected: disabled && selected, maxWidth: text === null || text === void 0 ? void 0 : text.maxWidth }), children: title }) }) }));
4743
4745
  };
4744
4746
 
@@ -4973,4 +4975,4 @@ const cvaClickable = cvaMerge([
4973
4975
  },
4974
4976
  });
4975
4977
 
4976
- export { Alert, Badge, Breadcrumb, BreadcrumbContainer, BreadcrumbItem, Button, Card, CardBody, CardFooter, CardHeader, Collapse, CompletionStatusIndicator, CopyableText, Drawer, EmptyState, EmptyValue, ExternalLink, Heading, Icon, IconButton, Indicator, KPICard, MenuItem, MenuList, MoreMenu, Notice, PackageNameStoryComponent, Page, PageContent, PageHeader, Pagination, Polygon, Popover, PopoverContent, PopoverTitle, PopoverTrigger, Prompt, ROLE_CARD, SectionHeader, Sidebar, SkeletonLines, Spacer, Spinner, StarButton, Tab, TabContent, TabList, Tabs, Tag, Text, Timeline, TimelineElement, ToggleGroup, Tooltip, ValueBar, VirtualizedList, WidgetBody, cvaButton, cvaButtonPrefixSuffix, cvaButtonSpinner, cvaButtonSpinnerContainer, cvaClickable, cvaIconButton, cvaIndicator, cvaIndicatorIcon, cvaIndicatorIconBackground, cvaIndicatorLabel, cvaIndicatorPing, cvaInteractableItem, cvaMenuItem, cvaMenuItemLabel, cvaMenuItemPrefix, cvaMenuItemStyle, cvaMenuItemSuffix, docs, getDevicePixelRatio, getValueBarColorByValue, iconColorNames, iconPalette, setLocalStorage, useClickOutside, useContinuousTimeout, useDebounce, useDevicePixelRatio, useGeometry, useHover, useIsFirstRender, useIsFullscreen, useIsTextCutOff, useLocalStorage, useLocalStorageReducer, useOptionallyElevatedState, useOverflowItems, usePopoverContext, usePrevious, usePrompt, useResize, useSelfUpdatingRef, useTimeout, useViewportSize, useWindowActivity };
4978
+ export { Alert, Badge, Breadcrumb, BreadcrumbContainer, BreadcrumbItem, Button, Card, CardBody, CardFooter, CardHeader, Collapse, CompletionStatusIndicator, CopyableText, Drawer, EmptyState, EmptyValue, ExternalLink, Heading, Icon, IconButton, Indicator, KPICard, MenuItem, MenuList, MoreMenu, Notice, PackageNameStoryComponent, Page, PageContent, PageHeader, Pagination, Polygon, Popover, PopoverContent, PopoverTitle, PopoverTrigger, Prompt, ROLE_CARD, SectionHeader, Sidebar, SkeletonLines, Spacer, Spinner, StarButton, Tab, TabContent, TabList, Tabs, Tag, Text, Timeline, TimelineElement, ToggleGroup, ToggleItem, Tooltip, ValueBar, VirtualizedList, WidgetBody, cvaButton, cvaButtonPrefixSuffix, cvaButtonSpinner, cvaButtonSpinnerContainer, cvaClickable, cvaIconButton, cvaIndicator, cvaIndicatorIcon, cvaIndicatorIconBackground, cvaIndicatorLabel, cvaIndicatorPing, cvaInteractableItem, cvaMenuItem, cvaMenuItemLabel, cvaMenuItemPrefix, cvaMenuItemStyle, cvaMenuItemSuffix, docs, getDevicePixelRatio, getValueBarColorByValue, iconColorNames, iconPalette, setLocalStorage, useClickOutside, useContinuousTimeout, useDebounce, useDevicePixelRatio, useGeometry, useHover, useIsFirstRender, useIsFullscreen, useIsTextCutOff, useLocalStorage, useLocalStorageReducer, useOptionallyElevatedState, useOverflowItems, usePopoverContext, usePrevious, usePrompt, useResize, useSelfUpdatingRef, useTimeout, useViewportSize, useWindowActivity };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-components",
3
- "version": "0.4.9",
3
+ "version": "0.4.11",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -26,8 +26,7 @@
26
26
  "react-swipeable": "^7.0.1",
27
27
  "string-ts": "^2.0.0",
28
28
  "tailwind-merge": "^2.0.0",
29
- "@trackunit/react-table-pagination": "*",
30
- "uuid": "^9.0.1"
29
+ "@trackunit/react-table-pagination": "*"
31
30
  },
32
31
  "module": "./index.esm.js",
33
32
  "main": "./index.cjs.js",
@@ -65,8 +65,12 @@ export type ToggleGroupProps<TSelectedId extends string = string> = CommonProps
65
65
  export declare const ToggleGroup: <TSelectedId extends string = string>({ list, selected, setSelected, onChange, disabled, size, isIconOnly, className, dataTestId, }: ToggleGroupProps<TSelectedId>) => import("react/jsx-runtime").JSX.Element;
66
66
  export interface ToggleItemProps extends CommonProps, MappedOmit<BasicToggleGroupListProps<string>, "id"> {
67
67
  onClick: () => void;
68
- disabled: boolean;
69
- isIconOnly: boolean;
70
- size: "small" | "medium";
71
- selected: boolean;
68
+ disabled?: boolean;
69
+ isIconOnly?: boolean;
70
+ size?: "small" | "medium";
71
+ selected?: boolean;
72
72
  }
73
+ /**
74
+ * Individual TooggleItem to create custom ToggleGroups
75
+ */
76
+ export declare const ToggleItem: ({ title, onClick, disabled, isIconOnly, iconName, size, className, selected, text, tooltip, dataTestId, }: ToggleItemProps) => import("react/jsx-runtime").JSX.Element;