{"version":3,"file":"MenuItem.cjs","names":["_MenuItem2","_interopRequireWildcard","require","_react","_MenuContext","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MenuItem","children","hasInitialFocus","id","isSelected","isDisabled","onClick","onClickProp","testId","value","variant","closeMenu","shouldCloseOnSelect","useContext","MenuContext","useCallback","event","jsx","autoFocus","className","menuItemClasses","root","undefined","disabled","selected","tabIndex","MemoizedMenuItem","exports","memo","displayName"],"sources":["../../../src/Buttons/MenuItem.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n  MenuItem as MuiMenuItem,\n  MenuItemProps as MuiMenuItemProps,\n} from \"@mui/material\";\nimport { menuItemClasses } from \"@mui/material/MenuItem\";\nimport { memo, type ReactNode, useCallback, useContext } from \"react\";\n\nimport type { HtmlProps } from \"../HtmlProps.js\";\n\nimport { MenuContext } from \"./MenuContext.js\";\n\nexport type MenuItemProps = {\n  /**\n   * Label or content rendered inside the clickable menu item row.\n   */\n  children: ReactNode;\n  /**\n   * If `true`, the menu item receives focus automatically when the menu opens.\n   */\n  hasInitialFocus?: boolean;\n  /**\n   * If `true`, the menu item is visually and functionally disabled.\n   */\n  isDisabled?: boolean;\n  /**\n   * If `true`, the menu item is visually marked as the current selection.\n   */\n  isSelected?: boolean;\n  /**\n   * Called when the menu item is clicked.\n   */\n  onClick?: MuiMenuItemProps[\"onClick\"];\n  /**\n   * The value associated with the menu item.\n   */\n  value?: string;\n  /**\n   * Controls the visual style of the menu item.\n   * - If `'default'`, standard menu item appearance.\n   * - If `'destructive'`, red text and icon, indicating a destructive or irreversible action.\n   * @default \"default\"\n   */\n  variant?: \"default\" | \"destructive\";\n} & Pick<HtmlProps, \"id\" | \"testId\">;\n\n/**\n * An individual action item rendered inside a Menu. Supports default and destructive visual variants, disabled and selected states, and auto-closes the parent Menu on click by default.\n */\nconst MenuItem = ({\n  children,\n  hasInitialFocus,\n  id,\n  isSelected,\n  isDisabled,\n  onClick: onClickProp,\n  testId,\n  value,\n  variant = \"default\",\n}: MenuItemProps) => {\n  const { closeMenu, shouldCloseOnSelect } = useContext(MenuContext);\n\n  const onClick = useCallback<NonNullable<MuiMenuItemProps[\"onClick\"]>>(\n    (event) => {\n      onClickProp?.(event);\n      if (shouldCloseOnSelect) {\n        closeMenu();\n      }\n    },\n    [onClickProp, closeMenu, shouldCloseOnSelect],\n  );\n\n  return (\n    <MuiMenuItem\n      aria-current={isSelected}\n      /* eslint-disable-next-line jsx-a11y/no-autofocus */\n      autoFocus={hasInitialFocus}\n      className={\n        variant === \"destructive\"\n          ? `${menuItemClasses.root}-destructive`\n          : undefined\n      }\n      data-se={testId}\n      disabled={isDisabled}\n      id={id}\n      onClick={onClick}\n      selected={isSelected}\n      tabIndex={0}\n      value={value}\n    >\n      {children}\n    </MuiMenuItem>\n  );\n};\n\nconst MemoizedMenuItem = memo(MenuItem);\nMemoizedMenuItem.displayName = \"MenuItem\";\n\nexport { MemoizedMenuItem as MenuItem };\n"],"mappings":";;;;;;AAgBA,IAAAA,UAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAIA,IAAAE,YAAA,GAAAF,OAAA;AAA+C,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AArB/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAkDA,MAAMkB,QAAQ,GAAGA,CAAC;EAChBC,QAAQ;EACRC,eAAe;EACfC,EAAE;EACFC,UAAU;EACVC,UAAU;EACVC,OAAO,EAAEC,WAAW;EACpBC,MAAM;EACNC,KAAK;EACLC,OAAO,GAAG;AACG,CAAC,KAAK;EACnB,MAAM;IAAEC,SAAS;IAAEC;EAAoB,CAAC,GAAG,IAAAC,iBAAU,EAACC,wBAAW,CAAC;EAElE,MAAMR,OAAO,GAAG,IAAAS,kBAAW,EACxBC,KAAK,IAAK;IACTT,WAAW,GAAGS,KAAK,CAAC;IACpB,IAAIJ,mBAAmB,EAAE;MACvBD,SAAS,CAAC,CAAC;IACb;EACF,CAAC,EACD,CAACJ,WAAW,EAAEI,SAAS,EAAEC,mBAAmB,CAC9C,CAAC;EAED,OACE,IAAAhC,WAAA,CAAAqC,GAAA,EAAA1C,UAAA,CAAAgB,OAAA;IACE,gBAAca,UAAW;IAEzBc,SAAS,EAAEhB,eAAgB;IAC3BiB,SAAS,EACPT,OAAO,KAAK,aAAa,GACrB,GAAGU,0BAAe,CAACC,IAAI,cAAc,GACrCC,SACL;IACD,WAASd,MAAO;IAChBe,QAAQ,EAAElB,UAAW;IACrBF,EAAE,EAAEA,EAAG;IACPG,OAAO,EAAEA,OAAQ;IACjBkB,QAAQ,EAAEpB,UAAW;IACrBqB,QAAQ,EAAE,CAAE;IACZhB,KAAK,EAAEA,KAAM;IAAAR,QAAA,EAEZA;EAAQ,CACE,CAAC;AAElB,CAAC;AAED,MAAMyB,gBAAgB,GAAAC,OAAA,CAAA3B,QAAA,GAAG,IAAA4B,WAAI,EAAC5B,QAAQ,CAAC;AACvC0B,gBAAgB,CAACG,WAAW,0CAAa","ignoreList":[]}