sellmate-design-system-react 9.0.0-beta.7 → 9.0.0-beta.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/AGENTS.md +1873 -250
  2. package/README.md +76 -24
  3. package/dist/components/SAccountListBox/AccountListBoxPortal.d.ts +31 -0
  4. package/dist/components/SAccountListBox/README.md +86 -0
  5. package/dist/components/SAccountListBox/SAccountListBox.d.ts +79 -0
  6. package/dist/components/SAccountListBox/SystemMenuPortal.d.ts +58 -0
  7. package/dist/components/SAccountListBox/accountListBox.config.d.ts +64 -0
  8. package/dist/components/SAccountListBox/index.d.ts +2 -0
  9. package/dist/components/SActionModal/README.md +1 -0
  10. package/dist/components/SActionModal/SActionModal.d.ts +9 -1
  11. package/dist/components/SBadge/README.md +27 -0
  12. package/dist/components/SBadge/SBadge.d.ts +1 -1
  13. package/dist/components/SBarChart/README.md +122 -0
  14. package/dist/components/SBarChart/SBarChart.d.ts +99 -0
  15. package/dist/components/SBarChart/barChart.config.d.ts +85 -0
  16. package/dist/components/SBarChart/index.d.ts +2 -0
  17. package/dist/components/SBarcodeInput/README.md +13 -4
  18. package/dist/components/SBarcodeInput/SBarcodeInput.d.ts +18 -3
  19. package/dist/components/SButton/README.md +40 -0
  20. package/dist/components/SCalendar/README.md +13 -0
  21. package/dist/components/SCalendarBoard/CalendarDayCard.d.ts +53 -0
  22. package/dist/components/SCalendarBoard/CalendarDayEventListBox.d.ts +26 -0
  23. package/dist/components/SCalendarBoard/CalendarEventButton.d.ts +20 -0
  24. package/dist/components/SCalendarBoard/CalendarMoreButton.d.ts +18 -0
  25. package/dist/components/SCalendarBoard/README.md +148 -0
  26. package/dist/components/SCalendarBoard/SCalendarBoard.d.ts +83 -0
  27. package/dist/components/SCalendarBoard/calendar-board-layout.d.ts +59 -0
  28. package/dist/components/SCalendarBoard/calendarBoard.config.d.ts +38 -0
  29. package/dist/components/SCalendarBoard/index.d.ts +3 -0
  30. package/dist/components/SCalendarBoard/types.d.ts +40 -0
  31. package/dist/components/SCallout/README.md +17 -1
  32. package/dist/components/SCallout/SCallout.d.ts +14 -4
  33. package/dist/components/SCard/README.md +17 -0
  34. package/dist/components/SCard/SCard.d.ts +26 -2
  35. package/dist/components/SChatAttachedFile/README.md +33 -0
  36. package/dist/components/SChatAttachedFile/SChatAttachedFile.d.ts +13 -0
  37. package/dist/components/SChatAttachedFile/chatAttachedFile.config.d.ts +23 -0
  38. package/dist/components/SChatAttachedFile/index.d.ts +2 -0
  39. package/dist/components/SChatFile/README.md +33 -0
  40. package/dist/components/SChatFile/SChatFile.d.ts +37 -0
  41. package/dist/components/SChatFile/chatFile.config.d.ts +56 -0
  42. package/dist/components/SChatFile/index.d.ts +2 -0
  43. package/dist/components/SChatInput/README.md +44 -0
  44. package/dist/components/SChatInput/SChatInput.d.ts +60 -0
  45. package/dist/components/SChatInput/index.d.ts +1 -0
  46. package/dist/components/SChatMessage/README.md +86 -0
  47. package/dist/components/SChatMessage/SChatMessage.d.ts +123 -0
  48. package/dist/components/SChatMessage/index.d.ts +1 -0
  49. package/dist/components/SChatSystemMessage/README.md +12 -0
  50. package/dist/components/SChatSystemMessage/SChatSystemMessage.d.ts +18 -0
  51. package/dist/components/SChatSystemMessage/index.d.ts +1 -0
  52. package/dist/components/SCheckbox/README.md +8 -0
  53. package/dist/components/SChip/README.md +25 -0
  54. package/dist/components/SChip/SChip.d.ts +8 -0
  55. package/dist/components/SChip/index.d.ts +1 -1
  56. package/dist/components/SChipFilter/README.md +369 -14
  57. package/dist/components/SChipFilter/SChipFilter.d.ts +169 -60
  58. package/dist/components/SChipFilter/index.d.ts +1 -1
  59. package/dist/components/SChipInput/README.md +17 -2
  60. package/dist/components/SChipInput/SChipInput.d.ts +16 -3
  61. package/dist/components/SChipInput/index.d.ts +1 -1
  62. package/dist/components/SCircleProgress/README.md +8 -0
  63. package/dist/components/SConfirmModal/README.md +13 -4
  64. package/dist/components/SConfirmModal/SConfirmModal.d.ts +46 -9
  65. package/dist/components/SContextAlert/README.md +52 -0
  66. package/dist/components/SContextAlert/SContextAlert.d.ts +51 -0
  67. package/dist/components/SContextAlert/contextAlert.config.d.ts +22 -0
  68. package/dist/components/SContextAlert/index.d.ts +2 -0
  69. package/dist/components/SDatePicker/README.md +21 -2
  70. package/dist/components/SDatePicker/SDatePicker.d.ts +35 -5
  71. package/dist/components/SDateRangePicker/README.md +21 -4
  72. package/dist/components/SDateRangePicker/SDateRangePicker.d.ts +37 -7
  73. package/dist/components/SDivider/README.md +7 -0
  74. package/dist/components/SDivider/SDivider.d.ts +11 -0
  75. package/dist/components/SDonutChart/README.md +105 -0
  76. package/dist/components/SDonutChart/SDonutChart.d.ts +82 -0
  77. package/dist/components/SDonutChart/index.d.ts +1 -0
  78. package/dist/components/SDraggableItem/README.md +37 -0
  79. package/dist/components/SDraggableItem/SDraggableItem.d.ts +2 -0
  80. package/dist/components/SDraggableItem/index.d.ts +1 -1
  81. package/dist/components/SDraggableList/README.md +33 -3
  82. package/dist/components/SDraggableList/SDraggableList.d.ts +18 -3
  83. package/dist/components/SDraggableList/index.d.ts +1 -1
  84. package/dist/components/SDrawer/README.md +8 -0
  85. package/dist/components/SDropdownButton/README.md +19 -0
  86. package/dist/components/SEditor/EditorBody.d.ts +36 -0
  87. package/dist/components/SEditor/EditorToolbar.d.ts +93 -0
  88. package/dist/components/SEditor/README.md +204 -0
  89. package/dist/components/SEditor/SEditor.d.ts +121 -0
  90. package/dist/components/SEditor/editor-icons.d.ts +63 -0
  91. package/dist/components/SEditor/editor.config.d.ts +119 -0
  92. package/dist/components/SEditor/index.d.ts +8 -0
  93. package/dist/components/SEditor/tiptap-api.d.ts +29 -0
  94. package/dist/components/SEditor/use-is-mobile.d.ts +14 -0
  95. package/dist/components/SExpansionItem/README.md +36 -0
  96. package/dist/components/SExpansionItem/index.d.ts +1 -1
  97. package/dist/components/SField/README.md +36 -5
  98. package/dist/components/SField/SField.d.ts +33 -8
  99. package/dist/components/SField/index.d.ts +1 -1
  100. package/dist/components/SFilePicker/README.md +19 -4
  101. package/dist/components/SFilePicker/SFilePicker.d.ts +19 -6
  102. package/dist/components/SFooter/README.md +44 -0
  103. package/dist/components/SFooter/SFooter.d.ts +29 -13
  104. package/dist/components/SFooter/index.d.ts +1 -1
  105. package/dist/components/SForm/README.md +12 -1
  106. package/dist/components/SForm/SForm.d.ts +2 -2
  107. package/dist/components/SGhostButton/README.md +28 -4
  108. package/dist/components/SGhostButton/SGhostButton.d.ts +4 -1
  109. package/dist/components/SGnb/README.md +97 -7
  110. package/dist/components/SGnb/SGnb.d.ts +94 -10
  111. package/dist/components/SGnb/gnb.config.d.ts +18 -5
  112. package/dist/components/SGnb/index.d.ts +1 -1
  113. package/dist/components/SGnbSystem/README.md +186 -0
  114. package/dist/components/SGnbSystem/SGnbSystem.d.ts +179 -0
  115. package/dist/components/SGnbSystem/gnbSystem.config.d.ts +122 -0
  116. package/dist/components/SGnbSystem/index.d.ts +2 -0
  117. package/dist/components/SGuide/README.md +16 -1
  118. package/dist/components/SGuide/SGuide.d.ts +5 -2
  119. package/dist/components/SIcon/README.md +20 -0
  120. package/dist/components/SIcon/SIcon.d.ts +1 -1
  121. package/dist/components/SIcon/icons.gen.d.ts +20 -1
  122. package/dist/components/SImage/README.md +23 -1
  123. package/dist/components/SImage/SImage.d.ts +11 -8
  124. package/dist/components/SInput/README.md +7 -4
  125. package/dist/components/SInput/SInput.d.ts +13 -5
  126. package/dist/components/SKeyValueTable/README.md +88 -0
  127. package/dist/components/SKeyValueTable/SKeyValueTable.d.ts +30 -3
  128. package/dist/components/SKeyValueTable/index.d.ts +1 -1
  129. package/dist/components/SLauncherListBox/README.md +81 -0
  130. package/dist/components/SLauncherListBox/SLauncherListBox.d.ts +67 -0
  131. package/dist/components/SLauncherListBox/index.d.ts +2 -0
  132. package/dist/components/SLauncherListBox/launcherListBox.config.d.ts +118 -0
  133. package/dist/components/SLayout/README.md +22 -1
  134. package/dist/components/SLayout/SLayout.d.ts +6 -2
  135. package/dist/components/SLayout/index.d.ts +1 -1
  136. package/dist/components/SLineChart/README.md +131 -0
  137. package/dist/components/SLineChart/SLineChart.d.ts +110 -0
  138. package/dist/components/SLineChart/index.d.ts +1 -0
  139. package/dist/components/SLineChart/lineChart.config.d.ts +95 -0
  140. package/dist/components/SLinearProgress/README.md +15 -0
  141. package/dist/components/SLinearProgress/SLinearProgress.d.ts +3 -0
  142. package/dist/components/SLinearProgress/index.d.ts +1 -1
  143. package/dist/components/SList/README.md +15 -2
  144. package/dist/components/SList/SList.d.ts +7 -3
  145. package/dist/components/SList/index.d.ts +1 -1
  146. package/dist/components/SListItem/README.md +41 -0
  147. package/dist/components/SListItem/index.d.ts +1 -1
  148. package/dist/components/SLoadingContainer/index.d.ts +1 -1
  149. package/dist/components/SLoadingContainer/loading.d.ts +41 -6
  150. package/dist/components/SLoadingModal/README.md +10 -2
  151. package/dist/components/SLoadingModal/SLoadingModal.d.ts +4 -4
  152. package/dist/components/SLoadingModal/index.d.ts +1 -1
  153. package/dist/components/SLoginCard/README.md +37 -0
  154. package/dist/components/SLoginCard/SLoginCard.d.ts +39 -0
  155. package/dist/components/SLoginCard/index.d.ts +1 -0
  156. package/dist/components/SLogo/README.md +54 -0
  157. package/dist/components/SLogo/SLogo.d.ts +47 -0
  158. package/dist/components/SLogo/index.d.ts +2 -0
  159. package/dist/components/SLogo/logo.config.d.ts +14 -0
  160. package/dist/components/SLogo/sellmate-wordmark.d.ts +20 -0
  161. package/dist/components/SMeatballButton/README.md +67 -0
  162. package/dist/components/SMeatballButton/SMeatballButton.d.ts +36 -0
  163. package/dist/components/SMeatballButton/index.d.ts +1 -0
  164. package/dist/components/SModal/README.md +15 -5
  165. package/dist/components/SModal/SModal.d.ts +1 -1
  166. package/dist/components/SNumberInput/README.md +18 -8
  167. package/dist/components/SNumberInput/SNumberInput.d.ts +42 -7
  168. package/dist/components/SPage/README.md +105 -5
  169. package/dist/components/SPage/SPage.d.ts +34 -10
  170. package/dist/components/SPage/SPageHeader.d.ts +31 -13
  171. package/dist/components/SPage/index.d.ts +2 -2
  172. package/dist/components/SPage/page-column.d.ts +34 -0
  173. package/dist/components/SPage/page-width.d.ts +23 -0
  174. package/dist/components/SPage/page.config.d.ts +26 -0
  175. package/dist/components/SPieChart/README.md +93 -0
  176. package/dist/components/SPieChart/SPieChart.d.ts +73 -0
  177. package/dist/components/SPieChart/index.d.ts +1 -0
  178. package/dist/components/SPopover/README.md +15 -0
  179. package/dist/components/SPopup/README.md +26 -2
  180. package/dist/components/SPopup/SPopup.d.ts +13 -10
  181. package/dist/components/SPopup/index.d.ts +1 -1
  182. package/dist/components/SPortal/README.md +20 -0
  183. package/dist/components/SRadio/README.md +20 -0
  184. package/dist/components/SRadioButton/README.md +18 -0
  185. package/dist/components/SRadioButton/SRadioButton.d.ts +1 -1
  186. package/dist/components/SRadioCard/README.md +78 -0
  187. package/dist/components/SRadioCard/SRadioCard.d.ts +29 -0
  188. package/dist/components/SRadioCard/SRadioCardGroup.d.ts +36 -0
  189. package/dist/components/SRadioCard/index.d.ts +2 -0
  190. package/dist/components/SScrollArea/README.md +28 -0
  191. package/dist/components/SScrollArea/SScrollArea.d.ts +17 -0
  192. package/dist/components/SSearchInput/README.md +63 -0
  193. package/dist/components/SSearchInput/SSearchInput.d.ts +52 -0
  194. package/dist/components/SSearchInput/index.d.ts +1 -0
  195. package/dist/components/SSectionHeaderCard/README.md +38 -0
  196. package/dist/components/SSectionHeaderCard/SSectionHeaderCard.d.ts +19 -0
  197. package/dist/components/SSelect/README.md +38 -11
  198. package/dist/components/SSelect/SSelect.d.ts +80 -9
  199. package/dist/components/SSelect/select.config.d.ts +15 -0
  200. package/dist/components/SSplitter/README.md +17 -2
  201. package/dist/components/SSplitter/SSplitter.d.ts +7 -3
  202. package/dist/components/SStepper/README.md +26 -0
  203. package/dist/components/SSwitch/README.md +13 -1
  204. package/dist/components/SSwitch/SSwitch.d.ts +1 -3
  205. package/dist/components/SSystemActionButton/README.md +246 -0
  206. package/dist/components/SSystemActionButton/SSystemActionButton.d.ts +167 -0
  207. package/dist/components/SSystemActionButton/index.d.ts +2 -0
  208. package/dist/components/SSystemActionButton/systemActionButton.config.d.ts +93 -0
  209. package/dist/components/STable/README.md +116 -11
  210. package/dist/components/STable/STable.d.ts +243 -23
  211. package/dist/components/STable/index.d.ts +1 -1
  212. package/dist/components/STableBar/README.md +1 -0
  213. package/dist/components/STableBar/STableBar.d.ts +8 -1
  214. package/dist/components/STabs/README.md +13 -2
  215. package/dist/components/STabs/STabs.d.ts +3 -5
  216. package/dist/components/STabs/index.d.ts +1 -1
  217. package/dist/components/STabs/tabs.config.d.ts +3 -4
  218. package/dist/components/STag/README.md +55 -0
  219. package/dist/components/STag/STag.d.ts +3 -1
  220. package/dist/components/STag/tag.config.d.ts +1 -1
  221. package/dist/components/STextLink/README.md +19 -1
  222. package/dist/components/STextLink/STextLink.d.ts +5 -1
  223. package/dist/components/STextarea/README.md +11 -5
  224. package/dist/components/STextarea/STextarea.d.ts +42 -6
  225. package/dist/components/STimePicker/README.md +18 -2
  226. package/dist/components/STimePicker/STimePicker.d.ts +29 -6
  227. package/dist/components/STimePicker/timepicker.config.d.ts +4 -2
  228. package/dist/components/STimeRangePicker/README.md +30 -2
  229. package/dist/components/STimeRangePicker/STimeRangePicker.d.ts +28 -6
  230. package/dist/components/SToast/README.md +25 -1
  231. package/dist/components/SToast/SToast.d.ts +2 -2
  232. package/dist/components/SToggle/README.md +8 -0
  233. package/dist/components/SToggle/index.d.ts +1 -1
  234. package/dist/components/STooltip/README.md +25 -1
  235. package/dist/components/STooltip/STooltip.d.ts +1 -1
  236. package/dist/components/STree/README.md +42 -4
  237. package/dist/components/STree/STree.d.ts +18 -6
  238. package/dist/components/STree/STree.examples.d.ts +2 -0
  239. package/dist/docs/Gallery.d.ts +9 -0
  240. package/dist/docs/RecipeGallery.d.ts +13 -0
  241. package/dist/docs/gallery-previews.d.ts +24 -0
  242. package/dist/fonts/LICENSE.txt +94 -0
  243. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.0.woff2 +0 -0
  244. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.1.woff2 +0 -0
  245. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.10.woff2 +0 -0
  246. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.11.woff2 +0 -0
  247. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.12.woff2 +0 -0
  248. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.13.woff2 +0 -0
  249. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.14.woff2 +0 -0
  250. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.15.woff2 +0 -0
  251. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.16.woff2 +0 -0
  252. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.17.woff2 +0 -0
  253. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.18.woff2 +0 -0
  254. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.19.woff2 +0 -0
  255. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.2.woff2 +0 -0
  256. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.20.woff2 +0 -0
  257. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.21.woff2 +0 -0
  258. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.22.woff2 +0 -0
  259. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.23.woff2 +0 -0
  260. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.24.woff2 +0 -0
  261. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.25.woff2 +0 -0
  262. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.26.woff2 +0 -0
  263. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.27.woff2 +0 -0
  264. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.28.woff2 +0 -0
  265. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.29.woff2 +0 -0
  266. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.3.woff2 +0 -0
  267. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.30.woff2 +0 -0
  268. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.31.woff2 +0 -0
  269. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.32.woff2 +0 -0
  270. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.33.woff2 +0 -0
  271. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.34.woff2 +0 -0
  272. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.35.woff2 +0 -0
  273. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.36.woff2 +0 -0
  274. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.37.woff2 +0 -0
  275. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.38.woff2 +0 -0
  276. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.39.woff2 +0 -0
  277. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.4.woff2 +0 -0
  278. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.40.woff2 +0 -0
  279. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.41.woff2 +0 -0
  280. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.42.woff2 +0 -0
  281. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.43.woff2 +0 -0
  282. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.44.woff2 +0 -0
  283. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.45.woff2 +0 -0
  284. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.46.woff2 +0 -0
  285. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.47.woff2 +0 -0
  286. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.48.woff2 +0 -0
  287. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.49.woff2 +0 -0
  288. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.5.woff2 +0 -0
  289. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.50.woff2 +0 -0
  290. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.51.woff2 +0 -0
  291. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.52.woff2 +0 -0
  292. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.53.woff2 +0 -0
  293. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.54.woff2 +0 -0
  294. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.55.woff2 +0 -0
  295. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.56.woff2 +0 -0
  296. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.57.woff2 +0 -0
  297. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.58.woff2 +0 -0
  298. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.59.woff2 +0 -0
  299. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.6.woff2 +0 -0
  300. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.60.woff2 +0 -0
  301. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.61.woff2 +0 -0
  302. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.62.woff2 +0 -0
  303. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.63.woff2 +0 -0
  304. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.64.woff2 +0 -0
  305. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.65.woff2 +0 -0
  306. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.66.woff2 +0 -0
  307. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.67.woff2 +0 -0
  308. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.68.woff2 +0 -0
  309. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.69.woff2 +0 -0
  310. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.7.woff2 +0 -0
  311. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.70.woff2 +0 -0
  312. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.71.woff2 +0 -0
  313. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.72.woff2 +0 -0
  314. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.73.woff2 +0 -0
  315. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.74.woff2 +0 -0
  316. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.75.woff2 +0 -0
  317. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.76.woff2 +0 -0
  318. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.77.woff2 +0 -0
  319. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.78.woff2 +0 -0
  320. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.79.woff2 +0 -0
  321. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.8.woff2 +0 -0
  322. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.80.woff2 +0 -0
  323. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.81.woff2 +0 -0
  324. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.82.woff2 +0 -0
  325. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.83.woff2 +0 -0
  326. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.84.woff2 +0 -0
  327. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.85.woff2 +0 -0
  328. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.86.woff2 +0 -0
  329. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.87.woff2 +0 -0
  330. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.88.woff2 +0 -0
  331. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.89.woff2 +0 -0
  332. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.9.woff2 +0 -0
  333. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.90.woff2 +0 -0
  334. package/dist/fonts/woff2-dynamic-subset/PretendardVariable.subset.91.woff2 +0 -0
  335. package/dist/index.cjs +20559 -10373
  336. package/dist/index.cjs.map +1 -1
  337. package/dist/index.d.ts +22 -0
  338. package/dist/index.js +20482 -10372
  339. package/dist/index.js.map +1 -1
  340. package/dist/lib/chart/cartesian.d.ts +56 -0
  341. package/dist/lib/chart/frame.d.ts +21 -0
  342. package/dist/lib/chart/hover-dim.d.ts +19 -0
  343. package/dist/lib/chart/legend.d.ts +21 -0
  344. package/dist/lib/chart/palette.d.ts +28 -0
  345. package/dist/lib/chart/radial.d.ts +99 -0
  346. package/dist/lib/chart/scale.d.ts +26 -0
  347. package/dist/lib/chart/tooltip.d.ts +60 -0
  348. package/dist/lib/chart/types.d.ts +29 -0
  349. package/dist/lib/chart/use-element-size.d.ts +39 -0
  350. package/dist/lib/date.d.ts +2 -1
  351. package/dist/lib/depth-filter.d.ts +27 -0
  352. package/dist/lib/doc-sections.d.ts +35 -0
  353. package/dist/lib/dropdown-menu.d.ts +19 -0
  354. package/dist/lib/field-width.d.ts +31 -0
  355. package/dist/lib/floating-height.d.ts +15 -0
  356. package/dist/lib/global-overlay.d.ts +5 -0
  357. package/dist/lib/hover-preview.d.ts +32 -0
  358. package/dist/lib/inert.d.ts +11 -0
  359. package/dist/lib/overlay-scrollbar.d.ts +32 -0
  360. package/dist/lib/row-metrics.d.ts +61 -0
  361. package/dist/lib/story-docs.d.ts +19 -3
  362. package/dist/llms-full.txt +5901 -550
  363. package/dist/llms.txt +1915 -267
  364. package/dist/playground/categories.d.ts +19 -0
  365. package/dist/pretendard.css +937 -0
  366. package/dist/recipes/AppShell.d.ts +21 -0
  367. package/dist/recipes/ExcelFilePopupPage.d.ts +5 -0
  368. package/dist/recipes/LoginPage.d.ts +6 -0
  369. package/dist/recipes/ProductCreatePage.d.ts +1 -0
  370. package/dist/recipes/ProductCreateSectionsPage.d.ts +5 -0
  371. package/dist/recipes/ProductDetailInlineEditPage.d.ts +9 -0
  372. package/dist/recipes/ProductDetailPage.d.ts +1 -0
  373. package/dist/recipes/ProductListChipFilterPage.d.ts +1 -0
  374. package/dist/recipes/ProductListPage.d.ts +1 -0
  375. package/dist/recipes/TransferOrderPopupPage.d.ts +2 -0
  376. package/dist/recipes/api.d.ts +91 -0
  377. package/dist/recipes/recipe-story.d.ts +33 -0
  378. package/dist/recipes/router.d.ts +9 -0
  379. package/dist/styles.css +3328 -273
  380. package/dist/theme.css +571 -33
  381. package/eslint/index.mjs +9 -0
  382. package/eslint/lib/table-column.mjs +26 -0
  383. package/eslint/rules/divider-vertical-height.mjs +137 -0
  384. package/eslint/rules/field-width-grade.mjs +27 -10
  385. package/eslint/rules/table-column-width.mjs +110 -0
  386. package/eslint/scale.gen.mjs +6 -3
  387. package/package.json +17 -3
@@ -1 +1 @@
1
- export { SFooter, type SFooterBg, type SFooterButton, type SFooterProps } from './SFooter';
1
+ export { SFooter, type SFooterBg, type SFooterButton, type SFooterProps, type SFooterSize, } from './SFooter';
@@ -8,7 +8,7 @@
8
8
 
9
9
  | Prop | Type | Default | Description |
10
10
  |------|------|---------|-------------|
11
- | `formClass?` | `string` | — | form 엘리먼트에 추가할 클래스 (sd-form formClass 대응) |
11
+ | `formClassName?` | `string` | — | form 엘리먼트에 추가할 클래스 (sd-form formClassName 대응) |
12
12
  | `children?` | `ReactNode` | — | |
13
13
  | `className?` | `string` | — | |
14
14
  | `style?` | `CSSProperties` | — | |
@@ -29,3 +29,14 @@
29
29
  | `reset` | `() => void` | resetValidation 별칭 — sd-form sdReset 대응. 값 리셋은 소비자(value/onChange) 책임 |
30
30
  | `focusFirstInvalid` | `() => void` | 첫 번째 실패 필드로 포커스 이동 |
31
31
 
32
+ ## Types
33
+
34
+ ### SFormValidationError
35
+
36
+ ```ts
37
+ export interface SFormValidationError {
38
+ /** 검증에 실패한 필드 name 목록 (DOM 순서) */
39
+ names: string[];
40
+ }
41
+ ```
42
+
@@ -15,8 +15,8 @@ export interface SFormHandle {
15
15
  focusFirstInvalid: () => void;
16
16
  }
17
17
  export interface SFormProps {
18
- /** form 엘리먼트에 추가할 클래스 (sd-form formClass 대응) */
19
- formClass?: string;
18
+ /** form 엘리먼트에 추가할 클래스 (sd-form formClassName 대응) */
19
+ formClassName?: string;
20
20
  /** 모든 필드 검증 통과 후 발생 (sd-form sdSubmit 대응) */
21
21
  onSubmit?: () => void;
22
22
  /** 검증 실패 시 실패한 필드 name 목록 전달 (sd-form sdValidationError 대응) */
@@ -27,24 +27,43 @@
27
27
  |-------|------|-------------|
28
28
  | `onClick` | `(e: MouseEvent<HTMLButtonElement>) => void` | 클릭 (sdClick) |
29
29
 
30
+ ## Types
31
+
32
+ ### SGhostButtonSize
33
+
34
+ ```ts
35
+ export type SGhostButtonSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg';
36
+ ```
37
+
38
+ ### SGhostButtonIntent
39
+
40
+ ```ts
41
+ export type SGhostButtonIntent = 'default' | 'danger' | 'action' | 'subAction' | 'inverse';
42
+ ```
43
+
30
44
  ## Dependencies
31
45
 
32
46
  ### Used by
33
47
 
34
48
  - [SBarcodeInput](../SBarcodeInput)
35
49
  - [SCalendar](../SCalendar)
50
+ - [SCalendarBoard](../SCalendarBoard)
51
+ - [SChatAttachedFile](../SChatAttachedFile)
52
+ - [SChatInput](../SChatInput)
36
53
  - [SChip](../SChip)
37
- - [SChipFilter](../SChipFilter)
54
+ - [SDatePicker](../SDatePicker)
38
55
  - [SDateRangePicker](../SDateRangePicker)
39
56
  - [SFilePicker](../SFilePicker)
40
57
  - [SGnb](../SGnb)
41
58
  - [SGuide](../SGuide)
42
59
  - [SInput](../SInput)
60
+ - [SMeatballButton](../SMeatballButton)
43
61
  - [SModalContainer](../SModalContainer)
44
62
  - [SOverlayHeader](../SOverlayHeader)
45
63
  - [SPage](../SPage)
46
64
  - [SPopover](../SPopover)
47
- - [SSelect](../SSelect)
65
+ - [SSearchInput](../SSearchInput)
66
+ - [STable](../STable)
48
67
  - [STimePicker](../STimePicker)
49
68
  - [STimeRangePicker](../STimeRangePicker)
50
69
  - [SToast](../SToast)
@@ -64,18 +83,23 @@ graph TD;
64
83
  SGhostButton --> STag
65
84
  SBarcodeInput --> SGhostButton
66
85
  SCalendar --> SGhostButton
86
+ SCalendarBoard --> SGhostButton
87
+ SChatAttachedFile --> SGhostButton
88
+ SChatInput --> SGhostButton
67
89
  SChip --> SGhostButton
68
- SChipFilter --> SGhostButton
90
+ SDatePicker --> SGhostButton
69
91
  SDateRangePicker --> SGhostButton
70
92
  SFilePicker --> SGhostButton
71
93
  SGnb --> SGhostButton
72
94
  SGuide --> SGhostButton
73
95
  SInput --> SGhostButton
96
+ SMeatballButton --> SGhostButton
74
97
  SModalContainer --> SGhostButton
75
98
  SOverlayHeader --> SGhostButton
76
99
  SPage --> SGhostButton
77
100
  SPopover --> SGhostButton
78
- SSelect --> SGhostButton
101
+ SSearchInput --> SGhostButton
102
+ STable --> SGhostButton
79
103
  STimePicker --> SGhostButton
80
104
  STimeRangePicker --> SGhostButton
81
105
  SToast --> SGhostButton
@@ -31,5 +31,8 @@ export interface SGhostButtonProps {
31
31
  /**
32
32
  * SGhostButton — sd-ghost-button 포팅. 아이콘 전용 투명 버튼.
33
33
  * hover 시 intent 색 오버레이(5%), focus-visible 링, 옵션 툴팁(회색 STag).
34
+ *
35
+ * ref 는 버튼 요소로 그대로 간다 — 이 버튼에 붙여 띄우는 층(SGnb 런처의 서비스 목록 등)이
36
+ * 버튼을 앵커로 삼아야 한다. 툴팁을 두른 형태에서도 앵커는 래퍼가 아니라 버튼이다.
34
37
  */
35
- export declare function SGhostButton({ icon, size, intent, ariaLabel, ariaPressed, ariaExpanded, tooltipText, disabled, onClick, anchorClassName, anchorStyle, className, style, }: SGhostButtonProps): import("react").JSX.Element;
38
+ export declare const SGhostButton: import("react").ForwardRefExoticComponent<SGhostButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -9,16 +9,17 @@
9
9
  | Prop | Type | Default | Description |
10
10
  |------|------|---------|-------------|
11
11
  | `type?` | `SGnbType` | — | 메뉴 스타일: box(라운드) / belt(풀폭 행). 미지정 시 SLayout 의 type 을 따른다. |
12
- | `header?` | `SGnbHeader` | — | 상단바 구조: fix(GNB 폭 고정) / full(레이아웃 전폭). 미지정 시 SLayout 의 header 를 따른다. 단, useRail 이고 레일에 children 없는 아이템이 있으면 메뉴 폭이 출렁이므로 full 로 강제된다. |
12
+ | `header?` | `SGnbHeader` | — | 상단바 구조: fix(GNB 폭 고정) / full(레이아웃 전폭). 미지정 시 SLayout 의 header 를 따른다. 단, showRail 이고 레일에 children 없는 아이템이 있으면 메뉴 폭이 출렁이므로 full 로 강제된다. |
13
13
  | `color?` | `SGnbColor` | `'light'` | 색상 테마: light / dark |
14
- | `items` | `SGnbMenuItem[]` | — | 메뉴 트리 (depth1 → depth2 → depth3). useRail 이면 첫 depth 가 레일이 되고 그 children 이 depth1 이 된다. |
15
- | `useRail?` | `boolean` | — | 좌측 레일 사용 여부. 켜면 items 의 첫 depth 가 아이콘+라벨 버튼의 세로 레일로 서고, 선택된 레일 아이템의 children 이 오른쪽 메뉴 패널에 깔린다. 미지정 시 SLayout 의 useRail 을 따른다. children 없는 레일 아이템이 활성이면 메뉴 패널은 렌더되지 않고 레일만 남는다. |
14
+ | `items` | `SGnbMenuItem[]` | — | 메뉴 트리 (depth1 → depth2 → depth3). showRail 이면 첫 depth 가 레일이 되고 그 children 이 depth1 이 된다. |
15
+ | `showRail?` | `boolean` | — | 좌측 레일 사용 여부. 켜면 items 의 첫 depth 가 아이콘+라벨 버튼의 세로 레일로 서고, 선택된 레일 아이템의 children 이 오른쪽 메뉴 패널에 깔린다. 미지정 시 SLayout 의 showRail 을 따른다. children 없는 레일 아이템이 활성이면 메뉴 패널은 렌더되지 않고 레일만 남는다. |
16
16
  | `value?` | `string` | `''` | 현재 선택된 아이템 value |
17
17
  | `folded?` | `boolean` | — | 접힘(레일) 상태. 미지정 시 SLayout 의 folded 를 따른다. |
18
+ | `launcher?` | `SGnbLauncher` | — | 앱런처(그리드) 버튼. 미지정 시 런처 버튼을 렌더하지 않는다. 접힘 레일(fix)에는 폴드 버튼만 남으므로 표시되지 않는다. |
18
19
  | `logo?` | `ReactNode` | — | 상단바 로고 영역 (slot). header="full" 이면 폭이 140px 로 고정된다. |
19
20
  | `topContent?` | `ReactNode` | — | 상단바 로고 오른쪽 슬롯 (검색·액션 등). 로고와 16px 띄고 남는 폭을 모두 차지하므로 안에서 자유롭게 정렬한다. 상단바가 전폭인 header="full" 에서만 렌더된다 (fix 는 상단바가 좁은 GNB 컬럼 안이라 놓을 자리가 없다). |
20
- | `railTop?` | `ReactNode` | — | 레일 상단 고정 슬롯. 레일 아이템이 많아 넘치면 아이템 목록(ul)만 스크롤되고 이 슬롯은 레일 상단(상단바 바로 아래)에 붙어 고정된다. useRail 일 때만 렌더된다. |
21
- | `railFooter?` | `ReactNode` | — | 레일 하단 고정 슬롯. 레일 아이템이 많아 넘치면 아이템 목록(ul)만 스크롤되고 이 슬롯은 레일 하단에 붙어 고정된다. useRail 일 때만 렌더된다. |
21
+ | `railTop?` | `ReactNode` | — | 레일 상단 고정 슬롯. 레일 아이템이 많아 넘치면 아이템 목록(ul)만 스크롤되고 이 슬롯은 레일 상단(상단바 바로 아래)에 붙어 고정된다. showRail 일 때만 렌더된다. |
22
+ | `railFooter?` | `ReactNode` | — | 레일 하단 고정 슬롯. 레일 아이템이 많아 넘치면 아이템 목록(ul)만 스크롤되고 이 슬롯은 레일 하단에 붙어 고정된다. showRail 일 때만 렌더된다. |
22
23
  | `menuTop?` | `ReactNode` | — | 메뉴 상단 고정 슬롯. 메뉴 아이템이 많아 넘치면 메뉴 목록(ul)만 스크롤되고 이 슬롯은 메뉴 상단에 붙어 고정된다. 메뉴가 렌더될 때만(showMenu) 나타난다. |
23
24
  | `menuFooter?` | `ReactNode` | — | 메뉴 하단 고정 슬롯. 메뉴 아이템이 많아 넘치면 메뉴 목록(ul)만 스크롤되고 이 슬롯은 메뉴 하단에 붙어 고정된다. 메뉴가 렌더될 때만(showMenu) 나타난다. |
24
25
  | `foldedTop?` | `ReactNode` | — | 접힘(fix 레일) 상단 고정 슬롯. 접으면 본문이 빠져나가며 rail/menu top 도 사라지므로, 48px 폴드 레일 상단(상단바 바로 아래)에 붙는 별도 슬롯이다. header="fix" 로 접혔을 때만 나타난다. |
@@ -26,6 +27,7 @@
26
27
  | `resizable?` | `boolean` | `false` | 메뉴 폭을 드래그로 조절할 수 있게 한다. 레일 폭은 고정이고 **메뉴 컬럼만** 늘고 준다. 조절선은 GNB 컬럼의 오른쪽 경계 전체다 — fix 는 상단바 높이까지, full 은 상단바가 전폭이라 본문 높이까지. 접혀 있거나 깔 메뉴가 없으면(레일 리프가 활성) 조절선이 나오지 않는다. |
27
28
  | `menuWidth?` | `number` | — | 메뉴 폭(px). 주면 controlled — onMenuWidthChange 로 직접 갱신해야 움직인다 |
28
29
  | `defaultMenuWidth?` | `number` | — | 메뉴 초기 폭(px). uncontrolled |
30
+ | `system?` | `ReactNode` | — | system 슬롯(`SGnbSystem`). 놓이는 자리와 형태는 `header` 가 정한다. - fix : GNB 맨 아래 세로 판. 펼치면 메뉴 컬럼 바닥에, 접히면 `foldedFooter` 아래 레일 바닥에 여백 없이 붙는다. showRail 에서 메뉴가 없는 레일 아이템이 활성이면 메뉴 컬럼째 사라지므로 이 슬롯도 함께 빠진다. - full: 전폭 상단바 오른쪽 끝에 가로 한 줄로 선다. 상단바는 접어도 남으므로 조각들도 늘 남는다. 색·형태는 GNB 가 내려주므로 SGnbSystem 에 다시 넘기지 않아도 된다. |
29
31
  | `ariaLabel?` | `string` | `'global navigation'` | 메뉴 landmark(nav) 의 접근성 레이블. 한 화면에 nav 가 여럿일 때 구분한다. |
30
32
 
31
33
  #### Events
@@ -34,17 +36,102 @@
34
36
  |-------|------|-------------|
35
37
  | `onValueChange` | `(value: string) => void` | 선택 변경 (sdUpdate) |
36
38
  | `onRailChange` | `(value: string) => void` | 레일 선택 변경. 레일 아이템을 눌러 패널이 바뀔 때 알린다(선택 상태는 SGnb 가 자체 관리). |
37
- | `onFoldChange` | `(folded: boolean) => void` | 접힘 토글 (sdFoldChange) |
38
- | `onLauncherClick` | `() => void` | 앱런처(그리드) 버튼 클릭. 미지정 시 런처 버튼을 렌더하지 않는다. 접힘 레일(fix)에는 폴드 버튼만 남으므로 표시되지 않는다. |
39
+ | `onFoldedChange` | `(folded: boolean) => void` | 접힘 토글 (sdFoldChange) |
39
40
  | `onMenuWidthChange` | `(width: number) => void` | 메뉴 폭이 확정될 때(드래그를 놓거나 방향키 조작). 드래그하는 동안에는 오지 않는다 |
40
41
 
42
+ ## Types
43
+
44
+ ### SGnbType
45
+
46
+ ```ts
47
+ /** 메뉴 스타일: box = 라운드/좁은 들여쓰기, belt = 풀폭 행/넓은 들여쓰기 */
48
+ export type SGnbType = 'box' | 'belt';
49
+ ```
50
+
51
+ ### SGnbHeader
52
+
53
+ ```ts
54
+ /** 상단바 구조: fix = GNB 폭에 고정, full = 레이아웃 전폭 */
55
+ export type SGnbHeader = 'fix' | 'full';
56
+ ```
57
+
58
+ ### SGnbColor
59
+
60
+ ```ts
61
+ /** 색상(테마): light / dark */
62
+ export type SGnbColor = 'light' | 'dark';
63
+ ```
64
+
65
+ ### SGnbMenuItem
66
+
67
+ ```ts
68
+ /** GNB 메뉴 아이템 (재귀 트리). depth1 → depth2 → depth3. */
69
+ export interface SGnbMenuItem {
70
+ /** 표시 텍스트 */
71
+ label: string;
72
+ /** 고유 식별값 (선택 상태 비교 기준) */
73
+ value: string;
74
+ /** depth1 전용 아이콘명 */
75
+ icon?: SIconName;
76
+ /** 우측 Tag 뱃지 텍스트 */
77
+ tag?: string;
78
+ /** 뱃지 색. 미지정 시 blue. */
79
+ tagColor?: STagColor;
80
+ /** 비활성 여부 */
81
+ disabled?: boolean;
82
+ /** 하위 아이템 (있으면 펼침/접힘 대상) */
83
+ children?: SGnbMenuItem[];
84
+ }
85
+ ```
86
+
87
+ ### SGnbLauncher
88
+
89
+ ```ts
90
+ /** 앱런처(그리드) 버튼 */
91
+ export interface SGnbLauncher {
92
+ /**
93
+ * 누르면 뜨는 서비스 목록(`SLauncherListBox`). 옮겨 갈 수 있는 서비스가 무엇인지는
94
+ * 서비스마다 다르지만 **뜨는 자리는 늘 같아야 하므로**, 방향·앵커·여닫힘(바깥 클릭·ESC 포함)과
95
+ * 배경·라운드·그림자는 컴포넌트가 쥐고 앱은 목록만 준다 — 런처 버튼 아래로, 버튼 왼쪽 끝에 맞춰 뜬다.
96
+ *
97
+ * 비면 목록이 뜨지 않는다 — 아직 목록을 못 받은 화면에서 빈 흰 상자가 뜨는 대신
98
+ * 버튼만 남고 `onClick` 은 그대로 온다.
99
+ */
100
+ items?: SLauncherListBoxItem[];
101
+ /** 런처 **버튼**을 누름. 목록은 어차피 열리므로, 여는 것 말고 따로 할 일이 있을 때만 준다 */
102
+ onClick?: () => void;
103
+ /**
104
+ * 목록에서 **서비스를 고름**. 고른 서비스 키가 온다.
105
+ *
106
+ * **여기서 화면을 옮기지 않는다** — 줄은 링크라 브라우저가 `href` 를 새 탭으로 이미 연다.
107
+ * 고른 것을 앱이 알아야 할 때만(기록 등) 준다. 고르면 목록은 할 일을 끝낸 것이라 스스로
108
+ * 닫힌다(`onOpenChange(false)` 도 함께 온다).
109
+ */
110
+ onSelect?: (service: SLauncherService) => void;
111
+ /**
112
+ * 목록이 열리고 닫힐 때. 여닫는 것은 런처 버튼이 스스로 하므로 **그 사실을 알아야 할 때만** 준다
113
+ * (연 김에 목록을 다시 불러오거나, 열려 있는 동안 다른 층을 접어 두는 화면).
114
+ *
115
+ * 앱이 누르지 않은 닫힘도 온다: `header="fix"` 에서 GNB 를 접으면 런처 버튼이 사라지므로
116
+ * 목록이 닫히고 `false` 가 온다.
117
+ */
118
+ onOpenChange?: (open: boolean) => void;
119
+ }
120
+ ```
121
+
41
122
  ## Dependencies
42
123
 
124
+ ### Used by
125
+
126
+ - [SGnbSystem](../SGnbSystem)
127
+
43
128
  ### Depends on
44
129
 
45
130
  - [SGhostButton](../SGhostButton)
46
131
  - [SIcon](../SIcon)
132
+ - [SLauncherListBox](../SLauncherListBox)
47
133
  - [SLayout](../SLayout)
134
+ - [SPortal](../SPortal)
48
135
  - [STag](../STag)
49
136
 
50
137
  ### Graph
@@ -53,7 +140,10 @@
53
140
  graph TD;
54
141
  SGnb --> SGhostButton
55
142
  SGnb --> SIcon
143
+ SGnb --> SLauncherListBox
56
144
  SGnb --> SLayout
145
+ SGnb --> SPortal
57
146
  SGnb --> STag
147
+ SGnbSystem --> SGnb
58
148
  style SGnb fill:#f9f,stroke:#333,stroke-width:4px
59
149
  ```
@@ -1,23 +1,94 @@
1
1
  import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type SLauncherListBoxItem, type SLauncherService } from '../SLauncherListBox';
3
+ import type { SGnbSystemPlacement } from '../SGnbSystem/gnbSystem.config';
2
4
  import { type SGnbType, type SGnbHeader, type SGnbColor, type SGnbMenuItem } from './gnb.config';
5
+ /**
6
+ * SGnb 가 `system` 슬롯에 내려주는 값. 슬롯에 놓인 SGnbSystem 이 이걸 읽어
7
+ * 색과 형태(가로/세로 · 펼침/접힘)를 GNB 에 맞춘다 — 앱이 같은 값을 두 번 넘기지 않게 한다.
8
+ *
9
+ * 슬롯이 어디에 놓이는지는 header 가 정한다.
10
+ * - fix : 메뉴 컬럼 바닥 · 접힘 레일 바닥 → `placement: 'panel'` (세로 판)
11
+ * - full: 전폭 상단바 오른쪽 끝 → `placement: 'top'` (판 없이 가로 한 줄)
12
+ *
13
+ * `folded` 는 GNB 의 접힘 상태가 아니라 **그 자리가 접힌 레일인지**다. panel 은 두 곳에 놓이고
14
+ * (메뉴 컬럼 바닥 · 접힘 레일 바닥) 각 자리가 자기 형태를 못 박으므로, 접는 동안 아직 미끄러져
15
+ * 나가는 중인 메뉴 컬럼의 패널이 min 형태로 튀지 않는다.
16
+ *
17
+ * 그래서 fix 로 접혀 있는 동안 슬롯 내용은 **두 자리에 함께 마운트된다** — 미끄러져 나간 메뉴
18
+ * 컬럼(잔상)과 레일 바닥(실물). `active` 가 그 둘을 가른다.
19
+ */
20
+ export interface SGnbSystemContextValue {
21
+ /** GNB 색 */
22
+ color: SGnbColor;
23
+ /** 이 자리가 접힌(48px) 레일인지. `placement: 'top'` 에서는 뜻이 없다 */
24
+ folded: boolean;
25
+ /** 이 자리가 세로 판인지 전폭 상단바인지 */
26
+ placement: SGnbSystemPlacement;
27
+ /**
28
+ * 이 자리가 지금 화면에 살아 있는 자리인가. 접힌 GNB 의 메뉴 컬럼처럼 밖으로 미끄러져 나가
29
+ * 잔상으로만 남는 자리는 `false` 다.
30
+ *
31
+ * 잔상에서도 계정 리스트박스 같은 **떠 있는 층은 함께 숨지 않는다** — SPortal 로 문서 최상단에
32
+ * 그려져 컬럼의 `visibility: hidden` 이 닿지 않기 때문이다. 그래서 잔상이 된 자리는 열어 둔
33
+ * 것을 스스로 닫아야 하고, 그 신호가 이 값이다.
34
+ */
35
+ active: boolean;
36
+ /**
37
+ * 이 자리가 메뉴 기본 폭(GNB_MENU_WIDTH)보다 좁은가 — `resizable` 로 줄인 메뉴 컬럼이 그렇다.
38
+ * 좁아진 판에서는 알림 개수를 적을 가로가 모자라 개수 대신 점 배지가 붙는다.
39
+ * 없으면 좁지 않은 것으로 본다(접힘 레일·상단바는 자기 규칙을 따르므로 이 값과 무관하다).
40
+ */
41
+ narrow?: boolean;
42
+ }
43
+ export declare const SGnbSystemContext: import("react").Context<SGnbSystemContextValue | null>;
44
+ /** 앱런처(그리드) 버튼 */
45
+ export interface SGnbLauncher {
46
+ /**
47
+ * 누르면 뜨는 서비스 목록(`SLauncherListBox`). 옮겨 갈 수 있는 서비스가 무엇인지는
48
+ * 서비스마다 다르지만 **뜨는 자리는 늘 같아야 하므로**, 방향·앵커·여닫힘(바깥 클릭·ESC 포함)과
49
+ * 배경·라운드·그림자는 컴포넌트가 쥐고 앱은 목록만 준다 — 런처 버튼 아래로, 버튼 왼쪽 끝에 맞춰 뜬다.
50
+ *
51
+ * 비면 목록이 뜨지 않는다 — 아직 목록을 못 받은 화면에서 빈 흰 상자가 뜨는 대신
52
+ * 버튼만 남고 `onClick` 은 그대로 온다.
53
+ */
54
+ items?: SLauncherListBoxItem[];
55
+ /** 런처 **버튼**을 누름. 목록은 어차피 열리므로, 여는 것 말고 따로 할 일이 있을 때만 준다 */
56
+ onClick?: () => void;
57
+ /**
58
+ * 목록에서 **서비스를 고름**. 고른 서비스 키가 온다.
59
+ *
60
+ * **여기서 화면을 옮기지 않는다** — 줄은 링크라 브라우저가 `href` 를 새 탭으로 이미 연다.
61
+ * 고른 것을 앱이 알아야 할 때만(기록 등) 준다. 고르면 목록은 할 일을 끝낸 것이라 스스로
62
+ * 닫힌다(`onOpenChange(false)` 도 함께 온다).
63
+ */
64
+ onSelect?: (service: SLauncherService) => void;
65
+ /**
66
+ * 목록이 열리고 닫힐 때. 여닫는 것은 런처 버튼이 스스로 하므로 **그 사실을 알아야 할 때만** 준다
67
+ * (연 김에 목록을 다시 불러오거나, 열려 있는 동안 다른 층을 접어 두는 화면).
68
+ *
69
+ * 앱이 누르지 않은 닫힘도 온다: `header="fix"` 에서 GNB 를 접으면 런처 버튼이 사라지므로
70
+ * 목록이 닫히고 `false` 가 온다.
71
+ */
72
+ onOpenChange?: (open: boolean) => void;
73
+ }
3
74
  export interface SGnbProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {
4
75
  /** 메뉴 스타일: box(라운드) / belt(풀폭 행). 미지정 시 SLayout 의 type 을 따른다. */
5
76
  type?: SGnbType;
6
77
  /**
7
78
  * 상단바 구조: fix(GNB 폭 고정) / full(레이아웃 전폭). 미지정 시 SLayout 의 header 를 따른다.
8
- * 단, useRail 이고 레일에 children 없는 아이템이 있으면 메뉴 폭이 출렁이므로 full 로 강제된다.
79
+ * 단, showRail 이고 레일에 children 없는 아이템이 있으면 메뉴 폭이 출렁이므로 full 로 강제된다.
9
80
  */
10
81
  header?: SGnbHeader;
11
82
  /** 색상 테마: light / dark */
12
83
  color?: SGnbColor;
13
- /** 메뉴 트리 (depth1 → depth2 → depth3). useRail 이면 첫 depth 가 레일이 되고 그 children 이 depth1 이 된다. */
84
+ /** 메뉴 트리 (depth1 → depth2 → depth3). showRail 이면 첫 depth 가 레일이 되고 그 children 이 depth1 이 된다. */
14
85
  items: SGnbMenuItem[];
15
86
  /**
16
87
  * 좌측 레일 사용 여부. 켜면 items 의 첫 depth 가 아이콘+라벨 버튼의 세로 레일로 서고,
17
- * 선택된 레일 아이템의 children 이 오른쪽 메뉴 패널에 깔린다. 미지정 시 SLayout 의 useRail 을 따른다.
88
+ * 선택된 레일 아이템의 children 이 오른쪽 메뉴 패널에 깔린다. 미지정 시 SLayout 의 showRail 을 따른다.
18
89
  * children 없는 레일 아이템이 활성이면 메뉴 패널은 렌더되지 않고 레일만 남는다.
19
90
  */
20
- useRail?: boolean;
91
+ showRail?: boolean;
21
92
  /** 현재 선택된 아이템 value */
22
93
  value?: string;
23
94
  /** 선택 변경 (sdUpdate) */
@@ -27,9 +98,12 @@ export interface SGnbProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'>
27
98
  /** 접힘(레일) 상태. 미지정 시 SLayout 의 folded 를 따른다. */
28
99
  folded?: boolean;
29
100
  /** 접힘 토글 (sdFoldChange) */
30
- onFoldChange?: (folded: boolean) => void;
31
- /** 앱런처(그리드) 버튼 클릭. 미지정 시 런처 버튼을 렌더하지 않는다. 접힘 레일(fix)에는 폴드 버튼만 남으므로 표시되지 않는다. */
32
- onLauncherClick?: () => void;
101
+ onFoldedChange?: (folded: boolean) => void;
102
+ /**
103
+ * 앱런처(그리드) 버튼. 미지정 시 런처 버튼을 렌더하지 않는다.
104
+ * 접힘 레일(fix)에는 폴드 버튼만 남으므로 표시되지 않는다.
105
+ */
106
+ launcher?: SGnbLauncher;
33
107
  /** 상단바 로고 영역 (slot). header="full" 이면 폭이 140px 로 고정된다. */
34
108
  logo?: ReactNode;
35
109
  /**
@@ -40,12 +114,12 @@ export interface SGnbProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'>
40
114
  topContent?: ReactNode;
41
115
  /**
42
116
  * 레일 상단 고정 슬롯. 레일 아이템이 많아 넘치면 아이템 목록(ul)만 스크롤되고
43
- * 이 슬롯은 레일 상단(상단바 바로 아래)에 붙어 고정된다. useRail 일 때만 렌더된다.
117
+ * 이 슬롯은 레일 상단(상단바 바로 아래)에 붙어 고정된다. showRail 일 때만 렌더된다.
44
118
  */
45
119
  railTop?: ReactNode;
46
120
  /**
47
121
  * 레일 하단 고정 슬롯. 레일 아이템이 많아 넘치면 아이템 목록(ul)만 스크롤되고
48
- * 이 슬롯은 레일 하단에 붙어 고정된다. useRail 일 때만 렌더된다.
122
+ * 이 슬롯은 레일 하단에 붙어 고정된다. showRail 일 때만 렌더된다.
49
123
  */
50
124
  railFooter?: ReactNode;
51
125
  /**
@@ -80,6 +154,15 @@ export interface SGnbProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'>
80
154
  defaultMenuWidth?: number;
81
155
  /** 메뉴 폭이 확정될 때(드래그를 놓거나 방향키 조작). 드래그하는 동안에는 오지 않는다 */
82
156
  onMenuWidthChange?: (width: number) => void;
157
+ /**
158
+ * system 슬롯(`SGnbSystem`). 놓이는 자리와 형태는 `header` 가 정한다.
159
+ * - fix : GNB 맨 아래 세로 판. 펼치면 메뉴 컬럼 바닥에, 접히면 `foldedFooter` 아래 레일 바닥에
160
+ * 여백 없이 붙는다. showRail 에서 메뉴가 없는 레일 아이템이 활성이면 메뉴 컬럼째 사라지므로
161
+ * 이 슬롯도 함께 빠진다.
162
+ * - full: 전폭 상단바 오른쪽 끝에 가로 한 줄로 선다. 상단바는 접어도 남으므로 조각들도 늘 남는다.
163
+ * 색·형태는 GNB 가 내려주므로 SGnbSystem 에 다시 넘기지 않아도 된다.
164
+ */
165
+ system?: ReactNode;
83
166
  /** 메뉴 landmark(nav) 의 접근성 레이블. 한 화면에 nav 가 여럿일 때 구분한다. */
84
167
  ariaLabel?: string;
85
168
  }
@@ -91,8 +174,9 @@ export interface SGnbProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'>
91
174
  * header 가 배치와 접힘 형태를 정한다:
92
175
  * - fix: 상단바가 GNB 컬럼(메뉴 폭) 안에 있다. 접으면 48px 세로 레일로 좁혀지고 상단바에는 폴드 버튼만 남는다.
93
176
  * - full: 상단바가 레이아웃 전폭을 가로지르고 그 아래 [메뉴 | 페이지]. 접으면 메뉴만 사라진다.
177
+ * system 조각들도 메뉴 바닥이 아니라 이 상단바 오른쪽 끝으로 올라온다.
94
178
  *
95
- * useRail 이면 items 의 첫 depth 가 좌측 레일(아이콘+라벨 68px)로 서고, 선택된 레일 아이템의
179
+ * showRail 이면 items 의 첫 depth 가 좌측 레일(아이콘+라벨 68px)로 서고, 선택된 레일 아이템의
96
180
  * children 이 메뉴 패널의 depth1 이 된다 — 트리는 그대로 두고 어디부터 그릴지만 바뀐다.
97
181
  * children 없는 레일 아이템은 자기 자신이 선택(리프)이라 메뉴 패널을 렌더하지 않는다. 이런 리프가
98
182
  * 하나라도 있으면 활성에 따라 메뉴 폭이 출렁이므로 header 는 full 로 강제해 상단바를 전폭에 고정한다.
@@ -48,6 +48,8 @@ export declare const GNB_MENU: Record<SGnbType, {
48
48
  depth1FontWeight: number;
49
49
  itemFontSize: number;
50
50
  itemLineHeight: number;
51
+ itemFontWeight: number;
52
+ itemFontWeightSelected: number;
51
53
  }>;
52
54
  /**
53
55
  * 색상(color 축). light → --cmp-gnb-light-* 색, dark → --cmp-gnb-dark-* 색
@@ -78,7 +80,7 @@ export declare const GNB_COMMON: {
78
80
  foldWidth: string;
79
81
  };
80
82
  /**
81
- * 좌측 레일(useRail) — items 의 첫 depth 를 아이콘+라벨 버튼으로 세우는 1차 내비게이션.
83
+ * 좌측 레일(showRail) — items 의 첫 depth 를 아이콘+라벨 버튼으로 세우는 1차 내비게이션.
82
84
  * 선택 색은 레일 전용 토큰이 없어 메뉴 아이템의 선택 색(item-bg-selected / item-fg-selected)을 함께 쓴다.
83
85
  */
84
86
  export declare const GNB_RAIL: {
@@ -114,13 +116,13 @@ export declare const GNB_EXPAND_MS = 200;
114
116
  * 메뉴 고정 폭. 두 header 모두 메뉴는 이 폭으로 좌측에 붙는다(토큰 없음 → 상수).
115
117
  * header="full" 에서 SLayout 이 "메뉴 오른쪽 = 페이지" 영역을 잡을 때도 이 값을 쓴다.
116
118
  */
117
- export declare const GNB_MENU_WIDTH = 240;
119
+ export declare const GNB_MENU_WIDTH = 214;
118
120
  /**
119
121
  * resizable 일 때 메뉴 폭이 움직일 수 있는 범위(px). 레일 폭은 고정이고 메뉴 컬럼만 늘고 준다.
120
- * 디자인이 아직 확정한 값이 아니라 임시다 — 확정되면 토큰으로 내려온다.
122
+ * 기본 폭(GNB_MENU_WIDTH)이 이 범위 안에 있다. 대응 토큰이 없어 상수로 둔다.
121
123
  */
122
124
  export declare const GNB_MENU_MIN_WIDTH = 200;
123
- export declare const GNB_MENU_MAX_WIDTH = 300;
125
+ export declare const GNB_MENU_MAX_WIDTH = 240;
124
126
  /** 메뉴 폭 조절에서 방향키 한 번에 움직이는 양(px). Shift 를 함께 누르면 large. */
125
127
  export declare const GNB_MENU_RESIZE_KEY_STEP: {
126
128
  normal: number;
@@ -135,6 +137,12 @@ export declare const clampGnbMenuWidth: (width: number) => number;
135
137
  * 런처를 쓰지 않으면 그 자리를 로고가 이어받는다 → GNB_FULL_LOGO_WIDTH_NO_LAUNCHER.
136
138
  */
137
139
  export declare const GNB_FULL_LOGO_WIDTH = 140;
140
+ /**
141
+ * 앱런처 버튼·목록의 접근성 이름.
142
+ * 버튼에는 보이는 글자가 없고(아이콘만) 목록에도 제목이 없어, 둘이 같은 이름을 나눠 갖는다 —
143
+ * 스크린리더에서 "무엇을 눌러 무엇이 열렸는지" 가 한 이름으로 이어진다.
144
+ */
145
+ export declare const GNB_LAUNCHER_LABEL = "app launcher";
138
146
  /**
139
147
  * 상단바에서 아이콘 버튼끼리 붙는 간격(px, 디자인 스펙 — 전용 토큰 없음).
140
148
  * header="full" 의 런처↔폴드가 여기 해당한다. 슬롯(로고·topContent)과의 간격은
@@ -152,7 +160,7 @@ export declare const GNB_TOP_ICON_SIZE = 24;
152
160
  */
153
161
  export declare const GNB_FULL_LOGO_WIDTH_NO_LAUNCHER: number;
154
162
  /**
155
- * useRail 에서 value 를 품은 첫 depth(레일) 아이템의 value.
163
+ * showRail 에서 value 를 품은 첫 depth(레일) 아이템의 value.
156
164
  * value 자체가 레일 아이템이면 그 값을, 어디에도 없으면 undefined 를 반환한다.
157
165
  */
158
166
  export declare function findGnbRailValue(items: SGnbMenuItem[], value: string): string | undefined;
@@ -160,3 +168,8 @@ export declare function findGnbRailValue(items: SGnbMenuItem[], value: string):
160
168
  export declare function findGnbSiblingValues(items: SGnbMenuItem[], value: string): string[];
161
169
  /** value 로 선택된 아이템의 조상 value 목록(자기 자신 제외)을 반환 → 자동 펼침용 */
162
170
  export declare function findGnbAncestors(items: SGnbMenuItem[], value: string): string[];
171
+ /**
172
+ * value 를 가진 아이템 아래의 **하위 가지**(children 을 가진 자손) value 목록을 반환.
173
+ * 부모를 펼칠 때 그 아래 가지도 전부 함께 펼치는 용도 — 리프는 펼침 대상이 아니라 제외한다.
174
+ */
175
+ export declare function findGnbDescendantBranchValues(items: SGnbMenuItem[], value: string): string[];
@@ -1,2 +1,2 @@
1
- export { SGnb, type SGnbProps } from './SGnb';
1
+ export { SGnb, SGnbSystemContext, type SGnbProps, type SGnbSystemContextValue } from './SGnb';
2
2
  export { GNB_HEADER, GNB_MENU, GNB_COLORS, GNB_COMMON, GNB_FOLD_MS, GNB_FULL_LOGO_WIDTH, GNB_MENU_WIDTH, GNB_RAIL, GNB_RAIL_WIDTH, findGnbAncestors, findGnbRailValue, type SGnbType, type SGnbHeader, type SGnbColor, type SGnbMenuItem, } from './gnb.config';