sellmate-design-system-react 9.0.0-beta.9 → 9.0.0-beta.91
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 +4079 -265
- 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 +52 -0
- package/dist/components/SChatInput/SChatInput.d.ts +127 -0
- package/dist/components/SChatInput/index.d.ts +1 -0
- package/dist/components/SChatMessage/README.md +87 -0
- package/dist/components/SChatMessage/SChatMessage.d.ts +135 -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 +9 -0
- package/dist/components/SCheckbox/SCheckbox.d.ts +9 -1
- 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 +22 -3
- package/dist/components/SChipInput/SChipInput.d.ts +53 -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 +23 -2
- package/dist/components/SDatePicker/SDatePicker.d.ts +50 -5
- package/dist/components/SDateRangePicker/README.md +23 -4
- package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +52 -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 +48 -0
- package/dist/components/SEditor/EditorToolbar.d.ts +93 -0
- package/dist/components/SEditor/README.md +207 -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 +39 -2
- package/dist/components/SExpansionItem/SExpansionItem.d.ts +18 -2
- package/dist/components/SExpansionItem/index.d.ts +1 -1
- package/dist/components/SField/README.md +38 -5
- package/dist/components/SField/SField.d.ts +59 -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 +32 -5
- package/dist/components/SGhostButton/SGhostButton.d.ts +22 -4
- 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 +18 -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 +12 -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 +27 -0
- package/dist/components/SRadioButton/SRadioButton.d.ts +17 -3
- 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 +19 -4
- package/dist/components/SSearchInput/SSearchInput.d.ts +11 -5
- 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 +67 -0
- package/dist/components/SSkeleton/SSkeleton.d.ts +43 -0
- package/dist/components/SSkeleton/index.d.ts +2 -0
- package/dist/components/SSkeleton/skeleton.config.d.ts +24 -0
- package/dist/components/SSlider/README.md +86 -0
- package/dist/components/SSlider/SSlider.d.ts +149 -0
- package/dist/components/SSlider/index.d.ts +1 -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 +142 -20
- package/dist/components/STable/STable.d.ts +312 -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/STimeline/README.md +41 -0
- package/dist/components/STimeline/STimeline.d.ts +27 -0
- package/dist/components/STimeline/index.d.ts +1 -0
- 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 -5
- package/dist/components/STree/STree.d.ts +18 -8
- package/dist/components/STree/STree.examples.d.ts +2 -0
- package/dist/components/STreeTable/README.md +49 -0
- package/dist/components/STreeTable/STreeTable.d.ts +70 -0
- package/dist/components/STreeTable/STreeTable.examples.d.ts +32 -0
- package/dist/components/STreeTable/index.d.ts +1 -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 +22926 -10831
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +25 -0
- package/dist/index.js +22836 -10830
- 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 +11 -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 +8447 -557
- package/dist/llms.txt +4148 -304
- 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 +3663 -244
- package/dist/theme.css +620 -27
- 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 +20 -5
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { type CSSProperties, type ReactNode } from 'react';
|
|
2
|
+
/** 범례 위치. */
|
|
3
|
+
export type SPieChartLegendPosition = 'top' | 'bottom';
|
|
4
|
+
/**
|
|
5
|
+
* 색 팔레트. 조각마다 색이 달라야 하므로 한 색(`default`)은 없다.
|
|
6
|
+
* - `multi` 서로 무관한 항목(11색)을 순서대로
|
|
7
|
+
* - `gradation` 한 지표의 단계(6색)를 진한 쪽부터 순서대로 — 조각을 큰 순으로 줄 때
|
|
8
|
+
* - `custom` `colors` 로 고른 색을 순서대로
|
|
9
|
+
*/
|
|
10
|
+
export type SPieChartPalette = 'multi' | 'gradation' | 'custom';
|
|
11
|
+
/**
|
|
12
|
+
* `palette='custom'` 에서 고를 수 있는 색 이름.
|
|
13
|
+
* positive=늘어남 · negative=줄어듦 · neutral=변화 없음 을 뜻하므로 뜻에 맞게 고른다.
|
|
14
|
+
*/
|
|
15
|
+
export type SPieChartColor = 'positivePrimary' | 'positiveSecondary' | 'negativePrimary' | 'negativeSecondary' | 'neutralPrimary' | 'neutralSecondary';
|
|
16
|
+
/** 조각 하나 — 범례 한 줄에 대응한다. */
|
|
17
|
+
export interface SPieChartSlice {
|
|
18
|
+
/** 범례·툴팁에 표시할 이름 */
|
|
19
|
+
name: string;
|
|
20
|
+
/** 값. 0·음수는 그리지 않는다 — 원은 전체에 대한 몫만 나타낼 수 있다 */
|
|
21
|
+
value: number;
|
|
22
|
+
}
|
|
23
|
+
/** 클릭이 가리키는 조각. */
|
|
24
|
+
export interface SPieChartSlicePoint {
|
|
25
|
+
/** `data` 안에서의 인덱스 */
|
|
26
|
+
index: number;
|
|
27
|
+
name: string;
|
|
28
|
+
value: number;
|
|
29
|
+
/** 그려진 조각 전체의 합에 대한 몫(0~1) */
|
|
30
|
+
ratio: number;
|
|
31
|
+
}
|
|
32
|
+
export interface SPieChartProps {
|
|
33
|
+
/** 조각 목록. 주는 순서대로 12시에서 시계 방향으로 그린다 — 보통 큰 순으로 준다 */
|
|
34
|
+
data: SPieChartSlice[];
|
|
35
|
+
/** 차트 제목 — 왼쪽 위에 놓인다 */
|
|
36
|
+
title?: string;
|
|
37
|
+
/** 단위 — 오른쪽 위에 "단위 : " 를 붙여 놓는다 */
|
|
38
|
+
unit?: string;
|
|
39
|
+
/** 색 팔레트. `custom` 일 때만 `colors` 를 본다 */
|
|
40
|
+
palette?: SPieChartPalette;
|
|
41
|
+
/** `palette='custom'` 에서 쓸 색 이름을 조각 순서대로. 조각보다 짧으면 앞에서부터 순환하고, 비어 있으면 `multi` 로 그린다 */
|
|
42
|
+
colors?: SPieChartColor[];
|
|
43
|
+
/** 조각 안에 몫(%)을 적는다. 좁은 조각은 글자가 넘치므로 적지 않는다 */
|
|
44
|
+
showValueLabel?: boolean;
|
|
45
|
+
/** 범례를 보인다 */
|
|
46
|
+
showLegend?: boolean;
|
|
47
|
+
/** 범례 위치 */
|
|
48
|
+
legendPosition?: SPieChartLegendPosition;
|
|
49
|
+
/** 조각에 마우스를 올리면 값 상자를 띄운다 */
|
|
50
|
+
showTooltip?: boolean;
|
|
51
|
+
/** 값 표시 형식 */
|
|
52
|
+
formatValue?: (value: number) => string;
|
|
53
|
+
/** 조각을 눌렀을 때 */
|
|
54
|
+
onSliceClick?: (slice: SPieChartSlicePoint) => void;
|
|
55
|
+
/**
|
|
56
|
+
* 툴팁의 값 아래에 덧붙일 내용. 짚은 조각을 받아 그린다 — 몫·값만으로 모자란 맥락
|
|
57
|
+
* (전월 대비, 건수 등)을 적는다. 툴팁은 누를 수 없으므로 버튼·링크는 넣지 않는다
|
|
58
|
+
*/
|
|
59
|
+
tooltipFooter?: (slice: SPieChartSlicePoint) => ReactNode;
|
|
60
|
+
/** 폭은 기본 100% 다. 폭을 정하려면 여기에 준다 — 그림은 그 폭의 정사각형이 된다 */
|
|
61
|
+
className?: string;
|
|
62
|
+
style?: CSSProperties;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* SPieChart — 원그래프.
|
|
66
|
+
*
|
|
67
|
+
* **한 시점의 전체를 몇 개의 몫으로 나눈 것**을 보여줄 때 쓴다. 조각이 대여섯 개를 넘거나
|
|
68
|
+
* 몫끼리 크기를 견주는 것이 목적이면 `SBarChart` 가 맞다 — 사람은 각도보다 길이를
|
|
69
|
+
* 훨씬 정확하게 견준다. 합계를 함께 강조하려면 `SDonutChart` 를 쓴다.
|
|
70
|
+
*
|
|
71
|
+
* 폭은 부모를 따르고(기본 100%), 그림은 그 폭을 한 변으로 하는 정사각형이다.
|
|
72
|
+
*/
|
|
73
|
+
export declare const SPieChart: import("react").ForwardRefExoticComponent<SPieChartProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SPieChart, type SPieChartProps, type SPieChartSlice, type SPieChartSlicePoint, type SPieChartPalette, type SPieChartColor, type SPieChartLegendPosition, } from './SPieChart';
|
|
@@ -33,6 +33,21 @@
|
|
|
33
33
|
| `onLeftLinkClick` | `() => void` | 하단 좌측 링크 클릭 |
|
|
34
34
|
| `onButtonClick` | `() => void` | 하단 우측 버튼 클릭 |
|
|
35
35
|
|
|
36
|
+
## Types
|
|
37
|
+
|
|
38
|
+
### SPopoverPlacement
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
export type SPopoverPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### SPopoverType
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
/** 색상 타입 — default: 다크 배경 / danger·warning·accent: 라이트 배경 (component.popover 토큰) */
|
|
48
|
+
export type SPopoverType = 'default' | 'danger' | 'warning' | 'accent';
|
|
49
|
+
```
|
|
50
|
+
|
|
36
51
|
## Dependencies
|
|
37
52
|
|
|
38
53
|
### Depends on
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
11
|
| `popupTitle?` | `string` | `''` | 헤더 제목 |
|
|
12
12
|
| `type?` | `SPopupType` | `'default'` | 타입 (헤더 색상) |
|
|
13
|
-
| `
|
|
13
|
+
| `showFooter?` | `boolean` | `false` | 하단 footer 표시 여부 |
|
|
14
14
|
| `submitButton?` | `SPopupSubmitButton` | — | 확인 버튼 설정 |
|
|
15
15
|
| `footerLeft?` | `ReactNode` | — | footer 좌측 영역 |
|
|
16
|
-
| `
|
|
16
|
+
| `padding?` | `SPopupBodyPadding` | `'default'` | 본문 안쪽 여백. 기본은 `default` — 표를 가장자리까지 채우는 등 본문이 여백을 직접 다룰 때만 `none`. (`SList` 의 `padding` 과 같은 이름이지만 기본값이 반대다 — 각 면의 성격이 다르다) |
|
|
17
17
|
| `children?` | `ReactNode` | — | 본문 |
|
|
18
18
|
| `className?` | `string` | — | |
|
|
19
19
|
| `style?` | `CSSProperties` | — | |
|
|
@@ -24,6 +24,30 @@
|
|
|
24
24
|
|-------|------|-------------|
|
|
25
25
|
| `onSubmit` | `() => void` | 확인 버튼 클릭 (sdSubmit) |
|
|
26
26
|
|
|
27
|
+
## Types
|
|
28
|
+
|
|
29
|
+
### SPopupType
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
export type SPopupType = 'default' | 'light';
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### SPopupSubmitButton
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
/**
|
|
39
|
+
* 확인 버튼 설정 — `SButton` 의 prop 을 그대로 받되 `onClick` 만 뺀다.
|
|
40
|
+
* 클릭은 `onSubmit` 이 전담하므로, 여기로도 받으면 조용히 덮어써지는 prop 이 생긴다.
|
|
41
|
+
*/
|
|
42
|
+
export type SPopupSubmitButton = Omit<SFooterButton, 'onClick'>;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### SPopupBodyPadding
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
export type SPopupBodyPadding = 'default' | 'none';
|
|
49
|
+
```
|
|
50
|
+
|
|
27
51
|
## Dependencies
|
|
28
52
|
|
|
29
53
|
### Depends on
|
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
import { type ReactNode, type CSSProperties } from 'react';
|
|
2
|
-
import { type
|
|
2
|
+
import { type SFooterButton } from '../SFooter';
|
|
3
3
|
export type SPopupType = 'default' | 'light';
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
export type SPopupBodyPadding = 'default' | 'none';
|
|
5
|
+
/**
|
|
6
|
+
* 확인 버튼 설정 — `SButton` 의 prop 을 그대로 받되 `onClick` 만 뺀다.
|
|
7
|
+
* 클릭은 `onSubmit` 이 전담하므로, 여기로도 받으면 조용히 덮어써지는 prop 이 생긴다.
|
|
8
|
+
*/
|
|
9
|
+
export type SPopupSubmitButton = Omit<SFooterButton, 'onClick'>;
|
|
10
10
|
export interface SPopupProps {
|
|
11
11
|
/** 헤더 제목 */
|
|
12
12
|
popupTitle?: string;
|
|
13
13
|
/** 타입 (헤더 색상) */
|
|
14
14
|
type?: SPopupType;
|
|
15
15
|
/** 하단 footer 표시 여부 */
|
|
16
|
-
|
|
16
|
+
showFooter?: boolean;
|
|
17
17
|
/** 확인 버튼 설정 */
|
|
18
18
|
submitButton?: SPopupSubmitButton;
|
|
19
19
|
/** 확인 버튼 클릭 (sdSubmit) */
|
|
20
20
|
onSubmit?: () => void;
|
|
21
21
|
/** footer 좌측 영역 */
|
|
22
22
|
footerLeft?: ReactNode;
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* 본문 안쪽 여백. 기본은 `default` — 표를 가장자리까지 채우는 등 본문이 여백을 직접
|
|
25
|
+
* 다룰 때만 `none`. (`SList` 의 `padding` 과 같은 이름이지만 기본값이 반대다 — 각 면의 성격이 다르다)
|
|
26
|
+
*/
|
|
27
|
+
padding?: SPopupBodyPadding;
|
|
25
28
|
/** 본문 */
|
|
26
29
|
children?: ReactNode;
|
|
27
30
|
className?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { SPopup, type SPopupProps, type SPopupType, type SPopupSubmitButton } from './SPopup';
|
|
1
|
+
export { SPopup, type SPopupBodyPadding, type SPopupProps, type SPopupType, type SPopupSubmitButton, } from './SPopup';
|
|
@@ -34,18 +34,38 @@
|
|
|
34
34
|
| `onCloseAutoFocus` | `(event: Event) => void` | 닫힐 때 포커스 복귀 처리 (기본은 Radix가 앵커로 포커스를 되돌림). e.preventDefault()로 막을 수 있다. |
|
|
35
35
|
| `onPointerDownOutside` | `(event: Event) => void` | 바깥 영역 pointerdown 으로 닫힘이 시작될 때 (앵커 위 클릭·persistent 는 제외). |
|
|
36
36
|
|
|
37
|
+
## Types
|
|
38
|
+
|
|
39
|
+
### SPortalPlacement
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
export type SPortalPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### SPortalAlign
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
export type SPortalAlign = 'start' | 'center' | 'end';
|
|
49
|
+
```
|
|
50
|
+
|
|
37
51
|
## Dependencies
|
|
38
52
|
|
|
39
53
|
### Used by
|
|
40
54
|
|
|
55
|
+
- [SAccountListBox](../SAccountListBox)
|
|
41
56
|
- [SChipInput](../SChipInput)
|
|
57
|
+
- [SGnb](../SGnb)
|
|
58
|
+
- [SGnbSystem](../SGnbSystem)
|
|
42
59
|
- [SSelect](../SSelect)
|
|
43
60
|
|
|
44
61
|
### Graph
|
|
45
62
|
|
|
46
63
|
```mermaid
|
|
47
64
|
graph TD;
|
|
65
|
+
SAccountListBox --> SPortal
|
|
48
66
|
SChipInput --> SPortal
|
|
67
|
+
SGnb --> SPortal
|
|
68
|
+
SGnbSystem --> SPortal
|
|
49
69
|
SSelect --> SPortal
|
|
50
70
|
style SPortal fill:#f9f,stroke:#333,stroke-width:4px
|
|
51
71
|
```
|
|
@@ -42,6 +42,26 @@
|
|
|
42
42
|
|-------|------|-------------|
|
|
43
43
|
| `onValueChange` | `(val: SRadioValue) => void` | 선택 변경 (sdUpdate) — 선택된 val 전달 |
|
|
44
44
|
|
|
45
|
+
## Types
|
|
46
|
+
|
|
47
|
+
### SRadioOption
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
export interface SRadioOption {
|
|
51
|
+
/** 옵션 값 (sd-radio-group SRadioOption.value) */
|
|
52
|
+
value: SRadioValue;
|
|
53
|
+
label: string;
|
|
54
|
+
disabled?: boolean;
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### SRadioValue
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
/** 라디오 값 타입 (sd-radio SRadioValue) */
|
|
62
|
+
export type SRadioValue = string | number | boolean;
|
|
63
|
+
```
|
|
64
|
+
|
|
45
65
|
## Dependencies
|
|
46
66
|
|
|
47
67
|
### Used by
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
| `value?` | `string \| number \| null` | — | 현재 선택 값 |
|
|
13
13
|
| `size?` | `SRadioButtonSize` | `'sm'` | 크기 |
|
|
14
14
|
| `disabled?` | `boolean` | `false` | 전체 비활성 |
|
|
15
|
+
| `readOnly?` | `boolean` | `false` | 읽기 전용. 선택 값을 보여주기만 하고 바꿀 수 없다. 모든 버튼이 readOnly 배경, 선택된 버튼만 readOnly 테두리·기본 글자색으로 구분하고 선택되지 않은 버튼은 글자가 disabled 색이고 반투명하게 흐려진다. 포커스·툴팁은 유지된다. `disabled`(그룹·옵션)가 함께 오면 disabled 가 우선한다. |
|
|
15
16
|
| `name?` | `string` | — | input name 속성 |
|
|
17
|
+
| `showTooltip?` | `boolean` | `false` | 옵션 호버 시 툴팁 노출. 문구는 옵션별 `tooltip` 으로 주며, 문구가 없는 옵션은 툴팁을 띄우지 않는다. 툴팁 타입은 `accent` 고정이다. |
|
|
16
18
|
| `className?` | `string` | — | |
|
|
17
19
|
| `style?` | `CSSProperties` | — | |
|
|
18
20
|
|
|
@@ -22,16 +24,41 @@
|
|
|
22
24
|
|-------|------|-------------|
|
|
23
25
|
| `onValueChange` | `(value: string \| number) => void` | 변경 (sdUpdate) |
|
|
24
26
|
|
|
27
|
+
## Types
|
|
28
|
+
|
|
29
|
+
### SRadioButtonOption
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
export interface SRadioButtonOption {
|
|
33
|
+
value: string | number;
|
|
34
|
+
label: string;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
/** 호버 시 툴팁 문구. `showTooltip` 이 켜져 있을 때만 노출된다 */
|
|
37
|
+
tooltip?: string;
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### SRadioButtonSize
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
export type SRadioButtonSize = 'xs' | 'sm' | 'md';
|
|
45
|
+
```
|
|
46
|
+
|
|
25
47
|
## Dependencies
|
|
26
48
|
|
|
27
49
|
### Used by
|
|
28
50
|
|
|
29
51
|
- [SChipFilter](../SChipFilter)
|
|
30
52
|
|
|
53
|
+
### Depends on
|
|
54
|
+
|
|
55
|
+
- [STooltip](../STooltip)
|
|
56
|
+
|
|
31
57
|
### Graph
|
|
32
58
|
|
|
33
59
|
```mermaid
|
|
34
60
|
graph TD;
|
|
61
|
+
SRadioButton --> STooltip
|
|
35
62
|
SChipFilter --> SRadioButton
|
|
36
63
|
style SRadioButton fill:#f9f,stroke:#333,stroke-width:4px
|
|
37
64
|
```
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type CSSProperties } from 'react';
|
|
2
|
-
export type SRadioButtonSize = 'xs' | 'sm';
|
|
2
|
+
export type SRadioButtonSize = 'xs' | 'sm' | 'md';
|
|
3
3
|
export interface SRadioButtonOption {
|
|
4
4
|
value: string | number;
|
|
5
5
|
label: string;
|
|
6
6
|
disabled?: boolean;
|
|
7
|
+
/** 호버 시 툴팁 문구. `showTooltip` 이 켜져 있을 때만 노출된다 */
|
|
8
|
+
tooltip?: string;
|
|
7
9
|
}
|
|
8
10
|
export interface SRadioButtonProps {
|
|
9
11
|
/** 옵션 목록 */
|
|
@@ -14,8 +16,20 @@ export interface SRadioButtonProps {
|
|
|
14
16
|
size?: SRadioButtonSize;
|
|
15
17
|
/** 전체 비활성 */
|
|
16
18
|
disabled?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* 읽기 전용. 선택 값을 보여주기만 하고 바꿀 수 없다.
|
|
21
|
+
* 모든 버튼이 readOnly 배경, 선택된 버튼만 readOnly 테두리·기본 글자색으로 구분하고
|
|
22
|
+
* 선택되지 않은 버튼은 글자가 disabled 색이고 반투명하게 흐려진다.
|
|
23
|
+
* 포커스·툴팁은 유지된다. `disabled`(그룹·옵션)가 함께 오면 disabled 가 우선한다.
|
|
24
|
+
*/
|
|
25
|
+
readOnly?: boolean;
|
|
17
26
|
/** input name 속성 */
|
|
18
27
|
name?: string;
|
|
28
|
+
/**
|
|
29
|
+
* 옵션 호버 시 툴팁 노출. 문구는 옵션별 `tooltip` 으로 주며, 문구가 없는 옵션은 툴팁을 띄우지 않는다.
|
|
30
|
+
* 툴팁 타입은 `accent` 고정이다.
|
|
31
|
+
*/
|
|
32
|
+
showTooltip?: boolean;
|
|
19
33
|
/** 변경 (sdUpdate) */
|
|
20
34
|
onValueChange?: (value: string | number) => void;
|
|
21
35
|
className?: string;
|
|
@@ -23,6 +37,6 @@ export interface SRadioButtonProps {
|
|
|
23
37
|
}
|
|
24
38
|
/**
|
|
25
39
|
* SRadioButton — sd-radio-button 포팅. 세그먼트형 라디오(버튼 그룹).
|
|
26
|
-
* default(흰 배경/회색, hover 파란 채움) · select(흰 배경/파란 테두리·글자) · disabled.
|
|
40
|
+
* default(흰 배경/회색, hover 파란 채움) · select(흰 배경/파란 테두리·글자) · disabled · readOnly.
|
|
27
41
|
*/
|
|
28
|
-
export declare function SRadioButton({ options, value, size, disabled, name, onValueChange, className, style, }: SRadioButtonProps): import("react").JSX.Element;
|
|
42
|
+
export declare function SRadioButton({ options, value, size, disabled, readOnly, name, showTooltip, onValueChange, className, style, }: SRadioButtonProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# SRadioCard
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SRadioCardGroup
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `options?` | `SRadioCardOption[]` | `[]` | 옵션 목록 |
|
|
12
|
+
| `value?` | `SRadioValue \| null` | — | 현재 선택 값 |
|
|
13
|
+
| `direction?` | `'vertical' \| 'horizontal'` | `'vertical'` | 배치 방향 |
|
|
14
|
+
| `disabled?` | `boolean` | `false` | 전체 비활성 |
|
|
15
|
+
| `groupName?` | `string` | — | 라디오 name 속성 (form-agnostic 그룹핑) |
|
|
16
|
+
| `className?` | `string` | — | |
|
|
17
|
+
| `style?` | `CSSProperties` | — | |
|
|
18
|
+
|
|
19
|
+
#### Events
|
|
20
|
+
|
|
21
|
+
| Event | Type | Description |
|
|
22
|
+
|-------|------|-------------|
|
|
23
|
+
| `onValueChange` | `(val: SRadioValue) => void` | 선택 변경 (sdUpdate) |
|
|
24
|
+
|
|
25
|
+
### SRadioCard
|
|
26
|
+
|
|
27
|
+
#### Props
|
|
28
|
+
|
|
29
|
+
| Prop | Type | Default | Description |
|
|
30
|
+
|------|------|---------|-------------|
|
|
31
|
+
| `val` | `SRadioValue` | — | 이 카드의 값 |
|
|
32
|
+
| `value?` | `SRadioValue \| null` | — | 그룹의 현재 선택 값 |
|
|
33
|
+
| `label` | `string` | — | 라벨 (첫 줄) |
|
|
34
|
+
| `subtitle?` | `string` | — | 서브타이틀 (둘째 줄). 라벨 왼쪽 끝에 맞춰 들여쓴다 |
|
|
35
|
+
| `tag?` | `Omit<STagProps, 'size'>` | — | 라벨 오른쪽에 붙일 태그. `STag` 의 props 를 그대로 받되 크기는 `xs` 로 고정된다 |
|
|
36
|
+
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
37
|
+
| `name?` | `string` | — | native radio name (form-agnostic 그룹핑) |
|
|
38
|
+
| `className?` | `string` | — | |
|
|
39
|
+
| `style?` | `CSSProperties` | — | |
|
|
40
|
+
|
|
41
|
+
#### Events
|
|
42
|
+
|
|
43
|
+
| Event | Type | Description |
|
|
44
|
+
|-------|------|-------------|
|
|
45
|
+
| `onValueChange` | `(val: SRadioValue) => void` | 선택 변경 (sdUpdate) — 선택된 val 전달 |
|
|
46
|
+
|
|
47
|
+
## Types
|
|
48
|
+
|
|
49
|
+
### SRadioCardOption
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
export interface SRadioCardOption {
|
|
53
|
+
/** 옵션 값 */
|
|
54
|
+
value: SRadioValue;
|
|
55
|
+
/** 라벨 (첫 줄) */
|
|
56
|
+
label: string;
|
|
57
|
+
/** 서브타이틀 (둘째 줄) */
|
|
58
|
+
subtitle?: string;
|
|
59
|
+
/** 라벨 오른쪽에 붙일 태그 (`STag` props, 크기는 `xs` 고정) */
|
|
60
|
+
tag?: Omit<STagProps, 'size'>;
|
|
61
|
+
/** 이 옵션만 비활성 */
|
|
62
|
+
disabled?: boolean;
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Dependencies
|
|
67
|
+
|
|
68
|
+
### Depends on
|
|
69
|
+
|
|
70
|
+
- [STag](../STag)
|
|
71
|
+
|
|
72
|
+
### Graph
|
|
73
|
+
|
|
74
|
+
```mermaid
|
|
75
|
+
graph TD;
|
|
76
|
+
SRadioCard --> STag
|
|
77
|
+
style SRadioCard fill:#f9f,stroke:#333,stroke-width:4px
|
|
78
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type CSSProperties } from 'react';
|
|
2
|
+
import { type SRadioValue } from '../SRadio';
|
|
3
|
+
import { type STagProps } from '../STag';
|
|
4
|
+
export interface SRadioCardProps {
|
|
5
|
+
/** 이 카드의 값 */
|
|
6
|
+
val: SRadioValue;
|
|
7
|
+
/** 그룹의 현재 선택 값 */
|
|
8
|
+
value?: SRadioValue | null;
|
|
9
|
+
/** 라벨 (첫 줄) */
|
|
10
|
+
label: string;
|
|
11
|
+
/** 서브타이틀 (둘째 줄). 라벨 왼쪽 끝에 맞춰 들여쓴다 */
|
|
12
|
+
subtitle?: string;
|
|
13
|
+
/** 라벨 오른쪽에 붙일 태그. `STag` 의 props 를 그대로 받되 크기는 `xs` 로 고정된다 */
|
|
14
|
+
tag?: Omit<STagProps, 'size'>;
|
|
15
|
+
/** 비활성 */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/** native radio name (form-agnostic 그룹핑) */
|
|
18
|
+
name?: string;
|
|
19
|
+
/** 선택 변경 (sdUpdate) — 선택된 val 전달 */
|
|
20
|
+
onValueChange?: (val: SRadioValue) => void;
|
|
21
|
+
className?: string;
|
|
22
|
+
style?: CSSProperties;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* SRadioCard — 라디오 + 라벨 + 서브타이틀을 카드 한 장에 담은 선택지.
|
|
26
|
+
* 카드 전체가 클릭 영역이며 `value === val` 이면 선택 상태다.
|
|
27
|
+
* 선택지마다 설명이 붙어 한 줄짜리 `SRadio` 로는 담기 어려울 때 쓴다.
|
|
28
|
+
*/
|
|
29
|
+
export declare function SRadioCard({ val, value, label, subtitle, tag, disabled, name, onValueChange, className, style, }: SRadioCardProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type CSSProperties } from 'react';
|
|
2
|
+
import { type SRadioValue } from '../SRadio';
|
|
3
|
+
import { type STagProps } from '../STag';
|
|
4
|
+
export interface SRadioCardOption {
|
|
5
|
+
/** 옵션 값 */
|
|
6
|
+
value: SRadioValue;
|
|
7
|
+
/** 라벨 (첫 줄) */
|
|
8
|
+
label: string;
|
|
9
|
+
/** 서브타이틀 (둘째 줄) */
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
/** 라벨 오른쪽에 붙일 태그 (`STag` props, 크기는 `xs` 고정) */
|
|
12
|
+
tag?: Omit<STagProps, 'size'>;
|
|
13
|
+
/** 이 옵션만 비활성 */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface SRadioCardGroupProps {
|
|
17
|
+
/** 옵션 목록 */
|
|
18
|
+
options?: SRadioCardOption[];
|
|
19
|
+
/** 현재 선택 값 */
|
|
20
|
+
value?: SRadioValue | null;
|
|
21
|
+
/** 배치 방향 */
|
|
22
|
+
direction?: 'vertical' | 'horizontal';
|
|
23
|
+
/** 전체 비활성 */
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
/** 라디오 name 속성 (form-agnostic 그룹핑) */
|
|
26
|
+
groupName?: string;
|
|
27
|
+
/** 선택 변경 (sdUpdate) */
|
|
28
|
+
onValueChange?: (val: SRadioValue) => void;
|
|
29
|
+
className?: string;
|
|
30
|
+
style?: CSSProperties;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* SRadioCardGroup — `options` 를 SRadioCard 로 렌더하고 카드 사이 간격을 맞춘다.
|
|
34
|
+
* 카드는 컨테이너 폭을 채우므로 horizontal 이면 카드들이 폭을 균등하게 나눠 갖는다.
|
|
35
|
+
*/
|
|
36
|
+
export declare function SRadioCardGroup({ options, value, direction, disabled, groupName, onValueChange, className, style, }: SRadioCardGroupProps): import("react").JSX.Element;
|
|
@@ -13,4 +13,32 @@
|
|
|
13
13
|
| `bordered?` | `boolean` | `false` | true면 스크롤바와 콘텐츠 사이에 1px 구분선을 그린다. 컨테이너 테두리가 아니다. |
|
|
14
14
|
| `maxHeight?` | `string` | — | viewport 최대 높이 (예: '400px'). 비우면 부모 크기를 따른다. |
|
|
15
15
|
| `maxWidth?` | `string` | — | viewport 최대 너비 (예: '480px'). 비우면 부모 크기를 따른다. |
|
|
16
|
+
| `overlayScrollbar?` | `boolean` | `false` | true면 네이티브 스크롤바를 숨기고 영역 위에 오버레이 스크롤바를 얹는다. 스크롤바가 레이아웃 폭을 차지하지 않아 스크롤이 생겨도 안쪽 콘텐츠 폭이 줄지 않는다. **막대는 스크롤하는 동안에만 보인다.** 멎으면 페이드로 사라진다 — 자리를 차지하지 않는 막대는 늘 떠 있을 이유도 없다. 끌고 있는 동안에는 사라지지 않는다. (`SPage` 의 같은 이름 prop 은 막대를 항상 보인다. 페이지는 스크롤이 늘 있는 자리라 "여기는 스크롤된다"는 신호를 남겨 둔 쪽이다.) **켜면 구조가 한 겹 늘어난다.** `className`·`style`·`maxHeight`·`maxWidth` 가 바깥 상자로 가고 스크롤 요소가 그 안을 채운다 — 막대를 얹을 기준 상자가 필요해서다. 크기·자리를 잡는 클래스(`h-*`·`flex-1`·`min-h-0`)는 그대로 듣지만, 패딩은 스크롤 요소가 아니라 바깥 상자에 걸리므로 콘텐츠가 그 여백 아래로 흘러 들어가지 않는다. `background`·`bordered` 는 네이티브 트랙을 꾸미는 값이라 이때 무시된다. |
|
|
16
17
|
|
|
18
|
+
## Types
|
|
19
|
+
|
|
20
|
+
### SScrollAreaAxis
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
export type SScrollAreaAxis = (typeof SCROLL_AREA_AXES)[number];
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### SCROLL_AREA_AXES
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
export const SCROLL_AREA_AXES = ['vertical', 'horizontal', 'both'] as const;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Dependencies
|
|
33
|
+
|
|
34
|
+
### Used by
|
|
35
|
+
|
|
36
|
+
- [SCalendarBoard](../SCalendarBoard)
|
|
37
|
+
|
|
38
|
+
### Graph
|
|
39
|
+
|
|
40
|
+
```mermaid
|
|
41
|
+
graph TD;
|
|
42
|
+
SCalendarBoard --> SScrollArea
|
|
43
|
+
style SScrollArea fill:#f9f,stroke:#333,stroke-width:4px
|
|
44
|
+
```
|
|
@@ -11,6 +11,23 @@ export interface SScrollAreaProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
11
11
|
maxHeight?: string;
|
|
12
12
|
/** viewport 최대 너비 (예: '480px'). 비우면 부모 크기를 따른다. */
|
|
13
13
|
maxWidth?: string;
|
|
14
|
+
/**
|
|
15
|
+
* true면 네이티브 스크롤바를 숨기고 영역 위에 오버레이 스크롤바를 얹는다.
|
|
16
|
+
* 스크롤바가 레이아웃 폭을 차지하지 않아 스크롤이 생겨도 안쪽 콘텐츠 폭이 줄지 않는다.
|
|
17
|
+
*
|
|
18
|
+
* **막대는 스크롤하는 동안에만 보인다.** 멎으면 페이드로 사라진다 — 자리를 차지하지
|
|
19
|
+
* 않는 막대는 늘 떠 있을 이유도 없다. 끌고 있는 동안에는 사라지지 않는다.
|
|
20
|
+
* (`SPage` 의 같은 이름 prop 은 막대를 항상 보인다. 페이지는 스크롤이 늘 있는 자리라
|
|
21
|
+
* "여기는 스크롤된다"는 신호를 남겨 둔 쪽이다.)
|
|
22
|
+
*
|
|
23
|
+
* **켜면 구조가 한 겹 늘어난다.** `className`·`style`·`maxHeight`·`maxWidth` 가 바깥
|
|
24
|
+
* 상자로 가고 스크롤 요소가 그 안을 채운다 — 막대를 얹을 기준 상자가 필요해서다.
|
|
25
|
+
* 크기·자리를 잡는 클래스(`h-*`·`flex-1`·`min-h-0`)는 그대로 듣지만, 패딩은 스크롤
|
|
26
|
+
* 요소가 아니라 바깥 상자에 걸리므로 콘텐츠가 그 여백 아래로 흘러 들어가지 않는다.
|
|
27
|
+
*
|
|
28
|
+
* `background`·`bordered` 는 네이티브 트랙을 꾸미는 값이라 이때 무시된다.
|
|
29
|
+
*/
|
|
30
|
+
overlayScrollbar?: boolean;
|
|
14
31
|
}
|
|
15
32
|
/**
|
|
16
33
|
* SScrollArea — sd-scroll-area 포팅.
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
| `placeholder?` | `string` | `'결과 내 검색'` | 플레이스홀더 |
|
|
14
14
|
| `clearable?` | `boolean` | `false` | 지우기 버튼 — 값이 있을 때만 나타난다 |
|
|
15
15
|
| `disabled?` | `boolean` | `false` | 비활성 |
|
|
16
|
-
| `width?` | `
|
|
17
|
-
| `focused?` | `boolean` | — | 포커스
|
|
18
|
-
| `hovered?` | `boolean` | — | 호버
|
|
19
|
-
| `
|
|
16
|
+
| `width?` | `SFieldWidth` | — | 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이. 등급은 `--cmp-field-width-*` 토큰으로 풀리므로 토큰이 바뀌면 화면이 따라간다. 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다. 미지정 시 부모 폭을 채운다. |
|
|
17
|
+
| `focused?` | `boolean` | — | 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) |
|
|
18
|
+
| `hovered?` | `boolean` | — | 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) |
|
|
19
|
+
| `inputClassName?` | `string` | — | 내부 input 요소 className |
|
|
20
20
|
| `inputStyle?` | `CSSProperties` | — | 내부 input 요소 style |
|
|
21
21
|
| `className?` | `string` | — | |
|
|
22
22
|
| `style?` | `CSSProperties` | — | |
|
|
@@ -29,8 +29,21 @@
|
|
|
29
29
|
| `onChange` | `InputHTMLAttributes<HTMLInputElement>['onChange']` | 네이티브 onChange (form-agnostic 연동용, RHF 등) |
|
|
30
30
|
| `onSearch` | `(value: string) => void` | 검색 실행 — Enter 키에서 현재 값과 함께 호출된다. 한글 조합 중의 Enter(IME 확정)는 검색으로 치지 않는다. |
|
|
31
31
|
|
|
32
|
+
## Types
|
|
33
|
+
|
|
34
|
+
### SSearchInputSize
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
export type SSearchInputSize = SFieldSize;
|
|
38
|
+
```
|
|
39
|
+
|
|
32
40
|
## Dependencies
|
|
33
41
|
|
|
42
|
+
### Used by
|
|
43
|
+
|
|
44
|
+
- [SChipFilter](../SChipFilter)
|
|
45
|
+
- [SSelect](../SSelect)
|
|
46
|
+
|
|
34
47
|
### Depends on
|
|
35
48
|
|
|
36
49
|
- [SField](../SField)
|
|
@@ -44,5 +57,7 @@ graph TD;
|
|
|
44
57
|
SSearchInput --> SField
|
|
45
58
|
SSearchInput --> SGhostButton
|
|
46
59
|
SSearchInput --> SIcon
|
|
60
|
+
SChipFilter --> SSearchInput
|
|
61
|
+
SSelect --> SSearchInput
|
|
47
62
|
style SSearchInput fill:#f9f,stroke:#333,stroke-width:4px
|
|
48
63
|
```
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type CSSProperties, type InputHTMLAttributes } from 'react';
|
|
2
2
|
import { type SFieldSize } from '../SField';
|
|
3
|
+
import { type SFieldWidth } from '../../lib/field-width';
|
|
3
4
|
export type SSearchInputSize = SFieldSize;
|
|
4
5
|
export interface SSearchInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'value' | 'onChange' | 'type' | 'prefix' | 'suffix'> {
|
|
5
6
|
/** 값 (제어) */
|
|
@@ -21,14 +22,19 @@ export interface SSearchInputProps extends Omit<InputHTMLAttributes<HTMLInputEle
|
|
|
21
22
|
clearable?: boolean;
|
|
22
23
|
/** 비활성 */
|
|
23
24
|
disabled?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
/**
|
|
26
|
+
* 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이.
|
|
27
|
+
* 등급은 `--cmp-field-width-*` 토큰으로 풀리므로 토큰이 바뀌면 화면이 따라간다.
|
|
28
|
+
* 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다.
|
|
29
|
+
* 미지정 시 부모 폭을 채운다.
|
|
30
|
+
*/
|
|
31
|
+
width?: SFieldWidth;
|
|
32
|
+
/** 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) */
|
|
27
33
|
focused?: boolean;
|
|
28
|
-
/** 호버
|
|
34
|
+
/** 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) */
|
|
29
35
|
hovered?: boolean;
|
|
30
36
|
/** 내부 input 요소 className */
|
|
31
|
-
|
|
37
|
+
inputClassName?: string;
|
|
32
38
|
/** 내부 input 요소 style */
|
|
33
39
|
inputStyle?: CSSProperties;
|
|
34
40
|
className?: string;
|