{"version":3,"file":"utils.cjs","sources":["../../../components/menu/utils.ts"],"sourcesContent":["import React, { ReactNode } from 'react';\n\nexport const getMatch = (\n  value?: string,\n  children?: ReactNode,\n  search?: string\n) => {\n  if (!search?.length) return true;\n  const childrenValue = getChildrenValue(children)?.toLowerCase();\n\n  return !!(\n    value?.toLowerCase().includes(search.toLowerCase()) ||\n    childrenValue?.includes(search.toLowerCase())\n  );\n};\n\nexport const getChildrenValue = (children?: ReactNode) => {\n  let value = '';\n  if (!children) return value;\n\n  React.Children.forEach(children, child => {\n    if (typeof child === 'string' || typeof child === 'number') {\n      value += child + ' ';\n    } else if (React.isValidElement<{ children?: ReactNode }>(child)) {\n      value += getChildrenValue(child.props.children) + ' ';\n    }\n  });\n  return value.trim();\n};\n\nexport const KEYCODES: Record<string, [string, number]> = {\n  ARROW_RIGHT: ['ArrowRight', 39],\n  ESCAPE: ['Escape', 27]\n};\n\nexport const dispatchKeyboardEvent = (\n  element: Element | EventTarget,\n  key: (typeof KEYCODES)[keyof typeof KEYCODES],\n  bubbles: boolean = true\n) => {\n  const [keyName, keyCode] = key;\n  return element.dispatchEvent(\n    new KeyboardEvent('keydown', {\n      key: keyName,\n      code: keyName,\n      keyCode: keyCode,\n      which: keyCode,\n      bubbles\n    })\n  );\n};\n\nexport const isElementSubMenuTrigger = (element: Element) => {\n  return element.getAttribute('data-slot') === 'menu-subtrigger';\n};\n\nexport const isElementSubMenuOpen = (element: Element) => {\n  return element.hasAttribute('data-popup-open');\n};\n"],"names":[],"mappings":";;;;AAEa,MAAA,QAAQ,GAAG,CACtB,KAAc,EACd,QAAoB,EACpB,MAAe,KACb;IACF,IAAI,CAAC,MAAM,EAAE,MAAM;AAAE,QAAA,OAAO,IAAI,CAAC;IACjC,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;AAEhE,IAAA,OAAO,CAAC,EACN,KAAK,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACnD,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAC9C,CAAC;AACJ,EAAE;AAEW,MAAA,gBAAgB,GAAG,CAAC,QAAoB,KAAI;IACvD,IAAI,KAAK,GAAG,EAAE,CAAC;AACf,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAO,KAAK,CAAC;IAE5B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAG;QACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC1D,YAAA,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC;SACtB;AAAM,aAAA,IAAI,KAAK,CAAC,cAAc,CAA2B,KAAK,CAAC,EAAE;YAChE,KAAK,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;SACvD;AACH,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,EAAE;AAEW,MAAA,QAAQ,GAAqC;AACxD,IAAA,WAAW,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC;AAC/B,IAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;EACtB;AAEK,MAAM,qBAAqB,GAAG,CACnC,OAA8B,EAC9B,GAA6C,EAC7C,OAAA,GAAmB,IAAI,KACrB;AACF,IAAA,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;IAC/B,OAAO,OAAO,CAAC,aAAa,CAC1B,IAAI,aAAa,CAAC,SAAS,EAAE;AAC3B,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,KAAK,EAAE,OAAO;QACd,OAAO;AACR,KAAA,CAAC,CACH,CAAC;AACJ,EAAE;AAEW,MAAA,uBAAuB,GAAG,CAAC,OAAgB,KAAI;IAC1D,OAAO,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,iBAAiB,CAAC;AACjE,EAAE;AAEW,MAAA,oBAAoB,GAAG,CAAC,OAAgB,KAAI;AACvD,IAAA,OAAO,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;AACjD;;;;;;;;;"}