@wallarm-org/claude-design 0.0.0-stage → 4.8.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,1311 @@
1
+ Holds one answer, or several, chosen from a list — below about six options expose them instead with `Radio` or `SegmentedControl`, and reach for `DropdownMenu` when the items run commands rather than set a value. The trigger is composed rather than configured: `SelectButton` for a button-shaped trigger, `SelectInput` for one that looks like a field.
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
+ | `form` | `string \| undefined` | no | — | The associate form of the underlying select. |
10
+ | `title` | `string \| undefined` | no | — | |
11
+ | `default-checked` | `boolean \| undefined` | no | — | |
12
+ | `default-value` | `string[] \| undefined` | no | — | The initial default value of the select when rendered. Use when you don't need to control the value of the select. |
13
+ | `auto-focus` | `boolean \| undefined` | no | — | |
14
+ | `id` | `string` | no | — | The unique identifier of the machine. |
15
+ | `tab-index` | `number \| undefined` | no | — | |
16
+ | `rel` | `string \| undefined` | no | — | |
17
+ | `on-change` | `ChangeEventHandler<T, Element> \| undefined` | no | — | |
18
+ | `on-select` | `complex` | no | — | Function called when an item is selected |
19
+ | `disabled` | `boolean \| undefined` | no | `false` | Whether the select is disabled |
20
+ | `name` | `string \| undefined` | no | — | The `name` attribute of the underlying select. |
21
+ | `value` | `string[] \| undefined` | no | — | The controlled keys of the selected items |
22
+ | `as-child` | `boolean \| undefined` | no | — | Use the provided child element as the default rendered element, combining their props and behavior. |
23
+ | `ids` | `complex` | no | — | The ids of the elements in the select. Useful for composition. |
24
+ | `default-highlighted-value` | `string \| null \| undefined` | no | — | The initial value of the highlighted item when opened. Use when you don't need to control the highlighted value of the select. |
25
+ | `highlighted-value` | `string \| null \| undefined` | no | — | The controlled key of the highlighted item |
26
+ | `on-highlight-change` | `complex` | no | — | The callback fired when the highlighted item changes. |
27
+ | `loop-focus` | `boolean \| undefined` | no | — | Whether to loop the keyboard navigation through the options |
28
+ | `close-on-select` | `boolean \| undefined` | no | — | Whether the select should close after an item is selected |
29
+ | `open` | `boolean \| undefined` | no | — | Whether the select menu is open |
30
+ | `on-open-change` | `complex` | no | — | Function called when the popup is opened |
31
+ | `default-open` | `boolean \| undefined` | no | — | Whether the select's open state is controlled by the user |
32
+ | `composite` | `boolean \| undefined` | no | — | Whether the select is a composed with other composite widgets like tabs or combobox |
33
+ | `on-pointer-down-outside` | `complex` | no | — | Function called when the pointer is pressed down outside the component |
34
+ | `on-focus-outside` | `complex` | no | — | Function called when the focus is moved outside the component |
35
+ | `on-interact-outside` | `complex` | no | — | Function called when an interaction happens outside the component |
36
+ | `present` | `boolean \| undefined` | no | — | Whether the node is present (controlled by the user) |
37
+ | `on-exit-complete` | `VoidFunction \| undefined` | no | — | Function called when the animation ends in the closed state |
38
+ | `on-enter-complete` | `VoidFunction \| undefined` | no | — | Function called when the animation ends in the open state |
39
+ | `immediate` | `boolean \| undefined` | no | — | Whether to synchronize the present change immediately or defer it to the next frame |
40
+ | `auto-complete` | `string \| undefined` | no | — | The autocomplete attribute for the hidden select. Enables browser autofill (e.g. "address-level1" for state). |
41
+ | `read-only` | `boolean \| undefined` | no | — | Whether the select is read-only |
42
+ | `required` | `boolean \| undefined` | no | — | Whether the select is required |
43
+ | `invalid` | `boolean \| undefined` | no | — | Whether the select is invalid |
44
+ | `on-value-change` | `complex` | no | — | The callback fired when the selected item changes. |
45
+ | `multiple` | `boolean \| undefined` | no | — | Whether to allow multiple selection |
46
+ | `collection` | `complex` | yes | — | The collection of items |
47
+ | `translations` | `complex` | no | — | Specifies the localized strings that identifies the accessibility elements and their states |
48
+ | `scroll-to-index-fn` | `complex` | no | — | Function to scroll to a specific index |
49
+ | `deselectable` | `boolean \| undefined` | no | — | Whether the value can be cleared by clicking the selected item. **Note:** this is only applicable for single selection |
50
+ | `skip-animation-on-mount` | `boolean \| undefined` | no | — | Whether to allow the initial presence animation. |
51
+ | `hide-mode` | `"display-none" \| "activity"` | no | — | How to hide content when mounted but not present. - `'display-none'`: HTML `hidden` attribute. Effects stay alive. - `'activity'`: React 19 `<Activity mode="hidden">`. Effects pause. Requires React 19+. |
52
+ | `loading` | `boolean \| undefined` | no | `false` | |
53
+ | `positioning` | `complex` | no | — | Override default floating positioning (merged with DS defaults). |
54
+ | `data-testid` | `string \| undefined` | no | — | |
55
+
56
+ ## Sub-components
57
+
58
+ - `WallarmDS.SelectEmptyState` — `SelectEmptyStateProps` in the declaration bundle.
59
+ - `WallarmDS.SelectFooter` — `SelectFooterProps` in the declaration bundle.
60
+ - `WallarmDS.SelectOptionHint` — `SelectOptionHintProps` in the declaration bundle.
61
+ - `WallarmDS.SelectPositioner` — `SelectPositionerProps` in the declaration bundle.
62
+ - `WallarmDS.SelectSearchInput` — `SelectSearchInputProps` in the declaration bundle.
63
+ - `WallarmDS.SelectSeparator` — `SelectSeparatorProps` in the declaration bundle.
64
+ - `WallarmDS.SelectButton` — `SelectButtonProps` in the declaration bundle.
65
+ - `WallarmDS.SelectButtonTag` — `SelectButtonTagProps` in the declaration bundle.
66
+ - `WallarmDS.SelectButtonTagValue` — `SelectButtonTagValueProps` in the declaration bundle.
67
+ - `WallarmDS.SelectClearTrigger` — `SelectClearTriggerProps` in the declaration bundle.
68
+ - `WallarmDS.SelectContent` — `SelectContentProps` in the declaration bundle.
69
+ - `WallarmDS.SelectGroup` — `SelectGroupProps` in the declaration bundle.
70
+ - `WallarmDS.SelectGroupLabel` — `SelectGroupLabelProps` in the declaration bundle.
71
+ - `WallarmDS.SelectHeader` — `SelectHeaderProps` in the declaration bundle.
72
+ - `WallarmDS.SelectInput` — `SelectInputProps` in the declaration bundle.
73
+ - `WallarmDS.SelectOption` — `SelectOptionProps` in the declaration bundle.
74
+ - `WallarmDS.SelectOptionDescription` — `SelectOptionDescriptionProps` in the declaration bundle.
75
+ - `WallarmDS.SelectOptionIndicator` — `SelectOptionIndicatorProps` in the declaration bundle.
76
+ - `WallarmDS.SelectOptionText` — `SelectOptionTextProps` in the declaration bundle.
77
+
78
+ ## Stories
79
+
80
+ ### Basic
81
+
82
+ The minimum composition: a trigger, a `SelectPositioner`, and `SelectContent` holding the
83
+ options. Every part is explicit, which is what lets the trigger change without the menu changing.
84
+
85
+ Source: Select/Select.stories.tsx#Basic
86
+
87
+ ### Sizes
88
+
89
+ The same height scale as the other fields, so a select sits in a row of inputs without
90
+ breaking the line.
91
+
92
+ Source: Select/Select.stories.tsx#Sizes
93
+
94
+ ### DifferentButtons
95
+
96
+ The trigger is yours to shape — labelled, icon-led, or value-only. Whatever it looks like,
97
+ it must still read as something that opens.
98
+
99
+ Source: Select/Select.stories.tsx#DifferentButtons
100
+
101
+ ### Multiple
102
+
103
+ `multiple` collects several answers, and the trigger summarises them. Once past a couple of
104
+ selections a summary beats a list, which is what `WithTags` is for.
105
+
106
+ Source: Select/Select.stories.tsx#Multiple
107
+
108
+ ### MultipleWithIcons
109
+
110
+ Icons carry the option's identity into the closed trigger, which matters more in a
111
+ multi-select where the text is compressed into a summary.
112
+
113
+ Source: Select/Select.stories.tsx#MultipleWithIcons
114
+
115
+ ### Grouped
116
+
117
+ `SelectGroup` with `SelectGroupLabel` splits a long list into named sections. Group when
118
+ the reader would otherwise scan, not merely because the options have categories.
119
+
120
+ Source: Select/Select.stories.tsx#Grouped
121
+
122
+ ### Disabled
123
+
124
+ The whole control is out, trigger included. Disabling individual options instead keeps the
125
+ list honest about what exists.
126
+
127
+ Source: Select/Select.stories.tsx#Disabled
128
+
129
+ ### Loading
130
+
131
+ `loading` on the root, for a list still being fetched. It holds the trigger's shape so the
132
+ layout doesn't jump when the options land.
133
+
134
+ Source: Select/Select.stories.tsx#Loading
135
+
136
+ ### WithSelectInput
137
+
138
+ `SelectInput` makes the trigger look like a text field, which suits a select sitting in a
139
+ form beside real inputs rather than in a toolbar.
140
+
141
+ Source: Select/Select.stories.tsx#WithSelectInput
142
+
143
+ ### WithSeparator
144
+
145
+ `SelectSeparator` divides kinds of option — a destructive or clear-all entry from the real
146
+ choices — where a group label would be overkill.
147
+
148
+ Source: Select/Select.stories.tsx#WithSeparator
149
+
150
+ ### WithIcons
151
+
152
+ `SelectValueIcon` in the option and the trigger, so the chosen option keeps its icon once
153
+ the menu closes.
154
+
155
+ Source: Select/Select.stories.tsx#WithIcons
156
+
157
+ ### WithFooter
158
+
159
+ `SelectFooter` pins content below the scrolling list, for a persistent escape like managing
160
+ the options themselves.
161
+
162
+ Source: Select/Select.stories.tsx#WithFooter
163
+
164
+ ### WithSearch
165
+
166
+ `SelectSearchInput` with the `useSelectSearch` hook, plus `SelectEmptyState` for when
167
+ nothing matches. Add search once the list outgrows a glance — roughly ten options.
168
+
169
+ Source: Select/Select.stories.tsx#WithSearch
170
+
171
+ ### WithFormField
172
+
173
+ Inside `Field`, so the label and description come from `FieldLabel` and `FieldDescription`
174
+ rather than from the select.
175
+
176
+ Source: Select/Select.stories.tsx#WithFormField
177
+
178
+ ### WithTags
179
+
180
+ Selections render as removable tags inside the field, which is the honest shape for
181
+ multi-select when the reader needs to see and undo each choice individually.
182
+
183
+ Source: Select/Select.stories.tsx#WithTags
184
+
185
+ ## Story sources
186
+
187
+ ### Select/Select.stories.tsx
188
+
189
+ ```tsx
190
+ import { Fragment } from 'react';
191
+ import { createListCollection } from '@ark-ui/react/collection';
192
+ import type { Meta, StoryFn } from 'storybook-react-rsbuild';
193
+ import { LayoutGrid, LayoutTemplate, Pen, Search, SquareArrowOutUpRight } from '../../icons';
194
+ import { Button } from '../Button';
195
+ import { Field, FieldContent, FieldLabel, FieldSet } from '../Field';
196
+ import { HStack, VStack } from '../Stack';
197
+ import { Tag } from '../Tag';
198
+ import { Select } from './Select';
199
+ import { SelectButton } from './SelectButton';
200
+ import { SelectClearTrigger } from './SelectClearTrigger';
201
+ import { SelectContent } from './SelectContent';
202
+ import { SelectEmptyState } from './SelectEmptyState';
203
+ import { SelectFooter } from './SelectFooter';
204
+ import { SelectGroup } from './SelectGroup';
205
+ import { SelectGroupLabel } from './SelectGroupLabel';
206
+ import { SelectHeader } from './SelectHeader';
207
+ import { SelectInput } from './SelectInput';
208
+ import { SelectOption } from './SelectOption';
209
+ import { SelectOptionDescription } from './SelectOptionDescription';
210
+ import { SelectOptionIndicator } from './SelectOptionIndicator';
211
+ import { SelectOptionText } from './SelectOptionText';
212
+ import { SelectPositioner } from './SelectPositioner';
213
+ import { SelectSearchInput } from './SelectSearchInput';
214
+ import { SelectSeparator } from './SelectSeparator';
215
+ import type { SelectDataItem } from './types';
216
+ import { useSelectSearch } from './useSelectSearch';
217
+
218
+ const DESCRIPTION = [
219
+ 'Holds one answer, or several, chosen from a list — below about six options expose them instead with `Radio` or `SegmentedControl`, and reach for `DropdownMenu` when the items run commands rather than set a value.',
220
+ 'The trigger is composed rather than configured: `SelectButton` for a button-shaped trigger, `SelectInput` for one that looks like a field.',
221
+ ].join(' ');
222
+
223
+ const meta = {
224
+ title: 'Inputs/Select',
225
+ component: Select,
226
+ subcomponents: {
227
+ SelectButton,
228
+ SelectClearTrigger,
229
+ SelectContent,
230
+ SelectFooter,
231
+ SelectGroup,
232
+ SelectGroupLabel,
233
+ SelectHeader,
234
+ SelectInput,
235
+ SelectOption,
236
+ SelectOptionDescription,
237
+ SelectOptionIndicator,
238
+ SelectOptionText,
239
+ SelectPositioner,
240
+ SelectSearchInput,
241
+ SelectSeparator,
242
+ },
243
+ parameters: {
244
+ layout: 'centered',
245
+ docs: {
246
+ description: {
247
+ component: DESCRIPTION,
248
+ },
249
+ },
250
+ },
251
+ } satisfies Meta<typeof Select>;
252
+
253
+ export default meta;
254
+
255
+ const skills: SelectDataItem[] = [
256
+ { label: 'React', value: 'react', icon: LayoutGrid, category: 'Frontend' },
257
+ { label: 'Vue', value: 'vue', icon: LayoutTemplate, category: 'Frontend' },
258
+ { label: 'Angular', value: 'angular', icon: Search, category: 'Frontend' },
259
+ { label: 'Node.js', value: 'nodejs', icon: Pen, category: 'Backend' },
260
+ { label: 'Python', value: 'python', icon: LayoutGrid, category: 'Backend' },
261
+ { label: 'Java', value: 'java', icon: LayoutGrid, category: 'Backend' },
262
+ {
263
+ label: 'TypeScript',
264
+ value: 'typescript',
265
+ icon: LayoutGrid,
266
+ category: 'Language',
267
+ description: 'Language',
268
+ },
269
+ {
270
+ label: 'JavaScript',
271
+ value: 'javascript',
272
+ icon: LayoutGrid,
273
+ category: 'Language',
274
+ description: 'Language',
275
+ },
276
+ { label: 'SQL', value: 'sql', icon: LayoutGrid, category: 'Database' },
277
+ {
278
+ label: 'MongoDB',
279
+ value: 'mongodb',
280
+ icon: LayoutGrid,
281
+ category: 'Database',
282
+ },
283
+ ];
284
+
285
+ const skillsWithoutIcons: SelectDataItem[] = skills.map(({ icon, ...skill }) => skill);
286
+
287
+ /**
288
+ * The minimum composition: a trigger, a `SelectPositioner`, and `SelectContent` holding the
289
+ * options. Every part is explicit, which is what lets the trigger change without the menu changing.
290
+ */
291
+ export const Basic: StoryFn<typeof Select> = () => {
292
+ const collection = createListCollection({
293
+ items: skillsWithoutIcons,
294
+ isItemDisabled: item => item.value === 'angular',
295
+ });
296
+
297
+ return (
298
+ <div className='w-300'>
299
+ <Select collection={collection} data-testid='select'>
300
+ <SelectButton />
301
+
302
+ <SelectPositioner>
303
+ <SelectContent>
304
+ {collection.items.map(skill => (
305
+ <SelectOption key={skill.value} item={skill}>
306
+ <SelectOptionText>{skill.label}</SelectOptionText>
307
+ <SelectOptionIndicator />
308
+ </SelectOption>
309
+ ))}
310
+ </SelectContent>
311
+ </SelectPositioner>
312
+ </Select>
313
+ </div>
314
+ );
315
+ };
316
+
317
+ /**
318
+ * The same height scale as the other fields, so a select sits in a row of inputs without
319
+ * breaking the line.
320
+ */
321
+ export const Sizes: StoryFn<typeof Select> = () => {
322
+ const collection = createListCollection({
323
+ items: skillsWithoutIcons,
324
+ });
325
+
326
+ return (
327
+ <VStack gap={16} align='stretch'>
328
+ <HStack gap={16} align='start'>
329
+ <Select collection={collection}>
330
+ <SelectButton size='default' />
331
+ <SelectPositioner>
332
+ <SelectContent>
333
+ {collection.items.map(skill => (
334
+ <SelectOption key={skill.value} item={skill}>
335
+ <SelectOptionText>{skill.label}</SelectOptionText>
336
+ <SelectOptionIndicator />
337
+ </SelectOption>
338
+ ))}
339
+ </SelectContent>
340
+ </SelectPositioner>
341
+ </Select>
342
+
343
+ <Select collection={collection}>
344
+ <SelectButton size='medium' />
345
+ <SelectPositioner>
346
+ <SelectContent>
347
+ {collection.items.map(skill => (
348
+ <SelectOption key={skill.value} item={skill}>
349
+ <SelectOptionText>{skill.label}</SelectOptionText>
350
+ <SelectOptionIndicator />
351
+ </SelectOption>
352
+ ))}
353
+ </SelectContent>
354
+ </SelectPositioner>
355
+ </Select>
356
+
357
+ <Select collection={collection}>
358
+ <SelectButton size='small' />
359
+ <SelectPositioner>
360
+ <SelectContent>
361
+ {collection.items.map(skill => (
362
+ <SelectOption key={skill.value} item={skill}>
363
+ <SelectOptionText>{skill.label}</SelectOptionText>
364
+ <SelectOptionIndicator />
365
+ </SelectOption>
366
+ ))}
367
+ </SelectContent>
368
+ </SelectPositioner>
369
+ </Select>
370
+ </HStack>
371
+
372
+ <HStack gap={16} align='start'>
373
+ <Select collection={collection}>
374
+ <SelectInput size='default' />
375
+ <SelectPositioner>
376
+ <SelectContent>
377
+ {collection.items.map(skill => (
378
+ <SelectOption key={skill.value} item={skill}>
379
+ <SelectOptionText>{skill.label}</SelectOptionText>
380
+ <SelectOptionIndicator />
381
+ </SelectOption>
382
+ ))}
383
+ </SelectContent>
384
+ </SelectPositioner>
385
+ </Select>
386
+
387
+ <Select collection={collection}>
388
+ <SelectInput size='medium' />
389
+ <SelectPositioner>
390
+ <SelectContent>
391
+ {collection.items.map(skill => (
392
+ <SelectOption key={skill.value} item={skill}>
393
+ <SelectOptionText>{skill.label}</SelectOptionText>
394
+ <SelectOptionIndicator />
395
+ </SelectOption>
396
+ ))}
397
+ </SelectContent>
398
+ </SelectPositioner>
399
+ </Select>
400
+
401
+ <Select collection={collection}>
402
+ <SelectInput size='small' />
403
+ <SelectPositioner>
404
+ <SelectContent>
405
+ {collection.items.map(skill => (
406
+ <SelectOption key={skill.value} item={skill}>
407
+ <SelectOptionText>{skill.label}</SelectOptionText>
408
+ <SelectOptionIndicator />
409
+ </SelectOption>
410
+ ))}
411
+ </SelectContent>
412
+ </SelectPositioner>
413
+ </Select>
414
+ </HStack>
415
+ </VStack>
416
+ );
417
+ };
418
+
419
+ /**
420
+ * The trigger is yours to shape — labelled, icon-led, or value-only. Whatever it looks like,
421
+ * it must still read as something that opens.
422
+ */
423
+ export const DifferentButtons: StoryFn<typeof Select> = () => {
424
+ const collection = createListCollection({
425
+ items: skillsWithoutIcons,
426
+ });
427
+
428
+ return (
429
+ <div className='w-800'>
430
+ <VStack gap={16}>
431
+ <HStack gap={8}>
432
+ <Select collection={collection}>
433
+ <SelectButton placeholder='Default' />
434
+
435
+ <SelectPositioner>
436
+ <SelectContent>
437
+ {collection.items.map(skill => (
438
+ <SelectOption key={skill.value} item={skill}>
439
+ <SelectOptionText>{skill.label}</SelectOptionText>
440
+ <SelectOptionIndicator />
441
+ </SelectOption>
442
+ ))}
443
+ </SelectContent>
444
+ </SelectPositioner>
445
+ </Select>
446
+
447
+ <Select collection={collection}>
448
+ <SelectButton variant='ghost' placeholder='Ghost + Neutral' />
449
+
450
+ <SelectPositioner>
451
+ <SelectContent>
452
+ {collection.items.map(skill => (
453
+ <SelectOption key={skill.value} item={skill}>
454
+ <SelectOptionText>{skill.label}</SelectOptionText>
455
+ <SelectOptionIndicator />
456
+ </SelectOption>
457
+ ))}
458
+ </SelectContent>
459
+ </SelectPositioner>
460
+ </Select>
461
+
462
+ <Select collection={collection}>
463
+ <SelectButton variant='ghost' color='brand' placeholder='Ghost + Brand' />
464
+
465
+ <SelectPositioner>
466
+ <SelectContent>
467
+ {collection.items.map(skill => (
468
+ <SelectOption key={skill.value} item={skill}>
469
+ <SelectOptionText>{skill.label}</SelectOptionText>
470
+ <SelectOptionIndicator />
471
+ </SelectOption>
472
+ ))}
473
+ </SelectContent>
474
+ </SelectPositioner>
475
+ </Select>
476
+
477
+ <Select collection={collection}>
478
+ <SelectButton variant='secondary' placeholder='Secondary + Neutral' />
479
+
480
+ <SelectPositioner>
481
+ <SelectContent>
482
+ {collection.items.map(skill => (
483
+ <SelectOption key={skill.value} item={skill}>
484
+ <SelectOptionText>{skill.label}</SelectOptionText>
485
+ <SelectOptionIndicator />
486
+ </SelectOption>
487
+ ))}
488
+ </SelectContent>
489
+ </SelectPositioner>
490
+ </Select>
491
+
492
+ <Select collection={collection}>
493
+ <SelectButton variant='secondary' color='brand' placeholder='Ghost + Brand' />
494
+
495
+ <SelectPositioner>
496
+ <SelectContent>
497
+ {collection.items.map(skill => (
498
+ <SelectOption key={skill.value} item={skill}>
499
+ <SelectOptionText>{skill.label}</SelectOptionText>
500
+ <SelectOptionIndicator />
501
+ </SelectOption>
502
+ ))}
503
+ </SelectContent>
504
+ </SelectPositioner>
505
+ </Select>
506
+ </HStack>
507
+
508
+ <HStack gap={8}>
509
+ <Select collection={collection} disabled>
510
+ <SelectButton placeholder='Default' />
511
+
512
+ <SelectPositioner>
513
+ <SelectContent>
514
+ {collection.items.map(skill => (
515
+ <SelectOption key={skill.value} item={skill}>
516
+ <SelectOptionText>{skill.label}</SelectOptionText>
517
+ <SelectOptionIndicator />
518
+ </SelectOption>
519
+ ))}
520
+ </SelectContent>
521
+ </SelectPositioner>
522
+ </Select>
523
+
524
+ <Select collection={collection} disabled>
525
+ <SelectButton variant='ghost' placeholder='Ghost + Neutral' />
526
+
527
+ <SelectPositioner>
528
+ <SelectContent>
529
+ {collection.items.map(skill => (
530
+ <SelectOption key={skill.value} item={skill}>
531
+ <SelectOptionText>{skill.label}</SelectOptionText>
532
+ <SelectOptionIndicator />
533
+ </SelectOption>
534
+ ))}
535
+ </SelectContent>
536
+ </SelectPositioner>
537
+ </Select>
538
+
539
+ <Select collection={collection} disabled>
540
+ <SelectButton variant='ghost' color='brand' placeholder='Ghost + Brand' />
541
+
542
+ <SelectPositioner>
543
+ <SelectContent>
544
+ {collection.items.map(skill => (
545
+ <SelectOption key={skill.value} item={skill}>
546
+ <SelectOptionText>{skill.label}</SelectOptionText>
547
+ <SelectOptionIndicator />
548
+ </SelectOption>
549
+ ))}
550
+ </SelectContent>
551
+ </SelectPositioner>
552
+ </Select>
553
+
554
+ <Select collection={collection} disabled>
555
+ <SelectButton variant='secondary' placeholder='Secondary + Neutral' />
556
+
557
+ <SelectPositioner>
558
+ <SelectContent>
559
+ {collection.items.map(skill => (
560
+ <SelectOption key={skill.value} item={skill}>
561
+ <SelectOptionText>{skill.label}</SelectOptionText>
562
+ <SelectOptionIndicator />
563
+ </SelectOption>
564
+ ))}
565
+ </SelectContent>
566
+ </SelectPositioner>
567
+ </Select>
568
+
569
+ <Select collection={collection} disabled>
570
+ <SelectButton variant='secondary' color='brand' placeholder='Ghost + Brand' />
571
+
572
+ <SelectPositioner>
573
+ <SelectContent>
574
+ {collection.items.map(skill => (
575
+ <SelectOption key={skill.value} item={skill}>
576
+ <SelectOptionText>{skill.label}</SelectOptionText>
577
+ <SelectOptionIndicator />
578
+ </SelectOption>
579
+ ))}
580
+ </SelectContent>
581
+ </SelectPositioner>
582
+ </Select>
583
+ </HStack>
584
+
585
+ <HStack gap={8}>
586
+ <Select collection={collection} loading>
587
+ <SelectButton placeholder='Default' />
588
+
589
+ <SelectPositioner>
590
+ <SelectContent>
591
+ {collection.items.map(skill => (
592
+ <SelectOption key={skill.value} item={skill}>
593
+ <SelectOptionText>{skill.label}</SelectOptionText>
594
+ <SelectOptionIndicator />
595
+ </SelectOption>
596
+ ))}
597
+ </SelectContent>
598
+ </SelectPositioner>
599
+ </Select>
600
+
601
+ <Select collection={collection} loading>
602
+ <SelectButton variant='ghost' placeholder='Ghost + Neutral' />
603
+
604
+ <SelectPositioner>
605
+ <SelectContent>
606
+ {collection.items.map(skill => (
607
+ <SelectOption key={skill.value} item={skill}>
608
+ <SelectOptionText>{skill.label}</SelectOptionText>
609
+ <SelectOptionIndicator />
610
+ </SelectOption>
611
+ ))}
612
+ </SelectContent>
613
+ </SelectPositioner>
614
+ </Select>
615
+
616
+ <Select collection={collection} loading>
617
+ <SelectButton variant='ghost' color='brand' placeholder='Ghost + Brand' />
618
+
619
+ <SelectPositioner>
620
+ <SelectContent>
621
+ {collection.items.map(skill => (
622
+ <SelectOption key={skill.value} item={skill}>
623
+ <SelectOptionText>{skill.label}</SelectOptionText>
624
+ <SelectOptionIndicator />
625
+ </SelectOption>
626
+ ))}
627
+ </SelectContent>
628
+ </SelectPositioner>
629
+ </Select>
630
+
631
+ <Select collection={collection} loading>
632
+ <SelectButton variant='secondary' placeholder='Secondary + Neutral' />
633
+
634
+ <SelectPositioner>
635
+ <SelectContent>
636
+ {collection.items.map(skill => (
637
+ <SelectOption key={skill.value} item={skill}>
638
+ <SelectOptionText>{skill.label}</SelectOptionText>
639
+ <SelectOptionIndicator />
640
+ </SelectOption>
641
+ ))}
642
+ </SelectContent>
643
+ </SelectPositioner>
644
+ </Select>
645
+
646
+ <Select collection={collection} loading>
647
+ <SelectButton variant='secondary' color='brand' placeholder='Ghost + Brand' />
648
+
649
+ <SelectPositioner>
650
+ <SelectContent>
651
+ {collection.items.map(skill => (
652
+ <SelectOption key={skill.value} item={skill}>
653
+ <SelectOptionText>{skill.label}</SelectOptionText>
654
+ <SelectOptionIndicator />
655
+ </SelectOption>
656
+ ))}
657
+ </SelectContent>
658
+ </SelectPositioner>
659
+ </Select>
660
+ </HStack>
661
+ </VStack>
662
+ </div>
663
+ );
664
+ };
665
+
666
+ /**
667
+ * `multiple` collects several answers, and the trigger summarises them. Once past a couple of
668
+ * selections a summary beats a list, which is what `WithTags` is for.
669
+ */
670
+ export const Multiple: StoryFn<typeof Select> = () => {
671
+ const collection = createListCollection({
672
+ items: skillsWithoutIcons,
673
+ });
674
+
675
+ return (
676
+ <VStack>
677
+ <div className='w-400'>
678
+ <Select
679
+ collection={collection}
680
+ multiple
681
+ defaultValue={['react', 'vue', 'angular', 'nodejs', 'python', 'java', 'typescript']}
682
+ >
683
+ <SelectInput />
684
+
685
+ <SelectPositioner>
686
+ <SelectContent>
687
+ {collection.items.map(skill => (
688
+ <SelectOption key={skill.value} item={skill}>
689
+ <SelectOptionText>{skill.label}</SelectOptionText>
690
+ <SelectOptionIndicator />
691
+ </SelectOption>
692
+ ))}
693
+ </SelectContent>
694
+ </SelectPositioner>
695
+ </Select>
696
+ </div>
697
+
698
+ <div className='w-400'>
699
+ <Select
700
+ collection={collection}
701
+ multiple
702
+ invalid
703
+ defaultValue={['react', 'vue', 'angular', 'nodejs', 'python', 'java', 'typescript']}
704
+ >
705
+ <SelectInput />
706
+
707
+ <SelectPositioner>
708
+ <SelectContent>
709
+ {collection.items.map(skill => (
710
+ <SelectOption key={skill.value} item={skill}>
711
+ <SelectOptionText>{skill.label}</SelectOptionText>
712
+ <SelectOptionIndicator />
713
+ </SelectOption>
714
+ ))}
715
+ </SelectContent>
716
+ </SelectPositioner>
717
+ </Select>
718
+ </div>
719
+
720
+ <div className='w-400'>
721
+ <Select
722
+ collection={collection}
723
+ multiple
724
+ disabled
725
+ defaultValue={['react', 'vue', 'angular', 'nodejs', 'python', 'java', 'typescript']}
726
+ >
727
+ <SelectInput />
728
+
729
+ <SelectPositioner>
730
+ <SelectContent>
731
+ {collection.items.map(skill => (
732
+ <SelectOption key={skill.value} item={skill}>
733
+ <SelectOptionText>{skill.label}</SelectOptionText>
734
+ <SelectOptionIndicator />
735
+ </SelectOption>
736
+ ))}
737
+ </SelectContent>
738
+ </SelectPositioner>
739
+ </Select>
740
+ </div>
741
+ </VStack>
742
+ );
743
+ };
744
+
745
+ /**
746
+ * Icons carry the option's identity into the closed trigger, which matters more in a
747
+ * multi-select where the text is compressed into a summary.
748
+ */
749
+ export const MultipleWithIcons: StoryFn<typeof Select> = () => {
750
+ const collection = createListCollection({
751
+ items: skills,
752
+ });
753
+
754
+ return (
755
+ <VStack>
756
+ <div className='w-400'>
757
+ <Select
758
+ collection={collection}
759
+ multiple
760
+ defaultValue={['react', 'vue', 'angular', 'nodejs', 'python', 'java', 'typescript']}
761
+ >
762
+ <SelectInput />
763
+
764
+ <SelectPositioner>
765
+ <SelectContent>
766
+ {collection.items.map(skill => {
767
+ const { icon: Icon } = skill;
768
+
769
+ return (
770
+ <SelectOption key={skill.value} item={skill}>
771
+ {Icon && <Icon />}
772
+ <SelectOptionText>{skill.label}</SelectOptionText>
773
+ <SelectOptionIndicator />
774
+ </SelectOption>
775
+ );
776
+ })}
777
+ </SelectContent>
778
+ </SelectPositioner>
779
+ </Select>
780
+ </div>
781
+
782
+ <div className='w-400'>
783
+ <Select
784
+ collection={collection}
785
+ multiple
786
+ invalid
787
+ defaultValue={['react', 'vue', 'angular', 'nodejs', 'python', 'java', 'typescript']}
788
+ >
789
+ <SelectInput />
790
+
791
+ <SelectPositioner>
792
+ <SelectContent>
793
+ {collection.items.map(skill => {
794
+ const { icon: Icon } = skill;
795
+
796
+ return (
797
+ <SelectOption key={skill.value} item={skill}>
798
+ {Icon && <Icon />}
799
+ <SelectOptionText>{skill.label}</SelectOptionText>
800
+ <SelectOptionIndicator />
801
+ </SelectOption>
802
+ );
803
+ })}
804
+ </SelectContent>
805
+ </SelectPositioner>
806
+ </Select>
807
+ </div>
808
+
809
+ <div className='w-400'>
810
+ <Select
811
+ collection={collection}
812
+ multiple
813
+ disabled
814
+ defaultValue={['react', 'vue', 'angular', 'nodejs', 'python', 'java', 'typescript']}
815
+ >
816
+ <SelectInput />
817
+
818
+ <SelectPositioner>
819
+ <SelectContent>
820
+ {collection.items.map(skill => {
821
+ const { icon: Icon } = skill;
822
+
823
+ return (
824
+ <SelectOption key={skill.value} item={skill}>
825
+ {Icon && <Icon />}
826
+ <SelectOptionText>{skill.label}</SelectOptionText>
827
+ <SelectOptionIndicator />
828
+ </SelectOption>
829
+ );
830
+ })}
831
+ </SelectContent>
832
+ </SelectPositioner>
833
+ </Select>
834
+ </div>
835
+ </VStack>
836
+ );
837
+ };
838
+
839
+ /**
840
+ * `SelectGroup` with `SelectGroupLabel` splits a long list into named sections. Group when
841
+ * the reader would otherwise scan, not merely because the options have categories.
842
+ */
843
+ export const Grouped: StoryFn<typeof Select> = () => {
844
+ const collection = createListCollection({
845
+ items: skillsWithoutIcons,
846
+ groupBy: item => item.category ?? '',
847
+ });
848
+
849
+ return (
850
+ <Select collection={collection}>
851
+ <SelectButton />
852
+
853
+ <SelectPositioner>
854
+ <SelectContent>
855
+ {collection.group().map(([category, group], index) => (
856
+ <SelectGroup key={category}>
857
+ <SelectGroupLabel>
858
+ {category}
859
+ {index === 0 && <SelectClearTrigger>Clear all</SelectClearTrigger>}
860
+ </SelectGroupLabel>
861
+ {group.map(skill => (
862
+ <SelectOption key={skill.value} item={skill}>
863
+ <SelectOptionText>{skill.label}</SelectOptionText>
864
+ <SelectOptionIndicator />
865
+ </SelectOption>
866
+ ))}
867
+ </SelectGroup>
868
+ ))}
869
+ </SelectContent>
870
+ </SelectPositioner>
871
+ </Select>
872
+ );
873
+ };
874
+
875
+ /**
876
+ * The whole control is out, trigger included. Disabling individual options instead keeps the
877
+ * list honest about what exists.
878
+ */
879
+ export const Disabled: StoryFn<typeof Select> = () => {
880
+ const collection = createListCollection({
881
+ items: skills,
882
+ });
883
+
884
+ return (
885
+ <Select collection={collection} disabled>
886
+ <SelectButton />
887
+
888
+ <SelectPositioner>
889
+ <SelectContent>
890
+ {collection.items.map(skill => (
891
+ <SelectOption key={skill.value} item={skill}>
892
+ <SelectOptionText>{skill.label}</SelectOptionText>
893
+ <SelectOptionIndicator />
894
+ </SelectOption>
895
+ ))}
896
+ </SelectContent>
897
+ </SelectPositioner>
898
+ </Select>
899
+ );
900
+ };
901
+
902
+ /**
903
+ * `loading` on the root, for a list still being fetched. It holds the trigger's shape so the
904
+ * layout doesn't jump when the options land.
905
+ */
906
+ export const Loading: StoryFn<typeof Select> = () => {
907
+ const collection = createListCollection({
908
+ items: skills,
909
+ });
910
+
911
+ return (
912
+ <Select collection={collection} loading>
913
+ <SelectButton />
914
+
915
+ <SelectPositioner>
916
+ <SelectContent>
917
+ {collection.items.map(skill => (
918
+ <SelectOption key={skill.value} item={skill}>
919
+ <SelectOptionText>{skill.label}</SelectOptionText>
920
+ <SelectOptionIndicator />
921
+ </SelectOption>
922
+ ))}
923
+ </SelectContent>
924
+ </SelectPositioner>
925
+ </Select>
926
+ );
927
+ };
928
+
929
+ /**
930
+ * `SelectInput` makes the trigger look like a text field, which suits a select sitting in a
931
+ * form beside real inputs rather than in a toolbar.
932
+ */
933
+ export const WithSelectInput: StoryFn<typeof Select> = () => {
934
+ const collection = createListCollection({
935
+ items: skills,
936
+ });
937
+
938
+ return (
939
+ <div className='w-300'>
940
+ <VStack align='stretch'>
941
+ <Select collection={collection}>
942
+ <SelectInput />
943
+
944
+ <SelectPositioner>
945
+ <SelectContent>
946
+ {collection.items.map(skill => (
947
+ <SelectOption key={skill.value} item={skill}>
948
+ <SelectOptionText>{skill.label}</SelectOptionText>
949
+ <SelectOptionIndicator />
950
+ </SelectOption>
951
+ ))}
952
+ </SelectContent>
953
+ </SelectPositioner>
954
+ </Select>
955
+
956
+ <Select collection={collection} invalid>
957
+ <SelectInput />
958
+
959
+ <SelectPositioner>
960
+ <SelectContent>
961
+ {collection.items.map(skill => (
962
+ <SelectOption key={skill.value} item={skill}>
963
+ <SelectOptionText>{skill.label}</SelectOptionText>
964
+ <SelectOptionIndicator />
965
+ </SelectOption>
966
+ ))}
967
+ </SelectContent>
968
+ </SelectPositioner>
969
+ </Select>
970
+
971
+ <Select collection={collection} disabled>
972
+ <SelectInput />
973
+
974
+ <SelectPositioner>
975
+ <SelectContent>
976
+ {collection.items.map(skill => (
977
+ <SelectOption key={skill.value} item={skill}>
978
+ <SelectOptionText>{skill.label}</SelectOptionText>
979
+ <SelectOptionIndicator />
980
+ </SelectOption>
981
+ ))}
982
+ </SelectContent>
983
+ </SelectPositioner>
984
+ </Select>
985
+ </VStack>
986
+ </div>
987
+ );
988
+ };
989
+
990
+ /**
991
+ * `SelectSeparator` divides kinds of option — a destructive or clear-all entry from the real
992
+ * choices — where a group label would be overkill.
993
+ */
994
+ export const WithSeparator: StoryFn<typeof Select> = () => {
995
+ const collection = createListCollection({
996
+ items: skills,
997
+ });
998
+
999
+ return (
1000
+ <div className='w-300'>
1001
+ <Select collection={collection}>
1002
+ <SelectButton />
1003
+
1004
+ <SelectPositioner>
1005
+ <SelectContent>
1006
+ {collection.items.map((skill, index) => (
1007
+ <Fragment key={skill.value}>
1008
+ <SelectOption item={skill}>
1009
+ <SelectOptionText>{skill.label}</SelectOptionText>
1010
+ <SelectOptionIndicator />
1011
+ </SelectOption>
1012
+
1013
+ {index === 3 && <SelectSeparator />}
1014
+ </Fragment>
1015
+ ))}
1016
+ </SelectContent>
1017
+ </SelectPositioner>
1018
+ </Select>
1019
+ </div>
1020
+ );
1021
+ };
1022
+
1023
+ /**
1024
+ * `SelectValueIcon` in the option and the trigger, so the chosen option keeps its icon once
1025
+ * the menu closes.
1026
+ */
1027
+ export const WithIcons: StoryFn<typeof Select> = () => {
1028
+ const collection = createListCollection({
1029
+ items: skills,
1030
+ });
1031
+
1032
+ return (
1033
+ <div className='w-300'>
1034
+ <Select collection={collection}>
1035
+ <SelectButton />
1036
+
1037
+ <SelectPositioner>
1038
+ <SelectContent>
1039
+ {collection.items.map(({ icon: Icon, ...skill }) => (
1040
+ <SelectOption key={skill.value} item={skill}>
1041
+ {Icon && <Icon />}
1042
+ <SelectOptionText>{skill.label}</SelectOptionText>
1043
+ <SelectOptionIndicator />
1044
+ </SelectOption>
1045
+ ))}
1046
+ </SelectContent>
1047
+ </SelectPositioner>
1048
+ </Select>
1049
+ </div>
1050
+ );
1051
+ };
1052
+
1053
+ /**
1054
+ * `SelectFooter` pins content below the scrolling list, for a persistent escape like managing
1055
+ * the options themselves.
1056
+ */
1057
+ export const WithFooter: StoryFn<typeof Select> = () => {
1058
+ const collection = createListCollection({
1059
+ items: skillsWithoutIcons,
1060
+ groupBy: item => item.category ?? '',
1061
+ });
1062
+
1063
+ return (
1064
+ <div className='w-300'>
1065
+ <Select collection={collection}>
1066
+ <SelectButton />
1067
+
1068
+ <SelectPositioner>
1069
+ <SelectContent>
1070
+ {collection.group().map(([category, group], index) => (
1071
+ <SelectGroup key={category}>
1072
+ <SelectGroupLabel>
1073
+ {category}
1074
+ {index === 0 && <SelectClearTrigger>Clear all</SelectClearTrigger>}
1075
+ </SelectGroupLabel>
1076
+ {group.map(skill => (
1077
+ <SelectOption key={skill.value} item={skill}>
1078
+ <SelectOptionText>{skill.label}</SelectOptionText>
1079
+ {skill.description && (
1080
+ <SelectOptionDescription>{skill.description}</SelectOptionDescription>
1081
+ )}
1082
+ <SelectOptionIndicator />
1083
+ </SelectOption>
1084
+ ))}
1085
+ </SelectGroup>
1086
+ ))}
1087
+ </SelectContent>
1088
+
1089
+ <SelectFooter>
1090
+ <HStack justify='between'>
1091
+ <Button variant='ghost' color='neutral' size='small'>
1092
+ <SquareArrowOutUpRight />
1093
+ See all
1094
+ </Button>
1095
+
1096
+ <HStack justify='end'>
1097
+ <Button variant='ghost' color='neutral' size='small'>
1098
+ Cancel
1099
+ </Button>
1100
+
1101
+ <Button variant='primary' color='brand' size='small'>
1102
+ Apply
1103
+ </Button>
1104
+ </HStack>
1105
+ </HStack>
1106
+ </SelectFooter>
1107
+ </SelectPositioner>
1108
+ </Select>
1109
+ </div>
1110
+ );
1111
+ };
1112
+
1113
+ /**
1114
+ * `SelectSearchInput` with the `useSelectSearch` hook, plus `SelectEmptyState` for when
1115
+ * nothing matches. Add search once the list outgrows a glance — roughly ten options.
1116
+ */
1117
+ export const WithSearch: StoryFn<typeof Select> = () => {
1118
+ const collection = createListCollection({
1119
+ items: skillsWithoutIcons,
1120
+ groupBy: item => item.category ?? '',
1121
+ itemToString: item => item.label,
1122
+ });
1123
+
1124
+ const { searchValue, onSearchChange, filteredCollection } = useSelectSearch(collection);
1125
+
1126
+ return (
1127
+ <div className='w-300'>
1128
+ <Select collection={collection}>
1129
+ <SelectButton />
1130
+
1131
+ <SelectPositioner>
1132
+ <SelectHeader>
1133
+ <SelectSearchInput value={searchValue} onChange={onSearchChange} />
1134
+ </SelectHeader>
1135
+
1136
+ <SelectContent>
1137
+ {filteredCollection.size === 0 ? (
1138
+ <SelectEmptyState description={`No results for "${searchValue}"`} />
1139
+ ) : (
1140
+ filteredCollection.group().map(([category, group], index) => (
1141
+ <SelectGroup key={category}>
1142
+ <SelectGroupLabel>
1143
+ {category}
1144
+ {index === 0 && <SelectClearTrigger>Clear all</SelectClearTrigger>}
1145
+ </SelectGroupLabel>
1146
+ {group.map(skill => (
1147
+ <SelectOption key={skill.value} item={skill}>
1148
+ <SelectOptionText>{skill.label}</SelectOptionText>
1149
+ {skill.description && (
1150
+ <SelectOptionDescription>{skill.description}</SelectOptionDescription>
1151
+ )}
1152
+ <SelectOptionIndicator />
1153
+ </SelectOption>
1154
+ ))}
1155
+ </SelectGroup>
1156
+ ))
1157
+ )}
1158
+ </SelectContent>
1159
+
1160
+ <SelectFooter>
1161
+ <HStack justify='between'>
1162
+ <Button variant='ghost' color='neutral' size='small'>
1163
+ <SquareArrowOutUpRight />
1164
+ See all
1165
+ </Button>
1166
+
1167
+ <HStack justify='end'>
1168
+ <Button variant='ghost' color='neutral' size='small'>
1169
+ Cancel
1170
+ </Button>
1171
+
1172
+ <Button variant='primary' color='brand' size='small'>
1173
+ Apply
1174
+ </Button>
1175
+ </HStack>
1176
+ </HStack>
1177
+ </SelectFooter>
1178
+ </SelectPositioner>
1179
+ </Select>
1180
+ </div>
1181
+ );
1182
+ };
1183
+
1184
+ /**
1185
+ * Inside `Field`, so the label and description come from `FieldLabel` and `FieldDescription`
1186
+ * rather than from the select.
1187
+ */
1188
+ export const WithFormField: StoryFn<typeof Select> = () => {
1189
+ const collection = createListCollection({
1190
+ items: skillsWithoutIcons,
1191
+ });
1192
+
1193
+ return (
1194
+ <div className='w-300'>
1195
+ <FieldSet>
1196
+ <Field>
1197
+ <FieldLabel>Single with SelectInput</FieldLabel>
1198
+ <FieldContent>
1199
+ <Select collection={collection}>
1200
+ <SelectInput />
1201
+
1202
+ <SelectPositioner>
1203
+ <SelectContent>
1204
+ {collection.items.map(skill => (
1205
+ <SelectOption key={skill.value} item={skill}>
1206
+ <SelectOptionText>{skill.label}</SelectOptionText>
1207
+ <SelectOptionIndicator />
1208
+ </SelectOption>
1209
+ ))}
1210
+ </SelectContent>
1211
+ </SelectPositioner>
1212
+ </Select>
1213
+ </FieldContent>
1214
+ </Field>
1215
+
1216
+ <Field>
1217
+ <FieldLabel>Single with SelectButton</FieldLabel>
1218
+ <FieldContent>
1219
+ <Select collection={collection} defaultValue={['react']}>
1220
+ <SelectButton />
1221
+
1222
+ <SelectPositioner>
1223
+ <SelectContent>
1224
+ {collection.items.map(skill => (
1225
+ <SelectOption key={skill.value} item={skill}>
1226
+ <SelectOptionText>{skill.label}</SelectOptionText>
1227
+ <SelectOptionIndicator />
1228
+ </SelectOption>
1229
+ ))}
1230
+ </SelectContent>
1231
+ </SelectPositioner>
1232
+ </Select>
1233
+ </FieldContent>
1234
+ </Field>
1235
+
1236
+ <Field>
1237
+ <FieldLabel>Multiple with SelectInput</FieldLabel>
1238
+ <FieldContent>
1239
+ <Select collection={collection} multiple defaultValue={['react', 'vue']}>
1240
+ <SelectInput />
1241
+
1242
+ <SelectPositioner>
1243
+ <SelectContent>
1244
+ {collection.items.map(skill => (
1245
+ <SelectOption key={skill.value} item={skill}>
1246
+ <SelectOptionText>{skill.label}</SelectOptionText>
1247
+ <SelectOptionIndicator />
1248
+ </SelectOption>
1249
+ ))}
1250
+ </SelectContent>
1251
+ </SelectPositioner>
1252
+ </Select>
1253
+ </FieldContent>
1254
+ </Field>
1255
+
1256
+ <Field>
1257
+ <FieldLabel>Multiple with SelectButton</FieldLabel>
1258
+ <FieldContent>
1259
+ <Select collection={collection} multiple defaultValue={['react', 'vue', 'angular']}>
1260
+ <SelectButton />
1261
+
1262
+ <SelectPositioner>
1263
+ <SelectContent>
1264
+ {collection.items.map(skill => (
1265
+ <SelectOption key={skill.value} item={skill}>
1266
+ <SelectOptionText>{skill.label}</SelectOptionText>
1267
+ <SelectOptionIndicator />
1268
+ </SelectOption>
1269
+ ))}
1270
+ </SelectContent>
1271
+ </SelectPositioner>
1272
+ </Select>
1273
+ </FieldContent>
1274
+ </Field>
1275
+ </FieldSet>
1276
+ </div>
1277
+ );
1278
+ };
1279
+
1280
+ /**
1281
+ * Selections render as removable tags inside the field, which is the honest shape for
1282
+ * multi-select when the reader needs to see and undo each choice individually.
1283
+ */
1284
+ export const WithTags: StoryFn<typeof Select> = () => {
1285
+ const collection = createListCollection({
1286
+ items: skillsWithoutIcons,
1287
+ });
1288
+
1289
+ return (
1290
+ <div className='w-300'>
1291
+ <Select
1292
+ collection={collection}
1293
+ multiple
1294
+ defaultValue={['react', 'vue', 'angular', 'nodejs', 'python', 'java', 'typescript']}
1295
+ >
1296
+ <SelectInput />
1297
+
1298
+ <SelectPositioner>
1299
+ <SelectContent>
1300
+ {collection.items.map(skill => (
1301
+ <SelectOption key={skill.value} item={skill}>
1302
+ <Tag>{skill.label}</Tag>
1303
+ </SelectOption>
1304
+ ))}
1305
+ </SelectContent>
1306
+ </SelectPositioner>
1307
+ </Select>
1308
+ </div>
1309
+ );
1310
+ };
1311
+ ```