@gusun/design-system 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/dist-lib/Editor-wECQz1CV.js +1994 -0
- package/dist-lib/Editor-wECQz1CV.js.map +1 -0
- package/dist-lib/components/Accordion.d.ts +25 -0
- package/dist-lib/components/Button.d.ts +27 -0
- package/dist-lib/components/ButtonGroup.d.ts +18 -0
- package/dist-lib/components/CalendarDayButton.d.ts +39 -0
- package/dist-lib/components/Checkbox.d.ts +34 -0
- package/dist-lib/components/Chip.d.ts +12 -0
- package/dist-lib/components/ConditionOrderSlot.d.ts +31 -0
- package/dist-lib/components/DateField.d.ts +39 -0
- package/dist-lib/components/DatePicker.d.ts +49 -0
- package/dist-lib/components/Divider.d.ts +12 -0
- package/dist-lib/components/Editor.d.ts +23 -0
- package/dist-lib/components/EditorToolbar.d.ts +12 -0
- package/dist-lib/components/ErrorBoundary.d.ts +30 -0
- package/dist-lib/components/Field.d.ts +32 -0
- package/dist-lib/components/FileUploadButton.d.ts +22 -0
- package/dist-lib/components/FileUploadMenu.d.ts +24 -0
- package/dist-lib/components/FormTemplate.d.ts +33 -0
- package/dist-lib/components/ImageUploadButton.d.ts +14 -0
- package/dist-lib/components/ImageUploadMenu.d.ts +17 -0
- package/dist-lib/components/InlineFieldTrigger.d.ts +18 -0
- package/dist-lib/components/Input.d.ts +28 -0
- package/dist-lib/components/JobPositionTemplate.d.ts +41 -0
- package/dist-lib/components/Label.d.ts +18 -0
- package/dist-lib/components/List.d.ts +46 -0
- package/dist-lib/components/ListEmpty.d.ts +6 -0
- package/dist-lib/components/ListGroup.d.ts +13 -0
- package/dist-lib/components/MarkdownDoc.d.ts +5 -0
- package/dist-lib/components/MergeFieldNode.d.ts +2 -0
- package/dist-lib/components/Modal.d.ts +90 -0
- package/dist-lib/components/NoticeWritingTemplate.d.ts +38 -0
- package/dist-lib/components/Pagination.d.ts +27 -0
- package/dist-lib/components/Popover.d.ts +16 -0
- package/dist-lib/components/PopoverMenu.d.ts +54 -0
- package/dist-lib/components/Radio.d.ts +33 -0
- package/dist-lib/components/ScreeningBuilderTemplate.d.ts +53 -0
- package/dist-lib/components/ScreeningConditionCard.d.ts +56 -0
- package/dist-lib/components/ScreeningFormula.d.ts +17 -0
- package/dist-lib/components/ScreeningIndividualSettingModal.d.ts +10 -0
- package/dist-lib/components/ScrollArea.d.ts +30 -0
- package/dist-lib/components/SearchBar.d.ts +14 -0
- package/dist-lib/components/SegmentControl.d.ts +46 -0
- package/dist-lib/components/SegmentedTabs.d.ts +20 -0
- package/dist-lib/components/Select.d.ts +67 -0
- package/dist-lib/components/SelectGroup.d.ts +18 -0
- package/dist-lib/components/SelectOrInput.d.ts +49 -0
- package/dist-lib/components/SideNavigation.d.ts +33 -0
- package/dist-lib/components/SideNavigationTemplate.d.ts +29 -0
- package/dist-lib/components/Slot.d.ts +16 -0
- package/dist-lib/components/Switch.d.ts +6 -0
- package/dist-lib/components/Table.d.ts +66 -0
- package/dist-lib/components/TableTemplate.d.ts +52 -0
- package/dist-lib/components/Tabs.d.ts +40 -0
- package/dist-lib/components/Tag.d.ts +25 -0
- package/dist-lib/components/TextArea.d.ts +26 -0
- package/dist-lib/components/TimeField.d.ts +15 -0
- package/dist-lib/components/ToolBar.d.ts +5 -0
- package/dist-lib/components/Tooltip.d.ts +25 -0
- package/dist-lib/components/TruncatingText.d.ts +7 -0
- package/dist-lib/components/TwoDepthList.d.ts +41 -0
- package/dist-lib/components/UsageExample.d.ts +16 -0
- package/dist-lib/components/chipStyles.d.ts +11 -0
- package/dist-lib/components/formulaFunctions.d.ts +75 -0
- package/dist-lib/components/modalContext.d.ts +1 -0
- package/dist-lib/components/popoverLayers.d.ts +6 -0
- package/dist-lib/components/tableView.d.ts +17 -0
- package/dist-lib/components/useFocusTrap.d.ts +6 -0
- package/dist-lib/components/useHoverTooltip.d.ts +10 -0
- package/dist-lib/components/useOutsideDismiss.d.ts +9 -0
- package/dist-lib/components/usePanelKeyboard.d.ts +11 -0
- package/dist-lib/components/usePopoverPosition.d.ts +11 -0
- package/dist-lib/editor.d.ts +3 -0
- package/dist-lib/editor.js +2 -0
- package/dist-lib/index.d.ts +68 -0
- package/dist-lib/index.js +4707 -0
- package/dist-lib/index.js.map +1 -0
- package/dist-lib/navContext.d.ts +8 -0
- package/dist-lib/styles.css +1 -0
- package/dist-lib/tailwind-preset.cjs +1023 -0
- package/dist-lib/tailwind-preset.mjs +1000 -0
- package/dist-lib/tokens/border.d.ts +6 -0
- package/dist-lib/tokens/colors/accordionColors.d.ts +3 -0
- package/dist-lib/tokens/colors/builderAreaColors.d.ts +12 -0
- package/dist-lib/tokens/colors/buttonColors.d.ts +37 -0
- package/dist-lib/tokens/colors/calendarColors.d.ts +12 -0
- package/dist-lib/tokens/colors/checkboxColors.d.ts +12 -0
- package/dist-lib/tokens/colors/chipColors.d.ts +82 -0
- package/dist-lib/tokens/colors/conditionCardColors.d.ts +10 -0
- package/dist-lib/tokens/colors/conditionOrderSlotColors.d.ts +15 -0
- package/dist-lib/tokens/colors/dividerColors.d.ts +5 -0
- package/dist-lib/tokens/colors/editorColors.d.ts +30 -0
- package/dist-lib/tokens/colors/formulaColors.d.ts +26 -0
- package/dist-lib/tokens/colors/labelFieldColors.d.ts +6 -0
- package/dist-lib/tokens/colors/listColors.d.ts +20 -0
- package/dist-lib/tokens/colors/modalColors.d.ts +7 -0
- package/dist-lib/tokens/colors/newTagColors.d.ts +6 -0
- package/dist-lib/tokens/colors/radioColors.d.ts +12 -0
- package/dist-lib/tokens/colors/segmentedColors.d.ts +9 -0
- package/dist-lib/tokens/colors/sideNavColors.d.ts +13 -0
- package/dist-lib/tokens/colors/switchColors.d.ts +13 -0
- package/dist-lib/tokens/colors/tabColors.d.ts +9 -0
- package/dist-lib/tokens/colors/tableColors.d.ts +8 -0
- package/dist-lib/tokens/colors/tagColors.d.ts +10 -0
- package/dist-lib/tokens/colors/textFieldColors.d.ts +25 -0
- package/dist-lib/tokens/colors/toolbarColors.d.ts +5 -0
- package/dist-lib/tokens/colors.d.ts +176 -0
- package/dist-lib/tokens/fontIconColors.d.ts +7 -0
- package/dist-lib/tokens/icon.d.ts +5 -0
- package/dist-lib/tokens/index.d.ts +32 -0
- package/dist-lib/tokens/lineHeight.d.ts +11 -0
- package/dist-lib/tokens/radius.d.ts +14 -0
- package/dist-lib/tokens/spacing.d.ts +16 -0
- package/dist-lib/tokens/typography.d.ts +33 -0
- package/dist-lib/tokens-CbcaxhkP.js +583 -0
- package/dist-lib/tokens-CbcaxhkP.js.map +1 -0
- package/dist-lib/tokens.js +2 -0
- package/dist-lib/utils/datetime.d.ts +6 -0
- package/dist-lib/utils/phone.d.ts +1 -0
- package/package.json +163 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens-CbcaxhkP.js","names":[],"sources":["../src/tokens/lineHeight.ts","../src/tokens/typography.ts","../src/tokens/colors.ts","../src/tokens/fontIconColors.ts","../src/tokens/colors/buttonColors.ts","../src/tokens/colors/textFieldColors.ts","../src/tokens/colors/labelFieldColors.ts","../src/tokens/colors/dividerColors.ts","../src/tokens/colors/chipColors.ts","../src/tokens/colors/listColors.ts","../src/tokens/colors/tagColors.ts","../src/tokens/colors/newTagColors.ts","../src/tokens/colors/sideNavColors.ts","../src/tokens/colors/conditionOrderSlotColors.ts","../src/tokens/colors/conditionCardColors.ts","../src/tokens/colors/formulaColors.ts","../src/tokens/colors/builderAreaColors.ts","../src/tokens/colors/toolbarColors.ts","../src/tokens/colors/accordionColors.ts","../src/tokens/colors/segmentedColors.ts","../src/tokens/colors/checkboxColors.ts","../src/tokens/colors/radioColors.ts","../src/tokens/colors/switchColors.ts","../src/tokens/colors/tabColors.ts","../src/tokens/colors/tableColors.ts","../src/tokens/colors/modalColors.ts","../src/tokens/colors/calendarColors.ts","../src/tokens/colors/editorColors.ts","../src/tokens/spacing.ts","../src/tokens/radius.ts","../src/tokens/border.ts","../src/tokens/icon.ts"],"sourcesContent":["// 행간(line-height) 토큰 — 텍스트 사이즈(fontSize)와 독립. 클래스: leading-{key} (예: leading-30)\n// 값은 Figma \"폰트 시스템\"의 행간 스케일(px) = 폰트 크기 + 8px 규칙.\n// fontSize 토큰(text-*)이 기본 행간으로 이 값을 참조하므로 값이 한 곳에서만 정의된다(중복 제거).\n// 사이즈는 그대로 두고 행간만 달리 줘야 할 때(예: 에디터 본문 가독성) leading-*으로 조합한다.\nexport const lineHeight = {\n 16: '16px', // 촘촘한 행간(사이즈 기본 짝 없음, 좁은 영역용)\n 18: '18px', // 촘촘한 행간(사이즈 기본 짝 없음)\n 20: '20px', // text-12 기본\n 22: '22px', // text-13 기본\n 24: '24px', // text-14 기본\n 26: '26px', // text-15 기본\n 28: '28px', // text-16 기본\n 30: '30px', // text-18 기본\n 32: '32px', // text-20 기본\n};\n","// Figma \"폰트 시스템\" (node 943:35279)에서 추출한 타이포그래피 토큰\n// 폰트 패밀리: Pretendard (Regular 400 / SemiBold 600)\n// 키는 Figma의 \"사이즈/행간\" 표기를 그대로 따릅니다 (예: 14 → 14px, 행간 24px)\n\nexport const fontFamily = {\n pretendard: ['Pretendard Variable', 'Pretendard', 'system-ui', 'sans-serif'],\n};\n\nimport { lineHeight } from './lineHeight';\n\n// Tailwind fontSize 확장 포맷: [fontSize, { lineHeight, letterSpacing }]\n// 기본 행간은 lineHeight 토큰을 참조한다(값은 한 곳=lineHeight.js에서만 정의).\nexport const fontSize = {\n 12: ['12px', { lineHeight: lineHeight[20], letterSpacing: '-0.24px' }],\n 13: ['13px', { lineHeight: lineHeight[22], letterSpacing: '-0.26px' }],\n 14: ['14px', { lineHeight: lineHeight[24], letterSpacing: '-0.28px' }],\n 15: ['15px', { lineHeight: lineHeight[26], letterSpacing: '-0.30px' }],\n 16: ['16px', { lineHeight: lineHeight[28], letterSpacing: '-0.32px' }],\n 18: ['18px', { lineHeight: lineHeight[30], letterSpacing: '-0.36px' }],\n 20: ['20px', { lineHeight: lineHeight[32], letterSpacing: '-0.40px' }],\n};\n\n// 두께는 Tailwind 기본 유틸리티로 매핑됩니다: font-normal(400) / font-semibold(600)\n","// Figma \"베이직 칼라 토큰\" (node 7012:2)에서 추출한 베이스(프리미티브) 컬러\n// 모노톤 그레이 스케일 + black/white. 시멘틱 컬러는 이 베이스 컬러를\n// 참조하는 형태로 추후 별도 등록합니다.\n\nexport const baseColors = {\n base: {\n gray: {\n 25: '#fafafa',\n 50: '#f2f2f2',\n 100: '#e3e3e3',\n 125: '#d6d6d6', // 100↔150 중간색(2026-07-03 추가 — 테이블 헤더 구분선용 중간 스텝)\n 150: '#c9c9c9',\n 200: '#b0b0b0',\n 250: '#999999',\n 300: '#878787',\n 400: '#6a6a6a',\n 500: '#505050',\n 600: '#3f3f3f',\n 700: '#353535',\n 800: '#272727',\n 900: '#0d0d0d',\n },\n // gray 900 알파 시리즈 (Figma \"color/gray/900 *\" 변수)\n // 8자리 HEX: #0d0d0d + 알파 채널 (00=투명 → cf=81% 불투명)\n 'gray-900-00': '#0d0d0d00',\n 'gray-900-10': '#0d0d0d08',\n 'gray-900-25': '#0d0d0d12',\n 'gray-900-50': '#0d0d0d29',\n 'gray-900-75': '#0d0d0d54',\n 'gray-900-100': '#0d0d0d7a',\n 'gray-900-200': '#0d0d0da6',\n 'gray-900-300': '#0d0d0dcf',\n // white 알파 시리즈 (Figma \"color/gray/white *\" 변수)\n 'white-00': '#ffffff00',\n 'white-10': '#ffffff08',\n 'white-25': '#ffffff12',\n 'white-50': '#ffffff29',\n 'white-75': '#ffffff54',\n 'white-100': '#ffffff7a',\n 'white-200': '#ffffffa6',\n 'white-300': '#ffffffcf',\n black: '#000000', // Figma \"color/black\" 변수 값 기준 (#0d0d0d → #000000 수정)\n white: '#ffffff',\n // 피드백(에러/경고 등) 유채색 — Figma \"베이직 칼라 토큰\"의 red 스케일.\n // 400(#e74a4a)이 메인이며, 텍스트필드 에러 툴팁 등에 사용한다.\n red: {\n 25: '#fef1f1',\n 50: '#ffeeee',\n 100: '#fde1e1',\n 150: '#fbc4c4',\n 200: '#f8a8a9',\n 250: '#f58c8d',\n 300: '#f37171',\n 400: '#e74a4a', // error / danger 메인\n 500: '#c42c2c',\n 600: '#ae292c',\n 700: '#942022',\n 800: '#7a1618',\n 900: '#600b0d',\n },\n // red 400 알파 시리즈 (Figma \"color/red/400 *\" 변수) — 8자리 HEX(#e74a4a + 알파)\n // 알파: 00=0% 10=3% 25=8% 50=16% 75=33% 100=48% 200=65% 300=81%\n 'red-400-00': '#e74a4a00',\n 'red-400-10': '#e74a4a08',\n 'red-400-25': '#e74a4a14',\n 'red-400-50': '#e74a4a29',\n 'red-400-75': '#e74a4a54',\n 'red-400-100': '#e74a4a7a',\n 'red-400-200': '#e74a4aa6',\n 'red-400-300': '#e74a4acf',\n // 피드백(정보/링크 등) 유채색 — Figma \"베이직 칼라 토큰\"의 blue 스케일.\n blue: {\n 25: '#f6fafe',\n 50: '#eff7fe',\n 100: '#e6f3fe',\n 150: '#cce6ff',\n 200: '#9ecefa',\n 250: '#6eb5f7',\n 300: '#41a2fd',\n 400: '#0f85f2', // info 메인\n 500: '#0b69c2',\n 600: '#084f91',\n 700: '#063f74',\n 800: '#063561',\n 900: '#042849',\n },\n // blue 400 알파 시리즈 (Figma \"color/blue/400 *\" 변수) — 8자리 HEX(#0f85f2 + 알파)\n 'blue-400-00': '#0f85f200',\n 'blue-400-10': '#0f85f208',\n 'blue-400-25': '#0f85f214',\n 'blue-400-50': '#0f85f229',\n 'blue-400-75': '#0f85f254',\n 'blue-400-100': '#0f85f27a',\n 'blue-400-200': '#0f85f2a6',\n 'blue-400-300': '#0f85f2cf',\n // 상태/분류 유채색 — Figma \"베이직 칼라 토큰\"의 green/orange/violet 스케일(2026-07-13 추가).\n // 400이 각 메인. 컴포넌트에서 직접 쓰지 말고 시멘틱을 경유한다.\n // green — success 계열. 400=#0daf4e\n green: {\n 25: '#eef9f2',\n 50: '#e4f6eb',\n 100: '#daf3e4',\n 150: '#bbe8cd',\n 200: '#90dbae',\n 250: '#6cce93',\n 300: '#47c278',\n 400: '#0daf4e', // success 메인\n 500: '#089a42',\n 600: '#077f36',\n 700: '#05642b',\n 800: '#044b20',\n 900: '#003333',\n },\n 'green-400-00': '#0daf4e00',\n 'green-400-10': '#0daf4e08',\n 'green-400-25': '#0daf4e14',\n 'green-400-50': '#0daf4e29',\n 'green-400-75': '#0daf4e54',\n 'green-400-100': '#0daf4e7a',\n 'green-400-200': '#0daf4ea6',\n 'green-400-300': '#0daf4ecf',\n // orange — warning 계열. 400=#f06e2d\n orange: {\n 25: '#fef6f2',\n 50: '#fef0e8',\n 100: '#fde8db',\n 150: '#fbd0b8',\n 200: '#f9b996',\n 250: '#f8a073',\n 300: '#f68852',\n 400: '#f06e2d', // warning 메인\n 500: '#d75812',\n 600: '#b04b16',\n 700: '#8b3d16',\n 800: '#683014',\n 900: '#472309',\n },\n 'orange-400-00': '#f06e2d00',\n 'orange-400-10': '#f06e2d08',\n 'orange-400-25': '#f06e2d14',\n 'orange-400-50': '#f06e2d29',\n 'orange-400-75': '#f06e2d54',\n 'orange-400-100': '#f06e2d7a',\n 'orange-400-200': '#f06e2da6',\n 'orange-400-300': '#f06e2dcf',\n // violet — 강조/분류 계열. 400=#7c57ef\n violet: {\n 25: '#f7f5fe',\n 50: '#f0edfb',\n 100: '#ebe6fd',\n 150: '#dad0fb',\n 200: '#c6b4f7',\n 250: '#b19af5',\n 300: '#9d81f3',\n 400: '#7c57ef', // 강조 메인\n 500: '#6e4dd2',\n 600: '#5c40ae',\n 700: '#473288',\n 800: '#372666',\n 900: '#251b48',\n },\n 'violet-400-00': '#7c57ef00',\n 'violet-400-10': '#7c57ef08',\n 'violet-400-25': '#7c57ef14',\n 'violet-400-50': '#7c57ef29',\n 'violet-400-75': '#7c57ef54',\n 'violet-400-100': '#7c57ef7a',\n 'violet-400-200': '#7c57efa6',\n 'violet-400-300': '#7c57efcf',\n // pink — 강조/분류 계열. 400=#f246b9(지정). 25~900은 red/orange/violet의 밝기·채도 사다리를\n // pink hue로 채워 같은 톤으로 파생(2026-07-13 지시).\n pink: {\n 25: '#fef3fa',\n 50: '#fdecf8',\n 100: '#fde1f4',\n 150: '#fbc4e9',\n 200: '#f8a6dd',\n 250: '#f689d2',\n 300: '#f46cc7',\n 400: '#f246b9', // 메인(지정값)\n 500: '#d6279c',\n 600: '#b02983',\n 700: '#8e226a',\n 800: '#6d1b52',\n 900: '#50103b',\n },\n 'pink-400-00': '#f246b900',\n 'pink-400-10': '#f246b908',\n 'pink-400-25': '#f246b914',\n 'pink-400-50': '#f246b929',\n 'pink-400-75': '#f246b954',\n 'pink-400-100': '#f246b97a',\n 'pink-400-200': '#f246b9a6',\n 'pink-400-300': '#f246b9cf',\n },\n};\n","// Figma \"폰트 아이콘 칼라\" (node 7012:93)에서 추출한 시멘틱 컬러\n// get_design_context의 fallback 값과 실제 바인딩된 Figma 변수 값이 달라서\n// get_variable_defs로 재확인한 실제 값을 기준으로 등록했습니다.\n// 5개 모두 baseColors의 그레이 스케일과 정확히 일치하여, 베이스 컬러를\n// 그대로 참조하는 형태로 정의합니다.\n\nimport { baseColors } from './colors';\n\nexport const fontIconColors = {\n 5: baseColors.base.gray[900], // #0d0d0d — 메인, 폰트/아이콘 디폴트 적용 컬러\n 4: baseColors.base.gray[600], // #3f3f3f\n 3: baseColors.base.gray[300], // #878787\n 2: baseColors.base.gray[150], // #c9c9c9\n 1: baseColors.base.white, // #ffffff\n};\n","// 버튼 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP\n// Fill → node 7057:6710 (변수명: fill/gray-*)\n// Ghost → node 7060:6712 (변수명: ghost/gray-*)\n// Line → node 7057:6711 (변수명: line/gray-*)\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const buttonColors = {\n fill: {\n 'default-bg': b.gray[900], // fill/gray default bg → #0d0d0d\n 'default-fg': b.white, // fill/gray default text → #ffffff\n 'hover-bg': b['gray-900-200'], // fill/gray hover bg → #0d0d0da6\n 'disabled-bg': b['gray-900-25'], // fill/gray disabled bg → #0d0d0d12 (2026-07-02 900-50→900-25)\n 'disabled-fg': b.gray[150], // fill/gray disabled text/icon → #c9c9c9 (=font-icon-2)\n },\n ghost: {\n 'default-fg': b.gray[900], // ghost/gray default text → #0d0d0d\n 'hover-bg': b['gray-900-25'], // ghost/gray hover bg → #0d0d0d12\n 'disabled-bg': b['gray-900-25'], // ghost/gray disabled bg → #0d0d0d12 (2026-07-02 900-50→900-25)\n 'disabled-fg': b.gray[150], // ghost/gray disabled text/icon → #c9c9c9 (=font-icon-2)\n 'selected-bg': b.gray[400], // ghost/gray select bg → #6a6a6a (선택/현재 항목)\n 'selected-text': b.white, // ghost/gray select text → #ffffff\n 'pagination-fg': b.gray[300], // ghost/gray default text (pagination) → #878787\n // 페이지네이션 번호 기본색(연함) — hover/pressed 시 default-fg로 진해짐\n },\n line: {\n 'default-bg': b.white, // line/gray default bg → #ffffff\n 'default-fg': b.gray[900], // line/gray default text → #0d0d0d\n 'default-line': b.gray[150], // line/gray default line → #c9c9c9\n 'hover-bg': b['gray-900-25'], // line/gray hover bg → #0d0d0d12\n 'hover-line': b.gray[250], // line/gray hover line → #999999\n 'disabled-bg': b['gray-900-25'], // line/gray disabled bg → #0d0d0d12 (2026-07-02 900-50→900-25)\n 'disabled-fg': b.gray[150], // line/gray disabled text/icon → #c9c9c9 (=font-icon-2)\n 'disabled-line':b['gray-900-75'], // line/gray disableld line → #0d0d0d54\n },\n // underline(밑줄 텍스트 버튼) 색 변형(2026-07-15) — black(기본, 기존 색)=gray900,\n // 유채색 6종은 칩 컬러와 짝(각 400). gray는 제외(사용자 지정).\n underline: {\n 'black-fg': b.gray[900],\n 'red-fg': b.red[400],\n 'blue-fg': b.blue[400],\n 'green-fg': b.green[400],\n 'violet-fg': b.violet[400],\n 'pink-fg': b.pink[400],\n 'orange-fg': b.orange[400],\n },\n};\n","// 텍스트필드(검색바·인풋) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — 02_textfield (node 943:37773)\n// solid 타입의 상태별 bg / line / text / icon 변수(solid/*)와\n// 에러 툴팁 변수(errer tooltip *)를 baseColors를 경유해 정의한다.\n// 상태별 테두리는 컴포넌트에서 ring으로 구현하므로 line 토큰은 ring 색으로 사용.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const textFieldColors = {\n // default — 값 없음, 인터랙션 없음\n 'default-bg': b['gray-900-25'], // #0d0d0d12\n 'default-line': b['gray-900-00'], // #0d0d0d00 (투명)\n 'default-text': b.gray[300], // #878787 — placeholder (값 없을 때 아이콘색도 이 값 사용)\n // hover\n 'hover-bg': b['gray-900-25'],\n 'hover-line': b['gray-900-200'], // #0d0d0da6\n 'hover-text': b.gray[300],\n // focused\n 'focused-bg': b['gray-900-00'], // 투명\n 'focused-line': b['gray-900-200'],\n // filled — 값 있음\n 'filled-bg': b['gray-900-25'],\n 'filled-line': b['gray-900-00'],\n 'filled-text': b.gray[900], // #0d0d0d — 입력된 텍스트\n // disabled\n 'disabled-bg': b['gray-900-25'],\n 'disabled-line': b['gray-900-00'],\n 'disabled-text': b.gray[150], // #c9c9c9\n 'disabled-icon': b.gray[150],\n // read only\n 'readonly-bg': b['gray-900-25'],\n 'readonly-line': b['gray-900-00'],\n 'readonly-text': b.gray[900], // #0d0d0d (읽기는 진하게)\n 'readonly-icon': b.gray[150],\n // tooltip — error(빨강) / normal(검정)\n 'error-tooltip-bg': b.red[400], // #e74a4a\n 'error-tooltip-text': b.white, // #ffffff\n 'normal-tooltip-bg': b.gray[900], // #0d0d0d\n 'normal-tooltip-text': b.white, // #ffffff\n};\n","// 라벨(label) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — label 컴포넌트 (node 7942:2175)\n// label-field/* 변수(default text / required mark / disabled text)를\n// baseColors를 경유해 정의한다.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const labelFieldColors = {\n 'default-text': b.gray[900], // #0d0d0d — 기본 라벨 텍스트\n 'required-mark': b.red[400], // #e74a4a — 필수 표시(점)\n 'disabled-text': b.gray[150], // #c9c9c9 — 비활성 라벨 텍스트\n 'helper-text': b.gray[600], // #3f3f3f — Field 헬퍼(description) 텍스트\n};\n","// 디바이더(구분선) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — Divider 컴포넌트 (color variant subtle/default/strong)\n// divider/* 변수를 baseColors(그레이 스케일)를 경유해 정의한다.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const dividerColors = {\n subtle: b.gray[50], // #f2f2f2\n default: b.gray[100], // #e3e3e3\n strong: b.gray[150], // #c9c9c9\n};\n","// 칩(chip) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — chip 컴포넌트 (state Default/hover/pressed × size 22 × color gray/red/blue/black)\n// chip/* 변수를 baseColors 경유로 정의. pressed는 Figma에서 default 토큰 재사용(별도 없음).\n// color별로 default/hover 두 상태를 둔다(text=icon 동일 값).\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\n// (defText, defBg, defLine, hovText, hovBg, hovLine) — icon은 text와 동일 값이라 별도로 두지 않고 상속시킨다.\nconst make = (defText: string, defBg: string, defLine: string, hovText: string, hovBg: string, hovLine: string) => ({\n 'default-text': defText,\n 'default-icon': defText,\n 'default-bg': defBg,\n 'default-line': defLine,\n 'hover-text': hovText,\n 'hover-icon': hovText,\n 'hover-bg': hovBg,\n 'hover-line': hovLine,\n});\n\nexport const chipColors = {\n // gray : text/icon gray900 · bg white · line gray100 / hover bg gray50 · line gray150\n gray: make(b.gray[900], b.white, b.gray[100], b.gray[900], b.gray[50], b.gray[150]),\n // red : text/icon red400 · bg white · line red100 / hover bg red50 · line red150\n red: make(b.red[400], b.white, b.red[100], b.red[400], b.red[50], b.red[150]),\n // blue : text/icon blue400 · bg white · line blue100 / hover bg blue50 · line blue150\n blue: make(b.blue[400], b.white, b.blue[100], b.blue[400], b.blue[50], b.blue[150]),\n // black : text/icon white · bg/line gray500 / hover text/icon gray150 · bg/line gray400\n black: make(b.white, b.gray[500], b.gray[500], b.gray[150], b.gray[400], b.gray[400]),\n // ── 함수 계열 대응 색(2026-07-15 추가) — 수식 함수 컬러(formula-*)와 짝: green=AND·OR /\n // violet=SUM계열 / pink=CAPMAX계열 / orange=FITBYSCORE계열 (blue=IF는 기존). 사다리 동일(400/100/50/150).\n green: make(b.green[400], b.white, b.green[100], b.green[400], b.green[50], b.green[150]),\n violet: make(b.violet[400], b.white, b.violet[100], b.violet[400], b.violet[50], b.violet[150]),\n pink: make(b.pink[400], b.white, b.pink[100], b.pink[400], b.pink[50], b.pink[150]),\n orange: make(b.orange[400], b.white, b.orange[100], b.orange[400], b.orange[50], b.orange[150]),\n};\n","// 옵션 목록(List/ListGroup/ListEmpty/PopoverMenu) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — option list (node 7207:1652)\n// list/* , empty/* , popover-menu/* , scroll(default-bar) 변수를 baseColors 경유로 정의.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const listColors = {\n // list 행 상태별\n 'default-bg': b.white, // #ffffff\n 'default-text': b.gray[900], // #0d0d0d\n 'default-icon': b.gray[900], // #0d0d0d\n 'hover-bg': b.gray[50], // #f2f2f2\n 'pressed-bg': b.white, // #ffffff (default와 동일 — 눌림은 순간 효과)\n 'selected-text': b.blue[400], // #0f85f2 (선택 시 텍스트 파란색)\n 'selected-icon': b.blue[400], // #0f85f2 (선택 시 chevron 파란색)\n 'disabled-text': b.gray[150], // #c9c9c9\n 'disabled-icon': b.gray[150], // #c9c9c9\n // list group\n 'group-bg': b.white,\n // empty\n 'empty-bg': b.white, // #ffffff\n 'empty-text': b.gray[300], // #878787\n // popover menu\n 'popover-bg': b.gray[100], // #e3e3e3\n 'popover-outline': b['gray-900-75'], // #0d0d0d54 (gray.900 알파 75)\n // scroll thumb (default / hover)\n 'scroll-bar': b['gray-900-50'], // #0d0d0d29\n 'scroll-bar-hover': b['gray-900-75'], // #0d0d0d54\n // scroll thumb — light(어두운 배경 위) 변형\n 'scroll-bar-light': b['white-75'], // #ffffff54\n 'scroll-bar-light-hover': b['white-100'], // #ffffff7a\n};\n","// 태그(Tag) 시멘틱 컬러 토큰\n// Figma \"solid/*\" 변수(solid/bg · solid/title) — color별 bg / text.\n// blue : bg blue 400 알파 16%(#0f85f229) / text blue 400(#0f85f2)\n// red : bg red 400 알파 16%(#e74a4a29) / text red 400(#e74a4a)\n// gray : bg gray 900 알파(#0d0d0d12) / text gray 600(#3f3f3f)\n// black : bg gray 500 솔리드(#505050) / text white(#ffffff) ← Figma 변형명 'color4'\n// (Chip black과 동일 값. Figma 변형명은 추후 black으로 정리 권장)\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const tagColors = {\n 'blue-bg': b['blue-400-50'], // #0f85f229\n 'blue-text': b.blue[400], // #0f85f2\n 'red-bg': b['red-400-50'], // #e74a4a29\n 'red-text': b.red[400], // #e74a4a\n 'gray-bg': b['gray-900-25'], // #0d0d0d12\n 'gray-text': b.gray[600], // #3f3f3f\n 'black-bg': b.gray[500], // #505050\n 'black-text': b.white, // #ffffff\n};\n","// 뉴 태그(NewTag) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — new tag (node 8187:40848, 변수 new tag/bg·new tag/title)\n// 원형 'N' 뱃지. color variant(blue/red/black)별 배경 + 공통 흰 텍스트.\n// 값은 전부 기존 base 토큰 매핑(blue.400/red.400/gray.500/white) — 누락 0.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const newTagColors = {\n 'title': b.white, // #ffffff — 'N' 텍스트(new tag/title)\n 'blue-bg': b.blue[400], // #0f85f2 (new tag/bg, color=blue)\n 'red-bg': b.red[400], // #e74a4a (color=red)\n 'black-bg': b.gray[500], // #505050 (color=black — Tag/Chip black과 동일 계열)\n};\n","// 사이드 내비게이션(SideNavigation) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — side navigation button (8200:51452) / side navigation (8200:51519)\n// 변수 add side navi/* 매핑. 값은 전부 기존 base 토큰(누락 0 — ask 불필요 판례).\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const sideNavColors = {\n 'default-text': b.gray[600], // #3f3f3f (add side navi/default text·icon)\n 'default-icon': b.gray[600],\n 'hover-text': b.gray[900], // #0d0d0d (hover text·icon)\n 'hover-icon': b.gray[900],\n 'hover-bg': b['gray-900-25'], // #0d0d0d12 (hover bg)\n 'select-text': b.blue[400], // #0f85f2 (select text·icon)\n 'select-icon': b.blue[400],\n 'select-bg': b['blue-400-50'], // #0f85f229 (select bg)\n 'disabled-text': b.gray[150], // #c9c9c9 (disabled text·icon)\n 'disabled-icon': b.gray[150],\n 'right-line': b.gray[100], // #e3e3e3 (컨테이너 우측 구분선, add side navi/right line)\n};\n","// 조건 정렬 슬롯(ConditionOrderSlot) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — ConditionSlotCard (8219:80364) / ConditionOrderSlot (8219:80583)\n// 변수 ConditionOrderSlot/* 매핑. 값은 전부 기존 base 토큰(누락 0 — ask 불필요 판례).\n// pressed = 드래그 앤 드롭 중 유지되는 상태(blue.400 라인·텍스트).\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const conditionOrderSlotColors = {\n 'card-default-text': b.gray[900], // #0d0d0d (default card text·icon)\n 'card-default-icon': b.gray[900],\n 'card-default-bg': b.white, // #ffffff\n 'card-default-line': b.gray[150], // #c9c9c9\n 'card-hover-text': b.gray[900], // #0d0d0d\n 'card-hover-icon': b.gray[900],\n 'card-hover-bg': b.gray[25], // #fafafa\n 'card-hover-line': b.gray[250], // #999999\n 'card-pressed-text': b.blue[400], // #0f85f2 (드래그 중)\n 'card-pressed-icon': b.blue[400],\n 'card-pressed-bg': b.blue[25], // #f6fafe (2026-07-07 재조정 — blue.50 → blue.25)\n 'card-pressed-line': b.blue[400],\n 'slot-bg': b.gray[50], // #f2f2f2 (컨테이너 슬롯 배경)\n};\n","// 스크리닝 조건 카드(ScreeningConditionCard) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — ConditionCard (8243:88380), 변수 condition-card/* 매핑.\n// 값은 전부 기존 base 토큰(누락 0 — ask 불필요).\n// drop = 드래그 중 상태(파란 아웃라인·텍스트, bg는 hover와 공유 — Figma state3이 hover-card-bg 참조).\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const conditionCardColors = {\n 'default-card-bg': b.white, // #ffffff\n 'default-card-line': b['gray-900-25'], // #0d0d0d12 (2026-07-16 — gray-900 알파 3단계, 배경 투영. 원값 gray.150→100→알파)\n 'default-card-text': b.gray[900], // #0d0d0d\n 'hover-card-bg': b.gray[25], // #fafafa (blue.25 시도 후 원복 — 2026-07-16)\n 'hover-card-line': b['gray-900-75'], // #0d0d0d54 (2026-07-16 — gray-900 알파 5단계(33%), 배경 투영. 원값 gray.250)\n 'hover-card-text': b.blue[400], // #0f85f2 (2026-07-16 — hover 시 grip·카드명 파랑. 원값 gray.900)\n 'drop-outline': b.blue[400], // #0f85f2 (드래그 중 라인)\n 'drop-text': b.blue[400], // #0f85f2 (드래그 중 텍스트·아이콘)\n};\n","// 스크리닝 수식(ScreeningFormula) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — Formula (8383:112161)·함수 조건 색상표 (8384:114813),\n// 변수 Formula/* 매핑. 함수 계열마다 고유 텍스트 컬러(2026-07-13 추가한 base 유채색이 이 용도).\n// default 아웃라인은 전 계열 공통(#e3e3e3), hover 아웃라인은 계열 색을 따른다.\n// ※ hover-logical/hover-evaluation 아웃라인은 Figma에서 미확인(사용 노드 없음) —\n// 확인된 계열 패턴(aggregate=violet.400, score-limit=pink.400)을 따라 각 400으로 등록. 상이하면 조정.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const formulaColors = {\n 'default-bg': b.white, // Formula/default bg\n 'default-text': b.gray[900], // #0d0d0d (설명 코멘트 텍스트 — Formula/default-text)\n 'hover-bg': b.gray[25], // #fafafa (2026-07-16 확정 — hover 시 수식 배경)\n 'default-outline': b.gray[100], // Formula/default * outline (#e3e3e3, 전 계열 공통)\n parentheses: b.gray[150], // 괄호 ( ) — #c9c9c9\n comparison: b.gray[900], // 비교 연산자 ==, 콤마 — #0d0d0d\n // 함수 계열 텍스트 컬러 (Formula/{family} functions)\n logical: b.green[400], // AND, OR — #0daf4e\n conditional: b.blue[400], // IF — #0f85f2\n aggregate: b.violet[400], // SUM, MAX, MIN, COUNTIF — #7c57ef\n 'score-limit': b.pink[400], // CAPMAX, CAPMIN — #f246b9\n evaluation: b.orange[400], // FITBYSCORE, UNFITBYSCORE — #f06e2d\n // hover 아웃라인 (Formula/hover {family} outline) — 계열 색 추종\n 'hover-logical-outline': b.green[400], // (패턴 유추 — Figma 확인 시 조정)\n 'hover-conditional-outline': b.blue[300], // #41a2fd (IF만 300 — Figma 확정값)\n 'hover-aggregate-outline': b.violet[400], // #7c57ef (확정)\n 'hover-score-limit-outline': b.pink[400], // #f246b9 (확정)\n 'hover-evaluation-outline': b.orange[400], // (패턴 유추 — Figma 확인 시 조정)\n // '조건 추가' dashed 드롭 존 (Formula/add default|drop * — FormulaAdd 8384:113414, 카드 드롭 대상)\n 'add-text': b.gray[300], // #878787\n 'add-bg': b.white,\n 'add-outline': b.gray[150], // #c9c9c9\n 'add-drop-text': b.gray[900], // #0d0d0d (드래그 중 위에 올렸을 때)\n 'add-drop-bg': b.gray[100], // #e3e3e3\n 'add-drop-outline': b.gray[300], // #878787\n // compact(요약) 칩 — 파란 텍스트·연파랑 라인 (Figma compact 변형의 chip 값)\n 'compact-chip-text': b.blue[400], // #0f85f2\n 'compact-chip-line': b.blue[100], // #e6f3fe\n};\n","// 스크리닝 빌더 영역(AddFormulaArea) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — AddFormulaArea (8391:127196), 변수 builder-area/* 매핑.\n// 수식 존의 카드 드롭 대상 스트립(\"+ 다른 조건을 여기에 끌어다 놓기\"). Default/hover(드래그 오버) 2상태.\n// 값은 전부 기존 base 토큰(누락 0).\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const builderAreaColors = {\n 'add-default-bg': b.gray[25], // #fafafa\n 'add-default-outline': b.gray[150], // #c9c9c9 (dashed)\n 'add-default-text': b.gray[900], // #0d0d0d\n 'add-hover-bg': b.gray[100], // #e3e3e3 (드래그 오버)\n 'add-hover-outline': b.gray[250], // #999999\n // 빌더 전체(카드+수식 영역)를 감싸는 라인 박스(2026-07-16 사용자 지정 — 흰 bg·gray.100 라인)\n 'box-bg': b.white,\n 'box-line': b.gray[100], // #e3e3e3 (박스 외곽선 + 카드↔빌더 구분선 공용)\n 'card-area-bg': b.gray[25], // #fafafa (조건 카드 영역 배경 — 2026-07-16 지정)\n // 수식 영역 고정 헤더 배경 — 위(흰색 100%)→아래(흰색 0%) 세로 그라디언트(2026-07-14 지시).\n // 스크롤 콘텐츠가 헤더 아래로 지나가며 점차 사라져 보인다.\n 'header-fade-top': b.white, // #ffffff (불투명)\n 'header-fade-bottom': b['white-00'], // #ffffff00 (투명)\n};\n","// 툴바(ToolBar) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — tool bar (8389:126993).\n// 체크 선택 시 나타나는 플로팅 액션 툴바. 배경은 위(white)→아래(gray.50) 그라데이션,\n// 라인은 gray-900 알파 50(배경 투영). 값은 전부 기존 base 토큰(누락 0).\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const toolbarColors = {\n 'bg-top': b.white, // 그라데이션 위쪽 (Figma to-white)\n 'bg-bottom': b.gray[50], // 그라데이션 아래쪽 #f2f2f2 (Figma from-gray/50)\n line: b['gray-900-50'], // #0d0d0d29 (알파 — 배경 투영)\n};\n","// 아코디언(Accordion) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — accordion (8416:35290) / accordion list SET (8416:35043),\n// 변수 list-name 매핑. 값은 기존 base 토큰(누락 0). 구분선은 divider 토큰(Divider 컴포넌트) 재사용.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const accordionColors = {\n 'list-name': b.gray[900], // #0d0d0d (리스트 네임 텍스트)\n};\n","// 세그먼트 탭(SegmentedTabs) 시멘틱 컬러 토큰\n// Figma file h9jZFkEHfcHUGok1TZjjlP — segmented tab button (8241:88277) / Segmented Tabs (8241:88288)\n// segmented/* 변수 매핑. 값은 전부 기존 base 토큰(누락 0 — ask 불필요).\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const segmentedColors = {\n 'tab-bg': b.gray[50], // #f2f2f2 (트랙 배경, segmented/tab bg)\n 'select-bg': b.white, // #ffffff (선택 배경 pill, segmented/select bg)\n 'select-line': b['gray-900-10'], // #0d0d0d08 (선택 pill 1px 아웃라인 — 한 단계 더 투명, 2026-07-08 지시)\n 'select-text': b.gray[900], // #0d0d0d (선택 탭 텍스트, segmented/select text)\n 'unselect-text': b.gray[300], // #878787 (미선택 텍스트, segmented/unselect text)\n 'hover-text': b.blue[400], // #0f85f2 (hover 텍스트, segmented/hover text)\n 'disabled-text': b.gray[150], // #c9c9c9 (비활성 텍스트 — unselect보다 한 단계 옅게, DS 표준 disabled=font-icon-2, 2026-07-08)\n};\n","// 체크박스(Checkbox) 시멘틱 컬러 토큰\n// Figma \"check/*\" 변수 — 상태별 box 채움(bg) · point(체크마크) · outline(hover ring) · text.\n// unselected: 회색 채움 / selected: blue 채움 + 흰 체크\n// hover: 바깥 ring 색 표시 / disabled: 연하게\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const checkboxColors = {\n // unselected — box 채움(bg)\n 'unselected-bg': b['gray-900-75'], // #0d0d0d54\n 'hover-outline': b['gray-900-100'], // #0d0d0d7a (hover ring)\n 'disabled-bg': b['gray-900-25'], // #0d0d0d12\n // selected — box 채움(bg)\n 'selected-bg': b.blue[400], // #0f85f2\n 'selected-hover-outline': b['blue-400-200'], // #0f85f2a6 (hover ring)\n 'selected-disabled-bg': b['blue-400-50'], // #0f85f229\n // 체크마크(point)\n 'check': b.white, // #ffffff\n 'disabled-check': b.blue[400], // #0f85f2 (selected disabled)\n // 라벨\n 'text': b.gray[900], // #0d0d0d\n 'disabled-text': b.gray[300], // #878787\n};\n","// 라디오 버튼(Radio) 시멘틱 컬러 토큰\n// Figma \"check/*\" 변수 — 상태별 circle 채움(bg) · point(가운데 점) · outline(hover ring) · text.\n// unselected: 회색 채움 / selected: blue 채움 + 흰 점(point)\n// hover: 바깥 ring 색 표시 / disabled: 연하게(selected disabled는 연한 blue + blue 점)\n// 값은 Checkbox와 동일한 check/* 토큰을 공유하지만, 컴포넌트별 컬러 파일 관례를 따라 별도 정의한다.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const radioColors = {\n // unselected — circle 채움(bg)\n 'unselected-bg': b['gray-900-75'], // #0d0d0d54\n 'hover-outline': b['gray-900-100'], // #0d0d0d7a (hover ring)\n 'disabled-bg': b['gray-900-25'], // #0d0d0d12\n // selected — circle 채움(bg)\n 'selected-bg': b.blue[400], // #0f85f2\n 'selected-hover-outline': b['blue-400-200'], // #0f85f2a6 (hover ring)\n 'selected-disabled-bg': b['blue-400-50'], // #0f85f229\n // 가운데 점(point)\n 'point': b.white, // #ffffff (selected default/hover)\n 'disabled-point': b.blue[400], // #0f85f2 (selected disabled)\n // 라벨\n 'text': b.gray[900], // #0d0d0d\n 'disabled-text': b.gray[300], // #878787\n};\n","// 스위치 토글(Switch) 시멘틱 컬러 토큰\n// Figma \"check/*\" 변수 — 상태별 track 채움(bg) · thumb(손잡이) · outline(hover ring) · text.\n// off: 회색 track + 흰 thumb(좌측) / on: blue track + 흰 thumb(우측)\n// hover: 바깥 ring 색 표시\n// disabled: off=연한 회색 track + 진회색 thumb / on=연한 blue track + blue thumb (둘 다 그림자 없음)\n// 값은 Radio/Checkbox와 동일한 check/* 토큰을 공유하지만, 컴포넌트별 컬러 파일 관례를 따라 별도 정의한다.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const switchColors = {\n // off(unselected) — track 채움(bg)\n 'unselected-bg': b['gray-900-75'], // #0d0d0d54 (렌더 ≈ #afafaf)\n 'hover-outline': b['gray-900-100'], // #0d0d0d7a (hover ring)\n 'disabled-bg': b['gray-900-25'], // #0d0d0d12 (렌더 ≈ #eeeeee)\n // on(selected) — track 채움(bg)\n 'selected-bg': b.blue[400], // #0f85f2\n 'selected-hover-outline': b['blue-400-200'], // #0f85f2a6 (hover ring)\n 'selected-disabled-bg': b['blue-400-50'], // #0f85f229 (렌더 ≈ #d8ebfc)\n // thumb(손잡이)\n 'thumb': b.white, // #ffffff (off/on default·hover)\n 'disabled-thumb': b.blue[400], // #0f85f2 (on + disabled)\n 'disabled-thumb-off': b.gray[300], // #878787 (off + disabled, 진회색)\n // 라벨\n 'text': b.gray[900], // #0d0d0d\n 'disabled-text': b.gray[300], // #878787\n};\n","// 탭(Tabs) 시멘틱 컬러 토큰 — Figma \"tab *\" 변수 (node 7371:3233)\n// default: 회색 텍스트 / hover·select: 진한 텍스트 + 하단 underline\n// disabled: 연한 회색 / group: 그룹 하단 구분선\n// 색은 base 그레이를 경유해 정의(하드코딩 금지).\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const tabColors = {\n 'default-text': b.gray[300], // #878787 (미선택)\n 'hover-text': b.gray[900], // #0d0d0d\n 'selected-text': b.gray[900], // #0d0d0d (선택)\n 'disabled-text': b.gray[150], // #c9c9c9 (비활성)\n 'selected-underline': b.gray[900], // #0d0d0d (선택 하단 2px)\n 'hover-underline': b.gray[900], // #0d0d0d (hover 하단 2px)\n 'group-underline': b.gray[100], // #e3e3e3 (그룹 하단 1px)\n};\n","// 테이블(Table) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — table (node 7257:1925)\n// header row bg / table inline(셀 구분선) / table outline(외곽선) / body row bg 변수를\n// baseColors 경유로 정의. 텍스트는 font-icon-5(메인), 스크롤 thumb는 ScrollArea(listColors) 재사용.\n// row-hover-bg는 Figma \"table body hover row\" 상태값으로, list-page 규칙(gray-25)과 동일 톤.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const tableColors = {\n 'header-bg': b['gray-900-25'], // #0d0d0d12 — 알파 배경(헤더 행, 2026-07-02 gray.50→gray-900-25)\n 'header-line': b.gray[125], // #d6d6d6 — 헤더 구분선(2026-07-03 gray150→125: cell-line(100)과 150의 중간색)\n 'cell-line': b.gray[100], // #e3e3e3 (바디 셀 사이 구분선)\n 'outline': b.gray[100], // #e3e3e3 (테이블 외곽선)\n 'row-bg': b.white, // #ffffff (바디 행 기본 배경)\n 'row-hover-bg': b.gray[25], // #fafafa (행 hover 배경)\n};\n","// 모달(Modal) 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — modal (node 7349:1758474)\n// overlay-bg(딤 배경) / inline(헤더·바디·푸터 사이 1px 구분선) / outline(ModalBox 외곽선) /\n// panel-bg(헤더·바디·푸터 배경)을 baseColors 경유로 정의한다.\n// description-bg(Confirm/AlertModal의 2뎁스 상세 설명 박스 배경)도 여기서 정의한다.\n// 타이틀·본문 텍스트는 font-icon(fontIconColors), 푸터 버튼은 Button(buttonColors) 재사용.\n\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const modalColors = {\n overlay: b['gray-900-25'], // #0d0d0d12 (rgba 13,13,13,0.07) — 딤 배경\n inline: b.gray[100], // #e3e3e3 — ModalBox 배경(1px gap이 구분선으로 비침)\n outline: b['gray-900-50'], // #0d0d0d29 — ModalBox 외곽선(1px)\n 'panel-bg': b.white, // #ffffff — 헤더·바디·푸터 배경\n 'description-bg': b.gray[50], // #f2f2f2 — Confirm/AlertModal 2뎁스 상세 설명 박스 배경\n};\n","// 캘린더(DatePicker) 날짜 셀 시멘틱 컬러 토큰\n// Figma file: h9jZFkEHfcHUGok1TZjjlP — date picker / calendar day button (node 7592:3061)\n// day(기본)·muted(다른 달)·today·select(선택/범위 끝)·range(범위 안) 상태별 색을\n// baseColors 경유로 정의한다(하드코딩 금지).\nimport { baseColors } from '../colors';\n\nconst b = baseColors.base;\n\nexport const calendarColors = {\n // 기본(선택 가능한 이번 달 날짜)\n 'day-bg': b.white, // #ffffff\n 'day-text': b.gray[900], // #0d0d0d\n 'hover-bg': b.gray[50], // #f2f2f2 — 기본 날짜 hover(List hover와 동일)\n // 다른 달 날짜(흐림)\n 'muted-text': b.gray[150], // #c9c9c9\n // 오늘\n 'today-bg': b.gray[500], // #505050\n 'today-text': b.white, // #ffffff\n // 선택 / 범위 시작·끝\n 'selected-bg': b.blue[400], // #0f85f2\n 'selected-text': b.white, // #ffffff\n // 범위 안(start~end 사이)\n 'range-bg': b.blue[100], // #e6f3fe\n 'range-text': b.blue[400], // #0f85f2\n};\n","// 텍스트 에디터(Editor) 시멘틱 컬러 토큰\n// 에디터 크롬(외곽선/툴바/구분선/활성 버튼/소스·코드 영역/링크)과\n// 본문에서 사용자가 고를 수 있는 글자색·형광(highlight) 팔레트를 baseColors 경유로 정의한다.\n// - 크롬 색은 tailwind에 `editor` 그룹으로 노출되어 클래스(bg-editor-*, text-editor-* 등)로 사용.\n// - 팔레트(textPalette/highlightPalette)는 Tiptap color/highlight 명령에 값으로 전달된다.\n// (Tiptap이 style 속성에 색을 인라인으로 박으므로 값 자체가 토큰에서 나와야 규칙을 지킨다 —\n// Tooltip/ScrollArea/Table의 \"토큰값 인라인\" 예외와 동일.)\n\nimport { baseColors } from '../colors';\nimport { tableColors } from './tableColors';\nimport { fontIconColors } from '../fontIconColors';\n\nconst b = baseColors.base;\n\nexport const editorColors = {\n outline: tableColors['cell-line'], // #e3e3e3 — 에디터 외곽선(인라인 표 셀 구분선과 동일 색으로 연동)\n 'toolbar-bg': b.gray[25], // #fafafa — 툴바 배경\n divider: b.gray[100], // #e3e3e3 — 툴바 그룹/모드 구분선\n 'btn-active-bg': b.gray[100], // #e3e3e3 — 활성(toggle on) 버튼 배경\n 'btn-active-fg': b.blue[400], // #0f85f2 — 활성 버튼 아이콘색\n link: b.blue[400], // #0f85f2 — 본문 링크색\n 'code-bg': b.gray[100], // #e3e3e3 — 인라인 코드 배경\n 'code-text': b.gray[900], // #0d0d0d — 인라인 코드 텍스트\n 'block-bg': b.gray[25], // #fafafa — 코드블록/인용 배경\n 'source-bg': b.gray[900], // #0d0d0d — HTML 소스 영역 배경(어두운 코드 톤)\n 'source-text': b.white, // #ffffff — HTML 소스 텍스트\n placeholder: b.gray[300], // #878787 — 빈 본문 placeholder\n};\n\n// 글자색 팔레트 — 본문 텍스트에 적용할 수 있는 토큰 기반 색(자유 HEX 금지).\n// swatch: 스와치(원) 표시색만 별도 지정(값은 null이라도 디폴트 글자색을 원 안에 보여줌).\nexport const editorTextPalette = [\n { label: '기본', value: null, swatch: fontIconColors[5] }, // null = 색 해제(unsetColor), 원은 디폴트 글자색(font-icon-5)\n { label: '회색', value: b.gray[300] }, // #878787\n { label: '빨강', value: b.red[400] }, // #e74a4a\n { label: '파랑', value: b.blue[400] }, // #0f85f2\n];\n\n// 형광(highlight) 팔레트 — 옅은 톤 배경 강조.\nexport const editorHighlightPalette = [\n { label: '없음', value: null }, // null = 형광 해제(unsetHighlight)\n { label: '회색', value: b.gray[100] }, // #e3e3e3\n { label: '빨강', value: b.red[100] }, // #fde1e1\n { label: '파랑', value: b.blue[100] }, // #e6f3fe\n];\n","// Figma \"Spacing 토큰\" (node 7013:50)에서 추출한 간격 토큰\n// 갭(gap)·마진(margin)·패딩(padding) 등에 공통으로 사용합니다.\n// Tailwind 기본 spacing 스케일(p-1, gap-2 등)과 겹치지 않도록\n// \"spacing-N\" 형태의 키로 등록해 별도 네임스페이스로 분리했습니다.\n\nexport const spacing = {\n 'spacing-none': '0px',\n 'spacing-1': '1px',\n 'spacing-2': '2px',\n 'spacing-3': '4px',\n 'spacing-4': '6px',\n 'spacing-5': '8px',\n 'spacing-5-5': '10px', // 중간 스텝(2026-07-02 추가) — 테이블 셀 좌우 패딩 등. 기존 키 순번 유지를 위해 중간 키 사용\n 'spacing-6': '12px',\n 'spacing-7': '16px',\n 'spacing-8': '20px',\n 'spacing-9': '24px',\n 'spacing-10': '28px',\n 'spacing-11': '32px',\n 'spacing-12': '36px',\n};\n","// Figma \"Round 토큰\" (node 7013:199)에서 추출한 모서리 둥글기 토큰\n// 표 마지막 행 \"spacing 10 / 48px\"는 Figma에서 복사 중 잘못 들어간\n// 항목으로 판단되어 제외했습니다 (사용자 확인 완료).\n// \"round-00\"은 완전한 원/필 형태에 사용하는 큰 값(999px)입니다.\n\nexport const radius = {\n 'round-2': '2px',\n 'round-3': '4px',\n 'round-4': '6px',\n 'round-5': '8px',\n 'round-6': '10px',\n 'round-7': '12px',\n 'round-8': '16px',\n 'round-9': '20px',\n 'round-10': '24px',\n 'round-11': '28px',\n 'round-12': '32px',\n 'round-00': '999px',\n};\n","// Figma \"border 토큰\" (node 7013:273)에서 추출한 테두리 두께 토큰\n// 키를 숫자로 등록해 Tailwind가 border-1, border-2 ... 클래스를\n// 그대로 생성하도록 합니다 (Figma 토큰명 \"border N\"과 1:1 대응).\n\nexport const borderWidth = {\n 1: '1px',\n 2: '2px',\n 3: '3px',\n 4: '4px',\n};\n","// 아이콘 시스템 기본값 — Lucide 아이콘(lucide-react) 사용을 전제로 합니다.\n// Lucide는 윤곽선(stroke) 기반 아이콘이므로 fill은 사용하지 않고\n// stroke 색상·두께만 지정합니다.\n\nimport { fontIconColors } from './fontIconColors';\n\nexport const iconTokens = {\n size: 16,\n strokeWidth: 1.8,\n // 아이콘 기본 색상 — 폰트 기본 색상과 동일한 시멘틱 토큰(font / icon color 5)을 그대로 참조\n color: fontIconColors[5],\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { A as e, C as t, D as n, E as r, F as i, M as a, N as o, O as s, P as c, S as l, T as u, _ as d, a as f, b as p, c as m, d as h, f as g, g as _, h as v, i as y, j as b, k as x, l as S, m as C, n as w, o as T, p as E, r as D, s as O, t as k, u as A, v as j, w as M, x as N, y as P } from "./tokens-CbcaxhkP.js";
|
|
2
|
+
export { _ as accordionColors, a as baseColors, w as borderWidth, j as builderAreaColors, e as buttonColors, m as calendarColors, C as checkboxColors, r as chipColors, p as conditionCardColors, N as conditionOrderSlotColors, n as dividerColors, f as editorColors, T as editorHighlightPalette, O as editorTextPalette, o as fontFamily, b as fontIconColors, c as fontSize, P as formulaColors, k as iconTokens, s as labelFieldColors, i as lineHeight, u as listColors, S as modalColors, t as newTagColors, E as radioColors, D as radius, v as segmentedColors, l as sideNavColors, y as spacing, g as switchColors, h as tabColors, A as tableColors, M as tagColors, x as textFieldColors, d as toolbarColors };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function formatDate(date?: Date | null): string;
|
|
2
|
+
export declare function formatDateTime(date?: Date | null, time?: string | Date | null): string;
|
|
3
|
+
export declare function formatDateTimeRange(start?: Date | null, startTime?: string | Date | null, end?: Date | null, endTime?: string | Date | null, { emptyStartLabel, emptyEndLabel }?: {
|
|
4
|
+
emptyStartLabel?: string;
|
|
5
|
+
emptyEndLabel?: string;
|
|
6
|
+
}): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function formatPhoneNumber(raw: string | number | null | undefined): string;
|
package/package.json
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gusun/design-system",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"dev": "vite",
|
|
7
|
+
"build": "vite build",
|
|
8
|
+
"lint": "eslint .",
|
|
9
|
+
"preview": "vite preview",
|
|
10
|
+
"check:rules": "node scripts/check-rules.mjs",
|
|
11
|
+
"check:render": "npx esbuild scripts/smoke-render.jsx --bundle --format=cjs --jsx=automatic --platform=node --outfile=node_modules/.cache/smoke-render.cjs --log-level=error && node node_modules/.cache/smoke-render.cjs",
|
|
12
|
+
"check:types": "tsc --noEmit",
|
|
13
|
+
"build:lib": "vite build --config vite.lib.config.ts",
|
|
14
|
+
"build:css": "tailwindcss -c tailwind.config.js -i ./src/index.css -o ./dist-lib/styles.css --minify",
|
|
15
|
+
"build:preset": "npx esbuild tailwind.preset.js --bundle --format=esm --platform=neutral --outfile=dist-lib/tailwind-preset.mjs --log-level=error && npx esbuild tailwind.preset.js --bundle --format=cjs --platform=neutral --outfile=dist-lib/tailwind-preset.cjs --log-level=error",
|
|
16
|
+
"build:package": "npm run build:lib && npm run build:css && npm run build:preset",
|
|
17
|
+
"prepublishOnly": "npm run check:types && npm run build:package",
|
|
18
|
+
"check:focus": "npx esbuild scripts/focus-trap-test.mjs --bundle --format=esm --platform=node --packages=external --outfile=node_modules/.cache/focus-trap-test.mjs --log-level=error && node node_modules/.cache/focus-trap-test.mjs"
|
|
19
|
+
},
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"lucide-react": "^1.17.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@eslint/js": "^10.0.1",
|
|
25
|
+
"@tiptap/core": "^3.27.0",
|
|
26
|
+
"@tiptap/extension-color": "^3.27.0",
|
|
27
|
+
"@tiptap/extension-highlight": "^3.27.0",
|
|
28
|
+
"@tiptap/extension-image": "^3.27.0",
|
|
29
|
+
"@tiptap/extension-link": "^3.27.0",
|
|
30
|
+
"@tiptap/extension-table": "^3.27.0",
|
|
31
|
+
"@tiptap/extension-table-cell": "^3.27.0",
|
|
32
|
+
"@tiptap/extension-table-header": "^3.27.0",
|
|
33
|
+
"@tiptap/extension-table-row": "^3.27.0",
|
|
34
|
+
"@tiptap/extension-text-align": "^3.27.0",
|
|
35
|
+
"@tiptap/extension-text-style": "^3.27.0",
|
|
36
|
+
"@tiptap/extension-underline": "^3.27.0",
|
|
37
|
+
"@tiptap/pm": "^3.27.0",
|
|
38
|
+
"@tiptap/react": "^3.27.0",
|
|
39
|
+
"@tiptap/starter-kit": "^3.27.0",
|
|
40
|
+
"@types/react": "^19.2.17",
|
|
41
|
+
"@types/react-dom": "^19.2.3",
|
|
42
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
43
|
+
"autoprefixer": "^10.5.0",
|
|
44
|
+
"eslint": "^10.3.0",
|
|
45
|
+
"eslint-plugin-react-hooks": "^7.1.1",
|
|
46
|
+
"eslint-plugin-react-refresh": "^0.5.2",
|
|
47
|
+
"globals": "^17.6.0",
|
|
48
|
+
"jsdom": "^29.1.1",
|
|
49
|
+
"postcss": "^8.5.15",
|
|
50
|
+
"react": "^19.2.6",
|
|
51
|
+
"react-dom": "^19.2.6",
|
|
52
|
+
"react-markdown": "^10.1.0",
|
|
53
|
+
"remark-gfm": "^4.0.1",
|
|
54
|
+
"tailwindcss": "^3.4.19",
|
|
55
|
+
"typescript": "^6.0.3",
|
|
56
|
+
"typescript-eslint": "^8.64.0",
|
|
57
|
+
"vite": "^8.0.12",
|
|
58
|
+
"vite-plugin-dts": "^5.0.3"
|
|
59
|
+
},
|
|
60
|
+
"license": "ATS",
|
|
61
|
+
"description": "코드↔Figma 동기화 디자인 시스템 — 토큰 기반 React 컴포넌트 라이브러리",
|
|
62
|
+
"repository": {
|
|
63
|
+
"type": "git",
|
|
64
|
+
"url": "https://github.com/love9320-glitch/enterprise-design-system.git"
|
|
65
|
+
},
|
|
66
|
+
"sideEffects": [
|
|
67
|
+
"*.css"
|
|
68
|
+
],
|
|
69
|
+
"files": [
|
|
70
|
+
"dist-lib"
|
|
71
|
+
],
|
|
72
|
+
"main": "./dist-lib/index.js",
|
|
73
|
+
"module": "./dist-lib/index.js",
|
|
74
|
+
"types": "./dist-lib/index.d.ts",
|
|
75
|
+
"exports": {
|
|
76
|
+
".": {
|
|
77
|
+
"types": "./dist-lib/index.d.ts",
|
|
78
|
+
"import": "./dist-lib/index.js"
|
|
79
|
+
},
|
|
80
|
+
"./editor": {
|
|
81
|
+
"types": "./dist-lib/editor.d.ts",
|
|
82
|
+
"import": "./dist-lib/editor.js"
|
|
83
|
+
},
|
|
84
|
+
"./tokens": {
|
|
85
|
+
"types": "./dist-lib/tokens/index.d.ts",
|
|
86
|
+
"import": "./dist-lib/tokens.js"
|
|
87
|
+
},
|
|
88
|
+
"./preset": {
|
|
89
|
+
"import": "./dist-lib/tailwind-preset.mjs",
|
|
90
|
+
"require": "./dist-lib/tailwind-preset.cjs"
|
|
91
|
+
},
|
|
92
|
+
"./styles.css": "./dist-lib/styles.css"
|
|
93
|
+
},
|
|
94
|
+
"publishConfig": {
|
|
95
|
+
"access": "public"
|
|
96
|
+
},
|
|
97
|
+
"peerDependencies": {
|
|
98
|
+
"@tiptap/core": "^3.27.0",
|
|
99
|
+
"@tiptap/extension-color": "^3.27.0",
|
|
100
|
+
"@tiptap/extension-highlight": "^3.27.0",
|
|
101
|
+
"@tiptap/extension-image": "^3.27.0",
|
|
102
|
+
"@tiptap/extension-link": "^3.27.0",
|
|
103
|
+
"@tiptap/extension-table": "^3.27.0",
|
|
104
|
+
"@tiptap/extension-table-cell": "^3.27.0",
|
|
105
|
+
"@tiptap/extension-table-header": "^3.27.0",
|
|
106
|
+
"@tiptap/extension-table-row": "^3.27.0",
|
|
107
|
+
"@tiptap/extension-text-align": "^3.27.0",
|
|
108
|
+
"@tiptap/extension-text-style": "^3.27.0",
|
|
109
|
+
"@tiptap/extension-underline": "^3.27.0",
|
|
110
|
+
"@tiptap/pm": "^3.27.0",
|
|
111
|
+
"@tiptap/react": "^3.27.0",
|
|
112
|
+
"@tiptap/starter-kit": "^3.27.0",
|
|
113
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
114
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
115
|
+
},
|
|
116
|
+
"peerDependenciesMeta": {
|
|
117
|
+
"@tiptap/core": {
|
|
118
|
+
"optional": true
|
|
119
|
+
},
|
|
120
|
+
"@tiptap/extension-color": {
|
|
121
|
+
"optional": true
|
|
122
|
+
},
|
|
123
|
+
"@tiptap/extension-highlight": {
|
|
124
|
+
"optional": true
|
|
125
|
+
},
|
|
126
|
+
"@tiptap/extension-image": {
|
|
127
|
+
"optional": true
|
|
128
|
+
},
|
|
129
|
+
"@tiptap/extension-link": {
|
|
130
|
+
"optional": true
|
|
131
|
+
},
|
|
132
|
+
"@tiptap/extension-table": {
|
|
133
|
+
"optional": true
|
|
134
|
+
},
|
|
135
|
+
"@tiptap/extension-table-cell": {
|
|
136
|
+
"optional": true
|
|
137
|
+
},
|
|
138
|
+
"@tiptap/extension-table-header": {
|
|
139
|
+
"optional": true
|
|
140
|
+
},
|
|
141
|
+
"@tiptap/extension-table-row": {
|
|
142
|
+
"optional": true
|
|
143
|
+
},
|
|
144
|
+
"@tiptap/extension-text-align": {
|
|
145
|
+
"optional": true
|
|
146
|
+
},
|
|
147
|
+
"@tiptap/extension-text-style": {
|
|
148
|
+
"optional": true
|
|
149
|
+
},
|
|
150
|
+
"@tiptap/extension-underline": {
|
|
151
|
+
"optional": true
|
|
152
|
+
},
|
|
153
|
+
"@tiptap/pm": {
|
|
154
|
+
"optional": true
|
|
155
|
+
},
|
|
156
|
+
"@tiptap/react": {
|
|
157
|
+
"optional": true
|
|
158
|
+
},
|
|
159
|
+
"@tiptap/starter-kit": {
|
|
160
|
+
"optional": true
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|