@stackframe/stack-ui 2.8.61 → 2.8.62

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
@@ -1,131 +1,166 @@
1
1
  "use client";
2
- // Inspired by react-hot-toast library
3
- import React from "react";
4
- const TOAST_LIMIT = 1;
5
- const TOAST_REMOVE_DELAY = 1000000;
6
- const actionTypes = {
7
- ADD_TOAST: "ADD_TOAST",
8
- UPDATE_TOAST: "UPDATE_TOAST",
9
- DISMISS_TOAST: "DISMISS_TOAST",
10
- REMOVE_TOAST: "REMOVE_TOAST",
2
+ "use strict";
3
+ "use client";
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
11
21
  };
12
- let count = 0;
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+
32
+ // src/components/ui/use-toast.tsx
33
+ var use_toast_exports = {};
34
+ __export(use_toast_exports, {
35
+ reducer: () => reducer,
36
+ toast: () => toast,
37
+ useToast: () => useToast
38
+ });
39
+ module.exports = __toCommonJS(use_toast_exports);
40
+ var import_react = __toESM(require("react"));
41
+ var TOAST_LIMIT = 1;
42
+ var TOAST_REMOVE_DELAY = 1e6;
43
+ var count = 0;
13
44
  function genId() {
14
- count = (count + 1) % Number.MAX_SAFE_INTEGER;
15
- return count.toString();
45
+ count = (count + 1) % Number.MAX_SAFE_INTEGER;
46
+ return count.toString();
16
47
  }
17
- const toastTimeouts = new Map();
18
- const addToRemoveQueue = (toastId) => {
19
- if (toastTimeouts.has(toastId)) {
20
- return;
48
+ var toastTimeouts = /* @__PURE__ */ new Map();
49
+ var addToRemoveQueue = (toastId) => {
50
+ if (toastTimeouts.has(toastId)) {
51
+ return;
52
+ }
53
+ const timeout = setTimeout(() => {
54
+ toastTimeouts.delete(toastId);
55
+ dispatch({
56
+ type: "REMOVE_TOAST",
57
+ toastId
58
+ });
59
+ }, TOAST_REMOVE_DELAY);
60
+ toastTimeouts.set(toastId, timeout);
61
+ };
62
+ var reducer = (state, action) => {
63
+ switch (action.type) {
64
+ case "ADD_TOAST": {
65
+ return {
66
+ ...state,
67
+ toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)
68
+ };
21
69
  }
22
- const timeout = setTimeout(() => {
23
- toastTimeouts.delete(toastId);
24
- dispatch({
25
- type: "REMOVE_TOAST",
26
- toastId: toastId,
70
+ case "UPDATE_TOAST": {
71
+ return {
72
+ ...state,
73
+ toasts: state.toasts.map(
74
+ (t) => t.id === action.toast.id ? { ...t, ...action.toast } : t
75
+ )
76
+ };
77
+ }
78
+ case "DISMISS_TOAST": {
79
+ const { toastId } = action;
80
+ if (toastId) {
81
+ addToRemoveQueue(toastId);
82
+ } else {
83
+ state.toasts.forEach((toast2) => {
84
+ addToRemoveQueue(toast2.id);
27
85
  });
28
- }, TOAST_REMOVE_DELAY);
29
- toastTimeouts.set(toastId, timeout);
30
- };
31
- export const reducer = (state, action) => {
32
- switch (action.type) {
33
- case "ADD_TOAST": {
34
- return {
35
- ...state,
36
- toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),
37
- };
38
- }
39
- case "UPDATE_TOAST": {
40
- return {
41
- ...state,
42
- toasts: state.toasts.map((t) => t.id === action.toast.id ? { ...t, ...action.toast } : t),
43
- };
44
- }
45
- case "DISMISS_TOAST": {
46
- const { toastId } = action;
47
- // ! Side effects ! - This could be extracted into a dismissToast() action,
48
- // but I'll keep it here for simplicity
49
- if (toastId) {
50
- addToRemoveQueue(toastId);
51
- }
52
- else {
53
- state.toasts.forEach((toast) => {
54
- addToRemoveQueue(toast.id);
55
- });
56
- }
57
- return {
58
- ...state,
59
- toasts: state.toasts.map((t) => t.id === toastId || toastId === undefined
60
- ? {
61
- ...t,
62
- open: false,
63
- }
64
- : t),
65
- };
66
- }
67
- case "REMOVE_TOAST": {
68
- if (action.toastId === undefined) {
69
- return {
70
- ...state,
71
- toasts: [],
72
- };
73
- }
74
- return {
75
- ...state,
76
- toasts: state.toasts.filter((t) => t.id !== action.toastId),
77
- };
78
- }
86
+ }
87
+ return {
88
+ ...state,
89
+ toasts: state.toasts.map(
90
+ (t) => t.id === toastId || toastId === void 0 ? {
91
+ ...t,
92
+ open: false
93
+ } : t
94
+ )
95
+ };
79
96
  }
97
+ case "REMOVE_TOAST": {
98
+ if (action.toastId === void 0) {
99
+ return {
100
+ ...state,
101
+ toasts: []
102
+ };
103
+ }
104
+ return {
105
+ ...state,
106
+ toasts: state.toasts.filter((t) => t.id !== action.toastId)
107
+ };
108
+ }
109
+ }
80
110
  };
81
- const listeners = [];
82
- let memoryState = { toasts: [] };
111
+ var listeners = [];
112
+ var memoryState = { toasts: [] };
83
113
  function dispatch(action) {
84
- memoryState = reducer(memoryState, action);
85
- listeners.forEach((listener) => {
86
- listener(memoryState);
87
- });
114
+ memoryState = reducer(memoryState, action);
115
+ listeners.forEach((listener) => {
116
+ listener(memoryState);
117
+ });
88
118
  }
89
119
  function toast({ ...props }) {
90
- const id = genId();
91
- const update = (props) => dispatch({
92
- type: "UPDATE_TOAST",
93
- toast: { ...props, id },
94
- });
95
- const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
96
- dispatch({
97
- type: "ADD_TOAST",
98
- toast: {
99
- ...props,
100
- id,
101
- open: true,
102
- onOpenChange: (open) => {
103
- if (!open)
104
- dismiss();
105
- },
106
- },
107
- });
108
- return {
109
- id: id,
110
- dismiss,
111
- update,
112
- };
120
+ const id = genId();
121
+ const update = (props2) => dispatch({
122
+ type: "UPDATE_TOAST",
123
+ toast: { ...props2, id }
124
+ });
125
+ const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
126
+ dispatch({
127
+ type: "ADD_TOAST",
128
+ toast: {
129
+ ...props,
130
+ id,
131
+ open: true,
132
+ onOpenChange: (open) => {
133
+ if (!open) dismiss();
134
+ }
135
+ }
136
+ });
137
+ return {
138
+ id,
139
+ dismiss,
140
+ update
141
+ };
113
142
  }
114
143
  function useToast() {
115
- const [state, setState] = React.useState(memoryState);
116
- React.useEffect(() => {
117
- listeners.push(setState);
118
- return () => {
119
- const index = listeners.indexOf(setState);
120
- if (index > -1) {
121
- listeners.splice(index, 1);
122
- }
123
- };
124
- }, [state]);
125
- return {
126
- ...state,
127
- toast,
128
- dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId }),
144
+ const [state, setState] = import_react.default.useState(memoryState);
145
+ import_react.default.useEffect(() => {
146
+ listeners.push(setState);
147
+ return () => {
148
+ const index = listeners.indexOf(setState);
149
+ if (index > -1) {
150
+ listeners.splice(index, 1);
151
+ }
129
152
  };
153
+ }, [state]);
154
+ return {
155
+ ...state,
156
+ toast,
157
+ dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
158
+ };
130
159
  }
131
- export { useToast, toast };
160
+ // Annotate the CommonJS export names for ESM import in node:
161
+ 0 && (module.exports = {
162
+ reducer,
163
+ toast,
164
+ useToast
165
+ });
166
+ //# sourceMappingURL=use-toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/ui/use-toast.tsx"],"sourcesContent":["\"use client\";\n\n// Inspired by react-hot-toast library\nimport React from \"react\";\n\nimport type {\n ToastActionElement,\n ToastProps,\n} from \"./toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string,\n title?: React.ReactNode,\n description?: React.ReactNode,\n action?: ToastActionElement,\n}\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"],\n toast: ToasterToast,\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"],\n toast: Partial<ToasterToast>,\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"],\n toastId?: ToasterToast[\"id\"],\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"],\n toastId?: ToasterToast[\"id\"],\n }\n\ntype State = {\n toasts: ToasterToast[],\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\": {\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n }\n case \"UPDATE_TOAST\": {\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n }\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n };\n }\n case \"REMOVE_TOAST\": {\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n"],"mappings":"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","names":["toast","props","React"]}
@@ -0,0 +1,97 @@
1
+ "use client";
2
+ "use client";
3
+
4
+ // src/components/action-dialog.tsx
5
+ import { CircleAlert, Info } from "lucide-react";
6
+ import React, { Suspense, useId } from "react";
7
+ import { Alert, Button, Checkbox, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Label, Skeleton } from "../index.js";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ function ActionDialog(props) {
10
+ const okButton = props.okButton === true ? {} : props.okButton;
11
+ const cancelButton = props.cancelButton === true ? {} : props.cancelButton;
12
+ const anyButton = !!(okButton || cancelButton);
13
+ const title = props.title === true ? props.cancelButton ? "Confirmation" : "Alert" : props.title;
14
+ const TitleIcon = props.titleIcon || (props.danger ? CircleAlert : Info);
15
+ const [openState, setOpenState] = React.useState(!!props.open);
16
+ const open = props.open ?? openState;
17
+ const [confirmed, setConfirmed] = React.useState(false);
18
+ const confirmId = useId();
19
+ const [invalidationCount, setInvalidationCount] = React.useState(0);
20
+ const onOpenChange = (open2) => {
21
+ if (!open2) {
22
+ props.onClose?.();
23
+ setConfirmed(false);
24
+ } else {
25
+ setInvalidationCount(invalidationCount + 1);
26
+ }
27
+ setOpenState(open2);
28
+ props.onOpenChange?.(open2);
29
+ };
30
+ return /* @__PURE__ */ jsxs(Dialog, { open, onOpenChange, children: [
31
+ props.trigger && /* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: props.trigger }),
32
+ /* @__PURE__ */ jsxs(
33
+ DialogContent,
34
+ {
35
+ onInteractOutside: props.preventClose ? (e) => e.preventDefault() : void 0,
36
+ className: props.preventClose ? "[&>button]:hidden" : "",
37
+ children: [
38
+ /* @__PURE__ */ jsxs(DialogHeader, { children: [
39
+ /* @__PURE__ */ jsxs(DialogTitle, { className: "flex items-center", children: [
40
+ /* @__PURE__ */ jsx(TitleIcon, { className: "h-4 w-4 mr-2" }),
41
+ title
42
+ ] }),
43
+ /* @__PURE__ */ jsx(DialogDescription, { children: props.description })
44
+ ] }),
45
+ /* @__PURE__ */ jsxs(DialogBody, { className: "pb-2", children: [
46
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsxs(Fragment, { children: [
47
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-2/3 self-center" }),
48
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-16 mt-8" }),
49
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-full mt-1" }),
50
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-24 mt-2" }),
51
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-full mt-1" }),
52
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-full mt-6" })
53
+ ] }), children: props.children }) }),
54
+ props.confirmText && /* @__PURE__ */ jsx(Alert, { children: /* @__PURE__ */ jsxs(Label, { className: "flex gap-4 items-center", children: [
55
+ /* @__PURE__ */ jsx(Checkbox, { id: confirmId, checked: confirmed, onCheckedChange: (v) => setConfirmed(!!v) }),
56
+ props.confirmText
57
+ ] }) })
58
+ ] }),
59
+ anyButton && /* @__PURE__ */ jsxs(DialogFooter, { className: "gap-2", children: [
60
+ cancelButton && /* @__PURE__ */ jsx(
61
+ Button,
62
+ {
63
+ variant: "secondary",
64
+ color: "neutral",
65
+ onClick: async () => {
66
+ if (await cancelButton.onClick?.() !== "prevent-close") {
67
+ onOpenChange(false);
68
+ }
69
+ },
70
+ ...cancelButton.props,
71
+ children: cancelButton.label ?? "Cancel"
72
+ }
73
+ ),
74
+ okButton && /* @__PURE__ */ jsx(
75
+ Button,
76
+ {
77
+ disabled: !!props.confirmText && !confirmed,
78
+ variant: props.danger ? "destructive" : "default",
79
+ onClick: async () => {
80
+ if (await okButton.onClick?.() !== "prevent-close") {
81
+ onOpenChange(false);
82
+ }
83
+ },
84
+ ...okButton.props,
85
+ children: okButton.label ?? "OK"
86
+ }
87
+ )
88
+ ] })
89
+ ]
90
+ }
91
+ )
92
+ ] }, invalidationCount);
93
+ }
94
+ export {
95
+ ActionDialog
96
+ };
97
+ //# sourceMappingURL=action-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/action-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { CircleAlert, Info, LucideIcon } from \"lucide-react\";\nimport React, { Suspense, useId } from \"react\";\nimport { Alert, Button, Checkbox, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, Label, Skeleton } from '..';\n\nexport type ActionDialogProps = {\n trigger?: React.ReactNode,\n open?: boolean,\n onClose?: () => void,\n onOpenChange?: (open: boolean) => void,\n titleIcon?: LucideIcon,\n title: boolean | React.ReactNode,\n description?: React.ReactNode,\n danger?: boolean,\n okButton?: boolean | Readonly<{\n label?: string,\n onClick?: () => Promise<\"prevent-close\" | undefined | void>,\n props?: Partial<React.ComponentProps<typeof Button>>,\n }>,\n cancelButton?: boolean | Readonly<{\n label?: string,\n onClick?: () => Promise<\"prevent-close\" | undefined | void>,\n props?: Partial<React.ComponentProps<typeof Button>>,\n }>,\n confirmText?: string,\n children?: React.ReactNode,\n preventClose?: boolean,\n};\n\nexport function ActionDialog(props: ActionDialogProps) {\n const okButton = props.okButton === true ? {} : props.okButton;\n const cancelButton = props.cancelButton === true ? {} : props.cancelButton;\n const anyButton = !!(okButton || cancelButton);\n const title = props.title === true ? (props.cancelButton ? \"Confirmation\" : \"Alert\") : props.title;\n const TitleIcon = props.titleIcon || (props.danger ? CircleAlert : Info);\n const [openState, setOpenState] = React.useState(!!props.open);\n const open = props.open ?? openState;\n const [confirmed, setConfirmed] = React.useState(false);\n const confirmId = useId();\n const [invalidationCount, setInvalidationCount] = React.useState(0);\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n props.onClose?.();\n setConfirmed(false);\n } else {\n setInvalidationCount(invalidationCount + 1);\n }\n setOpenState(open);\n props.onOpenChange?.(open);\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} key={invalidationCount}>\n {props.trigger && <DialogTrigger asChild>\n {props.trigger}\n </DialogTrigger>}\n\n <DialogContent\n onInteractOutside={props.preventClose ? (e) => e.preventDefault() : undefined}\n className={props.preventClose ? \"[&>button]:hidden\" : \"\"}\n >\n <DialogHeader>\n <DialogTitle className=\"flex items-center\">\n <TitleIcon className=\"h-4 w-4 mr-2\"/>\n {title}\n </DialogTitle>\n <DialogDescription>\n {props.description}\n </DialogDescription>\n </DialogHeader>\n\n <DialogBody className=\"pb-2\">\n <div>\n <Suspense fallback={\n <>\n <Skeleton className='h-9 w-2/3 self-center' />\n\n <Skeleton className='h-3 w-16 mt-8' />\n <Skeleton className='h-9 w-full mt-1' />\n\n <Skeleton className='h-3 w-24 mt-2' />\n <Skeleton className='h-9 w-full mt-1' />\n\n <Skeleton className='h-9 w-full mt-6' />\n </>\n }>\n {props.children}\n </Suspense>\n </div>\n\n {props.confirmText && <Alert>\n <Label className=\"flex gap-4 items-center\">\n <Checkbox id={confirmId} checked={confirmed} onCheckedChange={(v) => setConfirmed(!!v)}/>\n {props.confirmText}\n </Label>\n </Alert>}\n </DialogBody>\n\n\n {anyButton && <DialogFooter className=\"gap-2\">\n {cancelButton && (\n <Button\n variant=\"secondary\"\n color=\"neutral\"\n onClick={async () => {\n if (await cancelButton.onClick?.() !== \"prevent-close\") {\n onOpenChange(false);\n }\n }}\n {...cancelButton.props}\n >\n {cancelButton.label ?? \"Cancel\"}\n </Button>\n )}\n {okButton && (\n <Button\n disabled={!!props.confirmText && !confirmed}\n variant={props.danger ? \"destructive\" : \"default\"}\n onClick={async () => {\n if (await okButton.onClick?.() !== \"prevent-close\") {\n onOpenChange(false);\n }\n }}\n {...okButton.props}\n >\n {okButton.label ?? \"OK\"}\n </Button>\n )}\n </DialogFooter>}\n </DialogContent>\n </Dialog>\n );\n}\n"],"mappings":"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","names":["open"]}