@intlayer/design-system 7.6.0-canary.0 → 8.0.0-canary.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.
- package/dist/esm/components/Browser/{browser.content.mjs → Browser.content.mjs} +4 -4
- package/dist/esm/components/Browser/{browser.content.mjs.map → Browser.content.mjs.map} +1 -1
- package/dist/esm/components/Container/index.mjs +1 -0
- package/dist/esm/components/Container/index.mjs.map +1 -1
- package/dist/esm/components/CopyToClipboard/index.mjs +12 -9
- package/dist/esm/components/CopyToClipboard/index.mjs.map +1 -1
- package/dist/esm/components/DictionaryFieldEditor/ContentEditor.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/ContentEditor.mjs.map +1 -1
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +257 -122
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs.map +1 -1
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs +258 -12
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.mjs.map +1 -1
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs +80 -0
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.mjs.map +1 -1
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs +14 -2
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.mjs.map +1 -1
- package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +62 -55
- package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs.map +1 -1
- package/dist/esm/components/DictionaryFieldEditor/JSONEditor.mjs +8 -16
- package/dist/esm/components/DictionaryFieldEditor/JSONEditor.mjs.map +1 -1
- package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/VersionSwitcherDropDown/VersionSwitcher.mjs.map +1 -1
- package/dist/esm/components/Flags/Flag.mjs +5 -8
- package/dist/esm/components/Flags/Flag.mjs.map +1 -1
- package/dist/esm/components/IDE/CodeBlockClient.mjs +2 -2
- package/dist/esm/components/IDE/CodeBlockClient.mjs.map +1 -1
- package/dist/esm/components/IDE/CodeBlockServer.mjs +2 -2
- package/dist/esm/components/IDE/CodeBlockServer.mjs.map +1 -1
- package/dist/esm/components/IDE/MonacoCode.mjs +1 -1
- package/dist/esm/components/IDE/MonacoCode.mjs.map +1 -1
- package/dist/esm/components/Input/Checkbox.mjs +3 -2
- package/dist/esm/components/Input/Checkbox.mjs.map +1 -1
- package/dist/esm/components/Link/Link.mjs +1 -1
- package/dist/esm/components/Link/Link.mjs.map +1 -1
- package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +1 -1
- package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs.map +1 -1
- package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs +1 -1
- package/dist/esm/components/LocaleSwitcherDropDown/LocaleSwitcher.mjs.map +1 -1
- package/dist/esm/components/MarkDownRender/MarkDownRender.mjs +9 -3
- package/dist/esm/components/MarkDownRender/MarkDownRender.mjs.map +1 -1
- package/dist/esm/components/MarkDownRender/index.mjs +2 -1
- package/dist/esm/components/MarkDownRender/processor-adapter.mjs +57 -0
- package/dist/esm/components/MarkDownRender/processor-adapter.mjs.map +1 -0
- package/dist/esm/components/MarkDownRender/processor.mjs +5 -5
- package/dist/esm/components/MarkDownRender/processor.mjs.map +1 -1
- package/dist/esm/components/Modal/Modal.mjs +2 -2
- package/dist/esm/components/Modal/Modal.mjs.map +1 -1
- package/dist/esm/components/Popover/static.mjs +13 -11
- package/dist/esm/components/Popover/static.mjs.map +1 -1
- package/dist/esm/components/RightDrawer/RightDrawer.mjs +4 -5
- package/dist/esm/components/RightDrawer/RightDrawer.mjs.map +1 -1
- package/dist/esm/components/RightDrawer/index.mjs +2 -2
- package/dist/esm/components/RightDrawer/useRightDrawer.mjs +65 -0
- package/dist/esm/components/RightDrawer/useRightDrawer.mjs.map +1 -0
- package/dist/esm/components/Tab/Tab.mjs +20 -14
- package/dist/esm/components/Tab/Tab.mjs.map +1 -1
- package/dist/esm/components/Terminal/Terminal.mjs +2 -2
- package/dist/esm/components/Terminal/Terminal.mjs.map +1 -1
- package/dist/esm/components/index.mjs +3 -2
- package/dist/esm/hooks/useScrollBlockage/index.mjs +1 -6
- package/dist/esm/hooks/useScrollBlockage/index.mjs.map +1 -1
- package/dist/esm/hooks/useScrollBlockage/useScrollBlockageStore.mjs +60 -31
- package/dist/esm/hooks/useScrollBlockage/useScrollBlockageStore.mjs.map +1 -1
- package/dist/types/components/Badge/index.d.ts +2 -2
- package/dist/types/components/Breadcrumb/breadcrumb.content.d.ts +3 -3
- package/dist/types/components/Breadcrumb/index.d.ts +2 -2
- package/dist/types/components/Breadcrumb/index.d.ts.map +1 -1
- package/dist/types/components/Browser/{browser.content.d.ts → Browser.content.d.ts} +19 -19
- package/dist/types/components/Browser/Browser.content.d.ts.map +1 -0
- package/dist/types/components/Browser/Browser.d.ts +2 -2
- package/dist/types/components/Browser/Browser.d.ts.map +1 -1
- package/dist/types/components/Button/Button.d.ts +6 -6
- package/dist/types/components/Carousel/index.content.d.ts +8 -8
- package/dist/types/components/CollapsibleTable/CollapsibleTable.d.ts +2 -2
- package/dist/types/components/Command/index.d.ts +20 -20
- package/dist/types/components/Command/index.d.ts.map +1 -1
- package/dist/types/components/Container/index.d.ts +9 -9
- package/dist/types/components/Container/index.d.ts.map +1 -1
- package/dist/types/components/CopyButton/CopyButton.content.d.ts +3 -3
- package/dist/types/components/CopyButton/CopyButton.content.d.ts.map +1 -1
- package/dist/types/components/CopyToClipboard/index.d.ts +18 -7
- package/dist/types/components/CopyToClipboard/index.d.ts.map +1 -1
- package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/dictionaryCreationForm.content.d.ts +25 -25
- package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts +9 -9
- package/dist/types/components/DictionaryFieldEditor/DictionaryCreationForm/useDictionaryFormSchema.content.d.ts.map +1 -1
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts +1 -0
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.d.ts.map +1 -1
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts +556 -34
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/dictionaryDetails.content.d.ts.map +1 -1
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts +197 -25
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.content.d.ts.map +1 -1
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.d.ts +12 -0
- package/dist/types/components/DictionaryFieldEditor/DictionaryDetails/useDictionaryDetailsSchema.d.ts.map +1 -1
- package/dist/types/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts +1 -0
- package/dist/types/components/DictionaryFieldEditor/DictionaryFieldEditor.d.ts.map +1 -1
- package/dist/types/components/DictionaryFieldEditor/JSONEditor.d.ts.map +1 -1
- package/dist/types/components/DictionaryFieldEditor/NavigationView/navigationViewNode.content.d.ts +25 -25
- package/dist/types/components/DictionaryFieldEditor/SaveForm/saveForm.content.d.ts +33 -33
- package/dist/types/components/DictionaryFieldEditor/StructureView/structureView.content.d.ts +9 -9
- package/dist/types/components/DictionaryFieldEditor/VersionSwitcherDropDown/versionSwitcherDropDown.content.d.ts +7 -7
- package/dist/types/components/DictionaryFieldEditor/dictionaryFieldEditor.content.d.ts +5 -5
- package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts +31 -31
- package/dist/types/components/DictionaryFieldEditor/nodeTypeSelector.content.d.ts.map +1 -1
- package/dist/types/components/ExpandCollapse/expandCollapse.content.d.ts +3 -3
- package/dist/types/components/Form/FormBase.d.ts +2 -2
- package/dist/types/components/Form/FormBase.d.ts.map +1 -1
- package/dist/types/components/Form/FormField.d.ts +2 -2
- package/dist/types/components/Form/FormField.d.ts.map +1 -1
- package/dist/types/components/Form/FormItem.d.ts +2 -2
- package/dist/types/components/Form/FormItem.d.ts.map +1 -1
- package/dist/types/components/Form/elements/EditableFieldInputElement.d.ts +2 -2
- package/dist/types/components/Form/elements/EditableFieldInputElement.d.ts.map +1 -1
- package/dist/types/components/Form/elements/EditableFieldTextAreaElement.d.ts +2 -2
- package/dist/types/components/Form/elements/EditableFieldTextAreaElement.d.ts.map +1 -1
- package/dist/types/components/Form/elements/FormElement.d.ts +2 -2
- package/dist/types/components/Form/elements/FormElement.d.ts.map +1 -1
- package/dist/types/components/Form/elements/MultiselectElement.d.ts +2 -2
- package/dist/types/components/Form/elements/MultiselectElement.d.ts.map +1 -1
- package/dist/types/components/Form/elements/OTPElement.d.ts +2 -2
- package/dist/types/components/Form/elements/OTPElement.d.ts.map +1 -1
- package/dist/types/components/Form/elements/SelectElement.d.ts +2 -2
- package/dist/types/components/Form/elements/SelectElement.d.ts.map +1 -1
- package/dist/types/components/Form/elements/SwitchSelectorElement.d.ts +2 -2
- package/dist/types/components/Form/elements/SwitchSelectorElement.d.ts.map +1 -1
- package/dist/types/components/IDE/CodeBlockClient.d.ts.map +1 -1
- package/dist/types/components/IDE/CodeBlockServer.d.ts.map +1 -1
- package/dist/types/components/IDE/CodeContext.d.ts +2 -2
- package/dist/types/components/IDE/MonacoCode.d.ts.map +1 -1
- package/dist/types/components/IDE/code.content.d.ts +5 -5
- package/dist/types/components/IDE/copyCode.content.d.ts +5 -5
- package/dist/types/components/IDE/selectors.content.d.ts +13 -13
- package/dist/types/components/Input/Checkbox.d.ts +3 -3
- package/dist/types/components/Input/Checkbox.d.ts.map +1 -1
- package/dist/types/components/Input/Input.d.ts +2 -2
- package/dist/types/components/Input/Input.d.ts.map +1 -1
- package/dist/types/components/Input/OTPInput.d.ts +6 -6
- package/dist/types/components/Input/OTPInput.d.ts.map +1 -1
- package/dist/types/components/Input/SearchInput.d.ts +2 -2
- package/dist/types/components/Link/Link.d.ts +6 -6
- package/dist/types/components/Loader/index.content.d.ts +3 -3
- package/dist/types/components/Loader/index.content.d.ts.map +1 -1
- package/dist/types/components/Loader/spinner.d.ts +2 -2
- package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts +17 -17
- package/dist/types/components/LocaleSwitcherContentDropDown/localeSwitcher.content.d.ts.map +1 -1
- package/dist/types/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts +13 -13
- package/dist/types/components/LocaleSwitcherDropDown/localeSwitcher.content.d.ts.map +1 -1
- package/dist/types/components/MarkDownRender/MarkDownRender.d.ts +1 -1
- package/dist/types/components/MarkDownRender/MarkDownRender.d.ts.map +1 -1
- package/dist/types/components/MarkDownRender/index.d.ts +2 -1
- package/dist/types/components/MarkDownRender/processor-adapter.d.ts +85 -0
- package/dist/types/components/MarkDownRender/processor-adapter.d.ts.map +1 -0
- package/dist/types/components/MaxWidthSmoother/index.d.ts +2 -2
- package/dist/types/components/MaxWidthSmoother/index.d.ts.map +1 -1
- package/dist/types/components/Modal/Modal.d.ts.map +1 -1
- package/dist/types/components/Navbar/Burger.d.ts +2 -2
- package/dist/types/components/Navbar/DesktopNavbar.d.ts +2 -2
- package/dist/types/components/Navbar/MobileNavbar.d.ts +2 -2
- package/dist/types/components/Navbar/MobileNavbar.d.ts.map +1 -1
- package/dist/types/components/Navbar/index.d.ts +2 -2
- package/dist/types/components/Pagination/Pagination.d.ts +3 -3
- package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/types/components/Pagination/pagination.content.d.ts +12 -12
- package/dist/types/components/Popover/static.d.ts +11 -9
- package/dist/types/components/Popover/static.d.ts.map +1 -1
- package/dist/types/components/RightDrawer/index.d.ts +2 -2
- package/dist/types/components/RightDrawer/rightDrawer.content.d.ts +5 -5
- package/dist/types/components/RightDrawer/useRightDrawer.d.ts +22 -0
- package/dist/types/components/RightDrawer/useRightDrawer.d.ts.map +1 -0
- package/dist/types/components/Select/Select.d.ts +3 -3
- package/dist/types/components/Select/Select.d.ts.map +1 -1
- package/dist/types/components/SocialNetworks/index.d.ts +2 -2
- package/dist/types/components/SocialNetworks/index.d.ts.map +1 -1
- package/dist/types/components/SwitchSelector/index.d.ts +6 -6
- package/dist/types/components/Tab/Tab.d.ts +10 -5
- package/dist/types/components/Tab/Tab.d.ts.map +1 -1
- package/dist/types/components/Tab/TabContext.d.ts +2 -2
- package/dist/types/components/Tab/TabContext.d.ts.map +1 -1
- package/dist/types/components/TabSelector/TabSelector.d.ts +5 -5
- package/dist/types/components/TabSelector/TabSelector.d.ts.map +1 -1
- package/dist/types/components/Table/table.content.d.ts +3 -3
- package/dist/types/components/Tag/index.d.ts +5 -5
- package/dist/types/components/Tag/index.d.ts.map +1 -1
- package/dist/types/components/Terminal/Terminal.d.ts.map +1 -1
- package/dist/types/components/Terminal/terminal.content.d.ts +5 -5
- package/dist/types/components/Terminal/terminal.content.d.ts.map +1 -1
- package/dist/types/components/Toaster/Toast.d.ts +2 -2
- package/dist/types/components/Toaster/Toast.d.ts.map +1 -1
- package/dist/types/components/Toaster/Toaster.d.ts +2 -2
- package/dist/types/components/Toaster/Toaster.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +3 -2
- package/dist/types/hooks/useDevice.d.ts.map +1 -1
- package/dist/types/hooks/useScrollBlockage/index.d.ts.map +1 -1
- package/dist/types/hooks/useScrollBlockage/useScrollBlockageStore.d.ts +14 -6
- package/dist/types/hooks/useScrollBlockage/useScrollBlockageStore.d.ts.map +1 -1
- package/package.json +23 -23
- package/dist/esm/components/RightDrawer/useRightDrawerStore.mjs +0 -87
- package/dist/esm/components/RightDrawer/useRightDrawerStore.mjs.map +0 -1
- package/dist/types/components/Browser/browser.content.d.ts.map +0 -1
- package/dist/types/components/RightDrawer/useRightDrawerStore.d.ts +0 -116
- package/dist/types/components/RightDrawer/useRightDrawerStore.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flag.mjs","names":[],"sources":["../../../../src/components/Flags/Flag.tsx"],"sourcesContent":["import { type Locale, Locales } from '@intlayer/types';\nimport {\n type FC,\n type ImgHTMLAttributes,\n type JSX,\n lazy,\n Suspense,\n} from 'react';\n\ntype FlagProps = ImgHTMLAttributes<HTMLImageElement> & {\n locale: Locale;\n};\n\n// This ensures React.lazy always receives a valid component,\n// regardless of how your bundler loads SVGs.\nconst dynamicFlag = (importFn: () => Promise<any>) =>\n lazy(async () => {\n const module = await importFn();\n const asset = module.default;\n\n // Case A: Bundler returns a URL string (e.g. file-loader)\n // We wrap it in a simple img component\n if (typeof asset === 'string') {\n return {\n default: (props: any) => <img src={asset} alt=\"flag\" {...props} />,\n };\n }\n\n // Case B: Bundler returns a React Component (SVGR)\n // We return it as-is\n return { default: asset };\n });\n\nconst flagRecord: Partial<Record<Locale, ReturnType<typeof dynamicFlag>>> = {\n [Locales.ENGLISH]: dynamicFlag(() => import('./us.svg')),\n [Locales.FRENCH]: dynamicFlag(() => import('./fr.svg')),\n [Locales.SPANISH]: dynamicFlag(() => import('./es.svg')),\n [Locales.PORTUGUESE]: dynamicFlag(() => import('./pt.svg')),\n [Locales.GERMAN]: dynamicFlag(() => import('./de.svg')),\n [Locales.AFRIKAANS]: dynamicFlag(() => import('./za.svg')),\n [Locales.ARABIC]: dynamicFlag(() => import('./sa.svg')),\n [Locales.AZERI_LATIN]: dynamicFlag(() => import('./az.svg')),\n [Locales.BELARUSIAN]: dynamicFlag(() => import('./by.svg')),\n [Locales.BULGARIAN]: dynamicFlag(() => import('./bg.svg')),\n [Locales.BOSNIAN]: dynamicFlag(() => import('./ba.svg')),\n [Locales.CATALAN]: dynamicFlag(() => import('./es-ct.svg')),\n [Locales.CZECH]: dynamicFlag(() => import('./cz.svg')),\n [Locales.WELSH]: dynamicFlag(() => import('./gb-wls.svg')),\n [Locales.DANISH]: dynamicFlag(() => import('./dk.svg')),\n [Locales.DIVEHI]: dynamicFlag(() => import('./mv.svg')),\n [Locales.GREEK]: dynamicFlag(() => import('./gr.svg')),\n [Locales.ESPERANTO]: dynamicFlag(() => import('./xx.svg')), // No specific flag\n [Locales.ESTONIAN]: dynamicFlag(() => import('./ee.svg')),\n [Locales.BASQUE]: dynamicFlag(() => import('./es-pv.svg')),\n [Locales.FARSI]: dynamicFlag(() => import('./ir.svg')),\n [Locales.FINNISH]: dynamicFlag(() => import('./fi.svg')),\n [Locales.FAROESE]: dynamicFlag(() => import('./fo.svg')),\n [Locales.GALICIAN]: dynamicFlag(() => import('./es-ga.svg')),\n [Locales.GUJARATI]: dynamicFlag(() => import('./in.svg')),\n [Locales.HEBREW]: dynamicFlag(() => import('./il.svg')),\n [Locales.HINDI]: dynamicFlag(() => import('./in.svg')),\n [Locales.CROATIAN]: dynamicFlag(() => import('./hr.svg')),\n [Locales.HUNGARIAN]: dynamicFlag(() => import('./hu.svg')),\n [Locales.ARMENIAN]: dynamicFlag(() => import('./am.svg')),\n [Locales.INDONESIAN]: dynamicFlag(() => import('./id.svg')),\n [Locales.ICELANDIC]: dynamicFlag(() => import('./is.svg')),\n [Locales.ITALIAN]: dynamicFlag(() => import('./it.svg')),\n [Locales.JAPANESE]: dynamicFlag(() => import('./jp.svg')),\n [Locales.GEORGIAN]: dynamicFlag(() => import('./ge.svg')),\n [Locales.KAZAKH]: dynamicFlag(() => import('./kz.svg')),\n [Locales.KANNADA]: dynamicFlag(() => import('./in.svg')),\n [Locales.KOREAN]: dynamicFlag(() => import('./kr.svg')),\n [Locales.KONKANI]: dynamicFlag(() => import('./in.svg')),\n [Locales.KYRGYZ]: dynamicFlag(() => import('./kg.svg')),\n [Locales.LITHUANIAN]: dynamicFlag(() => import('./lt.svg')),\n [Locales.LATVIAN]: dynamicFlag(() => import('./lv.svg')),\n [Locales.MAORI]: dynamicFlag(() => import('./nz.svg')),\n [Locales.FYRO_MACEDONIAN]: dynamicFlag(() => import('./mk.svg')),\n [Locales.MONGOLIAN]: dynamicFlag(() => import('./mn.svg')),\n [Locales.MARATHI]: dynamicFlag(() => import('./in.svg')),\n [Locales.MALAY]: dynamicFlag(() => import('./my.svg')),\n [Locales.MALTESE]: dynamicFlag(() => import('./mt.svg')),\n [Locales.NORWEGIAN_BOKMAL]: dynamicFlag(() => import('./no.svg')),\n [Locales.DUTCH]: dynamicFlag(() => import('./nl.svg')),\n [Locales.NORTHERN_SOTHO]: dynamicFlag(() => import('./za.svg')),\n [Locales.PUNJABI]: dynamicFlag(() => import('./in.svg')),\n [Locales.POLISH]: dynamicFlag(() => import('./pl.svg')),\n [Locales.PASHTO]: dynamicFlag(() => import('./af.svg')),\n [Locales.QUECHUA]: dynamicFlag(() => import('./pe.svg')),\n [Locales.ROMANIAN]: dynamicFlag(() => import('./ro.svg')),\n [Locales.RUSSIAN]: dynamicFlag(() => import('./ru.svg')),\n [Locales.SANSKRIT]: dynamicFlag(() => import('./in.svg')),\n [Locales.SAMI_NORTHERN]: dynamicFlag(() => import('./no.svg')), // No specific flag, assuming Norway\n [Locales.SLOVAK]: dynamicFlag(() => import('./sk.svg')),\n [Locales.SLOVENIAN]: dynamicFlag(() => import('./si.svg')),\n [Locales.ALBANIAN]: dynamicFlag(() => import('./al.svg')),\n [Locales.SERBIAN_LATIN]: dynamicFlag(() => import('./rs.svg')),\n [Locales.SWEDISH]: dynamicFlag(() => import('./se.svg')),\n [Locales.SWEDISH_FINLAND]: dynamicFlag(() => import('./fi.svg')),\n [Locales.SWEDISH_SWEDEN]: dynamicFlag(() => import('./se.svg')),\n [Locales.SWAHILI]: dynamicFlag(() => import('./ke.svg')),\n [Locales.SYRIAC]: dynamicFlag(() => import('./sy.svg')),\n [Locales.TAMIL]: dynamicFlag(() => import('./in.svg')),\n [Locales.TELUGU]: dynamicFlag(() => import('./in.svg')),\n [Locales.THAI]: dynamicFlag(() => import('./th.svg')),\n [Locales.TAGALOG]: dynamicFlag(() => import('./ph.svg')),\n [Locales.TSWANA]: dynamicFlag(() => import('./za.svg')),\n [Locales.TURKISH]: dynamicFlag(() => import('./tr.svg')),\n [Locales.TATAR]: dynamicFlag(() => import('./ru.svg')), // Assuming Russian Federation\n [Locales.UKRAINIAN]: dynamicFlag(() => import('./ua.svg')),\n [Locales.URDU]: dynamicFlag(() => import('./pk.svg')),\n [Locales.UZBEK_LATIN]: dynamicFlag(() => import('./uz.svg')),\n [Locales.VIETNAMESE]: dynamicFlag(() => import('./vn.svg')),\n [Locales.XHOSA]: dynamicFlag(() => import('./za.svg')),\n [Locales.CHINESE_SIMPLIFIED]: dynamicFlag(() => import('./cn.svg')),\n [Locales.CHINESE_TRADITIONAL]: dynamicFlag(() => import('./tw.svg')),\n [Locales.ZULU]: dynamicFlag(() => import('./za.svg')),\n [Locales.AFRIKAANS_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.ARABIC_UNITED_ARAB_EMIRATES]: dynamicFlag(() => import('./ae.svg')),\n [Locales.ARABIC_BAHRAIN]: dynamicFlag(() => import('./bh.svg')),\n [Locales.ARABIC_ALGERIA]: dynamicFlag(() => import('./dz.svg')),\n [Locales.ARABIC_EGYPT]: dynamicFlag(() => import('./eg.svg')),\n [Locales.ARABIC_IRAQ]: dynamicFlag(() => import('./iq.svg')),\n [Locales.ARABIC_JORDAN]: dynamicFlag(() => import('./jo.svg')),\n [Locales.ARABIC_KUWAIT]: dynamicFlag(() => import('./kw.svg')),\n [Locales.ARABIC_LEBANON]: dynamicFlag(() => import('./lb.svg')),\n [Locales.ARABIC_LIBYA]: dynamicFlag(() => import('./ly.svg')),\n [Locales.ARABIC_MOROCCO]: dynamicFlag(() => import('./ma.svg')),\n [Locales.ARABIC_OMAN]: dynamicFlag(() => import('./om.svg')),\n [Locales.ARABIC_QATAR]: dynamicFlag(() => import('./qa.svg')),\n [Locales.ARABIC_SAUDI_ARABIA]: dynamicFlag(() => import('./sa.svg')),\n [Locales.ARABIC_SYRIA]: dynamicFlag(() => import('./sy.svg')),\n [Locales.ARABIC_TUNISIA]: dynamicFlag(() => import('./tn.svg')),\n [Locales.ARABIC_YEMEN]: dynamicFlag(() => import('./ye.svg')),\n [Locales.AZERI_LATIN_AZERBAIJAN]: dynamicFlag(() => import('./az.svg')),\n [Locales.BELARUSIAN_BELARUS]: dynamicFlag(() => import('./by.svg')),\n [Locales.BULGARIAN_BULGARIA]: dynamicFlag(() => import('./bg.svg')),\n [Locales.BOSNIAN_BOSNIA_AND_HERZEGOVINA]: dynamicFlag(\n () => import('./ba.svg')\n ),\n [Locales.CATALAN_SPAIN]: dynamicFlag(() => import('./es-ct.svg')),\n [Locales.CZECH_CZECH_REPUBLIC]: dynamicFlag(() => import('./cz.svg')),\n [Locales.WELSH_UNITED_KINGDOM]: dynamicFlag(() => import('./gb-wls.svg')),\n [Locales.DANISH_DENMARK]: dynamicFlag(() => import('./dk.svg')),\n [Locales.GERMAN_AUSTRIA]: dynamicFlag(() => import('./at.svg')),\n [Locales.GERMAN_SWITZERLAND]: dynamicFlag(() => import('./ch.svg')),\n [Locales.GERMAN_GERMANY]: dynamicFlag(() => import('./de.svg')),\n [Locales.GERMAN_LIECHTENSTEIN]: dynamicFlag(() => import('./li.svg')),\n [Locales.GERMAN_LUXEMBOURG]: dynamicFlag(() => import('./lu.svg')),\n [Locales.DIVEHI_MALDIVES]: dynamicFlag(() => import('./mv.svg')),\n [Locales.GREEK_GREECE]: dynamicFlag(() => import('./gr.svg')),\n [Locales.ENGLISH_AUSTRALIA]: dynamicFlag(() => import('./au.svg')),\n [Locales.ENGLISH_BELIZE]: dynamicFlag(() => import('./bz.svg')),\n [Locales.ENGLISH_CANADA]: dynamicFlag(() => import('./ca.svg')),\n [Locales.ENGLISH_CARIBBEAN]: dynamicFlag(() => import('./jm.svg')), // Using Jamaica as representative of English-speaking Caribbean\n [Locales.ENGLISH_UNITED_KINGDOM]: dynamicFlag(() => import('./gb.svg')),\n [Locales.ENGLISH_IRELAND]: dynamicFlag(() => import('./ie.svg')),\n [Locales.ENGLISH_JAMAICA]: dynamicFlag(() => import('./jm.svg')),\n [Locales.ENGLISH_NEW_ZEALAND]: dynamicFlag(() => import('./nz.svg')),\n [Locales.ENGLISH_PHILIPPINES]: dynamicFlag(() => import('./ph.svg')),\n [Locales.ENGLISH_TRINIDAD_AND_TOBAGO]: dynamicFlag(() => import('./tt.svg')),\n [Locales.ENGLISH_UNITED_STATES]: dynamicFlag(() => import('./us.svg')),\n [Locales.ENGLISH_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.ENGLISH_ZIMBABWE]: dynamicFlag(() => import('./zw.svg')),\n [Locales.SPANISH_ARGENTINA]: dynamicFlag(() => import('./ar.svg')),\n [Locales.SPANISH_BOLIVIA]: dynamicFlag(() => import('./bo.svg')),\n [Locales.SPANISH_CHILE]: dynamicFlag(() => import('./cl.svg')),\n [Locales.SPANISH_COLOMBIA]: dynamicFlag(() => import('./co.svg')),\n [Locales.SPANISH_COSTA_RICA]: dynamicFlag(() => import('./cr.svg')),\n [Locales.SPANISH_DOMINICAN_REPUBLIC]: dynamicFlag(() => import('./do.svg')),\n [Locales.SPANISH_ECUADOR]: dynamicFlag(() => import('./ec.svg')),\n [Locales.SPANISH_SPAIN]: dynamicFlag(() => import('./es.svg')),\n [Locales.SPANISH_GUATEMALA]: dynamicFlag(() => import('./gt.svg')),\n [Locales.SPANISH_HONDURAS]: dynamicFlag(() => import('./hn.svg')),\n [Locales.SPANISH_MEXICO]: dynamicFlag(() => import('./mx.svg')),\n [Locales.SPANISH_NICARAGUA]: dynamicFlag(() => import('./ni.svg')),\n [Locales.SPANISH_PANAMA]: dynamicFlag(() => import('./pa.svg')),\n [Locales.SPANISH_PERU]: dynamicFlag(() => import('./pe.svg')),\n [Locales.SPANISH_PUERTO_RICO]: dynamicFlag(() => import('./pr.svg')),\n [Locales.SPANISH_PARAGUAY]: dynamicFlag(() => import('./py.svg')),\n [Locales.SPANISH_EL_SALVADOR]: dynamicFlag(() => import('./sv.svg')),\n [Locales.SPANISH_URUGUAY]: dynamicFlag(() => import('./uy.svg')),\n [Locales.SPANISH_VENEZUELA]: dynamicFlag(() => import('./ve.svg')),\n [Locales.ESTONIAN_ESTONIA]: dynamicFlag(() => import('./ee.svg')),\n [Locales.BASQUE_SPAIN]: dynamicFlag(() => import('./es-pv.svg')),\n [Locales.FARSI_IRAN]: dynamicFlag(() => import('./ir.svg')),\n [Locales.FINNISH_FINLAND]: dynamicFlag(() => import('./fi.svg')),\n [Locales.FAROESE_FAROE_ISLANDS]: dynamicFlag(() => import('./fo.svg')),\n [Locales.FRENCH_BELGIUM]: dynamicFlag(() => import('./be.svg')),\n [Locales.FRENCH_CANADA]: dynamicFlag(() => import('./ca.svg')),\n [Locales.FRENCH_SWITZERLAND]: dynamicFlag(() => import('./ch.svg')),\n [Locales.FRENCH_FRANCE]: dynamicFlag(() => import('./fr.svg')),\n [Locales.FRENCH_LUXEMBOURG]: dynamicFlag(() => import('./lu.svg')),\n [Locales.FRENCH_PRINCIPALITY_OF_MONACO]: dynamicFlag(\n () => import('./mc.svg')\n ),\n [Locales.GALICIAN_SPAIN]: dynamicFlag(() => import('./es-ga.svg')),\n [Locales.GUJARATI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.HEBREW_ISRAEL]: dynamicFlag(() => import('./il.svg')),\n [Locales.HINDI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.CROATIAN_BOSNIA_AND_HERZEGOVINA]: dynamicFlag(\n () => import('./ba.svg')\n ),\n [Locales.CROATIAN_CROATIA]: dynamicFlag(() => import('./hr.svg')),\n [Locales.HUNGARIAN_HUNGARY]: dynamicFlag(() => import('./hu.svg')),\n [Locales.ARMENIAN_ARMENIA]: dynamicFlag(() => import('./am.svg')),\n [Locales.INDONESIAN_INDONESIA]: dynamicFlag(() => import('./id.svg')),\n [Locales.ICELANDIC_ICELAND]: dynamicFlag(() => import('./is.svg')),\n [Locales.ITALIAN_SWITZERLAND]: dynamicFlag(() => import('./ch.svg')),\n [Locales.ITALIAN_ITALY]: dynamicFlag(() => import('./it.svg')),\n [Locales.JAPANESE_JAPAN]: dynamicFlag(() => import('./jp.svg')),\n [Locales.GEORGIAN_GEORGIA]: dynamicFlag(() => import('./ge.svg')),\n [Locales.KAZAKH_KAZAKHSTAN]: dynamicFlag(() => import('./kz.svg')),\n [Locales.KANNADA_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.KOREAN_KOREA]: dynamicFlag(() => import('./kr.svg')),\n [Locales.KONKANI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.KYRGYZ_KYRGYZSTAN]: dynamicFlag(() => import('./kg.svg')),\n [Locales.LITHUANIAN_LITHUANIA]: dynamicFlag(() => import('./lt.svg')),\n [Locales.LATVIAN_LATVIA]: dynamicFlag(() => import('./lv.svg')),\n [Locales.MAORI_NEW_ZEALAND]: dynamicFlag(() => import('./nz.svg')),\n [Locales.FYRO_MACEDONIAN_MACEDONIA]: dynamicFlag(() => import('./mk.svg')),\n [Locales.MONGOLIAN_MONGOLIA]: dynamicFlag(() => import('./mn.svg')),\n [Locales.MARATHI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.MALAY_BRUNEI_DARUSSALAM]: dynamicFlag(() => import('./bn.svg')),\n [Locales.MALAY_MALAYSIA]: dynamicFlag(() => import('./my.svg')),\n [Locales.MALTESE_MALTA]: dynamicFlag(() => import('./mt.svg')),\n [Locales.NORWEGIAN_BOKMAL_NORWAY]: dynamicFlag(() => import('./no.svg')),\n [Locales.DUTCH_BELGIUM]: dynamicFlag(() => import('./be.svg')),\n [Locales.DUTCH_NETHERLANDS]: dynamicFlag(() => import('./nl.svg')),\n [Locales.NORWEGIAN_NYNORSK_NORWAY]: dynamicFlag(() => import('./no.svg')),\n [Locales.NORTHERN_SOTHO_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.PUNJABI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.POLISH_POLAND]: dynamicFlag(() => import('./pl.svg')),\n [Locales.PASHTO_AFGHANISTAN]: dynamicFlag(() => import('./af.svg')),\n [Locales.PORTUGUESE_BRAZIL]: dynamicFlag(() => import('./br.svg')),\n [Locales.PORTUGUESE_PORTUGAL]: dynamicFlag(() => import('./pt.svg')),\n [Locales.QUECHUA_BOLIVIA]: dynamicFlag(() => import('./bo.svg')),\n [Locales.QUECHUA_ECUADOR]: dynamicFlag(() => import('./ec.svg')),\n [Locales.QUECHUA_PERU]: dynamicFlag(() => import('./pe.svg')),\n [Locales.ROMANIAN_ROMANIA]: dynamicFlag(() => import('./ro.svg')),\n [Locales.RUSSIAN_RUSSIA]: dynamicFlag(() => import('./ru.svg')),\n [Locales.SANSKRIT_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.SAMI_NORTHERN_FINLAND]: dynamicFlag(() => import('./fi.svg')),\n [Locales.SAMI_NORTHERN_NORWAY]: dynamicFlag(() => import('./no.svg')),\n [Locales.SAMI_NORTHERN_SWEDEN]: dynamicFlag(() => import('./se.svg')),\n [Locales.SLOVAK_SLOVAKIA]: dynamicFlag(() => import('./sk.svg')),\n [Locales.SLOVENIAN_SLOVENIA]: dynamicFlag(() => import('./si.svg')),\n [Locales.ALBANIAN_ALBANIA]: dynamicFlag(() => import('./al.svg')),\n [Locales.SERBIAN_LATIN_BOSNIA_AND_HERZEGOVINA]: dynamicFlag(\n () => import('./ba.svg')\n ),\n [Locales.SERBIAN_LATIN_SERBIA_AND_MONTENEGRO]: dynamicFlag(\n () => import('./rs.svg')\n ),\n [Locales.SWAHILI_KENYA]: dynamicFlag(() => import('./ke.svg')),\n [Locales.SYRIAC_SYRIA]: dynamicFlag(() => import('./sy.svg')),\n [Locales.TAMIL_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.TELUGU_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.THAI_THAILAND]: dynamicFlag(() => import('./th.svg')),\n [Locales.TAGALOG_PHILIPPINES]: dynamicFlag(() => import('./ph.svg')),\n [Locales.TSWANA_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.TURKISH_TURKEY]: dynamicFlag(() => import('./tr.svg')),\n [Locales.TATAR_RUSSIA]: dynamicFlag(() => import('./ru.svg')),\n [Locales.TSOGA]: dynamicFlag(() => import('./xx.svg')), // No specific flag\n [Locales.UKRAINIAN_UKRAINE]: dynamicFlag(() => import('./ua.svg')),\n [Locales.URDU_ISLAMIC_REPUBLIC_OF_PAKISTAN]: dynamicFlag(\n () => import('./pk.svg')\n ),\n [Locales.UZBEK_LATIN_UZBEKISTAN]: dynamicFlag(() => import('./uz.svg')),\n [Locales.VIETNAMESE_VIET_NAM]: dynamicFlag(() => import('./vn.svg')),\n [Locales.XHOSA_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.CHINESE]: dynamicFlag(() => import('./cn.svg')),\n [Locales.CHINESE_SIMPLIFIED_CHINA]: dynamicFlag(() => import('./cn.svg')),\n [Locales.CHINESE_HONG_KONG]: dynamicFlag(() => import('./hk.svg')),\n [Locales.CHINESE_MACAU]: dynamicFlag(() => import('./mo.svg')),\n [Locales.CHINESE_SINGAPORE]: dynamicFlag(() => import('./sg.svg')),\n [Locales.ZULU_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.BENGALI]: dynamicFlag(() => import('./in.svg')),\n [Locales.BENGALI_BANGLADESH]: dynamicFlag(() => import('./bd.svg')),\n [Locales.BENGALI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.BENGALI_MYANMAR]: dynamicFlag(() => import('./mm.svg')),\n [Locales.BURMESE]: dynamicFlag(() => import('./mm.svg')),\n [Locales.BURMESE_MYANMAR]: dynamicFlag(() => import('./mm.svg')),\n [Locales.KHMER]: dynamicFlag(() => import('./kh.svg')),\n [Locales.KHMER_CAMBODIA]: dynamicFlag(() => import('./kh.svg')),\n [Locales.LAO]: dynamicFlag(() => import('./la.svg')),\n [Locales.LAO_LAOS]: dynamicFlag(() => import('./la.svg')),\n [Locales.YORUBA]: dynamicFlag(() => import('./ng.svg')),\n [Locales.YORUBA_NIGERIA]: dynamicFlag(() => import('./ng.svg')),\n [Locales.AMHARIC]: dynamicFlag(() => import('./et.svg')),\n [Locales.AMHARIC_ETHIOPIA]: dynamicFlag(() => import('./et.svg')),\n [Locales.NEPALI]: dynamicFlag(() => import('./np.svg')),\n [Locales.NEPALI_NEPAL]: dynamicFlag(() => import('./np.svg')),\n [Locales.IRISH]: dynamicFlag(() => import('./ie.svg')),\n [Locales.IRISH_IRELAND]: dynamicFlag(() => import('./ie.svg')),\n [Locales.SCOTTISH_GAELIC]: dynamicFlag(() => import('./gb.svg')),\n [Locales.SCOTTISH_GAELIC_UNITED_KINGDOM]: dynamicFlag(\n () => import('./gb.svg')\n ),\n [Locales.KURDISH]: dynamicFlag(() => import('./tr.svg')),\n [Locales.KURDISH_TURKEY]: dynamicFlag(() => import('./tr.svg')),\n [Locales.MALAYALAM]: dynamicFlag(() => import('./in.svg')),\n [Locales.MALAYALAM_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.NORWEGIAN]: dynamicFlag(() => import('./no.svg')),\n [Locales.NORWEGIAN_NYNORSK]: dynamicFlag(() => import('./no.svg')),\n [Locales.ROMANIAN_MOLDOVA]: dynamicFlag(() => import('./md.svg')),\n [Locales.ROMANSH]: dynamicFlag(() => import('./ch.svg')),\n [Locales.ROMANSH_SWITZERLAND]: dynamicFlag(() => import('./ch.svg')),\n [Locales.RUSSIAN_MOLDOVA]: dynamicFlag(() => import('./md.svg')),\n [Locales.UPPER_SORBIAN]: dynamicFlag(() => import('./de.svg')),\n [Locales.UPPER_SORBIAN_GERMANY]: dynamicFlag(() => import('./de.svg')),\n [Locales.LOWER_SORBIAN]: dynamicFlag(() => import('./de.svg')),\n [Locales.LOWER_SORBIAN_GERMANY]: dynamicFlag(() => import('./de.svg')),\n [Locales.VENDA]: dynamicFlag(() => import('./za.svg')),\n [Locales.VENDA_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.YIDDISH]: dynamicFlag(() => import('./il.svg')),\n [Locales.YIDDISH_WORLD]: dynamicFlag(() => import('./il.svg')),\n [Locales.SINHALA]: dynamicFlag(() => import('./lk.svg')),\n [Locales.SINHALA_SRI_LANKA]: dynamicFlag(() => import('./lk.svg')),\n [Locales.SERBIAN_CYRILLIC]: dynamicFlag(() => import('./rs.svg')),\n [Locales.SERBIAN_CYRILLIC_SERBIA]: dynamicFlag(() => import('./rs.svg')),\n [Locales.ENGLISH_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.ENGLISH_SINGAPORE]: dynamicFlag(() => import('./sg.svg')),\n [Locales.ENGLISH_HONG_KONG]: dynamicFlag(() => import('./hk.svg')),\n [Locales.ENGLISH_NIGERIA]: dynamicFlag(() => import('./ng.svg')),\n [Locales.ENGLISH_PAKISTAN]: dynamicFlag(() => import('./pk.svg')),\n [Locales.ENGLISH_MALAYSIA]: dynamicFlag(() => import('./my.svg')),\n [Locales.ENGLISH_BOTSWANA]: dynamicFlag(() => import('./bw.svg')),\n [Locales.ENGLISH_KENYA]: dynamicFlag(() => import('./ke.svg')),\n [Locales.ENGLISH_TANZANIA]: dynamicFlag(() => import('./tz.svg')),\n [Locales.ENGLISH_GHANA]: dynamicFlag(() => import('./gh.svg')),\n [Locales.ENGLISH_UGANDA]: dynamicFlag(() => import('./ug.svg')),\n [Locales.SPANISH_CUBA]: dynamicFlag(() => import('./cu.svg')),\n [Locales.SPANISH_UNITED_STATES]: dynamicFlag(() => import('./us.svg')),\n [Locales.PORTUGUESE_GUINEA_BISSAU]: dynamicFlag(() => import('./gw.svg')),\n [Locales.PORTUGUESE_MOZAMBIQUE]: dynamicFlag(() => import('./mz.svg')),\n [Locales.PORTUGUESE_SAO_TOME_AND_PRINCIPE]: dynamicFlag(\n () => import('./st.svg')\n ),\n [Locales.PORTUGUESE_CAPE_VERDE]: dynamicFlag(() => import('./cv.svg')),\n [Locales.PORTUGUESE_TIMOR_LESTE]: dynamicFlag(() => import('./tl.svg')),\n [Locales.PORTUGUESE_MACAU]: dynamicFlag(() => import('./mo.svg')),\n [Locales.CHINESE_TAIWAN]: dynamicFlag(() => import('./tw.svg')),\n [Locales.ARABIC_MAURITANIA]: dynamicFlag(() => import('./mr.svg')),\n [Locales.ARABIC_PALESTINE]: dynamicFlag(() => import('./ps.svg')),\n [Locales.ARABIC_SUDAN]: dynamicFlag(() => import('./sd.svg')),\n [Locales.ARABIC_DJIBOUTI]: dynamicFlag(() => import('./dj.svg')),\n [Locales.ARABIC_SOMALIA]: dynamicFlag(() => import('./so.svg')),\n [Locales.ARABIC_CHAD]: dynamicFlag(() => import('./td.svg')),\n [Locales.ARABIC_COMOROS]: dynamicFlag(() => import('./km.svg')),\n};\n\nexport const Flag: FC<FlagProps> = ({ locale, alt, ...props }): JSX.Element => {\n const LazyFlag = flagRecord[locale] ?? dynamicFlag(() => import('./xx.svg'));\n\n return (\n <Suspense fallback={null}>\n <LazyFlag alt={alt ?? `${locale} flag`} {...(props as any)} role=\"img\" />\n </Suspense>\n );\n};\n"],"mappings":";;;;;AAeA,MAAM,eAAe,aACnB,KAAK,YAAY;CAEf,MAAM,SADS,MAAM,UAAU,EACV;AAIrB,KAAI,OAAO,UAAU,SACnB,QAAO,EACL,UAAU,UAAe,oBAAC;EAAI,KAAK;EAAO,KAAI;EAAO,GAAI;GAAS,EACnE;AAKH,QAAO,EAAE,SAAS,OAAO;EACzB;AAEJ,MAAM,aAAsE;EACzE,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,aAAa,kBAAkB,OAAO,YAAY;EAC1D,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,cAAc,kBAAkB,OAAO,YAAY;EAC3D,QAAQ,aAAa,kBAAkB,OAAO,YAAY;EAC1D,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,UAAU,kBAAkB,OAAO,eAAe;EAC1D,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,QAAQ,kBAAkB,OAAO,gBAAgB;EACzD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,SAAS,kBAAkB,OAAO,eAAe;EACzD,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,WAAW,kBAAkB,OAAO,eAAe;EAC3D,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,aAAa,kBAAkB,OAAO,YAAY;EAC1D,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,aAAa,kBAAkB,OAAO,YAAY;EAC1D,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,OAAO,kBAAkB,OAAO,YAAY;EACpD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,OAAO,kBAAkB,OAAO,YAAY;EACpD,QAAQ,cAAc,kBAAkB,OAAO,YAAY;EAC3D,QAAQ,aAAa,kBAAkB,OAAO,YAAY;EAC1D,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,OAAO,kBAAkB,OAAO,YAAY;EACpD,QAAQ,yBAAyB,kBAAkB,OAAO,YAAY;EACtE,QAAQ,8BAA8B,kBAAkB,OAAO,YAAY;EAC3E,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,cAAc,kBAAkB,OAAO,YAAY;EAC3D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,cAAc,kBAAkB,OAAO,YAAY;EAC3D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,yBAAyB,kBAAkB,OAAO,YAAY;EACtE,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,iCAAiC,kBAClC,OAAO,YACd;EACA,QAAQ,gBAAgB,kBAAkB,OAAO,eAAe;EAChE,QAAQ,uBAAuB,kBAAkB,OAAO,YAAY;EACpE,QAAQ,uBAAuB,kBAAkB,OAAO,gBAAgB;EACxE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,uBAAuB,kBAAkB,OAAO,YAAY;EACpE,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,yBAAyB,kBAAkB,OAAO,YAAY;EACtE,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,8BAA8B,kBAAkB,OAAO,YAAY;EAC3E,QAAQ,wBAAwB,kBAAkB,OAAO,YAAY;EACrE,QAAQ,uBAAuB,kBAAkB,OAAO,YAAY;EACpE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,6BAA6B,kBAAkB,OAAO,YAAY;EAC1E,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,eAAe,kBAAkB,OAAO,eAAe;EAC/D,QAAQ,aAAa,kBAAkB,OAAO,YAAY;EAC1D,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,wBAAwB,kBAAkB,OAAO,YAAY;EACrE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,gCAAgC,kBACjC,OAAO,YACd;EACA,QAAQ,iBAAiB,kBAAkB,OAAO,eAAe;EACjE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,cAAc,kBAAkB,OAAO,YAAY;EAC3D,QAAQ,kCAAkC,kBACnC,OAAO,YACd;EACA,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,uBAAuB,kBAAkB,OAAO,YAAY;EACpE,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,uBAAuB,kBAAkB,OAAO,YAAY;EACpE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,4BAA4B,kBAAkB,OAAO,YAAY;EACzE,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,0BAA0B,kBAAkB,OAAO,YAAY;EACvE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,0BAA0B,kBAAkB,OAAO,YAAY;EACvE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,2BAA2B,kBAAkB,OAAO,YAAY;EACxE,QAAQ,8BAA8B,kBAAkB,OAAO,YAAY;EAC3E,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,wBAAwB,kBAAkB,OAAO,YAAY;EACrE,QAAQ,uBAAuB,kBAAkB,OAAO,YAAY;EACpE,QAAQ,uBAAuB,kBAAkB,OAAO,YAAY;EACpE,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,uCAAuC,kBACxC,OAAO,YACd;EACA,QAAQ,sCAAsC,kBACvC,OAAO,YACd;EACA,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,cAAc,kBAAkB,OAAO,YAAY;EAC3D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,oCAAoC,kBACrC,OAAO,YACd;EACA,QAAQ,yBAAyB,kBAAkB,OAAO,YAAY;EACtE,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,2BAA2B,kBAAkB,OAAO,YAAY;EACxE,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,MAAM,kBAAkB,OAAO,YAAY;EACnD,QAAQ,WAAW,kBAAkB,OAAO,YAAY;EACxD,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,SAAS,kBAAkB,OAAO,YAAY;EACtD,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,iCAAiC,kBAClC,OAAO,YACd;EACA,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,YAAY,kBAAkB,OAAO,YAAY;EACzD,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,sBAAsB,kBAAkB,OAAO,YAAY;EACnE,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,wBAAwB,kBAAkB,OAAO,YAAY;EACrE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,wBAAwB,kBAAkB,OAAO,YAAY;EACrE,QAAQ,QAAQ,kBAAkB,OAAO,YAAY;EACrD,QAAQ,qBAAqB,kBAAkB,OAAO,YAAY;EAClE,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,UAAU,kBAAkB,OAAO,YAAY;EACvD,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,0BAA0B,kBAAkB,OAAO,YAAY;EACvE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,gBAAgB,kBAAkB,OAAO,YAAY;EAC7D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,wBAAwB,kBAAkB,OAAO,YAAY;EACrE,QAAQ,2BAA2B,kBAAkB,OAAO,YAAY;EACxE,QAAQ,wBAAwB,kBAAkB,OAAO,YAAY;EACrE,QAAQ,mCAAmC,kBACpC,OAAO,YACd;EACA,QAAQ,wBAAwB,kBAAkB,OAAO,YAAY;EACrE,QAAQ,yBAAyB,kBAAkB,OAAO,YAAY;EACtE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,oBAAoB,kBAAkB,OAAO,YAAY;EACjE,QAAQ,mBAAmB,kBAAkB,OAAO,YAAY;EAChE,QAAQ,eAAe,kBAAkB,OAAO,YAAY;EAC5D,QAAQ,kBAAkB,kBAAkB,OAAO,YAAY;EAC/D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;EAC9D,QAAQ,cAAc,kBAAkB,OAAO,YAAY;EAC3D,QAAQ,iBAAiB,kBAAkB,OAAO,YAAY;CAChE;AAED,MAAa,QAAuB,EAAE,QAAQ,KAAK,GAAG,YAAyB;AAG7E,QACE,oBAAC;EAAS,UAAU;YAClB,oBAJa,WAAW,WAAW,kBAAkB,OAAO,YAAY;GAI9D,KAAK,OAAO,GAAG,OAAO;GAAQ,GAAK;GAAe,MAAK;IAAQ;GAChE"}
|
|
1
|
+
{"version":3,"file":"Flag.mjs","names":[],"sources":["../../../../src/components/Flags/Flag.tsx"],"sourcesContent":["import { type Locale, Locales } from '@intlayer/types';\nimport {\n type FC,\n type ImgHTMLAttributes,\n type JSX,\n lazy,\n Suspense,\n} from 'react';\n\ntype FlagProps = ImgHTMLAttributes<HTMLImageElement> & {\n locale: Locale;\n};\n\n// This ensures React.lazy always receives a valid component,\n// regardless of how your bundler loads SVGs.\nconst dynamicFlag = (importFn: () => Promise<any>) =>\n lazy(async () => {\n const module = await importFn();\n const asset = module.default;\n\n // Case A: Bundler returns a URL string (e.g. file-loader)\n // We wrap it in a simple img component\n if (typeof asset === 'string') {\n return {\n default: (props: any) => <img src={asset} alt=\"flag\" {...props} />,\n };\n }\n\n // Case B: Bundler returns a React Component (SVGR)\n // We return it as-is\n return { default: asset };\n });\n\nconst flagRecord: Partial<Record<Locale, ReturnType<typeof dynamicFlag>>> = {\n [Locales.ENGLISH]: dynamicFlag(() => import('./us.svg')),\n [Locales.FRENCH]: dynamicFlag(() => import('./fr.svg')),\n [Locales.SPANISH]: dynamicFlag(() => import('./es.svg')),\n [Locales.PORTUGUESE]: dynamicFlag(() => import('./pt.svg')),\n [Locales.GERMAN]: dynamicFlag(() => import('./de.svg')),\n [Locales.AFRIKAANS]: dynamicFlag(() => import('./za.svg')),\n [Locales.ARABIC]: dynamicFlag(() => import('./sa.svg')),\n [Locales.AZERI_LATIN]: dynamicFlag(() => import('./az.svg')),\n [Locales.BELARUSIAN]: dynamicFlag(() => import('./by.svg')),\n [Locales.BULGARIAN]: dynamicFlag(() => import('./bg.svg')),\n [Locales.BOSNIAN]: dynamicFlag(() => import('./ba.svg')),\n [Locales.CATALAN]: dynamicFlag(() => import('./es-ct.svg')),\n [Locales.CZECH]: dynamicFlag(() => import('./cz.svg')),\n [Locales.WELSH]: dynamicFlag(() => import('./gb-wls.svg')),\n [Locales.DANISH]: dynamicFlag(() => import('./dk.svg')),\n [Locales.DIVEHI]: dynamicFlag(() => import('./mv.svg')),\n [Locales.GREEK]: dynamicFlag(() => import('./gr.svg')),\n [Locales.ESPERANTO]: dynamicFlag(() => import('./xx.svg')), // No specific flag\n [Locales.ESTONIAN]: dynamicFlag(() => import('./ee.svg')),\n [Locales.BASQUE]: dynamicFlag(() => import('./es-pv.svg')),\n [Locales.FARSI]: dynamicFlag(() => import('./ir.svg')),\n [Locales.FINNISH]: dynamicFlag(() => import('./fi.svg')),\n [Locales.FAROESE]: dynamicFlag(() => import('./fo.svg')),\n [Locales.GALICIAN]: dynamicFlag(() => import('./es-ga.svg')),\n [Locales.GUJARATI]: dynamicFlag(() => import('./in.svg')),\n [Locales.HEBREW]: dynamicFlag(() => import('./il.svg')),\n [Locales.HINDI]: dynamicFlag(() => import('./in.svg')),\n [Locales.CROATIAN]: dynamicFlag(() => import('./hr.svg')),\n [Locales.HUNGARIAN]: dynamicFlag(() => import('./hu.svg')),\n [Locales.ARMENIAN]: dynamicFlag(() => import('./am.svg')),\n [Locales.INDONESIAN]: dynamicFlag(() => import('./id.svg')),\n [Locales.ICELANDIC]: dynamicFlag(() => import('./is.svg')),\n [Locales.ITALIAN]: dynamicFlag(() => import('./it.svg')),\n [Locales.JAPANESE]: dynamicFlag(() => import('./jp.svg')),\n [Locales.GEORGIAN]: dynamicFlag(() => import('./ge.svg')),\n [Locales.KAZAKH]: dynamicFlag(() => import('./kz.svg')),\n [Locales.KANNADA]: dynamicFlag(() => import('./in.svg')),\n [Locales.KOREAN]: dynamicFlag(() => import('./kr.svg')),\n [Locales.KONKANI]: dynamicFlag(() => import('./in.svg')),\n [Locales.KYRGYZ]: dynamicFlag(() => import('./kg.svg')),\n [Locales.LITHUANIAN]: dynamicFlag(() => import('./lt.svg')),\n [Locales.LATVIAN]: dynamicFlag(() => import('./lv.svg')),\n [Locales.MAORI]: dynamicFlag(() => import('./nz.svg')),\n [Locales.FYRO_MACEDONIAN]: dynamicFlag(() => import('./mk.svg')),\n [Locales.MONGOLIAN]: dynamicFlag(() => import('./mn.svg')),\n [Locales.MARATHI]: dynamicFlag(() => import('./in.svg')),\n [Locales.MALAY]: dynamicFlag(() => import('./my.svg')),\n [Locales.MALTESE]: dynamicFlag(() => import('./mt.svg')),\n [Locales.NORWEGIAN_BOKMAL]: dynamicFlag(() => import('./no.svg')),\n [Locales.DUTCH]: dynamicFlag(() => import('./nl.svg')),\n [Locales.NORTHERN_SOTHO]: dynamicFlag(() => import('./za.svg')),\n [Locales.PUNJABI]: dynamicFlag(() => import('./in.svg')),\n [Locales.POLISH]: dynamicFlag(() => import('./pl.svg')),\n [Locales.PASHTO]: dynamicFlag(() => import('./af.svg')),\n [Locales.QUECHUA]: dynamicFlag(() => import('./pe.svg')),\n [Locales.ROMANIAN]: dynamicFlag(() => import('./ro.svg')),\n [Locales.RUSSIAN]: dynamicFlag(() => import('./ru.svg')),\n [Locales.SANSKRIT]: dynamicFlag(() => import('./in.svg')),\n [Locales.SAMI_NORTHERN]: dynamicFlag(() => import('./no.svg')), // No specific flag, assuming Norway\n [Locales.SLOVAK]: dynamicFlag(() => import('./sk.svg')),\n [Locales.SLOVENIAN]: dynamicFlag(() => import('./si.svg')),\n [Locales.ALBANIAN]: dynamicFlag(() => import('./al.svg')),\n [Locales.SERBIAN_LATIN]: dynamicFlag(() => import('./rs.svg')),\n [Locales.SWEDISH]: dynamicFlag(() => import('./se.svg')),\n [Locales.SWEDISH_FINLAND]: dynamicFlag(() => import('./fi.svg')),\n [Locales.SWEDISH_SWEDEN]: dynamicFlag(() => import('./se.svg')),\n [Locales.SWAHILI]: dynamicFlag(() => import('./ke.svg')),\n [Locales.SYRIAC]: dynamicFlag(() => import('./sy.svg')),\n [Locales.TAMIL]: dynamicFlag(() => import('./in.svg')),\n [Locales.TELUGU]: dynamicFlag(() => import('./in.svg')),\n [Locales.THAI]: dynamicFlag(() => import('./th.svg')),\n [Locales.TAGALOG]: dynamicFlag(() => import('./ph.svg')),\n [Locales.TSWANA]: dynamicFlag(() => import('./za.svg')),\n [Locales.TURKISH]: dynamicFlag(() => import('./tr.svg')),\n [Locales.TATAR]: dynamicFlag(() => import('./ru.svg')), // Assuming Russian Federation\n [Locales.UKRAINIAN]: dynamicFlag(() => import('./ua.svg')),\n [Locales.URDU]: dynamicFlag(() => import('./pk.svg')),\n [Locales.UZBEK_LATIN]: dynamicFlag(() => import('./uz.svg')),\n [Locales.VIETNAMESE]: dynamicFlag(() => import('./vn.svg')),\n [Locales.XHOSA]: dynamicFlag(() => import('./za.svg')),\n [Locales.CHINESE_SIMPLIFIED]: dynamicFlag(() => import('./cn.svg')),\n [Locales.CHINESE_TRADITIONAL]: dynamicFlag(() => import('./tw.svg')),\n [Locales.ZULU]: dynamicFlag(() => import('./za.svg')),\n [Locales.AFRIKAANS_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.ARABIC_UNITED_ARAB_EMIRATES]: dynamicFlag(() => import('./ae.svg')),\n [Locales.ARABIC_BAHRAIN]: dynamicFlag(() => import('./bh.svg')),\n [Locales.ARABIC_ALGERIA]: dynamicFlag(() => import('./dz.svg')),\n [Locales.ARABIC_EGYPT]: dynamicFlag(() => import('./eg.svg')),\n [Locales.ARABIC_IRAQ]: dynamicFlag(() => import('./iq.svg')),\n [Locales.ARABIC_JORDAN]: dynamicFlag(() => import('./jo.svg')),\n [Locales.ARABIC_KUWAIT]: dynamicFlag(() => import('./kw.svg')),\n [Locales.ARABIC_LEBANON]: dynamicFlag(() => import('./lb.svg')),\n [Locales.ARABIC_LIBYA]: dynamicFlag(() => import('./ly.svg')),\n [Locales.ARABIC_MOROCCO]: dynamicFlag(() => import('./ma.svg')),\n [Locales.ARABIC_OMAN]: dynamicFlag(() => import('./om.svg')),\n [Locales.ARABIC_QATAR]: dynamicFlag(() => import('./qa.svg')),\n [Locales.ARABIC_SAUDI_ARABIA]: dynamicFlag(() => import('./sa.svg')),\n [Locales.ARABIC_SYRIA]: dynamicFlag(() => import('./sy.svg')),\n [Locales.ARABIC_TUNISIA]: dynamicFlag(() => import('./tn.svg')),\n [Locales.ARABIC_YEMEN]: dynamicFlag(() => import('./ye.svg')),\n [Locales.AZERI_LATIN_AZERBAIJAN]: dynamicFlag(() => import('./az.svg')),\n [Locales.BELARUSIAN_BELARUS]: dynamicFlag(() => import('./by.svg')),\n [Locales.BULGARIAN_BULGARIA]: dynamicFlag(() => import('./bg.svg')),\n [Locales.BOSNIAN_BOSNIA_AND_HERZEGOVINA]: dynamicFlag(\n () => import('./ba.svg')\n ),\n [Locales.CATALAN_SPAIN]: dynamicFlag(() => import('./es-ct.svg')),\n [Locales.CZECH_CZECH_REPUBLIC]: dynamicFlag(() => import('./cz.svg')),\n [Locales.WELSH_UNITED_KINGDOM]: dynamicFlag(() => import('./gb-wls.svg')),\n [Locales.DANISH_DENMARK]: dynamicFlag(() => import('./dk.svg')),\n [Locales.GERMAN_AUSTRIA]: dynamicFlag(() => import('./at.svg')),\n [Locales.GERMAN_SWITZERLAND]: dynamicFlag(() => import('./ch.svg')),\n [Locales.GERMAN_GERMANY]: dynamicFlag(() => import('./de.svg')),\n [Locales.GERMAN_LIECHTENSTEIN]: dynamicFlag(() => import('./li.svg')),\n [Locales.GERMAN_LUXEMBOURG]: dynamicFlag(() => import('./lu.svg')),\n [Locales.DIVEHI_MALDIVES]: dynamicFlag(() => import('./mv.svg')),\n [Locales.GREEK_GREECE]: dynamicFlag(() => import('./gr.svg')),\n [Locales.ENGLISH_AUSTRALIA]: dynamicFlag(() => import('./au.svg')),\n [Locales.ENGLISH_BELIZE]: dynamicFlag(() => import('./bz.svg')),\n [Locales.ENGLISH_CANADA]: dynamicFlag(() => import('./ca.svg')),\n [Locales.ENGLISH_CARIBBEAN]: dynamicFlag(() => import('./jm.svg')), // Using Jamaica as representative of English-speaking Caribbean\n [Locales.ENGLISH_UNITED_KINGDOM]: dynamicFlag(() => import('./gb.svg')),\n [Locales.ENGLISH_IRELAND]: dynamicFlag(() => import('./ie.svg')),\n [Locales.ENGLISH_JAMAICA]: dynamicFlag(() => import('./jm.svg')),\n [Locales.ENGLISH_NEW_ZEALAND]: dynamicFlag(() => import('./nz.svg')),\n [Locales.ENGLISH_PHILIPPINES]: dynamicFlag(() => import('./ph.svg')),\n [Locales.ENGLISH_TRINIDAD_AND_TOBAGO]: dynamicFlag(() => import('./tt.svg')),\n [Locales.ENGLISH_UNITED_STATES]: dynamicFlag(() => import('./us.svg')),\n [Locales.ENGLISH_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.ENGLISH_ZIMBABWE]: dynamicFlag(() => import('./zw.svg')),\n [Locales.SPANISH_ARGENTINA]: dynamicFlag(() => import('./ar.svg')),\n [Locales.SPANISH_BOLIVIA]: dynamicFlag(() => import('./bo.svg')),\n [Locales.SPANISH_CHILE]: dynamicFlag(() => import('./cl.svg')),\n [Locales.SPANISH_COLOMBIA]: dynamicFlag(() => import('./co.svg')),\n [Locales.SPANISH_COSTA_RICA]: dynamicFlag(() => import('./cr.svg')),\n [Locales.SPANISH_DOMINICAN_REPUBLIC]: dynamicFlag(() => import('./do.svg')),\n [Locales.SPANISH_ECUADOR]: dynamicFlag(() => import('./ec.svg')),\n [Locales.SPANISH_SPAIN]: dynamicFlag(() => import('./es.svg')),\n [Locales.SPANISH_GUATEMALA]: dynamicFlag(() => import('./gt.svg')),\n [Locales.SPANISH_HONDURAS]: dynamicFlag(() => import('./hn.svg')),\n [Locales.SPANISH_MEXICO]: dynamicFlag(() => import('./mx.svg')),\n [Locales.SPANISH_NICARAGUA]: dynamicFlag(() => import('./ni.svg')),\n [Locales.SPANISH_PANAMA]: dynamicFlag(() => import('./pa.svg')),\n [Locales.SPANISH_PERU]: dynamicFlag(() => import('./pe.svg')),\n [Locales.SPANISH_PUERTO_RICO]: dynamicFlag(() => import('./pr.svg')),\n [Locales.SPANISH_PARAGUAY]: dynamicFlag(() => import('./py.svg')),\n [Locales.SPANISH_EL_SALVADOR]: dynamicFlag(() => import('./sv.svg')),\n [Locales.SPANISH_URUGUAY]: dynamicFlag(() => import('./uy.svg')),\n [Locales.SPANISH_VENEZUELA]: dynamicFlag(() => import('./ve.svg')),\n [Locales.ESTONIAN_ESTONIA]: dynamicFlag(() => import('./ee.svg')),\n [Locales.BASQUE_SPAIN]: dynamicFlag(() => import('./es-pv.svg')),\n [Locales.FARSI_IRAN]: dynamicFlag(() => import('./ir.svg')),\n [Locales.FINNISH_FINLAND]: dynamicFlag(() => import('./fi.svg')),\n [Locales.FAROESE_FAROE_ISLANDS]: dynamicFlag(() => import('./fo.svg')),\n [Locales.FRENCH_BELGIUM]: dynamicFlag(() => import('./be.svg')),\n [Locales.FRENCH_CANADA]: dynamicFlag(() => import('./ca.svg')),\n [Locales.FRENCH_SWITZERLAND]: dynamicFlag(() => import('./ch.svg')),\n [Locales.FRENCH_FRANCE]: dynamicFlag(() => import('./fr.svg')),\n [Locales.FRENCH_LUXEMBOURG]: dynamicFlag(() => import('./lu.svg')),\n [Locales.FRENCH_PRINCIPALITY_OF_MONACO]: dynamicFlag(\n () => import('./mc.svg')\n ),\n [Locales.GALICIAN_SPAIN]: dynamicFlag(() => import('./es-ga.svg')),\n [Locales.GUJARATI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.HEBREW_ISRAEL]: dynamicFlag(() => import('./il.svg')),\n [Locales.HINDI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.CROATIAN_BOSNIA_AND_HERZEGOVINA]: dynamicFlag(\n () => import('./ba.svg')\n ),\n [Locales.CROATIAN_CROATIA]: dynamicFlag(() => import('./hr.svg')),\n [Locales.HUNGARIAN_HUNGARY]: dynamicFlag(() => import('./hu.svg')),\n [Locales.ARMENIAN_ARMENIA]: dynamicFlag(() => import('./am.svg')),\n [Locales.INDONESIAN_INDONESIA]: dynamicFlag(() => import('./id.svg')),\n [Locales.ICELANDIC_ICELAND]: dynamicFlag(() => import('./is.svg')),\n [Locales.ITALIAN_SWITZERLAND]: dynamicFlag(() => import('./ch.svg')),\n [Locales.ITALIAN_ITALY]: dynamicFlag(() => import('./it.svg')),\n [Locales.JAPANESE_JAPAN]: dynamicFlag(() => import('./jp.svg')),\n [Locales.GEORGIAN_GEORGIA]: dynamicFlag(() => import('./ge.svg')),\n [Locales.KAZAKH_KAZAKHSTAN]: dynamicFlag(() => import('./kz.svg')),\n [Locales.KANNADA_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.KOREAN_KOREA]: dynamicFlag(() => import('./kr.svg')),\n [Locales.KONKANI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.KYRGYZ_KYRGYZSTAN]: dynamicFlag(() => import('./kg.svg')),\n [Locales.LITHUANIAN_LITHUANIA]: dynamicFlag(() => import('./lt.svg')),\n [Locales.LATVIAN_LATVIA]: dynamicFlag(() => import('./lv.svg')),\n [Locales.MAORI_NEW_ZEALAND]: dynamicFlag(() => import('./nz.svg')),\n [Locales.FYRO_MACEDONIAN_MACEDONIA]: dynamicFlag(() => import('./mk.svg')),\n [Locales.MONGOLIAN_MONGOLIA]: dynamicFlag(() => import('./mn.svg')),\n [Locales.MARATHI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.MALAY_BRUNEI_DARUSSALAM]: dynamicFlag(() => import('./bn.svg')),\n [Locales.MALAY_MALAYSIA]: dynamicFlag(() => import('./my.svg')),\n [Locales.MALTESE_MALTA]: dynamicFlag(() => import('./mt.svg')),\n [Locales.NORWEGIAN_BOKMAL_NORWAY]: dynamicFlag(() => import('./no.svg')),\n [Locales.DUTCH_BELGIUM]: dynamicFlag(() => import('./be.svg')),\n [Locales.DUTCH_NETHERLANDS]: dynamicFlag(() => import('./nl.svg')),\n [Locales.NORWEGIAN_NYNORSK_NORWAY]: dynamicFlag(() => import('./no.svg')),\n [Locales.NORTHERN_SOTHO_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.PUNJABI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.POLISH_POLAND]: dynamicFlag(() => import('./pl.svg')),\n [Locales.PASHTO_AFGHANISTAN]: dynamicFlag(() => import('./af.svg')),\n [Locales.PORTUGUESE_BRAZIL]: dynamicFlag(() => import('./br.svg')),\n [Locales.PORTUGUESE_PORTUGAL]: dynamicFlag(() => import('./pt.svg')),\n [Locales.QUECHUA_BOLIVIA]: dynamicFlag(() => import('./bo.svg')),\n [Locales.QUECHUA_ECUADOR]: dynamicFlag(() => import('./ec.svg')),\n [Locales.QUECHUA_PERU]: dynamicFlag(() => import('./pe.svg')),\n [Locales.ROMANIAN_ROMANIA]: dynamicFlag(() => import('./ro.svg')),\n [Locales.RUSSIAN_RUSSIA]: dynamicFlag(() => import('./ru.svg')),\n [Locales.SANSKRIT_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.SAMI_NORTHERN_FINLAND]: dynamicFlag(() => import('./fi.svg')),\n [Locales.SAMI_NORTHERN_NORWAY]: dynamicFlag(() => import('./no.svg')),\n [Locales.SAMI_NORTHERN_SWEDEN]: dynamicFlag(() => import('./se.svg')),\n [Locales.SLOVAK_SLOVAKIA]: dynamicFlag(() => import('./sk.svg')),\n [Locales.SLOVENIAN_SLOVENIA]: dynamicFlag(() => import('./si.svg')),\n [Locales.ALBANIAN_ALBANIA]: dynamicFlag(() => import('./al.svg')),\n [Locales.SERBIAN_LATIN_BOSNIA_AND_HERZEGOVINA]: dynamicFlag(\n () => import('./ba.svg')\n ),\n [Locales.SERBIAN_LATIN_SERBIA_AND_MONTENEGRO]: dynamicFlag(\n () => import('./rs.svg')\n ),\n [Locales.SWAHILI_KENYA]: dynamicFlag(() => import('./ke.svg')),\n [Locales.SYRIAC_SYRIA]: dynamicFlag(() => import('./sy.svg')),\n [Locales.TAMIL_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.TELUGU_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.THAI_THAILAND]: dynamicFlag(() => import('./th.svg')),\n [Locales.TAGALOG_PHILIPPINES]: dynamicFlag(() => import('./ph.svg')),\n [Locales.TSWANA_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.TURKISH_TURKEY]: dynamicFlag(() => import('./tr.svg')),\n [Locales.TATAR_RUSSIA]: dynamicFlag(() => import('./ru.svg')),\n [Locales.TSOGA]: dynamicFlag(() => import('./xx.svg')), // No specific flag\n [Locales.UKRAINIAN_UKRAINE]: dynamicFlag(() => import('./ua.svg')),\n [Locales.URDU_ISLAMIC_REPUBLIC_OF_PAKISTAN]: dynamicFlag(\n () => import('./pk.svg')\n ),\n [Locales.UZBEK_LATIN_UZBEKISTAN]: dynamicFlag(() => import('./uz.svg')),\n [Locales.VIETNAMESE_VIET_NAM]: dynamicFlag(() => import('./vn.svg')),\n [Locales.XHOSA_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.CHINESE]: dynamicFlag(() => import('./cn.svg')),\n [Locales.CHINESE_SIMPLIFIED_CHINA]: dynamicFlag(() => import('./cn.svg')),\n [Locales.CHINESE_HONG_KONG]: dynamicFlag(() => import('./hk.svg')),\n [Locales.CHINESE_MACAU]: dynamicFlag(() => import('./mo.svg')),\n [Locales.CHINESE_SINGAPORE]: dynamicFlag(() => import('./sg.svg')),\n [Locales.ZULU_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.BENGALI]: dynamicFlag(() => import('./in.svg')),\n [Locales.BENGALI_BANGLADESH]: dynamicFlag(() => import('./bd.svg')),\n [Locales.BENGALI_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.BENGALI_MYANMAR]: dynamicFlag(() => import('./mm.svg')),\n [Locales.BURMESE]: dynamicFlag(() => import('./mm.svg')),\n [Locales.BURMESE_MYANMAR]: dynamicFlag(() => import('./mm.svg')),\n [Locales.KHMER]: dynamicFlag(() => import('./kh.svg')),\n [Locales.KHMER_CAMBODIA]: dynamicFlag(() => import('./kh.svg')),\n [Locales.LAO]: dynamicFlag(() => import('./la.svg')),\n [Locales.LAO_LAOS]: dynamicFlag(() => import('./la.svg')),\n [Locales.YORUBA]: dynamicFlag(() => import('./ng.svg')),\n [Locales.YORUBA_NIGERIA]: dynamicFlag(() => import('./ng.svg')),\n [Locales.AMHARIC]: dynamicFlag(() => import('./et.svg')),\n [Locales.AMHARIC_ETHIOPIA]: dynamicFlag(() => import('./et.svg')),\n [Locales.NEPALI]: dynamicFlag(() => import('./np.svg')),\n [Locales.NEPALI_NEPAL]: dynamicFlag(() => import('./np.svg')),\n [Locales.IRISH]: dynamicFlag(() => import('./ie.svg')),\n [Locales.IRISH_IRELAND]: dynamicFlag(() => import('./ie.svg')),\n [Locales.SCOTTISH_GAELIC]: dynamicFlag(() => import('./gb.svg')),\n [Locales.SCOTTISH_GAELIC_UNITED_KINGDOM]: dynamicFlag(\n () => import('./gb.svg')\n ),\n [Locales.KURDISH]: dynamicFlag(() => import('./tr.svg')),\n [Locales.KURDISH_TURKEY]: dynamicFlag(() => import('./tr.svg')),\n [Locales.MALAYALAM]: dynamicFlag(() => import('./in.svg')),\n [Locales.MALAYALAM_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.NORWEGIAN]: dynamicFlag(() => import('./no.svg')),\n [Locales.NORWEGIAN_NYNORSK]: dynamicFlag(() => import('./no.svg')),\n [Locales.ROMANIAN_MOLDOVA]: dynamicFlag(() => import('./md.svg')),\n [Locales.ROMANSH]: dynamicFlag(() => import('./ch.svg')),\n [Locales.ROMANSH_SWITZERLAND]: dynamicFlag(() => import('./ch.svg')),\n [Locales.RUSSIAN_MOLDOVA]: dynamicFlag(() => import('./md.svg')),\n [Locales.UPPER_SORBIAN]: dynamicFlag(() => import('./de.svg')),\n [Locales.UPPER_SORBIAN_GERMANY]: dynamicFlag(() => import('./de.svg')),\n [Locales.LOWER_SORBIAN]: dynamicFlag(() => import('./de.svg')),\n [Locales.LOWER_SORBIAN_GERMANY]: dynamicFlag(() => import('./de.svg')),\n [Locales.VENDA]: dynamicFlag(() => import('./za.svg')),\n [Locales.VENDA_SOUTH_AFRICA]: dynamicFlag(() => import('./za.svg')),\n [Locales.YIDDISH]: dynamicFlag(() => import('./il.svg')),\n [Locales.YIDDISH_WORLD]: dynamicFlag(() => import('./il.svg')),\n [Locales.SINHALA]: dynamicFlag(() => import('./lk.svg')),\n [Locales.SINHALA_SRI_LANKA]: dynamicFlag(() => import('./lk.svg')),\n [Locales.SERBIAN_CYRILLIC]: dynamicFlag(() => import('./rs.svg')),\n [Locales.SERBIAN_CYRILLIC_SERBIA]: dynamicFlag(() => import('./rs.svg')),\n [Locales.ENGLISH_INDIA]: dynamicFlag(() => import('./in.svg')),\n [Locales.ENGLISH_SINGAPORE]: dynamicFlag(() => import('./sg.svg')),\n [Locales.ENGLISH_HONG_KONG]: dynamicFlag(() => import('./hk.svg')),\n [Locales.ENGLISH_NIGERIA]: dynamicFlag(() => import('./ng.svg')),\n [Locales.ENGLISH_PAKISTAN]: dynamicFlag(() => import('./pk.svg')),\n [Locales.ENGLISH_MALAYSIA]: dynamicFlag(() => import('./my.svg')),\n [Locales.ENGLISH_BOTSWANA]: dynamicFlag(() => import('./bw.svg')),\n [Locales.ENGLISH_KENYA]: dynamicFlag(() => import('./ke.svg')),\n [Locales.ENGLISH_TANZANIA]: dynamicFlag(() => import('./tz.svg')),\n [Locales.ENGLISH_GHANA]: dynamicFlag(() => import('./gh.svg')),\n [Locales.ENGLISH_UGANDA]: dynamicFlag(() => import('./ug.svg')),\n [Locales.SPANISH_CUBA]: dynamicFlag(() => import('./cu.svg')),\n [Locales.SPANISH_UNITED_STATES]: dynamicFlag(() => import('./us.svg')),\n [Locales.PORTUGUESE_GUINEA_BISSAU]: dynamicFlag(() => import('./gw.svg')),\n [Locales.PORTUGUESE_MOZAMBIQUE]: dynamicFlag(() => import('./mz.svg')),\n [Locales.PORTUGUESE_SAO_TOME_AND_PRINCIPE]: dynamicFlag(\n () => import('./st.svg')\n ),\n [Locales.PORTUGUESE_CAPE_VERDE]: dynamicFlag(() => import('./cv.svg')),\n [Locales.PORTUGUESE_TIMOR_LESTE]: dynamicFlag(() => import('./tl.svg')),\n [Locales.PORTUGUESE_MACAU]: dynamicFlag(() => import('./mo.svg')),\n [Locales.CHINESE_TAIWAN]: dynamicFlag(() => import('./tw.svg')),\n [Locales.ARABIC_MAURITANIA]: dynamicFlag(() => import('./mr.svg')),\n [Locales.ARABIC_PALESTINE]: dynamicFlag(() => import('./ps.svg')),\n [Locales.ARABIC_SUDAN]: dynamicFlag(() => import('./sd.svg')),\n [Locales.ARABIC_DJIBOUTI]: dynamicFlag(() => import('./dj.svg')),\n [Locales.ARABIC_SOMALIA]: dynamicFlag(() => import('./so.svg')),\n [Locales.ARABIC_CHAD]: dynamicFlag(() => import('./td.svg')),\n [Locales.ARABIC_COMOROS]: dynamicFlag(() => import('./km.svg')),\n};\n\nexport const Flag: FC<FlagProps> = ({ locale, alt, ...props }): JSX.Element => {\n const LazyFlag = flagRecord[locale] ?? dynamicFlag(() => import('./xx.svg'));\n\n return (\n <Suspense>\n <LazyFlag alt={alt ?? `${locale} flag`} {...(props as any)} role=\"img\" />\n </Suspense>\n );\n};\n"],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@ const CodeDefault = ({ children }) => /* @__PURE__ */ jsx("div", {
|
|
|
7
7
|
className: "min-w-0 max-w-full overflow-x-auto",
|
|
8
8
|
children: /* @__PURE__ */ jsx("pre", {
|
|
9
9
|
className: "min-w-0 max-w-full overflow-x-auto [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
10
|
-
children: /* @__PURE__ */ jsx("code", { children: children.split("\n").map((line, index) => /* @__PURE__ */ jsx("span", {
|
|
10
|
+
children: /* @__PURE__ */ jsx("code", { children: typeof children === "string" ? children.split("\n").map((line, index) => /* @__PURE__ */ jsx("span", {
|
|
11
11
|
className: "line block w-full",
|
|
12
12
|
children: line
|
|
13
|
-
}, `line-${index}-${line.slice(0, 10)}`)) })
|
|
13
|
+
}, `line-${index}-${line.slice(0, 10)}`)) : children })
|
|
14
14
|
})
|
|
15
15
|
});
|
|
16
16
|
const CodeBlockShiki = lazy(() => import("./CodeBlockShiki.mjs").then((mod) => ({ default: mod.CodeBlockShiki })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlockClient.mjs","names":[],"sources":["../../../../src/components/IDE/CodeBlockClient.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport { type FC, type HTMLAttributes, lazy, Suspense } from 'react';\nimport type { BundledLanguage } from 'shiki/bundle/web';\n\nexport const CodeDefault: FC<{ children: string }> = ({ children }) => (\n <div className=\"min-w-0 max-w-full overflow-x-auto\">\n <pre className=\"min-w-0 max-w-full overflow-x-auto [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n <code>\n {children.split('\\n').map((line, index) => (\n
|
|
1
|
+
{"version":3,"file":"CodeBlockClient.mjs","names":[],"sources":["../../../../src/components/IDE/CodeBlockClient.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport { type FC, type HTMLAttributes, lazy, Suspense } from 'react';\nimport type { BundledLanguage } from 'shiki/bundle/web';\n\nexport const CodeDefault: FC<{ children: string }> = ({ children }) => (\n <div className=\"min-w-0 max-w-full overflow-x-auto\">\n <pre className=\"min-w-0 max-w-full overflow-x-auto [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n <code>\n {typeof children === 'string'\n ? children.split('\\n').map((line, index) => (\n <span\n className=\"line block w-full\"\n key={`line-${index}-${line.slice(0, 10)}`}\n >\n {line}\n </span>\n ))\n : children}\n </code>\n </pre>\n </div>\n);\n\n// Lazy load the Shiki component\nconst CodeBlockShiki = lazy(() =>\n import('./CodeBlockShiki').then((mod) => ({\n default: mod.CodeBlockShiki,\n }))\n);\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n children,\n lang,\n isDarkMode,\n ...props\n}) => (\n <div\n className={cn('flex w-full min-w-0 max-w-full overflow-x-auto', className)}\n {...props}\n >\n <Suspense fallback={<CodeDefault>{children}</CodeDefault>}>\n <CodeBlockShiki lang={lang} isDarkMode={isDarkMode}>\n {children}\n </CodeBlockShiki>\n </Suspense>\n </div>\n);\n"],"mappings":";;;;;AAIA,MAAa,eAAyC,EAAE,eACtD,oBAAC;CAAI,WAAU;WACb,oBAAC;EAAI,WAAU;YACb,oBAAC,oBACE,OAAO,aAAa,WACjB,SAAS,MAAM,KAAK,CAAC,KAAK,MAAM,UAC9B,oBAAC;GACC,WAAU;aAGT;KAFI,QAAQ,MAAM,GAAG,KAAK,MAAM,GAAG,GAAG,GAGlC,CACP,GACF,WACC;GACH;EACF;AAIR,MAAM,iBAAiB,WACrB,OAAO,wBAAoB,MAAM,SAAS,EACxC,SAAS,IAAI,gBACd,EAAE,CACJ;AAUD,MAAa,aAAiC,EAC5C,WACA,UACA,YACA,UACA,MACA,YACA,GAAG,YAEH,oBAAC;CACC,WAAW,GAAG,kDAAkD,UAAU;CAC1E,GAAI;WAEJ,oBAAC;EAAS,UAAU,oBAAC,eAAa,WAAuB;YACvD,oBAAC;GAAqB;GAAkB;GACrC;IACc;GACR;EACP"}
|
|
@@ -26,10 +26,10 @@ const CodeBlockShiki = (async ({ children, lang, isDarkMode, onChange, ...props
|
|
|
26
26
|
const CodeDefault = ({ children, isEditable, isDarkMode, onChange, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
27
27
|
contentEditable: isEditable,
|
|
28
28
|
...props,
|
|
29
|
-
children: /* @__PURE__ */ jsx("pre", { children: /* @__PURE__ */ jsx("code", { children: children.split("\n").map((line, index) => /* @__PURE__ */ jsx("span", {
|
|
29
|
+
children: /* @__PURE__ */ jsx("pre", { children: /* @__PURE__ */ jsx("code", { children: typeof children === "string" ? children.split("\n").map((line, index) => /* @__PURE__ */ jsx("span", {
|
|
30
30
|
className: "line block w-full",
|
|
31
31
|
children: line
|
|
32
|
-
}, index)) }) })
|
|
32
|
+
}, index)) : children }) })
|
|
33
33
|
});
|
|
34
34
|
const CodeBlock = ({ className, onChange, isEditable, ...props }) => /* @__PURE__ */ jsx(Suspense, {
|
|
35
35
|
fallback: /* @__PURE__ */ jsx(CodeDefault, { ...props }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlockServer.mjs","names":[],"sources":["../../../../src/components/IDE/CodeBlockServer.tsx"],"sourcesContent":["import {\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n transformerNotationDiff,\n transformerNotationErrorLevel,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n} from '@shikijs/transformers';\nimport { cn } from '@utils/cn';\nimport { type FC, type HTMLAttributes, Suspense } from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki/bundle/web';\n\nexport const CodeBlockShiki = (async ({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> = {\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n };\n\n const out = await codeToHtml(children, shikiOptions);\n\n return (\n <div\n dangerouslySetInnerHTML={{ __html: out }}\n {...props}\n style={{ backgroundColor: 'transparent' }}\n />\n );\n}) as unknown as FC<CodeBlockProps>;\n\nconst CodeDefault: FC<CodeBlockProps> = ({\n children,\n isEditable,\n isDarkMode,\n onChange,\n ...props\n}) => (\n <div contentEditable={isEditable} {...props}>\n <pre>\n <code>\n {children.split('\\n').map((line, index) => (\n
|
|
1
|
+
{"version":3,"file":"CodeBlockServer.mjs","names":[],"sources":["../../../../src/components/IDE/CodeBlockServer.tsx"],"sourcesContent":["import {\n transformerMetaHighlight,\n transformerMetaWordHighlight,\n transformerNotationDiff,\n transformerNotationErrorLevel,\n transformerNotationHighlight,\n transformerNotationWordHighlight,\n} from '@shikijs/transformers';\nimport { cn } from '@utils/cn';\nimport { type FC, type HTMLAttributes, Suspense } from 'react';\nimport {\n type BundledLanguage,\n type BundledTheme,\n type CodeToHastOptions,\n codeToHtml,\n} from 'shiki/bundle/web';\n\nexport const CodeBlockShiki = (async ({\n children,\n lang,\n isDarkMode,\n onChange,\n ...props\n}: CodeBlockProps) => {\n const shikiOptions: CodeToHastOptions<BundledLanguage, BundledTheme> = {\n lang,\n theme: isDarkMode ? 'github-dark' : 'github-light',\n transformers: [\n transformerNotationDiff(),\n transformerNotationHighlight(),\n transformerNotationWordHighlight(),\n transformerNotationErrorLevel(),\n transformerMetaHighlight(),\n transformerMetaWordHighlight(),\n ],\n };\n\n const out = await codeToHtml(children, shikiOptions);\n\n return (\n <div\n dangerouslySetInnerHTML={{ __html: out }}\n {...props}\n style={{ backgroundColor: 'transparent' }}\n />\n );\n}) as unknown as FC<CodeBlockProps>;\n\nconst CodeDefault: FC<CodeBlockProps> = ({\n children,\n isEditable,\n isDarkMode,\n onChange,\n ...props\n}) => (\n <div contentEditable={isEditable} {...props}>\n <pre>\n <code>\n {typeof children === 'string'\n ? children.split('\\n').map((line, index) => (\n <span className=\"line block w-full\" key={index}>\n {line}\n </span>\n ))\n : children}\n </code>\n </pre>\n </div>\n);\n\nexport type CodeBlockProps = {\n children: string;\n lang: BundledLanguage;\n isDarkMode?: boolean;\n isEditable?: boolean;\n onChange?: (content: string) => void;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>;\n\nexport const CodeBlock: FC<CodeBlockProps> = ({\n className,\n onChange,\n isEditable,\n ...props\n}) => (\n <Suspense fallback={<CodeDefault {...props} />}>\n <CodeBlockShiki\n className={cn('flex w-full', className)}\n contentEditable={isEditable}\n onInput={(e) => onChange?.(e.currentTarget.textContent ?? '')}\n {...props}\n />\n </Suspense>\n);\n"],"mappings":";;;;;;;AAiBA,MAAa,kBAAkB,OAAO,EACpC,UACA,MACA,YACA,UACA,GAAG,YACiB;AAgBpB,QACE,oBAAC;EACC,yBAAyB,EAAE,QAJnB,MAAM,WAAW,UAb0C;GACrE;GACA,OAAO,aAAa,gBAAgB;GACpC,cAAc;IACZ,yBAAyB;IACzB,8BAA8B;IAC9B,kCAAkC;IAClC,+BAA+B;IAC/B,0BAA0B;IAC1B,8BAA8B;IAC/B;GACF,CAEmD,EAIR;EACxC,GAAI;EACJ,OAAO,EAAE,iBAAiB,eAAe;GACzC;;AAIN,MAAM,eAAmC,EACvC,UACA,YACA,YACA,UACA,GAAG,YAEH,oBAAC;CAAI,iBAAiB;CAAY,GAAI;WACpC,oBAAC,mBACC,oBAAC,oBACE,OAAO,aAAa,WACjB,SAAS,MAAM,KAAK,CAAC,KAAK,MAAM,UAC9B,oBAAC;EAAK,WAAU;YACb;IADsC,MAElC,CACP,GACF,WACC,GACH;EACF;AAWR,MAAa,aAAiC,EAC5C,WACA,UACA,YACA,GAAG,YAEH,oBAAC;CAAS,UAAU,oBAAC,eAAY,GAAI,QAAS;WAC5C,oBAAC;EACC,WAAW,GAAG,eAAe,UAAU;EACvC,iBAAiB;EACjB,UAAU,MAAM,WAAW,EAAE,cAAc,eAAe,GAAG;EAC7D,GAAI;GACJ;EACO"}
|
|
@@ -53,7 +53,7 @@ const MonacoCode = ({ children, language, isDarkMode, showLineNumbers, showCopyB
|
|
|
53
53
|
width: containerRef.current?.clientWidth ?? 0
|
|
54
54
|
});
|
|
55
55
|
};
|
|
56
|
-
const isShowLineNumbers = showLineNumbers ?? children.split("\n").length > 1;
|
|
56
|
+
const isShowLineNumbers = showLineNumbers ?? (typeof children === "string" ? children.split("\n").length > 1 : false);
|
|
57
57
|
return /* @__PURE__ */ jsxs("div", {
|
|
58
58
|
className: cn("relative h-full w-full text-sm", showLineNumbers && "ml-0"),
|
|
59
59
|
children: [showCopyButton && /* @__PURE__ */ jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonacoCode.mjs","names":[],"sources":["../../../../src/components/IDE/MonacoCode.tsx"],"sourcesContent":["'use client';\n\nimport { Editor, type OnChange, type OnMount } from '@monaco-editor/react';\nimport { cn } from '@utils/cn';\nimport { type FC, useMemo, useRef, useState } from 'react';\nimport { CopyButton } from '../CopyButton';\nimport { Loader } from '../Loader';\n\ntype CodeCompProps = {\n children: string;\n language: string;\n isDarkMode?: boolean;\n showLineNumbers?: boolean;\n showCopyButton?: boolean;\n isReadOnly?: boolean;\n onChange?: OnChange;\n};\n\nexport const MonacoCode: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showLineNumbers,\n showCopyButton = true,\n isReadOnly = false,\n onChange,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const ideRef = useRef(null);\n const [editorSize, setEditorSize] = useState<{\n height: number;\n width: number;\n }>({ height: 0, width: 0 });\n\n const theme = useMemo(\n () => (isDarkMode ? 'vs-dark-transparent' : 'hc-light-theme'),\n [isDarkMode]\n );\n\n const handleMountIde: OnMount = (editor, monaco) => {\n // first time you set the height based on content Height\n\n ideRef.current = editor as any;\n const contentHeight = (editor.getContentHeight() ?? 0) + 25;\n\n monaco.editor.defineTheme('vs-dark-transparent', {\n base: 'vs-dark',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n monaco.editor.defineTheme('hc-light-theme', {\n base: 'vs',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n\n monaco.editor.setTheme(theme);\n\n // Disable TypeScript diagnostics\n monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true, // Disables type checking\n noSyntaxValidation: true, // Disables syntax errors\n });\n\n // Disable JavaScript diagnostics\n monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true,\n });\n\n // Disable unnecessary language features (e.g., suggestions, quick fixes)\n monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n setEditorSize({\n height: contentHeight,\n width: containerRef.current?.clientWidth ?? 0,\n });\n };\n\n const isShowLineNumbers
|
|
1
|
+
{"version":3,"file":"MonacoCode.mjs","names":[],"sources":["../../../../src/components/IDE/MonacoCode.tsx"],"sourcesContent":["'use client';\n\nimport { Editor, type OnChange, type OnMount } from '@monaco-editor/react';\nimport { cn } from '@utils/cn';\nimport { type FC, useMemo, useRef, useState } from 'react';\nimport { CopyButton } from '../CopyButton';\nimport { Loader } from '../Loader';\n\ntype CodeCompProps = {\n children: string;\n language: string;\n isDarkMode?: boolean;\n showLineNumbers?: boolean;\n showCopyButton?: boolean;\n isReadOnly?: boolean;\n onChange?: OnChange;\n};\n\nexport const MonacoCode: FC<CodeCompProps> = ({\n children,\n language,\n isDarkMode,\n showLineNumbers,\n showCopyButton = true,\n isReadOnly = false,\n onChange,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const ideRef = useRef(null);\n const [editorSize, setEditorSize] = useState<{\n height: number;\n width: number;\n }>({ height: 0, width: 0 });\n\n const theme = useMemo(\n () => (isDarkMode ? 'vs-dark-transparent' : 'hc-light-theme'),\n [isDarkMode]\n );\n\n const handleMountIde: OnMount = (editor, monaco) => {\n // first time you set the height based on content Height\n\n ideRef.current = editor as any;\n const contentHeight = (editor.getContentHeight() ?? 0) + 25;\n\n monaco.editor.defineTheme('vs-dark-transparent', {\n base: 'vs-dark',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n monaco.editor.defineTheme('hc-light-theme', {\n base: 'vs',\n inherit: true,\n rules: [],\n colors: {\n 'editor.background': '#00000000',\n },\n });\n\n monaco.editor.setTheme(theme);\n\n // Disable TypeScript diagnostics\n monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true, // Disables type checking\n noSyntaxValidation: true, // Disables syntax errors\n });\n\n // Disable JavaScript diagnostics\n monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({\n noSemanticValidation: true,\n noSyntaxValidation: true,\n });\n\n // Disable unnecessary language features (e.g., suggestions, quick fixes)\n monaco.languages.typescript.typescriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n monaco.languages.typescript.javascriptDefaults.setCompilerOptions({\n noLib: true,\n allowNonTsExtensions: true,\n });\n\n setEditorSize({\n height: contentHeight,\n width: containerRef.current?.clientWidth ?? 0,\n });\n };\n\n const isShowLineNumbers =\n showLineNumbers ??\n (typeof children === 'string' ? children.split('\\n').length > 1 : false);\n\n return (\n <div\n className={cn(\n 'relative h-full w-full text-sm',\n showLineNumbers && 'ml-0'\n )}\n >\n {showCopyButton && (\n <div className=\"sticky top-5 z-10\">\n <div\n className={cn('absolute right-2 bottom-0 flex h-7 items-center')}\n >\n <CopyButton content={children} />\n </div>\n </div>\n )}\n <div\n className=\"z-0 grid size-full grid-cols-[0px] overflow-auto\"\n ref={containerRef}\n >\n <Editor\n {...editorSize}\n defaultLanguage=\"typescript\"\n language={language}\n loading={<Loader />}\n defaultValue={String(children).replace(/\\n$/, '')}\n onMount={handleMountIde}\n onChange={onChange}\n options={{\n readOnly: isReadOnly,\n cursorStyle: 'line',\n minimap: { enabled: false },\n scrollbar: {\n vertical: 'hidden',\n verticalScrollbarSize: 0,\n alwaysConsumeMouseWheel: false,\n },\n folding: false, // Disable code folding\n renderValidationDecorations: 'off', // Disable error/warning decorations\n quickSuggestions: false, // Disable IntelliSense\n parameterHints: { enabled: false }, // Disable parameter hints\n suggestOnTriggerCharacters: false, // Disable suggestions on typing\n\n mouseWheelScrollSensitivity: 0,\n fastScrollSensitivity: 0,\n scrollBeyondLastLine: false,\n lineNumbers: isShowLineNumbers ? 'on' : 'off',\n }}\n theme={theme}\n className=\"my-2 rounded-md\"\n />\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;AAkBA,MAAa,cAAiC,EAC5C,UACA,UACA,YACA,iBACA,iBAAiB,MACjB,aAAa,OACb,eACI;CACJ,MAAM,eAAe,OAAuB,KAAK;CACjD,MAAM,SAAS,OAAO,KAAK;CAC3B,MAAM,CAAC,YAAY,iBAAiB,SAGjC;EAAE,QAAQ;EAAG,OAAO;EAAG,CAAC;CAE3B,MAAM,QAAQ,cACL,aAAa,wBAAwB,kBAC5C,CAAC,WAAW,CACb;CAED,MAAM,kBAA2B,QAAQ,WAAW;AAGlD,SAAO,UAAU;EACjB,MAAM,iBAAiB,OAAO,kBAAkB,IAAI,KAAK;AAEzD,SAAO,OAAO,YAAY,uBAAuB;GAC/C,MAAM;GACN,SAAS;GACT,OAAO,EAAE;GACT,QAAQ,EACN,qBAAqB,aACtB;GACF,CAAC;AACF,SAAO,OAAO,YAAY,kBAAkB;GAC1C,MAAM;GACN,SAAS;GACT,OAAO,EAAE;GACT,QAAQ,EACN,qBAAqB,aACtB;GACF,CAAC;AAEF,SAAO,OAAO,SAAS,MAAM;AAG7B,SAAO,UAAU,WAAW,mBAAmB,sBAAsB;GACnE,sBAAsB;GACtB,oBAAoB;GACrB,CAAC;AAGF,SAAO,UAAU,WAAW,mBAAmB,sBAAsB;GACnE,sBAAsB;GACtB,oBAAoB;GACrB,CAAC;AAGF,SAAO,UAAU,WAAW,mBAAmB,mBAAmB;GAChE,OAAO;GACP,sBAAsB;GACvB,CAAC;AAEF,SAAO,UAAU,WAAW,mBAAmB,mBAAmB;GAChE,OAAO;GACP,sBAAsB;GACvB,CAAC;AAEF,gBAAc;GACZ,QAAQ;GACR,OAAO,aAAa,SAAS,eAAe;GAC7C,CAAC;;CAGJ,MAAM,oBACJ,oBACC,OAAO,aAAa,WAAW,SAAS,MAAM,KAAK,CAAC,SAAS,IAAI;AAEpE,QACE,qBAAC;EACC,WAAW,GACT,kCACA,mBAAmB,OACpB;aAEA,kBACC,oBAAC;GAAI,WAAU;aACb,oBAAC;IACC,WAAW,GAAG,kDAAkD;cAEhE,oBAAC,cAAW,SAAS,WAAY;KAC7B;IACF,EAER,oBAAC;GACC,WAAU;GACV,KAAK;aAEL,oBAAC;IACC,GAAI;IACJ,iBAAgB;IACN;IACV,SAAS,oBAAC,WAAS;IACnB,cAAc,OAAO,SAAS,CAAC,QAAQ,OAAO,GAAG;IACjD,SAAS;IACC;IACV,SAAS;KACP,UAAU;KACV,aAAa;KACb,SAAS,EAAE,SAAS,OAAO;KAC3B,WAAW;MACT,UAAU;MACV,uBAAuB;MACvB,yBAAyB;MAC1B;KACD,SAAS;KACT,6BAA6B;KAC7B,kBAAkB;KAClB,gBAAgB,EAAE,SAAS,OAAO;KAClC,4BAA4B;KAE5B,6BAA6B;KAC7B,uBAAuB;KACvB,sBAAsB;KACtB,aAAa,oBAAoB,OAAO;KACzC;IACM;IACP,WAAU;KACV;IACE;GACF"}
|
|
@@ -5,7 +5,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
5
5
|
//#region src/components/Input/Checkbox.tsx
|
|
6
6
|
const checkboxVariants = cva([
|
|
7
7
|
"appearance-none",
|
|
8
|
-
"pointer
|
|
8
|
+
"relative cursor-pointer border-2",
|
|
9
9
|
"focus:outline-0",
|
|
10
10
|
"checked:border-current checked:bg-current checked:hover:bg-current/80",
|
|
11
11
|
"ring-current/20 ring-offset-current",
|
|
@@ -15,7 +15,8 @@ const checkboxVariants = cva([
|
|
|
15
15
|
"checked:before:absolute checked:before:inset-0 checked:before:content-['✓']",
|
|
16
16
|
"checked:before:flex checked:before:items-center checked:before:justify-center",
|
|
17
17
|
"checked:before:text-text-opposite/80",
|
|
18
|
-
"rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl"
|
|
18
|
+
"rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl",
|
|
19
|
+
"after:absolute after:-inset-2 after:content-['']"
|
|
19
20
|
].join(" "), {
|
|
20
21
|
variants: {
|
|
21
22
|
variant: { default: "" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.mjs","names":[],"sources":["../../../../src/components/Input/Checkbox.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type {\n DetailedHTMLProps,\n FC,\n InputHTMLAttributes,\n ReactNode,\n} from 'react';\n\nexport const checkboxVariants = cva(\n [\n 'appearance-none',\n 'pointer
|
|
1
|
+
{"version":3,"file":"Checkbox.mjs","names":[],"sources":["../../../../src/components/Input/Checkbox.tsx"],"sourcesContent":["import { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport type {\n DetailedHTMLProps,\n FC,\n InputHTMLAttributes,\n ReactNode,\n} from 'react';\n\nexport const checkboxVariants = cva(\n [\n 'appearance-none',\n 'relative cursor-pointer border-2',\n 'focus:outline-0',\n 'checked:border-current checked:bg-current checked:hover:bg-current/80',\n 'ring-current/20 ring-offset-current',\n 'hover:bg-current/20',\n 'disabled:opacity-50',\n\n // Ring + animation\n 'ring-0 transition-all duration-300 ease-in-out hover:ring-4 focus-visible:ring-6',\n\n // centered custom checkmark with text-opposite color\n \"checked:before:absolute checked:before:inset-0 checked:before:content-['✓']\",\n 'checked:before:flex checked:before:items-center checked:before:justify-center',\n 'checked:before:text-text-opposite/80',\n\n // Corner shape\n 'rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl',\n\n // --- FIX START ---\n // Invisible Hit Area Expansion\n // extends the interaction zone by 0.5rem (8px) on all sides\n \"after:absolute after:-inset-2 after:content-['']\",\n // --- FIX END ---\n ].join(' '),\n {\n variants: {\n variant: {\n default: '',\n },\n size: {\n sm: 'size-4 rounded-md',\n md: 'size-5 rounded-lg',\n lg: 'size-6 rounded-xl',\n },\n color: {\n primary: 'accent-primary',\n secondary: 'accent-secondary',\n destructive: 'accent-destructive',\n neutral: 'accent-neutral',\n light: 'accent-light',\n text: 'accent-text',\n dark: 'accent-dark',\n error: 'accent-error',\n success: 'accent-success',\n custom: 'accent-custom',\n },\n validationStyleEnabled: {\n disabled: '',\n enabled: 'valid:border-success invalid:border-error',\n },\n },\n defaultVariants: {\n variant: 'default',\n color: 'primary',\n validationStyleEnabled: 'disabled',\n size: 'md',\n },\n }\n);\n\nexport enum CheckboxSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n}\n\nexport enum CheckboxColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n TEXT = 'text',\n DARK = 'dark',\n ERROR = 'error',\n SUCCESS = 'success',\n CUSTOM = 'custom',\n}\n\nexport type CheckboxProps = Omit<\n DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>,\n 'size'\n> & {\n name: string;\n validationStyleEnabled?: boolean;\n label?: ReactNode;\n} & Omit<\n VariantProps<typeof checkboxVariants>,\n 'validationStyleEnabled' | 'size' | 'color'\n > & {\n size?: CheckboxSize | `${CheckboxSize}`;\n color?: CheckboxColor | `${CheckboxColor}`;\n labelClassName?: string;\n };\n\nconst Input: FC<CheckboxProps> = ({\n validationStyleEnabled = false,\n label,\n size,\n color,\n name,\n variant,\n className,\n labelClassName,\n ...props\n}) => (\n <input\n type=\"checkbox\"\n className={cn(\n checkboxVariants({\n variant,\n size,\n color,\n validationStyleEnabled: validationStyleEnabled ? 'enabled' : 'disabled',\n }),\n className\n )}\n {...props}\n />\n);\n\nexport const Checkbox: FC<CheckboxProps> = (props) => {\n const { label, name, id } = props;\n\n return label ? (\n <label\n htmlFor={id ?? name}\n className={cn(\n 'flex w-full cursor-pointer items-center gap-x-4 font-medium text-sm',\n props.labelClassName\n )}\n >\n <Input id={id ?? name} {...props} />\n {label}\n </label>\n ) : (\n <Input id={id ?? name} {...props} />\n );\n};\n"],"mappings":";;;;;AASA,MAAa,mBAAmB,IAC9B;CACE;CACA;CACA;CACA;CACA;CACA;CACA;CAGA;CAGA;CACA;CACA;CAGA;CAKA;CAED,CAAC,KAAK,IAAI,EACX;CACE,UAAU;EACR,SAAS,EACP,SAAS,IACV;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL;EACD,OAAO;GACL,SAAS;GACT,WAAW;GACX,aAAa;GACb,SAAS;GACT,OAAO;GACP,MAAM;GACN,MAAM;GACN,OAAO;GACP,SAAS;GACT,QAAQ;GACT;EACD,wBAAwB;GACtB,UAAU;GACV,SAAS;GACV;EACF;CACD,iBAAiB;EACf,SAAS;EACT,OAAO;EACP,wBAAwB;EACxB,MAAM;EACP;CACF,CACF;AAED,IAAY,wDAAL;AACL;AACA;AACA;;;AAGF,IAAY,0DAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAmBF,MAAM,SAA4B,EAChC,yBAAyB,OACzB,OACA,MACA,OACA,MACA,SACA,WACA,gBACA,GAAG,YAEH,oBAAC;CACC,MAAK;CACL,WAAW,GACT,iBAAiB;EACf;EACA;EACA;EACA,wBAAwB,yBAAyB,YAAY;EAC9D,CAAC,EACF,UACD;CACD,GAAI;EACJ;AAGJ,MAAa,YAA+B,UAAU;CACpD,MAAM,EAAE,OAAO,MAAM,OAAO;AAE5B,QAAO,QACL,qBAAC;EACC,SAAS,MAAM;EACf,WAAW,GACT,uEACA,MAAM,eACP;aAED,oBAAC;GAAM,IAAI,MAAM;GAAM,GAAI;IAAS,EACnC;GACK,GAER,oBAAC;EAAM,IAAI,MAAM;EAAM,GAAI;GAAS"}
|
|
@@ -62,7 +62,7 @@ let LinkUnderlined = /* @__PURE__ */ function(LinkUnderlined$1) {
|
|
|
62
62
|
const linkVariants = cva("gap-3 transition-all duration-300 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50", {
|
|
63
63
|
variants: {
|
|
64
64
|
variant: {
|
|
65
|
-
[`${LinkVariant.DEFAULT}`]: "h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0 hover:underline",
|
|
65
|
+
[`${LinkVariant.DEFAULT}`]: "h-auto justify-start border-inherit bg-current/0 px-1 decoration-1 underline-offset-4 hover:bg-current/0 hover:underline",
|
|
66
66
|
[`${LinkVariant.INVISIBLE_LINK}`]: "h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0",
|
|
67
67
|
[`${LinkVariant.BUTTON}`]: "relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full bg-current text-center font-medium text-text ring-0 *:text-text-opposite hover:bg-current/90 hover:ring-5 aria-selected:ring-5",
|
|
68
68
|
[`${LinkVariant.BUTTON_OUTLINED}`]: "relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full border-[1.3px] border-current text-center font-medium text-text ring-0 *:text-text hover:bg-current/20 hover:ring-5 aria-selected:ring-5",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.mjs","names":[],"sources":["../../../../src/components/Link/Link.tsx"],"sourcesContent":["import { getLocalizedUrl } from '@intlayer/core';\nimport type { LocalesValues } from '@intlayer/types';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink, MoveRight } from 'lucide-react';\nimport {\n type AnchorHTMLAttributes,\n type DetailedHTMLProps,\n type FC,\n isValidElement,\n type ReactNode,\n} from 'react';\n\n/**\n * Visual style variants for Link component\n */\nexport enum LinkVariant {\n DEFAULT = 'default',\n INVISIBLE_LINK = 'invisible-link',\n BUTTON = 'button',\n BUTTON_OUTLINED = 'button-outlined',\n HOVERABLE = 'hoverable',\n}\n\n/**\n * Color theme variants for Link component\n */\nexport enum LinkColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n TEXT_INVERSE = 'text-inverse',\n ERROR = 'error',\n SUCCESS = 'success',\n CUSTOM = 'custom',\n}\n\nexport enum LinkRoundedSize {\n NONE = 'none',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n TWO_XL = '2xl',\n THREE_XL = '3xl',\n FULL = 'full',\n}\n\nexport enum LinkSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n CUSTOM = 'custom',\n}\n\nexport enum LinkUnderlined {\n DEFAULT = 'default',\n TRUE = 'true',\n FALSE = 'false',\n}\n\nexport const linkVariants = cva(\n 'gap-3 transition-all duration-300 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n [`${LinkVariant.DEFAULT}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0 hover:underline',\n [`${LinkVariant.INVISIBLE_LINK}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0',\n\n [`${LinkVariant.BUTTON}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full bg-current text-center font-medium text-text ring-0 *:text-text-opposite hover:bg-current/90 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.BUTTON_OUTLINED}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full border-[1.3px] border-current text-center font-medium text-text ring-0 *:text-text hover:bg-current/20 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.HOVERABLE}`]:\n 'block rounded-lg border-none bg-current/0 hover:bg-current/10 aria-[current]:bg-current/5',\n },\n roundedSize: {\n [`${LinkRoundedSize.NONE}`]: 'rounded-none',\n [`${LinkRoundedSize.SM}`]:\n 'rounded-lg [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-xl',\n [`${LinkRoundedSize.MD}`]:\n 'rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl',\n [`${LinkRoundedSize.LG}`]:\n 'rounded-2xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl',\n [`${LinkRoundedSize.XL}`]:\n 'rounded-3xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-4xl',\n [`${LinkRoundedSize.TWO_XL}`]:\n 'rounded-4xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[2.5rem]',\n [`${LinkRoundedSize.THREE_XL}`]:\n 'rounded-[2.5rem] [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[3rem]',\n [`${LinkRoundedSize.FULL}`]: 'rounded-full',\n },\n color: {\n [`${LinkColor.PRIMARY}`]: 'text-primary',\n [`${LinkColor.SECONDARY}`]: 'text-secondary',\n [`${LinkColor.DESTRUCTIVE}`]: 'text-destructive',\n [`${LinkColor.NEUTRAL}`]: 'text-neutral',\n [`${LinkColor.LIGHT}`]: 'text-white',\n [`${LinkColor.DARK}`]: 'text-neutral-800',\n [`${LinkColor.TEXT}`]: 'text-text',\n [`${LinkColor.TEXT_INVERSE}`]: 'text-text-opposite',\n [`${LinkColor.ERROR}`]: 'text-error',\n [`${LinkColor.SUCCESS}`]: 'text-success',\n [`${LinkColor.CUSTOM}`]: '',\n },\n size: {\n [`${LinkSize.SM}`]: 'text-sm',\n [`${LinkSize.MD}`]: 'text-base',\n [`${LinkSize.LG}`]: 'text-lg',\n [`${LinkSize.XL}`]: 'text-xl',\n [`${LinkSize.CUSTOM}`]: '',\n },\n underlined: {\n [LinkUnderlined.DEFAULT]: '',\n [LinkUnderlined.TRUE]: 'underline',\n [LinkUnderlined.FALSE]: 'no-underline',\n },\n },\n // Compound variants handle height and padding\n compoundVariants: [\n // ---------------------------------------------------------\n // FIX START: Correctly Handle Contrast for TEXT_INVERSE\n // ---------------------------------------------------------\n {\n // Filled Button + Inverse Color (e.g., White Button):\n // We DO NOT override parent text color (it must remain 'text-opposite' so bg-current is white).\n // We ONLY override children to be 'text-text' (Dark) so they show up on white.\n variant: LinkVariant.BUTTON,\n color: LinkColor.TEXT_INVERSE,\n class: '*:text-text',\n },\n {\n // Outlined Button + Inverse Color (e.g., White Border):\n // Parent is 'text-opposite' (Border is white).\n // Children must also be 'text-opposite' (White text) to show on dark background.\n variant: LinkVariant.BUTTON_OUTLINED,\n color: LinkColor.TEXT_INVERSE,\n class: 'text-text-opposite *:text-text-opposite',\n },\n\n // Min height and padding for button variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.SM,\n class: 'min-h-7 px-3 max-md:py-1',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.MD,\n class: 'min-h-8 px-6 max-md:py-2',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.LG,\n class: 'min-h-10 px-8 max-md:py-3',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.XL,\n class: 'min-h-11 px-10 max-md:py-4',\n },\n // Ring color variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.PRIMARY,\n class: 'ring-primary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SECONDARY,\n class: 'ring-secondary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DESTRUCTIVE,\n class: 'ring-destructive/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.NEUTRAL,\n class: 'ring-neutral/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.LIGHT,\n class: 'ring-white/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DARK,\n class: 'ring-neutral-800/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT,\n class: 'ring-text/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT_INVERSE,\n class: 'ring-text-opposite/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.ERROR,\n class: 'ring-error/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SUCCESS,\n class: 'ring-success/20',\n },\n ],\n\n defaultVariants: {\n variant: LinkVariant.DEFAULT,\n color: LinkColor.PRIMARY,\n roundedSize: LinkRoundedSize.MD,\n underlined: LinkUnderlined.DEFAULT,\n size: LinkSize.MD,\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isPageSection?: boolean;\n isActive?: boolean;\n locale?: LocalesValues;\n };\n\nexport const checkIsExternalLink = ({\n href,\n isExternalLink: isExternalLinkProp,\n}: LinkProps): boolean => {\n const isValidHref = typeof href === 'string' && href.trim() !== '';\n const isExternalLink =\n isExternalLinkProp === true ||\n (typeof isExternalLinkProp === 'undefined' &&\n isValidHref &&\n /^https?:\\/\\//.test(href));\n\n return isExternalLink;\n};\n\nexport const isTextChildren = (children: ReactNode): boolean => {\n if (typeof children === 'string' || typeof children === 'number') {\n return true;\n }\n if (Array.isArray(children)) {\n return children.every(isTextChildren);\n }\n if (isValidElement(children)) {\n return isTextChildren(\n (children.props as { children?: ReactNode }).children\n );\n }\n return false;\n};\n\nexport const Link: FC<LinkProps> = (props) => {\n const {\n variant = LinkVariant.DEFAULT,\n color = LinkColor.PRIMARY,\n roundedSize,\n children,\n label,\n className,\n isActive,\n underlined,\n locale,\n size,\n isExternalLink: isExternalLinkProp,\n isPageSection: isPageSectionProp,\n href: hrefProp,\n ...otherProps\n } = props;\n\n const isExternalLink = isExternalLinkProp ?? checkIsExternalLink(props);\n const isPageSection = isPageSectionProp ?? hrefProp?.startsWith('#') ?? false;\n\n const isChildrenString = isTextChildren(children);\n const isButton =\n variant === LinkVariant.BUTTON || variant === LinkVariant.BUTTON_OUTLINED;\n\n const rel = isExternalLink ? 'noopener noreferrer nofollow' : undefined;\n\n const target = isExternalLink ? '_blank' : '_self';\n\n const href =\n locale && hrefProp && !isExternalLink && !isPageSection\n ? getLocalizedUrl(hrefProp, locale)\n : hrefProp;\n\n return (\n <a\n href={href}\n aria-label={label}\n rel={rel}\n target={target}\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n linkVariants({\n variant,\n color,\n roundedSize,\n underlined,\n size,\n className,\n })\n )}\n {...otherProps}\n >\n {isButton && isChildrenString ? <span>{children}</span> : children}\n\n {isExternalLink && isChildrenString && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n {isPageSection && <MoveRight className=\"ml-2 inline-block size-4\" />}\n </a>\n );\n};\n"],"mappings":";;;;;;;;;;;AAgBA,IAAY,sDAAL;AACL;AACA;AACA;AACA;AACA;;;;;;AAMF,IAAY,kDAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGF,IAAY,8DAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGF,IAAY,gDAAL;AACL;AACA;AACA;AACA;AACA;;;AAGF,IAAY,4DAAL;AACL;AACA;AACA;;;AAGF,MAAa,eAAe,IAC1B,iHACA;CACE,UAAU;EACR,SAAS;IACN,GAAG,YAAY,YACd;IACD,GAAG,YAAY,mBACd;IAED,GAAG,YAAY,WACd;IAED,GAAG,YAAY,oBACd;IAED,GAAG,YAAY,cACd;GACH;EACD,aAAa;IACV,GAAG,gBAAgB,SAAS;IAC5B,GAAG,gBAAgB,OAClB;IACD,GAAG,gBAAgB,OAClB;IACD,GAAG,gBAAgB,OAClB;IACD,GAAG,gBAAgB,OAClB;IACD,GAAG,gBAAgB,WAClB;IACD,GAAG,gBAAgB,aAClB;IACD,GAAG,gBAAgB,SAAS;GAC9B;EACD,OAAO;IACJ,GAAG,UAAU,YAAY;IACzB,GAAG,UAAU,cAAc;IAC3B,GAAG,UAAU,gBAAgB;IAC7B,GAAG,UAAU,YAAY;IACzB,GAAG,UAAU,UAAU;IACvB,GAAG,UAAU,SAAS;IACtB,GAAG,UAAU,SAAS;IACtB,GAAG,UAAU,iBAAiB;IAC9B,GAAG,UAAU,UAAU;IACvB,GAAG,UAAU,YAAY;IACzB,GAAG,UAAU,WAAW;GAC1B;EACD,MAAM;IACH,GAAG,SAAS,OAAO;IACnB,GAAG,SAAS,OAAO;IACnB,GAAG,SAAS,OAAO;IACnB,GAAG,SAAS,OAAO;IACnB,GAAG,SAAS,WAAW;GACzB;EACD,YAAY;IACT,eAAe,UAAU;IACzB,eAAe,OAAO;IACtB,eAAe,QAAQ;GACzB;EACF;CAED,kBAAkB;EAIhB;GAIE,SAAS,YAAY;GACrB,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GAIE,SAAS,YAAY;GACrB,OAAO,UAAU;GACjB,OAAO;GACR;EAGD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,MAAM,SAAS;GACf,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,MAAM,SAAS;GACf,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,MAAM,SAAS;GACf,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,MAAM,SAAS;GACf,OAAO;GACR;EAED;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACD;GACE,SAAS,CAAC,YAAY,QAAQ,YAAY,gBAAgB;GAC1D,OAAO,UAAU;GACjB,OAAO;GACR;EACF;CAED,iBAAiB;EACf,SAAS,YAAY;EACrB,OAAO,UAAU;EACjB,aAAa,gBAAgB;EAC7B,YAAY,eAAe;EAC3B,MAAM,SAAS;EAChB;CACF,CACF;AAcD,MAAa,uBAAuB,EAClC,MACA,gBAAgB,yBACQ;CACxB,MAAM,cAAc,OAAO,SAAS,YAAY,KAAK,MAAM,KAAK;AAOhE,QALE,uBAAuB,QACtB,OAAO,uBAAuB,eAC7B,eACA,eAAe,KAAK,KAAK;;AAK/B,MAAa,kBAAkB,aAAiC;AAC9D,KAAI,OAAO,aAAa,YAAY,OAAO,aAAa,SACtD,QAAO;AAET,KAAI,MAAM,QAAQ,SAAS,CACzB,QAAO,SAAS,MAAM,eAAe;AAEvC,KAAI,eAAe,SAAS,CAC1B,QAAO,eACJ,SAAS,MAAmC,SAC9C;AAEH,QAAO;;AAGT,MAAa,QAAuB,UAAU;CAC5C,MAAM,EACJ,UAAU,YAAY,SACtB,QAAQ,UAAU,SAClB,aACA,UACA,OACA,WACA,UACA,YACA,QACA,MACA,gBAAgB,oBAChB,eAAe,mBACf,MAAM,UACN,GAAG,eACD;CAEJ,MAAM,iBAAiB,sBAAsB,oBAAoB,MAAM;CACvE,MAAM,gBAAgB,qBAAqB,UAAU,WAAW,IAAI,IAAI;CAExE,MAAM,mBAAmB,eAAe,SAAS;CACjD,MAAM,WACJ,YAAY,YAAY,UAAU,YAAY,YAAY;CAE5D,MAAM,MAAM,iBAAiB,iCAAiC;CAE9D,MAAM,SAAS,iBAAiB,WAAW;AAO3C,QACE,qBAAC;EACC,MANF,UAAU,YAAY,CAAC,kBAAkB,CAAC,gBACtC,gBAAgB,UAAU,OAAO,GACjC;EAKF,cAAY;EACP;EACG;EACR,gBAAc,WAAW,SAAS;EAClC,WAAW,GACT,aAAa;GACX;GACA;GACA;GACA;GACA;GACA;GACD,CAAC,CACH;EACD,GAAI;;GAEH,YAAY,mBAAmB,oBAAC,UAAM,WAAgB,GAAG;GAEzD,kBAAkB,oBACjB,oBAAC,gBAAa,WAAU,6BAA6B;GAEtD,iBAAiB,oBAAC,aAAU,WAAU,6BAA6B;;GAClE"}
|
|
1
|
+
{"version":3,"file":"Link.mjs","names":[],"sources":["../../../../src/components/Link/Link.tsx"],"sourcesContent":["import { getLocalizedUrl } from '@intlayer/core';\nimport type { LocalesValues } from '@intlayer/types';\nimport { cn } from '@utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { ExternalLink, MoveRight } from 'lucide-react';\nimport {\n type AnchorHTMLAttributes,\n type DetailedHTMLProps,\n type FC,\n isValidElement,\n type ReactNode,\n} from 'react';\n\n/**\n * Visual style variants for Link component\n */\nexport enum LinkVariant {\n DEFAULT = 'default',\n INVISIBLE_LINK = 'invisible-link',\n BUTTON = 'button',\n BUTTON_OUTLINED = 'button-outlined',\n HOVERABLE = 'hoverable',\n}\n\n/**\n * Color theme variants for Link component\n */\nexport enum LinkColor {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n DESTRUCTIVE = 'destructive',\n NEUTRAL = 'neutral',\n LIGHT = 'light',\n DARK = 'dark',\n TEXT = 'text',\n TEXT_INVERSE = 'text-inverse',\n ERROR = 'error',\n SUCCESS = 'success',\n CUSTOM = 'custom',\n}\n\nexport enum LinkRoundedSize {\n NONE = 'none',\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n TWO_XL = '2xl',\n THREE_XL = '3xl',\n FULL = 'full',\n}\n\nexport enum LinkSize {\n SM = 'sm',\n MD = 'md',\n LG = 'lg',\n XL = 'xl',\n CUSTOM = 'custom',\n}\n\nexport enum LinkUnderlined {\n DEFAULT = 'default',\n TRUE = 'true',\n FALSE = 'false',\n}\n\nexport const linkVariants = cva(\n 'gap-3 transition-all duration-300 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n [`${LinkVariant.DEFAULT}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 decoration-1 underline-offset-4 hover:bg-current/0 hover:underline',\n [`${LinkVariant.INVISIBLE_LINK}`]:\n 'h-auto justify-start border-inherit bg-current/0 px-1 underline-offset-4 hover:bg-current/0',\n\n [`${LinkVariant.BUTTON}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full bg-current text-center font-medium text-text ring-0 *:text-text-opposite hover:bg-current/90 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.BUTTON_OUTLINED}`]:\n 'relative flex cursor-pointer flex-row items-center justify-center gap-2 rounded-full border-[1.3px] border-current text-center font-medium text-text ring-0 *:text-text hover:bg-current/20 hover:ring-5 aria-selected:ring-5',\n\n [`${LinkVariant.HOVERABLE}`]:\n 'block rounded-lg border-none bg-current/0 hover:bg-current/10 aria-[current]:bg-current/5',\n },\n roundedSize: {\n [`${LinkRoundedSize.NONE}`]: 'rounded-none',\n [`${LinkRoundedSize.SM}`]:\n 'rounded-lg [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-xl',\n [`${LinkRoundedSize.MD}`]:\n 'rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl',\n [`${LinkRoundedSize.LG}`]:\n 'rounded-2xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-3xl',\n [`${LinkRoundedSize.XL}`]:\n 'rounded-3xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-4xl',\n [`${LinkRoundedSize.TWO_XL}`]:\n 'rounded-4xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[2.5rem]',\n [`${LinkRoundedSize.THREE_XL}`]:\n 'rounded-[2.5rem] [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-[3rem]',\n [`${LinkRoundedSize.FULL}`]: 'rounded-full',\n },\n color: {\n [`${LinkColor.PRIMARY}`]: 'text-primary',\n [`${LinkColor.SECONDARY}`]: 'text-secondary',\n [`${LinkColor.DESTRUCTIVE}`]: 'text-destructive',\n [`${LinkColor.NEUTRAL}`]: 'text-neutral',\n [`${LinkColor.LIGHT}`]: 'text-white',\n [`${LinkColor.DARK}`]: 'text-neutral-800',\n [`${LinkColor.TEXT}`]: 'text-text',\n [`${LinkColor.TEXT_INVERSE}`]: 'text-text-opposite',\n [`${LinkColor.ERROR}`]: 'text-error',\n [`${LinkColor.SUCCESS}`]: 'text-success',\n [`${LinkColor.CUSTOM}`]: '',\n },\n size: {\n [`${LinkSize.SM}`]: 'text-sm',\n [`${LinkSize.MD}`]: 'text-base',\n [`${LinkSize.LG}`]: 'text-lg',\n [`${LinkSize.XL}`]: 'text-xl',\n [`${LinkSize.CUSTOM}`]: '',\n },\n underlined: {\n [LinkUnderlined.DEFAULT]: '',\n [LinkUnderlined.TRUE]: 'underline',\n [LinkUnderlined.FALSE]: 'no-underline',\n },\n },\n // Compound variants handle height and padding\n compoundVariants: [\n // ---------------------------------------------------------\n // FIX START: Correctly Handle Contrast for TEXT_INVERSE\n // ---------------------------------------------------------\n {\n // Filled Button + Inverse Color (e.g., White Button):\n // We DO NOT override parent text color (it must remain 'text-opposite' so bg-current is white).\n // We ONLY override children to be 'text-text' (Dark) so they show up on white.\n variant: LinkVariant.BUTTON,\n color: LinkColor.TEXT_INVERSE,\n class: '*:text-text',\n },\n {\n // Outlined Button + Inverse Color (e.g., White Border):\n // Parent is 'text-opposite' (Border is white).\n // Children must also be 'text-opposite' (White text) to show on dark background.\n variant: LinkVariant.BUTTON_OUTLINED,\n color: LinkColor.TEXT_INVERSE,\n class: 'text-text-opposite *:text-text-opposite',\n },\n\n // Min height and padding for button variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.SM,\n class: 'min-h-7 px-3 max-md:py-1',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.MD,\n class: 'min-h-8 px-6 max-md:py-2',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.LG,\n class: 'min-h-10 px-8 max-md:py-3',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n size: LinkSize.XL,\n class: 'min-h-11 px-10 max-md:py-4',\n },\n // Ring color variants\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.PRIMARY,\n class: 'ring-primary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SECONDARY,\n class: 'ring-secondary/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DESTRUCTIVE,\n class: 'ring-destructive/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.NEUTRAL,\n class: 'ring-neutral/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.LIGHT,\n class: 'ring-white/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.DARK,\n class: 'ring-neutral-800/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT,\n class: 'ring-text/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.TEXT_INVERSE,\n class: 'ring-text-opposite/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.ERROR,\n class: 'ring-error/20',\n },\n {\n variant: [LinkVariant.BUTTON, LinkVariant.BUTTON_OUTLINED],\n color: LinkColor.SUCCESS,\n class: 'ring-success/20',\n },\n ],\n\n defaultVariants: {\n variant: LinkVariant.DEFAULT,\n color: LinkColor.PRIMARY,\n roundedSize: LinkRoundedSize.MD,\n underlined: LinkUnderlined.DEFAULT,\n size: LinkSize.MD,\n },\n }\n);\n\nexport type LinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n> &\n VariantProps<typeof linkVariants> & {\n label: string;\n isExternalLink?: boolean;\n isPageSection?: boolean;\n isActive?: boolean;\n locale?: LocalesValues;\n };\n\nexport const checkIsExternalLink = ({\n href,\n isExternalLink: isExternalLinkProp,\n}: LinkProps): boolean => {\n const isValidHref = typeof href === 'string' && href.trim() !== '';\n const isExternalLink =\n isExternalLinkProp === true ||\n (typeof isExternalLinkProp === 'undefined' &&\n isValidHref &&\n /^https?:\\/\\//.test(href));\n\n return isExternalLink;\n};\n\nexport const isTextChildren = (children: ReactNode): boolean => {\n if (typeof children === 'string' || typeof children === 'number') {\n return true;\n }\n if (Array.isArray(children)) {\n return children.every(isTextChildren);\n }\n if (isValidElement(children)) {\n return isTextChildren(\n (children.props as { children?: ReactNode }).children\n );\n }\n return false;\n};\n\nexport const Link: FC<LinkProps> = (props) => {\n const {\n variant = LinkVariant.DEFAULT,\n color = LinkColor.PRIMARY,\n roundedSize,\n children,\n label,\n className,\n isActive,\n underlined,\n locale,\n size,\n isExternalLink: isExternalLinkProp,\n isPageSection: isPageSectionProp,\n href: hrefProp,\n ...otherProps\n } = props;\n\n const isExternalLink = isExternalLinkProp ?? checkIsExternalLink(props);\n const isPageSection = isPageSectionProp ?? hrefProp?.startsWith('#') ?? false;\n\n const isChildrenString = isTextChildren(children);\n const isButton =\n variant === LinkVariant.BUTTON || variant === LinkVariant.BUTTON_OUTLINED;\n\n const rel = isExternalLink ? 'noopener noreferrer nofollow' : undefined;\n\n const target = isExternalLink ? '_blank' : '_self';\n\n const href =\n locale && hrefProp && !isExternalLink && !isPageSection\n ? getLocalizedUrl(hrefProp, locale)\n : hrefProp;\n\n return (\n <a\n href={href}\n aria-label={label}\n rel={rel}\n target={target}\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n linkVariants({\n variant,\n color,\n roundedSize,\n underlined,\n size,\n className,\n })\n )}\n {...otherProps}\n >\n {isButton && isChildrenString ? <span>{children}</span> : children}\n\n {isExternalLink && isChildrenString && (\n <ExternalLink className=\"ml-2 inline-block size-4\" />\n )}\n {isPageSection && <MoveRight className=\"ml-2 inline-block size-4\" />}\n </a>\n );\n};\n"],"mappings":"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"}
|
|
@@ -103,7 +103,7 @@ const LocaleSwitcherContent = ({ panelProps, isMultilingual = true }) => {
|
|
|
103
103
|
className: "max-h-[60vh] min-w-28",
|
|
104
104
|
separator: "y",
|
|
105
105
|
role: "listbox",
|
|
106
|
-
transparency: "
|
|
106
|
+
transparency: "xs",
|
|
107
107
|
border: true,
|
|
108
108
|
roundedSize: "2xl",
|
|
109
109
|
borderColor: "text",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleSwitcherContent.mjs","names":[],"sources":["../../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { usePersistedStore } from '@hooks/usePersistedStore';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport { Locales, type LocalesValues } from '@intlayer/types';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { type FC, useMemo, useRef, useState } from 'react';\nimport { useIntlayer, useLocale } from 'react-intlayer';\nimport {\n Button,\n ButtonColor,\n ButtonSize,\n ButtonTextAlign,\n ButtonVariant,\n} from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport {\n SwitchSelector,\n SwitchSelectorColor,\n SwitchSelectorSize,\n} from '../SwitchSelector';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: LocalesValues;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useIntlayer('locale-switcher-content');\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n // 1. Memoize the list construction so it doesn't rebuild every render\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n // 2. State for Search Query only (Source of Truth)\n const [searchQuery, setSearchQuery] = useState('');\n\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // 3. Memoize Fuse instance\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02,\n };\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n // 4. Derive results from Search Query\n const results = useMemo(() => {\n if (!searchQuery) {\n return multilingualAvailableLocales;\n }\n return fuse.search(searchQuery).map((result) => result.item);\n }, [searchQuery, multilingualAvailableLocales, fuse]);\n\n const handleClickLocale = (localeItem: LocalesValues) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div className=\"rounded-xl border border-text text-text transition-colors\">\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger\n identifier={DROPDOWN_IDENTIFIER}\n label={localeSwitcherLabel.value}\n className=\"p-0!\"\n roundedSize=\"3xl\"\n >\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe size={16} />\n </div>\n <MoveVertical className=\"self-center\" size={16} />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"right-0 left-auto\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[60vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"sm\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel.value}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={seeAllLocales} // Ensure this uses the persisted state\n onChange={handleSeeAllLocales}\n color={SwitchSelectorColor.TEXT}\n size={SwitchSelectorSize.SM}\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true.value,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false.value,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n aria-label={searchInput.ariaLabel.value}\n placeholder={searchInput.placeholder.value}\n // Update search query state directly\n onChange={(e) => setSearchQuery(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-y divide-dashed divide-text/20 overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n isFullWidth\n textAlign={ButtonTextAlign.LEFT}\n size={ButtonSize.SM}\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LocaleSwitcherContent.mjs","names":[],"sources":["../../../../src/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.tsx"],"sourcesContent":["'use client';\n\nimport { usePersistedStore } from '@hooks/usePersistedStore';\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport { Locales, type LocalesValues } from '@intlayer/types';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { Check, Globe, MoveVertical } from 'lucide-react';\nimport { type FC, useMemo, useRef, useState } from 'react';\nimport { useIntlayer, useLocale } from 'react-intlayer';\nimport {\n Button,\n ButtonColor,\n ButtonSize,\n ButtonTextAlign,\n ButtonVariant,\n} from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\nimport {\n SwitchSelector,\n SwitchSelectorColor,\n SwitchSelectorSize,\n} from '../SwitchSelector';\nimport { useLocaleSwitcherContent } from './LocaleSwitcherContentContext';\n\nexport type LocaleSwitcherContentProps = {\n panelProps?: Omit<PanelProps, 'identifier'>;\n isMultilingual?: boolean;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher-content';\n\ntype MultilingualAvailableLocales = {\n locale: LocalesValues;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcherContent: FC<LocaleSwitcherContentProps> = ({\n panelProps,\n isMultilingual = true,\n}) => {\n const {\n switchTo,\n searchInput,\n localeSwitcherLabel,\n languageListLabel,\n seeAllLocalesSwitch,\n } = useIntlayer('locale-switcher-content');\n const inputRef = useRef<HTMLInputElement>(null);\n const { locale } = useLocale();\n const { availableLocales, selectedLocales, setSelectedLocales } =\n useLocaleSwitcherContent();\n\n // 1. Memoize the list construction so it doesn't rebuild every render\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n availableLocales.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [availableLocales, locale]\n );\n\n // 2. State for Search Query only (Source of Truth)\n const [searchQuery, setSearchQuery] = useState('');\n\n const [seeAllLocales, setSeeAllLocales] = usePersistedStore(\n 'locale-content-selector-see-all-locales',\n false\n );\n\n // 3. Memoize Fuse instance\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02,\n };\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n // 4. Derive results from Search Query\n const results = useMemo(() => {\n if (!searchQuery) {\n return multilingualAvailableLocales;\n }\n return fuse.search(searchQuery).map((result) => result.item);\n }, [searchQuery, multilingualAvailableLocales, fuse]);\n\n const handleClickLocale = (localeItem: LocalesValues) => {\n if (isMultilingual) {\n if (selectedLocales.includes(localeItem)) {\n if (selectedLocales.length > 1) {\n setSelectedLocales((prev) => prev.filter((el) => el !== localeItem));\n }\n } else {\n setSelectedLocales((prev) => [...prev, localeItem]);\n }\n } else {\n setSelectedLocales([localeItem]);\n }\n };\n\n const handleSeeAllLocales = (value: boolean) => {\n setSeeAllLocales(value);\n\n if (value) {\n setSelectedLocales(availableLocales);\n } else {\n setSelectedLocales([locale]);\n }\n };\n\n return (\n <div className=\"rounded-xl border border-text text-text transition-colors\">\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger\n identifier={DROPDOWN_IDENTIFIER}\n label={localeSwitcherLabel.value}\n className=\"p-0!\"\n roundedSize=\"3xl\"\n >\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"px-2 py-1\">\n <Globe size={16} />\n </div>\n <MoveVertical className=\"self-center\" size={16} />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n className=\"right-0 left-auto\"\n {...panelProps}\n >\n <Container\n className=\"max-h-[60vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"xs\"\n border\n roundedSize=\"2xl\"\n borderColor=\"text\"\n aria-label={languageListLabel.value}\n >\n {isMultilingual && (\n <div className=\"m-auto p-2\">\n <SwitchSelector\n defaultValue={seeAllLocales} // Ensure this uses the persisted state\n onChange={handleSeeAllLocales}\n color={SwitchSelectorColor.TEXT}\n size={SwitchSelectorSize.SM}\n className=\"!w-60\"\n choices={[\n {\n content: seeAllLocalesSwitch.true.value,\n value: true,\n },\n {\n content: seeAllLocalesSwitch.false.value,\n value: false,\n },\n ]}\n />\n </div>\n )}\n\n {!(isMultilingual && seeAllLocales) && (\n <>\n <div className=\"p-3\">\n <Input\n type=\"search\"\n aria-label={searchInput.ariaLabel.value}\n placeholder={searchInput.placeholder.value}\n // Update search query state directly\n onChange={(e) => setSearchQuery(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-y divide-dashed divide-text/20 overflow-y-auto p-1\">\n {results.map(\n ({\n locale: localeItem,\n currentLocaleName,\n ownLocaleName,\n }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => handleClickLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? availableLocales).includes(\n localeItem\n )\n }\n isActive={selectedLocales.includes(localeItem)}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n isFullWidth\n textAlign={ButtonTextAlign.LEFT}\n size={ButtonSize.SM}\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n {isMultilingual && (\n <div className=\"w-4\">\n {selectedLocales.includes(localeItem) && (\n <Check className=\"size-full\" />\n )}\n </div>\n )}\n <div className=\"flex flex-1 flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n >\n {ownLocaleName}\n </span>\n <span className=\"text-neutral text-xs\">\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </>\n )}\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ const LocaleSwitcher = ({ locale, localeList, availableLocales, fullLocaleName =
|
|
|
78
78
|
className: "max-h-[80vh] min-w-28",
|
|
79
79
|
separator: "y",
|
|
80
80
|
role: "listbox",
|
|
81
|
-
transparency: "
|
|
81
|
+
transparency: "xs",
|
|
82
82
|
"aria-label": languageListLabel.value,
|
|
83
83
|
children: [/* @__PURE__ */ jsx("div", {
|
|
84
84
|
className: "p-3",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocaleSwitcher.mjs","names":[],"sources":["../../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport { type Locale, Locales } from '@intlayer/types';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { MoveVertical } from 'lucide-react';\nimport { type FC, useCallback, useMemo, useRef, useState } from 'react';\nimport { useIntlayer } from 'react-intlayer';\nimport { Button, ButtonColor, ButtonTextAlign, ButtonVariant } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\n\nexport type LocaleSwitcherProps = {\n locale?: Locale;\n localeList: Locale[];\n availableLocales?: Locale[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locale) => void;\n panelProps?: Omit<PanelProps, 'identifier'>;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\ntype MultilingualAvailableLocales = {\n locale: Locale;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n panelProps,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo, searchInput, languageListLabel } =\n useIntlayer('locale-switcher');\n const inputRef = useRef<HTMLInputElement>(null);\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n localeList.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [localeList, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"rounded-xl border border-text text-text transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"
|
|
1
|
+
{"version":3,"file":"LocaleSwitcher.mjs","names":[],"sources":["../../../../src/components/LocaleSwitcherDropDown/LocaleSwitcher.tsx"],"sourcesContent":["'use client';\n\nimport { getHTMLTextDir, getLocaleName } from '@intlayer/core';\nimport { type Locale, Locales } from '@intlayer/types';\nimport Fuse, { type IFuseOptions } from 'fuse.js';\nimport { MoveVertical } from 'lucide-react';\nimport { type FC, useCallback, useMemo, useRef, useState } from 'react';\nimport { useIntlayer } from 'react-intlayer';\nimport { Button, ButtonColor, ButtonTextAlign, ButtonVariant } from '../Button';\nimport { Container } from '../Container';\nimport { DropDown, type PanelProps } from '../DropDown';\nimport { Input } from '../Input';\n\nexport type LocaleSwitcherProps = {\n locale?: Locale;\n localeList: Locale[];\n availableLocales?: Locale[];\n fullLocaleName?: boolean;\n setLocale: (locale: Locale) => void;\n panelProps?: Omit<PanelProps, 'identifier'>;\n};\n\nconst DROPDOWN_IDENTIFIER = 'locale-switcher';\n\ntype MultilingualAvailableLocales = {\n locale: Locale;\n englishName: string;\n currentLocaleName: string;\n ownLocaleName: string;\n};\n\nexport const LocaleSwitcher: FC<LocaleSwitcherProps> = ({\n locale,\n localeList,\n availableLocales,\n fullLocaleName = true,\n setLocale,\n panelProps,\n}) => {\n let localeName = 'Select a locale';\n const { switchTo, searchInput, languageListLabel } =\n useIntlayer('locale-switcher');\n const inputRef = useRef<HTMLInputElement>(null);\n\n const multilingualAvailableLocales: MultilingualAvailableLocales[] = useMemo(\n () =>\n localeList.map((localeEl) => {\n const englishName = getLocaleName(localeEl, Locales.ENGLISH);\n const currentLocaleName = getLocaleName(localeEl, locale);\n const ownLocaleName = getLocaleName(localeEl);\n return {\n locale: localeEl,\n englishName,\n currentLocaleName,\n ownLocaleName,\n };\n }),\n [localeList, locale]\n );\n\n const [results, setResults] = useState<MultilingualAvailableLocales[]>(\n multilingualAvailableLocales\n );\n\n // Create a new Fuse instance with the options and documentation data\n const fuse = useMemo(() => {\n const fuseOptions: IFuseOptions<MultilingualAvailableLocales> = {\n keys: [\n { name: 'ownLocaleName', weight: 0.4 },\n { name: 'englishName', weight: 0.2 },\n { name: 'currentLocaleName', weight: 0.2 },\n { name: 'locale', weight: 0.2 },\n ],\n threshold: 0.02, // Defines how fuzzy the matching should be (lower is more strict)\n };\n\n return new Fuse(multilingualAvailableLocales, fuseOptions);\n }, [multilingualAvailableLocales]);\n\n const handleSearch = useCallback(\n (searchQuery: string) => {\n if (searchQuery) {\n // Perform search on every input change\n const searchResults = fuse\n .search(searchQuery)\n .map((result) => result.item);\n setResults(searchResults);\n } else {\n setResults(multilingualAvailableLocales);\n }\n },\n [fuse, multilingualAvailableLocales]\n );\n\n if (locale) {\n localeName = fullLocaleName ? getLocaleName(locale) : locale.toUpperCase();\n }\n\n return (\n <div\n className=\"rounded-xl border border-text text-text transition-colors\"\n aria-label={localeSwitcherLabel.value}\n >\n <DropDown identifier={DROPDOWN_IDENTIFIER}>\n <DropDown.Trigger identifier={DROPDOWN_IDENTIFIER}>\n <div className=\"flex w-full items-center justify-between\">\n <div className=\"text-nowrap px-2\">{localeName}</div>\n <MoveVertical className=\"w-5 self-center\" />\n </div>\n </DropDown.Trigger>\n\n <DropDown.Panel\n identifier={DROPDOWN_IDENTIFIER}\n isOverable\n isFocusable\n {...panelProps}\n >\n <Container\n className=\"max-h-[80vh] min-w-28\"\n separator=\"y\"\n role=\"listbox\"\n transparency=\"xs\"\n aria-label={languageListLabel.value}\n >\n <div className=\"p-3\">\n <Input\n type=\"search\"\n aria-label={searchInput.ariaLabel.value}\n placeholder={searchInput.placeholder.value}\n onChange={(e) => handleSearch(e.target.value)}\n ref={inputRef}\n />\n </div>\n <ol className=\"divide-y divide-dashed divide-text/20 overflow-y-auto p-1\">\n {results.map(\n ({ locale: localeItem, currentLocaleName, ownLocaleName }) => (\n <li className=\"px-1.5 py-1\" key={localeItem}>\n <Button\n onClick={() => setLocale(localeItem)}\n label={`${switchTo} ${currentLocaleName}`}\n disabled={\n !(availableLocales ?? localeList).includes(localeItem)\n }\n isActive={locale === localeItem}\n variant={ButtonVariant.HOVERABLE}\n color={ButtonColor.TEXT}\n isFullWidth\n textAlign={ButtonTextAlign.LEFT}\n >\n <div className=\"flex flex-row items-center justify-between gap-3 px-2 py-1\">\n <div className=\"flex flex-col text-nowrap\">\n <span\n dir={getHTMLTextDir(localeItem)}\n lang={localeItem}\n suppressHydrationWarning\n >\n {ownLocaleName}\n </span>\n <span\n className=\"text-neutral text-xs\"\n suppressHydrationWarning\n >\n {currentLocaleName}\n </span>\n </div>\n <span className=\"text-neutral text-sm\">\n {localeItem.toUpperCase()}\n </span>\n </div>\n </Button>\n </li>\n )\n )}\n </ol>\n </Container>\n </DropDown.Panel>\n </DropDown>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,MAAM,sBAAsB;AAS5B,MAAa,kBAA2C,EACtD,QACA,YACA,kBACA,iBAAiB,MACjB,WACA,iBACI;CACJ,IAAI,aAAa;CACjB,MAAM,EAAE,UAAU,aAAa,sBAC7B,YAAY,kBAAkB;CAChC,MAAM,WAAW,OAAyB,KAAK;CAE/C,MAAM,+BAA+D,cAEjE,WAAW,KAAK,aAAa;AAI3B,SAAO;GACL,QAAQ;GACR,aALkB,cAAc,UAAU,QAAQ,QAAQ;GAM1D,mBALwB,cAAc,UAAU,OAAO;GAMvD,eALoB,cAAc,SAAS;GAM5C;GACD,EACJ,CAAC,YAAY,OAAO,CACrB;CAED,MAAM,CAAC,SAAS,cAAc,SAC5B,6BACD;CAGD,MAAM,OAAO,cAAc;AAWzB,SAAO,IAAI,KAAK,8BAVgD;GAC9D,MAAM;IACJ;KAAE,MAAM;KAAiB,QAAQ;KAAK;IACtC;KAAE,MAAM;KAAe,QAAQ;KAAK;IACpC;KAAE,MAAM;KAAqB,QAAQ;KAAK;IAC1C;KAAE,MAAM;KAAU,QAAQ;KAAK;IAChC;GACD,WAAW;GACZ,CAEyD;IACzD,CAAC,6BAA6B,CAAC;CAElC,MAAM,eAAe,aAClB,gBAAwB;AACvB,MAAI,YAKF,YAHsB,KACnB,OAAO,YAAY,CACnB,KAAK,WAAW,OAAO,KAAK,CACN;MAEzB,YAAW,6BAA6B;IAG5C,CAAC,MAAM,6BAA6B,CACrC;AAED,KAAI,OACF,cAAa,iBAAiB,cAAc,OAAO,GAAG,OAAO,aAAa;AAG5E,QACE,oBAAC;EACC,WAAU;EACV,cAAY,oBAAoB;YAEhC,qBAAC;GAAS,YAAY;cACpB,oBAAC,SAAS;IAAQ,YAAY;cAC5B,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAI,WAAU;gBAAoB;OAAiB,EACpD,oBAAC,gBAAa,WAAU,oBAAoB;MACxC;KACW,EAEnB,oBAAC,SAAS;IACR,YAAY;IACZ;IACA;IACA,GAAI;cAEJ,qBAAC;KACC,WAAU;KACV,WAAU;KACV,MAAK;KACL,cAAa;KACb,cAAY,kBAAkB;gBAE9B,oBAAC;MAAI,WAAU;gBACb,oBAAC;OACC,MAAK;OACL,cAAY,YAAY,UAAU;OAClC,aAAa,YAAY,YAAY;OACrC,WAAW,MAAM,aAAa,EAAE,OAAO,MAAM;OAC7C,KAAK;QACL;OACE,EACN,oBAAC;MAAG,WAAU;gBACX,QAAQ,KACN,EAAE,QAAQ,YAAY,mBAAmB,oBACxC,oBAAC;OAAG,WAAU;iBACZ,oBAAC;QACC,eAAe,UAAU,WAAW;QACpC,OAAO,GAAG,SAAS,GAAG;QACtB,UACE,EAAE,oBAAoB,YAAY,SAAS,WAAW;QAExD,UAAU,WAAW;QACrB,SAAS,cAAc;QACvB,OAAO,YAAY;QACnB;QACA,WAAW,gBAAgB;kBAE3B,qBAAC;SAAI,WAAU;oBACb,qBAAC;UAAI,WAAU;qBACb,oBAAC;WACC,KAAK,eAAe,WAAW;WAC/B,MAAM;WACN;qBAEC;YACI,EACP,oBAAC;WACC,WAAU;WACV;qBAEC;YACI;WACH,EACN,oBAAC;UAAK,WAAU;oBACb,WAAW,aAAa;WACpB;UACH;SACC;SAjCsB,WAkC5B,CAER;OACE;MACK;KACG;IACR;GACP"}
|
|
@@ -6,7 +6,7 @@ import { Code } from "../IDE/Code.mjs";
|
|
|
6
6
|
import { TabProvider } from "../Tab/TabContext.mjs";
|
|
7
7
|
import { Tab } from "../Tab/Tab.mjs";
|
|
8
8
|
import { Table } from "../Table/Table.mjs";
|
|
9
|
-
import { MarkdownProcessor } from "./processor.mjs";
|
|
9
|
+
import { MarkdownProcessor } from "./processor-adapter.mjs";
|
|
10
10
|
import { jsx } from "react/jsx-runtime";
|
|
11
11
|
|
|
12
12
|
//#region src/components/MarkDownRender/MarkDownRender.tsx
|
|
@@ -267,8 +267,14 @@ const MarkdownRenderer = ({ children, isDarkMode, locale, options }) => {
|
|
|
267
267
|
className: cn("mx-6 mt-16 text-neutral", className),
|
|
268
268
|
...props
|
|
269
269
|
}),
|
|
270
|
-
Tabs: (props) => /* @__PURE__ */ jsx(Tab, {
|
|
271
|
-
|
|
270
|
+
Tabs: (props) => /* @__PURE__ */ jsx(Tab, {
|
|
271
|
+
...props,
|
|
272
|
+
headerClassName: "sticky top-36 z-10 bg-background/70 backdrop-blur"
|
|
273
|
+
}),
|
|
274
|
+
Tab: (props) => /* @__PURE__ */ jsx(Tab, {
|
|
275
|
+
...props,
|
|
276
|
+
headerClassName: "sticky top-36 z-10 bg-background/70 backdrop-blur"
|
|
277
|
+
}),
|
|
272
278
|
TabItem: (props) => /* @__PURE__ */ jsx(Tab.Item, { ...props }),
|
|
273
279
|
Columns: ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
274
280
|
className: cn("flex gap-4 max-md:flex-col", className),
|