{"version":3,"file":"DropdownMenuGroup.cjs","sources":["../../../../src/components/Dropdown/DropdownMenuButton/DropdownMenuGroup.tsx"],"sourcesContent":["import {\n  type ComponentProps,\n  type FC,\n  type PropsWithChildren,\n  type ReactNode,\n  memo,\n  useId,\n  useMemo,\n} from 'react'\nimport { tv } from 'tailwind-variants'\n\nimport { Text } from '../../Text'\n\nimport { renderButtonList } from './DropdownMenuButton'\n\ntype AbstractProps = PropsWithChildren<{\n  name?: ReactNode\n}>\ntype Props = AbstractProps & Omit<ComponentProps<'li'>, keyof AbstractProps>\n\nconst classNameGenerator = tv({\n  slots: {\n    group: [\n      'smarthr-ui-DropdownMenuGroup',\n      [\n        '[&:not(:first-child)]:shr-relative',\n        '[&:not(:first-child)]:shr-mt-0.5',\n        '[&:not(:first-child)]:shr-pt-0.5',\n        '[&:not(:first-child)]:shr-min-w-[8em]',\n        '[&:not(:first-child)]:before:shr-content-[\"\"]',\n        '[&:not(:first-child)]:before:shr-absolute',\n        '[&:not(:first-child)]:before:shr-top-0',\n        '[&:not(:first-child)]:before:shr-inset-x-1',\n        '[&:not(:first-child)]:before:shr-h-px',\n        '[&:not(:first-child)]:before:shr-bg-border',\n      ],\n    ],\n    groupName: 'shr-px-1 shr-py-0.5',\n    subMenu: 'shr-list-none',\n  },\n})\n\nexport const DropdownMenuGroup: FC<Props> = ({ name, children, className }) => {\n  const subMenuId = useId()\n  const classNames = useMemo(() => {\n    const { group, groupName, subMenu } = classNameGenerator()\n\n    return {\n      group: group({ className }),\n      groupName: groupName(),\n      subMenu: subMenu(),\n    }\n  }, [className])\n\n  const subMenu = (\n    <menu\n      role=\"group\"\n      aria-labelledby={name ? subMenuId : undefined}\n      className={classNames.subMenu}\n    >\n      {renderButtonList(children)}\n    </menu>\n  )\n\n  return (\n    <li role=\"presentation\" className={classNames.group}>\n      {name ? (\n        <>\n          <NameText id={subMenuId} className={classNames.groupName}>\n            {name}\n          </NameText>\n          {subMenu}\n        </>\n      ) : (\n        subMenu\n      )}\n    </li>\n  )\n}\n\nconst NameText = memo<PropsWithChildren<{ id: string; className: string }>>(\n  ({ id, children, className }) => (\n    <Text\n      size=\"S\"\n      id={id}\n      weight=\"bold\"\n      color=\"TEXT_GREY\"\n      leading=\"NONE\"\n      className={className}\n      as=\"div\"\n    >\n      {children}\n    </Text>\n  ),\n)\n"],"names":["tv","useId","useMemo","_jsx","renderButtonList","_jsxs","_Fragment","memo","Text"],"mappings":";;;;;;;;AAoBA,MAAM,kBAAkB,GAAGA,QAAE,CAAC;AAC5B,IAAA,KAAK,EAAE;AACL,QAAA,KAAK,EAAE;YACL,8BAA8B;AAC9B,YAAA;gBACE,oCAAoC;gBACpC,kCAAkC;gBAClC,kCAAkC;gBAClC,uCAAuC;gBACvC,+CAA+C;gBAC/C,2CAA2C;gBAC3C,wCAAwC;gBACxC,4CAA4C;gBAC5C,uCAAuC;gBACvC,4CAA4C;AAC7C,aAAA;AACF,SAAA;AACD,QAAA,SAAS,EAAE,qBAAqB;AAChC,QAAA,OAAO,EAAE,eAAe;AACzB,KAAA;AACF,CAAA,CAAC;AAEK,MAAM,iBAAiB,GAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAI;AAC5E,IAAA,MAAM,SAAS,GAAGC,WAAK,EAAE;AACzB,IAAA,MAAM,UAAU,GAAGC,aAAO,CAAC,MAAK;QAC9B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE;QAE1D,OAAO;AACL,YAAA,KAAK,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;YAC3B,SAAS,EAAE,SAAS,EAAE;YACtB,OAAO,EAAE,OAAO,EAAE;SACnB;AACH,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,IAAA,MAAM,OAAO,IACXC,cAAA,CAAA,MAAA,EAAA,EACE,IAAI,EAAC,OAAO,EAAA,iBAAA,EACK,IAAI,GAAG,SAAS,GAAG,SAAS,EAC7C,SAAS,EAAE,UAAU,CAAC,OAAO,EAAA,QAAA,EAE5BC,0EAAgB,CAAC,QAAQ,CAAC,EAAA,CACtB,CACR;IAED,QACED,uBAAI,IAAI,EAAC,cAAc,EAAC,SAAS,EAAE,UAAU,CAAC,KAAK,EAAA,QAAA,EAChD,IAAI,IACHE,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEH,cAAA,CAAC,QAAQ,EAAA,EAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAA,QAAA,EACrD,IAAI,EAAA,CACI,EACV,OAAO,CAAA,EAAA,CACP,KAEH,OAAO,CACR,EAAA,CACE;AAET;AAEA,MAAM,QAAQ,GAAGI,UAAI,CACnB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAC1BJ,cAAA,CAACK,yBAAI,IACH,IAAI,EAAC,GAAG,EACR,EAAE,EAAE,EAAE,EACN,MAAM,EAAC,MAAM,EACb,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,EAAE,EAAC,KAAK,YAEP,QAAQ,EAAA,CACJ,CACR,CACF;;;;"}