@wallarm-org/claude-design 0.0.0-stage → 4.9.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 (963) hide show
  1. package/README.md +114 -2
  2. package/bin/claude-design.js +347 -0
  3. package/dist/SETUP.md +130 -0
  4. package/dist/UPDATE.md +84 -0
  5. package/dist/assets/Icons/activity.svg +1 -0
  6. package/dist/assets/Icons/alt.svg +1 -0
  7. package/dist/assets/Icons/android-neutral.svg +1 -0
  8. package/dist/assets/Icons/android.svg +1 -0
  9. package/dist/assets/Icons/api.svg +1 -0
  10. package/dist/assets/Icons/apple-music-neutral.svg +1 -0
  11. package/dist/assets/Icons/apple-music.svg +1 -0
  12. package/dist/assets/Icons/apple-neutral.svg +1 -0
  13. package/dist/assets/Icons/apple-podcasts-neutral.svg +1 -0
  14. package/dist/assets/Icons/apple-podcasts.svg +1 -0
  15. package/dist/assets/Icons/apple.svg +1 -0
  16. package/dist/assets/Icons/archive.svg +1 -0
  17. package/dist/assets/Icons/arrow-big-up-dash.svg +1 -0
  18. package/dist/assets/Icons/arrow-big-up.svg +1 -0
  19. package/dist/assets/Icons/arrow-down-left.svg +1 -0
  20. package/dist/assets/Icons/arrow-down-right.svg +1 -0
  21. package/dist/assets/Icons/arrow-down.svg +1 -0
  22. package/dist/assets/Icons/arrow-left.svg +1 -0
  23. package/dist/assets/Icons/arrow-right-alt.svg +1 -0
  24. package/dist/assets/Icons/arrow-right.svg +1 -0
  25. package/dist/assets/Icons/arrow-up-down.svg +1 -0
  26. package/dist/assets/Icons/arrow-up-left.svg +1 -0
  27. package/dist/assets/Icons/arrow-up-right.svg +1 -0
  28. package/dist/assets/Icons/arrow-up.svg +1 -0
  29. package/dist/assets/Icons/artstation-neutral.svg +1 -0
  30. package/dist/assets/Icons/artstation.svg +1 -0
  31. package/dist/assets/Icons/asterisk.svg +1 -0
  32. package/dist/assets/Icons/audio-waveform.svg +1 -0
  33. package/dist/assets/Icons/aws-neutral.svg +1 -0
  34. package/dist/assets/Icons/aws.svg +1 -0
  35. package/dist/assets/Icons/badge-check.svg +1 -0
  36. package/dist/assets/Icons/baidu-neutral.svg +1 -0
  37. package/dist/assets/Icons/baidu.svg +1 -0
  38. package/dist/assets/Icons/bandage.svg +1 -0
  39. package/dist/assets/Icons/behance-neutral.svg +1 -0
  40. package/dist/assets/Icons/behance.svg +1 -0
  41. package/dist/assets/Icons/bell-cog.svg +1 -0
  42. package/dist/assets/Icons/bell.svg +1 -0
  43. package/dist/assets/Icons/binary.svg +1 -0
  44. package/dist/assets/Icons/book-open.svg +1 -0
  45. package/dist/assets/Icons/book.svg +1 -0
  46. package/dist/assets/Icons/boosty-neutral.svg +1 -0
  47. package/dist/assets/Icons/boosty.svg +1 -0
  48. package/dist/assets/Icons/bot.svg +1 -0
  49. package/dist/assets/Icons/brain.svg +1 -0
  50. package/dist/assets/Icons/braze-neutral.svg +1 -0
  51. package/dist/assets/Icons/braze.svg +1 -0
  52. package/dist/assets/Icons/brevo-neutral.svg +1 -0
  53. package/dist/assets/Icons/brevo.svg +1 -0
  54. package/dist/assets/Icons/bug-off.svg +1 -0
  55. package/dist/assets/Icons/bug-play.svg +1 -0
  56. package/dist/assets/Icons/bug.svg +1 -0
  57. package/dist/assets/Icons/building.svg +1 -0
  58. package/dist/assets/Icons/building2.svg +1 -0
  59. package/dist/assets/Icons/calendar-check.svg +1 -0
  60. package/dist/assets/Icons/calendar-check2.svg +1 -0
  61. package/dist/assets/Icons/calendar-clock.svg +1 -0
  62. package/dist/assets/Icons/calendar-cog.svg +1 -0
  63. package/dist/assets/Icons/calendar-days.svg +1 -0
  64. package/dist/assets/Icons/calendar-fold.svg +1 -0
  65. package/dist/assets/Icons/calendar-heart.svg +1 -0
  66. package/dist/assets/Icons/calendar-minus.svg +1 -0
  67. package/dist/assets/Icons/calendar-minus2.svg +1 -0
  68. package/dist/assets/Icons/calendar-off.svg +1 -0
  69. package/dist/assets/Icons/calendar-plus.svg +1 -0
  70. package/dist/assets/Icons/calendar-plus2.svg +1 -0
  71. package/dist/assets/Icons/calendar-range.svg +1 -0
  72. package/dist/assets/Icons/calendar-search.svg +1 -0
  73. package/dist/assets/Icons/calendar-x.svg +1 -0
  74. package/dist/assets/Icons/calendar-x2.svg +1 -0
  75. package/dist/assets/Icons/calendar.svg +1 -0
  76. package/dist/assets/Icons/chart-area.svg +1 -0
  77. package/dist/assets/Icons/chart-bar.svg +1 -0
  78. package/dist/assets/Icons/chart-column.svg +1 -0
  79. package/dist/assets/Icons/chart-no-axes-column.svg +1 -0
  80. package/dist/assets/Icons/check-check.svg +1 -0
  81. package/dist/assets/Icons/check.svg +1 -0
  82. package/dist/assets/Icons/checkbox-indeterminate.svg +1 -0
  83. package/dist/assets/Icons/chevron-down.svg +1 -0
  84. package/dist/assets/Icons/chevron-first.svg +1 -0
  85. package/dist/assets/Icons/chevron-last.svg +1 -0
  86. package/dist/assets/Icons/chevron-left.svg +1 -0
  87. package/dist/assets/Icons/chevron-right.svg +1 -0
  88. package/dist/assets/Icons/chevron-up-down.svg +1 -0
  89. package/dist/assets/Icons/chevron-up.svg +1 -0
  90. package/dist/assets/Icons/chevrons-down-up.svg +1 -0
  91. package/dist/assets/Icons/chevrons-down.svg +1 -0
  92. package/dist/assets/Icons/chevrons-left-right.svg +1 -0
  93. package/dist/assets/Icons/chevrons-left.svg +1 -0
  94. package/dist/assets/Icons/chevrons-right-left.svg +1 -0
  95. package/dist/assets/Icons/chevrons-right.svg +1 -0
  96. package/dist/assets/Icons/chevrons-up-down.svg +1 -0
  97. package/dist/assets/Icons/chevrons-up.svg +1 -0
  98. package/dist/assets/Icons/circle-arrow-down.svg +1 -0
  99. package/dist/assets/Icons/circle-arrow-left.svg +1 -0
  100. package/dist/assets/Icons/circle-arrow-out-down-left.svg +1 -0
  101. package/dist/assets/Icons/circle-arrow-out-down-right.svg +1 -0
  102. package/dist/assets/Icons/circle-arrow-out-up-left.svg +1 -0
  103. package/dist/assets/Icons/circle-arrow-out-up-right.svg +1 -0
  104. package/dist/assets/Icons/circle-arrow-right.svg +1 -0
  105. package/dist/assets/Icons/circle-arrow-up.svg +1 -0
  106. package/dist/assets/Icons/circle-check-big.svg +1 -0
  107. package/dist/assets/Icons/circle-check.svg +1 -0
  108. package/dist/assets/Icons/circle-chevron-down.svg +1 -0
  109. package/dist/assets/Icons/circle-chevron-left.svg +1 -0
  110. package/dist/assets/Icons/circle-chevron-right.svg +1 -0
  111. package/dist/assets/Icons/circle-chevron-up.svg +1 -0
  112. package/dist/assets/Icons/circle-dashed.svg +1 -0
  113. package/dist/assets/Icons/circle-dot-dashed.svg +1 -0
  114. package/dist/assets/Icons/circle-ellipsis.svg +1 -0
  115. package/dist/assets/Icons/circle-gauge.svg +1 -0
  116. package/dist/assets/Icons/circle-help.svg +1 -0
  117. package/dist/assets/Icons/circle-minus.svg +1 -0
  118. package/dist/assets/Icons/circle-plus.svg +1 -0
  119. package/dist/assets/Icons/circle-slash.svg +1 -0
  120. package/dist/assets/Icons/circle-slash2.svg +1 -0
  121. package/dist/assets/Icons/circle-stop.svg +1 -0
  122. package/dist/assets/Icons/circle.svg +1 -0
  123. package/dist/assets/Icons/clipboard-check.svg +1 -0
  124. package/dist/assets/Icons/clipboard-x.svg +1 -0
  125. package/dist/assets/Icons/clipboard.svg +1 -0
  126. package/dist/assets/Icons/clock-fading.svg +1 -0
  127. package/dist/assets/Icons/clock.svg +1 -0
  128. package/dist/assets/Icons/cloud-off.svg +1 -0
  129. package/dist/assets/Icons/cloud-sync.svg +1 -0
  130. package/dist/assets/Icons/cloud.svg +1 -0
  131. package/dist/assets/Icons/code.svg +1 -0
  132. package/dist/assets/Icons/collapse.svg +1 -0
  133. package/dist/assets/Icons/columns3-cog.svg +1 -0
  134. package/dist/assets/Icons/command.svg +1 -0
  135. package/dist/assets/Icons/compass.svg +1 -0
  136. package/dist/assets/Icons/copy-slash.svg +1 -0
  137. package/dist/assets/Icons/copy.svg +1 -0
  138. package/dist/assets/Icons/corner-down-left.svg +1 -0
  139. package/dist/assets/Icons/corner-down-right.svg +1 -0
  140. package/dist/assets/Icons/corner-left-down.svg +1 -0
  141. package/dist/assets/Icons/corner-left-up.svg +1 -0
  142. package/dist/assets/Icons/corner-right-down.svg +1 -0
  143. package/dist/assets/Icons/corner-right-up.svg +1 -0
  144. package/dist/assets/Icons/corner-up-left.svg +1 -0
  145. package/dist/assets/Icons/corner-up-right.svg +1 -0
  146. package/dist/assets/Icons/cpu.svg +1 -0
  147. package/dist/assets/Icons/credit-card.svg +1 -0
  148. package/dist/assets/Icons/crosshair.svg +1 -0
  149. package/dist/assets/Icons/ctrl.svg +1 -0
  150. package/dist/assets/Icons/database.svg +1 -0
  151. package/dist/assets/Icons/devianart-neutral.svg +1 -0
  152. package/dist/assets/Icons/devianart.svg +1 -0
  153. package/dist/assets/Icons/discord-neutral.svg +1 -0
  154. package/dist/assets/Icons/discord.svg +1 -0
  155. package/dist/assets/Icons/dollar-sign.svg +1 -0
  156. package/dist/assets/Icons/dot.svg +1 -0
  157. package/dist/assets/Icons/download.svg +1 -0
  158. package/dist/assets/Icons/dprofile-neutral.svg +1 -0
  159. package/dist/assets/Icons/dprofile.svg +1 -0
  160. package/dist/assets/Icons/dribbble-neutral.svg +1 -0
  161. package/dist/assets/Icons/dribbble.svg +1 -0
  162. package/dist/assets/Icons/droplet.svg +1 -0
  163. package/dist/assets/Icons/duplicate.svg +1 -0
  164. package/dist/assets/Icons/dzen-neutral.svg +1 -0
  165. package/dist/assets/Icons/dzen.svg +1 -0
  166. package/dist/assets/Icons/earth-lock.svg +1 -0
  167. package/dist/assets/Icons/earth.svg +1 -0
  168. package/dist/assets/Icons/ellipsis.svg +1 -0
  169. package/dist/assets/Icons/expand.svg +1 -0
  170. package/dist/assets/Icons/external-link.svg +1 -0
  171. package/dist/assets/Icons/eye-off.svg +1 -0
  172. package/dist/assets/Icons/eye.svg +1 -0
  173. package/dist/assets/Icons/facebook-neutral.svg +1 -0
  174. package/dist/assets/Icons/facebook.svg +1 -0
  175. package/dist/assets/Icons/fast-forward.svg +1 -0
  176. package/dist/assets/Icons/figma-neutral.svg +1 -0
  177. package/dist/assets/Icons/figma.svg +1 -0
  178. package/dist/assets/Icons/file-down.svg +1 -0
  179. package/dist/assets/Icons/file-plus.svg +1 -0
  180. package/dist/assets/Icons/file-text.svg +1 -0
  181. package/dist/assets/Icons/file.svg +1 -0
  182. package/dist/assets/Icons/film.svg +1 -0
  183. package/dist/assets/Icons/filter-x.svg +1 -0
  184. package/dist/assets/Icons/filter.svg +1 -0
  185. package/dist/assets/Icons/fingerprint-pattern.svg +1 -0
  186. package/dist/assets/Icons/flag.svg +1 -0
  187. package/dist/assets/Icons/flask-conical.svg +1 -0
  188. package/dist/assets/Icons/folder.svg +1 -0
  189. package/dist/assets/Icons/funnel-plus.svg +1 -0
  190. package/dist/assets/Icons/ghost.svg +1 -0
  191. package/dist/assets/Icons/git-branch.svg +1 -0
  192. package/dist/assets/Icons/git-commit-horizontal.svg +1 -0
  193. package/dist/assets/Icons/git-commit-vertical.svg +1 -0
  194. package/dist/assets/Icons/git-compare-arrows-alt.svg +1 -0
  195. package/dist/assets/Icons/git-compare-arrows.svg +1 -0
  196. package/dist/assets/Icons/git-compare.svg +1 -0
  197. package/dist/assets/Icons/git-fork.svg +1 -0
  198. package/dist/assets/Icons/git-graph.svg +1 -0
  199. package/dist/assets/Icons/git-merge.svg +1 -0
  200. package/dist/assets/Icons/git-pull-request-arrow.svg +1 -0
  201. package/dist/assets/Icons/git-pull-request-closed.svg +1 -0
  202. package/dist/assets/Icons/git-pull-request-create-arrow.svg +1 -0
  203. package/dist/assets/Icons/git-pull-request-create.svg +1 -0
  204. package/dist/assets/Icons/git-pull-request-draft.svg +1 -0
  205. package/dist/assets/Icons/git-pull-request.svg +1 -0
  206. package/dist/assets/Icons/github-neutral.svg +1 -0
  207. package/dist/assets/Icons/github.svg +1 -0
  208. package/dist/assets/Icons/globe-lock.svg +1 -0
  209. package/dist/assets/Icons/globe.svg +1 -0
  210. package/dist/assets/Icons/gmail-neutral.svg +1 -0
  211. package/dist/assets/Icons/gmail.svg +1 -0
  212. package/dist/assets/Icons/google-meet-neutral.svg +1 -0
  213. package/dist/assets/Icons/google-meet.svg +1 -0
  214. package/dist/assets/Icons/google-neutral.svg +1 -0
  215. package/dist/assets/Icons/google-play-neutral.svg +1 -0
  216. package/dist/assets/Icons/google-play.svg +1 -0
  217. package/dist/assets/Icons/google-podcast-neutral.svg +1 -0
  218. package/dist/assets/Icons/google-podcast.svg +1 -0
  219. package/dist/assets/Icons/google.svg +1 -0
  220. package/dist/assets/Icons/grip-horizontal.svg +1 -0
  221. package/dist/assets/Icons/grip-vertical.svg +1 -0
  222. package/dist/assets/Icons/hammer.svg +1 -0
  223. package/dist/assets/Icons/heart-pulse.svg +1 -0
  224. package/dist/assets/Icons/history.svg +1 -0
  225. package/dist/assets/Icons/home.svg +1 -0
  226. package/dist/assets/Icons/imo-neutral.svg +1 -0
  227. package/dist/assets/Icons/imo.svg +1 -0
  228. package/dist/assets/Icons/infinity.svg +1 -0
  229. package/dist/assets/Icons/info.svg +1 -0
  230. package/dist/assets/Icons/infobip-neutral.svg +1 -0
  231. package/dist/assets/Icons/infobip.svg +1 -0
  232. package/dist/assets/Icons/instagram-neutral.svg +1 -0
  233. package/dist/assets/Icons/instagram.svg +1 -0
  234. package/dist/assets/Icons/key-round.svg +1 -0
  235. package/dist/assets/Icons/key-square.svg +1 -0
  236. package/dist/assets/Icons/keyboard.svg +1 -0
  237. package/dist/assets/Icons/kickstarter-neutral.svg +1 -0
  238. package/dist/assets/Icons/kickstarter.svg +1 -0
  239. package/dist/assets/Icons/laptop.svg +1 -0
  240. package/dist/assets/Icons/layers.svg +1 -0
  241. package/dist/assets/Icons/layers2.svg +1 -0
  242. package/dist/assets/Icons/layers3.svg +1 -0
  243. package/dist/assets/Icons/layout-dashboard.svg +1 -0
  244. package/dist/assets/Icons/layout-grid.svg +1 -0
  245. package/dist/assets/Icons/layout-list.svg +1 -0
  246. package/dist/assets/Icons/layout-panel-left.svg +1 -0
  247. package/dist/assets/Icons/layout-panel-top.svg +1 -0
  248. package/dist/assets/Icons/layout-template.svg +1 -0
  249. package/dist/assets/Icons/library-big.svg +1 -0
  250. package/dist/assets/Icons/life-buoy.svg +1 -0
  251. package/dist/assets/Icons/lightbulb-off.svg +1 -0
  252. package/dist/assets/Icons/lightbulb.svg +1 -0
  253. package/dist/assets/Icons/line-neutral.svg +1 -0
  254. package/dist/assets/Icons/line.svg +1 -0
  255. package/dist/assets/Icons/link.svg +1 -0
  256. package/dist/assets/Icons/link2-off.svg +1 -0
  257. package/dist/assets/Icons/link2.svg +1 -0
  258. package/dist/assets/Icons/linkedin-neutral.svg +1 -0
  259. package/dist/assets/Icons/linkedin.svg +1 -0
  260. package/dist/assets/Icons/list-checks.svg +1 -0
  261. package/dist/assets/Icons/list-collapse.svg +1 -0
  262. package/dist/assets/Icons/list-filter.svg +1 -0
  263. package/dist/assets/Icons/list-minus.svg +1 -0
  264. package/dist/assets/Icons/list-ordered.svg +1 -0
  265. package/dist/assets/Icons/list-plus.svg +1 -0
  266. package/dist/assets/Icons/list-restart.svg +1 -0
  267. package/dist/assets/Icons/list-start.svg +1 -0
  268. package/dist/assets/Icons/list-todo.svg +1 -0
  269. package/dist/assets/Icons/list-tree.svg +1 -0
  270. package/dist/assets/Icons/list-video.svg +1 -0
  271. package/dist/assets/Icons/list-x.svg +1 -0
  272. package/dist/assets/Icons/list.svg +1 -0
  273. package/dist/assets/Icons/loader-circle.svg +1 -0
  274. package/dist/assets/Icons/loader.svg +1 -0
  275. package/dist/assets/Icons/lock-open.svg +1 -0
  276. package/dist/assets/Icons/lock.svg +1 -0
  277. package/dist/assets/Icons/log-in.svg +1 -0
  278. package/dist/assets/Icons/log-out.svg +1 -0
  279. package/dist/assets/Icons/mail-check.svg +1 -0
  280. package/dist/assets/Icons/mail-minus.svg +1 -0
  281. package/dist/assets/Icons/mail-open.svg +1 -0
  282. package/dist/assets/Icons/mail-plus.svg +1 -0
  283. package/dist/assets/Icons/mail-question.svg +1 -0
  284. package/dist/assets/Icons/mail-search.svg +1 -0
  285. package/dist/assets/Icons/mail-warning.svg +1 -0
  286. package/dist/assets/Icons/mail-x.svg +1 -0
  287. package/dist/assets/Icons/mail.svg +1 -0
  288. package/dist/assets/Icons/mailbox.svg +1 -0
  289. package/dist/assets/Icons/mailersend-neutral.svg +1 -0
  290. package/dist/assets/Icons/mailersend.svg +1 -0
  291. package/dist/assets/Icons/mailgun-neutral.svg +1 -0
  292. package/dist/assets/Icons/mailgun.svg +1 -0
  293. package/dist/assets/Icons/mailjet-neutral.svg +1 -0
  294. package/dist/assets/Icons/mailjet.svg +1 -0
  295. package/dist/assets/Icons/mails.svg +1 -0
  296. package/dist/assets/Icons/mailtrap-neutral.svg +1 -0
  297. package/dist/assets/Icons/mailtrap.svg +1 -0
  298. package/dist/assets/Icons/mandrill-neutral.svg +1 -0
  299. package/dist/assets/Icons/mandrill.svg +1 -0
  300. package/dist/assets/Icons/map-pin.svg +1 -0
  301. package/dist/assets/Icons/maqsam-neutral.svg +1 -0
  302. package/dist/assets/Icons/maqsam.svg +1 -0
  303. package/dist/assets/Icons/mattermost-neutral.svg +1 -0
  304. package/dist/assets/Icons/mattermost.svg +1 -0
  305. package/dist/assets/Icons/maximize.svg +1 -0
  306. package/dist/assets/Icons/maximize2.svg +1 -0
  307. package/dist/assets/Icons/medium-neutral.svg +1 -0
  308. package/dist/assets/Icons/medium.svg +1 -0
  309. package/dist/assets/Icons/megaphone-off.svg +1 -0
  310. package/dist/assets/Icons/megaphone.svg +1 -0
  311. package/dist/assets/Icons/menu.svg +1 -0
  312. package/dist/assets/Icons/merge.svg +1 -0
  313. package/dist/assets/Icons/message-square-code.svg +1 -0
  314. package/dist/assets/Icons/message-square-dashed.svg +1 -0
  315. package/dist/assets/Icons/message-square-diff.svg +1 -0
  316. package/dist/assets/Icons/message-square-dot.svg +1 -0
  317. package/dist/assets/Icons/message-square-heart.svg +1 -0
  318. package/dist/assets/Icons/message-square-off.svg +1 -0
  319. package/dist/assets/Icons/message-square-plus.svg +1 -0
  320. package/dist/assets/Icons/message-square-quote.svg +1 -0
  321. package/dist/assets/Icons/message-square-reply.svg +1 -0
  322. package/dist/assets/Icons/message-square-share.svg +1 -0
  323. package/dist/assets/Icons/message-square-text.svg +1 -0
  324. package/dist/assets/Icons/message-square-warning.svg +1 -0
  325. package/dist/assets/Icons/message-square-x.svg +1 -0
  326. package/dist/assets/Icons/message-square.svg +1 -0
  327. package/dist/assets/Icons/messages-square.svg +1 -0
  328. package/dist/assets/Icons/messenger-neutral.svg +1 -0
  329. package/dist/assets/Icons/messenger.svg +1 -0
  330. package/dist/assets/Icons/microsoft-neutral.svg +1 -0
  331. package/dist/assets/Icons/microsoft-teams-neutral.svg +1 -0
  332. package/dist/assets/Icons/microsoft-teams.svg +1 -0
  333. package/dist/assets/Icons/microsoft.svg +1 -0
  334. package/dist/assets/Icons/minimize.svg +1 -0
  335. package/dist/assets/Icons/minimize2.svg +1 -0
  336. package/dist/assets/Icons/minus.svg +1 -0
  337. package/dist/assets/Icons/moon.svg +1 -0
  338. package/dist/assets/Icons/mouse-pointer-ban.svg +1 -0
  339. package/dist/assets/Icons/mouse-pointer-click.svg +1 -0
  340. package/dist/assets/Icons/mouse-pointer.svg +1 -0
  341. package/dist/assets/Icons/mouse-pointer2.svg +1 -0
  342. package/dist/assets/Icons/mouse.svg +1 -0
  343. package/dist/assets/Icons/move-diagonal.svg +1 -0
  344. package/dist/assets/Icons/move-diagonal2.svg +1 -0
  345. package/dist/assets/Icons/move-down-left.svg +1 -0
  346. package/dist/assets/Icons/move-down-right.svg +1 -0
  347. package/dist/assets/Icons/move-down.svg +1 -0
  348. package/dist/assets/Icons/move-horizontal.svg +1 -0
  349. package/dist/assets/Icons/move-left.svg +1 -0
  350. package/dist/assets/Icons/move-right.svg +1 -0
  351. package/dist/assets/Icons/move-up-left.svg +1 -0
  352. package/dist/assets/Icons/move-up-right.svg +1 -0
  353. package/dist/assets/Icons/move-up.svg +1 -0
  354. package/dist/assets/Icons/move-vertical.svg +1 -0
  355. package/dist/assets/Icons/move3-d.svg +1 -0
  356. package/dist/assets/Icons/netcore-neutral.svg +1 -0
  357. package/dist/assets/Icons/netcore.svg +1 -0
  358. package/dist/assets/Icons/notebook-pen.svg +1 -0
  359. package/dist/assets/Icons/notebook-tabs.svg +1 -0
  360. package/dist/assets/Icons/notebook-text.svg +1 -0
  361. package/dist/assets/Icons/notebook.svg +1 -0
  362. package/dist/assets/Icons/notepad-text-dashed.svg +1 -0
  363. package/dist/assets/Icons/notepad-text.svg +1 -0
  364. package/dist/assets/Icons/notion-neutral.svg +1 -0
  365. package/dist/assets/Icons/notion.svg +1 -0
  366. package/dist/assets/Icons/octagon-alert.svg +1 -0
  367. package/dist/assets/Icons/octagon-pause.svg +1 -0
  368. package/dist/assets/Icons/octagon-x.svg +1 -0
  369. package/dist/assets/Icons/octagon.svg +1 -0
  370. package/dist/assets/Icons/ok-neutral.svg +1 -0
  371. package/dist/assets/Icons/ok-only-sign-neutral.svg +1 -0
  372. package/dist/assets/Icons/ok-only-sign.svg +1 -0
  373. package/dist/assets/Icons/ok.svg +1 -0
  374. package/dist/assets/Icons/onlyfans-neutral.svg +1 -0
  375. package/dist/assets/Icons/onlyfans.svg +1 -0
  376. package/dist/assets/Icons/option.svg +1 -0
  377. package/dist/assets/Icons/outlook365-neutral.svg +1 -0
  378. package/dist/assets/Icons/outlook365.svg +1 -0
  379. package/dist/assets/Icons/paintbrush.svg +1 -0
  380. package/dist/assets/Icons/panel-bottom-open.svg +1 -0
  381. package/dist/assets/Icons/panel-bottom.svg +1 -0
  382. package/dist/assets/Icons/panel-left-close.svg +1 -0
  383. package/dist/assets/Icons/panel-left-dashed.svg +1 -0
  384. package/dist/assets/Icons/panel-left-open.svg +1 -0
  385. package/dist/assets/Icons/panel-left.svg +1 -0
  386. package/dist/assets/Icons/panel-right-animated.svg +1 -0
  387. package/dist/assets/Icons/panel-right-close.svg +1 -0
  388. package/dist/assets/Icons/panel-right-dashed.svg +1 -0
  389. package/dist/assets/Icons/panel-right-open.svg +1 -0
  390. package/dist/assets/Icons/panel-right.svg +1 -0
  391. package/dist/assets/Icons/panel-top-bottom-dashed.svg +1 -0
  392. package/dist/assets/Icons/panel-top-close.svg +1 -0
  393. package/dist/assets/Icons/panel-top-open.svg +1 -0
  394. package/dist/assets/Icons/panel-top.svg +1 -0
  395. package/dist/assets/Icons/panels-left-bottom.svg +1 -0
  396. package/dist/assets/Icons/panels-right-bottom.svg +1 -0
  397. package/dist/assets/Icons/panels-top-left.svg +1 -0
  398. package/dist/assets/Icons/paperclip.svg +1 -0
  399. package/dist/assets/Icons/patreon-neutral.svg +1 -0
  400. package/dist/assets/Icons/patreon.svg +1 -0
  401. package/dist/assets/Icons/paypal-neutral.svg +1 -0
  402. package/dist/assets/Icons/paypal.svg +1 -0
  403. package/dist/assets/Icons/pen-line.svg +1 -0
  404. package/dist/assets/Icons/pen-off.svg +1 -0
  405. package/dist/assets/Icons/pen-tool.svg +1 -0
  406. package/dist/assets/Icons/pen.svg +1 -0
  407. package/dist/assets/Icons/pencil-line.svg +1 -0
  408. package/dist/assets/Icons/pencil-off.svg +1 -0
  409. package/dist/assets/Icons/pencil-ruler.svg +1 -0
  410. package/dist/assets/Icons/pencil.svg +1 -0
  411. package/dist/assets/Icons/pentagon.svg +1 -0
  412. package/dist/assets/Icons/percentage.svg +1 -0
  413. package/dist/assets/Icons/phone.svg +1 -0
  414. package/dist/assets/Icons/pin-off.svg +1 -0
  415. package/dist/assets/Icons/pin.svg +1 -0
  416. package/dist/assets/Icons/pinterest-neutral.svg +1 -0
  417. package/dist/assets/Icons/pinterest.svg +1 -0
  418. package/dist/assets/Icons/play.svg +1 -0
  419. package/dist/assets/Icons/plug.svg +1 -0
  420. package/dist/assets/Icons/plunk-neutral.svg +1 -0
  421. package/dist/assets/Icons/plunk.svg +1 -0
  422. package/dist/assets/Icons/plus.svg +1 -0
  423. package/dist/assets/Icons/postmark-neutral.svg +1 -0
  424. package/dist/assets/Icons/postmark.svg +1 -0
  425. package/dist/assets/Icons/product-hunt-neutral.svg +1 -0
  426. package/dist/assets/Icons/product-hunt.svg +1 -0
  427. package/dist/assets/Icons/quora-neutral.svg +1 -0
  428. package/dist/assets/Icons/quora.svg +1 -0
  429. package/dist/assets/Icons/quote.svg +1 -0
  430. package/dist/assets/Icons/radar.svg +1 -0
  431. package/dist/assets/Icons/reddit-neutral.svg +1 -0
  432. package/dist/assets/Icons/reddit.svg +1 -0
  433. package/dist/assets/Icons/redo-dot.svg +1 -0
  434. package/dist/assets/Icons/redo.svg +1 -0
  435. package/dist/assets/Icons/redo2.svg +1 -0
  436. package/dist/assets/Icons/refresh-ccw.svg +1 -0
  437. package/dist/assets/Icons/refresh-cw-off.svg +1 -0
  438. package/dist/assets/Icons/resend-neutral.svg +1 -0
  439. package/dist/assets/Icons/resend.svg +1 -0
  440. package/dist/assets/Icons/rss.svg +1 -0
  441. package/dist/assets/Icons/rules.svg +1 -0
  442. package/dist/assets/Icons/scan-line.svg +1 -0
  443. package/dist/assets/Icons/scroll-text.svg +1 -0
  444. package/dist/assets/Icons/search-hint.svg +1 -0
  445. package/dist/assets/Icons/search-x.svg +1 -0
  446. package/dist/assets/Icons/search.svg +1 -0
  447. package/dist/assets/Icons/sendgrid-neutral.svg +1 -0
  448. package/dist/assets/Icons/sendgrid.svg +1 -0
  449. package/dist/assets/Icons/server.svg +1 -0
  450. package/dist/assets/Icons/ses-neutral.svg +1 -0
  451. package/dist/assets/Icons/ses.svg +1 -0
  452. package/dist/assets/Icons/settings.svg +1 -0
  453. package/dist/assets/Icons/settings2.svg +1 -0
  454. package/dist/assets/Icons/shapes.svg +1 -0
  455. package/dist/assets/Icons/share.svg +1 -0
  456. package/dist/assets/Icons/sheet.svg +1 -0
  457. package/dist/assets/Icons/shield-alert.svg +1 -0
  458. package/dist/assets/Icons/shield-ban.svg +1 -0
  459. package/dist/assets/Icons/shield-check.svg +1 -0
  460. package/dist/assets/Icons/shield-ellipsis.svg +1 -0
  461. package/dist/assets/Icons/shield-half.svg +1 -0
  462. package/dist/assets/Icons/shield-minus.svg +1 -0
  463. package/dist/assets/Icons/shield-off.svg +1 -0
  464. package/dist/assets/Icons/shield-plus.svg +1 -0
  465. package/dist/assets/Icons/shield-question.svg +1 -0
  466. package/dist/assets/Icons/shield-user.svg +1 -0
  467. package/dist/assets/Icons/shield-x.svg +1 -0
  468. package/dist/assets/Icons/shield.svg +1 -0
  469. package/dist/assets/Icons/shift.svg +1 -0
  470. package/dist/assets/Icons/signal-neutral.svg +1 -0
  471. package/dist/assets/Icons/signal.svg +1 -0
  472. package/dist/assets/Icons/signpost.svg +1 -0
  473. package/dist/assets/Icons/sina-weibo-neutral.svg +1 -0
  474. package/dist/assets/Icons/sina-weibo.svg +1 -0
  475. package/dist/assets/Icons/skull.svg +1 -0
  476. package/dist/assets/Icons/skype-neutral.svg +1 -0
  477. package/dist/assets/Icons/skype.svg +1 -0
  478. package/dist/assets/Icons/slack-neutral.svg +1 -0
  479. package/dist/assets/Icons/slack.svg +1 -0
  480. package/dist/assets/Icons/sliders-horizontal.svg +1 -0
  481. package/dist/assets/Icons/sliders-vertical.svg +1 -0
  482. package/dist/assets/Icons/smtp-neutral.svg +1 -0
  483. package/dist/assets/Icons/smtp.svg +1 -0
  484. package/dist/assets/Icons/snapchat-neutral.svg +1 -0
  485. package/dist/assets/Icons/snapchat.svg +1 -0
  486. package/dist/assets/Icons/soundcloud-neutral.svg +1 -0
  487. package/dist/assets/Icons/soundcloud.svg +1 -0
  488. package/dist/assets/Icons/space.svg +1 -0
  489. package/dist/assets/Icons/sparkpost-neutral.svg +1 -0
  490. package/dist/assets/Icons/sparkpost.svg +1 -0
  491. package/dist/assets/Icons/speed.svg +1 -0
  492. package/dist/assets/Icons/split.svg +1 -0
  493. package/dist/assets/Icons/spotify-neutral.svg +1 -0
  494. package/dist/assets/Icons/spotify.svg +1 -0
  495. package/dist/assets/Icons/square-arrow-out-up-right.svg +1 -0
  496. package/dist/assets/Icons/square-minus.svg +1 -0
  497. package/dist/assets/Icons/square-pen.svg +1 -0
  498. package/dist/assets/Icons/square-plus.svg +1 -0
  499. package/dist/assets/Icons/square-user-round.svg +1 -0
  500. package/dist/assets/Icons/stack-overflow-neutral.svg +1 -0
  501. package/dist/assets/Icons/stack-overflow.svg +1 -0
  502. package/dist/assets/Icons/star.svg +1 -0
  503. package/dist/assets/Icons/sun.svg +1 -0
  504. package/dist/assets/Icons/syringe.svg +1 -0
  505. package/dist/assets/Icons/tag.svg +1 -0
  506. package/dist/assets/Icons/target.svg +1 -0
  507. package/dist/assets/Icons/teams-neutral.svg +1 -0
  508. package/dist/assets/Icons/teams.svg +1 -0
  509. package/dist/assets/Icons/telegram-neutral.svg +1 -0
  510. package/dist/assets/Icons/telegram-only-sign-neutral.svg +1 -0
  511. package/dist/assets/Icons/telegram-only-sign.svg +1 -0
  512. package/dist/assets/Icons/telegram.svg +1 -0
  513. package/dist/assets/Icons/terminal.svg +1 -0
  514. package/dist/assets/Icons/test-policies.svg +1 -0
  515. package/dist/assets/Icons/threads-neutral.svg +1 -0
  516. package/dist/assets/Icons/threads.svg +1 -0
  517. package/dist/assets/Icons/thumbs-down.svg +1 -0
  518. package/dist/assets/Icons/thumbs-up.svg +1 -0
  519. package/dist/assets/Icons/tiktok-neutral.svg +1 -0
  520. package/dist/assets/Icons/tiktok.svg +1 -0
  521. package/dist/assets/Icons/tinder-neutral.svg +1 -0
  522. package/dist/assets/Icons/tinder.svg +1 -0
  523. package/dist/assets/Icons/trash.svg +1 -0
  524. package/dist/assets/Icons/trash2.svg +1 -0
  525. package/dist/assets/Icons/triangle-alert.svg +1 -0
  526. package/dist/assets/Icons/tumblr-neutral.svg +1 -0
  527. package/dist/assets/Icons/tumblr.svg +1 -0
  528. package/dist/assets/Icons/twitch-neutral.svg +1 -0
  529. package/dist/assets/Icons/twitch.svg +1 -0
  530. package/dist/assets/Icons/undo-dot.svg +1 -0
  531. package/dist/assets/Icons/undo.svg +1 -0
  532. package/dist/assets/Icons/undo2.svg +1 -0
  533. package/dist/assets/Icons/unplug.svg +1 -0
  534. package/dist/assets/Icons/user-check.svg +1 -0
  535. package/dist/assets/Icons/user-minus.svg +1 -0
  536. package/dist/assets/Icons/user-plus.svg +1 -0
  537. package/dist/assets/Icons/user-round-x.svg +1 -0
  538. package/dist/assets/Icons/user-round.svg +1 -0
  539. package/dist/assets/Icons/user.svg +1 -0
  540. package/dist/assets/Icons/username.svg +1 -0
  541. package/dist/assets/Icons/users-round.svg +1 -0
  542. package/dist/assets/Icons/users.svg +1 -0
  543. package/dist/assets/Icons/viber-neutral.svg +1 -0
  544. package/dist/assets/Icons/viber.svg +1 -0
  545. package/dist/assets/Icons/video.svg +1 -0
  546. package/dist/assets/Icons/vimeo-neutral.svg +1 -0
  547. package/dist/assets/Icons/vimeo.svg +1 -0
  548. package/dist/assets/Icons/vk-music-neutral.svg +1 -0
  549. package/dist/assets/Icons/vk-music.svg +1 -0
  550. package/dist/assets/Icons/vk-neutral.svg +1 -0
  551. package/dist/assets/Icons/vk-only-sign-neutral.svg +1 -0
  552. package/dist/assets/Icons/vk-only-sign.svg +1 -0
  553. package/dist/assets/Icons/vk.svg +1 -0
  554. package/dist/assets/Icons/webhook-neutral.svg +1 -0
  555. package/dist/assets/Icons/webhook.svg +1 -0
  556. package/dist/assets/Icons/wechat-neutral.svg +1 -0
  557. package/dist/assets/Icons/wechat.svg +1 -0
  558. package/dist/assets/Icons/whatsapp-badge-neutral.svg +1 -0
  559. package/dist/assets/Icons/whatsapp-badge.svg +1 -0
  560. package/dist/assets/Icons/whatsapp-neutral.svg +1 -0
  561. package/dist/assets/Icons/whatsapp.svg +1 -0
  562. package/dist/assets/Icons/workflow.svg +1 -0
  563. package/dist/assets/Icons/wrap-text.svg +1 -0
  564. package/dist/assets/Icons/wrench.svg +1 -0
  565. package/dist/assets/Icons/x-ex-twitter-neutral.svg +1 -0
  566. package/dist/assets/Icons/x-ex-twitter.svg +1 -0
  567. package/dist/assets/Icons/x.svg +1 -0
  568. package/dist/assets/Icons/xing-neutral.svg +1 -0
  569. package/dist/assets/Icons/xing.svg +1 -0
  570. package/dist/assets/Icons/yandex-music-neutral.svg +1 -0
  571. package/dist/assets/Icons/yandex-music.svg +1 -0
  572. package/dist/assets/Icons/yelp-neutral.svg +1 -0
  573. package/dist/assets/Icons/yelp.svg +1 -0
  574. package/dist/assets/Icons/youtube-music-neutral.svg +1 -0
  575. package/dist/assets/Icons/youtube-music.svg +1 -0
  576. package/dist/assets/Icons/youtube-neutral.svg +1 -0
  577. package/dist/assets/Icons/youtube-shorts-neutral.svg +1 -0
  578. package/dist/assets/Icons/youtube-shorts.svg +1 -0
  579. package/dist/assets/Icons/youtube.svg +1 -0
  580. package/dist/assets/Icons/zap.svg +1 -0
  581. package/dist/assets/Icons/zoom-in.svg +1 -0
  582. package/dist/assets/Icons/zoom-neutral.svg +1 -0
  583. package/dist/assets/Icons/zoom-out.svg +1 -0
  584. package/dist/assets/Icons/zoom.svg +1 -0
  585. package/dist/assets/Icons/zulip-neutral.svg +1 -0
  586. package/dist/assets/Icons/zulip.svg +1 -0
  587. package/dist/assets/Logos/wallarm.svg +1 -0
  588. package/dist/assets.json +4666 -0
  589. package/dist/project/README.md +265 -0
  590. package/dist/project/components/Accordion/README.md +354 -0
  591. package/dist/project/components/Accordion/preview.html +2 -0
  592. package/dist/project/components/Accordion/stories.js +12 -0
  593. package/dist/project/components/AgentAvatar/README.md +127 -0
  594. package/dist/project/components/AgentAvatar/preview.html +2 -0
  595. package/dist/project/components/AgentAvatar/stories.js +12 -0
  596. package/dist/project/components/AgentAvatar/stories.md +1805 -0
  597. package/dist/project/components/AgentGlyph/README.md +1182 -0
  598. package/dist/project/components/AgentGlyph/preview.html +2 -0
  599. package/dist/project/components/AgentGlyph/stories.js +12 -0
  600. package/dist/project/components/AgentLookBuilder/README.md +269 -0
  601. package/dist/project/components/AgentLookBuilder/preview.html +2 -0
  602. package/dist/project/components/AgentLookBuilder/stories.js +12 -0
  603. package/dist/project/components/Alert/README.md +492 -0
  604. package/dist/project/components/Alert/preview.html +2 -0
  605. package/dist/project/components/Alert/stories.js +12 -0
  606. package/dist/project/components/AnimatedBackground/README.md +124 -0
  607. package/dist/project/components/AnimatedBackground/preview.html +2 -0
  608. package/dist/project/components/AnimatedBackground/stories.js +12 -0
  609. package/dist/project/components/AppShell/README.md +75 -0
  610. package/dist/project/components/AppShell/preview.html +2 -0
  611. package/dist/project/components/AppShell/stories.js +28 -0
  612. package/dist/project/components/AppShell/stories.md +2878 -0
  613. package/dist/project/components/ApprovalCard/README.md +353 -0
  614. package/dist/project/components/ApprovalCard/preview.html +2 -0
  615. package/dist/project/components/ApprovalCard/stories.js +12 -0
  616. package/dist/project/components/AreaChart/README.md +673 -0
  617. package/dist/project/components/AreaChart/preview.html +2 -0
  618. package/dist/project/components/AreaChart/stories.js +12 -0
  619. package/dist/project/components/AssistantMessage/README.md +724 -0
  620. package/dist/project/components/AssistantMessage/preview.html +2 -0
  621. package/dist/project/components/AssistantMessage/stories.js +55 -0
  622. package/dist/project/components/Attribute/README.md +1174 -0
  623. package/dist/project/components/Attribute/preview.html +2 -0
  624. package/dist/project/components/Attribute/stories.js +12 -0
  625. package/dist/project/components/Avatar/README.md +416 -0
  626. package/dist/project/components/Avatar/preview.html +2 -0
  627. package/dist/project/components/Avatar/stories.js +12 -0
  628. package/dist/project/components/Badge/README.md +853 -0
  629. package/dist/project/components/Badge/preview.html +2 -0
  630. package/dist/project/components/Badge/stories.js +12 -0
  631. package/dist/project/components/Banner/README.md +341 -0
  632. package/dist/project/components/Banner/preview.html +2 -0
  633. package/dist/project/components/Banner/stories.js +12 -0
  634. package/dist/project/components/BarList/README.md +757 -0
  635. package/dist/project/components/BarList/preview.html +2 -0
  636. package/dist/project/components/BarList/stories.js +12 -0
  637. package/dist/project/components/Breadcrumbs/README.md +274 -0
  638. package/dist/project/components/Breadcrumbs/preview.html +2 -0
  639. package/dist/project/components/Breadcrumbs/stories.js +12 -0
  640. package/dist/project/components/BulkBar/README.md +19 -0
  641. package/dist/project/components/Button/README.md +467 -0
  642. package/dist/project/components/Button/preview.html +2 -0
  643. package/dist/project/components/Button/stories.js +12 -0
  644. package/dist/project/components/Calendar/README.md +654 -0
  645. package/dist/project/components/Calendar/preview.html +2 -0
  646. package/dist/project/components/Calendar/stories.js +12 -0
  647. package/dist/project/components/Card/README.md +367 -0
  648. package/dist/project/components/Card/preview.html +2 -0
  649. package/dist/project/components/Card/stories.js +12 -0
  650. package/dist/project/components/ChainOfThought/README.md +412 -0
  651. package/dist/project/components/ChainOfThought/preview.html +2 -0
  652. package/dist/project/components/ChainOfThought/stories.js +12 -0
  653. package/dist/project/components/Chart/README.md +224 -0
  654. package/dist/project/components/Chart/preview.html +2 -0
  655. package/dist/project/components/Chart/stories.js +12 -0
  656. package/dist/project/components/Chat/README.md +1244 -0
  657. package/dist/project/components/Chat/preview.html +2 -0
  658. package/dist/project/components/Chat/stories.js +12 -0
  659. package/dist/project/components/ChatInput/README.md +378 -0
  660. package/dist/project/components/ChatInput/preview.html +2 -0
  661. package/dist/project/components/ChatInput/stories.js +12 -0
  662. package/dist/project/components/ChatPermissions/README.md +218 -0
  663. package/dist/project/components/ChatPermissions/preview.html +2 -0
  664. package/dist/project/components/ChatPermissions/stories.js +12 -0
  665. package/dist/project/components/Checkbox/README.md +367 -0
  666. package/dist/project/components/Checkbox/preview.html +2 -0
  667. package/dist/project/components/Checkbox/stories.js +12 -0
  668. package/dist/project/components/Code/README.md +243 -0
  669. package/dist/project/components/Code/preview.html +2 -0
  670. package/dist/project/components/Code/stories.js +12 -0
  671. package/dist/project/components/CodeEditor/README.md +280 -0
  672. package/dist/project/components/CodeEditor/preview.html +2 -0
  673. package/dist/project/components/CodeEditor/stories.js +162 -0
  674. package/dist/project/components/CodeEditor/stories.md +1533 -0
  675. package/dist/project/components/CodeSnippet/README.md +1352 -0
  676. package/dist/project/components/CodeSnippet/preview.html +2 -0
  677. package/dist/project/components/CodeSnippet/stories.js +156 -0
  678. package/dist/project/components/ColumnChart/README.md +521 -0
  679. package/dist/project/components/ColumnChart/preview.html +2 -0
  680. package/dist/project/components/ColumnChart/stories.js +12 -0
  681. package/dist/project/components/Conversation/README.md +314 -0
  682. package/dist/project/components/Conversation/preview.html +2 -0
  683. package/dist/project/components/Conversation/stories.js +12 -0
  684. package/dist/project/components/Copyable/README.md +406 -0
  685. package/dist/project/components/Copyable/preview.html +2 -0
  686. package/dist/project/components/Copyable/stories.js +12 -0
  687. package/dist/project/components/Country/README.md +226 -0
  688. package/dist/project/components/Country/preview.html +2 -0
  689. package/dist/project/components/Country/stories.js +12 -0
  690. package/dist/project/components/Cover/preview.html +43 -0
  691. package/dist/project/components/DateInput/README.md +458 -0
  692. package/dist/project/components/DateInput/preview.html +2 -0
  693. package/dist/project/components/DateInput/stories.js +12 -0
  694. package/dist/project/components/DateRangeInput/README.md +412 -0
  695. package/dist/project/components/DateRangeInput/preview.html +2 -0
  696. package/dist/project/components/DateRangeInput/stories.js +12 -0
  697. package/dist/project/components/Dialog/README.md +1140 -0
  698. package/dist/project/components/Dialog/preview.html +2 -0
  699. package/dist/project/components/Dialog/stories.js +12 -0
  700. package/dist/project/components/Drawer/README.md +1163 -0
  701. package/dist/project/components/Drawer/preview.html +2 -0
  702. package/dist/project/components/Drawer/stories.js +12 -0
  703. package/dist/project/components/DropdownMenu/README.md +678 -0
  704. package/dist/project/components/DropdownMenu/preview.html +2 -0
  705. package/dist/project/components/DropdownMenu/stories.js +12 -0
  706. package/dist/project/components/EmptyState/README.md +276 -0
  707. package/dist/project/components/EmptyState/preview.html +2 -0
  708. package/dist/project/components/EmptyState/stories.js +12 -0
  709. package/dist/project/components/FeedbackPulse/README.md +125 -0
  710. package/dist/project/components/FeedbackPulse/preview.html +2 -0
  711. package/dist/project/components/FeedbackPulse/stories.js +12 -0
  712. package/dist/project/components/Field/README.md +676 -0
  713. package/dist/project/components/Field/preview.html +2 -0
  714. package/dist/project/components/Field/stories.js +12 -0
  715. package/dist/project/components/FileUpload/README.md +544 -0
  716. package/dist/project/components/FileUpload/preview.html +2 -0
  717. package/dist/project/components/FileUpload/stories.js +12 -0
  718. package/dist/project/components/FilterCascade/README.md +348 -0
  719. package/dist/project/components/FilterCascade/preview.html +2 -0
  720. package/dist/project/components/FilterCascade/stories.js +12 -0
  721. package/dist/project/components/FilterDropdown/README.md +542 -0
  722. package/dist/project/components/FilterDropdown/preview.html +2 -0
  723. package/dist/project/components/FilterDropdown/stories.js +12 -0
  724. package/dist/project/components/FilterInput/README.md +416 -0
  725. package/dist/project/components/FilterInput/preview.html +2 -0
  726. package/dist/project/components/FilterInput/stories.js +12 -0
  727. package/dist/project/components/FilterInput/stories.md +6682 -0
  728. package/dist/project/components/Flex/README.md +225 -0
  729. package/dist/project/components/Flex/preview.html +2 -0
  730. package/dist/project/components/Flex/stories.js +12 -0
  731. package/dist/project/components/FormatDateTime/README.md +315 -0
  732. package/dist/project/components/FormatDateTime/preview.html +2 -0
  733. package/dist/project/components/FormatDateTime/stories.js +12 -0
  734. package/dist/project/components/FormatNumber/README.md +317 -0
  735. package/dist/project/components/FormatNumber/preview.html +2 -0
  736. package/dist/project/components/FormatNumber/stories.js +12 -0
  737. package/dist/project/components/Heading/README.md +240 -0
  738. package/dist/project/components/Heading/preview.html +2 -0
  739. package/dist/project/components/Heading/stories.js +12 -0
  740. package/dist/project/components/HorizontalBarStack/README.md +281 -0
  741. package/dist/project/components/HorizontalBarStack/preview.html +2 -0
  742. package/dist/project/components/HorizontalBarStack/stories.js +12 -0
  743. package/dist/project/components/HttpMethod/README.md +137 -0
  744. package/dist/project/components/HttpMethod/preview.html +2 -0
  745. package/dist/project/components/HttpMethod/stories.js +12 -0
  746. package/dist/project/components/ImageCropper/README.md +332 -0
  747. package/dist/project/components/ImageCropper/preview.html +2 -0
  748. package/dist/project/components/ImageCropper/stories.js +33 -0
  749. package/dist/project/components/Indicator/README.md +110 -0
  750. package/dist/project/components/Indicator/preview.html +2 -0
  751. package/dist/project/components/Indicator/stories.js +12 -0
  752. package/dist/project/components/InlineEdit/README.md +977 -0
  753. package/dist/project/components/InlineEdit/preview.html +2 -0
  754. package/dist/project/components/InlineEdit/stories.js +12 -0
  755. package/dist/project/components/Input/README.md +187 -0
  756. package/dist/project/components/Input/preview.html +2 -0
  757. package/dist/project/components/Input/stories.js +12 -0
  758. package/dist/project/components/InputGroup/README.md +423 -0
  759. package/dist/project/components/InputGroup/preview.html +2 -0
  760. package/dist/project/components/InputGroup/stories.js +12 -0
  761. package/dist/project/components/InputOTP/README.md +201 -0
  762. package/dist/project/components/InputOTP/preview.html +2 -0
  763. package/dist/project/components/InputOTP/stories.js +12 -0
  764. package/dist/project/components/Ip/README.md +226 -0
  765. package/dist/project/components/Ip/preview.html +2 -0
  766. package/dist/project/components/Ip/stories.js +12 -0
  767. package/dist/project/components/Kbd/README.md +126 -0
  768. package/dist/project/components/Kbd/preview.html +2 -0
  769. package/dist/project/components/Kbd/stories.js +12 -0
  770. package/dist/project/components/LineChart/README.md +1479 -0
  771. package/dist/project/components/LineChart/preview.html +2 -0
  772. package/dist/project/components/LineChart/stories.js +12 -0
  773. package/dist/project/components/Link/README.md +160 -0
  774. package/dist/project/components/Link/preview.html +2 -0
  775. package/dist/project/components/Link/stories.js +12 -0
  776. package/dist/project/components/List/README.md +181 -0
  777. package/dist/project/components/List/preview.html +2 -0
  778. package/dist/project/components/List/stories.js +12 -0
  779. package/dist/project/components/Loader/README.md +145 -0
  780. package/dist/project/components/Loader/preview.html +2 -0
  781. package/dist/project/components/Loader/stories.js +12 -0
  782. package/dist/project/components/Logo/README.md +183 -0
  783. package/dist/project/components/Logo/preview.html +2 -0
  784. package/dist/project/components/Logo/stories.js +12 -0
  785. package/dist/project/components/MessageActions/README.md +255 -0
  786. package/dist/project/components/MessageActions/preview.html +2 -0
  787. package/dist/project/components/MessageActions/stories.js +12 -0
  788. package/dist/project/components/Metric/README.md +324 -0
  789. package/dist/project/components/Metric/preview.html +2 -0
  790. package/dist/project/components/Metric/stories.js +12 -0
  791. package/dist/project/components/NavRail/README.md +25 -0
  792. package/dist/project/components/NotificationCenter/README.md +91 -0
  793. package/dist/project/components/NotificationCenter/preview.html +2 -0
  794. package/dist/project/components/NotificationCenter/stories.js +12 -0
  795. package/dist/project/components/NotificationCenter/stories.md +2170 -0
  796. package/dist/project/components/NumberInput/README.md +177 -0
  797. package/dist/project/components/NumberInput/preview.html +2 -0
  798. package/dist/project/components/NumberInput/stories.js +12 -0
  799. package/dist/project/components/NumericBadge/README.md +252 -0
  800. package/dist/project/components/NumericBadge/preview.html +2 -0
  801. package/dist/project/components/NumericBadge/stories.js +12 -0
  802. package/dist/project/components/OverflowList/README.md +324 -0
  803. package/dist/project/components/OverflowList/preview.html +2 -0
  804. package/dist/project/components/OverflowList/stories.js +12 -0
  805. package/dist/project/components/OverflowTooltip/README.md +421 -0
  806. package/dist/project/components/OverflowTooltip/preview.html +2 -0
  807. package/dist/project/components/OverflowTooltip/stories.js +12 -0
  808. package/dist/project/components/Overlay/README.md +95 -0
  809. package/dist/project/components/Overlay/preview.html +2 -0
  810. package/dist/project/components/Overlay/stories.js +12 -0
  811. package/dist/project/components/Overview/README.md +445 -0
  812. package/dist/project/components/Overview/preview.html +2 -0
  813. package/dist/project/components/Overview/stories.js +12 -0
  814. package/dist/project/components/Page/README.md +215 -0
  815. package/dist/project/components/Page/preview.html +2 -0
  816. package/dist/project/components/Page/stories.js +12 -0
  817. package/dist/project/components/Pagination/README.md +302 -0
  818. package/dist/project/components/Pagination/preview.html +2 -0
  819. package/dist/project/components/Pagination/stories.js +12 -0
  820. package/dist/project/components/ParameterPath/README.md +284 -0
  821. package/dist/project/components/ParameterPath/preview.html +2 -0
  822. package/dist/project/components/ParameterPath/stories.js +12 -0
  823. package/dist/project/components/PasswordComplexity/README.md +171 -0
  824. package/dist/project/components/PasswordComplexity/preview.html +2 -0
  825. package/dist/project/components/PasswordComplexity/stories.js +12 -0
  826. package/dist/project/components/PasswordInput/README.md +254 -0
  827. package/dist/project/components/PasswordInput/preview.html +2 -0
  828. package/dist/project/components/PasswordInput/stories.js +12 -0
  829. package/dist/project/components/PieChart/README.md +895 -0
  830. package/dist/project/components/PieChart/preview.html +2 -0
  831. package/dist/project/components/PieChart/stories.js +12 -0
  832. package/dist/project/components/Popover/README.md +282 -0
  833. package/dist/project/components/Popover/preview.html +2 -0
  834. package/dist/project/components/Popover/stories.js +12 -0
  835. package/dist/project/components/Progress/README.md +174 -0
  836. package/dist/project/components/Progress/preview.html +2 -0
  837. package/dist/project/components/Progress/stories.js +12 -0
  838. package/dist/project/components/Radio/README.md +264 -0
  839. package/dist/project/components/Radio/preview.html +2 -0
  840. package/dist/project/components/Radio/stories.js +12 -0
  841. package/dist/project/components/RemoteShell/README.md +1758 -0
  842. package/dist/project/components/RemoteShell/preview.html +2 -0
  843. package/dist/project/components/RemoteShell/stories.js +28 -0
  844. package/dist/project/components/Resizable/README.md +290 -0
  845. package/dist/project/components/Resizable/preview.html +2 -0
  846. package/dist/project/components/Resizable/stories.js +12 -0
  847. package/dist/project/components/ResponseCode/README.md +205 -0
  848. package/dist/project/components/ResponseCode/preview.html +2 -0
  849. package/dist/project/components/ResponseCode/stories.js +12 -0
  850. package/dist/project/components/ScrollArea/README.md +234 -0
  851. package/dist/project/components/ScrollArea/preview.html +2 -0
  852. package/dist/project/components/ScrollArea/stories.js +12 -0
  853. package/dist/project/components/SearchInput/README.md +158 -0
  854. package/dist/project/components/SearchInput/preview.html +2 -0
  855. package/dist/project/components/SearchInput/stories.js +12 -0
  856. package/dist/project/components/SearchModal/README.md +836 -0
  857. package/dist/project/components/SearchModal/preview.html +2 -0
  858. package/dist/project/components/SearchModal/stories.js +12 -0
  859. package/dist/project/components/SegmentedControl/README.md +382 -0
  860. package/dist/project/components/SegmentedControl/preview.html +2 -0
  861. package/dist/project/components/SegmentedControl/stories.js +12 -0
  862. package/dist/project/components/SegmentedTabs/README.md +390 -0
  863. package/dist/project/components/SegmentedTabs/preview.html +2 -0
  864. package/dist/project/components/SegmentedTabs/stories.js +12 -0
  865. package/dist/project/components/Select/README.md +1311 -0
  866. package/dist/project/components/Select/preview.html +2 -0
  867. package/dist/project/components/Select/stories.js +12 -0
  868. package/dist/project/components/Selection/README.md +648 -0
  869. package/dist/project/components/Selection/preview.html +2 -0
  870. package/dist/project/components/Selection/stories.js +12 -0
  871. package/dist/project/components/Separator/README.md +77 -0
  872. package/dist/project/components/Separator/preview.html +2 -0
  873. package/dist/project/components/Separator/stories.js +12 -0
  874. package/dist/project/components/Skeleton/README.md +358 -0
  875. package/dist/project/components/Skeleton/preview.html +2 -0
  876. package/dist/project/components/Skeleton/stories.js +12 -0
  877. package/dist/project/components/Slider/README.md +433 -0
  878. package/dist/project/components/Slider/preview.html +2 -0
  879. package/dist/project/components/Slider/stories.js +12 -0
  880. package/dist/project/components/SplashScreen/README.md +192 -0
  881. package/dist/project/components/SplashScreen/preview.html +2 -0
  882. package/dist/project/components/SplashScreen/stories.js +12 -0
  883. package/dist/project/components/SplitButton/README.md +402 -0
  884. package/dist/project/components/SplitButton/preview.html +2 -0
  885. package/dist/project/components/SplitButton/stories.js +12 -0
  886. package/dist/project/components/Stack/README.md +269 -0
  887. package/dist/project/components/Stack/preview.html +2 -0
  888. package/dist/project/components/Stack/stories.js +12 -0
  889. package/dist/project/components/Stepper/README.md +682 -0
  890. package/dist/project/components/Stepper/preview.html +2 -0
  891. package/dist/project/components/Stepper/stories.js +12 -0
  892. package/dist/project/components/Switch/README.md +236 -0
  893. package/dist/project/components/Switch/preview.html +2 -0
  894. package/dist/project/components/Switch/stories.js +12 -0
  895. package/dist/project/components/Table/README.md +471 -0
  896. package/dist/project/components/Table/preview.html +2 -0
  897. package/dist/project/components/Table/stories.js +12 -0
  898. package/dist/project/components/Table/stories.md +3697 -0
  899. package/dist/project/components/Tabs/README.md +443 -0
  900. package/dist/project/components/Tabs/preview.html +2 -0
  901. package/dist/project/components/Tabs/stories.js +12 -0
  902. package/dist/project/components/Tag/README.md +324 -0
  903. package/dist/project/components/Tag/preview.html +2 -0
  904. package/dist/project/components/Tag/stories.js +12 -0
  905. package/dist/project/components/Text/README.md +200 -0
  906. package/dist/project/components/Text/preview.html +2 -0
  907. package/dist/project/components/Text/stories.js +12 -0
  908. package/dist/project/components/Textarea/README.md +273 -0
  909. package/dist/project/components/Textarea/preview.html +2 -0
  910. package/dist/project/components/Textarea/stories.js +12 -0
  911. package/dist/project/components/TimeInput/README.md +359 -0
  912. package/dist/project/components/TimeInput/preview.html +2 -0
  913. package/dist/project/components/TimeInput/stories.js +12 -0
  914. package/dist/project/components/Timeline/README.md +204 -0
  915. package/dist/project/components/Timeline/preview.html +2 -0
  916. package/dist/project/components/Timeline/stories.js +12 -0
  917. package/dist/project/components/Toast/README.md +718 -0
  918. package/dist/project/components/Toast/preview.html +2 -0
  919. package/dist/project/components/Toast/stories.js +12 -0
  920. package/dist/project/components/ToggleButton/README.md +292 -0
  921. package/dist/project/components/ToggleButton/preview.html +2 -0
  922. package/dist/project/components/ToggleButton/stories.js +12 -0
  923. package/dist/project/components/Tooltip/README.md +199 -0
  924. package/dist/project/components/Tooltip/preview.html +2 -0
  925. package/dist/project/components/Tooltip/stories.js +12 -0
  926. package/dist/project/components/TopHeader/README.md +21 -0
  927. package/dist/project/components/Tour/README.md +532 -0
  928. package/dist/project/components/Tour/preview.html +2 -0
  929. package/dist/project/components/Tour/stories.js +12 -0
  930. package/dist/project/components/Tree/README.md +450 -0
  931. package/dist/project/components/Tree/preview.html +2 -0
  932. package/dist/project/components/Tree/stories.js +12 -0
  933. package/dist/project/components/TreeView/README.md +531 -0
  934. package/dist/project/components/TreeView/preview.html +2 -0
  935. package/dist/project/components/TreeView/stories.js +12 -0
  936. package/dist/project/components/UTILITIES.md +647 -0
  937. package/dist/project/components/UserMessage/README.md +166 -0
  938. package/dist/project/components/UserMessage/preview.html +2 -0
  939. package/dist/project/components/UserMessage/stories.js +12 -0
  940. package/dist/project/components/UtilityPage/README.md +147 -0
  941. package/dist/project/components/UtilityPage/preview.html +2 -0
  942. package/dist/project/components/UtilityPage/stories.js +12 -0
  943. package/dist/project/components/WallyAssistant/README.md +1380 -0
  944. package/dist/project/components/WallyAssistant/preview.html +2 -0
  945. package/dist/project/components/WallyAssistant/stories.js +12 -0
  946. package/dist/project/components/WallyIcon/README.md +130 -0
  947. package/dist/project/components/WallyIcon/preview.html +2 -0
  948. package/dist/project/components/WallyIcon/stories.js +12 -0
  949. package/dist/project/components/WallySkeleton/README.md +96 -0
  950. package/dist/project/components/WallySkeleton/preview.html +2 -0
  951. package/dist/project/components/WallySkeleton/stories.js +12 -0
  952. package/dist/project/components/bundle.css +18734 -0
  953. package/dist/project/components/bundle.js +167 -0
  954. package/dist/project/components/index.d.ts +27226 -0
  955. package/dist/project/design-system.json +35 -0
  956. package/dist/project/fonts/Geist-Variable.woff2 +0 -0
  957. package/dist/project/fonts/GeistMono-Variable.woff2 +0 -0
  958. package/dist/project/fonts/GeistPixel-Square.woff2 +0 -0
  959. package/dist/project/sampler.dc.html +238 -0
  960. package/dist/project/tokens.css +1395 -0
  961. package/dist/project/tokens.json +5235 -0
  962. package/dist/wallarm-sampler.dc.html +239 -0
  963. package/package.json +67 -3
@@ -0,0 +1,317 @@
1
+ Prints a number the way the house number guide says to: abbreviated by default — `12k`, `59.6M` — with the full figure in a tooltip behind a dashed underline. `type` chooses the family: `decimal`, `percent`, which refuses to round to a flat `0%` or `100%` it has not earned, and `byte`, which counts in units of 1000.
2
+
3
+ ## Props as canvas attributes
4
+
5
+ Use kebab-case attribute names. Pass non-string values through renderVals holes, including booleans. The full emitted API is in `components/index.d.ts`.
6
+
7
+ | Attribute | Type | Required | Default | Description |
8
+ | --- | --- | --- | --- | --- |
9
+ | `title` | `string \| undefined` | no | — | |
10
+ | `default-checked` | `boolean \| undefined` | no | — | |
11
+ | `default-value` | `string \| number \| readonly string[] \| undefined` | no | — | |
12
+ | `auto-focus` | `boolean \| undefined` | no | — | |
13
+ | `id` | `string \| undefined` | no | — | |
14
+ | `tab-index` | `number \| undefined` | no | — | |
15
+ | `rel` | `string \| undefined` | no | — | |
16
+ | `on-change` | `ChangeEventHandler<T, Element> \| undefined` | no | — | |
17
+ | `value` | `number \| null \| undefined` | yes | — | Numeric value to display. null/undefined renders em dash + "No data" tooltip. |
18
+ | `type` | `FormatNumberType \| undefined` | no | `decimal` | Formatting category. Default: 'decimal'. - 'decimal': plain number with optional abbreviation - 'percent': percentage with boundary safety - 'byte': decimal byte units: 512 B, 2.3 GB |
19
+ | `notation` | `FormatNumberNotation \| undefined` | no | `compact` | 'compact' abbreviates (12k, 59.6M); 'standard' shows full value. Default: 'compact'. Only applies to type='decimal' and type='byte'. |
20
+ | `unit` | `string \| undefined` | no | — | Unit label for accessible name + tooltip: "requests", "errors". Appended after a space. Only meaningful for type='decimal'. |
21
+ | `decimals` | `number \| undefined` | no | `0` | Decimal places for percent. Default: 0. |
22
+ | `tooltip` | `boolean \| undefined` | no | `true` | Whether to show a tooltip with the full value on abbreviated numbers. When false, abbreviated values display without tooltip or dashed underline. Default: true. |
23
+ | `data-testid` | `string \| undefined` | no | — | |
24
+
25
+ ## Stories
26
+
27
+ ### Compact
28
+
29
+ The raw value beside what the component makes of it, across the tier boundaries —
30
+ 999,499 stays `999k` while 999,500 becomes `1M`, because the tier turns over when
31
+ rounding would reach 1000×. Abbreviated values use tabular figures, so a column of
32
+ them stays aligned.
33
+
34
+ Source: FormatNumber/FormatNumber.stories.tsx#Compact
35
+
36
+ ### Standard
37
+
38
+ `notation='standard'` prints the grouped figure instead, for the place where the exact
39
+ number is the point and there is room to show it.
40
+
41
+ Source: FormatNumber/FormatNumber.stories.tsx#Standard
42
+
43
+ ### WithUnit
44
+
45
+ `unit` follows the value — except on an abbreviated number with its tooltip still on,
46
+ where it moves into the tooltip and the accessible name and leaves the cell.
47
+
48
+ Source: FormatNumber/FormatNumber.stories.tsx#WithUnit
49
+
50
+ ### Percent
51
+
52
+ The boundary rules: anything above zero that would round to `0%` prints `<1%`, and
53
+ anything below a hundred that would round to `100%` prints `>99%`, with `decimals`
54
+ moving both thresholds.
55
+
56
+ Source: FormatNumber/FormatNumber.stories.tsx#Percent
57
+
58
+ ### Bytes
59
+
60
+ `byte` counts in decimal units — a thousand to the kilobyte, not 1024 — so 12,700,000
61
+ reads `12.7 MB`, and `standard` spells the whole figure out.
62
+
63
+ Source: FormatNumber/FormatNumber.stories.tsx#Bytes
64
+
65
+ ### NoTooltip
66
+
67
+ `tooltip={false}` removes the tooltip and the dashed underline with it, for a cell where
68
+ the abbreviation is enough; the full value stays in the accessible name.
69
+
70
+ Source: FormatNumber/FormatNumber.stories.tsx#NoTooltip
71
+
72
+ ### NegativeValues
73
+
74
+ Negatives abbreviate on the same tiers, with the sign kept in front of the number.
75
+
76
+ Source: FormatNumber/FormatNumber.stories.tsx#NegativeValues
77
+
78
+ ### NullValue
79
+
80
+ `null` and `undefined` render an em dash with 'No data' on hover, so a figure nobody
81
+ recorded never reads as a zero.
82
+
83
+ Source: FormatNumber/FormatNumber.stories.tsx#NullValue
84
+
85
+ ### SpecialValues
86
+
87
+ Zero is printed as itself rather than abbreviated, while `NaN` and `Infinity` fall back
88
+ to the em dash — with no tooltip, since there is nothing behind them to show.
89
+
90
+ Source: FormatNumber/FormatNumber.stories.tsx#SpecialValues
91
+
92
+ ## Story sources
93
+
94
+ ### FormatNumber/FormatNumber.stories.tsx
95
+
96
+ ```tsx
97
+ import type { Meta, StoryFn } from 'storybook-react-rsbuild';
98
+ import { FormatNumber } from './FormatNumber';
99
+
100
+ const DESCRIPTION = [
101
+ 'Prints a number the way the house number guide says to: abbreviated by default — `12k`, `59.6M` — with the full figure in a tooltip behind a dashed underline.',
102
+ '`type` chooses the family: `decimal`, `percent`, which refuses to round to a flat `0%` or `100%` it has not earned, and `byte`, which counts in units of 1000.',
103
+ ].join(' ');
104
+
105
+ const meta = {
106
+ title: 'Data Display/FormatNumber',
107
+ component: FormatNumber,
108
+ parameters: {
109
+ layout: 'centered',
110
+ docs: { description: { component: DESCRIPTION } },
111
+ },
112
+ argTypes: {
113
+ type: {
114
+ control: 'select',
115
+ options: ['decimal', 'percent', 'byte'],
116
+ },
117
+ notation: {
118
+ control: 'radio',
119
+ options: ['compact', 'standard'],
120
+ },
121
+ decimals: {
122
+ control: 'number',
123
+ },
124
+ },
125
+ args: {
126
+ value: 12345,
127
+ type: 'decimal',
128
+ notation: 'compact',
129
+ },
130
+ } satisfies Meta<typeof FormatNumber>;
131
+
132
+ export default meta;
133
+
134
+ const compactValues = [0, 5, 42, 999, 1_000, 12_042, 59_614, 999_499, 999_500, 1_400_000_000_000];
135
+
136
+ /**
137
+ * The raw value beside what the component makes of it, across the tier boundaries —
138
+ * 999,499 stays `999k` while 999,500 becomes `1M`, because the tier turns over when
139
+ * rounding would reach 1000×. Abbreviated values use tabular figures, so a column of
140
+ * them stays aligned.
141
+ */
142
+ export const Compact: StoryFn<typeof meta> = () => (
143
+ <div className='grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12'>
144
+ {compactValues.map(v => (
145
+ <>
146
+ <span key={`label-${v}`} className='sb-annotation text-right'>
147
+ {v.toLocaleString('en-US')}
148
+ </span>
149
+ <FormatNumber key={v} value={v} />
150
+ </>
151
+ ))}
152
+ </div>
153
+ );
154
+
155
+ /**
156
+ * `notation='standard'` prints the grouped figure instead, for the place where the exact
157
+ * number is the point and there is room to show it.
158
+ */
159
+ export const Standard: StoryFn<typeof meta> = () => (
160
+ <div className='grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12'>
161
+ {compactValues.map(v => (
162
+ <>
163
+ <span key={`label-${v}`} className='sb-annotation text-right'>
164
+ {v.toLocaleString('en-US')}
165
+ </span>
166
+ <FormatNumber key={v} value={v} notation='standard' />
167
+ </>
168
+ ))}
169
+ </div>
170
+ );
171
+
172
+ /**
173
+ * `unit` follows the value — except on an abbreviated number with its tooltip still on,
174
+ * where it moves into the tooltip and the accessible name and leaves the cell.
175
+ */
176
+ export const WithUnit: StoryFn<typeof meta> = () => (
177
+ <div className='grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12'>
178
+ <span className='sb-annotation text-right'>42</span>
179
+ <FormatNumber value={42} unit='requests' />
180
+
181
+ <span className='sb-annotation text-right'>12,042</span>
182
+ <FormatNumber value={12_042} unit='requests' />
183
+
184
+ <span className='sb-annotation text-right'>59,614,283</span>
185
+ <FormatNumber value={59_614_283} unit='errors' />
186
+
187
+ <span className='sb-annotation text-right'>500 (standard)</span>
188
+ <FormatNumber value={500} unit='requests' notation='standard' />
189
+ </div>
190
+ );
191
+
192
+ /**
193
+ * The boundary rules: anything above zero that would round to `0%` prints `<1%`, and
194
+ * anything below a hundred that would round to `100%` prints `>99%`, with `decimals`
195
+ * moving both thresholds.
196
+ */
197
+ export const Percent: StoryFn<typeof meta> = () => (
198
+ <div className='grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12'>
199
+ <span className='sb-annotation text-right'>0%</span>
200
+ <FormatNumber value={0} type='percent' />
201
+
202
+ <span className='sb-annotation text-right'>0.02% (decimals=0)</span>
203
+ <FormatNumber value={0.02} type='percent' />
204
+
205
+ <span className='sb-annotation text-right'>0.02% (decimals=1)</span>
206
+ <FormatNumber value={0.02} type='percent' decimals={1} />
207
+
208
+ <span className='sb-annotation text-right'>25.5%</span>
209
+ <FormatNumber value={25.5} type='percent' decimals={1} />
210
+
211
+ <span className='sb-annotation text-right'>50%</span>
212
+ <FormatNumber value={50} type='percent' />
213
+
214
+ <span className='sb-annotation text-right'>99.97% (decimals=0)</span>
215
+ <FormatNumber value={99.97} type='percent' />
216
+
217
+ <span className='sb-annotation text-right'>99.97% (decimals=1)</span>
218
+ <FormatNumber value={99.97} type='percent' decimals={1} />
219
+
220
+ <span className='sb-annotation text-right'>100%</span>
221
+ <FormatNumber value={100} type='percent' />
222
+ </div>
223
+ );
224
+
225
+ /**
226
+ * `byte` counts in decimal units — a thousand to the kilobyte, not 1024 — so 12,700,000
227
+ * reads `12.7 MB`, and `standard` spells the whole figure out.
228
+ */
229
+ export const Bytes: StoryFn<typeof meta> = () => (
230
+ <div className='grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12'>
231
+ <span className='sb-annotation text-right'>512 (compact)</span>
232
+ <FormatNumber value={512} type='byte' />
233
+
234
+ <span className='sb-annotation text-right'>3,400 (compact)</span>
235
+ <FormatNumber value={3_400} type='byte' />
236
+
237
+ <span className='sb-annotation text-right'>12,700,000 (compact)</span>
238
+ <FormatNumber value={12_700_000} type='byte' />
239
+
240
+ <span className='sb-annotation text-right'>2,345,678,901 (compact)</span>
241
+ <FormatNumber value={2_345_678_901} type='byte' />
242
+
243
+ <span className='sb-annotation text-right'>1,100,000,000,000 (compact)</span>
244
+ <FormatNumber value={1_100_000_000_000} type='byte' />
245
+
246
+ <span className='sb-annotation text-right'>12,700,000 (standard)</span>
247
+ <FormatNumber value={12_700_000} type='byte' notation='standard' />
248
+ </div>
249
+ );
250
+
251
+ /**
252
+ * `tooltip={false}` removes the tooltip and the dashed underline with it, for a cell where
253
+ * the abbreviation is enough; the full value stays in the accessible name.
254
+ */
255
+ export const NoTooltip: StoryFn<typeof meta> = () => (
256
+ <div className='grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12'>
257
+ <span className='sb-annotation text-right'>12,042 (decimal)</span>
258
+ <FormatNumber value={12_042} tooltip={false} />
259
+
260
+ <span className='sb-annotation text-right'>59,614,283 (decimal)</span>
261
+ <FormatNumber value={59_614_283} tooltip={false} />
262
+
263
+ <span className='sb-annotation text-right'>12,042 with unit</span>
264
+ <FormatNumber value={12_042} unit='requests' tooltip={false} />
265
+
266
+ <span className='sb-annotation text-right'>12,700,000 (byte)</span>
267
+ <FormatNumber value={12_700_000} type='byte' tooltip={false} />
268
+ </div>
269
+ );
270
+
271
+ /**
272
+ * Negatives abbreviate on the same tiers, with the sign kept in front of the number.
273
+ */
274
+ export const NegativeValues: StoryFn<typeof meta> = () => (
275
+ <div className='grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12'>
276
+ <span className='sb-annotation text-right'>-42</span>
277
+ <FormatNumber value={-42} />
278
+
279
+ <span className='sb-annotation text-right'>-12,042</span>
280
+ <FormatNumber value={-12_042} />
281
+
282
+ <span className='sb-annotation text-right'>-59,614,283</span>
283
+ <FormatNumber value={-59_614_283} />
284
+ </div>
285
+ );
286
+
287
+ /**
288
+ * `null` and `undefined` render an em dash with 'No data' on hover, so a figure nobody
289
+ * recorded never reads as a zero.
290
+ */
291
+ export const NullValue: StoryFn<typeof meta> = () => (
292
+ <div className='grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12'>
293
+ <span className='sb-annotation text-right'>null</span>
294
+ <FormatNumber value={null} />
295
+
296
+ <span className='sb-annotation text-right'>undefined</span>
297
+ <FormatNumber value={undefined} />
298
+ </div>
299
+ );
300
+
301
+ /**
302
+ * Zero is printed as itself rather than abbreviated, while `NaN` and `Infinity` fall back
303
+ * to the em dash — with no tooltip, since there is nothing behind them to show.
304
+ */
305
+ export const SpecialValues: StoryFn<typeof meta> = () => (
306
+ <div className='grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12'>
307
+ <span className='sb-annotation text-right'>0</span>
308
+ <FormatNumber value={0} />
309
+
310
+ <span className='sb-annotation text-right'>NaN</span>
311
+ <FormatNumber value={Number.NaN} />
312
+
313
+ <span className='sb-annotation text-right'>Infinity</span>
314
+ <FormatNumber value={Number.POSITIVE_INFINITY} />
315
+ </div>
316
+ );
317
+ ```
@@ -0,0 +1,2 @@
1
+ <!-- @dsCard group="Data Display" height=480 -->
2
+ <!doctype html><html><head><meta charset="utf-8"></head><body><div id="preview"></div><script src="./stories.js"></script><script>window.WallarmPreview.mount(document.getElementById('preview'));</script></body></html>
@@ -0,0 +1,12 @@
1
+ var e={vD(e,t,n){let a,r;/**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @lightSyntaxTransform
8
+ * @noflow
9
+ * @nolint
10
+ * @preventMunge
11
+ * @preserve-invariant-messages
12
+ */var l,o,i=Object.create,s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,p=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty,d=(e,t,n,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of u(t))m.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(a=c(t,r))||a.enumerable});return e},f={},h={$dispatcherGuard:()=>C,$makeReadOnly:()=>O,$reset:()=>M,$structuralCheck:()=>I,c:()=>R,clearRenderCounterRegistry:()=>j,renderCounterRegistry:()=>k,useRenderCounter:()=>D};for(var y in h)s(f,y,{get:h[y],enumerable:!0});e.exports=d(s({},"__esModule",{value:!0}),f);var g=(r=null!=(a=n("C"))?i(p(a)):{},d(a&&a.__esModule?r:s(r,"default",{value:a,enumerable:!0}),a)),{useRef:b,useEffect:v,isValidElement:N}=g,_=null!=(l=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE)?l:g.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=Symbol.for("react.memo_cache_sentinel"),R="function"==typeof(null==(o=g.__COMPILER_RUNTIME)?void 0:o.c)?g.__COMPILER_RUNTIME.c:function(e){return g.useMemo(()=>{let t=Array(e);for(let n=0;n<e;n++)t[n]=x;return t[x]=!0,t},[])},E={};["readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","getCacheSignal","getCacheForType","useCacheRefresh"].forEach(e=>{E[e]=()=>{throw Error(`[React] Unexpected React hook call (${e}) from a React compiled function. Check that all hooks are called directly and named according to convention ('use[A-Z]') `)}});var w=null;function S(e){return _.ReactCurrentDispatcher.current=e,_.ReactCurrentDispatcher.current}E.useMemoCache=e=>{if(null!=w)return w.useMemoCache(e);throw Error("React Compiler internal invariant violation: unexpected null dispatcher")};var $=[];function C(e){let t=_.ReactCurrentDispatcher.current;if(0===e){if($.push(t),1===$.length&&(w=t),t===E)throw Error("[React] Unexpected call to custom hook or component from a React compiled function. Check that (1) all hooks are called directly and named according to convention ('use[A-Z]') and (2) components are returned as JSX instead of being directly invoked.");S(E)}else if(1===e){let e=$.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");0===$.length&&(w=null),S(e)}else if(2===e)$.push(t),S(w);else if(3===e){let e=$.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");S(e)}else throw Error("React Compiler internal error: unreachable block"+e)}function M(e){for(let t=0;t<e.length;t++)e[t]=x}function O(){throw Error("TODO: implement $makeReadOnly in react-compiler-runtime")}var k=new Map;function j(){for(let e of k.values())e.forEach(e=>{e.count=0})}function D(e){let t=b(null);null!=t.current&&(t.current.count+=1),v(()=>{if(null==t.current){let n,a={count:0};null==(n=k.get(e))&&(n=new Set,k.set(e,n)),n.add(a),t.current=a}return()=>{var n;let a;null!==t.current&&(n=t.current,null!=(a=k.get(e))&&a.delete(n))}})}var T=new Set;function I(e,t,n,a,r,l){function o(e,t,o,i){let s=`${a}:${l} [${r}] ${n}${o} changed from ${e} to ${t} at depth ${i}`;T.has(s)||(T.add(s),console.error(s))}!function e(t,n,a,r){if(!(r>2)){if(t!==n)if(typeof t!=typeof n)o(`type ${typeof t}`,`type ${typeof n}`,a,r);else if("object"==typeof t){let l=Array.isArray(t),i=Array.isArray(n);if(null===t&&null!==n)o("null",`type ${typeof n}`,a,r);else if(null===n)o(`type ${typeof t}`,"null",a,r);else if(t instanceof Map)if(n instanceof Map)if(t.size!==n.size)o(`Map instance with size ${t.size}`,`Map instance with size ${n.size}`,a,r);else for(let[l,i]of t)n.has(l)?e(i,n.get(l),`${a}.get(${l})`,r+1):o(`Map instance with key ${l}`,`Map instance without key ${l}`,a,r);else o("Map instance","other value",a,r);else if(n instanceof Map)o("other value","Map instance",a,r);else if(t instanceof Set)if(n instanceof Set)if(t.size!==n.size)o(`Set instance with size ${t.size}`,`Set instance with size ${n.size}`,a,r);else for(let e of n)t.has(e)||o(`Set instance without element ${e}`,`Set instance with element ${e}`,a,r);else o("Set instance","other value",a,r);else if(n instanceof Set)o("other value","Set instance",a,r);else if(l||i)if(l!==i)o(`type ${l?"array":"object"}`,`type ${i?"array":"object"}`,a,r);else if(t.length!==n.length)o(`array with length ${t.length}`,`array with length ${n.length}`,a,r);else for(let l=0;l<t.length;l++)e(t[l],n[l],`${a}[${l}]`,r+1);else if(N(t)||N(n))N(t)!==N(n)?o(`type ${N(t)?"React element":"object"}`,`type ${N(n)?"React element":"object"}`,a,r):t.type!==n.type?o(`React element of type ${t.type}`,`React element of type ${n.type}`,a,r):e(t.props,n.props,`[props of ${a}]`,r+1);else{for(let e in n)e in t||o(`object without key ${e}`,`object with key ${e}`,a,r);for(let l in t)l in n?e(t[l],n[l],`${a}.${l}`,r+1):o(`object with key ${l}`,`object without key ${l}`,a,r)}}else{if("function"==typeof t)return;isNaN(t)||isNaN(n)?isNaN(t)!==isNaN(n)&&o(`${isNaN(t)?"NaN":"non-NaN value"}`,`${isNaN(n)?"NaN":"non-NaN value"}`,a,r):t!==n&&o(t,n,a,r)}}}(e,t,"",0)}},p(e,t,n){let a=new WeakMap,r=new WeakMap;function l(e,t,n){let l=t,o=n;if("object"==typeof l&&null!==l&&"$$typeof"in l&&l.$$typeof===Symbol.for("react.context")&&"Provider"in l&&(l=l.Provider),"function"==typeof l&&null!=o.ref&&!l.prototype?.isReactComponent){let t=l,n=a.get(e);n||(n=new WeakMap,a.set(e,n));let r=n.get(t);r||((r=e.forwardRef((e,n)=>t({...e,ref:n}))).displayName=t.displayName??t.name,n.set(t,r)),l=r}if("string"==typeof l&&"boolean"==typeof o.inert&&((o={...o}).inert?o.inert="":delete o.inert),"string"==typeof l)for(let[e,t]of[["fill-rule","fillRule"],["clip-rule","clipRule"]])e in o&&(o={...o,[t]:o[e]},delete o[e]);return"string"==typeof l&&null!=o.ref&&(l=function(e,t){let n=r.get(e);n||(n=new Map,r.set(e,n));let a=n.get(t);if(a)return a;let l=e.forwardRef((n,a)=>{let r=e.useRef(null);if(!r.current||r.current.original!==a){let e;r.current={original:a,callback:t=>{if(null==t&&e){let t=e;e=void 0,t();return}if("function"==typeof a){let n=a(t);e="function"==typeof n?n:void 0}else a&&(a.current=t)}}}return e.createElement(t,{...n,ref:r.current.callback})});return l.displayName=`CanvasHost(${t})`,n.set(t,l),l}(e,l)),{type:l,props:o}}function o(e){let t=(t,n,a)=>{let r=l(e,t,n??{});return e.createElement(r.type,void 0===a?r.props:{...r.props,key:a})};return{jsx:t,jsxs:(t,n,a)=>{let r=l(e,t,n??{}),{children:o,...i}=r.props;return e.createElement(r.type,void 0===a?i:{...i,key:a},...Array.isArray(o)?o:[o])},jsxDEV:t,Fragment:e.Fragment}}function i(e){return{...e,createElement:(t,n,...a)=>{let r=l(e,t,n??{});return e.createElement(r.type,r.props,...a)},cloneElement:(t,n,...a)=>{let r=e.cloneElement(t,n??void 0,...a),o=r.ref,i=l(e,r.type,{...r.props,ref:o});return i.type===r.type&&"string"!=typeof r.type?r:e.createElement(i.type,{...i.props,key:r.key})}}}n.d(t,{MA:()=>o,YJ:()=>i})},C(e,t,n){n.r(t);let a=(0,n("p").YJ)(window.React),{Children:r,Component:l,Fragment:o,Profiler:i,PureComponent:s,StrictMode:c,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:p,act:m,cloneElement:d,createContext:f,createElement:h,createFactory:y,createRef:g,forwardRef:b,isValidElement:v,lazy:N,memo:_,startTransition:x,unstable_act:R,useCallback:E,useContext:w,useDebugValue:S,useDeferredValue:$,useEffect:C,useId:M,useImperativeHandle:O,useInsertionEffect:k,useLayoutEffect:j,useMemo:D,useReducer:T,useRef:I,useState:P,useSyncExternalStore:A,useTransition:L,version:U,use:z}=a;n.d(t,{},{Children:r,Component:l,Fragment:o,Profiler:i,PureComponent:s,StrictMode:c,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:p,act:m,cloneElement:d,createContext:f,createElement:h,createFactory:y,createRef:g,default:a,forwardRef:b,isValidElement:v,lazy:N,memo:_,startTransition:x,unstable_act:R,use:z,useCallback:E,useContext:w,useDebugValue:S,useDeferredValue:$,useEffect:C,useId:M,useImperativeHandle:O,useInsertionEffect:k,useLayoutEffect:j,useMemo:D,useReducer:T,useRef:I,useState:P,useSyncExternalStore:A,useTransition:L,version:U})}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var l=t[a]={exports:{}};return e[a](l,l.exports,n),l.exports}n.d=(e,t,a)=>{var r=(t,a)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,[a]:t[r]})};r(t,"get"),r(a,"value")},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{let{jsx:e,jsxs:t,jsxDEV:a,Fragment:r}=(0,n("p").MA)(window.React);var l=n("vD");let o=window.WallarmDS.FormatNumber,i={title:"Data Display/FormatNumber",component:o,parameters:{layout:"centered",docs:{description:{component:"Prints a number the way the house number guide says to: abbreviated by default — `12k`, `59.6M` — with the full figure in a tooltip behind a dashed underline. `type` chooses the family: `decimal`, `percent`, which refuses to round to a flat `0%` or `100%` it has not earned, and `byte`, which counts in units of 1000."}}},argTypes:{type:{control:"select",options:["decimal","percent","byte"]},notation:{control:"radio",options:["compact","standard"]},decimals:{control:"number"}},args:{value:12345,type:"decimal",notation:"compact"}},s=[0,5,42,999,1e3,12042,59614,999499,999500,14e11];function c(n){return t(r,{children:[e("span",{className:"sb-annotation text-right",children:n.toLocaleString("en-US")},`label-${n}`),e(o,{value:n},n)]})}function u(n){return t(r,{children:[e("span",{className:"sb-annotation text-right",children:n.toLocaleString("en-US")},`label-${n}`),e(o,{value:n,notation:"standard"},n)]})}var p=n("C");let m=[{name:"Compact",story:()=>{let t,n=(0,l.c)(1);return n[0]===Symbol.for("react.memo_cache_sentinel")?(t=e("div",{className:"grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12",children:s.map(c)}),n[0]=t):t=n[0],t},meta:i},{name:"Standard",story:()=>{let t,n=(0,l.c)(1);return n[0]===Symbol.for("react.memo_cache_sentinel")?(t=e("div",{className:"grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12",children:s.map(u)}),n[0]=t):t=n[0],t},meta:i},{name:"WithUnit",story:()=>{let n,a=(0,l.c)(1);return a[0]===Symbol.for("react.memo_cache_sentinel")?(n=t("div",{className:"grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12",children:[e("span",{className:"sb-annotation text-right",children:"42"}),e(o,{value:42,unit:"requests"}),e("span",{className:"sb-annotation text-right",children:"12,042"}),e(o,{value:12042,unit:"requests"}),e("span",{className:"sb-annotation text-right",children:"59,614,283"}),e(o,{value:0x38da44b,unit:"errors"}),e("span",{className:"sb-annotation text-right",children:"500 (standard)"}),e(o,{value:500,unit:"requests",notation:"standard"})]}),a[0]=n):n=a[0],n},meta:i},{name:"Percent",story:()=>{let n,a=(0,l.c)(1);return a[0]===Symbol.for("react.memo_cache_sentinel")?(n=t("div",{className:"grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12",children:[e("span",{className:"sb-annotation text-right",children:"0%"}),e(o,{value:0,type:"percent"}),e("span",{className:"sb-annotation text-right",children:"0.02% (decimals=0)"}),e(o,{value:.02,type:"percent"}),e("span",{className:"sb-annotation text-right",children:"0.02% (decimals=1)"}),e(o,{value:.02,type:"percent",decimals:1}),e("span",{className:"sb-annotation text-right",children:"25.5%"}),e(o,{value:25.5,type:"percent",decimals:1}),e("span",{className:"sb-annotation text-right",children:"50%"}),e(o,{value:50,type:"percent"}),e("span",{className:"sb-annotation text-right",children:"99.97% (decimals=0)"}),e(o,{value:99.97,type:"percent"}),e("span",{className:"sb-annotation text-right",children:"99.97% (decimals=1)"}),e(o,{value:99.97,type:"percent",decimals:1}),e("span",{className:"sb-annotation text-right",children:"100%"}),e(o,{value:100,type:"percent"})]}),a[0]=n):n=a[0],n},meta:i},{name:"Bytes",story:()=>{let n,a=(0,l.c)(1);return a[0]===Symbol.for("react.memo_cache_sentinel")?(n=t("div",{className:"grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12",children:[e("span",{className:"sb-annotation text-right",children:"512 (compact)"}),e(o,{value:512,type:"byte"}),e("span",{className:"sb-annotation text-right",children:"3,400 (compact)"}),e(o,{value:3400,type:"byte"}),e("span",{className:"sb-annotation text-right",children:"12,700,000 (compact)"}),e(o,{value:127e5,type:"byte"}),e("span",{className:"sb-annotation text-right",children:"2,345,678,901 (compact)"}),e(o,{value:0x8bd03835,type:"byte"}),e("span",{className:"sb-annotation text-right",children:"1,100,000,000,000 (compact)"}),e(o,{value:11e11,type:"byte"}),e("span",{className:"sb-annotation text-right",children:"12,700,000 (standard)"}),e(o,{value:127e5,type:"byte",notation:"standard"})]}),a[0]=n):n=a[0],n},meta:i},{name:"NoTooltip",story:()=>{let n,a=(0,l.c)(1);return a[0]===Symbol.for("react.memo_cache_sentinel")?(n=t("div",{className:"grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12",children:[e("span",{className:"sb-annotation text-right",children:"12,042 (decimal)"}),e(o,{value:12042,tooltip:!1}),e("span",{className:"sb-annotation text-right",children:"59,614,283 (decimal)"}),e(o,{value:0x38da44b,tooltip:!1}),e("span",{className:"sb-annotation text-right",children:"12,042 with unit"}),e(o,{value:12042,unit:"requests",tooltip:!1}),e("span",{className:"sb-annotation text-right",children:"12,700,000 (byte)"}),e(o,{value:127e5,type:"byte",tooltip:!1})]}),a[0]=n):n=a[0],n},meta:i},{name:"NegativeValues",story:()=>{let n,a=(0,l.c)(1);return a[0]===Symbol.for("react.memo_cache_sentinel")?(n=t("div",{className:"grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12",children:[e("span",{className:"sb-annotation text-right",children:"-42"}),e(o,{value:-42}),e("span",{className:"sb-annotation text-right",children:"-12,042"}),e(o,{value:-12042}),e("span",{className:"sb-annotation text-right",children:"-59,614,283"}),e(o,{value:-0x38da44b})]}),a[0]=n):n=a[0],n},meta:i},{name:"NullValue",story:()=>{let n,a=(0,l.c)(1);return a[0]===Symbol.for("react.memo_cache_sentinel")?(n=t("div",{className:"grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12",children:[e("span",{className:"sb-annotation text-right",children:"null"}),e(o,{value:null}),e("span",{className:"sb-annotation text-right",children:"undefined"}),e(o,{value:void 0})]}),a[0]=n):n=a[0],n},meta:i},{name:"SpecialValues",story:()=>{let n,a=(0,l.c)(1);return a[0]===Symbol.for("react.memo_cache_sentinel")?(n=t("div",{className:"grid grid-cols-[1fr_1fr] items-center gap-x-16 gap-y-12",children:[e("span",{className:"sb-annotation text-right",children:"0"}),e(o,{value:0}),e("span",{className:"sb-annotation text-right",children:"NaN"}),e(o,{value:0/0}),e("span",{className:"sb-annotation text-right",children:"Infinity"}),e(o,{value:1/0})]}),a[0]=n):n=a[0],n},meta:i}];function d({entry:e}){let{story:t,meta:n}=e,a={...n.args,...t.args},r="function"==typeof t||t.$$typeof?t:t.render||n.render||n.component,l=()=>p.default.createElement(r,a),o={args:a,globals:{theme:"light"},parameters:{...n.parameters,...t.parameters},viewMode:"story"};for(let e of[...n.decorators||[],...t.decorators||[]].reverse()){let t=l;l=()=>e(t,o)}return p.default.createElement("section",{"data-preview-story":e.name,className:"p-16"},p.default.createElement("h2",{className:"text-sm mb-12"},e.name),p.default.createElement(l))}window.WallarmPreview={mount(e){let t=window.ReactDOM.createRoot(e);return t.render(p.default.createElement(window.WallarmDS.Root,null,m.map((e,t)=>p.default.createElement(d,{key:t,entry:e})))),t}}})();
@@ -0,0 +1,240 @@
1
+ Geist for titles and section headings, where hierarchy comes from the size step — reach for `Text` when the words are copy rather than a title. Visual size and document level are independent: pick `size` for how it looks and `as` for the outline, so a visually small heading can still be the `h2` the structure needs.
2
+
3
+ ## Props as canvas attributes
4
+
5
+ Use kebab-case attribute names. Pass non-string values through renderVals holes, including booleans. The full emitted API is in `components/index.d.ts`.
6
+
7
+ | Attribute | Type | Required | Default | Description |
8
+ | --- | --- | --- | --- | --- |
9
+ | `color` | `"primary" \| "primary-alt" \| "secondary" \| "secondary-alt" \| "inherit"` | no | `inherit` | |
10
+ | `size` | `"sm" \| "md" \| "lg" \| "xl" \| "2xl" \| "3xl" \| "4xl" \| "5xl" \| "6xl" \| "7xl"` | no | `xl` | |
11
+ | `weight` | `"light" \| "regular" \| "medium" \| "bold"` | no | `bold` | |
12
+ | `align` | `"left" \| "center" \| "right"` | no | — | |
13
+ | `grow` | `boolean` | no | `false` | |
14
+ | `truncate` | `boolean` | no | `false` | |
15
+ | `as-child` | `boolean \| undefined` | no | `false` | |
16
+ | `line-clamp` | `number \| undefined` | no | — | |
17
+ | `data-testid` | `string \| undefined` | no | — | |
18
+ | `as` | `C \| undefined` | no | `h1` | |
19
+
20
+ ## Stories
21
+
22
+ ### Basic
23
+
24
+ The default step. A heading is a title first and a size second, which is why the two are
25
+ separate props.
26
+
27
+ Source: Heading/Heading.stories.tsx#Basic
28
+
29
+ ### Sizes
30
+
31
+ The full ramp with its metrics. The bottom steps deliberately duplicate the text ramp — `sm`
32
+ is 14 on 20 exactly as in `Text` — because what separates them is semantic, not visual.
33
+
34
+ Source: Heading/Heading.stories.tsx#Sizes
35
+
36
+ ### Weights
37
+
38
+ All four weights at every size, so weight emphasises within a level rather than creating one.
39
+
40
+ Source: Heading/Heading.stories.tsx#Weights
41
+
42
+ ### AsChild
43
+
44
+ `asChild` moves the styling onto your own element, keeping whatever tag the surrounding
45
+ markup needs.
46
+
47
+ Source: Heading/Heading.stories.tsx#AsChild
48
+
49
+ ### PolymorphicElements
50
+
51
+ `as` across the heading levels, which is the outline both a screen reader and a table of
52
+ contents read. Choose it from the document structure, not from the size you wanted.
53
+
54
+ Source: Heading/Heading.stories.tsx#PolymorphicElements
55
+
56
+ ### AsSpan
57
+
58
+ A heading rendered inline, for a title inside a row of other content where a block element
59
+ would break the line.
60
+
61
+ Source: Heading/Heading.stories.tsx#AsSpan
62
+
63
+ ### AsDiv
64
+
65
+ A heading with no document level at all, for text that looks like a title but should not
66
+ appear in the outline.
67
+
68
+ Source: Heading/Heading.stories.tsx#AsDiv
69
+
70
+ ## Story sources
71
+
72
+ ### Heading/Heading.stories.tsx
73
+
74
+ ```tsx
75
+ import type { Meta, StoryFn } from 'storybook-react-rsbuild';
76
+ import { VStack } from '../Stack';
77
+ import { Text } from '../Text';
78
+ import { Heading } from './Heading';
79
+
80
+ const DESCRIPTION = [
81
+ 'Geist for titles and section headings, where hierarchy comes from the size step — reach for `Text` when the words are copy rather than a title.',
82
+ 'Visual size and document level are independent: pick `size` for how it looks and `as` for the outline, so a visually small heading can still be the `h2` the structure needs.',
83
+ ].join(' ');
84
+
85
+ const meta = {
86
+ title: 'Typography/Heading',
87
+ component: Heading,
88
+ parameters: {
89
+ layout: 'centered',
90
+ docs: {
91
+ description: {
92
+ component: DESCRIPTION,
93
+ },
94
+ },
95
+ },
96
+
97
+ args: {},
98
+ argTypes: {
99
+ size: {
100
+ control: 'select',
101
+ options: ['sm', 'md', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl', '6xl', '7xl'],
102
+ },
103
+ weight: {
104
+ control: 'select',
105
+ options: ['light', 'regular', 'medium', 'bold'],
106
+ },
107
+ as: {
108
+ control: 'select',
109
+ options: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'div', 'span'],
110
+ },
111
+ asChild: {
112
+ control: 'boolean',
113
+ },
114
+ },
115
+ } satisfies Meta<typeof Heading>;
116
+
117
+ export default meta;
118
+
119
+ /**
120
+ * The default step. A heading is a title first and a size second, which is why the two are
121
+ * separate props.
122
+ */
123
+ export const Basic: StoryFn<typeof meta> = ({ ...args }) => (
124
+ <Heading {...args}>Default Heading</Heading>
125
+ );
126
+
127
+ /** Size / leading in px, measured from the rendered component. */
128
+ const SIZES = [
129
+ { size: '7xl', metrics: '72 / 72' },
130
+ { size: '6xl', metrics: '60 / 60' },
131
+ { size: '5xl', metrics: '48 / 48' },
132
+ { size: '4xl', metrics: '36 / 40' },
133
+ { size: '3xl', metrics: '30 / 36' },
134
+ { size: '2xl', metrics: '24 / 32' },
135
+ { size: 'xl', metrics: '20 / 28' },
136
+ { size: 'lg', metrics: '18 / 24' },
137
+ { size: 'md', metrics: '16 / 24' },
138
+ { size: 'sm', metrics: '14 / 20' },
139
+ ] as const;
140
+
141
+ /**
142
+ * The full ramp with its metrics. The bottom steps deliberately duplicate the text ramp — `sm`
143
+ * is 14 on 20 exactly as in `Text` — because what separates them is semantic, not visual.
144
+ */
145
+ export const Sizes: StoryFn<typeof meta> = ({ ...args }) => (
146
+ <VStack gap={24} align='start'>
147
+ {SIZES.map(({ size, metrics }) => (
148
+ <VStack key={size} gap={4} align='start'>
149
+ <Text size='xs' color='secondary'>
150
+ size=&apos;{size}&apos; · {metrics}
151
+ </Text>
152
+ <Heading {...args} size={size}>
153
+ The quick brown fox
154
+ </Heading>
155
+ </VStack>
156
+ ))}
157
+ </VStack>
158
+ );
159
+
160
+ /**
161
+ * All four weights at every size, so weight emphasises within a level rather than creating one.
162
+ */
163
+ export const Weights: StoryFn<typeof meta> = ({ ...args }) => (
164
+ <VStack align='start'>
165
+ <Heading {...args} size='3xl' weight='light'>
166
+ Light Weight Heading
167
+ </Heading>
168
+ <Heading {...args} size='3xl' weight='regular'>
169
+ Regular Weight Heading
170
+ </Heading>
171
+ <Heading {...args} size='3xl' weight='medium'>
172
+ Medium Weight Heading
173
+ </Heading>
174
+ <Heading {...args} size='3xl' weight='bold'>
175
+ Bold Weight Heading
176
+ </Heading>
177
+ </VStack>
178
+ );
179
+
180
+ /**
181
+ * `asChild` moves the styling onto your own element, keeping whatever tag the surrounding
182
+ * markup needs.
183
+ */
184
+ export const AsChild: StoryFn<typeof meta> = ({ ...args }) => (
185
+ <Heading {...args} size='4xl' weight='bold' asChild>
186
+ <h2>Custom H2 Element with AsChild</h2>
187
+ </Heading>
188
+ );
189
+
190
+ /**
191
+ * `as` across the heading levels, which is the outline both a screen reader and a table of
192
+ * contents read. Choose it from the document structure, not from the size you wanted.
193
+ */
194
+ export const PolymorphicElements: StoryFn<typeof meta> = ({ ...args }) => (
195
+ <VStack align='start'>
196
+ <Heading {...args} as='h1' size='4xl'>
197
+ H1 Heading
198
+ </Heading>
199
+ <Heading {...args} as='h2' size='3xl'>
200
+ H2 Heading
201
+ </Heading>
202
+ <Heading {...args} as='h3' size='2xl'>
203
+ H3 Heading
204
+ </Heading>
205
+ <Heading {...args} as='h4' size='xl'>
206
+ H4 Heading
207
+ </Heading>
208
+ <Heading {...args} as='h5' size='lg'>
209
+ H5 Heading
210
+ </Heading>
211
+ <Heading {...args} as='h6' size='md'>
212
+ H6 Heading
213
+ </Heading>
214
+ </VStack>
215
+ );
216
+
217
+ /**
218
+ * A heading rendered inline, for a title inside a row of other content where a block element
219
+ * would break the line.
220
+ */
221
+ export const AsSpan: StoryFn<typeof meta> = ({ ...args }) => (
222
+ <Text>
223
+ This is a paragraph with{' '}
224
+ <Heading {...args} as='span' size='lg' weight='bold'>
225
+ inline heading text
226
+ </Heading>{' '}
227
+ using span element.
228
+ </Text>
229
+ );
230
+
231
+ /**
232
+ * A heading with no document level at all, for text that looks like a title but should not
233
+ * appear in the outline.
234
+ */
235
+ export const AsDiv: StoryFn<typeof meta> = ({ ...args }) => (
236
+ <Heading {...args} as='div' size='2xl' weight='medium'>
237
+ This heading is rendered as a div element
238
+ </Heading>
239
+ );
240
+ ```
@@ -0,0 +1,2 @@
1
+ <!-- @dsCard group="Typography" height=480 -->
2
+ <!doctype html><html><head><meta charset="utf-8"></head><body><div id="preview"></div><script src="./stories.js"></script><script>window.WallarmPreview.mount(document.getElementById('preview'));</script></body></html>
@@ -0,0 +1,12 @@
1
+ var e={vD(e,t,r){let n,l;/**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @lightSyntaxTransform
8
+ * @noflow
9
+ * @nolint
10
+ * @preventMunge
11
+ * @preserve-invariant-messages
12
+ */var a,i,o=Object.create,s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,f=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty,d=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let l of u(t))p.call(e,l)||l===r||s(e,l,{get:()=>t[l],enumerable:!(n=c(t,l))||n.enumerable});return e},h={},m={$dispatcherGuard:()=>C,$makeReadOnly:()=>M,$reset:()=>N,$structuralCheck:()=>H,c:()=>$,clearRenderCounterRegistry:()=>k,renderCounterRegistry:()=>O,useRenderCounter:()=>T};for(var y in m)s(h,y,{get:m[y],enumerable:!0});e.exports=d(s({},"__esModule",{value:!0}),h);var g=(l=null!=(n=r("C"))?o(f(n)):{},d(n&&n.__esModule?l:s(l,"default",{value:n,enumerable:!0}),n)),{useRef:w,useEffect:E,isValidElement:R}=g,v=null!=(a=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE)?a:g.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,b=Symbol.for("react.memo_cache_sentinel"),$="function"==typeof(null==(i=g.__COMPILER_RUNTIME)?void 0:i.c)?g.__COMPILER_RUNTIME.c:function(e){return g.useMemo(()=>{let t=Array(e);for(let r=0;r<e;r++)t[r]=b;return t[b]=!0,t},[])},_={};["readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","getCacheSignal","getCacheForType","useCacheRefresh"].forEach(e=>{_[e]=()=>{throw Error(`[React] Unexpected React hook call (${e}) from a React compiled function. Check that all hooks are called directly and named according to convention ('use[A-Z]') `)}});var x=null;function S(e){return v.ReactCurrentDispatcher.current=e,v.ReactCurrentDispatcher.current}_.useMemoCache=e=>{if(null!=x)return x.useMemoCache(e);throw Error("React Compiler internal invariant violation: unexpected null dispatcher")};var z=[];function C(e){let t=v.ReactCurrentDispatcher.current;if(0===e){if(z.push(t),1===z.length&&(x=t),t===_)throw Error("[React] Unexpected call to custom hook or component from a React compiled function. Check that (1) all hooks are called directly and named according to convention ('use[A-Z]') and (2) components are returned as JSX instead of being directly invoked.");S(_)}else if(1===e){let e=z.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");0===z.length&&(x=null),S(e)}else if(2===e)z.push(t),S(x);else if(3===e){let e=z.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");S(e)}else throw Error("React Compiler internal error: unreachable block"+e)}function N(e){for(let t=0;t<e.length;t++)e[t]=b}function M(){throw Error("TODO: implement $makeReadOnly in react-compiler-runtime")}var O=new Map;function k(){for(let e of O.values())e.forEach(e=>{e.count=0})}function T(e){let t=w(null);null!=t.current&&(t.current.count+=1),E(()=>{if(null==t.current){let r,n={count:0};null==(r=O.get(e))&&(r=new Set,O.set(e,r)),r.add(n),t.current=n}return()=>{var r;let n;null!==t.current&&(r=t.current,null!=(n=O.get(e))&&n.delete(r))}})}var D=new Set;function H(e,t,r,n,l,a){function i(e,t,i,o){let s=`${n}:${a} [${l}] ${r}${i} changed from ${e} to ${t} at depth ${o}`;D.has(s)||(D.add(s),console.error(s))}!function e(t,r,n,l){if(!(l>2)){if(t!==r)if(typeof t!=typeof r)i(`type ${typeof t}`,`type ${typeof r}`,n,l);else if("object"==typeof t){let a=Array.isArray(t),o=Array.isArray(r);if(null===t&&null!==r)i("null",`type ${typeof r}`,n,l);else if(null===r)i(`type ${typeof t}`,"null",n,l);else if(t instanceof Map)if(r instanceof Map)if(t.size!==r.size)i(`Map instance with size ${t.size}`,`Map instance with size ${r.size}`,n,l);else for(let[a,o]of t)r.has(a)?e(o,r.get(a),`${n}.get(${a})`,l+1):i(`Map instance with key ${a}`,`Map instance without key ${a}`,n,l);else i("Map instance","other value",n,l);else if(r instanceof Map)i("other value","Map instance",n,l);else if(t instanceof Set)if(r instanceof Set)if(t.size!==r.size)i(`Set instance with size ${t.size}`,`Set instance with size ${r.size}`,n,l);else for(let e of r)t.has(e)||i(`Set instance without element ${e}`,`Set instance with element ${e}`,n,l);else i("Set instance","other value",n,l);else if(r instanceof Set)i("other value","Set instance",n,l);else if(a||o)if(a!==o)i(`type ${a?"array":"object"}`,`type ${o?"array":"object"}`,n,l);else if(t.length!==r.length)i(`array with length ${t.length}`,`array with length ${r.length}`,n,l);else for(let a=0;a<t.length;a++)e(t[a],r[a],`${n}[${a}]`,l+1);else if(R(t)||R(r))R(t)!==R(r)?i(`type ${R(t)?"React element":"object"}`,`type ${R(r)?"React element":"object"}`,n,l):t.type!==r.type?i(`React element of type ${t.type}`,`React element of type ${r.type}`,n,l):e(t.props,r.props,`[props of ${n}]`,l+1);else{for(let e in r)e in t||i(`object without key ${e}`,`object with key ${e}`,n,l);for(let a in t)a in r?e(t[a],r[a],`${n}.${a}`,l+1):i(`object with key ${a}`,`object without key ${a}`,n,l)}}else{if("function"==typeof t)return;isNaN(t)||isNaN(r)?isNaN(t)!==isNaN(r)&&i(`${isNaN(t)?"NaN":"non-NaN value"}`,`${isNaN(r)?"NaN":"non-NaN value"}`,n,l):t!==r&&i(t,r,n,l)}}}(e,t,"",0)}},p(e,t,r){let n=new WeakMap,l=new WeakMap;function a(e,t,r){let a=t,i=r;if("object"==typeof a&&null!==a&&"$$typeof"in a&&a.$$typeof===Symbol.for("react.context")&&"Provider"in a&&(a=a.Provider),"function"==typeof a&&null!=i.ref&&!a.prototype?.isReactComponent){let t=a,r=n.get(e);r||(r=new WeakMap,n.set(e,r));let l=r.get(t);l||((l=e.forwardRef((e,r)=>t({...e,ref:r}))).displayName=t.displayName??t.name,r.set(t,l)),a=l}if("string"==typeof a&&"boolean"==typeof i.inert&&((i={...i}).inert?i.inert="":delete i.inert),"string"==typeof a)for(let[e,t]of[["fill-rule","fillRule"],["clip-rule","clipRule"]])e in i&&(i={...i,[t]:i[e]},delete i[e]);return"string"==typeof a&&null!=i.ref&&(a=function(e,t){let r=l.get(e);r||(r=new Map,l.set(e,r));let n=r.get(t);if(n)return n;let a=e.forwardRef((r,n)=>{let l=e.useRef(null);if(!l.current||l.current.original!==n){let e;l.current={original:n,callback:t=>{if(null==t&&e){let t=e;e=void 0,t();return}if("function"==typeof n){let r=n(t);e="function"==typeof r?r:void 0}else n&&(n.current=t)}}}return e.createElement(t,{...r,ref:l.current.callback})});return a.displayName=`CanvasHost(${t})`,r.set(t,a),a}(e,a)),{type:a,props:i}}function i(e){let t=(t,r,n)=>{let l=a(e,t,r??{});return e.createElement(l.type,void 0===n?l.props:{...l.props,key:n})};return{jsx:t,jsxs:(t,r,n)=>{let l=a(e,t,r??{}),{children:i,...o}=l.props;return e.createElement(l.type,void 0===n?o:{...o,key:n},...Array.isArray(i)?i:[i])},jsxDEV:t,Fragment:e.Fragment}}function o(e){return{...e,createElement:(t,r,...n)=>{let l=a(e,t,r??{});return e.createElement(l.type,l.props,...n)},cloneElement:(t,r,...n)=>{let l=e.cloneElement(t,r??void 0,...n),i=l.ref,o=a(e,l.type,{...l.props,ref:i});return o.type===l.type&&"string"!=typeof l.type?l:e.createElement(o.type,{...o.props,key:l.key})}}}r.d(t,{MA:()=>i,YJ:()=>o})},C(e,t,r){r.r(t);let n=(0,r("p").YJ)(window.React),{Children:l,Component:a,Fragment:i,Profiler:o,PureComponent:s,StrictMode:c,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:f,act:p,cloneElement:d,createContext:h,createElement:m,createFactory:y,createRef:g,forwardRef:w,isValidElement:E,lazy:R,memo:v,startTransition:b,unstable_act:$,useCallback:_,useContext:x,useDebugValue:S,useDeferredValue:z,useEffect:C,useId:N,useImperativeHandle:M,useInsertionEffect:O,useLayoutEffect:k,useMemo:T,useReducer:D,useRef:H,useState:j,useSyncExternalStore:A,useTransition:I,version:P,use:W}=n;r.d(t,{},{Children:l,Component:a,Fragment:i,Profiler:o,PureComponent:s,StrictMode:c,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:f,act:p,cloneElement:d,createContext:h,createElement:m,createFactory:y,createRef:g,default:n,forwardRef:w,isValidElement:E,lazy:R,memo:v,startTransition:b,unstable_act:$,use:W,useCallback:_,useContext:x,useDebugValue:S,useDeferredValue:z,useEffect:C,useId:N,useImperativeHandle:M,useInsertionEffect:O,useLayoutEffect:k,useMemo:T,useReducer:D,useRef:H,useState:j,useSyncExternalStore:A,useTransition:I,version:P})}},t={};function r(n){var l=t[n];if(void 0!==l)return l.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.d=(e,t,n)=>{var l=(t,n)=>{for(var l in t)r.o(t,l)&&!r.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,[n]:t[l]})};l(t,"get"),l(n,"value")},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{let{jsx:e,jsxs:t,jsxDEV:n,Fragment:l}=(0,r("p").MA)(window.React);var a=r("vD");let i=window.WallarmDS.VStack,o=window.WallarmDS.Text,s=window.WallarmDS.Heading,c={title:"Typography/Heading",component:s,parameters:{layout:"centered",docs:{description:{component:"Geist for titles and section headings, where hierarchy comes from the size step — reach for `Text` when the words are copy rather than a title. Visual size and document level are independent: pick `size` for how it looks and `as` for the outline, so a visually small heading can still be the `h2` the structure needs."}}},args:{},argTypes:{size:{control:"select",options:["sm","md","lg","xl","2xl","3xl","4xl","5xl","6xl","7xl"]},weight:{control:"select",options:["light","regular","medium","bold"]},as:{control:"select",options:["h1","h2","h3","h4","h5","h6","p","div","span"]},asChild:{control:"boolean"}}},u=[{size:"7xl",metrics:"72 / 72"},{size:"6xl",metrics:"60 / 60"},{size:"5xl",metrics:"48 / 48"},{size:"4xl",metrics:"36 / 40"},{size:"3xl",metrics:"30 / 36"},{size:"2xl",metrics:"24 / 32"},{size:"xl",metrics:"20 / 28"},{size:"lg",metrics:"18 / 24"},{size:"md",metrics:"16 / 24"},{size:"sm",metrics:"14 / 20"}];var f=r("C");let p=[{name:"Basic",story:t=>{let r,n,l=(0,a.c)(4);return l[0]!==t?({...r}=t,l[0]=t,l[1]=r):r=l[1],l[2]!==r?(n=e(s,{...r,children:"Default Heading"}),l[2]=r,l[3]=n):n=l[3],n},meta:c},{name:"Sizes",story:r=>{let n,l,c,f=(0,a.c)(6);return f[0]!==r?({...n}=r,f[0]=r,f[1]=n):n=f[1],f[2]!==n?(l=u.map(r=>{let{size:l,metrics:a}=r;return t(i,{gap:4,align:"start",children:[t(o,{size:"xs",color:"secondary",children:["size='",l,"' · ",a]}),e(s,{...n,size:l,children:"The quick brown fox"})]},l)}),f[2]=n,f[3]=l):l=f[3],f[4]!==l?(c=e(i,{gap:24,align:"start",children:l}),f[4]=l,f[5]=c):c=f[5],c},meta:c},{name:"Weights",story:r=>{let n,l,o=(0,a.c)(4);return o[0]!==r?({...n}=r,o[0]=r,o[1]=n):n=o[1],o[2]!==n?(l=t(i,{align:"start",children:[e(s,{...n,size:"3xl",weight:"light",children:"Light Weight Heading"}),e(s,{...n,size:"3xl",weight:"regular",children:"Regular Weight Heading"}),e(s,{...n,size:"3xl",weight:"medium",children:"Medium Weight Heading"}),e(s,{...n,size:"3xl",weight:"bold",children:"Bold Weight Heading"})]}),o[2]=n,o[3]=l):l=o[3],l},meta:c},{name:"AsChild",story:t=>{let r,n,l,i=(0,a.c)(5);return i[0]!==t?({...r}=t,i[0]=t,i[1]=r):r=i[1],i[2]===Symbol.for("react.memo_cache_sentinel")?(n=e("h2",{children:"Custom H2 Element with AsChild"}),i[2]=n):n=i[2],i[3]!==r?(l=e(s,{...r,size:"4xl",weight:"bold",asChild:!0,children:n}),i[3]=r,i[4]=l):l=i[4],l},meta:c},{name:"PolymorphicElements",story:r=>{let n,l,o=(0,a.c)(4);return o[0]!==r?({...n}=r,o[0]=r,o[1]=n):n=o[1],o[2]!==n?(l=t(i,{align:"start",children:[e(s,{...n,as:"h1",size:"4xl",children:"H1 Heading"}),e(s,{...n,as:"h2",size:"3xl",children:"H2 Heading"}),e(s,{...n,as:"h3",size:"2xl",children:"H3 Heading"}),e(s,{...n,as:"h4",size:"xl",children:"H4 Heading"}),e(s,{...n,as:"h5",size:"lg",children:"H5 Heading"}),e(s,{...n,as:"h6",size:"md",children:"H6 Heading"})]}),o[2]=n,o[3]=l):l=o[3],l},meta:c},{name:"AsSpan",story:r=>{let n,l,i=(0,a.c)(4);return i[0]!==r?({...n}=r,i[0]=r,i[1]=n):n=i[1],i[2]!==n?(l=t(o,{children:["This is a paragraph with"," ",e(s,{...n,as:"span",size:"lg",weight:"bold",children:"inline heading text"})," ","using span element."]}),i[2]=n,i[3]=l):l=i[3],l},meta:c},{name:"AsDiv",story:t=>{let r,n,l=(0,a.c)(4);return l[0]!==t?({...r}=t,l[0]=t,l[1]=r):r=l[1],l[2]!==r?(n=e(s,{...r,as:"div",size:"2xl",weight:"medium",children:"This heading is rendered as a div element"}),l[2]=r,l[3]=n):n=l[3],n},meta:c}];function d({entry:e}){let{story:t,meta:r}=e,n={...r.args,...t.args},l="function"==typeof t||t.$$typeof?t:t.render||r.render||r.component,a=()=>f.default.createElement(l,n),i={args:n,globals:{theme:"light"},parameters:{...r.parameters,...t.parameters},viewMode:"story"};for(let e of[...r.decorators||[],...t.decorators||[]].reverse()){let t=a;a=()=>e(t,i)}return f.default.createElement("section",{"data-preview-story":e.name,className:"p-16"},f.default.createElement("h2",{className:"text-sm mb-12"},e.name),f.default.createElement(a))}window.WallarmPreview={mount(e){let t=window.ReactDOM.createRoot(e);return t.render(f.default.createElement(window.WallarmDS.Root,null,p.map((e,t)=>f.default.createElement(d,{key:t,entry:e})))),t}}})();