{"version":3,"file":"index7.mjs","sources":["../src/components/segmented-control/index.tsx"],"sourcesContent":["import { FunctionComponent, ReactNode, useEffect, useState } from \"react\";\nimport SegmentedControlAtom, {\n  SegmentedControlAtomType,\n} from \"../../../src/atoms/segmented-control\";\n\nimport styles from \"./SegmentedControl.module.css\";\n\nexport type SegmentedControlType = {\n  className?: string;\n\n  /** Variant props */\n  size?: \"sm\" | \"md\" | \"lg\";\n\n  /** Custom props */\n  icon?: ReactNode;\n  type?: \"single\" | \"multi\";\n  items: SegmentedControlAtomType[];\n  selected?: string[];\n  onChange?: (e: string[]) => void;\n};\n\nexport const SegmentedControl: FunctionComponent<SegmentedControlType> = ({\n  className = \"\",\n  size = \"sm\",\n  type = \"single\",\n  items = [],\n  selected: externalSelected = [],\n  onChange,\n}) => {\n  const [selected, setSelected] = useState(externalSelected);\n  const handleClick = (value: string) => {\n    let newSelected = [...selected];\n\n    if (type === \"single\") {\n      newSelected = [];\n    }\n\n    newSelected.includes(value)\n      ? (newSelected = newSelected.filter((item) => item !== value))\n      : newSelected.push(value);\n\n    setSelected(newSelected);\n\n    onChange?.(newSelected);\n  };\n  useEffect(() => {\n    if (type === \"single\" && selected.length === 0 && items.length > 0) {\n      setSelected([items[0].value || '']);\n    }\n  }, []);\n\n  return (\n    <div\n      className={[\n        styles.root,\n        className,\n        \"quill-ui-next-component\",\n        \"quill-ui-next-segmented-control\",\n      ].join(\" \")}\n      data-size={size}\n      data-type={type}\n      data-selected={selected}\n    >\n      {items.map((item) => (\n        <SegmentedControlAtom\n          key={item.value}\n          {...item}\n          size={size}\n          type={type}\n          isSelected={selected.includes(item.value || \"\")}\n          onClick={handleClick}\n        />\n      ))}\n    </div>\n  );\n};\n\nSegmentedControl.displayName = \"SegmentedControl\";\n\nexport default SegmentedControl;\n"],"names":[],"mappings":";;;;AAqBO,MAAM,mBAA4D,CAAC;AAAA,EACxE,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ,CAAC;AAAA,EACT,UAAU,mBAAmB,CAAC;AAAA,EAC9B;AACF,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,gBAAgB;AACnD,QAAA,cAAc,CAAC,UAAkB;AACjC,QAAA,cAAc,CAAC,GAAG,QAAQ;AAE9B,QAAI,SAAS,UAAU;AACrB,oBAAc,CAAC;AAAA,IAAA;AAGjB,gBAAY,SAAS,KAAK,IACrB,cAAc,YAAY,OAAO,CAAC,SAAS,SAAS,KAAK,IAC1D,YAAY,KAAK,KAAK;AAE1B,gBAAY,WAAW;AAEvB,yCAAW;AAAA,EACb;AACA,YAAU,MAAM;AACd,QAAI,SAAS,YAAY,SAAS,WAAW,KAAK,MAAM,SAAS,GAAG;AAClE,kBAAY,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;AAAA,IAAA;AAAA,EAEtC,GAAG,EAAE;AAGH,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,MAAA,EACA,KAAK,GAAG;AAAA,MACV,aAAW;AAAA,MACX,aAAW;AAAA,MACX,iBAAe;AAAA,MAEd,UAAA,MAAM,IAAI,CAAC,SACV;AAAA,QAAC;AAAA,QAAA;AAAA,UAEE,GAAG;AAAA,UACJ;AAAA,UACA;AAAA,UACA,YAAY,SAAS,SAAS,KAAK,SAAS,EAAE;AAAA,UAC9C,SAAS;AAAA,QAAA;AAAA,QALJ,KAAK;AAAA,MAOb,CAAA;AAAA,IAAA;AAAA,EACH;AAEJ;AAEA,iBAAiB,cAAc;"}