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
@@ -0,0 +1,56 @@
1
+ /**
2
+ * 직교 좌표 차트(bar·line)의 눈금 장치 — 격자선·기준선·눈금 라벨.
3
+ * 파이·도넛은 이 파일을 쓰지 않는다.
4
+ *
5
+ * 격자선은 그림과 같은 좌표계에 있어야 하므로 **SVG 안**에, 눈금 라벨은 글자 폭이
6
+ * 열 너비를 정해야 하므로 **SVG 밖 HTML** 에 둔다. 둘은 같은 비율(`ratioOf`)로
7
+ * 위치를 계산하므로 어긋나지 않는다.
8
+ */
9
+ import type { CSSProperties, Ref } from 'react';
10
+ import { type ChartScale } from './scale';
11
+ import type { SChartDirection } from './types';
12
+ /** 눈금 라벨과 그림 사이 간격 — 시안 실측 8px. */
13
+ export declare const AXIS_LABEL_GAP = 8;
14
+ /**
15
+ * 항목 축 양끝에 두는 여백(px).
16
+ *
17
+ * 항목들이 나눠 갖는 자리(band) 바깥에 따로 붙는다 — 첫 항목과 마지막 항목이 차트
18
+ * 경계에 붙어 잘린 것처럼 보이지 않게 한다. 세로 차트는 좌우, 가로 차트는 위아래다.
19
+ *
20
+ * **선 차트(`SLineChart`)는 쓰지 않는다.** 선은 첫 점이 왼쪽 끝, 마지막 점이 오른쪽
21
+ * 끝에 서서 추이를 그림 폭 전체에 펼친다.
22
+ */
23
+ export declare const AXIS_EDGE_PADDING = 24;
24
+ export interface ChartGridProps {
25
+ scale: ChartScale;
26
+ direction: SChartDirection;
27
+ /** 그림 영역 크기(px) */
28
+ width: number;
29
+ height: number;
30
+ }
31
+ /**
32
+ * 격자선 + 기준선. `<svg>` 안에 넣는다.
33
+ *
34
+ * 기준선(0)은 격자선보다 진하다 — 막대가 어디서 자라기 시작하는지가 눈금 하나보다
35
+ * 중요한 정보라서다. 음수가 없으면 기준선은 자연히 축의 끝에 놓인다.
36
+ */
37
+ export declare function ChartGrid({ scale, direction, width, height }: ChartGridProps): import("react").JSX.Element;
38
+ export interface ChartAxisLabelsProps {
39
+ scale: ChartScale;
40
+ direction: SChartDirection;
41
+ /** 값 → 표시 문자열 */
42
+ format: (value: number) => string;
43
+ className?: string;
44
+ style?: CSSProperties;
45
+ /**
46
+ * 자리를 잡아 주는 사본 라벨. 이 크기가 곧 **가장 큰 라벨의 크기**라, 호출 쪽은
47
+ * 이걸 재서 그림을 그만큼 안으로 물린다 — 끝 눈금이 차트 밖으로 나가지 않는다.
48
+ */
49
+ sampleRef?: Ref<HTMLSpanElement>;
50
+ }
51
+ /**
52
+ * 눈금 라벨.
53
+ * - 세로 차트: 세로 열 하나(그림 왼쪽). 각 라벨이 자기 격자선 높이에 중앙 정렬된다.
54
+ * - 가로 차트: 가로 행 하나(그림 아래). 각 라벨이 자기 격자선 x 에 중앙 정렬된다.
55
+ */
56
+ export declare function ChartAxisLabels({ scale, direction, format, className, style, sampleRef, }: ChartAxisLabelsProps): import("react").JSX.Element;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * 차트 바깥 틀 — 패딩·배경과 "제목·단위 / 범례 / 그림" 칸의 세로 배치.
3
+ * 그림이 무엇인지(막대·선·파이)는 알지 않는다.
4
+ */
5
+ import { type CSSProperties, type HTMLAttributes, type ReactNode } from 'react';
6
+ import type { SChartLegendPosition } from './types';
7
+ export interface ChartFrameProps extends HTMLAttributes<HTMLDivElement> {
8
+ /** 차트 제목 — 왼쪽 위에 놓인다 */
9
+ title?: string;
10
+ /** 단위 — 오른쪽 위에 "단위 : " 를 붙여 놓는다. `title` 이 없어도 홀로 놓일 수 있다 */
11
+ unit?: string;
12
+ /** 범례 — 없으면 칸 자체가 사라진다 */
13
+ legend?: ReactNode;
14
+ /** 범례 위치 */
15
+ legendPosition?: SChartLegendPosition;
16
+ /** 그림 영역 */
17
+ children: ReactNode;
18
+ className?: string;
19
+ style?: CSSProperties;
20
+ }
21
+ export declare const ChartFrame: import("react").ForwardRefExoticComponent<ChartFrameProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 한 항목을 짚으면 나머지가 물러나는 전환 — 막대·조각·점·값 라벨·범례가 **같은 속도로** 움직인다.
3
+ *
4
+ * 속도가 갈리면 같은 손짓 하나에 그림이 여러 번 나뉘어 반응하는 것처럼 보인다.
5
+ * 그래서 값을 각 차트에 두지 않고 여기 한 곳에 둔다.
6
+ *
7
+ * **전환 대상은 「흐려지는 것」뿐이다.** 짚은 항목이 커지는 것(막대·선의 값 라벨이 `typo-*` 로
8
+ * 굵어지는 것, 파이·도넛 조각이 부푸는 것)은 일부러 즉시 바꾼다 — 글자가 늘어나거나 도형이
9
+ * 자라는 중간 상태가 오히려 읽기 나쁘기 때문이다.
10
+ *
11
+ * ⚠️ **둘로 나뉜 이유**: 차트마다 흐려지는 방식이 다르다. 막대·조각·범례는 불투명도를 낮추지만,
12
+ * 선 차트의 점은 선 위에 앉아 있어 불투명도를 낮추면 밑의 선이 비쳐 지저분해진다. 그래서 점은
13
+ * 옅은 **색으로 갈아끼운다**(`linePointDimmedColor`). 전환할 속성이 다르니 클래스도 나뉜다 —
14
+ * 점에 `transition-opacity` 를 붙이면 아무 일도 일어나지 않는다.
15
+ */
16
+ /** 불투명도로 물러나는 것 — 막대 · 파이/도넛 조각 · 값 라벨 · 범례 */
17
+ export declare const CHART_DIM_OPACITY_TRANSITION = "transition-opacity duration-200 ease-out motion-reduce:transition-none";
18
+ /** 색으로 물러나는 것 — 선 차트의 점 (`transition-colors` 가 `fill` 을 포함한다) */
19
+ export declare const CHART_DIM_COLOR_TRANSITION = "transition-colors duration-200 ease-out motion-reduce:transition-none";
@@ -0,0 +1,21 @@
1
+ export interface ChartLegendItem {
2
+ /** 계열 이름 */
3
+ name: string;
4
+ /** 점 색 (CSS 색 문자열) */
5
+ color: string;
6
+ /** `default` 변형에서만 쓰는 값 텍스트. `simple` 에서는 무시한다 */
7
+ value?: string;
8
+ /** `value` 글자색 (CSS 색 문자열). 없으면 이름과 같은 기본색을 쓴다 */
9
+ valueColor?: string;
10
+ }
11
+ export interface ChartLegendProps {
12
+ items: ChartLegendItem[];
13
+ /** 가로 정렬 — 시안은 그림 위 가운데다. `default` 변형에는 적용하지 않는다 */
14
+ align?: 'start' | 'center' | 'end';
15
+ /** 지금 강조 중인 계열. 나머지는 흐려진다 */
16
+ activeIndex?: number | null;
17
+ className?: string;
18
+ /** 범례 모양. `simple` 가로 나열(값 없음) · `default` 이름+값을 세로로 쌓는 목록 */
19
+ variant?: 'simple' | 'default';
20
+ }
21
+ export declare function ChartLegend({ items, align, activeIndex, className, variant, }: ChartLegendProps): import("react").JSX.Element | null;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * 차트 팔레트 — `--cmp-chart-palette-*` 를 계열 인덱스로 고르는 규칙.
3
+ *
4
+ * 계열이 팔레트 색 수보다 많으면 앞에서부터 **순환**한다. 색이 반복되면 범례로만
5
+ * 구분되므로, 계열이 많을 때는 `multi`(11색) 를 쓰는 편이 낫다.
6
+ *
7
+ * 같은 모양의 팔레트가 하나 더 있다 — 선 그래프의 흐린 점
8
+ * (`--cmp-chart-line-point-dimmed-palette-*`). 잎 이름(`single` · `multi-*` ·
9
+ * `gradation-*` · `variation-*`)이 본 팔레트와 1:1 이라 고르는 규칙을 그대로 쓰고
10
+ * 변수 접두어만 바꾼다. 둘을 따로 적어 두면 팔레트에 색이 늘 때 한쪽만 고치게 된다.
11
+ */
12
+ import type { SChartColor, SChartPalette } from './types';
13
+ export declare const CHART_COLORS: Record<SChartColor, string>;
14
+ export declare const CHART_PALETTES: Record<"default" | "multi" | "gradation", readonly string[]>;
15
+ export declare function paletteColor(palette: SChartPalette, index: number, colors?: readonly SChartColor[]): string;
16
+ /**
17
+ * 선 그래프에서 **짚지 않은 항목의 점** 색.
18
+ *
19
+ * 막대·원형은 흐릴 때 불투명도를 낮추지만, 선 그래프의 점은 옅은 색을 따로 갖는다
20
+ * (`chart.line.point.dimmed.palette.*`). 점이 선 위에 앉아 있어 불투명도를 낮추면
21
+ * 아래의 선이 비쳐 점이 탁해지기 때문이다 — 색을 바꾸면 점은 끝까지 또렷한 원으로 남는다.
22
+ */
23
+ export declare function linePointDimmedColor(palette: SChartPalette, index: number, colors?: readonly SChartColor[]): string;
24
+ /**
25
+ * 계열 인덱스 → 값 텍스트 색. `paletteColor` 와 같은 규칙으로 고르되
26
+ * `chart.dataValue.palette.*`(위 주석 참조)를 쓴다.
27
+ */
28
+ export declare function dataValueColor(palette: SChartPalette, index: number, colors?: readonly SChartColor[]): string;
@@ -0,0 +1,99 @@
1
+ /**
2
+ * 원형 차트(파이·도넛)의 공용 구현 — 조각 계산과 그림.
3
+ *
4
+ * `SPieChart`·`SDonutChart` 는 이 위의 얇은 껍데기다. 두 차트는 가운데를 비우는지
5
+ * (`innerRatio`)만 다르다. 도넛의 빈 가운데에는 글자를 두지 않는다.
6
+ *
7
+ * 원형 고유의 치수는 `chart.doughnut.*` 토큰이 정한다 — 이름은 도넛이지만 **파이도 같이
8
+ * 쓴다.** 두 차트가 한 구현이라 값을 따로 두면 구멍 유무만 달라야 할 것이 색·움직임까지
9
+ * 달라진다. 다만 조각은 SVG 경로를 좌표로 계산하므로 `var(--cmp-…)` 문자열을 넣을 수 없는
10
+ * 자리가 있다 — 그런 상수는 막대의 `BAR_RADIUS` 와 같은 규칙으로, 토큰과 **같은 값을 손으로
11
+ * 맞춰** 두고 어느 토큰을 베꼈는지 각 상수에 적는다. 불투명도처럼 CSS 로 넘길 수 있는 것은
12
+ * 토큰을 직접 참조한다.
13
+ */
14
+ import { type CSSProperties, type ReactNode } from 'react';
15
+ import type { SChartColor, SChartLegendPosition, SChartPalette } from './types';
16
+ /**
17
+ * 도넛 안쪽 반지름 / 바깥 반지름. 너비에 따라 구멍과 고리 두께가 함께 늘고 준다.
18
+ * 폭이 반응형이라 구멍을 px 로 고정하지 않고 비율로 둔다 — 토큰
19
+ * `chart.doughnut.innerRatio`(`--cmp-chart-doughnut-innerRatio`)도 px 이 아닌 배수다.
20
+ * 반지름 계산에 곱하는 수라 CSS 변수로 넘기지 못하고 같은 값을 손으로 맞춰 둔다.
21
+ */
22
+ export declare const DONUT_INNER_RATIO = 0.4;
23
+ /**
24
+ * 비율 라벨을 적는 최소 몫. 이보다 좁은 조각은 글자가 조각 밖으로 넘쳐 이웃 조각의
25
+ * 라벨과 겹치므로 적지 않는다 — 값은 툴팁으로 읽는다.
26
+ */
27
+ export declare const LABEL_MIN_RATIO = 0.05;
28
+ /** 파이의 비율 라벨이 놓이는 반지름(바깥 반지름에 대한 비). 가운데는 조각이 좁아 바깥쪽에 둔다. */
29
+ export declare const PIE_LABEL_RADIUS_RATIO = 0.65;
30
+ /**
31
+ * 짚은 조각이 자라는 길이(px). 각도는 그대로 두고 **안팎 양쪽으로** 자라, 이웃 조각을 덮지
32
+ * 않고 고리만 두꺼워진다. 배율이 아니라 px 이라 차트가 커져도 자라는 양은 늘 같게 보인다.
33
+ *
34
+ * 토큰 `chart.doughnut.hover.grow` 와 같은 값 — 경로 좌표라 숫자여야 해서 손으로 맞춰 둔다.
35
+ */
36
+ export declare const HOVER_GROW = 4;
37
+ /**
38
+ * 짚은 조각의 모서리 둥글기(px). 자란 조각만 네 모서리를 둥글린다.
39
+ * 토큰 `chart.doughnut.hover.radius` 와 같은 값 — 위와 같은 이유로 숫자다.
40
+ */
41
+ export declare const HOVER_CORNER = 2;
42
+ /** 조각 하나. */
43
+ export interface RadialSlice {
44
+ name: string;
45
+ value: number;
46
+ }
47
+ /** 클릭·툴팁이 가리키는 조각. */
48
+ export interface RadialSlicePoint {
49
+ /** `data` 안에서의 인덱스 */
50
+ index: number;
51
+ name: string;
52
+ value: number;
53
+ /** 그려진 조각 전체의 합에 대한 몫(0~1) */
54
+ ratio: number;
55
+ }
56
+ export interface RadialChartProps {
57
+ data: RadialSlice[];
58
+ /** 차트 제목 — 왼쪽 위에 놓인다 */
59
+ title?: string;
60
+ /** 단위 — 오른쪽 위에 "단위 : " 를 붙여 놓는다 */
61
+ unit?: string;
62
+ palette?: Exclude<SChartPalette, 'default'>;
63
+ colors?: SChartColor[];
64
+ showValueLabel?: boolean;
65
+ showLegend?: boolean;
66
+ legendPosition?: SChartLegendPosition;
67
+ /** 범례 모양. `simple` 이름만 가로로 · `default` 이름+값을 세로로 쌓는 목록. 도넛 전용 — 파이는 항상 `simple` 이다 */
68
+ legendVariant?: 'simple' | 'default';
69
+ showTooltip?: boolean;
70
+ formatValue?: (value: number) => string;
71
+ onSliceClick?: (slice: RadialSlicePoint) => void;
72
+ tooltipFooter?: (slice: RadialSlicePoint) => ReactNode;
73
+ className?: string;
74
+ style?: CSSProperties;
75
+ /** 가운데를 비우는 비율. 0 이면 파이다 */
76
+ innerRatio: number;
77
+ /** 스크린 리더가 읽는 그래프 종류 */
78
+ kind: string;
79
+ }
80
+ /** 몫 → 퍼센트 문자열. 1% 가 안 되는 조각을 0% 로 적으면 없는 조각처럼 읽힌다. */
81
+ export declare function formatRatio(ratio: number): string;
82
+ /**
83
+ * 조각 경로. 바깥 호를 시계 방향으로 돌고, 도넛이면 안쪽 호를 거꾸로 돌아 닫는다.
84
+ *
85
+ * 한 바퀴 전체(조각이 하나)는 호 하나로 그릴 수 없다 — 시작점과 끝점이 같으면 SVG 가
86
+ * 호를 그리지 않는다. 그래서 반원 둘로 나눠 그리고, 도넛은 `evenodd` 로 가운데를 뚫는다.
87
+ *
88
+ * `corner` 를 주면 네 모서리를 그 반지름으로 둥글린다. 모서리는 반지름 방향 변과 호에
89
+ * 동시에 닿는 원이라, 변은 접점까지 짧아지고 호는 접점까지 각도가 줄어든다. 한 바퀴
90
+ * 전체는 반지름 방향 변이 없어 둥글릴 모서리도 없다.
91
+ */
92
+ export declare function slicePath(center: number, outer: number, inner: number, start: number, end: number, corner?: number): string;
93
+ /**
94
+ * 파이·도넛 공용 그림.
95
+ *
96
+ * 폭은 부모를 따르고(기본 100%), 그림 영역은 그 폭을 한 변으로 하는 **정사각형**이다.
97
+ * 원의 지름은 잰 폭이라 부모가 줄면 원도 함께 준다. 범례는 정사각형 바깥에 붙는다.
98
+ */
99
+ export declare const RadialChart: import("react").ForwardRefExoticComponent<RadialChartProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * 값 축 스케일 — 데이터 범위를 "읽기 좋은 눈금"으로 바꾸고, 값을 픽셀로 옮긴다.
3
+ * 직교 좌표를 쓰는 차트(bar·line)가 공유한다.
4
+ */
5
+ export interface ChartScale {
6
+ /** 눈금 최솟값 (음수가 있으면 0보다 작다) */
7
+ min: number;
8
+ /** 눈금 최댓값 */
9
+ max: number;
10
+ /** 축에 그릴 눈금값 — 작은 값부터 */
11
+ ticks: number[];
12
+ }
13
+ /**
14
+ * 데이터 범위에서 눈금을 만든다.
15
+ *
16
+ * - 0 은 항상 범위에 포함한다. 막대는 0 에서 자라므로 기준선이 축 안에 있어야 한다.
17
+ * - `fixedMax` 를 주면 위쪽 끝을 그 값으로 고정한다(데이터가 넘으면 넘은 채로 그린다).
18
+ * - 값이 전부 0 이거나 데이터가 없으면 `0..tickCount-1` 의 밋밋한 축을 돌려준다 —
19
+ * 축이 통째로 사라지는 것보다 빈 격자가 남는 편이 "데이터가 없다" 를 더 잘 보여 준다.
20
+ */
21
+ export declare function niceScale(values: number[], tickCount: number, fixedMax?: number): ChartScale;
22
+ /**
23
+ * 값 → 축 위의 비율(0~1). `min` 이 0, `max` 가 1 이다.
24
+ * 픽셀 변환은 방향(위로 자라는지 오른쪽으로 자라는지)을 아는 쪽에서 한다.
25
+ */
26
+ export declare function ratioOf(value: number, scale: ChartScale): number;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * 차트 툴팁 — 기준 막대 옆에 서는 값 상자.
3
+ *
4
+ * 커서를 따라다니지 않는다. 커서를 따라가면 상자가 막대를 가리는 자리로 계속 밀려들고,
5
+ * 같은 값을 읽는 동안에도 상자가 흔들려 눈이 따라가야 한다. 대신 호출 쪽이 정한
6
+ * **기준 막대**(`anchor`)에 붙여 한자리에 세운다.
7
+ *
8
+ * 차트 컨테이너 **안에** absolute 로 뜬다. Portal 을 쓰지 않는 이유: 차트는 카드·모달
9
+ * 안에 들어가는 일이 많은데, 상자가 차트 밖으로 나갈 만큼 크지 않아 굳이 부모를
10
+ * 벗어날 이유가 없다. 대신 부모가 `relative` 여야 한다.
11
+ */
12
+ import type { ReactNode } from 'react';
13
+ export interface ChartTooltipItem {
14
+ /** 계열 점 색 */
15
+ color: string;
16
+ /** 계열 이름 */
17
+ label: string;
18
+ /** 표시할 값 (이미 포맷된 문자열) */
19
+ value: string;
20
+ }
21
+ /** 상자가 붙을 기준 막대의 자리 — 컨테이너 기준 px. */
22
+ export interface ChartTooltipAnchor {
23
+ /** 막대의 왼쪽 끝 */
24
+ left: number;
25
+ /** 막대의 오른쪽 끝 */
26
+ right: number;
27
+ /** 막대의 위쪽 끝 */
28
+ top: number;
29
+ }
30
+ /**
31
+ * 기준 자리에서 상자를 띄우는 가로 거리(px). 오른쪽에 설 때와 왼쪽으로 넘길 때가 다를 수 있어
32
+ * 두 값을 따로 받는다 — **음수면 그만큼 기준 자리 안으로 물린다.**
33
+ */
34
+ export interface ChartTooltipGapX {
35
+ /** 오른쪽에 세울 때 — 기준 자리의 오른쪽 끝에서 상자 왼쪽 변까지 */
36
+ after: number;
37
+ /** 왼쪽으로 넘길 때 — 상자 오른쪽 변에서 기준 자리의 왼쪽 끝까지 */
38
+ before: number;
39
+ }
40
+ export interface ChartTooltipProps {
41
+ /** 상자 제목 — 보통 카테고리 이름 */
42
+ title: string;
43
+ items: ChartTooltipItem[];
44
+ /** 상자를 붙일 기준 막대 */
45
+ anchor: ChartTooltipAnchor;
46
+ /** 상자가 넘치면 안 되는 범위(px). 보통 그림 영역 크기다 */
47
+ bounds?: {
48
+ width: number;
49
+ height: number;
50
+ };
51
+ /** 기준 자리에서 띄우는 가로 거리. 기본값은 양쪽 다 4px */
52
+ gapX?: ChartTooltipGapX;
53
+ /**
54
+ * 값 목록 아래에 붙이는 내용 — 차트의 `tooltipFooter` 가 짚은 항목을 받아 그린 것이다.
55
+ * 상자가 마우스를 통과시키므로 누를 수 있는 것은 넣지 못한다.
56
+ */
57
+ footer?: ReactNode;
58
+ className?: string;
59
+ }
60
+ export declare function ChartTooltip({ title, items, anchor, bounds, gapX, footer, className, }: ChartTooltipProps): import("react").JSX.Element;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * 차트 공용 타입.
3
+ *
4
+ * `src/lib/chart/*` 는 차트 컴포넌트들이 나눠 쓰는 **비공개 구현**이다 — `src/index.ts`
5
+ * 로 내보내지 않는다. 소비자가 쓰는 이름(`SBarChartPalette` 등)은 각 컴포넌트가 같은
6
+ * 값을 **다시 선언**한다: docs:gen 이 컴포넌트 디렉토리만 훑기 때문에, 여기 둔 타입은
7
+ * README 에 뜻이 실리지 않는다. 두 선언이 어긋나면 컴파일이 깨진다.
8
+ *
9
+ * `src/components/chart/` 가 아니라 lib 에 두는 이유: components 아래 폴더는 전부
10
+ * "스토리·playground 를 가진 공개 컴포넌트" 로 취급돼 `check:docs` 가 데모 누락을
11
+ * 지적한다. 여기는 그런 대상이 아니다.
12
+ */
13
+ /**
14
+ * 색 팔레트.
15
+ * - `default` 파랑 한 색. 계열이 하나거나 색으로 나눌 것이 없을 때
16
+ * - `multi` 서로 무관한 항목(11색)을 순서대로
17
+ * - `gradation` 한 지표의 단계(6색)를 진한 쪽부터 순서대로
18
+ * - `custom` `colors` 로 고른 색을 순서대로
19
+ */
20
+ export type SChartPalette = 'default' | 'multi' | 'gradation' | 'custom';
21
+ /**
22
+ * `custom` 팔레트에서 고를 수 있는 색 이름.
23
+ * positive=늘어남 · negative=줄어듦 · neutral=변화 없음 을 뜻한다.
24
+ */
25
+ export type SChartColor = 'positivePrimary' | 'positiveSecondary' | 'negativePrimary' | 'negativeSecondary' | 'neutralPrimary' | 'neutralSecondary';
26
+ /** 막대가 자라는 방향 */
27
+ export type SChartDirection = 'vertical' | 'horizontal';
28
+ /** 범례 위치 */
29
+ export type SChartLegendPosition = 'top' | 'bottom';
@@ -0,0 +1,39 @@
1
+ export interface ElementSize {
2
+ width: number;
3
+ height: number;
4
+ }
5
+ /**
6
+ * 요소의 실제 픽셀 크기를 관찰한다.
7
+ *
8
+ * 차트는 막대 두께·간격이 px 고정값이라 그림을 픽셀 좌표로 그려야 한다 — viewBox 로
9
+ * 늘려 맞추면 막대만 굵어지고 글자가 찌그러진다. 그래서 그릴 면적을 먼저 재고,
10
+ * 그 안에 1:1 로 그린다.
11
+ *
12
+ * 첫 렌더에서는 `{0, 0}` 이다. 크기가 0 인 동안은 그리지 않는 쪽이 안전하다.
13
+ */
14
+ export declare function useElementSize<T extends HTMLElement>(): {
15
+ ref: import("react").RefObject<T | null>;
16
+ size: ElementSize;
17
+ };
18
+ /** SVG `<text>` 가 실제로 차지하는 글자 상자. */
19
+ export interface SvgTextMetrics {
20
+ /** 기준선에서 글자 윗변까지 — 위쪽이라 음수다 */
21
+ top: number;
22
+ /** 글자 상자의 폭 */
23
+ width: number;
24
+ }
25
+ /**
26
+ * SVG `<text>` 의 글자 상자를 잰다. **기준선(y=0)에 놓고 써야** `top` 이 뜻을 갖는다.
27
+ *
28
+ * HTML 사본으로 재면 줄 상자(`line-height`)가 잡혀 글자 윗변보다 한참 위가 나온다 —
29
+ * `body.md.bold` 는 글자 14px 에 줄 24px 이라 10px 이 뜬다. `getBBox()` 는 그린 글자에
30
+ * 딱 맞는 상자를 주므로 폰트가 바뀌어도 따로 맞출 값이 없다.
31
+ *
32
+ * 글자가 바뀌면 상자도 바뀌므로 **매 렌더 뒤에** 다시 잰다. ResizeObserver 를 쓰지
33
+ * 않는 이유는 SVG 도형 요소 지원이 브라우저마다 갈리기 때문이다. 값이 그대로면 상태를
34
+ * 바꾸지 않으므로 렌더가 되풀이되지 않는다.
35
+ */
36
+ export declare function useSvgTextMetrics(): {
37
+ ref: import("react").RefObject<SVGTextElement | null>;
38
+ metrics: SvgTextMetrics;
39
+ };
@@ -1,7 +1,8 @@
1
1
  /** 로컬 기준 오늘 YYYY-MM-DD */
2
2
  export declare function todayStr(): string;
3
3
  export declare function formatDate(year: number, month: number, day: number): string;
4
- export declare function calcYearMonth(year: number, month: number, dir: 'prev' | 'next'): {
4
+ /** year/month(1-12) 에서 dir 방향으로 step 달 이동한 연·월 (기본 1달) */
5
+ export declare function calcYearMonth(year: number, month: number, dir: 'prev' | 'next', step?: number): {
5
6
  year: number;
6
7
  month: number;
7
8
  };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 계층 목록(그룹 헤더 + 리프가 한 줄로 펴진 배열)을 검색어로 좁힌다.
3
+ * SSelect 의 드롭다운과 SChipFilter 의 편집 팝오버가 같은 규칙을 쓰도록 여기 한 곳에 둔다 —
4
+ * 같은 계층 목록이 두 컴포넌트에서 다르게 검색되면 소비 앱이 어느 쪽을 믿어야 할지 알 수 없다.
5
+ */
6
+ /** 펴진 목록의 한 줄이 갖춰야 하는 최소 정보 — 값의 형태는 컴포넌트마다 달라 여기서 보지 않는다 */
7
+ export interface DepthRow {
8
+ /** 최상위가 1 */
9
+ depth: number;
10
+ /** children 을 가진 노드 — 그 자체는 값이 되지 않는다 */
11
+ isGroup: boolean;
12
+ }
13
+ /**
14
+ * **그룹 이름도 검색 대상이다.** 사용자가 화면에서 읽은 말은 리프 이름만이 아니라 그 위 분류
15
+ * 이름이기도 해서, 분류명을 쳤는데 아무것도 안 나오면 목록에 없는 것으로 읽힌다.
16
+ *
17
+ * - 리프가 걸리면 그 리프와 **위로 이어지는 헤더**를 남긴다 — 어느 분류 밑인지 알아야 고른다
18
+ * - 그룹이 걸리면 그 그룹과 **아래 전부**를 남긴다 — 분류를 좁혀 그 안을 훑는 조작이다
19
+ * - 자기도 안 걸리고 걸린 자손도 없는 헤더는 걷어낸다 — 헤더만 덩그러니 남으면 결과가 없는데도
20
+ * 목록이 차 있는 것처럼 보인다
21
+ *
22
+ * 계층이 아닌 목록(그룹이 하나도 없는 평평한 배열)에서는 `matches` 를 그대로 통과시킨 것과 같다.
23
+ *
24
+ * @param rows 화면 순서(DFS)대로 펴진 목록
25
+ * @param matches 그 줄이 검색어에 걸리는가 — 라벨을 어떻게 읽을지(HTML 제거 등)는 부르는 쪽이 정한다
26
+ */
27
+ export declare function filterDepthRows<T extends DepthRow>(rows: T[], matches: (row: T) => boolean): T[];
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Storybook 의 Guide 문서 페이지가 쓰는 마크다운 슬라이서.
3
+ *
4
+ * Guide 페이지는 **자기 원문을 갖지 않는다.** AGENTS.md·README.md 를 `?raw` 로 읽어
5
+ * 필요한 `## ` 섹션만 잘라 {@link https://storybook.js.org/docs/writing-docs/doc-blocks Markdown 블록}에 넘긴다.
6
+ * 문서를 Storybook 에 복사해 두면 AGENTS.md 가 바뀔 때마다 조용히 낡고,
7
+ * 이 저장소는 이미 한 변경이 네 곳(README·stories·playground·AGENTS.md)에 흩어져 있다 —
8
+ * 다섯 번째 사본을 만들지 않는 것이 이 파일의 존재 이유다.
9
+ *
10
+ * @example
11
+ * import agents from '../../AGENTS.md?raw';
12
+ * <Markdown>{mdSections(agents, '2.')}</Markdown>
13
+ */
14
+ /**
15
+ * `## ` 섹션을 제목 접두어로 잘라 이어 붙인다. 접두어는 번호(`'2.'`)든 제목(`'설치'`)이든 된다.
16
+ *
17
+ * 넘긴 순서가 아니라 **원문 순서**로 이어 붙인다 — 문서 안의 "위에서 말한" 류의 참조가
18
+ * 순서를 뒤집으면 거짓이 되기 때문이다.
19
+ *
20
+ * 찾지 못한 접두어가 하나라도 있으면 던진다. 조용히 빈 페이지가 되면
21
+ * AGENTS.md 의 절 번호가 바뀐 것을 아무도 모른 채 배포된다.
22
+ */
23
+ export declare function mdSections(md: string, ...prefixes: string[]): string;
24
+ /**
25
+ * 원문의 저장소 상대 링크(`./README.md`)를 Storybook 문서 경로로 바꾼다.
26
+ *
27
+ * 원문은 npm 패키지에 그대로 실려 소비 앱의 `node_modules` 에서 읽히는 것이 1차 용도라
28
+ * 링크가 파일 경로다. Storybook 안에서는 그 경로가 404 이므로 여기서만 갈아 끼운다 —
29
+ * 원문은 손대지 않는다.
30
+ *
31
+ * 표에 없는 링크는 그대로 둔다.
32
+ */
33
+ export declare function relinkToDocs(md: string): string;
34
+ /** {@link mdSections} + {@link relinkToDocs} — Guide 페이지가 쓰는 기본 조합 */
35
+ export declare function guideSections(md: string, ...prefixes: string[]): string;
@@ -0,0 +1,19 @@
1
+ import type { ComponentPropsWithoutRef } from 'react';
2
+ import * as RDropdown from '@radix-ui/react-dropdown-menu';
3
+ import { type SIconName } from '../components/SIcon';
4
+ /**
5
+ * 버튼에 매달린 액션 메뉴(SDropdownButton · SMeatballButton)의 공용 층.
6
+ * 두 컴포넌트가 **같은 메뉴로 그려져야** 해서 한 곳에 둔다 — Root/Trigger 는 트리거 모양이
7
+ * 달라 각 컴포넌트가 갖고, 여기는 Portal + Content + Item 만 맡는다.
8
+ */
9
+ export interface DropdownMenuItem {
10
+ value: string | number;
11
+ label: string;
12
+ icon?: SIconName;
13
+ disabled?: boolean;
14
+ }
15
+ export interface DropdownMenuContentProps extends Omit<ComponentPropsWithoutRef<typeof RDropdown.Content>, 'children'> {
16
+ items: readonly DropdownMenuItem[];
17
+ onItemClick?: (value: string | number) => void;
18
+ }
19
+ export declare function DropdownMenuContent({ items, onItemClick, align, className, ...contentProps }: DropdownMenuContentProps): import("react").JSX.Element;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 필드 폭 등급 — 폼 컨트롤의 너비를 정하는 공용 어휘.
3
+ *
4
+ * 폭은 `maxLength`(= 스키마 상한)로 정한다. 상한이 등급 안에 들어오면 그 등급을 주고,
5
+ * 상한이 `xl` 을 넘거나 상한 자체가 없으면 행 전체(`"100%"`)로 둔다.
6
+ * 이 판단은 `sellmate/field-width-grade` 린트 규칙이 자동으로 검사한다 — 규칙과 이 타입은
7
+ * 같은 토큰(`--cmp-field-width-*`)을 근거로 삼는다.
8
+ *
9
+ * px 를 직접 적는 것보다 등급을 쓰는 편이 낫다. 토큰 값이 바뀌면 등급은 따라가지만
10
+ * 화면에 박아 둔 px 는 그 자리에 남는다.
11
+ */
12
+ /** 폭 등급 이름. 값은 `--cmp-field-width-<grade>` 토큰이 갖는다. */
13
+ export declare const FIELD_WIDTH_GRADES: readonly ["xs", "sm", "md", "lg", "xl"];
14
+ export type SFieldWidthGrade = (typeof FIELD_WIDTH_GRADES)[number];
15
+ /**
16
+ * 폭 prop 이 받는 값.
17
+ *
18
+ * `(string & {})` 는 유니온 리터럴 자동완성을 유지하기 위한 관용 표현이다 — 이게 없으면
19
+ * `string` 이 등급 리터럴을 흡수해 편집기가 등급을 제안하지 못한다. (`SColor` 와 같은 방식)
20
+ */
21
+ export type SFieldWidth = SFieldWidthGrade | number | (string & {});
22
+ export declare const isFieldWidthGrade: (v: unknown) => v is SFieldWidthGrade;
23
+ /**
24
+ * 폭 값을 CSS 길이로 바꾼다.
25
+ * 등급 → `var(--cmp-field-width-<grade>)`
26
+ * 숫자 → px
27
+ * 그 외 → 그대로 (`"100%"` · `"20rem"`)
28
+ *
29
+ * 빈 값(`undefined` · `''` · `0`)은 "지정하지 않음" 으로 본다.
30
+ */
31
+ export declare const fieldWidthValue: (v?: SFieldWidth) => string | undefined;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Radix Floating Content 를 창 높이 안에 가두기 위한 헬퍼 — floating-width.ts 의 높이 버전.
3
+ *
4
+ * Radix 는 충돌이 나면 위치만 밀 뿐(shift) 높이는 줄이지 않는다 — 콘텐츠가 창보다 높으면
5
+ * 밀려난 자리에서 그대로 화면 밖으로 삐져나간다. 실제로 줄이려면 size 미들웨어가 계산해
6
+ * 두는 available-height 를 상한으로 직접 걸어야 한다.
7
+ */
8
+ /** Radix Popover 계열(SPortal·SSelect·SChipInput·SPopover·STooltip 등)이 노출하는 가용 높이. */
9
+ export declare const POPOVER_AVAILABLE_HEIGHT = "var(--radix-popover-content-available-height)";
10
+ /** Radix DropdownMenu 계열(SDropdownButton)이 노출하는 가용 높이. */
11
+ export declare const DROPDOWN_AVAILABLE_HEIGHT = "var(--radix-dropdown-menu-content-available-height)";
12
+ /**
13
+ * 높이 제약을 가용 높이 안으로 가둔다. 값이 없으면 가용 높이 자체가 상한이 된다.
14
+ */
15
+ export declare function clampToAvailableHeight(value: string | number | undefined, availableHeight: string): string;
@@ -13,5 +13,10 @@ export declare const globalOverlayProps: {
13
13
  /**
14
14
  * Radix 의 outside 이벤트(pointerDownOutside/focusOutside/interactOutside)가
15
15
  * 전역 레이어에서 비롯됐는지 판별한다. Radix 는 원본 이벤트를 `detail.originalEvent` 에 담는다.
16
+ *
17
+ * 요소인지는 `instanceof` 가 아니라 `nodeType` 으로 본다. `instanceof` 는 그 realm 의 전역
18
+ * 생성자와 견주는 것이라 두 곳에서 어긋난다 — `Element` 가 전역에 없는 환경(테스트 DOM)에서는
19
+ * 그대로 터지고, iframe 처럼 realm 이 다른 문서에서 온 요소는 거짓이 되어 가드가 조용히
20
+ * 빗나간다. `nodeType` 은 어느 realm 의 노드에도 같은 값으로 있다.
16
21
  */
17
22
  export declare function isFromGlobalOverlay(event: Event): boolean;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * 호버 미리보기(`SImage previewOnHover`)가 뜨는 자리를 계산한다.
3
+ *
4
+ * **시작점은 썸네일의 한가운데**다 — 미리보기의 좌상단 모서리가 썸네일 중앙에 놓인다.
5
+ * 그래서 미리보기는 늘 오른쪽 아래로 펼쳐지고, 원래 보던 썸네일을 가리지 않는다.
6
+ *
7
+ * 창 오른쪽·아래로 넘치면 **넘친 만큼만 왼쪽·위로 되민다**. 반대편으로 뒤집지 않는다 —
8
+ * 뒤집으면 커서와 미리보기의 관계가 순간 바뀌어 어느 썸네일의 미리보기인지 읽기 어렵다.
9
+ * (Radix 의 `avoidCollisions` 는 shift 와 flip 을 함께 켜므로 쓰지 않고, 이 계산으로 대신한다.)
10
+ */
11
+ /** 위치 계산에 필요한 만큼만 추린 사각형 — DOMRect 을 그대로 받을 수 있다 */
12
+ export interface HoverPreviewAnchorRect {
13
+ left: number;
14
+ top: number;
15
+ width: number;
16
+ height: number;
17
+ }
18
+ export interface HoverPreviewOriginInput {
19
+ /** 썸네일의 viewport 기준 사각형 */
20
+ anchor: HoverPreviewAnchorRect;
21
+ /** 미리보기 상자의 한 변(px). 정사각형이다 */
22
+ size: number;
23
+ viewportWidth: number;
24
+ viewportHeight: number;
25
+ /** 창 가장자리와 띄울 최소 간격 */
26
+ padding?: number;
27
+ }
28
+ /** 미리보기 상자의 좌상단 좌표 (viewport 기준) */
29
+ export declare function hoverPreviewOrigin({ anchor, size, viewportWidth, viewportHeight, padding, }: HoverPreviewOriginInput): {
30
+ x: number;
31
+ y: number;
32
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 접힌 영역을 tab 순서에서 빼는 ref.
3
+ *
4
+ * 접기·펴기를 `grid-template-rows` 로 애니메이션하는 영역은 접힌 뒤에도 DOM 에 남는다.
5
+ * `aria-hidden` 은 스크린리더에서만 지우므로, 그것만으로는 Tab 이 보이지 않는 체크박스·버튼에
6
+ * 계속 멈춘다. `inert` 는 그 안쪽 전체를 포커스·포인터 대상에서 빼며 자손까지 함께 적용된다.
7
+ *
8
+ * JSX 의 `inert` prop 은 React 19 부터라, peer 가 `>=18` 인 이 패키지에서는 DOM 속성으로 직접
9
+ * 넣는다. 브라우저는 속성이 붙어 있는지만 보므로 값은 상관없다.
10
+ */
11
+ export declare function useInertRef<T extends HTMLElement>(inert: boolean): import("react").RefObject<T | null>;
@@ -0,0 +1,32 @@
1
+ import { type RefObject } from 'react';
2
+ /**
3
+ * 오버레이 스크롤바 — 스크롤 요소 **위에** 얹는 막대.
4
+ *
5
+ * 네이티브 스크롤바는 레이아웃 폭을 실제로 차지해서, 스크롤이 생기는 순간 안쪽 콘텐츠
6
+ * 폭이 그만큼 줄어든다. 표처럼 폭이 고정된 것이 들어 있으면 그 한 번의 흔들림이 그대로
7
+ * 보인다. 그래서 네이티브 막대를 숨기고(`SCROLLBAR_HIDDEN_CLASS`) 같은 자리에 그림만
8
+ * 얹는다 — 자리를 차지하지 않으므로 콘텐츠 폭이 변하지 않는다.
9
+ *
10
+ * **부모가 `relative` 여야 한다.** 막대는 그 상자를 기준으로 절대 배치된다.
11
+ */
12
+ /** 막대가 도는 트랙의 폭(px). 세로·가로 막대가 만나는 모서리를 비우는 데도 쓴다. */
13
+ export declare const OVERLAY_SCROLLBAR_SIZE = 12;
14
+ export interface OverlayScrollbarsProps {
15
+ /** 실제로 스크롤하는 요소. 이 컴포넌트는 그 요소의 형제로 선다 */
16
+ scrollRef: RefObject<HTMLElement | null>;
17
+ /**
18
+ * 세로 막대를 그릴지. **스크롤이 실제로 걸린 축만 켠다** — `overflow-y: hidden` 인데
19
+ * 켜 두면 넘친 콘텐츠 때문에 못 움직이는 막대가 뜬다.
20
+ */
21
+ vertical?: boolean;
22
+ /** 가로 막대를 그릴지. 위와 같다 */
23
+ horizontal?: boolean;
24
+ /**
25
+ * true면 **스크롤하는 동안에만** 막대를 보인다. 멎으면 페이드로 사라진다.
26
+ *
27
+ * 끄고 두면 막대가 늘 서서 "여기는 스크롤된다"를 알린다 — 그 신호를 포기하는 대신
28
+ * 화면이 조용해진다. 끌고 있는 동안에는 손에서 사라지면 안 되므로 시간을 재지 않는다.
29
+ */
30
+ autoHide?: boolean;
31
+ }
32
+ export declare function OverlayScrollbars({ scrollRef, vertical: showVertical, horizontal: showHorizontal, autoHide, }: OverlayScrollbarsProps): import("react").JSX.Element;