@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,1140 @@
1
+ A panel the reader has to resolve before carrying on — reach for `Drawer` when they should be able to keep it open and keep working, and `Popover` when the content is a detail rather than a task. It is `Drawer` with `kind='dialog'`, which shares the panel but keeps the two families' nesting separate: a dialog only steps back for another dialog.
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
+ | `kind` | `DrawerKind \| undefined` | no | — | Which overlay family this root belongs to. Drives the same-kind nesting counter behind the pushed-back animation: a Drawer only pushes back for a nested Drawer, a Dialog only for a nested Dialog. Set to 'dialog' by the Dialog component — consumers should not need to touch this. |
10
+ | `open` | `boolean \| undefined` | no | — | Controlled open state |
11
+ | `on-open-change` | `((open: boolean) => void) \| undefined` | no | — | Controlled open change handler |
12
+ | `close-on-escape` | `boolean \| undefined` | no | — | Whether ESC key closes the drawer (default: true) |
13
+ | `close-on-outside-click` | `boolean \| undefined` | no | — | Whether clicking outside closes the drawer (default: true) |
14
+ | `overlay` | `boolean \| undefined` | no | — | Overlay visibility (default: true) |
15
+ | `modal` | `boolean \| undefined` | no | — | Whether the drawer is modal — blocks interaction with the rest of the page (default: true) |
16
+ | `width` | `string \| number \| undefined` | no | `DIALOG_SIZES.medium` | Width - number for pixels, string for percentage (e.g., "50%") |
17
+ | `min-width` | `number \| undefined` | no | `DIALOG_WIDTH_CONSTRAINTS.min` | Minimum width in pixels |
18
+ | `max-width` | `number \| undefined` | no | `DIALOG_WIDTH_CONSTRAINTS.max` | Maximum width in pixels |
19
+ | `on-interact-outside` | `complex` | no | — | Fired when the user interacts outside the drawer (e.g. clicks the backdrop). |
20
+ | `on-escape-key-down` | `((event: KeyboardEvent) => void) \| undefined` | no | — | Fired when the user presses the Escape key while the drawer is open. |
21
+ | `data-testid` | `string \| undefined` | no | — | |
22
+
23
+ ## Sub-components
24
+
25
+ - `WallarmDS.DialogBody` — `DialogBodyProps` in the declaration bundle.
26
+ - `WallarmDS.DialogClose` — `DialogCloseProps` in the declaration bundle.
27
+ - `WallarmDS.DialogContent` — `DialogContentProps` in the declaration bundle.
28
+ - `WallarmDS.DialogDescription` — `DialogDescriptionProps` in the declaration bundle.
29
+ - `WallarmDS.DialogFooter` — `DialogFooterProps` in the declaration bundle.
30
+ - `WallarmDS.DialogFooterControls` — `DialogFooterControlsProps` in the declaration bundle.
31
+ - `WallarmDS.DialogHeader` — `DialogHeaderProps` in the declaration bundle.
32
+ - `WallarmDS.DialogPositioner` — `DialogPositionerProps` in the declaration bundle.
33
+ - `WallarmDS.DialogTitle` — `DialogTitleProps` in the declaration bundle.
34
+ - `WallarmDS.DialogTrigger` — `DialogTriggerProps` in the declaration bundle.
35
+
36
+ ## Stories
37
+
38
+ ### Basic
39
+
40
+ The minimum: trigger, content, and a title. Every dialog needs a title — it is what a screen
41
+ reader announces on open.
42
+
43
+ Source: Dialog/Dialog.stories.tsx#Basic
44
+
45
+ ### WithFooter
46
+
47
+ `DialogFooter` holds the decision. Put the confirming action last, since that is where the
48
+ eye finishes.
49
+
50
+ Source: Dialog/Dialog.stories.tsx#WithFooter
51
+
52
+ ### WithDescription
53
+
54
+ `DialogDescription` states the consequence, which is what turns a confirmation from a speed
55
+ bump into a decision. `DialogHeader` finds the title and description among its children and
56
+ stacks them, so the close button stays right-aligned however many it gets.
57
+
58
+ Source: Dialog/Dialog.stories.tsx#WithDescription
59
+
60
+ ### WithFooterLeftActions
61
+
62
+ A left-aligned action for the escape route — cancel, learn more — kept away from the
63
+ confirming pair on the right.
64
+
65
+ Source: Dialog/Dialog.stories.tsx#WithFooterLeftActions
66
+
67
+ ### Sizes
68
+
69
+ The standard widths. Pick by the content, not the importance: a wide dialog for a short
70
+ question reads as a mistake.
71
+
72
+ Source: Dialog/Dialog.stories.tsx#Sizes
73
+
74
+ ### CustomSizes
75
+
76
+ Explicit `width`, `minWidth` and `maxWidth` for content the standard steps do not fit.
77
+
78
+ Source: Dialog/Dialog.stories.tsx#CustomSizes
79
+
80
+ ### Scrollable
81
+
82
+ The body scrolls while header and footer stay put, so the decision never scrolls out of
83
+ reach.
84
+
85
+ Source: Dialog/Dialog.stories.tsx#Scrollable
86
+
87
+ ### WithInputAtEdge
88
+
89
+ A field against the panel edge, which is where focus rings and shadows get clipped if the
90
+ padding is wrong.
91
+
92
+ Source: Dialog/Dialog.stories.tsx#WithInputAtEdge
93
+
94
+ ### WithInputAtEdgeScrollable
95
+
96
+ The same, with scrolling — the case where a focus ring can be cut by the scroll container
97
+ rather than the panel.
98
+
99
+ Source: Dialog/Dialog.stories.tsx#WithInputAtEdgeScrollable
100
+
101
+ ### WithNestedDrawer
102
+
103
+ A drawer opened from a dialog. Different families, so neither pushes the other back; they
104
+ stack.
105
+
106
+ Source: Dialog/Dialog.stories.tsx#WithNestedDrawer
107
+
108
+ ### WithNestedSelect
109
+
110
+ A `Select` inside a dialog, checking that its menu escapes the panel rather than being
111
+ clipped by it.
112
+
113
+ Source: Dialog/Dialog.stories.tsx#WithNestedSelect
114
+
115
+ ### WithNestedCalendar
116
+
117
+ A `Calendar` inside a dialog, the same check for a popover that is taller than the panel.
118
+
119
+ Source: Dialog/Dialog.stories.tsx#WithNestedCalendar
120
+
121
+ ### Controlled
122
+
123
+ Owning `open`, which is what you need when something outside the dialog decides it should
124
+ close.
125
+
126
+ Source: Dialog/Dialog.stories.tsx#Controlled
127
+
128
+ ### NoClosableOnEsc
129
+
130
+ Escape disabled, for a decision that must not be dismissed by reflex. Use it sparingly — it
131
+ takes away the exit readers expect.
132
+
133
+ Source: Dialog/Dialog.stories.tsx#NoClosableOnEsc
134
+
135
+ ### NoOverlay
136
+
137
+ Without the backdrop. The panel stops reading as blocking, which is usually the wrong signal
138
+ for a dialog.
139
+
140
+ Source: Dialog/Dialog.stories.tsx#NoOverlay
141
+
142
+ ### WithNested
143
+
144
+ A dialog inside a dialog: the outer one steps back so the depth is visible. Two is the most a
145
+ reader can follow.
146
+
147
+ Source: Dialog/Dialog.stories.tsx#WithNested
148
+
149
+ ### WithTabs
150
+
151
+ Tabs inside a dialog, for a task with a couple of facets — not as a way to fit a whole form
152
+ into one panel.
153
+
154
+ Source: Dialog/Dialog.stories.tsx#WithTabs
155
+
156
+ ## Story sources
157
+
158
+ ### Dialog/Dialog.stories.tsx
159
+
160
+ ```tsx
161
+ import { useState } from 'react';
162
+ import { createListCollection } from '@ark-ui/react/collection';
163
+ import type { Meta, StoryFn } from 'storybook-react-rsbuild';
164
+ import { PanelRight } from '../../icons';
165
+ import { Button } from '../Button';
166
+ import {
167
+ Calendar,
168
+ CalendarBody,
169
+ CalendarContent,
170
+ CalendarGrids,
171
+ CalendarTrigger,
172
+ } from '../Calendar';
173
+ import {
174
+ Drawer,
175
+ DrawerBody,
176
+ DrawerContent,
177
+ DrawerHeader,
178
+ DrawerTitle,
179
+ DrawerTrigger,
180
+ } from '../Drawer';
181
+ import {
182
+ DropdownMenu,
183
+ DropdownMenuContent,
184
+ DropdownMenuItem,
185
+ DropdownMenuTrigger,
186
+ } from '../DropdownMenu';
187
+ import { Input } from '../Input';
188
+ import {
189
+ Select,
190
+ SelectButton,
191
+ SelectContent,
192
+ SelectOption,
193
+ SelectOptionIndicator,
194
+ SelectOptionText,
195
+ SelectPositioner,
196
+ } from '../Select';
197
+ import { HStack, VStack } from '../Stack';
198
+ import { Switch, SwitchControl, SwitchLabel } from '../Switch';
199
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from '../Tabs';
200
+ import { Text } from '../Text';
201
+ import { DIALOG_SIZES, DIALOG_WIDTH_CONSTRAINTS } from './constants';
202
+ import { Dialog, type DialogProps } from './Dialog';
203
+ import { DialogBody } from './DialogBody';
204
+ import { DialogClose } from './DialogClose';
205
+ import { DialogContent } from './DialogContent';
206
+ import { DialogDescription } from './DialogDescription';
207
+ import { DialogFooter } from './DialogFooter';
208
+ import { DialogFooterControls } from './DialogFooterControls';
209
+ import { DialogHeader } from './DialogHeader';
210
+ import { DialogTitle } from './DialogTitle';
211
+ import { DialogTrigger } from './DialogTrigger';
212
+
213
+ const DESCRIPTION = [
214
+ 'A panel the reader has to resolve before carrying on — reach for `Drawer` when they should be able to keep it open and keep working, and `Popover` when the content is a detail rather than a task.',
215
+ "It is `Drawer` with `kind='dialog'`, which shares the panel but keeps the two families' nesting separate: a dialog only steps back for another dialog.",
216
+ ].join(' ');
217
+
218
+ const meta = {
219
+ title: 'Overlay/Dialog',
220
+ component: Dialog,
221
+ subcomponents: {
222
+ DialogTrigger,
223
+ DialogContent,
224
+ DialogHeader,
225
+ DialogTitle,
226
+ DialogDescription,
227
+ DialogBody,
228
+ DialogFooter,
229
+ DialogFooterControls,
230
+ DialogClose,
231
+ },
232
+ parameters: {
233
+ layout: 'centered',
234
+ docs: {
235
+ description: {
236
+ component: DESCRIPTION,
237
+ },
238
+ },
239
+ },
240
+ argTypes: {
241
+ open: {
242
+ control: { type: 'boolean' },
243
+ description: 'Whether the dialog is open',
244
+ },
245
+ width: {
246
+ control: { type: 'number' },
247
+ description: `Initial width of the dialog. Presets: small=${DIALOG_SIZES.small}, medium=${DIALOG_SIZES.medium}, large=${DIALOG_SIZES.large}`,
248
+ defaultValue: DIALOG_SIZES.small,
249
+ },
250
+ minWidth: {
251
+ control: { type: 'number' },
252
+ description: 'Minimum width',
253
+ defaultValue: DIALOG_WIDTH_CONSTRAINTS.min,
254
+ },
255
+ maxWidth: {
256
+ control: { type: 'number' },
257
+ description: 'Maximum width',
258
+ defaultValue: DIALOG_WIDTH_CONSTRAINTS.max,
259
+ },
260
+ },
261
+ decorators: [],
262
+ } satisfies Meta<typeof Dialog>;
263
+
264
+ export default meta;
265
+
266
+ /** Content placeholder styled like Figma designs - fills available space */
267
+ const ContentPlaceholder = ({ height }: { fillHeight?: boolean; height?: number }) => (
268
+ <div
269
+ className='w-full rounded-12 bg-bg-surface-5'
270
+ style={height ? { height: `${height}px` } : { height: '200px' }}
271
+ />
272
+ );
273
+
274
+ /**
275
+ * The minimum: trigger, content, and a title. Every dialog needs a title — it is what a screen
276
+ * reader announces on open.
277
+ */
278
+ export const Basic: StoryFn<DialogProps> = () => {
279
+ return (
280
+ <Dialog data-testid='dialog'>
281
+ <DialogTrigger asChild>
282
+ <Button variant='outline' color='neutral'>
283
+ Open Dialog
284
+ </Button>
285
+ </DialogTrigger>
286
+
287
+ <DialogContent>
288
+ <DialogHeader>
289
+ <DialogTitle>Dialog Title</DialogTitle>
290
+ </DialogHeader>
291
+
292
+ <DialogBody>
293
+ <ContentPlaceholder />
294
+ </DialogBody>
295
+ </DialogContent>
296
+ </Dialog>
297
+ );
298
+ };
299
+
300
+ /**
301
+ * `DialogFooter` holds the decision. Put the confirming action last, since that is where the
302
+ * eye finishes.
303
+ */
304
+ export const WithFooter: StoryFn<DialogProps> = () => {
305
+ return (
306
+ <Dialog>
307
+ <DialogTrigger asChild>
308
+ <Button variant='outline' color='neutral'>
309
+ Open Dialog
310
+ </Button>
311
+ </DialogTrigger>
312
+
313
+ <DialogContent>
314
+ <DialogHeader>
315
+ <DialogTitle>Dialog's title</DialogTitle>
316
+ </DialogHeader>
317
+
318
+ <DialogBody>
319
+ <ContentPlaceholder />
320
+ </DialogBody>
321
+
322
+ <DialogFooter>
323
+ <DialogFooterControls>
324
+ <Button variant='ghost' color='neutral' size='large'>
325
+ Button
326
+ </Button>
327
+ <Button variant='primary' color='brand' size='large'>
328
+ Button
329
+ </Button>
330
+ </DialogFooterControls>
331
+ </DialogFooter>
332
+ </DialogContent>
333
+ </Dialog>
334
+ );
335
+ };
336
+
337
+ /**
338
+ * `DialogDescription` states the consequence, which is what turns a confirmation from a speed
339
+ * bump into a decision. `DialogHeader` finds the title and description among its children and
340
+ * stacks them, so the close button stays right-aligned however many it gets.
341
+ */
342
+ export const WithDescription: StoryFn<DialogProps> = () => {
343
+ return (
344
+ <Dialog>
345
+ <DialogTrigger asChild>
346
+ <Button variant='outline' color='neutral'>
347
+ Open Dialog
348
+ </Button>
349
+ </DialogTrigger>
350
+
351
+ <DialogContent>
352
+ <DialogHeader>
353
+ <DialogTitle>Dialog's title</DialogTitle>
354
+ <DialogDescription>Description</DialogDescription>
355
+ </DialogHeader>
356
+
357
+ <DialogBody>
358
+ <ContentPlaceholder />
359
+ </DialogBody>
360
+
361
+ <DialogFooter>
362
+ <DialogFooterControls>
363
+ <Button variant='ghost' color='neutral' size='large'>
364
+ Button
365
+ </Button>
366
+ <Button variant='primary' color='brand' size='large'>
367
+ Button
368
+ </Button>
369
+ </DialogFooterControls>
370
+ </DialogFooter>
371
+ </DialogContent>
372
+ </Dialog>
373
+ );
374
+ };
375
+
376
+ /**
377
+ * A left-aligned action for the escape route — cancel, learn more — kept away from the
378
+ * confirming pair on the right.
379
+ */
380
+ export const WithFooterLeftActions: StoryFn<DialogProps> = () => (
381
+ <Dialog>
382
+ <DialogTrigger asChild>
383
+ <Button variant='outline' color='neutral'>
384
+ Open with Footer Actions
385
+ </Button>
386
+ </DialogTrigger>
387
+ <DialogContent>
388
+ <DialogHeader>
389
+ <DialogTitle>Footer with Left Actions</DialogTitle>
390
+ </DialogHeader>
391
+
392
+ <DialogBody>
393
+ <ContentPlaceholder />
394
+ </DialogBody>
395
+
396
+ <DialogFooter>
397
+ <DialogFooterControls placement='left'>
398
+ <Switch>
399
+ <SwitchControl />
400
+ <SwitchLabel>Remember choice</SwitchLabel>
401
+ </Switch>
402
+ </DialogFooterControls>
403
+
404
+ <DialogClose asChild>
405
+ <Button variant='ghost' color='neutral' size='large'>
406
+ Cancel
407
+ </Button>
408
+ </DialogClose>
409
+ <Button variant='primary' color='brand' size='large'>
410
+ Apply
411
+ </Button>
412
+ </DialogFooter>
413
+ </DialogContent>
414
+ </Dialog>
415
+ );
416
+
417
+ /**
418
+ * The standard widths. Pick by the content, not the importance: a wide dialog for a short
419
+ * question reads as a mistake.
420
+ */
421
+ export const Sizes: StoryFn<DialogProps> = () => (
422
+ <HStack gap={8} justify='center'>
423
+ <Dialog width={DIALOG_SIZES.small}>
424
+ <DialogTrigger asChild>
425
+ <Button variant='outline' color='neutral'>
426
+ Open Small ({DIALOG_SIZES.small}px)
427
+ </Button>
428
+ </DialogTrigger>
429
+ <DialogContent>
430
+ <DialogHeader>
431
+ <DialogTitle>Small Dialog ({DIALOG_SIZES.small}px)</DialogTitle>
432
+ </DialogHeader>
433
+
434
+ <DialogBody>
435
+ <ContentPlaceholder />
436
+ </DialogBody>
437
+ </DialogContent>
438
+ </Dialog>
439
+
440
+ <Dialog width={DIALOG_SIZES.medium}>
441
+ <DialogTrigger asChild>
442
+ <Button variant='outline' color='neutral'>
443
+ Open Medium ({DIALOG_SIZES.medium}px)
444
+ </Button>
445
+ </DialogTrigger>
446
+ <DialogContent>
447
+ <DialogHeader>
448
+ <DialogTitle>Medium Dialog ({DIALOG_SIZES.medium}px)</DialogTitle>
449
+ </DialogHeader>
450
+
451
+ <DialogBody>
452
+ <ContentPlaceholder />
453
+ </DialogBody>
454
+ </DialogContent>
455
+ </Dialog>
456
+
457
+ <Dialog width={DIALOG_SIZES.large}>
458
+ <DialogTrigger asChild>
459
+ <Button variant='outline' color='neutral'>
460
+ Open Large ({DIALOG_SIZES.large}px)
461
+ </Button>
462
+ </DialogTrigger>
463
+ <DialogContent>
464
+ <DialogHeader>
465
+ <DialogTitle>Large Dialog ({DIALOG_SIZES.large}px)</DialogTitle>
466
+ </DialogHeader>
467
+
468
+ <DialogBody>
469
+ <ContentPlaceholder />
470
+ </DialogBody>
471
+ </DialogContent>
472
+ </Dialog>
473
+ </HStack>
474
+ );
475
+
476
+ /**
477
+ * Explicit `width`, `minWidth` and `maxWidth` for content the standard steps do not fit.
478
+ */
479
+ export const CustomSizes: StoryFn<DialogProps> = () => {
480
+ return (
481
+ <HStack gap={8} justify='center'>
482
+ <Dialog width='50%'>
483
+ <DialogTrigger asChild>
484
+ <Button variant='outline' color='neutral'>
485
+ 50% Width
486
+ </Button>
487
+ </DialogTrigger>
488
+
489
+ <DialogContent>
490
+ <DialogHeader>
491
+ <DialogTitle>50% Width Dialog</DialogTitle>
492
+ </DialogHeader>
493
+
494
+ <DialogBody>
495
+ <div className='py-12'>
496
+ <p>This dialog takes 50% of the viewport width.</p>
497
+ </div>
498
+ </DialogBody>
499
+ </DialogContent>
500
+ </Dialog>
501
+
502
+ <Dialog width={1000}>
503
+ <DialogTrigger asChild>
504
+ <Button variant='outline' color='neutral'>
505
+ 1000px Width
506
+ </Button>
507
+ </DialogTrigger>
508
+
509
+ <DialogContent>
510
+ <DialogHeader>
511
+ <DialogTitle>1000px Width Dialog</DialogTitle>
512
+ </DialogHeader>
513
+
514
+ <DialogBody>
515
+ <div className='py-12'>
516
+ <p>This dialog has a fixed width of 1000px.</p>
517
+ </div>
518
+ </DialogBody>
519
+ </DialogContent>
520
+ </Dialog>
521
+ </HStack>
522
+ );
523
+ };
524
+
525
+ /**
526
+ * The body scrolls while header and footer stay put, so the decision never scrolls out of
527
+ * reach.
528
+ */
529
+ export const Scrollable: StoryFn<DialogProps> = () => {
530
+ return (
531
+ <Dialog>
532
+ <DialogTrigger asChild>
533
+ <Button variant='outline' color='neutral'>
534
+ Open Dialog with Scroll
535
+ </Button>
536
+ </DialogTrigger>
537
+
538
+ <DialogContent>
539
+ <DialogHeader>
540
+ <DialogTitle>Scrollable Content</DialogTitle>
541
+ </DialogHeader>
542
+
543
+ <DialogBody>
544
+ <div className='flex flex-col gap-16'>
545
+ {Array.from({ length: 20 }).map((_, i) => (
546
+ <ContentPlaceholder key={i} height={100} />
547
+ ))}
548
+ </div>
549
+ </DialogBody>
550
+
551
+ <DialogFooter>
552
+ <DialogClose asChild>
553
+ <Button variant='ghost' color='neutral' size='large'>
554
+ Close
555
+ </Button>
556
+ </DialogClose>
557
+ <Button variant='primary' color='brand' size='large'>
558
+ Confirm
559
+ </Button>
560
+ </DialogFooter>
561
+ </DialogContent>
562
+ </Dialog>
563
+ );
564
+ };
565
+
566
+ /**
567
+ * A field against the panel edge, which is where focus rings and shadows get clipped if the
568
+ * padding is wrong.
569
+ */
570
+ export const WithInputAtEdge: StoryFn<DialogProps> = () => {
571
+ return (
572
+ <Dialog>
573
+ <DialogTrigger asChild>
574
+ <Button variant='outline' color='neutral'>
575
+ Open Dialog with Edge Input
576
+ </Button>
577
+ </DialogTrigger>
578
+
579
+ <DialogContent>
580
+ <DialogHeader>
581
+ <DialogTitle>Delete account</DialogTitle>
582
+ </DialogHeader>
583
+
584
+ <DialogBody>
585
+ <Input placeholder='Type your email to confirm' data-testid='edge-input' />
586
+ </DialogBody>
587
+
588
+ <DialogFooter>
589
+ <DialogClose asChild>
590
+ <Button variant='ghost' color='neutral' size='large'>
591
+ Cancel
592
+ </Button>
593
+ </DialogClose>
594
+ <Button variant='primary' color='destructive' size='large'>
595
+ Delete
596
+ </Button>
597
+ </DialogFooter>
598
+ </DialogContent>
599
+ </Dialog>
600
+ );
601
+ };
602
+
603
+ /**
604
+ * The same, with scrolling — the case where a focus ring can be cut by the scroll container
605
+ * rather than the panel.
606
+ */
607
+ export const WithInputAtEdgeScrollable: StoryFn<DialogProps> = () => {
608
+ return (
609
+ <Dialog>
610
+ <DialogTrigger asChild>
611
+ <Button variant='outline' color='neutral'>
612
+ Open Scrollable Dialog with Edge Input
613
+ </Button>
614
+ </DialogTrigger>
615
+
616
+ <DialogContent>
617
+ <DialogHeader>
618
+ <DialogTitle>Delete account</DialogTitle>
619
+ </DialogHeader>
620
+
621
+ <DialogBody>
622
+ <div className='flex flex-col gap-16'>
623
+ {Array.from({ length: 10 }).map((_, i) => (
624
+ <ContentPlaceholder key={i} height={100} />
625
+ ))}
626
+
627
+ <Input placeholder='Type your email to confirm' data-testid='edge-input' />
628
+ </div>
629
+ </DialogBody>
630
+
631
+ <DialogFooter>
632
+ <DialogClose asChild>
633
+ <Button variant='ghost' color='neutral' size='large'>
634
+ Cancel
635
+ </Button>
636
+ </DialogClose>
637
+ <Button variant='primary' color='destructive' size='large'>
638
+ Delete
639
+ </Button>
640
+ </DialogFooter>
641
+ </DialogContent>
642
+ </Dialog>
643
+ );
644
+ };
645
+
646
+ /**
647
+ * A drawer opened from a dialog. Different families, so neither pushes the other back; they
648
+ * stack.
649
+ */
650
+ export const WithNestedDrawer: StoryFn<DialogProps> = () => {
651
+ return (
652
+ <Dialog>
653
+ <DialogTrigger asChild>
654
+ <Button variant='outline' color='neutral'>
655
+ Open dialog with drawer inside
656
+ </Button>
657
+ </DialogTrigger>
658
+
659
+ <DialogContent>
660
+ <DialogHeader>
661
+ <DialogTitle>Dialog stays in place</DialogTitle>
662
+ </DialogHeader>
663
+
664
+ <DialogBody>
665
+ <VStack gap={12} align='start'>
666
+ <Text>Opening the drawer below must not scale or shift this dialog.</Text>
667
+
668
+ <Drawer>
669
+ <DrawerTrigger asChild>
670
+ <Button variant='outline' color='neutral'>
671
+ <PanelRight />
672
+ Open drawer
673
+ </Button>
674
+ </DrawerTrigger>
675
+
676
+ <DrawerContent>
677
+ <DrawerHeader>
678
+ <DrawerTitle>Drawer over a dialog</DrawerTitle>
679
+ </DrawerHeader>
680
+
681
+ <DrawerBody>
682
+ <ContentPlaceholder height={200} />
683
+ </DrawerBody>
684
+ </DrawerContent>
685
+ </Drawer>
686
+ </VStack>
687
+ </DialogBody>
688
+ </DialogContent>
689
+ </Dialog>
690
+ );
691
+ };
692
+
693
+ /**
694
+ * A `Select` inside a dialog, checking that its menu escapes the panel rather than being
695
+ * clipped by it.
696
+ */
697
+ export const WithNestedSelect: StoryFn<DialogProps> = () => {
698
+ const collection = createListCollection({
699
+ items: [
700
+ { label: 'React', value: 'react' },
701
+ { label: 'Vue', value: 'vue' },
702
+ { label: 'Angular', value: 'angular' },
703
+ ],
704
+ });
705
+
706
+ return (
707
+ <Dialog>
708
+ <DialogTrigger asChild>
709
+ <Button variant='outline' color='neutral'>
710
+ Open dialog with nested select
711
+ </Button>
712
+ </DialogTrigger>
713
+
714
+ <DialogContent>
715
+ <DialogHeader>
716
+ <DialogTitle>[Level 1] Main Dialog</DialogTitle>
717
+
718
+ <Dialog>
719
+ <DialogTrigger asChild>
720
+ <Button variant='ghost' color='neutral' size='small'>
721
+ <PanelRight />
722
+ Open nested dialog
723
+ </Button>
724
+ </DialogTrigger>
725
+
726
+ <DialogContent>
727
+ <DialogHeader>
728
+ <DialogTitle>[Level 2] With Select</DialogTitle>
729
+ </DialogHeader>
730
+
731
+ <DialogBody>
732
+ <VStack gap={12} align='start'>
733
+ <Select collection={collection} data-testid='nested-select'>
734
+ <SelectButton />
735
+
736
+ <SelectPositioner>
737
+ <SelectContent>
738
+ {collection.items.map(item => (
739
+ <SelectOption key={item.value} item={item}>
740
+ <SelectOptionText>{item.label}</SelectOptionText>
741
+ <SelectOptionIndicator />
742
+ </SelectOption>
743
+ ))}
744
+ </SelectContent>
745
+ </SelectPositioner>
746
+ </Select>
747
+
748
+ <DropdownMenu data-testid='nested-dropdown'>
749
+ <DropdownMenuTrigger asChild>
750
+ <Button variant='outline' color='neutral'>
751
+ Open menu
752
+ </Button>
753
+ </DropdownMenuTrigger>
754
+ <DropdownMenuContent>
755
+ <DropdownMenuItem>First action</DropdownMenuItem>
756
+ <DropdownMenuItem>Second action</DropdownMenuItem>
757
+ </DropdownMenuContent>
758
+ </DropdownMenu>
759
+ </VStack>
760
+ </DialogBody>
761
+ </DialogContent>
762
+ </Dialog>
763
+ </DialogHeader>
764
+
765
+ <DialogBody>
766
+ <ContentPlaceholder height={200} />
767
+ </DialogBody>
768
+ </DialogContent>
769
+ </Dialog>
770
+ );
771
+ };
772
+
773
+ /**
774
+ * A `Calendar` inside a dialog, the same check for a popover that is taller than the panel.
775
+ */
776
+ export const WithNestedCalendar: StoryFn<DialogProps> = () => {
777
+ return (
778
+ <Dialog>
779
+ <DialogTrigger asChild>
780
+ <Button variant='outline' color='neutral'>
781
+ Open dialog with nested calendar
782
+ </Button>
783
+ </DialogTrigger>
784
+
785
+ <DialogContent>
786
+ <DialogHeader>
787
+ <DialogTitle>[Level 1] Main Dialog</DialogTitle>
788
+
789
+ <Dialog>
790
+ <DialogTrigger asChild>
791
+ <Button variant='ghost' color='neutral' size='small'>
792
+ <PanelRight />
793
+ Open nested dialog
794
+ </Button>
795
+ </DialogTrigger>
796
+
797
+ <DialogContent>
798
+ <DialogHeader>
799
+ <DialogTitle>[Level 2] With Calendar</DialogTitle>
800
+ </DialogHeader>
801
+
802
+ <DialogBody>
803
+ <Calendar type='single'>
804
+ <CalendarTrigger asChild>
805
+ <Button variant='outline' color='neutral'>
806
+ Open calendar
807
+ </Button>
808
+ </CalendarTrigger>
809
+ <CalendarContent>
810
+ <CalendarBody>
811
+ <CalendarGrids />
812
+ </CalendarBody>
813
+ </CalendarContent>
814
+ </Calendar>
815
+ </DialogBody>
816
+ </DialogContent>
817
+ </Dialog>
818
+ </DialogHeader>
819
+
820
+ <DialogBody>
821
+ <ContentPlaceholder height={200} />
822
+ </DialogBody>
823
+ </DialogContent>
824
+ </Dialog>
825
+ );
826
+ };
827
+
828
+ /**
829
+ * Owning `open`, which is what you need when something outside the dialog decides it should
830
+ * close.
831
+ */
832
+ export const Controlled: StoryFn<DialogProps> = () => {
833
+ const [open, setOpen] = useState(false);
834
+
835
+ return (
836
+ <>
837
+ <Button variant='outline' color='neutral' onClick={() => setOpen(true)}>
838
+ Open Controlled Dialog
839
+ </Button>
840
+
841
+ <Dialog open={open} onOpenChange={setOpen}>
842
+ <DialogContent>
843
+ <DialogHeader>
844
+ <DialogTitle>Controlled Dialog</DialogTitle>
845
+ </DialogHeader>
846
+
847
+ <DialogBody>
848
+ <div className='py-12'>
849
+ <p className='mb-16'>This dialog is controlled externally.</p>
850
+ <ContentPlaceholder />
851
+ </div>
852
+ </DialogBody>
853
+
854
+ <DialogFooter>
855
+ <DialogClose asChild>
856
+ <Button variant='ghost' color='neutral' size='large'>
857
+ Cancel
858
+ </Button>
859
+ </DialogClose>
860
+ <Button variant='primary' color='brand' size='large'>
861
+ Save Changes
862
+ </Button>
863
+ </DialogFooter>
864
+ </DialogContent>
865
+ </Dialog>
866
+ </>
867
+ );
868
+ };
869
+
870
+ /**
871
+ * Escape disabled, for a decision that must not be dismissed by reflex. Use it sparingly — it
872
+ * takes away the exit readers expect.
873
+ */
874
+ export const NoClosableOnEsc: StoryFn<DialogProps> = () => {
875
+ return (
876
+ <Dialog closeOnEscape={false}>
877
+ <DialogTrigger asChild>
878
+ <Button variant='outline' color='neutral'>
879
+ Open Dialog
880
+ </Button>
881
+ </DialogTrigger>
882
+
883
+ <DialogContent>
884
+ <DialogHeader>
885
+ <DialogTitle>Dialog Title</DialogTitle>
886
+ </DialogHeader>
887
+
888
+ <DialogBody>
889
+ <ContentPlaceholder />
890
+ </DialogBody>
891
+ </DialogContent>
892
+ </Dialog>
893
+ );
894
+ };
895
+
896
+ /**
897
+ * Without the backdrop. The panel stops reading as blocking, which is usually the wrong signal
898
+ * for a dialog.
899
+ */
900
+ export const NoOverlay: StoryFn<DialogProps> = () => {
901
+ return (
902
+ <VStack gap={12}>
903
+ <Text>
904
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has
905
+ been the industry's standard dummy text ever since the 1500s, when an unknown printer took a
906
+ galley of type and scrambled it to make a type specimen book. It has survived not only five
907
+ centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
908
+ It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum
909
+ passages, and more recently with desktop publishing software like Aldus PageMaker including
910
+ versions of Lorem Ipsum. Why do we use it? It is a long established fact that a reader will
911
+ be distracted by the readable content of a page when looking at its layout. The point of
912
+ using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed
913
+ to using 'Content here, content here', making it look like readable English. Many desktop
914
+ publishing packages and web page editors now use Lorem Ipsum as their default model text,
915
+ and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various
916
+ versions have evolved over the years, sometimes by accident, sometimes on purpose (injected
917
+ humour and the like).
918
+ </Text>
919
+
920
+ <Dialog overlay={false}>
921
+ <DialogTrigger asChild>
922
+ <Button variant='outline' color='neutral'>
923
+ Open without Overlay
924
+ </Button>
925
+ </DialogTrigger>
926
+
927
+ <DialogContent>
928
+ <DialogHeader>
929
+ <DialogTitle>No Overlay</DialogTitle>
930
+ </DialogHeader>
931
+
932
+ <DialogBody>
933
+ <div className='py-12'>
934
+ <p>This dialog has no overlay backdrop.</p>
935
+ </div>
936
+ </DialogBody>
937
+ </DialogContent>
938
+ </Dialog>
939
+
940
+ <Text>
941
+ Where does it come from? Contrary to popular belief, Lorem Ipsum is not simply random text.
942
+ It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years
943
+ old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up
944
+ one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going
945
+ through the cites of the word in classical literature, discovered the undoubtable source.
946
+ Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The
947
+ Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the
948
+ theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem
949
+ ipsum dolor sit amet..", comes from a line in section 1.10.32. The standard chunk of Lorem
950
+ Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and
951
+ 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact
952
+ original form, accompanied by English versions from the 1914 translation by H. Rackham.
953
+ </Text>
954
+ </VStack>
955
+ );
956
+ };
957
+
958
+ /**
959
+ * A dialog inside a dialog: the outer one steps back so the depth is visible. Two is the most a
960
+ * reader can follow.
961
+ */
962
+ export const WithNested: StoryFn<DialogProps> = () => {
963
+ return (
964
+ <Dialog>
965
+ <DialogTrigger asChild>
966
+ <Button variant='outline' color='neutral'>
967
+ 1st level dialog
968
+ </Button>
969
+ </DialogTrigger>
970
+
971
+ <DialogContent>
972
+ <DialogHeader>
973
+ <DialogTitle>[Level 1] Main Dialog</DialogTitle>
974
+
975
+ {/* Level 2 dialog */}
976
+ <Dialog>
977
+ <DialogTrigger asChild>
978
+ <Button variant='ghost' color='neutral' size='small'>
979
+ <PanelRight />
980
+ 2nd level dialog
981
+ </Button>
982
+ </DialogTrigger>
983
+
984
+ <DialogContent>
985
+ <DialogHeader>
986
+ <DialogTitle>[Level 2] Detail View</DialogTitle>
987
+ {/* Level 3 dialog */}
988
+ <Dialog>
989
+ <DialogTrigger asChild>
990
+ <Button variant='ghost' color='neutral' size='small'>
991
+ <PanelRight />
992
+ 3nd level dialog
993
+ </Button>
994
+ </DialogTrigger>
995
+
996
+ <DialogContent>
997
+ <DialogHeader>
998
+ <DialogTitle>[Level 3] Deep Nested</DialogTitle>
999
+ </DialogHeader>
1000
+
1001
+ <DialogBody>
1002
+ <VStack gap={12} align='start'>
1003
+ <Text>Level 3! Unlimited nesting works.</Text>
1004
+ <ContentPlaceholder height={150} />
1005
+ </VStack>
1006
+ </DialogBody>
1007
+
1008
+ <DialogFooter>
1009
+ <DialogClose asChild>
1010
+ <Button size='large' variant='ghost' color='neutral'>
1011
+ Back
1012
+ </Button>
1013
+ </DialogClose>
1014
+ </DialogFooter>
1015
+ </DialogContent>
1016
+ </Dialog>
1017
+ </DialogHeader>
1018
+
1019
+ <DialogBody>
1020
+ <VStack gap={12} align='start'>
1021
+ <Text>This is Level 2 dialog. Main dialog is pushed back.</Text>
1022
+
1023
+ <ContentPlaceholder height={150} />
1024
+ </VStack>
1025
+ </DialogBody>
1026
+
1027
+ <DialogFooter>
1028
+ <DialogClose asChild>
1029
+ <Button variant='ghost' color='neutral' size='large'>
1030
+ Back
1031
+ </Button>
1032
+ </DialogClose>
1033
+ <Button variant='primary' color='brand' size='large'>
1034
+ Apply
1035
+ </Button>
1036
+ </DialogFooter>
1037
+ </DialogContent>
1038
+ </Dialog>
1039
+ </DialogHeader>
1040
+
1041
+ <DialogBody>
1042
+ <VStack gap={12} align='start'>
1043
+ <Text>This is Level 1 dialog. Click above to open nested dialogs:</Text>
1044
+
1045
+ <ContentPlaceholder height={150} />
1046
+ </VStack>
1047
+ </DialogBody>
1048
+
1049
+ <DialogFooter>
1050
+ <DialogClose asChild>
1051
+ <Button variant='ghost' color='neutral' size='large'>
1052
+ Cancel
1053
+ </Button>
1054
+ </DialogClose>
1055
+ <Button variant='primary' color='brand' size='large'>
1056
+ Save
1057
+ </Button>
1058
+ </DialogFooter>
1059
+ </DialogContent>
1060
+ </Dialog>
1061
+ );
1062
+ };
1063
+
1064
+ /**
1065
+ * Tabs inside a dialog, for a task with a couple of facets — not as a way to fit a whole form
1066
+ * into one panel.
1067
+ */
1068
+ export const WithTabs: StoryFn<DialogProps> = () => {
1069
+ const [activeTab, setActiveTab] = useState('tab1');
1070
+
1071
+ return (
1072
+ <Dialog width={960}>
1073
+ <DialogTrigger asChild>
1074
+ <Button variant='outline' color='neutral'>
1075
+ Open Dialog with Tabs
1076
+ </Button>
1077
+ </DialogTrigger>
1078
+
1079
+ <DialogContent>
1080
+ <Tabs value={activeTab} onChange={setActiveTab} asChild>
1081
+ <DialogHeader>
1082
+ <DialogTitle>Tabbed Content</DialogTitle>
1083
+ </DialogHeader>
1084
+
1085
+ <TabsList>
1086
+ <TabsTrigger value='tab1'>General</TabsTrigger>
1087
+ <TabsTrigger value='tab2'>Settings</TabsTrigger>
1088
+ <TabsTrigger value='tab3'>Advanced</TabsTrigger>
1089
+ </TabsList>
1090
+
1091
+ <DialogBody>
1092
+ <div className='pt-12'>
1093
+ <TabsContent value='tab1'>
1094
+ <h3 className='text-lg font-medium mb-8'>General Settings</h3>
1095
+ <ContentPlaceholder height={300} />
1096
+ </TabsContent>
1097
+ <TabsContent value='tab2'>
1098
+ <h3 className='text-lg font-medium mb-8'>Configuration</h3>
1099
+ <ContentPlaceholder height={300} />
1100
+ </TabsContent>
1101
+ <TabsContent value='tab3'>
1102
+ <h3 className='text-lg font-medium mb-8'>Advanced Options</h3>
1103
+ <ContentPlaceholder height={300} />
1104
+ </TabsContent>
1105
+ </div>
1106
+ </DialogBody>
1107
+ </Tabs>
1108
+
1109
+ <DialogFooter>
1110
+ <DialogClose asChild>
1111
+ <Button variant='ghost' color='neutral' size='large'>
1112
+ Cancel
1113
+ </Button>
1114
+ </DialogClose>
1115
+ <Button variant='primary' color='brand' size='large'>
1116
+ Apply Settings
1117
+ </Button>
1118
+ </DialogFooter>
1119
+ </DialogContent>
1120
+ </Dialog>
1121
+ );
1122
+ };
1123
+ ```
1124
+
1125
+ ### Dialog/constants.ts
1126
+
1127
+ ```tsx
1128
+ /** Preset drawer widths in pixels */
1129
+ export const DIALOG_SIZES = {
1130
+ small: 400,
1131
+ medium: 560,
1132
+ large: 960,
1133
+ } as const;
1134
+
1135
+ /** Default min/max width constraints */
1136
+ export const DIALOG_WIDTH_CONSTRAINTS = {
1137
+ min: 400,
1138
+ max: 1130,
1139
+ } as const;
1140
+ ```