{"version":3,"file":"index.cjs","sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import { KeyboardEvent, MouseEvent, useCallback, useState } from 'react';\n\nimport { useUpdateEffect } from '@/hooks/internal';\n\nimport type { SelectProps, SelectOptionProp, SelectionType } from './Select.types';\nimport {\n  InternalSelect,\n  SelectGroup,\n  SelectItem,\n  SelectItemDescription,\n} from './common/InternalSelect';\n\nexport const Select = ({\n  value: valueProp,\n  defaultValue,\n  onSelect: onSelectProp,\n  options,\n  children,\n  onOpenChange: onOpenChangeProp,\n  ...props\n}: SelectProps) => {\n  const [selectedValues, setSelectedValues] = useState<string[]>(\n    typeof valueProp === 'string'\n      ? [valueProp]\n      : typeof defaultValue === 'string'\n        ? [defaultValue]\n        : []\n  );\n  const [open, setOpen] = useState(false);\n\n  const onOpenChange = useCallback(\n    (open: boolean) => {\n      setOpen(open);\n      if (typeof onOpenChangeProp === 'function') {\n        onOpenChangeProp(open);\n      }\n    },\n    [onOpenChangeProp]\n  );\n\n  const onSelect = useCallback(\n    (\n      value: string,\n      type?: SelectionType,\n      evt?: KeyboardEvent<HTMLElement> | MouseEvent<HTMLElement>\n    ) => {\n      setSelectedValues(values => {\n        if (values[0] !== value) {\n          return [value];\n        }\n        return values;\n      });\n      onOpenChange(false);\n      if (typeof onSelectProp === 'function') {\n        onSelectProp(value, type, evt);\n      }\n    },\n    [onSelectProp, onOpenChange]\n  );\n\n  const onChange = useCallback(\n    (values: string[]) => {\n      if (values[0] !== selectedValues[0]) {\n        onSelect(values[0]);\n      }\n    },\n    [selectedValues, onSelect]\n  );\n\n  useUpdateEffect(() => {\n    setSelectedValues(typeof valueProp === 'string' ? [valueProp] : []);\n  }, [valueProp]);\n\n  const conditionalProps: Partial<SelectOptionProp> = {};\n  if (options) {\n    conditionalProps.options = options;\n  } else {\n    conditionalProps.children = children;\n  }\n\n  return (\n    <InternalSelect\n      onChange={onChange}\n      value={typeof valueProp === 'string' ? [valueProp] : selectedValues}\n      open={open}\n      onOpenChange={onOpenChange}\n      onSelect={onSelect}\n      {...conditionalProps}\n      {...props}\n    />\n  );\n};\n\nSelect.Group = SelectGroup;\nSelect.Item = SelectItem;\nSelect.ItemDescription = SelectItemDescription;\n"],"names":["useState","useCallback","open","useUpdateEffect","jsx","InternalSelect","SelectGroup","SelectItem","SelectItemDescription"],"mappings":";;;;;;;;;AAYO,MAAM,SAAS,CAAC;AAAA,EACrB,KAAA,EAAO,SAAA;AAAA,EACP,YAAA;AAAA,EACA,QAAA,EAAU,YAAA;AAAA,EACV,OAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA,EAAc,gBAAA;AAAA,EACd,GAAG;AACL,CAAA,KAAmB;AACjB,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIA,cAAA;AAAA,IAC1C,OAAO,SAAA,KAAc,QAAA,GACjB,CAAC,SAAS,CAAA,GACV,OAAO,YAAA,KAAiB,QAAA,GACtB,CAAC,YAAY,CAAA,GACb;AAAC,GACT;AACA,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAIA,eAAS,KAAK,CAAA;AAEtC,EAAA,MAAM,YAAA,GAAeC,iBAAA;AAAA,IACnB,CAACC,KAAAA,KAAkB;AACjB,MAAA,OAAA,CAAQA,KAAI,CAAA;AACZ,MAAA,IAAI,OAAO,qBAAqB,UAAA,EAAY;AAC1C,QAAA,gBAAA,CAAiBA,KAAI,CAAA;AAAA,MACvB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,gBAAgB;AAAA,GACnB;AAEA,EAAA,MAAM,QAAA,GAAWD,iBAAA;AAAA,IACf,CACE,KAAA,EACA,IAAA,EACA,GAAA,KACG;AACH,MAAA,iBAAA,CAAkB,CAAA,MAAA,KAAU;AAC1B,QAAA,IAAI,MAAA,CAAO,CAAC,CAAA,KAAM,KAAA,EAAO;AACvB,UAAA,OAAO,CAAC,KAAK,CAAA;AAAA,QACf;AACA,QAAA,OAAO,MAAA;AAAA,MACT,CAAC,CAAA;AACD,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,IAAI,OAAO,iBAAiB,UAAA,EAAY;AACtC,QAAA,YAAA,CAAa,KAAA,EAAO,MAAM,GAAG,CAAA;AAAA,MAC/B;AAAA,IACF,CAAA;AAAA,IACA,CAAC,cAAc,YAAY;AAAA,GAC7B;AAEA,EAAA,MAAM,QAAA,GAAWA,iBAAA;AAAA,IACf,CAAC,MAAA,KAAqB;AACpB,MAAA,IAAI,MAAA,CAAO,CAAC,CAAA,KAAM,cAAA,CAAe,CAAC,CAAA,EAAG;AACnC,QAAA,QAAA,CAAS,MAAA,CAAO,CAAC,CAAC,CAAA;AAAA,MACpB;AAAA,IACF,CAAA;AAAA,IACA,CAAC,gBAAgB,QAAQ;AAAA,GAC3B;AAEA,EAAAE,+BAAA,CAAgB,MAAM;AACpB,IAAA,iBAAA,CAAkB,OAAO,SAAA,KAAc,QAAA,GAAW,CAAC,SAAS,CAAA,GAAI,EAAE,CAAA;AAAA,EACpE,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,MAAM,mBAA8C,EAAC;AACrD,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,gBAAA,CAAiB,OAAA,GAAU,OAAA;AAAA,EAC7B,CAAA,MAAO;AACL,IAAA,gBAAA,CAAiB,QAAA,GAAW,QAAA;AAAA,EAC9B;AAEA,EAAA,uBACEC,cAAA;AAAA,IAACC,6BAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MACA,OAAO,OAAO,SAAA,KAAc,QAAA,GAAW,CAAC,SAAS,CAAA,GAAI,cAAA;AAAA,MACrD,IAAA;AAAA,MACA,YAAA;AAAA,MACA,QAAA;AAAA,MACC,GAAG,gBAAA;AAAA,MACH,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,MAAA,CAAO,KAAA,GAAQC,0BAAA;AACf,MAAA,CAAO,IAAA,GAAOC,yBAAA;AACd,MAAA,CAAO,eAAA,GAAkBC,oCAAA;;"}