{"version":3,"sources":["../src/select-icon.tsx"],"sourcesContent":["import type {\n  CSSUIObject,\n  FunctionComponent,\n  HTMLUIProps,\n} from \"@yamada-ui/core\"\nimport { forwardRef, ui } from \"@yamada-ui/core\"\nimport { ChevronIcon, CloseIcon } from \"@yamada-ui/icon\"\nimport { useClickable } from \"@yamada-ui/use-clickable\"\nimport { cx, getValidChildren, isValidElement } from \"@yamada-ui/utils\"\nimport { cloneElement, useRef } from \"react\"\nimport { useSelectContext } from \"./use-select\"\n\nexport interface SelectIconProps extends HTMLUIProps {}\n\nexport const SelectIcon = forwardRef<SelectIconProps, \"div\">(\n  ({ className, children, __css, ...rest }, ref) => {\n    const { styles } = useSelectContext()\n\n    const css: CSSUIObject = {\n      alignItems: \"center\",\n      cursor: \"pointer\",\n      display: \"inline-flex\",\n      justifyContent: \"center\",\n      pointerEvents: \"none\",\n      position: \"absolute\",\n      top: \"50%\",\n      transform: \"translateY(-50%)\",\n      ...styles.icon,\n      ...__css,\n    }\n\n    const validChildren = getValidChildren(children)\n\n    const cloneChildren = validChildren.map((child) =>\n      cloneElement(child, {\n        style: {\n          color: \"currentColor\",\n          maxHeight: \"1em\",\n          maxWidth: \"1em\",\n        },\n        \"aria-hidden\": true,\n        focusable: false,\n      }),\n    )\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-select__icon\", className)}\n        __css={css}\n        {...rest}\n      >\n        {isValidElement(children) ? cloneChildren : <ChevronIcon />}\n      </ui.div>\n    )\n  },\n)\n\nSelectIcon.displayName = \"SelectIcon\"\nSelectIcon.__ui__ = \"SelectIcon\"\n\nexport interface SelectClearIconProps extends SelectIconProps {\n  disabled?: boolean\n}\n\nexport const SelectClearIcon: FunctionComponent<SelectClearIconProps> = ({\n  className,\n  children,\n  ...props\n}) => {\n  const ref = useRef<HTMLDivElement>(null)\n  const { styles } = useSelectContext()\n\n  const rest = useClickable({\n    ref,\n    ...props,\n  })\n\n  return (\n    <SelectIcon\n      className={cx(\"ui-select__clear-icon\", className)}\n      aria-label=\"Clear value\"\n      __css={styles.clearIcon}\n      {...rest}\n    >\n      {children ?? <CloseIcon h=\"0.5em\" w=\"0.5em\" />}\n    </SelectIcon>\n  )\n}\n\nSelectClearIcon.displayName = \"SelectClearIcon\"\nSelectClearIcon.__ui__ = \"SelectClearIcon\"\n"],"mappings":";;;;;;AAKA,SAAS,YAAY,UAAU;AAC/B,SAAS,aAAa,iBAAiB;AACvC,SAAS,oBAAoB;AAC7B,SAAS,IAAI,kBAAkB,sBAAsB;AACrD,SAAS,cAAc,cAAc;AA2Ce;AAtC7C,IAAM,aAAa;AAAA,EACxB,CAAC,EAAE,WAAW,UAAU,OAAO,GAAG,KAAK,GAAG,QAAQ;AAChD,UAAM,EAAE,OAAO,IAAI,iBAAiB;AAEpC,UAAM,MAAmB;AAAA,MACvB,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,UAAU;AAAA,MACV,KAAK;AAAA,MACL,WAAW;AAAA,MACX,GAAG,OAAO;AAAA,MACV,GAAG;AAAA,IACL;AAEA,UAAM,gBAAgB,iBAAiB,QAAQ;AAE/C,UAAM,gBAAgB,cAAc;AAAA,MAAI,CAAC,UACvC,aAAa,OAAO;AAAA,QAClB,OAAO;AAAA,UACL,OAAO;AAAA,UACP,WAAW;AAAA,UACX,UAAU;AAAA,QACZ;AAAA,QACA,eAAe;AAAA,QACf,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAEA,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,mBAAmB,SAAS;AAAA,QAC1C,OAAO;AAAA,QACN,GAAG;AAAA,QAEH,yBAAe,QAAQ,IAAI,gBAAgB,oBAAC,eAAY;AAAA;AAAA,IAC3D;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AACzB,WAAW,SAAS;AAMb,IAAM,kBAA2D,CAAC;AAAA,EACvE;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,MAAM,OAAuB,IAAI;AACvC,QAAM,EAAE,OAAO,IAAI,iBAAiB;AAEpC,QAAM,OAAO,aAAa;AAAA,IACxB;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AAED,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,yBAAyB,SAAS;AAAA,MAChD,cAAW;AAAA,MACX,OAAO,OAAO;AAAA,MACb,GAAG;AAAA,MAEH,wCAAY,oBAAC,aAAU,GAAE,SAAQ,GAAE,SAAQ;AAAA;AAAA,EAC9C;AAEJ;AAEA,gBAAgB,cAAc;AAC9B,gBAAgB,SAAS;","names":[]}