{"version":3,"file":"getThemeAndSize.cjs","sources":["../../../src/utilities/getThemeAndSize.ts"],"sourcesContent":["import type { Size } from \"../core/types.js\";\n\n/*\n * For komponenter som mountes utenfor roten av applikasjonen vil styring av theme og size\n * via data-attributter satt på rot ikke fungere. Denne util'en kan brukes av slike komponenter\n * for å finne riktige verdier ved å sende inn et element som er mountet innenfor applikasjonen\n */\nexport const getThemeAndSize = (\n    element: Element | undefined,\n): { theme?: string; size?: Size } => {\n    if (!element) return {};\n\n    const computedStyles = getComputedStyle(element);\n\n    // Sett theme til dark hvis bakgrunnsfargen er mørkere enn 50% av hvit\n    // dette gir oss slingringsmonn i tilfelle verdien av Jøkuls bakgrunnsfarge endres\n    const theme =\n        Number.parseInt(\n            computedStyles\n                .getPropertyValue(\"--jkl-background-color\")\n                .replace(\"#\", \"\"),\n            16,\n        ) <\n        0xffffff / 2\n            ? \"dark\"\n            : \"light\";\n\n    const size = element.closest(\"[data-size]\")?.getAttribute(\"data-size\") as\n        | Size\n        | undefined;\n\n    return { theme, size };\n};\n"],"names":["element","computedStyles","getComputedStyle","theme","Number","parseInt","getPropertyValue","replace","size","closest","getAttribute"],"mappings":"wGAQIA,IAEA,IAAKA,EAAS,MAAO,CAAA,EAErB,MAAMC,EAAiBC,iBAAiBF,GAIlCG,EACFC,OAAOC,SACHJ,EACKK,iBAAiB,0BACjBC,QAAQ,IAAK,IAClB,IAEJ,UACM,OACA,QAEJC,EAAOR,EAAQS,QAAQ,gBAAgBC,aAAa,aAI1D,MAAO,CAAEP,MAAAA,EAAOK,KAAAA"}