@stackframe/stack-ui 2.8.61 → 2.8.63

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 (386) hide show
  1. package/dist/components/action-dialog.js +130 -36
  2. package/dist/components/action-dialog.js.map +1 -0
  3. package/dist/components/brand-icons.js +413 -93
  4. package/dist/components/brand-icons.js.map +1 -0
  5. package/dist/components/browser-frame/index.js +63 -8
  6. package/dist/components/browser-frame/index.js.map +1 -0
  7. package/dist/components/copy-button.js +56 -17
  8. package/dist/components/copy-button.js.map +1 -0
  9. package/dist/components/copy-field.js +68 -12
  10. package/dist/components/copy-field.js.map +1 -0
  11. package/dist/components/data-table/cells.js +121 -50
  12. package/dist/components/data-table/cells.js.map +1 -0
  13. package/dist/components/data-table/column-header.js +62 -7
  14. package/dist/components/data-table/column-header.js.map +1 -0
  15. package/dist/components/data-table/data-table.js +263 -93
  16. package/dist/components/data-table/data-table.js.map +1 -0
  17. package/dist/components/data-table/faceted-filter.js +133 -25
  18. package/dist/components/data-table/faceted-filter.js.map +1 -0
  19. package/dist/components/data-table/index.js +41 -9
  20. package/dist/components/data-table/index.js.map +1 -0
  21. package/dist/components/data-table/pagination.js +89 -9
  22. package/dist/components/data-table/pagination.js.map +1 -0
  23. package/dist/components/data-table/toolbar-items.js +42 -4
  24. package/dist/components/data-table/toolbar-items.js.map +1 -0
  25. package/dist/components/data-table/toolbar.js +114 -44
  26. package/dist/components/data-table/toolbar.js.map +1 -0
  27. package/dist/components/data-table/utils.js +36 -4
  28. package/dist/components/data-table/utils.js.map +1 -0
  29. package/dist/components/data-table/view-options.js +70 -10
  30. package/dist/components/data-table/view-options.js.map +1 -0
  31. package/dist/components/simple-tooltip.js +45 -13
  32. package/dist/components/simple-tooltip.js.map +1 -0
  33. package/dist/components/ui/accordion.js +85 -10
  34. package/dist/components/ui/accordion.js.map +1 -0
  35. package/dist/components/ui/alert.js +75 -17
  36. package/dist/components/ui/alert.js.map +1 -0
  37. package/dist/components/ui/aspect-ratio.js +43 -3
  38. package/dist/components/ui/aspect-ratio.js.map +1 -0
  39. package/dist/components/ui/avatar.js +79 -8
  40. package/dist/components/ui/avatar.js.map +1 -0
  41. package/dist/components/ui/badge.js +51 -17
  42. package/dist/components/ui/badge.js.map +1 -0
  43. package/dist/components/ui/breadcrumb.js +118 -15
  44. package/dist/components/ui/breadcrumb.js.map +1 -0
  45. package/dist/components/ui/button.js +98 -39
  46. package/dist/components/ui/button.js.map +1 -0
  47. package/dist/components/ui/calendar.js +93 -39
  48. package/dist/components/ui/calendar.js.map +1 -0
  49. package/dist/components/ui/card.js +97 -11
  50. package/dist/components/ui/card.js.map +1 -0
  51. package/dist/components/ui/checkbox.js +64 -7
  52. package/dist/components/ui/checkbox.js.map +1 -0
  53. package/dist/components/ui/collapsible.js +49 -5
  54. package/dist/components/ui/collapsible.js.map +1 -0
  55. package/dist/components/ui/command.js +147 -25
  56. package/dist/components/ui/command.js.map +1 -0
  57. package/dist/components/ui/context-menu.js +196 -24
  58. package/dist/components/ui/context-menu.js.map +1 -0
  59. package/dist/components/ui/dialog.js +151 -17
  60. package/dist/components/ui/dialog.js.map +1 -0
  61. package/dist/components/ui/dropdown-menu.js +237 -55
  62. package/dist/components/ui/dropdown-menu.js.map +1 -0
  63. package/dist/components/ui/form.js +142 -53
  64. package/dist/components/ui/form.js.map +1 -0
  65. package/dist/components/ui/hover-card.js +64 -8
  66. package/dist/components/ui/hover-card.js.map +1 -0
  67. package/dist/components/ui/inline-code.js +62 -25
  68. package/dist/components/ui/inline-code.js.map +1 -0
  69. package/dist/components/ui/input-otp.js +87 -14
  70. package/dist/components/ui/input-otp.js.map +1 -0
  71. package/dist/components/ui/input.js +86 -22
  72. package/dist/components/ui/input.js.map +1 -0
  73. package/dist/components/ui/label.js +67 -9
  74. package/dist/components/ui/label.js.map +1 -0
  75. package/dist/components/ui/menubar.js +224 -24
  76. package/dist/components/ui/menubar.js.map +1 -0
  77. package/dist/components/ui/navigation-menu.js +149 -20
  78. package/dist/components/ui/navigation-menu.js.map +1 -0
  79. package/dist/components/ui/password-input.js +79 -11
  80. package/dist/components/ui/password-input.js.map +1 -0
  81. package/dist/components/ui/popover.js +67 -9
  82. package/dist/components/ui/popover.js.map +1 -0
  83. package/dist/components/ui/progress.js +63 -6
  84. package/dist/components/ui/progress.js.map +1 -0
  85. package/dist/components/ui/radio-group.js +70 -10
  86. package/dist/components/ui/radio-group.js.map +1 -0
  87. package/dist/components/ui/resizable.js +78 -8
  88. package/dist/components/ui/resizable.js.map +1 -0
  89. package/dist/components/ui/scroll-area.js +75 -9
  90. package/dist/components/ui/scroll-area.js.map +1 -0
  91. package/dist/components/ui/select.js +166 -20
  92. package/dist/components/ui/select.js.map +1 -0
  93. package/dist/components/ui/separator.js +61 -6
  94. package/dist/components/ui/separator.js.map +1 -0
  95. package/dist/components/ui/sheet.js +153 -27
  96. package/dist/components/ui/sheet.js.map +1 -0
  97. package/dist/components/ui/skeleton.js +46 -5
  98. package/dist/components/ui/skeleton.js.map +1 -0
  99. package/dist/components/ui/slider.js +60 -6
  100. package/dist/components/ui/slider.js.map +1 -0
  101. package/dist/components/ui/spinner.js +36 -6
  102. package/dist/components/ui/spinner.js.map +1 -0
  103. package/dist/components/ui/switch.js +92 -21
  104. package/dist/components/ui/switch.js.map +1 -0
  105. package/dist/components/ui/table.js +117 -12
  106. package/dist/components/ui/table.js.map +1 -0
  107. package/dist/components/ui/tabs.js +85 -9
  108. package/dist/components/ui/tabs.js.map +1 -0
  109. package/dist/components/ui/textarea.js +47 -6
  110. package/dist/components/ui/textarea.js.map +1 -0
  111. package/dist/components/ui/toast.js +135 -25
  112. package/dist/components/ui/toast.js.map +1 -0
  113. package/dist/components/ui/toaster.js +49 -8
  114. package/dist/components/ui/toaster.js.map +1 -0
  115. package/dist/components/ui/toggle-group.js +78 -17
  116. package/dist/components/ui/toggle-group.js.map +1 -0
  117. package/dist/components/ui/toggle.js +73 -21
  118. package/dist/components/ui/toggle.js.map +1 -0
  119. package/dist/components/ui/tooltip.js +72 -9
  120. package/dist/components/ui/tooltip.js.map +1 -0
  121. package/dist/components/ui/typography.js +69 -31
  122. package/dist/components/ui/typography.js.map +1 -0
  123. package/dist/components/ui/use-toast.js +151 -116
  124. package/dist/components/ui/use-toast.js.map +1 -0
  125. package/dist/esm/components/action-dialog.js +97 -0
  126. package/dist/esm/components/action-dialog.js.map +1 -0
  127. package/dist/esm/components/brand-icons.js +390 -0
  128. package/dist/esm/components/brand-icons.js.map +1 -0
  129. package/dist/esm/components/browser-frame/index.js +43 -0
  130. package/dist/esm/components/browser-frame/index.js.map +1 -0
  131. package/dist/esm/components/copy-button.js +35 -0
  132. package/dist/esm/components/copy-button.js.map +1 -0
  133. package/dist/esm/components/copy-field.js +44 -0
  134. package/dist/esm/components/copy-field.js.map +1 -0
  135. package/dist/esm/components/data-table/cells.js +88 -0
  136. package/dist/esm/components/data-table/cells.js.map +1 -0
  137. package/dist/esm/components/data-table/column-header.js +40 -0
  138. package/dist/esm/components/data-table/column-header.js.map +1 -0
  139. package/dist/esm/components/data-table/data-table.js +249 -0
  140. package/dist/esm/components/data-table/data-table.js.map +1 -0
  141. package/dist/esm/components/data-table/faceted-filter.js +117 -0
  142. package/dist/esm/components/data-table/faceted-filter.js.map +1 -0
  143. package/dist/esm/components/data-table/index.js +11 -0
  144. package/dist/esm/components/data-table/index.js.map +1 -0
  145. package/dist/esm/components/data-table/pagination.js +71 -0
  146. package/dist/esm/components/data-table/pagination.js.map +1 -0
  147. package/dist/esm/components/data-table/toolbar-items.js +18 -0
  148. package/dist/esm/components/data-table/toolbar-items.js.map +1 -0
  149. package/dist/esm/components/data-table/toolbar.js +92 -0
  150. package/dist/esm/components/data-table/toolbar.js.map +1 -0
  151. package/dist/esm/components/data-table/utils.js +12 -0
  152. package/dist/esm/components/data-table/utils.js.map +1 -0
  153. package/dist/esm/components/data-table/view-options.js +55 -0
  154. package/dist/esm/components/data-table/view-options.js.map +1 -0
  155. package/dist/esm/components/simple-tooltip.js +21 -0
  156. package/dist/esm/components/simple-tooltip.js.map +1 -0
  157. package/dist/esm/components/ui/accordion.js +52 -0
  158. package/dist/esm/components/ui/accordion.js.map +1 -0
  159. package/dist/esm/components/ui/alert.js +54 -0
  160. package/dist/esm/components/ui/alert.js.map +1 -0
  161. package/dist/esm/components/ui/aspect-ratio.js +10 -0
  162. package/dist/esm/components/ui/aspect-ratio.js.map +1 -0
  163. package/dist/esm/components/ui/avatar.js +47 -0
  164. package/dist/esm/components/ui/avatar.js.map +1 -0
  165. package/dist/esm/components/ui/badge.js +30 -0
  166. package/dist/esm/components/ui/badge.js.map +1 -0
  167. package/dist/esm/components/ui/breadcrumb.js +95 -0
  168. package/dist/esm/components/ui/breadcrumb.js.map +1 -0
  169. package/dist/esm/components/ui/button.js +79 -0
  170. package/dist/esm/components/ui/button.js.map +1 -0
  171. package/dist/esm/components/ui/calendar.js +72 -0
  172. package/dist/esm/components/ui/calendar.js.map +1 -0
  173. package/dist/esm/components/ui/card.js +72 -0
  174. package/dist/esm/components/ui/card.js.map +1 -0
  175. package/dist/esm/components/ui/checkbox.js +32 -0
  176. package/dist/esm/components/ui/checkbox.js.map +1 -0
  177. package/dist/esm/components/ui/collapsible.js +14 -0
  178. package/dist/esm/components/ui/collapsible.js.map +1 -0
  179. package/dist/esm/components/ui/command.js +119 -0
  180. package/dist/esm/components/ui/command.js.map +1 -0
  181. package/dist/esm/components/ui/context-menu.js +162 -0
  182. package/dist/esm/components/ui/context-menu.js.map +1 -0
  183. package/dist/esm/components/ui/dialog.js +114 -0
  184. package/dist/esm/components/ui/dialog.js.map +1 -0
  185. package/dist/esm/components/ui/dropdown-menu.js +200 -0
  186. package/dist/esm/components/ui/dropdown-menu.js.map +1 -0
  187. package/dist/esm/components/ui/form.js +118 -0
  188. package/dist/esm/components/ui/form.js.map +1 -0
  189. package/dist/esm/components/ui/hover-card.js +30 -0
  190. package/dist/esm/components/ui/hover-card.js.map +1 -0
  191. package/dist/esm/components/ui/inline-code.js +42 -0
  192. package/dist/esm/components/ui/inline-code.js.map +1 -0
  193. package/dist/esm/components/ui/input-otp.js +56 -0
  194. package/dist/esm/components/ui/input-otp.js.map +1 -0
  195. package/dist/esm/components/ui/input.js +57 -0
  196. package/dist/esm/components/ui/input.js.map +1 -0
  197. package/dist/esm/components/ui/label.js +35 -0
  198. package/dist/esm/components/ui/label.js.map +1 -0
  199. package/dist/esm/components/ui/menubar.js +192 -0
  200. package/dist/esm/components/ui/menubar.js.map +1 -0
  201. package/dist/esm/components/ui/navigation-menu.js +112 -0
  202. package/dist/esm/components/ui/navigation-menu.js.map +1 -0
  203. package/dist/esm/components/ui/password-input.js +58 -0
  204. package/dist/esm/components/ui/password-input.js.map +1 -0
  205. package/dist/esm/components/ui/popover.js +32 -0
  206. package/dist/esm/components/ui/popover.js.map +1 -0
  207. package/dist/esm/components/ui/progress.js +31 -0
  208. package/dist/esm/components/ui/progress.js.map +1 -0
  209. package/dist/esm/components/ui/radio-group.js +40 -0
  210. package/dist/esm/components/ui/radio-group.js.map +1 -0
  211. package/dist/esm/components/ui/resizable.js +43 -0
  212. package/dist/esm/components/ui/resizable.js.map +1 -0
  213. package/dist/esm/components/ui/scroll-area.js +43 -0
  214. package/dist/esm/components/ui/scroll-area.js.map +1 -0
  215. package/dist/esm/components/ui/select.js +135 -0
  216. package/dist/esm/components/ui/select.js.map +1 -0
  217. package/dist/esm/components/ui/separator.js +29 -0
  218. package/dist/esm/components/ui/separator.js.map +1 -0
  219. package/dist/esm/components/ui/sheet.js +120 -0
  220. package/dist/esm/components/ui/sheet.js.map +1 -0
  221. package/dist/esm/components/ui/skeleton.js +24 -0
  222. package/dist/esm/components/ui/skeleton.js.map +1 -0
  223. package/dist/esm/components/ui/slider.js +28 -0
  224. package/dist/esm/components/ui/slider.js.map +1 -0
  225. package/dist/esm/components/ui/spinner.js +13 -0
  226. package/dist/esm/components/ui/spinner.js.map +1 -0
  227. package/dist/esm/components/ui/switch.js +62 -0
  228. package/dist/esm/components/ui/switch.js.map +1 -0
  229. package/dist/esm/components/ui/table.js +93 -0
  230. package/dist/esm/components/ui/table.js.map +1 -0
  231. package/dist/esm/components/ui/tabs.js +52 -0
  232. package/dist/esm/components/ui/tabs.js.map +1 -0
  233. package/dist/esm/components/ui/textarea.js +24 -0
  234. package/dist/esm/components/ui/textarea.js.map +1 -0
  235. package/dist/esm/components/ui/toast.js +105 -0
  236. package/dist/esm/components/ui/toast.js.map +1 -0
  237. package/dist/esm/components/ui/toaster.js +34 -0
  238. package/dist/esm/components/ui/toaster.js.map +1 -0
  239. package/dist/esm/components/ui/toggle-group.js +48 -0
  240. package/dist/esm/components/ui/toggle-group.js.map +1 -0
  241. package/dist/esm/components/ui/toggle.js +43 -0
  242. package/dist/esm/components/ui/toggle.js.map +1 -0
  243. package/dist/esm/components/ui/tooltip.js +38 -0
  244. package/dist/esm/components/ui/tooltip.js.map +1 -0
  245. package/dist/esm/components/ui/typography.js +47 -0
  246. package/dist/esm/components/ui/typography.js.map +1 -0
  247. package/dist/esm/components/ui/use-toast.js +130 -0
  248. package/dist/esm/components/ui/use-toast.js.map +1 -0
  249. package/dist/esm/index.js +59 -0
  250. package/dist/esm/index.js.map +1 -0
  251. package/dist/esm/lib/utils.js +10 -0
  252. package/dist/esm/lib/utils.js.map +1 -0
  253. package/dist/index.d.mts +967 -0
  254. package/dist/index.d.ts +967 -54
  255. package/dist/index.js +147 -53
  256. package/dist/index.js.map +1 -0
  257. package/dist/lib/utils.js +34 -4
  258. package/dist/lib/utils.js.map +1 -0
  259. package/package.json +10 -5
  260. package/dist/components/action-dialog.d.ts +0 -28
  261. package/dist/components/action-dialog.d.ts.map +0 -1
  262. package/dist/components/brand-icons.d.ts +0 -43
  263. package/dist/components/brand-icons.d.ts.map +0 -1
  264. package/dist/components/browser-frame/index.d.ts +0 -10
  265. package/dist/components/browser-frame/index.d.ts.map +0 -1
  266. package/dist/components/copy-button.d.ts +0 -17
  267. package/dist/components/copy-button.d.ts.map +0 -1
  268. package/dist/components/copy-field.d.ts +0 -13
  269. package/dist/components/copy-field.d.ts.map +0 -1
  270. package/dist/components/data-table/cells.d.ts +0 -31
  271. package/dist/components/data-table/cells.d.ts.map +0 -1
  272. package/dist/components/data-table/column-header.d.ts +0 -8
  273. package/dist/components/data-table/column-header.d.ts.map +0 -1
  274. package/dist/components/data-table/data-table.d.ts +0 -36
  275. package/dist/components/data-table/data-table.d.ts.map +0 -1
  276. package/dist/components/data-table/faceted-filter.d.ts +0 -16
  277. package/dist/components/data-table/faceted-filter.d.ts.map +0 -1
  278. package/dist/components/data-table/index.d.ts +0 -10
  279. package/dist/components/data-table/index.d.ts.map +0 -1
  280. package/dist/components/data-table/pagination.d.ts +0 -7
  281. package/dist/components/data-table/pagination.d.ts.map +0 -1
  282. package/dist/components/data-table/toolbar-items.d.ts +0 -8
  283. package/dist/components/data-table/toolbar-items.d.ts.map +0 -1
  284. package/dist/components/data-table/toolbar.d.ts +0 -12
  285. package/dist/components/data-table/toolbar.d.ts.map +0 -1
  286. package/dist/components/data-table/utils.d.ts +0 -3
  287. package/dist/components/data-table/utils.d.ts.map +0 -1
  288. package/dist/components/data-table/view-options.d.ts +0 -7
  289. package/dist/components/data-table/view-options.d.ts.map +0 -1
  290. package/dist/components/simple-tooltip.d.ts +0 -9
  291. package/dist/components/simple-tooltip.d.ts.map +0 -1
  292. package/dist/components/ui/accordion.d.ts +0 -14
  293. package/dist/components/ui/accordion.d.ts.map +0 -1
  294. package/dist/components/ui/alert.d.ts +0 -15
  295. package/dist/components/ui/alert.d.ts.map +0 -1
  296. package/dist/components/ui/aspect-ratio.d.ts +0 -4
  297. package/dist/components/ui/aspect-ratio.d.ts.map +0 -1
  298. package/dist/components/ui/avatar.d.ts +0 -13
  299. package/dist/components/ui/avatar.d.ts.map +0 -1
  300. package/dist/components/ui/badge.d.ts +0 -13
  301. package/dist/components/ui/badge.d.ts.map +0 -1
  302. package/dist/components/ui/breadcrumb.d.ts +0 -30
  303. package/dist/components/ui/breadcrumb.d.ts.map +0 -1
  304. package/dist/components/ui/button.d.ts +0 -28
  305. package/dist/components/ui/button.d.ts.map +0 -1
  306. package/dist/components/ui/calendar.d.ts +0 -9
  307. package/dist/components/ui/calendar.d.ts.map +0 -1
  308. package/dist/components/ui/card.d.ts +0 -23
  309. package/dist/components/ui/card.d.ts.map +0 -1
  310. package/dist/components/ui/checkbox.d.ts +0 -7
  311. package/dist/components/ui/checkbox.d.ts.map +0 -1
  312. package/dist/components/ui/collapsible.d.ts +0 -6
  313. package/dist/components/ui/collapsible.d.ts.map +0 -1
  314. package/dist/components/ui/command.d.ts +0 -18
  315. package/dist/components/ui/command.d.ts.map +0 -1
  316. package/dist/components/ui/context-menu.d.ts +0 -44
  317. package/dist/components/ui/context-menu.d.ts.map +0 -1
  318. package/dist/components/ui/dialog.d.ts +0 -34
  319. package/dist/components/ui/dialog.d.ts.map +0 -1
  320. package/dist/components/ui/dropdown-menu.d.ts +0 -47
  321. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  322. package/dist/components/ui/form.d.ts +0 -34
  323. package/dist/components/ui/form.d.ts.map +0 -1
  324. package/dist/components/ui/hover-card.d.ts +0 -9
  325. package/dist/components/ui/hover-card.d.ts.map +0 -1
  326. package/dist/components/ui/inline-code.d.ts +0 -6
  327. package/dist/components/ui/inline-code.d.ts.map +0 -1
  328. package/dist/components/ui/input-otp.d.ts +0 -17
  329. package/dist/components/ui/input-otp.d.ts.map +0 -1
  330. package/dist/components/ui/input.d.ts +0 -20
  331. package/dist/components/ui/input.d.ts.map +0 -1
  332. package/dist/components/ui/label.d.ts +0 -11
  333. package/dist/components/ui/label.d.ts.map +0 -1
  334. package/dist/components/ui/menubar.d.ts +0 -31
  335. package/dist/components/ui/menubar.d.ts.map +0 -1
  336. package/dist/components/ui/navigation-menu.d.ts +0 -25
  337. package/dist/components/ui/navigation-menu.d.ts.map +0 -1
  338. package/dist/components/ui/password-input.d.ts +0 -7
  339. package/dist/components/ui/password-input.d.ts.map +0 -1
  340. package/dist/components/ui/popover.d.ts +0 -10
  341. package/dist/components/ui/popover.d.ts.map +0 -1
  342. package/dist/components/ui/progress.d.ts +0 -7
  343. package/dist/components/ui/progress.d.ts.map +0 -1
  344. package/dist/components/ui/radio-group.d.ts +0 -10
  345. package/dist/components/ui/radio-group.d.ts.map +0 -1
  346. package/dist/components/ui/resizable.d.ts +0 -37
  347. package/dist/components/ui/resizable.d.ts.map +0 -1
  348. package/dist/components/ui/scroll-area.d.ts +0 -10
  349. package/dist/components/ui/scroll-area.d.ts.map +0 -1
  350. package/dist/components/ui/select.d.ts +0 -30
  351. package/dist/components/ui/select.d.ts.map +0 -1
  352. package/dist/components/ui/separator.d.ts +0 -7
  353. package/dist/components/ui/separator.d.ts.map +0 -1
  354. package/dist/components/ui/sheet.d.ts +0 -33
  355. package/dist/components/ui/sheet.d.ts.map +0 -1
  356. package/dist/components/ui/skeleton.d.ts +0 -4
  357. package/dist/components/ui/skeleton.d.ts.map +0 -1
  358. package/dist/components/ui/slider.d.ts +0 -7
  359. package/dist/components/ui/slider.d.ts.map +0 -1
  360. package/dist/components/ui/spinner.d.ts +0 -7
  361. package/dist/components/ui/spinner.d.ts.map +0 -1
  362. package/dist/components/ui/switch.d.ts +0 -11
  363. package/dist/components/ui/switch.d.ts.map +0 -1
  364. package/dist/components/ui/table.d.ts +0 -27
  365. package/dist/components/ui/table.d.ts.map +0 -1
  366. package/dist/components/ui/tabs.d.ts +0 -14
  367. package/dist/components/ui/tabs.d.ts.map +0 -1
  368. package/dist/components/ui/textarea.d.ts +0 -7
  369. package/dist/components/ui/textarea.d.ts.map +0 -1
  370. package/dist/components/ui/toast.d.ts +0 -28
  371. package/dist/components/ui/toast.d.ts.map +0 -1
  372. package/dist/components/ui/toaster.d.ts +0 -2
  373. package/dist/components/ui/toaster.d.ts.map +0 -1
  374. package/dist/components/ui/toggle-group.d.ts +0 -17
  375. package/dist/components/ui/toggle-group.d.ts.map +0 -1
  376. package/dist/components/ui/toggle.d.ts +0 -15
  377. package/dist/components/ui/toggle.d.ts.map +0 -1
  378. package/dist/components/ui/tooltip.d.ts +0 -12
  379. package/dist/components/ui/tooltip.d.ts.map +0 -1
  380. package/dist/components/ui/typography.d.ts +0 -10
  381. package/dist/components/ui/typography.d.ts.map +0 -1
  382. package/dist/components/ui/use-toast.d.ts +0 -45
  383. package/dist/components/ui/use-toast.d.ts.map +0 -1
  384. package/dist/index.d.ts.map +0 -1
  385. package/dist/lib/utils.d.ts +0 -3
  386. package/dist/lib/utils.d.ts.map +0 -1
@@ -0,0 +1,162 @@
1
+ "use client";
2
+ "use client";
3
+
4
+ // src/components/ui/context-menu.tsx
5
+ import { forwardRefIfNeeded } from "@stackframe/stack-shared/dist/utils/react";
6
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
7
+ import {
8
+ CheckIcon,
9
+ ChevronRightIcon,
10
+ DotFilledIcon
11
+ } from "@radix-ui/react-icons";
12
+ import { cn } from "../../lib/utils.js";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ var ContextMenu = ContextMenuPrimitive.Root;
15
+ var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
16
+ var ContextMenuGroup = ContextMenuPrimitive.Group;
17
+ var ContextMenuPortal = ContextMenuPrimitive.Portal;
18
+ var ContextMenuSub = ContextMenuPrimitive.Sub;
19
+ var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
20
+ var ContextMenuSubTrigger = forwardRefIfNeeded(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
21
+ ContextMenuPrimitive.SubTrigger,
22
+ {
23
+ ref,
24
+ className: cn(
25
+ "stack-scope flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
26
+ inset && "pl-8",
27
+ className
28
+ ),
29
+ ...props,
30
+ children: [
31
+ children,
32
+ /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto h-4 w-4" })
33
+ ]
34
+ }
35
+ ));
36
+ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
37
+ var ContextMenuSubContent = forwardRefIfNeeded(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
38
+ ContextMenuPrimitive.SubContent,
39
+ {
40
+ ref,
41
+ className: cn(
42
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
43
+ className
44
+ ),
45
+ ...props
46
+ }
47
+ ));
48
+ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
49
+ var ContextMenuContent = forwardRefIfNeeded(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
50
+ ContextMenuPrimitive.Content,
51
+ {
52
+ ref,
53
+ className: cn(
54
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
55
+ className
56
+ ),
57
+ ...props
58
+ }
59
+ ) }));
60
+ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
61
+ var ContextMenuItem = forwardRefIfNeeded(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
62
+ ContextMenuPrimitive.Item,
63
+ {
64
+ ref,
65
+ className: cn(
66
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
67
+ inset && "pl-8",
68
+ className
69
+ ),
70
+ ...props
71
+ }
72
+ ));
73
+ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
74
+ var ContextMenuCheckboxItem = forwardRefIfNeeded(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
75
+ ContextMenuPrimitive.CheckboxItem,
76
+ {
77
+ ref,
78
+ className: cn(
79
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
80
+ className
81
+ ),
82
+ checked,
83
+ ...props,
84
+ children: [
85
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "h-4 w-4" }) }) }),
86
+ children
87
+ ]
88
+ }
89
+ ));
90
+ ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
91
+ var ContextMenuRadioItem = forwardRefIfNeeded(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
92
+ ContextMenuPrimitive.RadioItem,
93
+ {
94
+ ref,
95
+ className: cn(
96
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
97
+ className
98
+ ),
99
+ ...props,
100
+ children: [
101
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
102
+ children
103
+ ]
104
+ }
105
+ ));
106
+ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
107
+ var ContextMenuLabel = forwardRefIfNeeded(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
108
+ ContextMenuPrimitive.Label,
109
+ {
110
+ ref,
111
+ className: cn(
112
+ "px-2 py-1.5 text-sm font-semibold text-foreground",
113
+ inset && "pl-8",
114
+ className
115
+ ),
116
+ ...props
117
+ }
118
+ ));
119
+ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
120
+ var ContextMenuSeparator = forwardRefIfNeeded(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
121
+ ContextMenuPrimitive.Separator,
122
+ {
123
+ ref,
124
+ className: cn("-mx-1 my-1 h-px bg-border", className),
125
+ ...props
126
+ }
127
+ ));
128
+ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
129
+ var ContextMenuShortcut = ({
130
+ className,
131
+ ...props
132
+ }) => {
133
+ return /* @__PURE__ */ jsx(
134
+ "span",
135
+ {
136
+ className: cn(
137
+ "ml-auto text-xs tracking-widest text-muted-foreground",
138
+ className
139
+ ),
140
+ ...props
141
+ }
142
+ );
143
+ };
144
+ ContextMenuShortcut.displayName = "ContextMenuShortcut";
145
+ export {
146
+ ContextMenu,
147
+ ContextMenuCheckboxItem,
148
+ ContextMenuContent,
149
+ ContextMenuGroup,
150
+ ContextMenuItem,
151
+ ContextMenuLabel,
152
+ ContextMenuPortal,
153
+ ContextMenuRadioGroup,
154
+ ContextMenuRadioItem,
155
+ ContextMenuSeparator,
156
+ ContextMenuShortcut,
157
+ ContextMenuSub,
158
+ ContextMenuSubContent,
159
+ ContextMenuSubTrigger,
160
+ ContextMenuTrigger
161
+ };
162
+ //# sourceMappingURL=context-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/context-menu.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { forwardRefIfNeeded } from \"@stackframe/stack-shared/dist/utils/react\";\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport {\n CheckIcon,\n ChevronRightIcon,\n DotFilledIcon,\n} from \"@radix-ui/react-icons\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst ContextMenu = ContextMenuPrimitive.Root;\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\nconst ContextMenuSubTrigger = forwardRefIfNeeded<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean,\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"stack-scope flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;\n\nconst ContextMenuSubContent = forwardRefIfNeeded<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n));\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;\n\nconst ContextMenuContent = forwardRefIfNeeded<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n));\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;\n\nconst ContextMenuItem = forwardRefIfNeeded<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean,\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;\n\nconst ContextMenuCheckboxItem = forwardRefIfNeeded<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName =\n ContextMenuPrimitive.CheckboxItem.displayName;\n\nconst ContextMenuRadioItem = forwardRefIfNeeded<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <DotFilledIcon className=\"h-4 w-4 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;\n\nconst ContextMenuLabel = forwardRefIfNeeded<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean,\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-foreground\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;\n\nconst ContextMenuSeparator = forwardRefIfNeeded<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;\n\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n );\n};\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,114 @@
1
+ "use client";
2
+ "use client";
3
+
4
+ // src/components/ui/dialog.tsx
5
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
6
+ import { Cross2Icon } from "@radix-ui/react-icons";
7
+ import { forwardRefIfNeeded } from "@stackframe/stack-shared/dist/utils/react";
8
+ import { cn } from "../../lib/utils.js";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
+ var Dialog = DialogPrimitive.Root;
11
+ var DialogTrigger = DialogPrimitive.Trigger;
12
+ var DialogPortal = DialogPrimitive.Portal;
13
+ var DialogClose = DialogPrimitive.Close;
14
+ var DialogOverlay = forwardRefIfNeeded(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
15
+ DialogPrimitive.Overlay,
16
+ {
17
+ ref,
18
+ className: cn(
19
+ "stack-scope fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in",
20
+ className
21
+ ),
22
+ ...props
23
+ }
24
+ ));
25
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
26
+ var DialogContent = forwardRefIfNeeded(({ className, children, overlayProps, noCloseButton, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
27
+ /* @__PURE__ */ jsx(DialogOverlay, { ...overlayProps }),
28
+ /* @__PURE__ */ jsxs(
29
+ DialogPrimitive.Content,
30
+ {
31
+ ref,
32
+ className: cn(
33
+ "stack-scope fixed left-[50%] top-[50%] max-h-screen z-50 flex flex-col w-full max-w-lg translate-x-[-50%] translate-y-[-50%] border bg-background p-6 shadow-lg duration-100 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
34
+ className
35
+ ),
36
+ ...props,
37
+ children: [
38
+ children,
39
+ !noCloseButton && /* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
40
+ /* @__PURE__ */ jsx(Cross2Icon, { className: "h-4 w-4" }),
41
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
42
+ ] })
43
+ ]
44
+ }
45
+ )
46
+ ] }));
47
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
48
+ var DialogBody = ({
49
+ className,
50
+ ...props
51
+ }) => /* @__PURE__ */ jsx("div", { className: cn("stack-scope overflow-y-auto flex flex-col gap-4 w-[calc(100%+3rem)] -mx-6 px-6 my-2 py-2", className), ...props });
52
+ var DialogHeader = ({
53
+ className,
54
+ ...props
55
+ }) => /* @__PURE__ */ jsx(
56
+ "div",
57
+ {
58
+ className: cn(
59
+ "stack-scope flex flex-col space-y-1.5 text-center sm:text-left",
60
+ className
61
+ ),
62
+ ...props
63
+ }
64
+ );
65
+ DialogHeader.displayName = "DialogHeader";
66
+ var DialogFooter = ({
67
+ className,
68
+ ...props
69
+ }) => /* @__PURE__ */ jsx(
70
+ "div",
71
+ {
72
+ className: cn(
73
+ "stack-scope flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
74
+ className
75
+ ),
76
+ ...props
77
+ }
78
+ );
79
+ DialogFooter.displayName = "DialogFooter";
80
+ var DialogTitle = forwardRefIfNeeded(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
81
+ DialogPrimitive.Title,
82
+ {
83
+ ref,
84
+ className: cn(
85
+ "stack-scope text-lg font-semibold leading-none tracking-tight",
86
+ className
87
+ ),
88
+ ...props
89
+ }
90
+ ));
91
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
92
+ var DialogDescription = forwardRefIfNeeded(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
93
+ DialogPrimitive.Description,
94
+ {
95
+ ref,
96
+ className: cn("stack-scope text-sm text-muted-foreground", className),
97
+ ...props
98
+ }
99
+ ));
100
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
101
+ export {
102
+ Dialog,
103
+ DialogBody,
104
+ DialogClose,
105
+ DialogContent,
106
+ DialogDescription,
107
+ DialogFooter,
108
+ DialogHeader,
109
+ DialogOverlay,
110
+ DialogPortal,
111
+ DialogTitle,
112
+ DialogTrigger
113
+ };
114
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { Cross2Icon } from \"@radix-ui/react-icons\";\nimport { forwardRefIfNeeded } from \"@stackframe/stack-shared/dist/utils/react\";\nimport React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = forwardRefIfNeeded<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"stack-scope fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in\",\n className\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = forwardRefIfNeeded<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n overlayProps?: React.ComponentPropsWithoutRef<typeof DialogOverlay>,\n noCloseButton?: boolean,\n }\n>(({ className, children, overlayProps, noCloseButton, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay {...overlayProps} />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"stack-scope fixed left-[50%] top-[50%] max-h-screen z-50 flex flex-col w-full max-w-lg translate-x-[-50%] translate-y-[-50%] border bg-background p-6 shadow-lg duration-100 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n {!noCloseButton && <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <Cross2Icon className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>}\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogBody = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"stack-scope overflow-y-auto flex flex-col gap-4 w-[calc(100%+3rem)] -mx-6 px-6 my-2 py-2\", className)} {...props} />\n);\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"stack-scope flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"stack-scope flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = forwardRefIfNeeded<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"stack-scope text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = forwardRefIfNeeded<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"stack-scope text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogBody,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger\n};\n\n"],"mappings":";;;AAEA,YAAY,qBAAqB;AACjC,SAAS,kBAAkB;AAC3B,SAAS,0BAA0B;AAGnC,SAAS,UAAU;AAcjB,cA6BuB,YA7BvB;AAZF,IAAM,SAAyB;AAE/B,IAAM,gBAAgC;AAEtC,IAAM,eAA+B;AAErC,IAAM,cAA8B;AAEpC,IAAM,gBAAgB,mBAGpB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,cAAc,cAA8B,wBAAQ;AAEpD,IAAM,gBAAgB,mBAMpB,CAAC,EAAE,WAAW,UAAU,cAAc,eAAe,GAAG,MAAM,GAAG,QACjE,qBAAC,gBACC;AAAA,sBAAC,iBAAe,GAAG,cAAc;AAAA,EACjC;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACA,CAAC,iBAAiB,qBAAiB,uBAAhB,EAAsB,WAAU,iRAClD;AAAA,8BAAC,cAAW,WAAU,WAAU;AAAA,UAChC,oBAAC,UAAK,WAAU,WAAU,mBAAK;AAAA,WACjC;AAAA;AAAA;AAAA,EACF;AAAA,GACF,CACD;AACD,cAAc,cAA8B,wBAAQ;AAEpD,IAAM,aAAa,CAAC;AAAA,EAClB;AAAA,EACA,GAAG;AACL,MACE,oBAAC,SAAI,WAAW,GAAG,4FAA4F,SAAS,GAAI,GAAG,OAAO;AAGxI,IAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,aAAa,cAAc;AAE3B,IAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN;AAEF,aAAa,cAAc;AAE3B,IAAM,cAAc,mBAGlB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAA8B,sBAAM;AAEhD,IAAM,oBAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,6CAA6C,SAAS;AAAA,IACnE,GAAG;AAAA;AACN,CACD;AACD,kBAAkB,cAA8B,4BAAY;","names":[]}
@@ -0,0 +1,200 @@
1
+ "use client";
2
+ "use client";
3
+
4
+ // src/components/ui/dropdown-menu.tsx
5
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
6
+ import { CheckIcon, ChevronRightIcon, DotFilledIcon } from "@radix-ui/react-icons";
7
+ import { forwardRefIfNeeded } from "@stackframe/stack-shared/dist/utils/react";
8
+ import React from "react";
9
+ import { useAsyncCallback } from "@stackframe/stack-shared/dist/hooks/use-async-callback";
10
+ import { throwErr } from "@stackframe/stack-shared/dist/utils/errors";
11
+ import { runAsynchronouslyWithAlert } from "@stackframe/stack-shared/dist/utils/promises";
12
+ import { cn } from "../../lib/utils.js";
13
+ import { Spinner } from "./spinner.js";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ var DropdownMenuContext = React.createContext(void 0);
16
+ var DropdownMenu = forwardRefIfNeeded(({ ...props }, ref) => {
17
+ const [open, setOpen] = React.useState(!!props.open);
18
+ return /* @__PURE__ */ jsx(DropdownMenuContext.Provider, { value: {
19
+ open,
20
+ setOpen: (o) => {
21
+ props.onOpenChange?.(o);
22
+ setOpen(o);
23
+ }
24
+ }, children: /* @__PURE__ */ jsx(
25
+ DropdownMenuPrimitive.Root,
26
+ {
27
+ ...props,
28
+ open: props.open ?? open,
29
+ onOpenChange: (o) => {
30
+ props.onOpenChange?.(o);
31
+ setOpen(o);
32
+ }
33
+ }
34
+ ) });
35
+ });
36
+ DropdownMenu.displayName = DropdownMenuPrimitive.Root.displayName;
37
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
38
+ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
39
+ var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
40
+ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
41
+ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
42
+ var DropdownMenuSubTrigger = forwardRefIfNeeded(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
43
+ DropdownMenuPrimitive.SubTrigger,
44
+ {
45
+ ref,
46
+ className: cn(
47
+ "stack-scope flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
48
+ inset && "pl-8",
49
+ className
50
+ ),
51
+ ...props,
52
+ children: [
53
+ children,
54
+ /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto h-4 w-4" })
55
+ ]
56
+ }
57
+ ));
58
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
59
+ var DropdownMenuSubContent = forwardRefIfNeeded(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
60
+ DropdownMenuPrimitive.SubContent,
61
+ {
62
+ ref,
63
+ className: cn(
64
+ "stack-scope z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
65
+ className
66
+ ),
67
+ ...props
68
+ }
69
+ ));
70
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
71
+ var DropdownMenuContent = forwardRefIfNeeded(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
72
+ DropdownMenuPrimitive.Content,
73
+ {
74
+ ref,
75
+ sideOffset,
76
+ className: cn(
77
+ "stack-scope z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
78
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
79
+ className
80
+ ),
81
+ ...props
82
+ }
83
+ ) }));
84
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
85
+ var DropdownMenuItem = forwardRefIfNeeded(({ className, inset, ...props }, ref) => {
86
+ const { setOpen } = React.useContext(DropdownMenuContext) ?? throwErr("No DropdownMenuContext found");
87
+ const [handleClick, isLoading] = useAsyncCallback(async (e) => {
88
+ await props.onClick?.(e);
89
+ setOpen(false);
90
+ }, [props.onClick]);
91
+ return /* @__PURE__ */ jsxs(
92
+ DropdownMenuPrimitive.Item,
93
+ {
94
+ ref,
95
+ className: cn(
96
+ "stack-scope relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
97
+ inset && "pl-8",
98
+ className
99
+ ),
100
+ ...props,
101
+ disabled: isLoading || props.disabled,
102
+ onClick: props.onClick ? (e) => {
103
+ e.preventDefault();
104
+ e.stopPropagation();
105
+ runAsynchronouslyWithAlert(handleClick(e));
106
+ } : void 0,
107
+ children: [
108
+ /* @__PURE__ */ jsx("div", { style: { visibility: isLoading ? "visible" : "hidden", position: "absolute", inset: 0, display: "flex", justifyContent: "center", alignItems: "center" }, children: /* @__PURE__ */ jsx(Spinner, {}) }),
109
+ /* @__PURE__ */ jsx("div", { style: { visibility: isLoading ? "hidden" : "visible" }, children: props.children })
110
+ ]
111
+ }
112
+ );
113
+ });
114
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
115
+ var DropdownMenuCheckboxItem = forwardRefIfNeeded(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
116
+ DropdownMenuPrimitive.CheckboxItem,
117
+ {
118
+ ref,
119
+ className: cn(
120
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
121
+ className
122
+ ),
123
+ checked,
124
+ ...props,
125
+ children: [
126
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "h-4 w-4" }) }) }),
127
+ children
128
+ ]
129
+ }
130
+ ));
131
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
132
+ var DropdownMenuRadioItem = forwardRefIfNeeded(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
133
+ DropdownMenuPrimitive.RadioItem,
134
+ {
135
+ ref,
136
+ className: cn(
137
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
138
+ className
139
+ ),
140
+ ...props,
141
+ children: [
142
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(DotFilledIcon, { className: "h-4 w-4 fill-current" }) }) }),
143
+ children
144
+ ]
145
+ }
146
+ ));
147
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
148
+ var DropdownMenuLabel = forwardRefIfNeeded(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
149
+ DropdownMenuPrimitive.Label,
150
+ {
151
+ ref,
152
+ className: cn(
153
+ "px-2 py-1.5 text-sm font-semibold",
154
+ inset && "pl-8",
155
+ className
156
+ ),
157
+ ...props
158
+ }
159
+ ));
160
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
161
+ var DropdownMenuSeparator = forwardRefIfNeeded(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
162
+ DropdownMenuPrimitive.Separator,
163
+ {
164
+ ref,
165
+ className: cn("-mx-1 my-1 h-px bg-muted", className),
166
+ ...props
167
+ }
168
+ ));
169
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
170
+ var DropdownMenuShortcut = ({
171
+ className,
172
+ ...props
173
+ }) => {
174
+ return /* @__PURE__ */ jsx(
175
+ "span",
176
+ {
177
+ className: cn("stack-scope ml-auto text-xs tracking-widest opacity-60", className),
178
+ ...props
179
+ }
180
+ );
181
+ };
182
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
183
+ export {
184
+ DropdownMenu,
185
+ DropdownMenuCheckboxItem,
186
+ DropdownMenuContent,
187
+ DropdownMenuGroup,
188
+ DropdownMenuItem,
189
+ DropdownMenuLabel,
190
+ DropdownMenuPortal,
191
+ DropdownMenuRadioGroup,
192
+ DropdownMenuRadioItem,
193
+ DropdownMenuSeparator,
194
+ DropdownMenuShortcut,
195
+ DropdownMenuSub,
196
+ DropdownMenuSubContent,
197
+ DropdownMenuSubTrigger,
198
+ DropdownMenuTrigger
199
+ };
200
+ //# sourceMappingURL=dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/dropdown-menu.tsx"],"sourcesContent":["\"use client\";\n\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { CheckIcon, ChevronRightIcon, DotFilledIcon } from \"@radix-ui/react-icons\";\nimport { forwardRefIfNeeded } from \"@stackframe/stack-shared/dist/utils/react\";\nimport React from \"react\";\n\nimport { useAsyncCallback } from \"@stackframe/stack-shared/dist/hooks/use-async-callback\";\nimport { throwErr } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { runAsynchronouslyWithAlert } from \"@stackframe/stack-shared/dist/utils/promises\";\nimport { cn } from \"../../lib/utils\";\nimport { Spinner } from \"./spinner\";\n\nconst DropdownMenuContext = React.createContext<{\n open: boolean,\n setOpen: (open: boolean) => void,\n} | undefined>(undefined);\n\nconst DropdownMenu = forwardRefIfNeeded<\n React.ElementRef<typeof DropdownMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root>\n>(({ ...props }, ref) => {\n const [open, setOpen] = React.useState(!!props.open);\n\n return (\n <DropdownMenuContext.Provider value={{\n open,\n setOpen: (o) => {\n props.onOpenChange?.(o);\n setOpen(o);\n }\n }}>\n <DropdownMenuPrimitive.Root\n {...props}\n open={props.open ?? open}\n onOpenChange={o => {\n props.onOpenChange?.(o);\n setOpen(o);\n }}\n />\n </DropdownMenuContext.Provider>\n );\n});\nDropdownMenu.displayName = DropdownMenuPrimitive.Root.displayName;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = forwardRefIfNeeded<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean,\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"stack-scope flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = forwardRefIfNeeded<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"stack-scope z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = forwardRefIfNeeded<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"stack-scope z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = forwardRefIfNeeded<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n Omit<React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item>, \"onClick\"> & {\n inset?: boolean,\n onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void | Promise<void>,\n }\n>(({ className, inset, ...props }, ref) => {\n const { setOpen } = React.useContext(DropdownMenuContext) ?? throwErr(\"No DropdownMenuContext found\");\n const [handleClick, isLoading] = useAsyncCallback(async (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n await props.onClick?.(e);\n setOpen(false);\n }, [props.onClick]);\n\n return <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"stack-scope relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n disabled={isLoading || props.disabled}\n onClick={props.onClick ? (e) => {\n e.preventDefault();\n e.stopPropagation();\n runAsynchronouslyWithAlert(handleClick(e));\n } : undefined}\n >\n <div style={{ visibility: isLoading ? \"visible\" : \"hidden\", position: \"absolute\", inset: 0, display: \"flex\", justifyContent: \"center\", alignItems: \"center\" }}>\n <Spinner />\n </div>\n <div style={{ visibility: isLoading ? \"hidden\" : \"visible\" }}>\n {props.children}\n </div>\n </DropdownMenuPrimitive.Item>;\n});\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = forwardRefIfNeeded<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = forwardRefIfNeeded<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <DotFilledIcon className=\"h-4 w-4 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = forwardRefIfNeeded<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean,\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = forwardRefIfNeeded<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"stack-scope ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator,\n DropdownMenuShortcut, DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger, DropdownMenuTrigger\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,118 @@
1
+ "use client";
2
+ "use client";
3
+
4
+ // src/components/ui/form.tsx
5
+ import { Slot } from "@radix-ui/react-slot";
6
+ import React from "react";
7
+ import { forwardRefIfNeeded } from "@stackframe/stack-shared/dist/utils/react";
8
+ import {
9
+ Controller,
10
+ FormProvider,
11
+ useFormContext
12
+ } from "react-hook-form";
13
+ import { StackAssertionError } from "@stackframe/stack-shared/dist/utils/errors";
14
+ import { cn } from "../../lib/utils.js";
15
+ import { SpanLabel } from "./label.js";
16
+ import { jsx } from "react/jsx-runtime";
17
+ var Form = FormProvider;
18
+ var FormFieldContext = React.createContext(null);
19
+ var FormField = ({
20
+ ...props
21
+ }) => {
22
+ return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
23
+ };
24
+ var useFormField = () => {
25
+ const fieldContext = React.useContext(FormFieldContext);
26
+ const itemContext = React.useContext(FormItemContext);
27
+ const { getFieldState, formState } = useFormContext();
28
+ if (!fieldContext) {
29
+ throw new StackAssertionError("useFormField should be used within <FormField>");
30
+ }
31
+ const fieldState = getFieldState(fieldContext.name, formState);
32
+ const { id } = itemContext;
33
+ const formItemId = React.useId();
34
+ return {
35
+ id,
36
+ name: fieldContext.name,
37
+ formItemId: `${formItemId}-form-item`,
38
+ formDescriptionId: `${id}-form-item-description`,
39
+ formMessageId: `${id}-form-item-message`,
40
+ ...fieldState
41
+ };
42
+ };
43
+ var FormItemContext = React.createContext(
44
+ {}
45
+ );
46
+ var FormItem = forwardRefIfNeeded(({ className, ...props }, ref) => {
47
+ const id = React.useId();
48
+ return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-2", className), ...props }) });
49
+ });
50
+ FormItem.displayName = "FormItem";
51
+ var FormLabel = forwardRefIfNeeded(({ className, ...props }, ref) => {
52
+ const { error } = useFormField();
53
+ return /* @__PURE__ */ jsx(
54
+ SpanLabel,
55
+ {
56
+ ref,
57
+ className: cn(error && "text-destructive", className),
58
+ ...props
59
+ }
60
+ );
61
+ });
62
+ FormLabel.displayName = "FormLabel";
63
+ var FormControl = forwardRefIfNeeded(({ ...props }, ref) => {
64
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
65
+ return /* @__PURE__ */ jsx(
66
+ Slot,
67
+ {
68
+ ref,
69
+ id: formItemId,
70
+ "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
71
+ "aria-invalid": !!error,
72
+ ...props
73
+ }
74
+ );
75
+ });
76
+ FormControl.displayName = "FormControl";
77
+ var FormDescription = forwardRefIfNeeded(({ className, ...props }, ref) => {
78
+ const { formDescriptionId } = useFormField();
79
+ return /* @__PURE__ */ jsx(
80
+ "p",
81
+ {
82
+ ref,
83
+ id: formDescriptionId,
84
+ className: cn("text-[0.8rem] text-muted-foreground", className),
85
+ ...props
86
+ }
87
+ );
88
+ });
89
+ FormDescription.displayName = "FormDescription";
90
+ var FormMessage = forwardRefIfNeeded(({ className, children, ...props }, ref) => {
91
+ const { error, formMessageId } = useFormField();
92
+ const body = error ? String(error.message) : children;
93
+ if (!body) {
94
+ return null;
95
+ }
96
+ return /* @__PURE__ */ jsx(
97
+ "p",
98
+ {
99
+ ref,
100
+ id: formMessageId,
101
+ className: cn("text-[0.8rem] font-medium text-destructive", className),
102
+ ...props,
103
+ children: body
104
+ }
105
+ );
106
+ });
107
+ FormMessage.displayName = "FormMessage";
108
+ export {
109
+ Form,
110
+ FormControl,
111
+ FormDescription,
112
+ FormField,
113
+ FormItem,
114
+ FormLabel,
115
+ FormMessage,
116
+ useFormField
117
+ };
118
+ //# sourceMappingURL=form.js.map