sellmate-design-system-react 9.0.0-beta.8 → 9.0.0-beta.80
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/AGENTS.md +3974 -267
- package/README.md +76 -24
- package/bin/sellmate-ds.mjs +91 -59
- package/dist/components/SAccountListBox/AccountListBoxPortal.d.ts +31 -0
- package/dist/components/SAccountListBox/README.md +86 -0
- package/dist/components/SAccountListBox/SAccountListBox.d.ts +79 -0
- package/dist/components/SAccountListBox/SystemMenuPortal.d.ts +58 -0
- package/dist/components/SAccountListBox/accountListBox.config.d.ts +64 -0
- package/dist/components/SAccountListBox/index.d.ts +2 -0
- package/dist/components/SActionModal/README.md +1 -0
- package/dist/components/SActionModal/SActionModal.d.ts +9 -1
- package/dist/components/SBadge/README.md +27 -0
- package/dist/components/SBadge/SBadge.d.ts +1 -1
- package/dist/components/SBarChart/README.md +122 -0
- package/dist/components/SBarChart/SBarChart.d.ts +99 -0
- package/dist/components/SBarChart/barChart.config.d.ts +85 -0
- package/dist/components/SBarChart/index.d.ts +2 -0
- package/dist/components/SBarcodeInput/README.md +14 -4
- package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +25 -3
- package/dist/components/SButton/README.md +40 -0
- package/dist/components/SCalendar/README.md +13 -0
- package/dist/components/SCalendarBoard/CalendarDayCard.d.ts +53 -0
- package/dist/components/SCalendarBoard/CalendarDayEventListBox.d.ts +26 -0
- package/dist/components/SCalendarBoard/CalendarEventButton.d.ts +20 -0
- package/dist/components/SCalendarBoard/CalendarMoreButton.d.ts +18 -0
- package/dist/components/SCalendarBoard/README.md +148 -0
- package/dist/components/SCalendarBoard/SCalendarBoard.d.ts +83 -0
- package/dist/components/SCalendarBoard/calendar-board-layout.d.ts +59 -0
- package/dist/components/SCalendarBoard/calendarBoard.config.d.ts +38 -0
- package/dist/components/SCalendarBoard/index.d.ts +3 -0
- package/dist/components/SCalendarBoard/types.d.ts +40 -0
- package/dist/components/SCallout/README.md +17 -1
- package/dist/components/SCallout/SCallout.d.ts +14 -4
- package/dist/components/SCard/README.md +17 -0
- package/dist/components/SCard/SCard.d.ts +26 -2
- package/dist/components/SChatAttachedFile/README.md +33 -0
- package/dist/components/SChatAttachedFile/SChatAttachedFile.d.ts +13 -0
- package/dist/components/SChatAttachedFile/chatAttachedFile.config.d.ts +23 -0
- package/dist/components/SChatAttachedFile/index.d.ts +2 -0
- package/dist/components/SChatFile/README.md +33 -0
- package/dist/components/SChatFile/SChatFile.d.ts +37 -0
- package/dist/components/SChatFile/chatFile.config.d.ts +56 -0
- package/dist/components/SChatFile/index.d.ts +2 -0
- package/dist/components/SChatInput/README.md +44 -0
- package/dist/components/SChatInput/SChatInput.d.ts +60 -0
- package/dist/components/SChatInput/index.d.ts +1 -0
- package/dist/components/SChatMessage/README.md +86 -0
- package/dist/components/SChatMessage/SChatMessage.d.ts +123 -0
- package/dist/components/SChatMessage/index.d.ts +1 -0
- package/dist/components/SChatSystemMessage/README.md +12 -0
- package/dist/components/SChatSystemMessage/SChatSystemMessage.d.ts +18 -0
- package/dist/components/SChatSystemMessage/index.d.ts +1 -0
- package/dist/components/SCheckbox/README.md +8 -0
- package/dist/components/SChip/README.md +25 -0
- package/dist/components/SChip/SChip.d.ts +8 -0
- package/dist/components/SChip/index.d.ts +1 -1
- package/dist/components/SChipFilter/README.md +369 -14
- package/dist/components/SChipFilter/SChipFilter.d.ts +169 -60
- package/dist/components/SChipFilter/index.d.ts +1 -1
- package/dist/components/SChipInput/README.md +18 -2
- package/dist/components/SChipInput/SChipInput.d.ts +23 -3
- package/dist/components/SChipInput/index.d.ts +1 -1
- package/dist/components/SCircleProgress/README.md +13 -2
- package/dist/components/SCircleProgress/SCircleProgress.d.ts +11 -3
- package/dist/components/SConfirmModal/README.md +13 -4
- package/dist/components/SConfirmModal/SConfirmModal.d.ts +46 -9
- package/dist/components/SContextAlert/README.md +52 -0
- package/dist/components/SContextAlert/SContextAlert.d.ts +51 -0
- package/dist/components/SContextAlert/contextAlert.config.d.ts +22 -0
- package/dist/components/SContextAlert/index.d.ts +2 -0
- package/dist/components/SDatePicker/README.md +22 -2
- package/dist/components/SDatePicker/SDatePicker.d.ts +42 -5
- package/dist/components/SDateRangePicker/README.md +22 -4
- package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +44 -7
- package/dist/components/SDivider/README.md +7 -0
- package/dist/components/SDivider/SDivider.d.ts +11 -0
- package/dist/components/SDonutChart/README.md +105 -0
- package/dist/components/SDonutChart/SDonutChart.d.ts +82 -0
- package/dist/components/SDonutChart/index.d.ts +1 -0
- package/dist/components/SDraggableItem/README.md +37 -0
- package/dist/components/SDraggableItem/SDraggableItem.d.ts +2 -0
- package/dist/components/SDraggableItem/index.d.ts +1 -1
- package/dist/components/SDraggableList/README.md +33 -3
- package/dist/components/SDraggableList/SDraggableList.d.ts +18 -3
- package/dist/components/SDraggableList/index.d.ts +1 -1
- package/dist/components/SDrawer/README.md +8 -0
- package/dist/components/SDropdownButton/README.md +19 -0
- package/dist/components/SEditor/EditorBody.d.ts +36 -0
- package/dist/components/SEditor/EditorToolbar.d.ts +93 -0
- package/dist/components/SEditor/README.md +205 -0
- package/dist/components/SEditor/SEditor.d.ts +128 -0
- package/dist/components/SEditor/editor-icons.d.ts +63 -0
- package/dist/components/SEditor/editor.config.d.ts +119 -0
- package/dist/components/SEditor/index.d.ts +8 -0
- package/dist/components/SEditor/tiptap-api.d.ts +29 -0
- package/dist/components/SEditor/use-is-mobile.d.ts +14 -0
- package/dist/components/SExpansionItem/README.md +38 -2
- package/dist/components/SExpansionItem/SExpansionItem.d.ts +8 -2
- package/dist/components/SExpansionItem/index.d.ts +1 -1
- package/dist/components/SField/README.md +37 -5
- package/dist/components/SField/SField.d.ts +40 -8
- package/dist/components/SField/index.d.ts +1 -1
- package/dist/components/SFilePicker/README.md +20 -4
- package/dist/components/SFilePicker/SFilePicker.d.ts +26 -6
- package/dist/components/SFooter/README.md +44 -0
- package/dist/components/SFooter/SFooter.d.ts +29 -13
- package/dist/components/SFooter/index.d.ts +1 -1
- package/dist/components/SForm/README.md +12 -1
- package/dist/components/SForm/SForm.d.ts +2 -2
- package/dist/components/SGhostButton/README.md +28 -4
- package/dist/components/SGhostButton/SGhostButton.d.ts +4 -1
- package/dist/components/SGnb/README.md +109 -8
- package/dist/components/SGnb/SGnb.d.ts +112 -11
- package/dist/components/SGnb/gnb.config.d.ts +18 -5
- package/dist/components/SGnb/index.d.ts +1 -1
- package/dist/components/SGnbSystem/README.md +186 -0
- package/dist/components/SGnbSystem/SGnbSystem.d.ts +179 -0
- package/dist/components/SGnbSystem/gnbSystem.config.d.ts +122 -0
- package/dist/components/SGnbSystem/index.d.ts +2 -0
- package/dist/components/SGuide/README.md +16 -1
- package/dist/components/SGuide/SGuide.d.ts +5 -2
- package/dist/components/SIcon/README.md +20 -0
- package/dist/components/SIcon/SIcon.d.ts +1 -1
- package/dist/components/SIcon/icons.gen.d.ts +20 -1
- package/dist/components/SImage/README.md +23 -1
- package/dist/components/SImage/SImage.d.ts +11 -8
- package/dist/components/SInput/README.md +8 -4
- package/dist/components/SInput/SInput.d.ts +17 -5
- package/dist/components/SKeyValueTable/README.md +88 -0
- package/dist/components/SKeyValueTable/SKeyValueTable.d.ts +30 -3
- package/dist/components/SKeyValueTable/index.d.ts +1 -1
- package/dist/components/SLauncherListBox/README.md +82 -0
- package/dist/components/SLauncherListBox/SLauncherListBox.d.ts +80 -0
- package/dist/components/SLauncherListBox/index.d.ts +2 -0
- package/dist/components/SLauncherListBox/launcherListBox.config.d.ts +154 -0
- package/dist/components/SLayout/README.md +22 -1
- package/dist/components/SLayout/SLayout.d.ts +6 -2
- package/dist/components/SLayout/index.d.ts +1 -1
- package/dist/components/SLineChart/README.md +131 -0
- package/dist/components/SLineChart/SLineChart.d.ts +110 -0
- package/dist/components/SLineChart/index.d.ts +1 -0
- package/dist/components/SLineChart/lineChart.config.d.ts +95 -0
- package/dist/components/SLinearProgress/README.md +16 -1
- package/dist/components/SLinearProgress/SLinearProgress.d.ts +11 -2
- package/dist/components/SLinearProgress/index.d.ts +1 -1
- package/dist/components/SList/README.md +15 -2
- package/dist/components/SList/SList.d.ts +7 -3
- package/dist/components/SList/index.d.ts +1 -1
- package/dist/components/SListItem/README.md +43 -2
- package/dist/components/SListItem/SListItem.d.ts +8 -2
- package/dist/components/SListItem/index.d.ts +1 -1
- package/dist/components/SLoadingContainer/index.d.ts +1 -1
- package/dist/components/SLoadingContainer/loading.d.ts +41 -6
- package/dist/components/SLoadingModal/README.md +10 -2
- package/dist/components/SLoadingModal/SLoadingModal.d.ts +4 -4
- package/dist/components/SLoadingModal/index.d.ts +1 -1
- package/dist/components/SLoginCard/README.md +37 -0
- package/dist/components/SLoginCard/SLoginCard.d.ts +43 -0
- package/dist/components/SLoginCard/index.d.ts +1 -0
- package/dist/components/SLogo/README.md +103 -0
- package/dist/components/SLogo/SLogo.d.ts +72 -0
- package/dist/components/SLogo/index.d.ts +2 -0
- package/dist/components/SLogo/logo.config.d.ts +29 -0
- package/dist/components/SLogo/logos.d.ts +16 -0
- package/dist/components/SMeatballButton/README.md +67 -0
- package/dist/components/SMeatballButton/SMeatballButton.d.ts +36 -0
- package/dist/components/SMeatballButton/index.d.ts +1 -0
- package/dist/components/SModal/README.md +15 -5
- package/dist/components/SModal/SModal.d.ts +1 -1
- package/dist/components/SNumberInput/README.md +19 -8
- package/dist/components/SNumberInput/SNumberInput.d.ts +49 -7
- package/dist/components/SPage/README.md +105 -5
- package/dist/components/SPage/SPage.d.ts +34 -10
- package/dist/components/SPage/SPageHeader.d.ts +31 -13
- package/dist/components/SPage/index.d.ts +2 -2
- package/dist/components/SPage/page-column.d.ts +34 -0
- package/dist/components/SPage/page-width.d.ts +23 -0
- package/dist/components/SPage/page.config.d.ts +26 -0
- package/dist/components/SPieChart/README.md +93 -0
- package/dist/components/SPieChart/SPieChart.d.ts +73 -0
- package/dist/components/SPieChart/index.d.ts +1 -0
- package/dist/components/SPopover/README.md +15 -0
- package/dist/components/SPopup/README.md +26 -2
- package/dist/components/SPopup/SPopup.d.ts +13 -10
- package/dist/components/SPopup/index.d.ts +1 -1
- package/dist/components/SPortal/README.md +20 -0
- package/dist/components/SRadio/README.md +20 -0
- package/dist/components/SRadioButton/README.md +26 -0
- package/dist/components/SRadioButton/SRadioButton.d.ts +9 -2
- package/dist/components/SRadioCard/README.md +78 -0
- package/dist/components/SRadioCard/SRadioCard.d.ts +29 -0
- package/dist/components/SRadioCard/SRadioCardGroup.d.ts +36 -0
- package/dist/components/SRadioCard/index.d.ts +2 -0
- package/dist/components/SScrollArea/README.md +28 -0
- package/dist/components/SScrollArea/SScrollArea.d.ts +17 -0
- package/dist/components/SSearchInput/README.md +63 -0
- package/dist/components/SSearchInput/SSearchInput.d.ts +52 -0
- package/dist/components/SSearchInput/index.d.ts +1 -0
- package/dist/components/SSectionHeaderCard/README.md +38 -0
- package/dist/components/SSectionHeaderCard/SSectionHeaderCard.d.ts +19 -0
- package/dist/components/SSelect/README.md +64 -11
- package/dist/components/SSelect/SSelect.d.ts +135 -15
- package/dist/components/SSelect/index.d.ts +1 -1
- package/dist/components/SSelect/select.config.d.ts +17 -0
- package/dist/components/SSkeleton/README.md +55 -0
- package/dist/components/SSkeleton/SSkeleton.d.ts +39 -0
- package/dist/components/SSkeleton/index.d.ts +2 -0
- package/dist/components/SSkeleton/skeleton.config.d.ts +22 -0
- package/dist/components/SSplitter/README.md +17 -2
- package/dist/components/SSplitter/SSplitter.d.ts +7 -3
- package/dist/components/SStepper/README.md +26 -0
- package/dist/components/SSwitch/README.md +13 -1
- package/dist/components/SSwitch/SSwitch.d.ts +1 -3
- package/dist/components/SSystemActionButton/README.md +246 -0
- package/dist/components/SSystemActionButton/SSystemActionButton.d.ts +167 -0
- package/dist/components/SSystemActionButton/index.d.ts +2 -0
- package/dist/components/SSystemActionButton/systemActionButton.config.d.ts +93 -0
- package/dist/components/STable/README.md +135 -20
- package/dist/components/STable/STable.d.ts +292 -46
- package/dist/components/STable/index.d.ts +1 -1
- package/dist/components/STableBar/README.md +1 -0
- package/dist/components/STableBar/STableBar.d.ts +8 -1
- package/dist/components/STabs/README.md +13 -1
- package/dist/components/STabs/STabs.d.ts +2 -2
- package/dist/components/STag/README.md +55 -0
- package/dist/components/STag/STag.d.ts +3 -1
- package/dist/components/STag/tag.config.d.ts +1 -1
- package/dist/components/STextLink/README.md +21 -1
- package/dist/components/STextLink/STextLink.d.ts +5 -1
- package/dist/components/STextarea/README.md +12 -5
- package/dist/components/STextarea/STextarea.d.ts +49 -6
- package/dist/components/STimePicker/README.md +19 -2
- package/dist/components/STimePicker/STimePicker.d.ts +36 -6
- package/dist/components/STimePicker/timepicker.config.d.ts +4 -2
- package/dist/components/STimeRangePicker/README.md +31 -2
- package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +35 -6
- package/dist/components/SToast/README.md +25 -1
- package/dist/components/SToast/SToast.d.ts +2 -2
- package/dist/components/SToggle/README.md +8 -0
- package/dist/components/SToggle/index.d.ts +1 -1
- package/dist/components/STooltip/README.md +27 -1
- package/dist/components/STooltip/STooltip.d.ts +1 -1
- package/dist/components/STree/README.md +42 -4
- package/dist/components/STree/STree.d.ts +18 -6
- package/dist/components/STree/STree.examples.d.ts +2 -0
- package/dist/docs/Gallery.d.ts +9 -0
- package/dist/docs/RecipeGallery.d.ts +13 -0
- package/dist/docs/gallery-previews.d.ts +24 -0
- package/dist/fonts/LICENSE.txt +94 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.0.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.1.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.10.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.11.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.12.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.13.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.14.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.15.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.16.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.17.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.18.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.19.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.2.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.20.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.21.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.22.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.23.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.24.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.25.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.26.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.27.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.28.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.29.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.3.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.30.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.31.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.32.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.33.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.34.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.35.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.36.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.37.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.38.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.39.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.4.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.40.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.41.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.42.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.43.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.44.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.45.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.46.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.47.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.48.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.49.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.5.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.50.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.51.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.52.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.53.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.54.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.55.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.56.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.57.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.58.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.59.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.6.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.60.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.61.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.62.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.63.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.64.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.65.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.66.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.67.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.68.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.69.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.7.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.70.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.71.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.72.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.73.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.74.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.75.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.76.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.77.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.78.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.79.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.8.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.80.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.81.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.82.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.83.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.84.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.85.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.86.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.87.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.88.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.89.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.9.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.90.woff2 +0 -0
- package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.91.woff2 +0 -0
- package/dist/index.cjs +21789 -10666
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +23 -0
- package/dist/index.js +21704 -10665
- package/dist/index.js.map +1 -1
- package/dist/lib/chart/cartesian.d.ts +56 -0
- package/dist/lib/chart/frame.d.ts +21 -0
- package/dist/lib/chart/hover-dim.d.ts +19 -0
- package/dist/lib/chart/legend.d.ts +21 -0
- package/dist/lib/chart/palette.d.ts +28 -0
- package/dist/lib/chart/radial.d.ts +99 -0
- package/dist/lib/chart/scale.d.ts +26 -0
- package/dist/lib/chart/tooltip.d.ts +60 -0
- package/dist/lib/chart/types.d.ts +29 -0
- package/dist/lib/chart/use-element-size.d.ts +39 -0
- package/dist/lib/date.d.ts +2 -1
- package/dist/lib/depth-filter.d.ts +27 -0
- package/dist/lib/doc-sections.d.ts +35 -0
- package/dist/lib/dropdown-menu.d.ts +19 -0
- package/dist/lib/field-width.d.ts +31 -0
- package/dist/lib/floating-height.d.ts +15 -0
- package/dist/lib/global-overlay.d.ts +5 -0
- package/dist/lib/hover-preview.d.ts +32 -0
- package/dist/lib/inert.d.ts +11 -0
- package/dist/lib/overlay-scrollbar.d.ts +32 -0
- package/dist/lib/row-metrics.d.ts +61 -0
- package/dist/lib/story-docs.d.ts +19 -3
- package/dist/llms-full.txt +9674 -2059
- package/dist/llms.txt +4062 -326
- package/dist/playground/categories.d.ts +19 -0
- package/dist/pretendard.css +937 -0
- package/dist/recipes/AppShell.d.ts +21 -0
- package/dist/recipes/CategoryManagePage.d.ts +1 -0
- package/dist/recipes/ConsultConsolePage.d.ts +1 -0
- package/dist/recipes/ExcelFilePopupPage.d.ts +5 -0
- package/dist/recipes/LoginPage.d.ts +6 -0
- package/dist/recipes/ProductBulkUploadPage.d.ts +1 -0
- package/dist/recipes/ProductCreatePage.d.ts +1 -0
- package/dist/recipes/ProductCreateSectionsPage.d.ts +5 -0
- package/dist/recipes/ProductDetailInlineEditPage.d.ts +9 -0
- package/dist/recipes/ProductDetailPage.d.ts +1 -0
- package/dist/recipes/ProductListChipFilterPage.d.ts +1 -0
- package/dist/recipes/ProductListPage.d.ts +1 -0
- package/dist/recipes/ProductOverlayPage.d.ts +1 -0
- package/dist/recipes/SalesDashboardPage.d.ts +1 -0
- package/dist/recipes/SettingsPage.d.ts +1 -0
- package/dist/recipes/StoreSetupPage.d.ts +1 -0
- package/dist/recipes/TransferOrderPopupPage.d.ts +2 -0
- package/dist/recipes/api.d.ts +220 -0
- package/dist/recipes/recipe-story.d.ts +33 -0
- package/dist/recipes/router.d.ts +9 -0
- package/dist/styles.css +3541 -262
- package/dist/theme.css +598 -28
- package/eslint/index.mjs +44 -35
- package/eslint/lib/class-names.mjs +23 -25
- package/eslint/lib/table-column.mjs +34 -8
- package/eslint/rules/component-group-gap.mjs +32 -30
- package/eslint/rules/divider-vertical-height.mjs +137 -0
- package/eslint/rules/field-width-grade.mjs +69 -52
- package/eslint/rules/no-arbitrary-class.mjs +63 -20
- package/eslint/rules/no-off-scale-spacing.mjs +61 -41
- package/eslint/rules/no-raw-html-control.mjs +38 -36
- package/eslint/rules/prefer-typo-preset.mjs +23 -17
- package/eslint/rules/require-locale-number.mjs +14 -19
- package/eslint/rules/table-column-width.mjs +114 -0
- package/eslint/rules/table-numeric-align.mjs +14 -14
- package/eslint/scale.gen.mjs +6 -3
- package/package.json +19 -5
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { SSystemActionButtonColor } from '../SSystemActionButton';
|
|
2
|
+
/**
|
|
3
|
+
* SGnbSystem 설정.
|
|
4
|
+
*
|
|
5
|
+
* 토큰은 GNB system 패널 한 벌(`--cmp-gnb-system-*`)이다.
|
|
6
|
+
* 패널(배경·경계·구분선·간격) → --cmp-gnb-system-panel-*
|
|
7
|
+
* 도메인 태그 → --cmp-gnb-system-domainTag-*
|
|
8
|
+
* 행 공통(높이·라운드·아이콘 프레임) → --cmp-gnb-system-item-* (SSystemActionButton 과 공유)
|
|
9
|
+
* 알림 버튼 → --cmp-gnb-system-alertButton-*
|
|
10
|
+
* 설정 버튼 → --cmp-gnb-system-setting-*
|
|
11
|
+
* 펼침·접힘 패널 여백 → --cmp-gnb-system-project-padding · --cmp-gnb-system-min-padding
|
|
12
|
+
*
|
|
13
|
+
* 타이포그래피는 CSS 변수가 아니라 `.typo-*` 프리셋으로 나온다.
|
|
14
|
+
* domainTag.typography → typo-body-sm-medium (12/500/20)
|
|
15
|
+
* item.label.typography → typo-body-sm-semibold (12/600/20)
|
|
16
|
+
* alertButton.count → typo-body-md-bold (13/700/22)
|
|
17
|
+
*/
|
|
18
|
+
/** 색상(표면). light = 흰 면, dark = 오션블루 면. GNB 의 color 를 그대로 따라간다 */
|
|
19
|
+
export declare const GNB_SYSTEM_COLORS: readonly ["light", "dark"];
|
|
20
|
+
export type SGnbSystemColor = (typeof GNB_SYSTEM_COLORS)[number];
|
|
21
|
+
/**
|
|
22
|
+
* 조각들이 놓이는 자리. GNB 의 `header` 가 정하므로 앱이 고르지 않는다.
|
|
23
|
+
* - `panel` — GNB 바닥에 깔리는 세로 판 (header="fix"). 접히면 48px 레일용 min 형태가 된다.
|
|
24
|
+
* - `top` — 레이아웃 전폭 상단바 위 (header="full"). 판을 깔지 않고 가로 한 줄로 선다.
|
|
25
|
+
*/
|
|
26
|
+
export declare const GNB_SYSTEM_PLACEMENTS: readonly ["panel", "top"];
|
|
27
|
+
export type SGnbSystemPlacement = (typeof GNB_SYSTEM_PLACEMENTS)[number];
|
|
28
|
+
/**
|
|
29
|
+
* 패널 색이 곧 행 색이다 — 행(아이콘 프레임·라벨·hover)은 SSystemActionButton 과 같은
|
|
30
|
+
* `--cmp-gnb-system-item-*` 토큰을 쓰므로, 그 색표를 그대로 빌려 두 컴포넌트가 어긋나지 않게 한다.
|
|
31
|
+
* `darker`(판 없이 어두운 GNB 면에 바로 얹는 색)는 판을 깔지 않는 `top` 자리가 쓴다
|
|
32
|
+
* → GNB_SYSTEM_TOP_COLOR_CONFIG.
|
|
33
|
+
*/
|
|
34
|
+
export type GnbSystemItemColor = SSystemActionButtonColor;
|
|
35
|
+
export interface GnbSystemColorTokens {
|
|
36
|
+
/** 패널 배경 */
|
|
37
|
+
bg: string;
|
|
38
|
+
/**
|
|
39
|
+
* 패널 위쪽 경계 (GNB 본문과 나누는 선). 배경만으로 경계가 읽히는 색에서는 없다.
|
|
40
|
+
* 토큰에는 light·dark 모두 정의돼 있지만, dark 는 시안이 선을 긋지 않는다 — 아래 주석 참고.
|
|
41
|
+
*/
|
|
42
|
+
border?: string;
|
|
43
|
+
/** 패널 안 구분선 (가로 divider · 알림↔설정 세로선) */
|
|
44
|
+
divider: string;
|
|
45
|
+
/** 도메인 태그 배경 */
|
|
46
|
+
domainBg: string;
|
|
47
|
+
/** 도메인 태그 글자색 */
|
|
48
|
+
domainText: string;
|
|
49
|
+
/** 알림이 있을 때의 벨 글리프색 */
|
|
50
|
+
alertIcon: string;
|
|
51
|
+
/** 알림 개수(펼침) · 점 배지(접힘) 색 */
|
|
52
|
+
alertCount: string;
|
|
53
|
+
/** 알림이 있을 때의 hover 배경. 없으면 행 기본 hover 를 쓴다 */
|
|
54
|
+
alertHoverBg?: string;
|
|
55
|
+
}
|
|
56
|
+
export declare const GNB_SYSTEM_COLOR_CONFIG: Record<SGnbSystemColor, GnbSystemColorTokens>;
|
|
57
|
+
/**
|
|
58
|
+
* `top` 자리(전폭 상단바)의 색.
|
|
59
|
+
*
|
|
60
|
+
* 상단바에는 판을 깔지 않고 조각을 GNB 면에 바로 얹는다 — 그래서 행 색이 패널과 한 단계 다르다.
|
|
61
|
+
* dark 는 패널의 오션블루(`dark`)가 아니라 GNB 네이비 면용 `darker` 를 쓰고, 구분선·도메인 태그도
|
|
62
|
+
* 그에 맞춘 `*-darker-*` 토큰을 쓴다. 알림 강조색은 darker 대응 토큰이 없어 dark 값을 그대로 쓴다
|
|
63
|
+
* (두 면 모두 어두운 면이라 같은 노랑이 맞는다).
|
|
64
|
+
*/
|
|
65
|
+
export interface GnbSystemTopColorTokens {
|
|
66
|
+
/** 조각(액션·알림·설정·계정)이 쓰는 행 색 */
|
|
67
|
+
item: GnbSystemItemColor;
|
|
68
|
+
/** 조각 사이 세로 구분선 */
|
|
69
|
+
divider: string;
|
|
70
|
+
/** 도메인 태그 배경 */
|
|
71
|
+
domainBg: string;
|
|
72
|
+
/** 도메인 태그 글자색 */
|
|
73
|
+
domainText: string;
|
|
74
|
+
/** 알림이 있을 때의 벨 글리프색 */
|
|
75
|
+
alertIcon: string;
|
|
76
|
+
/** 알림 개수 색 */
|
|
77
|
+
alertCount: string;
|
|
78
|
+
/** 알림이 있을 때의 hover 배경. 없으면 행 기본 hover 를 쓴다 */
|
|
79
|
+
alertHoverBg?: string;
|
|
80
|
+
}
|
|
81
|
+
export declare const GNB_SYSTEM_TOP_COLOR_CONFIG: Record<SGnbSystemColor, GnbSystemTopColorTokens>;
|
|
82
|
+
/** 치수 — 전부 토큰 참조 */
|
|
83
|
+
export declare const GNB_SYSTEM_LAYOUT: {
|
|
84
|
+
/** 펼친 패널의 안쪽 여백 */
|
|
85
|
+
readonly padding: "var(--cmp-gnb-system-project-padding)";
|
|
86
|
+
/** 접힌(min) 패널의 안쪽 여백 */
|
|
87
|
+
readonly foldedPadding: "var(--cmp-gnb-system-min-padding)";
|
|
88
|
+
/**
|
|
89
|
+
* 패널이 쌓는 블록 사이 간격. 알림↔설정 사이의 가로 간격도 전용 토큰이 없어 이 값을 쓴다
|
|
90
|
+
* (시안에서 두 간격이 같다).
|
|
91
|
+
*/
|
|
92
|
+
readonly gap: string;
|
|
93
|
+
/** 행 높이 */
|
|
94
|
+
readonly itemHeight: string;
|
|
95
|
+
/** 행 라운드 */
|
|
96
|
+
readonly itemRadius: string;
|
|
97
|
+
/** 아이콘 프레임 한 변 */
|
|
98
|
+
readonly iconFrame: string;
|
|
99
|
+
/** 아이콘 글리프 크기 */
|
|
100
|
+
readonly iconGlyph: string;
|
|
101
|
+
/** 아이콘 프레임 라운드 */
|
|
102
|
+
readonly iconRadius: string;
|
|
103
|
+
/** 아이콘 프레임 ↔ 라벨 간격 */
|
|
104
|
+
readonly iconLabelGap: string;
|
|
105
|
+
/** 알림 버튼 좌우 여백 */
|
|
106
|
+
readonly alertPaddingX: string;
|
|
107
|
+
/** 설정 버튼 좌우 여백 */
|
|
108
|
+
readonly settingPaddingX: "var(--cmp-gnb-system-setting-paddingX)";
|
|
109
|
+
/** 도메인 태그 */
|
|
110
|
+
readonly domainPaddingX: string;
|
|
111
|
+
readonly domainPaddingY: string;
|
|
112
|
+
readonly domainRadius: string;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* 알림 점 배지 지름(px). 접힌 패널에는 개수를 적을 자리가 없어 점만 찍는다.
|
|
116
|
+
* 전용 토큰이 없어 시안 값을 상수로 둔다.
|
|
117
|
+
*/
|
|
118
|
+
export declare const GNB_SYSTEM_ALERT_DOT_SIZE = 6;
|
|
119
|
+
/** 알림 버튼 기본 라벨 */
|
|
120
|
+
export declare const GNB_SYSTEM_ALERT_LABEL = "\uC54C\uB9BC";
|
|
121
|
+
/** 설정 버튼 기본 라벨 */
|
|
122
|
+
export declare const GNB_SYSTEM_SETTING_LABEL = "\uC124\uC815";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { SGnbSystem, type SGnbSystemProps, type SGnbSystemAction, type SGnbSystemAlert, type SGnbSystemSetting, type SGnbSystemAccount, } from './SGnbSystem';
|
|
2
|
+
export { GNB_SYSTEM_COLORS, GNB_SYSTEM_COLOR_CONFIG, GNB_SYSTEM_LAYOUT, GNB_SYSTEM_PLACEMENTS, GNB_SYSTEM_TOP_COLOR_CONFIG, type SGnbSystemColor, type SGnbSystemPlacement, type GnbSystemColorTokens, type GnbSystemTopColorTokens, } from './gnbSystem.config';
|
|
@@ -13,10 +13,25 @@
|
|
|
13
13
|
| `message?` | `SGuideMessage` | `''` | 팝업 메시지 (배열이면 리스트, 중첩 배열이면 depth 표현) |
|
|
14
14
|
| `url?` | `string` | `''` | notion 타입 클릭 시 이동 URL |
|
|
15
15
|
| `popupTitle?` | `string` | `''` | 팝업 제목 (없으면 type 기본값) |
|
|
16
|
-
| `popupWidth?` | `number` |
|
|
16
|
+
| `popupWidth?` | `number \| 'auto'` | `'auto'` | 팝업 너비. 기본 `'auto'` 는 내용 폭에 맞춘다 — 가장 긴 줄이 곧 팝업 폭이다. 숫자(px)를 주면 그 폭으로 고정한다. 어느 쪽이든 창 좌우에 여백을 남기는 선까지만 벌어진다. |
|
|
17
17
|
| `className?` | `string` | — | |
|
|
18
18
|
| `style?` | `CSSProperties` | — | |
|
|
19
19
|
|
|
20
|
+
## Types
|
|
21
|
+
|
|
22
|
+
### SGuideType
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
export type SGuideType = 'tip' | 'notion';
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### SGuideMessage
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
/** 중첩 배열로 depth 표현 (원본 renderListItem 대응). 예: ['상위', ['하위1', '하위2']] */
|
|
32
|
+
export type SGuideMessage = string | SGuideMessage[];
|
|
33
|
+
```
|
|
34
|
+
|
|
20
35
|
## Dependencies
|
|
21
36
|
|
|
22
37
|
### Depends on
|
|
@@ -13,8 +13,11 @@ export interface SGuideProps {
|
|
|
13
13
|
url?: string;
|
|
14
14
|
/** 팝업 제목 (없으면 type 기본값) */
|
|
15
15
|
popupTitle?: string;
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* 팝업 너비. 기본 `'auto'` 는 내용 폭에 맞춘다 — 가장 긴 줄이 곧 팝업 폭이다.
|
|
18
|
+
* 숫자(px)를 주면 그 폭으로 고정한다. 어느 쪽이든 창 좌우에 여백을 남기는 선까지만 벌어진다.
|
|
19
|
+
*/
|
|
20
|
+
popupWidth?: number | 'auto';
|
|
18
21
|
className?: string;
|
|
19
22
|
style?: CSSProperties;
|
|
20
23
|
}
|
|
@@ -20,32 +20,42 @@
|
|
|
20
20
|
|
|
21
21
|
### Used by
|
|
22
22
|
|
|
23
|
+
- [SAccountListBox](../SAccountListBox)
|
|
23
24
|
- [SButton](../SButton)
|
|
24
25
|
- [SCallout](../SCallout)
|
|
26
|
+
- [SChatAttachedFile](../SChatAttachedFile)
|
|
27
|
+
- [SChatFile](../SChatFile)
|
|
28
|
+
- [SChatMessage](../SChatMessage)
|
|
25
29
|
- [SCheckbox](../SCheckbox)
|
|
26
30
|
- [SChipFilter](../SChipFilter)
|
|
27
31
|
- [SChipInput](../SChipInput)
|
|
28
32
|
- [SConfirmModal](../SConfirmModal)
|
|
33
|
+
- [SContextAlert](../SContextAlert)
|
|
29
34
|
- [SDatePicker](../SDatePicker)
|
|
30
35
|
- [SDateRangePicker](../SDateRangePicker)
|
|
31
36
|
- [SDraggableItem](../SDraggableItem)
|
|
32
37
|
- [SDropdownButton](../SDropdownButton)
|
|
38
|
+
- [SEditor](../SEditor)
|
|
33
39
|
- [SExpansionItem](../SExpansionItem)
|
|
34
40
|
- [SField](../SField)
|
|
35
41
|
- [SFilePicker](../SFilePicker)
|
|
36
42
|
- [SGhostButton](../SGhostButton)
|
|
37
43
|
- [SGnb](../SGnb)
|
|
44
|
+
- [SGnbSystem](../SGnbSystem)
|
|
38
45
|
- [SGuide](../SGuide)
|
|
39
46
|
- [SImage](../SImage)
|
|
40
47
|
- [SKeyValueTable](../SKeyValueTable)
|
|
48
|
+
- [SLauncherListBox](../SLauncherListBox)
|
|
41
49
|
- [SListItem](../SListItem)
|
|
42
50
|
- [SLoadingModal](../SLoadingModal)
|
|
43
51
|
- [SNumberInput](../SNumberInput)
|
|
44
52
|
- [SPagination](../SPagination)
|
|
45
53
|
- [SPopover](../SPopover)
|
|
54
|
+
- [SSearchInput](../SSearchInput)
|
|
46
55
|
- [SSectionHeaderCard](../SSectionHeaderCard)
|
|
47
56
|
- [SSelect](../SSelect)
|
|
48
57
|
- [SStepper](../SStepper)
|
|
58
|
+
- [SSystemActionButton](../SSystemActionButton)
|
|
49
59
|
- [STable](../STable)
|
|
50
60
|
- [STag](../STag)
|
|
51
61
|
- [STextLink](../STextLink)
|
|
@@ -58,32 +68,42 @@
|
|
|
58
68
|
|
|
59
69
|
```mermaid
|
|
60
70
|
graph TD;
|
|
71
|
+
SAccountListBox --> SIcon
|
|
61
72
|
SButton --> SIcon
|
|
62
73
|
SCallout --> SIcon
|
|
74
|
+
SChatAttachedFile --> SIcon
|
|
75
|
+
SChatFile --> SIcon
|
|
76
|
+
SChatMessage --> SIcon
|
|
63
77
|
SCheckbox --> SIcon
|
|
64
78
|
SChipFilter --> SIcon
|
|
65
79
|
SChipInput --> SIcon
|
|
66
80
|
SConfirmModal --> SIcon
|
|
81
|
+
SContextAlert --> SIcon
|
|
67
82
|
SDatePicker --> SIcon
|
|
68
83
|
SDateRangePicker --> SIcon
|
|
69
84
|
SDraggableItem --> SIcon
|
|
70
85
|
SDropdownButton --> SIcon
|
|
86
|
+
SEditor --> SIcon
|
|
71
87
|
SExpansionItem --> SIcon
|
|
72
88
|
SField --> SIcon
|
|
73
89
|
SFilePicker --> SIcon
|
|
74
90
|
SGhostButton --> SIcon
|
|
75
91
|
SGnb --> SIcon
|
|
92
|
+
SGnbSystem --> SIcon
|
|
76
93
|
SGuide --> SIcon
|
|
77
94
|
SImage --> SIcon
|
|
78
95
|
SKeyValueTable --> SIcon
|
|
96
|
+
SLauncherListBox --> SIcon
|
|
79
97
|
SListItem --> SIcon
|
|
80
98
|
SLoadingModal --> SIcon
|
|
81
99
|
SNumberInput --> SIcon
|
|
82
100
|
SPagination --> SIcon
|
|
83
101
|
SPopover --> SIcon
|
|
102
|
+
SSearchInput --> SIcon
|
|
84
103
|
SSectionHeaderCard --> SIcon
|
|
85
104
|
SSelect --> SIcon
|
|
86
105
|
SStepper --> SIcon
|
|
106
|
+
SSystemActionButton --> SIcon
|
|
87
107
|
STable --> SIcon
|
|
88
108
|
STag --> SIcon
|
|
89
109
|
STextLink --> SIcon
|
|
@@ -17,6 +17,6 @@ export interface SIconProps {
|
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* SIcon — sd-icon 포팅.
|
|
20
|
-
*
|
|
20
|
+
* icons.gen.tsx 의 SVG 를 currentColor 기반으로 렌더한다.
|
|
21
21
|
*/
|
|
22
22
|
export declare const SIcon: import("react").ForwardRefExoticComponent<SIconProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
@@ -3,9 +3,15 @@ export type IconRenderProps = {
|
|
|
3
3
|
size?: number | string;
|
|
4
4
|
} & SVGProps<SVGSVGElement>;
|
|
5
5
|
export declare const ICONS: {
|
|
6
|
+
readonly account: (p: IconRenderProps) => import("react").JSX.Element;
|
|
6
7
|
readonly add: (p: IconRenderProps) => import("react").JSX.Element;
|
|
7
8
|
readonly alert: (p: IconRenderProps) => import("react").JSX.Element;
|
|
9
|
+
readonly alignCenter: (p: IconRenderProps) => import("react").JSX.Element;
|
|
8
10
|
readonly alignKorean: (p: IconRenderProps) => import("react").JSX.Element;
|
|
11
|
+
readonly alignLeft: (p: IconRenderProps) => import("react").JSX.Element;
|
|
12
|
+
readonly alignMiddle: (p: IconRenderProps) => import("react").JSX.Element;
|
|
13
|
+
readonly alignRight: (p: IconRenderProps) => import("react").JSX.Element;
|
|
14
|
+
readonly alignTop: (p: IconRenderProps) => import("react").JSX.Element;
|
|
9
15
|
readonly archive: (p: IconRenderProps) => import("react").JSX.Element;
|
|
10
16
|
readonly arrowDown: (p: IconRenderProps) => import("react").JSX.Element;
|
|
11
17
|
readonly arrowLeft: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -13,8 +19,10 @@ export declare const ICONS: {
|
|
|
13
19
|
readonly arrowUp: (p: IconRenderProps) => import("react").JSX.Element;
|
|
14
20
|
readonly asterisk: (p: IconRenderProps) => import("react").JSX.Element;
|
|
15
21
|
readonly attachFile: (p: IconRenderProps) => import("react").JSX.Element;
|
|
22
|
+
readonly back: (p: IconRenderProps) => import("react").JSX.Element;
|
|
16
23
|
readonly barcode: (p: IconRenderProps) => import("react").JSX.Element;
|
|
17
24
|
readonly bell: (p: IconRenderProps) => import("react").JSX.Element;
|
|
25
|
+
readonly bellRinging: (p: IconRenderProps) => import("react").JSX.Element;
|
|
18
26
|
readonly bill: (p: IconRenderProps) => import("react").JSX.Element;
|
|
19
27
|
readonly board: (p: IconRenderProps) => import("react").JSX.Element;
|
|
20
28
|
readonly box: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -25,6 +33,7 @@ export declare const ICONS: {
|
|
|
25
33
|
readonly caretLeft: (p: IconRenderProps) => import("react").JSX.Element;
|
|
26
34
|
readonly caretRight: (p: IconRenderProps) => import("react").JSX.Element;
|
|
27
35
|
readonly caretUp: (p: IconRenderProps) => import("react").JSX.Element;
|
|
36
|
+
readonly chat: (p: IconRenderProps) => import("react").JSX.Element;
|
|
28
37
|
readonly check: (p: IconRenderProps) => import("react").JSX.Element;
|
|
29
38
|
readonly checkFill: (p: IconRenderProps) => import("react").JSX.Element;
|
|
30
39
|
readonly checkOutline: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -39,28 +48,36 @@ export declare const ICONS: {
|
|
|
39
48
|
readonly clockFill: (p: IconRenderProps) => import("react").JSX.Element;
|
|
40
49
|
readonly clockOutline: (p: IconRenderProps) => import("react").JSX.Element;
|
|
41
50
|
readonly close: (p: IconRenderProps) => import("react").JSX.Element;
|
|
51
|
+
readonly company: (p: IconRenderProps) => import("react").JSX.Element;
|
|
52
|
+
readonly connect: (p: IconRenderProps) => import("react").JSX.Element;
|
|
42
53
|
readonly copy: (p: IconRenderProps) => import("react").JSX.Element;
|
|
54
|
+
readonly counsel: (p: IconRenderProps) => import("react").JSX.Element;
|
|
43
55
|
readonly coupon: (p: IconRenderProps) => import("react").JSX.Element;
|
|
44
56
|
readonly dashboard: (p: IconRenderProps) => import("react").JSX.Element;
|
|
45
57
|
readonly date: (p: IconRenderProps) => import("react").JSX.Element;
|
|
46
|
-
readonly delete: (p: IconRenderProps) => import("react").JSX.Element;
|
|
47
58
|
readonly dot: (p: IconRenderProps) => import("react").JSX.Element;
|
|
48
59
|
readonly download: (p: IconRenderProps) => import("react").JSX.Element;
|
|
49
60
|
readonly drag: (p: IconRenderProps) => import("react").JSX.Element;
|
|
50
61
|
readonly edit: (p: IconRenderProps) => import("react").JSX.Element;
|
|
51
62
|
readonly etc: (p: IconRenderProps) => import("react").JSX.Element;
|
|
52
63
|
readonly event: (p: IconRenderProps) => import("react").JSX.Element;
|
|
64
|
+
readonly focus: (p: IconRenderProps) => import("react").JSX.Element;
|
|
53
65
|
readonly global: (p: IconRenderProps) => import("react").JSX.Element;
|
|
54
66
|
readonly helpFill: (p: IconRenderProps) => import("react").JSX.Element;
|
|
55
67
|
readonly helpOutline: (p: IconRenderProps) => import("react").JSX.Element;
|
|
56
68
|
readonly history: (p: IconRenderProps) => import("react").JSX.Element;
|
|
69
|
+
readonly home: (p: IconRenderProps) => import("react").JSX.Element;
|
|
57
70
|
readonly image: (p: IconRenderProps) => import("react").JSX.Element;
|
|
58
71
|
readonly inline: (p: IconRenderProps) => import("react").JSX.Element;
|
|
59
72
|
readonly launcher: (p: IconRenderProps) => import("react").JSX.Element;
|
|
60
73
|
readonly leftRight: (p: IconRenderProps) => import("react").JSX.Element;
|
|
61
74
|
readonly line: (p: IconRenderProps) => import("react").JSX.Element;
|
|
75
|
+
readonly link: (p: IconRenderProps) => import("react").JSX.Element;
|
|
62
76
|
readonly location: (p: IconRenderProps) => import("react").JSX.Element;
|
|
63
77
|
readonly logout: (p: IconRenderProps) => import("react").JSX.Element;
|
|
78
|
+
readonly megaphone: (p: IconRenderProps) => import("react").JSX.Element;
|
|
79
|
+
readonly messageClose: (p: IconRenderProps) => import("react").JSX.Element;
|
|
80
|
+
readonly messageOpen: (p: IconRenderProps) => import("react").JSX.Element;
|
|
64
81
|
readonly minus: (p: IconRenderProps) => import("react").JSX.Element;
|
|
65
82
|
readonly monitor: (p: IconRenderProps) => import("react").JSX.Element;
|
|
66
83
|
readonly new: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -76,6 +93,7 @@ export declare const ICONS: {
|
|
|
76
93
|
readonly reset: (p: IconRenderProps) => import("react").JSX.Element;
|
|
77
94
|
readonly robot: (p: IconRenderProps) => import("react").JSX.Element;
|
|
78
95
|
readonly row: (p: IconRenderProps) => import("react").JSX.Element;
|
|
96
|
+
readonly rowDense: (p: IconRenderProps) => import("react").JSX.Element;
|
|
79
97
|
readonly save: (p: IconRenderProps) => import("react").JSX.Element;
|
|
80
98
|
readonly search: (p: IconRenderProps) => import("react").JSX.Element;
|
|
81
99
|
readonly send: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -84,6 +102,7 @@ export declare const ICONS: {
|
|
|
84
102
|
readonly shield: (p: IconRenderProps) => import("react").JSX.Element;
|
|
85
103
|
readonly sidebar: (p: IconRenderProps) => import("react").JSX.Element;
|
|
86
104
|
readonly star: (p: IconRenderProps) => import("react").JSX.Element;
|
|
105
|
+
readonly stop: (p: IconRenderProps) => import("react").JSX.Element;
|
|
87
106
|
readonly store: (p: IconRenderProps) => import("react").JSX.Element;
|
|
88
107
|
readonly synchronize: (p: IconRenderProps) => import("react").JSX.Element;
|
|
89
108
|
readonly thumbsDown: (p: IconRenderProps) => import("react").JSX.Element;
|
|
@@ -15,10 +15,13 @@
|
|
|
15
15
|
| `position?` | `string` | `'50% 50%'` | 이미지 정렬 위치 (object-position) |
|
|
16
16
|
| `loading?` | `'lazy' \| 'eager'` | `'lazy'` | 브라우저 로딩 방식 |
|
|
17
17
|
| `loadingShowDelay?` | `number` | `0` | 스피너를 띄우기까지 기다리는 시간(ms). 이 시간 안에 로드되면 스피너를 아예 그리지 않는다 — 캐시된 이미지에서 스피너가 한 프레임 번쩍이는 것을 막는다. |
|
|
18
|
-
| `
|
|
18
|
+
| `showSpinner?` | `boolean` | `true` | 로딩 중 스피너를 그릴지. 끄면 `loadingSlot` 도 없을 때 로딩 표시가 아무것도 남지 않는다. |
|
|
19
19
|
| `loadingSlot?` | `ReactNode` | — | 로딩 중 표시를 직접 지정한다 (기본: 스피너) |
|
|
20
20
|
| `errorSlot?` | `ReactNode` | — | 실패·빈 상태 표시를 직접 지정한다 (기본: 빈 이미지 아이콘) |
|
|
21
21
|
| `imgProps?` | `ImgHTMLAttributes<HTMLImageElement>` | — | 안쪽 `<img>` 로 넘길 네이티브 속성 (srcSet · sizes · crossOrigin · draggable 등) |
|
|
22
|
+
| `previewOnHover?` | `boolean` | `false` | 호버하면 큰 이미지를 포털로 띄운다. 썸네일이 작아 내용을 알아볼 수 없는 자리에 쓴다 |
|
|
23
|
+
| `previewSrc?` | `string` | — | 미리보기에 띄울 경로. 원본 URL 이 썸네일과 다를 때 준다 (기본: `src` 와 같은 경로) |
|
|
24
|
+
| `previewSize?` | `number` | `PREVIEW_MAX_SIZE` | 미리보기 상자의 한 변(px). 상자는 정사각형이고 이미지는 `contain` 으로 들어간다. **200px 이 상한이라 더 큰 값을 줘도 200 으로 잘린다** — 미리보기가 화면을 덮지 않게 하는 규격이다. |
|
|
22
25
|
|
|
23
26
|
#### Events
|
|
24
27
|
|
|
@@ -27,8 +30,26 @@
|
|
|
27
30
|
| `onLoad` | `(src: string) => void` | 로드 완료. 로드된 src 를 넘긴다 |
|
|
28
31
|
| `onError` | `(event: SyntheticEvent<HTMLImageElement>) => void` | 로드 실패 |
|
|
29
32
|
|
|
33
|
+
## Types
|
|
34
|
+
|
|
35
|
+
### SImageFit
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
export type SImageFit = (typeof IMAGE_FITS)[number];
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### IMAGE_FITS
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
export const IMAGE_FITS = ['cover', 'contain', 'fill', 'none', 'scale-down'] as const;
|
|
45
|
+
```
|
|
46
|
+
|
|
30
47
|
## Dependencies
|
|
31
48
|
|
|
49
|
+
### Used by
|
|
50
|
+
|
|
51
|
+
- [SChatMessage](../SChatMessage)
|
|
52
|
+
|
|
32
53
|
### Depends on
|
|
33
54
|
|
|
34
55
|
- [SCircleProgress](../SCircleProgress)
|
|
@@ -40,5 +61,6 @@
|
|
|
40
61
|
graph TD;
|
|
41
62
|
SImage --> SCircleProgress
|
|
42
63
|
SImage --> SIcon
|
|
64
|
+
SChatMessage --> SImage
|
|
43
65
|
style SImage fill:#f9f,stroke:#333,stroke-width:4px
|
|
44
66
|
```
|
|
@@ -19,23 +19,26 @@ export interface SImageProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onLoa
|
|
|
19
19
|
* 캐시된 이미지에서 스피너가 한 프레임 번쩍이는 것을 막는다.
|
|
20
20
|
*/
|
|
21
21
|
loadingShowDelay?: number;
|
|
22
|
-
/** 로딩
|
|
23
|
-
|
|
22
|
+
/** 로딩 중 스피너를 그릴지. 끄면 `loadingSlot` 도 없을 때 로딩 표시가 아무것도 남지 않는다. */
|
|
23
|
+
showSpinner?: boolean;
|
|
24
24
|
/** 로딩 중 표시를 직접 지정한다 (기본: 스피너) */
|
|
25
25
|
loadingSlot?: ReactNode;
|
|
26
26
|
/** 실패·빈 상태 표시를 직접 지정한다 (기본: 빈 이미지 아이콘) */
|
|
27
27
|
errorSlot?: ReactNode;
|
|
28
28
|
/** 안쪽 `<img>` 로 넘길 네이티브 속성 (srcSet · sizes · crossOrigin · draggable 등) */
|
|
29
29
|
imgProps?: ImgHTMLAttributes<HTMLImageElement>;
|
|
30
|
+
/** 호버하면 큰 이미지를 포털로 띄운다. 썸네일이 작아 내용을 알아볼 수 없는 자리에 쓴다 */
|
|
31
|
+
previewOnHover?: boolean;
|
|
32
|
+
/** 미리보기에 띄울 경로. 원본 URL 이 썸네일과 다를 때 준다 (기본: `src` 와 같은 경로) */
|
|
33
|
+
previewSrc?: string;
|
|
34
|
+
/**
|
|
35
|
+
* 미리보기 상자의 한 변(px). 상자는 정사각형이고 이미지는 `contain` 으로 들어간다.
|
|
36
|
+
* **200px 이 상한이라 더 큰 값을 줘도 200 으로 잘린다** — 미리보기가 화면을 덮지 않게 하는 규격이다.
|
|
37
|
+
*/
|
|
38
|
+
previewSize?: number;
|
|
30
39
|
/** 로드 완료. 로드된 src 를 넘긴다 */
|
|
31
40
|
onLoad?: (src: string) => void;
|
|
32
41
|
/** 로드 실패 */
|
|
33
42
|
onError?: (event: SyntheticEvent<HTMLImageElement>) => void;
|
|
34
43
|
}
|
|
35
|
-
/**
|
|
36
|
-
* SImage — 이미지 로딩·실패 상태를 스스로 표현하는 이미지 상자.
|
|
37
|
-
*
|
|
38
|
-
* 로딩 중에는 스피너, `src` 가 없거나 로드에 실패하면 빈 이미지 아이콘을 컨테이너 높이에
|
|
39
|
-
* 비례한 크기로 가운데에 그린다.
|
|
40
|
-
*/
|
|
41
44
|
export declare const SImage: import("react").ForwardRefExoticComponent<SImageProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -18,11 +18,13 @@
|
|
|
18
18
|
| `clearable?` | `boolean` | `false` | 지우기 버튼 |
|
|
19
19
|
| `rules?` | `Rule[]` | — | 유효성 규칙 — blur 시 자동 검증 |
|
|
20
20
|
| `status?` | `SFieldStatus` | — | 필드 상태 ('default' | 'pass' | 'error') |
|
|
21
|
-
| `focused?` | `boolean` | — | 포커스
|
|
22
|
-
| `hovered?` | `boolean` | — | 호버
|
|
23
|
-
| `
|
|
21
|
+
| `focused?` | `boolean` | — | 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) |
|
|
22
|
+
| `hovered?` | `boolean` | — | 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) |
|
|
23
|
+
| `inputClassName?` | `string` | — | 내부 input 요소 className |
|
|
24
24
|
| `inputStyle?` | `CSSProperties` | — | 내부 input 요소 style |
|
|
25
25
|
| `label?` | `string` | — | |
|
|
26
|
+
| `labelPosition?` | `SFieldLabelPosition` | — | 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다) |
|
|
27
|
+
| `subLabel?` | `string` | — | 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다). |
|
|
26
28
|
| `labelWidth?` | `number \| string` | — | |
|
|
27
29
|
| `labelTooltip?` | `string` | — | 레이블 툴팁 텍스트 |
|
|
28
30
|
| `labelTooltipProps?` | `Partial<STooltipProps>` | — | 레이블 툴팁 상세 옵션 |
|
|
@@ -31,7 +33,7 @@
|
|
|
31
33
|
| `errorMessage?` | `string` | — | |
|
|
32
34
|
| `addonLabel?` | `string` | — | |
|
|
33
35
|
| `addonAlign?` | `SFieldAddonAlign` | — | 어드온 정렬 |
|
|
34
|
-
| `width?` | `
|
|
36
|
+
| `width?` | `SFieldWidth` | — | 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이. 등급은 `--cmp-field-width-*` 토큰으로 풀리며 `maxLength`(= 스키마 상한)로 고른다. 상한이 `xl` 을 넘거나 상한이 없으면 `"100%"`. (`sellmate/field-width-grade` 가 검사한다) |
|
|
35
37
|
| `disabled?` | `boolean` | `false` | |
|
|
36
38
|
| `readOnly?` | `boolean` | `false` | |
|
|
37
39
|
| `className?` | `string` | — | |
|
|
@@ -48,6 +50,7 @@
|
|
|
48
50
|
|
|
49
51
|
### Used by
|
|
50
52
|
|
|
53
|
+
- [SEditor](../SEditor)
|
|
51
54
|
- [SKeyValueTable](../SKeyValueTable)
|
|
52
55
|
|
|
53
56
|
### Depends on
|
|
@@ -61,6 +64,7 @@
|
|
|
61
64
|
graph TD;
|
|
62
65
|
SInput --> SField
|
|
63
66
|
SInput --> SGhostButton
|
|
67
|
+
SEditor --> SInput
|
|
64
68
|
SKeyValueTable --> SInput
|
|
65
69
|
style SInput fill:#f9f,stroke:#333,stroke-width:4px
|
|
66
70
|
```
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type InputHTMLAttributes, type CSSProperties, type ReactNode } from 'react';
|
|
2
|
-
import { type SFieldSize, type SFieldAddonAlign, type SFieldStatus } from '../SField';
|
|
2
|
+
import { type SFieldSize, type SFieldAddonAlign, type SFieldStatus, type SFieldLabelPosition } from '../SField';
|
|
3
3
|
import { type SIconName } from '../SIcon';
|
|
4
4
|
import { type SColor } from '../../lib/color';
|
|
5
5
|
import { type Rule } from '../../lib/form';
|
|
6
6
|
import { type STooltipProps } from '../STooltip';
|
|
7
|
+
import { type SFieldWidth } from '../../lib/field-width';
|
|
7
8
|
export interface SInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'value' | 'onChange' | 'type' | 'prefix' | 'suffix'> {
|
|
8
9
|
/** 값 (제어) */
|
|
9
10
|
value?: string | number;
|
|
@@ -29,15 +30,21 @@ export interface SInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
|
|
|
29
30
|
rules?: Rule[];
|
|
30
31
|
/** 필드 상태 ('default' | 'pass' | 'error') */
|
|
31
32
|
status?: SFieldStatus;
|
|
32
|
-
/** 포커스
|
|
33
|
+
/** 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) */
|
|
33
34
|
focused?: boolean;
|
|
34
|
-
/** 호버
|
|
35
|
+
/** 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) */
|
|
35
36
|
hovered?: boolean;
|
|
36
37
|
/** 내부 input 요소 className */
|
|
37
|
-
|
|
38
|
+
inputClassName?: string;
|
|
38
39
|
/** 내부 input 요소 style */
|
|
39
40
|
inputStyle?: CSSProperties;
|
|
40
41
|
label?: string;
|
|
42
|
+
/** 레이블 위치 — `top` 이면 라벨이 컨트롤 위에 선다 (SField 로 그대로 넘어간다) */
|
|
43
|
+
labelPosition?: SFieldLabelPosition;
|
|
44
|
+
/**
|
|
45
|
+
* 보조 레이블 — 레이블 오른쪽 같은 줄에 붙는다 (SField 로 그대로 넘어간다).
|
|
46
|
+
*/
|
|
47
|
+
subLabel?: string;
|
|
41
48
|
labelWidth?: number | string;
|
|
42
49
|
/** 레이블 툴팁 텍스트 */
|
|
43
50
|
labelTooltip?: string;
|
|
@@ -49,7 +56,12 @@ export interface SInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
|
|
|
49
56
|
addonLabel?: string;
|
|
50
57
|
/** 어드온 정렬 */
|
|
51
58
|
addonAlign?: SFieldAddonAlign;
|
|
52
|
-
|
|
59
|
+
/**
|
|
60
|
+
* 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이.
|
|
61
|
+
* 등급은 `--cmp-field-width-*` 토큰으로 풀리며 `maxLength`(= 스키마 상한)로 고른다.
|
|
62
|
+
* 상한이 `xl` 을 넘거나 상한이 없으면 `"100%"`. (`sellmate/field-width-grade` 가 검사한다)
|
|
63
|
+
*/
|
|
64
|
+
width?: SFieldWidth;
|
|
53
65
|
disabled?: boolean;
|
|
54
66
|
readOnly?: boolean;
|
|
55
67
|
className?: string;
|
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
11
|
| `fields?` | `SKeyValueField[][]` | `[]` | 2차원 배열. row → [th|td] 필드들 |
|
|
12
12
|
| `values?` | `Record<string, unknown>` | `{}` | field name을 key로 하는 값 객체 (`{ [name]: value }`). 지정 시 해당 field의 값으로 사용되며, field별 `options.value`보다 우선합니다. `onChange`의 `detail.values`와 함께 controlled 패턴으로 사용합니다. |
|
|
13
|
+
| `dense?` | `boolean` | `false` | 행을 좁게 그린다 — 셀의 상하 패딩(8px → 6px)과 짝이 되는 최소 높이(44px → 32px)를 함께 내린다. 한 화면에 행이 많아 훑어보기가 목적인 상세 조회 표에 쓴다. 좌우 패딩과 글자 크기는 그대로다. **`STable` 과 달리 밀도 토글이 붙지 않는 고정값이다** — 준 값 그대로 그린다. 읽기 전용(`text`) 행에서만 실제로 좁아진다: 폼 필드 행은 필드 높이가 행 높이를 정한다 |
|
|
13
14
|
| `search?` | `boolean` | `false` | 우측 검색 패널 |
|
|
14
15
|
| `radius?` | `'default' \| 'useTop' \| 'full'` | `'default'` | border-radius 제어 |
|
|
15
16
|
| `bordered?` | `boolean` | `true` | 바깥 테두리. 기본은 `true`. `SSectionHeaderCard` 의 `padding="none"` 안에 넣어 카드 가장자리까지 채울 때 `false` 로 끈다 — 카드가 이미 바깥 테두리를 그리므로, 켜 두면 1px 두 개가 나란히 놓여 그 변만 2px 로 보인다. |
|
|
17
|
+
| `fieldWidth?` | `'auto' \| 'fill'` | `'auto'` | 필드 폭 정책 — **표 하나가 한 번에 정한다**. 필드마다 따로 정하지 않는다. 표는 모든 컨트롤에 `width="100%"` 를 넘기지만, 값 길이를 아는 컨트롤(날짜·기간 피커)은 자기 상한에서 멈춘다. 그래서 한 행에 그런 필드가 섞이면 **왼쪽 끝만 맞고 오른쪽 끝이 어긋나** 보인다. - `'auto'`(기본) — 컨트롤이 자기 폭을 정한다. 상한이 그대로 살아 있어 폭이 "이 칸에 얼마나 긴 값이 들어가는가" 를 알려준다. 등록·수정 폼처럼 입력 길이를 짐작하게 하는 편이 나은 표에 쓴다. - `'fill'` — 모든 컨트롤이 셀 끝까지 찬다. 셀 폭은 열 수와 `tdColSpan` 이 정하므로 오른쪽 끝이 저절로 맞는다. 조회 필터처럼 가지런함이 우선인 표에 쓴다. 대신 폭이 값 길이를 알려주지 않는다 — 날짜 칸이 메모 칸만큼 넓어진다. 개별 필드만 예외로 두려면 그 필드의 `options.maxWidth` 를 준다 — 이 정책보다 우선한다. |
|
|
16
18
|
| `className?` | `string` | — | |
|
|
17
19
|
| `style?` | `CSSProperties` | — | |
|
|
18
20
|
|
|
@@ -23,6 +25,90 @@
|
|
|
23
25
|
| `onChange` | `(detail: SKeyValueChangeDetail) => void` | 값 변경 (sdChange) |
|
|
24
26
|
| `onSearch` | `() => void` | 검색 클릭 (sdSearch) |
|
|
25
27
|
|
|
28
|
+
## Types
|
|
29
|
+
|
|
30
|
+
### SKeyValueField
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
export type SKeyValueField = SKeyValueFieldBase & SKeyValueFieldByType;
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### SKeyValueChangeDetail
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
/**
|
|
40
|
+
* `onChange` 콜백 detail.
|
|
41
|
+
* 제네릭 `V`에 폼 값 형태(`{ [name]: value }`)를 넘기면 `name`/`value`/`values`가 정밀하게 타이핑됩니다.
|
|
42
|
+
* 미지정 시 `value`는 {@link SKeyValueFieldValue} 유니온으로 잡힙니다.
|
|
43
|
+
*/
|
|
44
|
+
export interface SKeyValueChangeDetail<
|
|
45
|
+
V extends Record<string, SKeyValueFieldValue> = Record<string, SKeyValueFieldValue>,
|
|
46
|
+
> {
|
|
47
|
+
/** 변경된 field의 name */
|
|
48
|
+
name: Extract<keyof V, string>;
|
|
49
|
+
/** 변경된 field의 새 값 */
|
|
50
|
+
value: V[Extract<keyof V, string>];
|
|
51
|
+
/** 변경이 반영된 전체 값 객체 (`{ [name]: value }`). controlled 패턴에서 그대로 상태에 반영하면 됩니다. */
|
|
52
|
+
values: V;
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### SKeyValueFieldBase
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
/** field type과 무관한 공통 속성 (레이아웃·레이블·스팬 등) */
|
|
60
|
+
export interface SKeyValueFieldBase {
|
|
61
|
+
name: string;
|
|
62
|
+
label?: string;
|
|
63
|
+
required?: boolean;
|
|
64
|
+
helpText?: string[];
|
|
65
|
+
hideTh?: boolean;
|
|
66
|
+
thRowSpan?: number;
|
|
67
|
+
thColSpan?: number;
|
|
68
|
+
tdRowSpan?: number;
|
|
69
|
+
tdColSpan?: number;
|
|
70
|
+
thWidth?: number | string;
|
|
71
|
+
thClass?: string;
|
|
72
|
+
tdClass?: string;
|
|
73
|
+
/** 셀 커스텀 렌더 (React 확장). 지정 시 type/options는 무시되고 이 노드가 그대로 렌더됩니다. */
|
|
74
|
+
render?: ReactNode;
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### SKeyValueFieldByType
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
/**
|
|
82
|
+
* `type`에 따라 `options`가 해당 컴포넌트의 props로 좁혀지는 discriminated union.
|
|
83
|
+
* `type` 생략 시 `text`로 동작합니다.
|
|
84
|
+
*/
|
|
85
|
+
export type SKeyValueFieldByType =
|
|
86
|
+
| { type?: 'text'; options?: { value?: ReactNode } }
|
|
87
|
+
| { type: 'input'; options?: FieldOptions<SInputProps> }
|
|
88
|
+
| { type: 'textarea'; options?: FieldOptions<STextareaProps> }
|
|
89
|
+
| { type: 'number-input'; options?: FieldOptions<SNumberInputProps> }
|
|
90
|
+
| { type: 'select'; options?: FieldOptions<SSelectProps> }
|
|
91
|
+
| { type: 'radio'; options?: FieldOptions<SRadioGroupProps> }
|
|
92
|
+
| { type: 'checkbox'; options?: FieldOptions<SCheckboxProps> }
|
|
93
|
+
| { type: 'switch'; options?: FieldOptions<SSwitchProps> }
|
|
94
|
+
| { type: 'date-picker'; options?: FieldOptions<SDatePickerProps> }
|
|
95
|
+
| { type: 'date-range-picker'; options?: FieldOptions<SDateRangePickerProps> }
|
|
96
|
+
| { type: 'file-picker'; options?: FieldOptions<SFilePickerProps> };
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### SKeyValueFieldValue
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
/**
|
|
103
|
+
* field type별 `onChange`로 올라오는 값 타입.
|
|
104
|
+
* - `string`: input · textarea · select · radio · date-picker
|
|
105
|
+
* - `number`: number-input
|
|
106
|
+
* - `boolean`: checkbox · switch
|
|
107
|
+
* - `string[]`: date-range-picker
|
|
108
|
+
*/
|
|
109
|
+
export type SKeyValueFieldValue = string | number | boolean | string[];
|
|
110
|
+
```
|
|
111
|
+
|
|
26
112
|
## Dependencies
|
|
27
113
|
|
|
28
114
|
### Depends on
|
|
@@ -37,6 +123,7 @@
|
|
|
37
123
|
- [SNumberInput](../SNumberInput)
|
|
38
124
|
- [SRadio](../SRadio)
|
|
39
125
|
- [SSelect](../SSelect)
|
|
126
|
+
- [SSwitch](../SSwitch)
|
|
40
127
|
- [STextarea](../STextarea)
|
|
41
128
|
- [STooltip](../STooltip)
|
|
42
129
|
|
|
@@ -54,6 +141,7 @@ graph TD;
|
|
|
54
141
|
SKeyValueTable --> SNumberInput
|
|
55
142
|
SKeyValueTable --> SRadio
|
|
56
143
|
SKeyValueTable --> SSelect
|
|
144
|
+
SKeyValueTable --> SSwitch
|
|
57
145
|
SKeyValueTable --> STextarea
|
|
58
146
|
SKeyValueTable --> STooltip
|
|
59
147
|
style SKeyValueTable fill:#f9f,stroke:#333,stroke-width:4px
|