sellmate-design-system-react 9.0.0-beta.8 → 9.0.0-beta.83

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.
Files changed (412) hide show
  1. package/AGENTS.md +3982 -268
  2. package/README.md +76 -24
  3. package/bin/sellmate-ds.mjs +91 -59
  4. package/dist/components/SAccountListBox/AccountListBoxPortal.d.ts +31 -0
  5. package/dist/components/SAccountListBox/README.md +86 -0
  6. package/dist/components/SAccountListBox/SAccountListBox.d.ts +79 -0
  7. package/dist/components/SAccountListBox/SystemMenuPortal.d.ts +58 -0
  8. package/dist/components/SAccountListBox/accountListBox.config.d.ts +64 -0
  9. package/dist/components/SAccountListBox/index.d.ts +2 -0
  10. package/dist/components/SActionModal/README.md +1 -0
  11. package/dist/components/SActionModal/SActionModal.d.ts +9 -1
  12. package/dist/components/SBadge/README.md +27 -0
  13. package/dist/components/SBadge/SBadge.d.ts +1 -1
  14. package/dist/components/SBarChart/README.md +122 -0
  15. package/dist/components/SBarChart/SBarChart.d.ts +99 -0
  16. package/dist/components/SBarChart/barChart.config.d.ts +85 -0
  17. package/dist/components/SBarChart/index.d.ts +2 -0
  18. package/dist/components/SBarcodeInput/README.md +14 -4
  19. package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +25 -3
  20. package/dist/components/SButton/README.md +40 -0
  21. package/dist/components/SCalendar/README.md +13 -0
  22. package/dist/components/SCalendarBoard/CalendarDayCard.d.ts +53 -0
  23. package/dist/components/SCalendarBoard/CalendarDayEventListBox.d.ts +26 -0
  24. package/dist/components/SCalendarBoard/CalendarEventButton.d.ts +20 -0
  25. package/dist/components/SCalendarBoard/CalendarMoreButton.d.ts +18 -0
  26. package/dist/components/SCalendarBoard/README.md +148 -0
  27. package/dist/components/SCalendarBoard/SCalendarBoard.d.ts +83 -0
  28. package/dist/components/SCalendarBoard/calendar-board-layout.d.ts +59 -0
  29. package/dist/components/SCalendarBoard/calendarBoard.config.d.ts +38 -0
  30. package/dist/components/SCalendarBoard/index.d.ts +3 -0
  31. package/dist/components/SCalendarBoard/types.d.ts +40 -0
  32. package/dist/components/SCallout/README.md +17 -1
  33. package/dist/components/SCallout/SCallout.d.ts +14 -4
  34. package/dist/components/SCard/README.md +17 -0
  35. package/dist/components/SCard/SCard.d.ts +26 -2
  36. package/dist/components/SChatAttachedFile/README.md +33 -0
  37. package/dist/components/SChatAttachedFile/SChatAttachedFile.d.ts +13 -0
  38. package/dist/components/SChatAttachedFile/chatAttachedFile.config.d.ts +23 -0
  39. package/dist/components/SChatAttachedFile/index.d.ts +2 -0
  40. package/dist/components/SChatFile/README.md +33 -0
  41. package/dist/components/SChatFile/SChatFile.d.ts +37 -0
  42. package/dist/components/SChatFile/chatFile.config.d.ts +56 -0
  43. package/dist/components/SChatFile/index.d.ts +2 -0
  44. package/dist/components/SChatInput/README.md +44 -0
  45. package/dist/components/SChatInput/SChatInput.d.ts +60 -0
  46. package/dist/components/SChatInput/index.d.ts +1 -0
  47. package/dist/components/SChatMessage/README.md +86 -0
  48. package/dist/components/SChatMessage/SChatMessage.d.ts +123 -0
  49. package/dist/components/SChatMessage/index.d.ts +1 -0
  50. package/dist/components/SChatSystemMessage/README.md +12 -0
  51. package/dist/components/SChatSystemMessage/SChatSystemMessage.d.ts +18 -0
  52. package/dist/components/SChatSystemMessage/index.d.ts +1 -0
  53. package/dist/components/SCheckbox/README.md +8 -0
  54. package/dist/components/SChip/README.md +25 -0
  55. package/dist/components/SChip/SChip.d.ts +8 -0
  56. package/dist/components/SChip/index.d.ts +1 -1
  57. package/dist/components/SChipFilter/README.md +369 -14
  58. package/dist/components/SChipFilter/SChipFilter.d.ts +169 -60
  59. package/dist/components/SChipFilter/index.d.ts +1 -1
  60. package/dist/components/SChipInput/README.md +18 -2
  61. package/dist/components/SChipInput/SChipInput.d.ts +23 -3
  62. package/dist/components/SChipInput/index.d.ts +1 -1
  63. package/dist/components/SCircleProgress/README.md +13 -2
  64. package/dist/components/SCircleProgress/SCircleProgress.d.ts +11 -3
  65. package/dist/components/SConfirmModal/README.md +13 -4
  66. package/dist/components/SConfirmModal/SConfirmModal.d.ts +46 -9
  67. package/dist/components/SContextAlert/README.md +52 -0
  68. package/dist/components/SContextAlert/SContextAlert.d.ts +51 -0
  69. package/dist/components/SContextAlert/contextAlert.config.d.ts +22 -0
  70. package/dist/components/SContextAlert/index.d.ts +2 -0
  71. package/dist/components/SDatePicker/README.md +22 -2
  72. package/dist/components/SDatePicker/SDatePicker.d.ts +42 -5
  73. package/dist/components/SDateRangePicker/README.md +22 -4
  74. package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +44 -7
  75. package/dist/components/SDivider/README.md +7 -0
  76. package/dist/components/SDivider/SDivider.d.ts +11 -0
  77. package/dist/components/SDonutChart/README.md +105 -0
  78. package/dist/components/SDonutChart/SDonutChart.d.ts +82 -0
  79. package/dist/components/SDonutChart/index.d.ts +1 -0
  80. package/dist/components/SDraggableItem/README.md +37 -0
  81. package/dist/components/SDraggableItem/SDraggableItem.d.ts +2 -0
  82. package/dist/components/SDraggableItem/index.d.ts +1 -1
  83. package/dist/components/SDraggableList/README.md +33 -3
  84. package/dist/components/SDraggableList/SDraggableList.d.ts +18 -3
  85. package/dist/components/SDraggableList/index.d.ts +1 -1
  86. package/dist/components/SDrawer/README.md +8 -0
  87. package/dist/components/SDropdownButton/README.md +19 -0
  88. package/dist/components/SEditor/EditorBody.d.ts +36 -0
  89. package/dist/components/SEditor/EditorToolbar.d.ts +93 -0
  90. package/dist/components/SEditor/README.md +205 -0
  91. package/dist/components/SEditor/SEditor.d.ts +128 -0
  92. package/dist/components/SEditor/editor-icons.d.ts +63 -0
  93. package/dist/components/SEditor/editor.config.d.ts +119 -0
  94. package/dist/components/SEditor/index.d.ts +8 -0
  95. package/dist/components/SEditor/tiptap-api.d.ts +29 -0
  96. package/dist/components/SEditor/use-is-mobile.d.ts +14 -0
  97. package/dist/components/SExpansionItem/README.md +38 -2
  98. package/dist/components/SExpansionItem/SExpansionItem.d.ts +8 -2
  99. package/dist/components/SExpansionItem/index.d.ts +1 -1
  100. package/dist/components/SField/README.md +37 -5
  101. package/dist/components/SField/SField.d.ts +40 -8
  102. package/dist/components/SField/index.d.ts +1 -1
  103. package/dist/components/SFilePicker/README.md +20 -4
  104. package/dist/components/SFilePicker/SFilePicker.d.ts +26 -6
  105. package/dist/components/SFooter/README.md +44 -0
  106. package/dist/components/SFooter/SFooter.d.ts +29 -13
  107. package/dist/components/SFooter/index.d.ts +1 -1
  108. package/dist/components/SForm/README.md +12 -1
  109. package/dist/components/SForm/SForm.d.ts +2 -2
  110. package/dist/components/SGhostButton/README.md +28 -4
  111. package/dist/components/SGhostButton/SGhostButton.d.ts +4 -1
  112. package/dist/components/SGnb/README.md +109 -8
  113. package/dist/components/SGnb/SGnb.d.ts +112 -11
  114. package/dist/components/SGnb/gnb.config.d.ts +18 -5
  115. package/dist/components/SGnb/index.d.ts +1 -1
  116. package/dist/components/SGnbSystem/README.md +186 -0
  117. package/dist/components/SGnbSystem/SGnbSystem.d.ts +179 -0
  118. package/dist/components/SGnbSystem/gnbSystem.config.d.ts +122 -0
  119. package/dist/components/SGnbSystem/index.d.ts +2 -0
  120. package/dist/components/SGuide/README.md +16 -1
  121. package/dist/components/SGuide/SGuide.d.ts +5 -2
  122. package/dist/components/SIcon/README.md +20 -0
  123. package/dist/components/SIcon/SIcon.d.ts +1 -1
  124. package/dist/components/SIcon/icons.gen.d.ts +20 -1
  125. package/dist/components/SImage/README.md +23 -1
  126. package/dist/components/SImage/SImage.d.ts +11 -8
  127. package/dist/components/SInput/README.md +8 -4
  128. package/dist/components/SInput/SInput.d.ts +17 -5
  129. package/dist/components/SKeyValueTable/README.md +88 -0
  130. package/dist/components/SKeyValueTable/SKeyValueTable.d.ts +30 -3
  131. package/dist/components/SKeyValueTable/index.d.ts +1 -1
  132. package/dist/components/SLauncherListBox/README.md +82 -0
  133. package/dist/components/SLauncherListBox/SLauncherListBox.d.ts +80 -0
  134. package/dist/components/SLauncherListBox/index.d.ts +2 -0
  135. package/dist/components/SLauncherListBox/launcherListBox.config.d.ts +154 -0
  136. package/dist/components/SLayout/README.md +22 -1
  137. package/dist/components/SLayout/SLayout.d.ts +6 -2
  138. package/dist/components/SLayout/index.d.ts +1 -1
  139. package/dist/components/SLineChart/README.md +131 -0
  140. package/dist/components/SLineChart/SLineChart.d.ts +110 -0
  141. package/dist/components/SLineChart/index.d.ts +1 -0
  142. package/dist/components/SLineChart/lineChart.config.d.ts +95 -0
  143. package/dist/components/SLinearProgress/README.md +16 -1
  144. package/dist/components/SLinearProgress/SLinearProgress.d.ts +11 -2
  145. package/dist/components/SLinearProgress/index.d.ts +1 -1
  146. package/dist/components/SList/README.md +15 -2
  147. package/dist/components/SList/SList.d.ts +7 -3
  148. package/dist/components/SList/index.d.ts +1 -1
  149. package/dist/components/SListItem/README.md +43 -2
  150. package/dist/components/SListItem/SListItem.d.ts +8 -2
  151. package/dist/components/SListItem/index.d.ts +1 -1
  152. package/dist/components/SLoadingContainer/index.d.ts +1 -1
  153. package/dist/components/SLoadingContainer/loading.d.ts +41 -6
  154. package/dist/components/SLoadingModal/README.md +10 -2
  155. package/dist/components/SLoadingModal/SLoadingModal.d.ts +4 -4
  156. package/dist/components/SLoadingModal/index.d.ts +1 -1
  157. package/dist/components/SLoginCard/README.md +37 -0
  158. package/dist/components/SLoginCard/SLoginCard.d.ts +43 -0
  159. package/dist/components/SLoginCard/index.d.ts +1 -0
  160. package/dist/components/SLogo/README.md +103 -0
  161. package/dist/components/SLogo/SLogo.d.ts +72 -0
  162. package/dist/components/SLogo/index.d.ts +2 -0
  163. package/dist/components/SLogo/logo.config.d.ts +29 -0
  164. package/dist/components/SLogo/logos.d.ts +16 -0
  165. package/dist/components/SMeatballButton/README.md +67 -0
  166. package/dist/components/SMeatballButton/SMeatballButton.d.ts +36 -0
  167. package/dist/components/SMeatballButton/index.d.ts +1 -0
  168. package/dist/components/SModal/README.md +15 -5
  169. package/dist/components/SModal/SModal.d.ts +1 -1
  170. package/dist/components/SNumberInput/README.md +19 -8
  171. package/dist/components/SNumberInput/SNumberInput.d.ts +49 -7
  172. package/dist/components/SPage/README.md +105 -5
  173. package/dist/components/SPage/SPage.d.ts +34 -10
  174. package/dist/components/SPage/SPageHeader.d.ts +31 -13
  175. package/dist/components/SPage/index.d.ts +2 -2
  176. package/dist/components/SPage/page-column.d.ts +34 -0
  177. package/dist/components/SPage/page-width.d.ts +23 -0
  178. package/dist/components/SPage/page.config.d.ts +26 -0
  179. package/dist/components/SPieChart/README.md +93 -0
  180. package/dist/components/SPieChart/SPieChart.d.ts +73 -0
  181. package/dist/components/SPieChart/index.d.ts +1 -0
  182. package/dist/components/SPopover/README.md +15 -0
  183. package/dist/components/SPopup/README.md +26 -2
  184. package/dist/components/SPopup/SPopup.d.ts +13 -10
  185. package/dist/components/SPopup/index.d.ts +1 -1
  186. package/dist/components/SPortal/README.md +20 -0
  187. package/dist/components/SRadio/README.md +20 -0
  188. package/dist/components/SRadioButton/README.md +26 -0
  189. package/dist/components/SRadioButton/SRadioButton.d.ts +9 -2
  190. package/dist/components/SRadioCard/README.md +78 -0
  191. package/dist/components/SRadioCard/SRadioCard.d.ts +29 -0
  192. package/dist/components/SRadioCard/SRadioCardGroup.d.ts +36 -0
  193. package/dist/components/SRadioCard/index.d.ts +2 -0
  194. package/dist/components/SScrollArea/README.md +28 -0
  195. package/dist/components/SScrollArea/SScrollArea.d.ts +17 -0
  196. package/dist/components/SSearchInput/README.md +63 -0
  197. package/dist/components/SSearchInput/SSearchInput.d.ts +52 -0
  198. package/dist/components/SSearchInput/index.d.ts +1 -0
  199. package/dist/components/SSectionHeaderCard/README.md +38 -0
  200. package/dist/components/SSectionHeaderCard/SSectionHeaderCard.d.ts +19 -0
  201. package/dist/components/SSelect/README.md +64 -11
  202. package/dist/components/SSelect/SSelect.d.ts +135 -15
  203. package/dist/components/SSelect/index.d.ts +1 -1
  204. package/dist/components/SSelect/select.config.d.ts +17 -0
  205. package/dist/components/SSkeleton/README.md +67 -0
  206. package/dist/components/SSkeleton/SSkeleton.d.ts +43 -0
  207. package/dist/components/SSkeleton/index.d.ts +2 -0
  208. package/dist/components/SSkeleton/skeleton.config.d.ts +24 -0
  209. package/dist/components/SSplitter/README.md +17 -2
  210. package/dist/components/SSplitter/SSplitter.d.ts +7 -3
  211. package/dist/components/SStepper/README.md +26 -0
  212. package/dist/components/SSwitch/README.md +13 -1
  213. package/dist/components/SSwitch/SSwitch.d.ts +1 -3
  214. package/dist/components/SSystemActionButton/README.md +246 -0
  215. package/dist/components/SSystemActionButton/SSystemActionButton.d.ts +167 -0
  216. package/dist/components/SSystemActionButton/index.d.ts +2 -0
  217. package/dist/components/SSystemActionButton/systemActionButton.config.d.ts +93 -0
  218. package/dist/components/STable/README.md +135 -20
  219. package/dist/components/STable/STable.d.ts +292 -46
  220. package/dist/components/STable/index.d.ts +1 -1
  221. package/dist/components/STableBar/README.md +1 -0
  222. package/dist/components/STableBar/STableBar.d.ts +8 -1
  223. package/dist/components/STabs/README.md +13 -1
  224. package/dist/components/STabs/STabs.d.ts +2 -2
  225. package/dist/components/STag/README.md +55 -0
  226. package/dist/components/STag/STag.d.ts +3 -1
  227. package/dist/components/STag/tag.config.d.ts +1 -1
  228. package/dist/components/STextLink/README.md +21 -1
  229. package/dist/components/STextLink/STextLink.d.ts +5 -1
  230. package/dist/components/STextarea/README.md +12 -5
  231. package/dist/components/STextarea/STextarea.d.ts +49 -6
  232. package/dist/components/STimePicker/README.md +19 -2
  233. package/dist/components/STimePicker/STimePicker.d.ts +36 -6
  234. package/dist/components/STimePicker/timepicker.config.d.ts +4 -2
  235. package/dist/components/STimeRangePicker/README.md +31 -2
  236. package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +35 -6
  237. package/dist/components/STimeline/README.md +41 -0
  238. package/dist/components/STimeline/STimeline.d.ts +27 -0
  239. package/dist/components/STimeline/index.d.ts +1 -0
  240. package/dist/components/SToast/README.md +25 -1
  241. package/dist/components/SToast/SToast.d.ts +2 -2
  242. package/dist/components/SToggle/README.md +8 -0
  243. package/dist/components/SToggle/index.d.ts +1 -1
  244. package/dist/components/STooltip/README.md +27 -1
  245. package/dist/components/STooltip/STooltip.d.ts +1 -1
  246. package/dist/components/STree/README.md +42 -4
  247. package/dist/components/STree/STree.d.ts +18 -6
  248. package/dist/components/STree/STree.examples.d.ts +2 -0
  249. package/dist/docs/Gallery.d.ts +9 -0
  250. package/dist/docs/RecipeGallery.d.ts +13 -0
  251. package/dist/docs/gallery-previews.d.ts +24 -0
  252. package/dist/fonts/LICENSE.txt +94 -0
  253. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.0.woff2 +0 -0
  254. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.1.woff2 +0 -0
  255. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.10.woff2 +0 -0
  256. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.11.woff2 +0 -0
  257. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.12.woff2 +0 -0
  258. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.13.woff2 +0 -0
  259. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.14.woff2 +0 -0
  260. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.15.woff2 +0 -0
  261. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.16.woff2 +0 -0
  262. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.17.woff2 +0 -0
  263. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.18.woff2 +0 -0
  264. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.19.woff2 +0 -0
  265. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.2.woff2 +0 -0
  266. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.20.woff2 +0 -0
  267. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.21.woff2 +0 -0
  268. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.22.woff2 +0 -0
  269. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.23.woff2 +0 -0
  270. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.24.woff2 +0 -0
  271. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.25.woff2 +0 -0
  272. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.26.woff2 +0 -0
  273. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.27.woff2 +0 -0
  274. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.28.woff2 +0 -0
  275. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.29.woff2 +0 -0
  276. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.3.woff2 +0 -0
  277. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.30.woff2 +0 -0
  278. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.31.woff2 +0 -0
  279. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.32.woff2 +0 -0
  280. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.33.woff2 +0 -0
  281. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.34.woff2 +0 -0
  282. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.35.woff2 +0 -0
  283. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.36.woff2 +0 -0
  284. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.37.woff2 +0 -0
  285. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.38.woff2 +0 -0
  286. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.39.woff2 +0 -0
  287. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.4.woff2 +0 -0
  288. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.40.woff2 +0 -0
  289. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.41.woff2 +0 -0
  290. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.42.woff2 +0 -0
  291. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.43.woff2 +0 -0
  292. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.44.woff2 +0 -0
  293. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.45.woff2 +0 -0
  294. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.46.woff2 +0 -0
  295. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.47.woff2 +0 -0
  296. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.48.woff2 +0 -0
  297. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.49.woff2 +0 -0
  298. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.5.woff2 +0 -0
  299. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.50.woff2 +0 -0
  300. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.51.woff2 +0 -0
  301. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.52.woff2 +0 -0
  302. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.53.woff2 +0 -0
  303. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.54.woff2 +0 -0
  304. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.55.woff2 +0 -0
  305. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.56.woff2 +0 -0
  306. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.57.woff2 +0 -0
  307. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.58.woff2 +0 -0
  308. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.59.woff2 +0 -0
  309. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.6.woff2 +0 -0
  310. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.60.woff2 +0 -0
  311. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.61.woff2 +0 -0
  312. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.62.woff2 +0 -0
  313. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.63.woff2 +0 -0
  314. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.64.woff2 +0 -0
  315. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.65.woff2 +0 -0
  316. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.66.woff2 +0 -0
  317. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.67.woff2 +0 -0
  318. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.68.woff2 +0 -0
  319. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.69.woff2 +0 -0
  320. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.7.woff2 +0 -0
  321. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.70.woff2 +0 -0
  322. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.71.woff2 +0 -0
  323. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.72.woff2 +0 -0
  324. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.73.woff2 +0 -0
  325. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.74.woff2 +0 -0
  326. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.75.woff2 +0 -0
  327. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.76.woff2 +0 -0
  328. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.77.woff2 +0 -0
  329. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.78.woff2 +0 -0
  330. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.79.woff2 +0 -0
  331. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.8.woff2 +0 -0
  332. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.80.woff2 +0 -0
  333. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.81.woff2 +0 -0
  334. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.82.woff2 +0 -0
  335. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.83.woff2 +0 -0
  336. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.84.woff2 +0 -0
  337. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.85.woff2 +0 -0
  338. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.86.woff2 +0 -0
  339. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.87.woff2 +0 -0
  340. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.88.woff2 +0 -0
  341. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.89.woff2 +0 -0
  342. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.9.woff2 +0 -0
  343. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.90.woff2 +0 -0
  344. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.91.woff2 +0 -0
  345. package/dist/index.cjs +21921 -10715
  346. package/dist/index.cjs.map +1 -1
  347. package/dist/index.d.ts +24 -0
  348. package/dist/index.js +21834 -10714
  349. package/dist/index.js.map +1 -1
  350. package/dist/lib/chart/cartesian.d.ts +56 -0
  351. package/dist/lib/chart/frame.d.ts +21 -0
  352. package/dist/lib/chart/hover-dim.d.ts +19 -0
  353. package/dist/lib/chart/legend.d.ts +21 -0
  354. package/dist/lib/chart/palette.d.ts +28 -0
  355. package/dist/lib/chart/radial.d.ts +99 -0
  356. package/dist/lib/chart/scale.d.ts +26 -0
  357. package/dist/lib/chart/tooltip.d.ts +60 -0
  358. package/dist/lib/chart/types.d.ts +29 -0
  359. package/dist/lib/chart/use-element-size.d.ts +39 -0
  360. package/dist/lib/date.d.ts +2 -1
  361. package/dist/lib/depth-filter.d.ts +27 -0
  362. package/dist/lib/doc-sections.d.ts +35 -0
  363. package/dist/lib/dropdown-menu.d.ts +19 -0
  364. package/dist/lib/field-width.d.ts +31 -0
  365. package/dist/lib/floating-height.d.ts +15 -0
  366. package/dist/lib/global-overlay.d.ts +5 -0
  367. package/dist/lib/hover-preview.d.ts +32 -0
  368. package/dist/lib/inert.d.ts +11 -0
  369. package/dist/lib/overlay-scrollbar.d.ts +32 -0
  370. package/dist/lib/row-metrics.d.ts +61 -0
  371. package/dist/lib/story-docs.d.ts +19 -3
  372. package/dist/llms-full.txt +8620 -942
  373. package/dist/llms.txt +4069 -325
  374. package/dist/playground/categories.d.ts +19 -0
  375. package/dist/pretendard.css +937 -0
  376. package/dist/recipes/AppShell.d.ts +21 -0
  377. package/dist/recipes/CategoryManagePage.d.ts +1 -0
  378. package/dist/recipes/ConsultConsolePage.d.ts +1 -0
  379. package/dist/recipes/ExcelFilePopupPage.d.ts +5 -0
  380. package/dist/recipes/LoginPage.d.ts +6 -0
  381. package/dist/recipes/ProductBulkUploadPage.d.ts +1 -0
  382. package/dist/recipes/ProductCreatePage.d.ts +1 -0
  383. package/dist/recipes/ProductCreateSectionsPage.d.ts +5 -0
  384. package/dist/recipes/ProductDetailInlineEditPage.d.ts +9 -0
  385. package/dist/recipes/ProductDetailPage.d.ts +1 -0
  386. package/dist/recipes/ProductListChipFilterPage.d.ts +1 -0
  387. package/dist/recipes/ProductListPage.d.ts +1 -0
  388. package/dist/recipes/ProductOverlayPage.d.ts +1 -0
  389. package/dist/recipes/SalesDashboardPage.d.ts +1 -0
  390. package/dist/recipes/SettingsPage.d.ts +1 -0
  391. package/dist/recipes/StoreSetupPage.d.ts +1 -0
  392. package/dist/recipes/TransferOrderPopupPage.d.ts +2 -0
  393. package/dist/recipes/api.d.ts +220 -0
  394. package/dist/recipes/recipe-story.d.ts +33 -0
  395. package/dist/recipes/router.d.ts +9 -0
  396. package/dist/styles.css +3622 -248
  397. package/dist/theme.css +615 -26
  398. package/eslint/index.mjs +44 -35
  399. package/eslint/lib/class-names.mjs +23 -25
  400. package/eslint/lib/table-column.mjs +34 -8
  401. package/eslint/rules/component-group-gap.mjs +32 -30
  402. package/eslint/rules/divider-vertical-height.mjs +137 -0
  403. package/eslint/rules/field-width-grade.mjs +69 -52
  404. package/eslint/rules/no-arbitrary-class.mjs +63 -20
  405. package/eslint/rules/no-off-scale-spacing.mjs +61 -41
  406. package/eslint/rules/no-raw-html-control.mjs +38 -36
  407. package/eslint/rules/prefer-typo-preset.mjs +23 -17
  408. package/eslint/rules/require-locale-number.mjs +14 -19
  409. package/eslint/rules/table-column-width.mjs +114 -0
  410. package/eslint/rules/table-numeric-align.mjs +14 -14
  411. package/eslint/scale.gen.mjs +6 -3
  412. package/package.json +19 -5
@@ -5,10 +5,11 @@ import { type SNumberInputProps } from '../SNumberInput';
5
5
  import { type SSelectProps } from '../SSelect';
6
6
  import { type SRadioGroupProps } from '../SRadio';
7
7
  import { type SCheckboxProps } from '../SCheckbox';
8
+ import { type SSwitchProps } from '../SSwitch';
8
9
  import { type SDatePickerProps } from '../SDatePicker';
9
10
  import { type SDateRangePickerProps } from '../SDateRangePicker';
10
11
  import { type SFilePickerProps } from '../SFilePicker';
11
- export type SKeyValueFieldType = 'text' | 'input' | 'textarea' | 'number-input' | 'select' | 'radio' | 'checkbox' | 'date-picker' | 'date-range-picker' | 'file-picker';
12
+ export type SKeyValueFieldType = 'text' | 'input' | 'textarea' | 'number-input' | 'select' | 'radio' | 'checkbox' | 'switch' | 'date-picker' | 'date-range-picker' | 'file-picker';
12
13
  /** field type과 무관한 공통 속성 (레이아웃·레이블·스팬 등) */
13
14
  export interface SKeyValueFieldBase {
14
15
  name: string;
@@ -59,6 +60,9 @@ export type SKeyValueFieldByType = {
59
60
  } | {
60
61
  type: 'checkbox';
61
62
  options?: FieldOptions<SCheckboxProps>;
63
+ } | {
64
+ type: 'switch';
65
+ options?: FieldOptions<SSwitchProps>;
62
66
  } | {
63
67
  type: 'date-picker';
64
68
  options?: FieldOptions<SDatePickerProps>;
@@ -74,7 +78,7 @@ export type SKeyValueField = SKeyValueFieldBase & SKeyValueFieldByType;
74
78
  * field type별 `onChange`로 올라오는 값 타입.
75
79
  * - `string`: input · textarea · select · radio · date-picker
76
80
  * - `number`: number-input
77
- * - `boolean`: checkbox
81
+ * - `boolean`: checkbox · switch
78
82
  * - `string[]`: date-range-picker
79
83
  */
80
84
  export type SKeyValueFieldValue = string | number | boolean | string[];
@@ -100,6 +104,13 @@ export interface SKeyValueTableProps {
100
104
  * `onChange`의 `detail.values`와 함께 controlled 패턴으로 사용합니다.
101
105
  */
102
106
  values?: Record<string, unknown>;
107
+ /**
108
+ * 행을 좁게 그린다 — 셀의 상하 패딩(8px → 6px)과 짝이 되는 최소 높이(44px → 32px)를 함께
109
+ * 내린다. 한 화면에 행이 많아 훑어보기가 목적인 상세 조회 표에 쓴다. 좌우 패딩과 글자 크기는
110
+ * 그대로다. **`STable` 과 달리 밀도 토글이 붙지 않는 고정값이다** — 준 값 그대로 그린다.
111
+ * 읽기 전용(`text`) 행에서만 실제로 좁아진다: 폼 필드 행은 필드 높이가 행 높이를 정한다
112
+ */
113
+ dense?: boolean;
103
114
  /** 우측 검색 패널 */
104
115
  search?: boolean;
105
116
  /** border-radius 제어 */
@@ -111,6 +122,22 @@ export interface SKeyValueTableProps {
111
122
  * 카드가 이미 바깥 테두리를 그리므로, 켜 두면 1px 두 개가 나란히 놓여 그 변만 2px 로 보인다.
112
123
  */
113
124
  bordered?: boolean;
125
+ /**
126
+ * 필드 폭 정책 — **표 하나가 한 번에 정한다**. 필드마다 따로 정하지 않는다.
127
+ *
128
+ * 표는 모든 컨트롤에 `width="100%"` 를 넘기지만, 값 길이를 아는 컨트롤(날짜·기간 피커)은
129
+ * 자기 상한에서 멈춘다. 그래서 한 행에 그런 필드가 섞이면 **왼쪽 끝만 맞고 오른쪽 끝이
130
+ * 어긋나** 보인다.
131
+ *
132
+ * - `'auto'`(기본) — 컨트롤이 자기 폭을 정한다. 상한이 그대로 살아 있어 폭이 "이 칸에 얼마나 긴 값이 들어가는가" 를
133
+ * 알려준다. 등록·수정 폼처럼 입력 길이를 짐작하게 하는 편이 나은 표에 쓴다.
134
+ * - `'fill'` — 모든 컨트롤이 셀 끝까지 찬다. 셀 폭은 열 수와 `tdColSpan` 이 정하므로 오른쪽
135
+ * 끝이 저절로 맞는다. 조회 필터처럼 가지런함이 우선인 표에 쓴다. 대신 폭이 값 길이를
136
+ * 알려주지 않는다 — 날짜 칸이 메모 칸만큼 넓어진다.
137
+ *
138
+ * 개별 필드만 예외로 두려면 그 필드의 `options.maxWidth` 를 준다 — 이 정책보다 우선한다.
139
+ */
140
+ fieldWidth?: 'auto' | 'fill';
114
141
  /** 값 변경 (sdChange) */
115
142
  onChange?: (detail: SKeyValueChangeDetail) => void;
116
143
  /** 검색 클릭 (sdSearch) */
@@ -119,5 +146,5 @@ export interface SKeyValueTableProps {
119
146
  style?: CSSProperties;
120
147
  }
121
148
  /** SKeyValueTable — sd-key-value-table 포팅. th/td 폼 레이아웃 + 필드 렌더러. */
122
- export declare function SKeyValueTable({ fields, values, search, radius, bordered, onChange, onSearch, className, style, }: SKeyValueTableProps): import("react").JSX.Element | null;
149
+ export declare function SKeyValueTable({ fields, values, dense, search, radius, bordered, fieldWidth, onChange, onSearch, className, style, }: SKeyValueTableProps): import("react").JSX.Element | null;
123
150
  export {};
@@ -1 +1 @@
1
- export { SKeyValueTable, type SKeyValueTableProps, type SKeyValueField, type SKeyValueFieldType, type SKeyValueChangeDetail, } from './SKeyValueTable';
1
+ export { SKeyValueTable, type SKeyValueTableProps, type SKeyValueField, type SKeyValueFieldBase, type SKeyValueFieldByType, type SKeyValueFieldType, type SKeyValueFieldValue, type SKeyValueChangeDetail, } from './SKeyValueTable';
@@ -0,0 +1,82 @@
1
+ # SLauncherListBox
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### SLauncherListBox
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `items?` | `SLauncherListBoxItem[]` | — | 목록에 세울 서비스. 비어 있으면 아무것도 렌더하지 않는다. **순서는 넘긴 대로가 아니라 카탈로그 순서다**(`LAUNCHER_SERVICES`) — 같은 런처가 앱마다 다른 순서로 뜨면 사용자가 매번 다시 찾는다. 같은 서비스를 두 번 넘기면 처음 것만 선다. |
12
+ | `consoleHref` | `string` | — | 셀메이트 콘솔 주소. 목록 아래에 **늘 서는** "셀메이트 콘솔로 이동" 글자 링크(`STextLink`)가 누르면 이 주소를 새 탭에서 연다. **필수다** — 어느 서비스의 런처든 콘솔로 가는 길은 있어야 한다. 문구·아이콘은 컴포넌트가 정한다 — 어느 서비스의 런처든 같은 곳을 같은 말로 안내해야 한다. 주소는 서비스 줄의 `href` 처럼 앱마다 QA·실서버가 달라 앱이 넘긴다. |
13
+ | `ariaLabel?` | `string` | — | 목록(ul)의 접근성 레이블 |
14
+
15
+ #### Events
16
+
17
+ | Event | Type | Description |
18
+ |-------|------|-------------|
19
+ | `onSelect` | `(service: SLauncherService) => void` | 서비스를 고름. **가는 것은 이 콜백이 하지 않는다** — 줄이 링크라 브라우저가 `href` 를 새 탭으로 연다. 고른 것을 앱이 알아야 할 때만(기록·목록 닫기) 준다. 갈 수 없는 줄(주소가 없거나 카탈로그가 아직 출시 전으로 든 서비스)은 눌리지 않으므로 여기로 오지 않는다. |
20
+ | `onConsoleClick` | `() => void` | 콘솔 링크를 누름. **가는 것은 이 콜백이 하지 않는다** — 컴포넌트가 `consoleHref` 를 새 탭으로 이미 연다. 누른 것을 앱이 알아야 할 때만(기록·목록 닫기) 준다. |
21
+
22
+ ## Types
23
+
24
+ ### SLauncherListBoxItem
25
+
26
+ ```ts
27
+ /** 리스트박스의 한 줄 — 옮겨 갈 수 있는 서비스 하나 */
28
+ export interface SLauncherListBoxItem {
29
+ /**
30
+ * 어느 서비스인가. **로고·표기·이름·상태 태그는 이 키 하나로 정해진다** — 카탈로그
31
+ * (`LAUNCHER_SERVICE_CATALOG`)가 들고 있으므로 앱이 넘기지 않는다.
32
+ */
33
+ service: SLauncherService;
34
+ /**
35
+ * 새 탭에서 열 주소. **디자인 시스템은 주소를 들지 않는다** — 앱마다 QA·실서버가 달라
36
+ * 여기서 관리할 수 없다.
37
+ *
38
+ * **주소를 주는 것이 곧 "갈 수 있다"는 뜻이다.** 비우면 줄은 목록에 남되 눌리지 않고
39
+ * 물러난다 — 지금 보고 있는 서비스든, 이 앱이 계약하지 않은 서비스든 갈 곳이 없기는 같다.
40
+ * 못 가는 줄을 막는 별도의 prop 은 없다.
41
+ */
42
+ href?: string;
43
+ }
44
+ ```
45
+
46
+ ### SLauncherService
47
+
48
+ ```ts
49
+ /**
50
+ * 런처에 설 수 있는 서비스 키 — **`SLogo` 가 로고를 가진 서비스 전부다(통합 콘솔 제외).**
51
+ *
52
+ * 문서에서 바로 읽히도록 키를 풀어 쓴다(`Exclude<SLogoName, …>` 로 두면 README·Storybook 에 무엇이
53
+ * 있는지 보이지 않는다). 대신 아래 `LOGO_COVERAGE` 가 로고 목록과 어긋나지 않는지 타입으로 지킨다.
54
+ */
55
+ export type SLauncherService =
56
+ 'sellmate' | 'wms' | 'chat' | 'chatbot' | 'plm' | 'account' | 'people' | 'crm' | 'work' | 'pos';
57
+ ```
58
+
59
+ ## Dependencies
60
+
61
+ ### Used by
62
+
63
+ - [SGnb](../SGnb)
64
+
65
+ ### Depends on
66
+
67
+ - [SIcon](../SIcon)
68
+ - [SLogo](../SLogo)
69
+ - [STag](../STag)
70
+ - [STextLink](../STextLink)
71
+
72
+ ### Graph
73
+
74
+ ```mermaid
75
+ graph TD;
76
+ SLauncherListBox --> SIcon
77
+ SLauncherListBox --> SLogo
78
+ SLauncherListBox --> STag
79
+ SLauncherListBox --> STextLink
80
+ SGnb --> SLauncherListBox
81
+ style SLauncherListBox fill:#f9f,stroke:#333,stroke-width:4px
82
+ ```
@@ -0,0 +1,80 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import { type SLauncherService } from './launcherListBox.config';
3
+ /** 리스트박스의 한 줄 — 옮겨 갈 수 있는 서비스 하나 */
4
+ export interface SLauncherListBoxItem {
5
+ /**
6
+ * 어느 서비스인가. **로고·표기·이름·상태 태그는 이 키 하나로 정해진다** — 카탈로그
7
+ * (`LAUNCHER_SERVICE_CATALOG`)가 들고 있으므로 앱이 넘기지 않는다.
8
+ */
9
+ service: SLauncherService;
10
+ /**
11
+ * 새 탭에서 열 주소. **디자인 시스템은 주소를 들지 않는다** — 앱마다 QA·실서버가 달라
12
+ * 여기서 관리할 수 없다.
13
+ *
14
+ * **주소를 주는 것이 곧 "갈 수 있다"는 뜻이다.** 비우면 줄은 목록에 남되 눌리지 않고
15
+ * 물러난다 — 지금 보고 있는 서비스든, 이 앱이 계약하지 않은 서비스든 갈 곳이 없기는 같다.
16
+ * 못 가는 줄을 막는 별도의 prop 은 없다.
17
+ */
18
+ href?: string;
19
+ }
20
+ export interface SLauncherListBoxProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {
21
+ /**
22
+ * 목록에 세울 서비스. 비어 있으면 아무것도 렌더하지 않는다.
23
+ *
24
+ * **순서는 넘긴 대로가 아니라 카탈로그 순서다**(`LAUNCHER_SERVICES`) — 같은 런처가 앱마다
25
+ * 다른 순서로 뜨면 사용자가 매번 다시 찾는다. 같은 서비스를 두 번 넘기면 처음 것만 선다.
26
+ */
27
+ items?: SLauncherListBoxItem[];
28
+ /**
29
+ * 서비스를 고름. **가는 것은 이 콜백이 하지 않는다** — 줄이 링크라 브라우저가 `href` 를
30
+ * 새 탭으로 연다. 고른 것을 앱이 알아야 할 때만(기록·목록 닫기) 준다.
31
+ *
32
+ * 갈 수 없는 줄(주소가 없거나 카탈로그가 아직 출시 전으로 든 서비스)은 눌리지 않으므로
33
+ * 여기로 오지 않는다.
34
+ */
35
+ onSelect?: (service: SLauncherService) => void;
36
+ /**
37
+ * 셀메이트 콘솔 주소. 목록 아래에 **늘 서는** "셀메이트 콘솔로 이동" 글자 링크(`STextLink`)가
38
+ * 누르면 이 주소를 새 탭에서 연다. **필수다** — 어느 서비스의 런처든 콘솔로 가는 길은 있어야 한다.
39
+ *
40
+ * 문구·아이콘은 컴포넌트가 정한다 — 어느 서비스의 런처든 같은 곳을 같은 말로 안내해야 한다.
41
+ * 주소는 서비스 줄의 `href` 처럼 앱마다 QA·실서버가 달라 앱이 넘긴다.
42
+ */
43
+ consoleHref: string;
44
+ /**
45
+ * 콘솔 링크를 누름. **가는 것은 이 콜백이 하지 않는다** — 컴포넌트가 `consoleHref` 를 새 탭으로
46
+ * 이미 연다. 누른 것을 앱이 알아야 할 때만(기록·목록 닫기) 준다.
47
+ */
48
+ onConsoleClick?: () => void;
49
+ /** 목록(ul)의 접근성 레이블 */
50
+ ariaLabel?: string;
51
+ }
52
+ /**
53
+ * SLauncherListBox — GNB 의 앱런처 버튼을 눌렀을 때 뜨는 서비스 목록.
54
+ *
55
+ * 한 줄이 서비스 하나다: 위에 브랜드 로고(+ 상태 태그), 아래에 한글 이름.
56
+ *
57
+ * **앱이 넘기는 것은 서비스 키와 주소 둘뿐이다.** 로고는 서비스 키가, 이름·상태 태그는 카탈로그
58
+ * (`LAUNCHER_SERVICE_CATALOG`)가 서비스마다 한 모습으로 정해 두므로 앱이 넘기지 않는다 —
59
+ * 넘기게 하면 같은 서비스가 앱마다 다른 이름·색·문구로 선다.
60
+ *
61
+ * **주소는 카탈로그에 두지 않는다.** 앱마다 QA·실서버 주소가 달라 디자인 시스템이 관리할 수 없다.
62
+ * 앱이 `href` 로 넘기면 줄이 링크가 되어 **새 탭에서 열린다** — 가운데 클릭·⌘클릭도 그대로 듣는다.
63
+ * **주소를 주는 것이 곧 "갈 수 있다"는 뜻이다**: 주지 않은 줄은 눌리지 않는다(지금 보고 있는
64
+ * 서비스이거나 이 앱이 계약하지 않은 서비스). 줄을 막는 별도의 prop 은 없다.
65
+ *
66
+ * **줄에 얹으면 "여기서 나간다"는 것이 드러난다** — 배경이 옅은 파랑으로 물들고 이름이 한 단계
67
+ * 진해지며, 오른쪽 끝에 페이지 이동 아이콘이 떠오른다. 아이콘 자리는 늘 비워 두므로 얹었다 뗄 때
68
+ * 글자가 밀리지 않는다.
69
+ *
70
+ * 갈 수 없는 줄은 눌리지 않고 로고는 색이 빠지며 이름은 비활성 글자색이 된다. **목록에서 빼지
71
+ * 않는 것이 기본이다**: 그 서비스가 있다는 사실과 지금은 못 간다는 사실을 함께 알리는 것이 런처의
72
+ * 일이다. 출시 전인 서비스는 카탈로그가 `출시예정` 태그와 함께 막아 두므로 앱이 할 일이 없다.
73
+ *
74
+ * **이 컴포넌트는 패널만 그린다.** 런처 버튼에 붙여 띄우는 것은 `SGnb` 의 `launcher` 가 맡으므로
75
+ * (`launcher.items` 에 이 목록을 넘긴다), 앱이 직접 팝오버를 조립할 일은 없다.
76
+ *
77
+ * 토큰은 `--cmp-gnb-launcher-listBox-*`(패널) · `--cmp-gnb-launcher-button-*`(줄).
78
+ * **줄 높이는 상수가 아니라 여백에서 나온다** — 토큰이 바뀌면 따라 바뀐다.
79
+ */
80
+ export declare const SLauncherListBox: import("react").ForwardRefExoticComponent<SLauncherListBoxProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { SLauncherListBox, type SLauncherListBoxProps, type SLauncherListBoxItem, } from './SLauncherListBox';
2
+ export { LAUNCHER_LIST_BOX_CONSOLE_HEIGHT, LAUNCHER_LIST_BOX_CONSOLE_ICON, LAUNCHER_LIST_BOX_CONSOLE_LABEL, LAUNCHER_LIST_BOX_LAYOUT, LAUNCHER_LIST_BOX_LOGO_HEIGHT, LAUNCHER_LIST_BOX_TRAILING_ICON, LAUNCHER_LIST_BOX_WIDTH, LAUNCHER_SERVICES, LAUNCHER_SERVICE_CATALOG, type SLauncherService, type SLauncherServiceEntry, } from './launcherListBox.config';
@@ -0,0 +1,154 @@
1
+ import type { SIconName } from '../SIcon';
2
+ import type { SLogoName } from '../SLogo/logo.config';
3
+ import type { STagColor } from '../STag';
4
+ /**
5
+ * 패널 고정 폭(px, 시안 — 전용 토큰 없음).
6
+ * 담기는 것은 서비스 로고 한 줄이라 내용 폭을 따르면 로고 길이에 따라 패널이 출렁인다.
7
+ */
8
+ export declare const LAUNCHER_LIST_BOX_WIDTH = 320;
9
+ /**
10
+ * 로고 글리프 높이(px, 시안 — 전용 토큰 없음).
11
+ * 로고 줄 높이(20px = 위아래 여백 4 + 이 값)에서 여백을 뺀 나머지이고, 그 20px 이 태그(STag xs)
12
+ * 높이와 같아 로고와 태그가 한 줄에 나란히 선다.
13
+ */
14
+ export declare const LAUNCHER_LIST_BOX_LOGO_HEIGHT = 12;
15
+ /**
16
+ * 하단 "셀메이트 콘솔로 이동" 줄의 높이(px, 시안 — 전용 토큰 없음).
17
+ * 글자 한 줄(20)을 가운데 둔 띠라 여백이 아니라 높이로 정한다.
18
+ */
19
+ export declare const LAUNCHER_LIST_BOX_CONSOLE_HEIGHT = 40;
20
+ /**
21
+ * 하단 콘솔 줄의 문구. **앱이 바꾸지 않는다** — 모든 서비스의 런처가 같은 곳(통합 콘솔)으로
22
+ * 같은 말로 안내해야 하기 때문이다.
23
+ */
24
+ export declare const LAUNCHER_LIST_BOX_CONSOLE_LABEL = "\uC140\uBA54\uC774\uD2B8 \uCF58\uC194\uB85C \uC774\uB3D9";
25
+ /**
26
+ * 콘솔 링크 앞 아이콘(시안의 글리프와 같다). 뒤의 chevron 은 `STextLink` 의 `rightArrow` 가 그린다.
27
+ */
28
+ export declare const LAUNCHER_LIST_BOX_CONSOLE_ICON: SIconName;
29
+ /**
30
+ * hover 때 줄 오른쪽 끝에 나타나는 아이콘 — "여기서 다른 서비스로 옮겨 간다"는 표시.
31
+ * 크기·색은 토큰이 정하지만 **어떤 글리프인지는 토큰에 없어** 뜻이 가장 가까운 것을 골랐다.
32
+ * TODO(디자인): 시안의 글리프를 확인해 확정한다.
33
+ */
34
+ export declare const LAUNCHER_LIST_BOX_TRAILING_ICON: SIconName;
35
+ /**
36
+ * 런처에 설 수 있는 서비스 키 — **`SLogo` 가 로고를 가진 서비스 전부다(통합 콘솔 제외).**
37
+ *
38
+ * 문서에서 바로 읽히도록 키를 풀어 쓴다(`Exclude<SLogoName, …>` 로 두면 README·Storybook 에 무엇이
39
+ * 있는지 보이지 않는다). 대신 아래 `LOGO_COVERAGE` 가 로고 목록과 어긋나지 않는지 타입으로 지킨다.
40
+ */
41
+ export type SLauncherService = 'sellmate' | 'wms' | 'chat' | 'chatbot' | 'plm' | 'account' | 'people' | 'crm' | 'work' | 'pos';
42
+ /**
43
+ * 런처에 설 수 있는 서비스 — **목록의 순서이기도 하다**(로고 순서와 같다).
44
+ * 앱이 넘긴 순서가 아니라 이 순서로 선다: 같은 런처가 앱마다 다른 순서로 뜨면 사용자가 매번 다시 찾는다.
45
+ */
46
+ export declare const LAUNCHER_SERVICES: readonly ["sellmate", "wms", "chat", "chatbot", "plm", "account", "people", "crm", "work", "pos"];
47
+ /**
48
+ * 서비스가 아닌 로고 — 런처의 서비스 줄로 세우지 않는다.
49
+ * `console` 은 통합 콘솔이라 목록 아래 "셀메이트 콘솔로 이동" 링크가 늘 맡는다. 줄로도 세우면 같은 곳이 두 번 선다.
50
+ */
51
+ type NonServiceLogo = 'console';
52
+ /**
53
+ * 로고 ↔ 서비스 키 대조. **로고를 더했는데 위 키에 적지 않았거나, 로고가 없는 키를 적으면 이 줄이
54
+ * 타입 에러가 된다** — "로고가 있는 서비스는 모두 런처에 설 수 있다"를 손으로 기억하지 않게 한다.
55
+ * (키를 더하면 `LAUNCHER_SERVICES` 와 아래 카탈로그도 함께 채워야 한다 — 카탈로그는 Record 라 타입이 막는다.)
56
+ */
57
+ type Uncovered = Exclude<SLogoName, SLauncherService | NonServiceLogo> | Exclude<SLauncherService, SLogoName> | Exclude<SLauncherService, (typeof LAUNCHER_SERVICES)[number]>;
58
+ export declare const LOGO_COVERAGE: [Uncovered] extends [never] ? true : Uncovered;
59
+ /**
60
+ * 카탈로그 한 줄 — 그 서비스가 런처에서 갖는 고정된 모습.
61
+ * 로고는 여기 적지 않는다 — 서비스 키를 그대로 `SLogo` 의 `name` 으로 넘겨 그 서비스 로고를 그린다.
62
+ */
63
+ export interface SLauncherServiceEntry {
64
+ /** 로고 아래 줄에 적히는 서비스 이름 */
65
+ name: string;
66
+ /**
67
+ * 상태 태그(`출시예정`·`NEW` 등). **앱이 붙이거나 지울 수 없다** — 같은 서비스가 앱마다
68
+ * 다른 문구를 달면 그 문구를 사용자가 믿을 수 없게 된다.
69
+ */
70
+ tag?: string;
71
+ /** 태그 색. 비우면 `'grey'` */
72
+ tagColor?: STagColor;
73
+ /** 태그 라벨 왼쪽 아이콘 */
74
+ tagIcon?: SIconName;
75
+ /** 아직 아무도 못 쓰는 서비스(출시 전). 계약 여부처럼 앱마다 갈리는 것은 여기 적지 않는다 */
76
+ disabled?: boolean;
77
+ }
78
+ /**
79
+ * 서비스 카탈로그 — **런처에 서는 각 서비스의 모습은 여기가 정한다.**
80
+ *
81
+ * 앱은 서비스 키와 갈 주소만 넘긴다. 표기·이름·태그를 앱이 넘기게 하면 같은 서비스가 앱마다 다른
82
+ * 이름으로 서고(`셀메이트 어카운트` / `Account` / `어카운트`), 한쪽을 고쳐도 나머지는 그대로 남는다.
83
+ *
84
+ * **주소는 여기 없다.** 앱마다 QA·실서버 주소가 다르므로 갈 곳은 앱이 `href` 로 넘긴다.
85
+ *
86
+ * 서비스가 늘거나 이름·상태가 바뀌면 이 표를 고치고 릴리스한다 — 소비 앱은 고칠 것이 없다.
87
+ */
88
+ export declare const LAUNCHER_SERVICE_CATALOG: Record<SLauncherService, SLauncherServiceEntry>;
89
+ /** 치수·색 — 전용 토큰이 없는 자리만 위 상수를 쓴다 */
90
+ export declare const LAUNCHER_LIST_BOX_LAYOUT: {
91
+ /** 패널 배경 */
92
+ readonly bg: string;
93
+ /** 패널 라운드 */
94
+ readonly radius: string;
95
+ /** 패널 상하좌우 여백 */
96
+ readonly padding: string;
97
+ /**
98
+ * 패널 그림자.
99
+ * 토큰(`component.gnb.launcher.listBox.shadow` = `{shadow.floating}`)은 값이 배열이라
100
+ * `--cmp-*` 로 나오지 않는다 — 생성기가 스칼라만 내보내기 때문이다. 그래서 그 별칭이
101
+ * 가리키는 스케일 토큰을 직접 쓴다(같은 값이다).
102
+ */
103
+ readonly shadow: "var(--shadow-floating)";
104
+ /** 줄 왼쪽 여백 */
105
+ readonly itemPaddingLeft: string;
106
+ /** 줄 오른쪽 여백 — 왼쪽보다 좁다(오른쪽 끝은 hover 아이콘 자리다) */
107
+ readonly itemPaddingRight: string;
108
+ /** 줄 상하 여백 */
109
+ readonly itemPaddingY: string;
110
+ /** 줄 안의 [로고·이름 묶음] ↔ [hover 아이콘] 간격 */
111
+ readonly itemGap: string;
112
+ /** 줄 라운드 */
113
+ readonly itemRadius: string;
114
+ /** 줄 배경 */
115
+ readonly itemBg: string;
116
+ /** 줄 hover 배경 */
117
+ readonly itemBgHover: string;
118
+ /** 서비스 이름 글자색 */
119
+ readonly nameColor: string;
120
+ /** 서비스 이름 hover 글자색 */
121
+ readonly nameColorHover: string;
122
+ /** 로고 줄의 위아래 여백 */
123
+ readonly logoPaddingY: string;
124
+ /** 서비스 로고 ↔ 태그 간격 */
125
+ readonly logoTagGap: string;
126
+ /** hover 아이콘 크기 */
127
+ readonly trailingIconSize: string;
128
+ /** hover 아이콘 색 */
129
+ readonly trailingIconColor: string;
130
+ /**
131
+ * 아직 못 쓰는 서비스의 이름 글자색.
132
+ * 런처 한 벌에 비활성 색이 없어(시안에 disabled 상태 토큰이 없다) 시맨틱 토큰을 쓴다.
133
+ */
134
+ readonly nameDisabledColor: string;
135
+ /**
136
+ * 아직 못 쓰는 서비스의 로고 색 — 워드마크와 서비스 표기를 함께 이 한 색으로 덮는다.
137
+ * 필터(회색화)를 태우지 않는다 — 태우면 밝은 서비스 색이 워드마크보다 더 옅어져 둘이
138
+ * 따로 논다. 로고는 글자가 아니라 그림에
139
+ * 가까우므로 글자색(disabled-text)이 아니라 아이콘 비활성색을 쓴다.
140
+ */
141
+ readonly logoDisabledColor: string;
142
+ /** 목록 ↔ 콘솔 줄 구분선 */
143
+ readonly consoleDivider: string;
144
+ /** 콘솔 줄 배경 */
145
+ readonly consoleBg: string;
146
+ /**
147
+ * 콘솔 링크 글자색. STextLink 기본(`--cmp-textLink-content-default`)보다 한 단계 옅다(시안).
148
+ * 크기·간격·hover(밑줄)는 STextLink `sm` 이 정한다.
149
+ */
150
+ readonly consoleColor: string;
151
+ /** 콘솔 링크 앞 아이콘 색. STextLink 기본(파랑)이 아니라 회색이다(시안) */
152
+ readonly consoleIconColor: string;
153
+ };
154
+ export {};
@@ -10,7 +10,7 @@
10
10
  |------|------|---------|-------------|
11
11
  | `type?` | `SLayoutType` | `'box'` | 메뉴 스타일: box(라운드) / belt(풀폭 행). 자식 SGnb 가 이 값을 따른다. |
12
12
  | `header?` | `SLayoutHeader` | `'fix'` | 레이아웃 구조: fix(가로 분할) / full(풀폭 상단바). 자식 SGnb·SPage 가 이 값을 따른다. |
13
- | `useRail?` | `boolean` | `false` | GNB 좌측 레일 사용 여부. 자식 SGnb 가 이 값을 따르고, 그만큼 넓어진 컬럼 폭을 되올린다. 레일에 children 없는 아이템이 있으면 SGnb 가 full 상단바를 요구하고, 이 레이아웃도 그에 맞춰 full 그리드로 선다. |
13
+ | `showRail?` | `boolean` | `false` | GNB 좌측 레일 사용 여부. 자식 SGnb 가 이 값을 따르고, 그만큼 넓어진 컬럼 폭을 되올린다. 레일에 children 없는 아이템이 있으면 SGnb 가 full 상단바를 요구하고, 이 레이아웃도 그에 맞춰 full 그리드로 선다. |
14
14
  | `folded?` | `boolean` | — | GNB 접힘 상태 (controlled) |
15
15
  | `defaultFolded?` | `boolean` | `false` | GNB 초기 접힘 상태 (uncontrolled) |
16
16
 
@@ -20,6 +20,22 @@
20
20
  |-------|------|-------------|
21
21
  | `onFoldedChange` | `(folded: boolean) => void` | 접힘 상태 변경 |
22
22
 
23
+ ## Types
24
+
25
+ ### SLayoutType
26
+
27
+ ```ts
28
+ /** 메뉴 스타일: box(라운드) / belt(풀폭 행) — 자식 SGnb 의 메뉴 모양 */
29
+ export type SLayoutType = SGnbType;
30
+ ```
31
+
32
+ ### SLayoutHeader
33
+
34
+ ```ts
35
+ /** 레이아웃 구조: fix(좌측 GNB + 페이지 가로 분할) / full(풀폭 상단바 + 아래에 메뉴|페이지) */
36
+ export type SLayoutHeader = SGnbHeader;
37
+ ```
38
+
23
39
  ## Dependencies
24
40
 
25
41
  ### Used by
@@ -27,10 +43,15 @@
27
43
  - [SGnb](../SGnb)
28
44
  - [SPage](../SPage)
29
45
 
46
+ ### Depends on
47
+
48
+ - [SPage](../SPage)
49
+
30
50
  ### Graph
31
51
 
32
52
  ```mermaid
33
53
  graph TD;
54
+ SLayout --> SPage
34
55
  SGnb --> SLayout
35
56
  SPage --> SLayout
36
57
  style SLayout fill:#f9f,stroke:#333,stroke-width:4px
@@ -42,7 +42,7 @@ export interface SLayoutContextValue {
42
42
  */
43
43
  header: SLayoutHeader;
44
44
  /** GNB 좌측 레일 사용 여부 — 자식 SGnb 가 따른다 */
45
- useRail: boolean;
45
+ showRail: boolean;
46
46
  /** GNB 접힘 상태 */
47
47
  folded: boolean;
48
48
  /** 접힘 상태 변경 */
@@ -81,7 +81,7 @@ export interface SLayoutProps extends HTMLAttributes<HTMLDivElement> {
81
81
  * GNB 좌측 레일 사용 여부. 자식 SGnb 가 이 값을 따르고, 그만큼 넓어진 컬럼 폭을 되올린다.
82
82
  * 레일에 children 없는 아이템이 있으면 SGnb 가 full 상단바를 요구하고, 이 레이아웃도 그에 맞춰 full 그리드로 선다.
83
83
  */
84
- useRail?: boolean;
84
+ showRail?: boolean;
85
85
  /** GNB 접힘 상태 (controlled) */
86
86
  folded?: boolean;
87
87
  /** GNB 초기 접힘 상태 (uncontrolled) */
@@ -106,5 +106,9 @@ export interface SLayoutProps extends HTMLAttributes<HTMLDivElement> {
106
106
  * "header header" ← 전폭 상단바 (1행, 높이 = 등록된 topHeight)
107
107
  * "nav page" ← 메뉴 열(등록된 columnWidth) | 페이지
108
108
  * 접으면 nav 열을 0 으로 접어 페이지가 전폭을 쓴다.
109
+ *
110
+ * 자식 순서는 `SGnb` → (선택) `SPageHeader` → `SPage` 다. `SPageHeader` 를 두면 **그 자식부터 뒤가**
111
+ * 하나의 페이지 열로 묶여(page-column.tsx) 헤더가 페이지 위에 고정되고, 그 아래에서만 스크롤이 일어난다.
112
+ * 헤더를 두지 않으면 아무것도 감싸지 않는다 — `SPage` 가 예전처럼 프레임의 자식으로 남는다.
109
113
  */
110
114
  export declare const SLayout: import("react").ForwardRefExoticComponent<SLayoutProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- export { SLayout, SLayoutContext, SLAYOUT_MIN_WIDTH, useSLayout, type SLayoutProps, type SLayoutType, type SLayoutHeader, type SLayoutContextValue, } from './SLayout';
1
+ export { SLayout, SLayoutContext, SLAYOUT_MIN_WIDTH, useSLayout, type SLayoutProps, type SLayoutType, type SLayoutHeader, type SLayoutNavState, type SLayoutContextValue, } from './SLayout';
@@ -0,0 +1,131 @@
1
+ # SLineChart
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### SLineChart
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `categories` | `string[]` | — | 가로축에 놓일 항목 이름 |
12
+ | `series` | `SLineChartSeries[]` | — | 계열 목록. 각 `data` 는 `categories` 와 같은 순서다 |
13
+ | `title?` | `string` | — | 차트 제목 — 왼쪽 위에 놓인다 |
14
+ | `unit?` | `string` | — | 단위 — 오른쪽 위에 "단위 : " 를 붙여 놓는다 |
15
+ | `curve?` | `SLineChartCurve` | `'linear'` | 점을 잇는 방식. `smooth` 는 값을 넘어가 부풀지 않는 곡선이다 |
16
+ | `lineStyle?` | `SLineChartLineStyle` | `'solid'` | 선 모양. `dashed` 는 차트의 모든 선을 점선으로 그린다 |
17
+ | `area?` | `boolean` | `false` | 선 아래를 계열 색으로 채운다. 크기의 변화를 함께 보여줄 때 쓴다 |
18
+ | `stacked?` | `boolean` | `false` | 계열을 겹쳐 그리는 대신 **아래 계열 위에 쌓는다**. 전체의 크기와 그 안의 구성을 함께 볼 때 쓴다 — 맨 위 선이 곧 합계다. 툴팁은 쌓기 전 각 계열의 값을 보여준다 |
19
+ | `palette?` | `SLineChartPalette` | `'default'` | 색 팔레트. `custom` 일 때만 `colors` 를 본다 |
20
+ | `colors?` | `SLineChartColor[]` | — | `palette='custom'` 에서 쓸 색 이름을 계열 순서대로. 계열보다 짧으면 앞에서부터 순환한다 |
21
+ | `max?` | `number` | — | 값 축의 최댓값. 주지 않으면 데이터에서 읽기 좋은 값으로 정한다 |
22
+ | `tickCount?` | `number` | `8` | 값 축 눈금 개수 |
23
+ | `showPoint?` | `boolean` | `true` | 데이터 지점마다 점을 찍는다. 꺼도 짚은 항목의 점은 뜬다 |
24
+ | `showValueLabel?` | `boolean` | `false` | 점마다 값을 적는다. 기본은 끔 — 선 그래프는 항목이 많은 데이터에 쓰는 일이 잦아 숫자가 서로 붙는다. 항목이 대여섯 개 안쪽일 때만 켠다 |
25
+ | `showLegend?` | `boolean` | `true` | 범례를 보인다 |
26
+ | `legendPosition?` | `SLineChartLegendPosition` | `'top'` | 범례 위치 |
27
+ | `showTooltip?` | `boolean` | `true` | 항목에 마우스를 올리면 값 상자를 띄운다 |
28
+ | `formatValue?` | `(value: number) => string` | `defaultFormat` | 값 표시 형식 |
29
+ | `height?` | `number \| string` | — | 차트 높이. **아래 축 텍스트까지 포함한 값**이다 — 그림은 그만큼 줄어든다 |
30
+ | `tooltipFooter?` | `(category: SLineChartTooltipCategory) => ReactNode` | — | 툴팁의 값 아래에 덧붙일 내용. 짚은 항목을 받아 그린다 — 계열 값만으로 모자란 맥락 (합계, 전월 대비 등)을 적는다. 툴팁은 누를 수 없으므로 버튼·링크는 넣지 않는다 |
31
+ | `className?` | `string` | — | |
32
+ | `style?` | `CSSProperties` | — | |
33
+
34
+ #### Events
35
+
36
+ | Event | Type | Description |
37
+ |-------|------|-------------|
38
+ | `onPointClick` | `(point: SLineChartPoint) => void` | 점을 눌렀을 때 |
39
+
40
+ ## Types
41
+
42
+ ### SLineChartSeries
43
+
44
+ ```ts
45
+ /** 한 계열 — 선 하나, 범례 한 줄에 대응한다. */
46
+ export interface SLineChartSeries {
47
+ /** 범례·툴팁에 표시할 이름 */
48
+ name: string;
49
+ /** `categories` 와 같은 순서의 값. 빠진 자리(`null`·짧은 배열)에서는 선이 끊긴다 */
50
+ data: (number | null)[];
51
+ }
52
+ ```
53
+
54
+ ### SLineChartCurve
55
+
56
+ ```ts
57
+ /** 점과 점을 잇는 방식. */
58
+ export type SLineChartCurve = 'linear' | 'smooth';
59
+ ```
60
+
61
+ ### SLineChartLineStyle
62
+
63
+ ```ts
64
+ /** 선 모양. `dashed` 는 차트의 모든 선에 적용된다 — 일부 계열만 점선으로 구분하려면 쓰지 않는다 */
65
+ export type SLineChartLineStyle = 'solid' | 'dashed';
66
+ ```
67
+
68
+ ### SLineChartPalette
69
+
70
+ ```ts
71
+ /**
72
+ * 색 팔레트.
73
+ * - `default` 파랑 한 색. 계열이 하나거나 색으로 나눌 것이 없을 때
74
+ * - `multi` 서로 무관한 항목(11색)을 순서대로
75
+ * - `gradation` 한 지표의 단계(6색)를 진한 쪽부터 순서대로
76
+ * - `custom` `colors` 로 고른 색을 순서대로
77
+ */
78
+ export type SLineChartPalette = 'default' | 'multi' | 'gradation' | 'custom';
79
+ ```
80
+
81
+ ### SLineChartColor
82
+
83
+ ```ts
84
+ /**
85
+ * `palette='custom'` 에서 고를 수 있는 색 이름.
86
+ * positive=늘어남 · negative=줄어듦 · neutral=변화 없음 을 뜻하므로 뜻에 맞게 고른다.
87
+ */
88
+ export type SLineChartColor =
89
+ | 'positivePrimary'
90
+ | 'positiveSecondary'
91
+ | 'negativePrimary'
92
+ | 'negativeSecondary'
93
+ | 'neutralPrimary'
94
+ | 'neutralSecondary';
95
+ ```
96
+
97
+ ### SLineChartLegendPosition
98
+
99
+ ```ts
100
+ /** 범례 위치. */
101
+ export type SLineChartLegendPosition = 'top' | 'bottom';
102
+ ```
103
+
104
+ ### SLineChartPoint
105
+
106
+ ```ts
107
+ /** 툴팁·클릭이 가리키는 지점. */
108
+ export interface SLineChartPoint {
109
+ /** 계열 인덱스 */
110
+ seriesIndex: number;
111
+ /** 카테고리 인덱스 */
112
+ categoryIndex: number;
113
+ /** 그 지점의 값. 누적이어도 **그 계열이 제 몫으로 가진 값**이다 */
114
+ value: number;
115
+ }
116
+ ```
117
+
118
+ ### SLineChartTooltipCategory
119
+
120
+ ```ts
121
+ /** 툴팁 하단(`tooltipFooter`)이 받는 짚은 항목. */
122
+ export interface SLineChartTooltipCategory {
123
+ /** 카테고리 인덱스 */
124
+ categoryIndex: number;
125
+ /** 카테고리 이름 */
126
+ name: string;
127
+ /** 툴팁에 값이 뜬 지점들 — 값이 없는 계열은 빠진다. 누적이어도 각 계열이 제 몫으로 가진 값이다 */
128
+ points: SLineChartPoint[];
129
+ }
130
+ ```
131
+