@burtson-labs/ui 0.13.1 → 0.14.1

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 (460) hide show
  1. package/LICENSES/DEPENDENCIES.txt +2745 -0
  2. package/LICENSES/Radix-MIT.txt +21 -0
  3. package/LICENSES/cmdk-MIT.txt +21 -0
  4. package/LICENSES/overrides/react-remove-scroll-bar.txt +26 -0
  5. package/LICENSES/shadcn-MIT.txt +21 -0
  6. package/README.md +20 -12
  7. package/THIRD_PARTY_NOTICES.md +15 -3
  8. package/dist/components/accordion.d.ts +4 -4
  9. package/dist/components/accordion.js +22 -18
  10. package/dist/components/accordion.js.map +1 -1
  11. package/dist/components/alert-dialog.d.ts +13 -11
  12. package/dist/components/alert-dialog.js +41 -31
  13. package/dist/components/alert-dialog.js.map +1 -1
  14. package/dist/components/alert.d.ts +5 -3
  15. package/dist/components/alert.js +12 -7
  16. package/dist/components/alert.js.map +1 -1
  17. package/dist/components/app-shell.d.ts +7 -6
  18. package/dist/components/app-shell.js +22 -14
  19. package/dist/components/app-shell.js.map +1 -1
  20. package/dist/components/attachment.d.ts +3 -3
  21. package/dist/components/attachment.js +11 -7
  22. package/dist/components/attachment.js.map +1 -1
  23. package/dist/components/audio-player.d.ts +2 -2
  24. package/dist/components/audio-player.js +9 -6
  25. package/dist/components/audio-player.js.map +1 -1
  26. package/dist/components/avatar.d.ts +4 -4
  27. package/dist/components/avatar.js +16 -12
  28. package/dist/components/avatar.js.map +1 -1
  29. package/dist/components/badge.d.ts +1 -1
  30. package/dist/components/badge.js +15 -13
  31. package/dist/components/badge.js.map +1 -1
  32. package/dist/components/breadcrumb.d.ts +8 -8
  33. package/dist/components/breadcrumb.js +27 -20
  34. package/dist/components/breadcrumb.js.map +1 -1
  35. package/dist/components/button.d.ts +9 -2
  36. package/dist/components/button.js +15 -6
  37. package/dist/components/button.js.map +1 -1
  38. package/dist/components/card.d.ts +9 -9
  39. package/dist/components/card.js +33 -23
  40. package/dist/components/card.js.map +1 -1
  41. package/dist/components/chat-history.d.ts +1 -1
  42. package/dist/components/chat-history.js +11 -9
  43. package/dist/components/chat-history.js.map +1 -1
  44. package/dist/components/chat-layout.d.ts +1 -1
  45. package/dist/components/chat-layout.js +8 -3
  46. package/dist/components/chat-layout.js.map +1 -1
  47. package/dist/components/checkbox-card.d.ts +3 -3
  48. package/dist/components/checkbox-card.js +12 -10
  49. package/dist/components/checkbox-card.js.map +1 -1
  50. package/dist/components/checkbox.d.ts +24 -3
  51. package/dist/components/checkbox.js +52 -9
  52. package/dist/components/checkbox.js.map +1 -1
  53. package/dist/components/collapsible.d.ts +3 -3
  54. package/dist/components/collapsible.js +14 -11
  55. package/dist/components/collapsible.js.map +1 -1
  56. package/dist/components/combobox.d.ts +14 -4
  57. package/dist/components/combobox.js +19 -8
  58. package/dist/components/combobox.js.map +1 -1
  59. package/dist/components/command.d.ts +68 -12
  60. package/dist/components/command.js +48 -34
  61. package/dist/components/command.js.map +1 -1
  62. package/dist/components/composer.d.ts +2 -2
  63. package/dist/components/composer.js +10 -7
  64. package/dist/components/composer.js.map +1 -1
  65. package/dist/components/connection-status.d.ts +3 -3
  66. package/dist/components/connection-status.js +19 -14
  67. package/dist/components/connection-status.js.map +1 -1
  68. package/dist/components/context-menu.d.ts +15 -14
  69. package/dist/components/context-menu.js +52 -41
  70. package/dist/components/context-menu.js.map +1 -1
  71. package/dist/components/conversation.d.ts +1 -1
  72. package/dist/components/conversation.js +7 -5
  73. package/dist/components/conversation.js.map +1 -1
  74. package/dist/components/copy-button.d.ts +1 -1
  75. package/dist/components/copy-button.js +4 -2
  76. package/dist/components/copy-button.js.map +1 -1
  77. package/dist/components/data-table.d.ts +7 -2
  78. package/dist/components/data-table.js +17 -42
  79. package/dist/components/data-table.js.map +1 -1
  80. package/dist/components/dialog.d.ts +19 -10
  81. package/dist/components/dialog.js +50 -33
  82. package/dist/components/dialog.js.map +1 -1
  83. package/dist/components/dropdown-menu.d.ts +15 -14
  84. package/dist/components/dropdown-menu.js +52 -41
  85. package/dist/components/dropdown-menu.js.map +1 -1
  86. package/dist/components/editor-tabs.d.ts +1 -1
  87. package/dist/components/editor-tabs.js +7 -5
  88. package/dist/components/editor-tabs.js.map +1 -1
  89. package/dist/components/empty-state.d.ts +5 -5
  90. package/dist/components/empty-state.js +17 -11
  91. package/dist/components/empty-state.js.map +1 -1
  92. package/dist/components/error-summary.d.ts +21 -0
  93. package/dist/components/error-summary.js +62 -0
  94. package/dist/components/error-summary.js.map +1 -0
  95. package/dist/components/field.d.ts +66 -7
  96. package/dist/components/field.js +152 -20
  97. package/dist/components/field.js.map +1 -1
  98. package/dist/components/form-actions.d.ts +18 -0
  99. package/dist/components/form-actions.js +30 -0
  100. package/dist/components/form-actions.js.map +1 -0
  101. package/dist/components/icon-button.d.ts +3 -1
  102. package/dist/components/icon-button.js +6 -3
  103. package/dist/components/icon-button.js.map +1 -1
  104. package/dist/components/input.d.ts +42 -7
  105. package/dist/components/input.js +54 -10
  106. package/dist/components/input.js.map +1 -1
  107. package/dist/components/kbd.d.ts +2 -2
  108. package/dist/components/kbd.js +8 -5
  109. package/dist/components/kbd.js.map +1 -1
  110. package/dist/components/label.d.ts +7 -2
  111. package/dist/components/label.js +14 -7
  112. package/dist/components/label.js.map +1 -1
  113. package/dist/components/markdown.d.ts +4 -3
  114. package/dist/components/markdown.js +8 -6
  115. package/dist/components/markdown.js.map +1 -1
  116. package/dist/components/menubar.d.ts +17 -15
  117. package/dist/components/menubar.js +58 -45
  118. package/dist/components/menubar.js.map +1 -1
  119. package/dist/components/message-actions.d.ts +3 -3
  120. package/dist/components/message-actions.js +16 -12
  121. package/dist/components/message-actions.js.map +1 -1
  122. package/dist/components/message.d.ts +1 -1
  123. package/dist/components/message.js +6 -3
  124. package/dist/components/message.js.map +1 -1
  125. package/dist/components/mobile-nav.d.ts +1 -1
  126. package/dist/components/mobile-nav.js +7 -5
  127. package/dist/components/mobile-nav.js.map +1 -1
  128. package/dist/components/native-select.d.ts +16 -0
  129. package/dist/components/native-select.js +33 -0
  130. package/dist/components/native-select.js.map +1 -0
  131. package/dist/components/navigation-menu.d.ts +13 -12
  132. package/dist/components/navigation-menu.js +43 -33
  133. package/dist/components/navigation-menu.js.map +1 -1
  134. package/dist/components/number-input.d.ts +23 -0
  135. package/dist/components/number-input.js +45 -0
  136. package/dist/components/number-input.js.map +1 -0
  137. package/dist/components/onboarding-checklist.d.ts +1 -1
  138. package/dist/components/onboarding-checklist.js +5 -3
  139. package/dist/components/onboarding-checklist.js.map +1 -1
  140. package/dist/components/page-header.d.ts +7 -6
  141. package/dist/components/page-header.js +23 -15
  142. package/dist/components/page-header.js.map +1 -1
  143. package/dist/components/pagination.d.ts +1 -1
  144. package/dist/components/pagination.js +4 -2
  145. package/dist/components/pagination.js.map +1 -1
  146. package/dist/components/popover.d.ts +14 -11
  147. package/dist/components/popover.js +30 -23
  148. package/dist/components/popover.js.map +1 -1
  149. package/dist/components/progress.d.ts +2 -2
  150. package/dist/components/progress.js +11 -9
  151. package/dist/components/progress.js.map +1 -1
  152. package/dist/components/radio-group.d.ts +23 -4
  153. package/dist/components/radio-group.js +56 -14
  154. package/dist/components/radio-group.js.map +1 -1
  155. package/dist/components/reasoning.d.ts +3 -3
  156. package/dist/components/reasoning.js +14 -11
  157. package/dist/components/reasoning.js.map +1 -1
  158. package/dist/components/resizable.js +1 -0
  159. package/dist/components/resizable.js.map +1 -1
  160. package/dist/components/scroll-area.d.ts +4 -3
  161. package/dist/components/scroll-area.js +18 -14
  162. package/dist/components/scroll-area.js.map +1 -1
  163. package/dist/components/secret-input.d.ts +3 -2
  164. package/dist/components/secret-input.js +7 -4
  165. package/dist/components/secret-input.js.map +1 -1
  166. package/dist/components/select.d.ts +12 -7
  167. package/dist/components/select.js +42 -35
  168. package/dist/components/select.js.map +1 -1
  169. package/dist/components/separator.d.ts +2 -2
  170. package/dist/components/separator.js +8 -6
  171. package/dist/components/separator.js.map +1 -1
  172. package/dist/components/sheet.d.ts +11 -9
  173. package/dist/components/sheet.js +41 -29
  174. package/dist/components/sheet.js.map +1 -1
  175. package/dist/components/skeleton.d.ts +2 -1
  176. package/dist/components/skeleton.js +7 -4
  177. package/dist/components/skeleton.js.map +1 -1
  178. package/dist/components/slider.d.ts +10 -6
  179. package/dist/components/slider.js +16 -7
  180. package/dist/components/slider.js.map +1 -1
  181. package/dist/components/source.d.ts +2 -2
  182. package/dist/components/source.js +10 -7
  183. package/dist/components/source.js.map +1 -1
  184. package/dist/components/spinner.d.ts +4 -2
  185. package/dist/components/spinner.js +5 -3
  186. package/dist/components/spinner.js.map +1 -1
  187. package/dist/components/stat-card.d.ts +27 -2
  188. package/dist/components/stat-card.js +70 -9
  189. package/dist/components/stat-card.js.map +1 -1
  190. package/dist/components/status.d.ts +7 -6
  191. package/dist/components/status.js +12 -5
  192. package/dist/components/status.js.map +1 -1
  193. package/dist/components/steps.d.ts +1 -1
  194. package/dist/components/steps.js +5 -3
  195. package/dist/components/steps.js.map +1 -1
  196. package/dist/components/switch.d.ts +47 -3
  197. package/dist/components/switch.js +89 -11
  198. package/dist/components/switch.js.map +1 -1
  199. package/dist/components/table.d.ts +29 -12
  200. package/dist/components/table.js +80 -34
  201. package/dist/components/table.js.map +1 -1
  202. package/dist/components/tabs.d.ts +10 -5
  203. package/dist/components/tabs.js +29 -19
  204. package/dist/components/tabs.js.map +1 -1
  205. package/dist/components/textarea.d.ts +6 -1
  206. package/dist/components/textarea.js +4 -3
  207. package/dist/components/textarea.js.map +1 -1
  208. package/dist/components/toast.d.ts +11 -7
  209. package/dist/components/toast.js +37 -27
  210. package/dist/components/toast.js.map +1 -1
  211. package/dist/components/toaster.d.ts +4 -2
  212. package/dist/components/toaster.js +7 -2
  213. package/dist/components/toaster.js.map +1 -1
  214. package/dist/components/tool-call.d.ts +2 -2
  215. package/dist/components/tool-call.js +15 -12
  216. package/dist/components/tool-call.js.map +1 -1
  217. package/dist/components/toolbar.d.ts +9 -4
  218. package/dist/components/toolbar.js +15 -9
  219. package/dist/components/toolbar.js.map +1 -1
  220. package/dist/components/tooltip.d.ts +4 -3
  221. package/dist/components/tooltip.js +17 -13
  222. package/dist/components/tooltip.js.map +1 -1
  223. package/dist/components/tour.js +10 -8
  224. package/dist/components/tour.js.map +1 -1
  225. package/dist/components/tree-view.d.ts +1 -1
  226. package/dist/components/tree-view.js +10 -5
  227. package/dist/components/tree-view.js.map +1 -1
  228. package/dist/components/voice-recorder.d.ts +1 -1
  229. package/dist/components/voice-recorder.js +5 -2
  230. package/dist/components/voice-recorder.js.map +1 -1
  231. package/dist/index.d.ts +6 -1
  232. package/dist/index.js +17 -12
  233. package/dist/lib/media.d.ts +18 -0
  234. package/dist/lib/media.js +34 -0
  235. package/dist/lib/media.js.map +1 -0
  236. package/dist/lib/utils.d.ts +32 -0
  237. package/dist/lib/utils.js +33 -1
  238. package/dist/lib/utils.js.map +1 -1
  239. package/dist/mui/index.js +20 -8
  240. package/dist/mui/index.js.map +1 -1
  241. package/dist/primitives/vendor/cmdk/command-score.d.ts +1 -0
  242. package/dist/primitives/vendor/cmdk/command-score.js +64 -0
  243. package/dist/primitives/vendor/cmdk/command-score.js.map +1 -0
  244. package/dist/primitives/vendor/cmdk/index.d.ts +384 -0
  245. package/dist/primitives/vendor/cmdk/index.js +687 -0
  246. package/dist/primitives/vendor/cmdk/index.js.map +1 -0
  247. package/dist/primitives/vendor/radix/number/index.d.ts +1 -0
  248. package/dist/primitives/vendor/radix/number/number.d.ts +2 -0
  249. package/dist/primitives/vendor/radix/number/number.js +9 -0
  250. package/dist/primitives/vendor/radix/number/number.js.map +1 -0
  251. package/dist/primitives/vendor/radix/primitive/index.d.ts +2 -0
  252. package/dist/primitives/vendor/radix/primitive/is-development.d.ts +1 -0
  253. package/dist/primitives/vendor/radix/primitive/is-development.js +7 -0
  254. package/dist/primitives/vendor/radix/primitive/is-development.js.map +1 -0
  255. package/dist/primitives/vendor/radix/primitive/primitive.d.ts +14 -0
  256. package/dist/primitives/vendor/radix/primitive/primitive.js +12 -0
  257. package/dist/primitives/vendor/radix/primitive/primitive.js.map +1 -0
  258. package/dist/primitives/vendor/radix/primitive/types.d.ts +5 -0
  259. package/dist/primitives/vendor/radix/react-accordion/accordion.d.ts +112 -0
  260. package/dist/primitives/vendor/radix/react-accordion/accordion.js +266 -0
  261. package/dist/primitives/vendor/radix/react-accordion/accordion.js.map +1 -0
  262. package/dist/primitives/vendor/radix/react-accordion/index.d.ts +2 -0
  263. package/dist/primitives/vendor/radix/react-alert-dialog/alert-dialog.d.ts +49 -0
  264. package/dist/primitives/vendor/radix/react-alert-dialog/alert-dialog.js +122 -0
  265. package/dist/primitives/vendor/radix/react-alert-dialog/alert-dialog.js.map +1 -0
  266. package/dist/primitives/vendor/radix/react-alert-dialog/index.d.ts +2 -0
  267. package/dist/primitives/vendor/radix/react-arrow/arrow.d.ts +9 -0
  268. package/dist/primitives/vendor/radix/react-arrow/arrow.js +22 -0
  269. package/dist/primitives/vendor/radix/react-arrow/arrow.js.map +1 -0
  270. package/dist/primitives/vendor/radix/react-arrow/index.d.ts +2 -0
  271. package/dist/primitives/vendor/radix/react-avatar/avatar.d.ts +19 -0
  272. package/dist/primitives/vendor/radix/react-avatar/avatar.js +132 -0
  273. package/dist/primitives/vendor/radix/react-avatar/avatar.js.map +1 -0
  274. package/dist/primitives/vendor/radix/react-avatar/index.d.ts +2 -0
  275. package/dist/primitives/vendor/radix/react-checkbox/checkbox.d.ts +47 -0
  276. package/dist/primitives/vendor/radix/react-checkbox/checkbox.js +197 -0
  277. package/dist/primitives/vendor/radix/react-checkbox/checkbox.js.map +1 -0
  278. package/dist/primitives/vendor/radix/react-checkbox/index.d.ts +2 -0
  279. package/dist/primitives/vendor/radix/react-collapsible/collapsible.d.ts +31 -0
  280. package/dist/primitives/vendor/radix/react-collapsible/collapsible.js +133 -0
  281. package/dist/primitives/vendor/radix/react-collapsible/collapsible.js.map +1 -0
  282. package/dist/primitives/vendor/radix/react-collapsible/index.d.ts +2 -0
  283. package/dist/primitives/vendor/radix/react-collection/collection-legacy.d.ts +21 -0
  284. package/dist/primitives/vendor/radix/react-collection/collection-legacy.js +84 -0
  285. package/dist/primitives/vendor/radix/react-collection/collection-legacy.js.map +1 -0
  286. package/dist/primitives/vendor/radix/react-collection/collection.d.ts +32 -0
  287. package/dist/primitives/vendor/radix/react-collection/index.d.ts +4 -0
  288. package/dist/primitives/vendor/radix/react-collection/ordered-dictionary.d.ts +51 -0
  289. package/dist/primitives/vendor/radix/react-compose-refs/compose-refs.d.ts +13 -0
  290. package/dist/primitives/vendor/radix/react-compose-refs/compose-refs.js +43 -0
  291. package/dist/primitives/vendor/radix/react-compose-refs/compose-refs.js.map +1 -0
  292. package/dist/primitives/vendor/radix/react-compose-refs/index.d.ts +1 -0
  293. package/dist/primitives/vendor/radix/react-context/create-context.d.ts +45 -0
  294. package/dist/primitives/vendor/radix/react-context/create-context.js +74 -0
  295. package/dist/primitives/vendor/radix/react-context/create-context.js.map +1 -0
  296. package/dist/primitives/vendor/radix/react-context/index.d.ts +2 -0
  297. package/dist/primitives/vendor/radix/react-context-menu/context-menu.d.ts +95 -0
  298. package/dist/primitives/vendor/radix/react-context-menu/context-menu.js +279 -0
  299. package/dist/primitives/vendor/radix/react-context-menu/context-menu.js.map +1 -0
  300. package/dist/primitives/vendor/radix/react-context-menu/index.d.ts +2 -0
  301. package/dist/primitives/vendor/radix/react-dialog/dialog.d.ts +97 -0
  302. package/dist/primitives/vendor/radix/react-dialog/dialog.js +262 -0
  303. package/dist/primitives/vendor/radix/react-dialog/dialog.js.map +1 -0
  304. package/dist/primitives/vendor/radix/react-dialog/index.d.ts +4 -0
  305. package/dist/primitives/vendor/radix/react-direction/direction.d.ts +10 -0
  306. package/dist/primitives/vendor/radix/react-direction/direction.js +13 -0
  307. package/dist/primitives/vendor/radix/react-direction/direction.js.map +1 -0
  308. package/dist/primitives/vendor/radix/react-direction/index.d.ts +1 -0
  309. package/dist/primitives/vendor/radix/react-dismissable-layer/dismissable-layer.d.ts +61 -0
  310. package/dist/primitives/vendor/radix/react-dismissable-layer/dismissable-layer.js +336 -0
  311. package/dist/primitives/vendor/radix/react-dismissable-layer/dismissable-layer.js.map +1 -0
  312. package/dist/primitives/vendor/radix/react-dismissable-layer/index.d.ts +4 -0
  313. package/dist/primitives/vendor/radix/react-dropdown-menu/dropdown-menu.d.ts +95 -0
  314. package/dist/primitives/vendor/radix/react-dropdown-menu/dropdown-menu.js +257 -0
  315. package/dist/primitives/vendor/radix/react-dropdown-menu/dropdown-menu.js.map +1 -0
  316. package/dist/primitives/vendor/radix/react-dropdown-menu/index.d.ts +2 -0
  317. package/dist/primitives/vendor/radix/react-focus-guards/focus-guards.d.ts +11 -0
  318. package/dist/primitives/vendor/radix/react-focus-guards/focus-guards.js +49 -0
  319. package/dist/primitives/vendor/radix/react-focus-guards/focus-guards.js.map +1 -0
  320. package/dist/primitives/vendor/radix/react-focus-guards/index.d.ts +1 -0
  321. package/dist/primitives/vendor/radix/react-focus-scope/focus-scope.d.ts +31 -0
  322. package/dist/primitives/vendor/radix/react-focus-scope/focus-scope.js +221 -0
  323. package/dist/primitives/vendor/radix/react-focus-scope/focus-scope.js.map +1 -0
  324. package/dist/primitives/vendor/radix/react-focus-scope/index.d.ts +1 -0
  325. package/dist/primitives/vendor/radix/react-id/id.d.ts +2 -0
  326. package/dist/primitives/vendor/radix/react-id/id.js +17 -0
  327. package/dist/primitives/vendor/radix/react-id/id.js.map +1 -0
  328. package/dist/primitives/vendor/radix/react-id/index.d.ts +1 -0
  329. package/dist/primitives/vendor/radix/react-label/index.d.ts +2 -0
  330. package/dist/primitives/vendor/radix/react-label/label.d.ts +9 -0
  331. package/dist/primitives/vendor/radix/react-label/label.js +21 -0
  332. package/dist/primitives/vendor/radix/react-label/label.js.map +1 -0
  333. package/dist/primitives/vendor/radix/react-menu/index.d.ts +2 -0
  334. package/dist/primitives/vendor/radix/react-menu/menu.d.ts +173 -0
  335. package/dist/primitives/vendor/radix/react-menu/menu.js +806 -0
  336. package/dist/primitives/vendor/radix/react-menu/menu.js.map +1 -0
  337. package/dist/primitives/vendor/radix/react-menubar/index.d.ts +2 -0
  338. package/dist/primitives/vendor/radix/react-menubar/menubar.d.ts +106 -0
  339. package/dist/primitives/vendor/radix/react-menubar/menubar.js +377 -0
  340. package/dist/primitives/vendor/radix/react-menubar/menubar.js.map +1 -0
  341. package/dist/primitives/vendor/radix/react-navigation-menu/index.d.ts +2 -0
  342. package/dist/primitives/vendor/radix/react-navigation-menu/navigation-menu.d.ts +124 -0
  343. package/dist/primitives/vendor/radix/react-navigation-menu/navigation-menu.js +743 -0
  344. package/dist/primitives/vendor/radix/react-navigation-menu/navigation-menu.js.map +1 -0
  345. package/dist/primitives/vendor/radix/react-popover/index.d.ts +1 -0
  346. package/dist/primitives/vendor/radix/react-popover/popover.d.ts +83 -0
  347. package/dist/primitives/vendor/radix/react-popover/popover.js +236 -0
  348. package/dist/primitives/vendor/radix/react-popover/popover.js.map +1 -0
  349. package/dist/primitives/vendor/radix/react-popper/index.d.ts +2 -0
  350. package/dist/primitives/vendor/radix/react-popper/popper.d.ts +44 -0
  351. package/dist/primitives/vendor/radix/react-popper/popper.js +276 -0
  352. package/dist/primitives/vendor/radix/react-popper/popper.js.map +1 -0
  353. package/dist/primitives/vendor/radix/react-portal/index.d.ts +2 -0
  354. package/dist/primitives/vendor/radix/react-portal/portal.d.ts +13 -0
  355. package/dist/primitives/vendor/radix/react-portal/portal.js +21 -0
  356. package/dist/primitives/vendor/radix/react-portal/portal.js.map +1 -0
  357. package/dist/primitives/vendor/radix/react-presence/index.d.ts +2 -0
  358. package/dist/primitives/vendor/radix/react-presence/presence.d.ts +11 -0
  359. package/dist/primitives/vendor/radix/react-presence/presence.js +152 -0
  360. package/dist/primitives/vendor/radix/react-presence/presence.js.map +1 -0
  361. package/dist/primitives/vendor/radix/react-presence/use-state-machine.d.ts +10 -0
  362. package/dist/primitives/vendor/radix/react-presence/use-state-machine.js +12 -0
  363. package/dist/primitives/vendor/radix/react-presence/use-state-machine.js.map +1 -0
  364. package/dist/primitives/vendor/radix/react-primitive/index.d.ts +2 -0
  365. package/dist/primitives/vendor/radix/react-primitive/primitive.d.ts +56 -0
  366. package/dist/primitives/vendor/radix/react-primitive/primitive.js +84 -0
  367. package/dist/primitives/vendor/radix/react-primitive/primitive.js.map +1 -0
  368. package/dist/primitives/vendor/radix/react-progress/index.d.ts +2 -0
  369. package/dist/primitives/vendor/radix/react-progress/progress.d.ts +17 -0
  370. package/dist/primitives/vendor/radix/react-progress/progress.js +79 -0
  371. package/dist/primitives/vendor/radix/react-progress/progress.js.map +1 -0
  372. package/dist/primitives/vendor/radix/react-radio-group/index.d.ts +2 -0
  373. package/dist/primitives/vendor/radix/react-radio-group/radio-group.d.ts +55 -0
  374. package/dist/primitives/vendor/radix/react-radio-group/radio-group.js +173 -0
  375. package/dist/primitives/vendor/radix/react-radio-group/radio-group.js.map +1 -0
  376. package/dist/primitives/vendor/radix/react-radio-group/radio.d.ts +62 -0
  377. package/dist/primitives/vendor/radix/react-radio-group/radio.js +150 -0
  378. package/dist/primitives/vendor/radix/react-radio-group/radio.js.map +1 -0
  379. package/dist/primitives/vendor/radix/react-roving-focus/index.d.ts +2 -0
  380. package/dist/primitives/vendor/radix/react-roving-focus/roving-focus-group.d.ts +47 -0
  381. package/dist/primitives/vendor/radix/react-roving-focus/roving-focus-group.js +218 -0
  382. package/dist/primitives/vendor/radix/react-roving-focus/roving-focus-group.js.map +1 -0
  383. package/dist/primitives/vendor/radix/react-scroll-area/index.d.ts +2 -0
  384. package/dist/primitives/vendor/radix/react-scroll-area/scroll-area.d.ts +121 -0
  385. package/dist/primitives/vendor/radix/react-scroll-area/scroll-area.js +713 -0
  386. package/dist/primitives/vendor/radix/react-scroll-area/scroll-area.js.map +1 -0
  387. package/dist/primitives/vendor/radix/react-scroll-area/use-state-machine.d.ts +10 -0
  388. package/dist/primitives/vendor/radix/react-scroll-area/use-state-machine.js +12 -0
  389. package/dist/primitives/vendor/radix/react-scroll-area/use-state-machine.js.map +1 -0
  390. package/dist/primitives/vendor/radix/react-select/index.d.ts +2 -0
  391. package/dist/primitives/vendor/radix/react-select/select.d.ts +163 -0
  392. package/dist/primitives/vendor/radix/react-select/select.js +1040 -0
  393. package/dist/primitives/vendor/radix/react-select/select.js.map +1 -0
  394. package/dist/primitives/vendor/radix/react-separator/index.d.ts +2 -0
  395. package/dist/primitives/vendor/radix/react-separator/separator.d.ts +20 -0
  396. package/dist/primitives/vendor/radix/react-separator/separator.js +29 -0
  397. package/dist/primitives/vendor/radix/react-separator/separator.js.map +1 -0
  398. package/dist/primitives/vendor/radix/react-slot/index.d.ts +1 -0
  399. package/dist/primitives/vendor/radix/react-slot/slot.d.ts +29 -0
  400. package/dist/primitives/vendor/radix/react-slot/slot.js +107 -0
  401. package/dist/primitives/vendor/radix/react-slot/slot.js.map +1 -0
  402. package/dist/primitives/vendor/radix/react-switch/index.d.ts +2 -0
  403. package/dist/primitives/vendor/radix/react-switch/switch.d.ts +41 -0
  404. package/dist/primitives/vendor/radix/react-switch/switch.js +185 -0
  405. package/dist/primitives/vendor/radix/react-switch/switch.js.map +1 -0
  406. package/dist/primitives/vendor/radix/react-tabs/index.d.ts +2 -0
  407. package/dist/primitives/vendor/radix/react-tabs/tabs.d.ts +54 -0
  408. package/dist/primitives/vendor/radix/react-tabs/tabs.js +145 -0
  409. package/dist/primitives/vendor/radix/react-tabs/tabs.js.map +1 -0
  410. package/dist/primitives/vendor/radix/react-toast/index.d.ts +2 -0
  411. package/dist/primitives/vendor/radix/react-toast/toast.d.ts +125 -0
  412. package/dist/primitives/vendor/radix/react-toast/toast.js +557 -0
  413. package/dist/primitives/vendor/radix/react-toast/toast.js.map +1 -0
  414. package/dist/primitives/vendor/radix/react-tooltip/index.d.ts +2 -0
  415. package/dist/primitives/vendor/radix/react-tooltip/tooltip.d.ts +99 -0
  416. package/dist/primitives/vendor/radix/react-tooltip/tooltip.js +503 -0
  417. package/dist/primitives/vendor/radix/react-tooltip/tooltip.js.map +1 -0
  418. package/dist/primitives/vendor/radix/react-use-callback-ref/index.d.ts +1 -0
  419. package/dist/primitives/vendor/radix/react-use-callback-ref/use-callback-ref.d.ts +6 -0
  420. package/dist/primitives/vendor/radix/react-use-callback-ref/use-callback-ref.js +18 -0
  421. package/dist/primitives/vendor/radix/react-use-callback-ref/use-callback-ref.js.map +1 -0
  422. package/dist/primitives/vendor/radix/react-use-controllable-state/index.d.ts +2 -0
  423. package/dist/primitives/vendor/radix/react-use-controllable-state/use-controllable-state-reducer.d.ts +28 -0
  424. package/dist/primitives/vendor/radix/react-use-controllable-state/use-controllable-state.d.ts +11 -0
  425. package/dist/primitives/vendor/radix/react-use-controllable-state/use-controllable-state.js +59 -0
  426. package/dist/primitives/vendor/radix/react-use-controllable-state/use-controllable-state.js.map +1 -0
  427. package/dist/primitives/vendor/radix/react-use-effect-event/index.d.ts +1 -0
  428. package/dist/primitives/vendor/radix/react-use-effect-event/use-effect-event.d.ts +7 -0
  429. package/dist/primitives/vendor/radix/react-use-is-hydrated/index.d.ts +1 -0
  430. package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated-legacy.d.ts +1 -0
  431. package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated-legacy.js +18 -0
  432. package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated-legacy.js.map +1 -0
  433. package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated.d.ts +6 -0
  434. package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated.js +19 -0
  435. package/dist/primitives/vendor/radix/react-use-is-hydrated/use-is-hydrated.js.map +1 -0
  436. package/dist/primitives/vendor/radix/react-use-layout-effect/index.d.ts +1 -0
  437. package/dist/primitives/vendor/radix/react-use-layout-effect/use-layout-effect.d.ts +10 -0
  438. package/dist/primitives/vendor/radix/react-use-layout-effect/use-layout-effect.js +15 -0
  439. package/dist/primitives/vendor/radix/react-use-layout-effect/use-layout-effect.js.map +1 -0
  440. package/dist/primitives/vendor/radix/react-use-previous/index.d.ts +1 -0
  441. package/dist/primitives/vendor/radix/react-use-previous/use-previous.d.ts +2 -0
  442. package/dist/primitives/vendor/radix/react-use-previous/use-previous.js +20 -0
  443. package/dist/primitives/vendor/radix/react-use-previous/use-previous.js.map +1 -0
  444. package/dist/primitives/vendor/radix/react-use-size/index.d.ts +1 -0
  445. package/dist/primitives/vendor/radix/react-use-size/use-size.d.ts +5 -0
  446. package/dist/primitives/vendor/radix/react-use-size/use-size.js +42 -0
  447. package/dist/primitives/vendor/radix/react-use-size/use-size.js.map +1 -0
  448. package/dist/primitives/vendor/radix/react-visually-hidden/index.d.ts +2 -0
  449. package/dist/primitives/vendor/radix/react-visually-hidden/visually-hidden.d.ts +21 -0
  450. package/dist/primitives/vendor/radix/react-visually-hidden/visually-hidden.js +32 -0
  451. package/dist/primitives/vendor/radix/react-visually-hidden/visually-hidden.js.map +1 -0
  452. package/dist/primitives/vendor/radix/rect/index.d.ts +2 -0
  453. package/dist/primitives/vendor/radix/rect/observe-element-rect.d.ts +16 -0
  454. package/dist/styles.css +1 -1
  455. package/dist/theme.css +36 -17
  456. package/dist/tokens.d.ts +78 -36
  457. package/dist/tokens.js +63 -32
  458. package/dist/tokens.js.map +1 -1
  459. package/package.json +25 -13
  460. package/vendor-manifest.json +1101 -0
@@ -0,0 +1,336 @@
1
+ "use client";
2
+ import { useComposedRefs } from "../react-compose-refs/compose-refs.js";
3
+ import { composeEventHandlers } from "../primitive/primitive.js";
4
+ import { Primitive, dispatchDiscreteCustomEvent } from "../react-primitive/primitive.js";
5
+ import { useCallbackRef } from "../react-use-callback-ref/use-callback-ref.js";
6
+ import * as React from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ //#region src/primitives/vendor/radix/react-dismissable-layer/dismissable-layer.tsx
9
+ var CONTEXT_UPDATE = "dismissableLayer.update";
10
+ var POINTER_DOWN_OUTSIDE = "dismissableLayer.pointerDownOutside";
11
+ var FOCUS_OUTSIDE = "dismissableLayer.focusOutside";
12
+ var originalBodyPointerEvents;
13
+ var DismissableLayerContext = React.createContext({
14
+ layers: /* @__PURE__ */ new Set(),
15
+ layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
16
+ branches: /* @__PURE__ */ new Set(),
17
+ dismissableSurfaces: /* @__PURE__ */ new Set()
18
+ });
19
+ var DismissableLayer = /* @__PURE__ */ React.forwardRef(function DismissableLayer(props, forwardedRef) {
20
+ const { disableOutsidePointerEvents = false, deferPointerDownOutside = false, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, ...layerProps } = props;
21
+ const context = React.useContext(DismissableLayerContext);
22
+ const [node, setNode] = React.useState(null);
23
+ const ownerDocument = node?.ownerDocument ?? globalThis?.document;
24
+ const [, force] = React.useState({});
25
+ const composedRefs = useComposedRefs(forwardedRef, setNode);
26
+ const layers = Array.from(context.layers);
27
+ const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);
28
+ const highestLayerWithOutsidePointerEventsDisabledIndex = highestLayerWithOutsidePointerEventsDisabled ? layers.indexOf(highestLayerWithOutsidePointerEventsDisabled) : -1;
29
+ const index = node ? layers.indexOf(node) : -1;
30
+ const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;
31
+ const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;
32
+ const isDeferredPointerDownOutsideRef = React.useRef(false);
33
+ const pointerDownOutside = usePointerDownOutside((event) => {
34
+ onPointerDownOutside?.(event);
35
+ onInteractOutside?.(event);
36
+ if (!event.defaultPrevented) onDismiss?.();
37
+ }, {
38
+ ownerDocument,
39
+ deferPointerDownOutside,
40
+ isDeferredPointerDownOutsideRef,
41
+ dismissableSurfaces: context.dismissableSurfaces,
42
+ shouldHandlePointerDownOutside: React.useCallback((target) => {
43
+ if (!(target instanceof Node)) return false;
44
+ const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));
45
+ return isPointerEventsEnabled && !isPointerDownOnBranch;
46
+ }, [context.branches, isPointerEventsEnabled])
47
+ });
48
+ const focusOutside = useFocusOutside((event) => {
49
+ if (deferPointerDownOutside && isDeferredPointerDownOutsideRef.current) return;
50
+ const target = event.target;
51
+ if ([...context.branches].some((branch) => branch.contains(target))) return;
52
+ onFocusOutside?.(event);
53
+ onInteractOutside?.(event);
54
+ if (!event.defaultPrevented) onDismiss?.();
55
+ }, ownerDocument);
56
+ const isHighestLayer = node ? index === layers.length - 1 : false;
57
+ const handleKeyDown = useCallbackRef((event) => {
58
+ if (event.key !== "Escape") return;
59
+ onEscapeKeyDown?.(event);
60
+ if (!event.defaultPrevented && onDismiss) {
61
+ event.preventDefault();
62
+ onDismiss();
63
+ }
64
+ });
65
+ React.useEffect(() => {
66
+ if (!isHighestLayer) return;
67
+ ownerDocument.addEventListener("keydown", handleKeyDown, { capture: true });
68
+ return () => ownerDocument.removeEventListener("keydown", handleKeyDown, { capture: true });
69
+ }, [
70
+ ownerDocument,
71
+ isHighestLayer,
72
+ handleKeyDown
73
+ ]);
74
+ React.useEffect(() => {
75
+ if (!node) return;
76
+ if (disableOutsidePointerEvents) {
77
+ if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
78
+ originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
79
+ ownerDocument.body.style.pointerEvents = "none";
80
+ }
81
+ context.layersWithOutsidePointerEventsDisabled.add(node);
82
+ }
83
+ context.layers.add(node);
84
+ dispatchUpdate();
85
+ return () => {
86
+ if (disableOutsidePointerEvents) {
87
+ context.layersWithOutsidePointerEventsDisabled.delete(node);
88
+ if (context.layersWithOutsidePointerEventsDisabled.size === 0) ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
89
+ }
90
+ };
91
+ }, [
92
+ node,
93
+ ownerDocument,
94
+ disableOutsidePointerEvents,
95
+ context
96
+ ]);
97
+ /**
98
+ * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect
99
+ * because a change to `disableOutsidePointerEvents` would remove this layer from the stack
100
+ * and add it to the end again so the layering order wouldn't be _creation order_.
101
+ * We only want them to be removed from context stacks when unmounted.
102
+ */
103
+ React.useEffect(() => {
104
+ return () => {
105
+ if (!node) return;
106
+ context.layers.delete(node);
107
+ context.layersWithOutsidePointerEventsDisabled.delete(node);
108
+ dispatchUpdate();
109
+ };
110
+ }, [node, context]);
111
+ React.useEffect(() => {
112
+ const handleUpdate = () => force({});
113
+ document.addEventListener(CONTEXT_UPDATE, handleUpdate);
114
+ return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);
115
+ }, []);
116
+ return /* @__PURE__ */ jsx(Primitive.div, {
117
+ ...layerProps,
118
+ ref: composedRefs,
119
+ style: {
120
+ pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? "auto" : "none" : void 0,
121
+ ...props.style
122
+ },
123
+ onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),
124
+ onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),
125
+ onPointerDownCapture: composeEventHandlers(props.onPointerDownCapture, pointerDownOutside.onPointerDownCapture)
126
+ });
127
+ });
128
+ var DismissableLayerBranch = /* @__PURE__ */ React.forwardRef(function DismissableLayerBranch(props, forwardedRef) {
129
+ const context = React.useContext(DismissableLayerContext);
130
+ const ref = React.useRef(null);
131
+ const composedRefs = useComposedRefs(forwardedRef, ref);
132
+ React.useEffect(() => {
133
+ const node = ref.current;
134
+ if (node) {
135
+ context.branches.add(node);
136
+ return () => {
137
+ context.branches.delete(node);
138
+ };
139
+ }
140
+ }, [context.branches]);
141
+ return /* @__PURE__ */ jsx(Primitive.div, {
142
+ ...props,
143
+ ref: composedRefs
144
+ });
145
+ });
146
+ /**
147
+ * Registers a node as a "dismiss surface" for the enclosing DismissableLayer
148
+ */
149
+ function useDismissableLayerSurface() {
150
+ const context = React.useContext(DismissableLayerContext);
151
+ const [node, setNode] = React.useState(null);
152
+ React.useEffect(() => {
153
+ if (!node) return;
154
+ context.dismissableSurfaces.add(node);
155
+ return () => {
156
+ context.dismissableSurfaces.delete(node);
157
+ };
158
+ }, [node, context.dismissableSurfaces]);
159
+ return setNode;
160
+ }
161
+ var IS_TRUE = () => true;
162
+ /**
163
+ * Listens for `pointerdown` outside a react subtree. We detect the start of the interaction on
164
+ * `pointerdown`, then wait for `click` so external code can intercept later mouse events.
165
+ * Returns props to pass to the node we want to check for outside events.
166
+ */
167
+ function usePointerDownOutside(onPointerDownOutside, args) {
168
+ const { ownerDocument = globalThis?.document, deferPointerDownOutside = false, isDeferredPointerDownOutsideRef, dismissableSurfaces, shouldHandlePointerDownOutside = IS_TRUE } = args;
169
+ const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);
170
+ const isPointerInsideReactTreeRef = React.useRef(false);
171
+ const isPointerDownOutsideRef = React.useRef(false);
172
+ const interceptedOutsideInteractionEventsRef = React.useRef(/* @__PURE__ */ new Map());
173
+ const handleClickRef = React.useRef(() => {});
174
+ React.useEffect(() => {
175
+ function resetOutsideInteraction() {
176
+ isPointerDownOutsideRef.current = false;
177
+ isDeferredPointerDownOutsideRef.current = false;
178
+ interceptedOutsideInteractionEventsRef.current.clear();
179
+ }
180
+ function isOutsideInteractionIntercepted() {
181
+ return Array.from(interceptedOutsideInteractionEventsRef.current.values()).some(Boolean);
182
+ }
183
+ function handleInteractionCapture(event) {
184
+ if (!isPointerDownOutsideRef.current) return;
185
+ const target = event.target;
186
+ if (!(target instanceof Node && [...dismissableSurfaces].some((surface) => surface.contains(target)))) interceptedOutsideInteractionEventsRef.current.set(event.type, true);
187
+ if (event.type === "click") window.setTimeout(() => {
188
+ if (isPointerDownOutsideRef.current) handleClickRef.current();
189
+ }, 0);
190
+ }
191
+ function handleInteractionBubble(event) {
192
+ if (isPointerDownOutsideRef.current) interceptedOutsideInteractionEventsRef.current.set(event.type, false);
193
+ }
194
+ const handlePointerDown = (event) => {
195
+ if (event.target && !isPointerInsideReactTreeRef.current) {
196
+ if (!shouldHandlePointerDownOutside(event.target)) {
197
+ ownerDocument.removeEventListener("click", handleClickRef.current);
198
+ resetOutsideInteraction();
199
+ isPointerInsideReactTreeRef.current = false;
200
+ return;
201
+ }
202
+ const eventDetail = { originalEvent: event };
203
+ isPointerDownOutsideRef.current = true;
204
+ isDeferredPointerDownOutsideRef.current = deferPointerDownOutside && event.button === 0;
205
+ interceptedOutsideInteractionEventsRef.current.clear();
206
+ function handleAndDispatchPointerDownOutsideEvent() {
207
+ ownerDocument.removeEventListener("click", handleClickRef.current);
208
+ const wasOutsideInteractionIntercepted = isOutsideInteractionIntercepted();
209
+ resetOutsideInteraction();
210
+ if (!wasOutsideInteractionIntercepted) handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE, handlePointerDownOutside, eventDetail, { discrete: true });
211
+ }
212
+ /**
213
+ * When deferring, we need to wait for a click event because:
214
+ *
215
+ * 1. On touch devices, browsers implement a ~350ms delay between the
216
+ * time the user stops touching the display and when the browser
217
+ * executes events. We need to ensure we don't reactivate
218
+ * pointer-events within this timeframe otherwise the browser may
219
+ * execute events that should have been prevented.
220
+ *
221
+ * 2. Browser extensions and other third-party code may call
222
+ * `stopPropagation` on later mouse events like `mousedown`,
223
+ * `mouseup`, or `click`. Waiting lets those intercepted events
224
+ * cancel the outside interaction before we dismiss the layer. See
225
+ * https://github.com/radix-ui/primitives/issues/2055
226
+ *
227
+ * Additionally, this also lets us deal automatically with cancellations
228
+ * when a click event isn't raised because the page was considered
229
+ * scrolled/drag-scrolled, long-pressed, etc.
230
+ *
231
+ * This is why we also continuously remove the previous listener,
232
+ * because we cannot be certain that it was raised, and therefore
233
+ * cleaned-up.
234
+ *
235
+ * For non-primary buttons, we dispatch the event immediately because we
236
+ * cannot be certain that the event was canceled.
237
+ */
238
+ if (!deferPointerDownOutside || event.button !== 0) handleAndDispatchPointerDownOutsideEvent();
239
+ else {
240
+ ownerDocument.removeEventListener("click", handleClickRef.current);
241
+ handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;
242
+ ownerDocument.addEventListener("click", handleClickRef.current, { once: true });
243
+ }
244
+ } else {
245
+ ownerDocument.removeEventListener("click", handleClickRef.current);
246
+ resetOutsideInteraction();
247
+ }
248
+ isPointerInsideReactTreeRef.current = false;
249
+ };
250
+ const outsideInteractionEvents = [
251
+ "pointerup",
252
+ "mousedown",
253
+ "mouseup",
254
+ "touchstart",
255
+ "touchend",
256
+ "click"
257
+ ];
258
+ for (const eventName of outsideInteractionEvents) {
259
+ ownerDocument.addEventListener(eventName, handleInteractionCapture, true);
260
+ ownerDocument.addEventListener(eventName, handleInteractionBubble);
261
+ }
262
+ /**
263
+ * if this hook executes in a component that mounts via a `pointerdown` event, the event
264
+ * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid
265
+ * this by delaying the event listener registration on the document.
266
+ * This is not React specific, but rather how the DOM works, ie:
267
+ * ```
268
+ * button.addEventListener('pointerdown', () => {
269
+ * console.log('I will log');
270
+ * document.addEventListener('pointerdown', () => {
271
+ * console.log('I will also log');
272
+ * })
273
+ * });
274
+ */
275
+ const timerId = window.setTimeout(() => {
276
+ ownerDocument.addEventListener("pointerdown", handlePointerDown);
277
+ }, 0);
278
+ return () => {
279
+ window.clearTimeout(timerId);
280
+ ownerDocument.removeEventListener("pointerdown", handlePointerDown);
281
+ ownerDocument.removeEventListener("click", handleClickRef.current);
282
+ for (const eventName of outsideInteractionEvents) {
283
+ ownerDocument.removeEventListener(eventName, handleInteractionCapture, true);
284
+ ownerDocument.removeEventListener(eventName, handleInteractionBubble);
285
+ }
286
+ };
287
+ }, [
288
+ ownerDocument,
289
+ handlePointerDownOutside,
290
+ deferPointerDownOutside,
291
+ isDeferredPointerDownOutsideRef,
292
+ dismissableSurfaces,
293
+ shouldHandlePointerDownOutside
294
+ ]);
295
+ return { onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true };
296
+ }
297
+ /**
298
+ * Listens for when focus happens outside a react subtree.
299
+ * Returns props to pass to the root (node) of the subtree we want to check.
300
+ */
301
+ function useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {
302
+ const handleFocusOutside = useCallbackRef(onFocusOutside);
303
+ const isFocusInsideReactTreeRef = React.useRef(false);
304
+ React.useEffect(() => {
305
+ const handleFocus = (event) => {
306
+ if (event.target && !isFocusInsideReactTreeRef.current) handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, { originalEvent: event }, { discrete: false });
307
+ };
308
+ ownerDocument.addEventListener("focusin", handleFocus);
309
+ return () => ownerDocument.removeEventListener("focusin", handleFocus);
310
+ }, [ownerDocument, handleFocusOutside]);
311
+ return {
312
+ onFocusCapture: () => isFocusInsideReactTreeRef.current = true,
313
+ onBlurCapture: () => isFocusInsideReactTreeRef.current = false
314
+ };
315
+ }
316
+ function dispatchUpdate() {
317
+ const event = new CustomEvent(CONTEXT_UPDATE);
318
+ document.dispatchEvent(event);
319
+ }
320
+ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
321
+ const target = detail.originalEvent.target;
322
+ const event = new CustomEvent(name, {
323
+ bubbles: false,
324
+ cancelable: true,
325
+ detail
326
+ });
327
+ if (handler) target.addEventListener(name, handler, { once: true });
328
+ if (discrete) dispatchDiscreteCustomEvent(target, event);
329
+ else target.dispatchEvent(event);
330
+ }
331
+ var Root = DismissableLayer;
332
+ var Branch = DismissableLayerBranch;
333
+ //#endregion
334
+ export { Branch, DismissableLayer, DismissableLayerBranch, Root, useDismissableLayerSurface };
335
+
336
+ //# sourceMappingURL=dismissable-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dismissable-layer.js","names":[],"sources":["../../../../../src/primitives/vendor/radix/react-dismissable-layer/dismissable-layer.tsx"],"sourcesContent":["// Vendored from Radix Primitives (c) 2022 WorkOS, MIT. See vendor/LICENSE.radix.\n// Local modification: package imports resolve to the pinned local source.\nimport * as React from 'react';\nimport { composeEventHandlers } from '../primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '../react-primitive';\nimport { useComposedRefs } from '../react-compose-refs';\nimport { useCallbackRef } from '../react-use-callback-ref';\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/\nconst CONTEXT_UPDATE = 'dismissableLayer.update';\nconst POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\n\nlet originalBodyPointerEvents: string;\n\nconst DismissableLayerContext = React.createContext({\n layers: new Set<DismissableLayerElement>(),\n layersWithOutsidePointerEventsDisabled: new Set<DismissableLayerElement>(),\n branches: new Set<DismissableLayerBranchElement>(),\n\n // Outside elements that belong to a layer's own dismiss affordance (eg, a\n // dialog overlay). Pressing them should dismiss the layer regardless of\n // whether or not they stop propagation.\n //\n // See https://github.com/radix-ui/primitives/issues/3346\n dismissableSurfaces: new Set<DismissableLayerBranchElement>(),\n});\n\ntype DismissableLayerElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DismissableLayerProps extends PrimitiveDivProps {\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n disableOutsidePointerEvents?: boolean;\n /**\n * When `true`, a `'pointerdown'` event outside of the layered element will\n * wait for the interaction's click event before dispatching, allowing\n * third-party code to stop propagation of later events and cancel dismissal.\n */\n deferPointerDownOutside?: boolean;\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;\n /**\n * Event handler called when the focus moves outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void;\n /**\n * Event handler called when an interaction happens outside the `DismissableLayer`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void;\n /**\n * Handler called when the `DismissableLayer` should be dismissed\n */\n onDismiss?: () => void;\n}\n\nconst DismissableLayer = /* @__PURE__ */ React.forwardRef<\n DismissableLayerElement,\n DismissableLayerProps\n>(\n // blank line to reduce diff noise\n function DismissableLayer(props, forwardedRef) {\n const {\n disableOutsidePointerEvents = false,\n deferPointerDownOutside = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState<DismissableLayerElement | null>(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, setNode);\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...context.layersWithOutsidePointerEventsDisabled,\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex =\n highestLayerWithOutsidePointerEventsDisabled\n ? layers.indexOf(highestLayerWithOutsidePointerEventsDisabled)\n : -1;\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const isDeferredPointerDownOutsideRef = React.useRef(false);\n\n const pointerDownOutside = usePointerDownOutside(\n (event) => {\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n },\n {\n ownerDocument,\n deferPointerDownOutside,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces: context.dismissableSurfaces,\n shouldHandlePointerDownOutside: React.useCallback(\n (target: EventTarget | null) => {\n if (!(target instanceof Node)) {\n return false;\n }\n\n const isPointerDownOnBranch = [...context.branches].some((branch) =>\n branch.contains(target),\n );\n return isPointerEventsEnabled && !isPointerDownOnBranch;\n },\n [context.branches, isPointerEventsEnabled],\n ),\n },\n );\n\n const focusOutside = useFocusOutside((event) => {\n if (deferPointerDownOutside && isDeferredPointerDownOutsideRef.current) {\n return;\n }\n\n const target = event.target as HTMLElement;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n const isHighestLayer = node ? index === layers.length - 1 : false;\n\n // Stabilize via `useCallbackRef` rather than `useEffectEvent`: React's\n // native `useEffectEvent` returns a stale closure inside `forwardRef`\n // components on React 19.2.x, which caused escape handlers to observe\n // mount-time props/state instead of the latest values.\n //\n // We should revert this to use useEffectEvent when the fix lands in React.\n //\n // - https://github.com/radix-ui/primitives/issues/4014\n // - https://github.com/react/react/pull/34831\n const handleKeyDown = useCallbackRef((event: KeyboardEvent) => {\n if (event.key !== 'Escape') {\n return;\n }\n\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n });\n\n React.useEffect(() => {\n if (!isHighestLayer) {\n return;\n }\n\n ownerDocument.addEventListener('keydown', handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener('keydown', handleKeyDown, { capture: true });\n }, [ownerDocument, isHighestLayer, handleKeyDown]);\n\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n // We must remove this layer from the disabled set whenever\n // `disableOutsidePointerEvents` becomes `false` (eg, when a modal\n // closes but stays mounted during an exit animation) and not only on\n // unmount. Otherwise the `body` `pointer-events` could be left as\n // `none` when multiple layers overlap.\n // See: https://github.com/radix-ui/primitives/issues/3645\n if (disableOutsidePointerEvents) {\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n\n return (\n <Primitive.div\n {...layerProps}\n ref={composedRefs}\n style={{\n pointerEvents: isBodyPointerEventsDisabled\n ? isPointerEventsEnabled\n ? 'auto'\n : 'none'\n : undefined,\n ...props.style,\n }}\n onFocusCapture={composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture)}\n onBlurCapture={composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture)}\n onPointerDownCapture={composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture,\n )}\n />\n );\n },\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/\n\ntype DismissableLayerBranchElement = React.ComponentRef<typeof Primitive.div>;\ninterface DismissableLayerBranchProps extends PrimitiveDivProps {}\n\nconst DismissableLayerBranch = /* @__PURE__ */ React.forwardRef<\n DismissableLayerBranchElement,\n DismissableLayerBranchProps\n>(function DismissableLayerBranch(props, forwardedRef) {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef<DismissableLayerBranchElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n\n return <Primitive.div {...props} ref={composedRefs} />;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\n/**\n * Registers a node as a \"dismiss surface\" for the enclosing DismissableLayer\n */\nfunction useDismissableLayerSurface(): React.RefCallback<DismissableLayerBranchElement> {\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState<DismissableLayerBranchElement | null>(null);\n\n React.useEffect(() => {\n if (!node) {\n return;\n }\n context.dismissableSurfaces.add(node);\n return () => {\n context.dismissableSurfaces.delete(node);\n };\n }, [node, context.dismissableSurfaces]);\n\n return setNode;\n}\n\ntype PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;\ntype FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;\n\nconst IS_TRUE = () => true;\n\n/**\n * Listens for `pointerdown` outside a react subtree. We detect the start of the interaction on\n * `pointerdown`, then wait for `click` so external code can intercept later mouse events.\n * Returns props to pass to the node we want to check for outside events.\n */\nfunction usePointerDownOutside(\n onPointerDownOutside: ((event: PointerDownOutsideEvent) => void) | undefined,\n args: {\n ownerDocument: Document | undefined;\n deferPointerDownOutside: boolean;\n isDeferredPointerDownOutsideRef: React.RefObject<boolean>;\n dismissableSurfaces: Set<DismissableLayerBranchElement>;\n shouldHandlePointerDownOutside?: (target: EventTarget | null) => boolean;\n },\n) {\n const {\n ownerDocument = globalThis?.document,\n deferPointerDownOutside = false,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces,\n shouldHandlePointerDownOutside = IS_TRUE,\n } = args;\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside) as EventListener;\n const isPointerInsideReactTreeRef = React.useRef(false);\n const isPointerDownOutsideRef = React.useRef(false);\n const interceptedOutsideInteractionEventsRef = React.useRef<Map<string, boolean>>(new Map());\n const handleClickRef = React.useRef(() => {});\n\n React.useEffect(() => {\n function resetOutsideInteraction() {\n isPointerDownOutsideRef.current = false;\n isDeferredPointerDownOutsideRef.current = false;\n interceptedOutsideInteractionEventsRef.current.clear();\n }\n\n function isOutsideInteractionIntercepted() {\n return Array.from(interceptedOutsideInteractionEventsRef.current.values()).some(Boolean);\n }\n\n function handleInteractionCapture(event: Event) {\n if (!isPointerDownOutsideRef.current) {\n return;\n }\n\n const target = event.target;\n const isDismissableSurface =\n target instanceof Node &&\n [...dismissableSurfaces].some((surface) => surface.contains(target as Node));\n\n if (!isDismissableSurface) {\n interceptedOutsideInteractionEventsRef.current.set(event.type, true);\n }\n\n if (event.type === 'click') {\n window.setTimeout(() => {\n if (isPointerDownOutsideRef.current) {\n handleClickRef.current();\n }\n }, 0);\n }\n }\n\n function handleInteractionBubble(event: Event) {\n if (isPointerDownOutsideRef.current) {\n interceptedOutsideInteractionEventsRef.current.set(event.type, false);\n }\n }\n\n const handlePointerDown = (event: PointerEvent) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n if (!shouldHandlePointerDownOutside(event.target)) {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n resetOutsideInteraction();\n isPointerInsideReactTreeRef.current = false;\n return;\n }\n\n const eventDetail = { originalEvent: event };\n isPointerDownOutsideRef.current = true;\n isDeferredPointerDownOutsideRef.current = deferPointerDownOutside && event.button === 0;\n interceptedOutsideInteractionEventsRef.current.clear();\n\n function handleAndDispatchPointerDownOutsideEvent() {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n const wasOutsideInteractionIntercepted = isOutsideInteractionIntercepted();\n resetOutsideInteraction();\n\n if (!wasOutsideInteractionIntercepted) {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true },\n );\n }\n }\n\n /**\n * When deferring, we need to wait for a click event because:\n *\n * 1. On touch devices, browsers implement a ~350ms delay between the\n * time the user stops touching the display and when the browser\n * executes events. We need to ensure we don't reactivate\n * pointer-events within this timeframe otherwise the browser may\n * execute events that should have been prevented.\n *\n * 2. Browser extensions and other third-party code may call\n * `stopPropagation` on later mouse events like `mousedown`,\n * `mouseup`, or `click`. Waiting lets those intercepted events\n * cancel the outside interaction before we dismiss the layer. See\n * https://github.com/radix-ui/primitives/issues/2055\n *\n * Additionally, this also lets us deal automatically with cancellations\n * when a click event isn't raised because the page was considered\n * scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener,\n * because we cannot be certain that it was raised, and therefore\n * cleaned-up.\n *\n * For non-primary buttons, we dispatch the event immediately because we\n * cannot be certain that the event was canceled.\n */\n if (!deferPointerDownOutside || event.button !== 0) {\n handleAndDispatchPointerDownOutsideEvent();\n } else {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener('click', handleClickRef.current, { once: true });\n }\n } else {\n // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener('click', handleClickRef.current);\n resetOutsideInteraction();\n }\n isPointerInsideReactTreeRef.current = false;\n };\n\n const outsideInteractionEvents = [\n 'pointerup',\n 'mousedown',\n 'mouseup',\n 'touchstart',\n 'touchend',\n 'click',\n ];\n\n for (const eventName of outsideInteractionEvents) {\n ownerDocument.addEventListener(eventName, handleInteractionCapture, true);\n ownerDocument.addEventListener(eventName, handleInteractionBubble);\n }\n\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', handleClickRef.current);\n for (const eventName of outsideInteractionEvents) {\n ownerDocument.removeEventListener(eventName, handleInteractionCapture, true);\n ownerDocument.removeEventListener(eventName, handleInteractionBubble);\n }\n };\n }, [\n ownerDocument,\n handlePointerDownOutside,\n deferPointerDownOutside,\n isDeferredPointerDownOutsideRef,\n dismissableSurfaces,\n shouldHandlePointerDownOutside,\n ]);\n\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => (isPointerInsideReactTreeRef.current = true),\n };\n}\n\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\nfunction useFocusOutside(\n onFocusOutside?: (event: FocusOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document,\n) {\n const handleFocusOutside = useCallbackRef(onFocusOutside) as EventListener;\n const isFocusInsideReactTreeRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleFocus = (event: FocusEvent) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false,\n });\n }\n };\n ownerDocument.addEventListener('focusin', handleFocus);\n return () => ownerDocument.removeEventListener('focusin', handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n\n return {\n onFocusCapture: () => (isFocusInsideReactTreeRef.current = true),\n onBlurCapture: () => (isFocusInsideReactTreeRef.current = false),\n };\n}\n\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\n\nfunction handleAndDispatchCustomEvent<E extends CustomEvent, OriginalEvent extends Event>(\n name: string,\n handler: ((event: E) => void) | undefined,\n detail: { originalEvent: OriginalEvent } & (E extends CustomEvent<infer D> ? D : never),\n { discrete }: { discrete: boolean },\n) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler as EventListener, { once: true });\n\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\n\nconst Root = DismissableLayer;\nconst Branch = DismissableLayerBranch;\n\nexport {\n DismissableLayer,\n DismissableLayerBranch,\n useDismissableLayerSurface,\n //\n Root,\n Branch,\n};\nexport type { DismissableLayerProps };\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { DismissableLayer, DismissableLayerBranch, Root, Branch,
2
+ /** @internal */
3
+ useDismissableLayerSurface, } from './dismissable-layer';
4
+ export type { DismissableLayerProps } from './dismissable-layer';
@@ -0,0 +1,95 @@
1
+ import * as React from 'react';
2
+ import { Primitive } from '../react-primitive';
3
+ import * as MenuPrimitive from '../react-menu';
4
+ type Direction = 'ltr' | 'rtl';
5
+ declare const createDropdownMenuScope: import("../react-context").CreateScope;
6
+ interface DropdownMenuProps {
7
+ children?: React.ReactNode;
8
+ dir?: Direction;
9
+ open?: boolean;
10
+ defaultOpen?: boolean;
11
+ onOpenChange?(open: boolean): void;
12
+ modal?: boolean;
13
+ }
14
+ declare const DropdownMenu: React.FC<DropdownMenuProps>;
15
+ type PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;
16
+ interface DropdownMenuTriggerProps extends PrimitiveButtonProps {
17
+ }
18
+ declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
19
+ type MenuPortalProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;
20
+ interface DropdownMenuPortalProps extends MenuPortalProps {
21
+ }
22
+ declare const DropdownMenuPortal: React.FC<DropdownMenuPortalProps>;
23
+ type MenuContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Content>;
24
+ interface DropdownMenuContentProps extends Omit<MenuContentProps, 'onEntryFocus'> {
25
+ }
26
+ declare const DropdownMenuContent: React.ForwardRefExoticComponent<DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>>;
27
+ type MenuGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Group>;
28
+ interface DropdownMenuGroupProps extends MenuGroupProps {
29
+ }
30
+ declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
31
+ type MenuLabelProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Label>;
32
+ interface DropdownMenuLabelProps extends MenuLabelProps {
33
+ }
34
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>>;
35
+ type MenuItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Item>;
36
+ interface DropdownMenuItemProps extends MenuItemProps {
37
+ }
38
+ declare const DropdownMenuItem: React.ForwardRefExoticComponent<DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>>;
39
+ type MenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>;
40
+ interface DropdownMenuCheckboxItemProps extends MenuCheckboxItemProps {
41
+ }
42
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>>;
43
+ type MenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioGroup>;
44
+ interface DropdownMenuRadioGroupProps extends MenuRadioGroupProps {
45
+ }
46
+ declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
47
+ type MenuRadioItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;
48
+ interface DropdownMenuRadioItemProps extends MenuRadioItemProps {
49
+ }
50
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>>;
51
+ type MenuItemIndicatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.ItemIndicator>;
52
+ interface DropdownMenuItemIndicatorProps extends MenuItemIndicatorProps {
53
+ }
54
+ declare const DropdownMenuItemIndicator: React.ForwardRefExoticComponent<DropdownMenuItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
55
+ type MenuSeparatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Separator>;
56
+ interface DropdownMenuSeparatorProps extends MenuSeparatorProps {
57
+ }
58
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>>;
59
+ type MenuArrowProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Arrow>;
60
+ interface DropdownMenuArrowProps extends MenuArrowProps {
61
+ }
62
+ declare const DropdownMenuArrow: React.ForwardRefExoticComponent<DropdownMenuArrowProps & React.RefAttributes<SVGSVGElement>>;
63
+ interface DropdownMenuSubProps {
64
+ children?: React.ReactNode;
65
+ open?: boolean;
66
+ defaultOpen?: boolean;
67
+ onOpenChange?(open: boolean): void;
68
+ }
69
+ declare const DropdownMenuSub: React.FC<DropdownMenuSubProps>;
70
+ type MenuSubTriggerProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubTrigger>;
71
+ interface DropdownMenuSubTriggerProps extends MenuSubTriggerProps {
72
+ }
73
+ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>>;
74
+ type MenuSubContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubContent>;
75
+ interface DropdownMenuSubContentProps extends MenuSubContentProps {
76
+ }
77
+ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>>;
78
+ declare const Root: React.FC<DropdownMenuProps>;
79
+ declare const Trigger: React.ForwardRefExoticComponent<DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
80
+ declare const Portal: React.FC<DropdownMenuPortalProps>;
81
+ declare const Content: React.ForwardRefExoticComponent<DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>>;
82
+ declare const Group: React.ForwardRefExoticComponent<DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
83
+ declare const Label: React.ForwardRefExoticComponent<DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>>;
84
+ declare const Item: React.ForwardRefExoticComponent<DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>>;
85
+ declare const CheckboxItem: React.ForwardRefExoticComponent<DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>>;
86
+ declare const RadioGroup: React.ForwardRefExoticComponent<DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
87
+ declare const RadioItem: React.ForwardRefExoticComponent<DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>>;
88
+ declare const ItemIndicator: React.ForwardRefExoticComponent<DropdownMenuItemIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
89
+ declare const Separator: React.ForwardRefExoticComponent<DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>>;
90
+ declare const Arrow: React.ForwardRefExoticComponent<DropdownMenuArrowProps & React.RefAttributes<SVGSVGElement>>;
91
+ declare const Sub: React.FC<DropdownMenuSubProps>;
92
+ declare const SubTrigger: React.ForwardRefExoticComponent<DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>>;
93
+ declare const SubContent: React.ForwardRefExoticComponent<DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>>;
94
+ export { createDropdownMenuScope, DropdownMenu, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuItemIndicator, DropdownMenuSeparator, DropdownMenuArrow, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, Root, Trigger, Portal, Content, Group, Label, Item, CheckboxItem, RadioGroup, RadioItem, ItemIndicator, Separator, Arrow, Sub, SubTrigger, SubContent, };
95
+ export type { DropdownMenuProps, DropdownMenuTriggerProps, DropdownMenuPortalProps, DropdownMenuContentProps, DropdownMenuGroupProps, DropdownMenuLabelProps, DropdownMenuItemProps, DropdownMenuCheckboxItemProps, DropdownMenuRadioGroupProps, DropdownMenuRadioItemProps, DropdownMenuItemIndicatorProps, DropdownMenuSeparatorProps, DropdownMenuArrowProps, DropdownMenuSubProps, DropdownMenuSubTriggerProps, DropdownMenuSubContentProps, };