{"version":3,"file":"index65.cjs","sources":["../src/atoms/tab/index.tsx"],"sourcesContent":["import { FunctionComponent, ReactNode, useEffect, useState } from \"react\";\nimport iconTopStyles from \"./TabIconTopAtom.module.css\";\nimport iconLeftStyles from \"./TabIconLeftAtom.module.css\";\nimport { useFocusHandling } from \"../../../src/hooks/useFocusHandling\";\nimport Tag, { TagType } from \"../../components/tag\";\nimport { BadgeType } from \"../../components/badge/BadgeDefault\";\nimport { BadgeNotification } from \"@components\";\n\nexport type TabAtomType = {\n  className?: string;\n  label?: string;\n\n  /** Variant props */\n  size?: \"sm\" | \"md\";\n  state?: \"default\" | \"selected\" | \"disabled\";\n  style?: \"icon-top\" | \"icon-left\";\n  tag?: TagType;\n  badge?: BadgeType;\n  icon?: ReactNode;\n  labelIcon?: ReactNode;\n  selected?: boolean;\n  type?: \"horizontal\" | \"vertical\";\n  onClick?: () => void;\n};\n\nconst TabAtomStyles = {\n  \"icon-top\": iconTopStyles,\n  \"icon-left\": iconLeftStyles,\n} as const;\n\nconst TabAtom: FunctionComponent<TabAtomType> = ({\n  className = \"\",\n  size = \"sm\",\n  state: externalState = \"default\",\n  style = \"icon-top\",\n  label = \"Label\",\n  icon,\n  labelIcon,\n  tag,\n  badge,\n  selected: externalSelected,\n  type = \"horizontal\",\n  onClick,\n}) => {\n  const [highLight, setHighLight] = useState(false);\n  const [state, setState] = useState(externalState);\n  const [selected, setSelected] = useState(externalSelected);\n  const styles = TabAtomStyles[style];\n  const TabAtomId = `quill-ui-next-tab-atom-${size}-${style}-${state}-selected-${selected}`;\n\n  const { handleBlur, handleFocus } = useFocusHandling({\n    isDisabled: state === \"disabled\",\n    setHighlight: setHighLight,\n  });\n\n  const renderItems = () => (\n    <>\n      <div className={styles.label}>{label}</div>\n      {labelIcon && (\n        <div className={`${styles.iconSm} quill-tab-icon`}>{labelIcon}</div>\n      )}\n      {tag && <Tag {...tag} />}\n      {badge && <BadgeNotification {...badge} />}\n    </>\n  );\n\n  const handleClick = () => {\n    onClick?.();\n  };\n\n  useEffect(() => {\n    setSelected(externalSelected);\n  }, [externalSelected]);\n\n  useEffect(() => {\n    setState(selected ? \"selected\" : \"default\");\n  }, [selected]);\n\n  useEffect(() => {\n    setState(externalState);\n  }, [externalState]);\n\n  return (\n    <div\n      className={[\n        styles.root,\n        className,\n        \"quill-ui-next-atom\",\n        \"quill-ui-next-no-select\",\n        state !== \"disabled\" && \"quill-ui-next-pointer\",\n      ].join(\" \")}\n      data-size={size}\n      data-state={state}\n      data-type={type}\n      data-id={TabAtomId}\n      tabIndex={0}\n      onFocus={handleFocus}\n      onBlur={handleBlur}\n      onClick={handleClick}\n    >\n      {icon && (\n        <div className={`${styles.customIcon} quill-tab-icon`}>{icon}</div>\n      )}\n\n      {style === \"icon-top\" ? (\n        <div className={styles.labelStatus}>{renderItems()}</div>\n      ) : (\n        renderItems()\n      )}\n\n      {highLight && <div className={styles.bgFocus} />}\n    </div>\n  );\n};\n\nexport default TabAtom;\n"],"names":["iconTopStyles","iconLeftStyles","useState","useFocusHandling","jsxs","Fragment","jsx","Tag","BadgeNotification","useEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,gBAAgB;AAAA,EACpB,YAAYA,sBAAA;AAAA,EACZ,aAAaC,uBAAAA;AACf;AAEA,MAAM,UAA0C,CAAC;AAAA,EAC/C,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO,gBAAgB;AAAA,EACvB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP;AACF,MAAM;AACJ,QAAM,CAAC,WAAW,YAAY,IAAIC,MAAAA,SAAS,KAAK;AAChD,QAAM,CAAC,OAAO,QAAQ,IAAIA,MAAAA,SAAS,aAAa;AAChD,QAAM,CAAC,UAAU,WAAW,IAAIA,MAAAA,SAAS,gBAAgB;AACnD,QAAA,SAAS,cAAc,KAAK;AAC5B,QAAA,YAAY,0BAA0B,IAAI,IAAI,KAAK,IAAI,KAAK,aAAa,QAAQ;AAEvF,QAAM,EAAE,YAAY,YAAY,IAAIC,kCAAiB;AAAA,IACnD,YAAY,UAAU;AAAA,IACtB,cAAc;AAAA,EAAA,CACf;AAEK,QAAA,cAAc,MAEhBC,2BAAAA,KAAAC,WAAA,UAAA,EAAA,UAAA;AAAA,IAAAC,2BAAA,IAAC,OAAI,EAAA,WAAW,OAAO,OAAQ,UAAM,OAAA;AAAA,IACpC,4CACE,OAAI,EAAA,WAAW,GAAG,OAAO,MAAM,mBAAoB,UAAU,UAAA,CAAA;AAAA,IAE/D,OAAOA,2BAAAA,IAACC,MAAAA,KAAK,EAAA,GAAG,IAAK,CAAA;AAAA,IACrB,SAASD,2BAAA,IAACE,2BAAmB,EAAA,GAAG,MAAO,CAAA;AAAA,EAAA,GAC1C;AAGF,QAAM,cAAc,MAAM;AACd;AAAA,EACZ;AAEAC,QAAAA,UAAU,MAAM;AACd,gBAAY,gBAAgB;AAAA,EAAA,GAC3B,CAAC,gBAAgB,CAAC;AAErBA,QAAAA,UAAU,MAAM;AACL,aAAA,WAAW,aAAa,SAAS;AAAA,EAAA,GACzC,CAAC,QAAQ,CAAC;AAEbA,QAAAA,UAAU,MAAM;AACd,aAAS,aAAa;AAAA,EAAA,GACrB,CAAC,aAAa,CAAC;AAGhB,SAAAL,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,cAAc;AAAA,MAAA,EACxB,KAAK,GAAG;AAAA,MACV,aAAW;AAAA,MACX,cAAY;AAAA,MACZ,aAAW;AAAA,MACX,WAAS;AAAA,MACT,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MAER,UAAA;AAAA,QAAA,uCACE,OAAI,EAAA,WAAW,GAAG,OAAO,UAAU,mBAAoB,UAAK,KAAA,CAAA;AAAA,QAG9D,UAAU,aACTE,+BAAC,OAAI,EAAA,WAAW,OAAO,aAAc,UAAA,cAAc,CAAA,IAEnD,YAAY;AAAA,QAGb,aAAaA,2BAAA,IAAC,OAAI,EAAA,WAAW,OAAO,QAAS,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAChD;AAEJ;;"}