{"version":3,"file":"Select.mjs","sources":["../../../packages/select/Select.tsx"],"sourcesContent":["import { ForwardedRef, forwardRef, useRef } from 'react'\nimport { SelectWrapperStyle } from './SelectStyles.js'\nimport { SelectArrow } from './SelectArrow.js'\nimport { useMergeRefs } from '../hooks/index.js'\nimport { PopupMenu } from '../popup-menu/index.js'\nimport { SelectProps } from './types.js'\nimport { useSelect } from './useSelect.js'\nimport { useSelectWidth } from './useSelectWidth.js'\n\nexport const Select = forwardRef(\n  (\n    {\n      wrapperRef: externalWrapperRef,\n      anchorRef: externalAnchorRef,\n      arrow = 'default',\n      variant,\n      value,\n      defaultValue,\n      disabled,\n      children,\n      onClick,\n      onKeyDown,\n      onChange,\n      ...rest\n    }: SelectProps,\n    ref?: ForwardedRef<HTMLInputElement>,\n  ) => {\n    const localAnchorRef = useRef<HTMLLabelElement>(null)\n    const wrapperRef = useMergeRefs([localAnchorRef, externalWrapperRef])\n    const anchorRef = externalAnchorRef || localAnchorRef\n\n    const { opened, options, title, handleClick, handleClose, handleKeyDown } =\n      useSelect({\n        value,\n        defaultValue,\n        disabled,\n        onClick,\n        onChange,\n        onKeyDown,\n        children,\n      })\n    const width = useSelectWidth(opened, anchorRef)\n\n    return (\n      <>\n        <SelectWrapperStyle\n          onClick={handleClick}\n          onKeyDown={handleKeyDown}\n          active={opened}\n          value={title}\n          rightDecorator={\n            <SelectArrow arrow={arrow} disabled={disabled} opened={opened} />\n          }\n          wrapperRef={wrapperRef}\n          variant={variant}\n          {...rest}\n          ref={ref}\n          readOnly\n        />\n        <PopupMenu\n          open={opened}\n          variant={variant}\n          anchorRef={anchorRef}\n          style={{ minWidth: width }}\n          onClose={handleClose}\n        >\n          {options}\n        </PopupMenu>\n      </>\n    )\n  },\n)\nSelect.displayName = 'Select'\n"],"names":["Select","forwardRef","_ref","ref","wrapperRef","externalWrapperRef","anchorRef","externalAnchorRef","arrow","variant","value","defaultValue","disabled","children","onClick","onKeyDown","onChange","rest","localAnchorRef","useRef","useMergeRefs","opened","options","title","handleClick","handleClose","handleKeyDown","useSelect","width","useSelectWidth","_jsxs","_Fragment","_jsx","SelectWrapperStyle","active","rightDecorator","SelectArrow","readOnly","PopupMenu","open","style","minWidth","onClose","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;AASO,MAAMA,MAAM,gBAAGC,UAAU,CAC9B,CAAAC,IAAA,EAeEC,GAAoC,KACjC;EAAA,IAfH;AACEC,IAAAA,UAAU,EAAEC,kBAAkB;AAC9BC,IAAAA,SAAS,EAAEC,iBAAiB;AAC5BC,IAAAA,KAAK,GAAG,SAAS;IACjBC,OAAO;IACPC,KAAK;IACLC,YAAY;IACZC,QAAQ;IACRC,QAAQ;IACRC,OAAO;IACPC,SAAS;IACTC,QAAQ;IACR,GAAGC,IAAAA;AACQ,GAAC,GAAAf,IAAA,CAAA;AAGd,EAAA,MAAMgB,cAAc,GAAGC,MAAM,CAAmB,IAAI,CAAC,CAAA;EACrD,MAAMf,UAAU,GAAGgB,YAAY,CAAC,CAACF,cAAc,EAAEb,kBAAkB,CAAC,CAAC,CAAA;AACrE,EAAA,MAAMC,SAAS,GAAGC,iBAAiB,IAAIW,cAAc,CAAA;EAErD,MAAM;IAAEG,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,WAAW;IAAEC,WAAW;AAAEC,IAAAA,aAAAA;GAAe,GACvEC,SAAS,CAAC;IACRjB,KAAK;IACLC,YAAY;IACZC,QAAQ;IACRE,OAAO;IACPE,QAAQ;IACRD,SAAS;AACTF,IAAAA,QAAAA;AACF,GAAC,CAAC,CAAA;AACJ,EAAA,MAAMe,KAAK,GAAGC,cAAc,CAACR,MAAM,EAAEf,SAAS,CAAC,CAAA;EAE/C,oBACEwB,IAAA,CAAAC,QAAA,EAAA;IAAAlB,QAAA,EAAA,cACEmB,GAAA,CAACC,kBAAkB,EAAA;AACjBnB,MAAAA,OAAO,EAAEU,WAAY;AACrBT,MAAAA,SAAS,EAAEW,aAAc;AACzBQ,MAAAA,MAAM,EAAEb,MAAO;AACfX,MAAAA,KAAK,EAAEa,KAAM;MACbY,cAAc,eACZH,GAAA,CAACI,WAAW,EAAA;AAAC5B,QAAAA,KAAK,EAAEA,KAAM;AAACI,QAAAA,QAAQ,EAAEA,QAAS;AAACS,QAAAA,MAAM,EAAEA,MAAAA;AAAO,OAAE,CACjE;AACDjB,MAAAA,UAAU,EAAEA,UAAW;AACvBK,MAAAA,OAAO,EAAEA,OAAQ;AAAA,MAAA,GACbQ,IAAI;AACRd,MAAAA,GAAG,EAAEA,GAAI;MACTkC,QAAQ,EAAA,IAAA;AAAA,KACT,CAAC,eACFL,GAAA,CAACM,SAAS,EAAA;AACRC,MAAAA,IAAI,EAAElB,MAAO;AACbZ,MAAAA,OAAO,EAAEA,OAAQ;AACjBH,MAAAA,SAAS,EAAEA,SAAU;AACrBkC,MAAAA,KAAK,EAAE;AAAEC,QAAAA,QAAQ,EAAEb,KAAAA;OAAQ;AAC3Bc,MAAAA,OAAO,EAAEjB,WAAY;AAAAZ,MAAAA,QAAA,EAEpBS,OAAAA;AAAO,KACC,CAAC,CAAA;AAAA,GACZ,CAAC,CAAA;AAEP,CACF,EAAC;AACDtB,MAAM,CAAC2C,WAAW,GAAG,QAAQ;;;;"}