{"version":3,"sources":["../src/hooks.ts"],"sourcesContent":["import { useColorMode } from \"@chakra-ui/color-mode\"\nimport { Dict, StringOrNumber } from \"@chakra-ui/utils\"\nimport { useTheme } from \"./use-theme\"\n\nexport function useChakra() {\n const colorModeResult = useColorMode()\n const theme = useTheme() as T\n return { ...colorModeResult, theme }\n}\n\nfunction getBreakpointValue(\n theme: Dict,\n value: T,\n fallback: any,\n) {\n if (value == null) return value\n const getValue = (val: T) => theme.__breakpoints?.asArray?.[val]\n return getValue(value) ?? getValue(fallback) ?? fallback\n}\n\nfunction getTokenValue(\n theme: Dict,\n value: T,\n fallback: any,\n) {\n if (value == null) return value\n const getValue = (val: T) => theme.__cssMap?.[val]?.value\n return getValue(value) ?? getValue(fallback) ?? fallback\n}\n\n/**\n * `useToken` is a custom hook used to resolve design tokens from the theme.\n *\n * @see Docs https://chakra-ui.com/docs/hooks/use-token\n */\nexport function useToken(\n scale: string,\n token: T,\n fallback?: T,\n) {\n const theme = useTheme()\n return getToken(scale, token, fallback)(theme)\n}\n\nexport function getToken(\n scale: string,\n token: T,\n fallback?: T,\n): (theme: Dict) => T {\n const _token = Array.isArray(token) ? token : [token]\n const _fallback = Array.isArray(fallback) ? fallback : [fallback]\n return (theme: Dict) => {\n const fallbackArr = _fallback.filter(Boolean) as T[]\n const result = _token.map((token, index) => {\n if (scale === \"breakpoints\") {\n return getBreakpointValue(theme, token, fallbackArr[index] ?? token)\n }\n const path = `${scale}.${token}`\n return getTokenValue(theme, path, fallbackArr[index] ?? token)\n })\n return Array.isArray(token) ? result : result[0]\n }\n}\n"],"mappings":";;;;;;AAAA,SAAS,oBAAoB;AAItB,SAAS,YAAmC;AACjD,QAAM,kBAAkB,aAAa;AACrC,QAAM,QAAQ,SAAS;AACvB,SAAO,EAAE,GAAG,iBAAiB,MAAM;AACrC;AAEA,SAAS,mBACP,OACA,OACA,UACA;AAdF;AAeE,MAAI,SAAS;AAAM,WAAO;AAC1B,QAAM,WAAW,CAAC,QAAQ;AAhB5B,QAAAA,KAAAC;AAgB+B,YAAAA,OAAAD,MAAA,MAAM,kBAAN,gBAAAA,IAAqB,YAArB,gBAAAC,IAA+B;AAAA;AAC5D,UAAO,oBAAS,KAAK,MAAd,YAAmB,SAAS,QAAQ,MAApC,YAAyC;AAClD;AAEA,SAAS,cACP,OACA,OACA,UACA;AAxBF;AAyBE,MAAI,SAAS;AAAM,WAAO;AAC1B,QAAM,WAAW,CAAC,QAAQ;AA1B5B,QAAAD,KAAAC;AA0B+B,YAAAA,OAAAD,MAAA,MAAM,aAAN,gBAAAA,IAAiB,SAAjB,gBAAAC,IAAuB;AAAA;AACpD,UAAO,oBAAS,KAAK,MAAd,YAAmB,SAAS,QAAQ,MAApC,YAAyC;AAClD;AAOO,SAAS,SACd,OACA,OACA,UACA;AACA,QAAM,QAAQ,SAAS;AACvB,SAAO,SAAS,OAAO,OAAO,QAAQ,EAAE,KAAK;AAC/C;AAEO,SAAS,SACd,OACA,OACA,UACoB;AACpB,QAAM,SAAS,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AACpD,QAAM,YAAY,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;AAChE,SAAO,CAAC,UAAqB;AAC3B,UAAM,cAAc,UAAU,OAAO,OAAO;AAC5C,UAAM,SAAS,OAAO,IAAI,CAACC,QAAO,UAAU;AArDhD;AAsDM,UAAI,UAAU,eAAe;AAC3B,eAAO,mBAAmB,OAAOA,SAAO,iBAAY,KAAK,MAAjB,YAAsBA,MAAK;AAAA,MACrE;AACA,YAAM,OAAO,GAAG,KAAK,IAAIA,MAAK;AAC9B,aAAO,cAAc,OAAO,OAAM,iBAAY,KAAK,MAAjB,YAAsBA,MAAK;AAAA,IAC/D,CAAC;AACD,WAAO,MAAM,QAAQ,KAAK,IAAI,SAAS,OAAO,CAAC;AAAA,EACjD;AACF;","names":["_a","_b","token"]}