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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/AGENTS.md +3974 -267
  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 +55 -0
  206. package/dist/components/SSkeleton/SSkeleton.d.ts +39 -0
  207. package/dist/components/SSkeleton/index.d.ts +2 -0
  208. package/dist/components/SSkeleton/skeleton.config.d.ts +22 -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/SToast/README.md +25 -1
  238. package/dist/components/SToast/SToast.d.ts +2 -2
  239. package/dist/components/SToggle/README.md +8 -0
  240. package/dist/components/SToggle/index.d.ts +1 -1
  241. package/dist/components/STooltip/README.md +27 -1
  242. package/dist/components/STooltip/STooltip.d.ts +1 -1
  243. package/dist/components/STree/README.md +42 -4
  244. package/dist/components/STree/STree.d.ts +18 -6
  245. package/dist/components/STree/STree.examples.d.ts +2 -0
  246. package/dist/docs/Gallery.d.ts +9 -0
  247. package/dist/docs/RecipeGallery.d.ts +13 -0
  248. package/dist/docs/gallery-previews.d.ts +24 -0
  249. package/dist/fonts/LICENSE.txt +94 -0
  250. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.0.woff2 +0 -0
  251. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.1.woff2 +0 -0
  252. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.10.woff2 +0 -0
  253. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.11.woff2 +0 -0
  254. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.12.woff2 +0 -0
  255. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.13.woff2 +0 -0
  256. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.14.woff2 +0 -0
  257. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.15.woff2 +0 -0
  258. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.16.woff2 +0 -0
  259. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.17.woff2 +0 -0
  260. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.18.woff2 +0 -0
  261. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.19.woff2 +0 -0
  262. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.2.woff2 +0 -0
  263. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.20.woff2 +0 -0
  264. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.21.woff2 +0 -0
  265. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.22.woff2 +0 -0
  266. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.23.woff2 +0 -0
  267. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.24.woff2 +0 -0
  268. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.25.woff2 +0 -0
  269. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.26.woff2 +0 -0
  270. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.27.woff2 +0 -0
  271. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.28.woff2 +0 -0
  272. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.29.woff2 +0 -0
  273. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.3.woff2 +0 -0
  274. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.30.woff2 +0 -0
  275. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.31.woff2 +0 -0
  276. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.32.woff2 +0 -0
  277. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.33.woff2 +0 -0
  278. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.34.woff2 +0 -0
  279. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.35.woff2 +0 -0
  280. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.36.woff2 +0 -0
  281. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.37.woff2 +0 -0
  282. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.38.woff2 +0 -0
  283. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.39.woff2 +0 -0
  284. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.4.woff2 +0 -0
  285. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.40.woff2 +0 -0
  286. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.41.woff2 +0 -0
  287. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.42.woff2 +0 -0
  288. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.43.woff2 +0 -0
  289. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.44.woff2 +0 -0
  290. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.45.woff2 +0 -0
  291. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.46.woff2 +0 -0
  292. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.47.woff2 +0 -0
  293. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.48.woff2 +0 -0
  294. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.49.woff2 +0 -0
  295. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.5.woff2 +0 -0
  296. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.50.woff2 +0 -0
  297. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.51.woff2 +0 -0
  298. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.52.woff2 +0 -0
  299. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.53.woff2 +0 -0
  300. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.54.woff2 +0 -0
  301. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.55.woff2 +0 -0
  302. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.56.woff2 +0 -0
  303. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.57.woff2 +0 -0
  304. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.58.woff2 +0 -0
  305. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.59.woff2 +0 -0
  306. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.6.woff2 +0 -0
  307. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.60.woff2 +0 -0
  308. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.61.woff2 +0 -0
  309. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.62.woff2 +0 -0
  310. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.63.woff2 +0 -0
  311. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.64.woff2 +0 -0
  312. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.65.woff2 +0 -0
  313. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.66.woff2 +0 -0
  314. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.67.woff2 +0 -0
  315. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.68.woff2 +0 -0
  316. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.69.woff2 +0 -0
  317. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.7.woff2 +0 -0
  318. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.70.woff2 +0 -0
  319. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.71.woff2 +0 -0
  320. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.72.woff2 +0 -0
  321. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.73.woff2 +0 -0
  322. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.74.woff2 +0 -0
  323. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.75.woff2 +0 -0
  324. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.76.woff2 +0 -0
  325. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.77.woff2 +0 -0
  326. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.78.woff2 +0 -0
  327. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.79.woff2 +0 -0
  328. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.8.woff2 +0 -0
  329. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.80.woff2 +0 -0
  330. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.81.woff2 +0 -0
  331. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.82.woff2 +0 -0
  332. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.83.woff2 +0 -0
  333. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.84.woff2 +0 -0
  334. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.85.woff2 +0 -0
  335. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.86.woff2 +0 -0
  336. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.87.woff2 +0 -0
  337. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.88.woff2 +0 -0
  338. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.89.woff2 +0 -0
  339. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.9.woff2 +0 -0
  340. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.90.woff2 +0 -0
  341. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.91.woff2 +0 -0
  342. package/dist/index.cjs +21789 -10666
  343. package/dist/index.cjs.map +1 -1
  344. package/dist/index.d.ts +23 -0
  345. package/dist/index.js +21704 -10665
  346. package/dist/index.js.map +1 -1
  347. package/dist/lib/chart/cartesian.d.ts +56 -0
  348. package/dist/lib/chart/frame.d.ts +21 -0
  349. package/dist/lib/chart/hover-dim.d.ts +19 -0
  350. package/dist/lib/chart/legend.d.ts +21 -0
  351. package/dist/lib/chart/palette.d.ts +28 -0
  352. package/dist/lib/chart/radial.d.ts +99 -0
  353. package/dist/lib/chart/scale.d.ts +26 -0
  354. package/dist/lib/chart/tooltip.d.ts +60 -0
  355. package/dist/lib/chart/types.d.ts +29 -0
  356. package/dist/lib/chart/use-element-size.d.ts +39 -0
  357. package/dist/lib/date.d.ts +2 -1
  358. package/dist/lib/depth-filter.d.ts +27 -0
  359. package/dist/lib/doc-sections.d.ts +35 -0
  360. package/dist/lib/dropdown-menu.d.ts +19 -0
  361. package/dist/lib/field-width.d.ts +31 -0
  362. package/dist/lib/floating-height.d.ts +15 -0
  363. package/dist/lib/global-overlay.d.ts +5 -0
  364. package/dist/lib/hover-preview.d.ts +32 -0
  365. package/dist/lib/inert.d.ts +11 -0
  366. package/dist/lib/overlay-scrollbar.d.ts +32 -0
  367. package/dist/lib/row-metrics.d.ts +61 -0
  368. package/dist/lib/story-docs.d.ts +19 -3
  369. package/dist/llms-full.txt +9674 -2059
  370. package/dist/llms.txt +4062 -326
  371. package/dist/playground/categories.d.ts +19 -0
  372. package/dist/pretendard.css +937 -0
  373. package/dist/recipes/AppShell.d.ts +21 -0
  374. package/dist/recipes/CategoryManagePage.d.ts +1 -0
  375. package/dist/recipes/ConsultConsolePage.d.ts +1 -0
  376. package/dist/recipes/ExcelFilePopupPage.d.ts +5 -0
  377. package/dist/recipes/LoginPage.d.ts +6 -0
  378. package/dist/recipes/ProductBulkUploadPage.d.ts +1 -0
  379. package/dist/recipes/ProductCreatePage.d.ts +1 -0
  380. package/dist/recipes/ProductCreateSectionsPage.d.ts +5 -0
  381. package/dist/recipes/ProductDetailInlineEditPage.d.ts +9 -0
  382. package/dist/recipes/ProductDetailPage.d.ts +1 -0
  383. package/dist/recipes/ProductListChipFilterPage.d.ts +1 -0
  384. package/dist/recipes/ProductListPage.d.ts +1 -0
  385. package/dist/recipes/ProductOverlayPage.d.ts +1 -0
  386. package/dist/recipes/SalesDashboardPage.d.ts +1 -0
  387. package/dist/recipes/SettingsPage.d.ts +1 -0
  388. package/dist/recipes/StoreSetupPage.d.ts +1 -0
  389. package/dist/recipes/TransferOrderPopupPage.d.ts +2 -0
  390. package/dist/recipes/api.d.ts +220 -0
  391. package/dist/recipes/recipe-story.d.ts +33 -0
  392. package/dist/recipes/router.d.ts +9 -0
  393. package/dist/styles.css +3541 -262
  394. package/dist/theme.css +598 -28
  395. package/eslint/index.mjs +44 -35
  396. package/eslint/lib/class-names.mjs +23 -25
  397. package/eslint/lib/table-column.mjs +34 -8
  398. package/eslint/rules/component-group-gap.mjs +32 -30
  399. package/eslint/rules/divider-vertical-height.mjs +137 -0
  400. package/eslint/rules/field-width-grade.mjs +69 -52
  401. package/eslint/rules/no-arbitrary-class.mjs +63 -20
  402. package/eslint/rules/no-off-scale-spacing.mjs +61 -41
  403. package/eslint/rules/no-raw-html-control.mjs +38 -36
  404. package/eslint/rules/prefer-typo-preset.mjs +23 -17
  405. package/eslint/rules/require-locale-number.mjs +14 -19
  406. package/eslint/rules/table-column-width.mjs +114 -0
  407. package/eslint/rules/table-numeric-align.mjs +14 -14
  408. package/eslint/scale.gen.mjs +6 -3
  409. package/package.json +19 -5
@@ -1,27 +1,30 @@
1
1
  import { type ReactNode, type CSSProperties } from 'react';
2
- import { type SButtonColor, type SButtonSize } from '../SButton';
2
+ import { type SFooterButton } from '../SFooter';
3
3
  export type SPopupType = 'default' | 'light';
4
- export interface SPopupSubmitButton {
5
- label?: string;
6
- color?: SButtonColor;
7
- outline?: boolean;
8
- size?: SButtonSize;
9
- }
4
+ export type SPopupBodyPadding = 'default' | 'none';
5
+ /**
6
+ * 확인 버튼 설정 — `SButton` 의 prop 을 그대로 받되 `onClick` 만 뺀다.
7
+ * 클릭은 `onSubmit` 이 전담하므로, 여기로도 받으면 조용히 덮어써지는 prop 이 생긴다.
8
+ */
9
+ export type SPopupSubmitButton = Omit<SFooterButton, 'onClick'>;
10
10
  export interface SPopupProps {
11
11
  /** 헤더 제목 */
12
12
  popupTitle?: string;
13
13
  /** 타입 (헤더 색상) */
14
14
  type?: SPopupType;
15
15
  /** 하단 footer 표시 여부 */
16
- useFooter?: boolean;
16
+ showFooter?: boolean;
17
17
  /** 확인 버튼 설정 */
18
18
  submitButton?: SPopupSubmitButton;
19
19
  /** 확인 버튼 클릭 (sdSubmit) */
20
20
  onSubmit?: () => void;
21
21
  /** footer 좌측 영역 */
22
22
  footerLeft?: ReactNode;
23
- /** 본문 기본 패딩을 없앱니다. 표를 가장자리까지 채우는 등 본문이 직접 여백을 다룰 때만 사용합니다. */
24
- noPadding?: boolean;
23
+ /**
24
+ * 본문 안쪽 여백. 기본은 `default` — 표를 가장자리까지 채우는 등 본문이 여백을 직접
25
+ * 다룰 때만 `none`. (`SList` 의 `padding` 과 같은 이름이지만 기본값이 반대다 — 각 면의 성격이 다르다)
26
+ */
27
+ padding?: SPopupBodyPadding;
25
28
  /** 본문 */
26
29
  children?: ReactNode;
27
30
  className?: string;
@@ -1 +1 @@
1
- export { SPopup, type SPopupProps, type SPopupType, type SPopupSubmitButton } from './SPopup';
1
+ export { SPopup, type SPopupBodyPadding, type SPopupProps, type SPopupType, type SPopupSubmitButton, } from './SPopup';
@@ -34,18 +34,38 @@
34
34
  | `onCloseAutoFocus` | `(event: Event) => void` | 닫힐 때 포커스 복귀 처리 (기본은 Radix가 앵커로 포커스를 되돌림). e.preventDefault()로 막을 수 있다. |
35
35
  | `onPointerDownOutside` | `(event: Event) => void` | 바깥 영역 pointerdown 으로 닫힘이 시작될 때 (앵커 위 클릭·persistent 는 제외). |
36
36
 
37
+ ## Types
38
+
39
+ ### SPortalPlacement
40
+
41
+ ```ts
42
+ export type SPortalPlacement = 'top' | 'bottom' | 'left' | 'right';
43
+ ```
44
+
45
+ ### SPortalAlign
46
+
47
+ ```ts
48
+ export type SPortalAlign = 'start' | 'center' | 'end';
49
+ ```
50
+
37
51
  ## Dependencies
38
52
 
39
53
  ### Used by
40
54
 
55
+ - [SAccountListBox](../SAccountListBox)
41
56
  - [SChipInput](../SChipInput)
57
+ - [SGnb](../SGnb)
58
+ - [SGnbSystem](../SGnbSystem)
42
59
  - [SSelect](../SSelect)
43
60
 
44
61
  ### Graph
45
62
 
46
63
  ```mermaid
47
64
  graph TD;
65
+ SAccountListBox --> SPortal
48
66
  SChipInput --> SPortal
67
+ SGnb --> SPortal
68
+ SGnbSystem --> SPortal
49
69
  SSelect --> SPortal
50
70
  style SPortal fill:#f9f,stroke:#333,stroke-width:4px
51
71
  ```
@@ -42,6 +42,26 @@
42
42
  |-------|------|-------------|
43
43
  | `onValueChange` | `(val: SRadioValue) => void` | 선택 변경 (sdUpdate) — 선택된 val 전달 |
44
44
 
45
+ ## Types
46
+
47
+ ### SRadioOption
48
+
49
+ ```ts
50
+ export interface SRadioOption {
51
+ /** 옵션 값 (sd-radio-group SRadioOption.value) */
52
+ value: SRadioValue;
53
+ label: string;
54
+ disabled?: boolean;
55
+ }
56
+ ```
57
+
58
+ ### SRadioValue
59
+
60
+ ```ts
61
+ /** 라디오 값 타입 (sd-radio SRadioValue) */
62
+ export type SRadioValue = string | number | boolean;
63
+ ```
64
+
45
65
  ## Dependencies
46
66
 
47
67
  ### Used by
@@ -13,6 +13,7 @@
13
13
  | `size?` | `SRadioButtonSize` | `'sm'` | 크기 |
14
14
  | `disabled?` | `boolean` | `false` | 전체 비활성 |
15
15
  | `name?` | `string` | — | input name 속성 |
16
+ | `showTooltip?` | `boolean` | `false` | 옵션 호버 시 툴팁 노출. 문구는 옵션별 `tooltip` 으로 주며, 문구가 없는 옵션은 툴팁을 띄우지 않는다. 툴팁 타입은 `accent` 고정이다. |
16
17
  | `className?` | `string` | — | |
17
18
  | `style?` | `CSSProperties` | — | |
18
19
 
@@ -22,16 +23,41 @@
22
23
  |-------|------|-------------|
23
24
  | `onValueChange` | `(value: string \| number) => void` | 변경 (sdUpdate) |
24
25
 
26
+ ## Types
27
+
28
+ ### SRadioButtonOption
29
+
30
+ ```ts
31
+ export interface SRadioButtonOption {
32
+ value: string | number;
33
+ label: string;
34
+ disabled?: boolean;
35
+ /** 호버 시 툴팁 문구. `showTooltip` 이 켜져 있을 때만 노출된다 */
36
+ tooltip?: string;
37
+ }
38
+ ```
39
+
40
+ ### SRadioButtonSize
41
+
42
+ ```ts
43
+ export type SRadioButtonSize = 'xs' | 'sm' | 'md';
44
+ ```
45
+
25
46
  ## Dependencies
26
47
 
27
48
  ### Used by
28
49
 
29
50
  - [SChipFilter](../SChipFilter)
30
51
 
52
+ ### Depends on
53
+
54
+ - [STooltip](../STooltip)
55
+
31
56
  ### Graph
32
57
 
33
58
  ```mermaid
34
59
  graph TD;
60
+ SRadioButton --> STooltip
35
61
  SChipFilter --> SRadioButton
36
62
  style SRadioButton fill:#f9f,stroke:#333,stroke-width:4px
37
63
  ```
@@ -1,9 +1,11 @@
1
1
  import { type CSSProperties } from 'react';
2
- export type SRadioButtonSize = 'xs' | 'sm';
2
+ export type SRadioButtonSize = 'xs' | 'sm' | 'md';
3
3
  export interface SRadioButtonOption {
4
4
  value: string | number;
5
5
  label: string;
6
6
  disabled?: boolean;
7
+ /** 호버 시 툴팁 문구. `showTooltip` 이 켜져 있을 때만 노출된다 */
8
+ tooltip?: string;
7
9
  }
8
10
  export interface SRadioButtonProps {
9
11
  /** 옵션 목록 */
@@ -16,6 +18,11 @@ export interface SRadioButtonProps {
16
18
  disabled?: boolean;
17
19
  /** input name 속성 */
18
20
  name?: string;
21
+ /**
22
+ * 옵션 호버 시 툴팁 노출. 문구는 옵션별 `tooltip` 으로 주며, 문구가 없는 옵션은 툴팁을 띄우지 않는다.
23
+ * 툴팁 타입은 `accent` 고정이다.
24
+ */
25
+ showTooltip?: boolean;
19
26
  /** 변경 (sdUpdate) */
20
27
  onValueChange?: (value: string | number) => void;
21
28
  className?: string;
@@ -25,4 +32,4 @@ export interface SRadioButtonProps {
25
32
  * SRadioButton — sd-radio-button 포팅. 세그먼트형 라디오(버튼 그룹).
26
33
  * default(흰 배경/회색, hover 파란 채움) · select(흰 배경/파란 테두리·글자) · disabled.
27
34
  */
28
- export declare function SRadioButton({ options, value, size, disabled, name, onValueChange, className, style, }: SRadioButtonProps): import("react").JSX.Element;
35
+ export declare function SRadioButton({ options, value, size, disabled, name, showTooltip, onValueChange, className, style, }: SRadioButtonProps): import("react").JSX.Element;
@@ -0,0 +1,78 @@
1
+ # SRadioCard
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### SRadioCardGroup
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `options?` | `SRadioCardOption[]` | `[]` | 옵션 목록 |
12
+ | `value?` | `SRadioValue \| null` | — | 현재 선택 값 |
13
+ | `direction?` | `'vertical' \| 'horizontal'` | `'vertical'` | 배치 방향 |
14
+ | `disabled?` | `boolean` | `false` | 전체 비활성 |
15
+ | `groupName?` | `string` | — | 라디오 name 속성 (form-agnostic 그룹핑) |
16
+ | `className?` | `string` | — | |
17
+ | `style?` | `CSSProperties` | — | |
18
+
19
+ #### Events
20
+
21
+ | Event | Type | Description |
22
+ |-------|------|-------------|
23
+ | `onValueChange` | `(val: SRadioValue) => void` | 선택 변경 (sdUpdate) |
24
+
25
+ ### SRadioCard
26
+
27
+ #### Props
28
+
29
+ | Prop | Type | Default | Description |
30
+ |------|------|---------|-------------|
31
+ | `val` | `SRadioValue` | — | 이 카드의 값 |
32
+ | `value?` | `SRadioValue \| null` | — | 그룹의 현재 선택 값 |
33
+ | `label` | `string` | — | 라벨 (첫 줄) |
34
+ | `subtitle?` | `string` | — | 서브타이틀 (둘째 줄). 라벨 왼쪽 끝에 맞춰 들여쓴다 |
35
+ | `tag?` | `Omit<STagProps, 'size'>` | — | 라벨 오른쪽에 붙일 태그. `STag` 의 props 를 그대로 받되 크기는 `xs` 로 고정된다 |
36
+ | `disabled?` | `boolean` | `false` | 비활성 |
37
+ | `name?` | `string` | — | native radio name (form-agnostic 그룹핑) |
38
+ | `className?` | `string` | — | |
39
+ | `style?` | `CSSProperties` | — | |
40
+
41
+ #### Events
42
+
43
+ | Event | Type | Description |
44
+ |-------|------|-------------|
45
+ | `onValueChange` | `(val: SRadioValue) => void` | 선택 변경 (sdUpdate) — 선택된 val 전달 |
46
+
47
+ ## Types
48
+
49
+ ### SRadioCardOption
50
+
51
+ ```ts
52
+ export interface SRadioCardOption {
53
+ /** 옵션 값 */
54
+ value: SRadioValue;
55
+ /** 라벨 (첫 줄) */
56
+ label: string;
57
+ /** 서브타이틀 (둘째 줄) */
58
+ subtitle?: string;
59
+ /** 라벨 오른쪽에 붙일 태그 (`STag` props, 크기는 `xs` 고정) */
60
+ tag?: Omit<STagProps, 'size'>;
61
+ /** 이 옵션만 비활성 */
62
+ disabled?: boolean;
63
+ }
64
+ ```
65
+
66
+ ## Dependencies
67
+
68
+ ### Depends on
69
+
70
+ - [STag](../STag)
71
+
72
+ ### Graph
73
+
74
+ ```mermaid
75
+ graph TD;
76
+ SRadioCard --> STag
77
+ style SRadioCard fill:#f9f,stroke:#333,stroke-width:4px
78
+ ```
@@ -0,0 +1,29 @@
1
+ import { type CSSProperties } from 'react';
2
+ import { type SRadioValue } from '../SRadio';
3
+ import { type STagProps } from '../STag';
4
+ export interface SRadioCardProps {
5
+ /** 이 카드의 값 */
6
+ val: SRadioValue;
7
+ /** 그룹의 현재 선택 값 */
8
+ value?: SRadioValue | null;
9
+ /** 라벨 (첫 줄) */
10
+ label: string;
11
+ /** 서브타이틀 (둘째 줄). 라벨 왼쪽 끝에 맞춰 들여쓴다 */
12
+ subtitle?: string;
13
+ /** 라벨 오른쪽에 붙일 태그. `STag` 의 props 를 그대로 받되 크기는 `xs` 로 고정된다 */
14
+ tag?: Omit<STagProps, 'size'>;
15
+ /** 비활성 */
16
+ disabled?: boolean;
17
+ /** native radio name (form-agnostic 그룹핑) */
18
+ name?: string;
19
+ /** 선택 변경 (sdUpdate) — 선택된 val 전달 */
20
+ onValueChange?: (val: SRadioValue) => void;
21
+ className?: string;
22
+ style?: CSSProperties;
23
+ }
24
+ /**
25
+ * SRadioCard — 라디오 + 라벨 + 서브타이틀을 카드 한 장에 담은 선택지.
26
+ * 카드 전체가 클릭 영역이며 `value === val` 이면 선택 상태다.
27
+ * 선택지마다 설명이 붙어 한 줄짜리 `SRadio` 로는 담기 어려울 때 쓴다.
28
+ */
29
+ export declare function SRadioCard({ val, value, label, subtitle, tag, disabled, name, onValueChange, className, style, }: SRadioCardProps): import("react").JSX.Element;
@@ -0,0 +1,36 @@
1
+ import { type CSSProperties } from 'react';
2
+ import { type SRadioValue } from '../SRadio';
3
+ import { type STagProps } from '../STag';
4
+ export interface SRadioCardOption {
5
+ /** 옵션 값 */
6
+ value: SRadioValue;
7
+ /** 라벨 (첫 줄) */
8
+ label: string;
9
+ /** 서브타이틀 (둘째 줄) */
10
+ subtitle?: string;
11
+ /** 라벨 오른쪽에 붙일 태그 (`STag` props, 크기는 `xs` 고정) */
12
+ tag?: Omit<STagProps, 'size'>;
13
+ /** 이 옵션만 비활성 */
14
+ disabled?: boolean;
15
+ }
16
+ export interface SRadioCardGroupProps {
17
+ /** 옵션 목록 */
18
+ options?: SRadioCardOption[];
19
+ /** 현재 선택 값 */
20
+ value?: SRadioValue | null;
21
+ /** 배치 방향 */
22
+ direction?: 'vertical' | 'horizontal';
23
+ /** 전체 비활성 */
24
+ disabled?: boolean;
25
+ /** 라디오 name 속성 (form-agnostic 그룹핑) */
26
+ groupName?: string;
27
+ /** 선택 변경 (sdUpdate) */
28
+ onValueChange?: (val: SRadioValue) => void;
29
+ className?: string;
30
+ style?: CSSProperties;
31
+ }
32
+ /**
33
+ * SRadioCardGroup — `options` 를 SRadioCard 로 렌더하고 카드 사이 간격을 맞춘다.
34
+ * 카드는 컨테이너 폭을 채우므로 horizontal 이면 카드들이 폭을 균등하게 나눠 갖는다.
35
+ */
36
+ export declare function SRadioCardGroup({ options, value, direction, disabled, groupName, onValueChange, className, style, }: SRadioCardGroupProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { SRadioCard, type SRadioCardProps } from './SRadioCard';
2
+ export { SRadioCardGroup, type SRadioCardGroupProps, type SRadioCardOption, } from './SRadioCardGroup';
@@ -13,4 +13,32 @@
13
13
  | `bordered?` | `boolean` | `false` | true면 스크롤바와 콘텐츠 사이에 1px 구분선을 그린다. 컨테이너 테두리가 아니다. |
14
14
  | `maxHeight?` | `string` | — | viewport 최대 높이 (예: '400px'). 비우면 부모 크기를 따른다. |
15
15
  | `maxWidth?` | `string` | — | viewport 최대 너비 (예: '480px'). 비우면 부모 크기를 따른다. |
16
+ | `overlayScrollbar?` | `boolean` | `false` | true면 네이티브 스크롤바를 숨기고 영역 위에 오버레이 스크롤바를 얹는다. 스크롤바가 레이아웃 폭을 차지하지 않아 스크롤이 생겨도 안쪽 콘텐츠 폭이 줄지 않는다. **막대는 스크롤하는 동안에만 보인다.** 멎으면 페이드로 사라진다 — 자리를 차지하지 않는 막대는 늘 떠 있을 이유도 없다. 끌고 있는 동안에는 사라지지 않는다. (`SPage` 의 같은 이름 prop 은 막대를 항상 보인다. 페이지는 스크롤이 늘 있는 자리라 "여기는 스크롤된다"는 신호를 남겨 둔 쪽이다.) **켜면 구조가 한 겹 늘어난다.** `className`·`style`·`maxHeight`·`maxWidth` 가 바깥 상자로 가고 스크롤 요소가 그 안을 채운다 — 막대를 얹을 기준 상자가 필요해서다. 크기·자리를 잡는 클래스(`h-*`·`flex-1`·`min-h-0`)는 그대로 듣지만, 패딩은 스크롤 요소가 아니라 바깥 상자에 걸리므로 콘텐츠가 그 여백 아래로 흘러 들어가지 않는다. `background`·`bordered` 는 네이티브 트랙을 꾸미는 값이라 이때 무시된다. |
16
17
 
18
+ ## Types
19
+
20
+ ### SScrollAreaAxis
21
+
22
+ ```ts
23
+ export type SScrollAreaAxis = (typeof SCROLL_AREA_AXES)[number];
24
+ ```
25
+
26
+ ### SCROLL_AREA_AXES
27
+
28
+ ```ts
29
+ export const SCROLL_AREA_AXES = ['vertical', 'horizontal', 'both'] as const;
30
+ ```
31
+
32
+ ## Dependencies
33
+
34
+ ### Used by
35
+
36
+ - [SCalendarBoard](../SCalendarBoard)
37
+
38
+ ### Graph
39
+
40
+ ```mermaid
41
+ graph TD;
42
+ SCalendarBoard --> SScrollArea
43
+ style SScrollArea fill:#f9f,stroke:#333,stroke-width:4px
44
+ ```
@@ -11,6 +11,23 @@ export interface SScrollAreaProps extends HTMLAttributes<HTMLDivElement> {
11
11
  maxHeight?: string;
12
12
  /** viewport 최대 너비 (예: '480px'). 비우면 부모 크기를 따른다. */
13
13
  maxWidth?: string;
14
+ /**
15
+ * true면 네이티브 스크롤바를 숨기고 영역 위에 오버레이 스크롤바를 얹는다.
16
+ * 스크롤바가 레이아웃 폭을 차지하지 않아 스크롤이 생겨도 안쪽 콘텐츠 폭이 줄지 않는다.
17
+ *
18
+ * **막대는 스크롤하는 동안에만 보인다.** 멎으면 페이드로 사라진다 — 자리를 차지하지
19
+ * 않는 막대는 늘 떠 있을 이유도 없다. 끌고 있는 동안에는 사라지지 않는다.
20
+ * (`SPage` 의 같은 이름 prop 은 막대를 항상 보인다. 페이지는 스크롤이 늘 있는 자리라
21
+ * "여기는 스크롤된다"는 신호를 남겨 둔 쪽이다.)
22
+ *
23
+ * **켜면 구조가 한 겹 늘어난다.** `className`·`style`·`maxHeight`·`maxWidth` 가 바깥
24
+ * 상자로 가고 스크롤 요소가 그 안을 채운다 — 막대를 얹을 기준 상자가 필요해서다.
25
+ * 크기·자리를 잡는 클래스(`h-*`·`flex-1`·`min-h-0`)는 그대로 듣지만, 패딩은 스크롤
26
+ * 요소가 아니라 바깥 상자에 걸리므로 콘텐츠가 그 여백 아래로 흘러 들어가지 않는다.
27
+ *
28
+ * `background`·`bordered` 는 네이티브 트랙을 꾸미는 값이라 이때 무시된다.
29
+ */
30
+ overlayScrollbar?: boolean;
14
31
  }
15
32
  /**
16
33
  * SScrollArea — sd-scroll-area 포팅.
@@ -0,0 +1,63 @@
1
+ # SSearchInput
2
+
3
+ > 자동 생성 문서 — `npm run docs:gen`. 소스: 각 컴포넌트의 Props/Handle 인터페이스 + import 의존성.
4
+
5
+ ### SSearchInput
6
+
7
+ #### Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `value?` | `string \| number` | — | 값 (제어) |
12
+ | `size?` | `SSearchInputSize` | `'sm'` | 크기 |
13
+ | `placeholder?` | `string` | `'결과 내 검색'` | 플레이스홀더 |
14
+ | `clearable?` | `boolean` | `false` | 지우기 버튼 — 값이 있을 때만 나타난다 |
15
+ | `disabled?` | `boolean` | `false` | 비활성 |
16
+ | `width?` | `SFieldWidth` | — | 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이. 등급은 `--cmp-field-width-*` 토큰으로 풀리므로 토큰이 바뀌면 화면이 따라간다. 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다. 미지정 시 부모 폭을 채운다. |
17
+ | `focused?` | `boolean` | — | 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) |
18
+ | `hovered?` | `boolean` | — | 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) |
19
+ | `inputClassName?` | `string` | — | 내부 input 요소 className |
20
+ | `inputStyle?` | `CSSProperties` | — | 내부 input 요소 style |
21
+ | `className?` | `string` | — | |
22
+ | `style?` | `CSSProperties` | — | |
23
+
24
+ #### Events
25
+
26
+ | Event | Type | Description |
27
+ |-------|------|-------------|
28
+ | `onValueChange` | `(value: string) => void` | 값 변경 — 문자열 전달 |
29
+ | `onChange` | `InputHTMLAttributes<HTMLInputElement>['onChange']` | 네이티브 onChange (form-agnostic 연동용, RHF 등) |
30
+ | `onSearch` | `(value: string) => void` | 검색 실행 — Enter 키에서 현재 값과 함께 호출된다. 한글 조합 중의 Enter(IME 확정)는 검색으로 치지 않는다. |
31
+
32
+ ## Types
33
+
34
+ ### SSearchInputSize
35
+
36
+ ```ts
37
+ export type SSearchInputSize = SFieldSize;
38
+ ```
39
+
40
+ ## Dependencies
41
+
42
+ ### Used by
43
+
44
+ - [SChipFilter](../SChipFilter)
45
+ - [SSelect](../SSelect)
46
+
47
+ ### Depends on
48
+
49
+ - [SField](../SField)
50
+ - [SGhostButton](../SGhostButton)
51
+ - [SIcon](../SIcon)
52
+
53
+ ### Graph
54
+
55
+ ```mermaid
56
+ graph TD;
57
+ SSearchInput --> SField
58
+ SSearchInput --> SGhostButton
59
+ SSearchInput --> SIcon
60
+ SChipFilter --> SSearchInput
61
+ SSelect --> SSearchInput
62
+ style SSearchInput fill:#f9f,stroke:#333,stroke-width:4px
63
+ ```
@@ -0,0 +1,52 @@
1
+ import { type CSSProperties, type InputHTMLAttributes } from 'react';
2
+ import { type SFieldSize } from '../SField';
3
+ import { type SFieldWidth } from '../../lib/field-width';
4
+ export type SSearchInputSize = SFieldSize;
5
+ export interface SSearchInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'value' | 'onChange' | 'type' | 'prefix' | 'suffix'> {
6
+ /** 값 (제어) */
7
+ value?: string | number;
8
+ /** 값 변경 — 문자열 전달 */
9
+ onValueChange?: (value: string) => void;
10
+ /** 네이티브 onChange (form-agnostic 연동용, RHF 등) */
11
+ onChange?: InputHTMLAttributes<HTMLInputElement>['onChange'];
12
+ /**
13
+ * 검색 실행 — Enter 키에서 현재 값과 함께 호출된다.
14
+ * 한글 조합 중의 Enter(IME 확정)는 검색으로 치지 않는다.
15
+ */
16
+ onSearch?: (value: string) => void;
17
+ /** 크기 */
18
+ size?: SSearchInputSize;
19
+ /** 플레이스홀더 */
20
+ placeholder?: string;
21
+ /** 지우기 버튼 — 값이 있을 때만 나타난다 */
22
+ clearable?: boolean;
23
+ /** 비활성 */
24
+ disabled?: boolean;
25
+ /**
26
+ * 컨트롤 너비 — 폭 등급(`'xs' | 'sm' | 'md' | 'lg' | 'xl'`) · 숫자=px · CSS 길이.
27
+ * 등급은 `--cmp-field-width-*` 토큰으로 풀리므로 토큰이 바뀌면 화면이 따라간다.
28
+ * 값 길이에 상한이 없으면 `"100%"` 로 두어 행 전체를 쓴다.
29
+ * 미지정 시 부모 폭을 채운다.
30
+ */
31
+ width?: SFieldWidth;
32
+ /** 포커스 상태를 밖에서 지정한다 — 강조 테두리·링이 즉시 걸린다 (SField 로 그대로 넘어간다) */
33
+ focused?: boolean;
34
+ /** 호버 상태를 밖에서 지정한다 — 강조는 `focused` 와 같다 (SField 로 그대로 넘어간다) */
35
+ hovered?: boolean;
36
+ /** 내부 input 요소 className */
37
+ inputClassName?: string;
38
+ /** 내부 input 요소 style */
39
+ inputStyle?: CSSProperties;
40
+ className?: string;
41
+ style?: CSSProperties;
42
+ }
43
+ /**
44
+ * SSearchInput — 목록·결과를 검색어로 좁히는 한 줄 입력.
45
+ *
46
+ * 테두리 박스(border/radius/배경 + hover·focus 강조)는 `SField` 가 소유하고,
47
+ * 이 컴포넌트는 그 안의 돋보기 아이콘 + input 만 그린다.
48
+ * 좌측 아이콘은 **장식**이라 클릭 대상이 아니다 — 검색 실행은 Enter(`onSearch`) 다.
49
+ *
50
+ * 라벨·검증·에러 메시지가 필요한 폼 필드라면 `SInput` 을 쓴다.
51
+ */
52
+ export declare const SSearchInput: import("react").ForwardRefExoticComponent<SSearchInputProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -0,0 +1 @@
1
+ export { SSearchInput, type SSearchInputProps, type SSearchInputSize } from './SSearchInput';
@@ -19,13 +19,50 @@
19
19
  | `headerClassName?` | `string` | — | 헤더 영역 클래스 |
20
20
  | `padding?` | `SSectionHeaderCardBodyPadding` | — | 바디 안쪽 여백. 기본은 `default`. 성격이 다른 요소가 세 종류 이상 섞인 영역에만 `wide`, 표를 가장자리까지 채울 때만 `none`. |
21
21
  | `background?` | `SSectionHeaderCardBodyBackground` | — | 본문 배경. 기본은 `frame` — 카드가 깐 흰 면을 그대로 쓴다. `neutral` 은 바탕을 한 단계 눌러앉혀, 흰 면 덩어리(표·리스트)가 여럿일 때 그것들이 **"면 위에 놓인 객체"로 읽히게** 한다. 위계를 한 단계 더 주고 싶을 때 고르는 선택지이며, **기본값이 틀린 것은 아니다** — 표·리스트는 테두리·라운드·헤더 줄과 간격을 이미 갖고 있어 흰 바탕에서도 경계가 읽힌다. 깔아도 **효과가 없는** 자리가 있다 — 덩어리가 가장자리까지 차는 경우(`padding="none"` 으로 표를 채우면 바탕이 완전히 가려진다), 덩어리에 회색 면이 섞인 경우(그 덩어리가 바탕에 묻힌다), 맨 텍스트나 폼 컨트롤만 있는 본문(떠오를 흰 면이 없다). |
22
+ | `footerLeft?` | `ReactNode` | — | 하단 액션 영역 좌측 슬롯. 보조 버튼(취소·목록 등)이 오는 자리다. `footerLeft` 또는 `button` 중 하나라도 있으면 하단 액션 영역이 렌더된다. |
23
+ | `button?` | `SFooterButton` | — | 하단 액션 영역 우측 주 액션 버튼 |
24
+ | `footerSize?` | `SFooterSize` | `'md'` | 하단 액션 영역 크기. 기본은 `md`. 한 화면 안에서 **부분만 확정하는 카드**(옆 패널·분할 영역처럼 화면의 일부를 맡는 카드)일 때만 `sm`. 카드가 화면의 주 액션을 쥐고 있으면 모달·페이지와 같은 `md` 다 (AGENTS.md §3-5-2). `footerLeft` 슬롯의 버튼도 같이 맞춘다 — `sm` 이면 슬롯 버튼도 `size="sm"`. |
25
+ | `footerClassName?` | `string` | — | 하단 액션 영역 클래스 |
22
26
  | `children?` | `SSectionHeaderCardChildren` | — | 바디 콘텐츠. 특정 컴포넌트 타입으로 제한하지 않습니다. |
23
27
 
28
+ ## Types
29
+
30
+ ### SSectionHeaderCardTitleSize
31
+
32
+ ```ts
33
+ export type SSectionHeaderCardTitleSize = 'xs' | 'sm';
34
+ ```
35
+
36
+ ### SSectionHeaderCardThickness
37
+
38
+ ```ts
39
+ export type SSectionHeaderCardThickness = false | 'default' | 'accent';
40
+ ```
41
+
42
+ ### SSectionHeaderCardBodyPadding
43
+
44
+ ```ts
45
+ export type SSectionHeaderCardBodyPadding = 'default' | 'wide' | 'none';
46
+ ```
47
+
48
+ ### SSectionHeaderCardBodyBackground
49
+
50
+ ```ts
51
+ export type SSectionHeaderCardBodyBackground = 'frame' | 'neutral';
52
+ ```
53
+
54
+ ### SSectionHeaderCardChildren
55
+
56
+ ```ts
57
+ export type SSectionHeaderCardChildren = ReactNode;
58
+ ```
59
+
24
60
  ## Dependencies
25
61
 
26
62
  ### Depends on
27
63
 
28
64
  - [SBadge](../SBadge)
65
+ - [SFooter](../SFooter)
29
66
  - [SIcon](../SIcon)
30
67
  - [STooltip](../STooltip)
31
68
 
@@ -34,6 +71,7 @@
34
71
  ```mermaid
35
72
  graph TD;
36
73
  SSectionHeaderCard --> SBadge
74
+ SSectionHeaderCard --> SFooter
37
75
  SSectionHeaderCard --> SIcon
38
76
  SSectionHeaderCard --> STooltip
39
77
  style SSectionHeaderCard fill:#f9f,stroke:#333,stroke-width:4px
@@ -1,4 +1,5 @@
1
1
  import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type SFooterButton, type SFooterSize } from '../SFooter';
2
3
  export type SSectionHeaderCardBodyChildren = ReactNode;
3
4
  export type SSectionHeaderCardChildren = ReactNode;
4
5
  export type SSectionHeaderCardThickness = false | 'default' | 'accent';
@@ -42,6 +43,24 @@ export interface SSectionHeaderCardProps extends Omit<HTMLAttributes<HTMLDivElem
42
43
  * 맨 텍스트나 폼 컨트롤만 있는 본문(떠오를 흰 면이 없다).
43
44
  */
44
45
  background?: SSectionHeaderCardBodyBackground;
46
+ /**
47
+ * 하단 액션 영역 좌측 슬롯. 보조 버튼(취소·목록 등)이 오는 자리다.
48
+ * `footerLeft` 또는 `button` 중 하나라도 있으면 하단 액션 영역이 렌더된다.
49
+ */
50
+ footerLeft?: ReactNode;
51
+ /** 하단 액션 영역 우측 주 액션 버튼 */
52
+ button?: SFooterButton;
53
+ /**
54
+ * 하단 액션 영역 크기. 기본은 `md`.
55
+ *
56
+ * 한 화면 안에서 **부분만 확정하는 카드**(옆 패널·분할 영역처럼 화면의 일부를 맡는 카드)일 때만
57
+ * `sm`. 카드가 화면의 주 액션을 쥐고 있으면 모달·페이지와 같은 `md` 다 (AGENTS.md §3-5-2).
58
+ *
59
+ * `footerLeft` 슬롯의 버튼도 같이 맞춘다 — `sm` 이면 슬롯 버튼도 `size="sm"`.
60
+ */
61
+ footerSize?: SFooterSize;
62
+ /** 하단 액션 영역 클래스 */
63
+ footerClassName?: string;
45
64
  /** 바디 콘텐츠. 특정 컴포넌트 타입으로 제한하지 않습니다. */
46
65
  children?: SSectionHeaderCardChildren;
47
66
  }