@wallarm-org/design-system 0.82.0 → 0.84.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 (361) hide show
  1. package/dist/components/Button/Button.d.ts +1 -1
  2. package/dist/components/Code/Code.d.ts +1 -1
  3. package/dist/components/DropdownMenu/DropdownMenuLabel.js +3 -2
  4. package/dist/components/DropdownMenu/classes.d.ts +1 -0
  5. package/dist/components/DropdownMenu/classes.js +3 -0
  6. package/dist/components/FilterInput/FilterInputField/FilterInputConnectorChip/FilterInputConnectorChip.js +1 -0
  7. package/dist/components/FilterInput/FilterInputMenu/FilterInputFieldMenu/FieldMenuSections.js +94 -72
  8. package/dist/components/FilterInput/FilterInputMenu/FilterInputFieldMenu/FilterInputFieldMenu.js +1 -0
  9. package/dist/components/FilterInput/FilterInputMenu/FilterInputOperatorMenu.js +1 -0
  10. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/FlatValueMenu.js +2 -0
  11. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/NestedValueMenu.js +62 -36
  12. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/NestedValueMenuItem.d.ts +12 -4
  13. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/NestedValueMenuItem.js +49 -15
  14. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/ValueMenuItem.js +2 -2
  15. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/useNestedValueMenuState.d.ts +4 -0
  16. package/dist/components/FilterInput/FilterInputMenu/FilterInputValueMenu/useNestedValueMenuState.js +34 -12
  17. package/dist/components/FilterInput/lib/buildValueMenuSections.d.ts +19 -3
  18. package/dist/components/FilterInput/lib/buildValueMenuSections.js +71 -6
  19. package/dist/components/Heading/Heading.d.ts +1 -1
  20. package/dist/components/Link/classes.d.ts +1 -1
  21. package/dist/components/Text/Text.d.ts +1 -1
  22. package/dist/components/ToggleButton/ToggleButton.d.ts +1 -1
  23. package/dist/icons/Android.d.ts +3 -0
  24. package/dist/icons/Android.js +15 -0
  25. package/dist/icons/AndroidNeutral.d.ts +3 -0
  26. package/dist/icons/AndroidNeutral.js +15 -0
  27. package/dist/icons/Apple.d.ts +3 -0
  28. package/dist/icons/Apple.js +15 -0
  29. package/dist/icons/AppleMusic.d.ts +3 -0
  30. package/dist/icons/AppleMusic.js +51 -0
  31. package/dist/icons/AppleMusicNeutral.d.ts +3 -0
  32. package/dist/icons/AppleMusicNeutral.js +17 -0
  33. package/dist/icons/AppleNeutral.d.ts +3 -0
  34. package/dist/icons/AppleNeutral.js +15 -0
  35. package/dist/icons/ApplePodcasts.d.ts +3 -0
  36. package/dist/icons/ApplePodcasts.js +70 -0
  37. package/dist/icons/ApplePodcastsNeutral.d.ts +3 -0
  38. package/dist/icons/ApplePodcastsNeutral.js +17 -0
  39. package/dist/icons/Artstation.d.ts +3 -0
  40. package/dist/icons/Artstation.js +25 -0
  41. package/dist/icons/ArtstationNeutral.d.ts +3 -0
  42. package/dist/icons/ArtstationNeutral.js +25 -0
  43. package/dist/icons/Aws.d.ts +3 -0
  44. package/dist/icons/Aws.js +37 -0
  45. package/dist/icons/Baidu.d.ts +3 -0
  46. package/dist/icons/Baidu.js +26 -0
  47. package/dist/icons/BaiduNeutral.d.ts +3 -0
  48. package/dist/icons/BaiduNeutral.js +39 -0
  49. package/dist/icons/Behance.d.ts +3 -0
  50. package/dist/icons/Behance.js +29 -0
  51. package/dist/icons/BehanceNeutral.d.ts +3 -0
  52. package/dist/icons/BehanceNeutral.js +29 -0
  53. package/dist/icons/Boosty.d.ts +3 -0
  54. package/dist/icons/Boosty.js +48 -0
  55. package/dist/icons/BoostyNeutral.d.ts +3 -0
  56. package/dist/icons/BoostyNeutral.js +15 -0
  57. package/dist/icons/Braze.d.ts +3 -0
  58. package/dist/icons/Braze.js +15 -0
  59. package/dist/icons/Brevo.d.ts +3 -0
  60. package/dist/icons/Brevo.js +15 -0
  61. package/dist/icons/Devianart.d.ts +3 -0
  62. package/dist/icons/Devianart.js +15 -0
  63. package/dist/icons/DevianartNeutral.d.ts +3 -0
  64. package/dist/icons/DevianartNeutral.js +15 -0
  65. package/dist/icons/Discord.d.ts +3 -0
  66. package/dist/icons/Discord.js +15 -0
  67. package/dist/icons/DiscordNeutral.d.ts +3 -0
  68. package/dist/icons/DiscordNeutral.js +15 -0
  69. package/dist/icons/Dprofile.d.ts +3 -0
  70. package/dist/icons/Dprofile.js +17 -0
  71. package/dist/icons/DprofileNeutral.d.ts +3 -0
  72. package/dist/icons/DprofileNeutral.js +17 -0
  73. package/dist/icons/Dribbble.d.ts +3 -0
  74. package/dist/icons/Dribbble.js +30 -0
  75. package/dist/icons/Dzen.d.ts +3 -0
  76. package/dist/icons/Dzen.js +28 -0
  77. package/dist/icons/DzenNeutral.d.ts +3 -0
  78. package/dist/icons/DzenNeutral.js +29 -0
  79. package/dist/icons/Facebook.d.ts +3 -0
  80. package/dist/icons/Facebook.js +26 -0
  81. package/dist/icons/FacebookNeutral.d.ts +3 -0
  82. package/dist/icons/FacebookNeutral.js +15 -0
  83. package/dist/icons/Figma.d.ts +3 -0
  84. package/dist/icons/Figma.js +47 -0
  85. package/dist/icons/FigmaNeutral.d.ts +3 -0
  86. package/dist/icons/FigmaNeutral.js +17 -0
  87. package/dist/icons/Github.d.ts +3 -0
  88. package/dist/icons/Github.js +17 -0
  89. package/dist/icons/GithubNeutral.d.ts +3 -0
  90. package/dist/icons/GithubNeutral.js +17 -0
  91. package/dist/icons/Gmail.d.ts +3 -0
  92. package/dist/icons/Gmail.js +47 -0
  93. package/dist/icons/GmailNeutral.d.ts +3 -0
  94. package/dist/icons/GmailNeutral.js +15 -0
  95. package/dist/icons/Google.d.ts +3 -0
  96. package/dist/icons/Google.js +40 -0
  97. package/dist/icons/GoogleMeet.d.ts +3 -0
  98. package/dist/icons/GoogleMeet.js +54 -0
  99. package/dist/icons/GoogleMeetNeutral.d.ts +3 -0
  100. package/dist/icons/GoogleMeetNeutral.js +17 -0
  101. package/dist/icons/GoogleNeutral.d.ts +3 -0
  102. package/dist/icons/GoogleNeutral.js +15 -0
  103. package/dist/icons/GooglePlay.d.ts +3 -0
  104. package/dist/icons/GooglePlay.js +40 -0
  105. package/dist/icons/GooglePlayNeutral.d.ts +3 -0
  106. package/dist/icons/GooglePlayNeutral.js +29 -0
  107. package/dist/icons/GooglePodcast.d.ts +3 -0
  108. package/dist/icons/GooglePodcast.js +61 -0
  109. package/dist/icons/GooglePodcastNeutral.d.ts +3 -0
  110. package/dist/icons/GooglePodcastNeutral.js +49 -0
  111. package/dist/icons/Imo.d.ts +3 -0
  112. package/dist/icons/Imo.js +15 -0
  113. package/dist/icons/ImoNeutral.d.ts +3 -0
  114. package/dist/icons/ImoNeutral.js +15 -0
  115. package/dist/icons/Infobip.d.ts +3 -0
  116. package/dist/icons/Infobip.js +41 -0
  117. package/dist/icons/InstagramNeutral.d.ts +3 -0
  118. package/dist/icons/InstagramNeutral.js +29 -0
  119. package/dist/icons/Kickstarter.d.ts +3 -0
  120. package/dist/icons/Kickstarter.js +17 -0
  121. package/dist/icons/KickstarterNeutral.d.ts +3 -0
  122. package/dist/icons/KickstarterNeutral.js +17 -0
  123. package/dist/icons/Line.d.ts +3 -0
  124. package/dist/icons/Line.js +30 -0
  125. package/dist/icons/LineNeutral.d.ts +3 -0
  126. package/dist/icons/LineNeutral.js +17 -0
  127. package/dist/icons/Linkedin.d.ts +3 -0
  128. package/dist/icons/Linkedin.js +15 -0
  129. package/dist/icons/LinkedinNeutral.d.ts +3 -0
  130. package/dist/icons/LinkedinNeutral.js +15 -0
  131. package/dist/icons/Mailersend.d.ts +3 -0
  132. package/dist/icons/Mailersend.js +37 -0
  133. package/dist/icons/Mailgun.d.ts +3 -0
  134. package/dist/icons/Mailgun.js +15 -0
  135. package/dist/icons/Mailjet.d.ts +3 -0
  136. package/dist/icons/Mailjet.js +15 -0
  137. package/dist/icons/Mailtrap.d.ts +3 -0
  138. package/dist/icons/Mailtrap.js +15 -0
  139. package/dist/icons/Mandrill.d.ts +3 -0
  140. package/dist/icons/Mandrill.js +15 -0
  141. package/dist/icons/Maqsam.d.ts +3 -0
  142. package/dist/icons/Maqsam.js +40 -0
  143. package/dist/icons/Mattermost.d.ts +3 -0
  144. package/dist/icons/Mattermost.js +15 -0
  145. package/dist/icons/Medium.d.ts +3 -0
  146. package/dist/icons/Medium.js +25 -0
  147. package/dist/icons/MediumNeutral.d.ts +3 -0
  148. package/dist/icons/MediumNeutral.js +25 -0
  149. package/dist/icons/Messenger.d.ts +3 -0
  150. package/dist/icons/Messenger.js +55 -0
  151. package/dist/icons/MessengerNeutral.d.ts +3 -0
  152. package/dist/icons/MessengerNeutral.js +17 -0
  153. package/dist/icons/MicrosoftTeams.d.ts +3 -0
  154. package/dist/icons/MicrosoftTeams.js +102 -0
  155. package/dist/icons/MicrosoftTeamsNeutral.d.ts +3 -0
  156. package/dist/icons/MicrosoftTeamsNeutral.js +31 -0
  157. package/dist/icons/Netcore.d.ts +3 -0
  158. package/dist/icons/Netcore.js +15 -0
  159. package/dist/icons/Notion.d.ts +3 -0
  160. package/dist/icons/Notion.js +37 -0
  161. package/dist/icons/NotionNeutral.d.ts +3 -0
  162. package/dist/icons/NotionNeutral.js +15 -0
  163. package/dist/icons/Ok.d.ts +3 -0
  164. package/dist/icons/Ok.js +34 -0
  165. package/dist/icons/OkNeutral.d.ts +3 -0
  166. package/dist/icons/OkNeutral.js +23 -0
  167. package/dist/icons/OkOnlySign.d.ts +3 -0
  168. package/dist/icons/OkOnlySign.js +23 -0
  169. package/dist/icons/OkOnlySignNeutral.d.ts +3 -0
  170. package/dist/icons/OkOnlySignNeutral.js +23 -0
  171. package/dist/icons/Onlyfans.d.ts +3 -0
  172. package/dist/icons/Onlyfans.js +21 -0
  173. package/dist/icons/Outlook365.d.ts +3 -0
  174. package/dist/icons/Outlook365.js +414 -0
  175. package/dist/icons/Patreon.d.ts +3 -0
  176. package/dist/icons/Patreon.js +15 -0
  177. package/dist/icons/PatreonNeutral.d.ts +3 -0
  178. package/dist/icons/PatreonNeutral.js +15 -0
  179. package/dist/icons/Paypal.d.ts +3 -0
  180. package/dist/icons/Paypal.js +30 -0
  181. package/dist/icons/PaypalNeutral.d.ts +3 -0
  182. package/dist/icons/PaypalNeutral.js +15 -0
  183. package/dist/icons/Pinterest.d.ts +3 -0
  184. package/dist/icons/Pinterest.js +26 -0
  185. package/dist/icons/PinterestNeutral.d.ts +3 -0
  186. package/dist/icons/PinterestNeutral.js +15 -0
  187. package/dist/icons/Plunk.d.ts +3 -0
  188. package/dist/icons/Plunk.js +17 -0
  189. package/dist/icons/Postmark.d.ts +3 -0
  190. package/dist/icons/Postmark.js +30 -0
  191. package/dist/icons/ProductHunt.d.ts +3 -0
  192. package/dist/icons/ProductHunt.js +26 -0
  193. package/dist/icons/ProductHuntNeutral.d.ts +3 -0
  194. package/dist/icons/ProductHuntNeutral.js +23 -0
  195. package/dist/icons/Quora.d.ts +3 -0
  196. package/dist/icons/Quora.js +15 -0
  197. package/dist/icons/QuoraNeutral.d.ts +3 -0
  198. package/dist/icons/QuoraNeutral.js +15 -0
  199. package/dist/icons/Reddit.d.ts +3 -0
  200. package/dist/icons/Reddit.js +26 -0
  201. package/dist/icons/RedditNeutral.d.ts +3 -0
  202. package/dist/icons/RedditNeutral.js +31 -0
  203. package/dist/icons/Resend.d.ts +3 -0
  204. package/dist/icons/Resend.js +15 -0
  205. package/dist/icons/Sendgrid.d.ts +3 -0
  206. package/dist/icons/Sendgrid.js +37 -0
  207. package/dist/icons/Ses.d.ts +3 -0
  208. package/dist/icons/Ses.js +21 -0
  209. package/dist/icons/Signal.d.ts +3 -0
  210. package/dist/icons/Signal.js +15 -0
  211. package/dist/icons/SignalNeutral.d.ts +3 -0
  212. package/dist/icons/SignalNeutral.js +15 -0
  213. package/dist/icons/SinaWeibo.d.ts +3 -0
  214. package/dist/icons/SinaWeibo.js +47 -0
  215. package/dist/icons/SinaWeiboNeutral.d.ts +3 -0
  216. package/dist/icons/SinaWeiboNeutral.js +33 -0
  217. package/dist/icons/Skype.d.ts +3 -0
  218. package/dist/icons/Skype.js +15 -0
  219. package/dist/icons/SkypeNeutral.d.ts +3 -0
  220. package/dist/icons/SkypeNeutral.js +15 -0
  221. package/dist/icons/Slack.d.ts +3 -0
  222. package/dist/icons/Slack.js +40 -0
  223. package/dist/icons/SlackNeutral.d.ts +3 -0
  224. package/dist/icons/SlackNeutral.js +45 -0
  225. package/dist/icons/Smtp.d.ts +3 -0
  226. package/dist/icons/Smtp.js +15 -0
  227. package/dist/icons/Snapchat.d.ts +3 -0
  228. package/dist/icons/Snapchat.js +26 -0
  229. package/dist/icons/SnapchatNeutral.d.ts +3 -0
  230. package/dist/icons/SnapchatNeutral.js +15 -0
  231. package/dist/icons/Soundcloud.d.ts +3 -0
  232. package/dist/icons/Soundcloud.js +36 -0
  233. package/dist/icons/SoundcloudNeutral.d.ts +3 -0
  234. package/dist/icons/SoundcloudNeutral.js +15 -0
  235. package/dist/icons/Sparkpost.d.ts +3 -0
  236. package/dist/icons/Sparkpost.js +15 -0
  237. package/dist/icons/Spotify.d.ts +3 -0
  238. package/dist/icons/Spotify.js +15 -0
  239. package/dist/icons/SpotifyNeutral.d.ts +3 -0
  240. package/dist/icons/SpotifyNeutral.js +15 -0
  241. package/dist/icons/StackOverflow.d.ts +3 -0
  242. package/dist/icons/StackOverflow.js +26 -0
  243. package/dist/icons/StackOverflowNeutral.d.ts +3 -0
  244. package/dist/icons/StackOverflowNeutral.js +37 -0
  245. package/dist/icons/Teams.d.ts +3 -0
  246. package/dist/icons/Teams.js +100 -0
  247. package/dist/icons/Telegram.d.ts +3 -0
  248. package/dist/icons/Telegram.js +49 -0
  249. package/dist/icons/TelegramNeutral.d.ts +3 -0
  250. package/dist/icons/TelegramNeutral.js +17 -0
  251. package/dist/icons/TelegramOnlySign.d.ts +3 -0
  252. package/dist/icons/TelegramOnlySign.js +38 -0
  253. package/dist/icons/TelegramOnlySignNeutral.d.ts +3 -0
  254. package/dist/icons/TelegramOnlySignNeutral.js +17 -0
  255. package/dist/icons/Threads.d.ts +3 -0
  256. package/dist/icons/Threads.js +15 -0
  257. package/dist/icons/ThreadsNeutral.d.ts +3 -0
  258. package/dist/icons/ThreadsNeutral.js +15 -0
  259. package/dist/icons/Tiktok.d.ts +3 -0
  260. package/dist/icons/Tiktok.js +33 -0
  261. package/dist/icons/TiktokNeutral.d.ts +3 -0
  262. package/dist/icons/TiktokNeutral.js +15 -0
  263. package/dist/icons/Tinder.d.ts +3 -0
  264. package/dist/icons/Tinder.js +38 -0
  265. package/dist/icons/TinderNeutral.d.ts +3 -0
  266. package/dist/icons/TinderNeutral.js +17 -0
  267. package/dist/icons/Tumblr.d.ts +3 -0
  268. package/dist/icons/Tumblr.js +15 -0
  269. package/dist/icons/TumblrNeutral.d.ts +3 -0
  270. package/dist/icons/TumblrNeutral.js +15 -0
  271. package/dist/icons/Twitch.d.ts +3 -0
  272. package/dist/icons/Twitch.js +40 -0
  273. package/dist/icons/TwitchNeutral.d.ts +3 -0
  274. package/dist/icons/TwitchNeutral.js +27 -0
  275. package/dist/icons/Viber.d.ts +3 -0
  276. package/dist/icons/Viber.js +54 -0
  277. package/dist/icons/ViberNeutral.d.ts +3 -0
  278. package/dist/icons/ViberNeutral.js +35 -0
  279. package/dist/icons/Vimeo.d.ts +3 -0
  280. package/dist/icons/Vimeo.js +15 -0
  281. package/dist/icons/VimeoNeutral.d.ts +3 -0
  282. package/dist/icons/VimeoNeutral.js +15 -0
  283. package/dist/icons/Vk.d.ts +3 -0
  284. package/dist/icons/Vk.js +26 -0
  285. package/dist/icons/VkMusic.d.ts +3 -0
  286. package/dist/icons/VkMusic.js +65 -0
  287. package/dist/icons/VkMusicNeutral.d.ts +3 -0
  288. package/dist/icons/VkMusicNeutral.js +23 -0
  289. package/dist/icons/VkNeutral.d.ts +3 -0
  290. package/dist/icons/VkNeutral.js +17 -0
  291. package/dist/icons/VkOnlySign.d.ts +3 -0
  292. package/dist/icons/VkOnlySign.js +15 -0
  293. package/dist/icons/VkOnlySignNeutral.d.ts +3 -0
  294. package/dist/icons/VkOnlySignNeutral.js +15 -0
  295. package/dist/icons/Webhook.d.ts +3 -0
  296. package/dist/icons/Webhook.js +15 -0
  297. package/dist/icons/Wechat.d.ts +3 -0
  298. package/dist/icons/Wechat.js +21 -0
  299. package/dist/icons/WechatNeutral.d.ts +3 -0
  300. package/dist/icons/WechatNeutral.js +21 -0
  301. package/dist/icons/Whatsapp.d.ts +3 -0
  302. package/dist/icons/Whatsapp.js +15 -0
  303. package/dist/icons/WhatsappBadge.d.ts +3 -0
  304. package/dist/icons/WhatsappBadge.js +63 -0
  305. package/dist/icons/WhatsappNeutral.d.ts +3 -0
  306. package/dist/icons/WhatsappNeutral.js +15 -0
  307. package/dist/icons/XExTwitter.d.ts +3 -0
  308. package/dist/icons/XExTwitter.js +15 -0
  309. package/dist/icons/XExTwitterNeutral.d.ts +3 -0
  310. package/dist/icons/XExTwitterNeutral.js +15 -0
  311. package/dist/icons/Xing.d.ts +3 -0
  312. package/dist/icons/Xing.js +26 -0
  313. package/dist/icons/XingNeutral.d.ts +3 -0
  314. package/dist/icons/XingNeutral.js +21 -0
  315. package/dist/icons/YandexMusic.d.ts +3 -0
  316. package/dist/icons/YandexMusic.js +26 -0
  317. package/dist/icons/YandexMusicNeutral.d.ts +3 -0
  318. package/dist/icons/YandexMusicNeutral.js +21 -0
  319. package/dist/icons/Yelp.d.ts +3 -0
  320. package/dist/icons/Yelp.js +15 -0
  321. package/dist/icons/YelpNeutral.d.ts +3 -0
  322. package/dist/icons/YelpNeutral.js +15 -0
  323. package/dist/icons/Youtube.d.ts +3 -0
  324. package/dist/icons/Youtube.js +26 -0
  325. package/dist/icons/YoutubeMusic.d.ts +3 -0
  326. package/dist/icons/YoutubeMusic.js +33 -0
  327. package/dist/icons/YoutubeMusicNeutral.d.ts +3 -0
  328. package/dist/icons/YoutubeMusicNeutral.js +25 -0
  329. package/dist/icons/YoutubeNeutral.d.ts +3 -0
  330. package/dist/icons/YoutubeNeutral.js +17 -0
  331. package/dist/icons/YoutubeShorts.d.ts +3 -0
  332. package/dist/icons/YoutubeShorts.js +30 -0
  333. package/dist/icons/YoutubeShortsNeutral.d.ts +3 -0
  334. package/dist/icons/YoutubeShortsNeutral.js +17 -0
  335. package/dist/icons/Zoom.d.ts +3 -0
  336. package/dist/icons/Zoom.js +26 -0
  337. package/dist/icons/ZoomNeutral.d.ts +3 -0
  338. package/dist/icons/ZoomNeutral.js +17 -0
  339. package/dist/icons/Zulip.d.ts +3 -0
  340. package/dist/icons/Zulip.js +36 -0
  341. package/dist/icons/index.d.ts +159 -2
  342. package/dist/icons/index.js +159 -2
  343. package/dist/icons/module/const.js +163 -0
  344. package/dist/metadata/components.json +8 -2
  345. package/package.json +1 -1
  346. package/dist/icons/ProviderIcon/ProviderIcon.d.ts +0 -7
  347. package/dist/icons/ProviderIcon/ProviderIcon.js +0 -11
  348. package/dist/icons/ProviderIcon/index.d.ts +0 -2
  349. package/dist/icons/ProviderIcon/index.js +0 -1
  350. package/dist/icons/ProviderIcon/paths/index.d.ts +0 -3
  351. package/dist/icons/ProviderIcon/paths/index.js +0 -896
  352. package/dist/icons/ProviderIcon/types.d.ts +0 -1
  353. package/dist/icons/ProviderIcon/types.js +0 -0
  354. package/dist/icons/SocialIcon/SocialIcon.d.ts +0 -8
  355. package/dist/icons/SocialIcon/SocialIcon.js +0 -15
  356. package/dist/icons/SocialIcon/index.d.ts +0 -2
  357. package/dist/icons/SocialIcon/index.js +0 -1
  358. package/dist/icons/SocialIcon/paths/index.d.ts +0 -3
  359. package/dist/icons/SocialIcon/paths/index.js +0 -2542
  360. package/dist/icons/SocialIcon/types.d.ts +0 -2
  361. package/dist/icons/SocialIcon/types.js +0 -0
@@ -4,7 +4,7 @@ import type { TestableProps } from '../../utils/testId';
4
4
  import { type ButtonBaseProps } from '../ButtonBase';
5
5
  declare const buttonVariants: (props?: ({
6
6
  variant?: "primary" | "secondary" | "outline" | "ghost" | null | undefined;
7
- color?: "neutral" | "destructive" | "brand" | "neutral-alt" | null | undefined;
7
+ color?: "destructive" | "brand" | "neutral" | "neutral-alt" | null | undefined;
8
8
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
9
  type ButtonVariantProps = VariantProps<typeof buttonVariants>;
10
10
  export type ButtonProps<C extends ElementType = 'button'> = ButtonBaseProps<C> & ButtonVariantProps & TestableProps;
@@ -3,7 +3,7 @@ import { type VariantProps } from 'class-variance-authority';
3
3
  import type { TestableProps } from '../../utils/testId';
4
4
  declare const codeVariants: (props?: ({
5
5
  size?: "s" | "xs" | "m" | "l" | null | undefined;
6
- weight?: "bold" | "medium" | "light" | "regular" | null | undefined;
6
+ weight?: "bold" | "light" | "regular" | "medium" | null | undefined;
7
7
  color?: "primary" | "secondary" | "destructive" | "primary-alt" | null | undefined;
8
8
  italic?: boolean | null | undefined;
9
9
  truncate?: boolean | null | undefined;
@@ -2,12 +2,13 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { cn } from "../../utils/cn.js";
3
3
  import { useTestId } from "../../utils/testId.js";
4
4
  import { dropdownMenuLabelVariants } from "./classes.js";
5
- const DropdownMenuLabel = ({ className, inset, ...props })=>{
5
+ const DropdownMenuLabel = ({ className, inset, sticky, ...props })=>{
6
6
  const testId = useTestId('label');
7
7
  return /*#__PURE__*/ jsx("div", {
8
8
  "data-testid": testId,
9
9
  className: cn(dropdownMenuLabelVariants({
10
- inset
10
+ inset,
11
+ sticky
11
12
  }), className),
12
13
  ...props
13
14
  });
@@ -6,4 +6,5 @@ export declare const dropdownMenuItemVariants: (props?: ({
6
6
  export declare const dropdownMenuItemIndicatorClassName: string;
7
7
  export declare const dropdownMenuLabelVariants: (props?: ({
8
8
  inset?: boolean | null | undefined;
9
+ sticky?: boolean | null | undefined;
9
10
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -23,6 +23,9 @@ const dropdownMenuLabelVariants = cva('flex justify-between gap-8 px-8 pt-8 pb-2
23
23
  variants: {
24
24
  inset: {
25
25
  true: 'pl-32'
26
+ },
27
+ sticky: {
28
+ true: 'sticky top-0 z-10 bg-bg-surface-2'
26
29
  }
27
30
  }
28
31
  });
@@ -83,6 +83,7 @@ const FilterInputConnectorChip = ({ chipId, variant, onChange, className })=>{
83
83
  ]
84
84
  }),
85
85
  /*#__PURE__*/ jsxs(DropdownMenuFooter, {
86
+ className: "justify-start",
86
87
  children: [
87
88
  /*#__PURE__*/ jsxs("span", {
88
89
  className: "flex items-center gap-4",
@@ -5,40 +5,46 @@ import { CircleSlash } from "../../../../icons/CircleSlash.js";
5
5
  import { DropdownMenuGroup, DropdownMenuItem, DropdownMenuItemIcon, DropdownMenuItemText, DropdownMenuLabel, DropdownMenuSeparator } from "../../../DropdownMenu/index.js";
6
6
  const RecentSection = ({ conditions, fields, onSelect, registerItem })=>/*#__PURE__*/ jsxs(Fragment, {
7
7
  children: [
8
- /*#__PURE__*/ jsx(DropdownMenuLabel, {
9
- children: "Recent"
10
- }),
11
- /*#__PURE__*/ jsx(DropdownMenuGroup, {
12
- children: conditions.map((condition, index)=>{
13
- const fieldMeta = fields.find((f)=>f.name === condition.field);
14
- const attribute = fieldMeta?.label || condition.field;
15
- const operator = String(condition.operator);
16
- const value = String(condition.value);
17
- return /*#__PURE__*/ jsx(DropdownMenuItem, {
18
- value: `recent-${index}`,
19
- ref: registerItem(`recent-${index}`),
20
- onSelect: ()=>{
21
- if (fieldMeta) onSelect(fieldMeta);
22
- },
23
- children: /*#__PURE__*/ jsxs("span", {
24
- className: "flex gap-2 items-center text-sm",
25
- children: [
26
- /*#__PURE__*/ jsx("span", {
27
- className: "text-text-primary",
28
- children: attribute
29
- }),
30
- /*#__PURE__*/ jsx("span", {
31
- className: "text-text-secondary",
32
- children: operator
33
- }),
34
- /*#__PURE__*/ jsx("span", {
35
- className: "font-medium text-text-info",
36
- children: value
8
+ /*#__PURE__*/ jsxs("div", {
9
+ className: "flex flex-col gap-1",
10
+ children: [
11
+ /*#__PURE__*/ jsx(DropdownMenuLabel, {
12
+ sticky: true,
13
+ children: "Recent"
14
+ }),
15
+ /*#__PURE__*/ jsx(DropdownMenuGroup, {
16
+ children: conditions.map((condition, index)=>{
17
+ const fieldMeta = fields.find((f)=>f.name === condition.field);
18
+ const attribute = fieldMeta?.label || condition.field;
19
+ const operator = String(condition.operator);
20
+ const value = String(condition.value);
21
+ return /*#__PURE__*/ jsx(DropdownMenuItem, {
22
+ value: `recent-${index}`,
23
+ ref: registerItem(`recent-${index}`),
24
+ onSelect: ()=>{
25
+ if (fieldMeta) onSelect(fieldMeta);
26
+ },
27
+ children: /*#__PURE__*/ jsxs("span", {
28
+ className: "flex gap-2 items-center text-sm",
29
+ children: [
30
+ /*#__PURE__*/ jsx("span", {
31
+ className: "text-text-primary",
32
+ children: attribute
33
+ }),
34
+ /*#__PURE__*/ jsx("span", {
35
+ className: "text-text-secondary",
36
+ children: operator
37
+ }),
38
+ /*#__PURE__*/ jsx("span", {
39
+ className: "font-medium text-text-info",
40
+ children: value
41
+ })
42
+ ]
37
43
  })
38
- ]
44
+ }, `recent-${index}`);
39
45
  })
40
- }, `recent-${index}`);
41
- })
46
+ })
47
+ ]
42
48
  }),
43
49
  /*#__PURE__*/ jsx(DropdownMenuSeparator, {})
44
50
  ]
@@ -46,32 +52,38 @@ const RecentSection = ({ conditions, fields, onSelect, registerItem })=>/*#__PUR
46
52
  RecentSection.displayName = 'RecentSection';
47
53
  const SuggestionsSection = ({ fields, onSelect, registerItem })=>/*#__PURE__*/ jsxs(Fragment, {
48
54
  children: [
49
- /*#__PURE__*/ jsx(DropdownMenuLabel, {
50
- children: "Suggestions"
51
- }),
52
- /*#__PURE__*/ jsx(DropdownMenuGroup, {
53
- children: fields.map((field, index)=>/*#__PURE__*/ jsx(DropdownMenuItem, {
54
- value: `suggested-${index}`,
55
- ref: registerItem(`suggested-${index}`),
56
- onSelect: ()=>onSelect(field),
57
- children: /*#__PURE__*/ jsxs("span", {
58
- className: "flex gap-2 items-center text-sm",
59
- children: [
60
- /*#__PURE__*/ jsx("span", {
61
- className: "text-text-primary",
62
- children: field.label
63
- }),
64
- /*#__PURE__*/ jsx("span", {
65
- className: "text-text-secondary",
66
- children: "operator"
67
- }),
68
- /*#__PURE__*/ jsx("span", {
69
- className: "font-medium text-text-info",
70
- children: "Value"
55
+ /*#__PURE__*/ jsxs("div", {
56
+ className: "flex flex-col gap-1",
57
+ children: [
58
+ /*#__PURE__*/ jsx(DropdownMenuLabel, {
59
+ sticky: true,
60
+ children: "Suggestions"
61
+ }),
62
+ /*#__PURE__*/ jsx(DropdownMenuGroup, {
63
+ children: fields.map((field, index)=>/*#__PURE__*/ jsx(DropdownMenuItem, {
64
+ value: `suggested-${index}`,
65
+ ref: registerItem(`suggested-${index}`),
66
+ onSelect: ()=>onSelect(field),
67
+ children: /*#__PURE__*/ jsxs("span", {
68
+ className: "flex gap-2 items-center text-sm",
69
+ children: [
70
+ /*#__PURE__*/ jsx("span", {
71
+ className: "text-text-primary",
72
+ children: field.label
73
+ }),
74
+ /*#__PURE__*/ jsx("span", {
75
+ className: "text-text-secondary",
76
+ children: "operator"
77
+ }),
78
+ /*#__PURE__*/ jsx("span", {
79
+ className: "font-medium text-text-info",
80
+ children: "Value"
81
+ })
82
+ ]
71
83
  })
72
- ]
73
- })
74
- }, `suggested-${index}`))
84
+ }, `suggested-${index}`))
85
+ })
86
+ ]
75
87
  }),
76
88
  /*#__PURE__*/ jsx(DropdownMenuSeparator, {})
77
89
  ]
@@ -110,24 +122,34 @@ const OperatorsSection = ({ onSelectAnd, onSelectOr, registerItem })=>/*#__PURE_
110
122
  });
111
123
  OperatorsSection.displayName = 'OperatorsSection';
112
124
  const FieldSections = ({ sections, onSelect, registerItem })=>/*#__PURE__*/ jsx(Fragment, {
113
- children: sections.map((section, index)=>/*#__PURE__*/ jsxs(external_react_Fragment, {
125
+ children: sections.map((section, index)=>{
126
+ const group = /*#__PURE__*/ jsx(DropdownMenuGroup, {
127
+ children: section.fields.map((field)=>/*#__PURE__*/ jsx(DropdownMenuItem, {
128
+ value: `field-${field.name}`,
129
+ ref: registerItem(`field-${field.name}`),
130
+ onSelect: ()=>onSelect(field),
131
+ className: "scroll-mt-32",
132
+ children: /*#__PURE__*/ jsx(DropdownMenuItemText, {
133
+ children: field.label
134
+ })
135
+ }, field.name))
136
+ });
137
+ return /*#__PURE__*/ jsxs(external_react_Fragment, {
114
138
  children: [
115
139
  index > 0 && /*#__PURE__*/ jsx(DropdownMenuSeparator, {}),
116
- section.label && /*#__PURE__*/ jsx(DropdownMenuLabel, {
117
- children: section.label
118
- }),
119
- /*#__PURE__*/ jsx(DropdownMenuGroup, {
120
- children: section.fields.map((field)=>/*#__PURE__*/ jsx(DropdownMenuItem, {
121
- value: `field-${field.name}`,
122
- ref: registerItem(`field-${field.name}`),
123
- onSelect: ()=>onSelect(field),
124
- children: /*#__PURE__*/ jsx(DropdownMenuItemText, {
125
- children: field.label
126
- })
127
- }, field.name))
128
- })
140
+ section.label ? /*#__PURE__*/ jsxs("div", {
141
+ className: "flex flex-col gap-1",
142
+ children: [
143
+ /*#__PURE__*/ jsx(DropdownMenuLabel, {
144
+ sticky: true,
145
+ children: section.label
146
+ }),
147
+ group
148
+ ]
149
+ }) : group
129
150
  ]
130
- }, `${section.label ?? 'ungrouped'}-${index}`))
151
+ }, `${section.label ?? 'ungrouped'}-${index}`);
152
+ })
131
153
  });
132
154
  FieldSections.displayName = 'FieldSections';
133
155
  export { FieldSections, OperatorsSection, RecentSection, SuggestionsSection };
@@ -84,6 +84,7 @@ const FilterInputFieldMenu = ({ fields, filterText = '', onSelect, open = false,
84
84
  registerItem: registerItem
85
85
  }),
86
86
  /*#__PURE__*/ jsxs(DropdownMenuFooter, {
87
+ className: "justify-start",
87
88
  children: [
88
89
  /*#__PURE__*/ jsxs("span", {
89
90
  className: "flex items-center gap-4",
@@ -83,6 +83,7 @@ const FilterInputOperatorMenu = ({ fieldType, operators, onSelect, open = false,
83
83
  ]
84
84
  }, `group-${groupIdx}`)) : /*#__PURE__*/ jsx(MenuEmptyState, {}),
85
85
  /*#__PURE__*/ jsx(DropdownMenuFooter, {
86
+ className: "justify-start",
86
87
  children: /*#__PURE__*/ jsxs("span", {
87
88
  className: "flex items-center gap-4",
88
89
  children: [
@@ -55,6 +55,7 @@ const FlatValueMenu = ({ values, onSelect, onCommit, open = false, onOpenChange,
55
55
  "data-filter-input-menu": "true",
56
56
  children: [
57
57
  displayValues.length > 0 ? /*#__PURE__*/ jsx(DropdownMenuGroup, {
58
+ className: "flex flex-col gap-1",
58
59
  children: displayValues.map((option)=>/*#__PURE__*/ jsx(ValueMenuItem, {
59
60
  option: option,
60
61
  isChecked: selectedValues.some((v)=>String(v) === String(option.value)),
@@ -69,6 +70,7 @@ const FlatValueMenu = ({ values, onSelect, onCommit, open = false, onOpenChange,
69
70
  }, String(option.value)))
70
71
  }) : /*#__PURE__*/ jsx(MenuEmptyState, {}),
71
72
  /*#__PURE__*/ jsx(DropdownMenuFooter, {
73
+ className: "justify-start",
72
74
  children: /*#__PURE__*/ jsx(ValueMenuFooterHints, {
73
75
  multiSelect: multiSelect
74
76
  })
@@ -1,8 +1,7 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { Fragment as external_react_Fragment, useMemo, useRef } from "react";
3
3
  import { cn } from "../../../../utils/cn.js";
4
- import { DropdownMenu, DropdownMenuContent, DropdownMenuFooter, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator } from "../../../DropdownMenu/index.js";
5
- import { Text } from "../../../Text/index.js";
4
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuFooter, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuSeparator } from "../../../DropdownMenu/index.js";
6
5
  import { buildValueMenuSections } from "../../lib/buildValueMenuSections.js";
7
6
  import { MenuEmptyState } from "../MenuEmptyState.js";
8
7
  import { NestedValueMenuItem } from "./NestedValueMenuItem.js";
@@ -11,9 +10,10 @@ import { ValueMenuFooterHints } from "./ValueMenuFooterHints.js";
11
10
  const NestedValueMenu = ({ values, onSelect, onCommit, open = false, onOpenChange, onEscape, multiSelect = false, initialValues = [], width = 'standard', positioning, onBuildingValueChange, onItemToggle, inputRef, filterText = '', menuRef, blurCommitRef, className })=>{
12
11
  const submenuRef = useRef(null);
13
12
  const rowElsRef = useRef(new Map());
14
- const sections = useMemo(()=>buildValueMenuSections(values, filterText), [
13
+ const sections = useMemo(()=>buildValueMenuSections(values, filterText, multiSelect), [
15
14
  values,
16
- filterText
15
+ filterText,
16
+ multiSelect
17
17
  ]);
18
18
  const state = useNestedValueMenuState({
19
19
  sections,
@@ -43,13 +43,21 @@ const NestedValueMenu = ({ values, onSelect, onCommit, open = false, onOpenChang
43
43
  };
44
44
  const submenuPositioning = useMemo(()=>({
45
45
  placement: 'right-start',
46
- gutter: 8,
46
+ gutter: 4,
47
47
  getAnchorRect: ()=>state.openParentId && rowElsRef.current.get(state.openParentId)?.getBoundingClientRect() || null
48
48
  }), [
49
49
  state.openParentId
50
50
  ]);
51
51
  const openParentRow = state.openParentRow;
52
- const allChecked = openParentRow ? state.allLeavesChecked(openParentRow.option) : false;
52
+ const submenuSelectAllRow = openParentRow && multiSelect ? {
53
+ id: SELECT_ALL_ID,
54
+ option: {
55
+ label: `All ${openParentRow.option.label}`,
56
+ children: openParentRow.option.children ?? []
57
+ },
58
+ isGroup: true,
59
+ isSelectAll: true
60
+ } : null;
53
61
  const hasRows = sections.some((section)=>section.rows.length > 0);
54
62
  return /*#__PURE__*/ jsxs(Fragment, {
55
63
  children: [
@@ -65,31 +73,48 @@ const NestedValueMenu = ({ values, onSelect, onCommit, open = false, onOpenChang
65
73
  className: cn(widthClass, 'max-h-[430px]', className),
66
74
  style: widthStyle,
67
75
  "data-filter-input-menu": "true",
76
+ onMouseMove: state.handleMainMouseMove,
68
77
  children: [
69
- hasRows ? sections.map((section, index)=>/*#__PURE__*/ jsxs(external_react_Fragment, {
78
+ hasRows ? sections.map((section, index)=>{
79
+ const rows = /*#__PURE__*/ jsx(DropdownMenuGroup, {
80
+ className: "flex flex-col gap-1",
81
+ children: section.rows.map((row)=>{
82
+ const isParent = row.isGroup && !row.isSelectAll;
83
+ return /*#__PURE__*/ jsx(NestedValueMenuItem, {
84
+ id: row.id,
85
+ option: row.option,
86
+ isGroup: isParent,
87
+ checkedState: state.getRowCheckState(row),
88
+ isPending: state.topPendingIds.has(row.id),
89
+ multiSelect: multiSelect,
90
+ onSelect: ()=>state.selectRow(row, false),
91
+ onMouseEnter: isParent ? ()=>state.openParent(row.id) : void 0,
92
+ onMouseLeave: isParent ? ()=>state.scheduleClose() : void 0,
93
+ registerRef: setRowRef(row.id),
94
+ expanded: state.openParentId === row.id,
95
+ selectAll: row.isSelectAll,
96
+ highlight: filterText
97
+ }, row.id);
98
+ })
99
+ });
100
+ return /*#__PURE__*/ jsxs(external_react_Fragment, {
70
101
  children: [
71
102
  index > 0 && /*#__PURE__*/ jsx(DropdownMenuSeparator, {}),
72
- section.label && /*#__PURE__*/ jsx(DropdownMenuLabel, {
73
- children: section.label
74
- }),
75
- /*#__PURE__*/ jsx(DropdownMenuGroup, {
76
- children: section.rows.map((row)=>/*#__PURE__*/ jsx(NestedValueMenuItem, {
77
- id: row.id,
78
- option: row.option,
79
- isGroup: row.isGroup,
80
- checkedState: state.getRowCheckState(row),
81
- isPending: state.topPendingIds.has(row.id),
82
- multiSelect: multiSelect,
83
- onSelect: ()=>state.selectRow(row, false),
84
- onMouseEnter: row.isGroup ? ()=>state.openParent(row.id) : void 0,
85
- onMouseLeave: row.isGroup ? ()=>state.scheduleClose() : void 0,
86
- registerRef: setRowRef(row.id),
87
- expanded: state.openParentId === row.id
88
- }, row.id))
89
- })
103
+ section.label ? /*#__PURE__*/ jsxs("div", {
104
+ className: "flex flex-col gap-1",
105
+ children: [
106
+ /*#__PURE__*/ jsx(DropdownMenuLabel, {
107
+ sticky: true,
108
+ children: section.label
109
+ }),
110
+ rows
111
+ ]
112
+ }) : rows
90
113
  ]
91
- }, section.label ?? `section-${index}`)) : /*#__PURE__*/ jsx(MenuEmptyState, {}),
114
+ }, section.label ?? `section-${index}`);
115
+ }) : /*#__PURE__*/ jsx(MenuEmptyState, {}),
92
116
  /*#__PURE__*/ jsx(DropdownMenuFooter, {
117
+ className: "justify-start",
93
118
  children: /*#__PURE__*/ jsx(ValueMenuFooterHints, {
94
119
  multiSelect: multiSelect
95
120
  })
@@ -111,19 +136,20 @@ const NestedValueMenu = ({ values, onSelect, onCommit, open = false, onOpenChang
111
136
  onMouseEnter: state.cancelClose,
112
137
  onMouseLeave: state.scheduleClose,
113
138
  children: /*#__PURE__*/ jsxs(DropdownMenuGroup, {
139
+ className: "flex flex-col gap-1",
114
140
  children: [
115
- /*#__PURE__*/ jsx(DropdownMenuItem, {
116
- value: SELECT_ALL_ID,
117
- ref: state.registerSubmenuItem(SELECT_ALL_ID),
141
+ submenuSelectAllRow && /*#__PURE__*/ jsx(NestedValueMenuItem, {
142
+ id: SELECT_ALL_ID,
143
+ option: submenuSelectAllRow.option,
144
+ isGroup: false,
145
+ checkedState: state.getRowCheckState(submenuSelectAllRow),
146
+ isPending: state.submenuPendingIds.has(SELECT_ALL_ID),
147
+ multiSelect: multiSelect,
118
148
  onSelect: ()=>state.toggleGroup(openParentRow.option),
119
- className: state.submenuPendingIds.has(SELECT_ALL_ID) ? 'bg-states-primary-hover' : void 0,
120
- children: /*#__PURE__*/ jsx(Text, {
121
- size: "sm",
122
- color: "secondary",
123
- children: allChecked ? 'Unselect all' : 'Select all'
124
- })
149
+ registerRef: state.registerSubmenuItem(SELECT_ALL_ID),
150
+ selectAll: true
125
151
  }),
126
- /*#__PURE__*/ jsx(DropdownMenuSeparator, {}),
152
+ submenuSelectAllRow && /*#__PURE__*/ jsx(DropdownMenuSeparator, {}),
127
153
  state.submenuRows.map((row)=>/*#__PURE__*/ jsx(NestedValueMenuItem, {
128
154
  id: row.id,
129
155
  option: row.option,
@@ -15,12 +15,20 @@ interface NestedValueMenuItemProps {
15
15
  registerRef?: (el: HTMLElement | null) => void;
16
16
  /** For group rows: whether its submenu is currently open. */
17
17
  expanded?: boolean;
18
+ /**
19
+ * True for the synthetic "All {group}" bulk-select row: its label renders in a
20
+ * medium weight to read as a section-level control rather than a plain option.
21
+ */
22
+ selectAll?: boolean;
23
+ /** Active search query — its matched substring is emphasized in flat search. */
24
+ highlight?: string;
18
25
  }
19
26
  /**
20
- * A single row in the nested value menu — a committable leaf or a group
21
- * (parent category). Both render a (tri-state, for groups) checkbox; a group's
22
- * submenu opens on hover. No chevron: selection and bulk-selection are driven
23
- * entirely by the checkbox.
27
+ * A single row in the nested value menu — a committable leaf, a group (parent
28
+ * category), or the "All {group}" bulk-select row. Parent categories show a
29
+ * right-side chevron and open a submenu on hover; a checked row is highlighted
30
+ * with a persistent background. Selection is driven by the (tri-state, for
31
+ * groups) checkbox.
24
32
  */
25
33
  export declare const NestedValueMenuItem: FC<NestedValueMenuItemProps>;
26
34
  export {};
@@ -1,15 +1,48 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { ChevronRight } from "../../../../icons/ChevronRight.js";
3
+ import { cn } from "../../../../utils/cn.js";
2
4
  import { Badge } from "../../../Badge/index.js";
3
5
  import { Checkmark } from "../../../Checkmark/index.js";
4
6
  import { DropdownMenuItem } from "../../../DropdownMenu/index.js";
5
7
  import { Text } from "../../../Text/index.js";
6
- const NestedValueMenuItem = ({ id, option, isGroup, checkedState, isPending, multiSelect, onSelect, onMouseEnter, onMouseLeave, registerRef, expanded })=>/*#__PURE__*/ jsxs(DropdownMenuItem, {
8
+ const highlightMatch = (text, query)=>{
9
+ const q = query?.trim().toLowerCase();
10
+ if (!q) return text;
11
+ const lower = text.toLowerCase();
12
+ const parts = [];
13
+ let cursor = 0;
14
+ let key = 0;
15
+ while(cursor < text.length){
16
+ const at = lower.indexOf(q, cursor);
17
+ if (-1 === at) {
18
+ parts.push(/*#__PURE__*/ jsx("span", {
19
+ children: text.slice(cursor)
20
+ }, key++));
21
+ break;
22
+ }
23
+ if (at > cursor) parts.push(/*#__PURE__*/ jsx("span", {
24
+ children: text.slice(cursor, at)
25
+ }, key++));
26
+ parts.push(/*#__PURE__*/ jsx("mark", {
27
+ className: "bg-transparent font-medium text-text-brand",
28
+ children: text.slice(at, at + q.length)
29
+ }, key++));
30
+ cursor = at + q.length;
31
+ }
32
+ return parts;
33
+ };
34
+ const NestedValueMenuItem = ({ id, option, isGroup, checkedState, isPending, multiSelect, onSelect, onMouseEnter, onMouseLeave, registerRef, expanded, selectAll, highlight })=>{
35
+ const isChecked = true === checkedState;
36
+ const checkmark = multiSelect || !isGroup && checkedState ? /*#__PURE__*/ jsx(Checkmark, {
37
+ checkedState: multiSelect ? checkedState : true
38
+ }) : null;
39
+ return /*#__PURE__*/ jsxs(DropdownMenuItem, {
7
40
  value: id,
8
41
  ref: registerRef,
9
42
  onSelect: onSelect,
10
43
  onMouseEnter: onMouseEnter,
11
44
  onMouseLeave: onMouseLeave,
12
- className: isPending ? 'bg-states-primary-hover' : void 0,
45
+ className: cn('scroll-mt-32', isChecked && 'bg-states-primary-active', isPending && 'bg-states-primary-hover'),
13
46
  "aria-checked": multiSelect ? 'indeterminate' === checkedState ? 'mixed' : !!checkedState : void 0,
14
47
  ...isGroup && {
15
48
  'aria-haspopup': 'menu',
@@ -26,29 +59,30 @@ const NestedValueMenuItem = ({ id, option, isGroup, checkedState, isPending, mul
26
59
  children: [
27
60
  /*#__PURE__*/ jsx(Text, {
28
61
  size: "sm",
62
+ weight: selectAll ? 'medium' : 'regular',
29
63
  truncate: true,
30
- children: option.label
64
+ children: highlightMatch(option.label, highlight)
31
65
  }),
32
66
  option.description && /*#__PURE__*/ jsx(Text, {
33
67
  size: "xs",
34
68
  color: "secondary",
35
69
  truncate: true,
36
- children: option.description
70
+ children: highlightMatch(option.description, highlight)
37
71
  })
38
72
  ]
39
73
  }),
40
- multiSelect ? /*#__PURE__*/ jsx("div", {
41
- className: "flex shrink-0 items-start justify-end py-2 ml-auto",
42
- children: /*#__PURE__*/ jsx(Checkmark, {
43
- checkedState: checkedState
44
- })
45
- }) : !isGroup && checkedState ? /*#__PURE__*/ jsx("div", {
46
- className: "flex shrink-0 items-start justify-end py-2 ml-auto",
47
- children: /*#__PURE__*/ jsx(Checkmark, {
48
- checkedState: true
49
- })
50
- }) : null
74
+ /*#__PURE__*/ jsxs("div", {
75
+ className: "flex shrink-0 items-center justify-end gap-8 ml-auto",
76
+ children: [
77
+ isGroup && /*#__PURE__*/ jsx("span", {
78
+ className: "flex text-text-secondary",
79
+ children: /*#__PURE__*/ jsx(ChevronRight, {})
80
+ }),
81
+ checkmark
82
+ ]
83
+ })
51
84
  ]
52
85
  });
86
+ };
53
87
  NestedValueMenuItem.displayName = 'NestedValueMenuItem';
54
88
  export { NestedValueMenuItem };
@@ -32,12 +32,12 @@ const ValueMenuItem = ({ option, isChecked, isPending, multiSelect, onSelect, re
32
32
  ]
33
33
  }),
34
34
  multiSelect ? /*#__PURE__*/ jsx("div", {
35
- className: "flex shrink-0 items-start justify-end py-2 ml-auto",
35
+ className: "flex shrink-0 items-start justify-end ml-auto",
36
36
  children: /*#__PURE__*/ jsx(Checkmark, {
37
37
  checkedState: isChecked
38
38
  })
39
39
  }) : isChecked ? /*#__PURE__*/ jsx("div", {
40
- className: "flex shrink-0 items-start justify-end py-2 ml-auto",
40
+ className: "flex shrink-0 items-start justify-end ml-auto",
41
41
  children: /*#__PURE__*/ jsx(Checkmark, {
42
42
  checkedState: true
43
43
  })
@@ -41,6 +41,10 @@ export declare const useNestedValueMenuState: ({ sections, allValues, open, mult
41
41
  closeParent: () => void;
42
42
  cancelClose: () => void;
43
43
  scheduleClose: () => void;
44
+ handleMainMouseMove: (event: {
45
+ clientX: number;
46
+ clientY: number;
47
+ }) => void;
44
48
  openParentRow: ValueMenuRow | undefined;
45
49
  submenuRows: ValueMenuRow[];
46
50
  selectRow: (row: ValueMenuRow, fromSubmenu: boolean) => void;