@mindlogic-ai/logician-ui 2.0.0-alpha.0 → 2.0.0-alpha.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.
- package/dist/Markdown-AZTXUJV3.js +16 -0
- package/dist/{Markdown-2D5K42BY.js.map → Markdown-AZTXUJV3.js.map} +1 -1
- package/dist/Markdown-N4OLOBIR.mjs +3 -0
- package/dist/{Markdown-RJJEQN4R.mjs.map → Markdown-N4OLOBIR.mjs.map} +1 -1
- package/dist/chunk-C5KQ6T3M.mjs +1772 -0
- package/dist/chunk-C5KQ6T3M.mjs.map +1 -0
- package/dist/chunk-JUTI2M3P.js +1814 -0
- package/dist/chunk-JUTI2M3P.js.map +1 -0
- package/dist/index.d.mts +7 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.js +213 -188
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +34 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
- package/src/components/Icon/IconMap.ts +16 -0
- package/src/components/Icon/icons/amount-usage.svg +7 -0
- package/src/components/Icon/icons/dashboard.svg +3 -0
- package/src/components/Icon/icons/faq.svg +4 -0
- package/src/components/Icon/icons/filled-amount-usage.svg +3 -0
- package/src/components/Icon/icons/filled-faq.svg +3 -0
- package/src/components/Icon/icons/filled-members.svg +6 -0
- package/src/components/Icon/icons/members.svg +4 -0
- package/src/components/Icon/icons/window.svg +4 -0
- package/src/components/LineGraph/LineGraph.tsx +8 -5
- package/src/components/LineGraph/LineGraph.types.ts +1 -0
- package/src/components/{MonthRangePicker → MonthPicker}/MonthButton/MonthButton.tsx +1 -1
- package/src/components/{MonthRangePicker → MonthPicker}/MonthButton/MonthButton.types.ts +1 -1
- package/src/components/{MonthRangePicker/MonthRangePicker.stories.tsx → MonthPicker/MonthPicker.stories.tsx} +6 -6
- package/src/components/{MonthRangePicker/MonthRangePicker.tsx → MonthPicker/MonthPicker.tsx} +30 -5
- package/src/components/{MonthRangePicker/MonthRangePicker.types.ts → MonthPicker/MonthPicker.types.ts} +4 -1
- package/src/components/{MonthRangePicker → MonthPicker}/_utils/isMonthInRange.ts +1 -1
- package/src/components/{MonthRangePicker → MonthPicker}/_utils/isMonthSelected.ts +1 -1
- package/src/components/MonthPicker/index.ts +2 -0
- package/src/index.ts +1 -1
- package/dist/Markdown-2D5K42BY.js +0 -16
- package/dist/Markdown-RJJEQN4R.mjs +0 -3
- package/dist/analytics-GNSHP7X3.svg +0 -1
- package/dist/bulb-24SQINQB.svg +0 -1
- package/dist/chat-TLRFEUAS.svg +0 -1
- package/dist/chunk-5FHXD7KR.js +0 -1735
- package/dist/chunk-5FHXD7KR.js.map +0 -1
- package/dist/chunk-WSOHBA2C.mjs +0 -1693
- package/dist/chunk-WSOHBA2C.mjs.map +0 -1
- package/dist/edit-RWL72JNM.svg +0 -1
- package/dist/face-55KPDCH4.svg +0 -1
- package/dist/filled-analytics-RBC7KWND.svg +0 -1
- package/dist/filled-bulb-RC7E2WSM.svg +0 -1
- package/dist/filled-chat-A6J44Q7A.svg +0 -1
- package/dist/filled-edit-NKKWFSTW.svg +0 -1
- package/dist/filled-face-UML5C3LB.svg +0 -1
- package/dist/filled-layout-HBVCSDFO.svg +0 -1
- package/dist/language-VBJ24OPV.svg +0 -1
- package/dist/layout-NDDSWNNV.svg +0 -1
- package/dist/pending-NF7NSBYO.svg +0 -1
- package/dist/receipt-MNLQIFCO.svg +0 -1
- package/dist/sparkles-EOEGVL6G.svg +0 -1
- package/dist/store-3RQPBJWG.svg +0 -1
- package/dist/store_active-SAOAGVKC.svg +0 -1
- package/dist/studio-LYPUIEFA.svg +0 -1
- package/dist/studio_active-BC6O66OI.svg +0 -1
- package/dist/vertical-ellipsis-3G4WEOCW.svg +0 -1
- package/src/components/MonthRangePicker/index.ts +0 -2
- /package/src/components/{MonthRangePicker → MonthPicker}/MonthButton/index.ts +0 -0
- /package/src/components/{MonthRangePicker → MonthPicker}/_utils/hasEnabledMonthsInYear.ts +0 -0
- /package/src/components/{MonthRangePicker → MonthPicker}/_utils/index.ts +0 -0
- /package/src/components/{MonthRangePicker → MonthPicker}/_utils/isMonthDisabled.ts +0 -0
- /package/src/components/{MonthRangePicker → MonthPicker}/_utils/isMonthInPreviewRange.ts +0 -0
- /package/src/components/{MonthRangePicker → MonthPicker}/_utils/isSelectionStart.ts +0 -0
- /package/src/components/{MonthRangePicker → MonthPicker}/constants.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/formatTextForMarkdown.ts","../src/translations/Defaults.translations.json","../src/hooks/useTranslate.ts","../src/theme/colors.ts","../src/theme/font.ts","../src/theme/global.ts","../src/theme/index.ts","../src/components/Card/Card.styles.ts","../src/components/Card/Card.tsx","../src/components/InlineCode/InlineCode.tsx","../src/components/SegmentedControl/SegmentedControl.styles.ts","../src/components/SegmentedControl/SegmentedControl.tsx","../src/components/Typography/H1.tsx","../src/components/Typography/H2.tsx","../src/components/Typography/H3.tsx","../src/components/Typography/H4.tsx","../src/components/Typography/H5.tsx","../src/components/Typography/Link.tsx","../src/components/Typography/Subtext.tsx","../src/components/Typography/Subtitle.tsx","../src/components/Typography/Text.tsx","../src/components/Icon/Icon.styles.ts","../src/components/Icon/IconMap.ts","../src/components/Icon/Icon.tsx","../src/components/IconButton/IconButton.styles.ts","../src/components/IconButton/IconButton.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Code/_components/CopyButton.tsx","../src/components/Code/Code.tsx","../src/components/Table/Table.styles.ts","../src/components/Table/TableContext.tsx","../src/components/Table/Td.tsx","../src/components/Table/Tr.tsx","../src/components/Table/ExpandingTr/ExpandingTr.tsx","../src/components/Table/Table.tsx","../src/components/Table/TableContainer.tsx","../src/components/Table/Tbody.tsx","../src/components/Table/Th.tsx","../src/components/Table/Thead.tsx","../src/components/Markdown/Markdown.module.css","../src/components/Markdown/Markdown.tsx"],"names":["useCallback","extendTheme","forwardRef","jsx","ChakraCard","ChakraCode","useState","theme","useTheme","size","jsxs","Flex","motion","Button","Heading","useToken","darken","ChakraLink","Text","ChakraText","BiDetail","BiExpandAlt","BsTranslate","CiFileOn","FaArchive","FaBeer","FaChartPie","FaCheck","FaCode","FaGraduationCap","FaImage","FaLock","FaMoneyBillWave","FaPersonChalkboard","FaPrint","FaRegQuestionCircle","FaRegCopy","FaRegTrashAlt","FaRegUserCircle","FaRegEye","FaRegEyeSlash","FaRotateRight","FaPlay","FaSortAlphaDown","FaSortAlphaUp","FaSortNumericDown","FaSortNumericUp","FaUniversity","FaUserCheck","FaUserClock","FaUserPlus","FaUsers","GiTwoCoins","GoArrowUpRight","GoArrowDownRight","IoIosArrowForward","GrUserAdmin","HiLightningBolt","HiRefresh","IoAddCircleOutline","IoAddOutline","IoCall","IoChatbubbleEllipses","IoChevronDownOutline","IoChevronForward","IoCodeSlash","IoClose","IoCloseOutline","IoDocumentTextSharp","IoIosList","IoMdLink","IoMdSave","IoMdThumbsUp","IoMdThumbsDown","IoEyeOutline","IoEyeOffOutline","IoFilter","IoHome","IoIosArrowBack","IoIosAttach","IoIosCheckmarkCircle","IoIosAddCircleOutline","IoIosMail","IoIosShareAlt","IoMdSettings","IoWarningOutline","IoSearch","IoWarning","LuExternalLink","LuDownload","LiaNewspaper","LuBookOpenText","LuGraduationCap","LuInfo","LuMenu","LuReceipt","LuSendHorizontal","LuUpload","MdAnnouncement","MdCardMembership","MdError","MdFilterList","MdLogout","MdOutlineCalendarToday","MdOutlinePersonPin","MdOutlineSpaceDashboard","HiX","MdPreview","MdSpaceDashboard","MdThumbsUpDown","PiChatSlashBold","PiExam","PiGlobe","PiGlobeX","RxDotsHorizontal","SlSettings","TbAppWindowFilled","TbInfinity","TbLayoutNavbar","TbLockCog","TbMessageChatbotFilled","TbSum","TbWorldSearch","IconComponent","chakra","variantStyles","ChakraIconButton","ChakraTooltip","lazy","a11yDark","Box","Suspense","Spinner","rest","SyntaxHighlighter","createContext","useContext","useRef","useEffect","ChakraTd","ChakraTr","Children","Fragment","Collapse","ChakraTable","ChakraTableContainer","ChakraTbody","ChakraTh","ChakraThead","Markdown","ReactMarkdown","remarkGfm","remarkFlexibleMarkers","remarkBreaks","remarkMath","rehypeRaw","rehypeKatex"],"mappings":"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","file":"chunk-5FHXD7KR.js","sourcesContent":["export const formatForMarkdown = (text: string): string => {\n return text?.replace(/\\\\n/g, ' \\n'); // Convert single `\\n` to a Markdown-compatible line break\n};\n","{\n \"get_started\": {\n \"ko\": \"시작하기\",\n \"en\": \"Get Started\",\n \"zh\": \"开始\",\n \"ja\": \"始める\",\n \"es\": \"Comenzar\"\n },\n \"next\": {\n \"ko\": \"다음\",\n \"en\": \"Next\",\n \"zh\": \"下一个\",\n \"ja\": \"次\",\n \"es\": \"Siguiente\"\n },\n \"copy\": {\n \"ko\": \"복사\",\n \"en\": \"Copy\",\n \"zh\": \"复制\",\n \"ja\": \"コピー\",\n \"es\": \"Copiar\"\n },\n \"copied\": {\n \"ko\": \"복사 완료\",\n \"en\": \"Copy completed\",\n \"zh\": \"复制完成\",\n \"ja\": \"コピー完了\",\n \"es\": \"Copia completada\"\n },\n \"see_more\": {\n \"ko\": \"더보기\",\n \"en\": \"See more\",\n \"zh\": \"查看更多\",\n \"ja\": \"もっと見る\",\n \"es\": \"Ver más\"\n },\n \"previous\": {\n \"ko\": \"이전\",\n \"en\": \"Previous\",\n \"zh\": \"以前\",\n \"ja\": \"前\",\n \"es\": \"Anterior\"\n },\n \"go_next_page_button\": {\n \"ko\": \"다음\",\n \"en\": \"Next\",\n \"zh\": \"下一个\",\n \"ja\": \"次\",\n \"es\": \"Siguiente\"\n },\n \"pagination_range_text\": {\n \"ko\": \"{num_total_items}개 중 {range_start} - {range_end} 표시 중\",\n \"en\": \"Displaying {range_start} - {range_end} of {num_total_items}\",\n \"zh\": \"显示第 {range_start} - {range_end} 项,共 {num_total_items} 项\",\n \"ja\": \"{num_total_items} 件中 {range_start} - {range_end} を表示中\",\n \"es\": \"Mostrando {range_start} - {range_end} de {num_total_items}\"\n },\n \"pagination_items_per_page\": {\n \"ko\": \"항목 수\",\n \"en\": \"items per page\",\n \"zh\": \"每页项目数\",\n \"ja\": \"ページごとの項目数\",\n \"es\": \"elementos por página\"\n },\n \"code_markdown_raw\": {\n \"ko\": \"원문\",\n \"en\": \"Raw\",\n \"zh\": \"原文\",\n \"ja\": \"原文\",\n \"es\": \"Crudo\"\n },\n \"code_markdown_preview\": {\n \"ko\": \"미리보기\",\n \"en\": \"Preview\",\n \"zh\": \"预览\",\n \"ja\": \"プレビュー\",\n \"es\": \"Vista previa\"\n },\n \"month_range_placeholder\": {\n \"ko\": \"월 범위 선택\",\n \"en\": \"Select month range\",\n \"zh\": \"选择月份范围\",\n \"ja\": \"月範囲を選択\",\n \"es\": \"Seleccionar rango de meses\"\n },\n \"clear\": {\n \"ko\": \"지우기\",\n \"en\": \"Clear\",\n \"zh\": \"清除\",\n \"ja\": \"クリア\",\n \"es\": \"Borrar\"\n },\n \"upload_your_file\": {\n \"ko\": \"파일 업로드\",\n \"en\": \"Upload file\",\n \"zh\": \"文件上传\",\n \"ja\": \"ファイルをアップロード\",\n \"es\": \"Subir archivo\"\n }\n}","'use client';\nimport { useCallback } from 'react';\n\nimport defaultTranslations from '../translations/Defaults.translations.json';\nimport { formatForMarkdown } from '../utils/formatTextForMarkdown';\n\nconst DEFAULT_LOCALE = 'ko';\n\n// Given a block of text and variables, replaces instances of the provided variables in the text\nconst replaceVariables = (text: string, variables?: { [key: string]: any }) => {\n if (!variables) return formatForMarkdown(text);\n\n const regex = /({(.*?)})/gi;\n\n const potentialKeys: string[] = text.match(regex) ?? [];\n const textParts: Array<string> = [];\n let lastIndex = 0;\n potentialKeys.forEach((potentialKey: string) => {\n const keyIndex = text.indexOf(potentialKey);\n // Push stuff up to potential key\n textParts.push(text.slice(lastIndex, keyIndex));\n // Push potential key\n textParts.push(text.slice(keyIndex, keyIndex + potentialKey.length));\n lastIndex = keyIndex + potentialKey.length;\n });\n // Push remaining\n textParts.push(text.slice(lastIndex));\n\n const parts = textParts.map(\n (partText: string) =>\n // Slice to remove { and }\n variables[partText.slice(1, partText.length - 1)] ??\n formatForMarkdown(partText)\n );\n\n return parts.every((part) => typeof part === 'string')\n ? parts.join('')\n : parts;\n};\n\nconst getLanguage = () => {\n return 'ko';\n};\n\nexport const useTranslate = (translations = {}) => {\n const userLanguage = getLanguage();\n return useCallback(\n (key: string, variables?: { [key: string]: any }) => {\n const locale = (userLanguage as string) ?? DEFAULT_LOCALE;\n const translation: string =\n { ...defaultTranslations, ...translations }[key]?.[locale] ?? key;\n const finalRes = replaceVariables(translation, variables);\n return finalRes;\n },\n [userLanguage, translations]\n );\n};\n","export const colors = {\n primary: {\n lighter: 'blue.50',\n light: 'blue.300',\n main: 'blue.900',\n dark: 'blue.1000',\n },\n secondary: {\n lighter: 'purple.50',\n light: 'purple.300',\n main: 'purple.500',\n dark: 'purple.700',\n },\n danger: {\n lighter: 'red.50',\n light: '#FFC9C9',\n main: 'red.500',\n dark: '#961616',\n },\n success: {\n lighter: '#EBFBF1',\n light: '#C1F4D4',\n main: '#019939',\n dark: '#016626',\n },\n warning: {\n lighter: '#FFF6E7',\n light: '#FFE9BA',\n main: 'yellow.400',\n dark: '#9D6508',\n },\n gray: {\n 50: '#F4F5F6',\n 100: '#EAECEF',\n 200: '#E5E7EB',\n 300: '#EBF0FB',\n 400: '#D1D4DA',\n 500: '#C7CAD1',\n 600: '#BDC1C9',\n 700: '#AEB2BC',\n 800: '#9499A5',\n 900: '#7F8493',\n 1000: '#6B7180',\n 1100: '#595E6A',\n 1200: '#474B55',\n 1300: '#363840',\n 1400: '#24262B',\n 1500: '#121315',\n },\n blue: {\n 100: '#FDFDFF',\n 200: '#FAFBFE',\n 300: '#EFF4FF',\n 400: '#D6E0F7',\n 500: '#94b0ec',\n 600: '#3182ce',\n 700: '#6c92e4',\n 800: '#4272dd',\n 900: '#1751D0',\n 1000: '#113B98',\n },\n white: '#FFFFFF',\n black: '#121212',\n};\n","// Placeholder font objects that can be overridden by the consuming application\n// The consuming app should define these fonts and pass them via theme customization\n\nexport const inter = {\n style: {\n fontFamily: '\"Inter\", sans-serif',\n },\n variable: '--es-font',\n};\n\nexport const noto = {\n style: {\n fontFamily: '\"Noto Sans\", sans-serif',\n },\n variable: '--font-noto',\n};\n\nexport const pretendard = {\n style: {\n fontFamily: '\"Pretendard Variable\", sans-serif',\n },\n variable: '--font-pretendard',\n};\n","import { inter, noto, pretendard } from './font';\n\nexport const global = {\n ':root': {\n '--chakra-colors-chakra-body-text': '#121315', // gray.1500 hex value\n '--chakra-colors-chakra-body-bg': '#FFFFFF',\n },\n\n html: {\n height: 'var(--chakra-vh)',\n fontSize: 14,\n fontFamily: [\n pretendard.style.fontFamily,\n inter.style.fontFamily,\n noto.style.fontFamily,\n ].join(','),\n overflow: 'auto',\n },\n\n 'html, body': {\n color: 'gray.1500', // Set the default body color\n },\n\n '#__next': {\n height: 'var(--chakra-vh)',\n },\n \"body[data-lang='es']\": {\n fontFamily: inter.style.fontFamily,\n },\n} as const;\n","import { extendTheme } from '@chakra-ui/react';\n\nimport { colors } from './colors';\nimport { global } from './global';\n\nconst theme = extendTheme({\n colors,\n semanticTokens: {\n colors: {\n ...colors,\n 'chakra-body-text': 'gray.1500',\n 'chakra-body-bg': 'white',\n 'chakra-body-text-secondary': 'gray.1200',\n },\n },\n styles: {\n global,\n },\n\n fonts: {\n body: '\"Pretendard Variable\", \"Inter\", \"Noto Sans\", sans-serif',\n heading: '\"Pretendard Variable\", \"Inter\", \"Noto Sans\", sans-serif',\n },\n\n // 반응형 폰트 사이즈 - 모바일에서는 더 작은 폰트 크기, 데스크톱에서는 기존 크기 유지\n fontSizes: {\n // 커스텀 폰트 크기 토큰 (em 단위 사용)\n // xs: { base: '0.7em', md: '0.7em' },\n subtitle: { base: '0.8em', md: '0.92em' },\n subtext: { base: '0.8em', md: '0.92em' },\n p: { base: '0.9em', md: '1em' },\n h5: { base: '1.1em', md: '1.2em' },\n h4: { base: '1.25em', md: '1.44em' },\n h3: { base: '1.5em', md: '1.75em' },\n h2: { base: '2em', md: '2.5em' },\n h1: { base: '2.4em', md: '3em' },\n },\n\n radii: {\n none: '0',\n sm: '6px',\n md: '8px',\n lg: '12px',\n xl: '32px',\n full: '9999px',\n },\n});\n\nexport default theme;\n","import theme from '@/theme/index';\n\n// Light mode styles only\nexport const cardStyles = {\n bgColor: theme.colors.white,\n color: theme.colors.black,\n borderColor: theme.colors.gray[100],\n};\n\nexport const clickableStyles = {\n cursor: 'pointer',\n _hover: {\n boxShadow: 'lg',\n ['.card-image']: {\n // TODO: define in theme\n transition: '0.3s all',\n transform: 'scale(1.05)',\n backgroundSize: '105%',\n },\n },\n};\n\nexport const variantStyles = {\n default: {},\n gradient: {\n bg: `linear-gradient(180deg, #F5F8FD 0%, #FFFFFF 100%)`,\n border: `1px solid`,\n borderColor: 'blue.600',\n },\n};\n","import { forwardRef } from 'react';\nimport { Card as ChakraCard } from '@chakra-ui/react';\n\nimport { clickableStyles, variantStyles } from './Card.styles';\nimport { CardProps } from './Card.types';\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ clickable, variant = 'default', ...rest }, ref) => {\n return (\n <ChakraCard\n ref={ref}\n position=\"relative\"\n bgColor=\"inherit\"\n color=\"inherit\"\n boxShadow=\"none\"\n border=\"1px solid\"\n borderColor=\"gray.300\"\n borderRadius=\"lg\"\n transition=\"0.3s all\"\n p={8}\n {...(clickable ? clickableStyles : {})}\n {...variantStyles[variant]}\n {...rest}\n />\n );\n }\n);\n\nCard.displayName = 'Card';\n","import {\n Code as ChakraCode,\n CodeProps as ChakraCodeProps,\n} from '@chakra-ui/react';\n\nexport const InlineCode = ({ children, ...rest }: ChakraCodeProps) => {\n return (\n <ChakraCode\n bg=\"gray.50\"\n color=\"primary.dark\"\n borderRadius=\"sm\"\n fontSize=\"p\"\n {...rest}\n >\n {children}\n </ChakraCode>\n );\n};\n","import { ButtonProps } from '../Button/Button.types';\nimport { SegmentedControlProps } from './SegmentedControl.types';\n\nexport const OptionStyles: Record<\n Exclude<SegmentedControlProps['size'], undefined>,\n ButtonProps\n> = {\n xs: {\n minW: 6,\n paddingInlineStart: 2,\n paddingInlineEnd: 2,\n h: 6,\n },\n sm: {\n minW: 10,\n paddingInlineStart: 6,\n paddingInlineEnd: 6,\n h: 8,\n },\n md: {\n paddingInlineStart: 6,\n paddingInlineEnd: 6,\n minW: 10,\n h: 10,\n },\n lg: {},\n xl: {},\n};\n","import { useState } from 'react';\nimport { Button, Flex, useTheme } from '@chakra-ui/react';\nimport { motion } from 'framer-motion';\n\nimport { OptionStyles } from './SegmentedControl.styles';\nimport { SegmentedControlProps } from './SegmentedControl.types';\n\nexport const SegmentedControl = ({\n options,\n value,\n onSelect,\n borderRadius = 'md',\n size,\n ...rest\n}: SegmentedControlProps) => {\n const [internalValue, setInternalValue] = useState(options[0].value);\n const theme = useTheme();\n\n // Use the controlled value if provided, otherwise use the internal state\n const activeValue = value !== undefined ? value : internalValue;\n const activeIndex = options.findIndex(\n (option) => option.value === activeValue\n );\n\n const getControlPadding: (\n size: SegmentedControlProps['size']\n ) => SegmentedControlProps['padding'] = (size = 'md') => {\n const paddings = {\n xs: theme.space[1],\n sm: theme.space[1],\n md: theme.space[1],\n lg: {},\n xl: {},\n };\n return paddings[size];\n };\n\n const handleSelect = (selectedValue: string) => {\n if (value === undefined) {\n setInternalValue(selectedValue);\n }\n if (onSelect) onSelect(selectedValue);\n };\n\n return (\n <Flex\n position=\"relative\"\n borderRadius={borderRadius}\n bg=\"gray.50\"\n // p=\"1\"\n {...rest}\n >\n <motion.div\n initial={false}\n animate={{\n x: `calc(${100 * activeIndex}% + ${getControlPadding(size)})`,\n }}\n transition={{ type: 'spring', stiffness: 300, damping: 30 }}\n style={{\n position: 'absolute',\n // @ts-expect-error - Chakra UI responsive values in Framer Motion styles\n top: getControlPadding(size),\n // @ts-expect-error - Chakra UI responsive values in Framer Motion styles\n bottom: getControlPadding(size),\n left: `calc(${activeIndex * 2} * ${getControlPadding(size)})`,\n width: `calc(${100 / options.length}% - 2 * ${getControlPadding(size)})`,\n borderRadius: theme.radii[borderRadius],\n background: theme.colors.white,\n boxShadow: theme.shadows.md,\n }}\n />\n\n {options.map((option) => (\n <Button\n key={option.value}\n flex={1}\n variant=\"ghost\"\n color={activeValue === option.value ? 'gray.1200' : 'gray.600'}\n onClick={() => handleSelect(option.value)}\n _hover={{ bg: 'transparent' }}\n fontSize={size}\n {...OptionStyles[size ?? 'md']}\n >\n {option.label}\n </Button>\n ))}\n </Flex>\n );\n};\n","import { forwardRef } from 'react';\nimport { Heading, HeadingProps, useTheme } from '@chakra-ui/react';\n\nexport const H1 = forwardRef<HTMLHeadingElement, HeadingProps>((props, ref) => {\n const theme = useTheme();\n return (\n <Heading\n ref={ref}\n as=\"h1\"\n fontSize={theme.fontSizes.h1}\n fontWeight=\"bold\"\n {...props}\n />\n );\n});\n\nH1.displayName = 'H1';\n","import { forwardRef } from 'react';\nimport { Heading, HeadingProps, useTheme } from '@chakra-ui/react';\n\nexport const H2 = forwardRef<HTMLHeadingElement, HeadingProps>((props, ref) => {\n const theme = useTheme();\n return (\n <Heading\n ref={ref}\n as=\"h2\"\n fontSize={theme.fontSizes.h2}\n fontWeight=\"semibold\"\n {...props}\n />\n );\n});\n\nH2.displayName = 'H2';\n","import { forwardRef } from 'react';\nimport { Heading, HeadingProps, useTheme } from '@chakra-ui/react';\n\nexport const H3 = forwardRef<HTMLHeadingElement, HeadingProps>((props, ref) => {\n const theme = useTheme();\n return (\n <Heading\n ref={ref}\n as=\"h3\"\n fontSize={theme.fontSizes.h3}\n fontWeight=\"semibold\"\n {...props}\n />\n );\n});\n\nH3.displayName = 'H3';\n","import { forwardRef } from 'react';\nimport { Heading, HeadingProps, useTheme } from '@chakra-ui/react';\n\nexport const H4 = forwardRef<HTMLHeadingElement, HeadingProps>((props, ref) => {\n const theme = useTheme();\n return (\n <Heading\n ref={ref}\n as=\"h4\"\n fontSize={theme.fontSizes.h4}\n fontWeight=\"semibold\"\n {...props}\n />\n );\n});\n\nH4.displayName = 'H4';\n","import { forwardRef } from 'react';\nimport { Heading, HeadingProps, useTheme } from '@chakra-ui/react';\n\nexport const H5 = forwardRef<HTMLHeadingElement, HeadingProps>((props, ref) => {\n const theme = useTheme();\n return (\n <Heading\n ref={ref}\n as=\"h5\"\n fontSize={theme.fontSizes.h5}\n fontWeight=\"bold\"\n {...props}\n />\n );\n});\n\nH5.displayName = 'H5';\n","import { forwardRef } from 'react';\nimport {\n Link as ChakraLink,\n LinkProps,\n useTheme,\n useToken,\n} from '@chakra-ui/react';\nimport { darken } from 'polished';\n\nexport interface LinkCustomProps extends LinkProps {\n variant?: 'error';\n}\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkCustomProps>(\n ({ color, variant, ...rest }, ref) => {\n const theme = useTheme();\n const defaultColor = theme.semanticTokens.colors.primary.main;\n const errorColor = theme.semanticTokens.colors.danger.main;\n const linkColor =\n useToken(\n 'colors',\n variant === 'error' ? errorColor : color || defaultColor\n ) ?? color;\n\n const getHoverColor = () => {\n let hoverColor;\n try {\n hoverColor = darken(0.1, linkColor);\n } catch (e) {\n hoverColor = 'inherit';\n }\n return hoverColor;\n };\n\n return (\n <ChakraLink\n ref={ref}\n fontWeight=\"semibold\"\n color={linkColor}\n _hover={{\n color: getHoverColor(),\n }} // Darken by 10% on hover\n {...rest}\n />\n );\n }\n);\n\nLink.displayName = 'Link';\n","import React, { forwardRef } from 'react';\nimport { Text, TextProps, useTheme } from '@chakra-ui/react';\n\nexport const Subtext = forwardRef<HTMLSpanElement, TextProps>((props, ref) => {\n const theme = useTheme();\n\n return (\n <Text\n ref={ref}\n fontSize={theme.fontSizes.subtext}\n fontWeight=\"regular\"\n {...props}\n />\n );\n});\n\nSubtext.displayName = 'Subtext';\n","import { forwardRef } from 'react';\nimport { Text, TextProps, useTheme } from '@chakra-ui/react';\n\nexport const Subtitle = forwardRef<HTMLSpanElement, TextProps>((props, ref) => {\n const theme = useTheme();\n return (\n <Text\n ref={ref}\n as=\"h6\"\n fontSize={theme.fontSizes.p}\n fontWeight=\"medium\"\n color=\"gray.1000\"\n {...props}\n />\n );\n});\n\nSubtitle.displayName = 'Subtitle';\n","import React, { forwardRef } from 'react';\nimport { Text as ChakraText, TextProps, useTheme } from '@chakra-ui/react';\n\nexport const Text = forwardRef<HTMLParagraphElement, TextProps>(\n (props, ref) => {\n const theme = useTheme();\n\n return (\n <ChakraText\n ref={ref}\n as=\"p\"\n fontSize={theme.fontSizes.p}\n lineHeight=\"1.5\"\n fontWeight=\"medium\"\n color=\"gray.1200\"\n {...props}\n />\n );\n }\n);\n\nText.displayName = 'Text';\n","import theme from '@/theme/index';\n\n// Light mode styles only\nexport const iconStyles = {\n color: theme.colors.black,\n};\n","import { BiDetail, BiExpandAlt } from 'react-icons/bi';\nimport { BsTranslate } from 'react-icons/bs';\nimport { CiFileOn } from 'react-icons/ci';\nimport {\n FaArchive,\n FaBeer,\n FaChartPie,\n FaGraduationCap,\n FaImage,\n FaMoneyBillWave,\n FaPlay,\n FaPrint,\n FaRegEye,\n FaRegEyeSlash,\n FaRegQuestionCircle,\n FaRegTrashAlt,\n FaRegUserCircle,\n FaSortAlphaDown,\n FaSortAlphaUp,\n FaSortNumericDown,\n FaSortNumericUp,\n FaUniversity,\n FaUserCheck,\n FaUserPlus,\n FaUsers,\n} from 'react-icons/fa';\nimport {\n FaCheck,\n FaCode,\n FaLock,\n FaPersonChalkboard,\n FaRegCopy,\n FaRotateRight,\n FaUserClock,\n} from 'react-icons/fa6';\nimport { GiTwoCoins } from 'react-icons/gi';\nimport { GoArrowDownRight, GoArrowUpRight } from 'react-icons/go';\nimport { GrUserAdmin } from 'react-icons/gr';\nimport { HiLightningBolt, HiRefresh, HiX } from 'react-icons/hi';\nimport {\n IoIosAddCircleOutline,\n IoIosArrowBack,\n IoIosArrowForward,\n IoIosAttach,\n IoIosCheckmarkCircle,\n IoIosList,\n IoIosMail,\n IoIosShareAlt,\n IoMdLink,\n IoMdSave,\n IoMdSettings,\n IoMdThumbsDown,\n IoMdThumbsUp,\n} from 'react-icons/io';\nimport {\n IoAddCircleOutline,\n IoAddOutline,\n IoCall,\n IoChatbubbleEllipses,\n IoChevronDownOutline,\n IoChevronForward,\n IoClose,\n IoCloseOutline,\n IoCodeSlash,\n IoDocumentTextSharp,\n IoEyeOffOutline,\n IoEyeOutline,\n IoFilter,\n IoHome,\n IoSearch,\n IoWarning,\n IoWarningOutline,\n} from 'react-icons/io5';\nimport { LiaNewspaper } from 'react-icons/lia';\nimport { IconType as ReactIconType } from 'react-icons/lib';\nimport {\n LuBookOpenText,\n LuDownload,\n LuExternalLink,\n LuGraduationCap,\n LuInfo,\n LuMenu,\n LuReceipt,\n LuSendHorizontal,\n LuUpload,\n} from 'react-icons/lu';\nimport {\n MdAnnouncement,\n MdCardMembership,\n MdError,\n MdFilterList,\n MdLogout,\n MdOutlineCalendarToday,\n MdOutlinePersonPin,\n MdOutlineSpaceDashboard,\n MdPreview,\n MdSpaceDashboard,\n MdThumbsUpDown,\n} from 'react-icons/md';\nimport { PiChatSlashBold, PiExam, PiGlobe, PiGlobeX } from 'react-icons/pi';\nimport { RxDotsHorizontal } from 'react-icons/rx';\nimport { SlSettings } from 'react-icons/sl';\nimport {\n TbAppWindowFilled,\n TbInfinity,\n TbLayoutNavbar,\n TbLockCog,\n TbMessageChatbotFilled,\n TbSum,\n TbWorldSearch,\n} from 'react-icons/tb';\n\nimport AnalyticsIcon from './icons/analytics.svg';\nimport BulbIcon from './icons/bulb.svg';\nimport ChatIcon from './icons/chat.svg';\nimport EditIcon from './icons/edit.svg';\nimport FaceIcon from './icons/face.svg';\nimport FilledAnalyticsIcon from './icons/filled-analytics.svg';\nimport FilledBulbIcon from './icons/filled-bulb.svg';\nimport FilledChatIcon from './icons/filled-chat.svg';\nimport FilledEditIcon from './icons/filled-edit.svg';\nimport FilledFaceIcon from './icons/filled-face.svg';\nimport FilledLayoutIcon from './icons/filled-layout.svg';\nimport LanguageIcon from './icons/language.svg';\nimport LayoutIcon from './icons/layout.svg';\nimport PendingIcon from './icons/pending.svg';\nimport ReceiptIcon from './icons/receipt.svg';\nimport SparklesIcon from './icons/sparkles.svg';\nimport StoreIcon from './icons/store.svg';\nimport StoreActiveIcon from './icons/store_active.svg';\nimport StudioIcon from './icons/studio.svg';\nimport StudioActiveIcon from './icons/studio_active.svg';\nimport VerticalEllipsisIcon from './icons/vertical-ellipsis.svg';\n\nexport const REACT_ICONS_MAP: { [key: string]: ReactIconType } = {\n BiDetail,\n BiExpandAlt,\n BsTranslate,\n CiFileOn,\n FaArchive,\n FaBeer,\n FaChartPie,\n FaCheck,\n FaCode,\n FaGraduationCap,\n FaImage,\n FaLock,\n FaMoneyBillWave,\n FaPersonChalkboard,\n FaPrint,\n FaRegQuestionCircle,\n FaRegCopy,\n FaRegTrashAlt,\n FaRegUserCircle,\n FaRegEye,\n FaRegEyeSlash,\n FaRotateRight,\n FaPlay,\n FaSortAlphaDown,\n FaSortAlphaUp,\n FaSortNumericDown,\n FaSortNumericUp,\n FaUniversity,\n FaUserCheck,\n FaUserClock,\n FaUserPlus,\n FaUsers,\n GiTwoCoins,\n GoArrowUpRight,\n GoArrowDownRight,\n IoIosArrowForward,\n GrUserAdmin,\n HiLightningBolt,\n HiRefresh,\n IoAddCircleOutline,\n IoAddOutline,\n IoCall,\n IoChatbubbleEllipses,\n IoChevronDownOutline,\n IoChevronForward,\n IoCodeSlash,\n IoClose,\n IoCloseOutline,\n IoDocumentTextSharp,\n IoIosList,\n IoMdLink,\n IoMdSave,\n IoMdThumbsUp,\n IoMdThumbsDown,\n IoEyeOutline,\n IoEyeOffOutline,\n IoFilter,\n IoHome,\n IoIosArrowBack,\n IoIosAttach,\n IoIosCheckmarkCircle,\n IoIosAddCircleOutline,\n IoIosMail,\n IoIosShareAlt,\n IoMdSettings,\n IoWarningOutline,\n IoSearch,\n IoWarning,\n LuExternalLink,\n LuDownload,\n LiaNewspaper,\n LuBookOpenText,\n LuGraduationCap,\n LuInfo,\n LuMenu,\n LuReceipt,\n LuSendHorizontal,\n LuUpload,\n MdAnnouncement,\n MdCardMembership,\n MdError,\n MdFilterList,\n MdLogout,\n MdOutlineCalendarToday,\n MdOutlinePersonPin,\n MdOutlineSpaceDashboard,\n HiX,\n MdPreview,\n MdSpaceDashboard,\n MdThumbsUpDown,\n PiChatSlashBold,\n PiExam,\n PiGlobe,\n PiGlobeX,\n RxDotsHorizontal,\n SlSettings,\n TbAppWindowFilled,\n TbInfinity,\n TbLayoutNavbar,\n TbLockCog,\n TbMessageChatbotFilled,\n TbSum,\n TbWorldSearch,\n};\n\n/**\n * Map of icon names to SVGs. Records named as {iconName}: {iconName}Icon.\n *\n * Sorted alphabetically.\n */\nexport const CUSTOM_ICON_MAP: {\n [key: string]: React.FunctionComponent<\n React.SVGProps<SVGSVGElement> & { title?: string }\n >;\n} = {\n Analytics: AnalyticsIcon,\n Bulb: BulbIcon,\n Chat: ChatIcon,\n Edit: EditIcon,\n Face: FaceIcon,\n Language: LanguageIcon,\n Layout: LayoutIcon,\n FilledAnalytics: FilledAnalyticsIcon,\n FilledBulb: FilledBulbIcon,\n FilledChat: FilledChatIcon,\n FilledEdit: FilledEditIcon,\n FilledFace: FilledFaceIcon,\n FilledLayout: FilledLayoutIcon,\n Pending: PendingIcon,\n Sparkles: SparklesIcon,\n Studio: StudioIcon,\n StudioActive: StudioActiveIcon,\n Store: StoreIcon,\n StoreActive: StoreActiveIcon,\n Receipt: ReceiptIcon,\n VerticalEllipsis: VerticalEllipsisIcon,\n} as const;\n\nexport type IconType =\n | keyof typeof CUSTOM_ICON_MAP\n | keyof typeof REACT_ICONS_MAP;\n\n/**\n * Convert map of SVGs to a const of strings only to minimize import size\n */\nexport const IconTypes: { [K in IconType]: IconType } = Object.keys({\n ...CUSTOM_ICON_MAP,\n ...REACT_ICONS_MAP,\n}).reduce(\n (prevVal, currVal) => {\n prevVal[currVal] = currVal;\n return prevVal;\n },\n {} as { [K in IconType]: IconType }\n);\n","import React, { forwardRef } from 'react';\nimport { IconType as ReactIconType } from 'react-icons/lib';\nimport { chakra, useToken } from '@chakra-ui/react';\n\nimport { iconStyles } from '@/components/Icon/Icon.styles';\n\nimport { IconProps } from './Icon.types';\nimport { CUSTOM_ICON_MAP, REACT_ICONS_MAP } from './IconMap';\n\nexport const Icon = forwardRef<SVGSVGElement, IconProps>(\n (\n {\n icon,\n color,\n boxSize = 'md', // Default to 'md' size\n ...rest\n }: IconProps,\n ref\n ) => {\n // Map `boxSize` to Chakra size tokens using `useToken`\n const sizeMapping = {\n xs: '4',\n sm: '5',\n md: '6',\n lg: '8',\n xl: '10',\n };\n\n const mappedBoxSize =\n sizeMapping[boxSize as keyof typeof sizeMapping] || boxSize;\n const [resolvedBoxSize] = useToken('sizes', [\n mappedBoxSize as string | number,\n ]);\n const [resolvedColor] = useToken('colors', [color || '']);\n\n // Handle react-icons\n if (icon in REACT_ICONS_MAP) {\n const IconComponent = chakra(REACT_ICONS_MAP[icon] as ReactIconType);\n return (\n <IconComponent\n size={resolvedBoxSize}\n color={resolvedColor || color}\n ref={ref}\n {...rest}\n />\n );\n }\n\n // Handle custom SVG icons\n let IconComponent = CUSTOM_ICON_MAP[icon];\n if (!IconComponent) {\n console.warn(\n `No icon component found for ${icon}. Rendering fallback icon.`\n );\n IconComponent = CUSTOM_ICON_MAP['VerticalEllipsis'];\n }\n\n // Wrap the custom icon in Chakra's `chakra` for compatibility\n const ChakraIcon = chakra(IconComponent);\n\n return (\n <ChakraIcon\n {...iconStyles}\n color={resolvedColor}\n boxSize={resolvedBoxSize}\n ref={ref}\n {...rest}\n />\n );\n }\n);\n\nIcon.displayName = 'Icon';\n","import { IconButtonProps } from '@chakra-ui/react';\n\nimport { IconButtonVariant } from './IconButton.types';\n\n// TODO: UX를 위해 hover, active 스타일 구분 필요\nexport const variantStyles: Record<\n Exclude<IconButtonVariant, undefined>,\n Partial<IconButtonProps>\n> = {\n primary: {\n borderColor: 'primary.main',\n bgColor: 'primary.main',\n color: 'white',\n _hover: {\n borderColor: 'blue.800',\n bgColor: 'blue.800',\n },\n },\n secondary: {\n borderColor: 'primary.light',\n bgColor: 'primary.light',\n color: 'primary.main',\n _hover: {\n borderColor: 'blue.200',\n bgColor: 'blue.200',\n },\n },\n tertiary: {\n borderColor: 'gray.400',\n bgColor: 'white',\n color: 'gray.1200',\n _hover: {\n bgColor: 'gray.50',\n },\n },\n danger: {\n borderColor: 'danger.main',\n bgColor: 'danger.main',\n color: 'white',\n _hover: {\n bgColor: 'red.600',\n },\n },\n link: {\n borderColor: 'transparent',\n bgColor: 'transparent',\n borderRadius: 'none',\n _hover: {\n bgColor: 'transparent',\n },\n },\n};\n","import { ForwardedRef, forwardRef } from 'react';\nimport { IconButton as ChakraIconButton } from '@chakra-ui/react';\n\nimport { variantStyles } from './IconButton.styles';\nimport { IconButtonProps } from './IconButton.types';\n\nexport const IconButton = forwardRef(\n (\n { variant = 'link', sx, ...rest }: IconButtonProps,\n ref?: ForwardedRef<HTMLButtonElement>\n ) => {\n return (\n <ChakraIconButton\n border=\"1px solid\"\n borderRadius=\"full\"\n background=\"transparent\"\n {...variantStyles[variant]}\n {...rest}\n ref={ref}\n sx={{\n ...sx,\n '& svg': {\n pointerEvents: 'none',\n ...(sx as any)?.['& svg'],\n },\n '& svg *': {\n pointerEvents: 'none',\n ...(sx as any)?.['& svg *'],\n },\n }}\n />\n );\n }\n);\n\nIconButton.displayName = 'IconButton';\n","import { ForwardedRef, forwardRef } from 'react';\nimport { Tooltip as ChakraTooltip, useTheme } from '@chakra-ui/react';\n\nimport { TooltipProps } from './Tooltip.types';\n\nexport const Tooltip = forwardRef(\n ({ ...rest }: TooltipProps, ref?: ForwardedRef<HTMLDivElement>) => {\n const theme = useTheme();\n return (\n <ChakraTooltip\n bgColor=\"gray.1200\"\n placement=\"top\"\n fontSize={theme.fontSizes.p}\n closeOnScroll\n {...rest}\n ref={ref}\n />\n );\n }\n);\n\nTooltip.displayName = 'Tooltip';\n","import { MouseEventHandler, useState } from 'react';\n\nimport { Icon } from '@/components/Icon';\nimport { IconButton } from '@/components/IconButton';\nimport { IconButtonProps } from '@/components/IconButton/IconButton.types';\nimport { Tooltip } from '@/components/Tooltip';\nimport { useTranslate } from '@/hooks/useTranslate';\n\nexport const CopyButton = ({\n onClick,\n ...rest\n}: Omit<IconButtonProps, 'aria-label'>) => {\n const translate = useTranslate();\n const [labelText, setLabelText] = useState<string>(\n translate('copy') as string\n );\n\n // Allow both boolean and undefined to toggle back and forth between controlled and uncontrolled states fluidly\n const [isTooltipOpen, setIsTooltipOpen] = useState<boolean | undefined>(\n undefined\n );\n\n const handleClick: MouseEventHandler = (e) => {\n // Set it to 'Copied'\n setLabelText(translate('copied') as string);\n // @ts-expect-error - Event type mismatch between generic and specific button events\n onClick?.(e);\n setIsTooltipOpen(true);\n // Set it back to 'Copy' after 2s, and back to an uncontrolled tooltip\n const t = setTimeout(() => {\n setLabelText(translate('copy') as string);\n setIsTooltipOpen(undefined);\n clearTimeout(t);\n }, 3000);\n };\n\n return (\n <Tooltip label={labelText} isOpen={isTooltipOpen} placement=\"top\">\n <IconButton\n aria-label=\"Copy code\"\n icon={<Icon icon=\"FaRegCopy\" boxSize=\"sm\" />}\n onClick={handleClick}\n p={0}\n {...rest}\n />\n </Tooltip>\n );\n};\n","import { lazy, Suspense, useState } from 'react';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport { a11yDark } from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport { Box, Flex, Spinner } from '@chakra-ui/react';\n\nimport { useTranslate } from '@/hooks/useTranslate';\n\nimport { Card } from '../Card';\nimport { InlineCode } from '../InlineCode';\nimport { SegmentedControl } from '../SegmentedControl';\nimport { Subtext } from '../Typography';\nimport { CopyButton } from './_components/CopyButton';\nimport { CodeProps } from './Code.types';\n\n// Use dynamic import to break circular dependency\nconst Markdown = lazy(() =>\n import('../Markdown').then((module) => ({ default: module.Markdown }))\n);\n\nexport const Code = ({\n children,\n language: languageProp,\n onCopy,\n style = a11yDark,\n customStyle,\n hideHeader = false,\n containerProps,\n ...rest\n}: CodeProps) => {\n const language = languageProp === 'js' ? 'javascript' : languageProp;\n\n const translate = useTranslate();\n\n const [isMarkdownPreviewMode, setIsMarkdownPreviewMode] =\n useState<boolean>(false);\n\n const handleCopyClick = () => {\n onCopy?.(children);\n };\n\n const handleMarkdownModeChange = (selectedValue: string) => {\n setIsMarkdownPreviewMode(selectedValue === 'preview');\n };\n\n // On click (not drag), select the code content\n const handleSyntaxHighlighterClick = (\n e: React.MouseEvent<HTMLPreElement>\n ) => {\n // Skip selection on double-click or if user is already selecting text\n if (e.detail > 1 || window.getSelection()?.toString() !== '') {\n return;\n }\n\n try {\n // Find the first child element that contains the code text\n const codeElement = e.currentTarget.querySelector('code');\n\n if (codeElement) {\n const range = document.createRange();\n range.selectNodeContents(codeElement);\n\n const selection = window.getSelection();\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n } catch (error) {\n console.error('Error selecting code content:', error);\n }\n };\n\n return (\n <Card\n p={0}\n borderRadius=\"none\"\n {...containerProps}\n className={['ml-code', containerProps?.className].join(' ')}\n >\n {!hideHeader && language && (\n <Flex\n className=\"ml-code-header\"\n justify=\"space-between\"\n align=\"center\"\n px={4}\n py={2}\n bgColor=\"white\"\n borderBottom=\"1px solid\"\n borderColor=\"primary.light\"\n width=\"100%\"\n zIndex={2} // show above the code block, but below the TopNav\n >\n <Subtext fontWeight=\"bold\" color=\"gray.1200\">\n <pre>{language}</pre>\n </Subtext>\n <Flex align=\"center\" justify=\"flex-end\" gap={2}>\n {language === 'markdown' && (\n <SegmentedControl\n size=\"sm\"\n options={[\n {\n label: translate('code_markdown_raw') as string,\n value: 'raw',\n },\n {\n label: translate('code_markdown_preview') as string,\n value: 'preview',\n },\n ]}\n onSelect={handleMarkdownModeChange}\n />\n )}\n {onCopy && <CopyButton onClick={handleCopyClick} />}\n </Flex>\n </Flex>\n )}\n <Box overflow=\"hidden\">\n <Box position=\"relative\" overflowY=\"scroll\" h=\"fit-content\" p={0}>\n {isMarkdownPreviewMode ? (\n <Box p={2}>\n <Suspense fallback={<Spinner />}>\n <Markdown\n // Prevent infinite loop of markdown rendering\n components={{\n code: ({ className, ...rest }: any) => {\n // className denotes the language of the code block and only exists for block code\n if (!className) {\n return <InlineCode {...rest} />;\n }\n },\n }}\n >\n {children}\n </Markdown>\n </Suspense>\n </Box>\n ) : (\n // @ts-expect-error - SyntaxHighlighter type issues with React 18\n <SyntaxHighlighter\n language={language}\n style={style}\n wrapLines\n wrapLongLines\n {...rest}\n customStyle={{\n maxWidth: '100%',\n margin: 0,\n borderRadius: 0,\n ...customStyle,\n }}\n onClick={handleSyntaxHighlighterClick}\n >\n {children}\n </SyntaxHighlighter>\n )}\n </Box>\n </Box>\n </Card>\n );\n};\n","import { TableScrollState } from './TableContext';\n\nexport type StickyDirection = 'left' | 'right';\n\nexport const getStickyStyles = (\n isSticky: boolean,\n stickyDirection: StickyDirection = 'left',\n scrollState: TableScrollState,\n stickyOffset = 0,\n isLastSticky = false\n) => {\n if (!isSticky || !scrollState) return {};\n const { isScrollStart, isScrollEnd, isScrolling } = scrollState;\n\n // 양쪽 sticky 상태\n const isBothSticky =\n (stickyDirection === 'left' && isScrollEnd) ||\n (stickyDirection === 'right' && isScrollStart);\n\n // 한쪽 sticky 상태\n const isSingleSticky = isScrolling;\n\n // Only show shadow if this is the last sticky column on this side\n const shouldShowShadow = isLastSticky && (isSingleSticky || isBothSticky);\n\n return {\n position: 'sticky' as const,\n overflow: 'visible',\n [stickyDirection]: `${stickyOffset}px`,\n zIndex: 2,\n backgroundColor: 'white',\n ...(shouldShowShadow && {\n _after: {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: '-1px',\n width: '32px',\n insetInlineEnd: stickyDirection === 'left' ? 0 : '100%',\n translate: stickyDirection === 'left' ? '100%' : '-8',\n boxShadow:\n stickyDirection === 'left'\n ? 'rgba(0, 0, 0, 0.16) 8px 0px 8px -8px inset'\n : 'rgba(0, 0, 0, 0.16) -8px 0px 8px -8px inset',\n },\n }),\n };\n};\n","import React, {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nexport interface TableScrollState {\n isScrollStart: boolean;\n isScrollEnd: boolean;\n isScrolling: boolean;\n}\n\ninterface StickyColumnInfo {\n leftColumnWidths: Map<number, number>; // Maps index to width\n rightColumnWidths: Map<number, number>; // Maps index to width\n}\n\ninterface TableContextValue extends TableScrollState {\n setContainerRef: (node: HTMLDivElement | null) => void;\n registerStickyColumn: (\n direction: 'left' | 'right',\n index: number,\n width: number\n ) => void;\n getStickyOffset: (direction: 'left' | 'right', index: number) => number;\n isLastStickyColumn: (direction: 'left' | 'right', index: number) => boolean;\n}\n\nconst TableContext = createContext<TableContextValue | null>(null);\n\nexport const useTableContext = () => {\n const context = useContext(TableContext);\n if (!context) {\n console.error('useTableContext must be used within a TableProvider');\n }\n return context;\n};\n\ninterface TableProviderProps {\n children: ReactNode;\n}\n\nexport const TableProvider: React.FC<TableProviderProps> = ({ children }) => {\n const containerRef = useRef<HTMLDivElement | null>(null);\n const [scrollState, setScrollState] = useState<TableScrollState>({\n isScrollStart: true,\n isScrollEnd: false,\n isScrolling: false,\n });\n\n const stickyColumnsRef = useRef<StickyColumnInfo>({\n leftColumnWidths: new Map(),\n rightColumnWidths: new Map(),\n });\n\n // 스크롤 상태 업데이트\n const updateScrollState = useCallback(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const { scrollLeft, scrollWidth, clientWidth } = container;\n\n const isScrollStart = scrollLeft <= 1;\n const isScrollEnd = Math.abs(scrollWidth - clientWidth - scrollLeft) <= 1;\n\n setScrollState((prevState) => {\n // 상태가 변경된 경우에만 업데이트 (불필요한 리렌더링 방지)\n if (\n prevState.isScrollStart !== isScrollStart ||\n prevState.isScrollEnd !== isScrollEnd ||\n prevState.isScrolling !== (!isScrollStart && !isScrollEnd)\n ) {\n return {\n isScrollStart,\n isScrollEnd,\n isScrolling: !isScrollStart && !isScrollEnd,\n };\n }\n return prevState;\n });\n }, []);\n\n // 컨테이너 ref 설정 및 상태 업데이트\n const setContainerRef = useCallback(\n (node: HTMLDivElement | null) => {\n containerRef.current = node;\n if (node) {\n updateScrollState();\n }\n },\n [updateScrollState]\n );\n\n // Register a sticky column with its width\n const registerStickyColumn = useCallback(\n (direction: 'left' | 'right', index: number, width: number) => {\n if (direction === 'left') {\n stickyColumnsRef.current.leftColumnWidths.set(index, width);\n } else {\n stickyColumnsRef.current.rightColumnWidths.set(index, width);\n }\n },\n []\n );\n\n // Get the offset for a sticky column based on its index and direction\n const getStickyOffset = useCallback(\n (direction: 'left' | 'right', index: number) => {\n if (index === 0) return 0;\n\n const widthsMap =\n direction === 'left'\n ? stickyColumnsRef.current.leftColumnWidths\n : stickyColumnsRef.current.rightColumnWidths;\n\n let offset = 0;\n for (let i = 0; i < index; i++) {\n offset += widthsMap.get(i) || 0;\n }\n\n return offset;\n },\n []\n );\n\n // Check if a column is the last sticky column on its side\n const isLastStickyColumn = useCallback(\n (direction: 'left' | 'right', index: number) => {\n const widthsMap =\n direction === 'left'\n ? stickyColumnsRef.current.leftColumnWidths\n : stickyColumnsRef.current.rightColumnWidths;\n\n // Find the highest index in the map\n let maxIndex = -1;\n for (const idx of widthsMap.keys()) {\n if (idx > maxIndex) maxIndex = idx;\n }\n\n return index === maxIndex;\n },\n []\n );\n\n // 단일 useEffect에서 모든 이벤트 리스너 관리\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n // 스크롤 이벤트 핸들러\n const handleScroll = () => updateScrollState();\n\n // 리사이즈 이벤트 핸들러\n const handleResize = () => updateScrollState();\n\n // 이벤트 리스너 등록\n container.addEventListener('scroll', handleScroll);\n window.addEventListener('resize', handleResize);\n\n // 초기 상태 설정\n updateScrollState();\n\n // 클린업\n return () => {\n container.removeEventListener('scroll', handleScroll);\n window.removeEventListener('resize', handleResize);\n };\n }, [updateScrollState]);\n\n return (\n <TableContext.Provider\n value={{\n ...scrollState,\n setContainerRef,\n registerStickyColumn,\n getStickyOffset,\n isLastStickyColumn,\n }}\n >\n {children}\n </TableContext.Provider>\n );\n};\n","import { useEffect, useRef } from 'react';\nimport { Td as ChakraTd, useToken } from '@chakra-ui/react';\n\nimport { getStickyStyles } from './Table.styles';\nimport { TableCellProps } from './Table.types';\nimport { useTableContext } from './TableContext';\n\nexport const Td = ({\n wrap,\n isSticky = false,\n stickyDirection = 'left',\n stickyIndex = 0,\n _first,\n style,\n className,\n children,\n onClick,\n onMouseEnter,\n onMouseLeave,\n ...rest\n}: TableCellProps & { wrap?: boolean }) => {\n const cellRef = useRef<HTMLTableCellElement>(null);\n const tableContext = useTableContext();\n\n // Define all style variables ahead of time so they can be used constantly\n const grayColor = useToken('colors', 'gray.300');\n const paddingToken = useToken('space', '3'); // py={3} equivalent\n const fontSizeToken = useToken('fontSizes', 'p');\n const spacingToken = useToken('space', '4'); // spacing 4 for paddingInlineStart\n\n // If not inside TableContext, render regular HTML td with same styles\n if (!tableContext) {\n // Extract only standard HTML props for the regular td element\n const htmlProps = {\n className,\n onClick,\n onMouseEnter,\n onMouseLeave,\n // Add other standard HTML props as needed\n };\n\n return (\n <td\n ref={cellRef}\n style={{\n border: 0,\n borderTop: '1px solid',\n borderTopColor: grayColor,\n color: 'inherit',\n fontSize: fontSizeToken,\n paddingTop: paddingToken,\n paddingBottom: paddingToken,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n paddingInlineStart: _first ? spacingToken : undefined,\n ...(wrap\n ? {\n whiteSpace: 'normal',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n }\n : {}),\n ...style,\n }}\n {...htmlProps}\n >\n {children}\n </td>\n );\n }\n\n const {\n registerStickyColumn,\n getStickyOffset,\n isLastStickyColumn,\n ...scrollState\n } = tableContext;\n\n // Update width when element is mounted and dimensions change\n useEffect(() => {\n if (isSticky && cellRef.current) {\n const width = cellRef.current.getBoundingClientRect().width;\n registerStickyColumn(stickyDirection, stickyIndex, width);\n }\n }, [isSticky, registerStickyColumn, stickyDirection, stickyIndex]);\n\n // Get the sticky offset based on the column's position\n const stickyOffset = isSticky\n ? getStickyOffset(stickyDirection, stickyIndex)\n : 0;\n\n // Check if this is the last sticky column on this side\n const isLastSticky =\n isSticky && isLastStickyColumn(stickyDirection, stickyIndex);\n\n // Apply sticky styles with appropriate offset\n const stickyStyles = getStickyStyles(\n isSticky,\n stickyDirection,\n scrollState,\n stickyOffset,\n isLastSticky\n );\n\n return (\n <ChakraTd\n border={0}\n borderTop=\"1px solid\"\n borderTopColor=\"gray.300\"\n color=\"inherit\"\n fontSize=\"p\"\n py={3}\n overflow=\"hidden\"\n textOverflow=\"ellipsis\"\n ref={cellRef}\n style={style}\n _first={{\n '&:not(:last-child)': {\n paddingInlineStart: 4,\n },\n ..._first,\n }}\n {...(wrap\n ? {\n whiteSpace: 'normal',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n }\n : {})}\n {...stickyStyles}\n {...rest}\n >\n {children}\n </ChakraTd>\n );\n};\n\nTd.displayName = 'Td';\n","import { TableRowProps, Tr as ChakraTr } from '@chakra-ui/react';\n\nexport const Tr = ({ ...rest }: TableRowProps) => {\n return <ChakraTr h={12} {...rest} />;\n};\n","import { Children } from 'react';\nimport { Collapse } from '@chakra-ui/react';\n\nimport { Td } from '../Td';\nimport { Tr } from '../Tr';\nimport { ExpandingTrProps } from './ExpandingTr.types';\n\nexport const ExpandingTr: React.FC<ExpandingTrProps> = ({\n children,\n expandedContent,\n isExpanded,\n onExpandChange,\n expandedRowProps,\n ...rest\n}) => {\n const childrenArray = Children.toArray(children);\n\n return (\n <>\n {/* Main Row */}\n <Tr {...rest}>{children}</Tr>\n\n {/* Expanded Row */}\n <Tr h={isExpanded ? undefined : 0} {...expandedRowProps}>\n <Td colSpan={childrenArray.length} p={0}>\n <Collapse in={isExpanded}>{expandedContent}</Collapse>\n </Td>\n </Tr>\n </>\n );\n};\n","import React from 'react';\nimport {\n Table as ChakraTable,\n TableProps as ChakraTableProps,\n} from '@chakra-ui/react';\n\nexport const Table = ({ ...rest }: ChakraTableProps) => {\n return <ChakraTable {...rest} />;\n};\n","import { forwardRef, useCallback } from 'react';\nimport { TableContainer as ChakraTableContainer } from '@chakra-ui/react';\n\nimport { TableContainerProps } from './Table.types';\nimport { TableProvider, useTableContext } from './TableContext';\n\n// 실제 테이블 컨테이너 컴포넌트\nconst TableContainerInner = forwardRef<HTMLDivElement, TableContainerProps>(\n ({ children, ...rest }, ref) => {\n const { setContainerRef } = useTableContext();\n\n // ref 설정 콜백 - 외부 ref와 내부 ref 결합\n const handleRef = useCallback(\n (node: HTMLDivElement | null) => {\n // 외부 ref 설정\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n\n // 내부 컨텍스트 ref 설정\n setContainerRef(node);\n },\n [ref, setContainerRef]\n );\n\n return (\n <ChakraTableContainer\n border=\"1px solid\"\n borderRadius=\"md\"\n borderColor=\"gray.300\"\n ref={handleRef}\n {...rest}\n >\n {children}\n </ChakraTableContainer>\n );\n }\n);\n\nTableContainerInner.displayName = 'TableContainerInner';\n\n// 외부 노출용 컴포넌트\nexport const TableContainer = forwardRef<HTMLDivElement, TableContainerProps>(\n (props, ref) => {\n return (\n <TableProvider>\n <TableContainerInner {...props} ref={ref} />\n </TableProvider>\n );\n }\n);\n\nTableContainer.displayName = 'TableContainer';\n","import { forwardRef } from 'react';\nimport { TableBodyProps, Tbody as ChakraTbody } from '@chakra-ui/react';\n\nexport const Tbody = forwardRef<HTMLTableSectionElement, TableBodyProps>(\n (props, ref) => {\n return (\n <ChakraTbody ref={ref} color=\"gray.1500\" fontWeight=\"medium\" {...props} />\n );\n }\n);\n\nTbody.displayName = 'Tbody';\n","import { forwardRef, useCallback, useEffect, useRef } from 'react';\nimport {\n TableColumnHeaderProps,\n Th as ChakraTh,\n useToken,\n} from '@chakra-ui/react';\n\nimport { getStickyStyles } from './Table.styles';\nimport { TableCellProps } from './Table.types';\nimport { useTableContext } from './TableContext';\n\nexport const Th = forwardRef<\n HTMLTableCellElement,\n TableColumnHeaderProps & TableCellProps\n>(\n (\n {\n isSticky = false,\n stickyDirection = 'left',\n stickyIndex = 0,\n style,\n className,\n children,\n onClick,\n onMouseEnter,\n onMouseLeave,\n ...rest\n },\n forwardedRef\n ) => {\n const tableContext = useTableContext();\n const measureNodeRef = useRef<HTMLTableCellElement | null>(null);\n const fontSizeToken = useToken('fontSizes', 'subtitle');\n const spacingToken = useToken('space', '4'); // spacing 4 for paddingInlineStart\n\n // If not inside TableContext, render regular HTML th with same styles\n if (!tableContext) {\n // Extract only standard HTML props for the regular th element\n const htmlProps = {\n className,\n onClick,\n onMouseEnter,\n onMouseLeave,\n // Add other standard HTML props as needed\n };\n\n // Combine refs for the regular th element\n const setRefsForRegularTh = useCallback(\n (node: HTMLTableCellElement | null) => {\n // Set internal ref\n measureNodeRef.current = node;\n\n // Set forwarded ref\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n },\n [forwardedRef]\n );\n\n return (\n <th\n ref={setRefsForRegularTh}\n style={{\n color: 'inherit',\n fontWeight: 'inherit',\n fontSize: fontSizeToken,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n paddingInlineStart: spacingToken,\n ...style,\n }}\n {...htmlProps}\n >\n {children}\n </th>\n );\n }\n\n const {\n registerStickyColumn,\n getStickyOffset,\n isLastStickyColumn,\n ...scrollState\n } = tableContext;\n\n // Update width when element is mounted and dimensions change\n useEffect(() => {\n if (isSticky && measureNodeRef.current) {\n const width = measureNodeRef.current.getBoundingClientRect().width;\n registerStickyColumn(stickyDirection, stickyIndex, width);\n }\n }, [isSticky, registerStickyColumn, stickyDirection, stickyIndex]);\n\n // Combine refs (forwarded ref and internal ref)\n const setRefs = useCallback(\n (node: HTMLTableCellElement | null) => {\n // Set internal ref\n measureNodeRef.current = node;\n\n // Set forwarded ref\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n },\n [forwardedRef]\n );\n\n // Get the sticky offset based on the column's position\n const stickyOffset = isSticky\n ? getStickyOffset(stickyDirection, stickyIndex)\n : 0;\n\n // Check if this is the last sticky column on this side\n const isLastSticky =\n isSticky && isLastStickyColumn(stickyDirection, stickyIndex);\n\n // Apply sticky styles with appropriate offset\n const stickyStyles = getStickyStyles(\n isSticky,\n stickyDirection,\n scrollState,\n stickyOffset,\n isLastSticky\n );\n\n return (\n <ChakraTh\n color=\"inherit\"\n fontWeight=\"inherit\"\n fontSize=\"subtitle\"\n overflow=\"hidden\"\n textOverflow=\"ellipsis\"\n ref={setRefs}\n style={style}\n _first={{\n '&:not(:last-child)': {\n paddingInlineStart: 4,\n },\n }}\n {...stickyStyles}\n {...rest}\n >\n {children}\n </ChakraTh>\n );\n }\n);\n\nTh.displayName = 'Th';\n","import { TableHeadProps, Thead as ChakraThead } from '@chakra-ui/react';\n\nexport const Thead = ({ ...rest }: TableHeadProps) => {\n return <ChakraThead color=\"gray.800\" fontWeight=\"medium\" {...rest} />;\n};\n",".markdownStyles {\n color: black;\n display: flex;\n flex-direction: column;\n gap: 1.2em; /* Intended for longer form content like update modals */\n}\n\n.markdownStyles > h1,\n.markdownStyles > h2,\n.markdownStyles > h3,\n.markdownStyles > h4 {\n margin-bottom: 0.5em !important;\n}\n.markdownStyles > h1:not(:first-child),\n.markdownStyles > h2:not(:first-child),\n.markdownStyles > h3:not(:first-child),\n.markdownStyles > h4:not(:first-child) {\n margin-top: 1em !important;\n}\n\n.markdownStyles ol,\n.markdownStyles ul {\n margin-top: 8px;\n padding-inline-start: 16px;\n}\n.markdownStyles li {\n /* 1.5x standard line height */\n line-height: calc(16px * 1.5);\n margin-bottom: 8px;\n}\n","import ReactMarkdown from 'react-markdown';\nimport { Box } from '@chakra-ui/react';\nimport rehypeKatex from 'rehype-katex';\nimport rehypeRaw from 'rehype-raw';\nimport remarkBreaks from 'remark-breaks';\nimport remarkFlexibleMarkers from 'remark-flexible-markers';\nimport remarkGfm from 'remark-gfm';\nimport remarkMath from 'remark-math';\n\nimport { formatForMarkdown } from '@/utils/formatTextForMarkdown';\n\nimport 'katex/dist/katex.min.css'; // Import KaTeX CSS\n\nimport { Code } from '../Code';\nimport { InlineCode } from '../InlineCode';\nimport { Table, TableContainer, Tbody, Td, Th, Thead, Tr } from '../Table';\nimport { H1, H2, H3, H4, H5, Link, Subtitle, Text } from '../Typography';\nimport MarkdownStyles from './Markdown.module.css';\nimport { MarkdownProps } from './Markdown.types';\n\n// Simple wrapper components to avoid type issues\nconst H1Wrapper = (props: any) => <H1 {...props} />;\nconst H2Wrapper = (props: any) => <H2 {...props} />;\nconst H3Wrapper = (props: any) => <H3 {...props} />;\nconst H4Wrapper = (props: any) => <H4 {...props} />;\nconst H5Wrapper = (props: any) => <H5 {...props} />;\nconst SubtitleWrapper = (props: any) => <Subtitle {...props} />;\nconst TheadWrapper = (props: any) => <Thead {...props} />;\nconst TbodyWrapper = (props: any) => <Tbody {...props} />;\nconst TrWrapper = (props: any) => <Tr {...props} />;\nconst TdWrapper = (props: any) => <Td {...props} />;\nconst ThWrapper = (props: any) => <Th {...props} />;\n\n// Prepare base components\nexport const baseMarkdownComponents = {\n h1: H1Wrapper,\n h2: H2Wrapper,\n h3: H3Wrapper,\n h4: H4Wrapper,\n h5: H5Wrapper,\n h6: SubtitleWrapper,\n // The key fix: instead of trying to unwrap pre/code combinations,\n // we customize just the code element to detect if it's a code block\n code: ({ inline, className, children, ...props }: any) => {\n // If it's inline code (no language class), use InlineCode component\n if (inline || !className) {\n return <InlineCode {...props}>{children}</InlineCode>;\n }\n\n // For code blocks, use the Code component with language\n const language = className.match(/language-(.*)/)?.[1];\n return (\n <Code\n language={language}\n onCopy={(textToCopy: string) => {\n navigator.clipboard\n .writeText(textToCopy)\n .then(() => {\n console.log('Text copied to clipboard');\n })\n .catch((err) => {\n console.error('Could not copy text to clipboard:', err);\n });\n }}\n containerProps={{ mb: 4, className }}\n {...props}\n >\n {children}\n </Code>\n );\n },\n // Make the pre tag a no-op that just renders children\n pre: ({ children }: any) => <Box>{children}</Box>,\n p: (props: any) => <Text color=\"inherit\" {...props} />,\n a: ({ style, ...rest }: any) => (\n // `children` should be inside ...rest\n <Link target=\"_blank\" {...rest} />\n ),\n ol: ({ style, ...rest }: any) => (\n <ol\n style={{ paddingInlineStart: '22px', color: 'inherit', ...style }}\n {...rest}\n />\n ),\n ul: ({ style, ...rest }: any) => (\n <ul\n style={{ paddingInlineStart: '22px', color: 'inherit', ...style }}\n {...rest}\n />\n ),\n img: ({ style, ...rest }: any) => (\n <img style={{ maxWidth: '100%', ...style }} alt=\"chat-image\" {...rest} />\n ),\n table: (props: any) => (\n <TableContainer mt={4}>\n <Table {...props} />\n </TableContainer>\n ),\n thead: TheadWrapper,\n tbody: TbodyWrapper,\n tr: TrWrapper,\n td: TdWrapper,\n th: ThWrapper,\n};\n\nexport const Markdown = ({\n className,\n components,\n children,\n ...rest\n}: MarkdownProps) => {\n // Combine with any custom components provided by the user\n // The user-provided ones will override our defaults if there's a conflict\n const allComponents = { ...baseMarkdownComponents, ...components };\n\n return (\n <div className={[MarkdownStyles.markdownStyles, className].join(' ')}>\n <ReactMarkdown\n remarkPlugins={[\n remarkGfm,\n remarkFlexibleMarkers,\n remarkBreaks,\n remarkMath,\n ]}\n rehypePlugins={[rehypeRaw, rehypeKatex]}\n components={allComponents}\n {...rest}\n >\n {formatForMarkdown(children ?? '')}\n </ReactMarkdown>\n </div>\n );\n};\n"]}
|