@emiketic/lib-mantine 1.0.0 → 1.0.2

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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/ClientOnly/index.tsx","../src/components/ConfirmBar/index.tsx","../src/components/ContentLoader/index.tsx","../src/components/ImageInput/index.tsx","../src/components/Logo/index.tsx","../src/utils/colors.ts","../src/components/NativePDFViewer/index.tsx","../src/components/NoData/index.tsx","../src/components/PageContainer/index.tsx","../src/components/PhoneInput/index.tsx","../src/components/TextEditor/index.tsx","../src/components/ThemeToggle/index.tsx"],"sourcesContent":["export { default as ClientOnly } from './components/ClientOnly';\nexport { default as ConfirmBar } from './components/ConfirmBar';\nexport type { ConfirmBarProps } from './components/ConfirmBar/types';\nexport { default as ContentLoader } from './components/ContentLoader';\nexport type { ContentLoaderProps } from './components/ContentLoader/types';\nexport { default as ImageInput } from './components/ImageInput';\nexport type { ImageInputProps } from './components/ImageInput/types';\nexport { default as Logo } from './components/Logo';\nexport type { LogoProps } from './components/Logo/types';\nexport { default as NativePDFViewer } from './components/NativePDFViewer';\nexport type { NativePDFViewerProps } from './components/NativePDFViewer/types';\nexport { default as NoData } from './components/NoData';\nexport type { NoDataProps } from './components/NoData/types';\nexport { default as PageContainer } from './components/PageContainer';\nexport type { PageContainerProps } from './components/PageContainer/types';\nexport { default as PhoneInput } from './components/PhoneInput';\nexport type { PhoneInputProps } from './components/PhoneInput/types';\nexport { default as TextEditor } from './components/TextEditor';\nexport type { TextEditorProps } from './components/TextEditor/types';\nexport { default as ThemeToggle } from './components/ThemeToggle';\nexport type { ThemeToggleProps } from './components/ThemeToggle/types';\n","import { ReactNode, useEffect, useState } from 'react';\n\nimport { LoadingOverlay } from '@mantine/core';\n\nexport default function ClientOnly({\n children,\n withLoader = false,\n ...delegated\n}: {\n children: ReactNode;\n withLoader?: boolean;\n}) {\n const [hasMounted, setHasMounted] = useState(false);\n\n useEffect(() => {\n setHasMounted(true);\n }, []);\n\n if (!hasMounted) {\n if (withLoader) {\n return <LoadingOverlay />;\n }\n return null;\n }\n\n return <div {...delegated}>{children}</div>;\n}\n","import { Box, Button, Group } from '@mantine/core';\n\nimport { ConfirmBarProps } from './types';\n\nfunction ConfirmBar({\n onConfirm = () => {},\n onCancel = () => {},\n disabled = false,\n loading = false,\n labelProps,\n color,\n withCancel = true,\n ...props\n}: ConfirmBarProps) {\n return (\n <Box {...props}>\n <Group h=\"100%\" justify=\"flex-end\" align=\"center\">\n {withCancel ? (\n <Button onClick={() => onCancel()} variant=\"subtle\">\n {labelProps?.cancel ?? 'Cancel'}\n </Button>\n ) : null}\n <Button\n onClick={() => onConfirm()}\n disabled={disabled}\n variant=\"filled\"\n loading={loading}\n color={color}\n >\n {labelProps?.confirm ?? 'Confirm'}\n </Button>\n </Group>\n </Box>\n );\n}\n\nexport default ConfirmBar;\n","import { Fragment } from 'react';\n\nimport { Skeleton, Space, Stack } from '@mantine/core';\n\nimport { ContentLoaderProps } from './types';\n\nfunction ContentLoader({\n numberOfBars = 3,\n numberOfBarGroups = 3,\n barHeight = 15,\n barSpacing = 6,\n barGroupSpacing = 'lg',\n visible = true,\n withCircle = false,\n ...props\n}: ContentLoaderProps) {\n if (!visible) {\n return null;\n }\n\n return (\n <Stack gap=\"sm\" px=\"5rem\" py=\"md\" {...props}>\n {withCircle ? <Skeleton height={70} circle mb=\"xl\" /> : null}\n {Array.from({ length: numberOfBarGroups }).map((_, index) => (\n <Fragment key={index}>\n {Array.from({ length: Math.ceil(numberOfBars / numberOfBarGroups) }).map((_, index) => (\n <Fragment key={index}>\n <Skeleton height={barHeight} radius=\"xl\" />\n <Skeleton height={barHeight} mt={barSpacing} radius=\"xl\" />\n <Skeleton height={barHeight} mt={barSpacing} width=\"70%\" radius=\"xl\" />\n </Fragment>\n ))}\n <Space h={barGroupSpacing} />\n </Fragment>\n ))}\n </Stack>\n );\n}\n\nexport default ContentLoader;\n","import { useEffect, useState } from 'react';\n\nimport { ActionIcon, Avatar, FileInput, Group, Image, Paper } from '@mantine/core';\n\nimport { IconUpload } from '@tabler/icons-react';\n\nimport { ImageInputProps } from './types';\n\nconst DEFAULT_MAX_FILE_SIZE_BYTES = 500_000;\n\nconst isClient = () => typeof window !== 'undefined';\n\nfunction ImageInput({\n value,\n withPreview = true,\n maxFileSizeBytes = DEFAULT_MAX_FILE_SIZE_BYTES,\n ...props\n}: ImageInputProps) {\n const [imageUrl, setImageUrl] = useState<string | File | null>(null);\n\n const largeFile =\n isClient() && value && value instanceof File && value.size >= maxFileSizeBytes;\n\n const isFileValue = isClient() && value instanceof File;\n const isString = typeof value == 'string';\n\n useEffect(() => {\n if (isFileValue) {\n setImageUrl(URL.createObjectURL(value as File));\n } else if (isString) {\n setImageUrl(value);\n }\n }, [value, isFileValue, isString]);\n\n if (props.disabled && !isFileValue) {\n return (\n <Avatar\n size=\"xl\"\n src={imageUrl as string | undefined | null}\n {...props.disabledPlaceholderProps}\n />\n );\n }\n\n return (\n <Group>\n {withPreview && (\n <Paper radius=\"md\" p=\"sm\" withBorder>\n <Image\n w=\"5rem\"\n h=\"5rem\"\n fit=\"contain\"\n radius=\"sm\"\n src={imageUrl}\n {...props.previewProps}\n />\n </Paper>\n )}\n <FileInput\n styles={{ input: { fontSize: 'var(--mantine-font-size-xs)' } }}\n leftSection={\n <ActionIcon variant=\"light\" size=\"xs\" color=\"gray\">\n <IconUpload />\n </ActionIcon>\n }\n placeholder=\"Upload\"\n error={\n largeFile\n ? `File size must be under ${maxFileSizeBytes / 1000} KB`\n : undefined\n }\n onChange={(file) => {\n props.onChange?.(file);\n if (file) {\n setImageUrl(URL.createObjectURL(file));\n }\n }}\n {...props}\n />\n </Group>\n );\n}\n\nexport default ImageInput;\n","import { useEffect, useState } from 'react';\n\nimport { Avatar, ThemeIcon } from '@mantine/core';\n\nimport { getDominantColorFromImageUrl } from '../../utils/colors';\n\nimport { IconBuildingSkyscraper as IconFallback } from '@tabler/icons-react';\n\nimport { LogoProps } from './types';\n\nfunction Logo({ withColorPair = true, ...props }: LogoProps) {\n const [logoColorPair, setLogoColorPair] = useState<{ dominant: string; background: string }>({\n dominant: '#000000',\n background: '#ffffff',\n });\n\n useEffect(() => {\n let isMounted = true;\n\n if (props.src && withColorPair) {\n getDominantColorFromImageUrl(props.src).then(({ dominant, background }) => {\n if (isMounted) {\n setLogoColorPair({ dominant, background });\n }\n });\n } else if (isMounted) {\n setLogoColorPair({ dominant: '#000000', background: '#ffffff' });\n }\n\n return () => {\n isMounted = false;\n };\n }, [props.src, withColorPair]);\n\n return (\n <Avatar\n size=\"5rem\"\n radius=\"lg\"\n p=\"0.125rem\"\n bg={withColorPair ? logoColorPair.background : undefined}\n styles={{\n image: {\n objectFit: 'contain',\n objectPosition: 'center',\n },\n }}\n imageProps={{ referrerPolicy: 'no-referrer' }}\n {...props}\n >\n <ThemeIcon variant=\"transparent\" size=\"5rem\">\n <IconFallback size={48 * 1.5} stroke={1} />\n </ThemeIcon>\n </Avatar>\n );\n}\n\nexport default Logo;\n","import chroma from 'chroma-js';\nimport { darken, isLightColor, lighten } from '@mantine/core';\n\nexport function getPrimaryShadeColor(color: string): string {\n return chroma(color).set('hsl.s', 1).set('hsl.l', 0.55).hex();\n}\n\nexport function getBackgroundColor(\n color: string | undefined | null = '#ffffff',\n darkenAmount = 0.3,\n lightenAmount = 0.8,\n): string {\n if (!color) return '#000000';\n const darkerColor = darken(getPrimaryShadeColor(color), darkenAmount);\n const lightColor = lighten(getPrimaryShadeColor(color), lightenAmount);\n const inputLuminance = chroma(color).luminance();\n\n if (inputLuminance > 0.9) return darkerColor;\n if (inputLuminance < 0.15) return lightColor;\n\n const contrastLight = chroma.contrast(color, lightColor);\n const contrastDark = chroma.contrast(color, darkerColor);\n return contrastLight > contrastDark ? lightColor : darkerColor;\n}\n\nfunction loadImage(imageUrl: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const image = new Image();\n image.crossOrigin = 'anonymous';\n image.referrerPolicy = 'no-referrer';\n image.onload = () => resolve(image);\n image.onerror = () => reject(new Error('Could not load image for color extraction'));\n image.src = imageUrl;\n });\n}\n\nfunction quantizeChannel(value: number): number {\n return Math.round(value / 16) * 16;\n}\n\nfunction extractQuantizedPixels(imageData: Uint8ClampedArray): string[] {\n const colors: string[] = [];\n for (let index = 0; index < imageData.length; index += 4) {\n const alpha = imageData[index + 3] ?? 0;\n if (alpha < 16) continue;\n const red = quantizeChannel(imageData[index] ?? 0);\n const green = quantizeChannel(imageData[index + 1] ?? 0);\n const blue = quantizeChannel(imageData[index + 2] ?? 0);\n colors.push(chroma(red, green, blue).hex());\n }\n return colors;\n}\n\nfunction extractEdgeQuantizedPixels(\n imageData: Uint8ClampedArray,\n width: number,\n height: number,\n): string[] {\n const edgeColors: string[] = [];\n const edgeThickness = Math.max(1, Math.floor(Math.min(width, height) * 0.1));\n\n for (let y = 0; y < height; y += 1) {\n for (let x = 0; x < width; x += 1) {\n const isEdge =\n x < edgeThickness ||\n x >= width - edgeThickness ||\n y < edgeThickness ||\n y >= height - edgeThickness;\n if (!isEdge) continue;\n\n const pixelIndex = (y * width + x) * 4;\n const alpha = imageData[pixelIndex + 3] ?? 0;\n if (alpha < 16) continue;\n\n const red = quantizeChannel(imageData[pixelIndex] ?? 0);\n const green = quantizeChannel(imageData[pixelIndex + 1] ?? 0);\n const blue = quantizeChannel(imageData[pixelIndex + 2] ?? 0);\n edgeColors.push(chroma(red, green, blue).hex());\n }\n }\n return edgeColors;\n}\n\nfunction getMostFrequentColor(colors: string[]): string | null {\n if (colors.length === 0) return null;\n const frequencies = new Map<string, number>();\n for (const color of colors) {\n frequencies.set(color, (frequencies.get(color) ?? 0) + 1);\n }\n let selectedColor: string | null = null;\n let selectedCount = 0;\n for (const [color, count] of frequencies.entries()) {\n if (count > selectedCount) {\n selectedColor = color;\n selectedCount = count;\n }\n }\n return selectedColor;\n}\n\nexport const getDominantColorFromImageUrl = async (\n imageUrl: string,\n fallbackDominantColor = '#000000',\n fallbackBackgroundColor = '#ffffff',\n): Promise<{ dominant: string; background: string }> => {\n try {\n const image = await loadImage(imageUrl);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d', { willReadFrequently: true });\n\n if (!context) {\n return { dominant: fallbackDominantColor, background: fallbackBackgroundColor };\n }\n\n const maxSize = 96;\n const ratio = Math.min(maxSize / image.naturalWidth, maxSize / image.naturalHeight, 1);\n canvas.width = Math.max(1, Math.round(image.naturalWidth * ratio));\n canvas.height = Math.max(1, Math.round(image.naturalHeight * ratio));\n\n context.drawImage(image, 0, 0, canvas.width, canvas.height);\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height).data;\n\n const allPixels = extractQuantizedPixels(imageData);\n const edgePixels = extractEdgeQuantizedPixels(imageData, canvas.width, canvas.height);\n\n const background = getMostFrequentColor(edgePixels) ?? getMostFrequentColor(allPixels);\n const dominant =\n getMostFrequentColor(\n background\n ? allPixels.filter((hex) => chroma.distance(hex, background, 'rgb') > 28)\n : allPixels,\n ) ?? getMostFrequentColor(allPixels);\n\n return {\n dominant: dominant ?? fallbackDominantColor,\n background: background ?? fallbackBackgroundColor,\n };\n } catch {\n return { dominant: fallbackDominantColor, background: fallbackBackgroundColor };\n }\n};\n","import { useState } from 'react';\n\nimport { Box, Center, Loader } from '@mantine/core';\n\nimport { NativePDFViewerProps } from './types';\n\nfunction getBrowser() {\n const { userAgent } = navigator;\n const isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\n const isEdge = /Edg\\//.test(userAgent);\n const isFirefox = /Firefox\\//.test(userAgent);\n const isChromium = /Chrome\\/|CriOS\\//.test(userAgent) && !isEdge;\n\n if (isSafari) return 'Safari';\n if (isEdge) return 'Edge';\n if (isFirefox) return 'Firefox';\n if (isChromium) return 'Chromium';\n return 'Unknown';\n}\n\nexport default function NativePDFViewer({\n mediaUrl,\n title,\n zoomLevel,\n withToolbar = true,\n fallback = 'Cannot display PDF on this browser. Use a different browser or download the PDF.',\n}: NativePDFViewerProps) {\n const [loading, setLoading] = useState<boolean>(false);\n\n const toolbarHeight = {\n Safari: 0,\n Edge: 40,\n Firefox: 32,\n Chromium: 58,\n Unknown: 58,\n }[getBrowser()];\n\n let optionsString = '';\n if (zoomLevel) {\n optionsString += `#zoom=${zoomLevel}%`;\n }\n if (!withToolbar) {\n optionsString = '#toolbar=0';\n }\n\n const renderFallback = () => (typeof fallback === 'function' ? fallback() : fallback);\n\n if (!mediaUrl) {\n return null;\n }\n\n return (\n <Box\n w=\"100%\"\n h={toolbarHeight ? `calc(100% + ${toolbarHeight}px)` : '100%'}\n style={{\n transform: toolbarHeight ? `translateY(-${toolbarHeight}px)` : undefined,\n }}\n >\n {loading ? (\n <Center h=\"100%\" w=\"100%\">\n <Loader size=\"xl\" />\n </Center>\n ) : null}\n <object\n data={`${mediaUrl}${optionsString}`}\n type=\"application/pdf\"\n width=\"100%\"\n height=\"100%\"\n onLoad={() => setLoading(false)}\n onError={() => setLoading(false)}\n >\n <Box>{renderFallback()}</Box>\n </object>\n </Box>\n );\n}\n","import { Alert, Center } from '@mantine/core';\n\nimport { NoDataProps } from './types';\n\nfunction NoData({ title, children, alertProps, ...props }: NoDataProps) {\n return (\n <Center h=\"100%\" {...props}>\n <Alert p=\"3rem\" title={title ?? 'No data'} {...alertProps}>\n <Center>{children}</Center>\n </Alert>\n </Center>\n );\n}\n\nexport default NoData;\n","import { Box, Container, Group, ScrollArea, Stack, Title } from '@mantine/core';\n\nimport { PageContainerProps } from './types';\n\nfunction PageContainer({\n children,\n title,\n titleProps,\n header,\n headerProps,\n rightSection = null,\n contentProps,\n outerContentProps,\n fullPage = false,\n withContentScroll = false,\n ...props\n}: PageContainerProps) {\n function getTitle() {\n if (title) {\n return (\n <Title order={2} {...titleProps}>\n {title}\n </Title>\n );\n }\n return null;\n }\n\n function getHeader() {\n if (header) {\n return header;\n }\n return (\n <Group justify=\"space-between\" w=\"100%\" {...headerProps}>\n {getTitle()}\n {rightSection}\n </Group>\n );\n }\n\n function getContent() {\n if (fullPage) {\n return <Box {...contentProps}>{children}</Box>;\n }\n return (\n <Stack gap=\"xl\" {...outerContentProps}>\n {getHeader()}\n <Stack px=\"xl\" py=\"lg\" h=\"100%\" w=\"100%\" {...contentProps}>\n {children}\n </Stack>\n </Stack>\n );\n }\n\n if (withContentScroll) {\n return (\n <ScrollArea h=\"100vh\" p={0} {...props}>\n <Container fluid>{getContent()}</Container>\n </ScrollArea>\n );\n }\n\n return (\n <Container p={0} w=\"100%\" fluid>\n {getContent()}\n </Container>\n );\n}\n\nexport default PageContainer;\n","import { useEffect, useState } from 'react';\n\nimport { getCountryData, getEmojiFlag, TCountryCode } from 'countries-list';\nimport parsePhoneNumber, {\n CountryCode,\n getCountries,\n getCountryCallingCode,\n} from 'libphonenumber-js';\n\nimport { Group, Select, TextInput } from '@mantine/core';\n\nimport { PhoneInputProps } from './types';\n\nconst COUNTRY_CODES = getCountries();\n\nfunction PhoneInput({ value, defaultValue, defaultCountryCode, ...props }: PhoneInputProps) {\n const valueNumber = value ?? '';\n const valueNumberData = parsePhoneNumber(valueNumber);\n let valueNumberCountryCode: string | undefined;\n if (valueNumberData?.isValid()) {\n valueNumberCountryCode = valueNumberData.country;\n }\n\n const [selectedCountryCode, setSelectedCountryCode] = useState<CountryCode | undefined>(\n defaultCountryCode,\n );\n const selectedCountryCodeCallingNumber = selectedCountryCode\n ? getCountryCallingCode(selectedCountryCode)\n : undefined;\n\n useEffect(() => {\n if (selectedCountryCode && selectedCountryCode !== valueNumberCountryCode) {\n const code = selectedCountryCode ?? defaultCountryCode ?? '';\n const callingCode = getCountryCallingCode(code);\n if (props.onChange) {\n const numberUpdate = `+${callingCode}${valueNumber.replace(callingCode, '')}`;\n const numberUpdateData = parsePhoneNumber(numberUpdate, selectedCountryCode);\n if (numberUpdateData?.isValid()) {\n props.onChange(`+${callingCode}${valueNumber.replace(callingCode, '')}`);\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedCountryCode]);\n\n return (\n <Group wrap=\"nowrap\">\n <Select\n label=\"Country code\"\n size=\"sm\"\n classNames={{ ...props.classNames }}\n defaultValue={defaultCountryCode}\n value={valueNumberCountryCode}\n onChange={(c) => {\n if (c === null) {\n setSelectedCountryCode(undefined);\n } else {\n setSelectedCountryCode(c as CountryCode | undefined);\n }\n }}\n data={COUNTRY_CODES.map((code) => {\n const countryCallingCode = getCountryCallingCode(code);\n const countryName = getCountryData(code as TCountryCode).name;\n return {\n value: code,\n label: `${countryName} ${getEmojiFlag(code as TCountryCode)} +${countryCallingCode}`,\n };\n })}\n rightSection={props.disabled ? <></> : undefined}\n disabled={props.disabled}\n searchable\n />\n <TextInput\n {...props}\n defaultValue={valueNumberData?.nationalNumber}\n onChange={(e) => {\n if (props.onChange && selectedCountryCodeCallingNumber) {\n const numberUpdate = `+${selectedCountryCodeCallingNumber}${e.currentTarget.value.replace(selectedCountryCodeCallingNumber, '')}`;\n const numberUpdateData = parsePhoneNumber(numberUpdate, selectedCountryCode);\n if (numberUpdateData?.isValid()) {\n props.onChange(numberUpdateData.number);\n }\n }\n }}\n />\n </Group>\n );\n}\n\nexport default PhoneInput;\n","import { useEffect } from 'react';\n\nimport Highlight from '@tiptap/extension-highlight';\nimport SubScript from '@tiptap/extension-subscript';\nimport Superscript from '@tiptap/extension-superscript';\nimport TextAlign from '@tiptap/extension-text-align';\nimport Underline from '@tiptap/extension-underline';\nimport { useEditor } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\n\nimport { Link, RichTextEditor } from '@mantine/tiptap';\n\nimport { TextEditorProps } from './types';\n\nfunction TextEditor({\n content,\n value,\n onChangeEditorHTML = () => {},\n onChange = () => {},\n ...props\n}: TextEditorProps) {\n const editor = useEditor({\n editable: true,\n extensions: [\n StarterKit,\n Underline,\n Link,\n Superscript,\n SubScript,\n Highlight,\n TextAlign.configure({ types: ['heading', 'paragraph'] }),\n ],\n content,\n });\n\n useEffect(() => {\n onChangeEditorHTML(editor?.getHTML());\n onChange(editor?.getHTML());\n }, [editor?.state, editor, onChangeEditorHTML, onChange]);\n\n return (\n <RichTextEditor editor={editor} {...props}>\n <RichTextEditor.Toolbar sticky stickyOffset={60}>\n <RichTextEditor.ControlsGroup>\n <RichTextEditor.Bold />\n <RichTextEditor.Italic />\n <RichTextEditor.Underline />\n <RichTextEditor.Strikethrough />\n <RichTextEditor.ClearFormatting />\n <RichTextEditor.Highlight />\n <RichTextEditor.Code />\n </RichTextEditor.ControlsGroup>\n\n <RichTextEditor.ControlsGroup>\n <RichTextEditor.H1 />\n <RichTextEditor.H2 />\n <RichTextEditor.H3 />\n <RichTextEditor.H4 />\n </RichTextEditor.ControlsGroup>\n\n <RichTextEditor.ControlsGroup>\n <RichTextEditor.Blockquote />\n <RichTextEditor.Hr />\n <RichTextEditor.BulletList />\n <RichTextEditor.OrderedList />\n <RichTextEditor.Subscript />\n <RichTextEditor.Superscript />\n </RichTextEditor.ControlsGroup>\n\n <RichTextEditor.ControlsGroup>\n <RichTextEditor.Link />\n <RichTextEditor.Unlink />\n </RichTextEditor.ControlsGroup>\n\n <RichTextEditor.ControlsGroup>\n <RichTextEditor.AlignLeft />\n <RichTextEditor.AlignCenter />\n <RichTextEditor.AlignJustify />\n <RichTextEditor.AlignRight />\n </RichTextEditor.ControlsGroup>\n </RichTextEditor.Toolbar>\n\n <RichTextEditor.Content />\n </RichTextEditor>\n );\n}\n\nexport default TextEditor;\n","import {\n Switch,\n ThemeIcon,\n Tooltip,\n useComputedColorScheme,\n useMantineColorScheme,\n} from '@mantine/core';\n\nimport { IconMoon as IconSwitchDark, IconSun as IconSwitchLight } from '@tabler/icons-react';\n\nimport ClientOnly from '../ClientOnly';\n\nimport { ThemeToggleProps } from './types';\n\nfunction ThemeToggle({ ...props }: ThemeToggleProps) {\n const { setColorScheme } = useMantineColorScheme();\n const computedColorScheme = useComputedColorScheme('light', { getInitialValueInEffect: true });\n\n return (\n <Tooltip\n label={computedColorScheme === 'light' ? 'Switch to dark mode' : 'Switch to light mode'}\n position=\"bottom\"\n withinPortal\n >\n <ClientOnly>\n <Switch\n styles={{ track: { cursor: 'pointer' } }}\n defaultChecked={computedColorScheme === 'dark'}\n onChange={() => setColorScheme(computedColorScheme === 'light' ? 'dark' : 'light')}\n onLabel={\n <ThemeIcon size={props.size ?? 'sm'} variant=\"transparent\">\n <IconSwitchDark />\n </ThemeIcon>\n }\n offLabel={\n <ThemeIcon size={props.size ?? 'sm'} color=\"yellow\" variant=\"transparent\">\n <IconSwitchLight />\n </ThemeIcon>\n }\n color=\"dark\"\n size=\"md\"\n {...props}\n />\n </ClientOnly>\n </Tooltip>\n );\n}\n\nexport default ThemeToggle;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAA+C;AAE/C,kBAA+B;AAkBlB;AAhBE,SAAR,WAA4B;AAAA,EACjC;AAAA,EACA,aAAa;AAAA,EACb,GAAG;AACL,GAGG;AACD,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAElD,8BAAU,MAAM;AACd,kBAAc,IAAI;AAAA,EACpB,GAAG,CAAC,CAAC;AAEL,MAAI,CAAC,YAAY;AACf,QAAI,YAAY;AACd,aAAO,4CAAC,8BAAe;AAAA,IACzB;AACA,WAAO;AAAA,EACT;AAEA,SAAO,4CAAC,SAAK,GAAG,WAAY,UAAS;AACvC;;;AC1BA,IAAAA,eAAmC;AAgB7B,IAAAC,sBAAA;AAZN,SAAS,WAAW;AAAA,EAClB,YAAY,MAAM;AAAA,EAAC;AAAA,EACnB,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,WAAW;AAAA,EACX,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,GAAG;AACL,GAAoB;AAClB,SACE,6CAAC,oBAAK,GAAG,OACP,wDAAC,sBAAM,GAAE,QAAO,SAAQ,YAAW,OAAM,UACtC;AAAA,iBACC,6CAAC,uBAAO,SAAS,MAAM,SAAS,GAAG,SAAQ,UACxC,sBAAY,UAAU,UACzB,IACE;AAAA,IACJ;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,UAAU;AAAA,QACzB;AAAA,QACA,SAAQ;AAAA,QACR;AAAA,QACA;AAAA,QAEC,sBAAY,WAAW;AAAA;AAAA,IAC1B;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACpCf,IAAAC,gBAAyB;AAEzB,IAAAC,eAAuC;AAoBnB,IAAAC,sBAAA;AAhBpB,SAAS,cAAc;AAAA,EACrB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,aAAa;AAAA,EACb,GAAG;AACL,GAAuB;AACrB,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,SACE,8CAAC,sBAAM,KAAI,MAAK,IAAG,QAAO,IAAG,MAAM,GAAG,OACnC;AAAA,iBAAa,6CAAC,yBAAS,QAAQ,IAAI,QAAM,MAAC,IAAG,MAAK,IAAK;AAAA,IACvD,MAAM,KAAK,EAAE,QAAQ,kBAAkB,CAAC,EAAE,IAAI,CAAC,GAAG,UACjD,8CAAC,0BACE;AAAA,YAAM,KAAK,EAAE,QAAQ,KAAK,KAAK,eAAe,iBAAiB,EAAE,CAAC,EAAE,IAAI,CAACC,IAAGC,WAC3E,8CAAC,0BACC;AAAA,qDAAC,yBAAS,QAAQ,WAAW,QAAO,MAAK;AAAA,QACzC,6CAAC,yBAAS,QAAQ,WAAW,IAAI,YAAY,QAAO,MAAK;AAAA,QACzD,6CAAC,yBAAS,QAAQ,WAAW,IAAI,YAAY,OAAM,OAAM,QAAO,MAAK;AAAA,WAHxDA,MAIf,CACD;AAAA,MACD,6CAAC,sBAAM,GAAG,iBAAiB;AAAA,SARd,KASf,CACD;AAAA,KACH;AAEJ;AAEA,IAAO,wBAAQ;;;ACvCf,IAAAC,gBAAoC;AAEpC,IAAAC,eAAmE;AAEnE,yBAA2B;AAgCrB,IAAAC,sBAAA;AA5BN,IAAM,8BAA8B;AAEpC,IAAM,WAAW,MAAM,OAAO,WAAW;AAEzC,SAAS,WAAW;AAAA,EAClB;AAAA,EACA,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,GAAG;AACL,GAAoB;AAClB,QAAM,CAAC,UAAU,WAAW,QAAI,wBAA+B,IAAI;AAEnE,QAAM,YACJ,SAAS,KAAK,SAAS,iBAAiB,QAAQ,MAAM,QAAQ;AAEhE,QAAM,cAAc,SAAS,KAAK,iBAAiB;AACnD,QAAM,WAAW,OAAO,SAAS;AAEjC,+BAAU,MAAM;AACd,QAAI,aAAa;AACf,kBAAY,IAAI,gBAAgB,KAAa,CAAC;AAAA,IAChD,WAAW,UAAU;AACnB,kBAAY,KAAK;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,OAAO,aAAa,QAAQ,CAAC;AAEjC,MAAI,MAAM,YAAY,CAAC,aAAa;AAClC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,KAAK;AAAA,QACJ,GAAG,MAAM;AAAA;AAAA,IACZ;AAAA,EAEJ;AAEA,SACE,8CAAC,sBACE;AAAA,mBACC,6CAAC,sBAAM,QAAO,MAAK,GAAE,MAAK,YAAU,MAClC;AAAA,MAAC;AAAA;AAAA,QACC,GAAE;AAAA,QACF,GAAE;AAAA,QACF,KAAI;AAAA,QACJ,QAAO;AAAA,QACP,KAAK;AAAA,QACJ,GAAG,MAAM;AAAA;AAAA,IACZ,GACF;AAAA,IAEF;AAAA,MAAC;AAAA;AAAA,QACC,QAAQ,EAAE,OAAO,EAAE,UAAU,8BAA8B,EAAE;AAAA,QAC7D,aACE,6CAAC,2BAAW,SAAQ,SAAQ,MAAK,MAAK,OAAM,QAC1C,uDAAC,iCAAW,GACd;AAAA,QAEF,aAAY;AAAA,QACZ,OACE,YACI,2BAA2B,mBAAmB,GAAI,QAClD;AAAA,QAEN,UAAU,CAAC,SAAS;AAClB,gBAAM,WAAW,IAAI;AACrB,cAAI,MAAM;AACR,wBAAY,IAAI,gBAAgB,IAAI,CAAC;AAAA,UACvC;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACnFf,IAAAC,gBAAoC;AAEpC,IAAAC,eAAkC;;;ACFlC,uBAAmB;AACnB,IAAAC,eAA8C;AAwB9C,SAAS,UAAU,UAA6C;AAC9D,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,QAAQ,IAAI,MAAM;AACxB,UAAM,cAAc;AACpB,UAAM,iBAAiB;AACvB,UAAM,SAAS,MAAM,QAAQ,KAAK;AAClC,UAAM,UAAU,MAAM,OAAO,IAAI,MAAM,2CAA2C,CAAC;AACnF,UAAM,MAAM;AAAA,EACd,CAAC;AACH;AAEA,SAAS,gBAAgB,OAAuB;AAC9C,SAAO,KAAK,MAAM,QAAQ,EAAE,IAAI;AAClC;AAEA,SAAS,uBAAuB,WAAwC;AACtE,QAAM,SAAmB,CAAC;AAC1B,WAAS,QAAQ,GAAG,QAAQ,UAAU,QAAQ,SAAS,GAAG;AACxD,UAAM,QAAQ,UAAU,QAAQ,CAAC,KAAK;AACtC,QAAI,QAAQ,GAAI;AAChB,UAAM,MAAM,gBAAgB,UAAU,KAAK,KAAK,CAAC;AACjD,UAAM,QAAQ,gBAAgB,UAAU,QAAQ,CAAC,KAAK,CAAC;AACvD,UAAM,OAAO,gBAAgB,UAAU,QAAQ,CAAC,KAAK,CAAC;AACtD,WAAO,SAAK,iBAAAC,SAAO,KAAK,OAAO,IAAI,EAAE,IAAI,CAAC;AAAA,EAC5C;AACA,SAAO;AACT;AAEA,SAAS,2BACP,WACA,OACA,QACU;AACV,QAAM,aAAuB,CAAC;AAC9B,QAAM,gBAAgB,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,IAAI,OAAO,MAAM,IAAI,GAAG,CAAC;AAE3E,WAAS,IAAI,GAAG,IAAI,QAAQ,KAAK,GAAG;AAClC,aAAS,IAAI,GAAG,IAAI,OAAO,KAAK,GAAG;AACjC,YAAM,SACJ,IAAI,iBACJ,KAAK,QAAQ,iBACb,IAAI,iBACJ,KAAK,SAAS;AAChB,UAAI,CAAC,OAAQ;AAEb,YAAM,cAAc,IAAI,QAAQ,KAAK;AACrC,YAAM,QAAQ,UAAU,aAAa,CAAC,KAAK;AAC3C,UAAI,QAAQ,GAAI;AAEhB,YAAM,MAAM,gBAAgB,UAAU,UAAU,KAAK,CAAC;AACtD,YAAM,QAAQ,gBAAgB,UAAU,aAAa,CAAC,KAAK,CAAC;AAC5D,YAAM,OAAO,gBAAgB,UAAU,aAAa,CAAC,KAAK,CAAC;AAC3D,iBAAW,SAAK,iBAAAA,SAAO,KAAK,OAAO,IAAI,EAAE,IAAI,CAAC;AAAA,IAChD;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,qBAAqB,QAAiC;AAC7D,MAAI,OAAO,WAAW,EAAG,QAAO;AAChC,QAAM,cAAc,oBAAI,IAAoB;AAC5C,aAAW,SAAS,QAAQ;AAC1B,gBAAY,IAAI,QAAQ,YAAY,IAAI,KAAK,KAAK,KAAK,CAAC;AAAA,EAC1D;AACA,MAAI,gBAA+B;AACnC,MAAI,gBAAgB;AACpB,aAAW,CAAC,OAAO,KAAK,KAAK,YAAY,QAAQ,GAAG;AAClD,QAAI,QAAQ,eAAe;AACzB,sBAAgB;AAChB,sBAAgB;AAAA,IAClB;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,+BAA+B,OAC1C,UACA,wBAAwB,WACxB,0BAA0B,cAC4B;AACtD,MAAI;AACF,UAAM,QAAQ,MAAM,UAAU,QAAQ;AACtC,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,UAAM,UAAU,OAAO,WAAW,MAAM,EAAE,oBAAoB,KAAK,CAAC;AAEpE,QAAI,CAAC,SAAS;AACZ,aAAO,EAAE,UAAU,uBAAuB,YAAY,wBAAwB;AAAA,IAChF;AAEA,UAAM,UAAU;AAChB,UAAM,QAAQ,KAAK,IAAI,UAAU,MAAM,cAAc,UAAU,MAAM,eAAe,CAAC;AACrF,WAAO,QAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,eAAe,KAAK,CAAC;AACjE,WAAO,SAAS,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,gBAAgB,KAAK,CAAC;AAEnE,YAAQ,UAAU,OAAO,GAAG,GAAG,OAAO,OAAO,OAAO,MAAM;AAC1D,UAAM,YAAY,QAAQ,aAAa,GAAG,GAAG,OAAO,OAAO,OAAO,MAAM,EAAE;AAE1E,UAAM,YAAY,uBAAuB,SAAS;AAClD,UAAM,aAAa,2BAA2B,WAAW,OAAO,OAAO,OAAO,MAAM;AAEpF,UAAM,aAAa,qBAAqB,UAAU,KAAK,qBAAqB,SAAS;AACrF,UAAM,WACJ;AAAA,MACE,aACI,UAAU,OAAO,CAAC,QAAQ,iBAAAA,QAAO,SAAS,KAAK,YAAY,KAAK,IAAI,EAAE,IACtE;AAAA,IACN,KAAK,qBAAqB,SAAS;AAErC,WAAO;AAAA,MACL,UAAU,YAAY;AAAA,MACtB,YAAY,cAAc;AAAA,IAC5B;AAAA,EACF,QAAQ;AACN,WAAO,EAAE,UAAU,uBAAuB,YAAY,wBAAwB;AAAA,EAChF;AACF;;;ADtIA,IAAAC,sBAAuD;AA4C/C,IAAAC,sBAAA;AAxCR,SAAS,KAAK,EAAE,gBAAgB,MAAM,GAAG,MAAM,GAAc;AAC3D,QAAM,CAAC,eAAe,gBAAgB,QAAI,wBAAmD;AAAA,IAC3F,UAAU;AAAA,IACV,YAAY;AAAA,EACd,CAAC;AAED,+BAAU,MAAM;AACd,QAAI,YAAY;AAEhB,QAAI,MAAM,OAAO,eAAe;AAC9B,mCAA6B,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,UAAU,WAAW,MAAM;AACzE,YAAI,WAAW;AACb,2BAAiB,EAAE,UAAU,WAAW,CAAC;AAAA,QAC3C;AAAA,MACF,CAAC;AAAA,IACH,WAAW,WAAW;AACpB,uBAAiB,EAAE,UAAU,WAAW,YAAY,UAAU,CAAC;AAAA,IACjE;AAEA,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,MAAM,KAAK,aAAa,CAAC;AAE7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,QAAO;AAAA,MACP,GAAE;AAAA,MACF,IAAI,gBAAgB,cAAc,aAAa;AAAA,MAC/C,QAAQ;AAAA,QACN,OAAO;AAAA,UACL,WAAW;AAAA,UACX,gBAAgB;AAAA,QAClB;AAAA,MACF;AAAA,MACA,YAAY,EAAE,gBAAgB,cAAc;AAAA,MAC3C,GAAG;AAAA,MAEJ,uDAAC,0BAAU,SAAQ,eAAc,MAAK,QACpC,uDAAC,oBAAAC,wBAAA,EAAa,MAAM,KAAK,KAAK,QAAQ,GAAG,GAC3C;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,eAAQ;;;AExDf,IAAAC,gBAAyB;AAEzB,IAAAC,eAAoC;AAkDhC,IAAAC,sBAAA;AA9CJ,SAAS,aAAa;AACpB,QAAM,EAAE,UAAU,IAAI;AACtB,QAAM,WAAW,iCAAiC,KAAK,SAAS;AAChE,QAAM,SAAS,QAAQ,KAAK,SAAS;AACrC,QAAM,YAAY,YAAY,KAAK,SAAS;AAC5C,QAAM,aAAa,mBAAmB,KAAK,SAAS,KAAK,CAAC;AAE1D,MAAI,SAAU,QAAO;AACrB,MAAI,OAAQ,QAAO;AACnB,MAAI,UAAW,QAAO;AACtB,MAAI,WAAY,QAAO;AACvB,SAAO;AACT;AAEe,SAAR,gBAAiC;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AACb,GAAyB;AACvB,QAAM,CAAC,SAAS,UAAU,QAAI,wBAAkB,KAAK;AAErD,QAAM,gBAAgB;AAAA,IACpB,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,EACX,EAAE,WAAW,CAAC;AAEd,MAAI,gBAAgB;AACpB,MAAI,WAAW;AACb,qBAAiB,SAAS,SAAS;AAAA,EACrC;AACA,MAAI,CAAC,aAAa;AAChB,oBAAgB;AAAA,EAClB;AAEA,QAAM,iBAAiB,MAAO,OAAO,aAAa,aAAa,SAAS,IAAI;AAE5E,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,GAAE;AAAA,MACF,GAAG,gBAAgB,eAAe,aAAa,QAAQ;AAAA,MACvD,OAAO;AAAA,QACL,WAAW,gBAAgB,eAAe,aAAa,QAAQ;AAAA,MACjE;AAAA,MAEC;AAAA,kBACC,6CAAC,uBAAO,GAAE,QAAO,GAAE,QACjB,uDAAC,uBAAO,MAAK,MAAK,GACpB,IACE;AAAA,QACJ;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,GAAG,QAAQ,GAAG,aAAa;AAAA,YACjC,MAAK;AAAA,YACL,OAAM;AAAA,YACN,QAAO;AAAA,YACP,QAAQ,MAAM,WAAW,KAAK;AAAA,YAC9B,SAAS,MAAM,WAAW,KAAK;AAAA,YAE/B,uDAAC,oBAAK,yBAAe,GAAE;AAAA;AAAA,QACzB;AAAA;AAAA;AAAA,EACF;AAEJ;;;AC5EA,IAAAC,eAA8B;AAQtB,IAAAC,sBAAA;AAJR,SAAS,OAAO,EAAE,OAAO,UAAU,YAAY,GAAG,MAAM,GAAgB;AACtE,SACE,6CAAC,uBAAO,GAAE,QAAQ,GAAG,OACnB,uDAAC,sBAAM,GAAE,QAAO,OAAO,SAAS,WAAY,GAAG,YAC7C,uDAAC,uBAAQ,UAAS,GACpB,GACF;AAEJ;AAEA,IAAO,iBAAQ;;;ACdf,IAAAC,eAAgE;AAoBxD,IAAAC,sBAAA;AAhBR,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,oBAAoB;AAAA,EACpB,GAAG;AACL,GAAuB;AACrB,WAAS,WAAW;AAClB,QAAI,OAAO;AACT,aACE,6CAAC,sBAAM,OAAO,GAAI,GAAG,YAClB,iBACH;AAAA,IAEJ;AACA,WAAO;AAAA,EACT;AAEA,WAAS,YAAY;AACnB,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AACA,WACE,8CAAC,sBAAM,SAAQ,iBAAgB,GAAE,QAAQ,GAAG,aACzC;AAAA,eAAS;AAAA,MACT;AAAA,OACH;AAAA,EAEJ;AAEA,WAAS,aAAa;AACpB,QAAI,UAAU;AACZ,aAAO,6CAAC,oBAAK,GAAG,cAAe,UAAS;AAAA,IAC1C;AACA,WACE,8CAAC,sBAAM,KAAI,MAAM,GAAG,mBACjB;AAAA,gBAAU;AAAA,MACX,6CAAC,sBAAM,IAAG,MAAK,IAAG,MAAK,GAAE,QAAO,GAAE,QAAQ,GAAG,cAC1C,UACH;AAAA,OACF;AAAA,EAEJ;AAEA,MAAI,mBAAmB;AACrB,WACE,6CAAC,2BAAW,GAAE,SAAQ,GAAG,GAAI,GAAG,OAC9B,uDAAC,0BAAU,OAAK,MAAE,qBAAW,GAAE,GACjC;AAAA,EAEJ;AAEA,SACE,6CAAC,0BAAU,GAAG,GAAG,GAAE,QAAO,OAAK,MAC5B,qBAAW,GACd;AAEJ;AAEA,IAAO,wBAAQ;;;ACrEf,IAAAC,gBAAoC;AAEpC,4BAA2D;AAC3D,+BAIO;AAEP,IAAAC,gBAAyC;AAqCrC,IAAAC,sBAAA;AAjCJ,IAAM,oBAAgB,uCAAa;AAEnC,SAAS,WAAW,EAAE,OAAO,cAAc,oBAAoB,GAAG,MAAM,GAAoB;AAC1F,QAAM,cAAc,SAAS;AAC7B,QAAM,sBAAkB,yBAAAC,SAAiB,WAAW;AACpD,MAAI;AACJ,MAAI,iBAAiB,QAAQ,GAAG;AAC9B,6BAAyB,gBAAgB;AAAA,EAC3C;AAEA,QAAM,CAAC,qBAAqB,sBAAsB,QAAI;AAAA,IACpD;AAAA,EACF;AACA,QAAM,mCAAmC,0BACrC,gDAAsB,mBAAmB,IACzC;AAEJ,+BAAU,MAAM;AACd,QAAI,uBAAuB,wBAAwB,wBAAwB;AACzE,YAAM,OAAO,uBAAuB,sBAAsB;AAC1D,YAAM,kBAAc,gDAAsB,IAAI;AAC9C,UAAI,MAAM,UAAU;AAClB,cAAM,eAAe,IAAI,WAAW,GAAG,YAAY,QAAQ,aAAa,EAAE,CAAC;AAC3E,cAAM,uBAAmB,yBAAAA,SAAiB,cAAc,mBAAmB;AAC3E,YAAI,kBAAkB,QAAQ,GAAG;AAC/B,gBAAM,SAAS,IAAI,WAAW,GAAG,YAAY,QAAQ,aAAa,EAAE,CAAC,EAAE;AAAA,QACzE;AAAA,MACF;AAAA,IACF;AAAA,EAEF,GAAG,CAAC,mBAAmB,CAAC;AAExB,SACE,8CAAC,uBAAM,MAAK,UACV;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,MAAK;AAAA,QACL,YAAY,EAAE,GAAG,MAAM,WAAW;AAAA,QAClC,cAAc;AAAA,QACd,OAAO;AAAA,QACP,UAAU,CAAC,MAAM;AACf,cAAI,MAAM,MAAM;AACd,mCAAuB,MAAS;AAAA,UAClC,OAAO;AACL,mCAAuB,CAA4B;AAAA,UACrD;AAAA,QACF;AAAA,QACA,MAAM,cAAc,IAAI,CAAC,SAAS;AAChC,gBAAM,yBAAqB,gDAAsB,IAAI;AACrD,gBAAM,kBAAc,sCAAe,IAAoB,EAAE;AACzD,iBAAO;AAAA,YACL,OAAO;AAAA,YACP,OAAO,GAAG,WAAW,QAAI,oCAAa,IAAoB,CAAC,KAAK,kBAAkB;AAAA,UACpF;AAAA,QACF,CAAC;AAAA,QACD,cAAc,MAAM,WAAW,6EAAE,IAAM;AAAA,QACvC,UAAU,MAAM;AAAA,QAChB,YAAU;AAAA;AAAA,IACZ;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,cAAc,iBAAiB;AAAA,QAC/B,UAAU,CAAC,MAAM;AACf,cAAI,MAAM,YAAY,kCAAkC;AACtD,kBAAM,eAAe,IAAI,gCAAgC,GAAG,EAAE,cAAc,MAAM,QAAQ,kCAAkC,EAAE,CAAC;AAC/H,kBAAM,uBAAmB,yBAAAA,SAAiB,cAAc,mBAAmB;AAC3E,gBAAI,kBAAkB,QAAQ,GAAG;AAC/B,oBAAM,SAAS,iBAAiB,MAAM;AAAA,YACxC;AAAA,UACF;AAAA,QACF;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACzFf,IAAAC,gBAA0B;AAE1B,iCAAsB;AACtB,iCAAsB;AACtB,mCAAwB;AACxB,kCAAsB;AACtB,iCAAsB;AACtB,IAAAA,gBAA0B;AAC1B,yBAAuB;AAEvB,oBAAqC;AAiC7B,IAAAC,uBAAA;AA7BR,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA,qBAAqB,MAAM;AAAA,EAAC;AAAA,EAC5B,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,GAAG;AACL,GAAoB;AAClB,QAAM,aAAS,yBAAU;AAAA,IACvB,UAAU;AAAA,IACV,YAAY;AAAA,MACV,mBAAAC;AAAA,MACA,2BAAAC;AAAA,MACA;AAAA,MACA,6BAAAC;AAAA,MACA,2BAAAC;AAAA,MACA,2BAAAC;AAAA,MACA,4BAAAC,QAAU,UAAU,EAAE,OAAO,CAAC,WAAW,WAAW,EAAE,CAAC;AAAA,IACzD;AAAA,IACA;AAAA,EACF,CAAC;AAED,+BAAU,MAAM;AACd,uBAAmB,QAAQ,QAAQ,CAAC;AACpC,aAAS,QAAQ,QAAQ,CAAC;AAAA,EAC5B,GAAG,CAAC,QAAQ,OAAO,QAAQ,oBAAoB,QAAQ,CAAC;AAExD,SACE,+CAAC,gCAAe,QAAiB,GAAG,OAClC;AAAA,mDAAC,6BAAe,SAAf,EAAuB,QAAM,MAAC,cAAc,IAC3C;AAAA,qDAAC,6BAAe,eAAf,EACC;AAAA,sDAAC,6BAAe,MAAf,EAAoB;AAAA,QACrB,8CAAC,6BAAe,QAAf,EAAsB;AAAA,QACvB,8CAAC,6BAAe,WAAf,EAAyB;AAAA,QAC1B,8CAAC,6BAAe,eAAf,EAA6B;AAAA,QAC9B,8CAAC,6BAAe,iBAAf,EAA+B;AAAA,QAChC,8CAAC,6BAAe,WAAf,EAAyB;AAAA,QAC1B,8CAAC,6BAAe,MAAf,EAAoB;AAAA,SACvB;AAAA,MAEA,+CAAC,6BAAe,eAAf,EACC;AAAA,sDAAC,6BAAe,IAAf,EAAkB;AAAA,QACnB,8CAAC,6BAAe,IAAf,EAAkB;AAAA,QACnB,8CAAC,6BAAe,IAAf,EAAkB;AAAA,QACnB,8CAAC,6BAAe,IAAf,EAAkB;AAAA,SACrB;AAAA,MAEA,+CAAC,6BAAe,eAAf,EACC;AAAA,sDAAC,6BAAe,YAAf,EAA0B;AAAA,QAC3B,8CAAC,6BAAe,IAAf,EAAkB;AAAA,QACnB,8CAAC,6BAAe,YAAf,EAA0B;AAAA,QAC3B,8CAAC,6BAAe,aAAf,EAA2B;AAAA,QAC5B,8CAAC,6BAAe,WAAf,EAAyB;AAAA,QAC1B,8CAAC,6BAAe,aAAf,EAA2B;AAAA,SAC9B;AAAA,MAEA,+CAAC,6BAAe,eAAf,EACC;AAAA,sDAAC,6BAAe,MAAf,EAAoB;AAAA,QACrB,8CAAC,6BAAe,QAAf,EAAsB;AAAA,SACzB;AAAA,MAEA,+CAAC,6BAAe,eAAf,EACC;AAAA,sDAAC,6BAAe,WAAf,EAAyB;AAAA,QAC1B,8CAAC,6BAAe,aAAf,EAA2B;AAAA,QAC5B,8CAAC,6BAAe,cAAf,EAA4B;AAAA,QAC7B,8CAAC,6BAAe,YAAf,EAA0B;AAAA,SAC7B;AAAA,OACF;AAAA,IAEA,8CAAC,6BAAe,SAAf,EAAuB;AAAA,KAC1B;AAEJ;AAEA,IAAO,qBAAQ;;;ACvFf,IAAAC,gBAMO;AAEP,IAAAC,sBAAuE;AAuBzD,IAAAC,uBAAA;AAjBd,SAAS,YAAY,EAAE,GAAG,MAAM,GAAqB;AACnD,QAAM,EAAE,eAAe,QAAI,qCAAsB;AACjD,QAAM,0BAAsB,sCAAuB,SAAS,EAAE,yBAAyB,KAAK,CAAC;AAE7F,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,wBAAwB,UAAU,wBAAwB;AAAA,MACjE,UAAS;AAAA,MACT,cAAY;AAAA,MAEZ,wDAAC,cACC;AAAA,QAAC;AAAA;AAAA,UACC,QAAQ,EAAE,OAAO,EAAE,QAAQ,UAAU,EAAE;AAAA,UACvC,gBAAgB,wBAAwB;AAAA,UACxC,UAAU,MAAM,eAAe,wBAAwB,UAAU,SAAS,OAAO;AAAA,UACjF,SACE,8CAAC,2BAAU,MAAM,MAAM,QAAQ,MAAM,SAAQ,eAC3C,wDAAC,oBAAAC,UAAA,EAAe,GAClB;AAAA,UAEF,UACE,8CAAC,2BAAU,MAAM,MAAM,QAAQ,MAAM,OAAM,UAAS,SAAQ,eAC1D,wDAAC,oBAAAC,SAAA,EAAgB,GACnB;AAAA,UAEF,OAAM;AAAA,UACN,MAAK;AAAA,UACJ,GAAG;AAAA;AAAA,MACN,GACF;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,sBAAQ;","names":["import_core","import_jsx_runtime","import_react","import_core","import_jsx_runtime","_","index","import_react","import_core","import_jsx_runtime","import_react","import_core","import_core","chroma","import_icons_react","import_jsx_runtime","IconFallback","import_react","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_core","import_jsx_runtime","import_react","import_core","import_jsx_runtime","parsePhoneNumber","import_react","import_jsx_runtime","StarterKit","Underline","Superscript","SubScript","Highlight","TextAlign","import_core","import_icons_react","import_jsx_runtime","IconSwitchDark","IconSwitchLight"]}
File without changes