@wallarm-org/claude-design 0.0.0-stage → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (963) hide show
  1. package/README.md +114 -2
  2. package/bin/claude-design.js +347 -0
  3. package/dist/SETUP.md +130 -0
  4. package/dist/UPDATE.md +84 -0
  5. package/dist/assets/Icons/activity.svg +1 -0
  6. package/dist/assets/Icons/alt.svg +1 -0
  7. package/dist/assets/Icons/android-neutral.svg +1 -0
  8. package/dist/assets/Icons/android.svg +1 -0
  9. package/dist/assets/Icons/api.svg +1 -0
  10. package/dist/assets/Icons/apple-music-neutral.svg +1 -0
  11. package/dist/assets/Icons/apple-music.svg +1 -0
  12. package/dist/assets/Icons/apple-neutral.svg +1 -0
  13. package/dist/assets/Icons/apple-podcasts-neutral.svg +1 -0
  14. package/dist/assets/Icons/apple-podcasts.svg +1 -0
  15. package/dist/assets/Icons/apple.svg +1 -0
  16. package/dist/assets/Icons/archive.svg +1 -0
  17. package/dist/assets/Icons/arrow-big-up-dash.svg +1 -0
  18. package/dist/assets/Icons/arrow-big-up.svg +1 -0
  19. package/dist/assets/Icons/arrow-down-left.svg +1 -0
  20. package/dist/assets/Icons/arrow-down-right.svg +1 -0
  21. package/dist/assets/Icons/arrow-down.svg +1 -0
  22. package/dist/assets/Icons/arrow-left.svg +1 -0
  23. package/dist/assets/Icons/arrow-right-alt.svg +1 -0
  24. package/dist/assets/Icons/arrow-right.svg +1 -0
  25. package/dist/assets/Icons/arrow-up-down.svg +1 -0
  26. package/dist/assets/Icons/arrow-up-left.svg +1 -0
  27. package/dist/assets/Icons/arrow-up-right.svg +1 -0
  28. package/dist/assets/Icons/arrow-up.svg +1 -0
  29. package/dist/assets/Icons/artstation-neutral.svg +1 -0
  30. package/dist/assets/Icons/artstation.svg +1 -0
  31. package/dist/assets/Icons/asterisk.svg +1 -0
  32. package/dist/assets/Icons/audio-waveform.svg +1 -0
  33. package/dist/assets/Icons/aws-neutral.svg +1 -0
  34. package/dist/assets/Icons/aws.svg +1 -0
  35. package/dist/assets/Icons/badge-check.svg +1 -0
  36. package/dist/assets/Icons/baidu-neutral.svg +1 -0
  37. package/dist/assets/Icons/baidu.svg +1 -0
  38. package/dist/assets/Icons/bandage.svg +1 -0
  39. package/dist/assets/Icons/behance-neutral.svg +1 -0
  40. package/dist/assets/Icons/behance.svg +1 -0
  41. package/dist/assets/Icons/bell-cog.svg +1 -0
  42. package/dist/assets/Icons/bell.svg +1 -0
  43. package/dist/assets/Icons/binary.svg +1 -0
  44. package/dist/assets/Icons/book-open.svg +1 -0
  45. package/dist/assets/Icons/book.svg +1 -0
  46. package/dist/assets/Icons/boosty-neutral.svg +1 -0
  47. package/dist/assets/Icons/boosty.svg +1 -0
  48. package/dist/assets/Icons/bot.svg +1 -0
  49. package/dist/assets/Icons/brain.svg +1 -0
  50. package/dist/assets/Icons/braze-neutral.svg +1 -0
  51. package/dist/assets/Icons/braze.svg +1 -0
  52. package/dist/assets/Icons/brevo-neutral.svg +1 -0
  53. package/dist/assets/Icons/brevo.svg +1 -0
  54. package/dist/assets/Icons/bug-off.svg +1 -0
  55. package/dist/assets/Icons/bug-play.svg +1 -0
  56. package/dist/assets/Icons/bug.svg +1 -0
  57. package/dist/assets/Icons/building.svg +1 -0
  58. package/dist/assets/Icons/building2.svg +1 -0
  59. package/dist/assets/Icons/calendar-check.svg +1 -0
  60. package/dist/assets/Icons/calendar-check2.svg +1 -0
  61. package/dist/assets/Icons/calendar-clock.svg +1 -0
  62. package/dist/assets/Icons/calendar-cog.svg +1 -0
  63. package/dist/assets/Icons/calendar-days.svg +1 -0
  64. package/dist/assets/Icons/calendar-fold.svg +1 -0
  65. package/dist/assets/Icons/calendar-heart.svg +1 -0
  66. package/dist/assets/Icons/calendar-minus.svg +1 -0
  67. package/dist/assets/Icons/calendar-minus2.svg +1 -0
  68. package/dist/assets/Icons/calendar-off.svg +1 -0
  69. package/dist/assets/Icons/calendar-plus.svg +1 -0
  70. package/dist/assets/Icons/calendar-plus2.svg +1 -0
  71. package/dist/assets/Icons/calendar-range.svg +1 -0
  72. package/dist/assets/Icons/calendar-search.svg +1 -0
  73. package/dist/assets/Icons/calendar-x.svg +1 -0
  74. package/dist/assets/Icons/calendar-x2.svg +1 -0
  75. package/dist/assets/Icons/calendar.svg +1 -0
  76. package/dist/assets/Icons/chart-area.svg +1 -0
  77. package/dist/assets/Icons/chart-bar.svg +1 -0
  78. package/dist/assets/Icons/chart-column.svg +1 -0
  79. package/dist/assets/Icons/chart-no-axes-column.svg +1 -0
  80. package/dist/assets/Icons/check-check.svg +1 -0
  81. package/dist/assets/Icons/check.svg +1 -0
  82. package/dist/assets/Icons/checkbox-indeterminate.svg +1 -0
  83. package/dist/assets/Icons/chevron-down.svg +1 -0
  84. package/dist/assets/Icons/chevron-first.svg +1 -0
  85. package/dist/assets/Icons/chevron-last.svg +1 -0
  86. package/dist/assets/Icons/chevron-left.svg +1 -0
  87. package/dist/assets/Icons/chevron-right.svg +1 -0
  88. package/dist/assets/Icons/chevron-up-down.svg +1 -0
  89. package/dist/assets/Icons/chevron-up.svg +1 -0
  90. package/dist/assets/Icons/chevrons-down-up.svg +1 -0
  91. package/dist/assets/Icons/chevrons-down.svg +1 -0
  92. package/dist/assets/Icons/chevrons-left-right.svg +1 -0
  93. package/dist/assets/Icons/chevrons-left.svg +1 -0
  94. package/dist/assets/Icons/chevrons-right-left.svg +1 -0
  95. package/dist/assets/Icons/chevrons-right.svg +1 -0
  96. package/dist/assets/Icons/chevrons-up-down.svg +1 -0
  97. package/dist/assets/Icons/chevrons-up.svg +1 -0
  98. package/dist/assets/Icons/circle-arrow-down.svg +1 -0
  99. package/dist/assets/Icons/circle-arrow-left.svg +1 -0
  100. package/dist/assets/Icons/circle-arrow-out-down-left.svg +1 -0
  101. package/dist/assets/Icons/circle-arrow-out-down-right.svg +1 -0
  102. package/dist/assets/Icons/circle-arrow-out-up-left.svg +1 -0
  103. package/dist/assets/Icons/circle-arrow-out-up-right.svg +1 -0
  104. package/dist/assets/Icons/circle-arrow-right.svg +1 -0
  105. package/dist/assets/Icons/circle-arrow-up.svg +1 -0
  106. package/dist/assets/Icons/circle-check-big.svg +1 -0
  107. package/dist/assets/Icons/circle-check.svg +1 -0
  108. package/dist/assets/Icons/circle-chevron-down.svg +1 -0
  109. package/dist/assets/Icons/circle-chevron-left.svg +1 -0
  110. package/dist/assets/Icons/circle-chevron-right.svg +1 -0
  111. package/dist/assets/Icons/circle-chevron-up.svg +1 -0
  112. package/dist/assets/Icons/circle-dashed.svg +1 -0
  113. package/dist/assets/Icons/circle-dot-dashed.svg +1 -0
  114. package/dist/assets/Icons/circle-ellipsis.svg +1 -0
  115. package/dist/assets/Icons/circle-gauge.svg +1 -0
  116. package/dist/assets/Icons/circle-help.svg +1 -0
  117. package/dist/assets/Icons/circle-minus.svg +1 -0
  118. package/dist/assets/Icons/circle-plus.svg +1 -0
  119. package/dist/assets/Icons/circle-slash.svg +1 -0
  120. package/dist/assets/Icons/circle-slash2.svg +1 -0
  121. package/dist/assets/Icons/circle-stop.svg +1 -0
  122. package/dist/assets/Icons/circle.svg +1 -0
  123. package/dist/assets/Icons/clipboard-check.svg +1 -0
  124. package/dist/assets/Icons/clipboard-x.svg +1 -0
  125. package/dist/assets/Icons/clipboard.svg +1 -0
  126. package/dist/assets/Icons/clock-fading.svg +1 -0
  127. package/dist/assets/Icons/clock.svg +1 -0
  128. package/dist/assets/Icons/cloud-off.svg +1 -0
  129. package/dist/assets/Icons/cloud-sync.svg +1 -0
  130. package/dist/assets/Icons/cloud.svg +1 -0
  131. package/dist/assets/Icons/code.svg +1 -0
  132. package/dist/assets/Icons/collapse.svg +1 -0
  133. package/dist/assets/Icons/columns3-cog.svg +1 -0
  134. package/dist/assets/Icons/command.svg +1 -0
  135. package/dist/assets/Icons/compass.svg +1 -0
  136. package/dist/assets/Icons/copy-slash.svg +1 -0
  137. package/dist/assets/Icons/copy.svg +1 -0
  138. package/dist/assets/Icons/corner-down-left.svg +1 -0
  139. package/dist/assets/Icons/corner-down-right.svg +1 -0
  140. package/dist/assets/Icons/corner-left-down.svg +1 -0
  141. package/dist/assets/Icons/corner-left-up.svg +1 -0
  142. package/dist/assets/Icons/corner-right-down.svg +1 -0
  143. package/dist/assets/Icons/corner-right-up.svg +1 -0
  144. package/dist/assets/Icons/corner-up-left.svg +1 -0
  145. package/dist/assets/Icons/corner-up-right.svg +1 -0
  146. package/dist/assets/Icons/cpu.svg +1 -0
  147. package/dist/assets/Icons/credit-card.svg +1 -0
  148. package/dist/assets/Icons/crosshair.svg +1 -0
  149. package/dist/assets/Icons/ctrl.svg +1 -0
  150. package/dist/assets/Icons/database.svg +1 -0
  151. package/dist/assets/Icons/devianart-neutral.svg +1 -0
  152. package/dist/assets/Icons/devianart.svg +1 -0
  153. package/dist/assets/Icons/discord-neutral.svg +1 -0
  154. package/dist/assets/Icons/discord.svg +1 -0
  155. package/dist/assets/Icons/dollar-sign.svg +1 -0
  156. package/dist/assets/Icons/dot.svg +1 -0
  157. package/dist/assets/Icons/download.svg +1 -0
  158. package/dist/assets/Icons/dprofile-neutral.svg +1 -0
  159. package/dist/assets/Icons/dprofile.svg +1 -0
  160. package/dist/assets/Icons/dribbble-neutral.svg +1 -0
  161. package/dist/assets/Icons/dribbble.svg +1 -0
  162. package/dist/assets/Icons/droplet.svg +1 -0
  163. package/dist/assets/Icons/duplicate.svg +1 -0
  164. package/dist/assets/Icons/dzen-neutral.svg +1 -0
  165. package/dist/assets/Icons/dzen.svg +1 -0
  166. package/dist/assets/Icons/earth-lock.svg +1 -0
  167. package/dist/assets/Icons/earth.svg +1 -0
  168. package/dist/assets/Icons/ellipsis.svg +1 -0
  169. package/dist/assets/Icons/expand.svg +1 -0
  170. package/dist/assets/Icons/external-link.svg +1 -0
  171. package/dist/assets/Icons/eye-off.svg +1 -0
  172. package/dist/assets/Icons/eye.svg +1 -0
  173. package/dist/assets/Icons/facebook-neutral.svg +1 -0
  174. package/dist/assets/Icons/facebook.svg +1 -0
  175. package/dist/assets/Icons/fast-forward.svg +1 -0
  176. package/dist/assets/Icons/figma-neutral.svg +1 -0
  177. package/dist/assets/Icons/figma.svg +1 -0
  178. package/dist/assets/Icons/file-down.svg +1 -0
  179. package/dist/assets/Icons/file-plus.svg +1 -0
  180. package/dist/assets/Icons/file-text.svg +1 -0
  181. package/dist/assets/Icons/file.svg +1 -0
  182. package/dist/assets/Icons/film.svg +1 -0
  183. package/dist/assets/Icons/filter-x.svg +1 -0
  184. package/dist/assets/Icons/filter.svg +1 -0
  185. package/dist/assets/Icons/fingerprint-pattern.svg +1 -0
  186. package/dist/assets/Icons/flag.svg +1 -0
  187. package/dist/assets/Icons/flask-conical.svg +1 -0
  188. package/dist/assets/Icons/folder.svg +1 -0
  189. package/dist/assets/Icons/funnel-plus.svg +1 -0
  190. package/dist/assets/Icons/ghost.svg +1 -0
  191. package/dist/assets/Icons/git-branch.svg +1 -0
  192. package/dist/assets/Icons/git-commit-horizontal.svg +1 -0
  193. package/dist/assets/Icons/git-commit-vertical.svg +1 -0
  194. package/dist/assets/Icons/git-compare-arrows-alt.svg +1 -0
  195. package/dist/assets/Icons/git-compare-arrows.svg +1 -0
  196. package/dist/assets/Icons/git-compare.svg +1 -0
  197. package/dist/assets/Icons/git-fork.svg +1 -0
  198. package/dist/assets/Icons/git-graph.svg +1 -0
  199. package/dist/assets/Icons/git-merge.svg +1 -0
  200. package/dist/assets/Icons/git-pull-request-arrow.svg +1 -0
  201. package/dist/assets/Icons/git-pull-request-closed.svg +1 -0
  202. package/dist/assets/Icons/git-pull-request-create-arrow.svg +1 -0
  203. package/dist/assets/Icons/git-pull-request-create.svg +1 -0
  204. package/dist/assets/Icons/git-pull-request-draft.svg +1 -0
  205. package/dist/assets/Icons/git-pull-request.svg +1 -0
  206. package/dist/assets/Icons/github-neutral.svg +1 -0
  207. package/dist/assets/Icons/github.svg +1 -0
  208. package/dist/assets/Icons/globe-lock.svg +1 -0
  209. package/dist/assets/Icons/globe.svg +1 -0
  210. package/dist/assets/Icons/gmail-neutral.svg +1 -0
  211. package/dist/assets/Icons/gmail.svg +1 -0
  212. package/dist/assets/Icons/google-meet-neutral.svg +1 -0
  213. package/dist/assets/Icons/google-meet.svg +1 -0
  214. package/dist/assets/Icons/google-neutral.svg +1 -0
  215. package/dist/assets/Icons/google-play-neutral.svg +1 -0
  216. package/dist/assets/Icons/google-play.svg +1 -0
  217. package/dist/assets/Icons/google-podcast-neutral.svg +1 -0
  218. package/dist/assets/Icons/google-podcast.svg +1 -0
  219. package/dist/assets/Icons/google.svg +1 -0
  220. package/dist/assets/Icons/grip-horizontal.svg +1 -0
  221. package/dist/assets/Icons/grip-vertical.svg +1 -0
  222. package/dist/assets/Icons/hammer.svg +1 -0
  223. package/dist/assets/Icons/heart-pulse.svg +1 -0
  224. package/dist/assets/Icons/history.svg +1 -0
  225. package/dist/assets/Icons/home.svg +1 -0
  226. package/dist/assets/Icons/imo-neutral.svg +1 -0
  227. package/dist/assets/Icons/imo.svg +1 -0
  228. package/dist/assets/Icons/infinity.svg +1 -0
  229. package/dist/assets/Icons/info.svg +1 -0
  230. package/dist/assets/Icons/infobip-neutral.svg +1 -0
  231. package/dist/assets/Icons/infobip.svg +1 -0
  232. package/dist/assets/Icons/instagram-neutral.svg +1 -0
  233. package/dist/assets/Icons/instagram.svg +1 -0
  234. package/dist/assets/Icons/key-round.svg +1 -0
  235. package/dist/assets/Icons/key-square.svg +1 -0
  236. package/dist/assets/Icons/keyboard.svg +1 -0
  237. package/dist/assets/Icons/kickstarter-neutral.svg +1 -0
  238. package/dist/assets/Icons/kickstarter.svg +1 -0
  239. package/dist/assets/Icons/laptop.svg +1 -0
  240. package/dist/assets/Icons/layers.svg +1 -0
  241. package/dist/assets/Icons/layers2.svg +1 -0
  242. package/dist/assets/Icons/layers3.svg +1 -0
  243. package/dist/assets/Icons/layout-dashboard.svg +1 -0
  244. package/dist/assets/Icons/layout-grid.svg +1 -0
  245. package/dist/assets/Icons/layout-list.svg +1 -0
  246. package/dist/assets/Icons/layout-panel-left.svg +1 -0
  247. package/dist/assets/Icons/layout-panel-top.svg +1 -0
  248. package/dist/assets/Icons/layout-template.svg +1 -0
  249. package/dist/assets/Icons/library-big.svg +1 -0
  250. package/dist/assets/Icons/life-buoy.svg +1 -0
  251. package/dist/assets/Icons/lightbulb-off.svg +1 -0
  252. package/dist/assets/Icons/lightbulb.svg +1 -0
  253. package/dist/assets/Icons/line-neutral.svg +1 -0
  254. package/dist/assets/Icons/line.svg +1 -0
  255. package/dist/assets/Icons/link.svg +1 -0
  256. package/dist/assets/Icons/link2-off.svg +1 -0
  257. package/dist/assets/Icons/link2.svg +1 -0
  258. package/dist/assets/Icons/linkedin-neutral.svg +1 -0
  259. package/dist/assets/Icons/linkedin.svg +1 -0
  260. package/dist/assets/Icons/list-checks.svg +1 -0
  261. package/dist/assets/Icons/list-collapse.svg +1 -0
  262. package/dist/assets/Icons/list-filter.svg +1 -0
  263. package/dist/assets/Icons/list-minus.svg +1 -0
  264. package/dist/assets/Icons/list-ordered.svg +1 -0
  265. package/dist/assets/Icons/list-plus.svg +1 -0
  266. package/dist/assets/Icons/list-restart.svg +1 -0
  267. package/dist/assets/Icons/list-start.svg +1 -0
  268. package/dist/assets/Icons/list-todo.svg +1 -0
  269. package/dist/assets/Icons/list-tree.svg +1 -0
  270. package/dist/assets/Icons/list-video.svg +1 -0
  271. package/dist/assets/Icons/list-x.svg +1 -0
  272. package/dist/assets/Icons/list.svg +1 -0
  273. package/dist/assets/Icons/loader-circle.svg +1 -0
  274. package/dist/assets/Icons/loader.svg +1 -0
  275. package/dist/assets/Icons/lock-open.svg +1 -0
  276. package/dist/assets/Icons/lock.svg +1 -0
  277. package/dist/assets/Icons/log-in.svg +1 -0
  278. package/dist/assets/Icons/log-out.svg +1 -0
  279. package/dist/assets/Icons/mail-check.svg +1 -0
  280. package/dist/assets/Icons/mail-minus.svg +1 -0
  281. package/dist/assets/Icons/mail-open.svg +1 -0
  282. package/dist/assets/Icons/mail-plus.svg +1 -0
  283. package/dist/assets/Icons/mail-question.svg +1 -0
  284. package/dist/assets/Icons/mail-search.svg +1 -0
  285. package/dist/assets/Icons/mail-warning.svg +1 -0
  286. package/dist/assets/Icons/mail-x.svg +1 -0
  287. package/dist/assets/Icons/mail.svg +1 -0
  288. package/dist/assets/Icons/mailbox.svg +1 -0
  289. package/dist/assets/Icons/mailersend-neutral.svg +1 -0
  290. package/dist/assets/Icons/mailersend.svg +1 -0
  291. package/dist/assets/Icons/mailgun-neutral.svg +1 -0
  292. package/dist/assets/Icons/mailgun.svg +1 -0
  293. package/dist/assets/Icons/mailjet-neutral.svg +1 -0
  294. package/dist/assets/Icons/mailjet.svg +1 -0
  295. package/dist/assets/Icons/mails.svg +1 -0
  296. package/dist/assets/Icons/mailtrap-neutral.svg +1 -0
  297. package/dist/assets/Icons/mailtrap.svg +1 -0
  298. package/dist/assets/Icons/mandrill-neutral.svg +1 -0
  299. package/dist/assets/Icons/mandrill.svg +1 -0
  300. package/dist/assets/Icons/map-pin.svg +1 -0
  301. package/dist/assets/Icons/maqsam-neutral.svg +1 -0
  302. package/dist/assets/Icons/maqsam.svg +1 -0
  303. package/dist/assets/Icons/mattermost-neutral.svg +1 -0
  304. package/dist/assets/Icons/mattermost.svg +1 -0
  305. package/dist/assets/Icons/maximize.svg +1 -0
  306. package/dist/assets/Icons/maximize2.svg +1 -0
  307. package/dist/assets/Icons/medium-neutral.svg +1 -0
  308. package/dist/assets/Icons/medium.svg +1 -0
  309. package/dist/assets/Icons/megaphone-off.svg +1 -0
  310. package/dist/assets/Icons/megaphone.svg +1 -0
  311. package/dist/assets/Icons/menu.svg +1 -0
  312. package/dist/assets/Icons/merge.svg +1 -0
  313. package/dist/assets/Icons/message-square-code.svg +1 -0
  314. package/dist/assets/Icons/message-square-dashed.svg +1 -0
  315. package/dist/assets/Icons/message-square-diff.svg +1 -0
  316. package/dist/assets/Icons/message-square-dot.svg +1 -0
  317. package/dist/assets/Icons/message-square-heart.svg +1 -0
  318. package/dist/assets/Icons/message-square-off.svg +1 -0
  319. package/dist/assets/Icons/message-square-plus.svg +1 -0
  320. package/dist/assets/Icons/message-square-quote.svg +1 -0
  321. package/dist/assets/Icons/message-square-reply.svg +1 -0
  322. package/dist/assets/Icons/message-square-share.svg +1 -0
  323. package/dist/assets/Icons/message-square-text.svg +1 -0
  324. package/dist/assets/Icons/message-square-warning.svg +1 -0
  325. package/dist/assets/Icons/message-square-x.svg +1 -0
  326. package/dist/assets/Icons/message-square.svg +1 -0
  327. package/dist/assets/Icons/messages-square.svg +1 -0
  328. package/dist/assets/Icons/messenger-neutral.svg +1 -0
  329. package/dist/assets/Icons/messenger.svg +1 -0
  330. package/dist/assets/Icons/microsoft-neutral.svg +1 -0
  331. package/dist/assets/Icons/microsoft-teams-neutral.svg +1 -0
  332. package/dist/assets/Icons/microsoft-teams.svg +1 -0
  333. package/dist/assets/Icons/microsoft.svg +1 -0
  334. package/dist/assets/Icons/minimize.svg +1 -0
  335. package/dist/assets/Icons/minimize2.svg +1 -0
  336. package/dist/assets/Icons/minus.svg +1 -0
  337. package/dist/assets/Icons/moon.svg +1 -0
  338. package/dist/assets/Icons/mouse-pointer-ban.svg +1 -0
  339. package/dist/assets/Icons/mouse-pointer-click.svg +1 -0
  340. package/dist/assets/Icons/mouse-pointer.svg +1 -0
  341. package/dist/assets/Icons/mouse-pointer2.svg +1 -0
  342. package/dist/assets/Icons/mouse.svg +1 -0
  343. package/dist/assets/Icons/move-diagonal.svg +1 -0
  344. package/dist/assets/Icons/move-diagonal2.svg +1 -0
  345. package/dist/assets/Icons/move-down-left.svg +1 -0
  346. package/dist/assets/Icons/move-down-right.svg +1 -0
  347. package/dist/assets/Icons/move-down.svg +1 -0
  348. package/dist/assets/Icons/move-horizontal.svg +1 -0
  349. package/dist/assets/Icons/move-left.svg +1 -0
  350. package/dist/assets/Icons/move-right.svg +1 -0
  351. package/dist/assets/Icons/move-up-left.svg +1 -0
  352. package/dist/assets/Icons/move-up-right.svg +1 -0
  353. package/dist/assets/Icons/move-up.svg +1 -0
  354. package/dist/assets/Icons/move-vertical.svg +1 -0
  355. package/dist/assets/Icons/move3-d.svg +1 -0
  356. package/dist/assets/Icons/netcore-neutral.svg +1 -0
  357. package/dist/assets/Icons/netcore.svg +1 -0
  358. package/dist/assets/Icons/notebook-pen.svg +1 -0
  359. package/dist/assets/Icons/notebook-tabs.svg +1 -0
  360. package/dist/assets/Icons/notebook-text.svg +1 -0
  361. package/dist/assets/Icons/notebook.svg +1 -0
  362. package/dist/assets/Icons/notepad-text-dashed.svg +1 -0
  363. package/dist/assets/Icons/notepad-text.svg +1 -0
  364. package/dist/assets/Icons/notion-neutral.svg +1 -0
  365. package/dist/assets/Icons/notion.svg +1 -0
  366. package/dist/assets/Icons/octagon-alert.svg +1 -0
  367. package/dist/assets/Icons/octagon-pause.svg +1 -0
  368. package/dist/assets/Icons/octagon-x.svg +1 -0
  369. package/dist/assets/Icons/octagon.svg +1 -0
  370. package/dist/assets/Icons/ok-neutral.svg +1 -0
  371. package/dist/assets/Icons/ok-only-sign-neutral.svg +1 -0
  372. package/dist/assets/Icons/ok-only-sign.svg +1 -0
  373. package/dist/assets/Icons/ok.svg +1 -0
  374. package/dist/assets/Icons/onlyfans-neutral.svg +1 -0
  375. package/dist/assets/Icons/onlyfans.svg +1 -0
  376. package/dist/assets/Icons/option.svg +1 -0
  377. package/dist/assets/Icons/outlook365-neutral.svg +1 -0
  378. package/dist/assets/Icons/outlook365.svg +1 -0
  379. package/dist/assets/Icons/paintbrush.svg +1 -0
  380. package/dist/assets/Icons/panel-bottom-open.svg +1 -0
  381. package/dist/assets/Icons/panel-bottom.svg +1 -0
  382. package/dist/assets/Icons/panel-left-close.svg +1 -0
  383. package/dist/assets/Icons/panel-left-dashed.svg +1 -0
  384. package/dist/assets/Icons/panel-left-open.svg +1 -0
  385. package/dist/assets/Icons/panel-left.svg +1 -0
  386. package/dist/assets/Icons/panel-right-animated.svg +1 -0
  387. package/dist/assets/Icons/panel-right-close.svg +1 -0
  388. package/dist/assets/Icons/panel-right-dashed.svg +1 -0
  389. package/dist/assets/Icons/panel-right-open.svg +1 -0
  390. package/dist/assets/Icons/panel-right.svg +1 -0
  391. package/dist/assets/Icons/panel-top-bottom-dashed.svg +1 -0
  392. package/dist/assets/Icons/panel-top-close.svg +1 -0
  393. package/dist/assets/Icons/panel-top-open.svg +1 -0
  394. package/dist/assets/Icons/panel-top.svg +1 -0
  395. package/dist/assets/Icons/panels-left-bottom.svg +1 -0
  396. package/dist/assets/Icons/panels-right-bottom.svg +1 -0
  397. package/dist/assets/Icons/panels-top-left.svg +1 -0
  398. package/dist/assets/Icons/paperclip.svg +1 -0
  399. package/dist/assets/Icons/patreon-neutral.svg +1 -0
  400. package/dist/assets/Icons/patreon.svg +1 -0
  401. package/dist/assets/Icons/paypal-neutral.svg +1 -0
  402. package/dist/assets/Icons/paypal.svg +1 -0
  403. package/dist/assets/Icons/pen-line.svg +1 -0
  404. package/dist/assets/Icons/pen-off.svg +1 -0
  405. package/dist/assets/Icons/pen-tool.svg +1 -0
  406. package/dist/assets/Icons/pen.svg +1 -0
  407. package/dist/assets/Icons/pencil-line.svg +1 -0
  408. package/dist/assets/Icons/pencil-off.svg +1 -0
  409. package/dist/assets/Icons/pencil-ruler.svg +1 -0
  410. package/dist/assets/Icons/pencil.svg +1 -0
  411. package/dist/assets/Icons/pentagon.svg +1 -0
  412. package/dist/assets/Icons/percentage.svg +1 -0
  413. package/dist/assets/Icons/phone.svg +1 -0
  414. package/dist/assets/Icons/pin-off.svg +1 -0
  415. package/dist/assets/Icons/pin.svg +1 -0
  416. package/dist/assets/Icons/pinterest-neutral.svg +1 -0
  417. package/dist/assets/Icons/pinterest.svg +1 -0
  418. package/dist/assets/Icons/play.svg +1 -0
  419. package/dist/assets/Icons/plug.svg +1 -0
  420. package/dist/assets/Icons/plunk-neutral.svg +1 -0
  421. package/dist/assets/Icons/plunk.svg +1 -0
  422. package/dist/assets/Icons/plus.svg +1 -0
  423. package/dist/assets/Icons/postmark-neutral.svg +1 -0
  424. package/dist/assets/Icons/postmark.svg +1 -0
  425. package/dist/assets/Icons/product-hunt-neutral.svg +1 -0
  426. package/dist/assets/Icons/product-hunt.svg +1 -0
  427. package/dist/assets/Icons/quora-neutral.svg +1 -0
  428. package/dist/assets/Icons/quora.svg +1 -0
  429. package/dist/assets/Icons/quote.svg +1 -0
  430. package/dist/assets/Icons/radar.svg +1 -0
  431. package/dist/assets/Icons/reddit-neutral.svg +1 -0
  432. package/dist/assets/Icons/reddit.svg +1 -0
  433. package/dist/assets/Icons/redo-dot.svg +1 -0
  434. package/dist/assets/Icons/redo.svg +1 -0
  435. package/dist/assets/Icons/redo2.svg +1 -0
  436. package/dist/assets/Icons/refresh-ccw.svg +1 -0
  437. package/dist/assets/Icons/refresh-cw-off.svg +1 -0
  438. package/dist/assets/Icons/resend-neutral.svg +1 -0
  439. package/dist/assets/Icons/resend.svg +1 -0
  440. package/dist/assets/Icons/rss.svg +1 -0
  441. package/dist/assets/Icons/rules.svg +1 -0
  442. package/dist/assets/Icons/scan-line.svg +1 -0
  443. package/dist/assets/Icons/scroll-text.svg +1 -0
  444. package/dist/assets/Icons/search-hint.svg +1 -0
  445. package/dist/assets/Icons/search-x.svg +1 -0
  446. package/dist/assets/Icons/search.svg +1 -0
  447. package/dist/assets/Icons/sendgrid-neutral.svg +1 -0
  448. package/dist/assets/Icons/sendgrid.svg +1 -0
  449. package/dist/assets/Icons/server.svg +1 -0
  450. package/dist/assets/Icons/ses-neutral.svg +1 -0
  451. package/dist/assets/Icons/ses.svg +1 -0
  452. package/dist/assets/Icons/settings.svg +1 -0
  453. package/dist/assets/Icons/settings2.svg +1 -0
  454. package/dist/assets/Icons/shapes.svg +1 -0
  455. package/dist/assets/Icons/share.svg +1 -0
  456. package/dist/assets/Icons/sheet.svg +1 -0
  457. package/dist/assets/Icons/shield-alert.svg +1 -0
  458. package/dist/assets/Icons/shield-ban.svg +1 -0
  459. package/dist/assets/Icons/shield-check.svg +1 -0
  460. package/dist/assets/Icons/shield-ellipsis.svg +1 -0
  461. package/dist/assets/Icons/shield-half.svg +1 -0
  462. package/dist/assets/Icons/shield-minus.svg +1 -0
  463. package/dist/assets/Icons/shield-off.svg +1 -0
  464. package/dist/assets/Icons/shield-plus.svg +1 -0
  465. package/dist/assets/Icons/shield-question.svg +1 -0
  466. package/dist/assets/Icons/shield-user.svg +1 -0
  467. package/dist/assets/Icons/shield-x.svg +1 -0
  468. package/dist/assets/Icons/shield.svg +1 -0
  469. package/dist/assets/Icons/shift.svg +1 -0
  470. package/dist/assets/Icons/signal-neutral.svg +1 -0
  471. package/dist/assets/Icons/signal.svg +1 -0
  472. package/dist/assets/Icons/signpost.svg +1 -0
  473. package/dist/assets/Icons/sina-weibo-neutral.svg +1 -0
  474. package/dist/assets/Icons/sina-weibo.svg +1 -0
  475. package/dist/assets/Icons/skull.svg +1 -0
  476. package/dist/assets/Icons/skype-neutral.svg +1 -0
  477. package/dist/assets/Icons/skype.svg +1 -0
  478. package/dist/assets/Icons/slack-neutral.svg +1 -0
  479. package/dist/assets/Icons/slack.svg +1 -0
  480. package/dist/assets/Icons/sliders-horizontal.svg +1 -0
  481. package/dist/assets/Icons/sliders-vertical.svg +1 -0
  482. package/dist/assets/Icons/smtp-neutral.svg +1 -0
  483. package/dist/assets/Icons/smtp.svg +1 -0
  484. package/dist/assets/Icons/snapchat-neutral.svg +1 -0
  485. package/dist/assets/Icons/snapchat.svg +1 -0
  486. package/dist/assets/Icons/soundcloud-neutral.svg +1 -0
  487. package/dist/assets/Icons/soundcloud.svg +1 -0
  488. package/dist/assets/Icons/space.svg +1 -0
  489. package/dist/assets/Icons/sparkpost-neutral.svg +1 -0
  490. package/dist/assets/Icons/sparkpost.svg +1 -0
  491. package/dist/assets/Icons/speed.svg +1 -0
  492. package/dist/assets/Icons/split.svg +1 -0
  493. package/dist/assets/Icons/spotify-neutral.svg +1 -0
  494. package/dist/assets/Icons/spotify.svg +1 -0
  495. package/dist/assets/Icons/square-arrow-out-up-right.svg +1 -0
  496. package/dist/assets/Icons/square-minus.svg +1 -0
  497. package/dist/assets/Icons/square-pen.svg +1 -0
  498. package/dist/assets/Icons/square-plus.svg +1 -0
  499. package/dist/assets/Icons/square-user-round.svg +1 -0
  500. package/dist/assets/Icons/stack-overflow-neutral.svg +1 -0
  501. package/dist/assets/Icons/stack-overflow.svg +1 -0
  502. package/dist/assets/Icons/star.svg +1 -0
  503. package/dist/assets/Icons/sun.svg +1 -0
  504. package/dist/assets/Icons/syringe.svg +1 -0
  505. package/dist/assets/Icons/tag.svg +1 -0
  506. package/dist/assets/Icons/target.svg +1 -0
  507. package/dist/assets/Icons/teams-neutral.svg +1 -0
  508. package/dist/assets/Icons/teams.svg +1 -0
  509. package/dist/assets/Icons/telegram-neutral.svg +1 -0
  510. package/dist/assets/Icons/telegram-only-sign-neutral.svg +1 -0
  511. package/dist/assets/Icons/telegram-only-sign.svg +1 -0
  512. package/dist/assets/Icons/telegram.svg +1 -0
  513. package/dist/assets/Icons/terminal.svg +1 -0
  514. package/dist/assets/Icons/test-policies.svg +1 -0
  515. package/dist/assets/Icons/threads-neutral.svg +1 -0
  516. package/dist/assets/Icons/threads.svg +1 -0
  517. package/dist/assets/Icons/thumbs-down.svg +1 -0
  518. package/dist/assets/Icons/thumbs-up.svg +1 -0
  519. package/dist/assets/Icons/tiktok-neutral.svg +1 -0
  520. package/dist/assets/Icons/tiktok.svg +1 -0
  521. package/dist/assets/Icons/tinder-neutral.svg +1 -0
  522. package/dist/assets/Icons/tinder.svg +1 -0
  523. package/dist/assets/Icons/trash.svg +1 -0
  524. package/dist/assets/Icons/trash2.svg +1 -0
  525. package/dist/assets/Icons/triangle-alert.svg +1 -0
  526. package/dist/assets/Icons/tumblr-neutral.svg +1 -0
  527. package/dist/assets/Icons/tumblr.svg +1 -0
  528. package/dist/assets/Icons/twitch-neutral.svg +1 -0
  529. package/dist/assets/Icons/twitch.svg +1 -0
  530. package/dist/assets/Icons/undo-dot.svg +1 -0
  531. package/dist/assets/Icons/undo.svg +1 -0
  532. package/dist/assets/Icons/undo2.svg +1 -0
  533. package/dist/assets/Icons/unplug.svg +1 -0
  534. package/dist/assets/Icons/user-check.svg +1 -0
  535. package/dist/assets/Icons/user-minus.svg +1 -0
  536. package/dist/assets/Icons/user-plus.svg +1 -0
  537. package/dist/assets/Icons/user-round-x.svg +1 -0
  538. package/dist/assets/Icons/user-round.svg +1 -0
  539. package/dist/assets/Icons/user.svg +1 -0
  540. package/dist/assets/Icons/username.svg +1 -0
  541. package/dist/assets/Icons/users-round.svg +1 -0
  542. package/dist/assets/Icons/users.svg +1 -0
  543. package/dist/assets/Icons/viber-neutral.svg +1 -0
  544. package/dist/assets/Icons/viber.svg +1 -0
  545. package/dist/assets/Icons/video.svg +1 -0
  546. package/dist/assets/Icons/vimeo-neutral.svg +1 -0
  547. package/dist/assets/Icons/vimeo.svg +1 -0
  548. package/dist/assets/Icons/vk-music-neutral.svg +1 -0
  549. package/dist/assets/Icons/vk-music.svg +1 -0
  550. package/dist/assets/Icons/vk-neutral.svg +1 -0
  551. package/dist/assets/Icons/vk-only-sign-neutral.svg +1 -0
  552. package/dist/assets/Icons/vk-only-sign.svg +1 -0
  553. package/dist/assets/Icons/vk.svg +1 -0
  554. package/dist/assets/Icons/webhook-neutral.svg +1 -0
  555. package/dist/assets/Icons/webhook.svg +1 -0
  556. package/dist/assets/Icons/wechat-neutral.svg +1 -0
  557. package/dist/assets/Icons/wechat.svg +1 -0
  558. package/dist/assets/Icons/whatsapp-badge-neutral.svg +1 -0
  559. package/dist/assets/Icons/whatsapp-badge.svg +1 -0
  560. package/dist/assets/Icons/whatsapp-neutral.svg +1 -0
  561. package/dist/assets/Icons/whatsapp.svg +1 -0
  562. package/dist/assets/Icons/workflow.svg +1 -0
  563. package/dist/assets/Icons/wrap-text.svg +1 -0
  564. package/dist/assets/Icons/wrench.svg +1 -0
  565. package/dist/assets/Icons/x-ex-twitter-neutral.svg +1 -0
  566. package/dist/assets/Icons/x-ex-twitter.svg +1 -0
  567. package/dist/assets/Icons/x.svg +1 -0
  568. package/dist/assets/Icons/xing-neutral.svg +1 -0
  569. package/dist/assets/Icons/xing.svg +1 -0
  570. package/dist/assets/Icons/yandex-music-neutral.svg +1 -0
  571. package/dist/assets/Icons/yandex-music.svg +1 -0
  572. package/dist/assets/Icons/yelp-neutral.svg +1 -0
  573. package/dist/assets/Icons/yelp.svg +1 -0
  574. package/dist/assets/Icons/youtube-music-neutral.svg +1 -0
  575. package/dist/assets/Icons/youtube-music.svg +1 -0
  576. package/dist/assets/Icons/youtube-neutral.svg +1 -0
  577. package/dist/assets/Icons/youtube-shorts-neutral.svg +1 -0
  578. package/dist/assets/Icons/youtube-shorts.svg +1 -0
  579. package/dist/assets/Icons/youtube.svg +1 -0
  580. package/dist/assets/Icons/zap.svg +1 -0
  581. package/dist/assets/Icons/zoom-in.svg +1 -0
  582. package/dist/assets/Icons/zoom-neutral.svg +1 -0
  583. package/dist/assets/Icons/zoom-out.svg +1 -0
  584. package/dist/assets/Icons/zoom.svg +1 -0
  585. package/dist/assets/Icons/zulip-neutral.svg +1 -0
  586. package/dist/assets/Icons/zulip.svg +1 -0
  587. package/dist/assets/Logos/wallarm.svg +1 -0
  588. package/dist/assets.json +4666 -0
  589. package/dist/project/README.md +265 -0
  590. package/dist/project/components/Accordion/README.md +354 -0
  591. package/dist/project/components/Accordion/preview.html +2 -0
  592. package/dist/project/components/Accordion/stories.js +12 -0
  593. package/dist/project/components/AgentAvatar/README.md +127 -0
  594. package/dist/project/components/AgentAvatar/preview.html +2 -0
  595. package/dist/project/components/AgentAvatar/stories.js +12 -0
  596. package/dist/project/components/AgentAvatar/stories.md +1805 -0
  597. package/dist/project/components/AgentGlyph/README.md +1182 -0
  598. package/dist/project/components/AgentGlyph/preview.html +2 -0
  599. package/dist/project/components/AgentGlyph/stories.js +12 -0
  600. package/dist/project/components/AgentLookBuilder/README.md +269 -0
  601. package/dist/project/components/AgentLookBuilder/preview.html +2 -0
  602. package/dist/project/components/AgentLookBuilder/stories.js +12 -0
  603. package/dist/project/components/Alert/README.md +492 -0
  604. package/dist/project/components/Alert/preview.html +2 -0
  605. package/dist/project/components/Alert/stories.js +12 -0
  606. package/dist/project/components/AnimatedBackground/README.md +124 -0
  607. package/dist/project/components/AnimatedBackground/preview.html +2 -0
  608. package/dist/project/components/AnimatedBackground/stories.js +12 -0
  609. package/dist/project/components/AppShell/README.md +75 -0
  610. package/dist/project/components/AppShell/preview.html +2 -0
  611. package/dist/project/components/AppShell/stories.js +28 -0
  612. package/dist/project/components/AppShell/stories.md +2878 -0
  613. package/dist/project/components/ApprovalCard/README.md +353 -0
  614. package/dist/project/components/ApprovalCard/preview.html +2 -0
  615. package/dist/project/components/ApprovalCard/stories.js +12 -0
  616. package/dist/project/components/AreaChart/README.md +673 -0
  617. package/dist/project/components/AreaChart/preview.html +2 -0
  618. package/dist/project/components/AreaChart/stories.js +12 -0
  619. package/dist/project/components/AssistantMessage/README.md +724 -0
  620. package/dist/project/components/AssistantMessage/preview.html +2 -0
  621. package/dist/project/components/AssistantMessage/stories.js +55 -0
  622. package/dist/project/components/Attribute/README.md +1174 -0
  623. package/dist/project/components/Attribute/preview.html +2 -0
  624. package/dist/project/components/Attribute/stories.js +12 -0
  625. package/dist/project/components/Avatar/README.md +416 -0
  626. package/dist/project/components/Avatar/preview.html +2 -0
  627. package/dist/project/components/Avatar/stories.js +12 -0
  628. package/dist/project/components/Badge/README.md +853 -0
  629. package/dist/project/components/Badge/preview.html +2 -0
  630. package/dist/project/components/Badge/stories.js +12 -0
  631. package/dist/project/components/Banner/README.md +341 -0
  632. package/dist/project/components/Banner/preview.html +2 -0
  633. package/dist/project/components/Banner/stories.js +12 -0
  634. package/dist/project/components/BarList/README.md +757 -0
  635. package/dist/project/components/BarList/preview.html +2 -0
  636. package/dist/project/components/BarList/stories.js +12 -0
  637. package/dist/project/components/Breadcrumbs/README.md +274 -0
  638. package/dist/project/components/Breadcrumbs/preview.html +2 -0
  639. package/dist/project/components/Breadcrumbs/stories.js +12 -0
  640. package/dist/project/components/BulkBar/README.md +19 -0
  641. package/dist/project/components/Button/README.md +467 -0
  642. package/dist/project/components/Button/preview.html +2 -0
  643. package/dist/project/components/Button/stories.js +12 -0
  644. package/dist/project/components/Calendar/README.md +654 -0
  645. package/dist/project/components/Calendar/preview.html +2 -0
  646. package/dist/project/components/Calendar/stories.js +12 -0
  647. package/dist/project/components/Card/README.md +367 -0
  648. package/dist/project/components/Card/preview.html +2 -0
  649. package/dist/project/components/Card/stories.js +12 -0
  650. package/dist/project/components/ChainOfThought/README.md +412 -0
  651. package/dist/project/components/ChainOfThought/preview.html +2 -0
  652. package/dist/project/components/ChainOfThought/stories.js +12 -0
  653. package/dist/project/components/Chart/README.md +224 -0
  654. package/dist/project/components/Chart/preview.html +2 -0
  655. package/dist/project/components/Chart/stories.js +12 -0
  656. package/dist/project/components/Chat/README.md +1244 -0
  657. package/dist/project/components/Chat/preview.html +2 -0
  658. package/dist/project/components/Chat/stories.js +12 -0
  659. package/dist/project/components/ChatInput/README.md +378 -0
  660. package/dist/project/components/ChatInput/preview.html +2 -0
  661. package/dist/project/components/ChatInput/stories.js +12 -0
  662. package/dist/project/components/ChatPermissions/README.md +218 -0
  663. package/dist/project/components/ChatPermissions/preview.html +2 -0
  664. package/dist/project/components/ChatPermissions/stories.js +12 -0
  665. package/dist/project/components/Checkbox/README.md +367 -0
  666. package/dist/project/components/Checkbox/preview.html +2 -0
  667. package/dist/project/components/Checkbox/stories.js +12 -0
  668. package/dist/project/components/Code/README.md +243 -0
  669. package/dist/project/components/Code/preview.html +2 -0
  670. package/dist/project/components/Code/stories.js +12 -0
  671. package/dist/project/components/CodeEditor/README.md +280 -0
  672. package/dist/project/components/CodeEditor/preview.html +2 -0
  673. package/dist/project/components/CodeEditor/stories.js +162 -0
  674. package/dist/project/components/CodeEditor/stories.md +1533 -0
  675. package/dist/project/components/CodeSnippet/README.md +1352 -0
  676. package/dist/project/components/CodeSnippet/preview.html +2 -0
  677. package/dist/project/components/CodeSnippet/stories.js +156 -0
  678. package/dist/project/components/ColumnChart/README.md +521 -0
  679. package/dist/project/components/ColumnChart/preview.html +2 -0
  680. package/dist/project/components/ColumnChart/stories.js +12 -0
  681. package/dist/project/components/Conversation/README.md +314 -0
  682. package/dist/project/components/Conversation/preview.html +2 -0
  683. package/dist/project/components/Conversation/stories.js +12 -0
  684. package/dist/project/components/Copyable/README.md +406 -0
  685. package/dist/project/components/Copyable/preview.html +2 -0
  686. package/dist/project/components/Copyable/stories.js +12 -0
  687. package/dist/project/components/Country/README.md +226 -0
  688. package/dist/project/components/Country/preview.html +2 -0
  689. package/dist/project/components/Country/stories.js +12 -0
  690. package/dist/project/components/Cover/preview.html +43 -0
  691. package/dist/project/components/DateInput/README.md +458 -0
  692. package/dist/project/components/DateInput/preview.html +2 -0
  693. package/dist/project/components/DateInput/stories.js +12 -0
  694. package/dist/project/components/DateRangeInput/README.md +412 -0
  695. package/dist/project/components/DateRangeInput/preview.html +2 -0
  696. package/dist/project/components/DateRangeInput/stories.js +12 -0
  697. package/dist/project/components/Dialog/README.md +1140 -0
  698. package/dist/project/components/Dialog/preview.html +2 -0
  699. package/dist/project/components/Dialog/stories.js +12 -0
  700. package/dist/project/components/Drawer/README.md +1163 -0
  701. package/dist/project/components/Drawer/preview.html +2 -0
  702. package/dist/project/components/Drawer/stories.js +12 -0
  703. package/dist/project/components/DropdownMenu/README.md +678 -0
  704. package/dist/project/components/DropdownMenu/preview.html +2 -0
  705. package/dist/project/components/DropdownMenu/stories.js +12 -0
  706. package/dist/project/components/EmptyState/README.md +276 -0
  707. package/dist/project/components/EmptyState/preview.html +2 -0
  708. package/dist/project/components/EmptyState/stories.js +12 -0
  709. package/dist/project/components/FeedbackPulse/README.md +125 -0
  710. package/dist/project/components/FeedbackPulse/preview.html +2 -0
  711. package/dist/project/components/FeedbackPulse/stories.js +12 -0
  712. package/dist/project/components/Field/README.md +676 -0
  713. package/dist/project/components/Field/preview.html +2 -0
  714. package/dist/project/components/Field/stories.js +12 -0
  715. package/dist/project/components/FileUpload/README.md +544 -0
  716. package/dist/project/components/FileUpload/preview.html +2 -0
  717. package/dist/project/components/FileUpload/stories.js +12 -0
  718. package/dist/project/components/FilterCascade/README.md +348 -0
  719. package/dist/project/components/FilterCascade/preview.html +2 -0
  720. package/dist/project/components/FilterCascade/stories.js +12 -0
  721. package/dist/project/components/FilterDropdown/README.md +542 -0
  722. package/dist/project/components/FilterDropdown/preview.html +2 -0
  723. package/dist/project/components/FilterDropdown/stories.js +12 -0
  724. package/dist/project/components/FilterInput/README.md +416 -0
  725. package/dist/project/components/FilterInput/preview.html +2 -0
  726. package/dist/project/components/FilterInput/stories.js +12 -0
  727. package/dist/project/components/FilterInput/stories.md +6682 -0
  728. package/dist/project/components/Flex/README.md +225 -0
  729. package/dist/project/components/Flex/preview.html +2 -0
  730. package/dist/project/components/Flex/stories.js +12 -0
  731. package/dist/project/components/FormatDateTime/README.md +315 -0
  732. package/dist/project/components/FormatDateTime/preview.html +2 -0
  733. package/dist/project/components/FormatDateTime/stories.js +12 -0
  734. package/dist/project/components/FormatNumber/README.md +317 -0
  735. package/dist/project/components/FormatNumber/preview.html +2 -0
  736. package/dist/project/components/FormatNumber/stories.js +12 -0
  737. package/dist/project/components/Heading/README.md +240 -0
  738. package/dist/project/components/Heading/preview.html +2 -0
  739. package/dist/project/components/Heading/stories.js +12 -0
  740. package/dist/project/components/HorizontalBarStack/README.md +281 -0
  741. package/dist/project/components/HorizontalBarStack/preview.html +2 -0
  742. package/dist/project/components/HorizontalBarStack/stories.js +12 -0
  743. package/dist/project/components/HttpMethod/README.md +137 -0
  744. package/dist/project/components/HttpMethod/preview.html +2 -0
  745. package/dist/project/components/HttpMethod/stories.js +12 -0
  746. package/dist/project/components/ImageCropper/README.md +332 -0
  747. package/dist/project/components/ImageCropper/preview.html +2 -0
  748. package/dist/project/components/ImageCropper/stories.js +33 -0
  749. package/dist/project/components/Indicator/README.md +110 -0
  750. package/dist/project/components/Indicator/preview.html +2 -0
  751. package/dist/project/components/Indicator/stories.js +12 -0
  752. package/dist/project/components/InlineEdit/README.md +977 -0
  753. package/dist/project/components/InlineEdit/preview.html +2 -0
  754. package/dist/project/components/InlineEdit/stories.js +12 -0
  755. package/dist/project/components/Input/README.md +187 -0
  756. package/dist/project/components/Input/preview.html +2 -0
  757. package/dist/project/components/Input/stories.js +12 -0
  758. package/dist/project/components/InputGroup/README.md +423 -0
  759. package/dist/project/components/InputGroup/preview.html +2 -0
  760. package/dist/project/components/InputGroup/stories.js +12 -0
  761. package/dist/project/components/InputOTP/README.md +201 -0
  762. package/dist/project/components/InputOTP/preview.html +2 -0
  763. package/dist/project/components/InputOTP/stories.js +12 -0
  764. package/dist/project/components/Ip/README.md +226 -0
  765. package/dist/project/components/Ip/preview.html +2 -0
  766. package/dist/project/components/Ip/stories.js +12 -0
  767. package/dist/project/components/Kbd/README.md +126 -0
  768. package/dist/project/components/Kbd/preview.html +2 -0
  769. package/dist/project/components/Kbd/stories.js +12 -0
  770. package/dist/project/components/LineChart/README.md +1479 -0
  771. package/dist/project/components/LineChart/preview.html +2 -0
  772. package/dist/project/components/LineChart/stories.js +12 -0
  773. package/dist/project/components/Link/README.md +160 -0
  774. package/dist/project/components/Link/preview.html +2 -0
  775. package/dist/project/components/Link/stories.js +12 -0
  776. package/dist/project/components/List/README.md +181 -0
  777. package/dist/project/components/List/preview.html +2 -0
  778. package/dist/project/components/List/stories.js +12 -0
  779. package/dist/project/components/Loader/README.md +145 -0
  780. package/dist/project/components/Loader/preview.html +2 -0
  781. package/dist/project/components/Loader/stories.js +12 -0
  782. package/dist/project/components/Logo/README.md +183 -0
  783. package/dist/project/components/Logo/preview.html +2 -0
  784. package/dist/project/components/Logo/stories.js +12 -0
  785. package/dist/project/components/MessageActions/README.md +255 -0
  786. package/dist/project/components/MessageActions/preview.html +2 -0
  787. package/dist/project/components/MessageActions/stories.js +12 -0
  788. package/dist/project/components/Metric/README.md +324 -0
  789. package/dist/project/components/Metric/preview.html +2 -0
  790. package/dist/project/components/Metric/stories.js +12 -0
  791. package/dist/project/components/NavRail/README.md +25 -0
  792. package/dist/project/components/NotificationCenter/README.md +91 -0
  793. package/dist/project/components/NotificationCenter/preview.html +2 -0
  794. package/dist/project/components/NotificationCenter/stories.js +12 -0
  795. package/dist/project/components/NotificationCenter/stories.md +2170 -0
  796. package/dist/project/components/NumberInput/README.md +177 -0
  797. package/dist/project/components/NumberInput/preview.html +2 -0
  798. package/dist/project/components/NumberInput/stories.js +12 -0
  799. package/dist/project/components/NumericBadge/README.md +252 -0
  800. package/dist/project/components/NumericBadge/preview.html +2 -0
  801. package/dist/project/components/NumericBadge/stories.js +12 -0
  802. package/dist/project/components/OverflowList/README.md +324 -0
  803. package/dist/project/components/OverflowList/preview.html +2 -0
  804. package/dist/project/components/OverflowList/stories.js +12 -0
  805. package/dist/project/components/OverflowTooltip/README.md +421 -0
  806. package/dist/project/components/OverflowTooltip/preview.html +2 -0
  807. package/dist/project/components/OverflowTooltip/stories.js +12 -0
  808. package/dist/project/components/Overlay/README.md +95 -0
  809. package/dist/project/components/Overlay/preview.html +2 -0
  810. package/dist/project/components/Overlay/stories.js +12 -0
  811. package/dist/project/components/Overview/README.md +445 -0
  812. package/dist/project/components/Overview/preview.html +2 -0
  813. package/dist/project/components/Overview/stories.js +12 -0
  814. package/dist/project/components/Page/README.md +215 -0
  815. package/dist/project/components/Page/preview.html +2 -0
  816. package/dist/project/components/Page/stories.js +12 -0
  817. package/dist/project/components/Pagination/README.md +302 -0
  818. package/dist/project/components/Pagination/preview.html +2 -0
  819. package/dist/project/components/Pagination/stories.js +12 -0
  820. package/dist/project/components/ParameterPath/README.md +284 -0
  821. package/dist/project/components/ParameterPath/preview.html +2 -0
  822. package/dist/project/components/ParameterPath/stories.js +12 -0
  823. package/dist/project/components/PasswordComplexity/README.md +171 -0
  824. package/dist/project/components/PasswordComplexity/preview.html +2 -0
  825. package/dist/project/components/PasswordComplexity/stories.js +12 -0
  826. package/dist/project/components/PasswordInput/README.md +254 -0
  827. package/dist/project/components/PasswordInput/preview.html +2 -0
  828. package/dist/project/components/PasswordInput/stories.js +12 -0
  829. package/dist/project/components/PieChart/README.md +895 -0
  830. package/dist/project/components/PieChart/preview.html +2 -0
  831. package/dist/project/components/PieChart/stories.js +12 -0
  832. package/dist/project/components/Popover/README.md +282 -0
  833. package/dist/project/components/Popover/preview.html +2 -0
  834. package/dist/project/components/Popover/stories.js +12 -0
  835. package/dist/project/components/Progress/README.md +174 -0
  836. package/dist/project/components/Progress/preview.html +2 -0
  837. package/dist/project/components/Progress/stories.js +12 -0
  838. package/dist/project/components/Radio/README.md +264 -0
  839. package/dist/project/components/Radio/preview.html +2 -0
  840. package/dist/project/components/Radio/stories.js +12 -0
  841. package/dist/project/components/RemoteShell/README.md +1758 -0
  842. package/dist/project/components/RemoteShell/preview.html +2 -0
  843. package/dist/project/components/RemoteShell/stories.js +28 -0
  844. package/dist/project/components/Resizable/README.md +290 -0
  845. package/dist/project/components/Resizable/preview.html +2 -0
  846. package/dist/project/components/Resizable/stories.js +12 -0
  847. package/dist/project/components/ResponseCode/README.md +205 -0
  848. package/dist/project/components/ResponseCode/preview.html +2 -0
  849. package/dist/project/components/ResponseCode/stories.js +12 -0
  850. package/dist/project/components/ScrollArea/README.md +234 -0
  851. package/dist/project/components/ScrollArea/preview.html +2 -0
  852. package/dist/project/components/ScrollArea/stories.js +12 -0
  853. package/dist/project/components/SearchInput/README.md +158 -0
  854. package/dist/project/components/SearchInput/preview.html +2 -0
  855. package/dist/project/components/SearchInput/stories.js +12 -0
  856. package/dist/project/components/SearchModal/README.md +836 -0
  857. package/dist/project/components/SearchModal/preview.html +2 -0
  858. package/dist/project/components/SearchModal/stories.js +12 -0
  859. package/dist/project/components/SegmentedControl/README.md +382 -0
  860. package/dist/project/components/SegmentedControl/preview.html +2 -0
  861. package/dist/project/components/SegmentedControl/stories.js +12 -0
  862. package/dist/project/components/SegmentedTabs/README.md +390 -0
  863. package/dist/project/components/SegmentedTabs/preview.html +2 -0
  864. package/dist/project/components/SegmentedTabs/stories.js +12 -0
  865. package/dist/project/components/Select/README.md +1311 -0
  866. package/dist/project/components/Select/preview.html +2 -0
  867. package/dist/project/components/Select/stories.js +12 -0
  868. package/dist/project/components/Selection/README.md +648 -0
  869. package/dist/project/components/Selection/preview.html +2 -0
  870. package/dist/project/components/Selection/stories.js +12 -0
  871. package/dist/project/components/Separator/README.md +77 -0
  872. package/dist/project/components/Separator/preview.html +2 -0
  873. package/dist/project/components/Separator/stories.js +12 -0
  874. package/dist/project/components/Skeleton/README.md +358 -0
  875. package/dist/project/components/Skeleton/preview.html +2 -0
  876. package/dist/project/components/Skeleton/stories.js +12 -0
  877. package/dist/project/components/Slider/README.md +433 -0
  878. package/dist/project/components/Slider/preview.html +2 -0
  879. package/dist/project/components/Slider/stories.js +12 -0
  880. package/dist/project/components/SplashScreen/README.md +192 -0
  881. package/dist/project/components/SplashScreen/preview.html +2 -0
  882. package/dist/project/components/SplashScreen/stories.js +12 -0
  883. package/dist/project/components/SplitButton/README.md +402 -0
  884. package/dist/project/components/SplitButton/preview.html +2 -0
  885. package/dist/project/components/SplitButton/stories.js +12 -0
  886. package/dist/project/components/Stack/README.md +269 -0
  887. package/dist/project/components/Stack/preview.html +2 -0
  888. package/dist/project/components/Stack/stories.js +12 -0
  889. package/dist/project/components/Stepper/README.md +682 -0
  890. package/dist/project/components/Stepper/preview.html +2 -0
  891. package/dist/project/components/Stepper/stories.js +12 -0
  892. package/dist/project/components/Switch/README.md +236 -0
  893. package/dist/project/components/Switch/preview.html +2 -0
  894. package/dist/project/components/Switch/stories.js +12 -0
  895. package/dist/project/components/Table/README.md +471 -0
  896. package/dist/project/components/Table/preview.html +2 -0
  897. package/dist/project/components/Table/stories.js +12 -0
  898. package/dist/project/components/Table/stories.md +3697 -0
  899. package/dist/project/components/Tabs/README.md +443 -0
  900. package/dist/project/components/Tabs/preview.html +2 -0
  901. package/dist/project/components/Tabs/stories.js +12 -0
  902. package/dist/project/components/Tag/README.md +324 -0
  903. package/dist/project/components/Tag/preview.html +2 -0
  904. package/dist/project/components/Tag/stories.js +12 -0
  905. package/dist/project/components/Text/README.md +200 -0
  906. package/dist/project/components/Text/preview.html +2 -0
  907. package/dist/project/components/Text/stories.js +12 -0
  908. package/dist/project/components/Textarea/README.md +273 -0
  909. package/dist/project/components/Textarea/preview.html +2 -0
  910. package/dist/project/components/Textarea/stories.js +12 -0
  911. package/dist/project/components/TimeInput/README.md +359 -0
  912. package/dist/project/components/TimeInput/preview.html +2 -0
  913. package/dist/project/components/TimeInput/stories.js +12 -0
  914. package/dist/project/components/Timeline/README.md +204 -0
  915. package/dist/project/components/Timeline/preview.html +2 -0
  916. package/dist/project/components/Timeline/stories.js +12 -0
  917. package/dist/project/components/Toast/README.md +718 -0
  918. package/dist/project/components/Toast/preview.html +2 -0
  919. package/dist/project/components/Toast/stories.js +12 -0
  920. package/dist/project/components/ToggleButton/README.md +292 -0
  921. package/dist/project/components/ToggleButton/preview.html +2 -0
  922. package/dist/project/components/ToggleButton/stories.js +12 -0
  923. package/dist/project/components/Tooltip/README.md +199 -0
  924. package/dist/project/components/Tooltip/preview.html +2 -0
  925. package/dist/project/components/Tooltip/stories.js +12 -0
  926. package/dist/project/components/TopHeader/README.md +21 -0
  927. package/dist/project/components/Tour/README.md +532 -0
  928. package/dist/project/components/Tour/preview.html +2 -0
  929. package/dist/project/components/Tour/stories.js +12 -0
  930. package/dist/project/components/Tree/README.md +450 -0
  931. package/dist/project/components/Tree/preview.html +2 -0
  932. package/dist/project/components/Tree/stories.js +12 -0
  933. package/dist/project/components/TreeView/README.md +531 -0
  934. package/dist/project/components/TreeView/preview.html +2 -0
  935. package/dist/project/components/TreeView/stories.js +12 -0
  936. package/dist/project/components/UTILITIES.md +647 -0
  937. package/dist/project/components/UserMessage/README.md +166 -0
  938. package/dist/project/components/UserMessage/preview.html +2 -0
  939. package/dist/project/components/UserMessage/stories.js +12 -0
  940. package/dist/project/components/UtilityPage/README.md +147 -0
  941. package/dist/project/components/UtilityPage/preview.html +2 -0
  942. package/dist/project/components/UtilityPage/stories.js +12 -0
  943. package/dist/project/components/WallyAssistant/README.md +1380 -0
  944. package/dist/project/components/WallyAssistant/preview.html +2 -0
  945. package/dist/project/components/WallyAssistant/stories.js +12 -0
  946. package/dist/project/components/WallyIcon/README.md +130 -0
  947. package/dist/project/components/WallyIcon/preview.html +2 -0
  948. package/dist/project/components/WallyIcon/stories.js +12 -0
  949. package/dist/project/components/WallySkeleton/README.md +96 -0
  950. package/dist/project/components/WallySkeleton/preview.html +2 -0
  951. package/dist/project/components/WallySkeleton/stories.js +12 -0
  952. package/dist/project/components/bundle.css +18734 -0
  953. package/dist/project/components/bundle.js +167 -0
  954. package/dist/project/components/index.d.ts +27226 -0
  955. package/dist/project/design-system.json +35 -0
  956. package/dist/project/fonts/Geist-Variable.woff2 +0 -0
  957. package/dist/project/fonts/GeistMono-Variable.woff2 +0 -0
  958. package/dist/project/fonts/GeistPixel-Square.woff2 +0 -0
  959. package/dist/project/sampler.dc.html +238 -0
  960. package/dist/project/tokens.css +1395 -0
  961. package/dist/project/tokens.json +5235 -0
  962. package/dist/wallarm-sampler.dc.html +239 -0
  963. package/package.json +67 -3
@@ -0,0 +1,218 @@
1
+ The settings button in the chat composer that lists which Wally tools may run without asking first in this conversation. Each row is a switch and takes effect the moment it is flipped — there is no Save, and the popover stays open so several tools can be changed in one go. The app owns the list and its order: enabled tools first, then a `Separator` and the disabled ones.
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
+ | `open` | `boolean \| undefined` | no | — | |
10
+ | `on-open-change` | `((open: boolean) => void) \| undefined` | no | — | |
11
+ | `data-testid` | `string \| undefined` | no | — | |
12
+
13
+ ## Sub-components
14
+
15
+ - `WallarmDS.ChatPermissionsContent` — `ChatPermissionsContentProps` in the declaration bundle.
16
+ - `WallarmDS.ChatPermissionsItem` — `ChatPermissionsItemProps` in the declaration bundle.
17
+ - `WallarmDS.ChatPermissionsTrigger` — `ChatPermissionsTriggerProps` in the declaration bundle.
18
+
19
+ ## Stories
20
+
21
+ ### AllOn
22
+
23
+ Every tool is allowed. Open the popover with the settings button; the tooltip names it until then.
24
+
25
+ Source: ChatPermissions/ChatPermissions.stories.tsx#AllOn
26
+
27
+ ### SomeOff
28
+
29
+ Two tools switched off sit below a separator. The order is decided by the app, not the component.
30
+
31
+ Source: ChatPermissions/ChatPermissions.stories.tsx#SomeOff
32
+
33
+ ### Analytics
34
+
35
+ `data-analytics-id` lands on the real trigger `<button>` and on each switch row's `<label>`, so
36
+ a click anywhere on the row resolves to the row's id.
37
+
38
+ Source: ChatPermissions/ChatPermissions.stories.tsx#Analytics
39
+
40
+ ## Story sources
41
+
42
+ ### ChatPermissions/ChatPermissions.stories.tsx
43
+
44
+ ```tsx
45
+ import { useState } from 'react';
46
+ import type { Meta, StoryFn } from 'storybook-react-rsbuild';
47
+ import { Separator } from '../Separator';
48
+ import {
49
+ ChatPermissions,
50
+ ChatPermissionsContent,
51
+ ChatPermissionsItem,
52
+ type ChatPermissionsItemCheckedChangeDetails,
53
+ ChatPermissionsTrigger,
54
+ } from './index';
55
+
56
+ const DESCRIPTION = [
57
+ 'The settings button in the chat composer that lists which Wally tools may run without asking first in this conversation.',
58
+ 'Each row is a switch and takes effect the moment it is flipped — there is no Save, and the popover stays open so several tools can be changed in one go.',
59
+ 'The app owns the list and its order: enabled tools first, then a `Separator` and the disabled ones.',
60
+ ].join(' ');
61
+
62
+ interface Tool {
63
+ name: string;
64
+ description: string;
65
+ }
66
+
67
+ const TOOLS: Tool[] = [
68
+ { name: 'propose_add_to_denylist', description: 'Suggest IPs to add to the denylist' },
69
+ { name: 'search_attacks', description: 'Search detected attacks and incidents' },
70
+ {
71
+ name: 'get_api_inventory',
72
+ description: 'Read the discovered API endpoints, their parameters, owners and risk scores',
73
+ },
74
+ { name: 'create_rule', description: 'Draft a mitigation rule for review' },
75
+ ];
76
+
77
+ const meta = {
78
+ title: 'AI/ChatPermissions',
79
+ component: ChatPermissions,
80
+ subcomponents: { ChatPermissionsTrigger, ChatPermissionsContent, ChatPermissionsItem },
81
+ parameters: {
82
+ layout: 'centered',
83
+ docs: { description: { component: DESCRIPTION } },
84
+ },
85
+ } satisfies Meta<typeof ChatPermissions>;
86
+
87
+ export default meta;
88
+
89
+ /** Every tool is allowed. Open the popover with the settings button; the tooltip names it until then. */
90
+ export const AllOn: StoryFn<typeof meta> = () => {
91
+ const [allowed, setAllowed] = useState<Record<string, boolean>>({
92
+ propose_add_to_denylist: true,
93
+ search_attacks: true,
94
+ get_api_inventory: true,
95
+ create_rule: true,
96
+ });
97
+ const enabled = TOOLS.filter(tool => allowed[tool.name]);
98
+ const disabled = TOOLS.filter(tool => !allowed[tool.name]);
99
+
100
+ const handleCheckedChange = ({ checked, name }: ChatPermissionsItemCheckedChangeDetails) => {
101
+ setAllowed(prev => ({ ...prev, [name]: checked }));
102
+ };
103
+
104
+ return (
105
+ <div className='flex h-[360px] w-[400px] items-end'>
106
+ <ChatPermissions data-testid='permissions'>
107
+ <ChatPermissionsTrigger />
108
+ <ChatPermissionsContent>
109
+ {enabled.map(tool => (
110
+ <ChatPermissionsItem
111
+ key={tool.name}
112
+ name={tool.name}
113
+ data-testid={`permission-${tool.name}`}
114
+ title={tool.name}
115
+ description={tool.description}
116
+ checked
117
+ onCheckedChange={handleCheckedChange}
118
+ />
119
+ ))}
120
+ {enabled.length > 0 && disabled.length > 0 && <Separator spacing={4} />}
121
+ {disabled.map(tool => (
122
+ <ChatPermissionsItem
123
+ key={tool.name}
124
+ name={tool.name}
125
+ data-testid={`permission-${tool.name}`}
126
+ title={tool.name}
127
+ description={tool.description}
128
+ checked={false}
129
+ onCheckedChange={handleCheckedChange}
130
+ />
131
+ ))}
132
+ </ChatPermissionsContent>
133
+ </ChatPermissions>
134
+ </div>
135
+ );
136
+ };
137
+
138
+ /** Two tools switched off sit below a separator. The order is decided by the app, not the component. */
139
+ export const SomeOff: StoryFn<typeof meta> = () => {
140
+ const [allowed, setAllowed] = useState<Record<string, boolean>>({
141
+ propose_add_to_denylist: true,
142
+ search_attacks: true,
143
+ get_api_inventory: false,
144
+ create_rule: false,
145
+ });
146
+ const enabled = TOOLS.filter(tool => allowed[tool.name]);
147
+ const disabled = TOOLS.filter(tool => !allowed[tool.name]);
148
+
149
+ const handleCheckedChange = ({ checked, name }: ChatPermissionsItemCheckedChangeDetails) => {
150
+ setAllowed(prev => ({ ...prev, [name]: checked }));
151
+ };
152
+
153
+ return (
154
+ <div className='flex h-[360px] w-[400px] items-end'>
155
+ <ChatPermissions data-testid='permissions'>
156
+ <ChatPermissionsTrigger />
157
+ <ChatPermissionsContent>
158
+ {enabled.map(tool => (
159
+ <ChatPermissionsItem
160
+ key={tool.name}
161
+ name={tool.name}
162
+ data-testid={`permission-${tool.name}`}
163
+ title={tool.name}
164
+ description={tool.description}
165
+ checked
166
+ onCheckedChange={handleCheckedChange}
167
+ />
168
+ ))}
169
+ {enabled.length > 0 && disabled.length > 0 && <Separator spacing={4} />}
170
+ {disabled.map(tool => (
171
+ <ChatPermissionsItem
172
+ key={tool.name}
173
+ name={tool.name}
174
+ data-testid={`permission-${tool.name}`}
175
+ title={tool.name}
176
+ description={tool.description}
177
+ checked={false}
178
+ onCheckedChange={handleCheckedChange}
179
+ />
180
+ ))}
181
+ </ChatPermissionsContent>
182
+ </ChatPermissions>
183
+ </div>
184
+ );
185
+ };
186
+
187
+ /**
188
+ * `data-analytics-id` lands on the real trigger `<button>` and on each switch row's `<label>`, so
189
+ * a click anywhere on the row resolves to the row's id.
190
+ */
191
+ export const Analytics: StoryFn<typeof meta> = () => {
192
+ const [checked, setChecked] = useState(true);
193
+
194
+ const handleCheckedChange = (details: ChatPermissionsItemCheckedChangeDetails) => {
195
+ setChecked(details.checked);
196
+ };
197
+
198
+ return (
199
+ <div className='flex h-[360px] w-[400px] items-end'>
200
+ <ChatPermissions data-testid='permissions'>
201
+ <ChatPermissionsTrigger data-analytics-id='CHAT_PERMISSIONS_OPEN' />
202
+ <ChatPermissionsContent>
203
+ <ChatPermissionsItem
204
+ name='search_attacks'
205
+ data-testid='permission-search_attacks'
206
+ data-analytics-id='CHAT_PERMISSION_TOGGLE'
207
+ data-analytics-props='{"tool":"search_attacks"}'
208
+ title='search_attacks'
209
+ description='Search detected attacks and incidents'
210
+ checked={checked}
211
+ onCheckedChange={handleCheckedChange}
212
+ />
213
+ </ChatPermissionsContent>
214
+ </ChatPermissions>
215
+ </div>
216
+ );
217
+ };
218
+ ```
@@ -0,0 +1,2 @@
1
+ <!-- @dsCard group="AI" height=480 -->
2
+ <!doctype html><html><head><meta charset="utf-8"></head><body><div id="preview"></div><script src="./stories.js"></script><script>window.WallarmPreview.mount(document.getElementById('preview'));</script></body></html>
@@ -0,0 +1,12 @@
1
+ var e={vD(e,t,n){let r,a;/**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @lightSyntaxTransform
8
+ * @noflow
9
+ * @nolint
10
+ * @preventMunge
11
+ * @preserve-invariant-messages
12
+ */var o,l,i=Object.create,s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,p=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty,m=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of u(t))d.call(e,a)||a===n||s(e,a,{get:()=>t[a],enumerable:!(r=c(t,a))||r.enumerable});return e},f={},h={$dispatcherGuard:()=>N,$makeReadOnly:()=>M,$reset:()=>O,$structuralCheck:()=>T,c:()=>E,clearRenderCounterRegistry:()=>P,renderCounterRegistry:()=>x,useRenderCounter:()=>D};for(var y in h)s(f,y,{get:h[y],enumerable:!0});e.exports=m(s({},"__esModule",{value:!0}),f);var _=(a=null!=(r=n("C"))?i(p(r)):{},m(r&&r.__esModule?a:s(a,"default",{value:r,enumerable:!0}),r)),{useRef:g,useEffect:S,isValidElement:w}=_,b=null!=(o=_.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE)?o:_.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,v=Symbol.for("react.memo_cache_sentinel"),E="function"==typeof(null==(l=_.__COMPILER_RUNTIME)?void 0:l.c)?_.__COMPILER_RUNTIME.c:function(e){return _.useMemo(()=>{let t=Array(e);for(let n=0;n<e;n++)t[n]=v;return t[v]=!0,t},[])},R={};["readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","getCacheSignal","getCacheForType","useCacheRefresh"].forEach(e=>{R[e]=()=>{throw Error(`[React] Unexpected React hook call (${e}) from a React compiled function. Check that all hooks are called directly and named according to convention ('use[A-Z]') `)}});var $=null;function C(e){return b.ReactCurrentDispatcher.current=e,b.ReactCurrentDispatcher.current}R.useMemoCache=e=>{if(null!=$)return $.useMemoCache(e);throw Error("React Compiler internal invariant violation: unexpected null dispatcher")};var k=[];function N(e){let t=b.ReactCurrentDispatcher.current;if(0===e){if(k.push(t),1===k.length&&($=t),t===R)throw Error("[React] Unexpected call to custom hook or component from a React compiled function. Check that (1) all hooks are called directly and named according to convention ('use[A-Z]') and (2) components are returned as JSX instead of being directly invoked.");C(R)}else if(1===e){let e=k.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");0===k.length&&($=null),C(e)}else if(2===e)k.push(t),C($);else if(3===e){let e=k.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");C(e)}else throw Error("React Compiler internal error: unreachable block"+e)}function O(e){for(let t=0;t<e.length;t++)e[t]=v}function M(){throw Error("TODO: implement $makeReadOnly in react-compiler-runtime")}var x=new Map;function P(){for(let e of x.values())e.forEach(e=>{e.count=0})}function D(e){let t=g(null);null!=t.current&&(t.current.count+=1),S(()=>{if(null==t.current){let n,r={count:0};null==(n=x.get(e))&&(n=new Set,x.set(e,n)),n.add(r),t.current=r}return()=>{var n;let r;null!==t.current&&(n=t.current,null!=(r=x.get(e))&&r.delete(n))}})}var I=new Set;function T(e,t,n,r,a,o){function l(e,t,l,i){let s=`${r}:${o} [${a}] ${n}${l} changed from ${e} to ${t} at depth ${i}`;I.has(s)||(I.add(s),console.error(s))}!function e(t,n,r,a){if(!(a>2)){if(t!==n)if(typeof t!=typeof n)l(`type ${typeof t}`,`type ${typeof n}`,r,a);else if("object"==typeof t){let o=Array.isArray(t),i=Array.isArray(n);if(null===t&&null!==n)l("null",`type ${typeof n}`,r,a);else if(null===n)l(`type ${typeof t}`,"null",r,a);else if(t instanceof Map)if(n instanceof Map)if(t.size!==n.size)l(`Map instance with size ${t.size}`,`Map instance with size ${n.size}`,r,a);else for(let[o,i]of t)n.has(o)?e(i,n.get(o),`${r}.get(${o})`,a+1):l(`Map instance with key ${o}`,`Map instance without key ${o}`,r,a);else l("Map instance","other value",r,a);else if(n instanceof Map)l("other value","Map instance",r,a);else if(t instanceof Set)if(n instanceof Set)if(t.size!==n.size)l(`Set instance with size ${t.size}`,`Set instance with size ${n.size}`,r,a);else for(let e of n)t.has(e)||l(`Set instance without element ${e}`,`Set instance with element ${e}`,r,a);else l("Set instance","other value",r,a);else if(n instanceof Set)l("other value","Set instance",r,a);else if(o||i)if(o!==i)l(`type ${o?"array":"object"}`,`type ${i?"array":"object"}`,r,a);else if(t.length!==n.length)l(`array with length ${t.length}`,`array with length ${n.length}`,r,a);else for(let o=0;o<t.length;o++)e(t[o],n[o],`${r}[${o}]`,a+1);else if(w(t)||w(n))w(t)!==w(n)?l(`type ${w(t)?"React element":"object"}`,`type ${w(n)?"React element":"object"}`,r,a):t.type!==n.type?l(`React element of type ${t.type}`,`React element of type ${n.type}`,r,a):e(t.props,n.props,`[props of ${r}]`,a+1);else{for(let e in n)e in t||l(`object without key ${e}`,`object with key ${e}`,r,a);for(let o in t)o in n?e(t[o],n[o],`${r}.${o}`,a+1):l(`object with key ${o}`,`object without key ${o}`,r,a)}}else{if("function"==typeof t)return;isNaN(t)||isNaN(n)?isNaN(t)!==isNaN(n)&&l(`${isNaN(t)?"NaN":"non-NaN value"}`,`${isNaN(n)?"NaN":"non-NaN value"}`,r,a):t!==n&&l(t,n,r,a)}}}(e,t,"",0)}},p(e,t,n){let r=new WeakMap,a=new WeakMap;function o(e,t,n){let o=t,l=n;if("object"==typeof o&&null!==o&&"$$typeof"in o&&o.$$typeof===Symbol.for("react.context")&&"Provider"in o&&(o=o.Provider),"function"==typeof o&&null!=l.ref&&!o.prototype?.isReactComponent){let t=o,n=r.get(e);n||(n=new WeakMap,r.set(e,n));let a=n.get(t);a||((a=e.forwardRef((e,n)=>t({...e,ref:n}))).displayName=t.displayName??t.name,n.set(t,a)),o=a}if("string"==typeof o&&"boolean"==typeof l.inert&&((l={...l}).inert?l.inert="":delete l.inert),"string"==typeof o)for(let[e,t]of[["fill-rule","fillRule"],["clip-rule","clipRule"]])e in l&&(l={...l,[t]:l[e]},delete l[e]);return"string"==typeof o&&null!=l.ref&&(o=function(e,t){let n=a.get(e);n||(n=new Map,a.set(e,n));let r=n.get(t);if(r)return r;let o=e.forwardRef((n,r)=>{let a=e.useRef(null);if(!a.current||a.current.original!==r){let e;a.current={original:r,callback:t=>{if(null==t&&e){let t=e;e=void 0,t();return}if("function"==typeof r){let n=r(t);e="function"==typeof n?n:void 0}else r&&(r.current=t)}}}return e.createElement(t,{...n,ref:a.current.callback})});return o.displayName=`CanvasHost(${t})`,n.set(t,o),o}(e,o)),{type:o,props:l}}function l(e){let t=(t,n,r)=>{let a=o(e,t,n??{});return e.createElement(a.type,void 0===r?a.props:{...a.props,key:r})};return{jsx:t,jsxs:(t,n,r)=>{let a=o(e,t,n??{}),{children:l,...i}=a.props;return e.createElement(a.type,void 0===r?i:{...i,key:r},...Array.isArray(l)?l:[l])},jsxDEV:t,Fragment:e.Fragment}}function i(e){return{...e,createElement:(t,n,...r)=>{let a=o(e,t,n??{});return e.createElement(a.type,a.props,...r)},cloneElement:(t,n,...r)=>{let a=e.cloneElement(t,n??void 0,...r),l=a.ref,i=o(e,a.type,{...a.props,ref:l});return i.type===a.type&&"string"!=typeof a.type?a:e.createElement(i.type,{...i.props,key:a.key})}}}n.d(t,{MA:()=>l,YJ:()=>i})},C(e,t,n){n.r(t);let r=(0,n("p").YJ)(window.React),{Children:a,Component:o,Fragment:l,Profiler:i,PureComponent:s,StrictMode:c,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:p,act:d,cloneElement:m,createContext:f,createElement:h,createFactory:y,createRef:_,forwardRef:g,isValidElement:S,lazy:w,memo:b,startTransition:v,unstable_act:E,useCallback:R,useContext:$,useDebugValue:C,useDeferredValue:k,useEffect:N,useId:O,useImperativeHandle:M,useInsertionEffect:x,useLayoutEffect:P,useMemo:D,useReducer:I,useRef:T,useState:j,useSyncExternalStore:A,useTransition:W,version:z,use:L}=r;n.d(t,{},{Children:a,Component:o,Fragment:l,Profiler:i,PureComponent:s,StrictMode:c,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:p,act:d,cloneElement:m,createContext:f,createElement:h,createFactory:y,createRef:_,default:r,forwardRef:g,isValidElement:S,lazy:w,memo:b,startTransition:v,unstable_act:E,use:L,useCallback:R,useContext:$,useDebugValue:C,useDeferredValue:k,useEffect:N,useId:O,useImperativeHandle:M,useInsertionEffect:x,useLayoutEffect:P,useMemo:D,useReducer:I,useRef:T,useState:j,useSyncExternalStore:A,useTransition:W,version:z})}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.d=(e,t,r)=>{var a=(t,r)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,[r]:t[a]})};a(t,"get"),a(r,"value")},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{let{jsx:e,jsxs:t,jsxDEV:r,Fragment:a}=(0,n("p").MA)(window.React);var o=n("vD"),l=n("C");let i=window.WallarmDS.Separator,s=window.WallarmDS.ChatPermissions,c=window.WallarmDS.ChatPermissionsContent,u=window.WallarmDS.ChatPermissionsItem,p=window.WallarmDS.ChatPermissionsTrigger,d=[{name:"propose_add_to_denylist",description:"Suggest IPs to add to the denylist"},{name:"search_attacks",description:"Search detected attacks and incidents"},{name:"get_api_inventory",description:"Read the discovered API endpoints, their parameters, owners and risk scores"},{name:"create_rule",description:"Draft a mitigation rule for review"}],m={title:"AI/ChatPermissions",component:s,subcomponents:{ChatPermissionsTrigger:p,ChatPermissionsContent:c,ChatPermissionsItem:u},parameters:{layout:"centered",docs:{description:{component:"The settings button in the chat composer that lists which Wally tools may run without asking first in this conversation. Each row is a switch and takes effect the moment it is flipped — there is no Save, and the popover stays open so several tools can be changed in one go. The app owns the list and its order: enabled tools first, then a `Separator` and the disabled ones."}}}},f=[{name:"AllOn",story:()=>{let n,r,a,m,f,h,y,_,g,S,w,b,v=(0,o.c)(27);v[0]===Symbol.for("react.memo_cache_sentinel")?(n={propose_add_to_denylist:!0,search_attacks:!0,get_api_inventory:!0,create_rule:!0},v[0]=n):n=v[0];let[E,R]=(0,l.useState)(n);if(v[1]!==E){let t,n,o,l=d.filter(e=>E[e.name]),S=d.filter(e=>!E[e.name]);v[10]===Symbol.for("react.memo_cache_sentinel")?(t=e=>{let{checked:t,name:n}=e;R(e=>({...e,[n]:t}))},v[10]=t):t=v[10];let w=t;g="flex h-[360px] w-[400px] items-end",a=s,y="permissions",v[11]===Symbol.for("react.memo_cache_sentinel")?(_=e(p,{}),v[11]=_):_=v[11],r=c,v[12]===Symbol.for("react.memo_cache_sentinel")?(n=t=>e(u,{name:t.name,"data-testid":`permission-${t.name}`,title:t.name,description:t.description,checked:!0,onCheckedChange:w},t.name),v[12]=n):n=v[12],m=l.map(n),f=l.length>0&&S.length>0&&e(i,{spacing:4}),v[13]===Symbol.for("react.memo_cache_sentinel")?(o=t=>e(u,{name:t.name,"data-testid":`permission-${t.name}`,title:t.name,description:t.description,checked:!1,onCheckedChange:w},t.name),v[13]=o):o=v[13],h=S.map(o),v[1]=E,v[2]=r,v[3]=a,v[4]=m,v[5]=f,v[6]=h,v[7]=y,v[8]=_,v[9]=g}else r=v[2],a=v[3],m=v[4],f=v[5],h=v[6],y=v[7],_=v[8],g=v[9];return v[14]!==r||v[15]!==m||v[16]!==f||v[17]!==h?(S=t(r,{children:[m,f,h]}),v[14]=r,v[15]=m,v[16]=f,v[17]=h,v[18]=S):S=v[18],v[19]!==a||v[20]!==y||v[21]!==_||v[22]!==S?(w=t(a,{"data-testid":y,children:[_,S]}),v[19]=a,v[20]=y,v[21]=_,v[22]=S,v[23]=w):w=v[23],v[24]!==g||v[25]!==w?(b=e("div",{className:g,children:w}),v[24]=g,v[25]=w,v[26]=b):b=v[26],b},meta:m},{name:"SomeOff",story:()=>{let n,r,a,m,f,h,y,_,g,S,w,b,v=(0,o.c)(27);v[0]===Symbol.for("react.memo_cache_sentinel")?(n={propose_add_to_denylist:!0,search_attacks:!0,get_api_inventory:!1,create_rule:!1},v[0]=n):n=v[0];let[E,R]=(0,l.useState)(n);if(v[1]!==E){let t,n,o,l=d.filter(e=>E[e.name]),S=d.filter(e=>!E[e.name]);v[10]===Symbol.for("react.memo_cache_sentinel")?(t=e=>{let{checked:t,name:n}=e;R(e=>({...e,[n]:t}))},v[10]=t):t=v[10];let w=t;g="flex h-[360px] w-[400px] items-end",a=s,y="permissions",v[11]===Symbol.for("react.memo_cache_sentinel")?(_=e(p,{}),v[11]=_):_=v[11],r=c,v[12]===Symbol.for("react.memo_cache_sentinel")?(n=t=>e(u,{name:t.name,"data-testid":`permission-${t.name}`,title:t.name,description:t.description,checked:!0,onCheckedChange:w},t.name),v[12]=n):n=v[12],m=l.map(n),f=l.length>0&&S.length>0&&e(i,{spacing:4}),v[13]===Symbol.for("react.memo_cache_sentinel")?(o=t=>e(u,{name:t.name,"data-testid":`permission-${t.name}`,title:t.name,description:t.description,checked:!1,onCheckedChange:w},t.name),v[13]=o):o=v[13],h=S.map(o),v[1]=E,v[2]=r,v[3]=a,v[4]=m,v[5]=f,v[6]=h,v[7]=y,v[8]=_,v[9]=g}else r=v[2],a=v[3],m=v[4],f=v[5],h=v[6],y=v[7],_=v[8],g=v[9];return v[14]!==r||v[15]!==m||v[16]!==f||v[17]!==h?(S=t(r,{children:[m,f,h]}),v[14]=r,v[15]=m,v[16]=f,v[17]=h,v[18]=S):S=v[18],v[19]!==a||v[20]!==y||v[21]!==_||v[22]!==S?(w=t(a,{"data-testid":y,children:[_,S]}),v[19]=a,v[20]=y,v[21]=_,v[22]=S,v[23]=w):w=v[23],v[24]!==g||v[25]!==w?(b=e("div",{className:g,children:w}),v[24]=g,v[25]=w,v[26]=b):b=v[26],b},meta:m},{name:"Analytics",story:()=>{let n,r,a,i=(0,o.c)(4),[d,m]=(0,l.useState)(!0);i[0]===Symbol.for("react.memo_cache_sentinel")?(n=e=>{m(e.checked)},i[0]=n):n=i[0];let f=n;return i[1]===Symbol.for("react.memo_cache_sentinel")?(r=e(p,{"data-analytics-id":"CHAT_PERMISSIONS_OPEN"}),i[1]=r):r=i[1],i[2]!==d?(a=e("div",{className:"flex h-[360px] w-[400px] items-end",children:t(s,{"data-testid":"permissions",children:[r,e(c,{children:e(u,{name:"search_attacks","data-testid":"permission-search_attacks","data-analytics-id":"CHAT_PERMISSION_TOGGLE","data-analytics-props":'{"tool":"search_attacks"}',title:"search_attacks",description:"Search detected attacks and incidents",checked:d,onCheckedChange:f})})]})}),i[2]=d,i[3]=a):a=i[3],a},meta:m}];function h({entry:e}){let{story:t,meta:n}=e,r={...n.args,...t.args},a="function"==typeof t||t.$$typeof?t:t.render||n.render||n.component,o=()=>l.default.createElement(a,r),i={args:r,globals:{theme:"light"},parameters:{...n.parameters,...t.parameters},viewMode:"story"};for(let e of[...n.decorators||[],...t.decorators||[]].reverse()){let t=o;o=()=>e(t,i)}return l.default.createElement("section",{"data-preview-story":e.name,className:"p-16"},l.default.createElement("h2",{className:"text-sm mb-12"},e.name),l.default.createElement(o))}window.WallarmPreview={mount(e){let t=window.ReactDOM.createRoot(e);return t.render(l.default.createElement(window.WallarmDS.Root,null,f.map((e,t)=>l.default.createElement(h,{key:t,entry:e})))),t}}})();
@@ -0,0 +1,367 @@
1
+ Collects any number of choices from a limited set, or turns a single option on or off — reach for `Radio` when only one choice is allowed, and `Switch` when the change takes effect immediately instead of on submit. Past roughly ten options, a `Select` reads better than a long column of boxes.
2
+
3
+ ## Props as canvas attributes
4
+
5
+ Use kebab-case attribute names. Pass non-string values through renderVals holes, including booleans. The full emitted API is in `components/index.d.ts`.
6
+
7
+ | Attribute | Type | Required | Default | Description |
8
+ | --- | --- | --- | --- | --- |
9
+ | `title` | `string \| undefined` | no | — | |
10
+ | `default-value` | `string \| number \| readonly string[] \| undefined` | no | — | |
11
+ | `auto-focus` | `boolean \| undefined` | no | — | |
12
+ | `tab-index` | `number \| undefined` | no | — | |
13
+ | `rel` | `string \| undefined` | no | — | |
14
+ | `on-change` | `ChangeEventHandler<T, Element> \| undefined` | no | — | |
15
+ | `html-for` | `string \| undefined` | no | — | |
16
+ | `id` | `string` | no | — | The unique identifier of the machine. |
17
+ | `form` | `string \| undefined` | no | — | The id of the form that the checkbox belongs to. |
18
+ | `default-checked` | `CheckedState \| undefined` | no | — | The initial checked state of the checkbox when rendered. Use when you don't need to control the checked state of the checkbox. |
19
+ | `disabled` | `boolean \| undefined` | no | — | Whether the checkbox is disabled |
20
+ | `name` | `string \| undefined` | no | — | The name of the input field in a checkbox. Useful for form submission. |
21
+ | `value` | `string \| undefined` | no | — | The value of checkbox input. Useful for form submission. |
22
+ | `ids` | `ElementIds \| undefined` | no | — | The ids of the elements in the checkbox. Useful for composition. |
23
+ | `read-only` | `boolean \| undefined` | no | — | Whether the checkbox is read-only |
24
+ | `required` | `boolean \| undefined` | no | — | Whether the checkbox is required |
25
+ | `on-checked-change` | `complex` | no | — | The callback invoked when the checked state changes. |
26
+ | `invalid` | `boolean \| undefined` | no | — | Whether the checkbox is invalid |
27
+ | `checked` | `CheckedState \| undefined` | no | — | The controlled checked state of the checkbox |
28
+ | `as-child` | `boolean \| undefined` | no | — | Use the provided child element as the default rendered element, combining their props and behavior. |
29
+ | `data-testid` | `string \| undefined` | no | — | |
30
+
31
+ ## Sub-components
32
+
33
+ - `WallarmDS.CheckboxDescription` — `CheckboxDescriptionProps` in the declaration bundle.
34
+ - `WallarmDS.CheckboxGroup` — `CheckboxGroupProps` in the declaration bundle.
35
+ - `WallarmDS.CheckboxLabel` — `CheckboxLabelProps` in the declaration bundle.
36
+ - `WallarmDS.CheckboxIndicator` — `CheckboxIndicatorProps` in the declaration bundle.
37
+
38
+ ## Stories
39
+
40
+ ### Basic
41
+
42
+ The smallest useful composition — `CheckboxIndicator` plus `CheckboxLabel`. Keep labels to a few
43
+ words in sentence case, and reword rather than truncate.
44
+
45
+ Source: Checkbox/Checkbox.stories.tsx#Basic
46
+
47
+ ### Checked
48
+
49
+ The checked state. Pass `checked` to drive it from your own state, or `defaultChecked` to let the checkbox keep track of it.
50
+
51
+ Source: Checkbox/Checkbox.stories.tsx#Checked
52
+
53
+ ### Indeterminate
54
+
55
+ `checked='indeterminate'` is for a parent whose children are only partly selected. Set it
56
+ deliberately — a click never produces it — and clear it once every child is checked or unchecked.
57
+
58
+ Source: Checkbox/Checkbox.stories.tsx#Indeterminate
59
+
60
+ ### Disabled
61
+
62
+ All three states while disabled, so you can see that the indicator stays readable when the option cannot be changed.
63
+
64
+ Source: Checkbox/Checkbox.stories.tsx#Disabled
65
+
66
+ ### WithDescription
67
+
68
+ `CheckboxDescription` adds a second line under the label, and switches the row to a grid so that text lines up with the label rather than the box.
69
+
70
+ Source: Checkbox/Checkbox.stories.tsx#WithDescription
71
+
72
+ ### Group
73
+
74
+ `CheckboxGroup` ties several checkboxes to one `name` and one array of values, and owns the spacing
75
+ between them. Every box stays independent: ticking one must never move another, unless it is a
76
+ parent selecting all of its children.
77
+
78
+ Source: Checkbox/Checkbox.stories.tsx#Group
79
+
80
+ ### Card
81
+
82
+ `variant='card'` gives every option its own bordered surface. Cards exist to carry a description —
83
+ that is what the extra room is for, and a card holding a bare label wastes it. Plain rows read
84
+ better for short lists of short labels.
85
+
86
+ Source: Checkbox/Checkbox.stories.tsx#Card
87
+
88
+ ### FormField
89
+
90
+ Wrapped in `Field`, so the label and description above the options come from `FieldLabel` and `FieldDescription`. Shown as plain rows and as cards.
91
+
92
+ Source: Checkbox/Checkbox.stories.tsx#FormField
93
+
94
+ ## Story sources
95
+
96
+ ### Checkbox/Checkbox.stories.tsx
97
+
98
+ ```tsx
99
+ import type { Meta, StoryFn } from 'storybook-react-rsbuild';
100
+ import { Info } from '../../icons';
101
+ import { Field, FieldDescription, FieldLabel } from '../Field';
102
+ import { HStack, VStack } from '../Stack';
103
+ import { Tooltip, TooltipContent, TooltipTrigger } from '../Tooltip';
104
+ import { Checkbox } from './Checkbox';
105
+ import { CheckboxDescription } from './CheckboxDescription';
106
+ import { CheckboxGroup } from './CheckboxGroup';
107
+ import { CheckboxIndicator } from './CheckboxIndicator';
108
+ import { CheckboxLabel } from './CheckboxLabel';
109
+
110
+ const DESCRIPTION = [
111
+ 'Collects any number of choices from a limited set, or turns a single option on or off — reach for `Radio` when only one choice is allowed, and `Switch` when the change takes effect immediately instead of on submit.',
112
+ 'Past roughly ten options, a `Select` reads better than a long column of boxes.',
113
+ ].join(' ');
114
+
115
+ const meta = {
116
+ title: 'Inputs/Checkbox',
117
+ component: Checkbox,
118
+ subcomponents: {
119
+ CheckboxGroup,
120
+ CheckboxIndicator,
121
+ CheckboxLabel,
122
+ CheckboxDescription,
123
+ },
124
+ parameters: {
125
+ layout: 'centered',
126
+ docs: {
127
+ description: {
128
+ component: DESCRIPTION,
129
+ },
130
+ },
131
+ },
132
+ } satisfies Meta<typeof Checkbox>;
133
+
134
+ export default meta;
135
+
136
+ /**
137
+ * The smallest useful composition — `CheckboxIndicator` plus `CheckboxLabel`. Keep labels to a few
138
+ * words in sentence case, and reword rather than truncate.
139
+ */
140
+ export const Basic: StoryFn<typeof meta> = () => (
141
+ <Checkbox data-testid='checkbox'>
142
+ <CheckboxIndicator />
143
+ <CheckboxLabel>Accept terms and conditions</CheckboxLabel>
144
+ </Checkbox>
145
+ );
146
+
147
+ /** The checked state. Pass `checked` to drive it from your own state, or `defaultChecked` to let the checkbox keep track of it. */
148
+ export const Checked: StoryFn<typeof meta> = () => (
149
+ <Checkbox checked>
150
+ <CheckboxIndicator />
151
+ <CheckboxLabel>Accept terms and conditions</CheckboxLabel>
152
+ </Checkbox>
153
+ );
154
+
155
+ /**
156
+ * `checked='indeterminate'` is for a parent whose children are only partly selected. Set it
157
+ * deliberately — a click never produces it — and clear it once every child is checked or unchecked.
158
+ */
159
+ export const Indeterminate: StoryFn<typeof meta> = () => (
160
+ <Checkbox checked='indeterminate'>
161
+ <CheckboxIndicator />
162
+ <CheckboxLabel>Accept terms and conditions</CheckboxLabel>
163
+ </Checkbox>
164
+ );
165
+
166
+ /** All three states while disabled, so you can see that the indicator stays readable when the option cannot be changed. */
167
+ export const Disabled: StoryFn<typeof meta> = () => (
168
+ <VStack>
169
+ <Checkbox disabled>
170
+ <CheckboxIndicator />
171
+ <CheckboxLabel>Accept terms and conditions</CheckboxLabel>
172
+ </Checkbox>
173
+
174
+ <Checkbox checked disabled>
175
+ <CheckboxIndicator />
176
+ <CheckboxLabel>Accept terms and conditions</CheckboxLabel>
177
+ </Checkbox>
178
+
179
+ <Checkbox checked='indeterminate' disabled>
180
+ <CheckboxIndicator />
181
+ <CheckboxLabel>Accept terms and conditions</CheckboxLabel>
182
+ </Checkbox>
183
+ </VStack>
184
+ );
185
+
186
+ /** `CheckboxDescription` adds a second line under the label, and switches the row to a grid so that text lines up with the label rather than the box. */
187
+ export const WithDescription: StoryFn<typeof meta> = () => (
188
+ <Checkbox>
189
+ <CheckboxIndicator />
190
+ <CheckboxLabel>
191
+ Accept terms and conditions
192
+ <Tooltip>
193
+ <TooltipTrigger>
194
+ <Info />
195
+ </TooltipTrigger>
196
+ <TooltipContent>Additional information</TooltipContent>
197
+ </Tooltip>
198
+ </CheckboxLabel>
199
+ <CheckboxDescription>
200
+ By clicking this checkbox, you agree to the terms and conditions.
201
+ </CheckboxDescription>
202
+ </Checkbox>
203
+ );
204
+
205
+ /**
206
+ * `CheckboxGroup` ties several checkboxes to one `name` and one array of values, and owns the spacing
207
+ * between them. Every box stays independent: ticking one must never move another, unless it is a
208
+ * parent selecting all of its children.
209
+ */
210
+ export const Group: StoryFn<typeof meta> = () => (
211
+ <CheckboxGroup name='framework' defaultValue={['vue']}>
212
+ <Checkbox value='react'>
213
+ <CheckboxIndicator />
214
+ <CheckboxLabel>React</CheckboxLabel>
215
+ </Checkbox>
216
+
217
+ <Checkbox value='solid'>
218
+ <CheckboxIndicator />
219
+ <CheckboxLabel>Solid</CheckboxLabel>
220
+ </Checkbox>
221
+
222
+ <Checkbox value='vue'>
223
+ <CheckboxIndicator />
224
+ <CheckboxLabel>Vue</CheckboxLabel>
225
+ </Checkbox>
226
+
227
+ <Checkbox value='svelte'>
228
+ <CheckboxIndicator />
229
+ <CheckboxLabel>Svelte</CheckboxLabel>
230
+ </Checkbox>
231
+ </CheckboxGroup>
232
+ );
233
+
234
+ /**
235
+ * `variant='card'` gives every option its own bordered surface. Cards exist to carry a description —
236
+ * that is what the extra room is for, and a card holding a bare label wastes it. Plain rows read
237
+ * better for short lists of short labels.
238
+ */
239
+ export const Card: StoryFn<typeof meta> = () => (
240
+ <CheckboxGroup variant='card' name='framework' defaultValue={['vue', 'angular']}>
241
+ <Checkbox value='react'>
242
+ <CheckboxIndicator />
243
+ <CheckboxLabel>React</CheckboxLabel>
244
+ <CheckboxDescription>
245
+ By clicking this checkbox, you agree to the terms and conditions.
246
+ </CheckboxDescription>
247
+ </Checkbox>
248
+
249
+ <Checkbox value='solid'>
250
+ <CheckboxIndicator />
251
+ <CheckboxLabel>
252
+ Solid
253
+ <Tooltip>
254
+ <TooltipTrigger>
255
+ <Info />
256
+ </TooltipTrigger>
257
+ <TooltipContent>Additional information</TooltipContent>
258
+ </Tooltip>
259
+ </CheckboxLabel>
260
+ <CheckboxDescription>
261
+ By clicking this checkbox, you agree to the terms and conditions.
262
+ </CheckboxDescription>
263
+ </Checkbox>
264
+
265
+ <Checkbox value='vue'>
266
+ <CheckboxIndicator />
267
+ <CheckboxLabel>Vue</CheckboxLabel>
268
+ <CheckboxDescription>
269
+ By clicking this checkbox, you agree to the terms and conditions.
270
+ </CheckboxDescription>
271
+ </Checkbox>
272
+
273
+ <Checkbox value='svelte' disabled>
274
+ <CheckboxIndicator />
275
+ <CheckboxLabel>Svelte</CheckboxLabel>
276
+ <CheckboxDescription>
277
+ By clicking this checkbox, you agree to the terms and conditions.
278
+ </CheckboxDescription>
279
+ </Checkbox>
280
+
281
+ <Checkbox value='angular' disabled>
282
+ <CheckboxIndicator />
283
+ <CheckboxLabel>Angular</CheckboxLabel>
284
+ <CheckboxDescription>
285
+ By clicking this checkbox, you agree to the terms and conditions.
286
+ </CheckboxDescription>
287
+ </Checkbox>
288
+ </CheckboxGroup>
289
+ );
290
+
291
+ /** Wrapped in `Field`, so the label and description above the options come from `FieldLabel` and `FieldDescription`. Shown as plain rows and as cards. */
292
+ export const FormField: StoryFn<typeof meta> = () => (
293
+ <HStack align='start' gap={40}>
294
+ <Field>
295
+ <FieldLabel>
296
+ Label{' '}
297
+ <Tooltip>
298
+ <TooltipTrigger>
299
+ <Info />
300
+ </TooltipTrigger>
301
+ <TooltipContent>Additional information</TooltipContent>
302
+ </Tooltip>
303
+ </FieldLabel>
304
+
305
+ <FieldDescription>This is an input description.</FieldDescription>
306
+
307
+ <CheckboxGroup name='framework' defaultValue={['vue']}>
308
+ <Checkbox value='react'>
309
+ <CheckboxIndicator />
310
+ <CheckboxLabel>React</CheckboxLabel>
311
+ </Checkbox>
312
+
313
+ <Checkbox value='solid'>
314
+ <CheckboxIndicator />
315
+ <CheckboxLabel>Solid</CheckboxLabel>
316
+ </Checkbox>
317
+
318
+ <Checkbox value='vue'>
319
+ <CheckboxIndicator />
320
+ <CheckboxLabel>Vue</CheckboxLabel>
321
+ </Checkbox>
322
+
323
+ <Checkbox value='svelte'>
324
+ <CheckboxIndicator />
325
+ <CheckboxLabel>Svelte</CheckboxLabel>
326
+ </Checkbox>
327
+ </CheckboxGroup>
328
+ </Field>
329
+
330
+ <Field>
331
+ <FieldLabel>
332
+ Label
333
+ <Tooltip>
334
+ <TooltipTrigger>
335
+ <Info />
336
+ </TooltipTrigger>
337
+ <TooltipContent>Additional information</TooltipContent>
338
+ </Tooltip>
339
+ </FieldLabel>
340
+
341
+ <FieldDescription>This is an input description.</FieldDescription>
342
+
343
+ <CheckboxGroup variant='card' name='framework' defaultValue={['vue']}>
344
+ <Checkbox value='react'>
345
+ <CheckboxIndicator />
346
+ <CheckboxLabel>React</CheckboxLabel>
347
+ </Checkbox>
348
+
349
+ <Checkbox value='solid'>
350
+ <CheckboxIndicator />
351
+ <CheckboxLabel>Solid</CheckboxLabel>
352
+ </Checkbox>
353
+
354
+ <Checkbox value='vue'>
355
+ <CheckboxIndicator />
356
+ <CheckboxLabel>Vue</CheckboxLabel>
357
+ </Checkbox>
358
+
359
+ <Checkbox value='svelte'>
360
+ <CheckboxIndicator />
361
+ <CheckboxLabel>Svelte</CheckboxLabel>
362
+ </Checkbox>
363
+ </CheckboxGroup>
364
+ </Field>
365
+ </HStack>
366
+ );
367
+ ```
@@ -0,0 +1,2 @@
1
+ <!-- @dsCard group="Inputs" height=480 -->
2
+ <!doctype html><html><head><meta charset="utf-8"></head><body><div id="preview"></div><script src="./stories.js"></script><script>window.WallarmPreview.mount(document.getElementById('preview'));</script></body></html>