{"version":3,"file":"index104.cjs","sources":["../src/atoms/menu/side/index.tsx"],"sourcesContent":["import { FunctionComponent, ReactNode, useEffect, useState } from \"react\";\nimport styles from \"./MenuSideBar.module.css\";\nimport { useFocusHandling } from \"../../../hooks/useFocusHandling\";\nimport { BadgeNotification } from \"../../../components/badge/BadgeNotification\";\n\nexport type MenuSideBarAtomType = {\n  className?: string;\n\n  /** Variant props */\n  icon: ReactNode;\n  iconSelected?: ReactNode;\n  isSelected: boolean;\n  label?: string;\n  badgeLabel?: string;\n  direction?: \"row\" | \"column\";\n  expanded?: boolean;\n  onClick?: () => void;\n};\n\nconst MenuSideBarAtom: FunctionComponent<MenuSideBarAtomType> = ({\n  className = \"\",\n  icon,\n  iconSelected,\n  isSelected: externalIsSelected = false,\n  label = \"\",\n  badgeLabel = \"\",\n  direction = \"column\",\n  expanded = true,\n  onClick,\n}) => {\n  const [showBadge, setShowBadge] = useState(true);\n  const [isFocused, setIsFocused] = useState(false);\n  const [isSelected, setIsSelected] = useState(externalIsSelected);\n  const { handleFocus, handleBlur } = useFocusHandling({\n    isDisabled: false,\n    setHighlight: setIsFocused,\n    onEnter: () => {\n      handleClick();\n    },\n  });\n\n  const handleClick = () => {\n    setIsSelected(true);\n    setShowBadge(false);\n    onClick?.();\n  };\n\n  useEffect(() => {\n    if (badgeLabel && badgeLabel !== \"\") {\n      setShowBadge(true);\n    }\n  }, [badgeLabel]);\n\n  useEffect(() => {\n    setIsSelected(externalIsSelected);\n  }, [externalIsSelected]);\n\n  return (\n    <div\n      className={[\n        styles.root,\n        className,\n        \"quill-ui-next-atom quill-ui-next-pointer\",\n        \"quill-ui-next-no-select\",\n      ].join(\" \")}\n      data-is-selected={isSelected ? \"yes\" : \"no\"}\n      data-direction={direction}\n      tabIndex={0}\n      onFocus={handleFocus}\n      onBlur={handleBlur}\n      onClick={handleClick}\n    >\n      <div className={styles.iconContainer}>\n        {direction === \"column\" && (\n          <>\n            {isFocused && <div className={styles.bgFocus} />}\n            {showBadge && badgeLabel !== \"\" && (\n              <div className={styles.badgeNotification}>\n                <BadgeNotification size=\"sm\" label={badgeLabel} />\n              </div>\n            )}\n          </>\n        )}\n        {isSelected ? iconSelected || icon : icon}\n      </div>\n      {label && (\n        <div className={styles.label}>\n          {label}\n        </div>\n      )}\n      {direction === \"row\" && (\n        <>\n          {isFocused && <div className={styles.bgFocus} />}\n          {showBadge && badgeLabel !== \"\" && (\n            <div\n              className={`${styles.badgeContainer} ${\n                !expanded && styles.badgeContainerCompress\n              }`}\n            >\n              <BadgeNotification size=\"sm\" label={badgeLabel} />\n            </div>\n          )}\n        </>\n      )}\n    </div>\n  );\n};\n\nexport default MenuSideBarAtom;\n"],"names":["useState","useFocusHandling","useEffect","jsxs","styles","Fragment","jsx","BadgeNotification"],"mappings":";;;;;;AAmBA,MAAM,kBAA0D,CAAC;AAAA,EAC/D,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,YAAY,qBAAqB;AAAA,EACjC,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX;AACF,MAAM;AACJ,QAAM,CAAC,WAAW,YAAY,IAAIA,MAAAA,SAAS,IAAI;AAC/C,QAAM,CAAC,WAAW,YAAY,IAAIA,MAAAA,SAAS,KAAK;AAChD,QAAM,CAAC,YAAY,aAAa,IAAIA,MAAAA,SAAS,kBAAkB;AAC/D,QAAM,EAAE,aAAa,WAAW,IAAIC,kCAAiB;AAAA,IACnD,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,SAAS,MAAM;AACD,kBAAA;AAAA,IAAA;AAAA,EACd,CACD;AAED,QAAM,cAAc,MAAM;AACxB,kBAAc,IAAI;AAClB,iBAAa,KAAK;AACR;AAAA,EACZ;AAEAC,QAAAA,UAAU,MAAM;AACV,QAAA,cAAc,eAAe,IAAI;AACnC,mBAAa,IAAI;AAAA,IAAA;AAAA,EACnB,GACC,CAAC,UAAU,CAAC;AAEfA,QAAAA,UAAU,MAAM;AACd,kBAAc,kBAAkB;AAAA,EAAA,GAC/B,CAAC,kBAAkB,CAAC;AAGrB,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACTC,mBAAAA,QAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,MAAA,EACA,KAAK,GAAG;AAAA,MACV,oBAAkB,aAAa,QAAQ;AAAA,MACvC,kBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MAET,UAAA;AAAA,QAACD,2BAAA,KAAA,OAAA,EAAI,WAAWC,mBAAAA,QAAO,eACpB,UAAA;AAAA,UAAA,cAAc,YAEVD,2BAAAA,KAAAE,WAAA,UAAA,EAAA,UAAA;AAAA,YAAA,aAAcC,2BAAA,IAAA,OAAA,EAAI,WAAWF,mBAAAA,QAAO,SAAS;AAAA,YAC7C,aAAa,eAAe,MAC3BE,2BAAAA,IAAC,SAAI,WAAWF,2BAAO,mBACrB,UAAAE,2BAAAA,IAACC,MAAAA,mBAAkB,EAAA,MAAK,MAAK,OAAO,YAAY,EAClD,CAAA;AAAA,UAAA,GAEJ;AAAA,UAED,aAAa,gBAAgB,OAAO;AAAA,QAAA,GACvC;AAAA,QACC,SACED,2BAAAA,IAAA,OAAA,EAAI,WAAWF,mBAAAA,QAAO,OACpB,UACH,OAAA;AAAA,QAED,cAAc,SAEVD,2BAAAA,KAAAE,WAAA,UAAA,EAAA,UAAA;AAAA,UAAA,aAAcC,2BAAA,IAAA,OAAA,EAAI,WAAWF,mBAAAA,QAAO,SAAS;AAAA,UAC7C,aAAa,eAAe,MAC3BE,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAGF,mBAAAA,QAAO,cAAc,IACjC,CAAC,YAAYA,2BAAO,sBACtB;AAAA,cAEA,UAACE,2BAAA,IAAAC,yBAAA,EAAkB,MAAK,MAAK,OAAO,WAAY,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAClD,EAEJ,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ;;"}