@trackunit/react-components 0.1.193 → 0.1.194

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
@@ -19361,7 +19361,7 @@ const cvaMenuItemPrefix = cssClassVarianceUtilities.cvaMerge(["self-center", "fl
19361
19361
  * @param {MenuItemProps} props - The props for the MenuItem component
19362
19362
  * @returns {JSX.Element} MenuItem component
19363
19363
  */
19364
- const MenuItem = ({ className, dataTestId, label, size, children, selected, focused, prefix, suffix, disabled, onClick, id, }) => {
19364
+ const MenuItem = ({ className, dataTestId, label, size, children, selected, focused, prefix, suffix, disabled, onClick, stopPropagation = true, id, }) => {
19365
19365
  const containerProps = useContainerProps({ className, dataTestId: dataTestId || "menu-item" });
19366
19366
  return (jsxRuntime.jsxs("div", Object.assign({}, containerProps, { id: id, className: cvaMenuItem({
19367
19367
  selected,
@@ -19370,7 +19370,7 @@ const MenuItem = ({ className, dataTestId, label, size, children, selected, focu
19370
19370
  size,
19371
19371
  className: containerProps.className,
19372
19372
  }), onClick: e => {
19373
- e.stopPropagation();
19373
+ stopPropagation && e.stopPropagation();
19374
19374
  onClick && onClick(e);
19375
19375
  }, tabIndex: 0, children: [prefix && (jsxRuntime.jsx("div", { className: cvaMenuItemPrefix({ selected }), "data-testid": dataTestId && `${dataTestId}-prefix`, children: prefix })), children && typeof children !== "string" ? (children) : (jsxRuntime.jsx("div", { className: cvaMenuItemLabel(), "data-testid": dataTestId && `${dataTestId}-label`, children: children !== null && children !== void 0 ? children : label })), suffix && (jsxRuntime.jsx("div", { className: cvaMenuItemSuffix({ selected }), "data-testid": dataTestId && `${dataTestId}-suffix`, children: suffix }))] })));
19376
19376
  };
@@ -19397,10 +19397,10 @@ const cvaMenuListDivider = cssClassVarianceUtilities.cvaMerge([
19397
19397
  * @returns {JSX.Element} MenuList component
19398
19398
  */
19399
19399
  const MenuList = (_a) => {
19400
- var { dataTestId, className, children, withStickyHeader = false, showDivider = false } = _a; __rest$1(_a, ["dataTestId", "className", "children", "withStickyHeader", "showDivider"]);
19400
+ var { dataTestId, className, children, withStickyHeader = false, showDivider = false } = _a, args = __rest$1(_a, ["dataTestId", "className", "children", "withStickyHeader", "showDivider"]);
19401
19401
  const childrenArr = React.Children.toArray(children);
19402
19402
  const isLastItem = (index) => index === childrenArr.length - 1;
19403
- return (jsxRuntime.jsx("div", { "data-testid": dataTestId, className: cvaMenuList({ stickyHeader: withStickyHeader, className }), tabIndex: 0, role: "list", children: React.Children.map(childrenArr, (menuItem, index) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [menuItem, showDivider && !isLastItem(index) && jsxRuntime.jsx("hr", { className: cvaMenuListDivider() })] }))) }));
19403
+ return (jsxRuntime.jsx("div", { "data-testid": dataTestId, className: cvaMenuList({ stickyHeader: withStickyHeader, className }), tabIndex: 0, role: "list", onClick: args.onClick, children: React.Children.map(childrenArr, (menuItem, index) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [menuItem, showDivider && !isLastItem(index) && jsxRuntime.jsx("hr", { className: cvaMenuListDivider() })] }))) }));
19404
19404
  };
19405
19405
 
19406
19406
  const cvaMoreMenu = cssClassVarianceUtilities.cvaMerge(["p-4"]);
package/index.esm.js CHANGED
@@ -19332,7 +19332,7 @@ const cvaMenuItemPrefix = cvaMerge(["self-center", "flex-grow-0", "text-slate-40
19332
19332
  * @param {MenuItemProps} props - The props for the MenuItem component
19333
19333
  * @returns {JSX.Element} MenuItem component
19334
19334
  */
19335
- const MenuItem = ({ className, dataTestId, label, size, children, selected, focused, prefix, suffix, disabled, onClick, id, }) => {
19335
+ const MenuItem = ({ className, dataTestId, label, size, children, selected, focused, prefix, suffix, disabled, onClick, stopPropagation = true, id, }) => {
19336
19336
  const containerProps = useContainerProps({ className, dataTestId: dataTestId || "menu-item" });
19337
19337
  return (jsxs("div", Object.assign({}, containerProps, { id: id, className: cvaMenuItem({
19338
19338
  selected,
@@ -19341,7 +19341,7 @@ const MenuItem = ({ className, dataTestId, label, size, children, selected, focu
19341
19341
  size,
19342
19342
  className: containerProps.className,
19343
19343
  }), onClick: e => {
19344
- e.stopPropagation();
19344
+ stopPropagation && e.stopPropagation();
19345
19345
  onClick && onClick(e);
19346
19346
  }, tabIndex: 0, children: [prefix && (jsx("div", { className: cvaMenuItemPrefix({ selected }), "data-testid": dataTestId && `${dataTestId}-prefix`, children: prefix })), children && typeof children !== "string" ? (children) : (jsx("div", { className: cvaMenuItemLabel(), "data-testid": dataTestId && `${dataTestId}-label`, children: children !== null && children !== void 0 ? children : label })), suffix && (jsx("div", { className: cvaMenuItemSuffix({ selected }), "data-testid": dataTestId && `${dataTestId}-suffix`, children: suffix }))] })));
19347
19347
  };
@@ -19368,10 +19368,10 @@ const cvaMenuListDivider = cvaMerge([
19368
19368
  * @returns {JSX.Element} MenuList component
19369
19369
  */
19370
19370
  const MenuList = (_a) => {
19371
- var { dataTestId, className, children, withStickyHeader = false, showDivider = false } = _a; __rest$1(_a, ["dataTestId", "className", "children", "withStickyHeader", "showDivider"]);
19371
+ var { dataTestId, className, children, withStickyHeader = false, showDivider = false } = _a, args = __rest$1(_a, ["dataTestId", "className", "children", "withStickyHeader", "showDivider"]);
19372
19372
  const childrenArr = Children.toArray(children);
19373
19373
  const isLastItem = (index) => index === childrenArr.length - 1;
19374
- return (jsx("div", { "data-testid": dataTestId, className: cvaMenuList({ stickyHeader: withStickyHeader, className }), tabIndex: 0, role: "list", children: Children.map(childrenArr, (menuItem, index) => (jsxs(Fragment, { children: [menuItem, showDivider && !isLastItem(index) && jsx("hr", { className: cvaMenuListDivider() })] }))) }));
19374
+ return (jsx("div", { "data-testid": dataTestId, className: cvaMenuList({ stickyHeader: withStickyHeader, className }), tabIndex: 0, role: "list", onClick: args.onClick, children: Children.map(childrenArr, (menuItem, index) => (jsxs(Fragment, { children: [menuItem, showDivider && !isLastItem(index) && jsx("hr", { className: cvaMenuListDivider() })] }))) }));
19375
19375
  };
19376
19376
 
19377
19377
  const cvaMoreMenu = cvaMerge(["p-4"]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/react-components",
3
- "version": "0.1.193",
3
+ "version": "0.1.194",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -54,6 +54,11 @@ export interface MenuItemProps extends CommonProps {
54
54
  * used in disabled select options
55
55
  */
56
56
  disabled?: boolean;
57
+ /**
58
+ * A boolean prop to stop propagation of onClick event
59
+ * used in Menu and Select components
60
+ */
61
+ stopPropagation?: boolean;
57
62
  }
58
63
  /**
59
64
  * The MenuItem component is used to display a menu, primarily meant to be used in a list form.
@@ -61,5 +66,5 @@ export interface MenuItemProps extends CommonProps {
61
66
  * @param {MenuItemProps} props - The props for the MenuItem component
62
67
  * @returns {JSX.Element} MenuItem component
63
68
  */
64
- export declare const MenuItem: ({ className, dataTestId, label, size, children, selected, focused, prefix, suffix, disabled, onClick, id, }: MenuItemProps) => JSX.Element;
69
+ export declare const MenuItem: ({ className, dataTestId, label, size, children, selected, focused, prefix, suffix, disabled, onClick, stopPropagation, id, }: MenuItemProps) => JSX.Element;
65
70
  export {};
@@ -19,6 +19,8 @@ export interface MenuListProps extends CommonProps {
19
19
  * @default false
20
20
  */
21
21
  withStickyHeader?: boolean;
22
+ /** Click handler - typically used to trigger close action. when propagation is NOT prevented on menuItem */
23
+ onClick?: () => void;
22
24
  }
23
25
  /**
24
26
  * The MenuList component is used for menus and selects.