@iamfiro/design 0.0.0-stage → 0.3.0

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 (416) hide show
  1. package/AGENTS.md +82 -0
  2. package/README.md +15 -2
  3. package/agents/INDEX.md +157 -0
  4. package/agents/accordion/AGENTS.md +279 -0
  5. package/agents/action-bar/AGENTS.md +90 -0
  6. package/agents/alert/AGENTS.md +212 -0
  7. package/agents/alert-dialog/AGENTS.md +193 -0
  8. package/agents/app-shell/AGENTS.md +409 -0
  9. package/agents/area-chart/AGENTS.md +183 -0
  10. package/agents/aspect-ratio/AGENTS.md +143 -0
  11. package/agents/avatar/AGENTS.md +130 -0
  12. package/agents/badge/AGENTS.md +217 -0
  13. package/agents/bar-chart/AGENTS.md +386 -0
  14. package/agents/bar-list/AGENTS.md +223 -0
  15. package/agents/brand-icon/AGENTS.md +82 -0
  16. package/agents/breadcrumb/AGENTS.md +133 -0
  17. package/agents/button/AGENTS.md +195 -0
  18. package/agents/card/AGENTS.md +141 -0
  19. package/agents/card-frame/AGENTS.md +227 -0
  20. package/agents/chat-bubble/AGENTS.md +266 -0
  21. package/agents/chat-composer/AGENTS.md +251 -0
  22. package/agents/checkbox/AGENTS.md +113 -0
  23. package/agents/code-block/AGENTS.md +144 -0
  24. package/agents/color-dot/AGENTS.md +120 -0
  25. package/agents/color-picker/AGENTS.md +224 -0
  26. package/agents/colors/AGENTS.md +168 -0
  27. package/agents/combobox/AGENTS.md +218 -0
  28. package/agents/command-menu/AGENTS.md +169 -0
  29. package/agents/comment/AGENTS.md +206 -0
  30. package/agents/context-menu/AGENTS.md +303 -0
  31. package/agents/copy-button/AGENTS.md +84 -0
  32. package/agents/count-badge/AGENTS.md +115 -0
  33. package/agents/countdown/AGENTS.md +101 -0
  34. package/agents/data-grid/AGENTS.md +460 -0
  35. package/agents/date-picker/AGENTS.md +197 -0
  36. package/agents/delta/AGENTS.md +114 -0
  37. package/agents/description-list/AGENTS.md +251 -0
  38. package/agents/dialog/AGENTS.md +391 -0
  39. package/agents/drawer/AGENTS.md +471 -0
  40. package/agents/dropdown-menu/AGENTS.md +322 -0
  41. package/agents/dropzone/AGENTS.md +116 -0
  42. package/agents/elapsed/AGENTS.md +160 -0
  43. package/agents/empty-state/AGENTS.md +203 -0
  44. package/agents/file-chip/AGENTS.md +79 -0
  45. package/agents/file-icon/AGENTS.md +66 -0
  46. package/agents/file-upload/AGENTS.md +168 -0
  47. package/agents/filter-chips/AGENTS.md +167 -0
  48. package/agents/flag/AGENTS.md +67 -0
  49. package/agents/funnel-chart/AGENTS.md +131 -0
  50. package/agents/highlight/AGENTS.md +119 -0
  51. package/agents/hover-card/AGENTS.md +271 -0
  52. package/agents/icon-stack/AGENTS.md +120 -0
  53. package/agents/icon-tile/AGENTS.md +94 -0
  54. package/agents/inline-diff/AGENTS.md +211 -0
  55. package/agents/input/AGENTS.md +261 -0
  56. package/agents/kanban/AGENTS.md +352 -0
  57. package/agents/kbd/AGENTS.md +160 -0
  58. package/agents/layout/AGENTS.md +351 -0
  59. package/agents/line-chart/AGENTS.md +393 -0
  60. package/agents/link/AGENTS.md +53 -0
  61. package/agents/list/AGENTS.md +392 -0
  62. package/agents/marker/AGENTS.md +142 -0
  63. package/agents/masked-text/AGENTS.md +127 -0
  64. package/agents/menubar/AGENTS.md +276 -0
  65. package/agents/multi-select/AGENTS.md +159 -0
  66. package/agents/navigation-menu/AGENTS.md +315 -0
  67. package/agents/notice-stack/AGENTS.md +101 -0
  68. package/agents/number-stepper/AGENTS.md +96 -0
  69. package/agents/otp-input/AGENTS.md +162 -0
  70. package/agents/pagination/AGENTS.md +189 -0
  71. package/agents/phone-input/AGENTS.md +131 -0
  72. package/agents/pie-chart/AGENTS.md +243 -0
  73. package/agents/popover/AGENTS.md +190 -0
  74. package/agents/progress/AGENTS.md +273 -0
  75. package/agents/progress-tracker/AGENTS.md +305 -0
  76. package/agents/rating/AGENTS.md +165 -0
  77. package/agents/relative-time/AGENTS.md +103 -0
  78. package/agents/resizable/AGENTS.md +390 -0
  79. package/agents/scaled-preview/AGENTS.md +111 -0
  80. package/agents/scatter-chart/AGENTS.md +160 -0
  81. package/agents/scroll-area/AGENTS.md +271 -0
  82. package/agents/search-input/AGENTS.md +105 -0
  83. package/agents/segmented-control/AGENTS.md +153 -0
  84. package/agents/select/AGENTS.md +159 -0
  85. package/agents/selector-button/AGENTS.md +122 -0
  86. package/agents/sidebar/AGENTS.md +201 -0
  87. package/agents/skeleton/AGENTS.md +166 -0
  88. package/agents/slider/AGENTS.md +181 -0
  89. package/agents/social-login-button/AGENTS.md +156 -0
  90. package/agents/spark-chart/AGENTS.md +257 -0
  91. package/agents/sparkbar/AGENTS.md +92 -0
  92. package/agents/spinner/AGENTS.md +123 -0
  93. package/agents/split-view/AGENTS.md +290 -0
  94. package/agents/stat/AGENTS.md +138 -0
  95. package/agents/status-icon/AGENTS.md +243 -0
  96. package/agents/step-list/AGENTS.md +313 -0
  97. package/agents/table/AGENTS.md +286 -0
  98. package/agents/tabs/AGENTS.md +305 -0
  99. package/agents/tag-input/AGENTS.md +246 -0
  100. package/agents/time-picker/AGENTS.md +228 -0
  101. package/agents/timeline/AGENTS.md +1018 -0
  102. package/agents/toast/AGENTS.md +266 -0
  103. package/agents/toggle-group/AGENTS.md +216 -0
  104. package/agents/toolbar/AGENTS.md +277 -0
  105. package/agents/tooltip/AGENTS.md +154 -0
  106. package/agents/tracker/AGENTS.md +158 -0
  107. package/agents/tree-diagram/AGENTS.md +260 -0
  108. package/agents/tree-view/AGENTS.md +329 -0
  109. package/agents/typography/AGENTS.md +396 -0
  110. package/lib/components/Accordion/Accordion2.js +135 -0
  111. package/lib/components/ActionBar/ActionBar2.js +65 -0
  112. package/lib/components/Alert/Alert2.js +131 -0
  113. package/lib/components/AppShell/AppShell2.js +94 -0
  114. package/lib/components/AreaChart/AreaChart.js +59 -0
  115. package/lib/components/BarChart/BarChart2.js +243 -0
  116. package/lib/components/BarList/BarList2.js +172 -0
  117. package/lib/components/Breadcrumb/Breadcrumb2.js +87 -0
  118. package/lib/components/Calendar/Calendar2.js +309 -0
  119. package/lib/components/Calendar/DatePicker2.js +229 -0
  120. package/lib/components/Calendar/date.js +121 -0
  121. package/lib/components/Card/Card2.js +104 -0
  122. package/lib/components/CardFrame/CardFrame2.js +72 -0
  123. package/lib/components/Chart/ChartParts.js +150 -0
  124. package/lib/components/Chart/chart2.js +96 -0
  125. package/lib/components/Chart/useChartInteraction.js +94 -0
  126. package/lib/components/ChatBubble/ChatBubble2.js +174 -0
  127. package/lib/components/ChatBubble/formatChatTime.js +53 -0
  128. package/lib/components/ChatComposer/ChatComposer2.js +153 -0
  129. package/lib/components/CodeBlock/CodeBlock2.js +93 -0
  130. package/lib/components/CodeBlock/highlight.js +114 -0
  131. package/lib/components/ColorPicker/ColorPicker2.js +610 -0
  132. package/lib/components/ColorPicker/color.js +180 -0
  133. package/lib/components/ColorPicker/presets.js +75 -0
  134. package/lib/components/Combobox/Combobox2.js +229 -0
  135. package/lib/components/CommandMenu/CommandMenu.js +267 -0
  136. package/lib/components/Comment/Comment2.js +134 -0
  137. package/lib/components/ContextMenu/ContextMenu2.js +168 -0
  138. package/lib/components/DataGrid/DataGrid2.js +1996 -0
  139. package/lib/components/DataGrid/GridPopover.js +154 -0
  140. package/lib/components/DataGrid/anchor.js +50 -0
  141. package/lib/components/DataGrid/model.js +558 -0
  142. package/lib/components/DataGrid/panels.js +703 -0
  143. package/lib/components/DataGrid/typeMeta.js +76 -0
  144. package/lib/components/DataGrid/types.js +54 -0
  145. package/lib/components/DescriptionList/DescriptionList2.js +180 -0
  146. package/lib/components/Dialog/AlertDialog.js +118 -0
  147. package/lib/components/Dialog/Dialog2.js +109 -0
  148. package/lib/components/Dialog/modal.js +92 -0
  149. package/lib/components/Drawer/Drawer2.js +244 -0
  150. package/lib/components/DropdownMenu/DropdownMenu2.js +394 -0
  151. package/lib/components/DropdownMenu/menuCore.js +63 -0
  152. package/lib/components/Dropzone/Dropzone2.js +144 -0
  153. package/lib/components/EmptyState/EmptyState2.js +72 -0
  154. package/lib/components/FileChip/FileChip2.js +118 -0
  155. package/lib/components/FileUpload/FileUpload.js +258 -0
  156. package/lib/components/FilterChips/FilterChips2.js +101 -0
  157. package/lib/components/FunnelChart/FunnelChart2.js +283 -0
  158. package/lib/components/FunnelChart/funnel.js +69 -0
  159. package/lib/components/Highlight/Highlight2.js +100 -0
  160. package/lib/components/HoverCard/HoverCard.js +134 -0
  161. package/lib/components/InlineDiff/InlineDiff2.js +215 -0
  162. package/lib/components/InlineDiff/diff.js +126 -0
  163. package/lib/components/InlineDiff/useDiffReview.js +109 -0
  164. package/lib/components/Kanban/Kanban2.js +691 -0
  165. package/lib/components/Kanban/KanbanCard.js +159 -0
  166. package/lib/components/Kanban/move.js +69 -0
  167. package/lib/components/LineChart/LineChart2.js +342 -0
  168. package/lib/components/List/List2.js +133 -0
  169. package/lib/components/Listbox/Listbox2.js +163 -0
  170. package/lib/components/Marker/Marker2.js +82 -0
  171. package/lib/components/Menubar/Menubar2.js +223 -0
  172. package/lib/components/MultiSelect/MultiSelect2.js +204 -0
  173. package/lib/components/NavigationMenu/NavigationMenu2.js +481 -0
  174. package/lib/components/NoticeStack/NoticeStack2.js +178 -0
  175. package/lib/components/NumberStepper/NumberStepper2.js +129 -0
  176. package/lib/components/OtpInput/OtpInput2.js +122 -0
  177. package/lib/components/Pagination/Pagination2.js +210 -0
  178. package/lib/components/Pagination/paginationRange.js +53 -0
  179. package/lib/components/PhoneInput/PhoneInput.js +175 -0
  180. package/lib/components/PieChart/PieChart2.js +246 -0
  181. package/lib/components/PieChart/arc.js +66 -0
  182. package/lib/components/PieChart/useArcTween.js +94 -0
  183. package/lib/components/Popover/Popover2.js +112 -0
  184. package/lib/components/ProgressTracker/ProgressTracker2.js +226 -0
  185. package/lib/components/Rating/Rating2.js +186 -0
  186. package/lib/components/Resizable/Resizable2.js +236 -0
  187. package/lib/components/Resizable/layout.js +115 -0
  188. package/lib/components/ScaledPreview/ScaledPreview2.js +100 -0
  189. package/lib/components/ScatterChart/ScatterChart2.js +356 -0
  190. package/lib/components/ScatterChart/scatter.js +83 -0
  191. package/lib/components/ScrollArea/ScrollArea2.js +218 -0
  192. package/lib/components/Select/Select2.js +153 -0
  193. package/lib/components/Sidebar/Sidebar2.js +127 -0
  194. package/lib/components/Skeleton/Skeleton2.js +91 -0
  195. package/lib/components/Slider/Slider2.js +142 -0
  196. package/lib/components/SocialLoginButton/SocialLoginButton.js +85 -0
  197. package/lib/components/SparkChart/SparkChart2.js +217 -0
  198. package/lib/components/SparkChart/spark.js +76 -0
  199. package/lib/components/Sparkbar/Sparkbar2.js +111 -0
  200. package/lib/components/SplitView/SplitView2.js +95 -0
  201. package/lib/components/Stat/Stat2.js +164 -0
  202. package/lib/components/StepList/StepList2.js +131 -0
  203. package/lib/components/Table/Table2.js +104 -0
  204. package/lib/components/Tabs/Tabs2.js +131 -0
  205. package/lib/components/TagInput/TagInput2.js +360 -0
  206. package/lib/components/TimePicker/TimePicker2.js +388 -0
  207. package/lib/components/TimePicker/time.js +83 -0
  208. package/lib/components/Timeline/Timeline2.js +369 -0
  209. package/lib/components/Timeline/scale.js +83 -0
  210. package/lib/components/Toast/Toaster.js +212 -0
  211. package/lib/components/Toast/store.js +129 -0
  212. package/lib/components/ToggleGroup/ToggleGroup2.js +125 -0
  213. package/lib/components/Toolbar/Toolbar2.js +281 -0
  214. package/lib/components/Tracker/Tracker2.js +172 -0
  215. package/lib/components/TreeDiagram/TreeDiagram2.js +223 -0
  216. package/lib/components/TreeView/TreeView2.js +284 -0
  217. package/lib/hooks/timing.js +55 -0
  218. package/lib/hooks/useControllableState.js +49 -0
  219. package/lib/hooks/useCountdown.js +80 -0
  220. package/lib/hooks/useDigitInput.js +105 -0
  221. package/lib/hooks/useDismiss.js +71 -0
  222. package/lib/hooks/useElapsed.js +83 -0
  223. package/lib/hooks/useFloating.js +70 -0
  224. package/lib/hooks/useFocusTrap.js +61 -0
  225. package/lib/hooks/usePresence.js +60 -0
  226. package/lib/hooks/usePressToOpen.js +69 -0
  227. package/lib/hooks/useScrollLock.js +70 -0
  228. package/lib/hooks/useSelection.js +68 -0
  229. package/lib/index.js +178 -0
  230. package/lib/primitives/AspectRatio2.js +80 -0
  231. package/lib/primitives/BrandIcon.js +245 -0
  232. package/lib/primitives/ColorDot2.js +70 -0
  233. package/lib/primitives/CopyButton2.js +85 -0
  234. package/lib/primitives/CountBadge2.js +78 -0
  235. package/lib/primitives/Countdown2.js +65 -0
  236. package/lib/primitives/Delta2.js +67 -0
  237. package/lib/primitives/Elapsed.js +62 -0
  238. package/lib/primitives/FileIcon2.js +125 -0
  239. package/lib/primitives/Flag2.js +263 -0
  240. package/lib/primitives/IconStack2.js +85 -0
  241. package/lib/primitives/IconTile2.js +68 -0
  242. package/lib/primitives/Kbd2.js +88 -0
  243. package/lib/primitives/Layout2.js +118 -0
  244. package/lib/primitives/Link2.js +53 -0
  245. package/lib/primitives/MaskedText2.js +120 -0
  246. package/lib/primitives/Progress2.js +137 -0
  247. package/lib/primitives/RelativeTime.js +84 -0
  248. package/lib/primitives/SearchInput2.js +84 -0
  249. package/lib/primitives/SelectorButton2.js +97 -0
  250. package/lib/primitives/Spinner2.js +98 -0
  251. package/lib/primitives/StatusIcon2.js +126 -0
  252. package/lib/primitives/Swatch2.js +79 -0
  253. package/lib/primitives/Tooltip2.js +132 -0
  254. package/lib/primitives/Typography2.js +97 -0
  255. package/lib/primitives/formatCountdown.js +51 -0
  256. package/lib/primitives/formatElapsed.js +66 -0
  257. package/lib/primitives/formatRelativeTime.js +64 -0
  258. package/lib/primitives/hotkey.js +94 -0
  259. package/lib/primitives/index.js +352 -0
  260. package/lib/primitives/maskValue.js +65 -0
  261. package/lib/style.css +2 -0
  262. package/lib/types/components/Accordion/Accordion.d.ts +57 -0
  263. package/lib/types/components/ActionBar/ActionBar.d.ts +24 -0
  264. package/lib/types/components/Alert/Alert.d.ts +36 -0
  265. package/lib/types/components/AppShell/AppShell.d.ts +38 -0
  266. package/lib/types/components/AreaChart/AreaChart.d.ts +17 -0
  267. package/lib/types/components/BarChart/BarChart.d.ts +57 -0
  268. package/lib/types/components/BarList/BarList.d.ts +56 -0
  269. package/lib/types/components/Breadcrumb/Breadcrumb.d.ts +15 -0
  270. package/lib/types/components/Calendar/Calendar.d.ts +34 -0
  271. package/lib/types/components/Calendar/DatePicker.d.ts +45 -0
  272. package/lib/types/components/Calendar/date.d.ts +32 -0
  273. package/lib/types/components/Card/Card.d.ts +64 -0
  274. package/lib/types/components/CardFrame/CardFrame.d.ts +15 -0
  275. package/lib/types/components/Chart/ChartParts.d.ts +38 -0
  276. package/lib/types/components/Chart/chart.d.ts +46 -0
  277. package/lib/types/components/Chart/useChartInteraction.d.ts +39 -0
  278. package/lib/types/components/ChatBubble/ChatBubble.d.ts +61 -0
  279. package/lib/types/components/ChatBubble/formatChatTime.d.ts +2 -0
  280. package/lib/types/components/ChatComposer/ChatComposer.d.ts +42 -0
  281. package/lib/types/components/CodeBlock/CodeBlock.d.ts +18 -0
  282. package/lib/types/components/CodeBlock/highlight.d.ts +10 -0
  283. package/lib/types/components/ColorPicker/ColorPicker.d.ts +61 -0
  284. package/lib/types/components/ColorPicker/color.d.ts +48 -0
  285. package/lib/types/components/ColorPicker/presets.d.ts +7 -0
  286. package/lib/types/components/Combobox/Combobox.d.ts +48 -0
  287. package/lib/types/components/CommandMenu/CommandMenu.d.ts +51 -0
  288. package/lib/types/components/Comment/Comment.d.ts +45 -0
  289. package/lib/types/components/ContextMenu/ContextMenu.d.ts +40 -0
  290. package/lib/types/components/DataGrid/DataGrid.d.ts +43 -0
  291. package/lib/types/components/DataGrid/GridPopover.d.ts +43 -0
  292. package/lib/types/components/DataGrid/anchor.d.ts +5 -0
  293. package/lib/types/components/DataGrid/model.d.ts +61 -0
  294. package/lib/types/components/DataGrid/panels.d.ts +63 -0
  295. package/lib/types/components/DataGrid/typeMeta.d.ts +6 -0
  296. package/lib/types/components/DataGrid/types.d.ts +77 -0
  297. package/lib/types/components/DescriptionList/DescriptionList.d.ts +77 -0
  298. package/lib/types/components/Dialog/AlertDialog.d.ts +26 -0
  299. package/lib/types/components/Dialog/Dialog.d.ts +42 -0
  300. package/lib/types/components/Dialog/modal.d.ts +38 -0
  301. package/lib/types/components/Drawer/Drawer.d.ts +62 -0
  302. package/lib/types/components/DropdownMenu/DropdownMenu.d.ts +97 -0
  303. package/lib/types/components/DropdownMenu/menuCore.d.ts +23 -0
  304. package/lib/types/components/Dropzone/Dropzone.d.ts +30 -0
  305. package/lib/types/components/EmptyState/EmptyState.d.ts +26 -0
  306. package/lib/types/components/FileChip/FileChip.d.ts +32 -0
  307. package/lib/types/components/FileUpload/FileUpload.d.ts +52 -0
  308. package/lib/types/components/FilterChips/FilterChips.d.ts +37 -0
  309. package/lib/types/components/FunnelChart/FunnelChart.d.ts +38 -0
  310. package/lib/types/components/FunnelChart/funnel.d.ts +25 -0
  311. package/lib/types/components/Highlight/Highlight.d.ts +35 -0
  312. package/lib/types/components/HoverCard/HoverCard.d.ts +47 -0
  313. package/lib/types/components/InlineDiff/InlineDiff.d.ts +36 -0
  314. package/lib/types/components/InlineDiff/diff.d.ts +42 -0
  315. package/lib/types/components/InlineDiff/useDiffReview.d.ts +57 -0
  316. package/lib/types/components/Kanban/Kanban.d.ts +64 -0
  317. package/lib/types/components/Kanban/KanbanCard.d.ts +35 -0
  318. package/lib/types/components/Kanban/move.d.ts +25 -0
  319. package/lib/types/components/LineChart/LineChart.d.ts +85 -0
  320. package/lib/types/components/List/List.d.ts +62 -0
  321. package/lib/types/components/Listbox/Listbox.d.ts +60 -0
  322. package/lib/types/components/Marker/Marker.d.ts +28 -0
  323. package/lib/types/components/Menubar/Menubar.d.ts +50 -0
  324. package/lib/types/components/MultiSelect/MultiSelect.d.ts +38 -0
  325. package/lib/types/components/NavigationMenu/NavigationMenu.d.ts +101 -0
  326. package/lib/types/components/NoticeStack/NoticeStack.d.ts +41 -0
  327. package/lib/types/components/NumberStepper/NumberStepper.d.ts +32 -0
  328. package/lib/types/components/OtpInput/OtpInput.d.ts +31 -0
  329. package/lib/types/components/Pagination/Pagination.d.ts +54 -0
  330. package/lib/types/components/Pagination/paginationRange.d.ts +7 -0
  331. package/lib/types/components/PhoneInput/PhoneInput.d.ts +47 -0
  332. package/lib/types/components/PieChart/PieChart.d.ts +67 -0
  333. package/lib/types/components/PieChart/arc.d.ts +26 -0
  334. package/lib/types/components/PieChart/useArcTween.d.ts +15 -0
  335. package/lib/types/components/Popover/Popover.d.ts +28 -0
  336. package/lib/types/components/ProgressTracker/ProgressTracker.d.ts +64 -0
  337. package/lib/types/components/Rating/Rating.d.ts +42 -0
  338. package/lib/types/components/Resizable/Resizable.d.ts +50 -0
  339. package/lib/types/components/Resizable/layout.d.ts +31 -0
  340. package/lib/types/components/ScaledPreview/ScaledPreview.d.ts +38 -0
  341. package/lib/types/components/ScatterChart/ScatterChart.d.ts +81 -0
  342. package/lib/types/components/ScatterChart/scatter.d.ts +14 -0
  343. package/lib/types/components/ScrollArea/ScrollArea.d.ts +34 -0
  344. package/lib/types/components/Select/Select.d.ts +39 -0
  345. package/lib/types/components/Sidebar/Sidebar.d.ts +39 -0
  346. package/lib/types/components/Skeleton/Skeleton.d.ts +47 -0
  347. package/lib/types/components/Slider/Slider.d.ts +36 -0
  348. package/lib/types/components/SocialLoginButton/SocialLoginButton.d.ts +10 -0
  349. package/lib/types/components/SparkChart/SparkChart.d.ts +55 -0
  350. package/lib/types/components/SparkChart/spark.d.ts +16 -0
  351. package/lib/types/components/Sparkbar/Sparkbar.d.ts +39 -0
  352. package/lib/types/components/SplitView/SplitView.d.ts +31 -0
  353. package/lib/types/components/Stat/Stat.d.ts +58 -0
  354. package/lib/types/components/StepList/StepList.d.ts +61 -0
  355. package/lib/types/components/Table/Table.d.ts +39 -0
  356. package/lib/types/components/Tabs/Tabs.d.ts +47 -0
  357. package/lib/types/components/TagInput/TagInput.d.ts +46 -0
  358. package/lib/types/components/TimePicker/TimePicker.d.ts +43 -0
  359. package/lib/types/components/TimePicker/time.d.ts +15 -0
  360. package/lib/types/components/Timeline/Timeline.d.ts +154 -0
  361. package/lib/types/components/Timeline/scale.d.ts +22 -0
  362. package/lib/types/components/Toast/Toaster.d.ts +19 -0
  363. package/lib/types/components/Toast/index.d.ts +4 -0
  364. package/lib/types/components/Toast/store.d.ts +75 -0
  365. package/lib/types/components/ToggleGroup/ToggleGroup.d.ts +28 -0
  366. package/lib/types/components/Toolbar/Toolbar.d.ts +70 -0
  367. package/lib/types/components/Tracker/Tracker.d.ts +43 -0
  368. package/lib/types/components/TreeDiagram/TreeDiagram.d.ts +68 -0
  369. package/lib/types/components/TreeView/TreeView.d.ts +107 -0
  370. package/lib/types/components/index.d.ts +188 -0
  371. package/lib/types/hooks/index.d.ts +17 -0
  372. package/lib/types/hooks/timing.d.ts +29 -0
  373. package/lib/types/hooks/useControllableState.d.ts +5 -0
  374. package/lib/types/hooks/useCountdown.d.ts +19 -0
  375. package/lib/types/hooks/useDigitInput.d.ts +24 -0
  376. package/lib/types/hooks/useDismiss.d.ts +3 -0
  377. package/lib/types/hooks/useElapsed.d.ts +28 -0
  378. package/lib/types/hooks/useFloating.d.ts +21 -0
  379. package/lib/types/hooks/useFocusTrap.d.ts +7 -0
  380. package/lib/types/hooks/usePresence.d.ts +8 -0
  381. package/lib/types/hooks/usePressToOpen.d.ts +20 -0
  382. package/lib/types/hooks/useScrollLock.d.ts +2 -0
  383. package/lib/types/hooks/useSelection.d.ts +29 -0
  384. package/lib/types/index.d.ts +5 -0
  385. package/lib/types/primitives/AspectRatio.d.ts +14 -0
  386. package/lib/types/primitives/BrandIcon.d.ts +12 -0
  387. package/lib/types/primitives/ColorDot.d.ts +20 -0
  388. package/lib/types/primitives/CopyButton.d.ts +12 -0
  389. package/lib/types/primitives/CountBadge.d.ts +28 -0
  390. package/lib/types/primitives/Countdown.d.ts +21 -0
  391. package/lib/types/primitives/Delta.d.ts +33 -0
  392. package/lib/types/primitives/Elapsed.d.ts +23 -0
  393. package/lib/types/primitives/FileIcon.d.ts +17 -0
  394. package/lib/types/primitives/Flag.d.ts +15 -0
  395. package/lib/types/primitives/IconStack.d.ts +27 -0
  396. package/lib/types/primitives/IconTile.d.ts +24 -0
  397. package/lib/types/primitives/Kbd.d.ts +19 -0
  398. package/lib/types/primitives/Layout.d.ts +64 -0
  399. package/lib/types/primitives/Link.d.ts +12 -0
  400. package/lib/types/primitives/MaskedText.d.ts +28 -0
  401. package/lib/types/primitives/Progress.d.ts +52 -0
  402. package/lib/types/primitives/RelativeTime.d.ts +22 -0
  403. package/lib/types/primitives/SearchInput.d.ts +8 -0
  404. package/lib/types/primitives/SelectorButton.d.ts +23 -0
  405. package/lib/types/primitives/Spinner.d.ts +15 -0
  406. package/lib/types/primitives/StatusIcon.d.ts +40 -0
  407. package/lib/types/primitives/Swatch.d.ts +11 -0
  408. package/lib/types/primitives/Tooltip.d.ts +17 -0
  409. package/lib/types/primitives/Typography.d.ts +48 -0
  410. package/lib/types/primitives/formatCountdown.d.ts +2 -0
  411. package/lib/types/primitives/formatElapsed.d.ts +8 -0
  412. package/lib/types/primitives/formatRelativeTime.d.ts +16 -0
  413. package/lib/types/primitives/hotkey.d.ts +10 -0
  414. package/lib/types/primitives/index.d.ts +188 -0
  415. package/lib/types/primitives/maskValue.d.ts +24 -0
  416. package/package.json +55 -4
@@ -0,0 +1,40 @@
1
+ import type { CSSProperties } from 'react';
2
+ import './Spinner.css';
3
+ import './StatusIcon.css';
4
+ export type StatusIconStatus = 'pending' | 'active' | 'done' | 'error' | 'warning';
5
+ export type StatusIconSize = 'sm' | 'md' | 'lg';
6
+ export interface StatusIconProps {
7
+ status: StatusIconStatus;
8
+ /** A named size or a pixel number. */
9
+ size?: StatusIconSize | number;
10
+ /**
11
+ * With `active`: 0–100 fills the blue ring to that point. Leave undefined for an
12
+ * indeterminate ring that spins (same arc as Spinner).
13
+ */
14
+ progress?: number;
15
+ /** `done` in green instead of the default quiet gray. */
16
+ colored?: boolean;
17
+ /**
18
+ * A step number ("5") in a solid gray outline instead of the dashed pending circle. With the
19
+ * other statuses the icon still turns into its ring or glyph, unless `persistNumber`.
20
+ */
21
+ number?: number | string;
22
+ /**
23
+ * With `number`: keep the number in every status. The outline takes the status colour instead
24
+ * (gray done, blue active, red error, orange warning) — for numbered timelines.
25
+ */
26
+ persistNumber?: boolean;
27
+ /** Read by screen readers. Defaults to the status in Korean ("완료", "진행 중 40%"). */
28
+ label?: string;
29
+ /** Hide from screen readers when the row text already says the status. */
30
+ decorative?: boolean;
31
+ className?: string;
32
+ style?: CSSProperties;
33
+ }
34
+ /**
35
+ * The small circle at the start of a checklist / schedule row: dashed gray (pending), blue ring
36
+ * (active), gray check (done), red × (error), orange ! (warning). All states live in one svg, so a
37
+ * status change crossfades — the ring fills, the check draws itself in — instead of swapping icons.
38
+ * With `number`, pending shows a numbered outline ("5") instead of the dashed circle.
39
+ */
40
+ export declare function StatusIcon({ status, size, progress, colored, number, persistNumber, label, decorative, className, style, }: StatusIconProps): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import './Swatch.css';
2
+ export interface SwatchProps {
3
+ /** A CSS custom property name (`--accent`) or any CSS color. */
4
+ color: string;
5
+ /** Defaults to the token name. */
6
+ name?: string;
7
+ /** Print the resolved hex/rgb value under the name. */
8
+ showValue?: boolean;
9
+ }
10
+ /** A color chip for token docs: the color, its token name and resolved value. */
11
+ export declare function Swatch({ color, name, showValue }: SwatchProps): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { type ReactNode } from 'react';
2
+ import './Tooltip.css';
3
+ export type TooltipSide = 'top' | 'bottom' | 'left' | 'right';
4
+ export interface TooltipProps {
5
+ /** Text (or small inline content) shown in the bubble. */
6
+ content: ReactNode;
7
+ /** Which side of the trigger the bubble opens on. */
8
+ side?: TooltipSide;
9
+ /** Hover delay before the first tooltip opens; neighbours opened right after skip it. */
10
+ delay?: number;
11
+ children: ReactNode;
12
+ }
13
+ /**
14
+ * Hover waits `delay` so sweeping across a toolbar doesn't flash bubbles; once one is open,
15
+ * neighbours open instantly. Keyboard focus opens at once; a press or Esc closes it.
16
+ */
17
+ export declare function Tooltip({ content, side, delay, children }: TooltipProps): import("react").JSX.Element;
@@ -0,0 +1,48 @@
1
+ import type { ComponentPropsWithoutRef, ComponentPropsWithRef, CSSProperties, ElementType, ReactNode } from 'react';
2
+ import './Typography.css';
3
+ export type TextVariant = 'display-lg' | 'display-md' | 'display-sm' | 'heading-xl' | 'heading-lg' | 'heading-md' | 'heading-sm' | 'heading-xs' | 'body-lg' | 'body-md' | 'body-sm' | 'body-xs' | 'label-lg' | 'label-md' | 'label-sm' | 'label-xs' | 'caption' | 'overline' | 'number-xl' | 'number-lg' | 'number-md' | 'number-sm' | 'code';
4
+ export type TextTone = 'default' | 'secondary' | 'tertiary' | 'disabled' | 'accent' | 'success' | 'warning' | 'danger' | 'inverse' | 'inherit';
5
+ export type TextWeight = 'regular' | 'medium' | 'semibold' | 'bold';
6
+ interface TextOwnProps<E extends ElementType> {
7
+ /** Element to render; defaults by role (heading → h2, body → p, label → span, code → code). */
8
+ as?: E;
9
+ variant?: TextVariant;
10
+ tone?: TextTone;
11
+ /** Overrides the role's weight. */
12
+ weight?: TextWeight;
13
+ align?: 'start' | 'center' | 'end';
14
+ /** One line with an ellipsis. */
15
+ truncate?: boolean;
16
+ /** Clamp to N lines with an ellipsis. */
17
+ lineClamp?: number;
18
+ /** Tabular, lining figures so numbers line up in columns and don't jitter while counting. */
19
+ numeric?: boolean;
20
+ /** Balanced line lengths (headings) or no lonely last word (paragraphs). */
21
+ wrap?: 'balance' | 'pretty';
22
+ /** A line drawn through the text (done to-dos). Animates when toggled; works on inline text (use as="span"). */
23
+ strike?: boolean;
24
+ className?: string;
25
+ style?: CSSProperties;
26
+ children?: ReactNode;
27
+ }
28
+ export type TextProps<E extends ElementType = 'span'> = TextOwnProps<E> & Omit<ComponentPropsWithRef<E>, keyof TextOwnProps<E>>;
29
+ /** Any text, set in one of the type roles from tokens.css. */
30
+ export declare function Text<E extends ElementType = 'span'>({ as, variant, tone, weight, align, truncate, lineClamp, numeric, wrap, strike, className, style, children, ...rest }: TextProps<E>): import("react").JSX.Element;
31
+ export type HeadingProps = Omit<TextProps<'h2'>, 'as' | 'variant'> & {
32
+ /** Document outline level (h1–h6). */
33
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
34
+ /** Visual size, independent of the level (e.g. an h2 that looks like display-sm). */
35
+ size?: TextVariant;
36
+ };
37
+ /** A heading whose look follows its level unless `size` says otherwise. */
38
+ export declare function Heading({ level, size, wrap, ...rest }: HeadingProps): import("react").JSX.Element;
39
+ export interface ProseProps extends ComponentPropsWithoutRef<'div'> {
40
+ /** Text size of the whole block; headings and spacing scale with it. */
41
+ size?: 'sm' | 'md' | 'lg';
42
+ }
43
+ /**
44
+ * Styles plain HTML (h1–h4, p, lists, blockquote, code, pre, table, hr, a) for
45
+ * docs, changelogs, help articles and AI answers — e.g. rendered Markdown.
46
+ */
47
+ export declare function Prose({ size, className, ...rest }: ProseProps): import("react").JSX.Element;
48
+ export {};
@@ -0,0 +1,2 @@
1
+ /** "8초" under a minute, "1:05" under an hour, "1:02:05" beyond. */
2
+ export declare function formatCountdown(seconds: number): string;
@@ -0,0 +1,8 @@
1
+ export type ElapsedFormatStyle = 'clock' | 'text' | 'short';
2
+ /**
3
+ * Time that has passed, in seconds, as text.
4
+ * - clock (default): "0:08", "17:40", "1:02:05"
5
+ * - text: "8초", "17분 40초", "1시간 2분"
6
+ * - short: "8s", "17m 40s", "1h 2m" — for tight trailing columns
7
+ */
8
+ export declare function formatElapsed(seconds: number, style?: ElapsedFormatStyle): string;
@@ -0,0 +1,16 @@
1
+ /** Anything `new Date()` understands. */
2
+ export type DateInput = Date | string | number;
3
+ export declare const toDate: (input: DateInput) => Date;
4
+ /**
5
+ * Korean relative time: "방금", "3분 전", "2시간 전", "어제", "4일 전", "10월 25일", "2025년 3월 2일".
6
+ * Future dates read "5분 후", "내일", "3일 후".
7
+ */
8
+ export declare function formatRelativeTime(input: DateInput, now?: Date): string;
9
+ /** The full date for tooltips: "2026년 10월 25일 오후 3:24". */
10
+ export declare function formatFullDate(input: DateInput): string;
11
+ /**
12
+ * How long until `formatRelativeTime` would print something different, so a live label can
13
+ * wake up exactly then instead of polling: every minute for the first hour, then every hour,
14
+ * then at midnight (capped at an hour).
15
+ */
16
+ export declare function nextRelativeTimeChange(input: DateInput, now?: Date): number;
@@ -0,0 +1,10 @@
1
+ /** Inputs, textareas, selects and contenteditable — places where a plain letter is typing, not a command. */
2
+ export declare function isTypingTarget(target: EventTarget | null): boolean;
3
+ /**
4
+ * Does this keydown match a shortcut written as Kbd key names (`['A']`, `['mod', 'enter']`)?
5
+ * Letters and digits also match by physical key (`e.code`), so a shortcut still works while a
6
+ * Korean keyboard layout is on (ㅁ is the A key). Modifiers must match exactly.
7
+ */
8
+ export declare function matchesHotkey(e: KeyboardEvent, keys: string[]): boolean;
9
+ /** Kbd key names → the `aria-keyshortcuts` form ("Control+Enter", "A"). */
10
+ export declare function toAriaShortcut(keys: string[]): string;
@@ -0,0 +1,188 @@
1
+ import { type ButtonHTMLAttributes, type CSSProperties, type HTMLAttributes, type InputHTMLAttributes, type ReactNode, type Ref, type SelectHTMLAttributes, type TextareaHTMLAttributes } from 'react';
2
+ import './primitives.css';
3
+ /** Joins truthy class names. */
4
+ export declare const cx: (...c: Array<string | false | null | undefined>) => string;
5
+ type Size = 'sm' | 'md' | 'lg';
6
+ export type ButtonVariant = 'primary' | 'accent' | 'secondary' | 'outline' | 'ghost' | 'danger';
7
+ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
8
+ variant?: ButtonVariant;
9
+ size?: Size;
10
+ icon?: ReactNode;
11
+ iconRight?: ReactNode;
12
+ /** Square button that only shows `icon`. Pass `aria-label`. */
13
+ iconOnly?: boolean;
14
+ loading?: boolean;
15
+ block?: boolean;
16
+ /**
17
+ * A keyboard hint after the label, as Kbd key names: `"A"`, `['mod', 'enter']`.
18
+ * Only shows the hint; add `hotkey` to also listen for it.
19
+ */
20
+ shortcut?: string | string[];
21
+ /**
22
+ * Pressing `shortcut` anywhere on the page clicks the button. Plain keys are ignored while
23
+ * typing in a field and during IME composition (combos with ⌘/Ctrl/Alt still work); a disabled,
24
+ * loading or inert button ignores it.
25
+ */
26
+ hotkey?: boolean;
27
+ }
28
+ export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
29
+ export declare function Field({ label, hint, invalid, children, htmlFor, }: {
30
+ label?: ReactNode;
31
+ hint?: ReactNode;
32
+ invalid?: boolean;
33
+ children: ReactNode;
34
+ htmlFor?: string;
35
+ }): import("react").JSX.Element;
36
+ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
37
+ size?: Size;
38
+ leading?: ReactNode;
39
+ trailing?: ReactNode;
40
+ invalid?: boolean;
41
+ /**
42
+ * No border, fill, focus ring, radius or side padding in any state — for an input that sits
43
+ * inside another surface which draws all of that (command palette search row). Height and
44
+ * font still follow `size`; the parent sets the outer padding.
45
+ */
46
+ bare?: boolean;
47
+ wrapperClassName?: string;
48
+ wrapperStyle?: CSSProperties;
49
+ /** The outer field (.ds-input), e.g. to anchor a popover to the whole field. `ref` is the <input>. */
50
+ wrapperRef?: Ref<HTMLDivElement>;
51
+ }
52
+ export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<HTMLInputElement>>;
53
+ export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
54
+ /** Grow with the content instead of scrolling, up to `maxRows`. */
55
+ autoResize?: boolean;
56
+ /** With `autoResize`: the height stops here and the rest scrolls. */
57
+ maxRows?: number;
58
+ /** No border, fill or padding — for a textarea that sits inside another surface (ChatComposer). */
59
+ bare?: boolean;
60
+ }
61
+ export declare const Textarea: import("react").ForwardRefExoticComponent<TextareaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
62
+ export declare function NativeSelect({ children, style, ...rest }: SelectHTMLAttributes<HTMLSelectElement>): import("react").JSX.Element;
63
+ type ToggleProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {
64
+ label?: ReactNode;
65
+ };
66
+ export type CheckboxProps = ToggleProps & {
67
+ /** square (default) or circle — circles fill blue, for checklists and to-dos. */
68
+ shape?: 'square' | 'circle';
69
+ };
70
+ export declare function Checkbox({ label, shape, className, ...rest }: CheckboxProps): import("react").JSX.Element;
71
+ export declare function Radio({ label, className, ...rest }: ToggleProps): import("react").JSX.Element;
72
+ export declare function Switch({ label, className, ...rest }: ToggleProps): import("react").JSX.Element;
73
+ export type Tone = 'neutral' | 'accent' | 'success' | 'warning' | 'danger' | 'info';
74
+ export type BadgeSize = 'sm' | 'md';
75
+ export interface BadgeProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
76
+ tone?: Tone;
77
+ /** Small status dot before the text. */
78
+ dot?: boolean;
79
+ /** The dot pulses — something live or happening right now. Implies `dot`. */
80
+ pulse?: boolean;
81
+ /** A small spinner before the text — something still running. Takes the place of `dot` and `icon`. */
82
+ spinner?: boolean;
83
+ /** Less rounded corners (versions, codes). */
84
+ square?: boolean;
85
+ /** Icon before the text. */
86
+ icon?: ReactNode;
87
+ /** Icon after the text. */
88
+ iconRight?: ReactNode;
89
+ /** Trailing chevron: the badge opens or leads somewhere. Usually with `as="button"`. */
90
+ chevron?: boolean;
91
+ /** sm: 18px high, for dense rows and next to headings. */
92
+ size?: BadgeSize;
93
+ /** A tiny uppercase tag in the overline type role ("BEST", "NEW"). */
94
+ overline?: boolean;
95
+ /** 'button' makes the badge clickable: hover fill, focus ring, press. */
96
+ as?: 'span' | 'button';
97
+ /** With `as="button"`. */
98
+ disabled?: boolean;
99
+ }
100
+ export declare function Badge({ tone, dot, pulse, spinner, square, icon, iconRight, chevron, size, overline, as, disabled, className, children, ...rest }: BadgeProps): import("react").JSX.Element;
101
+ export declare function Avatar({ name, size, square, online, color, tooltip, }: {
102
+ name: string;
103
+ size?: number;
104
+ square?: boolean;
105
+ online?: boolean;
106
+ color?: string;
107
+ /** Hover shows the full name in a Tooltip; pass content to show something else, `false` to turn it off. */
108
+ tooltip?: boolean | ReactNode;
109
+ }): import("react").JSX.Element;
110
+ /** Overlapping avatars with a "+N" overflow — an IconStack of Avatars. */
111
+ export declare function AvatarGroup({ names, size, max }: {
112
+ names: string[];
113
+ size?: number;
114
+ max?: number;
115
+ }): import("react").JSX.Element;
116
+ export interface SegmentOption<T extends string> {
117
+ value: T;
118
+ label: ReactNode;
119
+ icon?: ReactNode;
120
+ count?: number;
121
+ }
122
+ export type SegmentedVariant = 'pill' | 'underline' | 'chip' | 'text';
123
+ export declare function SegmentedControl<T extends string>({ options, value, onChange, variant, ariaLabel, }: {
124
+ options: SegmentOption<T>[];
125
+ value: T;
126
+ onChange: (v: T) => void;
127
+ /** pill: sunken track · underline: tab bar · chip: separate bordered items · text: borderless, text only */
128
+ variant?: SegmentedVariant;
129
+ ariaLabel?: string;
130
+ }): import("react").JSX.Element;
131
+ export { Kbd, formatKey, isMac } from './Kbd';
132
+ export type { KbdProps } from './Kbd';
133
+ export { Flag } from './Flag';
134
+ export type { FlagCode, FlagProps } from './Flag';
135
+ export { Tooltip } from './Tooltip';
136
+ export type { TooltipProps, TooltipSide } from './Tooltip';
137
+ export { SearchInput } from './SearchInput';
138
+ export type { SearchInputProps } from './SearchInput';
139
+ export { Heading, Prose, Text } from './Typography';
140
+ export type { HeadingProps, ProseProps, TextProps, TextTone, TextVariant, TextWeight } from './Typography';
141
+ export { Spinner } from './Spinner';
142
+ export type { SpinnerProps, SpinnerSize, SpinnerTone } from './Spinner';
143
+ export { Progress, ProgressCircle } from './Progress';
144
+ export type { ProgressCircleProps, ProgressProps, ProgressSegment, ProgressTone } from './Progress';
145
+ export { FileIcon, fileKind } from './FileIcon';
146
+ export type { FileIconProps, FileKind } from './FileIcon';
147
+ export { CopyButton } from './CopyButton';
148
+ export type { CopyButtonProps } from './CopyButton';
149
+ export { Swatch } from './Swatch';
150
+ export type { SwatchProps } from './Swatch';
151
+ export { BrandIcon, BRAND_NAMES } from './BrandIcon';
152
+ export type { BrandIconProps, BrandName } from './BrandIcon';
153
+ export { ColorDot } from './ColorDot';
154
+ export type { ColorDotProps, ColorDotVariant } from './ColorDot';
155
+ export { Box, Grid, Inline, Separator, Stack } from './Layout';
156
+ export type { BoxProps, GridProps, InlineProps, SeparatorProps, Space, StackProps } from './Layout';
157
+ export { AspectRatio } from './AspectRatio';
158
+ export type { AspectRatioProps } from './AspectRatio';
159
+ export { RelativeTime } from './RelativeTime';
160
+ export type { RelativeTimeProps } from './RelativeTime';
161
+ export { formatFullDate, formatRelativeTime, nextRelativeTimeChange } from './formatRelativeTime';
162
+ export type { DateInput } from './formatRelativeTime';
163
+ export { IconTile } from './IconTile';
164
+ export type { IconTileProps, IconTileTone } from './IconTile';
165
+ export { SelectorButton } from './SelectorButton';
166
+ export type { SelectorButtonProps, SelectorButtonSize } from './SelectorButton';
167
+ export { StatusIcon } from './StatusIcon';
168
+ export type { StatusIconProps, StatusIconSize, StatusIconStatus } from './StatusIcon';
169
+ export { Delta } from './Delta';
170
+ export type { DeltaDirection, DeltaProps, DeltaVariant } from './Delta';
171
+ export { IconStack } from './IconStack';
172
+ export type { IconStackProps } from './IconStack';
173
+ export { Countdown } from './Countdown';
174
+ export type { CountdownProps } from './Countdown';
175
+ export { formatCountdown } from './formatCountdown';
176
+ export { Elapsed } from './Elapsed';
177
+ export type { ElapsedProps } from './Elapsed';
178
+ export { formatElapsed } from './formatElapsed';
179
+ export type { ElapsedFormatStyle } from './formatElapsed';
180
+ export { CountBadge } from './CountBadge';
181
+ export type { CountBadgeProps, CountBadgeSize, CountBadgeVariant } from './CountBadge';
182
+ export { matchesHotkey, isTypingTarget, toAriaShortcut } from './hotkey';
183
+ export { Link } from './Link';
184
+ export type { LinkProps, LinkVariant } from './Link';
185
+ export { MaskedText } from './MaskedText';
186
+ export type { MaskedTextProps } from './MaskedText';
187
+ export { maskParts, maskValue } from './maskValue';
188
+ export type { MaskedParts, MaskOptions } from './maskValue';
@@ -0,0 +1,24 @@
1
+ export interface MaskOptions {
2
+ /** Characters kept at the start. */
3
+ visibleStart?: number;
4
+ /** Characters kept at the end. */
5
+ visibleEnd?: number;
6
+ /** The hiding character. */
7
+ mask?: string;
8
+ /** Bullets per group; groups are separated by a space. */
9
+ groupSize?: number;
10
+ /** How many bullets to draw. Default: one group, so the real length isn't given away. */
11
+ maskLength?: number;
12
+ }
13
+ export interface MaskedParts {
14
+ start: string;
15
+ hidden: string;
16
+ end: string;
17
+ }
18
+ /**
19
+ * Splits a secret into what stays visible and the bullets between ("DE89 •••• 3000").
20
+ * Whitespace in the value is ignored. Values too short to keep both ends are fully hidden.
21
+ */
22
+ export declare function maskParts(value: string, { visibleStart, visibleEnd, mask, groupSize, maskLength }?: MaskOptions): MaskedParts;
23
+ /** The masked string in one piece: `maskValue('DE89370400440532013000')` → "DE89 •••• 3000". */
24
+ export declare function maskValue(value: string, options?: MaskOptions): string;
package/package.json CHANGED
@@ -1,6 +1,57 @@
1
1
  {
2
2
  "name": "@iamfiro/design",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.3.0",
4
+ "description": "Lumen 디자인 시스템 — React 컴포넌트 · 토큰 · 훅. 에이전트는 AGENTS.md부터 읽는다.",
5
+ "type": "module",
6
+ "main": "./lib/index.js",
7
+ "module": "./lib/index.js",
8
+ "types": "./lib/types/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./lib/types/index.d.ts",
12
+ "import": "./lib/index.js"
13
+ },
14
+ "./style.css": "./lib/style.css",
15
+ "./AGENTS.md": "./AGENTS.md",
16
+ "./package.json": "./package.json"
17
+ },
18
+ "files": [
19
+ "lib",
20
+ "agents",
21
+ "AGENTS.md"
22
+ ],
23
+ "sideEffects": [
24
+ "*.css"
25
+ ],
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "scripts": {
30
+ "dev": "vite",
31
+ "build": "tsc -b && vite build",
32
+ "lint": "oxlint",
33
+ "preview": "vite preview",
34
+ "build:lib": "node -e \"fs.rmSync('lib',{recursive:true,force:true})\" && tsc -p tsconfig.lib.json && vite build -c vite.lib.config.ts",
35
+ "gen:agents": "node scripts/gen-agents.ts",
36
+ "prepublishOnly": "npm run gen:agents && npm run build:lib"
37
+ },
38
+ "peerDependencies": {
39
+ "react": "^19.0.0",
40
+ "react-dom": "^19.0.0"
41
+ },
42
+ "dependencies": {
43
+ "lucide-react": "^1.61.0"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "^24.19.2",
47
+ "@types/react": "^19.3.0",
48
+ "@types/react-dom": "^19.3.0",
49
+ "@vitejs/plugin-react": "^6.1.2",
50
+ "javascript-obfuscator": "^5.9.0",
51
+ "oxlint": "^1.88.0",
52
+ "react": "^19.3.1",
53
+ "react-dom": "^19.3.1",
54
+ "typescript": "~6.0.3",
55
+ "vite": "^8.3.4"
56
+ }
57
+ }