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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (963) hide show
  1. package/README.md +114 -2
  2. package/bin/claude-design.js +347 -0
  3. package/dist/SETUP.md +130 -0
  4. package/dist/UPDATE.md +84 -0
  5. package/dist/assets/Icons/activity.svg +1 -0
  6. package/dist/assets/Icons/alt.svg +1 -0
  7. package/dist/assets/Icons/android-neutral.svg +1 -0
  8. package/dist/assets/Icons/android.svg +1 -0
  9. package/dist/assets/Icons/api.svg +1 -0
  10. package/dist/assets/Icons/apple-music-neutral.svg +1 -0
  11. package/dist/assets/Icons/apple-music.svg +1 -0
  12. package/dist/assets/Icons/apple-neutral.svg +1 -0
  13. package/dist/assets/Icons/apple-podcasts-neutral.svg +1 -0
  14. package/dist/assets/Icons/apple-podcasts.svg +1 -0
  15. package/dist/assets/Icons/apple.svg +1 -0
  16. package/dist/assets/Icons/archive.svg +1 -0
  17. package/dist/assets/Icons/arrow-big-up-dash.svg +1 -0
  18. package/dist/assets/Icons/arrow-big-up.svg +1 -0
  19. package/dist/assets/Icons/arrow-down-left.svg +1 -0
  20. package/dist/assets/Icons/arrow-down-right.svg +1 -0
  21. package/dist/assets/Icons/arrow-down.svg +1 -0
  22. package/dist/assets/Icons/arrow-left.svg +1 -0
  23. package/dist/assets/Icons/arrow-right-alt.svg +1 -0
  24. package/dist/assets/Icons/arrow-right.svg +1 -0
  25. package/dist/assets/Icons/arrow-up-down.svg +1 -0
  26. package/dist/assets/Icons/arrow-up-left.svg +1 -0
  27. package/dist/assets/Icons/arrow-up-right.svg +1 -0
  28. package/dist/assets/Icons/arrow-up.svg +1 -0
  29. package/dist/assets/Icons/artstation-neutral.svg +1 -0
  30. package/dist/assets/Icons/artstation.svg +1 -0
  31. package/dist/assets/Icons/asterisk.svg +1 -0
  32. package/dist/assets/Icons/audio-waveform.svg +1 -0
  33. package/dist/assets/Icons/aws-neutral.svg +1 -0
  34. package/dist/assets/Icons/aws.svg +1 -0
  35. package/dist/assets/Icons/badge-check.svg +1 -0
  36. package/dist/assets/Icons/baidu-neutral.svg +1 -0
  37. package/dist/assets/Icons/baidu.svg +1 -0
  38. package/dist/assets/Icons/bandage.svg +1 -0
  39. package/dist/assets/Icons/behance-neutral.svg +1 -0
  40. package/dist/assets/Icons/behance.svg +1 -0
  41. package/dist/assets/Icons/bell-cog.svg +1 -0
  42. package/dist/assets/Icons/bell.svg +1 -0
  43. package/dist/assets/Icons/binary.svg +1 -0
  44. package/dist/assets/Icons/book-open.svg +1 -0
  45. package/dist/assets/Icons/book.svg +1 -0
  46. package/dist/assets/Icons/boosty-neutral.svg +1 -0
  47. package/dist/assets/Icons/boosty.svg +1 -0
  48. package/dist/assets/Icons/bot.svg +1 -0
  49. package/dist/assets/Icons/brain.svg +1 -0
  50. package/dist/assets/Icons/braze-neutral.svg +1 -0
  51. package/dist/assets/Icons/braze.svg +1 -0
  52. package/dist/assets/Icons/brevo-neutral.svg +1 -0
  53. package/dist/assets/Icons/brevo.svg +1 -0
  54. package/dist/assets/Icons/bug-off.svg +1 -0
  55. package/dist/assets/Icons/bug-play.svg +1 -0
  56. package/dist/assets/Icons/bug.svg +1 -0
  57. package/dist/assets/Icons/building.svg +1 -0
  58. package/dist/assets/Icons/building2.svg +1 -0
  59. package/dist/assets/Icons/calendar-check.svg +1 -0
  60. package/dist/assets/Icons/calendar-check2.svg +1 -0
  61. package/dist/assets/Icons/calendar-clock.svg +1 -0
  62. package/dist/assets/Icons/calendar-cog.svg +1 -0
  63. package/dist/assets/Icons/calendar-days.svg +1 -0
  64. package/dist/assets/Icons/calendar-fold.svg +1 -0
  65. package/dist/assets/Icons/calendar-heart.svg +1 -0
  66. package/dist/assets/Icons/calendar-minus.svg +1 -0
  67. package/dist/assets/Icons/calendar-minus2.svg +1 -0
  68. package/dist/assets/Icons/calendar-off.svg +1 -0
  69. package/dist/assets/Icons/calendar-plus.svg +1 -0
  70. package/dist/assets/Icons/calendar-plus2.svg +1 -0
  71. package/dist/assets/Icons/calendar-range.svg +1 -0
  72. package/dist/assets/Icons/calendar-search.svg +1 -0
  73. package/dist/assets/Icons/calendar-x.svg +1 -0
  74. package/dist/assets/Icons/calendar-x2.svg +1 -0
  75. package/dist/assets/Icons/calendar.svg +1 -0
  76. package/dist/assets/Icons/chart-area.svg +1 -0
  77. package/dist/assets/Icons/chart-bar.svg +1 -0
  78. package/dist/assets/Icons/chart-column.svg +1 -0
  79. package/dist/assets/Icons/chart-no-axes-column.svg +1 -0
  80. package/dist/assets/Icons/check-check.svg +1 -0
  81. package/dist/assets/Icons/check.svg +1 -0
  82. package/dist/assets/Icons/checkbox-indeterminate.svg +1 -0
  83. package/dist/assets/Icons/chevron-down.svg +1 -0
  84. package/dist/assets/Icons/chevron-first.svg +1 -0
  85. package/dist/assets/Icons/chevron-last.svg +1 -0
  86. package/dist/assets/Icons/chevron-left.svg +1 -0
  87. package/dist/assets/Icons/chevron-right.svg +1 -0
  88. package/dist/assets/Icons/chevron-up-down.svg +1 -0
  89. package/dist/assets/Icons/chevron-up.svg +1 -0
  90. package/dist/assets/Icons/chevrons-down-up.svg +1 -0
  91. package/dist/assets/Icons/chevrons-down.svg +1 -0
  92. package/dist/assets/Icons/chevrons-left-right.svg +1 -0
  93. package/dist/assets/Icons/chevrons-left.svg +1 -0
  94. package/dist/assets/Icons/chevrons-right-left.svg +1 -0
  95. package/dist/assets/Icons/chevrons-right.svg +1 -0
  96. package/dist/assets/Icons/chevrons-up-down.svg +1 -0
  97. package/dist/assets/Icons/chevrons-up.svg +1 -0
  98. package/dist/assets/Icons/circle-arrow-down.svg +1 -0
  99. package/dist/assets/Icons/circle-arrow-left.svg +1 -0
  100. package/dist/assets/Icons/circle-arrow-out-down-left.svg +1 -0
  101. package/dist/assets/Icons/circle-arrow-out-down-right.svg +1 -0
  102. package/dist/assets/Icons/circle-arrow-out-up-left.svg +1 -0
  103. package/dist/assets/Icons/circle-arrow-out-up-right.svg +1 -0
  104. package/dist/assets/Icons/circle-arrow-right.svg +1 -0
  105. package/dist/assets/Icons/circle-arrow-up.svg +1 -0
  106. package/dist/assets/Icons/circle-check-big.svg +1 -0
  107. package/dist/assets/Icons/circle-check.svg +1 -0
  108. package/dist/assets/Icons/circle-chevron-down.svg +1 -0
  109. package/dist/assets/Icons/circle-chevron-left.svg +1 -0
  110. package/dist/assets/Icons/circle-chevron-right.svg +1 -0
  111. package/dist/assets/Icons/circle-chevron-up.svg +1 -0
  112. package/dist/assets/Icons/circle-dashed.svg +1 -0
  113. package/dist/assets/Icons/circle-dot-dashed.svg +1 -0
  114. package/dist/assets/Icons/circle-ellipsis.svg +1 -0
  115. package/dist/assets/Icons/circle-gauge.svg +1 -0
  116. package/dist/assets/Icons/circle-help.svg +1 -0
  117. package/dist/assets/Icons/circle-minus.svg +1 -0
  118. package/dist/assets/Icons/circle-plus.svg +1 -0
  119. package/dist/assets/Icons/circle-slash.svg +1 -0
  120. package/dist/assets/Icons/circle-slash2.svg +1 -0
  121. package/dist/assets/Icons/circle-stop.svg +1 -0
  122. package/dist/assets/Icons/circle.svg +1 -0
  123. package/dist/assets/Icons/clipboard-check.svg +1 -0
  124. package/dist/assets/Icons/clipboard-x.svg +1 -0
  125. package/dist/assets/Icons/clipboard.svg +1 -0
  126. package/dist/assets/Icons/clock-fading.svg +1 -0
  127. package/dist/assets/Icons/clock.svg +1 -0
  128. package/dist/assets/Icons/cloud-off.svg +1 -0
  129. package/dist/assets/Icons/cloud-sync.svg +1 -0
  130. package/dist/assets/Icons/cloud.svg +1 -0
  131. package/dist/assets/Icons/code.svg +1 -0
  132. package/dist/assets/Icons/collapse.svg +1 -0
  133. package/dist/assets/Icons/columns3-cog.svg +1 -0
  134. package/dist/assets/Icons/command.svg +1 -0
  135. package/dist/assets/Icons/compass.svg +1 -0
  136. package/dist/assets/Icons/copy-slash.svg +1 -0
  137. package/dist/assets/Icons/copy.svg +1 -0
  138. package/dist/assets/Icons/corner-down-left.svg +1 -0
  139. package/dist/assets/Icons/corner-down-right.svg +1 -0
  140. package/dist/assets/Icons/corner-left-down.svg +1 -0
  141. package/dist/assets/Icons/corner-left-up.svg +1 -0
  142. package/dist/assets/Icons/corner-right-down.svg +1 -0
  143. package/dist/assets/Icons/corner-right-up.svg +1 -0
  144. package/dist/assets/Icons/corner-up-left.svg +1 -0
  145. package/dist/assets/Icons/corner-up-right.svg +1 -0
  146. package/dist/assets/Icons/cpu.svg +1 -0
  147. package/dist/assets/Icons/credit-card.svg +1 -0
  148. package/dist/assets/Icons/crosshair.svg +1 -0
  149. package/dist/assets/Icons/ctrl.svg +1 -0
  150. package/dist/assets/Icons/database.svg +1 -0
  151. package/dist/assets/Icons/devianart-neutral.svg +1 -0
  152. package/dist/assets/Icons/devianart.svg +1 -0
  153. package/dist/assets/Icons/discord-neutral.svg +1 -0
  154. package/dist/assets/Icons/discord.svg +1 -0
  155. package/dist/assets/Icons/dollar-sign.svg +1 -0
  156. package/dist/assets/Icons/dot.svg +1 -0
  157. package/dist/assets/Icons/download.svg +1 -0
  158. package/dist/assets/Icons/dprofile-neutral.svg +1 -0
  159. package/dist/assets/Icons/dprofile.svg +1 -0
  160. package/dist/assets/Icons/dribbble-neutral.svg +1 -0
  161. package/dist/assets/Icons/dribbble.svg +1 -0
  162. package/dist/assets/Icons/droplet.svg +1 -0
  163. package/dist/assets/Icons/duplicate.svg +1 -0
  164. package/dist/assets/Icons/dzen-neutral.svg +1 -0
  165. package/dist/assets/Icons/dzen.svg +1 -0
  166. package/dist/assets/Icons/earth-lock.svg +1 -0
  167. package/dist/assets/Icons/earth.svg +1 -0
  168. package/dist/assets/Icons/ellipsis.svg +1 -0
  169. package/dist/assets/Icons/expand.svg +1 -0
  170. package/dist/assets/Icons/external-link.svg +1 -0
  171. package/dist/assets/Icons/eye-off.svg +1 -0
  172. package/dist/assets/Icons/eye.svg +1 -0
  173. package/dist/assets/Icons/facebook-neutral.svg +1 -0
  174. package/dist/assets/Icons/facebook.svg +1 -0
  175. package/dist/assets/Icons/fast-forward.svg +1 -0
  176. package/dist/assets/Icons/figma-neutral.svg +1 -0
  177. package/dist/assets/Icons/figma.svg +1 -0
  178. package/dist/assets/Icons/file-down.svg +1 -0
  179. package/dist/assets/Icons/file-plus.svg +1 -0
  180. package/dist/assets/Icons/file-text.svg +1 -0
  181. package/dist/assets/Icons/file.svg +1 -0
  182. package/dist/assets/Icons/film.svg +1 -0
  183. package/dist/assets/Icons/filter-x.svg +1 -0
  184. package/dist/assets/Icons/filter.svg +1 -0
  185. package/dist/assets/Icons/fingerprint-pattern.svg +1 -0
  186. package/dist/assets/Icons/flag.svg +1 -0
  187. package/dist/assets/Icons/flask-conical.svg +1 -0
  188. package/dist/assets/Icons/folder.svg +1 -0
  189. package/dist/assets/Icons/funnel-plus.svg +1 -0
  190. package/dist/assets/Icons/ghost.svg +1 -0
  191. package/dist/assets/Icons/git-branch.svg +1 -0
  192. package/dist/assets/Icons/git-commit-horizontal.svg +1 -0
  193. package/dist/assets/Icons/git-commit-vertical.svg +1 -0
  194. package/dist/assets/Icons/git-compare-arrows-alt.svg +1 -0
  195. package/dist/assets/Icons/git-compare-arrows.svg +1 -0
  196. package/dist/assets/Icons/git-compare.svg +1 -0
  197. package/dist/assets/Icons/git-fork.svg +1 -0
  198. package/dist/assets/Icons/git-graph.svg +1 -0
  199. package/dist/assets/Icons/git-merge.svg +1 -0
  200. package/dist/assets/Icons/git-pull-request-arrow.svg +1 -0
  201. package/dist/assets/Icons/git-pull-request-closed.svg +1 -0
  202. package/dist/assets/Icons/git-pull-request-create-arrow.svg +1 -0
  203. package/dist/assets/Icons/git-pull-request-create.svg +1 -0
  204. package/dist/assets/Icons/git-pull-request-draft.svg +1 -0
  205. package/dist/assets/Icons/git-pull-request.svg +1 -0
  206. package/dist/assets/Icons/github-neutral.svg +1 -0
  207. package/dist/assets/Icons/github.svg +1 -0
  208. package/dist/assets/Icons/globe-lock.svg +1 -0
  209. package/dist/assets/Icons/globe.svg +1 -0
  210. package/dist/assets/Icons/gmail-neutral.svg +1 -0
  211. package/dist/assets/Icons/gmail.svg +1 -0
  212. package/dist/assets/Icons/google-meet-neutral.svg +1 -0
  213. package/dist/assets/Icons/google-meet.svg +1 -0
  214. package/dist/assets/Icons/google-neutral.svg +1 -0
  215. package/dist/assets/Icons/google-play-neutral.svg +1 -0
  216. package/dist/assets/Icons/google-play.svg +1 -0
  217. package/dist/assets/Icons/google-podcast-neutral.svg +1 -0
  218. package/dist/assets/Icons/google-podcast.svg +1 -0
  219. package/dist/assets/Icons/google.svg +1 -0
  220. package/dist/assets/Icons/grip-horizontal.svg +1 -0
  221. package/dist/assets/Icons/grip-vertical.svg +1 -0
  222. package/dist/assets/Icons/hammer.svg +1 -0
  223. package/dist/assets/Icons/heart-pulse.svg +1 -0
  224. package/dist/assets/Icons/history.svg +1 -0
  225. package/dist/assets/Icons/home.svg +1 -0
  226. package/dist/assets/Icons/imo-neutral.svg +1 -0
  227. package/dist/assets/Icons/imo.svg +1 -0
  228. package/dist/assets/Icons/infinity.svg +1 -0
  229. package/dist/assets/Icons/info.svg +1 -0
  230. package/dist/assets/Icons/infobip-neutral.svg +1 -0
  231. package/dist/assets/Icons/infobip.svg +1 -0
  232. package/dist/assets/Icons/instagram-neutral.svg +1 -0
  233. package/dist/assets/Icons/instagram.svg +1 -0
  234. package/dist/assets/Icons/key-round.svg +1 -0
  235. package/dist/assets/Icons/key-square.svg +1 -0
  236. package/dist/assets/Icons/keyboard.svg +1 -0
  237. package/dist/assets/Icons/kickstarter-neutral.svg +1 -0
  238. package/dist/assets/Icons/kickstarter.svg +1 -0
  239. package/dist/assets/Icons/laptop.svg +1 -0
  240. package/dist/assets/Icons/layers.svg +1 -0
  241. package/dist/assets/Icons/layers2.svg +1 -0
  242. package/dist/assets/Icons/layers3.svg +1 -0
  243. package/dist/assets/Icons/layout-dashboard.svg +1 -0
  244. package/dist/assets/Icons/layout-grid.svg +1 -0
  245. package/dist/assets/Icons/layout-list.svg +1 -0
  246. package/dist/assets/Icons/layout-panel-left.svg +1 -0
  247. package/dist/assets/Icons/layout-panel-top.svg +1 -0
  248. package/dist/assets/Icons/layout-template.svg +1 -0
  249. package/dist/assets/Icons/library-big.svg +1 -0
  250. package/dist/assets/Icons/life-buoy.svg +1 -0
  251. package/dist/assets/Icons/lightbulb-off.svg +1 -0
  252. package/dist/assets/Icons/lightbulb.svg +1 -0
  253. package/dist/assets/Icons/line-neutral.svg +1 -0
  254. package/dist/assets/Icons/line.svg +1 -0
  255. package/dist/assets/Icons/link.svg +1 -0
  256. package/dist/assets/Icons/link2-off.svg +1 -0
  257. package/dist/assets/Icons/link2.svg +1 -0
  258. package/dist/assets/Icons/linkedin-neutral.svg +1 -0
  259. package/dist/assets/Icons/linkedin.svg +1 -0
  260. package/dist/assets/Icons/list-checks.svg +1 -0
  261. package/dist/assets/Icons/list-collapse.svg +1 -0
  262. package/dist/assets/Icons/list-filter.svg +1 -0
  263. package/dist/assets/Icons/list-minus.svg +1 -0
  264. package/dist/assets/Icons/list-ordered.svg +1 -0
  265. package/dist/assets/Icons/list-plus.svg +1 -0
  266. package/dist/assets/Icons/list-restart.svg +1 -0
  267. package/dist/assets/Icons/list-start.svg +1 -0
  268. package/dist/assets/Icons/list-todo.svg +1 -0
  269. package/dist/assets/Icons/list-tree.svg +1 -0
  270. package/dist/assets/Icons/list-video.svg +1 -0
  271. package/dist/assets/Icons/list-x.svg +1 -0
  272. package/dist/assets/Icons/list.svg +1 -0
  273. package/dist/assets/Icons/loader-circle.svg +1 -0
  274. package/dist/assets/Icons/loader.svg +1 -0
  275. package/dist/assets/Icons/lock-open.svg +1 -0
  276. package/dist/assets/Icons/lock.svg +1 -0
  277. package/dist/assets/Icons/log-in.svg +1 -0
  278. package/dist/assets/Icons/log-out.svg +1 -0
  279. package/dist/assets/Icons/mail-check.svg +1 -0
  280. package/dist/assets/Icons/mail-minus.svg +1 -0
  281. package/dist/assets/Icons/mail-open.svg +1 -0
  282. package/dist/assets/Icons/mail-plus.svg +1 -0
  283. package/dist/assets/Icons/mail-question.svg +1 -0
  284. package/dist/assets/Icons/mail-search.svg +1 -0
  285. package/dist/assets/Icons/mail-warning.svg +1 -0
  286. package/dist/assets/Icons/mail-x.svg +1 -0
  287. package/dist/assets/Icons/mail.svg +1 -0
  288. package/dist/assets/Icons/mailbox.svg +1 -0
  289. package/dist/assets/Icons/mailersend-neutral.svg +1 -0
  290. package/dist/assets/Icons/mailersend.svg +1 -0
  291. package/dist/assets/Icons/mailgun-neutral.svg +1 -0
  292. package/dist/assets/Icons/mailgun.svg +1 -0
  293. package/dist/assets/Icons/mailjet-neutral.svg +1 -0
  294. package/dist/assets/Icons/mailjet.svg +1 -0
  295. package/dist/assets/Icons/mails.svg +1 -0
  296. package/dist/assets/Icons/mailtrap-neutral.svg +1 -0
  297. package/dist/assets/Icons/mailtrap.svg +1 -0
  298. package/dist/assets/Icons/mandrill-neutral.svg +1 -0
  299. package/dist/assets/Icons/mandrill.svg +1 -0
  300. package/dist/assets/Icons/map-pin.svg +1 -0
  301. package/dist/assets/Icons/maqsam-neutral.svg +1 -0
  302. package/dist/assets/Icons/maqsam.svg +1 -0
  303. package/dist/assets/Icons/mattermost-neutral.svg +1 -0
  304. package/dist/assets/Icons/mattermost.svg +1 -0
  305. package/dist/assets/Icons/maximize.svg +1 -0
  306. package/dist/assets/Icons/maximize2.svg +1 -0
  307. package/dist/assets/Icons/medium-neutral.svg +1 -0
  308. package/dist/assets/Icons/medium.svg +1 -0
  309. package/dist/assets/Icons/megaphone-off.svg +1 -0
  310. package/dist/assets/Icons/megaphone.svg +1 -0
  311. package/dist/assets/Icons/menu.svg +1 -0
  312. package/dist/assets/Icons/merge.svg +1 -0
  313. package/dist/assets/Icons/message-square-code.svg +1 -0
  314. package/dist/assets/Icons/message-square-dashed.svg +1 -0
  315. package/dist/assets/Icons/message-square-diff.svg +1 -0
  316. package/dist/assets/Icons/message-square-dot.svg +1 -0
  317. package/dist/assets/Icons/message-square-heart.svg +1 -0
  318. package/dist/assets/Icons/message-square-off.svg +1 -0
  319. package/dist/assets/Icons/message-square-plus.svg +1 -0
  320. package/dist/assets/Icons/message-square-quote.svg +1 -0
  321. package/dist/assets/Icons/message-square-reply.svg +1 -0
  322. package/dist/assets/Icons/message-square-share.svg +1 -0
  323. package/dist/assets/Icons/message-square-text.svg +1 -0
  324. package/dist/assets/Icons/message-square-warning.svg +1 -0
  325. package/dist/assets/Icons/message-square-x.svg +1 -0
  326. package/dist/assets/Icons/message-square.svg +1 -0
  327. package/dist/assets/Icons/messages-square.svg +1 -0
  328. package/dist/assets/Icons/messenger-neutral.svg +1 -0
  329. package/dist/assets/Icons/messenger.svg +1 -0
  330. package/dist/assets/Icons/microsoft-neutral.svg +1 -0
  331. package/dist/assets/Icons/microsoft-teams-neutral.svg +1 -0
  332. package/dist/assets/Icons/microsoft-teams.svg +1 -0
  333. package/dist/assets/Icons/microsoft.svg +1 -0
  334. package/dist/assets/Icons/minimize.svg +1 -0
  335. package/dist/assets/Icons/minimize2.svg +1 -0
  336. package/dist/assets/Icons/minus.svg +1 -0
  337. package/dist/assets/Icons/moon.svg +1 -0
  338. package/dist/assets/Icons/mouse-pointer-ban.svg +1 -0
  339. package/dist/assets/Icons/mouse-pointer-click.svg +1 -0
  340. package/dist/assets/Icons/mouse-pointer.svg +1 -0
  341. package/dist/assets/Icons/mouse-pointer2.svg +1 -0
  342. package/dist/assets/Icons/mouse.svg +1 -0
  343. package/dist/assets/Icons/move-diagonal.svg +1 -0
  344. package/dist/assets/Icons/move-diagonal2.svg +1 -0
  345. package/dist/assets/Icons/move-down-left.svg +1 -0
  346. package/dist/assets/Icons/move-down-right.svg +1 -0
  347. package/dist/assets/Icons/move-down.svg +1 -0
  348. package/dist/assets/Icons/move-horizontal.svg +1 -0
  349. package/dist/assets/Icons/move-left.svg +1 -0
  350. package/dist/assets/Icons/move-right.svg +1 -0
  351. package/dist/assets/Icons/move-up-left.svg +1 -0
  352. package/dist/assets/Icons/move-up-right.svg +1 -0
  353. package/dist/assets/Icons/move-up.svg +1 -0
  354. package/dist/assets/Icons/move-vertical.svg +1 -0
  355. package/dist/assets/Icons/move3-d.svg +1 -0
  356. package/dist/assets/Icons/netcore-neutral.svg +1 -0
  357. package/dist/assets/Icons/netcore.svg +1 -0
  358. package/dist/assets/Icons/notebook-pen.svg +1 -0
  359. package/dist/assets/Icons/notebook-tabs.svg +1 -0
  360. package/dist/assets/Icons/notebook-text.svg +1 -0
  361. package/dist/assets/Icons/notebook.svg +1 -0
  362. package/dist/assets/Icons/notepad-text-dashed.svg +1 -0
  363. package/dist/assets/Icons/notepad-text.svg +1 -0
  364. package/dist/assets/Icons/notion-neutral.svg +1 -0
  365. package/dist/assets/Icons/notion.svg +1 -0
  366. package/dist/assets/Icons/octagon-alert.svg +1 -0
  367. package/dist/assets/Icons/octagon-pause.svg +1 -0
  368. package/dist/assets/Icons/octagon-x.svg +1 -0
  369. package/dist/assets/Icons/octagon.svg +1 -0
  370. package/dist/assets/Icons/ok-neutral.svg +1 -0
  371. package/dist/assets/Icons/ok-only-sign-neutral.svg +1 -0
  372. package/dist/assets/Icons/ok-only-sign.svg +1 -0
  373. package/dist/assets/Icons/ok.svg +1 -0
  374. package/dist/assets/Icons/onlyfans-neutral.svg +1 -0
  375. package/dist/assets/Icons/onlyfans.svg +1 -0
  376. package/dist/assets/Icons/option.svg +1 -0
  377. package/dist/assets/Icons/outlook365-neutral.svg +1 -0
  378. package/dist/assets/Icons/outlook365.svg +1 -0
  379. package/dist/assets/Icons/paintbrush.svg +1 -0
  380. package/dist/assets/Icons/panel-bottom-open.svg +1 -0
  381. package/dist/assets/Icons/panel-bottom.svg +1 -0
  382. package/dist/assets/Icons/panel-left-close.svg +1 -0
  383. package/dist/assets/Icons/panel-left-dashed.svg +1 -0
  384. package/dist/assets/Icons/panel-left-open.svg +1 -0
  385. package/dist/assets/Icons/panel-left.svg +1 -0
  386. package/dist/assets/Icons/panel-right-animated.svg +1 -0
  387. package/dist/assets/Icons/panel-right-close.svg +1 -0
  388. package/dist/assets/Icons/panel-right-dashed.svg +1 -0
  389. package/dist/assets/Icons/panel-right-open.svg +1 -0
  390. package/dist/assets/Icons/panel-right.svg +1 -0
  391. package/dist/assets/Icons/panel-top-bottom-dashed.svg +1 -0
  392. package/dist/assets/Icons/panel-top-close.svg +1 -0
  393. package/dist/assets/Icons/panel-top-open.svg +1 -0
  394. package/dist/assets/Icons/panel-top.svg +1 -0
  395. package/dist/assets/Icons/panels-left-bottom.svg +1 -0
  396. package/dist/assets/Icons/panels-right-bottom.svg +1 -0
  397. package/dist/assets/Icons/panels-top-left.svg +1 -0
  398. package/dist/assets/Icons/paperclip.svg +1 -0
  399. package/dist/assets/Icons/patreon-neutral.svg +1 -0
  400. package/dist/assets/Icons/patreon.svg +1 -0
  401. package/dist/assets/Icons/paypal-neutral.svg +1 -0
  402. package/dist/assets/Icons/paypal.svg +1 -0
  403. package/dist/assets/Icons/pen-line.svg +1 -0
  404. package/dist/assets/Icons/pen-off.svg +1 -0
  405. package/dist/assets/Icons/pen-tool.svg +1 -0
  406. package/dist/assets/Icons/pen.svg +1 -0
  407. package/dist/assets/Icons/pencil-line.svg +1 -0
  408. package/dist/assets/Icons/pencil-off.svg +1 -0
  409. package/dist/assets/Icons/pencil-ruler.svg +1 -0
  410. package/dist/assets/Icons/pencil.svg +1 -0
  411. package/dist/assets/Icons/pentagon.svg +1 -0
  412. package/dist/assets/Icons/percentage.svg +1 -0
  413. package/dist/assets/Icons/phone.svg +1 -0
  414. package/dist/assets/Icons/pin-off.svg +1 -0
  415. package/dist/assets/Icons/pin.svg +1 -0
  416. package/dist/assets/Icons/pinterest-neutral.svg +1 -0
  417. package/dist/assets/Icons/pinterest.svg +1 -0
  418. package/dist/assets/Icons/play.svg +1 -0
  419. package/dist/assets/Icons/plug.svg +1 -0
  420. package/dist/assets/Icons/plunk-neutral.svg +1 -0
  421. package/dist/assets/Icons/plunk.svg +1 -0
  422. package/dist/assets/Icons/plus.svg +1 -0
  423. package/dist/assets/Icons/postmark-neutral.svg +1 -0
  424. package/dist/assets/Icons/postmark.svg +1 -0
  425. package/dist/assets/Icons/product-hunt-neutral.svg +1 -0
  426. package/dist/assets/Icons/product-hunt.svg +1 -0
  427. package/dist/assets/Icons/quora-neutral.svg +1 -0
  428. package/dist/assets/Icons/quora.svg +1 -0
  429. package/dist/assets/Icons/quote.svg +1 -0
  430. package/dist/assets/Icons/radar.svg +1 -0
  431. package/dist/assets/Icons/reddit-neutral.svg +1 -0
  432. package/dist/assets/Icons/reddit.svg +1 -0
  433. package/dist/assets/Icons/redo-dot.svg +1 -0
  434. package/dist/assets/Icons/redo.svg +1 -0
  435. package/dist/assets/Icons/redo2.svg +1 -0
  436. package/dist/assets/Icons/refresh-ccw.svg +1 -0
  437. package/dist/assets/Icons/refresh-cw-off.svg +1 -0
  438. package/dist/assets/Icons/resend-neutral.svg +1 -0
  439. package/dist/assets/Icons/resend.svg +1 -0
  440. package/dist/assets/Icons/rss.svg +1 -0
  441. package/dist/assets/Icons/rules.svg +1 -0
  442. package/dist/assets/Icons/scan-line.svg +1 -0
  443. package/dist/assets/Icons/scroll-text.svg +1 -0
  444. package/dist/assets/Icons/search-hint.svg +1 -0
  445. package/dist/assets/Icons/search-x.svg +1 -0
  446. package/dist/assets/Icons/search.svg +1 -0
  447. package/dist/assets/Icons/sendgrid-neutral.svg +1 -0
  448. package/dist/assets/Icons/sendgrid.svg +1 -0
  449. package/dist/assets/Icons/server.svg +1 -0
  450. package/dist/assets/Icons/ses-neutral.svg +1 -0
  451. package/dist/assets/Icons/ses.svg +1 -0
  452. package/dist/assets/Icons/settings.svg +1 -0
  453. package/dist/assets/Icons/settings2.svg +1 -0
  454. package/dist/assets/Icons/shapes.svg +1 -0
  455. package/dist/assets/Icons/share.svg +1 -0
  456. package/dist/assets/Icons/sheet.svg +1 -0
  457. package/dist/assets/Icons/shield-alert.svg +1 -0
  458. package/dist/assets/Icons/shield-ban.svg +1 -0
  459. package/dist/assets/Icons/shield-check.svg +1 -0
  460. package/dist/assets/Icons/shield-ellipsis.svg +1 -0
  461. package/dist/assets/Icons/shield-half.svg +1 -0
  462. package/dist/assets/Icons/shield-minus.svg +1 -0
  463. package/dist/assets/Icons/shield-off.svg +1 -0
  464. package/dist/assets/Icons/shield-plus.svg +1 -0
  465. package/dist/assets/Icons/shield-question.svg +1 -0
  466. package/dist/assets/Icons/shield-user.svg +1 -0
  467. package/dist/assets/Icons/shield-x.svg +1 -0
  468. package/dist/assets/Icons/shield.svg +1 -0
  469. package/dist/assets/Icons/shift.svg +1 -0
  470. package/dist/assets/Icons/signal-neutral.svg +1 -0
  471. package/dist/assets/Icons/signal.svg +1 -0
  472. package/dist/assets/Icons/signpost.svg +1 -0
  473. package/dist/assets/Icons/sina-weibo-neutral.svg +1 -0
  474. package/dist/assets/Icons/sina-weibo.svg +1 -0
  475. package/dist/assets/Icons/skull.svg +1 -0
  476. package/dist/assets/Icons/skype-neutral.svg +1 -0
  477. package/dist/assets/Icons/skype.svg +1 -0
  478. package/dist/assets/Icons/slack-neutral.svg +1 -0
  479. package/dist/assets/Icons/slack.svg +1 -0
  480. package/dist/assets/Icons/sliders-horizontal.svg +1 -0
  481. package/dist/assets/Icons/sliders-vertical.svg +1 -0
  482. package/dist/assets/Icons/smtp-neutral.svg +1 -0
  483. package/dist/assets/Icons/smtp.svg +1 -0
  484. package/dist/assets/Icons/snapchat-neutral.svg +1 -0
  485. package/dist/assets/Icons/snapchat.svg +1 -0
  486. package/dist/assets/Icons/soundcloud-neutral.svg +1 -0
  487. package/dist/assets/Icons/soundcloud.svg +1 -0
  488. package/dist/assets/Icons/space.svg +1 -0
  489. package/dist/assets/Icons/sparkpost-neutral.svg +1 -0
  490. package/dist/assets/Icons/sparkpost.svg +1 -0
  491. package/dist/assets/Icons/speed.svg +1 -0
  492. package/dist/assets/Icons/split.svg +1 -0
  493. package/dist/assets/Icons/spotify-neutral.svg +1 -0
  494. package/dist/assets/Icons/spotify.svg +1 -0
  495. package/dist/assets/Icons/square-arrow-out-up-right.svg +1 -0
  496. package/dist/assets/Icons/square-minus.svg +1 -0
  497. package/dist/assets/Icons/square-pen.svg +1 -0
  498. package/dist/assets/Icons/square-plus.svg +1 -0
  499. package/dist/assets/Icons/square-user-round.svg +1 -0
  500. package/dist/assets/Icons/stack-overflow-neutral.svg +1 -0
  501. package/dist/assets/Icons/stack-overflow.svg +1 -0
  502. package/dist/assets/Icons/star.svg +1 -0
  503. package/dist/assets/Icons/sun.svg +1 -0
  504. package/dist/assets/Icons/syringe.svg +1 -0
  505. package/dist/assets/Icons/tag.svg +1 -0
  506. package/dist/assets/Icons/target.svg +1 -0
  507. package/dist/assets/Icons/teams-neutral.svg +1 -0
  508. package/dist/assets/Icons/teams.svg +1 -0
  509. package/dist/assets/Icons/telegram-neutral.svg +1 -0
  510. package/dist/assets/Icons/telegram-only-sign-neutral.svg +1 -0
  511. package/dist/assets/Icons/telegram-only-sign.svg +1 -0
  512. package/dist/assets/Icons/telegram.svg +1 -0
  513. package/dist/assets/Icons/terminal.svg +1 -0
  514. package/dist/assets/Icons/test-policies.svg +1 -0
  515. package/dist/assets/Icons/threads-neutral.svg +1 -0
  516. package/dist/assets/Icons/threads.svg +1 -0
  517. package/dist/assets/Icons/thumbs-down.svg +1 -0
  518. package/dist/assets/Icons/thumbs-up.svg +1 -0
  519. package/dist/assets/Icons/tiktok-neutral.svg +1 -0
  520. package/dist/assets/Icons/tiktok.svg +1 -0
  521. package/dist/assets/Icons/tinder-neutral.svg +1 -0
  522. package/dist/assets/Icons/tinder.svg +1 -0
  523. package/dist/assets/Icons/trash.svg +1 -0
  524. package/dist/assets/Icons/trash2.svg +1 -0
  525. package/dist/assets/Icons/triangle-alert.svg +1 -0
  526. package/dist/assets/Icons/tumblr-neutral.svg +1 -0
  527. package/dist/assets/Icons/tumblr.svg +1 -0
  528. package/dist/assets/Icons/twitch-neutral.svg +1 -0
  529. package/dist/assets/Icons/twitch.svg +1 -0
  530. package/dist/assets/Icons/undo-dot.svg +1 -0
  531. package/dist/assets/Icons/undo.svg +1 -0
  532. package/dist/assets/Icons/undo2.svg +1 -0
  533. package/dist/assets/Icons/unplug.svg +1 -0
  534. package/dist/assets/Icons/user-check.svg +1 -0
  535. package/dist/assets/Icons/user-minus.svg +1 -0
  536. package/dist/assets/Icons/user-plus.svg +1 -0
  537. package/dist/assets/Icons/user-round-x.svg +1 -0
  538. package/dist/assets/Icons/user-round.svg +1 -0
  539. package/dist/assets/Icons/user.svg +1 -0
  540. package/dist/assets/Icons/username.svg +1 -0
  541. package/dist/assets/Icons/users-round.svg +1 -0
  542. package/dist/assets/Icons/users.svg +1 -0
  543. package/dist/assets/Icons/viber-neutral.svg +1 -0
  544. package/dist/assets/Icons/viber.svg +1 -0
  545. package/dist/assets/Icons/video.svg +1 -0
  546. package/dist/assets/Icons/vimeo-neutral.svg +1 -0
  547. package/dist/assets/Icons/vimeo.svg +1 -0
  548. package/dist/assets/Icons/vk-music-neutral.svg +1 -0
  549. package/dist/assets/Icons/vk-music.svg +1 -0
  550. package/dist/assets/Icons/vk-neutral.svg +1 -0
  551. package/dist/assets/Icons/vk-only-sign-neutral.svg +1 -0
  552. package/dist/assets/Icons/vk-only-sign.svg +1 -0
  553. package/dist/assets/Icons/vk.svg +1 -0
  554. package/dist/assets/Icons/webhook-neutral.svg +1 -0
  555. package/dist/assets/Icons/webhook.svg +1 -0
  556. package/dist/assets/Icons/wechat-neutral.svg +1 -0
  557. package/dist/assets/Icons/wechat.svg +1 -0
  558. package/dist/assets/Icons/whatsapp-badge-neutral.svg +1 -0
  559. package/dist/assets/Icons/whatsapp-badge.svg +1 -0
  560. package/dist/assets/Icons/whatsapp-neutral.svg +1 -0
  561. package/dist/assets/Icons/whatsapp.svg +1 -0
  562. package/dist/assets/Icons/workflow.svg +1 -0
  563. package/dist/assets/Icons/wrap-text.svg +1 -0
  564. package/dist/assets/Icons/wrench.svg +1 -0
  565. package/dist/assets/Icons/x-ex-twitter-neutral.svg +1 -0
  566. package/dist/assets/Icons/x-ex-twitter.svg +1 -0
  567. package/dist/assets/Icons/x.svg +1 -0
  568. package/dist/assets/Icons/xing-neutral.svg +1 -0
  569. package/dist/assets/Icons/xing.svg +1 -0
  570. package/dist/assets/Icons/yandex-music-neutral.svg +1 -0
  571. package/dist/assets/Icons/yandex-music.svg +1 -0
  572. package/dist/assets/Icons/yelp-neutral.svg +1 -0
  573. package/dist/assets/Icons/yelp.svg +1 -0
  574. package/dist/assets/Icons/youtube-music-neutral.svg +1 -0
  575. package/dist/assets/Icons/youtube-music.svg +1 -0
  576. package/dist/assets/Icons/youtube-neutral.svg +1 -0
  577. package/dist/assets/Icons/youtube-shorts-neutral.svg +1 -0
  578. package/dist/assets/Icons/youtube-shorts.svg +1 -0
  579. package/dist/assets/Icons/youtube.svg +1 -0
  580. package/dist/assets/Icons/zap.svg +1 -0
  581. package/dist/assets/Icons/zoom-in.svg +1 -0
  582. package/dist/assets/Icons/zoom-neutral.svg +1 -0
  583. package/dist/assets/Icons/zoom-out.svg +1 -0
  584. package/dist/assets/Icons/zoom.svg +1 -0
  585. package/dist/assets/Icons/zulip-neutral.svg +1 -0
  586. package/dist/assets/Icons/zulip.svg +1 -0
  587. package/dist/assets/Logos/wallarm.svg +1 -0
  588. package/dist/assets.json +4666 -0
  589. package/dist/project/README.md +265 -0
  590. package/dist/project/components/Accordion/README.md +354 -0
  591. package/dist/project/components/Accordion/preview.html +2 -0
  592. package/dist/project/components/Accordion/stories.js +12 -0
  593. package/dist/project/components/AgentAvatar/README.md +127 -0
  594. package/dist/project/components/AgentAvatar/preview.html +2 -0
  595. package/dist/project/components/AgentAvatar/stories.js +12 -0
  596. package/dist/project/components/AgentAvatar/stories.md +1805 -0
  597. package/dist/project/components/AgentGlyph/README.md +1182 -0
  598. package/dist/project/components/AgentGlyph/preview.html +2 -0
  599. package/dist/project/components/AgentGlyph/stories.js +12 -0
  600. package/dist/project/components/AgentLookBuilder/README.md +269 -0
  601. package/dist/project/components/AgentLookBuilder/preview.html +2 -0
  602. package/dist/project/components/AgentLookBuilder/stories.js +12 -0
  603. package/dist/project/components/Alert/README.md +492 -0
  604. package/dist/project/components/Alert/preview.html +2 -0
  605. package/dist/project/components/Alert/stories.js +12 -0
  606. package/dist/project/components/AnimatedBackground/README.md +124 -0
  607. package/dist/project/components/AnimatedBackground/preview.html +2 -0
  608. package/dist/project/components/AnimatedBackground/stories.js +12 -0
  609. package/dist/project/components/AppShell/README.md +75 -0
  610. package/dist/project/components/AppShell/preview.html +2 -0
  611. package/dist/project/components/AppShell/stories.js +28 -0
  612. package/dist/project/components/AppShell/stories.md +2878 -0
  613. package/dist/project/components/ApprovalCard/README.md +353 -0
  614. package/dist/project/components/ApprovalCard/preview.html +2 -0
  615. package/dist/project/components/ApprovalCard/stories.js +12 -0
  616. package/dist/project/components/AreaChart/README.md +673 -0
  617. package/dist/project/components/AreaChart/preview.html +2 -0
  618. package/dist/project/components/AreaChart/stories.js +12 -0
  619. package/dist/project/components/AssistantMessage/README.md +724 -0
  620. package/dist/project/components/AssistantMessage/preview.html +2 -0
  621. package/dist/project/components/AssistantMessage/stories.js +55 -0
  622. package/dist/project/components/Attribute/README.md +1174 -0
  623. package/dist/project/components/Attribute/preview.html +2 -0
  624. package/dist/project/components/Attribute/stories.js +12 -0
  625. package/dist/project/components/Avatar/README.md +416 -0
  626. package/dist/project/components/Avatar/preview.html +2 -0
  627. package/dist/project/components/Avatar/stories.js +12 -0
  628. package/dist/project/components/Badge/README.md +853 -0
  629. package/dist/project/components/Badge/preview.html +2 -0
  630. package/dist/project/components/Badge/stories.js +12 -0
  631. package/dist/project/components/Banner/README.md +341 -0
  632. package/dist/project/components/Banner/preview.html +2 -0
  633. package/dist/project/components/Banner/stories.js +12 -0
  634. package/dist/project/components/BarList/README.md +757 -0
  635. package/dist/project/components/BarList/preview.html +2 -0
  636. package/dist/project/components/BarList/stories.js +12 -0
  637. package/dist/project/components/Breadcrumbs/README.md +274 -0
  638. package/dist/project/components/Breadcrumbs/preview.html +2 -0
  639. package/dist/project/components/Breadcrumbs/stories.js +12 -0
  640. package/dist/project/components/BulkBar/README.md +19 -0
  641. package/dist/project/components/Button/README.md +467 -0
  642. package/dist/project/components/Button/preview.html +2 -0
  643. package/dist/project/components/Button/stories.js +12 -0
  644. package/dist/project/components/Calendar/README.md +654 -0
  645. package/dist/project/components/Calendar/preview.html +2 -0
  646. package/dist/project/components/Calendar/stories.js +12 -0
  647. package/dist/project/components/Card/README.md +367 -0
  648. package/dist/project/components/Card/preview.html +2 -0
  649. package/dist/project/components/Card/stories.js +12 -0
  650. package/dist/project/components/ChainOfThought/README.md +412 -0
  651. package/dist/project/components/ChainOfThought/preview.html +2 -0
  652. package/dist/project/components/ChainOfThought/stories.js +12 -0
  653. package/dist/project/components/Chart/README.md +224 -0
  654. package/dist/project/components/Chart/preview.html +2 -0
  655. package/dist/project/components/Chart/stories.js +12 -0
  656. package/dist/project/components/Chat/README.md +1244 -0
  657. package/dist/project/components/Chat/preview.html +2 -0
  658. package/dist/project/components/Chat/stories.js +12 -0
  659. package/dist/project/components/ChatInput/README.md +378 -0
  660. package/dist/project/components/ChatInput/preview.html +2 -0
  661. package/dist/project/components/ChatInput/stories.js +12 -0
  662. package/dist/project/components/ChatPermissions/README.md +218 -0
  663. package/dist/project/components/ChatPermissions/preview.html +2 -0
  664. package/dist/project/components/ChatPermissions/stories.js +12 -0
  665. package/dist/project/components/Checkbox/README.md +367 -0
  666. package/dist/project/components/Checkbox/preview.html +2 -0
  667. package/dist/project/components/Checkbox/stories.js +12 -0
  668. package/dist/project/components/Code/README.md +243 -0
  669. package/dist/project/components/Code/preview.html +2 -0
  670. package/dist/project/components/Code/stories.js +12 -0
  671. package/dist/project/components/CodeEditor/README.md +280 -0
  672. package/dist/project/components/CodeEditor/preview.html +2 -0
  673. package/dist/project/components/CodeEditor/stories.js +162 -0
  674. package/dist/project/components/CodeEditor/stories.md +1533 -0
  675. package/dist/project/components/CodeSnippet/README.md +1352 -0
  676. package/dist/project/components/CodeSnippet/preview.html +2 -0
  677. package/dist/project/components/CodeSnippet/stories.js +156 -0
  678. package/dist/project/components/ColumnChart/README.md +521 -0
  679. package/dist/project/components/ColumnChart/preview.html +2 -0
  680. package/dist/project/components/ColumnChart/stories.js +12 -0
  681. package/dist/project/components/Conversation/README.md +314 -0
  682. package/dist/project/components/Conversation/preview.html +2 -0
  683. package/dist/project/components/Conversation/stories.js +12 -0
  684. package/dist/project/components/Copyable/README.md +406 -0
  685. package/dist/project/components/Copyable/preview.html +2 -0
  686. package/dist/project/components/Copyable/stories.js +12 -0
  687. package/dist/project/components/Country/README.md +226 -0
  688. package/dist/project/components/Country/preview.html +2 -0
  689. package/dist/project/components/Country/stories.js +12 -0
  690. package/dist/project/components/Cover/preview.html +43 -0
  691. package/dist/project/components/DateInput/README.md +458 -0
  692. package/dist/project/components/DateInput/preview.html +2 -0
  693. package/dist/project/components/DateInput/stories.js +12 -0
  694. package/dist/project/components/DateRangeInput/README.md +412 -0
  695. package/dist/project/components/DateRangeInput/preview.html +2 -0
  696. package/dist/project/components/DateRangeInput/stories.js +12 -0
  697. package/dist/project/components/Dialog/README.md +1140 -0
  698. package/dist/project/components/Dialog/preview.html +2 -0
  699. package/dist/project/components/Dialog/stories.js +12 -0
  700. package/dist/project/components/Drawer/README.md +1163 -0
  701. package/dist/project/components/Drawer/preview.html +2 -0
  702. package/dist/project/components/Drawer/stories.js +12 -0
  703. package/dist/project/components/DropdownMenu/README.md +678 -0
  704. package/dist/project/components/DropdownMenu/preview.html +2 -0
  705. package/dist/project/components/DropdownMenu/stories.js +12 -0
  706. package/dist/project/components/EmptyState/README.md +276 -0
  707. package/dist/project/components/EmptyState/preview.html +2 -0
  708. package/dist/project/components/EmptyState/stories.js +12 -0
  709. package/dist/project/components/FeedbackPulse/README.md +125 -0
  710. package/dist/project/components/FeedbackPulse/preview.html +2 -0
  711. package/dist/project/components/FeedbackPulse/stories.js +12 -0
  712. package/dist/project/components/Field/README.md +676 -0
  713. package/dist/project/components/Field/preview.html +2 -0
  714. package/dist/project/components/Field/stories.js +12 -0
  715. package/dist/project/components/FileUpload/README.md +544 -0
  716. package/dist/project/components/FileUpload/preview.html +2 -0
  717. package/dist/project/components/FileUpload/stories.js +12 -0
  718. package/dist/project/components/FilterCascade/README.md +348 -0
  719. package/dist/project/components/FilterCascade/preview.html +2 -0
  720. package/dist/project/components/FilterCascade/stories.js +12 -0
  721. package/dist/project/components/FilterDropdown/README.md +542 -0
  722. package/dist/project/components/FilterDropdown/preview.html +2 -0
  723. package/dist/project/components/FilterDropdown/stories.js +12 -0
  724. package/dist/project/components/FilterInput/README.md +416 -0
  725. package/dist/project/components/FilterInput/preview.html +2 -0
  726. package/dist/project/components/FilterInput/stories.js +12 -0
  727. package/dist/project/components/FilterInput/stories.md +6682 -0
  728. package/dist/project/components/Flex/README.md +225 -0
  729. package/dist/project/components/Flex/preview.html +2 -0
  730. package/dist/project/components/Flex/stories.js +12 -0
  731. package/dist/project/components/FormatDateTime/README.md +315 -0
  732. package/dist/project/components/FormatDateTime/preview.html +2 -0
  733. package/dist/project/components/FormatDateTime/stories.js +12 -0
  734. package/dist/project/components/FormatNumber/README.md +317 -0
  735. package/dist/project/components/FormatNumber/preview.html +2 -0
  736. package/dist/project/components/FormatNumber/stories.js +12 -0
  737. package/dist/project/components/Heading/README.md +240 -0
  738. package/dist/project/components/Heading/preview.html +2 -0
  739. package/dist/project/components/Heading/stories.js +12 -0
  740. package/dist/project/components/HorizontalBarStack/README.md +281 -0
  741. package/dist/project/components/HorizontalBarStack/preview.html +2 -0
  742. package/dist/project/components/HorizontalBarStack/stories.js +12 -0
  743. package/dist/project/components/HttpMethod/README.md +137 -0
  744. package/dist/project/components/HttpMethod/preview.html +2 -0
  745. package/dist/project/components/HttpMethod/stories.js +12 -0
  746. package/dist/project/components/ImageCropper/README.md +332 -0
  747. package/dist/project/components/ImageCropper/preview.html +2 -0
  748. package/dist/project/components/ImageCropper/stories.js +33 -0
  749. package/dist/project/components/Indicator/README.md +110 -0
  750. package/dist/project/components/Indicator/preview.html +2 -0
  751. package/dist/project/components/Indicator/stories.js +12 -0
  752. package/dist/project/components/InlineEdit/README.md +977 -0
  753. package/dist/project/components/InlineEdit/preview.html +2 -0
  754. package/dist/project/components/InlineEdit/stories.js +12 -0
  755. package/dist/project/components/Input/README.md +187 -0
  756. package/dist/project/components/Input/preview.html +2 -0
  757. package/dist/project/components/Input/stories.js +12 -0
  758. package/dist/project/components/InputGroup/README.md +423 -0
  759. package/dist/project/components/InputGroup/preview.html +2 -0
  760. package/dist/project/components/InputGroup/stories.js +12 -0
  761. package/dist/project/components/InputOTP/README.md +201 -0
  762. package/dist/project/components/InputOTP/preview.html +2 -0
  763. package/dist/project/components/InputOTP/stories.js +12 -0
  764. package/dist/project/components/Ip/README.md +226 -0
  765. package/dist/project/components/Ip/preview.html +2 -0
  766. package/dist/project/components/Ip/stories.js +12 -0
  767. package/dist/project/components/Kbd/README.md +126 -0
  768. package/dist/project/components/Kbd/preview.html +2 -0
  769. package/dist/project/components/Kbd/stories.js +12 -0
  770. package/dist/project/components/LineChart/README.md +1479 -0
  771. package/dist/project/components/LineChart/preview.html +2 -0
  772. package/dist/project/components/LineChart/stories.js +12 -0
  773. package/dist/project/components/Link/README.md +160 -0
  774. package/dist/project/components/Link/preview.html +2 -0
  775. package/dist/project/components/Link/stories.js +12 -0
  776. package/dist/project/components/List/README.md +181 -0
  777. package/dist/project/components/List/preview.html +2 -0
  778. package/dist/project/components/List/stories.js +12 -0
  779. package/dist/project/components/Loader/README.md +145 -0
  780. package/dist/project/components/Loader/preview.html +2 -0
  781. package/dist/project/components/Loader/stories.js +12 -0
  782. package/dist/project/components/Logo/README.md +183 -0
  783. package/dist/project/components/Logo/preview.html +2 -0
  784. package/dist/project/components/Logo/stories.js +12 -0
  785. package/dist/project/components/MessageActions/README.md +255 -0
  786. package/dist/project/components/MessageActions/preview.html +2 -0
  787. package/dist/project/components/MessageActions/stories.js +12 -0
  788. package/dist/project/components/Metric/README.md +324 -0
  789. package/dist/project/components/Metric/preview.html +2 -0
  790. package/dist/project/components/Metric/stories.js +12 -0
  791. package/dist/project/components/NavRail/README.md +25 -0
  792. package/dist/project/components/NotificationCenter/README.md +91 -0
  793. package/dist/project/components/NotificationCenter/preview.html +2 -0
  794. package/dist/project/components/NotificationCenter/stories.js +12 -0
  795. package/dist/project/components/NotificationCenter/stories.md +2170 -0
  796. package/dist/project/components/NumberInput/README.md +177 -0
  797. package/dist/project/components/NumberInput/preview.html +2 -0
  798. package/dist/project/components/NumberInput/stories.js +12 -0
  799. package/dist/project/components/NumericBadge/README.md +252 -0
  800. package/dist/project/components/NumericBadge/preview.html +2 -0
  801. package/dist/project/components/NumericBadge/stories.js +12 -0
  802. package/dist/project/components/OverflowList/README.md +324 -0
  803. package/dist/project/components/OverflowList/preview.html +2 -0
  804. package/dist/project/components/OverflowList/stories.js +12 -0
  805. package/dist/project/components/OverflowTooltip/README.md +421 -0
  806. package/dist/project/components/OverflowTooltip/preview.html +2 -0
  807. package/dist/project/components/OverflowTooltip/stories.js +12 -0
  808. package/dist/project/components/Overlay/README.md +95 -0
  809. package/dist/project/components/Overlay/preview.html +2 -0
  810. package/dist/project/components/Overlay/stories.js +12 -0
  811. package/dist/project/components/Overview/README.md +445 -0
  812. package/dist/project/components/Overview/preview.html +2 -0
  813. package/dist/project/components/Overview/stories.js +12 -0
  814. package/dist/project/components/Page/README.md +215 -0
  815. package/dist/project/components/Page/preview.html +2 -0
  816. package/dist/project/components/Page/stories.js +12 -0
  817. package/dist/project/components/Pagination/README.md +302 -0
  818. package/dist/project/components/Pagination/preview.html +2 -0
  819. package/dist/project/components/Pagination/stories.js +12 -0
  820. package/dist/project/components/ParameterPath/README.md +284 -0
  821. package/dist/project/components/ParameterPath/preview.html +2 -0
  822. package/dist/project/components/ParameterPath/stories.js +12 -0
  823. package/dist/project/components/PasswordComplexity/README.md +171 -0
  824. package/dist/project/components/PasswordComplexity/preview.html +2 -0
  825. package/dist/project/components/PasswordComplexity/stories.js +12 -0
  826. package/dist/project/components/PasswordInput/README.md +254 -0
  827. package/dist/project/components/PasswordInput/preview.html +2 -0
  828. package/dist/project/components/PasswordInput/stories.js +12 -0
  829. package/dist/project/components/PieChart/README.md +895 -0
  830. package/dist/project/components/PieChart/preview.html +2 -0
  831. package/dist/project/components/PieChart/stories.js +12 -0
  832. package/dist/project/components/Popover/README.md +282 -0
  833. package/dist/project/components/Popover/preview.html +2 -0
  834. package/dist/project/components/Popover/stories.js +12 -0
  835. package/dist/project/components/Progress/README.md +174 -0
  836. package/dist/project/components/Progress/preview.html +2 -0
  837. package/dist/project/components/Progress/stories.js +12 -0
  838. package/dist/project/components/Radio/README.md +264 -0
  839. package/dist/project/components/Radio/preview.html +2 -0
  840. package/dist/project/components/Radio/stories.js +12 -0
  841. package/dist/project/components/RemoteShell/README.md +1758 -0
  842. package/dist/project/components/RemoteShell/preview.html +2 -0
  843. package/dist/project/components/RemoteShell/stories.js +28 -0
  844. package/dist/project/components/Resizable/README.md +290 -0
  845. package/dist/project/components/Resizable/preview.html +2 -0
  846. package/dist/project/components/Resizable/stories.js +12 -0
  847. package/dist/project/components/ResponseCode/README.md +205 -0
  848. package/dist/project/components/ResponseCode/preview.html +2 -0
  849. package/dist/project/components/ResponseCode/stories.js +12 -0
  850. package/dist/project/components/ScrollArea/README.md +234 -0
  851. package/dist/project/components/ScrollArea/preview.html +2 -0
  852. package/dist/project/components/ScrollArea/stories.js +12 -0
  853. package/dist/project/components/SearchInput/README.md +158 -0
  854. package/dist/project/components/SearchInput/preview.html +2 -0
  855. package/dist/project/components/SearchInput/stories.js +12 -0
  856. package/dist/project/components/SearchModal/README.md +836 -0
  857. package/dist/project/components/SearchModal/preview.html +2 -0
  858. package/dist/project/components/SearchModal/stories.js +12 -0
  859. package/dist/project/components/SegmentedControl/README.md +382 -0
  860. package/dist/project/components/SegmentedControl/preview.html +2 -0
  861. package/dist/project/components/SegmentedControl/stories.js +12 -0
  862. package/dist/project/components/SegmentedTabs/README.md +390 -0
  863. package/dist/project/components/SegmentedTabs/preview.html +2 -0
  864. package/dist/project/components/SegmentedTabs/stories.js +12 -0
  865. package/dist/project/components/Select/README.md +1311 -0
  866. package/dist/project/components/Select/preview.html +2 -0
  867. package/dist/project/components/Select/stories.js +12 -0
  868. package/dist/project/components/Selection/README.md +648 -0
  869. package/dist/project/components/Selection/preview.html +2 -0
  870. package/dist/project/components/Selection/stories.js +12 -0
  871. package/dist/project/components/Separator/README.md +77 -0
  872. package/dist/project/components/Separator/preview.html +2 -0
  873. package/dist/project/components/Separator/stories.js +12 -0
  874. package/dist/project/components/Skeleton/README.md +358 -0
  875. package/dist/project/components/Skeleton/preview.html +2 -0
  876. package/dist/project/components/Skeleton/stories.js +12 -0
  877. package/dist/project/components/Slider/README.md +433 -0
  878. package/dist/project/components/Slider/preview.html +2 -0
  879. package/dist/project/components/Slider/stories.js +12 -0
  880. package/dist/project/components/SplashScreen/README.md +192 -0
  881. package/dist/project/components/SplashScreen/preview.html +2 -0
  882. package/dist/project/components/SplashScreen/stories.js +12 -0
  883. package/dist/project/components/SplitButton/README.md +402 -0
  884. package/dist/project/components/SplitButton/preview.html +2 -0
  885. package/dist/project/components/SplitButton/stories.js +12 -0
  886. package/dist/project/components/Stack/README.md +269 -0
  887. package/dist/project/components/Stack/preview.html +2 -0
  888. package/dist/project/components/Stack/stories.js +12 -0
  889. package/dist/project/components/Stepper/README.md +682 -0
  890. package/dist/project/components/Stepper/preview.html +2 -0
  891. package/dist/project/components/Stepper/stories.js +12 -0
  892. package/dist/project/components/Switch/README.md +236 -0
  893. package/dist/project/components/Switch/preview.html +2 -0
  894. package/dist/project/components/Switch/stories.js +12 -0
  895. package/dist/project/components/Table/README.md +471 -0
  896. package/dist/project/components/Table/preview.html +2 -0
  897. package/dist/project/components/Table/stories.js +12 -0
  898. package/dist/project/components/Table/stories.md +3697 -0
  899. package/dist/project/components/Tabs/README.md +443 -0
  900. package/dist/project/components/Tabs/preview.html +2 -0
  901. package/dist/project/components/Tabs/stories.js +12 -0
  902. package/dist/project/components/Tag/README.md +324 -0
  903. package/dist/project/components/Tag/preview.html +2 -0
  904. package/dist/project/components/Tag/stories.js +12 -0
  905. package/dist/project/components/Text/README.md +200 -0
  906. package/dist/project/components/Text/preview.html +2 -0
  907. package/dist/project/components/Text/stories.js +12 -0
  908. package/dist/project/components/Textarea/README.md +273 -0
  909. package/dist/project/components/Textarea/preview.html +2 -0
  910. package/dist/project/components/Textarea/stories.js +12 -0
  911. package/dist/project/components/TimeInput/README.md +359 -0
  912. package/dist/project/components/TimeInput/preview.html +2 -0
  913. package/dist/project/components/TimeInput/stories.js +12 -0
  914. package/dist/project/components/Timeline/README.md +204 -0
  915. package/dist/project/components/Timeline/preview.html +2 -0
  916. package/dist/project/components/Timeline/stories.js +12 -0
  917. package/dist/project/components/Toast/README.md +718 -0
  918. package/dist/project/components/Toast/preview.html +2 -0
  919. package/dist/project/components/Toast/stories.js +12 -0
  920. package/dist/project/components/ToggleButton/README.md +292 -0
  921. package/dist/project/components/ToggleButton/preview.html +2 -0
  922. package/dist/project/components/ToggleButton/stories.js +12 -0
  923. package/dist/project/components/Tooltip/README.md +199 -0
  924. package/dist/project/components/Tooltip/preview.html +2 -0
  925. package/dist/project/components/Tooltip/stories.js +12 -0
  926. package/dist/project/components/TopHeader/README.md +21 -0
  927. package/dist/project/components/Tour/README.md +532 -0
  928. package/dist/project/components/Tour/preview.html +2 -0
  929. package/dist/project/components/Tour/stories.js +12 -0
  930. package/dist/project/components/Tree/README.md +450 -0
  931. package/dist/project/components/Tree/preview.html +2 -0
  932. package/dist/project/components/Tree/stories.js +12 -0
  933. package/dist/project/components/TreeView/README.md +531 -0
  934. package/dist/project/components/TreeView/preview.html +2 -0
  935. package/dist/project/components/TreeView/stories.js +12 -0
  936. package/dist/project/components/UTILITIES.md +647 -0
  937. package/dist/project/components/UserMessage/README.md +166 -0
  938. package/dist/project/components/UserMessage/preview.html +2 -0
  939. package/dist/project/components/UserMessage/stories.js +12 -0
  940. package/dist/project/components/UtilityPage/README.md +147 -0
  941. package/dist/project/components/UtilityPage/preview.html +2 -0
  942. package/dist/project/components/UtilityPage/stories.js +12 -0
  943. package/dist/project/components/WallyAssistant/README.md +1380 -0
  944. package/dist/project/components/WallyAssistant/preview.html +2 -0
  945. package/dist/project/components/WallyAssistant/stories.js +12 -0
  946. package/dist/project/components/WallyIcon/README.md +130 -0
  947. package/dist/project/components/WallyIcon/preview.html +2 -0
  948. package/dist/project/components/WallyIcon/stories.js +12 -0
  949. package/dist/project/components/WallySkeleton/README.md +96 -0
  950. package/dist/project/components/WallySkeleton/preview.html +2 -0
  951. package/dist/project/components/WallySkeleton/stories.js +12 -0
  952. package/dist/project/components/bundle.css +18734 -0
  953. package/dist/project/components/bundle.js +167 -0
  954. package/dist/project/components/index.d.ts +27226 -0
  955. package/dist/project/design-system.json +35 -0
  956. package/dist/project/fonts/Geist-Variable.woff2 +0 -0
  957. package/dist/project/fonts/GeistMono-Variable.woff2 +0 -0
  958. package/dist/project/fonts/GeistPixel-Square.woff2 +0 -0
  959. package/dist/project/sampler.dc.html +238 -0
  960. package/dist/project/tokens.css +1395 -0
  961. package/dist/project/tokens.json +5235 -0
  962. package/dist/wallarm-sampler.dc.html +239 -0
  963. package/package.json +67 -3
@@ -0,0 +1,542 @@
1
+ A lightweight filter for a list or table toolbar: a 36px trigger that opens a menu and narrows the list by one attribute. Picks apply at once — there is no Apply step. Single mode is for exclusive values and starts with «All …», which is also the reset; multi mode ticks several values that are OR-ed and clears with the ✕. From eight options the menu gains a search, and in multi mode a "Selected" section on top. Reach for `Select` inside forms, and for `FilterInput` when the query combines several attributes and operators.
2
+
3
+ ## Props as canvas attributes
4
+
5
+ Use kebab-case attribute names. Pass non-string values through renderVals holes, including booleans. The full emitted API is in `components/index.d.ts`.
6
+
7
+ | Attribute | Type | Required | Default | Description |
8
+ | --- | --- | --- | --- | --- |
9
+ | `title` | `string \| undefined` | no | — | |
10
+ | `default-checked` | `boolean \| undefined` | no | — | |
11
+ | `auto-focus` | `boolean \| undefined` | no | — | |
12
+ | `id` | `string` | no | — | The unique identifier of the machine. |
13
+ | `tab-index` | `number \| undefined` | no | — | |
14
+ | `rel` | `string \| undefined` | no | — | |
15
+ | `on-change` | `ChangeEventHandler<T, Element> \| undefined` | no | — | |
16
+ | `disabled` | `boolean \| undefined` | no | `false` | Whether the select is disabled |
17
+ | `as-child` | `boolean \| undefined` | no | — | Use the provided child element as the default rendered element, combining their props and behavior. |
18
+ | `data-testid` | `string \| undefined` | no | — | |
19
+ | `positioning` | `complex` | no | — | Override default floating positioning (merged with DS defaults). |
20
+ | `ids` | `complex` | no | — | The ids of the elements in the select. Useful for composition. |
21
+ | `loop-focus` | `boolean \| undefined` | no | — | Whether to loop the keyboard navigation through the options |
22
+ | `close-on-select` | `boolean \| undefined` | no | — | Whether the select should close after an item is selected |
23
+ | `open` | `boolean \| undefined` | no | — | Whether the select menu is open |
24
+ | `default-open` | `boolean \| undefined` | no | — | Whether the select's open state is controlled by the user |
25
+ | `composite` | `boolean \| undefined` | no | — | Whether the select is a composed with other composite widgets like tabs or combobox |
26
+ | `on-pointer-down-outside` | `complex` | no | — | Function called when the pointer is pressed down outside the component |
27
+ | `on-focus-outside` | `complex` | no | — | Function called when the focus is moved outside the component |
28
+ | `on-interact-outside` | `complex` | no | — | Function called when an interaction happens outside the component |
29
+ | `present` | `boolean \| undefined` | no | — | Whether the node is present (controlled by the user) |
30
+ | `on-exit-complete` | `VoidFunction \| undefined` | no | — | Function called when the animation ends in the closed state |
31
+ | `on-enter-complete` | `VoidFunction \| undefined` | no | — | Function called when the animation ends in the open state |
32
+ | `immediate` | `boolean \| undefined` | no | — | Whether to synchronize the present change immediately or defer it to the next frame |
33
+ | `auto-complete` | `string \| undefined` | no | — | The autocomplete attribute for the hidden select. Enables browser autofill (e.g. "address-level1" for state). |
34
+ | `read-only` | `boolean \| undefined` | no | — | Whether the select is read-only |
35
+ | `required` | `boolean \| undefined` | no | — | Whether the select is required |
36
+ | `invalid` | `boolean \| undefined` | no | — | Whether the select is invalid |
37
+ | `translations` | `complex` | no | — | Specifies the localized strings that identifies the accessibility elements and their states |
38
+ | `scroll-to-index-fn` | `complex` | no | — | Function to scroll to a specific index |
39
+ | `skip-animation-on-mount` | `boolean \| undefined` | no | — | Whether to allow the initial presence animation. |
40
+ | `hide-mode` | `"display-none" \| "activity"` | no | — | How to hide content when mounted but not present. - `'display-none'`: HTML `hidden` attribute. Effects stay alive. - `'activity'`: React 19 `<Activity mode="hidden">`. Effects pause. Requires React 19+. |
41
+ | `label` | `string` | yes | — | Attribute name: trigger text in multi mode, the trigger's aria-label, «Clear {label}». |
42
+ | `all-label` | `string \| undefined` | no | `All` | Single mode: trigger text while unset and the default text of `FilterDropdownAllOption`. |
43
+ | `collection` | `complex` | yes | — | Items to pick from. `groupBy` is supported. |
44
+ | `multiple` | `boolean \| undefined` | no | `false` | Checkbox mode: several values, OR-ed, the menu stays open. |
45
+ | `value` | `string[] \| undefined` | no | — | Controlled picked values; `[]` = unset. |
46
+ | `default-value` | `string[] \| undefined` | no | — | |
47
+ | `on-value-change` | `complex` | no | — | |
48
+ | `on-open-change` | `complex` | no | — | |
49
+ | `search-threshold` | `number \| undefined` | no | `8` | Item count from which the search field and (multi) the "Selected" section appear. Counts the collection's own items only. |
50
+ | `filter-fn` | `((itemString: string, item: T, query: string) => boolean) \| undefined` | no | — | Overrides the default case-insensitive match on the item label. |
51
+ | `selected-on-top` | `boolean \| undefined` | no | `true` | Multi mode: pin the picked values under «Selected» on top of the list (from `searchThreshold` items, hidden while searching). Render `FilterDropdownSelected` for it. |
52
+
53
+ ## Sub-components
54
+
55
+ - `WallarmDS.FilterDropdownAllOption` — `FilterDropdownAllOptionProps` in the declaration bundle.
56
+ - `WallarmDS.FilterDropdownClear` — `FilterDropdownClearProps` in the declaration bundle.
57
+ - `WallarmDS.FilterDropdownContent` — `FilterDropdownContentProps` in the declaration bundle.
58
+ - `WallarmDS.FilterDropdownEmpty` — `FilterDropdownEmptyProps` in the declaration bundle.
59
+ - `WallarmDS.FilterDropdownFooter` — `FilterDropdownFooterProps` in the declaration bundle.
60
+ - `WallarmDS.FilterDropdownFooterClear` — `FilterDropdownFooterClearProps` in the declaration bundle.
61
+ - `WallarmDS.FilterDropdownGroup` — `FilterDropdownGroupProps` in the declaration bundle.
62
+ - `WallarmDS.FilterDropdownGroupLabel` — `FilterDropdownGroupLabelProps` in the declaration bundle.
63
+ - `WallarmDS.FilterDropdownOption` — `FilterDropdownOptionProps` in the declaration bundle.
64
+ - `WallarmDS.FilterDropdownSearch` — `FilterDropdownSearchProps` in the declaration bundle.
65
+ - `WallarmDS.FilterDropdownSelected` — `FilterDropdownSelectedProps` in the declaration bundle.
66
+ - `WallarmDS.FilterDropdownTrigger` — `FilterDropdownTriggerProps` in the declaration bundle.
67
+
68
+ ## Stories
69
+
70
+ ### Default
71
+
72
+ Single mode: the trigger reads «All …» while unset and the picked value once set; picking closes
73
+ the menu. Analytics ids go on the parts that render the real targets — here the trigger.
74
+
75
+ Source: FilterDropdown/FilterDropdown.stories.tsx#Default
76
+
77
+ ### Multi
78
+
79
+ Multi mode: checkboxes, OR-ed, the menu stays open. The trigger shows the name with the value or
80
+ a count, and the ✕ (or Backspace on the trigger) clears. Pass your own `FilterDropdownClear` as
81
+ the trigger's child to put an analytics id on the ✕.
82
+
83
+ Source: FilterDropdown/FilterDropdown.stories.tsx#Multi
84
+
85
+ ### LabelForms
86
+
87
+ Every form the trigger takes: dashed while unset, solid with a shadow once set.
88
+
89
+ Source: FilterDropdown/FilterDropdown.stories.tsx#LabelForms
90
+
91
+ ### States
92
+
93
+ Disabled keeps the value readable — the ✕ and the count stay visible, just inert.
94
+
95
+ Source: FilterDropdown/FilterDropdown.stories.tsx#States
96
+
97
+ ### WithSearch
98
+
99
+ From `searchThreshold` options (8 by default) the menu gains a search that takes focus on open,
100
+ and multi mode repeats what was picked in a "Selected" section on top. It is a snapshot: rows
101
+ stay put while you tick, and it hides while a query is active.
102
+
103
+ Source: FilterDropdown/FilterDropdown.stories.tsx#WithSearch
104
+
105
+ ### Groups
106
+
107
+ A `groupBy` collection renders one labelled group per entry of `useFilterDropdown().groups`.
108
+
109
+ Source: FilterDropdown/FilterDropdown.stories.tsx#Groups
110
+
111
+ ### Hint
112
+
113
+ `hint` puts secondary text, such as a count, at the right end of a row, before the check.
114
+
115
+ Source: FilterDropdown/FilterDropdown.stories.tsx#Hint
116
+
117
+ ### LongLabels
118
+
119
+ The trigger stops at 180px and ellipsises, with the full value on hover; the menu hugs its
120
+ options up to 360px and wraps longer ones.
121
+
122
+ Source: FilterDropdown/FilterDropdown.stories.tsx#LongLabels
123
+
124
+ ### FilterRow
125
+
126
+ The toolbar it is made for: a search, scoped views, then one filter per attribute.
127
+
128
+ Source: FilterDropdown/FilterDropdown.stories.tsx#FilterRow
129
+
130
+ ### Controlled
131
+
132
+ Controlled with `value` / `onValueChange`. The handler only ever receives your own values —
133
+ `[]` for unset — never the internal «All» or "Selected" ones.
134
+
135
+ Source: FilterDropdown/FilterDropdown.stories.tsx#Controlled
136
+
137
+ ## Story sources
138
+
139
+ ### FilterDropdown/FilterDropdown.stories.tsx
140
+
141
+ ```tsx
142
+ import { useState } from 'react';
143
+ import { createListCollection } from '@ark-ui/react/collection';
144
+ import type { Meta, StoryFn } from 'storybook-react-rsbuild';
145
+ import { Button } from '../Button';
146
+ import { SearchInput } from '../SearchInput';
147
+ import { SegmentedTabs, SegmentedTabsList, SegmentedTabsTrigger } from '../SegmentedTabs';
148
+ import { FilterDropdown } from './FilterDropdown';
149
+ import { FilterDropdownAllOption } from './FilterDropdownAllOption';
150
+ import { FilterDropdownClear } from './FilterDropdownClear';
151
+ import { FilterDropdownContent } from './FilterDropdownContent';
152
+ import { useFilterDropdown } from './FilterDropdownContext';
153
+ import { FilterDropdownEmpty } from './FilterDropdownEmpty';
154
+ import { FilterDropdownFooter } from './FilterDropdownFooter';
155
+ import { FilterDropdownGroup } from './FilterDropdownGroup';
156
+ import { FilterDropdownGroupLabel } from './FilterDropdownGroupLabel';
157
+ import { FilterDropdownOption } from './FilterDropdownOption';
158
+ import { FilterDropdownSearch } from './FilterDropdownSearch';
159
+ import { FilterDropdownSelected } from './FilterDropdownSelected';
160
+ import { FilterDropdownTrigger } from './FilterDropdownTrigger';
161
+
162
+ const DESCRIPTION = [
163
+ 'A lightweight filter for a list or table toolbar: a 36px trigger that opens a menu and narrows the list by one attribute. Picks apply at once — there is no Apply step.',
164
+ 'Single mode is for exclusive values and starts with «All …», which is also the reset; multi mode ticks several values that are OR-ed and clears with the ✕. From eight options the menu gains a search, and in multi mode a "Selected" section on top.',
165
+ 'Reach for `Select` inside forms, and for `FilterInput` when the query combines several attributes and operators.',
166
+ ].join(' ');
167
+
168
+ interface Item {
169
+ value: string;
170
+ label: string;
171
+ count?: number;
172
+ category?: string;
173
+ }
174
+
175
+ const environments: Item[] = [
176
+ { value: 'production', label: 'Production' },
177
+ { value: 'pre-production', label: 'Pre-production' },
178
+ { value: 'staging', label: 'Staging' },
179
+ { value: 'development', label: 'Development' },
180
+ ];
181
+
182
+ const types: Item[] = [
183
+ { value: 'lua', label: 'Lua', count: 12 },
184
+ { value: 'wasm', label: 'WASM', count: 4 },
185
+ { value: 'plugin', label: 'Plugin', count: 7 },
186
+ ];
187
+
188
+ const letters: Item[] = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'].map(
189
+ (letter, index) => ({
190
+ value: letter.toLowerCase(),
191
+ label: `Scope ${letter}`,
192
+ count: (index * 7) % 23,
193
+ category: index < 6 ? 'Group 1' : 'Group 2',
194
+ }),
195
+ );
196
+
197
+ const longLabels: Item[] = [
198
+ { value: 'eu', label: 'Europe — Frankfurt (eu-central-1) primary cluster' },
199
+ { value: 'us', label: 'United States — North Virginia (us-east-1) failover cluster' },
200
+ { value: 'ap', label: 'Asia Pacific — Singapore (ap-southeast-1)' },
201
+ ];
202
+
203
+ /** The standard menu: every part in the order the spec renders them. */
204
+ const Menu = ({ withHint = false }: { withHint?: boolean }) => {
205
+ const { groups } = useFilterDropdown<Item>();
206
+
207
+ return (
208
+ <FilterDropdownContent>
209
+ <FilterDropdownSearch />
210
+ <FilterDropdownAllOption />
211
+ <FilterDropdownSelected<Item>>
212
+ {item => (
213
+ <FilterDropdownOption item={item} hint={withHint ? item.count : undefined}>
214
+ {item.label}
215
+ </FilterDropdownOption>
216
+ )}
217
+ </FilterDropdownSelected>
218
+ {groups.map(([group, items]) => (
219
+ <FilterDropdownGroup key={group}>
220
+ {group && <FilterDropdownGroupLabel>{group}</FilterDropdownGroupLabel>}
221
+ {items.map(item => (
222
+ <FilterDropdownOption
223
+ key={item.value}
224
+ item={item}
225
+ hint={withHint ? item.count : undefined}
226
+ >
227
+ {item.label}
228
+ </FilterDropdownOption>
229
+ ))}
230
+ </FilterDropdownGroup>
231
+ ))}
232
+ <FilterDropdownEmpty />
233
+ <FilterDropdownFooter />
234
+ </FilterDropdownContent>
235
+ );
236
+ };
237
+
238
+ const meta = {
239
+ title: 'Inputs/FilterDropdown',
240
+ component: FilterDropdown,
241
+ subcomponents: {
242
+ FilterDropdownTrigger,
243
+ FilterDropdownClear,
244
+ FilterDropdownContent,
245
+ FilterDropdownSearch,
246
+ FilterDropdownAllOption,
247
+ FilterDropdownSelected,
248
+ FilterDropdownGroup,
249
+ FilterDropdownGroupLabel,
250
+ FilterDropdownOption,
251
+ FilterDropdownEmpty,
252
+ FilterDropdownFooter,
253
+ },
254
+ parameters: {
255
+ layout: 'centered',
256
+ docs: { description: { component: DESCRIPTION } },
257
+ },
258
+ argTypes: {
259
+ collection: { control: false },
260
+ value: { control: false },
261
+ defaultValue: { control: false },
262
+ onValueChange: { control: false },
263
+ filterFn: { control: false },
264
+ label: { control: 'text' },
265
+ allLabel: { control: 'text' },
266
+ multiple: { control: 'boolean' },
267
+ searchThreshold: { control: 'number' },
268
+ },
269
+ } satisfies Meta<typeof FilterDropdown>;
270
+
271
+ export default meta;
272
+
273
+ /**
274
+ * Single mode: the trigger reads «All …» while unset and the picked value once set; picking closes
275
+ * the menu. Analytics ids go on the parts that render the real targets — here the trigger.
276
+ */
277
+ export const Default: StoryFn<typeof FilterDropdown> = () => (
278
+ <FilterDropdown
279
+ label='Environment'
280
+ allLabel='All environments'
281
+ collection={createListCollection({ items: environments })}
282
+ data-testid='filter-dropdown'
283
+ >
284
+ <FilterDropdownTrigger data-analytics-id='ENV_FILTER' />
285
+ <Menu />
286
+ </FilterDropdown>
287
+ );
288
+
289
+ /**
290
+ * Multi mode: checkboxes, OR-ed, the menu stays open. The trigger shows the name with the value or
291
+ * a count, and the ✕ (or Backspace on the trigger) clears. Pass your own `FilterDropdownClear` as
292
+ * the trigger's child to put an analytics id on the ✕.
293
+ */
294
+ export const Multi: StoryFn<typeof FilterDropdown> = () => (
295
+ <FilterDropdown
296
+ label='Type'
297
+ multiple
298
+ collection={createListCollection({ items: types })}
299
+ defaultValue={['lua']}
300
+ data-testid='filter-dropdown'
301
+ >
302
+ <FilterDropdownTrigger data-analytics-id='TYPE_FILTER'>
303
+ <FilterDropdownClear data-analytics-id='TYPE_FILTER_CLEAR' />
304
+ </FilterDropdownTrigger>
305
+ <Menu />
306
+ </FilterDropdown>
307
+ );
308
+
309
+ const LabelFormRow = ({
310
+ caption,
311
+ multiple = false,
312
+ value,
313
+ testId,
314
+ }: {
315
+ caption: string;
316
+ multiple?: boolean;
317
+ value: string[];
318
+ testId: string;
319
+ }) => (
320
+ <div className='flex items-center gap-16'>
321
+ <p className='sb-annotation w-160'>{caption}</p>
322
+ <FilterDropdown
323
+ label='Type'
324
+ allLabel='All types'
325
+ multiple={multiple}
326
+ collection={createListCollection({ items: types })}
327
+ defaultValue={value}
328
+ data-testid={testId}
329
+ >
330
+ <FilterDropdownTrigger />
331
+ <Menu />
332
+ </FilterDropdown>
333
+ </div>
334
+ );
335
+
336
+ /** Every form the trigger takes: dashed while unset, solid with a shadow once set. */
337
+ export const LabelForms: StoryFn<typeof FilterDropdown> = () => (
338
+ <div className='flex flex-col gap-12'>
339
+ <LabelFormRow caption='single, unset' value={[]} testId='single-unset' />
340
+ <LabelFormRow caption='single, set' value={['wasm']} testId='single-set' />
341
+ <LabelFormRow caption='multi, unset' multiple value={[]} testId='multi-unset' />
342
+ <LabelFormRow caption='multi, one value' multiple value={['lua']} testId='multi-one' />
343
+ <LabelFormRow
344
+ caption='multi, several values'
345
+ multiple
346
+ value={['lua', 'wasm', 'plugin']}
347
+ testId='multi-many'
348
+ />
349
+ </div>
350
+ );
351
+
352
+ /** Disabled keeps the value readable — the ✕ and the count stay visible, just inert. */
353
+ export const States: StoryFn<typeof FilterDropdown> = () => (
354
+ <div className='flex flex-col gap-12'>
355
+ {(
356
+ [
357
+ ['disabled, unset', false, []],
358
+ ['disabled, single set', false, ['wasm']],
359
+ ['disabled, multi set', true, ['lua', 'wasm']],
360
+ ] as const
361
+ ).map(([caption, multiple, value]) => (
362
+ <div key={caption} className='flex items-center gap-16'>
363
+ <p className='sb-annotation w-160'>{caption}</p>
364
+ <FilterDropdown
365
+ label='Type'
366
+ allLabel='All types'
367
+ multiple={multiple}
368
+ disabled
369
+ collection={createListCollection({ items: types })}
370
+ defaultValue={[...value]}
371
+ data-testid={`disabled-${caption.replace(/\W+/g, '-')}`}
372
+ >
373
+ <FilterDropdownTrigger />
374
+ <Menu />
375
+ </FilterDropdown>
376
+ </div>
377
+ ))}
378
+ </div>
379
+ );
380
+
381
+ /**
382
+ * From `searchThreshold` options (8 by default) the menu gains a search that takes focus on open,
383
+ * and multi mode repeats what was picked in a "Selected" section on top. It is a snapshot: rows
384
+ * stay put while you tick, and it hides while a query is active.
385
+ */
386
+ export const WithSearch: StoryFn<typeof FilterDropdown> = () => (
387
+ <div className='flex gap-8'>
388
+ <FilterDropdown
389
+ label='Scope'
390
+ multiple
391
+ collection={createListCollection({ items: letters })}
392
+ defaultValue={['f', 'c']}
393
+ data-testid='filter-dropdown-multi'
394
+ >
395
+ <FilterDropdownTrigger />
396
+ <Menu />
397
+ </FilterDropdown>
398
+ <FilterDropdown
399
+ label='Scope'
400
+ allLabel='All scopes'
401
+ collection={createListCollection({ items: letters })}
402
+ data-testid='filter-dropdown-single'
403
+ >
404
+ <FilterDropdownTrigger />
405
+ <Menu />
406
+ </FilterDropdown>
407
+ </div>
408
+ );
409
+
410
+ /** A `groupBy` collection renders one labelled group per entry of `useFilterDropdown().groups`. */
411
+ export const Groups: StoryFn<typeof FilterDropdown> = () => (
412
+ <FilterDropdown
413
+ label='Scope'
414
+ multiple
415
+ collection={createListCollection({ items: letters, groupBy: item => item.category ?? '' })}
416
+ data-testid='filter-dropdown'
417
+ >
418
+ <FilterDropdownTrigger />
419
+ <Menu />
420
+ </FilterDropdown>
421
+ );
422
+
423
+ /** `hint` puts secondary text, such as a count, at the right end of a row, before the check. */
424
+ export const Hint: StoryFn<typeof FilterDropdown> = () => (
425
+ <FilterDropdown
426
+ label='Type'
427
+ multiple
428
+ collection={createListCollection({ items: types })}
429
+ data-testid='filter-dropdown'
430
+ >
431
+ <FilterDropdownTrigger />
432
+ <Menu withHint />
433
+ </FilterDropdown>
434
+ );
435
+
436
+ /**
437
+ * The trigger stops at 180px and ellipsises, with the full value on hover; the menu hugs its
438
+ * options up to 360px and wraps longer ones.
439
+ */
440
+ export const LongLabels: StoryFn<typeof FilterDropdown> = () => (
441
+ <div className='flex gap-8'>
442
+ <FilterDropdown
443
+ label='Region'
444
+ allLabel='All regions'
445
+ collection={createListCollection({ items: longLabels })}
446
+ defaultValue={['us']}
447
+ data-testid='filter-dropdown-single'
448
+ >
449
+ <FilterDropdownTrigger />
450
+ <Menu />
451
+ </FilterDropdown>
452
+ <FilterDropdown
453
+ label='Deployment region'
454
+ multiple
455
+ collection={createListCollection({ items: longLabels })}
456
+ defaultValue={['eu']}
457
+ data-testid='filter-dropdown-multi'
458
+ >
459
+ <FilterDropdownTrigger />
460
+ <Menu />
461
+ </FilterDropdown>
462
+ </div>
463
+ );
464
+
465
+ /** The toolbar it is made for: a search, scoped views, then one filter per attribute. */
466
+ export const FilterRow: StoryFn<typeof FilterDropdown> = () => {
467
+ const [query, setQuery] = useState('');
468
+
469
+ return (
470
+ <div className='flex flex-wrap items-center gap-8'>
471
+ <div className='w-240'>
472
+ <SearchInput value={query} onChange={setQuery} placeholder='Search rules' />
473
+ </div>
474
+ <SegmentedTabs defaultValue='all'>
475
+ <SegmentedTabsList>
476
+ <SegmentedTabsTrigger value='all'>All</SegmentedTabsTrigger>
477
+ <SegmentedTabsTrigger value='active'>Active</SegmentedTabsTrigger>
478
+ <SegmentedTabsTrigger value='blocked'>Blocked</SegmentedTabsTrigger>
479
+ </SegmentedTabsList>
480
+ </SegmentedTabs>
481
+ <FilterDropdown
482
+ label='Environment'
483
+ allLabel='All environments'
484
+ collection={createListCollection({ items: environments })}
485
+ data-testid='filter-environment'
486
+ >
487
+ <FilterDropdownTrigger data-analytics-id='RULES_ENV_FILTER' />
488
+ <Menu />
489
+ </FilterDropdown>
490
+ <FilterDropdown
491
+ label='Type'
492
+ multiple
493
+ collection={createListCollection({ items: types })}
494
+ data-testid='filter-type'
495
+ >
496
+ <FilterDropdownTrigger data-analytics-id='RULES_TYPE_FILTER' />
497
+ <Menu withHint />
498
+ </FilterDropdown>
499
+ <FilterDropdown
500
+ label='Scope'
501
+ multiple
502
+ collection={createListCollection({ items: letters })}
503
+ data-testid='filter-scope'
504
+ >
505
+ <FilterDropdownTrigger data-analytics-id='RULES_SCOPE_FILTER' />
506
+ <Menu />
507
+ </FilterDropdown>
508
+ </div>
509
+ );
510
+ };
511
+
512
+ /**
513
+ * Controlled with `value` / `onValueChange`. The handler only ever receives your own values —
514
+ * `[]` for unset — never the internal «All» or "Selected" ones.
515
+ */
516
+ export const Controlled: StoryFn<typeof FilterDropdown> = () => {
517
+ const [value, setValue] = useState<string[]>(['pre-production']);
518
+ const collection = createListCollection({ items: environments });
519
+
520
+ return (
521
+ <div className='flex flex-col items-start gap-12'>
522
+ <FilterDropdown
523
+ label='Environment'
524
+ allLabel='All environments'
525
+ collection={collection}
526
+ value={value}
527
+ onValueChange={details => setValue(details.value)}
528
+ data-testid='filter-dropdown'
529
+ >
530
+ <FilterDropdownTrigger />
531
+ <Menu />
532
+ </FilterDropdown>
533
+ <p className='sb-annotation' data-testid='filter-dropdown-value'>
534
+ value: {JSON.stringify(value)}
535
+ </p>
536
+ <Button variant='outline' color='neutral' size='small' onClick={() => setValue([])}>
537
+ Reset
538
+ </Button>
539
+ </div>
540
+ );
541
+ };
542
+ ```
@@ -0,0 +1,2 @@
1
+ <!-- @dsCard group="Inputs" height=480 -->
2
+ <!doctype html><html><head><meta charset="utf-8"></head><body><div id="preview"></div><script src="./stories.js"></script><script>window.WallarmPreview.mount(document.getElementById('preview'));</script></body></html>
@@ -0,0 +1,12 @@
1
+ var e={vD(e,t,l){let i,r;/**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @lightSyntaxTransform
8
+ * @noflow
9
+ * @nolint
10
+ * @preventMunge
11
+ * @preserve-invariant-messages
12
+ */var n,a,o=Object.create,s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,f=(e,t,l,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of u(t))h.call(e,r)||r===l||s(e,r,{get:()=>t[r],enumerable:!(i=c(t,r))||i.enumerable});return e},d={},p={$dispatcherGuard:()=>O,$makeReadOnly:()=>$,$reset:()=>N,$structuralCheck:()=>A,c:()=>E,clearRenderCounterRegistry:()=>T,renderCounterRegistry:()=>C,useRenderCounter:()=>V};for(var y in p)s(d,y,{get:p[y],enumerable:!0});e.exports=f(s({},"__esModule",{value:!0}),d);var g=(r=null!=(i=l("C"))?o(m(i)):{},f(i&&i.__esModule?r:s(r,"default",{value:i,enumerable:!0}),i)),{useRef:b,useEffect:w,isValidElement:S}=g,_=null!=(n=g.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE)?n:g.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,v=Symbol.for("react.memo_cache_sentinel"),E="function"==typeof(null==(a=g.__COMPILER_RUNTIME)?void 0:a.c)?g.__COMPILER_RUNTIME.c:function(e){return g.useMemo(()=>{let t=Array(e);for(let l=0;l<e;l++)t[l]=v;return t[v]=!0,t},[])},I={};["readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","getCacheSignal","getCacheForType","useCacheRefresh"].forEach(e=>{I[e]=()=>{throw Error(`[React] Unexpected React hook call (${e}) from a React compiled function. Check that all hooks are called directly and named according to convention ('use[A-Z]') `)}});var R=null;function x(e){return _.ReactCurrentDispatcher.current=e,_.ReactCurrentDispatcher.current}I.useMemoCache=e=>{if(null!=R)return R.useMemoCache(e);throw Error("React Compiler internal invariant violation: unexpected null dispatcher")};var D=[];function O(e){let t=_.ReactCurrentDispatcher.current;if(0===e){if(D.push(t),1===D.length&&(R=t),t===I)throw Error("[React] Unexpected call to custom hook or component from a React compiled function. Check that (1) all hooks are called directly and named according to convention ('use[A-Z]') and (2) components are returned as JSX instead of being directly invoked.");x(I)}else if(1===e){let e=D.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");0===D.length&&(R=null),x(e)}else if(2===e)D.push(t),x(R);else if(3===e){let e=D.pop();if(null==e)throw Error("React Compiler internal error: unexpected null in guard stack");x(e)}else throw Error("React Compiler internal error: unreachable block"+e)}function N(e){for(let t=0;t<e.length;t++)e[t]=v}function $(){throw Error("TODO: implement $makeReadOnly in react-compiler-runtime")}var C=new Map;function T(){for(let e of C.values())e.forEach(e=>{e.count=0})}function V(e){let t=b(null);null!=t.current&&(t.current.count+=1),w(()=>{if(null==t.current){let l,i={count:0};null==(l=C.get(e))&&(l=new Set,C.set(e,l)),l.add(i),t.current=i}return()=>{var l;let i;null!==t.current&&(l=t.current,null!=(i=C.get(e))&&i.delete(l))}})}var M=new Set;function A(e,t,l,i,r,n){function a(e,t,a,o){let s=`${i}:${n} [${r}] ${l}${a} changed from ${e} to ${t} at depth ${o}`;M.has(s)||(M.add(s),console.error(s))}!function e(t,l,i,r){if(!(r>2)){if(t!==l)if(typeof t!=typeof l)a(`type ${typeof t}`,`type ${typeof l}`,i,r);else if("object"==typeof t){let n=Array.isArray(t),o=Array.isArray(l);if(null===t&&null!==l)a("null",`type ${typeof l}`,i,r);else if(null===l)a(`type ${typeof t}`,"null",i,r);else if(t instanceof Map)if(l instanceof Map)if(t.size!==l.size)a(`Map instance with size ${t.size}`,`Map instance with size ${l.size}`,i,r);else for(let[n,o]of t)l.has(n)?e(o,l.get(n),`${i}.get(${n})`,r+1):a(`Map instance with key ${n}`,`Map instance without key ${n}`,i,r);else a("Map instance","other value",i,r);else if(l instanceof Map)a("other value","Map instance",i,r);else if(t instanceof Set)if(l instanceof Set)if(t.size!==l.size)a(`Set instance with size ${t.size}`,`Set instance with size ${l.size}`,i,r);else for(let e of l)t.has(e)||a(`Set instance without element ${e}`,`Set instance with element ${e}`,i,r);else a("Set instance","other value",i,r);else if(l instanceof Set)a("other value","Set instance",i,r);else if(n||o)if(n!==o)a(`type ${n?"array":"object"}`,`type ${o?"array":"object"}`,i,r);else if(t.length!==l.length)a(`array with length ${t.length}`,`array with length ${l.length}`,i,r);else for(let n=0;n<t.length;n++)e(t[n],l[n],`${i}[${n}]`,r+1);else if(S(t)||S(l))S(t)!==S(l)?a(`type ${S(t)?"React element":"object"}`,`type ${S(l)?"React element":"object"}`,i,r):t.type!==l.type?a(`React element of type ${t.type}`,`React element of type ${l.type}`,i,r):e(t.props,l.props,`[props of ${i}]`,r+1);else{for(let e in l)e in t||a(`object without key ${e}`,`object with key ${e}`,i,r);for(let n in t)n in l?e(t[n],l[n],`${i}.${n}`,r+1):a(`object with key ${n}`,`object without key ${n}`,i,r)}}else{if("function"==typeof t)return;isNaN(t)||isNaN(l)?isNaN(t)!==isNaN(l)&&a(`${isNaN(t)?"NaN":"non-NaN value"}`,`${isNaN(l)?"NaN":"non-NaN value"}`,i,r):t!==l&&a(t,l,i,r)}}}(e,t,"",0)}},p(e,t,l){let i=new WeakMap,r=new WeakMap;function n(e,t,l){let n=t,a=l;if("object"==typeof n&&null!==n&&"$$typeof"in n&&n.$$typeof===Symbol.for("react.context")&&"Provider"in n&&(n=n.Provider),"function"==typeof n&&null!=a.ref&&!n.prototype?.isReactComponent){let t=n,l=i.get(e);l||(l=new WeakMap,i.set(e,l));let r=l.get(t);r||((r=e.forwardRef((e,l)=>t({...e,ref:l}))).displayName=t.displayName??t.name,l.set(t,r)),n=r}if("string"==typeof n&&"boolean"==typeof a.inert&&((a={...a}).inert?a.inert="":delete a.inert),"string"==typeof n)for(let[e,t]of[["fill-rule","fillRule"],["clip-rule","clipRule"]])e in a&&(a={...a,[t]:a[e]},delete a[e]);return"string"==typeof n&&null!=a.ref&&(n=function(e,t){let l=r.get(e);l||(l=new Map,r.set(e,l));let i=l.get(t);if(i)return i;let n=e.forwardRef((l,i)=>{let r=e.useRef(null);if(!r.current||r.current.original!==i){let e;r.current={original:i,callback:t=>{if(null==t&&e){let t=e;e=void 0,t();return}if("function"==typeof i){let l=i(t);e="function"==typeof l?l:void 0}else i&&(i.current=t)}}}return e.createElement(t,{...l,ref:r.current.callback})});return n.displayName=`CanvasHost(${t})`,l.set(t,n),n}(e,n)),{type:n,props:a}}function a(e){let t=(t,l,i)=>{let r=n(e,t,l??{});return e.createElement(r.type,void 0===i?r.props:{...r.props,key:i})};return{jsx:t,jsxs:(t,l,i)=>{let r=n(e,t,l??{}),{children:a,...o}=r.props;return e.createElement(r.type,void 0===i?o:{...o,key:i},...Array.isArray(a)?a:[a])},jsxDEV:t,Fragment:e.Fragment}}function o(e){return{...e,createElement:(t,l,...i)=>{let r=n(e,t,l??{});return e.createElement(r.type,r.props,...i)},cloneElement:(t,l,...i)=>{let r=e.cloneElement(t,l??void 0,...i),a=r.ref,o=n(e,r.type,{...r.props,ref:a});return o.type===r.type&&"string"!=typeof r.type?r:e.createElement(o.type,{...o.props,key:r.key})}}}l.d(t,{MA:()=>a,YJ:()=>o})},C(e,t,l){l.r(t);let i=(0,l("p").YJ)(window.React),{Children:r,Component:n,Fragment:a,Profiler:o,PureComponent:s,StrictMode:c,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:m,act:h,cloneElement:f,createContext:d,createElement:p,createFactory:y,createRef:g,forwardRef:b,isValidElement:w,lazy:S,memo:_,startTransition:v,unstable_act:E,useCallback:I,useContext:R,useDebugValue:x,useDeferredValue:D,useEffect:O,useId:N,useImperativeHandle:$,useInsertionEffect:C,useLayoutEffect:T,useMemo:V,useReducer:M,useRef:A,useState:F,useSyncExternalStore:L,useTransition:k,version:j,use:W}=i;l.d(t,{},{Children:r,Component:n,Fragment:a,Profiler:o,PureComponent:s,StrictMode:c,Suspense:u,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:m,act:h,cloneElement:f,createContext:d,createElement:p,createFactory:y,createRef:g,default:i,forwardRef:b,isValidElement:w,lazy:S,memo:_,startTransition:v,unstable_act:E,use:W,useCallback:I,useContext:R,useDebugValue:x,useDeferredValue:D,useEffect:O,useId:N,useImperativeHandle:$,useInsertionEffect:C,useLayoutEffect:T,useMemo:V,useReducer:M,useRef:A,useState:F,useSyncExternalStore:L,useTransition:k,version:j})}},t={};function l(i){var r=t[i];if(void 0!==r)return r.exports;var n=t[i]={exports:{}};return e[i](n,n.exports,l),n.exports}l.d=(e,t,i)=>{var r=(t,i)=>{for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,[i]:t[r]})};r(t,"get"),r(i,"value")},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{let{jsx:e,jsxs:t,jsxDEV:i,Fragment:r}=(0,l("p").MA)(window.React);var n=l("vD"),a=l("C"),o=Object.defineProperty,s=(e,t,l)=>{let i;return(i="symbol"!=typeof t?t+"":t)in e?o(e,i,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[i]=l},c=e=>null!=e&&"object"==typeof e&&!Array.isArray(e),u=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);Function.prototype.toString.call(Object);var m=e=>e?.constructor.name==="Array",h=(e,t)=>{if(Object.is(e,t))return!0;if(null==e&&null!=t||null!=e&&null==t)return!1;if("function"==typeof e?.isEqual&&"function"==typeof t?.isEqual)return e.isEqual(t);if("function"==typeof e&&"function"==typeof t)return e.toString()===t.toString();if(m(e)&&m(t))return((e,t)=>{if(e.length!==t.length)return!1;for(let l=0;l<e.length;l++)if(!h(e[l],t[l]))return!1;return!0})(Array.from(e),Array.from(t));if("object"!=typeof e||"object"!=typeof t)return!1;let l=Object.keys(t??Object.create(null)),i=l.length;for(let t=0;t<i;t++)if(!Reflect.has(e,l[t]))return!1;for(let r=0;r<i;r++){let i=l[r];if(!h(e[i],t[i]))return!1}return!0},f={itemToValue:e=>"string"==typeof e?e:c(e)&&u(e,"value")?e.value:"",itemToString:e=>"string"==typeof e?e:c(e)&&u(e,"label")?e.label:f.itemToValue(e),isItemDisabled:e=>!!(c(e)&&u(e,"disabled"))&&!!e.disabled},d=class e{constructor(t){s(this,"options",t),s(this,"items"),s(this,"indexMap",null),s(this,"copy",t=>new e({...this.options,items:t??[...this.items]})),s(this,"isEqual",e=>h(this.items,e.items)),s(this,"setItems",e=>this.copy(e)),s(this,"getValues",(e=this.items)=>{let t=[];for(let l of e){let e=this.getItemValue(l);null!=e&&t.push(e)}return t}),s(this,"find",e=>{if(null==e)return null;let t=this.indexOf(e);return -1!==t?this.at(t):null}),s(this,"findMany",e=>{let t=[];for(let l of e){let e=this.find(l);null!=e&&t.push(e)}return t}),s(this,"at",e=>{if(!this.options.groupBy&&!this.options.groupSort)return this.items[e]??null;let t=0;for(let[,l]of this.group())for(let i of l){if(t===e)return i;t++}return null}),s(this,"sortFn",(e,t)=>(this.indexOf(e)??0)-(this.indexOf(t)??0)),s(this,"sort",e=>[...e].sort(this.sortFn.bind(this))),s(this,"getItemValue",e=>null==e?null:this.options.itemToValue?.(e)??f.itemToValue(e)),s(this,"getItemDisabled",e=>null!=e&&(this.options.isItemDisabled?.(e)??f.isItemDisabled(e))),s(this,"stringifyItem",e=>null==e?null:this.options.itemToString?.(e)??f.itemToString(e)),s(this,"stringify",e=>null==e?null:this.stringifyItem(this.find(e))),s(this,"stringifyItems",(e,t=", ")=>{let l=[];for(let t of e){let e=this.stringifyItem(t);null!=e&&l.push(e)}return l.join(t)}),s(this,"stringifyMany",(e,t)=>this.stringifyItems(this.findMany(e),t)),s(this,"has",e=>-1!==this.indexOf(e)),s(this,"hasItem",e=>null!=e&&this.has(this.getItemValue(e))),s(this,"group",()=>{let{groupBy:e,groupSort:t}=this.options;if(!e)return[["",[...this.items]]];let l=new Map;this.items.forEach((t,i)=>{let r=e(t,i);l.has(r)||l.set(r,[]),l.get(r).push(t)});let i=Array.from(l.entries());return t&&i.sort(([e],[l])=>{if("function"==typeof t)return t(e,l);if(Array.isArray(t)){let i=t.indexOf(e),r=t.indexOf(l);return -1===i?1:-1===r?-1:i-r}return"asc"===t?e.localeCompare(l):"desc"===t?l.localeCompare(e):0}),i}),s(this,"getNextValue",(e,t=1,l=!1)=>{let i=this.indexOf(e);if(-1===i)return null;for(i=l?Math.min(i+t,this.size-1):i+t;i<=this.size&&this.getItemDisabled(this.at(i));)i++;return this.getItemValue(this.at(i))}),s(this,"getPreviousValue",(e,t=1,l=!1)=>{let i=this.indexOf(e);if(-1===i)return null;for(i=l?Math.max(i-t,0):i-t;i>=0&&this.getItemDisabled(this.at(i));)i--;return this.getItemValue(this.at(i))}),s(this,"indexOf",e=>{if(null==e)return -1;if(!this.options.groupBy&&!this.options.groupSort)return this.items.findIndex(t=>this.getItemValue(t)===e);if(!this.indexMap){this.indexMap=new Map;let e=0;for(let[,t]of this.group())for(let l of t){let t=this.getItemValue(l);null!=t&&this.indexMap.set(t,e),e++}}return this.indexMap.get(e)??-1}),s(this,"getByText",(e,t)=>{let l=null!=t?this.indexOf(t):-1,i=1===e.length;for(let r=0;r<this.items.length;r++){let n=this.items[(l+r+1)%this.items.length];if((!i||this.getItemValue(n)!==t)&&!this.getItemDisabled(n)&&p(this.stringifyItem(n),e))return n}}),s(this,"search",(e,t)=>{let{state:l,currentValue:i,timeout:r=350}=t,n=l.keysSoFar+e,a=n.length>1&&Array.from(n).every(e=>e===n[0])?n[0]:n,o=this.getByText(a,i),s=this.getItemValue(o);function c(){clearTimeout(l.timer),l.timer=-1}return!function e(t){l.keysSoFar=t,c(),""!==t&&(l.timer=+setTimeout(()=>{e(""),c()},r))}(n),s}),s(this,"update",(e,t)=>{let l=this.indexOf(e);return -1===l?this:this.copy([...this.items.slice(0,l),t,...this.items.slice(l+1)])}),s(this,"upsert",(e,t,l="append")=>{let i=this.indexOf(e);return -1===i?("append"===l?this.append:this.prepend)(t):this.copy([...this.items.slice(0,i),t,...this.items.slice(i+1)])}),s(this,"insert",(e,...t)=>this.copy(y(this.items,e,...t))),s(this,"insertBefore",(e,...t)=>{let l=this.indexOf(e);if(-1===l)if(0!==this.items.length)return this;else l=0;return this.copy(y(this.items,l,...t))}),s(this,"insertAfter",(e,...t)=>{let l=this.indexOf(e);if(-1===l)if(0!==this.items.length)return this;else l=0;return this.copy(y(this.items,l+1,...t))}),s(this,"prepend",(...e)=>this.copy(y(this.items,0,...e))),s(this,"append",(...e)=>this.copy(y(this.items,this.items.length,...e))),s(this,"filter",e=>{let t=this.items.filter((t,l)=>e(this.stringifyItem(t),l,t));return this.copy(t)}),s(this,"remove",(...e)=>{let t=e.map(e=>"string"==typeof e?e:this.getItemValue(e));return this.copy(this.items.filter(e=>{let l=this.getItemValue(e);return null!=l&&!t.includes(l)}))}),s(this,"move",(e,t)=>{let l=this.indexOf(e);return -1===l?this:this.copy(g(this.items,[l],t))}),s(this,"moveBefore",(e,...t)=>{let l=this.items.findIndex(t=>this.getItemValue(t)===e);if(-1===l)return this;let i=t.map(e=>this.items.findIndex(t=>this.getItemValue(t)===e)).sort((e,t)=>e-t);return this.copy(g(this.items,i,l))}),s(this,"moveAfter",(e,...t)=>{let l=this.items.findIndex(t=>this.getItemValue(t)===e);if(-1===l)return this;let i=t.map(e=>this.items.findIndex(t=>this.getItemValue(t)===e)).sort((e,t)=>e-t);return this.copy(g(this.items,i,l+1))}),s(this,"reorder",(e,t)=>this.copy(g(this.items,[e],t))),s(this,"compareValue",(e,t)=>{let l=this.indexOf(e),i=this.indexOf(t);return l<i?-1:+(l>i)}),s(this,"range",(e,t)=>{let l=[],i=e;for(;null!=i;){if(this.find(i)&&l.push(i),i===t)return l;i=this.getNextValue(i)}return[]}),s(this,"getValueRange",(e,t)=>e&&t?0>=this.compareValue(e,t)?this.range(e,t):this.range(t,e):[]),s(this,"toString",()=>{let e="";for(let t of this.items)e+=[this.getItemValue(t),this.stringifyItem(t),this.getItemDisabled(t)].filter(Boolean).join(":")+",";return e}),s(this,"toJSON",()=>({size:this.size,first:this.firstValue,last:this.lastValue})),this.items=[...t.items]}get size(){return this.items.length}get firstValue(){let e=0;for(;this.getItemDisabled(this.at(e));)e++;return this.getItemValue(this.at(e))}get lastValue(){let e=this.size-1;for(;this.getItemDisabled(this.at(e));)e--;return this.getItemValue(this.at(e))}*[Symbol.iterator](){yield*this.items}},p=(e,t)=>!!e?.toLowerCase().startsWith(t.toLowerCase());function y(e,t,...l){return[...e.slice(0,t),...l,...e.slice(t)]}function g(e,t,l){let i=(t=[...t].sort((e,t)=>e-t)).map(t=>e[t]);for(let l=t.length-1;l>=0;l--)e=[...e.slice(0,t[l]),...e.slice(t[l]+1)];return l=Math.max(0,l-t.filter(e=>e<l).length),[...e.slice(0,l),...i,...e.slice(l)]}var b=e=>new d(e);let w=window.WallarmDS.Button,S=window.WallarmDS.SearchInput,_=window.WallarmDS.SegmentedTabs,v=window.WallarmDS.SegmentedTabsList,E=window.WallarmDS.SegmentedTabsTrigger,I=window.WallarmDS.FilterDropdown,R=window.WallarmDS.FilterDropdownAllOption,x=window.WallarmDS.FilterDropdownClear,D=window.WallarmDS.FilterDropdownContent,O=window.WallarmDS.useFilterDropdown,N=window.WallarmDS.FilterDropdownEmpty,$=window.WallarmDS.FilterDropdownFooter,C=window.WallarmDS.FilterDropdownGroup,T=window.WallarmDS.FilterDropdownGroupLabel,V=window.WallarmDS.FilterDropdownOption,M=window.WallarmDS.FilterDropdownSearch,A=window.WallarmDS.FilterDropdownSelected,F=window.WallarmDS.FilterDropdownTrigger,L=[{value:"production",label:"Production"},{value:"pre-production",label:"Pre-production"},{value:"staging",label:"Staging"},{value:"development",label:"Development"}],k=[{value:"lua",label:"Lua",count:12},{value:"wasm",label:"WASM",count:4},{value:"plugin",label:"Plugin",count:7}],j=["A","B","C","D","E","F","G","H","I","J","K","L"].map((e,t)=>({value:e.toLowerCase(),label:`Scope ${e}`,count:7*t%23,category:t<6?"Group 1":"Group 2"})),W=[{value:"eu",label:"Europe — Frankfurt (eu-central-1) primary cluster"},{value:"us",label:"United States — North Virginia (us-east-1) failover cluster"},{value:"ap",label:"Asia Pacific — Singapore (ap-southeast-1)"}],P=l=>{let i,r,a,o,s,c,u,m=(0,n.c)(14),{withHint:h}=l,f=void 0!==h&&h,{groups:d}=O();if(m[0]===Symbol.for("react.memo_cache_sentinel")?(i=e(M,{}),r=e(R,{}),m[0]=i,m[1]=r):(i=m[0],r=m[1]),m[2]!==f?(a=e(A,{children:t=>e(V,{item:t,hint:f?t.count:void 0,children:t.label})}),m[2]=f,m[3]=a):a=m[3],m[4]!==d||m[5]!==f){let l;m[7]!==f?(l=l=>{let[i,r]=l;return t(C,{children:[i&&e(T,{children:i}),r.map(t=>e(V,{item:t,hint:f?t.count:void 0,children:t.label},t.value))]},i)},m[7]=f,m[8]=l):l=m[8],o=d.map(l),m[4]=d,m[5]=f,m[6]=o}else o=m[6];return m[9]===Symbol.for("react.memo_cache_sentinel")?(s=e(N,{}),c=e($,{}),m[9]=s,m[10]=c):(s=m[9],c=m[10]),m[11]!==a||m[12]!==o?(u=t(D,{children:[i,r,a,o,s,c]}),m[11]=a,m[12]=o,m[13]=u):u=m[13],u},z={title:"Inputs/FilterDropdown",component:I,subcomponents:{FilterDropdownTrigger:F,FilterDropdownClear:x,FilterDropdownContent:D,FilterDropdownSearch:M,FilterDropdownAllOption:R,FilterDropdownSelected:A,FilterDropdownGroup:C,FilterDropdownGroupLabel:T,FilterDropdownOption:V,FilterDropdownEmpty:N,FilterDropdownFooter:$},parameters:{layout:"centered",docs:{description:{component:'A lightweight filter for a list or table toolbar: a 36px trigger that opens a menu and narrows the list by one attribute. Picks apply at once — there is no Apply step. Single mode is for exclusive values and starts with «All …», which is also the reset; multi mode ticks several values that are OR-ed and clears with the ✕. From eight options the menu gains a search, and in multi mode a "Selected" section on top. Reach for `Select` inside forms, and for `FilterInput` when the query combines several attributes and operators.'}}},argTypes:{collection:{control:!1},value:{control:!1},defaultValue:{control:!1},onValueChange:{control:!1},filterFn:{control:!1},label:{control:"text"},allLabel:{control:"text"},multiple:{control:"boolean"},searchThreshold:{control:"number"}}},U=l=>{let i,r,a,o,s,c,u=(0,n.c)(12),{caption:m,multiple:h,value:f,testId:d}=l,p=void 0!==h&&h;return u[0]!==m?(i=e("p",{className:"sb-annotation w-160",children:m}),u[0]=m,u[1]=i):i=u[1],u[2]===Symbol.for("react.memo_cache_sentinel")?(r=b({items:k}),u[2]=r):r=u[2],u[3]===Symbol.for("react.memo_cache_sentinel")?(a=e(F,{}),o=e(P,{}),u[3]=a,u[4]=o):(a=u[3],o=u[4]),u[5]!==p||u[6]!==d||u[7]!==f?(s=t(I,{label:"Type",allLabel:"All types",multiple:p,collection:r,defaultValue:f,"data-testid":d,children:[a,o]}),u[5]=p,u[6]=d,u[7]=f,u[8]=s):s=u[8],u[9]!==i||u[10]!==s?(c=t("div",{className:"flex items-center gap-16",children:[i,s]}),u[9]=i,u[10]=s,u[11]=c):c=u[11],c};function B(l){let[i,r,n]=l;return t("div",{className:"flex items-center gap-16",children:[e("p",{className:"sb-annotation w-160",children:i}),t(I,{label:"Type",allLabel:"All types",multiple:r,disabled:!0,collection:b({items:k}),defaultValue:[...n],"data-testid":`disabled-${i.replace(/\W+/g,"-")}`,children:[e(F,{}),e(P,{})]})]},i)}function H(e){return e.category??""}let G=[{name:"Default",story:()=>{let l,i,r=(0,n.c)(2);return r[0]===Symbol.for("react.memo_cache_sentinel")?(l=b({items:L}),r[0]=l):l=r[0],r[1]===Symbol.for("react.memo_cache_sentinel")?(i=t(I,{label:"Environment",allLabel:"All environments",collection:l,"data-testid":"filter-dropdown",children:[e(F,{"data-analytics-id":"ENV_FILTER"}),e(P,{})]}),r[1]=i):i=r[1],i},meta:z},{name:"Multi",story:()=>{let l,i,r,a=(0,n.c)(3);return a[0]===Symbol.for("react.memo_cache_sentinel")?(l=b({items:k}),i=["lua"],a[0]=l,a[1]=i):(l=a[0],i=a[1]),a[2]===Symbol.for("react.memo_cache_sentinel")?(r=t(I,{label:"Type",multiple:!0,collection:l,defaultValue:i,"data-testid":"filter-dropdown",children:[e(F,{"data-analytics-id":"TYPE_FILTER",children:e(x,{"data-analytics-id":"TYPE_FILTER_CLEAR"})}),e(P,{})]}),a[2]=r):r=a[2],r},meta:z},{name:"LabelForms",story:()=>{let l,i,r,a,o,s=(0,n.c)(5);return s[0]===Symbol.for("react.memo_cache_sentinel")?(l=e(U,{caption:"single, unset",value:[],testId:"single-unset"}),s[0]=l):l=s[0],s[1]===Symbol.for("react.memo_cache_sentinel")?(i=e(U,{caption:"single, set",value:["wasm"],testId:"single-set"}),s[1]=i):i=s[1],s[2]===Symbol.for("react.memo_cache_sentinel")?(r=e(U,{caption:"multi, unset",multiple:!0,value:[],testId:"multi-unset"}),s[2]=r):r=s[2],s[3]===Symbol.for("react.memo_cache_sentinel")?(a=e(U,{caption:"multi, one value",multiple:!0,value:["lua"],testId:"multi-one"}),s[3]=a):a=s[3],s[4]===Symbol.for("react.memo_cache_sentinel")?(o=t("div",{className:"flex flex-col gap-12",children:[l,i,r,a,e(U,{caption:"multi, several values",multiple:!0,value:["lua","wasm","plugin"],testId:"multi-many"})]}),s[4]=o):o=s[4],o},meta:z},{name:"States",story:()=>{let t,l=(0,n.c)(1);return l[0]===Symbol.for("react.memo_cache_sentinel")?(t=e("div",{className:"flex flex-col gap-12",children:[["disabled, unset",!1,[]],["disabled, single set",!1,["wasm"]],["disabled, multi set",!0,["lua","wasm"]]].map(B)}),l[0]=t):t=l[0],t},meta:z},{name:"WithSearch",story:()=>{let l,i,r,a,o,s=(0,n.c)(5);return s[0]===Symbol.for("react.memo_cache_sentinel")?(l=b({items:j}),i=["f","c"],s[0]=l,s[1]=i):(l=s[0],i=s[1]),s[2]===Symbol.for("react.memo_cache_sentinel")?(r=t(I,{label:"Scope",multiple:!0,collection:l,defaultValue:i,"data-testid":"filter-dropdown-multi",children:[e(F,{}),e(P,{})]}),s[2]=r):r=s[2],s[3]===Symbol.for("react.memo_cache_sentinel")?(a=b({items:j}),s[3]=a):a=s[3],s[4]===Symbol.for("react.memo_cache_sentinel")?(o=t("div",{className:"flex gap-8",children:[r,t(I,{label:"Scope",allLabel:"All scopes",collection:a,"data-testid":"filter-dropdown-single",children:[e(F,{}),e(P,{})]})]}),s[4]=o):o=s[4],o},meta:z},{name:"Groups",story:()=>{let l,i,r=(0,n.c)(2);return r[0]===Symbol.for("react.memo_cache_sentinel")?(l=b({items:j,groupBy:H}),r[0]=l):l=r[0],r[1]===Symbol.for("react.memo_cache_sentinel")?(i=t(I,{label:"Scope",multiple:!0,collection:l,"data-testid":"filter-dropdown",children:[e(F,{}),e(P,{})]}),r[1]=i):i=r[1],i},meta:z},{name:"Hint",story:()=>{let l,i,r=(0,n.c)(2);return r[0]===Symbol.for("react.memo_cache_sentinel")?(l=b({items:k}),r[0]=l):l=r[0],r[1]===Symbol.for("react.memo_cache_sentinel")?(i=t(I,{label:"Type",multiple:!0,collection:l,"data-testid":"filter-dropdown",children:[e(F,{}),e(P,{withHint:!0})]}),r[1]=i):i=r[1],i},meta:z},{name:"LongLabels",story:()=>{let l,i,r,a,o,s,c=(0,n.c)(6);return c[0]===Symbol.for("react.memo_cache_sentinel")?(l=b({items:W}),i=["us"],c[0]=l,c[1]=i):(l=c[0],i=c[1]),c[2]===Symbol.for("react.memo_cache_sentinel")?(r=t(I,{label:"Region",allLabel:"All regions",collection:l,defaultValue:i,"data-testid":"filter-dropdown-single",children:[e(F,{}),e(P,{})]}),c[2]=r):r=c[2],c[3]===Symbol.for("react.memo_cache_sentinel")?(a=b({items:W}),o=["eu"],c[3]=a,c[4]=o):(a=c[3],o=c[4]),c[5]===Symbol.for("react.memo_cache_sentinel")?(s=t("div",{className:"flex gap-8",children:[r,t(I,{label:"Deployment region",multiple:!0,collection:a,defaultValue:o,"data-testid":"filter-dropdown-multi",children:[e(F,{}),e(P,{})]})]}),c[5]=s):s=c[5],s},meta:z},{name:"FilterRow",story:()=>{let l,i,r,o,s,c,u,m,h,f=(0,n.c)(11),[d,p]=(0,a.useState)("");return f[0]!==d?(l=e("div",{className:"w-240",children:e(S,{value:d,onChange:p,placeholder:"Search rules"})}),f[0]=d,f[1]=l):l=f[1],f[2]===Symbol.for("react.memo_cache_sentinel")?(i=e(_,{defaultValue:"all",children:t(v,{children:[e(E,{value:"all",children:"All"}),e(E,{value:"active",children:"Active"}),e(E,{value:"blocked",children:"Blocked"})]})}),f[2]=i):i=f[2],f[3]===Symbol.for("react.memo_cache_sentinel")?(r=b({items:L}),f[3]=r):r=f[3],f[4]===Symbol.for("react.memo_cache_sentinel")?(o=t(I,{label:"Environment",allLabel:"All environments",collection:r,"data-testid":"filter-environment",children:[e(F,{"data-analytics-id":"RULES_ENV_FILTER"}),e(P,{})]}),f[4]=o):o=f[4],f[5]===Symbol.for("react.memo_cache_sentinel")?(s=b({items:k}),f[5]=s):s=f[5],f[6]===Symbol.for("react.memo_cache_sentinel")?(c=t(I,{label:"Type",multiple:!0,collection:s,"data-testid":"filter-type",children:[e(F,{"data-analytics-id":"RULES_TYPE_FILTER"}),e(P,{withHint:!0})]}),f[6]=c):c=f[6],f[7]===Symbol.for("react.memo_cache_sentinel")?(u=b({items:j}),f[7]=u):u=f[7],f[8]===Symbol.for("react.memo_cache_sentinel")?(m=t(I,{label:"Scope",multiple:!0,collection:u,"data-testid":"filter-scope",children:[e(F,{"data-analytics-id":"RULES_SCOPE_FILTER"}),e(P,{})]}),f[8]=m):m=f[8],f[9]!==l?(h=t("div",{className:"flex flex-wrap items-center gap-8",children:[l,i,o,c,m]}),f[9]=l,f[10]=h):h=f[10],h},meta:z},{name:"Controlled",story:()=>{let l,i,r,o,s,c,u,m,h,f,d=(0,n.c)(15);d[0]===Symbol.for("react.memo_cache_sentinel")?(l=["pre-production"],d[0]=l):l=d[0];let[p,y]=(0,a.useState)(l);d[1]===Symbol.for("react.memo_cache_sentinel")?(i=b({items:L}),d[1]=i):i=d[1];let g=i;return d[2]===Symbol.for("react.memo_cache_sentinel")?(r=e=>y(e.value),d[2]=r):r=d[2],d[3]===Symbol.for("react.memo_cache_sentinel")?(o=e(F,{}),s=e(P,{}),d[3]=o,d[4]=s):(o=d[3],s=d[4]),d[5]!==p?(c=t(I,{label:"Environment",allLabel:"All environments",collection:g,value:p,onValueChange:r,"data-testid":"filter-dropdown",children:[o,s]}),d[5]=p,d[6]=c):c=d[6],d[7]!==p?(u=JSON.stringify(p),d[7]=p,d[8]=u):u=d[8],d[9]!==u?(m=t("p",{className:"sb-annotation","data-testid":"filter-dropdown-value",children:["value: ",u]}),d[9]=u,d[10]=m):m=d[10],d[11]===Symbol.for("react.memo_cache_sentinel")?(h=e(w,{variant:"outline",color:"neutral",size:"small",onClick:()=>y([]),children:"Reset"}),d[11]=h):h=d[11],d[12]!==c||d[13]!==m?(f=t("div",{className:"flex flex-col items-start gap-12",children:[c,m,h]}),d[12]=c,d[13]=m,d[14]=f):f=d[14],f},meta:z}];function Y({entry:e}){let{story:t,meta:l}=e,i={...l.args,...t.args},r="function"==typeof t||t.$$typeof?t:t.render||l.render||l.component,n=()=>a.default.createElement(r,i),o={args:i,globals:{theme:"light"},parameters:{...l.parameters,...t.parameters},viewMode:"story"};for(let e of[...l.decorators||[],...t.decorators||[]].reverse()){let t=n;n=()=>e(t,o)}return a.default.createElement("section",{"data-preview-story":e.name,className:"p-16"},a.default.createElement("h2",{className:"text-sm mb-12"},e.name),a.default.createElement(n))}window.WallarmPreview={mount(e){let t=window.ReactDOM.createRoot(e);return t.render(a.default.createElement(window.WallarmDS.Root,null,G.map((e,t)=>a.default.createElement(Y,{key:t,entry:e})))),t}}})();