@digi-frontend/dgate-api-documentation 3.1.2 → 3.1.4

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 +1 @@
1
- {"version":3,"file":"index.cjs","names":["antdTheme","token","keys: string[]","token","Typography","EndpointItem: React.FC<EndpointItemProps>","Tag","Text","title: React.ReactNode","Sidebar: React.FC<{\n searchValue: string\n setSearchValue: (text: string) => void\n}>","Resizable","Tooltip","Input","SearchOutlined","Button","Minify","Tree","Flex","token","EmptyImg","Text","token","Tooltip","Title","Flex","Button","LinkIcon","Text","Divider","Card","useStore","filtered: typeof tags","Flex","token","Title","ApiCard","Divider","Tooltip","Tag","SecuritySafe","Select","InfoCircleOutlined","Radio","GridIcon","ListIcon","Text","Typography","Tag","EndpointPage: React.FC","useStore","token","requestTabs: RequestTab[]","Table","Button","LeftOutlined","Breadcrumb","Title","Card","Tabs","MainContent: React.FC<{\n searchEnabled: boolean\n handleResetSearch: () => void\n handleVisitLandingPage?: () => void\n}>","useStore","token","Flex","EmptyImg","Title","Text","Button","MouseSquareIcon","groupedPathsByTags: Record<string, EndpointData[]>","currentVersion: string","authType: string","curl: string","SyntaxHighlighter","json","token","hljs","useStore","token","tokens","Typography","Tooltip","Button","CopyOutlined","Codebox","Select","useStore","token","CodeboxSidebar"],"sources":["../src/store/slices/view.ts","../src/store/slices/editor.ts","../src/store/index.ts","../src/hooks/useStyle.ts","../src/theme/light.json","../src/view/helper/sidebar.utils.ts","../src/view/helper/sidebar.components.tsx","../src/hooks/useNodeSelection.ts","../src/assets/Minify.svg","../src/assets/NoDataSM.svg","../src/view/components/Sidebar.tsx","../src/assets/grid.svg","../src/assets/list.svg","../src/assets/link.svg","../src/view/components/ApiPage/components/ApiCard.tsx","../src/utils/index.ts","../src/assets/securitySafe.svg","../src/view/components/ApiPage/index.tsx","../src/view/components/EndpointPage/EndpointPage.tsx","../src/assets/NoData.svg","../src/assets/mouseSquare.svg","../src/view/components/MainContent.tsx","../src/view/helper/mutate.ts","../src/assets/copy.svg","../src/view/components/EndpointPage/Codebox/Codebox.tsx","../src/view/components/CodeboxSidebar.tsx","../src/view/layout.tsx"],"sourcesContent":["import { OpenAPIFile } from '@doc-lib/types/OpenApi'\nimport { EndpointData, OverviewData } from '@doc-lib/view/entities'\nimport { transformOpenApiToDocs } from '@doc-lib/view/helper/mutate'\nimport { TreeNode } from '@doc-lib/view/helper'\n\ntype SetFn = (fn: (state: ViewSlice) => void) => void\n\ntype ViewSlice = {\n view: {\n originalData: OpenAPIFile[] | null\n transformedData: ReturnType<typeof transformOpenApiToDocs>[] | null\n builtTreeData: TreeNode[] | null\n selectedNodeKey: string | null\n expandedKeys: string[]\n selectedApi: OverviewData | null\n selectedEndpoint: EndpointData | null\n focusedContent: 'API' | 'ENDPOINT'\n selectedStatusCode: number | null\n focusedTag: string | null\n setSelectedStatusCode: (code: number | null) => void\n statusCodeOptions: number[]\n // Actions\n setSelectedNodeKey: (key: string | null) => void\n setExpandedKeys: (keys: string[]) => void\n setOriginalData: (data: OpenAPIFile[]) => void\n setSelectedApi: (api: OverviewData | null) => void\n setSelectedEndpoint: (endpoint: EndpointData | null) => void\n setTransformedData: (data: ReturnType<typeof transformOpenApiToDocs>[] | null) => void\n setBuiltTreeData: (data: TreeNode[] | null) => void\n setFocusedContent: (content: 'API' | 'ENDPOINT' | null) => void\n setStatusCodeOptions: (options: number[]) => void\n setFocusedTag: (tag: string | null) => void\n }\n}\n\nexport const createViewSlice = (set: SetFn) => ({\n view: {\n selectedNodeKey: null,\n expandedKeys: [],\n originalData: null,\n transformedData: null,\n builtTreeData: null,\n selectedApi: undefined,\n selectedEndpoint: undefined,\n focusedContent: undefined,\n selectedStatusCode: null,\n statusCodeOptions: null,\n focusedTag: null,\n\n setFocusedTag: (tag: string | null) =>\n set((state) => {\n state.view.focusedTag = tag\n }),\n\n setSelectedNodeKey: (key: string | null) =>\n set((state) => {\n state.view.selectedNodeKey = key\n }),\n\n setExpandedKeys: (keys: string[]) =>\n set((state) => {\n state.view.expandedKeys = keys\n }),\n\n setOriginalData: (data: OpenAPIFile[]) =>\n set((state) => {\n state.view.originalData = data\n }),\n\n setSelectedApi: (api: OverviewData) =>\n set((state) => {\n state.view.selectedApi = api as OverviewData\n }),\n\n setSelectedEndpoint: (endpoint: EndpointData) =>\n set((state) => {\n if (endpoint) {\n const availableStatusCodes = Object.keys(endpoint?.responses)\n state.view.statusCodeOptions = availableStatusCodes.map(Number)\n state.view.selectedStatusCode = availableStatusCodes.at(0)\n ? Number(availableStatusCodes.at(0))\n : null\n }\n state.view.selectedEndpoint = endpoint\n }),\n\n setTransformedData: (data: ReturnType<typeof transformOpenApiToDocs>[] | null) =>\n set((state) => {\n state.view.transformedData = data\n }),\n\n setBuiltTreeData: (data: TreeNode[] | null) => {\n return set((state) => {\n state.view.builtTreeData = data\n })\n },\n\n setFocusedContent: (content: 'API' | 'ENDPOINT') =>\n set((state) => {\n state.view.focusedContent = content\n }),\n\n setSelectedStatusCode: (code: number | null) =>\n set((state) => {\n state.view.selectedStatusCode = code\n }),\n } as unknown as ViewSlice['view'],\n})\n","type SetFn = (fn: (state: EditorSlice) => void) => void\n\ntype EditorSlice = {\n content: string\n isEditing: boolean\n hasUnsavedChanges: boolean\n fontSize: number\n theme: 'vs-light' | 'vs-dark'\n wordWrap: boolean\n lineNumbers: boolean\n cursorPosition: { line: number; column: number }\n}\n\nexport const createEditorSlice = (set: SetFn) => ({\n editor: {\n content: '',\n isEditing: false,\n hasUnsavedChanges: false,\n fontSize: 14,\n theme: 'vs-light' as 'vs-light' | 'vs-dark',\n wordWrap: true,\n lineNumbers: true,\n cursorPosition: { line: 1, column: 1 },\n\n setContent: (content: string) =>\n set((state) => {\n state.content = content\n state.hasUnsavedChanges = true\n }),\n\n setIsEditing: (editing: boolean) =>\n set((state) => {\n state.isEditing = editing\n }),\n\n setFontSize: (size: number) =>\n set((state) => {\n state.fontSize = Math.max(10, Math.min(24, size))\n }),\n\n setEditorTheme: (theme: 'vs-light' | 'vs-dark') =>\n set((state) => {\n state.theme = theme\n }),\n\n toggleWordWrap: () =>\n set((state) => {\n state.wordWrap = !state.wordWrap\n }),\n\n toggleLineNumbers: () =>\n set((state) => {\n state.lineNumbers = !state.lineNumbers\n }),\n\n setCursorPosition: (position: { line: number; column: number }) =>\n set((state) => {\n state.cursorPosition = position\n }),\n\n saveContent: () =>\n set((state) => {\n state.hasUnsavedChanges = false\n }),\n\n resetContent: () =>\n set((state) => {\n state.content = ''\n state.hasUnsavedChanges = false\n state.isEditing = false\n }),\n },\n})\n","import { create } from 'zustand'\nimport { devtools } from 'zustand/middleware'\nimport { immer } from 'zustand/middleware/immer'\nimport { createViewSlice } from './slices/view'\nimport { createEditorSlice } from './slices/editor'\n\ntype SetFn = (fn: (state: unknown) => void) => void\n\nconst createStore = (set: SetFn) => ({\n ...createViewSlice(set as Parameters<typeof createViewSlice>[0]),\n ...createEditorSlice(set as Parameters<typeof createEditorSlice>[0]),\n})\n\nexport const useStore = create<ReturnType<typeof createStore>>()(\n devtools(immer(createStore), {\n name: 'dgate-docs-store',\n })\n)\n\nexport type StoreState = ReturnType<typeof createStore>\nexport default useStore\n","'use client'\n\nimport { theme as antdTheme } from 'antd'\nimport { useStyleRegister } from '@ant-design/cssinjs'\nimport type { CSSObject } from '@ant-design/cssinjs'\n\nexport function useStyle(\n componentName: string,\n stylesFn: (\n token: ReturnType<typeof antdTheme.useToken>['token'],\n scope: (className: string) => string\n ) => Record<string, CSSObject>\n) {\n const { token, theme, hashId } = antdTheme.useToken()\n\n // Used in styles for full specificity:\n // → .css-dev-only-do-not-override-xxx.ComponentName-className\n const scope = (className: string) => `.${hashId}.${componentName}-${className}`\n\n // Used in JSX: className=\"ComponentName-className css-dev-only-do-not-override-xxx\"\n const cx = (...classes: string[]) =>\n classes.map((cls) => `${componentName}-${cls} ${hashId}`).join(' ')\n\n const wrapSSR = useStyleRegister(\n {\n theme,\n token,\n path: [componentName],\n },\n () => stylesFn(token, scope)\n )\n\n return { wrapSSR, cx, scope, token, hashId }\n}\n","{\n \"token\": {\n \"brnadColor.1\": \"#f1f5fd\",\n \"brnadColor.2\": \"#e0e9f9\",\n \"brnadColor.3\": \"#c8d8f5\",\n \"brnadColor.4\": \"#a2bfee\",\n \"brnadColor.5\": \"#769de4\",\n \"brnadColor.6\": \"#4d75d9\",\n \"brnadColor.7\": \"#4261ce\",\n \"brnadColor.8\": \"#384fbd\",\n \"brnadColor.9\": \"#33419a\",\n \"brnadColor.10\": \"#20264b\",\n \"cyan.1\": \"#e6fffb\",\n \"cyan.2\": \"#b5f5ec\",\n \"cyan.3\": \"#87e8de\",\n \"cyan.4\": \"#5cdbd3\",\n \"cyan.5\": \"#36cfc9\",\n \"cyan.6\": \"#13c2c2\",\n \"cyan.7\": \"#08979c\",\n \"cyan.8\": \"#006d75\",\n \"cyan.9\": \"#00474f\",\n \"cyan.10\": \"#002329\",\n \"geekblue.1\": \"#f0f5ff\",\n \"geekblue.2\": \"#d6e4ff\",\n \"geekblue.3\": \"#adc6ff\",\n \"geekblue.4\": \"#85a5ff\",\n \"geekblue.5\": \"#597ef7\",\n \"geekblue.6\": \"#2f54eb\",\n \"geekblue.7\": \"#1d39c4\",\n \"geekblue.8\": \"#10239e\",\n \"geekblue.9\": \"#061178\",\n \"geekblue.10\": \"#030852\",\n \"gold.1\": \"#fffbe6\",\n \"gold.2\": \"#fff1b8\",\n \"gold.3\": \"#ffe58f\",\n \"gold.4\": \"#ffd666\",\n \"gold.5\": \"#ffc53d\",\n \"gold.6\": \"#faad14\",\n \"gold.7\": \"#d48806\",\n \"gold.8\": \"#ad6800\",\n \"gold.9\": \"#874d00\",\n \"gold.10\": \"#613400\",\n \"green.1\": \"#f6ffed\",\n \"green.2\": \"#d9f7be\",\n \"green.3\": \"#b7eb8f\",\n \"green.4\": \"#95de64\",\n \"green.5\": \"#73d13d\",\n \"green.6\": \"#52c41a\",\n \"green.7\": \"#389e0d\",\n \"green.8\": \"#237804\",\n \"green.9\": \"#135200\",\n \"green.10\": \"#092b00\",\n \"lime.1\": \"#fcffe6\",\n \"lime.2\": \"#f4ffb8\",\n \"lime.3\": \"#eaff8f\",\n \"lime.4\": \"#d3f261\",\n \"lime.5\": \"#bae637\",\n \"lime.6\": \"#a0d911\",\n \"lime.7\": \"#7cb305\",\n \"lime.8\": \"#5b8c00\",\n \"lime.9\": \"#3f6600\",\n \"lime.10\": \"#254000\",\n \"magenta.1\": \"#fff0f6\",\n \"magenta.2\": \"#ffd6e7\",\n \"magenta.3\": \"#ffadd2\",\n \"magenta.4\": \"#ff85c0\",\n \"magenta.5\": \"#f759ab\",\n \"magenta.6\": \"#eb2f96\",\n \"magenta.7\": \"#c41d7f\",\n \"magenta.8\": \"#9e1068\",\n \"magenta.9\": \"#780650\",\n \"magenta.10\": \"#520339\",\n \"orange.1\": \"#fff7e6\",\n \"orange.2\": \"#ffe7ba\",\n \"orange.3\": \"#ffd591\",\n \"orange.4\": \"#ffc069\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextSecondary\": \"rgba(0, 0, 0, 0.65)\",\n \"orange.5\": \"#ffa940\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"orange.6\": \"#fa8c16\",\n \"orange.7\": \"#d46b08\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextLabel\": \"rgba(0, 0, 0, 0.65)\",\n \"orange.8\": \"#ad4e00\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"orange.9\": \"#873800\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"orange.10\": \"#612500\",\n \"purple.1\": \"#f9f0ff\",\n \"purple.2\": \"#efdbff\",\n \"purple.3\": \"#d3adf7\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"purple.4\": \"#b37feb\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorBgContainer\": \"#ffffff\",\n \"purple.5\": \"#9254de\",\n \"colorBgElevated\": \"#ffffff\",\n \"purple.6\": \"#722ed1\",\n \"colorBgLayout\": \"#f5f5f5\",\n \"purple.7\": \"#531dab\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"purple.8\": \"#391085\",\n \"colorBgSpotlight\": \"rgba(0, 0, 0, 0.85)\",\n \"purple.9\": \"#22075e\",\n \"colorBorder\": \"#d9d9d9\",\n \"purple.10\": \"#120338\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"red.1\": \"#fff1f0\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\",\n \"red.2\": \"#ffccc7\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillQuaternary\": \"rgba(0, 0, 0, 0.02)\",\n \"red.3\": \"#ffa39e\",\n \"red.4\": \"#ff7875\",\n \"colorWhite\": \"#ffffff\",\n \"red.5\": \"#ff4d4f\",\n \"colorBgBase\": \"#ffffff\",\n \"red.6\": \"#f5222d\",\n \"colorTextBase\": \"#000000\",\n \"red.7\": \"#cf1322\",\n \"red.8\": \"#a8071a\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"red.9\": \"#820014\",\n \"colorBgTextActive\": \"rgba(0, 0, 0, 0.15)\",\n \"red.10\": \"#5c0011\",\n \"colorBgTextHover\": \"rgba(0, 0, 0, 0.06)\",\n \"volcano.1\": \"#fff2e8\",\n \"colorBorderBg\": \"#ffffff\",\n \"volcano.2\": \"#ffd8bf\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"volcano.3\": \"#ffbb96\",\n \"colorFillContentHover\": \"rgba(0, 0, 0, 0.15)\",\n \"volcano.4\": \"#ff9c6e\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"volcano.5\": \"#ff7a45\",\n \"volcano.6\": \"#fa541c\",\n \"volcano.7\": \"#d4380d\",\n \"transparent\": \"rgba(0, 0, 0, 0)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"yellow.1\": \"#feffe6\",\n \"volcano.8\": \"#ad2102\",\n \"yellow.2\": \"#ffffb8\",\n \"yellow.3\": \"#fffb8f\",\n \"volcano.9\": \"#871400\",\n \"yellow.4\": \"#fff566\",\n \"volcano.10\": \"#610b00\",\n \"yellow.5\": \"#ffec3d\",\n \"yellow.6\": \"#fadb14\",\n \"yellow.7\": \"#d4b106\",\n \"yellow.8\": \"#ad8b00\",\n \"yellow.9\": \"#876800\",\n \"yellow.10\": \"#614700\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorSuccess\": \"#52c41a\",\n \"colorWarning\": \"#faad14\",\n \"colorInfo\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"colorLink\": \"#4d75d9\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"colorErrorBorder\": \"#ffccc7\",\n \"colorErrorBorderHover\": \"#ffa39e\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorErrorActive\": \"#d9363e\",\n \"colorErrorTextHover\": \"#ff7875\",\n \"colorErrorText\": \"#ff4d4f\",\n \"colorErrorTextActive\": \"#d9363e\",\n \"colorLinkHover\": \"#769de4\",\n \"colorInfoBg\": \"#f1f5fd\",\n \"colorInfoBgHover\": \"#e0e9f9\",\n \"colorInfoBorder\": \"#c8d8f5\",\n \"colorInfoBorderHover\": \"#a2bfee\",\n \"colorInfoHover\": \"#769de4\",\n \"colorInfoActive\": \"#4261ce\",\n \"colorInfoTextHover\": \"#769de4\",\n \"colorInfoText\": \"#4d75d9\",\n \"colorInfoTextActive\": \"#4261ce\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorPrimaryBg\": \"#f1f5fd\",\n \"colorPrimaryBgHover\": \"#e0e9f9\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimaryBorderHover\": \"#a2bfee\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimaryTextHover\": \"#769de4\",\n \"colorPrimaryText\": \"#4d75d9\",\n \"colorPrimaryTextActive\": \"#4261ce\",\n \"colorSuccessBg\": \"#f6ffed\",\n \"colorSuccessBgHover\": \"#d9f7be\",\n \"colorSuccessBorder\": \"#b7eb8f\",\n \"colorSuccessBorderHover\": \"#95de64\",\n \"colorSuccessHover\": \"#95de64\",\n \"colorSuccessActive\": \"#389e0d\",\n \"colorSuccessTextHover\": \"#73d13d\",\n \"colorSuccessText\": \"#52c41a\",\n \"colorSuccessTextActive\": \"#389e0d\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorWarningBorder\": \"#ffe58f\",\n \"colorWarningBorderHover\": \"#ffd666\",\n \"colorWarningHover\": \"#ffd666\",\n \"colorWarningActive\": \"#d48806\",\n \"colorWarningTextHover\": \"#ffc53d\",\n \"colorWarningText\": \"#faad14\",\n \"colorWarningTextActive\": \"#d48806\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlItemBgActiveDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlTmpOutline\": \"rgba(0, 0, 0, 0.02)\",\n \"borderRadius\": 6,\n \"borderRadiusLG\": 8,\n \"borderRadiusSM\": 4,\n \"borderRadiusXS\": 2,\n \"sizeStep\": 4,\n \"sizeUnit\": 4,\n \"controlInteractiveSize\": 16,\n \"size\": 16,\n \"sizeLG\": 24,\n \"sizeMD\": 20,\n \"sizeMS\": 16,\n \"sizeSM\": 12,\n \"sizeXL\": 32,\n \"sizeXS\": 8,\n \"sizeXXL\": 48,\n \"controlHeight\": 32,\n \"sizeXXS\": 4,\n \"controlHeightLG\": 40,\n \"controlHeightSM\": 24,\n \"controlHeightXS\": 16,\n \"lineWidth\": 1,\n \"lineWidthBold\": 2,\n \"lineWidthFocus\": 4,\n \"controlOutlineWidth\": 2,\n \"screenLG\": 992,\n \"screenLGMax\": 1199,\n \"screenLGMin\": 992,\n \"screenMD\": 768,\n \"screenMDMax\": 991,\n \"screenMDMin\": 768,\n \"screenSM\": 576,\n \"screenSMMax\": 767,\n \"screenSMMin\": 576,\n \"screenXL\": 1200,\n \"screenXLMax\": 1599,\n \"screenXLMin\": 1200,\n \"screenXS\": 480,\n \"screenXSMax\": 575,\n \"screenXSMin\": 480,\n \"screenXXL\": 1600,\n \"screenXXLMin\": 1600,\n \"sizePopupArrow\": 16,\n \"margin\": 16,\n \"marginLG\": 24,\n \"marginMD\": 20,\n \"marginSM\": 12,\n \"marginXL\": 32,\n \"marginXS\": 8,\n \"marginXXL\": 48,\n \"marginXXS\": 4,\n \"padding\": 16,\n \"paddingLG\": 24,\n \"paddingMD\": 20,\n \"paddingSM\": 12,\n \"paddingXL\": 32,\n \"paddingXS\": 8,\n \"paddingXXS\": 4,\n \"paddingContentHorizontal\": 16,\n \"paddingContentHorizontalLG\": 24,\n \"paddingContentHorizontalSM\": 16,\n \"paddingContentVertical\": 12,\n \"paddingContentVerticalLG\": 16,\n \"paddingContentVerticalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlPaddingHorizontalSM\": 8,\n \"fontFamily\": \"SF Pro\",\n \"fontFamilyCode\": \"Courier Prime\",\n \"fontSize\": 14,\n \"fontSizeLG\": 16,\n \"fontSizeSM\": 12,\n \"fontSizeXL\": 20,\n \"fontSizeHeading1\": 38,\n \"fontSizeHeading2\": 30,\n \"fontSizeHeading3\": 24,\n \"fontSizeHeading4\": 20,\n \"fontSizeHeading5\": 16,\n \"lineHeight\": 1.5714285714285714,\n \"lineHeightHeading1\": 1.2105263157894737,\n \"lineHeightHeading2\": 1.2666666666666666,\n \"lineHeightHeading3\": 1.3333333333333333,\n \"lineHeightHeading4\": 1.4,\n \"lineHeightHeading5\": 1.5,\n \"lineHeightLG\": 1.5,\n \"lineHeightSM\": 1.6666666666666667,\n \"fontSizeIcon\": 12,\n \"fontWeightStrong\": 600,\n \"colorFillAlterSolid\": \"#fafafa\",\n \"fontWeightNormal\": 400,\n \"colorFilledHandleBg\": \"#f0f0f0\",\n \"colorBgSolid\": \"#000000\",\n \"colorBgSolidActive\": \"rgba(0, 0, 0, 0.95)\",\n \"colorBgSolidHover\": \"rgba(0, 0, 0, 0.75)\",\n \"solidTextColor\": \"#ffffff\",\n \"pink.1\": \"#fff0f6\",\n \"pink.2\": \"#ffd6e7\",\n \"pink.3\": \"#ffadd2\",\n \"pink.4\": \"#ff85c0\",\n \"pink.5\": \"#f759ab\",\n \"pink.6\": \"#eb2f96\",\n \"pink.7\": \"#c41d7f\",\n \"pink.8\": \"#9e1068\",\n \"pink.9\": \"#780650\",\n \"pink.10\": \"#520339\",\n \"sizeXXXL\": 60,\n \"sizeXXXXL\": 72,\n \"paddingXXL\": 48,\n \"paddingXXXL\": 60,\n \"paddingXXXXL\": 72,\n \"marginXXXL\": 60,\n \"marginXXXXL\": 72\n },\n \"components\": {\n \"Input\": {\n \"paddingInlineSM\": 7,\n \"paddingInlineLG\": 11,\n \"paddingInline\": 11,\n \"paddingBlockSM\": 0,\n \"paddingBlockLG\": 7,\n \"paddingBlock\": 4,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarningBorderHover\": \"#ffd666\",\n \"colorWarning\": \"#faad14\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorBorderHover\": \"#ffa39e\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"hoverBorderColor\": \"#769de4\",\n \"addonBg\": \"rgba(0, 0, 0, 0.02)\",\n \"activeBorderColor\": \"#4d75d9\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorWarningText\": \"#faad14\",\n \"colorErrorText\": \"#ff4d4f\",\n \"activeBg\": \"#ffffff\",\n \"hoverBg\": \"#ffffff\",\n \"inputFontSize\": 14,\n \"inputFontSizeLG\": 16,\n \"inputFontSizeSM\": 12,\n \"fontFamily\": \"SF Pro\"\n },\n \"Transfer\": {\n \"listWidthLG\": 250,\n \"listWidth\": 180,\n \"listHeight\": 200,\n \"itemPaddingBlock\": 5,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"colorWarning\": \"#faad14\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorLinkHover\": \"#769de4\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"itemHeight\": 32,\n \"headerHeight\": 40,\n \"fontFamily\": \"SF Pro\"\n },\n \"Segmented\": {\n \"segmentedBgColorSelected\": \"#ffffff\",\n \"paddingXXS\": 4,\n \"marginSM\": 12,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextLabel\": \"rgba(0, 0, 0, 0.65)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBgLayout\": \"#f5f5f5\",\n \"colorBgElevated\": \"#ffffff\",\n \"segmentedGroupBg\": \"rgba(0, 0, 0, 0.04)\",\n \"itemSelectedColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemSelectedBg\": \"#ffffff\",\n \"itemHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"itemColor\": \"rgba(0, 0, 0, 0.65)\",\n \"itemActiveBg\": \"rgba(0, 0, 0, 0.15)\",\n \"trackPadding\": 2,\n \"trackBg\": \"#f5f5f5\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Switch\": {\n \"trackPadding\": 2,\n \"trackMinWidthSM\": 28,\n \"trackMinWidth\": 44,\n \"trackHeightSM\": 16,\n \"trackHeight\": 22,\n \"handleSizeSM\": 12,\n \"handleSize\": 18,\n \"marginXXS\": 4,\n \"lineWidthFocus\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlHeight\": 32,\n \"colorWhite\": \"#ffffff\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"handleBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"TimePicker\": {\n \"timeColumnWidth\": 56,\n \"timeColumnHeight\": 224,\n \"timeCellHeight\": 28,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"sizePopupArrow\": 16,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarning\": \"#faad14\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"hoverBorderColor\": \"#769de4\",\n \"cellHoverBg\": \"rgba(0, 0, 0, 0.04)\",\n \"cellHeight\": 24,\n \"activeBorderColor\": \"#4d75d9\",\n \"paddingInline\": 11,\n \"paddingInlineLG\": 11,\n \"paddingInlineSM\": 7,\n \"activeBg\": \"#ffffff\",\n \"hoverBg\": \"#ffffff\",\n \"cellBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"cellActiveWithRangeBg\": \"#f1f5fd\",\n \"cellHoverWithRangeBg\": \"#c8dfff\",\n \"cellRangeBorderColor\": \"#7cb3ff\",\n \"multipleItemBg\": \"rgba(0, 0, 0, 0.06)\",\n \"multipleItemBorderColor\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemBorderColorDisabled\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"multipleSelectorBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"cellWidth\": 36,\n \"multipleItemHeight\": 24,\n \"multipleItemHeightLG\": 32,\n \"multipleItemHeightSM\": 16,\n \"paddingBlock\": 4,\n \"paddingBlockLG\": 7,\n \"paddingBlockSM\": 0,\n \"presetsMaxWidth\": 200,\n \"presetsWidth\": 120,\n \"textHeight\": 40,\n \"withoutTimeCellHeight\": 66,\n \"inputFontSize\": 14,\n \"inputFontSizeLG\": 16,\n \"inputFontSizeSM\": 12,\n \"fontFamily\": \"SF Pro\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\"\n },\n \"Timeline\": {\n \"itemPaddingBottom\": 20,\n \"paddingXXS\": 4,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"margin\": 16,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgContainer\": \"#ffffff\",\n \"tailColor\": \"rgba(0, 0, 0, 0.06)\",\n \"dotBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Tabs\": {\n \"horizontalItemGutter\": 32,\n \"cardGutter\": 2,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainer\": \"#ffffff\",\n \"itemSelectedColor\": \"#4d75d9\",\n \"itemHoverColor\": \"#769de4\",\n \"itemColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemActiveColor\": \"#4261ce\",\n \"inkBarColor\": \"#4d75d9\",\n \"cardHeight\": 40,\n \"cardBg\": \"rgba(0, 0, 0, 0.02)\",\n \"titleFontSize\": 14,\n \"titleFontSizeLG\": 16,\n \"titleFontSizeSM\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Table\": {\n \"stickyScrollBarBorderRadius\": 100,\n \"headerSplitColor\": \"#f0f0f0\",\n \"headerBg\": \"rgba(0, 0, 0, 0.02)\",\n \"footerBg\": \"rgba(0, 0, 0, 0.02)\",\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlInteractiveSize\": 16,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBgContainer\": \"#ffffff\",\n \"rowSelectedHoverBg\": \"#e0e9f9\",\n \"headerFilterHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"headerColor\": \"rgba(0, 0, 0, 0.88)\",\n \"headerBorderRadius\": 8,\n \"footerColor\": \"rgba(0, 0, 0, 0.88)\",\n \"filterDropdownMenuBg\": \"#ffffff\",\n \"filterDropdownBg\": \"#ffffff\",\n \"cellPaddingInlineSM\": 8,\n \"cellPaddingInlineMD\": 8,\n \"cellPaddingInline\": 16,\n \"cellPaddingBlockSM\": 8,\n \"cellPaddingBlockMD\": 12,\n \"cellPaddingBlock\": 16,\n \"borderColor\": \"#f0f0f0\",\n \"rowHoverBg\": \"#fafafa\",\n \"headerSortActiveBg\": \"rgba(0, 0, 0, 0.06)\",\n \"bodySortBg\": \"#fafafa\",\n \"headerSortHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"cellFontSize\": 14,\n \"cellFontSizeMD\": 14,\n \"cellFontSizeSM\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Steps\": {\n \"dotSize\": 8,\n \"dotCurrentSize\": 10,\n \"descriptionMaxWidth\": 140,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeightSM\": 1.6666666666666667,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightLG\": 40,\n \"borderRadiusSM\": 4,\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextLabel\": \"rgba(0, 0, 0, 0.65)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBorderBg\": \"#ffffff\",\n \"colorBgContainer\": \"#ffffff\",\n \"titleLineHeight\": 32,\n \"iconSizeSM\": 24,\n \"iconSize\": 32,\n \"finishIconBorderColor\": \"#1677ff\",\n \"customIconFontSize\": 24,\n \"iconFontSize\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Spin\": {\n \"dotSizeSM\": 14,\n \"dotSize\": 20,\n \"contentHeight\": 400,\n \"marginXXS\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBgContainer\": \"#ffffff\",\n \"dotSizeLG\": 32,\n \"fontFamily\": \"SF Pro\"\n },\n \"Slider\": {\n \"railSize\": 4,\n \"handleSizeHover\": 12,\n \"dotSize\": 8,\n \"controlSize\": 10,\n \"handleSize\": 10,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryBorderHover\": \"#a2bfee\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillContentHover\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"trackHoverBg\": \"#a2bfee\",\n \"trackBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"trackBg\": \"#c8d8f5\",\n \"railHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"railBg\": \"rgba(0, 0, 0, 0.04)\",\n \"handleColor\": \"#c8d8f5\",\n \"handleActiveColor\": \"#4d75d9\",\n \"dotBorderColor\": \"#f0f0f0\",\n \"dotActiveBorderColor\": \"#c8d8f5\",\n \"handleColorDisabled\": \"#bfbfbf\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Rate\": {\n \"rateStarSize\": 20,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Radio\": {\n \"radioSize\": 16,\n \"dotSize\": 8,\n \"buttonPaddingInline\": 15,\n \"paddingXS\": 8,\n \"padding\": 16,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgActiveDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWhite\": \"#ffffff\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"wrapperMarginInlineEnd\": 8,\n \"dotColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"buttonSolidCheckedHoverBg\": \"#769de4\",\n \"buttonSolidCheckedColor\": \"#ffffff\",\n \"buttonSolidCheckedBg\": \"#4d75d9\",\n \"buttonSolidCheckedActiveBg\": \"#4261ce\",\n \"buttonColor\": \"rgba(0, 0, 0, 0.88)\",\n \"buttonCheckedColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"buttonCheckedBgDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"buttonCheckedBg\": \"#ffffff\",\n \"buttonBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\",\n \"radioBgColor\": \"#4d75d9\",\n \"radioColor\": \"#ffffff\"\n },\n \"Popover\": {\n \"titleMinWidth\": 177,\n \"sizePopupArrow\": 16,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSize\": 14,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusLG\": 8,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorBgElevated\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Notification\": {\n \"width\": 384,\n \"paddingMD\": 20,\n \"paddingLG\": 24,\n \"paddingContentHorizontalLG\": 24,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorInfo\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgElevated\": \"#ffffff\",\n \"lineHeightLG\": 1.5,\n \"lineWidthFocus\": 4,\n \"fontFamily\": \"SF Pro\"\n },\n \"Tooltip\": {\n \"paddingSM\": 12,\n \"sizePopupArrow\": 16,\n \"paddingXS\": 8,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadius\": 6,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorBgSpotlight\": \"rgba(0, 0, 0, 0.85)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Menu\": {\n \"subMenuItemBg\": \"rgba(0, 0, 0, 0.02)\",\n \"darkSubMenuItemBg\": \"#000c17\",\n \"darkItemDisabledColor\": \"rgba(255, 255, 255, 0.25)\",\n \"darkItemColor\": \"rgba(255, 255, 255, 0.65)\",\n \"darkGroupTitleColor\": \"rgba(255, 255, 255, 0.65)\",\n \"darkItemBg\": \"#001529\",\n \"paddingXS\": 8,\n \"paddingXL\": 32,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"borderRadius\": 6,\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainer\": \"#ffffff\",\n \"subMenuItemBorderRadius\": 4,\n \"popupBg\": \"#ffffff\",\n \"itemSelectedColor\": \"#4d75d9\",\n \"itemSelectedBg\": \"#f1f5fd\",\n \"itemHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"itemHeight\": 40,\n \"itemDisabledColor\": \"rgba(0, 0, 0, 0.25)\",\n \"itemColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemBorderRadius\": 8,\n \"itemBg\": \"#ffffff\",\n \"iconSize\": 14,\n \"horizontalItemSelectedColor\": \"#4d75d9\",\n \"horizontalItemSelectedBg\": \"rgba(0, 0, 0, 0)\",\n \"horizontalItemHoverColor\": \"#4d75d9\",\n \"horizontalItemHoverBg\": \"rgba(0, 0, 0, 0)\",\n \"groupTitleColor\": \"rgba(0, 0, 0, 0.45)\",\n \"darkItemSelectedColor\": \"#ffffff\",\n \"darkItemSelectedBg\": \"#4d75d9\",\n \"darkItemHoverColor\": \"#ffffff\",\n \"darkItemHoverBg\": \"rgba(0, 0, 0, 0)\",\n \"collapsedIconSize\": 16,\n \"darkPopupBg\": \"#001529\",\n \"activeBarBorderWidth\": 1,\n \"collapsedWidth\": 80,\n \"dropdownWidth\": 160,\n \"itemMarginBlock\": 4,\n \"itemMarginInline\": 4,\n \"iconMarginInlineEnd\": 10,\n \"groupTitleFontSize\": 14,\n \"groupTitleLineHeight\": 1.5714285714285714,\n \"fontFamily\": \"SF Pro\",\n \"subMenuItemSelectedColor\": \"#4d75d9\"\n },\n \"InputNumber\": {\n \"paddingInlineSM\": 7,\n \"paddingInlineLG\": 11,\n \"paddingInline\": 11,\n \"paddingBlockSM\": 0,\n \"paddingBlockLG\": 7,\n \"paddingBlock\": 4,\n \"handleWidth\": 22,\n \"controlWidth\": 90,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningBorderHover\": \"#ffd666\",\n \"colorWarning\": \"#faad14\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorBorderHover\": \"#ffa39e\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"hoverBorderColor\": \"#769de4\",\n \"handleHoverColor\": \"#4d75d9\",\n \"handleBorderColor\": \"#d9d9d9\",\n \"handleBg\": \"#ffffff\",\n \"handleActiveBg\": \"rgba(0, 0, 0, 0.02)\",\n \"addonBg\": \"rgba(0, 0, 0, 0.02)\",\n \"activeBorderColor\": \"#4d75d9\",\n \"activeBg\": \"#ffffff\",\n \"hoverBg\": \"#ffffff\",\n \"inputFontSize\": 14,\n \"inputFontSizeLG\": 16,\n \"inputFontSizeSM\": 12,\n \"fontFamily\": \"SF Pro\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"filledHandleBg\": \"#f0f0f0\",\n \"colorErrorText\": \"#ff4d4f\",\n \"colorWarningText\": \"#faad14\"\n },\n \"Image\": {\n \"previewOperationSize\": 18,\n \"previewOperationHoverColor\": \"rgba(255, 255, 255, 0.85)\",\n \"previewOperationColorDisabled\": \"rgba(255, 255, 255, 0.25)\",\n \"previewOperationColor\": \"rgba(255, 255, 255, 0.65)\",\n \"paddingXXS\": 4,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"marginXXS\": 4,\n \"marginXL\": 32,\n \"marginSM\": 12,\n \"margin\": 16,\n \"fontSizeIcon\": 12,\n \"controlHeightLG\": 40,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\"\n },\n \"Card\": {\n \"headerHeightSM\": 38,\n \"headerHeight\": 56,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSize\": 14,\n \"borderRadiusLG\": 8,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBgContainer\": \"#ffffff\",\n \"headerBg\": \"rgba(0, 0, 0, 0)\",\n \"headerFontSize\": 16,\n \"headerFontSizeSM\": 14,\n \"fontHeight\": 22,\n \"fontSizeLG\": 16,\n \"fontFamily\": \"SF Pro\",\n \"bodyPaddingSM\": 12,\n \"headerPaddingSM\": 12,\n \"bodyPadding\": 24,\n \"headerPadding\": 24\n },\n \"Carousel\": {\n \"dotWidth\": 16,\n \"dotHeight\": 3,\n \"dotActiveWidth\": 24,\n \"marginXXS\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorBgContainer\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Cascader\": {\n \"dropdownHeight\": 180,\n \"controlWidth\": 184,\n \"controlItemWidth\": 111,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlInteractiveSize\": 16,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"colorWhite\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"optionSelectedBg\": \"#f1f5fd\",\n \"menuPadding\": 4,\n \"optionSelectedFontWeight\": 600,\n \"fontFamily\": \"SF Pro\",\n \"borderRadiusLG\": 8,\n \"optionSelectedColor\": \"rgba(0, 0, 0, 0.88)\"\n },\n \"Calendar\": {\n \"yearControlWidth\": 80,\n \"monthControlWidth\": 70,\n \"controlHeight\": 32,\n \"screenXS\": 480,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeightSM\": 1.6666666666666667,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"itemActiveBg\": \"#f1f5fd\",\n \"fullPanelBg\": \"#ffffff\",\n \"fullBg\": \"#ffffff\",\n \"fontHeightSM\": 20,\n \"fontFamily\": \"SF Pro\"\n },\n \"Button\": {\n \"paddingInlineSM\": 7,\n \"paddingInlineLG\": 15,\n \"paddingInline\": 15,\n \"onlyIconSizeSM\": 14,\n \"onlyIconSizeLG\": 18,\n \"paddingXS\": 8,\n \"paddingContentHorizontal\": 16,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidth\": 1,\n \"contentLineHeight\": 1.5714285714285714,\n \"contentFontSizeLG\": 16,\n \"contentFontSize\": 14,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorErrorBorderHover\": \"#ffa39e\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorErrorActive\": \"#d9363e\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgTextActive\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"textHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"primaryColor\": \"#ffffff\",\n \"onlyIconSize\": 16,\n \"linkHoverBg\": \"rgba(0, 0, 0, 0)\",\n \"groupBorderColor\": \"#769de4\",\n \"ghostBg\": \"rgba(0, 0, 0, 0)\",\n \"defaultGhostColor\": \"#ffffff\",\n \"defaultGhostBorderColor\": \"#ffffff\",\n \"defaultColor\": \"rgba(0, 0, 0, 0.88)\",\n \"defaultBorderColor\": \"#d9d9d9\",\n \"defaultBg\": \"#ffffff\",\n \"dangerColor\": \"#ffffff\",\n \"borderColorDisabled\": \"#d9d9d9\",\n \"defaultHoverBg\": \"#ffffff\",\n \"defaultHoverColor\": \"#769de4\",\n \"defaultHoverBorderColor\": \"#769de4\",\n \"defaultActiveBg\": \"#ffffff\",\n \"defaultActiveColor\": \"#4261ce\",\n \"defaultActiveBorderColor\": \"#4261ce\",\n \"fontWeight\": 400,\n \"contentFontSizeSM\": 14,\n \"contentLineHeightLG\": 1.5,\n \"contentLineHeightSM\": 1.5714285714285714,\n \"textTextActiveColor\": \"rgba(0, 0, 0, 0.88)\",\n \"textTextHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"textTextColor\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryBg\": \"#f1f5fd\",\n \"colorBgSolid\": \"#000000\",\n \"colorBgSolidActive\": \"rgba(0, 0, 0, 0.95)\",\n \"colorBgSolidHover\": \"rgba(0, 0, 0, 0.75)\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"solidTextColor\": \"#ffffff\"\n },\n \"Badge\": {\n \"statusSize\": 6,\n \"indicatorHeight\": 20,\n \"dotSize\": 6,\n \"paddingXS\": 8,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"borderRadiusSM\": 4,\n \"fontSizeSM\": 12,\n \"fontSize\": 14,\n \"colorWarning\": \"#faad14\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorderBg\": \"#ffffff\",\n \"colorBgContainer\": \"#ffffff\",\n \"indicatorHeightSM\": 14,\n \"textFontSize\": 12,\n \"textFontSizeSM\": 12,\n \"fontHeight\": 22,\n \"lineHeight\": 1.5714285714285714,\n \"fontFamily\": \"SF Pro\"\n },\n \"Form\": {\n \"screenXSMax\": 575,\n \"screenSMMax\": 767,\n \"screenMDMax\": 991,\n \"screenLGMax\": 1199,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"labelRequiredMarkColor\": \"#ff4d4f\",\n \"labelColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemMarginBottom\": 24,\n \"labelColonMarginInlineEnd\": 8,\n \"labelColonMarginInlineStart\": 2,\n \"labelHeight\": 32,\n \"labelFontSize\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Avatar\": {\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeXL\": 20,\n \"fontSizeLG\": 16,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorBorderBg\": \"#ffffff\",\n \"containerSizeSM\": 24,\n \"containerSizeLG\": 40,\n \"containerSize\": 32,\n \"textFontSize\": 18,\n \"textFontSizeLG\": 24,\n \"textFontSizeSM\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Tour\": {\n \"sizePopupArrow\": 16,\n \"paddingXS\": 8,\n \"padding\": 16,\n \"marginXS\": 8,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSize\": 14,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWhite\": \"#ffffff\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBgTextHover\": \"rgba(0, 0, 0, 0.06)\",\n \"colorBgElevated\": \"#ffffff\",\n \"closeBtnSize\": 22,\n \"primaryNextBtnHoverBg\": \"#f0f0f0\",\n \"primaryPrevBtnBg\": \"rgba(255, 255, 255, 0.15)\",\n \"fontFamily\": \"SF Pro\",\n \"lineWidthFocus\": 4\n },\n \"QRCode\": {\n \"paddingSM\": 12,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"colorWhite\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Upload\": {\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginXL\": 32,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSizeHeading3\": 24,\n \"fontSizeHeading2\": 30,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlHeightLG\": 40,\n \"borderRadiusLG\": 8,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"fontHeight\": 22,\n \"fontHeightSM\": 20,\n \"lineWidthFocus\": 4,\n \"fontFamily\": \"SF Pro\"\n },\n \"Typography\": {\n \"paddingSM\": 12,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeightHeading5\": 1.5,\n \"lineHeightHeading4\": 1.4,\n \"lineHeightHeading3\": 1.3333333333333333,\n \"lineHeightHeading2\": 1.2666666666666666,\n \"lineHeightHeading1\": 1.2105263157894737,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeHeading5\": 16,\n \"fontSizeHeading4\": 20,\n \"fontSizeHeading3\": 24,\n \"fontSizeHeading2\": 30,\n \"fontSizeHeading1\": 38,\n \"fontSize\": 14,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorErrorActive\": \"#d9363e\",\n \"colorError\": \"#ff4d4f\",\n \"fontFamilyCode\": \"Courier Prime\"\n },\n \"TreeSelect\": {\n \"paddingXS\": 8,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlInteractiveSize\": 16,\n \"controlHeightSM\": 24,\n \"borderRadiusSM\": 4,\n \"borderRadius\": 6,\n \"colorWhite\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"titleHeight\": 24,\n \"nodeSelectedBg\": \"#f1f5fd\",\n \"nodeHoverBg\": \"rgba(0, 0, 0, 0.04)\",\n \"fontFamily\": \"SF Pro\",\n \"borderRadiusLG\": 8\n },\n \"Tree\": {\n \"paddingSM\": 12,\n \"borderRadiusLG\": 8,\n \"paddingXS\": 8,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlInteractiveSize\": 16,\n \"controlHeightSM\": 24,\n \"borderRadiusSM\": 4,\n \"borderRadius\": 6,\n \"colorWhite\": \"#ffffff\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"titleHeight\": 24,\n \"nodeSelectedBg\": \"#f1f5fd\",\n \"nodeHoverBg\": \"rgba(0, 0, 0, 0.04)\",\n \"directoryNodeSelectedColor\": \"#ffffff\",\n \"directoryNodeSelectedBg\": \"#4d75d9\",\n \"fontFamily\": \"SF Pro\",\n \"nodeHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"nodeSelectedColor\": \"rgba(0, 0, 0, 0.88)\",\n \"indentSize\": 24\n },\n \"Tag\": {\n \"paddingXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeightSM\": 1.6666666666666667,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"borderRadiusSM\": 4,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillQuaternary\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorWarningBorder\": \"#ffe58f\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorSuccessBorder\": \"#b7eb8f\",\n \"colorSuccessBg\": \"#f6ffed\",\n \"colorInfoBorder\": \"#c8d8f5\",\n \"colorInfoBg\": \"#f1f5fd\",\n \"colorErrorBorder\": \"#ffccc7\",\n \"colorErrorBg\": \"#fff2f0\",\n \"defaultColor\": \"rgba(0, 0, 0, 0.88)\",\n \"defaultBg\": \"rgba(0, 0, 0, 0.02)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Statistic\": {\n \"padding\": 16,\n \"marginXXS\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"contentFontSize\": 24,\n \"titleFontSize\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Skeleton\": {\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"controlHeightXS\": 16,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\"\n },\n \"Select\": {\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightXS\": 16,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarningHover\": \"#ffd666\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"singleItemHeightLG\": 40,\n \"selectorBg\": \"#ffffff\",\n \"optionSelectedColor\": \"rgba(0, 0, 0, 0.88)\",\n \"optionSelectedBg\": \"#f1f5fd\",\n \"optionLineHeight\": null,\n \"optionHeight\": 32,\n \"optionActiveBg\": \"rgba(0, 0, 0, 0.04)\",\n \"multipleSelectorBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"multipleItemHeightLG\": 32,\n \"multipleItemHeight\": 24,\n \"multipleItemColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"multipleItemBorderColorDisabled\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemBorderColor\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemBg\": \"rgba(0, 0, 0, 0.06)\",\n \"clearBg\": \"#ffffff\",\n \"optionFontSize\": \"SF Pro\",\n \"optionSelectedFontWeight\": 600,\n \"fontFamily\": \"SF Pro\",\n \"showArrowPaddingInlineEnd\": 18,\n \"activeBorderColor\": \"#4d75d9\",\n \"hoverBorderColor\": \"#769de4\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorWarning\": \"#faad14\",\n \"colorError\": \"#ff4d4f\"\n },\n \"Result\": {\n \"paddingXS\": 8,\n \"paddingXL\": 32,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXS\": 8,\n \"lineHeightHeading3\": 1.3333333333333333,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorInfo\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorError\": \"#ff4d4f\",\n \"iconFontSize\": 72,\n \"subtitleFontSize\": 14,\n \"titleFontSize\": 24\n },\n \"Progress\": {\n \"paddingXS\": 8,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSize\": 14,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgContainer\": \"#ffffff\",\n \"remainingColor\": \"rgba(0, 0, 0, 0.06)\",\n \"defaultColor\": \"#4d75d9\",\n \"circleTextColor\": \"rgba(0, 0, 0, 0.88)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Popconfirm\": {\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"fontWeightStrong\": 600,\n \"fontSize\": 14,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\"\n },\n \"Pagination\": {\n \"screenSM\": 576,\n \"screenLG\": 992,\n \"paddingXXS\": 4,\n \"paddingSM\": 12,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgActiveDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgTextHover\": \"rgba(0, 0, 0, 0.06)\",\n \"colorBgTextActive\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"itemSizeSM\": 24,\n \"itemSize\": 32,\n \"itemLinkBg\": \"#ffffff\",\n \"itemInputBg\": \"#ffffff\",\n \"itemBg\": \"#ffffff\",\n \"itemActiveColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"itemActiveBgDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"itemActiveBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Modal\": {\n \"screenSMMax\": 767,\n \"paddingXS\": 8,\n \"paddingMD\": 20,\n \"paddingLG\": 24,\n \"paddingContentHorizontalLG\": 24,\n \"padding\": 16,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidth\": 1,\n \"lineHeightHeading5\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"fontSizeHeading5\": 16,\n \"fontSize\": 14,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"titleColor\": \"rgba(0, 0, 0, 0.88)\",\n \"headerBg\": \"#ffffff\",\n \"footerBg\": \"rgba(0, 0, 0, 0)\",\n \"contentBg\": \"#ffffff\",\n \"titleFontSize\": 16,\n \"titleLineHeight\": 1.375,\n \"fontHeight\": 22,\n \"fontFamily\": \"SF Pro\"\n },\n \"Message\": {\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"marginXS\": 8,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"borderRadiusLG\": 8,\n \"colorWarning\": \"#faad14\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorInfo\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"contentBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"List\": {\n \"screenSM\": 576,\n \"screenMD\": 768,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"paddingContentVerticalSM\": 8,\n \"paddingContentVerticalLG\": 16,\n \"paddingContentVertical\": 12,\n \"paddingContentHorizontalLG\": 24,\n \"paddingContentHorizontal\": 16,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXXL\": 48,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"headerBg\": \"rgba(0, 0, 0, 0)\",\n \"footerBg\": \"rgba(0, 0, 0, 0)\",\n \"avatarMarginRight\": 16,\n \"descriptionFontSize\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"FloatButton\": {\n \"paddingXXS\": 4,\n \"marginXXL\": 48,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlHeightLG\": 40,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorBgElevated\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Empty\": {\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"fontSize\": 14,\n \"lineHeight\": 1.5714285714285714\n },\n \"Dropdown\": {\n \"sizePopupArrow\": 16,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlPaddingHorizontal\": 12,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgElevated\": \"#ffffff\",\n \"paddingBlock\": 5,\n \"fontFamily\": \"SF Pro\"\n },\n \"Drawer\": {\n \"paddingXS\": 8,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginSM\": 12,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgElevated\": \"#ffffff\",\n \"lineWidthFocus\": 4\n },\n \"Divider\": {\n \"marginXS\": 8,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"lineHeight\": 1.5714285714285714,\n \"fontFamily\": \"SF Pro\"\n },\n \"Descriptions\": {\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeightSM\": 1.6666666666666667,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"borderRadiusLG\": 8,\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextSecondary\": \"rgba(0, 0, 0, 0.65)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"titleColor\": \"rgba(0, 0, 0, 0.88)\",\n \"labelBg\": \"rgba(0, 0, 0, 0.02)\",\n \"contentColor\": \"rgba(0, 0, 0, 0.88)\",\n \"fontFamily\": \"SF Pro\",\n \"labelColor\": \"rgba(0, 0, 0, 0.45)\"\n },\n \"DatePicker\": {\n \"sizePopupArrow\": 16,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarningHover\": \"#ffd666\",\n \"colorWarning\": \"#faad14\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"hoverBorderColor\": \"#769de4\",\n \"cellHoverBg\": \"rgba(0, 0, 0, 0.04)\",\n \"cellHeight\": 24,\n \"activeBorderColor\": \"#4d75d9\",\n \"paddingInline\": 11,\n \"paddingInlineSM\": 7,\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningText\": \"#faad14\",\n \"colorErrorText\": \"#ff4d4f\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"activeBg\": \"#ffffff\",\n \"hoverBg\": \"#ffffff\",\n \"cellBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"cellActiveWithRangeBg\": \"#f1f5fd\",\n \"cellHoverWithRangeBg\": \"#c8dfff\",\n \"cellRangeBorderColor\": \"#7cb3ff\",\n \"multipleItemBg\": \"rgba(0, 0, 0, 0.06)\",\n \"multipleItemBorderColor\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemBorderColorDisabled\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"multipleSelectorBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"cellWidth\": 36,\n \"multipleItemHeight\": 24,\n \"multipleItemHeightLG\": 32,\n \"multipleItemHeightSM\": 16,\n \"paddingBlock\": 4,\n \"paddingBlockLG\": 7,\n \"paddingBlockSM\": 0,\n \"paddingInline 2\": 11,\n \"presetsMaxWidth\": 200,\n \"presetsWidth\": 120,\n \"textHeight\": 40,\n \"timeCellHeight\": 28,\n \"timeColumnHeight\": 224,\n \"timeColumnWidth\": 56,\n \"withoutTimeCellHeight\": 66,\n \"inputFontSize\": 14,\n \"inputFontSizeLG\": 16,\n \"inputFontSizeSM\": 12,\n \"fontHeight\": 22,\n \"fontHeightLG\": 24,\n \"fontFamily\": \"SF Pro\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\"\n },\n \"Collapse\": {\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginSM\": 12,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"borderRadiusLG\": 8,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainer\": \"#ffffff\",\n \"headerBg\": \"rgba(0, 0, 0, 0.02)\",\n \"contentBg\": \"#ffffff\",\n \"fontHeight\": 22,\n \"fontHeightLG\": 24,\n \"lineHeightLG\": 1.5,\n \"fontFamily\": \"SF Pro\"\n },\n \"Checkbox\": {\n \"paddingXS\": 8,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlInteractiveSize\": 16,\n \"borderRadiusSM\": 4,\n \"colorWhite\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Breadcrumb\": {\n \"paddingXXS\": 4,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"borderRadiusSM\": 4,\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorBgTextHover\": \"rgba(0, 0, 0, 0.06)\",\n \"separatorColor\": \"rgba(0, 0, 0, 0.45)\",\n \"linkHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"linkColor\": \"rgba(0, 0, 0, 0.45)\",\n \"lastItemColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemColor\": \"rgba(0, 0, 0, 0.45)\",\n \"separatorMargin\": 8,\n \"iconFontSize\": 14,\n \"fontHeight\": 22,\n \"fontFamily\": \"SF Pro\"\n },\n \"Anchor\": {\n \"paddingXXS\": 4,\n \"lineWidthBold\": 2,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimary\": \"#4d75d9\",\n \"linkPaddingInlineStart\": 16,\n \"linkPaddingBlock\": 4,\n \"fontFamily\": \"SF Pro\"\n },\n \"Alert\": {\n \"paddingMD\": 20,\n \"paddingContentVerticalSM\": 8,\n \"paddingContentHorizontalLG\": 24,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"borderRadiusLG\": 8,\n \"colorWarningBorder\": \"#ffe58f\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccessBorder\": \"#b7eb8f\",\n \"colorSuccessBg\": \"#f6ffed\",\n \"colorSuccess\": \"#52c41a\",\n \"colorInfoBorder\": \"#c8d8f5\",\n \"colorInfoBg\": \"#f1f5fd\",\n \"colorInfo\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorErrorBorder\": \"#ffccc7\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorError\": \"#ff4d4f\",\n \"withDescriptionIconSize\": 24,\n \"fontFamily\": \"SF Pro\"\n },\n \"Space\": {\n \"paddingXS\": 8,\n \"paddingLG\": 24,\n \"padding\": 16\n },\n \"AutoComplete\": {\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightXS\": 16,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarningHover\": \"#ffd666\",\n \"colorWarning\": \"#faad14\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"optionActiveBg\": \"rgba(0, 0, 0, 0.04)\",\n \"optionHeight\": 32,\n \"optionFontSize\": 14,\n \"fontFamily\": \"SF Pro\",\n \"fontSize\": 14,\n \"fontSizeIcon\": 12,\n \"fontSizeLG\": 16,\n \"fontSizeSM\": 12\n },\n \"Layout\": {\n \"bodyBg\": \"#f5f5f5\",\n \"footerBg\": \"#f5f5f5\",\n \"headerBg\": \"#001529\",\n \"headerColor\": \"rgba(0, 0, 0, 0.88)\",\n \"lightSiderBg\": \"#ffffff\",\n \"lightTriggerBg\": \"#ffffff\",\n \"lightTriggerColor\": \"rgba(0, 0, 0, 0.88)\",\n \"siderBg\": \"#001529\",\n \"triggerBg\": \"#002140\",\n \"triggerColor\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"headerHeight\": 64,\n \"triggerHeight\": 48,\n \"zeroTriggerHeight\": 40,\n \"zeroTriggerWidth\": 40,\n \"borderRadius\": 6,\n \"fontSize\": 14,\n \"fontSizeXL\": 20\n },\n \"Mentions\": {\n \"fontFamily\": \"SF Pro\",\n \"fontSize\": 14,\n \"lineHeight\": 1.5714285714285714\n },\n \"Splitter\": {\n \"railSize\": 4,\n \"handleSizeHover\": 12,\n \"dotSize\": 8,\n \"controlSize\": 10,\n \"handleSize\": 10,\n \"trackHoverBg\": \"#a2bfee\",\n \"trackBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"trackBg\": \"#c8d8f5\",\n \"railHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"railBg\": \"rgba(0, 0, 0, 0.04)\",\n \"handleColor\": \"#c8d8f5\",\n \"handleColorDisabled\": \"#bfbfbf\",\n \"handleActiveColor\": \"#4d75d9\",\n \"dotBorderColor\": \"#f0f0f0\",\n \"dotActiveBorderColor\": \"#c8d8f5\",\n \"lineWidth\": 1,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorPrimaryBorderHover\": \"#a2bfee\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillContentHover\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"resizeSpinnerSize\": 20,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"fontFamily\": \"SF Pro\",\n \"controlHeightSM\": 24,\n \"borderRadiusXS\": 2,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"fontSizeSM\": 12,\n \"splitBarSize\": 2,\n \"splitTriggerSize\": 6\n }\n }\n}","import { token } from '@doc-lib/theme/light.json'\nimport { OverviewData, EndpointData } from '../entities'\n\nexport interface ApiNodeData extends OverviewData {}\n\nexport interface EndpointNodeData {\n endpoint: EndpointData\n api: OverviewData\n tagName: string\n parentApiId: string\n tagId: string\n}\n\nexport interface TagNodeData {\n tagName: string\n apiData: OverviewData\n}\n\nexport type NodeData = EndpointNodeData | OverviewData | TagNodeData\n\n// Type definitions\nexport interface TreeNode {\n title: string | React.ReactNode\n key: string\n selectable?: boolean\n isLeaf?: boolean\n method?: string\n children?: TreeNode[]\n data?: NodeData\n}\n\nexport interface EndpointItemProps {\n method: string\n title: string\n cx: (className: string) => string\n isSelected?: boolean\n}\n\n// Method colors configuration\nexport const methodColors = {\n GET: {\n bg: token.colorPrimaryBgHover,\n color: token.colorPrimary,\n },\n POST: {\n bg: token['green.1'],\n color: token.colorSuccess,\n },\n DELETE: {\n bg: token.colorErrorBg,\n color: token.colorError,\n },\n PUT: {\n bg: token.colorWarningBg,\n color: token.colorWarning,\n },\n PATCH: {\n bg: token['volcano.1'],\n color: token['volcano.5'],\n },\n OPTIONS: {\n bg: token['geekblue.2'],\n color: token['geekblue.6'],\n },\n HEAD: {\n bg: token['purple.1'],\n color: token['purple.5'],\n },\n TRACE: {\n bg: token['cyan.1'],\n color: token['cyan.5'],\n },\n}\n\n// Darker method colors for selected state\nexport const darkerMethodColors = {\n GET: {\n bg: token.colorPrimary,\n color: '#FFFFFF',\n },\n POST: {\n bg: token.colorSuccess,\n color: '#FFFFFF',\n },\n DELETE: {\n bg: token.colorError,\n color: '#FFFFFF',\n },\n PUT: {\n bg: token.colorWarning,\n color: '#FFFFFF',\n },\n PATCH: {\n bg: token['volcano.5'],\n color: '#FFFFFF',\n },\n OPTIONS: {\n bg: token['geekblue.6'],\n color: '#FFFFFF',\n },\n HEAD: {\n bg: token['purple.5'],\n color: '#FFFFFF',\n },\n TRACE: {\n bg: token['cyan.5'],\n color: '#FFFFFF',\n },\n}\n\nexport const buildTreeDataStructure = (data: OverviewData[] | null) => {\n if (!data) return []\n return data.map((api) => {\n return {\n title: api.title,\n key: api.id,\n selectable: true,\n data: api as OverviewData,\n children: Object.entries(api.tags).map(([tag, endpoints]) => {\n // Use deterministic tag ID generation for consistent expansion\n const tagId = `tag-${api.id}-${tag.replace(/\\s+/g, '-').toLowerCase()}`\n return {\n title: tag,\n key: tagId,\n selectable: false,\n data: { tagName: tag, apiData: api } as TagNodeData, // Store tag info and parent API data\n children: endpoints.map((endpoint) => {\n return {\n title: endpoint.summary,\n key: endpoint.id,\n isLeaf: true,\n selectable: true,\n method: endpoint.method,\n data: { endpoint, api, tagName: tag, parentApiId: api.id, tagId } as EndpointNodeData,\n }\n }),\n }\n }),\n }\n })\n}\n\n// Helper function to find a node by key and return its data\nexport const findNodeByKey = (nodes: TreeNode[], targetKey: string): TreeNode | null => {\n for (const node of nodes) {\n if (node.key === targetKey) {\n return node\n }\n if (node.children && node.children.length > 0) {\n const found = findNodeByKey(node.children, targetKey)\n if (found) return found\n }\n }\n return null\n}\n\n// Helper function to check if an API section should be highlighted when its children are selected\nexport const isApiSectionHighlighted = (\n apiKey: string,\n selectedEndpoint: { parentApiId: string } | null\n): boolean => {\n if (!selectedEndpoint) return false\n\n // Highlight the API if the selected endpoint belongs to this API\n return selectedEndpoint.parentApiId === apiKey\n}\n\n// Get all keys for expand/collapse functionality\nexport const getAllTreeKeys = (data: TreeNode[]): string[] => {\n const keys: string[] = []\n const traverse = (nodes: TreeNode[]) => {\n nodes.forEach((node) => {\n keys.push(node.key)\n if (node.children && node.children.length > 0) {\n traverse(node.children)\n }\n })\n }\n traverse(data)\n return keys\n}\n\n// Filter tree data based on search\nexport const filterTreeData = (data: TreeNode[], searchText: string): TreeNode[] => {\n if (!searchText) return data\n\n // Helper function to recursively find original node in the default tree structure\n const findOriginalNode = (nodes: TreeNode[], key: string): TreeNode | null => {\n for (const node of nodes) {\n if (node.key === key) return node\n if (node.children) {\n const found = findOriginalNode(node.children, key)\n if (found) return found\n }\n }\n return null\n }\n\n const filterNode = (node: TreeNode): TreeNode | null => {\n let titleText = ''\n\n // Get the original title text from the default tree structure\n const originalNode = findOriginalNode(data, node.key)\n if (originalNode && typeof originalNode.title === 'string') {\n titleText = originalNode.title\n } else if (typeof node.title === 'string') {\n titleText = node.title\n }\n\n // For endpoints, also search by method + title combination\n let searchableText = titleText\n if (node.isLeaf && node.method) {\n // Include method in searchable text for endpoints\n searchableText = `${node.method} ${titleText}`.toLowerCase()\n } else {\n searchableText = titleText.toLowerCase()\n }\n\n const searchLower = searchText.toLowerCase()\n const matchesSearch = searchableText.includes(searchLower)\n\n if (node.children) {\n const filteredChildren = node.children\n .map((child: TreeNode) => filterNode(child))\n .filter((child): child is TreeNode => child !== null)\n\n if (matchesSearch || filteredChildren.length > 0) {\n return {\n ...node,\n children: filteredChildren,\n }\n }\n } else if (matchesSearch) {\n return node\n }\n\n return null\n }\n\n return data.map((node) => filterNode(node)).filter((node): node is TreeNode => node !== null)\n}\n\n// Helper function to get parent key for search expansion\nexport const getParentKey = (key: string, tree: TreeNode[]): string | null => {\n for (let i = 0; i < tree.length; i++) {\n const node = tree[i]\n if (node.children) {\n if (node.children.some((item: TreeNode) => item.key === key)) {\n return node.key\n }\n const parent = getParentKey(key, node.children)\n if (parent) {\n return parent\n }\n }\n }\n return null\n}\n\n// Sidebar style configuration\nexport const getSidebarStyles = (token: any, scope: (name: string) => string) => ({\n [scope('sider')]: {\n backgroundColor: token.colorBgContainer,\n overflowY: 'auto' as const,\n overflowX: 'clip' as const,\n borderRadius: token.borderRadius,\n },\n [scope('content')]: {\n padding: token.padding,\n },\n [scope('controls')]: {\n display: 'flex',\n gap: token.marginXS,\n marginBottom: token.marginSM,\n },\n [scope('search-input')]: {\n flex: 1,\n },\n [scope('tree')]: {\n backgroundColor: 'transparent',\n '& .ant-tree-node-content-wrapper': {\n overflow: 'hidden',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n '& .ant-tree-title': {\n width: '100%',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n marginBlock: 'auto',\n },\n '& .ant-tree-treenode': {\n width: '100%',\n padding: 0,\n },\n '& .ant-tree-node-content-wrapper:hover': {\n backgroundColor: token.colorFillTertiary,\n },\n },\n [scope('endpoint-item')]: {\n display: 'flex',\n alignItems: 'center',\n gap: token.marginXS,\n width: '100%',\n maxWidth: '100%',\n minWidth: '100%',\n },\n [scope('method-tag')]: {\n minWidth: '3.75rem',\n textAlign: 'center' as const,\n border: 'none',\n },\n [scope('endpoint-text')]: {\n flex: 1,\n maxWidth: '100%',\n display: 'block',\n },\n [scope('tag-title')]: {\n color: token.colorText,\n maxWidth: '100%',\n display: 'block',\n flex: 1,\n },\n [scope('api-title')]: {\n flex: 1,\n color: token.colorText,\n maxWidth: '100%',\n display: 'block',\n padding: 0,\n margin: 0,\n '&.highlighted': {\n color: token.colorPrimary,\n },\n },\n})\n","import React from 'react'\nimport { Typography, Tag } from 'antd'\nimport {\n methodColors,\n TreeNode,\n EndpointItemProps,\n darkerMethodColors,\n isApiSectionHighlighted,\n} from './sidebar.utils'\nimport { EndpointData } from '../entities'\n\nconst { Text } = Typography\n\n// Endpoint item component\nexport const EndpointItem: React.FC<EndpointItemProps> = ({\n method,\n title,\n cx,\n isSelected = false,\n}) => {\n const colorSet = isSelected ? darkerMethodColors : methodColors\n const methodStyle = colorSet[method as keyof typeof colorSet]\n\n return (\n <div className={cx('endpoint-item')}>\n <Tag\n className={cx('method-tag')}\n style={{\n backgroundColor: methodStyle?.bg,\n color: methodStyle?.color,\n border: 'none',\n }}\n >\n {method}\n </Tag>\n <Text className={cx('endpoint-text')} ellipsis={{ tooltip: title }} style={{ flex: 1 }}>\n {title}\n </Text>\n </div>\n )\n}\n\n// Convert tree data to renderable format\nexport const convertToRenderableTreeData = (\n treeDataStructure: TreeNode[],\n selectedEndpoint: EndpointData | null,\n cx: (className: string) => string\n): TreeNode[] => {\n const renderNode = (node: TreeNode): TreeNode => {\n let title: React.ReactNode\n\n if (node.isLeaf && node.method) {\n // Check if this node's endpoint matches the selected endpoint\n const isSelected =\n selectedEndpoint && 'data' in node && node.data && 'endpoint' in node.data\n ? (node.data as any).endpoint?.id === selectedEndpoint?.id\n : false\n\n // Render endpoint item\n title = (\n <EndpointItem\n method={node.method}\n title={typeof node.title === 'string' ? node.title : 'Endpoint Name'}\n cx={cx}\n isSelected={isSelected}\n />\n )\n } else if (\n node.data &&\n 'id' in node.data &&\n 'tags' in node.data &&\n !('endpoint' in node.data) &&\n !('tagName' in node.data)\n ) {\n // Render API title - check if node data is OverviewData (API data)\n const isHighlighted = isApiSectionHighlighted(node.key, selectedEndpoint)\n title = (\n <Text\n className={cx('api-title') + (isHighlighted ? ' highlighted' : '')}\n ellipsis={{ tooltip: typeof node.title === 'string' ? node.title : 'API Name' }}\n >\n {node.title}\n </Text>\n )\n } else {\n // Render tag title\n title = (\n <Text\n className={cx('tag-title')}\n ellipsis={{ tooltip: typeof node.title === 'string' ? node.title : '' }}\n >\n {node.title}\n </Text>\n )\n }\n\n return {\n ...node,\n title,\n children: node.children ? node.children.map(renderNode) : undefined,\n }\n }\n\n return treeDataStructure.map(renderNode)\n}\n","import { useStore } from '@doc-lib/store'\nimport { NodeData, EndpointNodeData, TagNodeData, TreeNode, findNodeByKey } from '@doc-lib/view/helper'\nimport { OverviewData } from '@doc-lib/view/entities'\n\nexport interface SelectionResult {\n type: 'endpoint' | 'api' | 'tag'\n endpoint?: EndpointNodeData['endpoint']\n api?: OverviewData\n tag?: string\n}\n\nexport const useNodeSelection = () => {\n const {\n setSelectedNodeKey,\n setFocusedContent,\n setSelectedApi,\n setSelectedEndpoint,\n setExpandedKeys,\n expandedKeys,\n builtTreeData,\n } = useStore(({ view }) => view)\n\n const handleNodeSelection = (\n nodeData: NodeData | undefined,\n nodeKey: string\n ): SelectionResult | null => {\n if (!nodeData) return null\n if (nodeKey.startsWith('endpoint-')) {\n const endpointNodeData = nodeData as EndpointNodeData\n\n // Set the endpoint data and its parent API separately\n setSelectedEndpoint({\n ...endpointNodeData.endpoint,\n tagName: endpointNodeData.tagName,\n parentApiId: endpointNodeData.parentApiId,\n })\n setSelectedApi(endpointNodeData.api)\n setFocusedContent('ENDPOINT')\n // TODO: auto expand\n const toExpand = [\n endpointNodeData.parentApiId,\n endpointNodeData.tagId,\n endpointNodeData.api.id,\n ]\n const expanded = [...expandedKeys]\n toExpand.forEach((key) => {\n if (key && expanded.indexOf(key) < 0) {\n expanded.push(key)\n }\n })\n setExpandedKeys(expanded)\n\n return {\n type: 'endpoint' as const,\n endpoint: endpointNodeData.endpoint,\n api: endpointNodeData.api,\n tag: endpointNodeData.tagName,\n }\n } else if (nodeKey.startsWith('api-') || nodeKey === 'custom-auth') {\n // Handle API selection\n const apiData = nodeData as OverviewData\n setSelectedApi(apiData)\n // Clear endpoint selection when selecting API directly\n setSelectedEndpoint(null)\n setFocusedContent('API')\n\n return {\n type: 'api' as const,\n api: apiData,\n }\n } else {\n // Handle tag selection (tags are not selectable in the current setup, but keeping for completeness)\n const tagData = nodeData as TagNodeData\n\n return {\n type: 'tag' as const,\n tag: tagData.tagName,\n api: tagData.apiData,\n }\n }\n }\n\n // Select a node by its key from the tree structure\n const selectNodeByKey = (nodeKey: string): SelectionResult | null => {\n const selectedNode = findNodeByKey(builtTreeData as TreeNode[], nodeKey)\n if (selectedNode) {\n const result = handleNodeSelection(selectedNode.data, nodeKey)\n setSelectedNodeKey(nodeKey)\n return result\n }\n\n return null\n }\n\n // Expand a specific node by adding it to expanded keys\n const expandNode = (nodeKey: string) => {\n if (!expandedKeys.includes(nodeKey)) {\n setExpandedKeys([...expandedKeys, nodeKey])\n }\n }\n\n const selectPreSelectedApi = (treeData: TreeNode[], apiId: string): SelectionResult | null => {\n if (!treeData || treeData.length === 0) return null\n // Find the API node with same ID\n const apiNodeById = treeData.find(\n (node) =>\n node.data &&\n 'id' in node.data &&\n 'tags' in node.data &&\n !('endpoint' in node.data) &&\n !('tagName' in node.data) &&\n node?.data?.currentVersion === apiId\n )\n\n if (apiNodeById) {\n // Collect all keys to expand at once\n const keysToExpand = [apiNodeById.key]\n\n // Also expand all tag nodes under the first API\n if (apiNodeById.children) {\n apiNodeById.children.forEach((tagNode) => {\n keysToExpand.push(tagNode.key)\n })\n }\n\n // Expand all keys at once to avoid state update batching issues\n setExpandedKeys([\n ...expandedKeys,\n ...keysToExpand.filter((key) => !expandedKeys.includes(key)),\n ])\n\n // Select the first API node\n return selectNodeByKey(apiNodeById.key)\n } else {\n return selectFirstApi(treeData)\n }\n\n return null\n }\n\n // Select the first API from the tree data and expand it\n const selectFirstApi = (treeData: TreeNode[]): SelectionResult | null => {\n if (!treeData || treeData.length === 0) return null\n\n // Find the first API node (should be at the top level)\n const firstApiNode = treeData.find(\n (node) =>\n node.data &&\n 'id' in node.data &&\n 'tags' in node.data &&\n !('endpoint' in node.data) &&\n !('tagName' in node.data)\n )\n\n if (firstApiNode) {\n // Collect all keys to expand at once\n const keysToExpand = [firstApiNode.key]\n\n // Also expand all tag nodes under the first API\n if (firstApiNode.children) {\n firstApiNode.children.forEach((tagNode) => {\n keysToExpand.push(tagNode.key)\n })\n }\n\n // Expand all keys at once to avoid state update batching issues\n setExpandedKeys([\n ...expandedKeys,\n ...keysToExpand.filter((key) => !expandedKeys.includes(key)),\n ])\n\n // Select the first API node\n return selectNodeByKey(firstApiNode.key)\n }\n\n return null\n }\n\n // Clear all selections\n const clearSelection = () => {\n setSelectedNodeKey(null)\n setSelectedApi(null)\n setSelectedEndpoint(null)\n }\n\n return {\n handleNodeSelection,\n selectNodeByKey,\n selectFirstApi,\n clearSelection,\n expandNode,\n selectPreSelectedApi,\n }\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M6 11.334L8 9.33398L10 11.334\" stroke=\"currentcolor\" />\n<path d=\"M6 4.66602L8 6.66602L10 4.66602\" stroke=\"currentcolor\" />\n</svg>\n","<svg width=\"166\" height=\"132\" viewBox=\"0 0 166 132\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M97.2145 48.3771C86.9578 48.4382 76.542 47.9621 66.7994 45.2642C57.0568 42.5663 48.4402 37.4757 40.607 31.5306C35.4786 27.6608 30.8154 24.5845 24.1571 25.0483C17.647 25.3896 11.42 27.8123 6.39768 31.9579C-2.07203 39.3557 -0.786882 53.0282 2.59121 62.6478C7.68283 77.1383 23.178 87.1974 36.3354 93.7528C51.5491 101.334 68.2559 105.741 85.0118 108.268C99.6991 110.49 118.56 112.113 131.277 102.542C142.966 93.7651 146.172 73.6957 143.308 60.1453C142.611 56.143 140.475 52.5317 137.299 49.9885C129.086 44.0068 116.847 47.9987 107.618 48.2062C104.252 48.2795 100.715 48.3649 97.2145 48.3771Z\" fill=\"#F1F5FD\"/>\n<path d=\"M47.2041 1V6.24928\" stroke=\"#E0E9F9\" stroke-width=\"0.85\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M44.5723 3.625H49.8352\" stroke=\"#E0E9F9\" stroke-width=\"0.85\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M147.054 105.631V110.88\" stroke=\"#E0E9F9\" stroke-width=\"0.85\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M144.422 108.256H149.685\" stroke=\"#E0E9F9\" stroke-width=\"0.85\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M7.43775 82.963C8.1002 82.963 8.63721 82.4274 8.63721 81.7667C8.63721 81.1059 8.1002 80.5703 7.43775 80.5703C6.7753 80.5703 6.23828 81.1059 6.23828 81.7667C6.23828 82.4274 6.7753 82.963 7.43775 82.963Z\" fill=\"#E0E9F9\"/>\n<path d=\"M109.564 6.42004C110.226 6.42004 110.763 5.88442 110.763 5.22369C110.763 4.56297 110.226 4.02734 109.564 4.02734C108.901 4.02734 108.364 4.56297 108.364 5.22369C108.364 5.88442 108.901 6.42004 109.564 6.42004Z\" fill=\"#E0E9F9\"/>\n<path d=\"M76.3212 132C101.129 132 121.24 130.754 121.24 129.217C121.24 127.68 101.129 126.434 76.3212 126.434C51.5132 126.434 31.4023 127.68 31.4023 129.217C31.4023 130.754 51.5132 132 76.3212 132Z\" fill=\"#F1F5FD\"/>\n<path d=\"M41.7205 15.2578H106.957C108.58 15.2578 110.136 15.9009 111.284 17.0456C112.432 18.1903 113.077 19.7428 113.077 21.3616V98.7702C113.077 100.389 112.432 101.942 111.284 103.086C110.136 104.231 108.58 104.874 106.957 104.874H33.3609C31.7379 104.874 30.1813 104.231 29.0336 103.086C27.886 101.942 27.2412 100.389 27.2412 98.7702V29.8459L41.7205 15.2578Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M112.783 52.9805H45.5146V105.62H112.783V52.9805Z\" fill=\"#F1F5FD\"/>\n<path d=\"M27.2412 29.8459H39.1012C39.797 29.8427 40.4632 29.5647 40.9541 29.0729C41.4449 28.581 41.7205 27.9153 41.7205 27.2213V15.2578L27.2412 29.8459Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M112.453 36.1699H45.9192C43.3302 36.1699 41.2314 38.2632 41.2314 40.8454V55.0429C41.2314 57.6251 43.3302 59.7184 45.9192 59.7184H112.453C115.042 59.7184 117.141 57.6251 117.141 55.0429V40.8454C117.141 38.2632 115.042 36.1699 112.453 36.1699Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M54.1563 52.0531C56.4141 52.0531 58.2443 50.2276 58.2443 47.9758C58.2443 45.7239 56.4141 43.8984 54.1563 43.8984C51.8986 43.8984 50.0684 45.7239 50.0684 47.9758C50.0684 50.2276 51.8986 52.0531 54.1563 52.0531Z\" fill=\"#F1F5FD\"/>\n<path d=\"M67.0069 52.0531C69.2647 52.0531 71.0949 50.2276 71.0949 47.9758C71.0949 45.7239 69.2647 43.8984 67.0069 43.8984C64.7492 43.8984 62.9189 45.7239 62.9189 47.9758C62.9189 50.2276 64.7492 52.0531 67.0069 52.0531Z\" fill=\"#F1F5FD\"/>\n<path d=\"M79.8468 52.0531C82.1045 52.0531 83.9347 50.2276 83.9347 47.9758C83.9347 45.7239 82.1045 43.8984 79.8468 43.8984C77.589 43.8984 75.7588 45.7239 75.7588 47.9758C75.7588 50.2276 77.589 52.0531 79.8468 52.0531Z\" fill=\"#F1F5FD\"/>\n<path d=\"M112.453 62.2695H45.9192C43.3302 62.2695 41.2314 64.3628 41.2314 66.9451V81.1425C41.2314 83.7247 43.3302 85.818 45.9192 85.818H112.453C115.042 85.818 117.141 83.7247 117.141 81.1425V66.9451C117.141 64.3628 115.042 62.2695 112.453 62.2695Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M54.1563 78.1645C56.4141 78.1645 58.2443 76.339 58.2443 74.0871C58.2443 71.8353 56.4141 70.0098 54.1563 70.0098C51.8986 70.0098 50.0684 71.8353 50.0684 74.0871C50.0684 76.339 51.8986 78.1645 54.1563 78.1645Z\" fill=\"#F1F5FD\"/>\n<path d=\"M67.0069 78.1645C69.2647 78.1645 71.0949 76.339 71.0949 74.0871C71.0949 71.8353 69.2647 70.0098 67.0069 70.0098C64.7492 70.0098 62.9189 71.8353 62.9189 74.0871C62.9189 76.339 64.7492 78.1645 67.0069 78.1645Z\" fill=\"#F1F5FD\"/>\n<path d=\"M79.8468 78.1645C82.1045 78.1645 83.9347 76.339 83.9347 74.0871C83.9347 71.8353 82.1045 70.0098 79.8468 70.0098C77.589 70.0098 75.7588 71.8353 75.7588 74.0871C75.7588 76.339 77.589 78.1645 79.8468 78.1645Z\" fill=\"#F1F5FD\"/>\n<path d=\"M112.453 88.3828H45.9192C43.3302 88.3828 41.2314 90.4761 41.2314 93.0583V107.256C41.2314 109.838 43.3302 111.931 45.9192 111.931H112.453C115.042 111.931 117.141 109.838 117.141 107.256V93.0583C117.141 90.4761 115.042 88.3828 112.453 88.3828Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M54.1563 104.264C56.4141 104.264 58.2443 102.439 58.2443 100.187C58.2443 97.9349 56.4141 96.1094 54.1563 96.1094C51.8986 96.1094 50.0684 97.9349 50.0684 100.187C50.0684 102.439 51.8986 104.264 54.1563 104.264Z\" fill=\"#F1F5FD\"/>\n<path d=\"M67.0069 104.264C69.2647 104.264 71.0949 102.439 71.0949 100.187C71.0949 97.9349 69.2647 96.1094 67.0069 96.1094C64.7492 96.1094 62.9189 97.9349 62.9189 100.187C62.9189 102.439 64.7492 104.264 67.0069 104.264Z\" fill=\"#F1F5FD\"/>\n<path d=\"M79.8468 104.264C82.1045 104.264 83.9347 102.439 83.9347 100.187C83.9347 97.9349 82.1045 96.1094 79.8468 96.1094C77.589 96.1094 75.7588 97.9349 75.7588 100.187C75.7588 102.439 77.589 104.264 79.8468 104.264Z\" fill=\"#F1F5FD\"/>\n<path d=\"M118.609 66.2124C132.622 66.2124 143.981 54.8824 143.981 40.906C143.981 26.9297 132.622 15.5996 118.609 15.5996C104.596 15.5996 93.2363 26.9297 93.2363 40.906C93.2363 54.8824 104.596 66.2124 118.609 66.2124Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M118.903 55.8852C127.035 55.8852 133.627 49.3102 133.627 41.1994C133.627 33.0887 127.035 26.5137 118.903 26.5137C110.771 26.5137 104.179 33.0887 104.179 41.1994C104.179 49.3102 110.771 55.8852 118.903 55.8852Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M111.067 33.3711C111.375 34.0091 126.739 49.0138 126.739 49.0138L111.067 33.3711Z\" fill=\"white\"/>\n<path d=\"M111.067 33.3711C111.375 34.0091 126.739 49.0138 126.739 49.0138\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M126.739 33.3711C126.419 34.0091 111.067 49.0138 111.067 49.0138L126.739 33.3711Z\" fill=\"white\"/>\n<path d=\"M126.739 33.3711C126.419 34.0091 111.067 49.0138 111.067 49.0138\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","'use client'\nimport React, { useState, useMemo } from 'react'\nimport { Input, Tree, Button, Flex, Tooltip } from 'antd'\nimport { useStyle } from '@doc-lib/hooks/useStyle'\nimport { useNodeSelection } from '@doc-lib/hooks/useNodeSelection'\nimport { useStore } from '@doc-lib/store'\nimport Minify from '@doc-lib/assets/Minify.svg'\nimport {\n getAllTreeKeys,\n filterTreeData,\n getSidebarStyles,\n convertToRenderableTreeData,\n} from '../helper'\nimport EmptyImg from '@doc-lib/assets/NoDataSM.svg'\nimport Text from 'antd/es/typography/Text'\nimport { SearchOutlined } from '@ant-design/icons'\nimport { Resizable } from 're-resizable'\n\nexport const Sidebar: React.FC<{\n searchValue: string\n setSearchValue: (text: string) => void\n}> = ({ searchValue, setSearchValue }) => {\n const expandedKeys = useStore((state) => state.view.expandedKeys)\n const { selectedNodeKey, selectedEndpoint, builtTreeData, setExpandedKeys, setSelectedNodeKey } =\n useStore(({ view }) => view)\n\n const { selectNodeByKey, clearSelection } = useNodeSelection()\n\n // Local state for expand/collapse\n\n const [autoExpandParent, setAutoExpandParent] = useState(true)\n\n const { wrapSSR, cx, token } = useStyle('Sidebar', getSidebarStyles)\n\n // Handle search with expansion logic\n const handleSearch = (value: string) => {\n if (value && builtTreeData) {\n // Get all keys that should be expanded when searching\n const allKeys = getAllTreeKeys(builtTreeData)\n setExpandedKeys(allKeys)\n setSearchValue(value)\n setAutoExpandParent(true)\n } else {\n // Clear search -> collapse all\n setSearchValue(value)\n setExpandedKeys([])\n setAutoExpandParent(false)\n }\n }\n\n // Convert tree data to renderable format\n const renderTreeData = useMemo(() => {\n if (!builtTreeData) return []\n return convertToRenderableTreeData(builtTreeData, selectedEndpoint, cx)\n }, [builtTreeData, selectedEndpoint, cx])\n\n // Memoize filtered tree data\n const filteredTreeData = useMemo(() => {\n if (!searchValue) return renderTreeData\n if (!builtTreeData) return []\n\n // Filter using original tree structure, then convert to renderable format\n const filteredOriginal = filterTreeData(builtTreeData, searchValue)\n\n return convertToRenderableTreeData(filteredOriginal, selectedEndpoint, cx)\n }, [builtTreeData, searchValue, selectedEndpoint, cx])\n\n // Handle collapse all\n const collapseAll = () => {\n setExpandedKeys([])\n }\n\n const onTreeNodeSelect = (selectedKeys: React.Key[]) => {\n const stringKeys = selectedKeys.map((key) => String(key))\n\n if (stringKeys.length === 0) {\n clearSelection()\n return\n }\n\n if (!builtTreeData) return\n\n const selectedKey = stringKeys[0]\n selectNodeByKey(selectedKey)\n setSelectedNodeKey(selectedKey)\n }\n\n return wrapSSR(\n <Resizable\n as={'aside'}\n minWidth={300}\n maxWidth={386}\n enable={{\n top: false,\n right: true,\n bottom: false,\n left: false,\n topRight: false,\n bottomRight: false,\n bottomLeft: false,\n topLeft: false,\n }}\n defaultSize={{\n width: 333,\n height: '100%',\n }}\n className={cx('sider')}\n >\n <div className={cx('content')}>\n <div className={cx('controls')}>\n <Tooltip title=\"Search by APIs or Endpoints\" placement=\"bottom\">\n <Input\n placeholder=\"Search by APIs or Endpoints\"\n value={searchValue}\n onChange={(e) => handleSearch(e.target.value)}\n allowClear\n className={cx('search-input')}\n addonAfter={<SearchOutlined />}\n />\n </Tooltip>\n <Tooltip title=\"Collapse All\" placement=\"bottom\">\n <Button onClick={collapseAll} title=\"Collapse All\" icon={<Minify />} />\n </Tooltip>\n </div>\n {filteredTreeData?.length ? (\n <Tree\n showLine={{ showLeafIcon: false }}\n showIcon={false}\n expandedKeys={expandedKeys}\n autoExpandParent={autoExpandParent}\n selectedKeys={[selectedNodeKey || '']}\n onSelect={(selectedKeys) => {\n // Don't allow to deselect a node\n if (!selectedKeys?.length) return\n onTreeNodeSelect(selectedKeys)\n setSelectedNodeKey(selectedKeys[0] as string)\n }}\n onExpand={(expandedKeysValue) => {\n setExpandedKeys(expandedKeysValue as string[])\n setAutoExpandParent(false)\n }}\n treeData={filteredTreeData}\n className={cx('tree')}\n />\n ) : (\n <Flex\n justify=\"center\"\n align=\"center\"\n gap={token.marginSM}\n vertical\n style={{ marginTop: token.paddingXL }}\n >\n <EmptyImg\n width={'10.375rem'}\n height={'8.1875rem'}\n style={{ backgroundSize: 'cover' }}\n />\n {searchValue.length ? (\n <Text\n style={{\n textAlign: 'center',\n fontFamily: token.fontFamily,\n fontWeight: 400,\n fontSize: token.fontSizeLG,\n color: 'rgba(0,0,0,0.45)',\n }}\n >\n No results found\n </Text>\n ) : (\n <Text\n style={{\n textAlign: 'center',\n fontFamily: token.fontFamily,\n fontWeight: 400,\n fontSize: token.fontSizeLG,\n color: 'rgba(0,0,0,0.45)',\n }}\n >\n No API\n <br />\n Documentation Found\n </Text>\n )}\n </Flex>\n )}\n </div>\n </Resizable>\n )\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<mask id=\"path-1-inside-1_7584_26563\" fill=\"white\">\n<path d=\"M3.33333 2.5C2.87281 2.5 2.5 2.87281 2.5 3.33333V6.66667C2.5 7.1272 2.87281 7.5 3.33333 7.5H5.33333C5.79386 7.5 6.16667 7.1272 6.16667 6.66667V3.33333C6.16667 2.87281 5.79386 2.5 5.33333 2.5H3.33333ZM1.5 3.33333C1.5 2.32053 2.32053 1.5 3.33333 1.5H5.33333C6.34614 1.5 7.16667 2.32053 7.16667 3.33333V6.66667C7.16667 7.67947 6.34614 8.5 5.33333 8.5H3.33333C2.32053 8.5 1.5 7.67947 1.5 6.66667V3.33333ZM9.83333 3.33333C9.83333 2.87281 10.2061 2.5 10.6667 2.5H12.6667C13.1272 2.5 13.5 2.87281 13.5 3.33333V4.66667C13.5 5.12719 13.1272 5.5 12.6667 5.5H10.6667C10.2061 5.5 9.83333 5.12719 9.83333 4.66667V3.33333ZM10.6667 1.5C9.65387 1.5 8.83333 2.32053 8.83333 3.33333V4.66667C8.83333 5.67947 9.65387 6.5 10.6667 6.5H12.6667C13.6795 6.5 14.5 5.67947 14.5 4.66667V3.33333C14.5 2.32053 13.6795 1.5 12.6667 1.5H10.6667ZM9.83333 9.33333C9.83333 8.8728 10.2061 8.5 10.6667 8.5H12.6667C13.1272 8.5 13.5 8.8728 13.5 9.33333V12.6667C13.5 13.1272 13.1272 13.5 12.6667 13.5H10.6667C10.2061 13.5 9.83333 13.1272 9.83333 12.6667V9.33333ZM10.6667 7.5C9.65387 7.5 8.83333 8.32053 8.83333 9.33333V12.6667C8.83333 13.6795 9.65387 14.5 10.6667 14.5H12.6667C13.6795 14.5 14.5 13.6795 14.5 12.6667V9.33333C14.5 8.32053 13.6795 7.5 12.6667 7.5H10.6667ZM2.5 11.3333C2.5 10.8728 2.87281 10.5 3.33333 10.5H5.33333C5.79386 10.5 6.16667 10.8728 6.16667 11.3333V12.6667C6.16667 13.1272 5.79386 13.5 5.33333 13.5H3.33333C2.87281 13.5 2.5 13.1272 2.5 12.6667V11.3333ZM3.33333 9.5C2.32053 9.5 1.5 10.3205 1.5 11.3333V12.6667C1.5 13.6795 2.32053 14.5 3.33333 14.5H5.33333C6.34614 14.5 7.16667 13.6795 7.16667 12.6667V11.3333C7.16667 10.3205 6.34614 9.5 5.33333 9.5H3.33333Z\"/>\n</mask>\n<path d=\"M3.33333 2.5C2.87281 2.5 2.5 2.87281 2.5 3.33333V6.66667C2.5 7.1272 2.87281 7.5 3.33333 7.5H5.33333C5.79386 7.5 6.16667 7.1272 6.16667 6.66667V3.33333C6.16667 2.87281 5.79386 2.5 5.33333 2.5H3.33333ZM1.5 3.33333C1.5 2.32053 2.32053 1.5 3.33333 1.5H5.33333C6.34614 1.5 7.16667 2.32053 7.16667 3.33333V6.66667C7.16667 7.67947 6.34614 8.5 5.33333 8.5H3.33333C2.32053 8.5 1.5 7.67947 1.5 6.66667V3.33333ZM9.83333 3.33333C9.83333 2.87281 10.2061 2.5 10.6667 2.5H12.6667C13.1272 2.5 13.5 2.87281 13.5 3.33333V4.66667C13.5 5.12719 13.1272 5.5 12.6667 5.5H10.6667C10.2061 5.5 9.83333 5.12719 9.83333 4.66667V3.33333ZM10.6667 1.5C9.65387 1.5 8.83333 2.32053 8.83333 3.33333V4.66667C8.83333 5.67947 9.65387 6.5 10.6667 6.5H12.6667C13.6795 6.5 14.5 5.67947 14.5 4.66667V3.33333C14.5 2.32053 13.6795 1.5 12.6667 1.5H10.6667ZM9.83333 9.33333C9.83333 8.8728 10.2061 8.5 10.6667 8.5H12.6667C13.1272 8.5 13.5 8.8728 13.5 9.33333V12.6667C13.5 13.1272 13.1272 13.5 12.6667 13.5H10.6667C10.2061 13.5 9.83333 13.1272 9.83333 12.6667V9.33333ZM10.6667 7.5C9.65387 7.5 8.83333 8.32053 8.83333 9.33333V12.6667C8.83333 13.6795 9.65387 14.5 10.6667 14.5H12.6667C13.6795 14.5 14.5 13.6795 14.5 12.6667V9.33333C14.5 8.32053 13.6795 7.5 12.6667 7.5H10.6667ZM2.5 11.3333C2.5 10.8728 2.87281 10.5 3.33333 10.5H5.33333C5.79386 10.5 6.16667 10.8728 6.16667 11.3333V12.6667C6.16667 13.1272 5.79386 13.5 5.33333 13.5H3.33333C2.87281 13.5 2.5 13.1272 2.5 12.6667V11.3333ZM3.33333 9.5C2.32053 9.5 1.5 10.3205 1.5 11.3333V12.6667C1.5 13.6795 2.32053 14.5 3.33333 14.5H5.33333C6.34614 14.5 7.16667 13.6795 7.16667 12.6667V11.3333C7.16667 10.3205 6.34614 9.5 5.33333 9.5H3.33333Z\" fill=\"#D9D9D9\"/>\n<path d=\"M3.33333 2.5V1.5C2.32052 1.5 1.5 2.32052 1.5 3.33333H2.5H3.5C3.5 3.42509 3.42509 3.5 3.33333 3.5V2.5ZM2.5 3.33333H1.5V6.66667H2.5H3.5V3.33333H2.5ZM2.5 6.66667H1.5C1.5 7.67949 2.32053 8.5 3.33333 8.5V7.5V6.5C3.42509 6.5 3.5 6.57491 3.5 6.66667H2.5ZM3.33333 7.5V8.5H5.33333V7.5V6.5H3.33333V7.5ZM5.33333 7.5V8.5C6.34614 8.5 7.16667 7.67949 7.16667 6.66667H6.16667H5.16667C5.16667 6.57491 5.24158 6.5 5.33333 6.5V7.5ZM6.16667 6.66667H7.16667V3.33333H6.16667H5.16667V6.66667H6.16667ZM6.16667 3.33333H7.16667C7.16667 2.32052 6.34614 1.5 5.33333 1.5V2.5V3.5C5.24158 3.5 5.16667 3.42509 5.16667 3.33333H6.16667ZM5.33333 2.5V1.5H3.33333V2.5V3.5H5.33333V2.5ZM1.5 3.33333H2.5C2.5 2.87281 2.87281 2.5 3.33333 2.5V1.5V0.5C1.76824 0.5 0.5 1.76824 0.5 3.33333H1.5ZM3.33333 1.5V2.5H5.33333V1.5V0.5H3.33333V1.5ZM5.33333 1.5V2.5C5.79386 2.5 6.16667 2.87281 6.16667 3.33333H7.16667H8.16667C8.16667 1.76824 6.89843 0.5 5.33333 0.5V1.5ZM7.16667 3.33333H6.16667V6.66667H7.16667H8.16667V3.33333H7.16667ZM7.16667 6.66667H6.16667C6.16667 7.12718 5.79385 7.5 5.33333 7.5V8.5V9.5C6.89843 9.5 8.16667 8.23175 8.16667 6.66667H7.16667ZM5.33333 8.5V7.5H3.33333V8.5V9.5H5.33333V8.5ZM3.33333 8.5V7.5C2.87281 7.5 2.5 7.12718 2.5 6.66667H1.5H0.5C0.5 8.23175 1.76824 9.5 3.33333 9.5V8.5ZM1.5 6.66667H2.5V3.33333H1.5H0.5V6.66667H1.5ZM9.83333 3.33333H10.8333C10.8333 3.42509 10.7584 3.5 10.6667 3.5V2.5V1.5C9.65384 1.5 8.83333 2.32053 8.83333 3.33333H9.83333ZM10.6667 2.5V3.5H12.6667V2.5V1.5H10.6667V2.5ZM12.6667 2.5V3.5C12.5749 3.5 12.5 3.42509 12.5 3.33333H13.5H14.5C14.5 2.32053 13.6795 1.5 12.6667 1.5V2.5ZM13.5 3.33333H12.5V4.66667H13.5H14.5V3.33333H13.5ZM13.5 4.66667H12.5C12.5 4.57491 12.5749 4.5 12.6667 4.5V5.5V6.5C13.6795 6.5 14.5 5.67947 14.5 4.66667H13.5ZM12.6667 5.5V4.5H10.6667V5.5V6.5H12.6667V5.5ZM10.6667 5.5V4.5C10.7584 4.5 10.8333 4.57491 10.8333 4.66667H9.83333H8.83333C8.83333 5.67947 9.65384 6.5 10.6667 6.5V5.5ZM9.83333 4.66667H10.8333V3.33333H9.83333H8.83333V4.66667H9.83333ZM10.6667 1.5V0.5C9.10158 0.5 7.83333 1.76824 7.83333 3.33333H8.83333H9.83333C9.83333 2.87281 10.2061 2.5 10.6667 2.5V1.5ZM8.83333 3.33333H7.83333V4.66667H8.83333H9.83333V3.33333H8.83333ZM8.83333 4.66667H7.83333C7.83333 6.23176 9.10158 7.5 10.6667 7.5V6.5V5.5C10.2061 5.5 9.83333 5.12719 9.83333 4.66667H8.83333ZM10.6667 6.5V7.5H12.6667V6.5V5.5H10.6667V6.5ZM12.6667 6.5V7.5C14.2317 7.5 15.5 6.23176 15.5 4.66667H14.5H13.5C13.5 5.12719 13.1272 5.5 12.6667 5.5V6.5ZM14.5 4.66667H15.5V3.33333H14.5H13.5V4.66667H14.5ZM14.5 3.33333H15.5C15.5 1.76824 14.2317 0.5 12.6667 0.5V1.5V2.5C13.1272 2.5 13.5 2.87281 13.5 3.33333H14.5ZM12.6667 1.5V0.5H10.6667V1.5V2.5H12.6667V1.5ZM9.83333 9.33333H10.8333C10.8333 9.42509 10.7584 9.5 10.6667 9.5V8.5V7.5C9.65385 7.5 8.83333 8.32052 8.83333 9.33333H9.83333ZM10.6667 8.5V9.5H12.6667V8.5V7.5H10.6667V8.5ZM12.6667 8.5V9.5C12.5749 9.5 12.5 9.42509 12.5 9.33333H13.5H14.5C14.5 8.32052 13.6795 7.5 12.6667 7.5V8.5ZM13.5 9.33333H12.5V12.6667H13.5H14.5V9.33333H13.5ZM13.5 12.6667H12.5C12.5 12.5749 12.5749 12.5 12.6667 12.5V13.5V14.5C13.6795 14.5 14.5 13.6795 14.5 12.6667H13.5ZM12.6667 13.5V12.5H10.6667V13.5V14.5H12.6667V13.5ZM10.6667 13.5V12.5C10.7584 12.5 10.8333 12.5749 10.8333 12.6667H9.83333H8.83333C8.83333 13.6795 9.65385 14.5 10.6667 14.5V13.5ZM9.83333 12.6667H10.8333V9.33333H9.83333H8.83333V12.6667H9.83333ZM10.6667 7.5V6.5C9.10158 6.5 7.83333 7.76825 7.83333 9.33333H8.83333H9.83333C9.83333 8.87282 10.2062 8.5 10.6667 8.5V7.5ZM8.83333 9.33333H7.83333V12.6667H8.83333H9.83333V9.33333H8.83333ZM8.83333 12.6667H7.83333C7.83333 14.2318 9.10158 15.5 10.6667 15.5V14.5V13.5C10.2062 13.5 9.83333 13.1272 9.83333 12.6667H8.83333ZM10.6667 14.5V15.5H12.6667V14.5V13.5H10.6667V14.5ZM12.6667 14.5V15.5C14.2318 15.5 15.5 14.2318 15.5 12.6667H14.5H13.5C13.5 13.1272 13.1272 13.5 12.6667 13.5V14.5ZM14.5 12.6667H15.5V9.33333H14.5H13.5V12.6667H14.5ZM14.5 9.33333H15.5C15.5 7.76825 14.2318 6.5 12.6667 6.5V7.5V8.5C13.1272 8.5 13.5 8.87282 13.5 9.33333H14.5ZM12.6667 7.5V6.5H10.6667V7.5V8.5H12.6667V7.5ZM2.5 11.3333H3.5C3.5 11.4251 3.42509 11.5 3.33333 11.5V10.5V9.5C2.32053 9.5 1.5 10.3205 1.5 11.3333H2.5ZM3.33333 10.5V11.5H5.33333V10.5V9.5H3.33333V10.5ZM5.33333 10.5V11.5C5.24158 11.5 5.16667 11.4251 5.16667 11.3333H6.16667H7.16667C7.16667 10.3205 6.34614 9.5 5.33333 9.5V10.5ZM6.16667 11.3333H5.16667V12.6667H6.16667H7.16667V11.3333H6.16667ZM6.16667 12.6667H5.16667C5.16667 12.5749 5.24158 12.5 5.33333 12.5V13.5V14.5C6.34614 14.5 7.16667 13.6795 7.16667 12.6667H6.16667ZM5.33333 13.5V12.5H3.33333V13.5V14.5H5.33333V13.5ZM3.33333 13.5V12.5C3.42509 12.5 3.5 12.5749 3.5 12.6667H2.5H1.5C1.5 13.6795 2.32053 14.5 3.33333 14.5V13.5ZM2.5 12.6667H3.5V11.3333H2.5H1.5V12.6667H2.5ZM3.33333 9.5V8.5C1.76824 8.5 0.5 9.76825 0.5 11.3333H1.5H2.5C2.5 10.8728 2.87281 10.5 3.33333 10.5V9.5ZM1.5 11.3333H0.5V12.6667H1.5H2.5V11.3333H1.5ZM1.5 12.6667H0.5C0.5 14.2317 1.76824 15.5 3.33333 15.5V14.5V13.5C2.87281 13.5 2.5 13.1272 2.5 12.6667H1.5ZM3.33333 14.5V15.5H5.33333V14.5V13.5H3.33333V14.5ZM5.33333 14.5V15.5C6.89843 15.5 8.16667 14.2317 8.16667 12.6667H7.16667H6.16667C6.16667 13.1272 5.79385 13.5 5.33333 13.5V14.5ZM7.16667 12.6667H8.16667V11.3333H7.16667H6.16667V12.6667H7.16667ZM7.16667 11.3333H8.16667C8.16667 9.76825 6.89843 8.5 5.33333 8.5V9.5V10.5C5.79385 10.5 6.16667 10.8728 6.16667 11.3333H7.16667ZM5.33333 9.5V8.5H3.33333V9.5V10.5H5.33333V9.5Z\" fill=\"#769DE4\" mask=\"url(#path-1-inside-1_7584_26563)\"/>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.2673 9H2.73398C1.73398 9 1.33398 9.42667 1.33398 10.4867V13.18C1.33398 14.24 1.73398 14.6667 2.73398 14.6667H13.2673C14.2673 14.6667 14.6673 14.24 14.6673 13.18V10.4867C14.6673 9.42667 14.2673 9 13.2673 9Z\" stroke=\"black\" stroke-opacity=\"0.25\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M13.2673 1.33398H2.73398C1.73398 1.33398 1.33398 1.76065 1.33398 2.82065V5.51398C1.33398 6.57398 1.73398 7.00065 2.73398 7.00065H13.2673C14.2673 7.00065 14.6673 6.57398 14.6673 5.51398V2.82065C14.6673 1.76065 14.2673 1.33398 13.2673 1.33398Z\" stroke=\"black\" stroke-opacity=\"0.25\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M3.875 9.25C2.085 9.25 0.625 7.79 0.625 6C0.625 4.21 2.085 2.75 3.875 2.75C4.08 2.75 4.25 2.92 4.25 3.125C4.25 3.33 4.08 3.5 3.875 3.5C2.495 3.5 1.375 4.62 1.375 6C1.375 7.38 2.495 8.5 3.875 8.5C5.255 8.5 6.375 7.38 6.375 6C6.375 5.795 6.545 5.625 6.75 5.625C6.955 5.625 7.125 5.795 7.125 6C7.125 7.79 5.665 9.25 3.875 9.25Z\" fill=\"#4D75D9\"/>\n<path d=\"M8 9.375C7.795 9.375 7.625 9.205 7.625 9C7.625 8.795 7.795 8.625 8 8.625C9.445 8.625 10.625 7.445 10.625 6C10.625 4.555 9.445 3.375 8 3.375C6.555 3.375 5.375 4.555 5.375 6C5.375 6.205 5.205 6.375 5 6.375C4.795 6.375 4.625 6.205 4.625 6C4.625 4.14 6.14 2.625 8 2.625C9.86 2.625 11.375 4.14 11.375 6C11.375 7.86 9.86 9.375 8 9.375Z\" fill=\"#4D75D9\"/>\n</svg>\n","import { useStyle } from '@doc-lib/hooks/useStyle'\nimport { EndpointData } from '@doc-lib/view/entities'\nimport { methodColors } from '@doc-lib/view/helper'\nimport { Button, Card, Divider, Flex, Tooltip } from 'antd'\nimport Title from 'antd/es/typography/Title'\nimport Text from 'antd/es/typography/Text'\nimport LinkIcon from '@doc-lib/assets/link.svg'\nimport { useNodeSelection } from '@doc-lib/hooks/useNodeSelection'\n\ninterface IAPICard {\n viewStyle: 'grid' | 'list'\n api: EndpointData\n}\n\nconst ApiCard = ({ api, viewStyle }: IAPICard) => {\n const { wrapSSR, cx, token } = useStyle('DocumentationApiCard', (token, scope) => ({\n [scope('method-chip')]: {\n minWidth: '5.375rem',\n width: 'fit-content',\n paddingLeft: token.marginXS,\n paddingRight: token.marginXS,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: token.borderRadius,\n },\n [scope('list-container')]: { paddingTop: token.marginXS, paddingBottom: token.marginXS },\n [scope('chip-title')]: {\n alignSelf: 'center',\n textAlign: 'center',\n padding: 0,\n margin: 0,\n lineHeight: '1.375rem',\n fontSize: token.fontSize,\n },\n [scope('list-see-details')]: {\n width: '6.5625rem',\n height: '2rem',\n borderRadius: token.borderRadius,\n border: `${token.lineWidth}px solid ${token.Button?.defaultBorderColor}`,\n paddingRight: token.Button?.paddingInline,\n paddingLeft: token.Button?.paddingInline,\n background: token.Button?.defaultBg,\n '&:hover': {\n background: token.Button?.defaultBg,\n },\n },\n [scope('list-content')]: {\n display: 'flex',\n paddingTop: token.paddingXXS,\n paddingBottom: token.paddingXXS,\n paddingRight: token.paddingXS,\n paddingLeft: token.paddingXS,\n alignItems: 'center',\n gap: token.marginXS,\n alignSelf: 'stretch',\n flexDirection: 'row',\n borderRadius: token.borderRadiusSM,\n border: `1px solid ${token.colorBorderSecondary}`,\n minWidth: '6.25rem',\n maxWidth: 'fit-content',\n },\n [scope('list-title')]: {\n color: token.colorTextHeading,\n fontSize: token.fontSizeHeading3,\n fontWeight: token.fontWeightStrong,\n lineHeight: token.lineHeightHeading3,\n paddingBottom: 0,\n marginBottom: 0,\n fontFamily: 'SF Pro',\n cursor: 'pointer',\n transition: 'color 0.2s ease-in',\n\n '&:hover': {\n color: `${token.colorPrimary} !important`,\n textDecoration: 'underline',\n },\n },\n [scope('path-name')]: {\n color: token.colorText,\n fontSize: token.fontSizeSM,\n fontWeight: 400,\n fontFamily: token.fontFamily,\n },\n [scope('grid-card')]: {\n width: '17.5rem',\n height: '100%',\n borderRadius: token.borderRadiusLG,\n },\n [scope('grid-title')]: {\n color: token.colorTextHeading,\n fontSize: token.fontSizeHeading3,\n fontWeight: token.fontWeightStrong,\n lineHeight: token.lineHeightHeading3,\n paddingBottom: 0,\n marginBottom: 0,\n fontFamily: token.fontFamily,\n },\n [scope('grid-content')]: {\n display: 'flex',\n paddingTop: token.paddingXXS,\n paddingBottom: token.paddingXXS,\n paddingRight: token.paddingXS,\n paddingLeft: token.paddingXS,\n alignItems: 'center',\n gap: token.marginXS,\n alignSelf: 'stretch',\n flexDirection: 'row',\n borderRadius: token.borderRadiusSM,\n border: `1px solid ${token.colorBorderSecondary}`,\n },\n [scope('grid-path-name')]: {\n color: token.colorText,\n fontSize: token.fontSizeSM,\n fontWeight: 400,\n fontFamily: token.fontFamily,\n },\n [scope('grid-see-details')]: {\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: '0.4375rem',\n paddingRight: '0.4375rem',\n borderRadius: token.borderRadiusSM,\n border: `1px solid ${token.Button?.defaultBorderColor}`,\n background: token.Button?.defaultBg,\n boxShadow: `0 2px 0 0 rgba(0, 0, 0, 0.02)`,\n width: '100%',\n height: '1.5rem',\n },\n }))\n\n const { selectNodeByKey } = useNodeSelection()\n\n const handleOpenEndPointView = () => {\n selectNodeByKey(api.id)\n }\n\n const TooltippedText = ({ text }: { text: string }) => {\n const limitation = viewStyle == 'grid' ? 15 : 36\n if (text.length < limitation) {\n return text\n }\n\n return (\n <Tooltip title={text} placement=\"bottomLeft\">\n {text.substring(0, limitation)}...\n </Tooltip>\n )\n }\n\n const MethodChip = ({ method }: { method: string }) => {\n const methodStyle = methodColors[method as keyof typeof methodColors]\n return (\n <div\n className={cx('method-chip')}\n style={{\n backgroundColor: methodStyle?.bg,\n color: methodStyle?.color,\n border: 'none',\n }}\n >\n <Title style={{ color: methodStyle?.color }} className={cx('chip-title')} level={5}>\n {method}\n </Title>\n </div>\n )\n }\n\n if (viewStyle == 'list') {\n return wrapSSR(\n <Flex vertical>\n <Flex justify=\"space-between\" align=\"center\" className={cx('list-container')}>\n <Flex gap={token.marginSM}>\n <MethodChip method={api.method} />\n <Title className={cx('list-title')} level={4} onClick={handleOpenEndPointView}>\n <TooltippedText text={api?.summary || 'Endpoint Name'} />\n </Title>\n </Flex>\n <Button className={cx('list-see-details')} onClick={handleOpenEndPointView}>\n See Details\n </Button>\n </Flex>\n <div className={cx('list-content')}>\n <LinkIcon />\n <Text className={cx('path-name')}>{api?.path}</Text>\n </div>\n <Divider style={{ marginTop: '0.75rem', marginBottom: '0.25rem' }} />\n </Flex>\n )\n }\n\n return wrapSSR(\n <Card className={cx('grid-card')}>\n <Flex vertical gap={token.marginSM}>\n <MethodChip method={api?.method} />\n <Title className={cx('grid-title')} level={4}>\n <TooltippedText text={api?.summary || 'Endpoint Name'} />\n </Title>\n <div className={cx('grid-content')}>\n <LinkIcon />\n <Text className={cx('grid-path-name')}>{api?.path}</Text>\n </div>\n <Button className={cx('grid-see-details')} onClick={handleOpenEndPointView}>\n See Details\n </Button>\n </Flex>\n </Card>\n )\n}\n\nexport default ApiCard\n","export const handleStatusColor = (code: number): string => {\n if (code >= 200 && code < 300) {\n return 'green' // 2xx codes\n } else if (code >= 400 && code < 500) {\n return 'red' // 4xx codes\n } else if (code >= 500 && code < 600) {\n return 'red' // 5xx codes\n } else if (code >= 100 && code < 200) {\n return 'blue' // 1xx codes (Informational)\n } else if (code >= 300 && code < 400) {\n return 'orange' // 3xx codes (Redirection)\n } else {\n return 'gray' // Default or invalid status codes\n }\n}\n\nexport const copyToClipboard = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text)\n return;\n } catch (err) {\n return err\n }\n}\n","<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.99992 11.3754C5.87992 11.3754 5.75993 11.3604 5.64493 11.3254C3.04993 10.6104 1.16992 8.18539 1.16992 5.55539V3.36038C1.16992 2.80038 1.57492 2.19541 2.09492 1.98041L4.87993 0.840391C5.60493 0.545391 6.39992 0.545391 7.11992 0.840391L9.90492 1.98041C10.4249 2.19541 10.8299 2.80038 10.8299 3.36038V5.55539C10.8299 8.18039 8.94492 10.6054 6.35492 11.3254C6.23992 11.3604 6.11992 11.3754 5.99992 11.3754ZM5.99992 1.37539C5.71492 1.37539 5.43492 1.4304 5.16492 1.5404L2.37993 2.68039C2.13993 2.78039 1.91992 3.10538 1.91992 3.36538V5.56039C1.91992 7.85539 3.56992 9.9754 5.84492 10.6054C5.94492 10.6354 6.05492 10.6354 6.15492 10.6054C8.42992 9.9754 10.0799 7.85539 10.0799 5.56039V3.36538C10.0799 3.10538 9.85992 2.78039 9.61992 2.68039L6.83493 1.5404C6.56493 1.4304 6.28492 1.37539 5.99992 1.37539Z\" fill=\"currentcolor\"/>\n<path d=\"M6 6.625C5.24 6.625 4.625 6.01 4.625 5.25C4.625 4.49 5.24 3.875 6 3.875C6.76 3.875 7.375 4.49 7.375 5.25C7.375 6.01 6.76 6.625 6 6.625ZM6 4.625C5.655 4.625 5.375 4.905 5.375 5.25C5.375 5.595 5.655 5.875 6 5.875C6.345 5.875 6.625 5.595 6.625 5.25C6.625 4.905 6.345 4.625 6 4.625Z\" fill=\"currentcolor\" />\n<path d=\"M6 8.125C5.795 8.125 5.625 7.955 5.625 7.75V6.25C5.625 6.045 5.795 5.875 6 5.875C6.205 5.875 6.375 6.045 6.375 6.25V7.75C6.375 7.955 6.205 8.125 6 8.125Z\" fill=\"currentcolor\" />\n</svg>\n","'use client'\nimport { useStyle } from '../../../hooks/useStyle'\nimport { Button, Divider, Flex, Radio, RadioChangeEvent, Select, Tag, Tooltip } from 'antd'\nimport Title from 'antd/es/typography/Title'\nimport Text from 'antd/es/typography/Text'\nimport { InfoCircleOutlined } from '@ant-design/icons'\nimport GridIcon from '@doc-lib/assets/grid.svg'\nimport ListIcon from '@doc-lib/assets/list.svg'\nimport CopyIcon from '@doc-lib/assets/copy.svg'\nimport useStore from '@doc-lib/store'\nimport { OverviewData } from '@doc-lib/view/entities'\nimport ApiCard from './components/ApiCard'\nimport { useEffect, useMemo, useState } from 'react'\nimport { copyToClipboard } from '@doc-lib/utils'\nimport SecuritySafe from '@doc-lib/assets/securitySafe.svg'\n\nexport const APIPage = () => {\n const [selectedUrl, setSelectedUrl] = useState<string>('')\n const [copying, setCopying] = useState(false)\n const {\n view: {\n selectedApi,\n transformedData,\n setSelectedApi,\n setFocusedContent,\n setSelectedNodeKey,\n focusedTag,\n setFocusedTag,\n },\n } = useStore()\n const [viewStyle, setViewStyle] = useState<'grid' | 'list'>('grid')\n const { wrapSSR, cx, token } = useStyle('DocumentationApiPage', () => ({}))\n\n const currentVersion = selectedApi?.relatedVersions?.find(\n (v) => v.apiId === selectedApi?.currentVersion\n )\n const urlsOptions = useMemo(\n () =>\n selectedApi?.servers?.map((server) => ({\n label: server?.url,\n value: server?.url,\n })),\n [selectedApi?.servers]\n )\n\n useEffect(() => {\n if (focusedTag && document.getElementById(focusedTag)) {\n const element = document.getElementById(focusedTag)\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' }) // or \"auto\"\n }\n setFocusedTag(null)\n }\n }, [focusedTag, setFocusedTag])\n\n useEffect(() => {\n if (!!urlsOptions?.length) {\n setSelectedUrl(urlsOptions[0]?.value)\n }\n }, [selectedApi, urlsOptions])\n\n const handleVersionChanged = (value: string) => {\n const apiByVersion = transformedData?.find((item) => item.currentVersion === value)\n if (apiByVersion) {\n setSelectedApi(apiByVersion)\n setFocusedContent('API')\n setSelectedNodeKey(apiByVersion.id)\n }\n }\n\n useEffect(() => {\n if (selectedApi?.servers && !selectedUrl) {\n setSelectedUrl(selectedApi?.servers?.[0].url)\n }\n }, [selectedApi?.servers])\n\n const handleCopyUrl = async () => {\n setCopying(true)\n await copyToClipboard(selectedUrl)\n setTimeout(() => {\n setCopying(false)\n }, 700)\n }\n\n // 🔹 Map endpoints with curl commands by selectedUrl\n const getEndpointsForSelectedUrl = () => {\n if (!selectedApi) return {}\n\n const tags = selectedApi.tags || {}\n const curl = selectedApi.curl || []\n\n const filtered: typeof tags = {}\n\n Object.keys(tags).forEach((tagKey) => {\n filtered[tagKey] = tags[tagKey].map((endpoint) => {\n const curlMatch = curl.find(\n (c: any) =>\n c.serverUrl === selectedUrl && c.method === endpoint.method && c.path === endpoint.path\n )\n return {\n ...endpoint,\n curlCommand: curlMatch?.curlCommand || null,\n }\n })\n })\n\n return filtered\n }\n\n const APIsRenderer = ({\n apis,\n withTitle,\n tagName,\n haveUnderLine,\n contextPath,\n }: {\n apis: OverviewData['tags']['default']\n withTitle?: boolean\n tagName?: string\n haveUnderLine?: boolean\n contextPath?: string\n }) => {\n return (\n <Flex\n key={`${tagName}_renderer_${contextPath}`}\n gap={viewStyle == 'grid' ? token.marginXS : 0}\n style={{ marginBottom: 0, paddingBottom: 0 }}\n vertical\n >\n {withTitle && (\n <Title id={tagName} style={{ marginBottom: 0 }} level={4}>\n {tagName}\n </Title>\n )}\n <Flex wrap={'wrap'} gap={viewStyle == 'grid' ? '1.5rem' : 0} vertical={viewStyle == 'list'}>\n {apis.map((item) => (\n <ApiCard\n key={`${tagName}_renderer_${item.method}_${contextPath}`}\n api={item}\n viewStyle={viewStyle}\n />\n ))}\n </Flex>\n {haveUnderLine && (\n <Divider style={{ marginTop: token.marginSM, marginBottom: token.marginSM }} />\n )}\n </Flex>\n )\n }\n\n function formatAuthType(authType?: string): string {\n if (!authType) return 'N/A'\n\n switch (authType) {\n case 'OAUTH':\n return 'OAuth2'\n case 'API_KEY':\n return 'API Key'\n default:\n return authType\n .replaceAll('_', ' ')\n .toLowerCase()\n .replace(/\\b\\w/g, (char) => char.toUpperCase())\n }\n }\n\n return wrapSSR(\n <Flex vertical gap={token.margin}>\n <Title className={cx('container')} level={4}>\n {selectedApi?.title}\n </Title>\n <Flex>\n {selectedApi?.authType && (\n <Tooltip title=\"Authentication Type\" placement=\"bottomLeft\">\n <Tag\n style={{\n minWidth: '3.9375rem',\n width: 'max-content',\n height: '2rem',\n borderRadius: token.borderRadiusSM,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '0.25rem',\n }}\n icon={<SecuritySafe />}\n >\n {formatAuthType(selectedApi?.authType)}\n </Tag>\n </Tooltip>\n )}\n {selectedApi?.authType && <Divider style={{ height: '2rem' }} type=\"vertical\" />}\n <Select\n size=\"middle\"\n prefix={\n <Tooltip title={'API Version'} placement=\"bottom\">\n <InfoCircleOutlined width={'1rem'} height={'1rem'} />\n </Tooltip>\n }\n value={currentVersion?.apiId}\n onChange={handleVersionChanged}\n style={{\n minWidth: '6.1875rem',\n width: 'max-content',\n display: 'flex',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n paddingLeft: '0.5rem',\n paddingRight: '0.5rem',\n }}\n placeholder=\"Version\"\n options={selectedApi?.relatedVersions?.map((item) => ({\n label: item.version,\n value: item.apiId,\n }))}\n showSearch={false}\n />\n {/* <Divider style={{ height: '2rem' }} type=\"vertical\" /> */}\n {/* <Select\n size=\"middle\"\n prefix={\n <Tooltip title={'URL'} placement=\"bottom\">\n <InfoCircleOutlined width={'1rem'} height={'1rem'} />\n </Tooltip>\n }\n value={selectedUrl}\n onChange={setSelectedUrl}\n style={{\n width: '24.75rem',\n display: 'flex',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n paddingLeft: '0.5rem',\n }}\n placeholder=\"API URLs\"\n options={urlsOptions}\n showSearch={false}\n /> */}\n {/* <Button\n color={copying ? 'green' : 'default'}\n variant={copying ? 'filled' : 'outlined'}\n icon={<CopyIcon />}\n iconPosition=\"end\"\n style={{ marginLeft: '0.69rem' }}\n onClick={handleCopyUrl}\n >\n {!copying ? 'Copy' : 'Copied'}\n </Button> */}\n\n <Radio.Group\n style={{ marginLeft: 'auto', display: 'flex' }}\n optionType=\"button\"\n buttonStyle=\"outline\"\n defaultValue={viewStyle}\n onChange={(e: RadioChangeEvent) => {\n setViewStyle(e.target.value)\n }}\n >\n <Radio.Button value=\"grid\" style={{ display: 'flex', alignItems: 'center' }}>\n <GridIcon />\n </Radio.Button>\n <Radio.Button value=\"list\" style={{ display: 'flex', alignItems: 'center' }}>\n <ListIcon />\n </Radio.Button>\n </Radio.Group>\n </Flex>\n <Text\n style={{\n fontFamily: token.fontFamily,\n fontWeight: 400,\n fontSize: token.fontSizeLG,\n color: `rgba(0,0,0, 0.45)`,\n }}\n >\n {selectedApi?.description || '--'}\n </Text>\n\n {Object.entries(getEndpointsForSelectedUrl())\n .sort(([a], [b]) => {\n if (a.toLowerCase() === 'default') return 1\n if (b.toLowerCase() === 'default') return -1\n return 0\n })\n .map(([key, endpoints], index, arr) => {\n if (key.toLowerCase() === 'default' && arr.length <= 1) {\n return (\n <APIsRenderer\n key={`${selectedApi}_${selectedApi?.contextPath}`}\n apis={endpoints}\n tagName={key}\n withTitle={false}\n contextPath={selectedApi?.contextPath}\n />\n )\n }\n return (\n <APIsRenderer\n key={`${selectedApi}_${selectedApi?.contextPath}`}\n apis={endpoints}\n tagName={key}\n withTitle={true}\n haveUnderLine={index < arr.length - 1}\n contextPath={selectedApi?.contextPath}\n />\n )\n })}\n </Flex>\n )\n}\n","'use client'\nimport React, { useState } from 'react'\nimport { Typography, Table, Tag, Card, Select, Breadcrumb, Button, Tabs, Tooltip } from 'antd'\nimport { useStyle } from '../../../hooks/useStyle'\nimport { LeftOutlined } from '@ant-design/icons'\nimport useStore from '@doc-lib/store'\nimport { methodColors } from '@doc-lib/view/helper'\nimport CopyOutlined from '@doc-lib/assets/copy.svg'\nimport { copyToClipboard, handleStatusColor } from '@doc-lib/utils'\n\nconst { Title, Paragraph } = Typography\n\n// Table column definitions\nconst requestColumns = [\n { title: 'Parameter', dataIndex: 'param', key: 'param' },\n { title: 'Description', dataIndex: 'desc', key: 'desc' },\n { title: 'Enum', dataIndex: 'enum', key: 'enum' },\n]\n\nconst responseColumns = [...requestColumns]\n\n// Helper to build table rows from OpenAPI params\nconst buildRequestData = (params: any[]) =>\n [...params]\n .sort((a, b) => (a.required === b.required ? 0 : a.required ? -1 : 1))\n .map((p, index) => {\n let typeLabel = p.schema?.type\n if (p.schema?.type === 'array' && p.schema?.items?.type) {\n typeLabel = `${p.schema.type}_${p.schema.items.type}`\n }\n\n return {\n key: index,\n param: (\n <span>\n {p.name}\n {typeLabel && (\n <span\n style={{\n color: 'rgba(0,0,0,0.45)',\n marginLeft: '0.25rem',\n marginRight: '0.25rem',\n }}\n >\n {typeLabel}\n </span>\n )}\n {p.required ? (\n <span style={{ color: 'red' }}>*</span>\n ) : (\n <span style={{ color: '#52C41A' }}>Optional</span>\n )}\n </span>\n ),\n desc: p.description || '--',\n enum: p.schema?.enum ? p.schema.enum.map((e: string) => <Tag key={e}>{e}</Tag>) : '--',\n }\n })\n\n// Build response rows from headers\nconst buildHeaderData = (headers: any) => {\n if (!headers) return []\n return Object.entries(headers)\n .sort(([, a]: any, [, b]: any) => (a.required === b.required ? 0 : a.required ? -1 : 1))\n .map(([name, header]: any, idx) => {\n let typeLabel = header.schema?.type\n if (header.schema?.type === 'array' && header.schema?.items?.type) {\n typeLabel = `${header.schema.type}_${header.schema.items.type}`\n }\n\n return {\n key: idx,\n param: (\n <span key={idx}>\n {name}\n {typeLabel && (\n <span\n style={{\n color: 'rgba(0,0,0,0.45)',\n marginLeft: '0.25rem',\n marginRight: '0.25rem',\n }}\n >\n {typeLabel}\n </span>\n )}\n {header.required ? (\n <span style={{ color: 'red' }}>*</span>\n ) : (\n <span style={{ color: '#52C41A' }}>Optional</span>\n )}\n </span>\n ),\n desc: header.description || '--',\n enum: header.schema?.enum\n ? header.schema.enum.map((e: string) => <Tag key={e}>{e}</Tag>)\n : '--',\n }\n })\n}\n\nexport const EndpointPage: React.FC = () => {\n const {\n selectedEndpoint,\n selectedApi,\n selectedStatusCode,\n setSelectedNodeKey,\n setFocusedContent,\n setFocusedTag,\n } = useStore(({ view }) => view)\n const [endpointTooltip, setEndpointTooltip] = useState('Copy endpoint')\n const [selectedServer, setSelectedServer] = useState(0)\n\n const { cx } = useStyle('EndpointPage', (token, scope) => ({\n [scope('docs-endpoint-container')]: {\n display: 'flex',\n flexDirection: 'column',\n gap: token.marginLG,\n height: '100%',\n },\n [scope('content')]: {\n width: '100%',\n height: '100%',\n },\n [scope('code')]: {\n background: 'unset',\n borderRadius: token.borderRadius,\n padding: token.paddingSM,\n fontFamily: 'monospace',\n whiteSpace: 'pre-wrap',\n },\n [scope('breadcrumb')]: {\n display: 'flex',\n gap: token.marginLG,\n alignItems: 'center',\n marginBottom: token.marginLG,\n },\n [scope('request-card')]: {\n '.ant-card-head': {\n minHeight: 'unset',\n borderBottom: 'unset',\n padding: '0.75rem',\n },\n '.ant-card-body': {\n padding: '0px 0.75rem 0.75rem 0.75rem',\n '.ant-tabs-tab': {\n paddingTop: '0',\n },\n },\n },\n }))\n\n const methodStyle = methodColors[selectedEndpoint?.method as keyof typeof methodColors]\n const headerParams = buildRequestData(\n selectedEndpoint?.parameters?.filter((p) => p.in === 'header') || []\n )\n const pathParams = buildRequestData(\n selectedEndpoint?.parameters?.filter((p) => p.in === 'path') || []\n )\n const queryParams = buildRequestData(\n selectedEndpoint?.parameters?.filter((p) => p.in === 'query') || []\n )\n type RequestTab = { key: string; label: string; children: any }\n\n const requestTabs: RequestTab[] = [\n {\n key: 'header',\n label: 'Header',\n children: (\n <Table\n columns={requestColumns}\n dataSource={headerParams}\n pagination={false}\n bordered\n size=\"small\"\n />\n ),\n },\n {\n key: 'path',\n label: 'Path',\n children: (\n <Table\n columns={requestColumns}\n dataSource={pathParams}\n pagination={false}\n bordered\n size=\"small\"\n />\n ),\n },\n {\n key: 'query',\n label: 'Query',\n children: (\n <Table\n columns={requestColumns}\n dataSource={queryParams}\n pagination={false}\n bordered\n size=\"small\"\n />\n ),\n },\n ].filter((t): t is RequestTab => t !== null)\n\n const responseObj = selectedEndpoint?.responses?.[selectedStatusCode || 200]\n const responseHeaders = responseObj?.headers\n\n const responseHeaderData = buildHeaderData(responseHeaders)\n\n const serverOptions =\n selectedApi?.servers?.map((server: any, index: number) => ({\n value: index,\n label: `${server.url}${selectedEndpoint?.path || ''}`,\n })) || []\n\n const getFullEndpointUrl = () => {\n if (!selectedApi?.servers || !selectedApi.servers[selectedServer]) return ''\n\n const server = selectedApi.servers[selectedServer]\n return `${server.url}${selectedEndpoint?.path || ''}`\n }\n\n return (\n <div className={cx('docs-endpoint-container')}>\n {/* Main Content */}\n <div className={cx('content')}>\n {/* Header */}\n <div className={cx('breadcrumb')}>\n <Button\n color=\"default\"\n variant=\"outlined\"\n icon={<LeftOutlined />}\n onClick={(e) => {\n e.preventDefault()\n setSelectedNodeKey(selectedApi?.id as string)\n setFocusedContent('API')\n }}\n ></Button>\n\n <Breadcrumb\n items={[\n {\n href: '',\n title: <span>{selectedApi?.title || 'API Name'}</span>,\n onClick: (e) => {\n e.preventDefault()\n setSelectedNodeKey(selectedApi?.id as string)\n setFocusedContent('API')\n },\n },\n {\n href: ``,\n onClick: (e) => {\n e.preventDefault()\n setSelectedNodeKey(selectedApi?.id as string)\n setFocusedContent('API')\n setFocusedTag(selectedEndpoint?.tagName || 'default')\n },\n title: (\n <p\n style={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n color: 'rgba(0,0,0,0.45)',\n gap: '0.25rem',\n }}\n >\n <span>{selectedEndpoint?.tagName || 'default'}</span>\n </p>\n ),\n },\n {\n title: (\n <span style={{ display: 'flex', gap: '1rem' }}>\n {selectedEndpoint?.summary || 'Endpoint Name'}\n </span>\n ),\n },\n ]}\n />\n </div>\n <Title level={3}>\n <Tag\n style={{\n backgroundColor: methodStyle?.bg,\n color: methodStyle?.color,\n border: 'none',\n width: '4.375rem',\n height: '1.375rem',\n textAlign: 'center'\n }}\n >\n {selectedEndpoint?.method}\n </Tag>{' '}\n {selectedEndpoint?.summary?.replace(selectedEndpoint?.method, '') ?? '--'}\n </Title>\n {/* <Paragraph>\n <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\n <Select\n value={selectedServer}\n style={{ width: '100%' }}\n onChange={(value) => setSelectedServer(value)}\n prefix={\n <Tag\n style={{\n backgroundColor: methodStyle?.bg,\n color: methodStyle?.color,\n border: 'none',\n }}\n >\n {selectedEndpoint?.method}\n </Tag>\n }\n options={serverOptions}\n disabled={serverOptions.length === 0}\n suffixIcon={serverOptions.length > 1 ? undefined : false}\n />\n <Tooltip title={endpointTooltip}>\n <Button\n color=\"default\"\n variant=\"outlined\"\n onClick={() => {\n const fullUrl = getFullEndpointUrl()\n if (fullUrl) {\n copyToClipboard(fullUrl)\n setEndpointTooltip('Copied!')\n setTimeout(() => setEndpointTooltip('Copy endpoint'), 1500)\n }\n }}\n icon={<CopyOutlined />}\n />\n </Tooltip>\n </div>\n </Paragraph> */}\n <Paragraph style={{ color: 'rgba(0,0,0,0.45)', marginBottom: '1.5rem' }}>\n {selectedEndpoint?.description ?? '--'}\n </Paragraph>\n\n {/* Request Section */}\n {requestTabs.length > 0 && (\n <Card title=\"Request\" className={cx('request-card')} style={{ marginBottom: '1.5rem' }}>\n <Tabs defaultActiveKey={requestTabs[0].key} items={requestTabs} />\n </Card>\n )}\n\n {/* Response Section */}\n\n <Card\n title=\"Response\"\n className={cx('request-card')}\n extra={\n responseHeaderData.length > 0 && (\n <Tag>\n <span\n style={{\n background: handleStatusColor(selectedStatusCode as number),\n borderRadius: '50%',\n display: 'inline-block',\n width: '0.5rem',\n height: '0.5rem',\n marginRight: '0.5rem',\n }}\n ></span>\n <span>{selectedStatusCode}</span>\n </Tag>\n )\n }\n >\n <Table\n columns={responseColumns}\n dataSource={responseHeaderData}\n pagination={false}\n bordered\n size=\"small\"\n />\n </Card>\n </div>\n </div>\n )\n}\n","<svg width=\"298\" height=\"237\" viewBox=\"0 0 298 237\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M174.518 86.3532C156.105 86.4631 137.407 85.6054 119.917 80.7451C102.427 75.8848 86.959 66.714 72.8969 56.0037C63.6906 49.0321 55.3192 43.4901 43.3664 44.3258C31.6796 44.9406 20.5009 49.3051 11.485 56.7734C-3.71966 70.1008 -1.4126 94.7323 4.65169 112.062C13.7921 138.167 41.6087 156.289 65.2286 168.099C92.5399 181.756 122.532 189.695 152.611 194.248C178.978 198.25 212.837 201.175 235.666 183.933C256.649 168.121 262.406 131.965 257.264 107.554C256.013 100.344 252.177 93.8378 246.476 89.2562C231.733 78.4799 209.761 85.6714 193.194 86.0453C187.152 86.1772 180.802 86.3312 174.518 86.3532Z\" fill=\"#F1F5FD\"/>\n<path d=\"M84.7393 1V10.4567\" stroke=\"#E0E9F9\" stroke-width=\"0.85\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M80.0156 5.72852H89.4636\" stroke=\"#E0E9F9\" stroke-width=\"0.85\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M263.987 189.496V198.953\" stroke=\"#E0E9F9\" stroke-width=\"0.85\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M259.264 194.225H268.712\" stroke=\"#E0E9F9\" stroke-width=\"0.85\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M13.3525 148.656C14.5417 148.656 15.5057 147.691 15.5057 146.501C15.5057 145.311 14.5417 144.346 13.3525 144.346C12.1633 144.346 11.1992 145.311 11.1992 146.501C11.1992 147.691 12.1633 148.656 13.3525 148.656Z\" fill=\"#E0E9F9\"/>\n<path d=\"M196.687 10.7636C197.877 10.7636 198.841 9.79869 198.841 8.60838C198.841 7.41807 197.877 6.45312 196.687 6.45312C195.498 6.45312 194.534 7.41807 194.534 8.60838C194.534 9.79869 195.498 10.7636 196.687 10.7636Z\" fill=\"#E0E9F9\"/>\n<path d=\"M137.011 236.999C181.546 236.999 217.649 234.754 217.649 231.985C217.649 229.216 181.546 226.971 137.011 226.971C92.4766 226.971 56.374 229.216 56.374 231.985C56.374 234.754 92.4766 236.999 137.011 236.999Z\" fill=\"#F1F5FD\"/>\n<path d=\"M74.8962 26.6875H192.007C194.921 26.6875 197.715 27.846 199.776 29.9082C201.836 31.9704 202.993 34.7673 202.993 37.6837V177.137C202.993 180.054 201.836 182.851 199.776 184.913C197.715 186.975 194.921 188.133 192.007 188.133H59.8893C56.9757 188.133 54.1813 186.975 52.1211 184.913C50.0608 182.851 48.9033 180.054 48.9033 177.137V52.9684L74.8962 26.6875Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M202.465 94.6445H81.707V189.476H202.465V94.6445Z\" fill=\"#F1F5FD\"/>\n<path d=\"M48.9033 52.9684H70.1942C71.4433 52.9626 72.6392 52.4618 73.5204 51.5757C74.4016 50.6896 74.8963 49.4902 74.8962 48.24V26.6875L48.9033 52.9684Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M201.873 64.3594H82.4329C77.7852 64.3594 74.0176 68.1305 74.0176 72.7824V98.3596C74.0176 103.011 77.7852 106.783 82.4329 106.783H201.873C206.521 106.783 210.288 103.011 210.288 98.3596V72.7824C210.288 68.1305 206.521 64.3594 201.873 64.3594Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M97.2195 92.9721C101.273 92.9721 104.558 89.6835 104.558 85.6267C104.558 81.5699 101.273 78.2812 97.2195 78.2812C93.1665 78.2812 89.8809 81.5699 89.8809 85.6267C89.8809 89.6835 93.1665 92.9721 97.2195 92.9721Z\" fill=\"#F1F5FD\"/>\n<path d=\"M120.291 92.9721C124.344 92.9721 127.629 89.6835 127.629 85.6267C127.629 81.5699 124.344 78.2812 120.291 78.2812C116.238 78.2812 112.952 81.5699 112.952 85.6267C112.952 89.6835 116.238 92.9721 120.291 92.9721Z\" fill=\"#F1F5FD\"/>\n<path d=\"M143.339 92.9721C147.392 92.9721 150.677 89.6835 150.677 85.6267C150.677 81.5699 147.392 78.2812 143.339 78.2812C139.286 78.2812 136 81.5699 136 85.6267C136 89.6835 139.286 92.9721 143.339 92.9721Z\" fill=\"#F1F5FD\"/>\n<path d=\"M201.873 111.379H82.4329C77.7852 111.379 74.0176 115.15 74.0176 119.802V145.379C74.0176 150.031 77.7852 153.802 82.4329 153.802H201.873C206.521 153.802 210.288 150.031 210.288 145.379V119.802C210.288 115.15 206.521 111.379 201.873 111.379Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M97.2195 140.013C101.273 140.013 104.558 136.724 104.558 132.668C104.558 128.611 101.273 125.322 97.2195 125.322C93.1665 125.322 89.8809 128.611 89.8809 132.668C89.8809 136.724 93.1665 140.013 97.2195 140.013Z\" fill=\"#F1F5FD\"/>\n<path d=\"M120.291 140.013C124.344 140.013 127.629 136.724 127.629 132.668C127.629 128.611 124.344 125.322 120.291 125.322C116.238 125.322 112.952 128.611 112.952 132.668C112.952 136.724 116.238 140.013 120.291 140.013Z\" fill=\"#F1F5FD\"/>\n<path d=\"M143.339 140.013C147.392 140.013 150.677 136.724 150.677 132.668C150.677 128.611 147.392 125.322 143.339 125.322C139.286 125.322 136 128.611 136 132.668C136 136.724 139.286 140.013 143.339 140.013Z\" fill=\"#F1F5FD\"/>\n<path d=\"M201.873 158.422H82.4329C77.7852 158.422 74.0176 162.193 74.0176 166.845V192.422C74.0176 197.074 77.7852 200.845 82.4329 200.845H201.873C206.521 200.845 210.288 197.074 210.288 192.422V166.845C210.288 162.193 206.521 158.422 201.873 158.422Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M97.2195 187.033C101.273 187.033 104.558 183.744 104.558 179.687C104.558 175.63 101.273 172.342 97.2195 172.342C93.1665 172.342 89.8809 175.63 89.8809 179.687C89.8809 183.744 93.1665 187.033 97.2195 187.033Z\" fill=\"#F1F5FD\"/>\n<path d=\"M120.291 187.033C124.344 187.033 127.629 183.744 127.629 179.687C127.629 175.63 124.344 172.342 120.291 172.342C116.238 172.342 112.952 175.63 112.952 179.687C112.952 183.744 116.238 187.033 120.291 187.033Z\" fill=\"#F1F5FD\"/>\n<path d=\"M143.339 187.033C147.392 187.033 150.677 183.744 150.677 179.687C150.677 175.63 147.392 172.342 143.339 172.342C139.286 172.342 136 175.63 136 179.687C136 183.744 139.286 187.033 143.339 187.033Z\" fill=\"#F1F5FD\"/>\n<path d=\"M212.924 118.483C238.08 118.483 258.472 98.0716 258.472 72.8929C258.472 47.7141 238.08 27.3027 212.924 27.3027C187.769 27.3027 167.376 47.7141 167.376 72.8929C167.376 98.0716 187.769 118.483 212.924 118.483Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M213.451 99.8784C228.049 99.8784 239.883 88.0333 239.883 73.4216C239.883 58.8099 228.049 46.9648 213.451 46.9648C198.853 46.9648 187.019 58.8099 187.019 73.4216C187.019 88.0333 198.853 99.8784 213.451 99.8784Z\" fill=\"white\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M199.385 59.3203C199.937 60.4696 227.517 87.5011 227.517 87.5011L199.385 59.3203Z\" fill=\"white\"/>\n<path d=\"M199.385 59.3203C199.937 60.4696 227.517 87.5011 227.517 87.5011\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M227.517 59.3203C226.943 60.4696 199.385 87.5011 199.385 87.5011L227.517 59.3203Z\" fill=\"white\"/>\n<path d=\"M227.517 59.3203C226.943 60.4696 199.385 87.5011 199.385 87.5011\" stroke=\"#769DE4\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M16.5 9V6.75C16.5 3 15 1.5 11.25 1.5H6.75C3 1.5 1.5 3 1.5 6.75V11.25C1.5 15 3 16.5 6.75 16.5H9\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M15.7202 13.3808L14.4978 13.7934C14.1603 13.9059 13.8902 14.1684 13.7777 14.5134L13.3652 15.7359C13.0127 16.7934 11.5277 16.7709 11.1977 15.7134L9.81025 11.2508C9.54025 10.3658 10.3577 9.54085 11.2352 9.81835L15.7053 11.2059C16.7553 11.5359 16.7702 13.0283 15.7202 13.3808Z\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","'use client'\nimport React from 'react'\nimport { useStyle } from '../../hooks/useStyle'\nimport { APIPage } from './ApiPage'\nimport { EndpointPage } from './EndpointPage/EndpointPage'\nimport useStore from '@doc-lib/store'\nimport { Button, Flex } from 'antd'\nimport EmptyImg from '@doc-lib/assets/NoData.svg'\nimport Title from 'antd/es/typography/Title'\nimport Text from 'antd/es/typography/Text'\nimport MouseSquareIcon from '@doc-lib/assets/mouseSquare.svg'\n\nexport const MainContent: React.FC<{\n searchEnabled: boolean\n handleResetSearch: () => void\n handleVisitLandingPage?: () => void\n}> = ({ searchEnabled, handleResetSearch, handleVisitLandingPage }) => {\n const { focusedContent, transformedData } = useStore(({ view }) => view)\n const { wrapSSR, cx } = useStyle('MainContent', (token, scope) => ({\n [scope('inner-doc-container')]: {\n backgroundColor: token.colorBgContainer,\n height: '100%',\n width: '100%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRadius: token.borderRadius,\n padding: token.paddingXL,\n },\n [scope('centered')]: {\n display: 'flex',\n justifyContent: 'center',\n },\n [scope('no-space')]: {\n margin: 0,\n padding: 0,\n },\n [scope('title')]: {\n fontFamily: token.fontFamily,\n fontWeight: 600,\n fontSize: token.fontSizeHeading4,\n color: 'rgba(0, 0, 0, 0.88)',\n },\n [scope('text')]: {\n color: 'rgba(0, 0, 0, 0.88)',\n fontFamily: token.fontFamily,\n },\n [scope('visit-landing-button')]: {\n width: '12.25rem',\n height: '2.5rem',\n borderRadius: token.borderRadiusLG,\n },\n [scope('reset-button')]: {\n width: '8.125rem',\n height: '2.5rem',\n borderRadius: token.borderRadiusLG,\n backgroundColor: token?.Button?.primaryColor,\n fontSize: token.Button?.contentFontSizeLG,\n },\n }))\n\n return wrapSSR(\n <div className={cx('inner-doc-container', !transformedData?.length ? 'centered' : '')}>\n {!transformedData?.length ? (\n <Flex justify=\"center\" align=\"center\" gap={'1.5rem'} vertical flex={1}>\n <EmptyImg width={'18.625rem'} height={'14.75rem'} />\n <Flex justify=\"center\" align=\"center\" gap={'0.5rem'} vertical>\n <Title className={cx('no-space', 'title')} level={4}>\n {!searchEnabled ? 'No API Documentation Found' : 'No results found'}\n </Title>\n <Text className={cx('no-space', 'text')}>\n {!searchEnabled\n ? 'No API Documentation has been added yet. Contact admin for support.'\n : 'Adjust your Search and try again'}\n </Text>\n </Flex>\n {!searchEnabled ? (\n <Button\n type=\"primary\"\n onClick={handleVisitLandingPage}\n icon={<MouseSquareIcon />}\n iconPosition=\"start\"\n className={cx('visit-landing-button')}\n >\n Visit Landing Page\n </Button>\n ) : (\n <Button type=\"default\" className={cx('reset-button')} onClick={handleResetSearch}>\n Reset Search\n </Button>\n )}\n </Flex>\n ) : focusedContent === 'ENDPOINT' ? (\n <EndpointPage />\n ) : (\n <APIPage />\n )}\n </div>\n )\n}\n","import { HTTPMethod, OpenAPIFile } from '@doc-lib/types/OpenApi'\nimport { OverviewData, EndpointData } from '../entities'\nimport { nanoid } from 'nanoid'\n\nexport const transformOpenApiToDocs = (api: OpenAPIFile): OverviewData => {\n const groupedPathsByTags: Record<string, EndpointData[]> = {}\n const validTags = new Set(api?.tags?.map(({ name }) => name) || [])\n const contextPath = Object.keys(api.paths)[0]\n const relatedVersions =\n 'x-related-versions' in api\n ? Object.entries(api['x-related-versions']).map(([apiId, version]) => ({ apiId, version }))\n : []\n relatedVersions.unshift({ apiId: api['x-current-version'], version: `${api.info.version}` })\n const currentVersion: string =\n 'x-current-version' in api ? (api['x-current-version'] as string) : ''\n const authScheme = api.components?.securitySchemes\n let authType: string\n if (authScheme && Object.keys(authScheme)?.[0]) {\n authType = Object.keys(authScheme)[0]\n if (authType && authType.toLowerCase() === 'public') {\n authType = 'KEYLESS'\n }\n if (authType && (authType.toLowerCase() === 'oauth' || authType.toLowerCase() === 'oauth2')) {\n authType = 'OAUTH2'\n }\n authType = authType.toUpperCase()\n } else {\n authType = 'x-auth-type' in api ? (api['x-auth-type'] as string) : ''\n }\n const curl: string = 'x-curls' in api ? (api['x-curls'] as any) : ''\n\n for (const [path, methods] of Object.entries(api.paths)) {\n for (const [method, methodData] of Object.entries(methods)) {\n const entry = { ...methodData, method: method?.toUpperCase() as HTTPMethod, path }\n const resourceTags = methodData.tags ?? []\n\n const matchedTags = resourceTags.filter((tag) => validTags.has(tag))\n\n if (matchedTags.length > 0) {\n matchedTags.forEach((tag) => {\n if (!groupedPathsByTags[tag]) groupedPathsByTags[tag] = []\n groupedPathsByTags[tag].push({ ...entry, id: `endpoint-${nanoid(8)}` } as EndpointData)\n })\n } else {\n if (!groupedPathsByTags.default) {\n groupedPathsByTags.default = []\n }\n groupedPathsByTags.default.push({ ...entry, id: `endpoint-${nanoid(8)}` } as EndpointData)\n }\n }\n }\n\n // Sort groupedPathsByTags so that 'default' comes last\n const sortedGroupedPathsByTags = Object.keys(groupedPathsByTags)\n .sort((a, b) => {\n if (a === 'default') return 1\n if (b === 'default') return -1\n return a.localeCompare(b)\n })\n .reduce((acc, key) => {\n acc[key] = groupedPathsByTags[key]\n return acc\n }, {} as Record<string, EndpointData[]>)\n\n return {\n ...api.info,\n id: `api-${nanoid(8)}`, // api prefix is used to identify what state should be changes (API | Endpoint)\n contextPath,\n tags: sortedGroupedPathsByTags,\n servers: api.servers,\n relatedVersions,\n currentVersion,\n authType,\n curl,\n }\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.39967 15.1673H4.59967C1.99301 15.1673 0.833008 14.0073 0.833008 11.4007V8.60065C0.833008 5.99398 1.99301 4.83398 4.59967 4.83398H7.39967C10.0063 4.83398 11.1663 5.99398 11.1663 8.60065V11.4007C11.1663 14.0073 10.0063 15.1673 7.39967 15.1673ZM4.59967 5.83398C2.53301 5.83398 1.83301 6.53398 1.83301 8.60065V11.4007C1.83301 13.4673 2.53301 14.1673 4.59967 14.1673H7.39967C9.46634 14.1673 10.1663 13.4673 10.1663 11.4007V8.60065C10.1663 6.53398 9.46634 5.83398 7.39967 5.83398H4.59967Z\" fill=\"currentcolor\" />\n<path d=\"M11.3997 11.1673H10.6663C10.393 11.1673 10.1663 10.9407 10.1663 10.6673V8.60065C10.1663 6.53398 9.46634 5.83398 7.39967 5.83398H5.33301C5.05967 5.83398 4.83301 5.60732 4.83301 5.33398V4.60065C4.83301 1.99398 5.99301 0.833984 8.59967 0.833984H11.3997C14.0063 0.833984 15.1663 1.99398 15.1663 4.60065V7.40065C15.1663 10.0073 14.0063 11.1673 11.3997 11.1673ZM11.1663 10.1673H11.3997C13.4663 10.1673 14.1663 9.46732 14.1663 7.40065V4.60065C14.1663 2.53398 13.4663 1.83398 11.3997 1.83398H8.59967C6.53301 1.83398 5.83301 2.53398 5.83301 4.60065V4.83398H7.39967C10.0063 4.83398 11.1663 5.99398 11.1663 8.60065V10.1673Z\" fill=\"currentcolor\" />\n</svg>\n","import { useState } from 'react'\nimport { Light as SyntaxHighlighter } from 'react-syntax-highlighter'\nimport json from 'react-syntax-highlighter/dist/esm/languages/hljs/json'\nimport * as hljs from 'react-syntax-highlighter/dist/esm/styles/hljs'\nimport { useStyle } from '@doc-lib/hooks/useStyle'\n\nSyntaxHighlighter.registerLanguage('json', json)\n\nconst Codebox = ({ code, language }: { code: string; language?: string }) => {\n const [theme] = useState<'LIGHT' | 'DARK'>('DARK')\n const { cx } = useStyle('codeBox', (token, scope) => ({\n [scope('codebox')]: {\n borderRadius: token.borderRadius,\n height: '100%',\n maxHeight: '100%',\n overflow: 'auto',\n\n pre: {\n height: '100%',\n },\n },\n // [scope('codebox-header')]: {\n // display: 'flex',\n // alignItems: 'center',\n // gap: '0.25rem',\n // paddingLeft: '0.5rem',\n // height: '1.75rem',\n // border: '1px solid #bbbec5',\n // borderTopRightRadius: '0.25rem',\n // borderTopLeftRadius: '0.25rem',\n // },\n // [scope('themeToggle')]: {\n // width: '0.75rem',\n // minWidth: '0.75rem',\n // aspectRatio: '1 / 1',\n // border: '1px solid transparent',\n // borderRadius: '100%',\n // cursor: 'pointer',\n // borderColor: '#6b7280',\n // },\n // [scope('themeToggle_light')]: {\n // backgroundColor: '#edf1fb',\n // },\n // [scope('themeToggle_dark')]: {\n // backgroundColor: '#455162',\n // },\n }))\n\n return (\n <div className={cx('codebox')}>\n {/* TODO: Implement theme toggle */}\n {/* <div className={cx('codebox-header')}>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'LIGHT' && setTheme('LIGHT')}\n className={cx('themeToggle', 'themeToggle_light')}\n title=\"Light theme\"\n ></div>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'DARK' && setTheme('DARK')}\n className={cx('themeToggle', 'themeToggle_dark')}\n title=\"Dark theme\"\n ></div>\n </div> */}\n <SyntaxHighlighter\n language={language || 'json'}\n style={theme === 'LIGHT' ? hljs.stackoverflowLight : hljs.stackoverflowDark}\n showLineNumbers\n wrapLines\n customStyle={{\n margin: 0,\n minHeight: '3rem',\n overflowY: 'auto',\n padding: '0.75rem 1rem 0.75rem 1.5rem',\n backgroundColor: theme === 'DARK' ? '#20264B' : '#20264B',\n fontSize: '0.75rem',\n }}\n lineProps={{\n style: { fontFamily: 'Cascadia Code, sans-serif' },\n }}\n >\n {code}\n </SyntaxHighlighter>\n </div>\n )\n}\n\nexport default Codebox\n","import useStore from '@doc-lib/store'\nimport { handleStatusColor } from '@doc-lib/utils'\nimport CopyOutlined from '@doc-lib/assets/copy.svg'\nimport { Button, Select, Tooltip, Typography } from 'antd'\nimport { useMemo, useState } from 'react'\nimport Codebox from './EndpointPage/Codebox/Codebox'\nimport { useStyle } from '@doc-lib/hooks/useStyle'\nimport { token as tokens } from '@doc-lib/theme/light.json'\n\nfunction CodeboxSidebar() {\n const { selectedEndpoint, selectedStatusCode, statusCodeOptions, setSelectedStatusCode } =\n useStore(({ view }) => view)\n const httpStatusOptions = useMemo(\n () =>\n statusCodeOptions.map((code) => ({\n value: code,\n label: (\n <span style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>\n <span\n style={{\n background: handleStatusColor(code),\n borderRadius: '50%',\n display: 'inline-block',\n width: '0.5rem',\n height: '0.5rem',\n minWidth: '0.5rem',\n minHeight: '0.5rem',\n }}\n />\n {code}\n </span>\n ),\n })),\n [statusCodeOptions]\n )\n\n const { originalData } = useStore(({ view }) => view)\n\n const [curlTooltip, setCurlTooltip] = useState('Copy Request')\n // Find the curl command for the selected endpoint\n const findCurlForEndpoint = () => {\n if (!selectedEndpoint || !originalData) return ''\n\n // Find the API that contains this endpoint\n const api = originalData.find((apiData) => {\n const paths = apiData.paths || {}\n return Object.keys(paths).some((path) => {\n const methods = paths[path] || {}\n return Object.keys(methods).some((method) => {\n const endpointMethod = method.toUpperCase()\n return path === selectedEndpoint.path && endpointMethod === selectedEndpoint.method\n })\n })\n })\n\n if (!api || !api['x-curls']) return ''\n\n // Find all matching curl commands\n const matchingCurls = api['x-curls'].filter(\n (curlObj: any) =>\n curlObj.path === selectedEndpoint.path && curlObj.method === selectedEndpoint.method\n )\n\n // Prioritize SDB server URLs\n const sdbCurl = matchingCurls.find(\n (curl: any) => curl.serverUrl.includes('sdb') || curl.serverUrl.includes('SDB')\n )\n\n // If SDB found, return it, otherwise return the first match (or empty string)\n return sdbCurl ? sdbCurl.curlCommand : matchingCurls[0]?.curlCommand || ''\n }\n\n const curlCommand = findCurlForEndpoint()\n\n const formatCurlCommand = (cmd: string) => {\n if (!cmd) return ''\n\n return cmd\n .replace(/ -X /g, ' \\\\\\n -X ')\n .replace(/ -H /g, ' \\\\\\n -H ')\n .replace(/ -d /g, ' \\\\\\n -d ')\n .replace(/ (https?:\\/\\/[^\\s'\"]+)/g, ' \\\\\\n $1')\n }\n\n const { cx } = useStyle('CodeboxSidebar', (token, scope) => ({\n [scope('container')]: {\n display: 'flex',\n flexDirection: 'column',\n gap: token.marginMD,\n background: token.colorBgContainer,\n borderRadius: token.borderRadiusLG,\n padding: token.paddingLG,\n overflow: 'hidden',\n height: '100%',\n maxHeight: '100%',\n width: '23.625rem',\n minWidth: '23.625rem',\n '.ant-card-body': { padding: 0 },\n '.ant-card-head-title': { color: 'white' },\n '.ant-card-head': { borderBottom: '.125rem solid #33419A' },\n },\n\n [scope('rightCard')]: {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: '#20264B',\n '.CodeboxSidebar-copyButton': { '.isolated-btn-icon': { path: { fill: 'white' } } },\n '.isolated-card-body': {\n padding: ' .125rem 0 0 0 !important',\n borderTop: '.125rem solid #33419A',\n },\n '.ant-card-head': {\n flex: '0 0 auto',\n },\n borderRadius: token.borderRadius,\n overflow: 'hidden',\n },\n [scope('rightCardRequest')]: {\n maxHeight: '50%',\n minHeight: '8.125rem',\n },\n [scope('rightCardResponse')]: {\n height: 'fit-content',\n overflow: 'hidden',\n },\n [scope('rightCardHeader')]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: `${token.marginXS}px ${token.margin}px`,\n borderBottom: '.125rem solid #33419A',\n height: '3.125rem',\n },\n [scope('rightCardFlex')]: {\n display: 'flex',\n flexDirection: 'column',\n height: 'fit-content',\n overflow: 'auto',\n backgroundColor: '#20264B',\n '.ant-card-head': {\n flex: '0 0 auto',\n },\n '.ant-card-body': {\n flex: '1 1 auto',\n overflowY: 'auto',\n padding: '.125rem 0 0 0 !important',\n },\n '.isolated-card-body': {\n padding: ' .125rem 0 0 0 !important',\n height: 'fit-content',\n overflow: 'auto',\n borderTop: '.125rem solid #33419A',\n '.codebox': { height: 'fit-content', overflow: 'auto' },\n },\n },\n\n [scope('customSelect')]: {\n width: '5.5rem',\n maxWidth: '5.5rem',\n\n '.ant-select-selector': {\n backgroundColor: '#fff',\n borderColor: '#fff',\n borderRadius: '.375rem',\n color: '#101010',\n },\n '.ant-select-selection-item': {\n color: '#101010',\n fontWeight: 400,\n },\n '.ant-select-selection-placeholder': {\n color: 'rgba(255, 255, 255, 0.65)',\n },\n '.ant-select-arrow': {\n color: '#101010',\n },\n '&:hover .ant-select-selector': {\n borderColor: `${tokens['brnadColor.7']}`,\n color: 'white',\n },\n '&:focus .ant-select-selector, &.ant-select-focused .ant-select-selector': {\n borderColor: `${tokens['brnadColor.7']}`,\n color: 'white',\n },\n },\n }))\n\n return (\n <div className={cx('container')}>\n {/* Request codebox */}\n {curlCommand && (\n <div className={cx('rightCard', 'rightCardRequest')}>\n <div className={cx('rightCardHeader')}>\n <Typography.Text strong style={{ color: '#fff' }}>\n Request\n </Typography.Text>\n <Tooltip title={curlTooltip}>\n <Button\n color=\"default\"\n variant=\"link\"\n className={cx('copyButton')}\n onClick={() => {\n const cleaned = curlCommand.replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\')\n navigator.clipboard.writeText(formatCurlCommand(cleaned))\n setCurlTooltip('Copied!')\n setTimeout(() => setCurlTooltip('Copy cURL'), 1500)\n }}\n icon={<CopyOutlined style={{ color: 'white' }} />}\n />\n </Tooltip>\n </div>\n <Codebox\n language=\"bash\"\n code={formatCurlCommand(curlCommand.replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\'))}\n />\n </div>\n )}\n {/* Response codebox */}\n {selectedEndpoint?.responses && httpStatusOptions.length > 0 && (\n <div className={cx('rightCard', 'rightCardResponse')}>\n <div className={cx('rightCardHeader', 'rightCardHeaderResponse')}>\n <Typography.Text strong style={{ color: '#fff' }}>\n Response\n </Typography.Text>\n <Select\n defaultActiveFirstOption={true}\n defaultValue={200}\n className={cx('customSelect')}\n prefix={false}\n style={{ width: '100%' }}\n value={selectedStatusCode}\n onChange={setSelectedStatusCode}\n options={httpStatusOptions}\n open={httpStatusOptions.length === 1 ? false : undefined}\n suffixIcon={httpStatusOptions.length > 1 ? undefined : false}\n />\n </div>\n <Codebox\n code={\n JSON.stringify(selectedEndpoint?.responses[selectedStatusCode as number], null, 2) ||\n ''\n }\n />\n </div>\n )}\n </div>\n )\n}\n\nexport default CodeboxSidebar\n","'use client'\nimport { Sidebar, MainContent } from './components'\nimport { useStyle } from '../hooks/useStyle'\nimport { useNodeSelection } from '../hooks/useNodeSelection'\nimport { OpenAPIFile } from '@doc-lib/types/OpenApi'\nimport { useEffect, useRef, useState } from 'react'\nimport useStore from '@doc-lib/store'\nimport { transformOpenApiToDocs } from './helper/mutate'\nimport { buildTreeDataStructure } from './helper'\nimport CodeboxSidebar from './components/CodeboxSidebar'\n\nexport const DocumentationLayout = ({\n data,\n preSelectedApi,\n handleVisitLandingPage,\n}: {\n data: OpenAPIFile[]\n preSelectedApi?: string | null\n handleVisitLandingPage?: () => void\n theme?: any\n}) => {\n const [searchValue, setSearchValue] = useState('')\n\n const {\n focusedContent,\n selectedNodeKey,\n selectedApi,\n builtTreeData,\n setOriginalData,\n setTransformedData,\n setBuiltTreeData,\n setFocusedContent,\n setExpandedKeys,\n } = useStore(({ view }) => view)\n const { selectFirstApi, selectPreSelectedApi, clearSelection } = useNodeSelection()\n const hasInitializedRef = useRef(false)\n\n useEffect(() => {\n return () => {\n resetStore()\n }\n }, [])\n\n const resetStore = () => {\n setExpandedKeys([])\n setFocusedContent(null)\n setBuiltTreeData([])\n setTransformedData([])\n setOriginalData([])\n setSearchValue('')\n clearSelection()\n hasInitializedRef.current = false\n }\n\n useEffect(() => {\n // Initialize original data\n if (!hasInitializedRef.current && data.length > 0) {\n setOriginalData(data)\n // Transform data to documentation format\n const transformedData = data\n .map(transformOpenApiToDocs)\n .sort((a, b) => a.title.localeCompare(b.title))\n setTransformedData(transformedData)\n\n // Build tree data structure\n const builtTree = buildTreeDataStructure(transformedData)\n setBuiltTreeData(builtTree)\n\n // Reset initialization flag when new data arrives\n hasInitializedRef.current = true\n }\n }, [data, setOriginalData, setTransformedData, setBuiltTreeData])\n\n // Auto-select the first API when tree data is available\n useEffect(() => {\n if (\n builtTreeData &&\n builtTreeData.length > 0 &&\n !selectedApi &&\n !selectedNodeKey &&\n hasInitializedRef.current\n ) {\n if (!preSelectedApi) {\n selectFirstApi(builtTreeData)\n } else {\n selectPreSelectedApi(builtTreeData, preSelectedApi)\n }\n hasInitializedRef.current = false\n }\n }, [builtTreeData, selectedNodeKey, selectedApi, selectFirstApi])\n\n const { cx } = useStyle('APIDocumentationLayout', (token, scope) => ({\n [scope('documentation-container')]: {\n display: 'flex',\n flexDirection: 'column',\n gap: token.marginLG,\n height: '100%',\n maxHeight: '100%',\n overflow: 'hidden',\n },\n [scope('docs-layout')]: {\n display: 'flex',\n height: '100%',\n maxHeight: '100%',\n overflow: 'hidden',\n gap: token.marginLG,\n width: '100%',\n },\n }))\n\n const handleResetSearch = () => {\n setSearchValue('')\n }\n\n const _handleVisitLandingPage = () => {\n if (handleVisitLandingPage) {\n handleVisitLandingPage()\n return\n }\n window.location.pathname = '/'\n }\n\n return (\n <div className={cx('documentation-container')}>\n <div className={cx('docs-layout')}>\n <Sidebar searchValue={searchValue} setSearchValue={setSearchValue} />\n <MainContent\n handleVisitLandingPage={_handleVisitLandingPage}\n handleResetSearch={handleResetSearch}\n searchEnabled={!!searchValue}\n />\n {focusedContent === 'ENDPOINT' && <CodeboxSidebar />}\n </div>\n </div>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["antdTheme","token","keys: string[]","token","Typography","EndpointItem: React.FC<EndpointItemProps>","Tag","Text","title: React.ReactNode","NoDataIcon: React.FC<NoDataIconProps>","Sidebar: React.FC<{\n searchValue: string\n setSearchValue: (text: string) => void\n}>","Resizable","Tooltip","Input","SearchOutlined","Button","Minify","Tree","Flex","token","NoDataIcon","Text","token","Tooltip","Title","Flex","Button","LinkIcon","Text","Divider","Card","useStore","filtered: typeof tags","Flex","token","Title","ApiCard","Divider","Tooltip","Tag","SecuritySafe","Select","InfoCircleOutlined","Radio","GridIcon","ListIcon","Text","Typography","Tag","EndpointPage: React.FC","useStore","token","requestTabs: RequestTab[]","Table","Button","LeftOutlined","Breadcrumb","Title","Card","Tabs","MainContent: React.FC<{\n searchEnabled: boolean\n handleResetSearch: () => void\n handleVisitLandingPage?: () => void\n}>","useStore","token","Flex","NoDataIcon","Title","Text","Button","MouseSquareIcon","groupedPathsByTags: Record<string, EndpointData[]>","currentVersion: string","authType: string","curl: string","SyntaxHighlighter","json","token","hljs","useStore","token","tokens","Typography","Tooltip","Button","CopyOutlined","Codebox","Select","useStore","token","CodeboxSidebar"],"sources":["../src/store/slices/view.ts","../src/store/slices/editor.ts","../src/store/index.ts","../src/hooks/useStyle.ts","../src/theme/light.json","../src/view/helper/sidebar.utils.ts","../src/view/helper/sidebar.components.tsx","../src/hooks/useNodeSelection.ts","../src/assets/Minify.svg","../src/view/components/NoDataIcon.tsx","../src/view/components/Sidebar.tsx","../src/assets/grid.svg","../src/assets/list.svg","../src/assets/link.svg","../src/view/components/ApiPage/components/ApiCard.tsx","../src/utils/index.ts","../src/assets/securitySafe.svg","../src/view/components/ApiPage/index.tsx","../src/view/components/EndpointPage/EndpointPage.tsx","../src/assets/mouseSquare.svg","../src/view/components/MainContent.tsx","../src/view/helper/mutate.ts","../src/assets/copy.svg","../src/view/components/EndpointPage/Codebox/Codebox.tsx","../src/view/components/CodeboxSidebar.tsx","../src/view/layout.tsx"],"sourcesContent":["import { OpenAPIFile } from '@doc-lib/types/OpenApi'\nimport { EndpointData, OverviewData } from '@doc-lib/view/entities'\nimport { transformOpenApiToDocs } from '@doc-lib/view/helper/mutate'\nimport { TreeNode } from '@doc-lib/view/helper'\n\ntype SetFn = (fn: (state: ViewSlice) => void) => void\n\ntype ViewSlice = {\n view: {\n originalData: OpenAPIFile[] | null\n transformedData: ReturnType<typeof transformOpenApiToDocs>[] | null\n builtTreeData: TreeNode[] | null\n selectedNodeKey: string | null\n expandedKeys: string[]\n selectedApi: OverviewData | null\n selectedEndpoint: EndpointData | null\n focusedContent: 'API' | 'ENDPOINT'\n selectedStatusCode: number | null\n focusedTag: string | null\n setSelectedStatusCode: (code: number | null) => void\n statusCodeOptions: number[]\n // Actions\n setSelectedNodeKey: (key: string | null) => void\n setExpandedKeys: (keys: string[]) => void\n setOriginalData: (data: OpenAPIFile[]) => void\n setSelectedApi: (api: OverviewData | null) => void\n setSelectedEndpoint: (endpoint: EndpointData | null) => void\n setTransformedData: (data: ReturnType<typeof transformOpenApiToDocs>[] | null) => void\n setBuiltTreeData: (data: TreeNode[] | null) => void\n setFocusedContent: (content: 'API' | 'ENDPOINT' | null) => void\n setStatusCodeOptions: (options: number[]) => void\n setFocusedTag: (tag: string | null) => void\n }\n}\n\nexport const createViewSlice = (set: SetFn) => ({\n view: {\n selectedNodeKey: null,\n expandedKeys: [],\n originalData: null,\n transformedData: null,\n builtTreeData: null,\n selectedApi: undefined,\n selectedEndpoint: undefined,\n focusedContent: undefined,\n selectedStatusCode: null,\n statusCodeOptions: null,\n focusedTag: null,\n\n setFocusedTag: (tag: string | null) =>\n set((state) => {\n state.view.focusedTag = tag\n }),\n\n setSelectedNodeKey: (key: string | null) =>\n set((state) => {\n state.view.selectedNodeKey = key\n }),\n\n setExpandedKeys: (keys: string[]) =>\n set((state) => {\n state.view.expandedKeys = keys\n }),\n\n setOriginalData: (data: OpenAPIFile[]) =>\n set((state) => {\n state.view.originalData = data\n }),\n\n setSelectedApi: (api: OverviewData) =>\n set((state) => {\n state.view.selectedApi = api as OverviewData\n }),\n\n setSelectedEndpoint: (endpoint: EndpointData) =>\n set((state) => {\n if (endpoint) {\n const availableStatusCodes = Object.keys(endpoint?.responses)\n state.view.statusCodeOptions = availableStatusCodes.map(Number)\n state.view.selectedStatusCode = availableStatusCodes.at(0)\n ? Number(availableStatusCodes.at(0))\n : null\n }\n state.view.selectedEndpoint = endpoint\n }),\n\n setTransformedData: (data: ReturnType<typeof transformOpenApiToDocs>[] | null) =>\n set((state) => {\n state.view.transformedData = data\n }),\n\n setBuiltTreeData: (data: TreeNode[] | null) => {\n return set((state) => {\n state.view.builtTreeData = data\n })\n },\n\n setFocusedContent: (content: 'API' | 'ENDPOINT') =>\n set((state) => {\n state.view.focusedContent = content\n }),\n\n setSelectedStatusCode: (code: number | null) =>\n set((state) => {\n state.view.selectedStatusCode = code\n }),\n } as unknown as ViewSlice['view'],\n})\n","type SetFn = (fn: (state: EditorSlice) => void) => void\n\ntype EditorSlice = {\n content: string\n isEditing: boolean\n hasUnsavedChanges: boolean\n fontSize: number\n theme: 'vs-light' | 'vs-dark'\n wordWrap: boolean\n lineNumbers: boolean\n cursorPosition: { line: number; column: number }\n}\n\nexport const createEditorSlice = (set: SetFn) => ({\n editor: {\n content: '',\n isEditing: false,\n hasUnsavedChanges: false,\n fontSize: 14,\n theme: 'vs-light' as 'vs-light' | 'vs-dark',\n wordWrap: true,\n lineNumbers: true,\n cursorPosition: { line: 1, column: 1 },\n\n setContent: (content: string) =>\n set((state) => {\n state.content = content\n state.hasUnsavedChanges = true\n }),\n\n setIsEditing: (editing: boolean) =>\n set((state) => {\n state.isEditing = editing\n }),\n\n setFontSize: (size: number) =>\n set((state) => {\n state.fontSize = Math.max(10, Math.min(24, size))\n }),\n\n setEditorTheme: (theme: 'vs-light' | 'vs-dark') =>\n set((state) => {\n state.theme = theme\n }),\n\n toggleWordWrap: () =>\n set((state) => {\n state.wordWrap = !state.wordWrap\n }),\n\n toggleLineNumbers: () =>\n set((state) => {\n state.lineNumbers = !state.lineNumbers\n }),\n\n setCursorPosition: (position: { line: number; column: number }) =>\n set((state) => {\n state.cursorPosition = position\n }),\n\n saveContent: () =>\n set((state) => {\n state.hasUnsavedChanges = false\n }),\n\n resetContent: () =>\n set((state) => {\n state.content = ''\n state.hasUnsavedChanges = false\n state.isEditing = false\n }),\n },\n})\n","import { create } from 'zustand'\nimport { devtools } from 'zustand/middleware'\nimport { immer } from 'zustand/middleware/immer'\nimport { createViewSlice } from './slices/view'\nimport { createEditorSlice } from './slices/editor'\n\ntype SetFn = (fn: (state: unknown) => void) => void\n\nconst createStore = (set: SetFn) => ({\n ...createViewSlice(set as Parameters<typeof createViewSlice>[0]),\n ...createEditorSlice(set as Parameters<typeof createEditorSlice>[0]),\n})\n\nexport const useStore = create<ReturnType<typeof createStore>>()(\n devtools(immer(createStore), {\n name: 'dgate-docs-store',\n })\n)\n\nexport type StoreState = ReturnType<typeof createStore>\nexport default useStore\n","'use client'\n\nimport { theme as antdTheme } from 'antd'\nimport { useStyleRegister } from '@ant-design/cssinjs'\nimport type { CSSObject } from '@ant-design/cssinjs'\n\nexport function useStyle(\n componentName: string,\n stylesFn: (\n token: ReturnType<typeof antdTheme.useToken>['token'],\n scope: (className: string) => string\n ) => Record<string, CSSObject>\n) {\n const { token, theme, hashId } = antdTheme.useToken()\n\n // Used in styles for full specificity:\n // → .css-dev-only-do-not-override-xxx.ComponentName-className\n const scope = (className: string) => `.${hashId}.${componentName}-${className}`\n\n // Used in JSX: className=\"ComponentName-className css-dev-only-do-not-override-xxx\"\n const cx = (...classes: string[]) =>\n classes.map((cls) => `${componentName}-${cls} ${hashId}`).join(' ')\n\n const wrapSSR = useStyleRegister(\n {\n theme,\n token,\n path: [componentName],\n },\n () => stylesFn(token, scope)\n )\n\n return { wrapSSR, cx, scope, token, hashId }\n}\n","{\n \"token\": {\n \"brnadColor.1\": \"#f1f5fd\",\n \"brnadColor.2\": \"#e0e9f9\",\n \"brnadColor.3\": \"#c8d8f5\",\n \"brnadColor.4\": \"#a2bfee\",\n \"brnadColor.5\": \"#769de4\",\n \"brnadColor.6\": \"#4d75d9\",\n \"brnadColor.7\": \"#4261ce\",\n \"brnadColor.8\": \"#384fbd\",\n \"brnadColor.9\": \"#33419a\",\n \"brnadColor.10\": \"#20264b\",\n \"cyan.1\": \"#e6fffb\",\n \"cyan.2\": \"#b5f5ec\",\n \"cyan.3\": \"#87e8de\",\n \"cyan.4\": \"#5cdbd3\",\n \"cyan.5\": \"#36cfc9\",\n \"cyan.6\": \"#13c2c2\",\n \"cyan.7\": \"#08979c\",\n \"cyan.8\": \"#006d75\",\n \"cyan.9\": \"#00474f\",\n \"cyan.10\": \"#002329\",\n \"geekblue.1\": \"#f0f5ff\",\n \"geekblue.2\": \"#d6e4ff\",\n \"geekblue.3\": \"#adc6ff\",\n \"geekblue.4\": \"#85a5ff\",\n \"geekblue.5\": \"#597ef7\",\n \"geekblue.6\": \"#2f54eb\",\n \"geekblue.7\": \"#1d39c4\",\n \"geekblue.8\": \"#10239e\",\n \"geekblue.9\": \"#061178\",\n \"geekblue.10\": \"#030852\",\n \"gold.1\": \"#fffbe6\",\n \"gold.2\": \"#fff1b8\",\n \"gold.3\": \"#ffe58f\",\n \"gold.4\": \"#ffd666\",\n \"gold.5\": \"#ffc53d\",\n \"gold.6\": \"#faad14\",\n \"gold.7\": \"#d48806\",\n \"gold.8\": \"#ad6800\",\n \"gold.9\": \"#874d00\",\n \"gold.10\": \"#613400\",\n \"green.1\": \"#f6ffed\",\n \"green.2\": \"#d9f7be\",\n \"green.3\": \"#b7eb8f\",\n \"green.4\": \"#95de64\",\n \"green.5\": \"#73d13d\",\n \"green.6\": \"#52c41a\",\n \"green.7\": \"#389e0d\",\n \"green.8\": \"#237804\",\n \"green.9\": \"#135200\",\n \"green.10\": \"#092b00\",\n \"lime.1\": \"#fcffe6\",\n \"lime.2\": \"#f4ffb8\",\n \"lime.3\": \"#eaff8f\",\n \"lime.4\": \"#d3f261\",\n \"lime.5\": \"#bae637\",\n \"lime.6\": \"#a0d911\",\n \"lime.7\": \"#7cb305\",\n \"lime.8\": \"#5b8c00\",\n \"lime.9\": \"#3f6600\",\n \"lime.10\": \"#254000\",\n \"magenta.1\": \"#fff0f6\",\n \"magenta.2\": \"#ffd6e7\",\n \"magenta.3\": \"#ffadd2\",\n \"magenta.4\": \"#ff85c0\",\n \"magenta.5\": \"#f759ab\",\n \"magenta.6\": \"#eb2f96\",\n \"magenta.7\": \"#c41d7f\",\n \"magenta.8\": \"#9e1068\",\n \"magenta.9\": \"#780650\",\n \"magenta.10\": \"#520339\",\n \"orange.1\": \"#fff7e6\",\n \"orange.2\": \"#ffe7ba\",\n \"orange.3\": \"#ffd591\",\n \"orange.4\": \"#ffc069\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextSecondary\": \"rgba(0, 0, 0, 0.65)\",\n \"orange.5\": \"#ffa940\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"orange.6\": \"#fa8c16\",\n \"orange.7\": \"#d46b08\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextLabel\": \"rgba(0, 0, 0, 0.65)\",\n \"orange.8\": \"#ad4e00\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"orange.9\": \"#873800\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"orange.10\": \"#612500\",\n \"purple.1\": \"#f9f0ff\",\n \"purple.2\": \"#efdbff\",\n \"purple.3\": \"#d3adf7\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"purple.4\": \"#b37feb\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorBgContainer\": \"#ffffff\",\n \"purple.5\": \"#9254de\",\n \"colorBgElevated\": \"#ffffff\",\n \"purple.6\": \"#722ed1\",\n \"colorBgLayout\": \"#f5f5f5\",\n \"purple.7\": \"#531dab\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"purple.8\": \"#391085\",\n \"colorBgSpotlight\": \"rgba(0, 0, 0, 0.85)\",\n \"purple.9\": \"#22075e\",\n \"colorBorder\": \"#d9d9d9\",\n \"purple.10\": \"#120338\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"red.1\": \"#fff1f0\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\",\n \"red.2\": \"#ffccc7\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillQuaternary\": \"rgba(0, 0, 0, 0.02)\",\n \"red.3\": \"#ffa39e\",\n \"red.4\": \"#ff7875\",\n \"colorWhite\": \"#ffffff\",\n \"red.5\": \"#ff4d4f\",\n \"colorBgBase\": \"#ffffff\",\n \"red.6\": \"#f5222d\",\n \"colorTextBase\": \"#000000\",\n \"red.7\": \"#cf1322\",\n \"red.8\": \"#a8071a\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"red.9\": \"#820014\",\n \"colorBgTextActive\": \"rgba(0, 0, 0, 0.15)\",\n \"red.10\": \"#5c0011\",\n \"colorBgTextHover\": \"rgba(0, 0, 0, 0.06)\",\n \"volcano.1\": \"#fff2e8\",\n \"colorBorderBg\": \"#ffffff\",\n \"volcano.2\": \"#ffd8bf\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"volcano.3\": \"#ffbb96\",\n \"colorFillContentHover\": \"rgba(0, 0, 0, 0.15)\",\n \"volcano.4\": \"#ff9c6e\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"volcano.5\": \"#ff7a45\",\n \"volcano.6\": \"#fa541c\",\n \"volcano.7\": \"#d4380d\",\n \"transparent\": \"rgba(0, 0, 0, 0)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"yellow.1\": \"#feffe6\",\n \"volcano.8\": \"#ad2102\",\n \"yellow.2\": \"#ffffb8\",\n \"yellow.3\": \"#fffb8f\",\n \"volcano.9\": \"#871400\",\n \"yellow.4\": \"#fff566\",\n \"volcano.10\": \"#610b00\",\n \"yellow.5\": \"#ffec3d\",\n \"yellow.6\": \"#fadb14\",\n \"yellow.7\": \"#d4b106\",\n \"yellow.8\": \"#ad8b00\",\n \"yellow.9\": \"#876800\",\n \"yellow.10\": \"#614700\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorSuccess\": \"#52c41a\",\n \"colorWarning\": \"#faad14\",\n \"colorInfo\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"colorLink\": \"#4d75d9\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"colorErrorBorder\": \"#ffccc7\",\n \"colorErrorBorderHover\": \"#ffa39e\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorErrorActive\": \"#d9363e\",\n \"colorErrorTextHover\": \"#ff7875\",\n \"colorErrorText\": \"#ff4d4f\",\n \"colorErrorTextActive\": \"#d9363e\",\n \"colorLinkHover\": \"#769de4\",\n \"colorInfoBg\": \"#f1f5fd\",\n \"colorInfoBgHover\": \"#e0e9f9\",\n \"colorInfoBorder\": \"#c8d8f5\",\n \"colorInfoBorderHover\": \"#a2bfee\",\n \"colorInfoHover\": \"#769de4\",\n \"colorInfoActive\": \"#4261ce\",\n \"colorInfoTextHover\": \"#769de4\",\n \"colorInfoText\": \"#4d75d9\",\n \"colorInfoTextActive\": \"#4261ce\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorPrimaryBg\": \"#f1f5fd\",\n \"colorPrimaryBgHover\": \"#e0e9f9\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimaryBorderHover\": \"#a2bfee\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimaryTextHover\": \"#769de4\",\n \"colorPrimaryText\": \"#4d75d9\",\n \"colorPrimaryTextActive\": \"#4261ce\",\n \"colorSuccessBg\": \"#f6ffed\",\n \"colorSuccessBgHover\": \"#d9f7be\",\n \"colorSuccessBorder\": \"#b7eb8f\",\n \"colorSuccessBorderHover\": \"#95de64\",\n \"colorSuccessHover\": \"#95de64\",\n \"colorSuccessActive\": \"#389e0d\",\n \"colorSuccessTextHover\": \"#73d13d\",\n \"colorSuccessText\": \"#52c41a\",\n \"colorSuccessTextActive\": \"#389e0d\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorWarningBorder\": \"#ffe58f\",\n \"colorWarningBorderHover\": \"#ffd666\",\n \"colorWarningHover\": \"#ffd666\",\n \"colorWarningActive\": \"#d48806\",\n \"colorWarningTextHover\": \"#ffc53d\",\n \"colorWarningText\": \"#faad14\",\n \"colorWarningTextActive\": \"#d48806\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlItemBgActiveDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlTmpOutline\": \"rgba(0, 0, 0, 0.02)\",\n \"borderRadius\": 6,\n \"borderRadiusLG\": 8,\n \"borderRadiusSM\": 4,\n \"borderRadiusXS\": 2,\n \"sizeStep\": 4,\n \"sizeUnit\": 4,\n \"controlInteractiveSize\": 16,\n \"size\": 16,\n \"sizeLG\": 24,\n \"sizeMD\": 20,\n \"sizeMS\": 16,\n \"sizeSM\": 12,\n \"sizeXL\": 32,\n \"sizeXS\": 8,\n \"sizeXXL\": 48,\n \"controlHeight\": 32,\n \"sizeXXS\": 4,\n \"controlHeightLG\": 40,\n \"controlHeightSM\": 24,\n \"controlHeightXS\": 16,\n \"lineWidth\": 1,\n \"lineWidthBold\": 2,\n \"lineWidthFocus\": 4,\n \"controlOutlineWidth\": 2,\n \"screenLG\": 992,\n \"screenLGMax\": 1199,\n \"screenLGMin\": 992,\n \"screenMD\": 768,\n \"screenMDMax\": 991,\n \"screenMDMin\": 768,\n \"screenSM\": 576,\n \"screenSMMax\": 767,\n \"screenSMMin\": 576,\n \"screenXL\": 1200,\n \"screenXLMax\": 1599,\n \"screenXLMin\": 1200,\n \"screenXS\": 480,\n \"screenXSMax\": 575,\n \"screenXSMin\": 480,\n \"screenXXL\": 1600,\n \"screenXXLMin\": 1600,\n \"sizePopupArrow\": 16,\n \"margin\": 16,\n \"marginLG\": 24,\n \"marginMD\": 20,\n \"marginSM\": 12,\n \"marginXL\": 32,\n \"marginXS\": 8,\n \"marginXXL\": 48,\n \"marginXXS\": 4,\n \"padding\": 16,\n \"paddingLG\": 24,\n \"paddingMD\": 20,\n \"paddingSM\": 12,\n \"paddingXL\": 32,\n \"paddingXS\": 8,\n \"paddingXXS\": 4,\n \"paddingContentHorizontal\": 16,\n \"paddingContentHorizontalLG\": 24,\n \"paddingContentHorizontalSM\": 16,\n \"paddingContentVertical\": 12,\n \"paddingContentVerticalLG\": 16,\n \"paddingContentVerticalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlPaddingHorizontalSM\": 8,\n \"fontFamily\": \"SF Pro\",\n \"fontFamilyCode\": \"Courier Prime\",\n \"fontSize\": 14,\n \"fontSizeLG\": 16,\n \"fontSizeSM\": 12,\n \"fontSizeXL\": 20,\n \"fontSizeHeading1\": 38,\n \"fontSizeHeading2\": 30,\n \"fontSizeHeading3\": 24,\n \"fontSizeHeading4\": 20,\n \"fontSizeHeading5\": 16,\n \"lineHeight\": 1.5714285714285714,\n \"lineHeightHeading1\": 1.2105263157894737,\n \"lineHeightHeading2\": 1.2666666666666666,\n \"lineHeightHeading3\": 1.3333333333333333,\n \"lineHeightHeading4\": 1.4,\n \"lineHeightHeading5\": 1.5,\n \"lineHeightLG\": 1.5,\n \"lineHeightSM\": 1.6666666666666667,\n \"fontSizeIcon\": 12,\n \"fontWeightStrong\": 600,\n \"colorFillAlterSolid\": \"#fafafa\",\n \"fontWeightNormal\": 400,\n \"colorFilledHandleBg\": \"#f0f0f0\",\n \"colorBgSolid\": \"#000000\",\n \"colorBgSolidActive\": \"rgba(0, 0, 0, 0.95)\",\n \"colorBgSolidHover\": \"rgba(0, 0, 0, 0.75)\",\n \"solidTextColor\": \"#ffffff\",\n \"pink.1\": \"#fff0f6\",\n \"pink.2\": \"#ffd6e7\",\n \"pink.3\": \"#ffadd2\",\n \"pink.4\": \"#ff85c0\",\n \"pink.5\": \"#f759ab\",\n \"pink.6\": \"#eb2f96\",\n \"pink.7\": \"#c41d7f\",\n \"pink.8\": \"#9e1068\",\n \"pink.9\": \"#780650\",\n \"pink.10\": \"#520339\",\n \"sizeXXXL\": 60,\n \"sizeXXXXL\": 72,\n \"paddingXXL\": 48,\n \"paddingXXXL\": 60,\n \"paddingXXXXL\": 72,\n \"marginXXXL\": 60,\n \"marginXXXXL\": 72\n },\n \"components\": {\n \"Input\": {\n \"paddingInlineSM\": 7,\n \"paddingInlineLG\": 11,\n \"paddingInline\": 11,\n \"paddingBlockSM\": 0,\n \"paddingBlockLG\": 7,\n \"paddingBlock\": 4,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarningBorderHover\": \"#ffd666\",\n \"colorWarning\": \"#faad14\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorBorderHover\": \"#ffa39e\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"hoverBorderColor\": \"#769de4\",\n \"addonBg\": \"rgba(0, 0, 0, 0.02)\",\n \"activeBorderColor\": \"#4d75d9\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorWarningText\": \"#faad14\",\n \"colorErrorText\": \"#ff4d4f\",\n \"activeBg\": \"#ffffff\",\n \"hoverBg\": \"#ffffff\",\n \"inputFontSize\": 14,\n \"inputFontSizeLG\": 16,\n \"inputFontSizeSM\": 12,\n \"fontFamily\": \"SF Pro\"\n },\n \"Transfer\": {\n \"listWidthLG\": 250,\n \"listWidth\": 180,\n \"listHeight\": 200,\n \"itemPaddingBlock\": 5,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"colorWarning\": \"#faad14\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorLinkHover\": \"#769de4\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"itemHeight\": 32,\n \"headerHeight\": 40,\n \"fontFamily\": \"SF Pro\"\n },\n \"Segmented\": {\n \"segmentedBgColorSelected\": \"#ffffff\",\n \"paddingXXS\": 4,\n \"marginSM\": 12,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextLabel\": \"rgba(0, 0, 0, 0.65)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBgLayout\": \"#f5f5f5\",\n \"colorBgElevated\": \"#ffffff\",\n \"segmentedGroupBg\": \"rgba(0, 0, 0, 0.04)\",\n \"itemSelectedColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemSelectedBg\": \"#ffffff\",\n \"itemHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"itemColor\": \"rgba(0, 0, 0, 0.65)\",\n \"itemActiveBg\": \"rgba(0, 0, 0, 0.15)\",\n \"trackPadding\": 2,\n \"trackBg\": \"#f5f5f5\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Switch\": {\n \"trackPadding\": 2,\n \"trackMinWidthSM\": 28,\n \"trackMinWidth\": 44,\n \"trackHeightSM\": 16,\n \"trackHeight\": 22,\n \"handleSizeSM\": 12,\n \"handleSize\": 18,\n \"marginXXS\": 4,\n \"lineWidthFocus\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlHeight\": 32,\n \"colorWhite\": \"#ffffff\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"handleBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"TimePicker\": {\n \"timeColumnWidth\": 56,\n \"timeColumnHeight\": 224,\n \"timeCellHeight\": 28,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"sizePopupArrow\": 16,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarning\": \"#faad14\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"hoverBorderColor\": \"#769de4\",\n \"cellHoverBg\": \"rgba(0, 0, 0, 0.04)\",\n \"cellHeight\": 24,\n \"activeBorderColor\": \"#4d75d9\",\n \"paddingInline\": 11,\n \"paddingInlineLG\": 11,\n \"paddingInlineSM\": 7,\n \"activeBg\": \"#ffffff\",\n \"hoverBg\": \"#ffffff\",\n \"cellBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"cellActiveWithRangeBg\": \"#f1f5fd\",\n \"cellHoverWithRangeBg\": \"#c8dfff\",\n \"cellRangeBorderColor\": \"#7cb3ff\",\n \"multipleItemBg\": \"rgba(0, 0, 0, 0.06)\",\n \"multipleItemBorderColor\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemBorderColorDisabled\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"multipleSelectorBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"cellWidth\": 36,\n \"multipleItemHeight\": 24,\n \"multipleItemHeightLG\": 32,\n \"multipleItemHeightSM\": 16,\n \"paddingBlock\": 4,\n \"paddingBlockLG\": 7,\n \"paddingBlockSM\": 0,\n \"presetsMaxWidth\": 200,\n \"presetsWidth\": 120,\n \"textHeight\": 40,\n \"withoutTimeCellHeight\": 66,\n \"inputFontSize\": 14,\n \"inputFontSizeLG\": 16,\n \"inputFontSizeSM\": 12,\n \"fontFamily\": \"SF Pro\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\"\n },\n \"Timeline\": {\n \"itemPaddingBottom\": 20,\n \"paddingXXS\": 4,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"margin\": 16,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgContainer\": \"#ffffff\",\n \"tailColor\": \"rgba(0, 0, 0, 0.06)\",\n \"dotBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Tabs\": {\n \"horizontalItemGutter\": 32,\n \"cardGutter\": 2,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainer\": \"#ffffff\",\n \"itemSelectedColor\": \"#4d75d9\",\n \"itemHoverColor\": \"#769de4\",\n \"itemColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemActiveColor\": \"#4261ce\",\n \"inkBarColor\": \"#4d75d9\",\n \"cardHeight\": 40,\n \"cardBg\": \"rgba(0, 0, 0, 0.02)\",\n \"titleFontSize\": 14,\n \"titleFontSizeLG\": 16,\n \"titleFontSizeSM\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Table\": {\n \"stickyScrollBarBorderRadius\": 100,\n \"headerSplitColor\": \"#f0f0f0\",\n \"headerBg\": \"rgba(0, 0, 0, 0.02)\",\n \"footerBg\": \"rgba(0, 0, 0, 0.02)\",\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlInteractiveSize\": 16,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBgContainer\": \"#ffffff\",\n \"rowSelectedHoverBg\": \"#e0e9f9\",\n \"headerFilterHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"headerColor\": \"rgba(0, 0, 0, 0.88)\",\n \"headerBorderRadius\": 8,\n \"footerColor\": \"rgba(0, 0, 0, 0.88)\",\n \"filterDropdownMenuBg\": \"#ffffff\",\n \"filterDropdownBg\": \"#ffffff\",\n \"cellPaddingInlineSM\": 8,\n \"cellPaddingInlineMD\": 8,\n \"cellPaddingInline\": 16,\n \"cellPaddingBlockSM\": 8,\n \"cellPaddingBlockMD\": 12,\n \"cellPaddingBlock\": 16,\n \"borderColor\": \"#f0f0f0\",\n \"rowHoverBg\": \"#fafafa\",\n \"headerSortActiveBg\": \"rgba(0, 0, 0, 0.06)\",\n \"bodySortBg\": \"#fafafa\",\n \"headerSortHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"cellFontSize\": 14,\n \"cellFontSizeMD\": 14,\n \"cellFontSizeSM\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Steps\": {\n \"dotSize\": 8,\n \"dotCurrentSize\": 10,\n \"descriptionMaxWidth\": 140,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeightSM\": 1.6666666666666667,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightLG\": 40,\n \"borderRadiusSM\": 4,\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextLabel\": \"rgba(0, 0, 0, 0.65)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBorderBg\": \"#ffffff\",\n \"colorBgContainer\": \"#ffffff\",\n \"titleLineHeight\": 32,\n \"iconSizeSM\": 24,\n \"iconSize\": 32,\n \"finishIconBorderColor\": \"#1677ff\",\n \"customIconFontSize\": 24,\n \"iconFontSize\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Spin\": {\n \"dotSizeSM\": 14,\n \"dotSize\": 20,\n \"contentHeight\": 400,\n \"marginXXS\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBgContainer\": \"#ffffff\",\n \"dotSizeLG\": 32,\n \"fontFamily\": \"SF Pro\"\n },\n \"Slider\": {\n \"railSize\": 4,\n \"handleSizeHover\": 12,\n \"dotSize\": 8,\n \"controlSize\": 10,\n \"handleSize\": 10,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryBorderHover\": \"#a2bfee\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillContentHover\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"trackHoverBg\": \"#a2bfee\",\n \"trackBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"trackBg\": \"#c8d8f5\",\n \"railHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"railBg\": \"rgba(0, 0, 0, 0.04)\",\n \"handleColor\": \"#c8d8f5\",\n \"handleActiveColor\": \"#4d75d9\",\n \"dotBorderColor\": \"#f0f0f0\",\n \"dotActiveBorderColor\": \"#c8d8f5\",\n \"handleColorDisabled\": \"#bfbfbf\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Rate\": {\n \"rateStarSize\": 20,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Radio\": {\n \"radioSize\": 16,\n \"dotSize\": 8,\n \"buttonPaddingInline\": 15,\n \"paddingXS\": 8,\n \"padding\": 16,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgActiveDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWhite\": \"#ffffff\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"wrapperMarginInlineEnd\": 8,\n \"dotColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"buttonSolidCheckedHoverBg\": \"#769de4\",\n \"buttonSolidCheckedColor\": \"#ffffff\",\n \"buttonSolidCheckedBg\": \"#4d75d9\",\n \"buttonSolidCheckedActiveBg\": \"#4261ce\",\n \"buttonColor\": \"rgba(0, 0, 0, 0.88)\",\n \"buttonCheckedColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"buttonCheckedBgDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"buttonCheckedBg\": \"#ffffff\",\n \"buttonBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\",\n \"radioBgColor\": \"#4d75d9\",\n \"radioColor\": \"#ffffff\"\n },\n \"Popover\": {\n \"titleMinWidth\": 177,\n \"sizePopupArrow\": 16,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSize\": 14,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusLG\": 8,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorBgElevated\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Notification\": {\n \"width\": 384,\n \"paddingMD\": 20,\n \"paddingLG\": 24,\n \"paddingContentHorizontalLG\": 24,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorInfo\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgElevated\": \"#ffffff\",\n \"lineHeightLG\": 1.5,\n \"lineWidthFocus\": 4,\n \"fontFamily\": \"SF Pro\"\n },\n \"Tooltip\": {\n \"paddingSM\": 12,\n \"sizePopupArrow\": 16,\n \"paddingXS\": 8,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadius\": 6,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorBgSpotlight\": \"rgba(0, 0, 0, 0.85)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Menu\": {\n \"subMenuItemBg\": \"rgba(0, 0, 0, 0.02)\",\n \"darkSubMenuItemBg\": \"#000c17\",\n \"darkItemDisabledColor\": \"rgba(255, 255, 255, 0.25)\",\n \"darkItemColor\": \"rgba(255, 255, 255, 0.65)\",\n \"darkGroupTitleColor\": \"rgba(255, 255, 255, 0.65)\",\n \"darkItemBg\": \"#001529\",\n \"paddingXS\": 8,\n \"paddingXL\": 32,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"borderRadius\": 6,\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainer\": \"#ffffff\",\n \"subMenuItemBorderRadius\": 4,\n \"popupBg\": \"#ffffff\",\n \"itemSelectedColor\": \"#4d75d9\",\n \"itemSelectedBg\": \"#f1f5fd\",\n \"itemHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"itemHeight\": 40,\n \"itemDisabledColor\": \"rgba(0, 0, 0, 0.25)\",\n \"itemColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemBorderRadius\": 8,\n \"itemBg\": \"#ffffff\",\n \"iconSize\": 14,\n \"horizontalItemSelectedColor\": \"#4d75d9\",\n \"horizontalItemSelectedBg\": \"rgba(0, 0, 0, 0)\",\n \"horizontalItemHoverColor\": \"#4d75d9\",\n \"horizontalItemHoverBg\": \"rgba(0, 0, 0, 0)\",\n \"groupTitleColor\": \"rgba(0, 0, 0, 0.45)\",\n \"darkItemSelectedColor\": \"#ffffff\",\n \"darkItemSelectedBg\": \"#4d75d9\",\n \"darkItemHoverColor\": \"#ffffff\",\n \"darkItemHoverBg\": \"rgba(0, 0, 0, 0)\",\n \"collapsedIconSize\": 16,\n \"darkPopupBg\": \"#001529\",\n \"activeBarBorderWidth\": 1,\n \"collapsedWidth\": 80,\n \"dropdownWidth\": 160,\n \"itemMarginBlock\": 4,\n \"itemMarginInline\": 4,\n \"iconMarginInlineEnd\": 10,\n \"groupTitleFontSize\": 14,\n \"groupTitleLineHeight\": 1.5714285714285714,\n \"fontFamily\": \"SF Pro\",\n \"subMenuItemSelectedColor\": \"#4d75d9\"\n },\n \"InputNumber\": {\n \"paddingInlineSM\": 7,\n \"paddingInlineLG\": 11,\n \"paddingInline\": 11,\n \"paddingBlockSM\": 0,\n \"paddingBlockLG\": 7,\n \"paddingBlock\": 4,\n \"handleWidth\": 22,\n \"controlWidth\": 90,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningBorderHover\": \"#ffd666\",\n \"colorWarning\": \"#faad14\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorBorderHover\": \"#ffa39e\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"hoverBorderColor\": \"#769de4\",\n \"handleHoverColor\": \"#4d75d9\",\n \"handleBorderColor\": \"#d9d9d9\",\n \"handleBg\": \"#ffffff\",\n \"handleActiveBg\": \"rgba(0, 0, 0, 0.02)\",\n \"addonBg\": \"rgba(0, 0, 0, 0.02)\",\n \"activeBorderColor\": \"#4d75d9\",\n \"activeBg\": \"#ffffff\",\n \"hoverBg\": \"#ffffff\",\n \"inputFontSize\": 14,\n \"inputFontSizeLG\": 16,\n \"inputFontSizeSM\": 12,\n \"fontFamily\": \"SF Pro\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"filledHandleBg\": \"#f0f0f0\",\n \"colorErrorText\": \"#ff4d4f\",\n \"colorWarningText\": \"#faad14\"\n },\n \"Image\": {\n \"previewOperationSize\": 18,\n \"previewOperationHoverColor\": \"rgba(255, 255, 255, 0.85)\",\n \"previewOperationColorDisabled\": \"rgba(255, 255, 255, 0.25)\",\n \"previewOperationColor\": \"rgba(255, 255, 255, 0.65)\",\n \"paddingXXS\": 4,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"marginXXS\": 4,\n \"marginXL\": 32,\n \"marginSM\": 12,\n \"margin\": 16,\n \"fontSizeIcon\": 12,\n \"controlHeightLG\": 40,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\"\n },\n \"Card\": {\n \"headerHeightSM\": 38,\n \"headerHeight\": 56,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSize\": 14,\n \"borderRadiusLG\": 8,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBgContainer\": \"#ffffff\",\n \"headerBg\": \"rgba(0, 0, 0, 0)\",\n \"headerFontSize\": 16,\n \"headerFontSizeSM\": 14,\n \"fontHeight\": 22,\n \"fontSizeLG\": 16,\n \"fontFamily\": \"SF Pro\",\n \"bodyPaddingSM\": 12,\n \"headerPaddingSM\": 12,\n \"bodyPadding\": 24,\n \"headerPadding\": 24\n },\n \"Carousel\": {\n \"dotWidth\": 16,\n \"dotHeight\": 3,\n \"dotActiveWidth\": 24,\n \"marginXXS\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorBgContainer\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Cascader\": {\n \"dropdownHeight\": 180,\n \"controlWidth\": 184,\n \"controlItemWidth\": 111,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlInteractiveSize\": 16,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"colorWhite\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"optionSelectedBg\": \"#f1f5fd\",\n \"menuPadding\": 4,\n \"optionSelectedFontWeight\": 600,\n \"fontFamily\": \"SF Pro\",\n \"borderRadiusLG\": 8,\n \"optionSelectedColor\": \"rgba(0, 0, 0, 0.88)\"\n },\n \"Calendar\": {\n \"yearControlWidth\": 80,\n \"monthControlWidth\": 70,\n \"controlHeight\": 32,\n \"screenXS\": 480,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeightSM\": 1.6666666666666667,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"itemActiveBg\": \"#f1f5fd\",\n \"fullPanelBg\": \"#ffffff\",\n \"fullBg\": \"#ffffff\",\n \"fontHeightSM\": 20,\n \"fontFamily\": \"SF Pro\"\n },\n \"Button\": {\n \"paddingInlineSM\": 7,\n \"paddingInlineLG\": 15,\n \"paddingInline\": 15,\n \"onlyIconSizeSM\": 14,\n \"onlyIconSizeLG\": 18,\n \"paddingXS\": 8,\n \"paddingContentHorizontal\": 16,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidth\": 1,\n \"contentLineHeight\": 1.5714285714285714,\n \"contentFontSizeLG\": 16,\n \"contentFontSize\": 14,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorErrorBorderHover\": \"#ffa39e\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorErrorActive\": \"#d9363e\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgTextActive\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"textHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"primaryColor\": \"#ffffff\",\n \"onlyIconSize\": 16,\n \"linkHoverBg\": \"rgba(0, 0, 0, 0)\",\n \"groupBorderColor\": \"#769de4\",\n \"ghostBg\": \"rgba(0, 0, 0, 0)\",\n \"defaultGhostColor\": \"#ffffff\",\n \"defaultGhostBorderColor\": \"#ffffff\",\n \"defaultColor\": \"rgba(0, 0, 0, 0.88)\",\n \"defaultBorderColor\": \"#d9d9d9\",\n \"defaultBg\": \"#ffffff\",\n \"dangerColor\": \"#ffffff\",\n \"borderColorDisabled\": \"#d9d9d9\",\n \"defaultHoverBg\": \"#ffffff\",\n \"defaultHoverColor\": \"#769de4\",\n \"defaultHoverBorderColor\": \"#769de4\",\n \"defaultActiveBg\": \"#ffffff\",\n \"defaultActiveColor\": \"#4261ce\",\n \"defaultActiveBorderColor\": \"#4261ce\",\n \"fontWeight\": 400,\n \"contentFontSizeSM\": 14,\n \"contentLineHeightLG\": 1.5,\n \"contentLineHeightSM\": 1.5714285714285714,\n \"textTextActiveColor\": \"rgba(0, 0, 0, 0.88)\",\n \"textTextHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"textTextColor\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryBg\": \"#f1f5fd\",\n \"colorBgSolid\": \"#000000\",\n \"colorBgSolidActive\": \"rgba(0, 0, 0, 0.95)\",\n \"colorBgSolidHover\": \"rgba(0, 0, 0, 0.75)\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"solidTextColor\": \"#ffffff\"\n },\n \"Badge\": {\n \"statusSize\": 6,\n \"indicatorHeight\": 20,\n \"dotSize\": 6,\n \"paddingXS\": 8,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"borderRadiusSM\": 4,\n \"fontSizeSM\": 12,\n \"fontSize\": 14,\n \"colorWarning\": \"#faad14\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorderBg\": \"#ffffff\",\n \"colorBgContainer\": \"#ffffff\",\n \"indicatorHeightSM\": 14,\n \"textFontSize\": 12,\n \"textFontSizeSM\": 12,\n \"fontHeight\": 22,\n \"lineHeight\": 1.5714285714285714,\n \"fontFamily\": \"SF Pro\"\n },\n \"Form\": {\n \"screenXSMax\": 575,\n \"screenSMMax\": 767,\n \"screenMDMax\": 991,\n \"screenLGMax\": 1199,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"labelRequiredMarkColor\": \"#ff4d4f\",\n \"labelColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemMarginBottom\": 24,\n \"labelColonMarginInlineEnd\": 8,\n \"labelColonMarginInlineStart\": 2,\n \"labelHeight\": 32,\n \"labelFontSize\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Avatar\": {\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeXL\": 20,\n \"fontSizeLG\": 16,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorBorderBg\": \"#ffffff\",\n \"containerSizeSM\": 24,\n \"containerSizeLG\": 40,\n \"containerSize\": 32,\n \"textFontSize\": 18,\n \"textFontSizeLG\": 24,\n \"textFontSizeSM\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Tour\": {\n \"sizePopupArrow\": 16,\n \"paddingXS\": 8,\n \"padding\": 16,\n \"marginXS\": 8,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSize\": 14,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWhite\": \"#ffffff\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBgTextHover\": \"rgba(0, 0, 0, 0.06)\",\n \"colorBgElevated\": \"#ffffff\",\n \"closeBtnSize\": 22,\n \"primaryNextBtnHoverBg\": \"#f0f0f0\",\n \"primaryPrevBtnBg\": \"rgba(255, 255, 255, 0.15)\",\n \"fontFamily\": \"SF Pro\",\n \"lineWidthFocus\": 4\n },\n \"QRCode\": {\n \"paddingSM\": 12,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"colorWhite\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Upload\": {\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginXL\": 32,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSizeHeading3\": 24,\n \"fontSizeHeading2\": 30,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlHeightLG\": 40,\n \"borderRadiusLG\": 8,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"fontHeight\": 22,\n \"fontHeightSM\": 20,\n \"lineWidthFocus\": 4,\n \"fontFamily\": \"SF Pro\"\n },\n \"Typography\": {\n \"paddingSM\": 12,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeightHeading5\": 1.5,\n \"lineHeightHeading4\": 1.4,\n \"lineHeightHeading3\": 1.3333333333333333,\n \"lineHeightHeading2\": 1.2666666666666666,\n \"lineHeightHeading1\": 1.2105263157894737,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeHeading5\": 16,\n \"fontSizeHeading4\": 20,\n \"fontSizeHeading3\": 24,\n \"fontSizeHeading2\": 30,\n \"fontSizeHeading1\": 38,\n \"fontSize\": 14,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorErrorActive\": \"#d9363e\",\n \"colorError\": \"#ff4d4f\",\n \"fontFamilyCode\": \"Courier Prime\"\n },\n \"TreeSelect\": {\n \"paddingXS\": 8,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlInteractiveSize\": 16,\n \"controlHeightSM\": 24,\n \"borderRadiusSM\": 4,\n \"borderRadius\": 6,\n \"colorWhite\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"titleHeight\": 24,\n \"nodeSelectedBg\": \"#f1f5fd\",\n \"nodeHoverBg\": \"rgba(0, 0, 0, 0.04)\",\n \"fontFamily\": \"SF Pro\",\n \"borderRadiusLG\": 8\n },\n \"Tree\": {\n \"paddingSM\": 12,\n \"borderRadiusLG\": 8,\n \"paddingXS\": 8,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlInteractiveSize\": 16,\n \"controlHeightSM\": 24,\n \"borderRadiusSM\": 4,\n \"borderRadius\": 6,\n \"colorWhite\": \"#ffffff\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"titleHeight\": 24,\n \"nodeSelectedBg\": \"#f1f5fd\",\n \"nodeHoverBg\": \"rgba(0, 0, 0, 0.04)\",\n \"directoryNodeSelectedColor\": \"#ffffff\",\n \"directoryNodeSelectedBg\": \"#4d75d9\",\n \"fontFamily\": \"SF Pro\",\n \"nodeHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"nodeSelectedColor\": \"rgba(0, 0, 0, 0.88)\",\n \"indentSize\": 24\n },\n \"Tag\": {\n \"paddingXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeightSM\": 1.6666666666666667,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"borderRadiusSM\": 4,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryActive\": \"#4261ce\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillQuaternary\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorWarningBorder\": \"#ffe58f\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorSuccessBorder\": \"#b7eb8f\",\n \"colorSuccessBg\": \"#f6ffed\",\n \"colorInfoBorder\": \"#c8d8f5\",\n \"colorInfoBg\": \"#f1f5fd\",\n \"colorErrorBorder\": \"#ffccc7\",\n \"colorErrorBg\": \"#fff2f0\",\n \"defaultColor\": \"rgba(0, 0, 0, 0.88)\",\n \"defaultBg\": \"rgba(0, 0, 0, 0.02)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Statistic\": {\n \"padding\": 16,\n \"marginXXS\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"contentFontSize\": 24,\n \"titleFontSize\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"Skeleton\": {\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"controlHeightXS\": 16,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\"\n },\n \"Select\": {\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightXS\": 16,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarningHover\": \"#ffd666\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"singleItemHeightLG\": 40,\n \"selectorBg\": \"#ffffff\",\n \"optionSelectedColor\": \"rgba(0, 0, 0, 0.88)\",\n \"optionSelectedBg\": \"#f1f5fd\",\n \"optionLineHeight\": null,\n \"optionHeight\": 32,\n \"optionActiveBg\": \"rgba(0, 0, 0, 0.04)\",\n \"multipleSelectorBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"multipleItemHeightLG\": 32,\n \"multipleItemHeight\": 24,\n \"multipleItemColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"multipleItemBorderColorDisabled\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemBorderColor\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemBg\": \"rgba(0, 0, 0, 0.06)\",\n \"clearBg\": \"#ffffff\",\n \"optionFontSize\": \"SF Pro\",\n \"optionSelectedFontWeight\": 600,\n \"fontFamily\": \"SF Pro\",\n \"showArrowPaddingInlineEnd\": 18,\n \"activeBorderColor\": \"#4d75d9\",\n \"hoverBorderColor\": \"#769de4\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorWarning\": \"#faad14\",\n \"colorError\": \"#ff4d4f\"\n },\n \"Result\": {\n \"paddingXS\": 8,\n \"paddingXL\": 32,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXS\": 8,\n \"lineHeightHeading3\": 1.3333333333333333,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorInfo\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorError\": \"#ff4d4f\",\n \"iconFontSize\": 72,\n \"subtitleFontSize\": 14,\n \"titleFontSize\": 24\n },\n \"Progress\": {\n \"paddingXS\": 8,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSize\": 14,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgContainer\": \"#ffffff\",\n \"remainingColor\": \"rgba(0, 0, 0, 0.06)\",\n \"defaultColor\": \"#4d75d9\",\n \"circleTextColor\": \"rgba(0, 0, 0, 0.88)\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Popconfirm\": {\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"fontWeightStrong\": 600,\n \"fontSize\": 14,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\"\n },\n \"Pagination\": {\n \"screenSM\": 576,\n \"screenLG\": 992,\n \"paddingXXS\": 4,\n \"paddingSM\": 12,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgActiveDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgTextHover\": \"rgba(0, 0, 0, 0.06)\",\n \"colorBgTextActive\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"itemSizeSM\": 24,\n \"itemSize\": 32,\n \"itemLinkBg\": \"#ffffff\",\n \"itemInputBg\": \"#ffffff\",\n \"itemBg\": \"#ffffff\",\n \"itemActiveColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"itemActiveBgDisabled\": \"rgba(0, 0, 0, 0.15)\",\n \"itemActiveBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Modal\": {\n \"screenSMMax\": 767,\n \"paddingXS\": 8,\n \"paddingMD\": 20,\n \"paddingLG\": 24,\n \"paddingContentHorizontalLG\": 24,\n \"padding\": 16,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidthFocus\": 4,\n \"lineWidth\": 1,\n \"lineHeightHeading5\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"fontSizeHeading5\": 16,\n \"fontSize\": 14,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"titleColor\": \"rgba(0, 0, 0, 0.88)\",\n \"headerBg\": \"#ffffff\",\n \"footerBg\": \"rgba(0, 0, 0, 0)\",\n \"contentBg\": \"#ffffff\",\n \"titleFontSize\": 16,\n \"titleLineHeight\": 1.375,\n \"fontHeight\": 22,\n \"fontFamily\": \"SF Pro\"\n },\n \"Message\": {\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"marginXS\": 8,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"borderRadiusLG\": 8,\n \"colorWarning\": \"#faad14\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccess\": \"#52c41a\",\n \"colorInfo\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"contentBg\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"List\": {\n \"screenSM\": 576,\n \"screenMD\": 768,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"paddingContentVerticalSM\": 8,\n \"paddingContentVerticalLG\": 16,\n \"paddingContentVertical\": 12,\n \"paddingContentHorizontalLG\": 24,\n \"paddingContentHorizontal\": 16,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXXL\": 48,\n \"marginSM\": 12,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusLG\": 8,\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"headerBg\": \"rgba(0, 0, 0, 0)\",\n \"footerBg\": \"rgba(0, 0, 0, 0)\",\n \"avatarMarginRight\": 16,\n \"descriptionFontSize\": 14,\n \"fontFamily\": \"SF Pro\"\n },\n \"FloatButton\": {\n \"paddingXXS\": 4,\n \"marginXXL\": 48,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlHeightLG\": 40,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillContent\": \"rgba(0, 0, 0, 0.06)\",\n \"colorBgElevated\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Empty\": {\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"fontSize\": 14,\n \"lineHeight\": 1.5714285714285714\n },\n \"Dropdown\": {\n \"sizePopupArrow\": 16,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeSM\": 12,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"controlPaddingHorizontal\": 12,\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorError\": \"#ff4d4f\",\n \"colorBgElevated\": \"#ffffff\",\n \"paddingBlock\": 5,\n \"fontFamily\": \"SF Pro\"\n },\n \"Drawer\": {\n \"paddingXS\": 8,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginSM\": 12,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgMask\": \"rgba(0, 0, 0, 0.45)\",\n \"colorBgElevated\": \"#ffffff\",\n \"lineWidthFocus\": 4\n },\n \"Divider\": {\n \"marginXS\": 8,\n \"marginLG\": 24,\n \"margin\": 16,\n \"lineWidth\": 1,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"lineHeight\": 1.5714285714285714,\n \"fontFamily\": \"SF Pro\"\n },\n \"Descriptions\": {\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidth\": 1,\n \"lineHeightSM\": 1.6666666666666667,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeSM\": 12,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"borderRadiusLG\": 8,\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextSecondary\": \"rgba(0, 0, 0, 0.65)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"titleColor\": \"rgba(0, 0, 0, 0.88)\",\n \"labelBg\": \"rgba(0, 0, 0, 0.02)\",\n \"contentColor\": \"rgba(0, 0, 0, 0.88)\",\n \"fontFamily\": \"SF Pro\",\n \"labelColor\": \"rgba(0, 0, 0, 0.45)\"\n },\n \"DatePicker\": {\n \"sizePopupArrow\": 16,\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"padding\": 16,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeightLG\": 1.5,\n \"lineHeight\": 1.5714285714285714,\n \"fontWeightStrong\": 600,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarningHover\": \"#ffd666\",\n \"colorWarning\": \"#faad14\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextLightSolid\": \"#ffffff\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorLinkHover\": \"#769de4\",\n \"colorLinkActive\": \"#4261ce\",\n \"colorLink\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"hoverBorderColor\": \"#769de4\",\n \"cellHoverBg\": \"rgba(0, 0, 0, 0.04)\",\n \"cellHeight\": 24,\n \"activeBorderColor\": \"#4d75d9\",\n \"paddingInline\": 11,\n \"paddingInlineSM\": 7,\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarningText\": \"#faad14\",\n \"colorErrorText\": \"#ff4d4f\",\n \"colorWarningBgHover\": \"#fff1b8\",\n \"colorErrorBgHover\": \"#fff1f0\",\n \"activeBg\": \"#ffffff\",\n \"hoverBg\": \"#ffffff\",\n \"cellBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"cellActiveWithRangeBg\": \"#f1f5fd\",\n \"cellHoverWithRangeBg\": \"#c8dfff\",\n \"cellRangeBorderColor\": \"#7cb3ff\",\n \"multipleItemBg\": \"rgba(0, 0, 0, 0.06)\",\n \"multipleItemBorderColor\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemBorderColorDisabled\": \"rgba(0, 0, 0, 0)\",\n \"multipleItemColorDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"multipleSelectorBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"cellWidth\": 36,\n \"multipleItemHeight\": 24,\n \"multipleItemHeightLG\": 32,\n \"multipleItemHeightSM\": 16,\n \"paddingBlock\": 4,\n \"paddingBlockLG\": 7,\n \"paddingBlockSM\": 0,\n \"paddingInline 2\": 11,\n \"presetsMaxWidth\": 200,\n \"presetsWidth\": 120,\n \"textHeight\": 40,\n \"timeCellHeight\": 28,\n \"timeColumnHeight\": 224,\n \"timeColumnWidth\": 56,\n \"withoutTimeCellHeight\": 66,\n \"inputFontSize\": 14,\n \"inputFontSizeLG\": 16,\n \"inputFontSizeSM\": 12,\n \"fontHeight\": 22,\n \"fontHeightLG\": 24,\n \"fontFamily\": \"SF Pro\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\"\n },\n \"Collapse\": {\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"paddingLG\": 24,\n \"padding\": 16,\n \"marginSM\": 12,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"borderRadiusLG\": 8,\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorFillAlter\": \"rgba(0, 0, 0, 0.02)\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainer\": \"#ffffff\",\n \"headerBg\": \"rgba(0, 0, 0, 0.02)\",\n \"contentBg\": \"#ffffff\",\n \"fontHeight\": 22,\n \"fontHeightLG\": 24,\n \"lineHeightLG\": 1.5,\n \"fontFamily\": \"SF Pro\"\n },\n \"Checkbox\": {\n \"paddingXS\": 8,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineWidthBold\": 2,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"controlInteractiveSize\": 16,\n \"borderRadiusSM\": 4,\n \"colorWhite\": \"#ffffff\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"fontFamily\": \"SF Pro\"\n },\n \"Breadcrumb\": {\n \"paddingXXS\": 4,\n \"marginXXS\": 4,\n \"marginXS\": 8,\n \"lineWidthFocus\": 4,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeIcon\": 12,\n \"fontSize\": 14,\n \"borderRadiusSM\": 4,\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorBgTextHover\": \"rgba(0, 0, 0, 0.06)\",\n \"separatorColor\": \"rgba(0, 0, 0, 0.45)\",\n \"linkHoverColor\": \"rgba(0, 0, 0, 0.88)\",\n \"linkColor\": \"rgba(0, 0, 0, 0.45)\",\n \"lastItemColor\": \"rgba(0, 0, 0, 0.88)\",\n \"itemColor\": \"rgba(0, 0, 0, 0.45)\",\n \"separatorMargin\": 8,\n \"iconFontSize\": 14,\n \"fontHeight\": 22,\n \"fontFamily\": \"SF Pro\"\n },\n \"Anchor\": {\n \"paddingXXS\": 4,\n \"lineWidthBold\": 2,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSize\": 14,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSplit\": \"rgba(0, 0, 0, 0.06)\",\n \"colorPrimary\": \"#4d75d9\",\n \"linkPaddingInlineStart\": 16,\n \"linkPaddingBlock\": 4,\n \"fontFamily\": \"SF Pro\"\n },\n \"Alert\": {\n \"paddingMD\": 20,\n \"paddingContentVerticalSM\": 8,\n \"paddingContentHorizontalLG\": 24,\n \"marginXS\": 8,\n \"marginSM\": 12,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"fontSizeLG\": 16,\n \"fontSizeIcon\": 12,\n \"fontSizeHeading3\": 24,\n \"fontSize\": 14,\n \"borderRadiusLG\": 8,\n \"colorWarningBorder\": \"#ffe58f\",\n \"colorWarningBg\": \"#fffbe6\",\n \"colorWarning\": \"#faad14\",\n \"colorTextHeading\": \"rgba(0, 0, 0, 0.88)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorSuccessBorder\": \"#b7eb8f\",\n \"colorSuccessBg\": \"#f6ffed\",\n \"colorSuccess\": \"#52c41a\",\n \"colorInfoBorder\": \"#c8d8f5\",\n \"colorInfoBg\": \"#f1f5fd\",\n \"colorInfo\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorErrorBorder\": \"#ffccc7\",\n \"colorErrorBg\": \"#fff2f0\",\n \"colorError\": \"#ff4d4f\",\n \"withDescriptionIconSize\": 24,\n \"fontFamily\": \"SF Pro\"\n },\n \"Space\": {\n \"paddingXS\": 8,\n \"paddingLG\": 24,\n \"padding\": 16\n },\n \"AutoComplete\": {\n \"paddingXXS\": 4,\n \"paddingXS\": 8,\n \"paddingSM\": 12,\n \"lineWidth\": 1,\n \"lineHeight\": 1.5714285714285714,\n \"controlPaddingHorizontalSM\": 8,\n \"controlPaddingHorizontal\": 12,\n \"controlOutlineWidth\": 2,\n \"controlOutline\": \"rgba(5, 145, 255, 0.1)\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlHeightXS\": 16,\n \"controlHeightSM\": 24,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"borderRadiusXS\": 2,\n \"borderRadiusSM\": 4,\n \"borderRadiusLG\": 8,\n \"borderRadius\": 6,\n \"colorWarningOutline\": \"rgba(255, 215, 5, 0.1)\",\n \"colorWarningHover\": \"#ffd666\",\n \"colorWarning\": \"#faad14\",\n \"colorTextTertiary\": \"rgba(0, 0, 0, 0.45)\",\n \"colorTextQuaternary\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextPlaceholder\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorPrimaryHover\": \"#769de4\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorIconHover\": \"rgba(0, 0, 0, 0.88)\",\n \"colorIcon\": \"rgba(0, 0, 0, 0.45)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorErrorOutline\": \"rgba(255, 38, 6, 0.06)\",\n \"colorErrorHover\": \"#ff7875\",\n \"colorError\": \"#ff4d4f\",\n \"colorBorder\": \"#d9d9d9\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"optionActiveBg\": \"rgba(0, 0, 0, 0.04)\",\n \"optionHeight\": 32,\n \"optionFontSize\": 14,\n \"fontFamily\": \"SF Pro\",\n \"fontSize\": 14,\n \"fontSizeIcon\": 12,\n \"fontSizeLG\": 16,\n \"fontSizeSM\": 12\n },\n \"Layout\": {\n \"bodyBg\": \"#f5f5f5\",\n \"footerBg\": \"#f5f5f5\",\n \"headerBg\": \"#001529\",\n \"headerColor\": \"rgba(0, 0, 0, 0.88)\",\n \"lightSiderBg\": \"#ffffff\",\n \"lightTriggerBg\": \"#ffffff\",\n \"lightTriggerColor\": \"rgba(0, 0, 0, 0.88)\",\n \"siderBg\": \"#001529\",\n \"triggerBg\": \"#002140\",\n \"triggerColor\": \"#ffffff\",\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"headerHeight\": 64,\n \"triggerHeight\": 48,\n \"zeroTriggerHeight\": 40,\n \"zeroTriggerWidth\": 40,\n \"borderRadius\": 6,\n \"fontSize\": 14,\n \"fontSizeXL\": 20\n },\n \"Mentions\": {\n \"fontFamily\": \"SF Pro\",\n \"fontSize\": 14,\n \"lineHeight\": 1.5714285714285714\n },\n \"Splitter\": {\n \"railSize\": 4,\n \"handleSizeHover\": 12,\n \"dotSize\": 8,\n \"controlSize\": 10,\n \"handleSize\": 10,\n \"trackHoverBg\": \"#a2bfee\",\n \"trackBgDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"trackBg\": \"#c8d8f5\",\n \"railHoverBg\": \"rgba(0, 0, 0, 0.06)\",\n \"railBg\": \"rgba(0, 0, 0, 0.04)\",\n \"handleColor\": \"#c8d8f5\",\n \"handleColorDisabled\": \"#bfbfbf\",\n \"handleActiveColor\": \"#4d75d9\",\n \"dotBorderColor\": \"#f0f0f0\",\n \"dotActiveBorderColor\": \"#c8d8f5\",\n \"lineWidth\": 1,\n \"controlHeightLG\": 40,\n \"controlHeight\": 32,\n \"colorTextDisabled\": \"rgba(0, 0, 0, 0.25)\",\n \"colorTextDescription\": \"rgba(0, 0, 0, 0.45)\",\n \"colorPrimaryBorderHover\": \"#a2bfee\",\n \"colorPrimaryBorder\": \"#c8d8f5\",\n \"colorPrimary\": \"#4d75d9\",\n \"colorFillTertiary\": \"rgba(0, 0, 0, 0.04)\",\n \"colorFillSecondary\": \"rgba(0, 0, 0, 0.06)\",\n \"colorFillContentHover\": \"rgba(0, 0, 0, 0.15)\",\n \"colorBorderSecondary\": \"#f0f0f0\",\n \"colorBgElevated\": \"#ffffff\",\n \"colorBgContainerDisabled\": \"rgba(0, 0, 0, 0.04)\",\n \"colorBgContainer\": \"#ffffff\",\n \"resizeSpinnerSize\": 20,\n \"lineHeight\": 1.5714285714285714,\n \"fontSize\": 14,\n \"fontFamily\": \"SF Pro\",\n \"controlHeightSM\": 24,\n \"borderRadiusXS\": 2,\n \"colorText\": \"rgba(0, 0, 0, 0.88)\",\n \"colorFill\": \"rgba(0, 0, 0, 0.15)\",\n \"controlItemBgActive\": \"#f1f5fd\",\n \"controlItemBgActiveHover\": \"#e0e9f9\",\n \"controlItemBgHover\": \"rgba(0, 0, 0, 0.04)\",\n \"fontSizeSM\": 12,\n \"splitBarSize\": 2,\n \"splitTriggerSize\": 6\n }\n }\n}","import { token } from '@doc-lib/theme/light.json'\nimport { OverviewData, EndpointData } from '../entities'\n\nexport interface ApiNodeData extends OverviewData {}\n\nexport interface EndpointNodeData {\n endpoint: EndpointData\n api: OverviewData\n tagName: string\n parentApiId: string\n tagId?: string\n}\n\nexport interface TagNodeData {\n tagName: string\n apiData: OverviewData\n}\n\nexport type NodeData = EndpointNodeData | OverviewData | TagNodeData\n\n// Type definitions\nexport interface TreeNode {\n title: string | React.ReactNode\n key: string\n selectable?: boolean\n isLeaf?: boolean\n method?: string\n children?: TreeNode[]\n data?: NodeData\n}\n\nexport interface EndpointItemProps {\n method: string\n title: string\n cx: (className: string) => string\n isSelected?: boolean\n}\n\n// Method colors configuration\nexport const methodColors = {\n GET: {\n bg: token.colorPrimaryBgHover,\n color: token.colorPrimary,\n },\n POST: {\n bg: token['green.1'],\n color: token.colorSuccess,\n },\n DELETE: {\n bg: token.colorErrorBg,\n color: token.colorError,\n },\n PUT: {\n bg: token.colorWarningBg,\n color: token.colorWarning,\n },\n PATCH: {\n bg: token['volcano.1'],\n color: token['volcano.5'],\n },\n OPTIONS: {\n bg: token['geekblue.2'],\n color: token['geekblue.6'],\n },\n HEAD: {\n bg: token['purple.1'],\n color: token['purple.5'],\n },\n TRACE: {\n bg: token['cyan.1'],\n color: token['cyan.5'],\n },\n}\n\n// Darker method colors for selected state\nexport const darkerMethodColors = {\n GET: {\n bg: token.colorPrimary,\n color: '#FFFFFF',\n },\n POST: {\n bg: token.colorSuccess,\n color: '#FFFFFF',\n },\n DELETE: {\n bg: token.colorError,\n color: '#FFFFFF',\n },\n PUT: {\n bg: token.colorWarning,\n color: '#FFFFFF',\n },\n PATCH: {\n bg: token['volcano.5'],\n color: '#FFFFFF',\n },\n OPTIONS: {\n bg: token['geekblue.6'],\n color: '#FFFFFF',\n },\n HEAD: {\n bg: token['purple.5'],\n color: '#FFFFFF',\n },\n TRACE: {\n bg: token['cyan.5'],\n color: '#FFFFFF',\n },\n}\n\nexport const buildTreeDataStructure = (data: OverviewData[] | null) => {\n if (!data) return []\n return data.map((api) => {\n const tagEntries = Object.entries(api.tags)\n const hasOnlyDefaultTag = tagEntries.length === 1 && tagEntries[0][0] === 'default'\n\n return {\n title: api.title,\n key: api.id,\n selectable: true,\n data: api as OverviewData,\n children: hasOnlyDefaultTag\n ? tagEntries[0][1].map((endpoint) => {\n return {\n title: endpoint.summary,\n key: endpoint.id,\n isLeaf: true,\n selectable: true,\n method: endpoint.method,\n data: {\n endpoint,\n api,\n tagName: 'default',\n parentApiId: api.id,\n } as EndpointNodeData,\n }\n })\n : tagEntries.map(([tag, endpoints]) => {\n // Use deterministic tag ID generation for consistent expansion\n const tagId = `tag-${api.id}-${tag.replace(/\\s+/g, '-').toLowerCase()}`\n return {\n title: tag,\n key: tagId,\n selectable: true,\n data: { tagName: tag, apiData: api } as TagNodeData, // Store tag info and parent API data\n children: endpoints.map((endpoint) => {\n return {\n title: endpoint.summary,\n key: endpoint.id,\n isLeaf: true,\n selectable: true,\n method: endpoint.method,\n data: {\n endpoint,\n api,\n tagName: tag,\n parentApiId: api.id,\n tagId,\n } as EndpointNodeData,\n }\n }),\n }\n }),\n }\n })\n}\n\n// Helper function to find a node by key and return its data\nexport const findNodeByKey = (nodes: TreeNode[], targetKey: string): TreeNode | null => {\n for (const node of nodes) {\n if (node.key === targetKey) {\n return node\n }\n if (node.children && node.children.length > 0) {\n const found = findNodeByKey(node.children, targetKey)\n if (found) return found\n }\n }\n return null\n}\n\n// Helper function to check if an API section should be highlighted when its children are selected\nexport const isApiSectionHighlighted = (\n apiKey: string,\n selectedEndpoint: { parentApiId: string } | null\n): boolean => {\n if (!selectedEndpoint) return false\n\n // Highlight the API if the selected endpoint belongs to this API\n return selectedEndpoint.parentApiId === apiKey\n}\n\n// Get all keys for expand/collapse functionality\nexport const getAllTreeKeys = (data: TreeNode[]): string[] => {\n const keys: string[] = []\n const traverse = (nodes: TreeNode[]) => {\n nodes.forEach((node) => {\n keys.push(node.key)\n if (node.children && node.children.length > 0) {\n traverse(node.children)\n }\n })\n }\n traverse(data)\n return keys\n}\n\n// Filter tree data based on search\nexport const filterTreeData = (data: TreeNode[], searchText: string): TreeNode[] => {\n if (!searchText) return data\n\n // Helper function to recursively find original node in the default tree structure\n const findOriginalNode = (nodes: TreeNode[], key: string): TreeNode | null => {\n for (const node of nodes) {\n if (node.key === key) return node\n if (node.children) {\n const found = findOriginalNode(node.children, key)\n if (found) return found\n }\n }\n return null\n }\n\n const filterNode = (node: TreeNode): TreeNode | null => {\n let titleText = ''\n\n // Get the original title text from the default tree structure\n const originalNode = findOriginalNode(data, node.key)\n if (originalNode && typeof originalNode.title === 'string') {\n titleText = originalNode.title\n } else if (typeof node.title === 'string') {\n titleText = node.title\n }\n\n // For endpoints, also search by method + title combination\n let searchableText = titleText\n if (node.isLeaf && node.method) {\n // Include method in searchable text for endpoints\n searchableText = `${node.method} ${titleText}`.toLowerCase()\n } else {\n searchableText = titleText.toLowerCase()\n }\n\n const searchLower = searchText.toLowerCase()\n const matchesSearch = searchableText.includes(searchLower)\n\n if (node.children) {\n const filteredChildren = node.children\n .map((child: TreeNode) => filterNode(child))\n .filter((child): child is TreeNode => child !== null)\n\n if (matchesSearch || filteredChildren.length > 0) {\n return {\n ...node,\n children: filteredChildren,\n }\n }\n } else if (matchesSearch) {\n return node\n }\n\n return null\n }\n\n return data.map((node) => filterNode(node)).filter((node): node is TreeNode => node !== null)\n}\n\n// Helper function to get parent key for search expansion\nexport const getParentKey = (key: string, tree: TreeNode[]): string | null => {\n for (let i = 0; i < tree.length; i++) {\n const node = tree[i]\n if (node.children) {\n if (node.children.some((item: TreeNode) => item.key === key)) {\n return node.key\n }\n const parent = getParentKey(key, node.children)\n if (parent) {\n return parent\n }\n }\n }\n return null\n}\n\n// Sidebar style configuration\nexport const getSidebarStyles = (token: any, scope: (name: string) => string) => ({\n [scope('sider')]: {\n backgroundColor: token.colorBgContainer,\n overflowY: 'auto' as const,\n overflowX: 'clip' as const,\n borderRadius: token.borderRadius,\n },\n [scope('content')]: {\n padding: token.padding,\n },\n [scope('controls')]: {\n display: 'flex',\n gap: token.marginXS,\n marginBottom: token.marginSM,\n },\n [scope('search-input')]: {\n flex: 1,\n },\n [scope('tree')]: {\n backgroundColor: 'transparent',\n '& .ant-tree-node-content-wrapper': {\n overflow: 'hidden',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n },\n '& .ant-tree-title': {\n width: '100%',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n marginBlock: 'auto',\n },\n '& .ant-tree-treenode': {\n width: '100%',\n padding: 0,\n },\n '& .ant-tree-node-content-wrapper:hover': {\n backgroundColor: token.colorFillTertiary,\n },\n },\n [scope('endpoint-item')]: {\n display: 'flex',\n alignItems: 'center',\n gap: token.marginXS,\n width: '100%',\n maxWidth: '100%',\n minWidth: '100%',\n },\n [scope('method-tag')]: {\n minWidth: '3.75rem',\n textAlign: 'center' as const,\n border: 'none',\n },\n [scope('endpoint-text')]: {\n flex: 1,\n maxWidth: '100%',\n display: 'block',\n },\n [scope('tag-title')]: {\n color: token.colorText,\n maxWidth: '100%',\n display: 'block',\n flex: 1,\n },\n [scope('api-title')]: {\n flex: 1,\n color: token.colorText,\n maxWidth: '100%',\n display: 'block',\n padding: 0,\n margin: 0,\n '&.highlighted': {\n color: token.colorPrimary,\n },\n },\n})\n","import React from 'react'\nimport { Typography, Tag } from 'antd'\nimport {\n methodColors,\n TreeNode,\n EndpointItemProps,\n darkerMethodColors,\n isApiSectionHighlighted,\n} from './sidebar.utils'\nimport { EndpointData } from '../entities'\n\nconst { Text } = Typography\n\n// Endpoint item component\nexport const EndpointItem: React.FC<EndpointItemProps> = ({\n method,\n title,\n cx,\n isSelected = false,\n}) => {\n const colorSet = isSelected ? darkerMethodColors : methodColors\n const methodStyle = colorSet[method as keyof typeof colorSet]\n\n return (\n <div className={cx('endpoint-item')}>\n <Tag\n className={cx('method-tag')}\n style={{\n backgroundColor: methodStyle?.bg,\n color: methodStyle?.color,\n border: 'none',\n }}\n >\n {method}\n </Tag>\n <Text className={cx('endpoint-text')} ellipsis={{ tooltip: title }} style={{ flex: 1 }}>\n {title}\n </Text>\n </div>\n )\n}\n\n// Convert tree data to renderable format\nexport const convertToRenderableTreeData = (\n treeDataStructure: TreeNode[],\n selectedEndpoint: EndpointData | null,\n cx: (className: string) => string\n): TreeNode[] => {\n const renderNode = (node: TreeNode): TreeNode => {\n let title: React.ReactNode\n\n if (node.isLeaf && node.method) {\n // Check if this node's endpoint matches the selected endpoint\n const isSelected =\n selectedEndpoint && 'data' in node && node.data && 'endpoint' in node.data\n ? (node.data as any).endpoint?.id === selectedEndpoint?.id\n : false\n\n // Render endpoint item\n title = (\n <EndpointItem\n method={node.method}\n title={typeof node.title === 'string' ? node.title : 'Endpoint Name'}\n cx={cx}\n isSelected={isSelected}\n />\n )\n } else if (\n node.data &&\n 'id' in node.data &&\n 'tags' in node.data &&\n !('endpoint' in node.data) &&\n !('tagName' in node.data)\n ) {\n // Render API title - check if node data is OverviewData (API data)\n const isHighlighted = isApiSectionHighlighted(node.key, selectedEndpoint)\n title = (\n <Text\n className={cx('api-title') + (isHighlighted ? ' highlighted' : '')}\n ellipsis={{ tooltip: typeof node.title === 'string' ? node.title : 'API Name' }}\n >\n {node.title}\n </Text>\n )\n } else {\n // Render tag title\n title = (\n <Text\n className={cx('tag-title')}\n ellipsis={{ tooltip: typeof node.title === 'string' ? node.title : '' }}\n >\n {node.title}\n </Text>\n )\n }\n\n return {\n ...node,\n title,\n children: node.children ? node.children.map(renderNode) : undefined,\n }\n }\n\n return treeDataStructure.map(renderNode)\n}\n","import { useStore } from '@doc-lib/store'\nimport {\n NodeData,\n EndpointNodeData,\n TagNodeData,\n TreeNode,\n findNodeByKey,\n} from '@doc-lib/view/helper'\nimport { OverviewData } from '@doc-lib/view/entities'\n\nexport interface SelectionResult {\n type: 'endpoint' | 'api' | 'tag'\n endpoint?: EndpointNodeData['endpoint']\n api?: OverviewData\n tag?: string\n}\n\nexport const useNodeSelection = () => {\n const {\n setSelectedNodeKey,\n setFocusedContent,\n setSelectedApi,\n setSelectedEndpoint,\n setExpandedKeys,\n expandedKeys,\n builtTreeData,\n setFocusedTag,\n } = useStore(({ view }) => view)\n\n const handleNodeSelection = (\n nodeData: NodeData | undefined,\n nodeKey: string\n ): SelectionResult | null => {\n if (!nodeData) return null\n if (nodeKey.startsWith('endpoint-')) {\n const endpointNodeData = nodeData as EndpointNodeData\n\n // Set the endpoint data and its parent API separately\n setSelectedEndpoint({\n ...endpointNodeData.endpoint,\n tagName: endpointNodeData.tagName,\n parentApiId: endpointNodeData.parentApiId,\n })\n setSelectedApi(endpointNodeData.api)\n setFocusedContent('ENDPOINT')\n // TODO: auto expand\n const toExpand = [\n endpointNodeData.parentApiId,\n endpointNodeData.tagId,\n endpointNodeData.api.id,\n ].filter((key): key is string => !!key)\n const expanded = [...expandedKeys]\n toExpand.forEach((key) => {\n if (key && expanded.indexOf(key) < 0) {\n expanded.push(key)\n }\n })\n setExpandedKeys(expanded)\n\n return {\n type: 'endpoint' as const,\n endpoint: endpointNodeData.endpoint,\n api: endpointNodeData.api,\n tag: endpointNodeData.tagName,\n }\n } else if (nodeKey.startsWith('api-') || nodeKey === 'custom-auth') {\n // Handle API selection\n const apiData = nodeData as OverviewData\n setSelectedApi(apiData)\n // Clear endpoint selection when selecting API directly\n setSelectedEndpoint(null)\n setFocusedContent('API')\n\n return {\n type: 'api' as const,\n api: apiData,\n }\n } else {\n // Handle tag selection\n const tagData = nodeData as TagNodeData\n setSelectedApi(tagData.apiData)\n setSelectedEndpoint(null)\n setFocusedContent('API')\n setFocusedTag(tagData.tagName)\n\n return {\n type: 'tag' as const,\n tag: tagData.tagName,\n api: tagData.apiData,\n }\n }\n }\n\n // Select a node by its key from the tree structure\n const selectNodeByKey = (nodeKey: string): SelectionResult | null => {\n const selectedNode = findNodeByKey(builtTreeData as TreeNode[], nodeKey)\n if (selectedNode) {\n const result = handleNodeSelection(selectedNode.data, nodeKey)\n setSelectedNodeKey(nodeKey)\n return result\n }\n\n return null\n }\n\n // Expand a specific node by adding it to expanded keys\n const expandNode = (nodeKey: string) => {\n if (!expandedKeys.includes(nodeKey)) {\n setExpandedKeys([...expandedKeys, nodeKey])\n }\n }\n\n const selectPreSelectedApi = (treeData: TreeNode[], apiId: string): SelectionResult | null => {\n if (!treeData || treeData.length === 0) return null\n // Find the API node with same ID\n const apiNodeById = treeData.find(\n (node) =>\n node.data &&\n 'id' in node.data &&\n 'tags' in node.data &&\n !('endpoint' in node.data) &&\n !('tagName' in node.data) &&\n node?.data?.currentVersion === apiId\n )\n\n if (apiNodeById) {\n // Collect all keys to expand at once\n const keysToExpand = [apiNodeById.key]\n\n // Also expand all tag nodes under the first API\n if (apiNodeById.children) {\n apiNodeById.children.forEach((node) => {\n // Only add if it's a tag node (selectable: false)\n if (node.selectable === false) {\n keysToExpand.push(node.key)\n }\n })\n }\n\n // Expand all keys at once to avoid state update batching issues\n setExpandedKeys([\n ...expandedKeys,\n ...keysToExpand.filter((key) => !expandedKeys.includes(key)),\n ])\n\n // Select the first API node\n return selectNodeByKey(apiNodeById.key)\n } else {\n return selectFirstApi(treeData)\n }\n\n return null\n }\n\n // Select the first API from the tree data and expand it\n const selectFirstApi = (treeData: TreeNode[]): SelectionResult | null => {\n if (!treeData || treeData.length === 0) return null\n\n // Find the first API node (should be at the top level)\n const firstApiNode = treeData.find(\n (node) =>\n node.data &&\n 'id' in node.data &&\n 'tags' in node.data &&\n !('endpoint' in node.data) &&\n !('tagName' in node.data)\n )\n\n if (firstApiNode) {\n // Collect all keys to expand at once\n const keysToExpand = [firstApiNode.key]\n\n // Also expand all tag nodes under the first API\n if (firstApiNode.children) {\n firstApiNode.children.forEach((node) => {\n // Only add if it's a tag node (selectable: false)\n if (node.selectable === false) {\n keysToExpand.push(node.key)\n }\n })\n }\n\n // Expand all keys at once to avoid state update batching issues\n setExpandedKeys([\n ...expandedKeys,\n ...keysToExpand.filter((key) => !expandedKeys.includes(key)),\n ])\n\n // Select the first API node\n return selectNodeByKey(firstApiNode.key)\n }\n\n return null\n }\n\n // Clear all selections\n const clearSelection = () => {\n setSelectedNodeKey(null)\n setSelectedApi(null)\n setSelectedEndpoint(null)\n }\n\n return {\n handleNodeSelection,\n selectNodeByKey,\n selectFirstApi,\n clearSelection,\n expandNode,\n selectPreSelectedApi,\n }\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M6 11.334L8 9.33398L10 11.334\" stroke=\"currentcolor\" />\n<path d=\"M6 4.66602L8 6.66602L10 4.66602\" stroke=\"currentcolor\" />\n</svg>\n","import React from 'react'\n\ninterface NoDataIconProps extends React.SVGProps<SVGSVGElement> {\n width?: string | number\n height?: string | number\n fill?: string\n}\n\nconst NoDataIcon: React.FC<NoDataIconProps> = ({\n width = 298,\n height = 237,\n fill = '#F1F5FD',\n stroke = '#E0E9F9',\n ...props\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 298 237\"\n fill={fill}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M174.518 85.777C156.105 85.887 137.407 85.0293 119.917 80.1689C102.427 75.3086 86.959 66.1378 72.8969 55.4275C63.6906 48.456 55.3192 42.9139 43.3664 43.7496C31.6796 44.3644 20.5009 48.7289 11.485 56.1973C-3.71966 69.5246 -1.4126 94.1561 4.65169 111.486C13.7921 137.591 41.6087 155.713 65.2286 167.523C92.5399 181.18 122.532 189.119 152.611 193.671C178.978 197.674 212.837 200.599 235.666 183.357C256.649 167.545 262.406 131.389 257.264 106.978C256.013 99.7674 252.177 93.2616 246.476 88.68C231.733 77.9037 209.761 85.0952 193.194 85.4691C187.152 85.6011 180.802 85.755 174.518 85.777Z\"\n fill={fill}\n />\n <path\n d=\"M84.7402 0.424805V9.88152\"\n stroke=\"#E0E9F9\"\n strokeWidth=\"0.85\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M80.0156 5.15332H89.4636\"\n stroke=\"#E0E9F9\"\n strokeWidth=\"0.85\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M263.988 188.921V198.378\"\n stroke=\"#E0E9F9\"\n strokeWidth=\"0.85\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M259.264 193.649H268.712\"\n stroke=\"#E0E9F9\"\n strokeWidth=\"0.85\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M13.3525 148.081C14.5417 148.081 15.5057 147.117 15.5057 145.926C15.5057 144.736 14.5417 143.771 13.3525 143.771C12.1633 143.771 11.1992 144.736 11.1992 145.926C11.1992 147.117 12.1633 148.081 13.3525 148.081Z\"\n fill=\"#E0E9F9\"\n />\n <path\n d=\"M196.686 10.1894C197.876 10.1894 198.84 9.22447 198.84 8.03416C198.84 6.84385 197.876 5.87891 196.686 5.87891C195.497 5.87891 194.533 6.84385 194.533 8.03416C194.533 9.22447 195.497 10.1894 196.686 10.1894Z\"\n fill=\"#E0E9F9\"\n />\n <path\n d=\"M137.01 236.425C181.545 236.425 217.648 234.18 217.648 231.411C217.648 228.641 181.545 226.396 137.01 226.396C92.4757 226.396 56.373 228.641 56.373 231.411C56.373 234.18 92.4757 236.425 137.01 236.425Z\"\n fill={fill}\n />\n <path\n d=\"M74.8972 26.1118H192.008C194.922 26.1118 197.716 27.2703 199.777 29.3325C201.837 31.3947 202.994 34.1916 202.994 37.108V176.562C202.994 179.478 201.837 182.275 199.777 184.337C197.716 186.399 194.922 187.558 192.008 187.558H59.8903C56.9766 187.558 54.1823 186.399 52.122 184.337C50.0617 182.275 48.9043 179.478 48.9043 176.562V52.3927L74.8972 26.1118Z\"\n fill=\"white\"\n stroke={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M202.465 94.0684H81.707V188.899H202.465V94.0684Z\" fill={fill} />\n <path\n d=\"M48.9043 52.3927H70.1952C71.4443 52.3869 72.6402 51.8861 73.5214 51C74.4026 50.1139 74.8972 48.9146 74.8972 47.6643V26.1118L48.9043 52.3927Z\"\n fill=\"white\"\n stroke={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M201.873 63.7852H82.4329C77.7852 63.7852 74.0176 67.5563 74.0176 72.2082V97.7853C74.0176 102.437 77.7852 106.208 82.4329 106.208H201.873C206.521 106.208 210.288 102.437 210.288 97.7853V72.2082C210.288 67.5563 206.521 63.7852 201.873 63.7852Z\"\n fill=\"white\"\n stroke={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M97.2195 92.397C101.273 92.397 104.558 89.1083 104.558 85.0515C104.558 80.9947 101.273 77.7061 97.2195 77.7061C93.1665 77.7061 89.8809 80.9947 89.8809 85.0515C89.8809 89.1083 93.1665 92.397 97.2195 92.397Z\"\n fill={fill}\n />\n <path\n d=\"M120.29 92.397C124.343 92.397 127.629 89.1083 127.629 85.0515C127.629 80.9947 124.343 77.7061 120.29 77.7061C116.237 77.7061 112.951 80.9947 112.951 85.0515C112.951 89.1083 116.237 92.397 120.29 92.397Z\"\n fill={fill}\n />\n <path\n d=\"M143.339 92.397C147.392 92.397 150.677 89.1083 150.677 85.0515C150.677 80.9947 147.392 77.7061 143.339 77.7061C139.286 77.7061 136 80.9947 136 85.0515C136 89.1083 139.286 92.397 143.339 92.397Z\"\n fill={fill}\n />\n <path\n d=\"M201.873 110.805H82.4329C77.7852 110.805 74.0176 114.576 74.0176 119.228V144.805C74.0176 149.457 77.7852 153.228 82.4329 153.228H201.873C206.521 153.228 210.288 149.457 210.288 144.805V119.228C210.288 114.576 206.521 110.805 201.873 110.805Z\"\n fill=\"white\"\n stroke={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M97.2195 139.438C101.273 139.438 104.558 136.15 104.558 132.093C104.558 128.036 101.273 124.748 97.2195 124.748C93.1665 124.748 89.8809 128.036 89.8809 132.093C89.8809 136.15 93.1665 139.438 97.2195 139.438Z\"\n fill={fill}\n />\n <path\n d=\"M120.29 139.438C124.343 139.438 127.629 136.15 127.629 132.093C127.629 128.036 124.343 124.748 120.29 124.748C116.237 124.748 112.951 128.036 112.951 132.093C112.951 136.15 116.237 139.438 120.29 139.438Z\"\n fill={fill}\n />\n <path\n d=\"M143.339 139.438C147.392 139.438 150.677 136.15 150.677 132.093C150.677 128.036 147.392 124.748 143.339 124.748C139.286 124.748 136 128.036 136 132.093C136 136.15 139.286 139.438 143.339 139.438Z\"\n fill={fill}\n />\n <path\n d=\"M201.873 157.846H82.4329C77.7852 157.846 74.0176 161.617 74.0176 166.269V191.846C74.0176 196.498 77.7852 200.269 82.4329 200.269H201.873C206.521 200.269 210.288 196.498 210.288 191.846V166.269C210.288 161.617 206.521 157.846 201.873 157.846Z\"\n fill=\"white\"\n stroke={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M97.2195 186.458C101.273 186.458 104.558 183.17 104.558 179.113C104.558 175.056 101.273 171.768 97.2195 171.768C93.1665 171.768 89.8809 175.056 89.8809 179.113C89.8809 183.17 93.1665 186.458 97.2195 186.458Z\"\n fill={fill}\n />\n <path\n d=\"M120.29 186.458C124.343 186.458 127.629 183.17 127.629 179.113C127.629 175.056 124.343 171.768 120.29 171.768C116.237 171.768 112.951 175.056 112.951 179.113C112.951 183.17 116.237 186.458 120.29 186.458Z\"\n fill={fill}\n />\n <path\n d=\"M143.339 186.458C147.392 186.458 150.677 183.17 150.677 179.113C150.677 175.056 147.392 171.768 143.339 171.768C139.286 171.768 136 175.056 136 179.113C136 183.17 139.286 186.458 143.339 186.458Z\"\n fill={fill}\n />\n <path\n d=\"M212.923 117.908C238.079 117.908 258.471 97.4964 258.471 72.3177C258.471 47.1389 238.079 26.7275 212.923 26.7275C187.768 26.7275 167.375 47.1389 167.375 72.3177C167.375 97.4964 187.768 117.908 212.923 117.908Z\"\n fill=\"white\"\n stroke={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M213.452 99.3023C228.05 99.3023 239.884 87.4571 239.884 72.8455C239.884 58.2338 228.05 46.3887 213.452 46.3887C198.854 46.3887 187.02 58.2338 187.02 72.8455C187.02 87.4571 198.854 99.3023 213.452 99.3023Z\"\n fill=\"white\"\n stroke={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M199.387 58.7437C199.939 59.893 227.519 86.9245 227.519 86.9245Z\" fill=\"white\" />\n <path\n d=\"M199.387 58.7437C199.939 59.893 227.519 86.9245 227.519 86.9245\"\n stroke={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M227.519 58.7437C226.945 59.893 199.387 86.9245 199.387 86.9245Z\" fill=\"white\" />\n <path\n d=\"M227.519 58.7437C226.945 59.893 199.387 86.9245 199.387 86.9245\"\n stroke={stroke}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default NoDataIcon\n","'use client'\nimport React, { useState, useMemo } from 'react'\nimport { Input, Tree, Button, Flex, Tooltip } from 'antd'\nimport { useStyle } from '@doc-lib/hooks/useStyle'\nimport { useNodeSelection } from '@doc-lib/hooks/useNodeSelection'\nimport { useStore } from '@doc-lib/store'\nimport Minify from '@doc-lib/assets/Minify.svg'\nimport {\n getAllTreeKeys,\n filterTreeData,\n getSidebarStyles,\n convertToRenderableTreeData,\n} from '../helper'\nimport Text from 'antd/es/typography/Text'\nimport { SearchOutlined } from '@ant-design/icons'\nimport { Resizable } from 're-resizable'\nimport NoDataIcon from './NoDataIcon'\n\nexport const Sidebar: React.FC<{\n searchValue: string\n setSearchValue: (text: string) => void\n}> = ({ searchValue, setSearchValue }) => {\n const expandedKeys = useStore((state) => state.view.expandedKeys)\n const { selectedNodeKey, selectedEndpoint, builtTreeData, setExpandedKeys, setSelectedNodeKey } =\n useStore(({ view }) => view)\n\n const { selectNodeByKey, clearSelection } = useNodeSelection()\n\n // Local state for expand/collapse\n\n const [autoExpandParent, setAutoExpandParent] = useState(true)\n\n const { wrapSSR, cx, token } = useStyle('Sidebar', getSidebarStyles)\n\n // Handle search with expansion logic\n const handleSearch = (value: string) => {\n if (value && builtTreeData) {\n // Get all keys that should be expanded when searching\n const allKeys = getAllTreeKeys(builtTreeData)\n setExpandedKeys(allKeys)\n setSearchValue(value)\n setAutoExpandParent(true)\n } else {\n // Clear search -> collapse all\n setSearchValue(value)\n setExpandedKeys([])\n setAutoExpandParent(false)\n }\n }\n\n // Convert tree data to renderable format\n const renderTreeData = useMemo(() => {\n if (!builtTreeData) return []\n return convertToRenderableTreeData(builtTreeData, selectedEndpoint, cx)\n }, [builtTreeData, selectedEndpoint, cx])\n\n // Memoize filtered tree data\n const filteredTreeData = useMemo(() => {\n if (!searchValue) return renderTreeData\n if (!builtTreeData) return []\n\n // Filter using original tree structure, then convert to renderable format\n const filteredOriginal = filterTreeData(builtTreeData, searchValue)\n\n return convertToRenderableTreeData(filteredOriginal, selectedEndpoint, cx)\n }, [builtTreeData, searchValue, selectedEndpoint, cx])\n\n // Handle collapse all\n const collapseAll = () => {\n setExpandedKeys([])\n }\n\n const onTreeNodeSelect = (selectedKeys: React.Key[]) => {\n const stringKeys = selectedKeys.map((key) => String(key))\n\n if (stringKeys.length === 0) {\n clearSelection()\n return\n }\n\n if (!builtTreeData) return\n\n const selectedKey = stringKeys[0]\n selectNodeByKey(selectedKey)\n setSelectedNodeKey(selectedKey)\n }\n\n return wrapSSR(\n <Resizable\n as={'aside'}\n minWidth={300}\n maxWidth={386}\n enable={{\n top: false,\n right: true,\n bottom: false,\n left: false,\n topRight: false,\n bottomRight: false,\n bottomLeft: false,\n topLeft: false,\n }}\n defaultSize={{\n width: 333,\n height: '100%',\n }}\n className={cx('sider')}\n >\n <div className={cx('content')}>\n <div className={cx('controls')}>\n <Tooltip title=\"Search by APIs or Endpoints\" placement=\"bottom\">\n <Input\n placeholder=\"Search by APIs or Endpoints\"\n value={searchValue}\n onChange={(e) => handleSearch(e.target.value)}\n allowClear\n className={cx('search-input')}\n addonAfter={<SearchOutlined />}\n />\n </Tooltip>\n <Tooltip title=\"Collapse All\" placement=\"bottom\">\n <Button onClick={collapseAll} title=\"Collapse All\" icon={<Minify />} />\n </Tooltip>\n </div>\n {filteredTreeData?.length ? (\n <Tree\n showLine={{ showLeafIcon: false }}\n showIcon={false}\n expandedKeys={expandedKeys}\n autoExpandParent={autoExpandParent}\n selectedKeys={[selectedNodeKey || '']}\n onSelect={(selectedKeys) => {\n // Don't allow to deselect a node\n if (!selectedKeys?.length) return\n onTreeNodeSelect(selectedKeys)\n setSelectedNodeKey(selectedKeys[0] as string)\n }}\n onExpand={(expandedKeysValue) => {\n setExpandedKeys(expandedKeysValue as string[])\n setAutoExpandParent(false)\n }}\n treeData={filteredTreeData}\n className={cx('tree')}\n />\n ) : (\n <Flex\n justify=\"center\"\n align=\"center\"\n gap={token.marginSM}\n vertical\n style={{ marginTop: token.paddingXL }}\n >\n <NoDataIcon\n stroke={token.colorPrimaryHover}\n fill={token.colorPrimaryBg}\n width={'10.375rem'}\n height={'8.1875rem'}\n />\n {searchValue.length ? (\n <Text\n style={{\n textAlign: 'center',\n fontFamily: token.fontFamily,\n fontWeight: 400,\n fontSize: token.fontSizeLG,\n color: 'rgba(0,0,0,0.45)',\n }}\n >\n No results found\n </Text>\n ) : (\n <Text\n style={{\n textAlign: 'center',\n fontFamily: token.fontFamily,\n fontWeight: 400,\n fontSize: token.fontSizeLG,\n color: 'rgba(0,0,0,0.45)',\n }}\n >\n No API\n <br />\n Documentation Found\n </Text>\n )}\n </Flex>\n )}\n </div>\n </Resizable>\n )\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<mask id=\"path-1-inside-1_7584_26563\" fill=\"white\">\n<path d=\"M3.33333 2.5C2.87281 2.5 2.5 2.87281 2.5 3.33333V6.66667C2.5 7.1272 2.87281 7.5 3.33333 7.5H5.33333C5.79386 7.5 6.16667 7.1272 6.16667 6.66667V3.33333C6.16667 2.87281 5.79386 2.5 5.33333 2.5H3.33333ZM1.5 3.33333C1.5 2.32053 2.32053 1.5 3.33333 1.5H5.33333C6.34614 1.5 7.16667 2.32053 7.16667 3.33333V6.66667C7.16667 7.67947 6.34614 8.5 5.33333 8.5H3.33333C2.32053 8.5 1.5 7.67947 1.5 6.66667V3.33333ZM9.83333 3.33333C9.83333 2.87281 10.2061 2.5 10.6667 2.5H12.6667C13.1272 2.5 13.5 2.87281 13.5 3.33333V4.66667C13.5 5.12719 13.1272 5.5 12.6667 5.5H10.6667C10.2061 5.5 9.83333 5.12719 9.83333 4.66667V3.33333ZM10.6667 1.5C9.65387 1.5 8.83333 2.32053 8.83333 3.33333V4.66667C8.83333 5.67947 9.65387 6.5 10.6667 6.5H12.6667C13.6795 6.5 14.5 5.67947 14.5 4.66667V3.33333C14.5 2.32053 13.6795 1.5 12.6667 1.5H10.6667ZM9.83333 9.33333C9.83333 8.8728 10.2061 8.5 10.6667 8.5H12.6667C13.1272 8.5 13.5 8.8728 13.5 9.33333V12.6667C13.5 13.1272 13.1272 13.5 12.6667 13.5H10.6667C10.2061 13.5 9.83333 13.1272 9.83333 12.6667V9.33333ZM10.6667 7.5C9.65387 7.5 8.83333 8.32053 8.83333 9.33333V12.6667C8.83333 13.6795 9.65387 14.5 10.6667 14.5H12.6667C13.6795 14.5 14.5 13.6795 14.5 12.6667V9.33333C14.5 8.32053 13.6795 7.5 12.6667 7.5H10.6667ZM2.5 11.3333C2.5 10.8728 2.87281 10.5 3.33333 10.5H5.33333C5.79386 10.5 6.16667 10.8728 6.16667 11.3333V12.6667C6.16667 13.1272 5.79386 13.5 5.33333 13.5H3.33333C2.87281 13.5 2.5 13.1272 2.5 12.6667V11.3333ZM3.33333 9.5C2.32053 9.5 1.5 10.3205 1.5 11.3333V12.6667C1.5 13.6795 2.32053 14.5 3.33333 14.5H5.33333C6.34614 14.5 7.16667 13.6795 7.16667 12.6667V11.3333C7.16667 10.3205 6.34614 9.5 5.33333 9.5H3.33333Z\"/>\n</mask>\n<path d=\"M3.33333 2.5C2.87281 2.5 2.5 2.87281 2.5 3.33333V6.66667C2.5 7.1272 2.87281 7.5 3.33333 7.5H5.33333C5.79386 7.5 6.16667 7.1272 6.16667 6.66667V3.33333C6.16667 2.87281 5.79386 2.5 5.33333 2.5H3.33333ZM1.5 3.33333C1.5 2.32053 2.32053 1.5 3.33333 1.5H5.33333C6.34614 1.5 7.16667 2.32053 7.16667 3.33333V6.66667C7.16667 7.67947 6.34614 8.5 5.33333 8.5H3.33333C2.32053 8.5 1.5 7.67947 1.5 6.66667V3.33333ZM9.83333 3.33333C9.83333 2.87281 10.2061 2.5 10.6667 2.5H12.6667C13.1272 2.5 13.5 2.87281 13.5 3.33333V4.66667C13.5 5.12719 13.1272 5.5 12.6667 5.5H10.6667C10.2061 5.5 9.83333 5.12719 9.83333 4.66667V3.33333ZM10.6667 1.5C9.65387 1.5 8.83333 2.32053 8.83333 3.33333V4.66667C8.83333 5.67947 9.65387 6.5 10.6667 6.5H12.6667C13.6795 6.5 14.5 5.67947 14.5 4.66667V3.33333C14.5 2.32053 13.6795 1.5 12.6667 1.5H10.6667ZM9.83333 9.33333C9.83333 8.8728 10.2061 8.5 10.6667 8.5H12.6667C13.1272 8.5 13.5 8.8728 13.5 9.33333V12.6667C13.5 13.1272 13.1272 13.5 12.6667 13.5H10.6667C10.2061 13.5 9.83333 13.1272 9.83333 12.6667V9.33333ZM10.6667 7.5C9.65387 7.5 8.83333 8.32053 8.83333 9.33333V12.6667C8.83333 13.6795 9.65387 14.5 10.6667 14.5H12.6667C13.6795 14.5 14.5 13.6795 14.5 12.6667V9.33333C14.5 8.32053 13.6795 7.5 12.6667 7.5H10.6667ZM2.5 11.3333C2.5 10.8728 2.87281 10.5 3.33333 10.5H5.33333C5.79386 10.5 6.16667 10.8728 6.16667 11.3333V12.6667C6.16667 13.1272 5.79386 13.5 5.33333 13.5H3.33333C2.87281 13.5 2.5 13.1272 2.5 12.6667V11.3333ZM3.33333 9.5C2.32053 9.5 1.5 10.3205 1.5 11.3333V12.6667C1.5 13.6795 2.32053 14.5 3.33333 14.5H5.33333C6.34614 14.5 7.16667 13.6795 7.16667 12.6667V11.3333C7.16667 10.3205 6.34614 9.5 5.33333 9.5H3.33333Z\" fill=\"#D9D9D9\"/>\n<path d=\"M3.33333 2.5V1.5C2.32052 1.5 1.5 2.32052 1.5 3.33333H2.5H3.5C3.5 3.42509 3.42509 3.5 3.33333 3.5V2.5ZM2.5 3.33333H1.5V6.66667H2.5H3.5V3.33333H2.5ZM2.5 6.66667H1.5C1.5 7.67949 2.32053 8.5 3.33333 8.5V7.5V6.5C3.42509 6.5 3.5 6.57491 3.5 6.66667H2.5ZM3.33333 7.5V8.5H5.33333V7.5V6.5H3.33333V7.5ZM5.33333 7.5V8.5C6.34614 8.5 7.16667 7.67949 7.16667 6.66667H6.16667H5.16667C5.16667 6.57491 5.24158 6.5 5.33333 6.5V7.5ZM6.16667 6.66667H7.16667V3.33333H6.16667H5.16667V6.66667H6.16667ZM6.16667 3.33333H7.16667C7.16667 2.32052 6.34614 1.5 5.33333 1.5V2.5V3.5C5.24158 3.5 5.16667 3.42509 5.16667 3.33333H6.16667ZM5.33333 2.5V1.5H3.33333V2.5V3.5H5.33333V2.5ZM1.5 3.33333H2.5C2.5 2.87281 2.87281 2.5 3.33333 2.5V1.5V0.5C1.76824 0.5 0.5 1.76824 0.5 3.33333H1.5ZM3.33333 1.5V2.5H5.33333V1.5V0.5H3.33333V1.5ZM5.33333 1.5V2.5C5.79386 2.5 6.16667 2.87281 6.16667 3.33333H7.16667H8.16667C8.16667 1.76824 6.89843 0.5 5.33333 0.5V1.5ZM7.16667 3.33333H6.16667V6.66667H7.16667H8.16667V3.33333H7.16667ZM7.16667 6.66667H6.16667C6.16667 7.12718 5.79385 7.5 5.33333 7.5V8.5V9.5C6.89843 9.5 8.16667 8.23175 8.16667 6.66667H7.16667ZM5.33333 8.5V7.5H3.33333V8.5V9.5H5.33333V8.5ZM3.33333 8.5V7.5C2.87281 7.5 2.5 7.12718 2.5 6.66667H1.5H0.5C0.5 8.23175 1.76824 9.5 3.33333 9.5V8.5ZM1.5 6.66667H2.5V3.33333H1.5H0.5V6.66667H1.5ZM9.83333 3.33333H10.8333C10.8333 3.42509 10.7584 3.5 10.6667 3.5V2.5V1.5C9.65384 1.5 8.83333 2.32053 8.83333 3.33333H9.83333ZM10.6667 2.5V3.5H12.6667V2.5V1.5H10.6667V2.5ZM12.6667 2.5V3.5C12.5749 3.5 12.5 3.42509 12.5 3.33333H13.5H14.5C14.5 2.32053 13.6795 1.5 12.6667 1.5V2.5ZM13.5 3.33333H12.5V4.66667H13.5H14.5V3.33333H13.5ZM13.5 4.66667H12.5C12.5 4.57491 12.5749 4.5 12.6667 4.5V5.5V6.5C13.6795 6.5 14.5 5.67947 14.5 4.66667H13.5ZM12.6667 5.5V4.5H10.6667V5.5V6.5H12.6667V5.5ZM10.6667 5.5V4.5C10.7584 4.5 10.8333 4.57491 10.8333 4.66667H9.83333H8.83333C8.83333 5.67947 9.65384 6.5 10.6667 6.5V5.5ZM9.83333 4.66667H10.8333V3.33333H9.83333H8.83333V4.66667H9.83333ZM10.6667 1.5V0.5C9.10158 0.5 7.83333 1.76824 7.83333 3.33333H8.83333H9.83333C9.83333 2.87281 10.2061 2.5 10.6667 2.5V1.5ZM8.83333 3.33333H7.83333V4.66667H8.83333H9.83333V3.33333H8.83333ZM8.83333 4.66667H7.83333C7.83333 6.23176 9.10158 7.5 10.6667 7.5V6.5V5.5C10.2061 5.5 9.83333 5.12719 9.83333 4.66667H8.83333ZM10.6667 6.5V7.5H12.6667V6.5V5.5H10.6667V6.5ZM12.6667 6.5V7.5C14.2317 7.5 15.5 6.23176 15.5 4.66667H14.5H13.5C13.5 5.12719 13.1272 5.5 12.6667 5.5V6.5ZM14.5 4.66667H15.5V3.33333H14.5H13.5V4.66667H14.5ZM14.5 3.33333H15.5C15.5 1.76824 14.2317 0.5 12.6667 0.5V1.5V2.5C13.1272 2.5 13.5 2.87281 13.5 3.33333H14.5ZM12.6667 1.5V0.5H10.6667V1.5V2.5H12.6667V1.5ZM9.83333 9.33333H10.8333C10.8333 9.42509 10.7584 9.5 10.6667 9.5V8.5V7.5C9.65385 7.5 8.83333 8.32052 8.83333 9.33333H9.83333ZM10.6667 8.5V9.5H12.6667V8.5V7.5H10.6667V8.5ZM12.6667 8.5V9.5C12.5749 9.5 12.5 9.42509 12.5 9.33333H13.5H14.5C14.5 8.32052 13.6795 7.5 12.6667 7.5V8.5ZM13.5 9.33333H12.5V12.6667H13.5H14.5V9.33333H13.5ZM13.5 12.6667H12.5C12.5 12.5749 12.5749 12.5 12.6667 12.5V13.5V14.5C13.6795 14.5 14.5 13.6795 14.5 12.6667H13.5ZM12.6667 13.5V12.5H10.6667V13.5V14.5H12.6667V13.5ZM10.6667 13.5V12.5C10.7584 12.5 10.8333 12.5749 10.8333 12.6667H9.83333H8.83333C8.83333 13.6795 9.65385 14.5 10.6667 14.5V13.5ZM9.83333 12.6667H10.8333V9.33333H9.83333H8.83333V12.6667H9.83333ZM10.6667 7.5V6.5C9.10158 6.5 7.83333 7.76825 7.83333 9.33333H8.83333H9.83333C9.83333 8.87282 10.2062 8.5 10.6667 8.5V7.5ZM8.83333 9.33333H7.83333V12.6667H8.83333H9.83333V9.33333H8.83333ZM8.83333 12.6667H7.83333C7.83333 14.2318 9.10158 15.5 10.6667 15.5V14.5V13.5C10.2062 13.5 9.83333 13.1272 9.83333 12.6667H8.83333ZM10.6667 14.5V15.5H12.6667V14.5V13.5H10.6667V14.5ZM12.6667 14.5V15.5C14.2318 15.5 15.5 14.2318 15.5 12.6667H14.5H13.5C13.5 13.1272 13.1272 13.5 12.6667 13.5V14.5ZM14.5 12.6667H15.5V9.33333H14.5H13.5V12.6667H14.5ZM14.5 9.33333H15.5C15.5 7.76825 14.2318 6.5 12.6667 6.5V7.5V8.5C13.1272 8.5 13.5 8.87282 13.5 9.33333H14.5ZM12.6667 7.5V6.5H10.6667V7.5V8.5H12.6667V7.5ZM2.5 11.3333H3.5C3.5 11.4251 3.42509 11.5 3.33333 11.5V10.5V9.5C2.32053 9.5 1.5 10.3205 1.5 11.3333H2.5ZM3.33333 10.5V11.5H5.33333V10.5V9.5H3.33333V10.5ZM5.33333 10.5V11.5C5.24158 11.5 5.16667 11.4251 5.16667 11.3333H6.16667H7.16667C7.16667 10.3205 6.34614 9.5 5.33333 9.5V10.5ZM6.16667 11.3333H5.16667V12.6667H6.16667H7.16667V11.3333H6.16667ZM6.16667 12.6667H5.16667C5.16667 12.5749 5.24158 12.5 5.33333 12.5V13.5V14.5C6.34614 14.5 7.16667 13.6795 7.16667 12.6667H6.16667ZM5.33333 13.5V12.5H3.33333V13.5V14.5H5.33333V13.5ZM3.33333 13.5V12.5C3.42509 12.5 3.5 12.5749 3.5 12.6667H2.5H1.5C1.5 13.6795 2.32053 14.5 3.33333 14.5V13.5ZM2.5 12.6667H3.5V11.3333H2.5H1.5V12.6667H2.5ZM3.33333 9.5V8.5C1.76824 8.5 0.5 9.76825 0.5 11.3333H1.5H2.5C2.5 10.8728 2.87281 10.5 3.33333 10.5V9.5ZM1.5 11.3333H0.5V12.6667H1.5H2.5V11.3333H1.5ZM1.5 12.6667H0.5C0.5 14.2317 1.76824 15.5 3.33333 15.5V14.5V13.5C2.87281 13.5 2.5 13.1272 2.5 12.6667H1.5ZM3.33333 14.5V15.5H5.33333V14.5V13.5H3.33333V14.5ZM5.33333 14.5V15.5C6.89843 15.5 8.16667 14.2317 8.16667 12.6667H7.16667H6.16667C6.16667 13.1272 5.79385 13.5 5.33333 13.5V14.5ZM7.16667 12.6667H8.16667V11.3333H7.16667H6.16667V12.6667H7.16667ZM7.16667 11.3333H8.16667C8.16667 9.76825 6.89843 8.5 5.33333 8.5V9.5V10.5C5.79385 10.5 6.16667 10.8728 6.16667 11.3333H7.16667ZM5.33333 9.5V8.5H3.33333V9.5V10.5H5.33333V9.5Z\" fill=\"#769DE4\" mask=\"url(#path-1-inside-1_7584_26563)\"/>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.2673 9H2.73398C1.73398 9 1.33398 9.42667 1.33398 10.4867V13.18C1.33398 14.24 1.73398 14.6667 2.73398 14.6667H13.2673C14.2673 14.6667 14.6673 14.24 14.6673 13.18V10.4867C14.6673 9.42667 14.2673 9 13.2673 9Z\" stroke=\"black\" stroke-opacity=\"0.25\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M13.2673 1.33398H2.73398C1.73398 1.33398 1.33398 1.76065 1.33398 2.82065V5.51398C1.33398 6.57398 1.73398 7.00065 2.73398 7.00065H13.2673C14.2673 7.00065 14.6673 6.57398 14.6673 5.51398V2.82065C14.6673 1.76065 14.2673 1.33398 13.2673 1.33398Z\" stroke=\"black\" stroke-opacity=\"0.25\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M3.875 9.25C2.085 9.25 0.625 7.79 0.625 6C0.625 4.21 2.085 2.75 3.875 2.75C4.08 2.75 4.25 2.92 4.25 3.125C4.25 3.33 4.08 3.5 3.875 3.5C2.495 3.5 1.375 4.62 1.375 6C1.375 7.38 2.495 8.5 3.875 8.5C5.255 8.5 6.375 7.38 6.375 6C6.375 5.795 6.545 5.625 6.75 5.625C6.955 5.625 7.125 5.795 7.125 6C7.125 7.79 5.665 9.25 3.875 9.25Z\" fill=\"#4D75D9\"/>\n<path d=\"M8 9.375C7.795 9.375 7.625 9.205 7.625 9C7.625 8.795 7.795 8.625 8 8.625C9.445 8.625 10.625 7.445 10.625 6C10.625 4.555 9.445 3.375 8 3.375C6.555 3.375 5.375 4.555 5.375 6C5.375 6.205 5.205 6.375 5 6.375C4.795 6.375 4.625 6.205 4.625 6C4.625 4.14 6.14 2.625 8 2.625C9.86 2.625 11.375 4.14 11.375 6C11.375 7.86 9.86 9.375 8 9.375Z\" fill=\"#4D75D9\"/>\n</svg>\n","import { useStyle } from '@doc-lib/hooks/useStyle'\nimport { EndpointData } from '@doc-lib/view/entities'\nimport { methodColors } from '@doc-lib/view/helper'\nimport { Button, Card, Divider, Flex, Tooltip } from 'antd'\nimport Title from 'antd/es/typography/Title'\nimport Text from 'antd/es/typography/Text'\nimport LinkIcon from '@doc-lib/assets/link.svg'\nimport { useNodeSelection } from '@doc-lib/hooks/useNodeSelection'\n\ninterface IAPICard {\n viewStyle: 'grid' | 'list'\n api: EndpointData\n}\n\nconst ApiCard = ({ api, viewStyle }: IAPICard) => {\n const { wrapSSR, cx, token } = useStyle('DocumentationApiCard', (token, scope) => ({\n [scope('method-chip')]: {\n minWidth: '5.375rem',\n width: 'fit-content',\n paddingLeft: token.marginXS,\n paddingRight: token.marginXS,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: token.borderRadius,\n },\n [scope('list-container')]: { paddingTop: token.marginXS, paddingBottom: token.marginXS },\n [scope('chip-title')]: {\n alignSelf: 'center',\n textAlign: 'center',\n padding: 0,\n margin: 0,\n lineHeight: '1.375rem',\n fontSize: token.fontSize,\n },\n [scope('list-see-details')]: {\n width: '6.5625rem',\n height: '2rem',\n borderRadius: token.borderRadius,\n border: `${token.lineWidth}px solid ${token.Button?.defaultBorderColor}`,\n paddingRight: token.Button?.paddingInline,\n paddingLeft: token.Button?.paddingInline,\n background: token.Button?.defaultBg,\n '&:hover': {\n background: token.Button?.defaultBg,\n },\n },\n [scope('list-content')]: {\n display: 'flex',\n paddingTop: token.paddingXXS,\n paddingBottom: token.paddingXXS,\n paddingRight: token.paddingXS,\n paddingLeft: token.paddingXS,\n alignItems: 'center',\n gap: token.marginXS,\n alignSelf: 'stretch',\n flexDirection: 'row',\n borderRadius: token.borderRadiusSM,\n border: `1px solid ${token.colorBorderSecondary}`,\n minWidth: '6.25rem',\n maxWidth: 'fit-content',\n },\n [scope('list-title')]: {\n color: token.colorTextHeading,\n fontSize: token.fontSizeHeading3,\n fontWeight: token.fontWeightStrong,\n lineHeight: token.lineHeightHeading3,\n paddingBottom: 0,\n marginBottom: 0,\n fontFamily: 'SF Pro',\n cursor: 'pointer',\n transition: 'color 0.2s ease-in',\n\n '&:hover': {\n color: `${token.colorPrimary} !important`,\n textDecoration: 'underline',\n },\n },\n [scope('path-name')]: {\n color: token.colorText,\n fontSize: token.fontSizeSM,\n fontWeight: 400,\n fontFamily: token.fontFamily,\n },\n [scope('grid-card')]: {\n width: '17.5rem',\n height: '100%',\n borderRadius: token.borderRadiusLG,\n },\n [scope('grid-title')]: {\n color: token.colorTextHeading,\n fontSize: token.fontSizeHeading3,\n fontWeight: token.fontWeightStrong,\n lineHeight: token.lineHeightHeading3,\n paddingBottom: 0,\n marginBottom: 0,\n fontFamily: token.fontFamily,\n },\n [scope('grid-content')]: {\n display: 'flex',\n paddingTop: token.paddingXXS,\n paddingBottom: token.paddingXXS,\n paddingRight: token.paddingXS,\n paddingLeft: token.paddingXS,\n alignItems: 'center',\n gap: token.marginXS,\n alignSelf: 'stretch',\n flexDirection: 'row',\n borderRadius: token.borderRadiusSM,\n border: `1px solid ${token.colorBorderSecondary}`,\n },\n [scope('grid-path-name')]: {\n color: token.colorText,\n fontSize: token.fontSizeSM,\n fontWeight: 400,\n fontFamily: token.fontFamily,\n },\n [scope('grid-see-details')]: {\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: '0.4375rem',\n paddingRight: '0.4375rem',\n borderRadius: token.borderRadiusSM,\n border: `1px solid ${token.Button?.defaultBorderColor}`,\n background: token.Button?.defaultBg,\n boxShadow: `0 2px 0 0 rgba(0, 0, 0, 0.02)`,\n width: '100%',\n height: '1.5rem',\n },\n }))\n\n const { selectNodeByKey } = useNodeSelection()\n\n const handleOpenEndPointView = () => {\n selectNodeByKey(api.id)\n }\n\n const TooltippedText = ({ text }: { text: string }) => {\n const limitation = viewStyle == 'grid' ? 15 : 36\n if (text.length < limitation) {\n return text\n }\n\n return (\n <Tooltip title={text} placement=\"bottomLeft\">\n {text.substring(0, limitation)}...\n </Tooltip>\n )\n }\n\n const MethodChip = ({ method }: { method: string }) => {\n const methodStyle = methodColors[method as keyof typeof methodColors]\n return (\n <div\n className={cx('method-chip')}\n style={{\n backgroundColor: methodStyle?.bg,\n color: methodStyle?.color,\n border: 'none',\n }}\n >\n <Title style={{ color: methodStyle?.color }} className={cx('chip-title')} level={5}>\n {method}\n </Title>\n </div>\n )\n }\n\n if (viewStyle == 'list') {\n return wrapSSR(\n <Flex vertical>\n <Flex justify=\"space-between\" align=\"center\" className={cx('list-container')}>\n <Flex gap={token.marginSM}>\n <MethodChip method={api.method} />\n <Title className={cx('list-title')} level={4} onClick={handleOpenEndPointView}>\n <TooltippedText text={api?.summary || 'Endpoint Name'} />\n </Title>\n </Flex>\n <Button className={cx('list-see-details')} onClick={handleOpenEndPointView}>\n See Details\n </Button>\n </Flex>\n <div className={cx('list-content')}>\n <LinkIcon />\n <Text className={cx('path-name')}>{api?.path}</Text>\n </div>\n <Divider style={{ marginTop: '0.75rem', marginBottom: '0.25rem' }} />\n </Flex>\n )\n }\n\n return wrapSSR(\n <Card className={cx('grid-card')}>\n <Flex vertical gap={token.marginSM}>\n <MethodChip method={api?.method} />\n <Title className={cx('grid-title')} level={4}>\n <TooltippedText text={api?.summary || 'Endpoint Name'} />\n </Title>\n <div className={cx('grid-content')}>\n <LinkIcon />\n <Text className={cx('grid-path-name')}>{api?.path}</Text>\n </div>\n <Button className={cx('grid-see-details')} onClick={handleOpenEndPointView}>\n See Details\n </Button>\n </Flex>\n </Card>\n )\n}\n\nexport default ApiCard\n","export const handleStatusColor = (code: number): string => {\n if (code >= 200 && code < 300) {\n return 'green' // 2xx codes\n } else if (code >= 400 && code < 500) {\n return 'red' // 4xx codes\n } else if (code >= 500 && code < 600) {\n return 'red' // 5xx codes\n } else if (code >= 100 && code < 200) {\n return 'blue' // 1xx codes (Informational)\n } else if (code >= 300 && code < 400) {\n return 'orange' // 3xx codes (Redirection)\n } else {\n return 'gray' // Default or invalid status codes\n }\n}\n\nexport const copyToClipboard = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text)\n return;\n } catch (err) {\n return err\n }\n}\n","<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.99992 11.3754C5.87992 11.3754 5.75993 11.3604 5.64493 11.3254C3.04993 10.6104 1.16992 8.18539 1.16992 5.55539V3.36038C1.16992 2.80038 1.57492 2.19541 2.09492 1.98041L4.87993 0.840391C5.60493 0.545391 6.39992 0.545391 7.11992 0.840391L9.90492 1.98041C10.4249 2.19541 10.8299 2.80038 10.8299 3.36038V5.55539C10.8299 8.18039 8.94492 10.6054 6.35492 11.3254C6.23992 11.3604 6.11992 11.3754 5.99992 11.3754ZM5.99992 1.37539C5.71492 1.37539 5.43492 1.4304 5.16492 1.5404L2.37993 2.68039C2.13993 2.78039 1.91992 3.10538 1.91992 3.36538V5.56039C1.91992 7.85539 3.56992 9.9754 5.84492 10.6054C5.94492 10.6354 6.05492 10.6354 6.15492 10.6054C8.42992 9.9754 10.0799 7.85539 10.0799 5.56039V3.36538C10.0799 3.10538 9.85992 2.78039 9.61992 2.68039L6.83493 1.5404C6.56493 1.4304 6.28492 1.37539 5.99992 1.37539Z\" fill=\"currentcolor\"/>\n<path d=\"M6 6.625C5.24 6.625 4.625 6.01 4.625 5.25C4.625 4.49 5.24 3.875 6 3.875C6.76 3.875 7.375 4.49 7.375 5.25C7.375 6.01 6.76 6.625 6 6.625ZM6 4.625C5.655 4.625 5.375 4.905 5.375 5.25C5.375 5.595 5.655 5.875 6 5.875C6.345 5.875 6.625 5.595 6.625 5.25C6.625 4.905 6.345 4.625 6 4.625Z\" fill=\"currentcolor\" />\n<path d=\"M6 8.125C5.795 8.125 5.625 7.955 5.625 7.75V6.25C5.625 6.045 5.795 5.875 6 5.875C6.205 5.875 6.375 6.045 6.375 6.25V7.75C6.375 7.955 6.205 8.125 6 8.125Z\" fill=\"currentcolor\" />\n</svg>\n","'use client'\nimport { useStyle } from '../../../hooks/useStyle'\nimport { Button, Divider, Flex, Radio, RadioChangeEvent, Select, Tag, Tooltip } from 'antd'\nimport Title from 'antd/es/typography/Title'\nimport Text from 'antd/es/typography/Text'\nimport { InfoCircleOutlined } from '@ant-design/icons'\nimport GridIcon from '@doc-lib/assets/grid.svg'\nimport ListIcon from '@doc-lib/assets/list.svg'\nimport CopyIcon from '@doc-lib/assets/copy.svg'\nimport useStore from '@doc-lib/store'\nimport { OverviewData } from '@doc-lib/view/entities'\nimport ApiCard from './components/ApiCard'\nimport { useEffect, useMemo, useState } from 'react'\nimport { copyToClipboard } from '@doc-lib/utils'\nimport SecuritySafe from '@doc-lib/assets/securitySafe.svg'\n\nexport const APIPage = () => {\n const [selectedUrl, setSelectedUrl] = useState<string>('')\n const [copying, setCopying] = useState(false)\n const {\n view: {\n selectedApi,\n transformedData,\n setSelectedApi,\n setFocusedContent,\n setSelectedNodeKey,\n focusedTag,\n setFocusedTag,\n },\n } = useStore()\n const [viewStyle, setViewStyle] = useState<'grid' | 'list'>('grid')\n const { wrapSSR, cx, token } = useStyle('DocumentationApiPage', () => ({}))\n\n const currentVersion = selectedApi?.relatedVersions?.find(\n (v) => v.apiId === selectedApi?.currentVersion\n )\n const urlsOptions = useMemo(\n () =>\n selectedApi?.servers?.map((server) => ({\n label: server?.url,\n value: server?.url,\n })),\n [selectedApi?.servers]\n )\n\n useEffect(() => {\n if (focusedTag && document.getElementById(focusedTag)) {\n const element = document.getElementById(focusedTag)\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' }) // or \"auto\"\n }\n setFocusedTag(null)\n }\n }, [focusedTag, setFocusedTag, selectedApi])\n\n useEffect(() => {\n if (!!urlsOptions?.length) {\n setSelectedUrl(urlsOptions[0]?.value)\n }\n }, [selectedApi, urlsOptions])\n\n const handleVersionChanged = (value: string) => {\n const apiByVersion = transformedData?.find((item) => item.currentVersion === value)\n if (apiByVersion) {\n setSelectedApi(apiByVersion)\n setFocusedContent('API')\n setSelectedNodeKey(apiByVersion.id)\n }\n }\n\n useEffect(() => {\n if (selectedApi?.servers && !selectedUrl) {\n setSelectedUrl(selectedApi?.servers?.[0].url)\n }\n }, [selectedApi?.servers])\n\n const handleCopyUrl = async () => {\n setCopying(true)\n await copyToClipboard(selectedUrl)\n setTimeout(() => {\n setCopying(false)\n }, 700)\n }\n\n // 🔹 Map endpoints with curl commands by selectedUrl\n const getEndpointsForSelectedUrl = () => {\n if (!selectedApi) return {}\n\n const tags = selectedApi.tags || {}\n const curl = selectedApi.curl || []\n\n const filtered: typeof tags = {}\n\n Object.keys(tags).forEach((tagKey) => {\n filtered[tagKey] = tags[tagKey].map((endpoint) => {\n const curlMatch = curl.find(\n (c: any) =>\n c.serverUrl === selectedUrl && c.method === endpoint.method && c.path === endpoint.path\n )\n return {\n ...endpoint,\n curlCommand: curlMatch?.curlCommand || null,\n }\n })\n })\n\n return filtered\n }\n\n const APIsRenderer = ({\n apis,\n withTitle,\n tagName,\n haveUnderLine,\n contextPath,\n }: {\n apis: OverviewData['tags']['default']\n withTitle?: boolean\n tagName?: string\n haveUnderLine?: boolean\n contextPath?: string\n }) => {\n return (\n <Flex\n key={`${tagName}_renderer_${contextPath}`}\n gap={viewStyle == 'grid' ? token.marginXS : 0}\n style={{ marginBottom: 0, paddingBottom: 0 }}\n vertical\n >\n {withTitle && (\n <Title id={tagName} style={{ marginBottom: 0 }} level={4}>\n {tagName}\n </Title>\n )}\n <Flex wrap={'wrap'} gap={viewStyle == 'grid' ? '1.5rem' : 0} vertical={viewStyle == 'list'}>\n {apis.map((item) => (\n <ApiCard\n key={`${tagName}_renderer_${item.method}_${contextPath}`}\n api={item}\n viewStyle={viewStyle}\n />\n ))}\n </Flex>\n {haveUnderLine && (\n <Divider style={{ marginTop: token.marginSM, marginBottom: token.marginSM }} />\n )}\n </Flex>\n )\n }\n\n function formatAuthType(authType?: string): string {\n if (!authType) return 'N/A'\n\n switch (authType) {\n case 'OAUTH':\n return 'OAuth2'\n case 'API_KEY':\n return 'API Key'\n default:\n return authType\n .replaceAll('_', ' ')\n .toLowerCase()\n .replace(/\\b\\w/g, (char) => char.toUpperCase())\n }\n }\n\n return wrapSSR(\n <Flex vertical gap={token.margin}>\n <Title className={cx('container')} level={4}>\n {selectedApi?.title}\n </Title>\n <Flex>\n {selectedApi?.authType && (\n <Tooltip title=\"Authentication Type\" placement=\"bottomLeft\">\n <Tag\n style={{\n minWidth: '3.9375rem',\n width: 'max-content',\n height: '2rem',\n borderRadius: token.borderRadiusSM,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: '0.25rem',\n }}\n icon={<SecuritySafe />}\n >\n {formatAuthType(selectedApi?.authType)}\n </Tag>\n </Tooltip>\n )}\n {selectedApi?.authType && <Divider style={{ height: '2rem' }} type=\"vertical\" />}\n <Select\n size=\"middle\"\n prefix={\n <Tooltip title={'API Version'} placement=\"bottom\">\n <InfoCircleOutlined width={'1rem'} height={'1rem'} />\n </Tooltip>\n }\n value={currentVersion?.apiId}\n onChange={handleVersionChanged}\n style={{\n minWidth: '6.1875rem',\n width: 'max-content',\n display: 'flex',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n paddingLeft: '0.5rem',\n paddingRight: '0.5rem',\n }}\n placeholder=\"Version\"\n options={selectedApi?.relatedVersions?.map((item) => ({\n label: item.version,\n value: item.apiId,\n }))}\n showSearch={false}\n />\n {/* <Divider style={{ height: '2rem' }} type=\"vertical\" /> */}\n {/* <Select\n size=\"middle\"\n prefix={\n <Tooltip title={'URL'} placement=\"bottom\">\n <InfoCircleOutlined width={'1rem'} height={'1rem'} />\n </Tooltip>\n }\n value={selectedUrl}\n onChange={setSelectedUrl}\n style={{\n width: '24.75rem',\n display: 'flex',\n justifyContent: 'center',\n alignContent: 'center',\n alignItems: 'center',\n paddingLeft: '0.5rem',\n }}\n placeholder=\"API URLs\"\n options={urlsOptions}\n showSearch={false}\n /> */}\n {/* <Button\n color={copying ? 'green' : 'default'}\n variant={copying ? 'filled' : 'outlined'}\n icon={<CopyIcon />}\n iconPosition=\"end\"\n style={{ marginLeft: '0.69rem' }}\n onClick={handleCopyUrl}\n >\n {!copying ? 'Copy' : 'Copied'}\n </Button> */}\n\n <Radio.Group\n style={{ marginLeft: 'auto', display: 'flex' }}\n optionType=\"button\"\n buttonStyle=\"outline\"\n defaultValue={viewStyle}\n onChange={(e: RadioChangeEvent) => {\n setViewStyle(e.target.value)\n }}\n >\n <Radio.Button value=\"grid\" style={{ display: 'flex', alignItems: 'center' }}>\n <GridIcon />\n </Radio.Button>\n <Radio.Button value=\"list\" style={{ display: 'flex', alignItems: 'center' }}>\n <ListIcon />\n </Radio.Button>\n </Radio.Group>\n </Flex>\n <Text\n style={{\n fontFamily: token.fontFamily,\n fontWeight: 400,\n fontSize: token.fontSizeLG,\n color: `rgba(0,0,0, 0.45)`,\n }}\n >\n {selectedApi?.description || '--'}\n </Text>\n\n {Object.entries(getEndpointsForSelectedUrl())\n .sort(([a], [b]) => {\n if (a.toLowerCase() === 'default') return 1\n if (b.toLowerCase() === 'default') return -1\n return 0\n })\n .map(([key, endpoints], index, arr) => {\n if (key.toLowerCase() === 'default' && arr.length <= 1) {\n return (\n <APIsRenderer\n key={`${selectedApi}_${selectedApi?.contextPath}`}\n apis={endpoints}\n tagName={key}\n withTitle={false}\n contextPath={selectedApi?.contextPath}\n />\n )\n }\n return (\n <APIsRenderer\n key={`${selectedApi}_${selectedApi?.contextPath}`}\n apis={endpoints}\n tagName={key}\n withTitle={true}\n haveUnderLine={index < arr.length - 1}\n contextPath={selectedApi?.contextPath}\n />\n )\n })}\n </Flex>\n )\n}\n","'use client'\nimport React, { useState } from 'react'\nimport { Typography, Table, Tag, Card, Select, Breadcrumb, Button, Tabs, Tooltip } from 'antd'\nimport { useStyle } from '../../../hooks/useStyle'\nimport { LeftOutlined } from '@ant-design/icons'\nimport useStore from '@doc-lib/store'\nimport { methodColors } from '@doc-lib/view/helper'\nimport CopyOutlined from '@doc-lib/assets/copy.svg'\nimport { copyToClipboard, handleStatusColor } from '@doc-lib/utils'\n\nconst { Title, Paragraph } = Typography\n\n// Table column definitions\nconst requestColumns = [\n { title: 'Parameter', dataIndex: 'param', key: 'param' },\n { title: 'Description', dataIndex: 'desc', key: 'desc' },\n { title: 'Enum', dataIndex: 'enum', key: 'enum' },\n]\n\nconst responseColumns = [...requestColumns]\n\n// Helper to build table rows from OpenAPI params\nconst buildRequestData = (params: any[]) =>\n [...params]\n .sort((a, b) => (a.required === b.required ? 0 : a.required ? -1 : 1))\n .map((p, index) => {\n let typeLabel = p.schema?.type\n if (p.schema?.type === 'array' && p.schema?.items?.type) {\n typeLabel = `${p.schema.type}_${p.schema.items.type}`\n }\n\n return {\n key: index,\n param: (\n <span>\n {p.name}\n {typeLabel && (\n <span\n style={{\n color: 'rgba(0,0,0,0.45)',\n marginLeft: '0.25rem',\n marginRight: '0.25rem',\n }}\n >\n {typeLabel}\n </span>\n )}\n {p.required ? (\n <span style={{ color: 'red' }}>*</span>\n ) : (\n <span style={{ color: '#52C41A' }}>Optional</span>\n )}\n </span>\n ),\n desc: p.description || '--',\n enum: p.schema?.enum ? p.schema.enum.map((e: string) => <Tag key={e}>{e}</Tag>) : '--',\n }\n })\n\n// Build response rows from headers\nconst buildHeaderData = (headers: any) => {\n if (!headers) return []\n return Object.entries(headers)\n .sort(([, a]: any, [, b]: any) => (a.required === b.required ? 0 : a.required ? -1 : 1))\n .map(([name, header]: any, idx) => {\n let typeLabel = header.schema?.type\n if (header.schema?.type === 'array' && header.schema?.items?.type) {\n typeLabel = `${header.schema.type}_${header.schema.items.type}`\n }\n\n return {\n key: idx,\n param: (\n <span key={idx}>\n {name}\n {typeLabel && (\n <span\n style={{\n color: 'rgba(0,0,0,0.45)',\n marginLeft: '0.25rem',\n marginRight: '0.25rem',\n }}\n >\n {typeLabel}\n </span>\n )}\n {header.required ? (\n <span style={{ color: 'red' }}>*</span>\n ) : (\n <span style={{ color: '#52C41A' }}>Optional</span>\n )}\n </span>\n ),\n desc: header.description || '--',\n enum: header.schema?.enum\n ? header.schema.enum.map((e: string) => <Tag key={e}>{e}</Tag>)\n : '--',\n }\n })\n}\n\nexport const EndpointPage: React.FC = () => {\n const {\n selectedEndpoint,\n selectedApi,\n selectedStatusCode,\n setSelectedNodeKey,\n setFocusedContent,\n setFocusedTag,\n } = useStore(({ view }) => view)\n const [endpointTooltip, setEndpointTooltip] = useState('Copy endpoint')\n const [selectedServer, setSelectedServer] = useState(0)\n\n const { cx } = useStyle('EndpointPage', (token, scope) => ({\n [scope('docs-endpoint-container')]: {\n display: 'flex',\n flexDirection: 'column',\n gap: token.marginLG,\n height: '100%',\n },\n [scope('content')]: {\n width: '100%',\n height: '100%',\n },\n [scope('code')]: {\n background: 'unset',\n borderRadius: token.borderRadius,\n padding: token.paddingSM,\n fontFamily: 'monospace',\n whiteSpace: 'pre-wrap',\n },\n [scope('breadcrumb')]: {\n display: 'flex',\n gap: token.marginLG,\n alignItems: 'center',\n marginBottom: token.marginLG,\n },\n [scope('request-card')]: {\n '.ant-card-head': {\n minHeight: 'unset',\n borderBottom: 'unset',\n padding: '0.75rem',\n },\n '.ant-card-body': {\n padding: '0px 0.75rem 0.75rem 0.75rem',\n '.ant-tabs-tab': {\n paddingTop: '0',\n },\n },\n },\n }))\n\n const methodStyle = methodColors[selectedEndpoint?.method as keyof typeof methodColors]\n const headerParams = buildRequestData(\n selectedEndpoint?.parameters?.filter((p) => p.in === 'header') || []\n )\n const pathParams = buildRequestData(\n selectedEndpoint?.parameters?.filter((p) => p.in === 'path') || []\n )\n const queryParams = buildRequestData(\n selectedEndpoint?.parameters?.filter((p) => p.in === 'query') || []\n )\n type RequestTab = { key: string; label: string; children: any }\n\n const requestTabs: RequestTab[] = [\n {\n key: 'header',\n label: 'Header',\n children: (\n <Table\n columns={requestColumns}\n dataSource={headerParams}\n pagination={false}\n bordered\n size=\"small\"\n />\n ),\n },\n {\n key: 'path',\n label: 'Path',\n children: (\n <Table\n columns={requestColumns}\n dataSource={pathParams}\n pagination={false}\n bordered\n size=\"small\"\n />\n ),\n },\n {\n key: 'query',\n label: 'Query',\n children: (\n <Table\n columns={requestColumns}\n dataSource={queryParams}\n pagination={false}\n bordered\n size=\"small\"\n />\n ),\n },\n ].filter((t): t is RequestTab => t !== null)\n\n const responseObj = selectedEndpoint?.responses?.[selectedStatusCode || 200]\n const responseHeaders = responseObj?.headers\n\n const responseHeaderData = buildHeaderData(responseHeaders)\n\n const serverOptions =\n selectedApi?.servers?.map((server: any, index: number) => ({\n value: index,\n label: `${server.url}${selectedEndpoint?.path || ''}`,\n })) || []\n\n const getFullEndpointUrl = () => {\n if (!selectedApi?.servers || !selectedApi.servers[selectedServer]) return ''\n\n const server = selectedApi.servers[selectedServer]\n return `${server.url}${selectedEndpoint?.path || ''}`\n }\n\n return (\n <div className={cx('docs-endpoint-container')}>\n {/* Main Content */}\n <div className={cx('content')}>\n {/* Header */}\n <div className={cx('breadcrumb')}>\n <Button\n color=\"default\"\n variant=\"outlined\"\n icon={<LeftOutlined />}\n onClick={(e) => {\n e.preventDefault()\n setSelectedNodeKey(selectedApi?.id as string)\n setFocusedContent('API')\n }}\n ></Button>\n\n <Breadcrumb\n items={[\n {\n href: '',\n title: <span>{selectedApi?.title || 'API Name'}</span>,\n onClick: (e) => {\n e.preventDefault()\n setSelectedNodeKey(selectedApi?.id as string)\n setFocusedContent('API')\n },\n },\n {\n href: ``,\n onClick: (e) => {\n e.preventDefault()\n setSelectedNodeKey(selectedApi?.id as string)\n setFocusedContent('API')\n setFocusedTag(selectedEndpoint?.tagName || 'default')\n },\n title: (\n <p\n style={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n color: 'rgba(0,0,0,0.45)',\n gap: '0.25rem',\n }}\n >\n <span>{selectedEndpoint?.tagName || 'default'}</span>\n </p>\n ),\n },\n {\n title: (\n <span style={{ display: 'flex', gap: '1rem' }}>\n {selectedEndpoint?.summary || 'Endpoint Name'}\n </span>\n ),\n },\n ]}\n />\n </div>\n <Title level={3}>\n <Tag\n style={{\n backgroundColor: methodStyle?.bg,\n color: methodStyle?.color,\n border: 'none',\n width: '4.375rem',\n height: '1.375rem',\n textAlign: 'center'\n }}\n >\n {selectedEndpoint?.method}\n </Tag>{' '}\n {selectedEndpoint?.summary?.replace(selectedEndpoint?.method, '') ?? '--'}\n </Title>\n {/* <Paragraph>\n <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\n <Select\n value={selectedServer}\n style={{ width: '100%' }}\n onChange={(value) => setSelectedServer(value)}\n prefix={\n <Tag\n style={{\n backgroundColor: methodStyle?.bg,\n color: methodStyle?.color,\n border: 'none',\n }}\n >\n {selectedEndpoint?.method}\n </Tag>\n }\n options={serverOptions}\n disabled={serverOptions.length === 0}\n suffixIcon={serverOptions.length > 1 ? undefined : false}\n />\n <Tooltip title={endpointTooltip}>\n <Button\n color=\"default\"\n variant=\"outlined\"\n onClick={() => {\n const fullUrl = getFullEndpointUrl()\n if (fullUrl) {\n copyToClipboard(fullUrl)\n setEndpointTooltip('Copied!')\n setTimeout(() => setEndpointTooltip('Copy endpoint'), 1500)\n }\n }}\n icon={<CopyOutlined />}\n />\n </Tooltip>\n </div>\n </Paragraph> */}\n <Paragraph style={{ color: 'rgba(0,0,0,0.45)', marginBottom: '1.5rem' }}>\n {selectedEndpoint?.description ?? '--'}\n </Paragraph>\n\n {/* Request Section */}\n {requestTabs.length > 0 && (\n <Card title=\"Request\" className={cx('request-card')} style={{ marginBottom: '1.5rem' }}>\n <Tabs defaultActiveKey={requestTabs[0].key} items={requestTabs} />\n </Card>\n )}\n\n {/* Response Section */}\n\n <Card\n title=\"Response\"\n className={cx('request-card')}\n extra={\n responseHeaderData.length > 0 && (\n <Tag>\n <span\n style={{\n background: handleStatusColor(selectedStatusCode as number),\n borderRadius: '50%',\n display: 'inline-block',\n width: '0.5rem',\n height: '0.5rem',\n marginRight: '0.5rem',\n }}\n ></span>\n <span>{selectedStatusCode}</span>\n </Tag>\n )\n }\n >\n <Table\n columns={responseColumns}\n dataSource={responseHeaderData}\n pagination={false}\n bordered\n size=\"small\"\n />\n </Card>\n </div>\n </div>\n )\n}\n","<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M16.5 9V6.75C16.5 3 15 1.5 11.25 1.5H6.75C3 1.5 1.5 3 1.5 6.75V11.25C1.5 15 3 16.5 6.75 16.5H9\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M15.7202 13.3808L14.4978 13.7934C14.1603 13.9059 13.8902 14.1684 13.7777 14.5134L13.3652 15.7359C13.0127 16.7934 11.5277 16.7709 11.1977 15.7134L9.81025 11.2508C9.54025 10.3658 10.3577 9.54085 11.2352 9.81835L15.7053 11.2059C16.7553 11.5359 16.7702 13.0283 15.7202 13.3808Z\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","'use client'\nimport React from 'react'\nimport { useStyle } from '../../hooks/useStyle'\nimport { APIPage } from './ApiPage'\nimport { EndpointPage } from './EndpointPage/EndpointPage'\nimport useStore from '@doc-lib/store'\nimport { Button, Flex } from 'antd'\nimport NoDataIcon from './NoDataIcon'\nimport Title from 'antd/es/typography/Title'\nimport Text from 'antd/es/typography/Text'\nimport MouseSquareIcon from '@doc-lib/assets/mouseSquare.svg'\n\nexport const MainContent: React.FC<{\n searchEnabled: boolean\n handleResetSearch: () => void\n handleVisitLandingPage?: () => void\n}> = ({ searchEnabled, handleResetSearch, handleVisitLandingPage }) => {\n const { focusedContent, transformedData } = useStore(({ view }) => view)\n const { wrapSSR, cx, token } = useStyle('MainContent', (token, scope) => ({\n [scope('inner-doc-container')]: {\n backgroundColor: token.colorBgContainer,\n height: '100%',\n width: '100%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRadius: token.borderRadius,\n padding: token.paddingXL,\n },\n [scope('centered')]: {\n display: 'flex',\n justifyContent: 'center',\n },\n [scope('no-space')]: {\n margin: 0,\n padding: 0,\n },\n [scope('title')]: {\n fontFamily: token.fontFamily,\n fontWeight: 600,\n fontSize: token.fontSizeHeading4,\n color: 'rgba(0, 0, 0, 0.88)',\n },\n [scope('text')]: {\n color: 'rgba(0, 0, 0, 0.88)',\n fontFamily: token.fontFamily,\n },\n [scope('visit-landing-button')]: {\n width: '12.25rem',\n height: '2.5rem',\n borderRadius: token.borderRadiusLG,\n },\n [scope('reset-button')]: {\n width: '8.125rem',\n height: '2.5rem',\n borderRadius: token.borderRadiusLG,\n backgroundColor: token?.Button?.primaryColor,\n fontSize: token.Button?.contentFontSizeLG,\n },\n }))\n\n return wrapSSR(\n <div className={cx('inner-doc-container', !transformedData?.length ? 'centered' : '')}>\n {!transformedData?.length ? (\n <Flex justify=\"center\" align=\"center\" gap={'1.5rem'} vertical flex={1}>\n <NoDataIcon\n stroke={token.colorPrimaryHover}\n fill={token.colorPrimaryBg}\n width={'18.625rem'}\n height={'14.75rem'}\n />\n <Flex justify=\"center\" align=\"center\" gap={'0.5rem'} vertical>\n <Title className={cx('no-space', 'title')} level={4}>\n {!searchEnabled ? 'No API Documentation Found' : 'No results found'}\n </Title>\n <Text className={cx('no-space', 'text')}>\n {!searchEnabled\n ? 'No API Documentation has been added yet. Contact admin for support.'\n : 'Adjust your Search and try again'}\n </Text>\n </Flex>\n {!searchEnabled ? (\n <Button\n type=\"primary\"\n onClick={handleVisitLandingPage}\n icon={<MouseSquareIcon />}\n iconPosition=\"start\"\n className={cx('visit-landing-button')}\n >\n Visit Landing Page\n </Button>\n ) : (\n <Button type=\"default\" className={cx('reset-button')} onClick={handleResetSearch}>\n Reset Search\n </Button>\n )}\n </Flex>\n ) : focusedContent === 'ENDPOINT' ? (\n <EndpointPage />\n ) : (\n <APIPage />\n )}\n </div>\n )\n}\n","import { HTTPMethod, OpenAPIFile } from '@doc-lib/types/OpenApi'\nimport { OverviewData, EndpointData } from '../entities'\nimport { nanoid } from 'nanoid'\n\nexport const transformOpenApiToDocs = (api: OpenAPIFile): OverviewData => {\n const groupedPathsByTags: Record<string, EndpointData[]> = {}\n const validTags = new Set(api?.tags?.map(({ name }) => name) || [])\n const contextPath = Object.keys(api.paths)[0]\n const relatedVersions =\n 'x-related-versions' in api\n ? Object.entries(api['x-related-versions']).map(([apiId, version]) => ({ apiId, version }))\n : []\n relatedVersions.unshift({ apiId: api['x-current-version'], version: `${api.info.version}` })\n const currentVersion: string =\n 'x-current-version' in api ? (api['x-current-version'] as string) : ''\n const authScheme = api.components?.securitySchemes\n let authType: string\n if (authScheme && Object.keys(authScheme)?.[0]) {\n authType = Object.keys(authScheme)[0]\n if (authType && authType.toLowerCase() === 'public') {\n authType = 'KEYLESS'\n }\n if (authType && (authType.toLowerCase() === 'oauth' || authType.toLowerCase() === 'oauth2')) {\n authType = 'OAUTH2'\n }\n authType = authType.toUpperCase()\n } else {\n authType = 'x-auth-type' in api ? (api['x-auth-type'] as string) : ''\n }\n const curl: string = 'x-curls' in api ? (api['x-curls'] as any) : ''\n\n for (const [path, methods] of Object.entries(api.paths)) {\n for (const [method, methodData] of Object.entries(methods)) {\n const entry = { ...methodData, method: method?.toUpperCase() as HTTPMethod, path }\n const resourceTags = methodData.tags ?? []\n\n const matchedTags = resourceTags.filter((tag) => validTags.has(tag))\n\n if (matchedTags.length > 0) {\n matchedTags.forEach((tag) => {\n if (!groupedPathsByTags[tag]) groupedPathsByTags[tag] = []\n groupedPathsByTags[tag].push({ ...entry, id: `endpoint-${nanoid(8)}` } as EndpointData)\n })\n } else {\n if (!groupedPathsByTags.default) {\n groupedPathsByTags.default = []\n }\n groupedPathsByTags.default.push({ ...entry, id: `endpoint-${nanoid(8)}` } as EndpointData)\n }\n }\n }\n\n // Sort groupedPathsByTags so that 'default' comes last\n const sortedGroupedPathsByTags = Object.keys(groupedPathsByTags)\n .sort((a, b) => {\n if (a === 'default') return 1\n if (b === 'default') return -1\n return a.localeCompare(b)\n })\n .reduce((acc, key) => {\n acc[key] = groupedPathsByTags[key]\n return acc\n }, {} as Record<string, EndpointData[]>)\n\n return {\n ...api.info,\n id: `api-${nanoid(8)}`, // api prefix is used to identify what state should be changes (API | Endpoint)\n contextPath,\n tags: sortedGroupedPathsByTags,\n servers: api.servers,\n relatedVersions,\n currentVersion,\n authType,\n curl,\n }\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.39967 15.1673H4.59967C1.99301 15.1673 0.833008 14.0073 0.833008 11.4007V8.60065C0.833008 5.99398 1.99301 4.83398 4.59967 4.83398H7.39967C10.0063 4.83398 11.1663 5.99398 11.1663 8.60065V11.4007C11.1663 14.0073 10.0063 15.1673 7.39967 15.1673ZM4.59967 5.83398C2.53301 5.83398 1.83301 6.53398 1.83301 8.60065V11.4007C1.83301 13.4673 2.53301 14.1673 4.59967 14.1673H7.39967C9.46634 14.1673 10.1663 13.4673 10.1663 11.4007V8.60065C10.1663 6.53398 9.46634 5.83398 7.39967 5.83398H4.59967Z\" fill=\"currentcolor\" />\n<path d=\"M11.3997 11.1673H10.6663C10.393 11.1673 10.1663 10.9407 10.1663 10.6673V8.60065C10.1663 6.53398 9.46634 5.83398 7.39967 5.83398H5.33301C5.05967 5.83398 4.83301 5.60732 4.83301 5.33398V4.60065C4.83301 1.99398 5.99301 0.833984 8.59967 0.833984H11.3997C14.0063 0.833984 15.1663 1.99398 15.1663 4.60065V7.40065C15.1663 10.0073 14.0063 11.1673 11.3997 11.1673ZM11.1663 10.1673H11.3997C13.4663 10.1673 14.1663 9.46732 14.1663 7.40065V4.60065C14.1663 2.53398 13.4663 1.83398 11.3997 1.83398H8.59967C6.53301 1.83398 5.83301 2.53398 5.83301 4.60065V4.83398H7.39967C10.0063 4.83398 11.1663 5.99398 11.1663 8.60065V10.1673Z\" fill=\"currentcolor\" />\n</svg>\n","import { useState } from 'react'\nimport { Light as SyntaxHighlighter } from 'react-syntax-highlighter'\nimport json from 'react-syntax-highlighter/dist/esm/languages/hljs/json'\nimport * as hljs from 'react-syntax-highlighter/dist/esm/styles/hljs'\nimport { useStyle } from '@doc-lib/hooks/useStyle'\n\nSyntaxHighlighter.registerLanguage('json', json)\n\nconst Codebox = ({ code, language }: { code: string; language?: string }) => {\n const [theme] = useState<'LIGHT' | 'DARK'>('DARK')\n const { cx } = useStyle('codeBox', (token, scope) => ({\n [scope('codebox')]: {\n borderRadius: token.borderRadius,\n height: '100%',\n maxHeight: '100%',\n overflow: 'auto',\n\n pre: {\n height: '100%',\n },\n },\n // [scope('codebox-header')]: {\n // display: 'flex',\n // alignItems: 'center',\n // gap: '0.25rem',\n // paddingLeft: '0.5rem',\n // height: '1.75rem',\n // border: '1px solid #bbbec5',\n // borderTopRightRadius: '0.25rem',\n // borderTopLeftRadius: '0.25rem',\n // },\n // [scope('themeToggle')]: {\n // width: '0.75rem',\n // minWidth: '0.75rem',\n // aspectRatio: '1 / 1',\n // border: '1px solid transparent',\n // borderRadius: '100%',\n // cursor: 'pointer',\n // borderColor: '#6b7280',\n // },\n // [scope('themeToggle_light')]: {\n // backgroundColor: '#edf1fb',\n // },\n // [scope('themeToggle_dark')]: {\n // backgroundColor: '#455162',\n // },\n }))\n\n return (\n <div className={cx('codebox')}>\n {/* TODO: Implement theme toggle */}\n {/* <div className={cx('codebox-header')}>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'LIGHT' && setTheme('LIGHT')}\n className={cx('themeToggle', 'themeToggle_light')}\n title=\"Light theme\"\n ></div>\n <div\n role=\"button\"\n tabIndex={-1}\n onClick={() => theme !== 'DARK' && setTheme('DARK')}\n className={cx('themeToggle', 'themeToggle_dark')}\n title=\"Dark theme\"\n ></div>\n </div> */}\n <SyntaxHighlighter\n language={language || 'json'}\n style={theme === 'LIGHT' ? hljs.stackoverflowLight : hljs.stackoverflowDark}\n showLineNumbers\n wrapLines\n customStyle={{\n margin: 0,\n minHeight: '3rem',\n overflowY: 'auto',\n padding: '0.75rem 1rem 0.75rem 1.5rem',\n backgroundColor: theme === 'DARK' ? '#20264B' : '#20264B',\n fontSize: '0.75rem',\n }}\n lineProps={{\n style: { fontFamily: 'Cascadia Code, sans-serif' },\n }}\n >\n {code}\n </SyntaxHighlighter>\n </div>\n )\n}\n\nexport default Codebox\n","import useStore from '@doc-lib/store'\nimport { handleStatusColor } from '@doc-lib/utils'\nimport CopyOutlined from '@doc-lib/assets/copy.svg'\nimport { Button, Select, Tooltip, Typography } from 'antd'\nimport { useMemo, useState } from 'react'\nimport Codebox from './EndpointPage/Codebox/Codebox'\nimport { useStyle } from '@doc-lib/hooks/useStyle'\nimport { token as tokens } from '@doc-lib/theme/light.json'\n\nfunction CodeboxSidebar() {\n const { selectedEndpoint, selectedStatusCode, statusCodeOptions, setSelectedStatusCode } =\n useStore(({ view }) => view)\n const httpStatusOptions = useMemo(\n () =>\n statusCodeOptions.map((code) => ({\n value: code,\n label: (\n <span style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>\n <span\n style={{\n background: handleStatusColor(code),\n borderRadius: '50%',\n display: 'inline-block',\n width: '0.5rem',\n height: '0.5rem',\n minWidth: '0.5rem',\n minHeight: '0.5rem',\n }}\n />\n {code}\n </span>\n ),\n })),\n [statusCodeOptions]\n )\n\n const { originalData } = useStore(({ view }) => view)\n\n const [curlTooltip, setCurlTooltip] = useState('Copy Request')\n // Find the curl command for the selected endpoint\n const findCurlForEndpoint = () => {\n if (!selectedEndpoint || !originalData) return ''\n\n // Find the API that contains this endpoint\n const api = originalData.find((apiData) => {\n const paths = apiData.paths || {}\n return Object.keys(paths).some((path) => {\n const methods = paths[path] || {}\n return Object.keys(methods).some((method) => {\n const endpointMethod = method.toUpperCase()\n return path === selectedEndpoint.path && endpointMethod === selectedEndpoint.method\n })\n })\n })\n\n if (!api || !api['x-curls']) return ''\n\n // Find all matching curl commands\n const matchingCurls = api['x-curls'].filter(\n (curlObj: any) =>\n curlObj.path === selectedEndpoint.path && curlObj.method === selectedEndpoint.method\n )\n\n // Prioritize SDB server URLs\n const sdbCurl = matchingCurls.find(\n (curl: any) => curl.serverUrl.includes('sdb') || curl.serverUrl.includes('SDB')\n )\n\n // If SDB found, return it, otherwise return the first match (or empty string)\n return sdbCurl ? sdbCurl.curlCommand : matchingCurls[0]?.curlCommand || ''\n }\n\n const curlCommand = findCurlForEndpoint()\n\n const formatCurlCommand = (cmd: string) => {\n if (!cmd) return ''\n\n return cmd\n .replace(/ -X /g, ' \\\\\\n -X ')\n .replace(/ -H /g, ' \\\\\\n -H ')\n .replace(/ -d /g, ' \\\\\\n -d ')\n .replace(/ (https?:\\/\\/[^\\s'\"]+)/g, ' \\\\\\n $1')\n }\n\n const { cx } = useStyle('CodeboxSidebar', (token, scope) => ({\n [scope('container')]: {\n display: 'flex',\n flexDirection: 'column',\n gap: token.marginMD,\n background: token.colorBgContainer,\n borderRadius: token.borderRadiusLG,\n padding: token.paddingLG,\n overflow: 'hidden',\n height: '100%',\n maxHeight: '100%',\n width: '23.625rem',\n minWidth: '23.625rem',\n '.ant-card-body': { padding: 0 },\n '.ant-card-head-title': { color: 'white' },\n '.ant-card-head': { borderBottom: '.125rem solid #33419A' },\n },\n\n [scope('rightCard')]: {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: '#20264B',\n '.CodeboxSidebar-copyButton': { '.isolated-btn-icon': { path: { fill: 'white' } } },\n '.isolated-card-body': {\n padding: ' .125rem 0 0 0 !important',\n borderTop: '.125rem solid #33419A',\n },\n '.ant-card-head': {\n flex: '0 0 auto',\n },\n borderRadius: token.borderRadius,\n overflow: 'hidden',\n },\n [scope('rightCardRequest')]: {\n maxHeight: '50%',\n minHeight: '8.125rem',\n },\n [scope('rightCardResponse')]: {\n height: 'fit-content',\n overflow: 'hidden',\n },\n [scope('rightCardHeader')]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: `${token.marginXS}px ${token.margin}px`,\n borderBottom: '.125rem solid #33419A',\n height: '3.125rem',\n },\n [scope('rightCardFlex')]: {\n display: 'flex',\n flexDirection: 'column',\n height: 'fit-content',\n overflow: 'auto',\n backgroundColor: '#20264B',\n '.ant-card-head': {\n flex: '0 0 auto',\n },\n '.ant-card-body': {\n flex: '1 1 auto',\n overflowY: 'auto',\n padding: '.125rem 0 0 0 !important',\n },\n '.isolated-card-body': {\n padding: ' .125rem 0 0 0 !important',\n height: 'fit-content',\n overflow: 'auto',\n borderTop: '.125rem solid #33419A',\n '.codebox': { height: 'fit-content', overflow: 'auto' },\n },\n },\n\n [scope('customSelect')]: {\n width: '5.5rem',\n maxWidth: '5.5rem',\n\n '.ant-select-selector': {\n backgroundColor: '#fff',\n borderColor: '#fff',\n borderRadius: '.375rem',\n color: '#101010',\n },\n '.ant-select-selection-item': {\n color: '#101010',\n fontWeight: 400,\n },\n '.ant-select-selection-placeholder': {\n color: 'rgba(255, 255, 255, 0.65)',\n },\n '.ant-select-arrow': {\n color: '#101010',\n },\n '&:hover .ant-select-selector': {\n borderColor: `${tokens['brnadColor.7']}`,\n color: 'white',\n },\n '&:focus .ant-select-selector, &.ant-select-focused .ant-select-selector': {\n borderColor: `${tokens['brnadColor.7']}`,\n color: 'white',\n },\n },\n }))\n\n return (\n <div className={cx('container')}>\n {/* Request codebox */}\n {curlCommand && (\n <div className={cx('rightCard', 'rightCardRequest')}>\n <div className={cx('rightCardHeader')}>\n <Typography.Text strong style={{ color: '#fff' }}>\n Request\n </Typography.Text>\n <Tooltip title={curlTooltip}>\n <Button\n color=\"default\"\n variant=\"link\"\n className={cx('copyButton')}\n onClick={() => {\n const cleaned = curlCommand.replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\')\n navigator.clipboard.writeText(formatCurlCommand(cleaned))\n setCurlTooltip('Copied!')\n setTimeout(() => setCurlTooltip('Copy cURL'), 1500)\n }}\n icon={<CopyOutlined style={{ color: 'white' }} />}\n />\n </Tooltip>\n </div>\n <Codebox\n language=\"bash\"\n code={formatCurlCommand(curlCommand.replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\'))}\n />\n </div>\n )}\n {/* Response codebox */}\n {selectedEndpoint?.responses && httpStatusOptions.length > 0 && (\n <div className={cx('rightCard', 'rightCardResponse')}>\n <div className={cx('rightCardHeader', 'rightCardHeaderResponse')}>\n <Typography.Text strong style={{ color: '#fff' }}>\n Response\n </Typography.Text>\n <Select\n defaultActiveFirstOption={true}\n defaultValue={200}\n className={cx('customSelect')}\n prefix={false}\n style={{ width: '100%' }}\n value={selectedStatusCode}\n onChange={setSelectedStatusCode}\n options={httpStatusOptions}\n open={httpStatusOptions.length === 1 ? false : undefined}\n suffixIcon={httpStatusOptions.length > 1 ? undefined : false}\n />\n </div>\n <Codebox\n code={\n JSON.stringify(selectedEndpoint?.responses[selectedStatusCode as number], null, 2) ||\n ''\n }\n />\n </div>\n )}\n </div>\n )\n}\n\nexport default CodeboxSidebar\n","'use client'\nimport { Sidebar, MainContent } from './components'\nimport { useStyle } from '../hooks/useStyle'\nimport { useNodeSelection } from '../hooks/useNodeSelection'\nimport { OpenAPIFile } from '@doc-lib/types/OpenApi'\nimport { useEffect, useRef, useState } from 'react'\nimport useStore from '@doc-lib/store'\nimport { transformOpenApiToDocs } from './helper/mutate'\nimport { buildTreeDataStructure } from './helper'\nimport CodeboxSidebar from './components/CodeboxSidebar'\n\nexport const DocumentationLayout = ({\n data,\n preSelectedApi,\n handleVisitLandingPage,\n}: {\n data: OpenAPIFile[]\n preSelectedApi?: string | null\n handleVisitLandingPage?: () => void\n theme?: any\n}) => {\n const [searchValue, setSearchValue] = useState('')\n\n const {\n focusedContent,\n selectedNodeKey,\n selectedApi,\n builtTreeData,\n setOriginalData,\n setTransformedData,\n setBuiltTreeData,\n setFocusedContent,\n setExpandedKeys,\n } = useStore(({ view }) => view)\n const { selectFirstApi, selectPreSelectedApi, clearSelection } = useNodeSelection()\n const hasInitializedRef = useRef(false)\n\n useEffect(() => {\n return () => {\n resetStore()\n }\n }, [])\n\n const resetStore = () => {\n setExpandedKeys([])\n setFocusedContent(null)\n setBuiltTreeData([])\n setTransformedData([])\n setOriginalData([])\n setSearchValue('')\n clearSelection()\n hasInitializedRef.current = false\n }\n\n useEffect(() => {\n // Initialize original data\n if (!hasInitializedRef.current && data.length > 0) {\n setOriginalData(data)\n // Transform data to documentation format\n const transformedData = data\n .map(transformOpenApiToDocs)\n .sort((a, b) => a.title.localeCompare(b.title))\n setTransformedData(transformedData)\n\n // Build tree data structure\n const builtTree = buildTreeDataStructure(transformedData)\n setBuiltTreeData(builtTree)\n\n // Reset initialization flag when new data arrives\n hasInitializedRef.current = true\n }\n }, [data, setOriginalData, setTransformedData, setBuiltTreeData])\n\n // Auto-select the first API when tree data is available\n useEffect(() => {\n if (\n builtTreeData &&\n builtTreeData.length > 0 &&\n !selectedApi &&\n !selectedNodeKey &&\n hasInitializedRef.current\n ) {\n if (!preSelectedApi) {\n selectFirstApi(builtTreeData)\n } else {\n selectPreSelectedApi(builtTreeData, preSelectedApi)\n }\n hasInitializedRef.current = false\n }\n }, [builtTreeData, selectedNodeKey, selectedApi, selectFirstApi])\n\n const { cx } = useStyle('APIDocumentationLayout', (token, scope) => ({\n [scope('documentation-container')]: {\n display: 'flex',\n flexDirection: 'column',\n gap: token.marginLG,\n height: '100%',\n maxHeight: '100%',\n overflow: 'hidden',\n },\n [scope('docs-layout')]: {\n display: 'flex',\n height: '100%',\n maxHeight: '100%',\n overflow: 'hidden',\n gap: token.marginLG,\n width: '100%',\n },\n }))\n\n const handleResetSearch = () => {\n setSearchValue('')\n }\n\n const _handleVisitLandingPage = () => {\n if (handleVisitLandingPage) {\n handleVisitLandingPage()\n return\n }\n window.location.pathname = '/'\n }\n\n return (\n <div className={cx('documentation-container')}>\n <div className={cx('docs-layout')}>\n <Sidebar searchValue={searchValue} setSearchValue={setSearchValue} />\n <MainContent\n handleVisitLandingPage={_handleVisitLandingPage}\n handleResetSearch={handleResetSearch}\n searchEnabled={!!searchValue}\n />\n {focusedContent === 'ENDPOINT' && <CodeboxSidebar />}\n </div>\n </div>\n )\n}\n"],"mappings":"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AAS,WACT,GAAG,YACC;AACJ,QACE,4CAAC;EACQ;EACC;EACR,SAAQ;EACF;EACN,OAAM;EACN,GAAI;;GAEJ,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IACC,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IACC,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IACC,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,2CAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACF,MAAK;IACG;IACR,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IAAK,GAAE;IAAyD;KAAQ;GACzE,2CAAC;IACC,GAAE;IACF,MAAK;IACG;IACR,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IACC,GAAE;IACF,MAAK;IACG;IACR,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACF,MAAK;IACG;IACR,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACF,MAAK;IACG;IACR,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACI;KACN;GACF,2CAAC;IACC,GAAE;IACF,MAAK;IACG;IACR,eAAc;IACd,gBAAe;KACf;GACF,2CAAC;IACC,GAAE;IACF,MAAK;IA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"}