sellmate-design-system-react 9.0.0-beta.7 → 9.0.0-beta.70
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 +1873 -250
- package/README.md +76 -24
- 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 +13 -4
- package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +18 -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 +17 -2
- package/dist/components/SChipInput/SChipInput.d.ts +16 -3
- package/dist/components/SChipInput/index.d.ts +1 -1
- package/dist/components/SCircleProgress/README.md +8 -0
- 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 +21 -2
- package/dist/components/SDatePicker/SDatePicker.d.ts +35 -5
- package/dist/components/SDateRangePicker/README.md +21 -4
- package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +37 -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 +204 -0
- package/dist/components/SEditor/SEditor.d.ts +121 -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 +36 -0
- package/dist/components/SExpansionItem/index.d.ts +1 -1
- package/dist/components/SField/README.md +36 -5
- package/dist/components/SField/SField.d.ts +33 -8
- package/dist/components/SField/index.d.ts +1 -1
- package/dist/components/SFilePicker/README.md +19 -4
- package/dist/components/SFilePicker/SFilePicker.d.ts +19 -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 +97 -7
- package/dist/components/SGnb/SGnb.d.ts +94 -10
- 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 +7 -4
- package/dist/components/SInput/SInput.d.ts +13 -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 +81 -0
- package/dist/components/SLauncherListBox/SLauncherListBox.d.ts +67 -0
- package/dist/components/SLauncherListBox/index.d.ts +2 -0
- package/dist/components/SLauncherListBox/launcherListBox.config.d.ts +118 -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 +15 -0
- package/dist/components/SLinearProgress/SLinearProgress.d.ts +3 -0
- 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 +41 -0
- 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 +39 -0
- package/dist/components/SLoginCard/index.d.ts +1 -0
- package/dist/components/SLogo/README.md +54 -0
- package/dist/components/SLogo/SLogo.d.ts +47 -0
- package/dist/components/SLogo/index.d.ts +2 -0
- package/dist/components/SLogo/logo.config.d.ts +14 -0
- package/dist/components/SLogo/sellmate-wordmark.d.ts +20 -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 +18 -8
- package/dist/components/SNumberInput/SNumberInput.d.ts +42 -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 +18 -0
- package/dist/components/SRadioButton/SRadioButton.d.ts +1 -1
- 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 +38 -11
- package/dist/components/SSelect/SSelect.d.ts +80 -9
- package/dist/components/SSelect/select.config.d.ts +15 -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 +116 -11
- package/dist/components/STable/STable.d.ts +243 -23
- 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 -2
- package/dist/components/STabs/STabs.d.ts +3 -5
- package/dist/components/STabs/index.d.ts +1 -1
- package/dist/components/STabs/tabs.config.d.ts +3 -4
- 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 +19 -1
- package/dist/components/STextLink/STextLink.d.ts +5 -1
- package/dist/components/STextarea/README.md +11 -5
- package/dist/components/STextarea/STextarea.d.ts +42 -6
- package/dist/components/STimePicker/README.md +18 -2
- package/dist/components/STimePicker/STimePicker.d.ts +29 -6
- package/dist/components/STimePicker/timepicker.config.d.ts +4 -2
- package/dist/components/STimeRangePicker/README.md +30 -2
- package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +28 -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 +25 -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 +20559 -10373
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +22 -0
- package/dist/index.js +20482 -10372
- 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 +5901 -550
- package/dist/llms.txt +1915 -267
- 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/ExcelFilePopupPage.d.ts +5 -0
- package/dist/recipes/LoginPage.d.ts +6 -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/TransferOrderPopupPage.d.ts +2 -0
- package/dist/recipes/api.d.ts +91 -0
- package/dist/recipes/recipe-story.d.ts +33 -0
- package/dist/recipes/router.d.ts +9 -0
- package/dist/styles.css +3328 -273
- package/dist/theme.css +571 -33
- package/eslint/index.mjs +9 -0
- package/eslint/lib/table-column.mjs +26 -0
- package/eslint/rules/divider-vertical-height.mjs +137 -0
- package/eslint/rules/field-width-grade.mjs +27 -10
- package/eslint/rules/table-column-width.mjs +110 -0
- package/eslint/scale.gen.mjs +6 -3
- package/package.json +17 -3
package/README.md
CHANGED
|
@@ -50,6 +50,19 @@ npx sellmate-ds init
|
|
|
50
50
|
`sd-` 접두로 씁니다: `p-sd-16`(16px) · `gap-sd-8`(8px). 자세한 규칙은 `AGENTS.md` §2-2.
|
|
51
51
|
- `@source` — 라이브러리 `dist`를 Tailwind 스캔 대상에 포함시켜 컴포넌트 클래스가 생성되게 합니다. **경로는 여러분의 CSS 파일 위치 기준 상대경로**이며, `node_modules` 전체가 아니라 반드시 이 패키지 `dist`만 지정하세요.
|
|
52
52
|
|
|
53
|
+
## 글꼴
|
|
54
|
+
|
|
55
|
+
`theme.css` 가 문서 전역 글꼴을 디자인 토큰 `--font-base`(Pretendard 스택)로 깝니다. 앱은 **글꼴 클래스를 붙이지 않습니다** — `font-sans` 도 같은 스택을 가리키므로 붙일 이유가 없습니다.
|
|
56
|
+
|
|
57
|
+
**글꼴 파일도 패키지에 들어 있습니다.** Pretendard Variable 다이내믹 서브셋을 `theme.css` 가 함께 싣기 때문에, 앱은 CDN 을 걸거나 폰트를 따로 설치할 필요가 없습니다. 위 **방식 1**(또는 방식 2) 설정만 하면 끝입니다.
|
|
58
|
+
|
|
59
|
+
- **CDN 을 쓰지 않습니다.** 사내망·오프라인·폐쇄망에서도 그대로 동작하고, 외부로 나가는 요청이 없습니다.
|
|
60
|
+
- **버전이 이 패키지에 고정됩니다.** CDN 최신 추적으로 글꼴이 말없이 바뀌는 일이 없습니다.
|
|
61
|
+
- 다이내믹 서브셋이라 브라우저는 화면에 실제 쓰인 글자 범위의 조각만 내려받습니다. 한글 전체 폰트(약 1MB)를 통째로 받지 않습니다. 패키지 용량은 약 3MB 늘지만 **앱 JS 번들에는 전혀 들어가지 않습니다.**
|
|
62
|
+
- 폰트 자산은 `dist/fonts/` 에 있고 라이선스(SIL OFL 1.1)는 `dist/fonts/LICENSE.txt` 입니다.
|
|
63
|
+
|
|
64
|
+
앱이 Pretendard 를 이미 자체 호스팅하고 있어도 문제되지 않습니다 — `@font-face` 선언이 겹칠 뿐, 브라우저가 실제로 내려받는 파일은 한 벌입니다.
|
|
65
|
+
|
|
53
66
|
## 설정 (방식 2 — 폴백, Tailwind 미사용)
|
|
54
67
|
|
|
55
68
|
Tailwind를 쓰지 않는 앱은 컴파일된 CSS를 직접 import 합니다.
|
|
@@ -178,16 +191,18 @@ export default [
|
|
|
178
191
|
|
|
179
192
|
**`error` 는 "지키지 않으면 깨지는 것" 에만 씁니다.** 앱 화면을 Tailwind 로 자유롭게 만드는 것은 정상이고, 디자인 시스템이 그 자유까지 막지 않습니다. 나머지는 권고(`warn`)입니다.
|
|
180
193
|
|
|
181
|
-
| 규칙
|
|
182
|
-
|
|
|
183
|
-
| `sellmate/no-off-scale-spacing`
|
|
184
|
-
| `sellmate/no-raw-html-control`
|
|
185
|
-
| `sellmate/
|
|
186
|
-
| `sellmate/
|
|
187
|
-
| `sellmate/
|
|
188
|
-
| `sellmate/
|
|
189
|
-
| `sellmate/
|
|
190
|
-
| `sellmate/
|
|
194
|
+
| 규칙 | 기본 | 검출 대상 |
|
|
195
|
+
| ---------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
196
|
+
| `sellmate/no-off-scale-spacing` | **error** | 스케일 밖 디자인 시스템 간격 (`gap-sd-13`) — Tailwind v4 에서 **조용히 무시되어** 스타일이 사라진다 |
|
|
197
|
+
| `sellmate/no-raw-html-control` | **error** | 대응 컴포넌트가 있는 생 HTML (`<button>` `<input>` `<select>` `<textarea>` `<table>` `<form>` `<dialog>` `<hr>` `<details>` `<progress>`), `alert()`/`confirm()` — 디자인 시스템을 통째로 우회하는 경우 |
|
|
198
|
+
| `sellmate/divider-vertical-height` | **error** | 세로 `SDivider` 의 높이를 `className="h-*"` 로 준 경우 — `align-self: stretch` 가 무효가 되어 선이 줄 맨 위에 붙는다. `height` prop 으로 준다(**`--fix` 로 치환**) |
|
|
199
|
+
| `sellmate/prefer-typo-preset` | warn | `text-14 font-bold` 같은 낱개 조합 → `typo-*` 프리셋 |
|
|
200
|
+
| `sellmate/component-group-gap` | warn | 같은 컴포넌트를 나열할 때의 그룹 간격 — 배열 방향에 따라 값이 다르다(체크박스 가로 24 / 세로 8) |
|
|
201
|
+
| `sellmate/table-numeric-align` | warn | 수량 컬럼(금액·수량 등)에 `align: 'right'` 누락 — **`--fix` 로 자동 교정** |
|
|
202
|
+
| `sellmate/require-locale-number` | warn | 수량 컬럼의 `toLocaleString()` 누락 — 세 자리 콤마 |
|
|
203
|
+
| `sellmate/field-width-grade` | warn | 필드 폭이 `maxLength`(스키마 상한)와 어긋남 — 등급 미지정 · 등급 밖 폭 · 상한 대비 과부족 · 등급 px 직접 지정(**`--fix` 로 등급 이름 치환**) |
|
|
204
|
+
| `sellmate/table-column-width` | warn | 컬럼 폭 미지정(기본 120px 이 조용히 들어감) · px 아닌 폭(`%` `clamp()`) · 값을 그리는 열의 `autoWidth` 오용 |
|
|
205
|
+
| `sellmate/no-arbitrary-class` | **off** | 토큰이 있는 속성(색·타이포·간격·모서리)의 임의 값 — `text-[14px]`, `bg-[#eee]`. 앱 고유 화면에는 정당한 사용이 많아 기본값은 끕니다 |
|
|
191
206
|
|
|
192
207
|
`className` 뿐 아니라 `cn()`/`clsx()` 인자, 템플릿 리터럴, 객체 키 안까지 검사합니다.
|
|
193
208
|
|
|
@@ -243,23 +258,29 @@ export default [
|
|
|
243
258
|
필드 너비는 **`maxLength`(= 스키마 상한)로 정합니다.** 상한이 등급 안에 들어오면 그 등급으로 고정하고,
|
|
244
259
|
등급 상한(`xl`)을 넘거나 상한이 아예 없으면 행 전체(`width="100%"` 또는 생략)로 둡니다.
|
|
245
260
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
|
250
|
-
|
|
|
251
|
-
| `
|
|
252
|
-
| `
|
|
261
|
+
**폭은 등급 이름으로 줍니다** — `width="md"` 처럼 씁니다. 등급은 `--cmp-field-width-*` 토큰으로
|
|
262
|
+
풀리므로 토큰이 바뀌면 화면이 따라갑니다. 같은 값을 px 로 적으면 그 화면만 옛 값에 남습니다.
|
|
263
|
+
|
|
264
|
+
| 등급 | 쓰는 곳 |
|
|
265
|
+
| ---- | ------------- |
|
|
266
|
+
| `xs` | 숫자 필드 전용 |
|
|
267
|
+
| `sm` | |
|
|
268
|
+
| `md` | |
|
|
269
|
+
| `lg` | |
|
|
270
|
+
| `xl` | 정책상 상한 |
|
|
253
271
|
|
|
254
272
|
```tsx
|
|
255
273
|
// 상한이 등급 안에 들어온다 → 그 등급으로 고정
|
|
256
|
-
<SInput name="code" label="코드" maxLength={10} width=
|
|
274
|
+
<SInput name="code" label="코드" maxLength={10} width="md" />
|
|
257
275
|
|
|
258
276
|
// 상한이 xl 로도 안 담긴다 → 행 전체
|
|
259
277
|
<SInput name="desc" label="설명" maxLength={100} width="100%" />
|
|
260
278
|
|
|
261
279
|
// 숫자 필드의 상한은 maxLength 가 아니라 max 다 (천단위 콤마도 폭을 먹는다)
|
|
262
|
-
<SNumberInput name="qty" label="수량" max={99} width=
|
|
280
|
+
<SNumberInput name="qty" label="수량" max={99} width="xs" />
|
|
281
|
+
|
|
282
|
+
// 등급 값과 같은 px 를 적으면 등급 이름으로 자동 수정됩니다 (--fix)
|
|
283
|
+
<SInput name="code" label="코드" maxLength={10} width={160} /> // → width="md"
|
|
263
284
|
```
|
|
264
285
|
|
|
265
286
|
대상은 `SInput` · `SNumberInput` · `SBarcodeInput` 입니다. `STextarea` 는 여러 줄로 접혀 상한이 폭을
|
|
@@ -279,9 +300,9 @@ export default [
|
|
|
279
300
|
한글은 전각이라 영숫자의 약 두 배를 먹으므로 **두 기준 사이에는 아무것도 보고하지 않습니다** —
|
|
280
301
|
영숫자로 채워도 넘칠 때만 "좁다", 한글로 채워도 남을 때만 "넓다" 로 판정합니다.
|
|
281
302
|
|
|
282
|
-
| 등급 | `SInput` (sm)
|
|
283
|
-
| ---- |
|
|
284
|
-
| `xs` | —
|
|
303
|
+
| 등급 | `SInput` (sm) | `SInput` (md) | `SNumberInput` (sm) | `SNumberInput` (sm, `useButton`) |
|
|
304
|
+
| ---- | ------------------- | ------------------- | ------------------- | -------------------------------- |
|
|
305
|
+
| `xs` | — | — | 영숫자 8 | 영숫자 2 |
|
|
285
306
|
| `sm` | 영숫자 14 / 한글 7 | 영숫자 11 / 한글 6 | 영숫자 14 | 영숫자 8 |
|
|
286
307
|
| `md` | 영숫자 20 / 한글 11 | 영숫자 16 / 한글 9 | 영숫자 20 | 영숫자 14 |
|
|
287
308
|
| `lg` | 영숫자 32 / 한글 17 | 영숫자 26 / 한글 14 | 영숫자 32 | 영숫자 26 |
|
|
@@ -291,15 +312,46 @@ export default [
|
|
|
291
312
|
두 배가 되고(기본값), 있으면 버튼 두 개와 간격이 폭을 먹습니다. 규칙은 JSX 의 `useButton` 을 읽어
|
|
292
313
|
둘을 구분합니다.
|
|
293
314
|
|
|
294
|
-
|
|
315
|
+
등급 폭은 `--cmp-field-width-*` 토큰에서 읽으므로 규칙과 컴포넌트가 같은 값을 봅니다.
|
|
316
|
+
글자수 환산 비율이 팀 기준과 다르면 옵션으로 덮습니다(등급 폭도 덮을 수 있지만, 토큰과 어긋나게 됩니다).
|
|
295
317
|
|
|
296
318
|
```js
|
|
297
319
|
'sellmate/field-width-grade': ['warn', {
|
|
298
|
-
grades: { sm: 120, md: 160, lg: 240, xl: 480 },
|
|
299
320
|
charRatio: { narrow: 0.55, wide: 1 },
|
|
300
321
|
}],
|
|
301
322
|
```
|
|
302
323
|
|
|
324
|
+
### 컬럼 폭 (`table-column-width`)
|
|
325
|
+
|
|
326
|
+
`STable` 의 컬럼 폭은 `<colgroup>` 의 `<col width>` 로 들어가고 테이블이 `table-fixed` 라,
|
|
327
|
+
**px 이 아닌 값은 에러 없이 화면만 틀어집니다** — `'30%'` 는 `30`(px)으로 읽히고, `clamp()` 같은
|
|
328
|
+
함수형 값은 폭이 통째로 무효가 된 뒤 auto 로 떨어집니다.
|
|
329
|
+
|
|
330
|
+
```tsx
|
|
331
|
+
// 내용이 들어가는 열은 전부 폭을 명시한다 (생략하면 기본 120px 이 조용히 들어간다)
|
|
332
|
+
{ name: 'name', label: '이름', field: 'name', width: 160 }
|
|
333
|
+
{ name: 'code', label: '코드', field: 'code', width: '120px' }
|
|
334
|
+
|
|
335
|
+
// autoWidth 는 남은 폭을 흡수하는 스페이서 열 하나에만 (값을 그리지 않으므로 field 도 없다)
|
|
336
|
+
{ name: 'spacer', label: '', autoWidth: true }
|
|
337
|
+
|
|
338
|
+
// ❌ 조용히 깨진다
|
|
339
|
+
{ name: 'ratio', label: '비율', field: 'ratio', width: '30%' }
|
|
340
|
+
// ❌ 값을 그리는 열의 autoWidth — 폭이 다른 열에 좌우돼 화면마다 달라진다
|
|
341
|
+
{ name: 'title', label: '상품명', field: 'title', autoWidth: true, render: r => r.title }
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
검사 대상은 `name`(문자열 리터럴) · `label` 에 더해 **`field` 또는 `autoWidth` 를 가진 객체**입니다.
|
|
345
|
+
검색 필터 필드나 상세 모달의 키-값 필드가 컬럼과 같은 `{ name, label, ... }` 모양이라, 그 둘만으로
|
|
346
|
+
판정하면 표와 무관한 객체가 대부분 걸리기 때문입니다. 대신 `{ ...base, name, label }` 처럼 `field` 가
|
|
347
|
+
스프레드로 들어오는 컬럼은 보고하지 않습니다 — 정적으로 필터 필드와 구분되지 않습니다.
|
|
348
|
+
|
|
349
|
+
예외는 컬럼 `name` 을 `allow` 로 지정해 뺍니다.
|
|
350
|
+
|
|
351
|
+
```js
|
|
352
|
+
'sellmate/table-column-width': ['warn', { allow: ['spacer'] }],
|
|
353
|
+
```
|
|
354
|
+
|
|
303
355
|
### 더 엄격하게 / 더 느슨하게
|
|
304
356
|
|
|
305
357
|
`configs.strict` 는 전 규칙을 error 로 올리고, `<ul>` `<ol>` `<li>` `<svg>` `<label>` 까지 검사하며, 간격 유틸리티에 `sd-` 접두를 강제합니다(`requirePrefix`). 디자인 시스템 규칙을 처음부터 전면 적용하는 신규 프로젝트용입니다.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
import { type SAccountListBoxContent } from './SAccountListBox';
|
|
3
|
+
/**
|
|
4
|
+
* 계정 행이 놓인 자리. 리스트박스가 어느 방향으로 펼쳐질지를 **이것만** 정한다.
|
|
5
|
+
* - `panel` — GNB 바닥의 세로 판(접힌 레일 포함). 계정 행이 맨 아래라 위로 편다.
|
|
6
|
+
* - `top` — 전폭 상단바 오른쪽 끝. 줄이 화면 맨 위라 아래로 편다.
|
|
7
|
+
*/
|
|
8
|
+
type AccountListBoxAnchor = 'panel' | 'top';
|
|
9
|
+
export declare const AccountListBoxAnchorProvider: import("react").Provider<AccountListBoxAnchor>;
|
|
10
|
+
/**
|
|
11
|
+
* 계정 리스트박스를 앵커에 붙여 띄우는 내부 래퍼.
|
|
12
|
+
*
|
|
13
|
+
* 계정 행은 GNB 판(펼침)·레일(접힘)·상단바 세 자리에 서고, 세 자리 모두 "누르면 같은 패널이
|
|
14
|
+
* 뜬다". 그 여는 방식(위치 · SPortal 설정 · 행을 고르면 닫기)을 한 곳에 모아 두어야 자리마다
|
|
15
|
+
* 동작이 갈리지 않는다. 공개 API 가 아니므로 index.ts 로 내보내지 않는다 —
|
|
16
|
+
* 앱은 `SSystemActionButton` 의 `option` 이나 `SGnbSystem` 의 `account.listBox` 로 닿는다.
|
|
17
|
+
*/
|
|
18
|
+
interface AccountListBoxPortalOptions {
|
|
19
|
+
/** 표시 여부 */
|
|
20
|
+
open: boolean;
|
|
21
|
+
/** 표시 상태 변경 */
|
|
22
|
+
onOpenChange: (open: boolean) => void;
|
|
23
|
+
/** 붙을 트리거 엘리먼트 */
|
|
24
|
+
anchorRef: RefObject<HTMLElement | null>;
|
|
25
|
+
/** 접근성 이름 */
|
|
26
|
+
ariaLabel?: string;
|
|
27
|
+
/** 패널에 담기는 내용 */
|
|
28
|
+
content: SAccountListBoxContent;
|
|
29
|
+
}
|
|
30
|
+
export declare function AccountListBoxPortal({ open, onOpenChange, anchorRef, ariaLabel, content, }: AccountListBoxPortalOptions): import("react").JSX.Element;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# SAccountListBox
|
|
2
|
+
|
|
3
|
+
> 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
|
|
4
|
+
|
|
5
|
+
### SAccountListBox
|
|
6
|
+
|
|
7
|
+
#### Props
|
|
8
|
+
|
|
9
|
+
| Prop | Type | Default | Description |
|
|
10
|
+
|------|------|---------|-------------|
|
|
11
|
+
| `email?` | `string` | — | 로그인한 계정의 이메일 |
|
|
12
|
+
| `name?` | `string` | — | 로그인한 계정의 이름 |
|
|
13
|
+
| `authority?` | `string` | — | 권한. 이름 오른쪽 끝에 붙는다. 없으면 이름만 남는다. (`role` 이 아닌 이유 — 그 이름은 DOM 의 ARIA 속성이라 소비 앱의 a11y lint 가 값을 ARIA 롤로 읽는다) |
|
|
14
|
+
| `accountSetting?` | `SAccountListBoxItem` | — | 계정 설정 행. 주지 않으면 행이 빠진다 |
|
|
15
|
+
| `language?` | `SAccountListBoxLanguage` | — | 언어 변경 행. 주지 않으면 행이 빠진다 |
|
|
16
|
+
| `logout?` | `SAccountListBoxItem` | — | 로그아웃 행. 이 행은 늘 있고, 라벨과 클릭만 받는다 |
|
|
17
|
+
|
|
18
|
+
## Types
|
|
19
|
+
|
|
20
|
+
### SAccountListBoxItem
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
/** 리스트박스의 한 행 — 라벨은 기본값이 있고 클릭만 앱이 준다 */
|
|
24
|
+
export interface SAccountListBoxItem {
|
|
25
|
+
/** 라벨 텍스트. 행마다 기본값이 있다 */
|
|
26
|
+
label?: string;
|
|
27
|
+
/** 클릭 */
|
|
28
|
+
onClick?: () => void;
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### SAccountListBoxLanguage
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
/** 언어 변경 행 — 지금 쓰는 언어가 우측에 붙고, 고를 것이 있으면 눌러서 편다 */
|
|
36
|
+
export interface SAccountListBoxLanguage extends SAccountListBoxItem {
|
|
37
|
+
/**
|
|
38
|
+
* 지금 선택돼 있는 언어. 우측에 브랜드색으로 붙는다.
|
|
39
|
+
* `options` 를 함께 주면 그 목록에서 같은 `value` 를 찾아 `label` 로 적는다.
|
|
40
|
+
*/
|
|
41
|
+
value?: string;
|
|
42
|
+
/**
|
|
43
|
+
* 고를 수 있는 언어. 주면 행을 눌렀을 때 **하위 메뉴가 우측 아래로 펼쳐지고**,
|
|
44
|
+
* 그동안 계정 패널은 닫히지 않는다. 주지 않으면 행을 누르는 것 자체가 액션이라
|
|
45
|
+
* `onClick` 만 돌고 패널이 닫힌다 — 언어 화면을 따로 두는 앱이 그렇다.
|
|
46
|
+
*/
|
|
47
|
+
options?: SAccountListBoxLanguageOption[];
|
|
48
|
+
/** 하위 메뉴에서 언어를 고름. 고르면 하위 메뉴와 계정 패널이 함께 닫힌다 */
|
|
49
|
+
onChange?: (value: string) => void;
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### SAccountListBoxLanguageOption
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
/** 언어 변경 하위 메뉴의 한 칸 */
|
|
57
|
+
export interface SAccountListBoxLanguageOption {
|
|
58
|
+
/** 값. `SAccountListBoxLanguage.value` 와 맞춰 지금 언어를 가린다 */
|
|
59
|
+
value: string;
|
|
60
|
+
/** 화면에 적히는 언어명 */
|
|
61
|
+
label: string;
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Dependencies
|
|
66
|
+
|
|
67
|
+
### Used by
|
|
68
|
+
|
|
69
|
+
- [SGnbSystem](../SGnbSystem)
|
|
70
|
+
- [SSystemActionButton](../SSystemActionButton)
|
|
71
|
+
|
|
72
|
+
### Depends on
|
|
73
|
+
|
|
74
|
+
- [SIcon](../SIcon)
|
|
75
|
+
- [SPortal](../SPortal)
|
|
76
|
+
|
|
77
|
+
### Graph
|
|
78
|
+
|
|
79
|
+
```mermaid
|
|
80
|
+
graph TD;
|
|
81
|
+
SAccountListBox --> SIcon
|
|
82
|
+
SAccountListBox --> SPortal
|
|
83
|
+
SGnbSystem --> SAccountListBox
|
|
84
|
+
SSystemActionButton --> SAccountListBox
|
|
85
|
+
style SAccountListBox fill:#f9f,stroke:#333,stroke-width:4px
|
|
86
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type HTMLAttributes } from 'react';
|
|
2
|
+
/** 리스트박스의 한 행 — 라벨은 기본값이 있고 클릭만 앱이 준다 */
|
|
3
|
+
export interface SAccountListBoxItem {
|
|
4
|
+
/** 라벨 텍스트. 행마다 기본값이 있다 */
|
|
5
|
+
label?: string;
|
|
6
|
+
/** 클릭 */
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
}
|
|
9
|
+
/** 언어 변경 하위 메뉴의 한 칸 */
|
|
10
|
+
export interface SAccountListBoxLanguageOption {
|
|
11
|
+
/** 값. `SAccountListBoxLanguage.value` 와 맞춰 지금 언어를 가린다 */
|
|
12
|
+
value: string;
|
|
13
|
+
/** 화면에 적히는 언어명 */
|
|
14
|
+
label: string;
|
|
15
|
+
}
|
|
16
|
+
/** 언어 변경 행 — 지금 쓰는 언어가 우측에 붙고, 고를 것이 있으면 눌러서 편다 */
|
|
17
|
+
export interface SAccountListBoxLanguage extends SAccountListBoxItem {
|
|
18
|
+
/**
|
|
19
|
+
* 지금 선택돼 있는 언어. 우측에 브랜드색으로 붙는다.
|
|
20
|
+
* `options` 를 함께 주면 그 목록에서 같은 `value` 를 찾아 `label` 로 적는다.
|
|
21
|
+
*/
|
|
22
|
+
value?: string;
|
|
23
|
+
/**
|
|
24
|
+
* 고를 수 있는 언어. 주면 행을 눌렀을 때 **하위 메뉴가 우측 아래로 펼쳐지고**,
|
|
25
|
+
* 그동안 계정 패널은 닫히지 않는다. 주지 않으면 행을 누르는 것 자체가 액션이라
|
|
26
|
+
* `onClick` 만 돌고 패널이 닫힌다 — 언어 화면을 따로 두는 앱이 그렇다.
|
|
27
|
+
*/
|
|
28
|
+
options?: SAccountListBoxLanguageOption[];
|
|
29
|
+
/** 하위 메뉴에서 언어를 고름. 고르면 하위 메뉴와 계정 패널이 함께 닫힌다 */
|
|
30
|
+
onChange?: (value: string) => void;
|
|
31
|
+
}
|
|
32
|
+
export interface SAccountListBoxProps extends HTMLAttributes<HTMLDivElement> {
|
|
33
|
+
/** 로그인한 계정의 이메일 */
|
|
34
|
+
email?: string;
|
|
35
|
+
/** 로그인한 계정의 이름 */
|
|
36
|
+
name?: string;
|
|
37
|
+
/**
|
|
38
|
+
* 권한. 이름 오른쪽 끝에 붙는다. 없으면 이름만 남는다.
|
|
39
|
+
* (`role` 이 아닌 이유 — 그 이름은 DOM 의 ARIA 속성이라 소비 앱의 a11y lint 가 값을 ARIA 롤로 읽는다)
|
|
40
|
+
*/
|
|
41
|
+
authority?: string;
|
|
42
|
+
/** 계정 설정 행. 주지 않으면 행이 빠진다 */
|
|
43
|
+
accountSetting?: SAccountListBoxItem;
|
|
44
|
+
/** 언어 변경 행. 주지 않으면 행이 빠진다 */
|
|
45
|
+
language?: SAccountListBoxLanguage;
|
|
46
|
+
/** 로그아웃 행. 이 행은 늘 있고, 라벨과 클릭만 받는다 */
|
|
47
|
+
logout?: SAccountListBoxItem;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 리스트박스에 **담기는 내용**만 추린 것.
|
|
51
|
+
* 팝오버로 띄우는 쪽(`SSystemActionButton` 의 `option` · `SGnbSystem` 의 `account.listBox`)이
|
|
52
|
+
* 이 덩어리째 넘겨받으므로, 패널의 DOM 속성(className·style …)과 분리해 둔다.
|
|
53
|
+
*/
|
|
54
|
+
export type SAccountListBoxContent = Pick<SAccountListBoxProps, 'email' | 'name' | 'authority' | 'accountSetting' | 'language' | 'logout'>;
|
|
55
|
+
/**
|
|
56
|
+
* SAccountListBox — GNB system 의 계정 행을 눌렀을 때 뜨는 계정 리스트박스.
|
|
57
|
+
*
|
|
58
|
+
* 판에서는 계정 행이 맨 아래에 있어 **행 위로 · 행 왼쪽 끝에 맞춰**, 전폭 상단바에서는 **행 아래로 ·
|
|
59
|
+
* 오른쪽 끝에 맞춰** 펼쳐진다. 이 방향은 고정이라 앱이 고르지 않는다.
|
|
60
|
+
*
|
|
61
|
+
* 위에서부터 [사용자정보(이메일 · 이름 + 권한)] · [계정 설정] · [언어 변경] · [계정 로그아웃] 이다.
|
|
62
|
+
* **권한(`authority`) · 계정 설정 · 언어 변경은 옵션**이고, 사용자정보와 로그아웃은 늘 있다 — 이 패널이 존재하는
|
|
63
|
+
* 이유가 "지금 누구로 로그인해 있는가"와 "나가기"이기 때문이다. 옵션을 빼면 그 줄이 통째로 사라지고
|
|
64
|
+
* 나머지가 위로 붙는다.
|
|
65
|
+
*
|
|
66
|
+
* 폭은 토큰이 정하는 고정값(240px)이라 앱이 늘리지 않는다 — 이 패널은 GNB 폭에 맞춰 뜬다.
|
|
67
|
+
* 행 라벨·아이콘은 무엇을 하는 행인지가 곧 정체라 아이콘을 밖에서 바꾸지 않고, 라벨만 바꿀 수 있다.
|
|
68
|
+
*
|
|
69
|
+
* **언어 변경만 하위 메뉴를 가질 수 있다.** `language.options` 를 주면 그 행이 우측 값 아래로
|
|
70
|
+
* 목록을 펴고, 고를 때까지 계정 패널은 열려 있는다. 주지 않으면 행을 누르는 것 자체가 액션이라
|
|
71
|
+
* `onClick` 만 돌고 패널이 닫힌다 — 언어를 고르는 화면을 따로 두는 앱이 그렇다.
|
|
72
|
+
*
|
|
73
|
+
* **이 컴포넌트는 패널만 그린다.** 계정 행에 붙여 띄우는 것은 `SSystemActionButton` 의
|
|
74
|
+
* `type="account"` 이 맡으므로(`option` 에 이 내용을 넘긴다 — 필수다), 앱이 직접 팝오버를 조립할
|
|
75
|
+
* 일은 없다. 계정 행은 예외 없이 이 패널의 트리거다.
|
|
76
|
+
*
|
|
77
|
+
* 토큰은 `--cmp-gnb-system-accountListBox-*` · `--cmp-gnb-system-accountButton-*`.
|
|
78
|
+
*/
|
|
79
|
+
export declare const SAccountListBox: import("react").ForwardRefExoticComponent<SAccountListBoxProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
import { type SPortalAlign, type SPortalPlacement } from '../SPortal';
|
|
3
|
+
import { type STagColor } from '../STag';
|
|
4
|
+
/**
|
|
5
|
+
* 시스템 메뉴의 한 칸.
|
|
6
|
+
*
|
|
7
|
+
* `color` 를 주면 그 칸은 **상태 칸**이 되어 점과 글자가 같은 색으로 물든다(시안) — 상태는 색 자체가
|
|
8
|
+
* 뜻이라, 고르는 자리에서도 그 색을 보고 고른다. 주지 않으면 글자만 있는 칸이고, 지금 값만
|
|
9
|
+
* 브랜드색으로 떠오른다.
|
|
10
|
+
*/
|
|
11
|
+
export interface SystemMenuOption {
|
|
12
|
+
/** 값. 지금 값과 맞춰 어느 칸이 선택돼 있는지를 가린다 */
|
|
13
|
+
value: string;
|
|
14
|
+
/** 화면에 적히는 이름 */
|
|
15
|
+
label: string;
|
|
16
|
+
/** 상태 칸의 색. 주면 점 + 같은 색 글자로 그린다 */
|
|
17
|
+
color?: STagColor;
|
|
18
|
+
}
|
|
19
|
+
interface SystemMenuPortalProps {
|
|
20
|
+
/** 표시 여부 */
|
|
21
|
+
open: boolean;
|
|
22
|
+
/** 표시 상태 변경 */
|
|
23
|
+
onOpenChange: (open: boolean) => void;
|
|
24
|
+
/** 붙을 자리 — 값 아래로 펼 때는 **바뀌는 값**(우측 값 묶음 · 상태 태그), 옆으로 펼 때는 행 자체 */
|
|
25
|
+
anchorRef: RefObject<HTMLElement | null>;
|
|
26
|
+
/** 뜨는 방향. 기본 `'bottom'`(앵커 아래) */
|
|
27
|
+
placement?: SPortalPlacement;
|
|
28
|
+
/** 교차축 정렬. 아래로 펼 때는 값이 놓인 쪽 끝, 옆으로 펼 때는 위쪽 끝(`start`) */
|
|
29
|
+
align: SPortalAlign;
|
|
30
|
+
/**
|
|
31
|
+
* 메뉴를 여는 행. 이 행 위의 클릭은 행이 스스로 토글하므로 여기서 닫지 않는다 —
|
|
32
|
+
* 앵커는 행이 아니라 그 안의 값이라, 값 밖(라벨 쪽)을 누르면 닫혔다가 곧바로 다시 열린다.
|
|
33
|
+
*/
|
|
34
|
+
triggerRef?: RefObject<HTMLElement | null>;
|
|
35
|
+
/** 접근성 이름 — 무엇을 고르는 메뉴인지 */
|
|
36
|
+
ariaLabel?: string;
|
|
37
|
+
/** 지금 값 */
|
|
38
|
+
value?: string;
|
|
39
|
+
/** 고를 수 있는 칸 */
|
|
40
|
+
options: SystemMenuOption[];
|
|
41
|
+
/** 칸을 고름 */
|
|
42
|
+
onSelect: (value: string) => void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* GNB system 의 값 고르기 메뉴.
|
|
46
|
+
*
|
|
47
|
+
* 계정 패널의 언어 변경 행 · `SSystemActionButton` 의 `subSelect` · `status` 가 모두 이것을 연다 —
|
|
48
|
+
* 세 자리 모두 "지금 값이 적혀 있고, 눌러서 다른 값으로 바꾼다" 는 같은 일이라, 뜨는 자리와 닫히는
|
|
49
|
+
* 시점을 한 곳에 모아 두지 않으면 자리마다 동작이 갈린다.
|
|
50
|
+
*
|
|
51
|
+
* **뜨는 자리는 부르는 쪽이 정한다.** 계정 패널 안의 행처럼 판 안에서 열리는 자리는 바꾸는 대상인
|
|
52
|
+
* 값 바로 아래로, 값이 놓인 쪽 끝에 맞춰 편다(패널 폭 안에 갇혀 있어 옆이 없다). 판 없이 행 하나로
|
|
53
|
+
* 서는 자리는 행 오른쪽으로 편다 — 행 아래는 다음 행이 이어지는 자리라 메뉴가 그 위를 덮는다.
|
|
54
|
+
*
|
|
55
|
+
* 공개 API 가 아니므로 index.ts 로 내보내지 않는다 — 앱은 각 행의 `options` 로 닿는다.
|
|
56
|
+
*/
|
|
57
|
+
export declare function SystemMenuPortal({ open, onOpenChange, anchorRef, placement, align, triggerRef, ariaLabel, value, options, onSelect, }: SystemMenuPortalProps): import("react").JSX.Element;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/** 행의 성격. default = 보통 행, negative = 되돌릴 수 없는 행(로그아웃) */
|
|
2
|
+
export declare const ACCOUNT_LIST_BOX_ITEM_TONES: readonly ["default", "negative"];
|
|
3
|
+
export type SAccountListBoxItemTone = (typeof ACCOUNT_LIST_BOX_ITEM_TONES)[number];
|
|
4
|
+
/** 행마다 정해져 있는 아이콘 — 무엇을 하는 행인지가 아이콘으로 읽히므로 밖에서 바꾸지 않는다 */
|
|
5
|
+
export declare const ACCOUNT_LIST_BOX_ICONS: {
|
|
6
|
+
readonly accountSetting: "account";
|
|
7
|
+
readonly language: "global";
|
|
8
|
+
readonly logout: "logout";
|
|
9
|
+
};
|
|
10
|
+
/** 행 라벨 기본값 — 시안 문구. 앱이 바꿀 수 있다 */
|
|
11
|
+
export declare const ACCOUNT_LIST_BOX_LABELS: {
|
|
12
|
+
readonly accountSetting: "계정 설정";
|
|
13
|
+
readonly language: "언어 변경";
|
|
14
|
+
readonly logout: "계정 로그아웃";
|
|
15
|
+
};
|
|
16
|
+
/** 행 성격별 색 */
|
|
17
|
+
export declare const ACCOUNT_LIST_BOX_TONE_CONFIG: Record<SAccountListBoxItemTone, {
|
|
18
|
+
bg: string;
|
|
19
|
+
bgHover: string;
|
|
20
|
+
text: string;
|
|
21
|
+
icon: string;
|
|
22
|
+
}>;
|
|
23
|
+
/** 치수·색 — 전부 토큰 참조 */
|
|
24
|
+
export declare const ACCOUNT_LIST_BOX_LAYOUT: {
|
|
25
|
+
/** 패널 고정 폭 */
|
|
26
|
+
readonly width: string;
|
|
27
|
+
/** 패널 배경 */
|
|
28
|
+
readonly bg: string;
|
|
29
|
+
/** 패널 라운드 */
|
|
30
|
+
readonly radius: string;
|
|
31
|
+
/** 사용자정보 영역 배경 */
|
|
32
|
+
readonly userdataBg: string;
|
|
33
|
+
/** 사용자정보 영역 좌우 여백 */
|
|
34
|
+
readonly userdataPaddingX: string;
|
|
35
|
+
/** 사용자정보 영역 상하 여백 */
|
|
36
|
+
readonly userdataPaddingY: string;
|
|
37
|
+
/** 이메일 글자색 */
|
|
38
|
+
readonly emailColor: string;
|
|
39
|
+
/** 이름 글자색 */
|
|
40
|
+
readonly nameColor: string;
|
|
41
|
+
/** 권한 글자색 */
|
|
42
|
+
readonly roleColor: string;
|
|
43
|
+
/** 행 묶음의 상하 여백 */
|
|
44
|
+
readonly listPaddingY: string;
|
|
45
|
+
/** 행 좌우 여백 */
|
|
46
|
+
readonly itemPaddingX: string;
|
|
47
|
+
/** 행 상하 여백 */
|
|
48
|
+
readonly itemPaddingY: string;
|
|
49
|
+
/** 행 아이콘 ↔ 라벨 간격 */
|
|
50
|
+
readonly itemGap: string;
|
|
51
|
+
/** 행 아이콘 크기 */
|
|
52
|
+
readonly itemIcon: string;
|
|
53
|
+
/** 우측 값 ↔ 화살표 간격 */
|
|
54
|
+
readonly selectDataGap: string;
|
|
55
|
+
/** 우측 화살표 크기 */
|
|
56
|
+
readonly selectDataIcon: string;
|
|
57
|
+
/** 우측 값 글자색 */
|
|
58
|
+
readonly selectDataText: string;
|
|
59
|
+
/** 시스템 메뉴에서 지금 값인 칸의 글자색 — 계정 행이 아니라 목록 항목이라
|
|
60
|
+
* listBoxItem 의 선택 색을 그대로 따른다(다른 목록의 선택 표시와 같은 색) */
|
|
61
|
+
readonly menuSelectedText: string;
|
|
62
|
+
/** 우측 화살표색 */
|
|
63
|
+
readonly selectDataIconColor: string;
|
|
64
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { SAccountListBox, type SAccountListBoxProps, type SAccountListBoxContent, type SAccountListBoxItem, type SAccountListBoxLanguage, type SAccountListBoxLanguageOption, } from './SAccountListBox';
|
|
2
|
+
export { ACCOUNT_LIST_BOX_ICONS, ACCOUNT_LIST_BOX_ITEM_TONES, ACCOUNT_LIST_BOX_LABELS, ACCOUNT_LIST_BOX_LAYOUT, ACCOUNT_LIST_BOX_TONE_CONFIG, type SAccountListBoxItemTone, } from './accountListBox.config';
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
11
|
| `open?` | `boolean` | — | |
|
|
12
12
|
| `persistent?` | `boolean` | — | 백드롭·ESC로 안 닫히고 흔들림 (sd-modal-container persistent). **기본값 true** |
|
|
13
|
+
| `showClose?` | `boolean` | `true` | 우측 상단 닫기(X) 버튼. **기본값 true** `false` 는 **액션을 끝내야만 나갈 수 있는 모달**에만 준다 — 필수 약관 동의, 필수 정보 입력처럼 중간에 빠져나가면 앱이 정의되지 않은 상태로 남는 경우다. `persistent` 기본값(true)과 겹치면 나가는 길이 모달 안의 버튼 하나뿐이 되므로, `button` 이나 `footerLeft` 로 그 길을 반드시 둔다. |
|
|
13
14
|
| `modalTitle?` | `string` | `''` | |
|
|
14
15
|
| `description?` | `ReactNode` | — | 제목 오른쪽에 붙는 보조 설명 (sd-action-modal 의 header-sub-title 슬롯). 문자열이면 서브텍스트 스타일로 렌더하고, 노드를 넘기면 그대로 배치한다. |
|
|
15
16
|
| `button?` | `SFooterButton` | — | 하단 액션 버튼 (주 액션 1개). 의도적으로 단수다 — 보조 버튼(취소·삭제 등)은 `footerLeft` 슬롯에 직접 배치한다. |
|
|
@@ -7,6 +7,14 @@ export interface SActionModalProps {
|
|
|
7
7
|
onClose?: () => void;
|
|
8
8
|
/** 백드롭·ESC로 안 닫히고 흔들림 (sd-modal-container persistent). **기본값 true** */
|
|
9
9
|
persistent?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* 우측 상단 닫기(X) 버튼. **기본값 true**
|
|
12
|
+
*
|
|
13
|
+
* `false` 는 **액션을 끝내야만 나갈 수 있는 모달**에만 준다 — 필수 약관 동의, 필수 정보 입력처럼
|
|
14
|
+
* 중간에 빠져나가면 앱이 정의되지 않은 상태로 남는 경우다. `persistent` 기본값(true)과 겹치면
|
|
15
|
+
* 나가는 길이 모달 안의 버튼 하나뿐이 되므로, `button` 이나 `footerLeft` 로 그 길을 반드시 둔다.
|
|
16
|
+
*/
|
|
17
|
+
showClose?: boolean;
|
|
10
18
|
modalTitle?: string;
|
|
11
19
|
/**
|
|
12
20
|
* 제목 오른쪽에 붙는 보조 설명 (sd-action-modal 의 header-sub-title 슬롯).
|
|
@@ -36,4 +44,4 @@ export interface SActionModalProps {
|
|
|
36
44
|
* `button` 은 의도적으로 단수다. 주 액션은 오른쪽에 하나만 두고, 보조 버튼은 `footerLeft` 슬롯에
|
|
37
45
|
* 소비자가 직접 배치한다. (buttons 배열 API 를 추가하지 말 것)
|
|
38
46
|
*/
|
|
39
|
-
export declare function SActionModal({ open, onOpenChange, onClose, persistent, modalTitle, description, button, footerLeft, width, height, children, }: SActionModalProps): import("react").JSX.Element;
|
|
47
|
+
export declare function SActionModal({ open, onOpenChange, onClose, persistent, modalTitle, description, button, footerLeft, showClose, width, height, children, }: SActionModalProps): import("react").JSX.Element;
|
|
@@ -10,16 +10,43 @@
|
|
|
10
10
|
|------|------|---------|-------------|
|
|
11
11
|
| `color?` | `SBadgeColor` | `'blue'` | 뱃지 색상 |
|
|
12
12
|
|
|
13
|
+
## Types
|
|
14
|
+
|
|
15
|
+
### SBadgeColor
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
export type SBadgeColor = (typeof BADGE_COLORS)[number];
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### BADGE_COLORS
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
export const BADGE_COLORS = [
|
|
25
|
+
'red',
|
|
26
|
+
'orange',
|
|
27
|
+
'yellow',
|
|
28
|
+
'green',
|
|
29
|
+
'lightblue',
|
|
30
|
+
'blue',
|
|
31
|
+
'darkblue',
|
|
32
|
+
'indigo',
|
|
33
|
+
'purple',
|
|
34
|
+
'grey',
|
|
35
|
+
] as const;
|
|
36
|
+
```
|
|
37
|
+
|
|
13
38
|
## Dependencies
|
|
14
39
|
|
|
15
40
|
### Used by
|
|
16
41
|
|
|
42
|
+
- [SCalendarBoard](../SCalendarBoard)
|
|
17
43
|
- [SSectionHeaderCard](../SSectionHeaderCard)
|
|
18
44
|
|
|
19
45
|
### Graph
|
|
20
46
|
|
|
21
47
|
```mermaid
|
|
22
48
|
graph TD;
|
|
49
|
+
SCalendarBoard --> SBadge
|
|
23
50
|
SSectionHeaderCard --> SBadge
|
|
24
51
|
style SBadge fill:#f9f,stroke:#333,stroke-width:4px
|
|
25
52
|
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type HTMLAttributes } from 'react';
|
|
2
|
-
export declare const BADGE_COLORS: readonly ["red", "orange", "yellow", "green", "blue", "darkblue", "indigo", "grey"];
|
|
2
|
+
export declare const BADGE_COLORS: readonly ["red", "orange", "yellow", "green", "lightblue", "blue", "darkblue", "indigo", "purple", "grey"];
|
|
3
3
|
export type SBadgeColor = (typeof BADGE_COLORS)[number];
|
|
4
4
|
export interface SBadgeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
5
5
|
/** 뱃지 색상 */
|