@babelize/elements 1.0.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/lib/use-controllable-state.ts","../src/registry/components/language-switcher.tsx","../src/registry/components/phone-input.tsx","../src/registry/components/navbar.tsx"],"names":["React","React2","LanguageSwitcher","_a","PhoneInput","jsxs","jsx","React4","NavBar"],"mappings":";;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACIO,SAAS,oBAAA,CACd,KAAA,EACA,YAAA,EACA,QAAA,EACwB;AACxB,EAAA,MAAM,eAAe,KAAA,KAAU,MAAA;AAC/B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAUA,gBAAY,YAAY,CAAA;AAEtE,EAAA,MAAM,WAAA,GAAoBA,cAAO,QAAQ,CAAA;AACzC,EAAMA,iBAAU,MAAM;AACpB,IAAA,WAAA,CAAY,OAAA,GAAU,QAAA;AAAA,EACxB,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,OAAA,GAAU,eAAe,KAAA,GAAQ,YAAA;AAEvC,EAAA,MAAM,QAAA,GAAiBA,MAAA,CAAA,WAAA;AAAA,IACrB,CAAC,IAAA,KAAY;AAzBjB,MAAA,IAAA,EAAA;AA0BM,MAAA,IAAI,CAAC,YAAA,EAAc,eAAA,CAAgB,IAAI,CAAA;AACvC,MAAA,CAAA,EAAA,GAAA,WAAA,CAAY,YAAZ,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,WAAA,EAAsB,IAAA,CAAA;AAAA,IACxB,CAAA;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,OAAO,CAAC,SAAS,QAAQ,CAAA;AAC3B;ACNA,IAAM,WAAA,mBAAc,IAAI,GAAA,CAAI,CAAC,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAA,EAAM,IAAI,CAAC,CAAA;AAEtE,SAAS,MAAM,IAAA,EAAuB;AACpC,EAAA,MAAM,OAAO,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,EAAE,WAAA,EAAY;AAC5C,EAAA,OAAO,WAAA,CAAY,IAAI,IAAI,CAAA;AAC7B;AAMA,IAAM,YAAA,GAAuC;AAAA,EAC3C,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;AAAA,EACJ,EAAA,EAAI,oBAAA;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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\n\n/**\n * Supports both controlled and uncontrolled usage from a single hook.\n *\n * When `value` is `undefined` the component owns its state and seeds it from\n * `defaultValue`. When `value` is provided the parent owns it and every render\n * reflects the prop, so external changes propagate.\n */\nexport function useControllableState<T>(\n value: T | undefined,\n defaultValue: T,\n onChange?: (next: T) => void,\n): [T, (next: T) => void] {\n const isControlled = value !== undefined;\n const [uncontrolled, setUncontrolled] = React.useState<T>(defaultValue);\n\n const onChangeRef = React.useRef(onChange);\n React.useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n const current = isControlled ? value : uncontrolled;\n\n const setValue = React.useCallback(\n (next: T) => {\n if (!isControlled) setUncontrolled(next);\n onChangeRef.current?.(next);\n },\n [isControlled],\n );\n\n return [current, setValue];\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { useControllableState } from \"@/lib/use-controllable-state\";\nimport type { Locale } from \"./types\";\n\nexport type { Locale };\n\nexport interface LanguageSwitcherProps extends Omit<\n React.ComponentPropsWithoutRef<\"div\">,\n \"defaultValue\" | \"onChange\"\n> {\n /** Array of available locales — only `code` is required */\n locales: Locale[];\n /** Selected locale code. Provide this to control the component. */\n value?: string;\n /** Initial selected locale code when uncontrolled (default: first locale's code) */\n defaultValue?: string;\n /** Callback when locale changes */\n onValueChange?: (code: string) => void;\n /** Show flag emojis next to locale names (default: false) */\n showFlags?: boolean;\n /** Display labels in native language or English (default: \"english\") */\n label?: \"native\" | \"english\";\n}\n\nconst RTL_LOCALES = new Set([\"ar\", \"he\", \"fa\", \"ur\", \"ps\", \"sd\", \"yi\"]);\n\nfunction isRtl(code: string): boolean {\n const lang = code.split(\"-\")[0].toLowerCase();\n return RTL_LOCALES.has(lang);\n}\n\n/**\n * Maps ISO 639-1 language codes to flag emojis via regional indicator symbols.\n * Covers 80+ common languages. Override per-locale with the `flag` prop.\n */\nconst LANG_TO_FLAG: Record<string, string> = {\n en: \"\\u{1F1FA}\\u{1F1F8}\",\n fr: \"\\u{1F1EB}\\u{1F1F7}\",\n es: \"\\u{1F1EA}\\u{1F1F8}\",\n de: \"\\u{1F1E9}\\u{1F1EA}\",\n ja: \"\\u{1F1EF}\\u{1F1F5}\",\n ko: \"\\u{1F1F0}\\u{1F1F7}\",\n zh: \"\\u{1F1E8}\\u{1F1F3}\",\n ar: \"\\u{1F1F8}\\u{1F1E6}\",\n pt: \"\\u{1F1E7}\\u{1F1F7}\",\n it: \"\\u{1F1EE}\\u{1F1F9}\",\n nl: \"\\u{1F1F3}\\u{1F1F1}\",\n ru: \"\\u{1F1F7}\\u{1F1FA}\",\n pl: \"\\u{1F1F5}\\u{1F1F1}\",\n tr: \"\\u{1F1F9}\\u{1F1F7}\",\n vi: \"\\u{1F1FB}\\u{1F1F3}\",\n th: \"\\u{1F1F9}\\u{1F1ED}\",\n id: \"\\u{1F1EE}\\u{1F1E9}\",\n hi: \"\\u{1F1EE}\\u{1F1F3}\",\n bn: \"\\u{1F1E7}\\u{1F1E9}\",\n uk: \"\\u{1F1FA}\\u{1F1E6}\",\n cs: \"\\u{1F1E8}\\u{1F1FF}\",\n sv: \"\\u{1F1F8}\\u{1F1EA}\",\n da: \"\\u{1F1E9}\\u{1F1F0}\",\n fi: \"\\u{1F1EB}\\u{1F1EE}\",\n no: \"\\u{1F1F3}\\u{1F1F4}\",\n nb: \"\\u{1F1F3}\\u{1F1F4}\",\n nn: \"\\u{1F1F3}\\u{1F1F4}\",\n el: \"\\u{1F1EC}\\u{1F1F7}\",\n he: \"\\u{1F1EE}\\u{1F1F1}\",\n fa: \"\\u{1F1EE}\\u{1F1F7}\",\n ro: \"\\u{1F1F7}\\u{1F1F4}\",\n hu: \"\\u{1F1ED}\\u{1F1FA}\",\n sk: \"\\u{1F1F8}\\u{1F1F0}\",\n bg: \"\\u{1F1E7}\\u{1F1EC}\",\n hr: \"\\u{1F1ED}\\u{1F1F7}\",\n sr: \"\\u{1F1F7}\\u{1F1F8}\",\n sl: \"\\u{1F1F8}\\u{1F1EE}\",\n lt: \"\\u{1F1F1}\\u{1F1F9}\",\n lv: \"\\u{1F1F1}\\u{1F1FB}\",\n et: \"\\u{1F1EA}\\u{1F1EA}\",\n ga: \"\\u{1F1EE}\\u{1F1EA}\",\n mt: \"\\u{1F1F2}\\u{1F1F9}\",\n ca: \"\\u{1F1E6}\\u{1F1F8}\",\n eu: \"\\u{1F1E6}\\u{1F1F7}\",\n gl: \"\\u{1F1E6}\\u{1F1F7}\",\n cy: \"\\u{1F1FF}\\u{1F1F4}\",\n mk: \"\\u{1F1F2}\\u{1F1F0}\",\n sq: \"\\u{1F1E6}\\u{1F1F1}\",\n bs: \"\\u{1F1E7}\\u{1F1F8}\",\n is: \"\\u{1F1EE}\\u{1F1F8}\",\n fo: \"\\u{1F1EB}\\u{1F1F4}\",\n sw: \"\\u{1F1F9}\\u{1F1FF}\",\n am: \"\\u{1F1E6}\\u{1F1F2}\",\n ne: \"\\u{1F1F3}\\u{1F1F5}\",\n si: \"\\u{1F1F8}\\u{1F1F0}\",\n my: \"\\u{1F1F2}\\u{1F1E2}\",\n km: \"\\u{1F1F0}\\u{1F1ED}\",\n lo: \"\\u{1F1F1}\\u{1F1E6}\",\n ka: \"\\u{1F1EC}\\u{1F1EA}\",\n hy: \"\\u{1F1E6}\\u{1F1F2}\",\n kk: \"\\u{1F1F0}\\u{1F1F0}\",\n uz: \"\\u{1F1FA}\\u{1F1FF}\",\n mn: \"\\u{1F1F2}\\u{1F1F3}\",\n ps: \"\\u{1F1F5}\\u{1F1F8}\",\n ur: \"\\u{1F1FA}\\u{1F1F2}\",\n sd: \"\\u{1F1F8}\\u{1F1E6}\",\n ml: \"\\u{1F1F2}\\u{1F1F1}\",\n ta: \"\\u{1F1F9}\\u{1F1F1}\",\n te: \"\\u{1F1F9}\\u{1F1EF}\",\n kn: \"\\u{1F1EE}\\u{1F1F3}\",\n mr: \"\\u{1F1F2}\\u{1F1F7}\",\n gu: \"\\u{1F1EE}\\u{1F1F3}\",\n pa: \"\\u{1F1F5}\\u{1F1E6}\",\n or: \"\\u{1F1F3}\\u{1F1F4}\",\n as: \"\\u{1F1E6}\\u{1F1F8}\",\n yi: \"\\u{1F1FE}\\u{1F1EA}\",\n yo: \"\\u{1F1FE}\\u{1F1F3}\",\n ig: \"\\u{1F1EE}\\u{1F1EC}\",\n zu: \"\\u{1F1FF}\\u{1F1F3}\",\n af: \"\\u{1F1E6}\\u{1F1FF}\",\n ha: \"\\u{1F1ED}\\u{1F1F2}\",\n tl: \"\\u{1F1F5}\\u{1F1ED}\",\n mg: \"\\u{1F1F2}\\u{1F1EC}\",\n mi: \"\\u{1F1F3}\\u{1F1FF}\",\n sm: \"\\u{1F1F8}\\u{1F1F4}\",\n fj: \"\\u{1F1EB}\\u{1F1EF}\",\n to: \"\\u{1F1F9}\\u{1F1F4}\",\n haw: \"\\u{1F1ED}\\u{1F1FC}\",\n la: \"\\u{1F1F1}\\u{1F1E6}\",\n eo: \"\\u{1F1EA}\\u{1F1F7}\",\n};\n\nfunction getFlag(code: string): string {\n const lang = code.split(\"-\")[0].toLowerCase();\n return LANG_TO_FLAG[lang] ?? \"\\u{1F310}\";\n}\n\n/**\n * Built-in language names: native form and English form.\n */\nconst LANG_NAMES: Record<string, [native: string, english: string]> = {\n en: [\"English\", \"English\"],\n fr: [\"Fran\\u00e7ais\", \"French\"],\n es: [\"Espa\\u00f1ol\", \"Spanish\"],\n de: [\"Deutsch\", \"German\"],\n ja: [\"\\u65e5\\u672c\\u8a9e\", \"Japanese\"],\n ko: [\"\\ud55c\\uad6d\\uc5b4\", \"Korean\"],\n zh: [\"\\u4e2d\\u6587\", \"Chinese\"],\n ar: [\"\\u0627\\u0644\\u0639\\u0631\\u0628\\u064a\\u0629\", \"Arabic\"],\n pt: [\"Portugu\\u00eas\", \"Portuguese\"],\n it: [\"Italiano\", \"Italian\"],\n nl: [\"Nederlands\", \"Dutch\"],\n ru: [\"\\u0420\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439\", \"Russian\"],\n pl: [\"Polski\", \"Polish\"],\n tr: [\"T\\u00fcrk\\u00e7e\", \"Turkish\"],\n vi: [\"Ti\\u1ebfng Vi\\u1ec7t\", \"Vietnamese\"],\n th: [\"\\u0e44\\u0e17\\u0e22\", \"Thai\"],\n id: [\"Bahasa Indonesia\", \"Indonesian\"],\n hi: [\"\\u0939\\u093f\\u0928\\u094d\\u0926\\u0940\", \"Hindi\"],\n bn: [\"\\u09ac\\u09be\\u0982\\u09b2\\u09be\", \"Bengali\"],\n uk: [\"\\u0423\\u043a\\u0440\\u0430\\u0457\\u043d\\u0441\\u044c\\u043a\\u0430\", \"Ukrainian\"],\n cs: [\"\\u010ce\\u0161tina\", \"Czech\"],\n sv: [\"Svenska\", \"Swedish\"],\n da: [\"Dansk\", \"Danish\"],\n fi: [\"Suomi\", \"Finnish\"],\n no: [\"Norsk\", \"Norwegian\"],\n nb: [\"Norsk bokm\\u00e5l\", \"Norwegian Bokm\\u00e5l\"],\n nn: [\"Nynorsk\", \"Norwegian Nynorsk\"],\n el: [\"\\u0395\\u03bb\\u03bb\\u03b7\\u03bd\\u03b9\\u03ba\\u03ac\", \"Greek\"],\n he: [\"\\u05e2\\u05d1\\u05e8\\u05d9\\u05ea\", \"Hebrew\"],\n fa: [\"\\u0641\\u0627\\u0631\\u0633\\u06cc\", \"Persian\"],\n ro: [\"Rom\\u00e2n\\u0103\", \"Romanian\"],\n hu: [\"Magyar\", \"Hungarian\"],\n sk: [\"Sloven\\u010dina\", \"Slovak\"],\n bg: [\"\\u0411\\u044a\\u043b\\u0433\\u0430\\u0440\\u0441\\u043a\\u0438\", \"Bulgarian\"],\n hr: [\"Hrvatski\", \"Croatian\"],\n sr: [\"\\u0421\\u0440\\u043f\\u0441\\u043a\\u0438\", \"Serbian\"],\n sl: [\"Sloven\\u0161\\u010dina\", \"Slovenian\"],\n lt: [\"Lietuvi\\u0173\", \"Lithuanian\"],\n lv: [\"Latvie\\u0161u\", \"Latvian\"],\n et: [\"Eesti\", \"Estonian\"],\n ga: [\"Gaeilge\", \"Irish\"],\n mt: [\"Malti\", \"Maltese\"],\n ca: [\"Catal\\u00e0\", \"Catalan\"],\n eu: [\"Euskara\", \"Basque\"],\n gl: [\"Galego\", \"Galician\"],\n cy: [\"Cymraeg\", \"Welsh\"],\n mk: [\"\\u041c\\u0430\\u043a\\u0435\\u0434\\u043e\\u043d\\u0441\\u043a\\u0438\", \"Macedonian\"],\n sq: [\"Shqip\", \"Albanian\"],\n bs: [\"Bosanski\", \"Bosnian\"],\n is: [\"\\u00cdslenska\", \"Icelandic\"],\n fo: [\"F\\u00f8royskt\", \"Faroese\"],\n sw: [\"Kiswahili\", \"Swahili\"],\n am: [\"\\u12a0\\u12cd\\u1295\\u1348\", \"Amharic\"],\n ne: [\"\\u0928\\u0947\\u092a\\u093e\\u0932\\u0940\", \"Nepali\"],\n si: [\"\\u0dc3\\u0dd2\\u0d82\\u0dc4\\u0dbd\", \"Sinhala\"],\n my: [\"\\u1019\\u103c\\u1014\\u103a\\u1019\\u102c\", \"Burmese\"],\n km: [\"\\u1780\\u1798\\u17d2\\u1796\\u17c7\\u1798\", \"Khmer\"],\n lo: [\"\\u0ea5\\u0e27\", \"Lao\"],\n ka: [\"\\u10e5\\u10d0\\u10e0\\u10d7\\u10e3\\u10da\\u10d8\", \"Georgian\"],\n hy: [\"\\u0540\\u0561\\u0575\\u0565\\u10e0\\u0565\\u0576\", \"Armenian\"],\n kk: [\"\\u049a\\u0430\\u0437\\u0430\\u049b\", \"Kazakh\"],\n uz: [\"O\\u2019zbek\", \"Uzbek\"],\n mn: [\"\\u041c\\u043e\\u043d\\u0433\\u043e\\u043b\", \"Mongolian\"],\n ps: [\"\\u067e\\u069a\\u062a\\u0648\", \"Pashto\"],\n ur: [\"\\u0627\\u0631\\u062f\\u0648\", \"Urdu\"],\n sd: [\"\\u0773\\u0647\\u0646\\u068c\\u064a\", \"Sindhi\"],\n ml: [\"\\u0d2e\\u0d32\\u0d2f\\u0d3e\\u0d33\\u0d02\", \"Malayalam\"],\n ta: [\"\\u0ba4\\u0bae\\u0bbf\\u0bb4\\u0bcd\", \"Tamil\"],\n te: [\"\\u0c24\\u0c46\\u0c32\\u0c41\\u0c17\\u0c41\", \"Telugu\"],\n kn: [\"\\u0c95\\u0ca8\\u0ccd\\u0ca8\\u0ca1\", \"Kannada\"],\n mr: [\"\\u092e\\u0930\\u093e\\u0920\\u0940\", \"Marathi\"],\n gu: [\"\\u0a97\\u0ac1\\u0a9c\\u0ab0\\u0abe\\u0aa4\\u0ac0\", \"Gujarati\"],\n pa: [\"\\u0a2a\\u0a70\\u0a1c\\u0a3e\\u0a2c\\u0a40\", \"Punjabi\"],\n or: [\"\\u0b13\\u0b21\\u0b3c\\u0b3f\\u0b06\", \"Odia\"],\n as: [\"\\u0985\\u09b8\\u09ae\\u09c0\\u09af\\u09bc\\u09be\", \"Assamese\"],\n yi: [\"\\u05d9\\u05d9\\u05b4\\u05d3\\u05d9\\u05e9\", \"Yiddish\"],\n yo: [\"Yor\\u00f9b\\u00e1\", \"Yoruba\"],\n ig: [\"Igbo\", \"Igbo\"],\n zu: [\"isiZulu\", \"Zulu\"],\n af: [\"Afrikaans\", \"Afrikaans\"],\n ha: [\"Hausa\", \"Hausa\"],\n tl: [\"Filipino\", \"Filipino\"],\n mg: [\"Malagasy\", \"Malagasy\"],\n mi: [\"Te Reo M\\u0101ori\", \"M\\u0101ori\"],\n sm: [\"Gagana Samoa\", \"Samoan\"],\n to: [\"Lea Faka-Tonga\", \"Tongan\"],\n fj: [\"Na Vosa Vakaviti\", \"Fijian\"],\n haw: [\"\\u02bb\\u014clelo Hawai\\u02bbi\", \"Hawaiian\"],\n la: [\"Latina\", \"Latin\"],\n eo: [\"Esperanto\", \"Esperanto\"],\n};\n\nfunction getLabel(code: string, mode: \"native\" | \"english\"): string {\n const lang = code.split(\"-\")[0].toLowerCase();\n const names = LANG_NAMES[lang];\n if (!names) return code;\n return mode === \"native\" ? names[0] : names[1];\n}\n\nexport const LanguageSwitcher = React.forwardRef<HTMLDivElement, LanguageSwitcherProps>(\n function LanguageSwitcher(\n {\n locales,\n value,\n defaultValue,\n onValueChange,\n showFlags = false,\n label: labelMode = \"english\",\n className,\n ...rest\n },\n forwardedRef,\n ) {\n const [locale, setLocale] = useControllableState(\n value,\n defaultValue ?? locales[0]?.code ?? \"\",\n onValueChange,\n );\n const [open, setOpen] = React.useState(false);\n const [search, setSearch] = React.useState(\"\");\n const ref = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useImperativeHandle(forwardedRef, () => ref.current as HTMLDivElement);\n\n const resolveLabel = (l: Locale) => l.label ?? getLabel(l.code, labelMode);\n const activeLocale = locales.find((l) => l.code === locale);\n\n const filtered = locales.filter(\n (l) =>\n resolveLabel(l).toLowerCase().includes(search.toLowerCase()) ||\n l.code.toLowerCase().includes(search.toLowerCase()),\n );\n\n const dir = isRtl(locale) ? \"rtl\" : \"ltr\";\n\n React.useEffect(() => {\n function handleClickOutside(e: MouseEvent) {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n setSearch(\"\");\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, []);\n\n React.useEffect(() => {\n if (open) inputRef.current?.focus();\n }, [open]);\n\n React.useEffect(() => {\n function handleKeyDown(e: KeyboardEvent) {\n if (e.key === \"Escape\") {\n setOpen(false);\n setSearch(\"\");\n }\n }\n if (open) {\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }\n }, [open]);\n\n return (\n <div ref={ref} className={cn(\"relative inline-block text-sm z-50\", className)} {...rest}>\n <button\n type=\"button\"\n onClick={() => setOpen(!open)}\n className={cn(\n \"inline-flex items-center gap-2 rounded-lg border border-zinc-200 bg-zinc-100 px-3 py-2 text-sm font-medium text-zinc-900 transition-colors hover:bg-zinc-100 hover:text-zinc-900 focus:outline-none focus:ring-2 focus:ring-emerald-500/50 dark:border-zinc-800 dark:bg-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-700 dark:hover:text-zinc-50\",\n dir === \"rtl\" && \"flex-row-reverse\",\n )}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-label={`Current language: ${activeLocale ? resolveLabel(activeLocale) : locale}`}\n >\n {showFlags && <span className=\"text-base\">{activeLocale?.flag ?? getFlag(locale)}</span>}\n <span>{activeLocale ? resolveLabel(activeLocale) : locale}</span>\n <svg\n className={cn(\n \"size-4 text-zinc-500 transition-transform dark:text-zinc-400\",\n open && \"rotate-180\",\n )}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n\n {open && (\n <div\n className=\"absolute z-50 mt-1 min-w-[200px] overflow-hidden rounded-xl border border-zinc-200 bg-white shadow-xl dark:border-zinc-800 dark:bg-zinc-950\"\n role=\"listbox\"\n aria-label=\"Select language\"\n >\n <div className=\"border-b border-zinc-200 p-2 dark:border-zinc-800\">\n <input\n ref={inputRef}\n type=\"text\"\n placeholder=\"Search...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"w-full rounded-lg bg-zinc-100 px-3 py-1.5 text-sm text-zinc-900 outline-none placeholder:text-zinc-400 focus:ring-1 focus:ring-emerald-500/50 dark:bg-zinc-800 dark:text-zinc-100 dark:placeholder:text-zinc-500\"\n />\n </div>\n <div className=\"max-h-60 overflow-y-auto p-1\">\n {filtered.map((l) => {\n const isActive = l.code === locale;\n const itemDir = l.rtl || isRtl(l.code) ? \"rtl\" : \"ltr\";\n return (\n <button\n key={l.code}\n type=\"button\"\n role=\"option\"\n aria-selected={isActive}\n dir={itemDir}\n onClick={() => {\n setLocale(l.code);\n setOpen(false);\n setSearch(\"\");\n }}\n className={cn(\n \"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-sm transition-colors\",\n itemDir === \"rtl\" && \"flex-row-reverse text-right\",\n isActive\n ? \"bg-emerald-500/10 text-emerald-600 font-medium dark:text-emerald-400\"\n : \"text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-100\",\n )}\n >\n {showFlags && <span className=\"text-base\">{l.flag ?? getFlag(l.code)}</span>}\n <span className=\"flex-1\">{resolveLabel(l)}</span>\n {isActive && (\n <svg\n className=\"size-4 text-emerald-600 dark:text-emerald-400\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n )}\n </button>\n );\n })}\n {filtered.length === 0 && (\n <div className=\"px-3 py-2 text-sm text-zinc-500 dark:text-zinc-400\">No results</div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n },\n);\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { useControllableState } from \"@/lib/use-controllable-state\";\n\nexport interface Country {\n /** ISO 3166-1 alpha-2 country code (e.g. \"US\") */\n code: string;\n /** E.164 dial prefix, including the leading \"+\" */\n dialCode: string;\n /** English country name */\n name: string;\n /** Flag emoji */\n flag: string;\n}\n\nexport interface PhoneInputProps extends Omit<\n React.ComponentPropsWithoutRef<\"input\">,\n \"value\" | \"defaultValue\" | \"onChange\" | \"type\"\n> {\n /** Phone number. Provide this to control the component. */\n value?: string;\n /** Initial phone number when uncontrolled */\n defaultValue?: string;\n /** Callback when the number or the selected country changes */\n onValueChange?: (phone: string, country: Country) => void;\n /**\n * @deprecated Use `onValueChange`. Kept for one release.\n */\n onChange?: (phone: string, country: Country) => void;\n /** ISO 3166-1 alpha-2 code of the initially selected country (default: \"US\") */\n defaultCountry?: string;\n /** Show the flag emoji beside the dial code (default: true) */\n showFlags?: boolean;\n /**\n * @deprecated Use `showFlags`. Kept for one release.\n */\n showFlag?: boolean;\n /** Accessible label for the field (default: \"Phone number\") */\n label?: string;\n}\n\nconst COUNTRIES: Country[] = [\n { code: \"US\", dialCode: \"+1\", name: \"United States\", flag: \"\\u{1F1FA}\\u{1F1F8}\" },\n { code: \"GB\", dialCode: \"+44\", name: \"United Kingdom\", flag: \"\\u{1F1EC}\\u{1F1E7}\" },\n { code: \"IN\", dialCode: \"+91\", name: \"India\", flag: \"\\u{1F1EE}\\u{1F1F3}\" },\n { code: \"CA\", dialCode: \"+1\", name: \"Canada\", flag: \"\\u{1F1E8}\\u{1F1E6}\" },\n { code: \"AU\", dialCode: \"+61\", name: \"Australia\", flag: \"\\u{1F1E6}\\u{1F1FA}\" },\n { code: \"DE\", dialCode: \"+49\", name: \"Germany\", flag: \"\\u{1F1E9}\\u{1F1EA}\" },\n { code: \"FR\", dialCode: \"+33\", name: \"France\", flag: \"\\u{1F1EB}\\u{1F1F7}\" },\n { code: \"JP\", dialCode: \"+81\", name: \"Japan\", flag: \"\\u{1F1EF}\\u{1F1F5}\" },\n { code: \"BR\", dialCode: \"+55\", name: \"Brazil\", flag: \"\\u{1F1E7}\\u{1F1F7}\" },\n { code: \"CN\", dialCode: \"+86\", name: \"China\", flag: \"\\u{1F1E8}\\u{1F1F3}\" },\n { code: \"RU\", dialCode: \"+7\", name: \"Russia\", flag: \"\\u{1F1F7}\\u{1F1FA}\" },\n { code: \"KR\", dialCode: \"+82\", name: \"South Korea\", flag: \"\\u{1F1F0}\\u{1F1F7}\" },\n { code: \"IT\", dialCode: \"+39\", name: \"Italy\", flag: \"\\u{1F1EE}\\u{1F1F9}\" },\n { code: \"ES\", dialCode: \"+34\", name: \"Spain\", flag: \"\\u{1F1EA}\\u{1F1F8}\" },\n { code: \"MX\", dialCode: \"+52\", name: \"Mexico\", flag: \"\\u{1F1F2}\\u{1F1FD}\" },\n { code: \"NL\", dialCode: \"+31\", name: \"Netherlands\", flag: \"\\u{1F1F3}\\u{1F1F1}\" },\n { code: \"SE\", dialCode: \"+46\", name: \"Sweden\", flag: \"\\u{1F1F8}\\u{1F1EA}\" },\n { code: \"CH\", dialCode: \"+41\", name: \"Switzerland\", flag: \"\\u{1F1E8}\\u{1F1ED}\" },\n { code: \"PL\", dialCode: \"+48\", name: \"Poland\", flag: \"\\u{1F1F5}\\u{1F1F1}\" },\n { code: \"AR\", dialCode: \"+54\", name: \"Argentina\", flag: \"\\u{1F1E6}\\u{1F1F7}\" },\n { code: \"ZA\", dialCode: \"+27\", name: \"South Africa\", flag: \"\\u{1F1FF}\\u{1F1E6}\" },\n { code: \"NG\", dialCode: \"+234\", name: \"Nigeria\", flag: \"\\u{1F1F3}\\u{1F1EC}\" },\n { code: \"EG\", dialCode: \"+20\", name: \"Egypt\", flag: \"\\u{1F1EA}\\u{1F1EC}\" },\n { code: \"SA\", dialCode: \"+966\", name: \"Saudi Arabia\", flag: \"\\u{1F1F8}\\u{1F1E6}\" },\n { code: \"AE\", dialCode: \"+971\", name: \"United Arab Emirates\", flag: \"\\u{1F1E6}\\u{1F1EA}\" },\n { code: \"SG\", dialCode: \"+65\", name: \"Singapore\", flag: \"\\u{1F1F8}\\u{1F1EC}\" },\n { code: \"MY\", dialCode: \"+60\", name: \"Malaysia\", flag: \"\\u{1F1F2}\\u{1F1FE}\" },\n { code: \"TH\", dialCode: \"+66\", name: \"Thailand\", flag: \"\\u{1F1F9}\\u{1F1ED}\" },\n { code: \"PH\", dialCode: \"+63\", name: \"Philippines\", flag: \"\\u{1F1F5}\\u{1F1ED}\" },\n { code: \"ID\", dialCode: \"+62\", name: \"Indonesia\", flag: \"\\u{1F1EE}\\u{1F1E9}\" },\n { code: \"VN\", dialCode: \"+84\", name: \"Vietnam\", flag: \"\\u{1F1FB}\\u{1F1F3}\" },\n { code: \"TR\", dialCode: \"+90\", name: \"Turkey\", flag: \"\\u{1F1F9}\\u{1F1F7}\" },\n { code: \"PK\", dialCode: \"+92\", name: \"Pakistan\", flag: \"\\u{1F1F5}\\u{1F1F0}\" },\n { code: \"BD\", dialCode: \"+880\", name: \"Bangladesh\", flag: \"\\u{1F1E7}\\u{1F1E9}\" },\n { code: \"KE\", dialCode: \"+254\", name: \"Kenya\", flag: \"\\u{1F1F0}\\u{1F1EA}\" },\n { code: \"GH\", dialCode: \"+233\", name: \"Ghana\", flag: \"\\u{1F1EC}\\u{1F1ED}\" },\n { code: \"ET\", dialCode: \"+251\", name: \"Ethiopia\", flag: \"\\u{1F1EA}\\u{1F1F9}\" },\n { code: \"TZ\", dialCode: \"+255\", name: \"Tanzania\", flag: \"\\u{1F1F9}\\u{1F1FF}\" },\n { code: \"IL\", dialCode: \"+972\", name: \"Israel\", flag: \"\\u{1F1EE}\\u{1F1F1}\" },\n { code: \"HK\", dialCode: \"+852\", name: \"Hong Kong\", flag: \"\\u{1F1ED}\\u{1F1F0}\" },\n { code: \"NZ\", dialCode: \"+64\", name: \"New Zealand\", flag: \"\\u{1F1F3}\\u{1F1FF}\" },\n { code: \"IE\", dialCode: \"+353\", name: \"Ireland\", flag: \"\\u{1F1EE}\\u{1F1EA}\" },\n { code: \"PT\", dialCode: \"+351\", name: \"Portugal\", flag: \"\\u{1F1F5}\\u{1F1F9}\" },\n { code: \"CL\", dialCode: \"+56\", name: \"Chile\", flag: \"\\u{1F1E8}\\u{1F1F1}\" },\n { code: \"CO\", dialCode: \"+57\", name: \"Colombia\", flag: \"\\u{1F1E8}\\u{1F1F4}\" },\n { code: \"FI\", dialCode: \"+358\", name: \"Finland\", flag: \"\\u{1F1EB}\\u{1F1EE}\" },\n { code: \"NO\", dialCode: \"+47\", name: \"Norway\", flag: \"\\u{1F1F3}\\u{1F1F4}\" },\n { code: \"DK\", dialCode: \"+45\", name: \"Denmark\", flag: \"\\u{1F1E9}\\u{1F1F0}\" },\n { code: \"AT\", dialCode: \"+43\", name: \"Austria\", flag: \"\\u{1F1E6}\\u{1F1F9}\" },\n { code: \"BE\", dialCode: \"+32\", name: \"Belgium\", flag: \"\\u{1F1E7}\\u{1F1EA}\" },\n];\n\nfunction getCountryByCode(code: string): Country | undefined {\n return COUNTRIES.find((c) => c.code === code.toUpperCase());\n}\n\nexport const PhoneInput = React.forwardRef<HTMLInputElement, PhoneInputProps>(function PhoneInput(\n {\n value,\n defaultValue,\n onValueChange,\n onChange,\n defaultCountry = \"US\",\n placeholder = \"Phone number\",\n disabled = false,\n className,\n showFlags,\n showFlag,\n label = \"Phone number\",\n ...rest\n },\n forwardedRef,\n) {\n const flagsVisible = showFlags ?? showFlag ?? true;\n const [selectedCountry, setSelectedCountry] = React.useState<Country>(\n () => getCountryByCode(defaultCountry) ?? COUNTRIES[0],\n );\n const notify = onValueChange ?? onChange;\n const [inputValue, setInputValue] = useControllableState(value, defaultValue ?? \"\", undefined);\n const [open, setOpen] = React.useState(false);\n const [search, setSearch] = React.useState(\"\");\n const ref = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement);\n\n const filtered = COUNTRIES.filter(\n (c) =>\n c.name.toLowerCase().includes(search.toLowerCase()) ||\n c.dialCode.includes(search) ||\n c.code.toLowerCase().includes(search.toLowerCase()),\n );\n\n React.useEffect(() => {\n function handleClickOutside(e: MouseEvent) {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n setSearch(\"\");\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, []);\n\n React.useEffect(() => {\n if (open) inputRef.current?.focus();\n }, [open]);\n\n React.useEffect(() => {\n function handleKeyDown(e: KeyboardEvent) {\n if (e.key === \"Escape\") {\n setOpen(false);\n setSearch(\"\");\n }\n }\n if (open) {\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }\n }, [open]);\n\n const handleCountrySelect = (country: Country) => {\n setSelectedCountry(country);\n setOpen(false);\n setSearch(\"\");\n notify?.(inputValue, country);\n inputRef.current?.focus();\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n setInputValue(newValue);\n notify?.(newValue, selectedCountry);\n };\n\n return (\n <div ref={ref} className={cn(\"relative inline-block text-sm\", className)}>\n <div\n className={cn(\n \"flex items-center overflow-hidden rounded-lg border transition-colors\",\n \"bg-white border-zinc-200 dark:bg-zinc-900 dark:border-zinc-800\",\n disabled && \"opacity-50 cursor-not-allowed\",\n )}\n >\n <button\n type=\"button\"\n onClick={() => !disabled && setOpen(!open)}\n disabled={disabled}\n className={cn(\n \"flex items-center gap-1.5 border-r px-3 py-2.5 text-sm transition-colors\",\n \"border-zinc-200 text-zinc-900 hover:bg-zinc-100 hover:text-zinc-900 dark:border-zinc-800 dark:text-zinc-100 dark:hover:bg-zinc-800 dark:hover:text-zinc-100\",\n disabled && \"cursor-not-allowed\",\n )}\n aria-label=\"Select country\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n >\n {flagsVisible && <span className=\"text-base leading-none\">{selectedCountry.flag}</span>}\n <span className=\"font-mono text-xs\">{selectedCountry.dialCode}</span>\n <svg\n className={cn(\n \"size-3 text-zinc-500 transition-transform dark:text-zinc-400\",\n open && \"rotate-180\",\n )}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n\n <input\n ref={inputRef}\n type=\"tel\"\n value={inputValue}\n onChange={handleInputChange}\n placeholder={placeholder}\n disabled={disabled}\n {...rest}\n className={cn(\n \"flex-1 bg-transparent px-3 py-2.5 text-sm outline-none placeholder:text-zinc-400 dark:placeholder:text-zinc-500\",\n \"text-zinc-900 dark:text-zinc-100\",\n \"focus:ring-1 focus:ring-emerald-500/50\",\n disabled && \"cursor-not-allowed\",\n )}\n aria-label={label}\n />\n </div>\n\n {open && (\n <div\n className=\"absolute z-50 mt-1 min-w-[280px] overflow-hidden rounded-xl border border-zinc-200 bg-white shadow-xl dark:border-zinc-800 dark:bg-zinc-950\"\n role=\"listbox\"\n aria-label=\"Select country\"\n >\n <div className=\"border-b border-zinc-200 p-2 dark:border-zinc-800\">\n <input\n ref={inputRef}\n type=\"text\"\n placeholder=\"Search countries...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"w-full rounded-lg bg-zinc-100 px-3 py-1.5 text-sm text-zinc-900 outline-none placeholder:text-zinc-400 focus:ring-1 focus:ring-emerald-500/50 dark:bg-zinc-800 dark:text-zinc-100 dark:placeholder:text-zinc-500\"\n />\n </div>\n\n <div className=\"max-h-60 overflow-y-auto p-1\">\n {filtered.map((country) => {\n const isActive = country.code === selectedCountry.code;\n return (\n <button\n key={country.code}\n type=\"button\"\n role=\"option\"\n aria-selected={isActive}\n onClick={() => handleCountrySelect(country)}\n className={cn(\n \"flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm transition-colors\",\n isActive\n ? \"bg-emerald-500/10 text-emerald-600 font-medium dark:text-emerald-400\"\n : \"text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-100\",\n )}\n >\n <span className=\"text-base leading-none\">{country.flag}</span>\n <span className=\"flex-1\">{country.name}</span>\n <span className=\"font-mono text-xs text-zinc-500 dark:text-zinc-400\">\n {country.dialCode}\n </span>\n {isActive && (\n <svg\n className=\"size-4 text-emerald-600 dark:text-emerald-400\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n )}\n </button>\n );\n })}\n {filtered.length === 0 && (\n <div className=\"px-3 py-2 text-sm text-zinc-500 dark:text-zinc-400\">\n No countries found\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n});\n\nexport { COUNTRIES };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { useControllableState } from \"@/lib/use-controllable-state\";\nimport type { Locale } from \"./types\";\n\nexport type { Locale };\n\nexport interface NavLink {\n /** Visible link text */\n label: string;\n /** Destination passed to `linkComponent` as `href` */\n href: string;\n}\n\nexport interface NavBarProps extends Omit<\n React.ComponentPropsWithoutRef<\"nav\">,\n \"defaultValue\" | \"onChange\"\n> {\n /** Brand mark rendered on the left */\n logo?: React.ReactNode;\n /** Navigation links */\n links?: NavLink[];\n /** Locales offered by the built-in language menu */\n locales?: Locale[];\n /** Selected locale code. Provide this to control the component. */\n value?: string;\n /** Initial selected locale code when uncontrolled (default: \"en\") */\n defaultValue?: string;\n /** Callback when the locale changes */\n onValueChange?: (code: string) => void;\n /**\n * @deprecated Use `value`. Kept for one release.\n */\n currentLocale?: string;\n /**\n * @deprecated Use `onValueChange`. Kept for one release.\n */\n onLocaleChange?: (code: string) => void;\n /** Primary call-to-action button */\n cta?: { label: string; href: string };\n /** Show a GitHub icon link */\n showGitHub?: boolean;\n /** Target of the GitHub icon link */\n githubUrl?: string;\n /** Pin the bar to the top of the viewport (default: true) */\n sticky?: boolean;\n /** Show flag emojis in the language menu (default: true) */\n showFlags?: boolean;\n /**\n * Component used to render internal links. Defaults to `\"a\"` so the\n * component works in any React app; pass your router's link (e.g.\n * `next/link`) to get client-side navigation.\n */\n linkComponent?: React.ElementType;\n}\n\nconst LOCALE_MAP: Record<string, { label: string; flag: string }> = {\n en: { label: \"English\", flag: \"\\u{1F1FA}\\u{1F1F8}\" },\n fr: { label: \"Fran\\u00e7ais\", flag: \"\\u{1F1EB}\\u{1F1F7}\" },\n es: { label: \"Espa\\u00f1ol\", flag: \"\\u{1F1EA}\\u{1F1F8}\" },\n de: { label: \"Deutsch\", flag: \"\\u{1F1E9}\\u{1F1EA}\" },\n ja: { label: \"\\u65e5\\u672c\\u8a9e\", flag: \"\\u{1F1EF}\\u{1F1F5}\" },\n ko: { label: \"\\ud55c\\uad6d\\uc5b4\", flag: \"\\u{1F1F0}\\u{1F1F7}\" },\n zh: { label: \"\\u4e2d\\u6587\", flag: \"\\u{1F1E8}\\u{1F1F3}\" },\n ar: { label: \"\\u0627\\u0644\\u0639\\u0631\\u0628\\u064a\\u0629\", flag: \"\\u{1F1F8}\\u{1F1E6}\" },\n pt: { label: \"Portugu\\u00eas\", flag: \"\\u{1F1E7}\\u{1F1F7}\" },\n it: { label: \"Italiano\", flag: \"\\u{1F1EE}\\u{1F1F9}\" },\n nl: { label: \"Nederlands\", flag: \"\\u{1F1F3}\\u{1F1F1}\" },\n ru: { label: \"\\u0420\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439\", flag: \"\\u{1F1F7}\\u{1F1FA}\" },\n pl: { label: \"Polski\", flag: \"\\u{1F1F5}\\u{1F1F1}\" },\n tr: { label: \"T\\u00fcrk\\u00e7e\", flag: \"\\u{1F1F9}\\u{1F1F7}\" },\n vi: { label: \"Ti\\u1ebfng Vi\\u1ec7t\", flag: \"\\u{1F1FB}\\u{1F1F3}\" },\n th: { label: \"\\u0e44\\u0e17\\u0e22\", flag: \"\\u{1F1F9}\\u{1F1ED}\" },\n id: { label: \"Bahasa Indonesia\", flag: \"\\u{1F1EE}\\u{1F1E9}\" },\n hi: { label: \"\\u0939\\u093f\\u0928\\u094d\\u0926\\u0940\", flag: \"\\u{1F1EE}\\u{1F1F3}\" },\n sv: { label: \"Svenska\", flag: \"\\u{1F1F8}\\u{1F1EA}\" },\n da: { label: \"Dansk\", flag: \"\\u{1F1E9}\\u{1F1F0}\" },\n fi: { label: \"Suomi\", flag: \"\\u{1F1EB}\\u{1F1EE}\" },\n no: { label: \"Norsk\", flag: \"\\u{1F1F3}\\u{1F1F4}\" },\n el: { label: \"\\u0395\\u03bb\\u03bb\\u03b7\\u03bd\\u03b9\\u03ba\\u03ac\", flag: \"\\u{1F1EC}\\u{1F1F7}\" },\n he: { label: \"\\u05e2\\u05d1\\u05e8\\u05d9\\u05ea\", flag: \"\\u{1F1EE}\\u{1F1F1}\" },\n ro: { label: \"Rom\\u00e2n\\u0103\", flag: \"\\u{1F1F7}\\u{1F1F4}\" },\n hu: { label: \"Magyar\", flag: \"\\u{1F1ED}\\u{1F1FA}\" },\n cs: { label: \"\\u010ce\\u0161tina\", flag: \"\\u{1F1E8}\\u{1F1FF}\" },\n uk: {\n label: \"\\u0423\\u043a\\u0440\\u0430\\u0457\\u043d\\u0441\\u044c\\u043a\\u0430\",\n flag: \"\\u{1F1FA}\\u{1F1E6}\",\n },\n bg: {\n label: \"\\u0411\\u044a\\u043b\\u0433\\u0430\\u0440\\u0441\\u043a\\u0438\",\n flag: \"\\u{1F1E7}\\u{1F1EC}\",\n },\n hr: { label: \"Hrvatski\", flag: \"\\u{1F1ED}\\u{1F1F7}\" },\n sk: { label: \"Sloven\\u010dina\", flag: \"\\u{1F1F8}\\u{1F1F0}\" },\n sl: { label: \"Sloven\\u0161\\u010dina\", flag: \"\\u{1F1F8}\\u{1F1EE}\" },\n lt: { label: \"Lietuvi\\u0173\", flag: \"\\u{1F1F1}\\u{1F1F9}\" },\n lv: { label: \"Latvie\\u0161u\", flag: \"\\u{1F1F1}\\u{1F1FB}\" },\n et: { label: \"Eesti\", flag: \"\\u{1F1EA}\\u{1F1EA}\" },\n ca: { label: \"Catal\\u00e0\", flag: \"\\u{1F1E6}\\u{1F1F8}\" },\n af: { label: \"Afrikaans\", flag: \"\\u{1F1E6}\\u{1F1FF}\" },\n sw: { label: \"Kiswahili\", flag: \"\\u{1F1F9}\\u{1F1FF}\" },\n};\n\nfunction getLocaleInfo(code: string) {\n return LOCALE_MAP[code] ?? { label: code.toUpperCase(), flag: \"\\u{1F310}\" };\n}\n\nexport const NavBar = React.forwardRef<HTMLElement, NavBarProps>(function NavBar(\n {\n logo,\n links = [],\n locales = [],\n value,\n defaultValue,\n onValueChange,\n currentLocale,\n onLocaleChange,\n cta,\n showGitHub = false,\n githubUrl = \"https://github.com/babelize/babelize-elements\",\n sticky = true,\n className,\n showFlags = true,\n linkComponent: Link = \"a\",\n ...rest\n },\n forwardedRef,\n) {\n const [locale, setLocale] = useControllableState(\n value ?? currentLocale,\n defaultValue ?? \"en\",\n onValueChange ?? onLocaleChange,\n );\n const [mobileOpen, setMobileOpen] = React.useState(false);\n const [langOpen, setLangOpen] = React.useState(false);\n const langRef = React.useRef<HTMLDivElement>(null);\n const mobileLangRef = React.useRef<HTMLDivElement>(null);\n\n const currentLocaleInfo = getLocaleInfo(locale);\n\n React.useEffect(() => {\n function handleClickOutside(e: MouseEvent) {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false);\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, []);\n\n React.useEffect(() => {\n if (mobileOpen) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"\";\n }\n return () => {\n document.body.style.overflow = \"\";\n };\n }, [mobileOpen]);\n\n const langButton = (\n <button\n type=\"button\"\n onClick={() => setLangOpen(!langOpen)}\n className=\"flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-sm font-medium text-zinc-500 transition-colors hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-50\"\n aria-expanded={langOpen}\n aria-haspopup=\"listbox\"\n aria-label={`Current language: ${currentLocaleInfo.label}`}\n >\n {showFlags && <span className=\"text-sm leading-none\">{currentLocaleInfo.flag}</span>}\n <span className=\"hidden sm:inline\">{currentLocaleInfo.label}</span>\n <svg\n className={cn(\n \"size-3 text-zinc-500 transition-transform dark:text-zinc-400\",\n langOpen && \"rotate-180\",\n )}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n );\n\n const langDropdown = (\n <div\n className=\"absolute right-0 top-full z-50 mt-1.5 min-w-[170px] rounded-xl border border-zinc-200 bg-white py-1.5 shadow-xl dark:border-zinc-800 dark:bg-zinc-950\"\n role=\"listbox\"\n aria-label=\"Select language\"\n >\n {locales.map((item) => {\n const info = getLocaleInfo(item.code);\n const isActive = item.code === locale;\n return (\n <button\n key={item.code}\n type=\"button\"\n role=\"option\"\n aria-selected={isActive}\n onClick={() => {\n setLocale(item.code);\n setLangOpen(false);\n }}\n className={cn(\n \"flex w-full items-center gap-2.5 px-3 py-2 text-sm rounded-lg mx-1.5 w-[calc(100%-12px)] transition-colors\",\n isActive\n ? \"bg-emerald-500/10 text-emerald-600 font-medium dark:text-emerald-400\"\n : \"text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-100\",\n )}\n >\n {showFlags && <span className=\"text-base leading-none\">{info.flag}</span>}\n <span className=\"flex-1\">{item.label ?? info.label}</span>\n {isActive && (\n <svg\n className=\"size-4 shrink-0 text-emerald-600 dark:text-emerald-400\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n )}\n </button>\n );\n })}\n </div>\n );\n\n return (\n <nav\n ref={forwardedRef}\n {...rest}\n className={cn(\n \"z-50 w-full border-b border-zinc-200 bg-white dark:border-zinc-800 dark:bg-zinc-900\",\n sticky && \"sticky top-0\",\n className,\n )}\n >\n {/* Desktop */}\n <div className=\"mx-auto hidden max-w-6xl items-center justify-between px-5 py-3 md:flex\">\n {logo && <div className=\"flex-shrink-0\">{logo}</div>}\n\n <div className=\"flex items-center gap-1\">\n {links.map((link) => (\n <Link\n key={link.href}\n href={link.href}\n className=\"px-3 py-1.5 text-sm transition-colors rounded-md no-underline text-zinc-500 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-50\"\n >\n {link.label}\n </Link>\n ))}\n </div>\n\n <div className=\"flex items-center gap-1\">\n {locales.length > 0 && (\n <div ref={langRef} className=\"relative\">\n {langButton}\n {langOpen && langDropdown}\n </div>\n )}\n\n {showGitHub && (\n <a\n href={githubUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex size-8 items-center justify-center rounded-md transition-colors no-underline text-zinc-500 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-50\"\n aria-label=\"GitHub\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\" />\n </svg>\n </a>\n )}\n\n {cta && (\n <Link\n href={cta.href}\n className=\"rounded-md px-3.5 py-1.5 text-sm font-medium transition-colors no-underline bg-emerald-500 text-white hover:opacity-90\"\n >\n {cta.label}\n </Link>\n )}\n </div>\n </div>\n\n {/* Mobile */}\n <div className=\"flex items-center justify-between px-4 py-3 md:hidden\">\n {logo && <div className=\"flex-shrink-0\">{logo}</div>}\n\n <div className=\"flex items-center gap-1\">\n {locales.length > 0 && (\n <div ref={mobileLangRef} className=\"relative\">\n <button\n type=\"button\"\n onClick={() => setLangOpen(!langOpen)}\n className=\"inline-flex size-8 items-center justify-center rounded-md transition-colors text-zinc-500 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-50\"\n aria-label={`Current language: ${currentLocaleInfo.label}`}\n >\n {showFlags && (\n <span className=\"text-base leading-none\">{currentLocaleInfo.flag}</span>\n )}\n </button>\n {langOpen && langDropdown}\n </div>\n )}\n\n <button\n className=\"inline-flex size-8 items-center justify-center rounded-md transition-colors text-zinc-500 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-50\"\n onClick={() => setMobileOpen(!mobileOpen)}\n aria-label=\"Toggle menu\"\n >\n {mobileOpen ? (\n <svg\n className=\"size-4\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n ) : (\n <svg\n className=\"size-4\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h16\" />\n </svg>\n )}\n </button>\n </div>\n </div>\n\n {/* Mobile menu panel */}\n {mobileOpen && (\n <div className=\"border-t border-zinc-200 bg-white px-4 py-3 md:hidden dark:border-zinc-800 dark:bg-zinc-900\">\n {links.map((link) => (\n <Link\n key={link.href}\n href={link.href}\n onClick={() => setMobileOpen(false)}\n className=\"block py-2.5 text-sm transition-colors no-underline text-zinc-500 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-50\"\n >\n {link.label}\n </Link>\n ))}\n {cta && (\n <Link\n href={cta.href}\n onClick={() => setMobileOpen(false)}\n className=\"mt-2 block rounded-md px-3.5 py-2 text-center text-sm font-medium transition-colors no-underline bg-emerald-500 text-white hover:opacity-90\"\n >\n {cta.label}\n </Link>\n )}\n </div>\n )}\n </nav>\n );\n});\n"]}
package/package.json CHANGED
@@ -1,22 +1,26 @@
1
1
  {
2
2
  "name": "@babelize/elements",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "description": "Open-source Localization UI components for React and Tailwind CSS.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
- "main": "./dist/registry/components/index.js",
8
- "module": "./dist/registry/components/index.js",
9
- "types": "./dist/registry/components/index.d.ts",
7
+ "main": "./dist/index.cjs",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "bin": {
11
+ "elements": "./bin.js"
12
+ },
10
13
  "exports": {
11
14
  ".": {
12
- "types": "./dist/registry/components/index.d.ts",
13
- "import": "./dist/registry/components/index.js",
14
- "require": "./dist/registry/components/index.js"
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js",
17
+ "require": "./dist/index.cjs"
15
18
  },
16
- "./style.css": "./dist/style.css"
19
+ "./package.json": "./package.json"
17
20
  },
18
21
  "files": [
19
22
  "dist",
23
+ "bin.js",
20
24
  "README.md",
21
25
  "LICENSE"
22
26
  ],
@@ -26,12 +30,16 @@
26
30
  "scripts": {
27
31
  "dev": "next dev",
28
32
  "build": "next build",
29
- "build:lib": "tsc --project tsconfig.lib.json",
33
+ "build:lib": "rm -rf dist && tsup",
30
34
  "start": "next start",
31
35
  "lint": "eslint",
32
- "typecheck": "tsc --noEmit",
33
- "release": "changeset publish",
34
- "version": "changeset version"
36
+ "typecheck": "fumadocs-mdx && tsc --noEmit && tsc --project tsconfig.lib.json --noEmit",
37
+ "prepublishOnly": "bun run build:lib",
38
+ "test": "vitest run",
39
+ "test:watch": "vitest",
40
+ "format": "prettier --write .",
41
+ "format:check": "prettier --check .",
42
+ "test:pack": "node scripts/smoke-pack.mjs"
35
43
  },
36
44
  "repository": {
37
45
  "type": "git",
@@ -56,28 +64,35 @@
56
64
  },
57
65
  "dependencies": {
58
66
  "clsx": "^2.1.1",
59
- "next-themes": "^0.4.6",
60
67
  "tailwind-merge": "^3.6.0"
61
68
  },
62
69
  "devDependencies": {
63
- "@changesets/cli": "^3.0.0",
64
70
  "@tailwindcss/postcss": "^4",
71
+ "@testing-library/jest-dom": "^7.0.1",
72
+ "@testing-library/react": "^16.3.3",
73
+ "@testing-library/user-event": "^14.6.7",
65
74
  "@types/node": "^20",
66
75
  "@types/react": "^19",
67
76
  "@types/react-dom": "^19",
77
+ "@vitejs/plugin-react": "^6.1.1",
68
78
  "eslint": "^9",
69
79
  "eslint-config-next": "16.3.0",
70
80
  "fumadocs-core": "^16.14.0",
71
81
  "fumadocs-mdx": "^15.2.2",
72
82
  "fumadocs-ui": "^16.14.0",
73
83
  "geist": "^1.7.2",
84
+ "jsdom": "^30.0.1",
74
85
  "lucide-react": "^1.28.0",
75
86
  "motion": "^12.43.0",
76
87
  "next": "16.3.0",
88
+ "next-themes": "^0.4.6",
89
+ "prettier": "^3.9.6",
77
90
  "react": "19.2.8",
78
91
  "react-dom": "19.2.8",
79
92
  "tailwindcss": "^4",
80
- "typescript": "^5"
93
+ "tsup": "^8.5.1",
94
+ "typescript": "^5",
95
+ "vitest": "^5.0.0"
81
96
  },
82
97
  "packageManager": "bun@1.3.14",
83
98
  "ignoreScripts": [
@@ -87,5 +102,9 @@
87
102
  "trustedDependencies": [
88
103
  "sharp",
89
104
  "unrs-resolver"
90
- ]
105
+ ],
106
+ "sideEffects": false,
107
+ "engines": {
108
+ "node": ">=20"
109
+ }
91
110
  }
@@ -1,3 +0,0 @@
1
- import { type ClassValue } from "clsx";
2
- export declare function cn(...inputs: ClassValue[]): string;
3
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
package/dist/lib/utils.js DELETED
@@ -1,6 +0,0 @@
1
- import { clsx } from "clsx";
2
- import { twMerge } from "tailwind-merge";
3
- export function cn(...inputs) {
4
- return twMerge(clsx(inputs));
5
- }
6
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,3 +0,0 @@
1
- export { LanguageSwitcher } from "./language-switcher";
2
- export type { LanguageSwitcherProps, Locale } from "./language-switcher";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/registry/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { LanguageSwitcher } from "./language-switcher";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/registry/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,83 +0,0 @@
1
- import * as React from "react";
2
- export interface Locale {
3
- /** ISO 639-1 / BCP 47 code (e.g. "en", "fr-FR", "ar-SA") */
4
- code: string;
5
- /** Override display name (auto-resolved from built-in mapping if omitted) */
6
- label?: string;
7
- /** Override flag emoji (auto-detected from code if omitted) */
8
- flag?: string;
9
- /** Override RTL (auto-detected from code if omitted) */
10
- rtl?: boolean;
11
- }
12
- export interface LanguageSwitcherThemeColors {
13
- /** Button background */
14
- btnBg: string;
15
- /** Button border */
16
- btnBorder: string;
17
- /** Button text */
18
- btnText: string;
19
- /** Chevron and muted icon color */
20
- iconColor: string;
21
- /** Dropdown background */
22
- dropdownBg: string;
23
- /** Dropdown border */
24
- dropdownBorder: string;
25
- /** Dropdown item text */
26
- itemText: string;
27
- /** Dropdown item hover background */
28
- itemHoverBg: string;
29
- /** Dropdown item hover text */
30
- itemHoverText: string;
31
- /** Active item background */
32
- activeBg: string;
33
- /** Active item text */
34
- activeText: string;
35
- /** Search input background */
36
- inputBg: string;
37
- /** Search input text */
38
- inputText: string;
39
- /** Search input placeholder */
40
- inputPlaceholder: string;
41
- /** Search border */
42
- inputBorder: string;
43
- /** No results text */
44
- noResultsText: string;
45
- }
46
- export interface LanguageSwitcherProps {
47
- /** Array of available locales — only `code` is required */
48
- locales: Locale[];
49
- /** Initial selected locale code (default: first locale's code) */
50
- defaultValue?: string;
51
- /** Callback when locale changes */
52
- onValueChange?: (code: string) => void;
53
- /** Show flag emojis next to locale names (default: false) */
54
- showFlags?: boolean;
55
- /** Display labels in native language or English (default: "english") */
56
- label?: "native" | "english";
57
- /** Additional CSS classes */
58
- className?: string;
59
- /** Theme colors — when provided, component uses inline styles instead of Tailwind dark: variants */
60
- themeColors?: LanguageSwitcherThemeColors;
61
- }
62
- /**
63
- * Dropdown language switcher with searchable locale list.
64
- *
65
- * @example
66
- * ```tsx
67
- * // Simplest — just pass codes
68
- * <LanguageSwitcher
69
- * locales={[{ code: "en" }, { code: "fr" }, { code: "ar" }]}
70
- * defaultValue="en"
71
- * onValueChange={(code) => router.push(`/${code}`)}
72
- * />
73
- *
74
- * // Native labels + flags
75
- * <LanguageSwitcher
76
- * locales={[{ code: "en" }, { code: "fr" }]}
77
- * label="native"
78
- * showFlags
79
- * />
80
- * ```
81
- */
82
- export declare function LanguageSwitcher({ locales, defaultValue, onValueChange, showFlags, label: labelMode, className, themeColors, }: LanguageSwitcherProps): React.JSX.Element;
83
- //# sourceMappingURL=language-switcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"language-switcher.d.ts","sourceRoot":"","sources":["../../../src/registry/components/language-switcher.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,MAAM;IACrB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,WAAW,CAAC,EAAE,2BAA2B,CAAC;CAC3C;AA6GD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,YAAY,EACZ,aAAa,EACb,SAAiB,EACjB,KAAK,EAAE,SAAqB,EAC5B,SAAS,EACT,WAAW,GACZ,EAAE,qBAAqB,qBAoLvB"}