{"version":3,"file":"index.cjs","sources":["../../../../packages/hooks/use-namespace/index.ts"],"sourcesContent":["export const defaultNamespace = 'u'\nconst statePrefix = 'is-'\n\nconst _bem = (\n  namespace: string,\n  block: string,\n  blockSuffix: string,\n  element: string,\n  modifier: string,\n) => {\n  let cls = `${namespace}-${block}`\n  if (blockSuffix) {\n    cls += `-${blockSuffix}`\n  }\n\n  if (element) {\n    cls += `__${element}`\n  }\n\n  if (modifier) {\n    cls += `--${modifier}`\n  }\n\n  return cls\n}\n\nexport const useNamespace = (block: string) => {\n  const namespace = defaultNamespace\n\n  const b = (blockSuffix = '') => _bem(namespace, block, blockSuffix, '', '')\n  const e = (element?: string) =>\n    element ? _bem(namespace, block, '', element, '') : ''\n\n  const m = (modifier?: string) =>\n    modifier ? _bem(namespace, block, '', '', modifier) : ''\n\n  const be = (blockSuffix?: string, element?: string) => {\n    if (blockSuffix && element) {\n      return _bem(namespace, block, blockSuffix, element, '')\n    }\n    else {\n      return ''\n    }\n  }\n\n  const em = (element?: string, modifier?: string) => {\n    if (element && modifier) {\n      return _bem(namespace, block, '', element, modifier)\n    }\n    else {\n      return ''\n    }\n  }\n  const bm = (blockSuffix?: string, modifier?: string) => {\n    if (blockSuffix && modifier) {\n      return _bem(namespace, block, blockSuffix, '', modifier)\n    }\n    else {\n      return ''\n    }\n  }\n  const bem = (blockSuffix?: string, element?: string, modifier?: string) => {\n    if (blockSuffix && element && modifier) {\n      return _bem(namespace, block, blockSuffix, element, modifier)\n    }\n    else {\n      return ''\n    }\n  }\n\n  const is: {\n    (name: string, state: boolean | undefined): string\n    (name: string): string\n  } = (name: string, ...args: [boolean | undefined] | []) => {\n    const state = args.length >= 1 ? args[0]! : true\n    if (name && state) {\n      return `${statePrefix}${name}`\n    }\n    else {\n      return ''\n    }\n  }\n\n  // for css var\n  // --{namespace}-xxx: value;\n  const cssVar = (object: Record<string, string>) => {\n    const styles: Record<string, string> = {}\n    for (const key in object) {\n      if (object[key]) {\n        styles[`--${namespace}-${key}`] = object[key]\n      }\n    }\n\n    return styles\n  }\n  // with block\n  const cssVarBlock = (object: Record<string, string>) => {\n    const styles: Record<string, string> = {}\n    for (const key in object) {\n      if (object[key]) {\n        styles[`--${namespace}-${block}-${key}`] = object[key]\n      }\n    }\n\n    return styles\n  }\n\n  const cssVarName = (name: string) => `--${namespace}-${name}`\n  const cssVarBlockName = (name: string) => `--${namespace}-${block}-${name}`\n\n  return {\n    namespace,\n    b,\n    e,\n    m,\n    be,\n    em,\n    bm,\n    bem,\n    is,\n    // css\n    cssVar,\n    cssVarName,\n    cssVarBlock,\n    cssVarBlockName,\n  }\n}\n\nexport type UseNamespace = ReturnType<typeof useNamespace>\n"],"names":[],"mappings":";;AAAO,MAAM,mBAAmB;AAChC,MAAM,cAAc;AAEpB,MAAM,OAAO,CACX,WACA,OACA,aACA,SACA,aACG;AACH,MAAI,MAAM,GAAG,SAAS,IAAI,KAAK;AAC/B,MAAI,aAAa;AACf,WAAO,IAAI,WAAW;AAAA,EACxB;AAEA,MAAI,SAAS;AACX,WAAO,KAAK,OAAO;AAAA,EACrB;AAEA,MAAI,UAAU;AACZ,WAAO,KAAK,QAAQ;AAAA,EACtB;AAEO,SAAA;AACT;AAEa,MAAA,eAAe,CAAC,UAAkB;AAC7C,QAAM,YAAY;AAEZ,QAAA,IAAI,CAAC,cAAc,OAAO,KAAK,WAAW,OAAO,aAAa,IAAI,EAAE;AACpE,QAAA,IAAI,CAAC,YACT,UAAU,KAAK,WAAW,OAAO,IAAI,SAAS,EAAE,IAAI;AAEhD,QAAA,IAAI,CAAC,aACT,WAAW,KAAK,WAAW,OAAO,IAAI,IAAI,QAAQ,IAAI;AAElD,QAAA,KAAK,CAAC,aAAsB,YAAqB;AACrD,QAAI,eAAe,SAAS;AAC1B,aAAO,KAAK,WAAW,OAAO,aAAa,SAAS,EAAE;AAAA,IAAA,OAEnD;AACI,aAAA;AAAA,IACT;AAAA,EAAA;AAGI,QAAA,KAAK,CAAC,SAAkB,aAAsB;AAClD,QAAI,WAAW,UAAU;AACvB,aAAO,KAAK,WAAW,OAAO,IAAI,SAAS,QAAQ;AAAA,IAAA,OAEhD;AACI,aAAA;AAAA,IACT;AAAA,EAAA;AAEI,QAAA,KAAK,CAAC,aAAsB,aAAsB;AACtD,QAAI,eAAe,UAAU;AAC3B,aAAO,KAAK,WAAW,OAAO,aAAa,IAAI,QAAQ;AAAA,IAAA,OAEpD;AACI,aAAA;AAAA,IACT;AAAA,EAAA;AAEF,QAAM,MAAM,CAAC,aAAsB,SAAkB,aAAsB;AACrE,QAAA,eAAe,WAAW,UAAU;AACtC,aAAO,KAAK,WAAW,OAAO,aAAa,SAAS,QAAQ;AAAA,IAAA,OAEzD;AACI,aAAA;AAAA,IACT;AAAA,EAAA;AAGI,QAAA,KAGF,CAAC,SAAiB,SAAqC;AACzD,UAAM,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,IAAK;AAC5C,QAAI,QAAQ,OAAO;AACV,aAAA,GAAG,WAAW,GAAG,IAAI;AAAA,IAAA,OAEzB;AACI,aAAA;AAAA,IACT;AAAA,EAAA;AAKI,QAAA,SAAS,CAAC,WAAmC;AACjD,UAAM,SAAiC,CAAA;AACvC,eAAW,OAAO,QAAQ;AACpB,UAAA,OAAO,GAAG,GAAG;AACf,eAAO,KAAK,SAAS,IAAI,GAAG,EAAE,IAAI,OAAO,GAAG;AAAA,MAC9C;AAAA,IACF;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,cAAc,CAAC,WAAmC;AACtD,UAAM,SAAiC,CAAA;AACvC,eAAW,OAAO,QAAQ;AACpB,UAAA,OAAO,GAAG,GAAG;AACR,eAAA,KAAK,SAAS,IAAI,KAAK,IAAI,GAAG,EAAE,IAAI,OAAO,GAAG;AAAA,MACvD;AAAA,IACF;AAEO,WAAA;AAAA,EAAA;AAGT,QAAM,aAAa,CAAC,SAAiB,KAAK,SAAS,IAAI,IAAI;AACrD,QAAA,kBAAkB,CAAC,SAAiB,KAAK,SAAS,IAAI,KAAK,IAAI,IAAI;AAElE,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;;;"}