@devalok/shilp-sutra 0.34.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/LICENSE +21 -21
  2. package/dist/_chunks/badge-group.js +306 -246
  3. package/dist/_chunks/badge-group.js.map +1 -0
  4. package/dist/_chunks/chat.js +518 -0
  5. package/dist/_chunks/chat.js.map +1 -0
  6. package/dist/_chunks/date-picker.js +748 -0
  7. package/dist/_chunks/date-picker.js.map +1 -0
  8. package/dist/_chunks/document-preview.js +109 -90
  9. package/dist/_chunks/document-preview.js.map +1 -0
  10. package/dist/_chunks/file-preview.js +492 -504
  11. package/dist/_chunks/file-preview.js.map +1 -0
  12. package/dist/_chunks/framer.js +5564 -5613
  13. package/dist/_chunks/framer.js.map +1 -0
  14. package/dist/_chunks/image-preview.js +127 -88
  15. package/dist/_chunks/image-preview.js.map +1 -0
  16. package/dist/_chunks/keybinding.js +12 -14
  17. package/dist/_chunks/keybinding.js.map +1 -0
  18. package/dist/_chunks/link-context.js +19 -16
  19. package/dist/_chunks/link-context.js.map +1 -0
  20. package/dist/_chunks/mention-suggestion.js +353 -350
  21. package/dist/_chunks/mention-suggestion.js.map +1 -0
  22. package/dist/_chunks/motion-provider.js +26 -20
  23. package/dist/_chunks/motion-provider.js.map +1 -0
  24. package/dist/_chunks/popover.js +123 -0
  25. package/dist/_chunks/popover.js.map +1 -0
  26. package/dist/_chunks/primitives.js +7585 -6426
  27. package/dist/_chunks/primitives.js.map +1 -0
  28. package/dist/_chunks/rich-chat-input.js +2071 -0
  29. package/dist/_chunks/rich-chat-input.js.map +1 -0
  30. package/dist/_chunks/rolldown-runtime.js +21 -0
  31. package/dist/_chunks/shared.js +126 -0
  32. package/dist/_chunks/shared.js.map +1 -0
  33. package/dist/_chunks/sonner.js +605 -734
  34. package/dist/_chunks/sonner.js.map +1 -0
  35. package/dist/_chunks/stat-row.js +418 -440
  36. package/dist/_chunks/stat-row.js.map +1 -0
  37. package/dist/_chunks/tiptap.js +15850 -19964
  38. package/dist/_chunks/tiptap.js.map +1 -0
  39. package/dist/_chunks/tree-view.js +231 -290
  40. package/dist/_chunks/tree-view.js.map +1 -0
  41. package/dist/_chunks/use-calendar.js +161 -208
  42. package/dist/_chunks/use-calendar.js.map +1 -0
  43. package/dist/_chunks/vendor-client.js +314 -2199
  44. package/dist/_chunks/vendor-client.js.map +1 -0
  45. package/dist/_chunks/vendor-utils.js +1721 -2978
  46. package/dist/_chunks/vendor-utils.js.map +1 -0
  47. package/dist/ai/ai-command-provider.js +23 -17
  48. package/dist/ai/ai-command-provider.js.map +1 -0
  49. package/dist/ai/block-renderer.js +68 -51
  50. package/dist/ai/block-renderer.js.map +1 -0
  51. package/dist/ai/blocks/index.js +2 -12
  52. package/dist/ai/blocks/loading.d.ts.map +1 -1
  53. package/dist/ai/command-bar.js +470 -519
  54. package/dist/ai/command-bar.js.map +1 -0
  55. package/dist/ai/conversation.js +241 -227
  56. package/dist/ai/conversation.js.map +1 -0
  57. package/dist/ai/devadoot-icon.d.ts.map +1 -1
  58. package/dist/ai/index.js +181 -167
  59. package/dist/ai/index.js.map +1 -0
  60. package/dist/ai/types.js +0 -1
  61. package/dist/composed/activity-feed.js +232 -202
  62. package/dist/composed/activity-feed.js.map +1 -0
  63. package/dist/composed/avatar-group.js +164 -222
  64. package/dist/composed/avatar-group.js.map +1 -0
  65. package/dist/composed/bulk-action-bar.js +166 -165
  66. package/dist/composed/bulk-action-bar.js.map +1 -0
  67. package/dist/composed/command-palette.js +290 -308
  68. package/dist/composed/command-palette.js.map +1 -0
  69. package/dist/composed/confirm-dialog.js +28 -48
  70. package/dist/composed/confirm-dialog.js.map +1 -0
  71. package/dist/composed/content-card.js +69 -108
  72. package/dist/composed/content-card.js.map +1 -0
  73. package/dist/composed/date-picker/index.js +3 -13
  74. package/dist/composed/deadline-indicator.js +68 -74
  75. package/dist/composed/deadline-indicator.js.map +1 -0
  76. package/dist/composed/emoji-picker.js +83 -110
  77. package/dist/composed/emoji-picker.js.map +1 -0
  78. package/dist/composed/empty-state.d.ts.map +1 -1
  79. package/dist/composed/empty-state.js +64 -103
  80. package/dist/composed/empty-state.js.map +1 -0
  81. package/dist/composed/error-boundary.js +129 -127
  82. package/dist/composed/error-boundary.js.map +1 -0
  83. package/dist/composed/file-preview.js +2 -12
  84. package/dist/composed/filter-bar.js +98 -130
  85. package/dist/composed/filter-bar.js.map +1 -0
  86. package/dist/composed/form-section.js +61 -45
  87. package/dist/composed/form-section.js.map +1 -0
  88. package/dist/composed/global-loading.js +34 -47
  89. package/dist/composed/global-loading.js.map +1 -0
  90. package/dist/composed/index.js +34 -92
  91. package/dist/composed/inline-edit.js +92 -107
  92. package/dist/composed/inline-edit.js.map +1 -0
  93. package/dist/composed/lib/string-utils.js +8 -8
  94. package/dist/composed/lib/string-utils.js.map +1 -0
  95. package/dist/composed/loading-skeleton.js +103 -171
  96. package/dist/composed/loading-skeleton.js.map +1 -0
  97. package/dist/composed/markdown-viewer.js +187 -139
  98. package/dist/composed/markdown-viewer.js.map +1 -0
  99. package/dist/composed/master-detail.js +147 -156
  100. package/dist/composed/master-detail.js.map +1 -0
  101. package/dist/composed/member-picker.js +46 -49
  102. package/dist/composed/member-picker.js.map +1 -0
  103. package/dist/composed/multi-select-popover.d.ts.map +1 -1
  104. package/dist/composed/multi-select-popover.js +185 -179
  105. package/dist/composed/multi-select-popover.js.map +1 -0
  106. package/dist/composed/page-header.js +54 -76
  107. package/dist/composed/page-header.js.map +1 -0
  108. package/dist/composed/page-skeletons.js +143 -127
  109. package/dist/composed/page-skeletons.js.map +1 -0
  110. package/dist/composed/priority-indicator.js +105 -111
  111. package/dist/composed/priority-indicator.js.map +1 -0
  112. package/dist/composed/responsive-overlay.js +36 -41
  113. package/dist/composed/responsive-overlay.js.map +1 -0
  114. package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
  115. package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
  116. package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
  117. package/dist/composed/rich-chat-input.d.ts.map +1 -1
  118. package/dist/composed/rich-chat-input.js +2 -1860
  119. package/dist/composed/rich-text-editor.js +561 -424
  120. package/dist/composed/rich-text-editor.js.map +1 -0
  121. package/dist/composed/schedule-view.js +134 -185
  122. package/dist/composed/schedule-view.js.map +1 -0
  123. package/dist/composed/simple-tooltip.js +21 -21
  124. package/dist/composed/simple-tooltip.js.map +1 -0
  125. package/dist/composed/status-badge.d.ts.map +1 -1
  126. package/dist/composed/status-badge.js +133 -137
  127. package/dist/composed/status-badge.js.map +1 -0
  128. package/dist/hooks/index.js +7 -12
  129. package/dist/hooks/use-color-mode.js +28 -25
  130. package/dist/hooks/use-color-mode.js.map +1 -0
  131. package/dist/hooks/use-mobile.js +13 -13
  132. package/dist/hooks/use-mobile.js.map +1 -0
  133. package/dist/hooks/use-toast.js +2 -4
  134. package/dist/hooks/use-touch-device.js +9 -11
  135. package/dist/hooks/use-touch-device.js.map +1 -0
  136. package/dist/hooks/use-viewport-height.js +14 -14
  137. package/dist/hooks/use-viewport-height.js.map +1 -0
  138. package/dist/motion/check-motion-provider.d.ts +3 -0
  139. package/dist/motion/check-motion-provider.d.ts.map +1 -0
  140. package/dist/motion/index.js +17 -11
  141. package/dist/motion/index.js.map +1 -0
  142. package/dist/motion/primitives-index.js +226 -186
  143. package/dist/motion/primitives-index.js.map +1 -0
  144. package/dist/primitives/react-accordion.d.ts +114 -114
  145. package/dist/primitives/react-alert-dialog.d.ts +51 -51
  146. package/dist/primitives/react-aspect-ratio.d.ts +11 -11
  147. package/dist/primitives/react-avatar.d.ts +24 -24
  148. package/dist/primitives/react-checkbox.d.ts +50 -50
  149. package/dist/primitives/react-collapsible.d.ts +33 -33
  150. package/dist/primitives/react-context-menu.d.ts +96 -96
  151. package/dist/primitives/react-dialog.d.ts +103 -103
  152. package/dist/primitives/react-dropdown-menu.d.ts +97 -97
  153. package/dist/primitives/react-hover-card.d.ts +79 -79
  154. package/dist/primitives/react-label.d.ts +10 -10
  155. package/dist/primitives/react-menu.d.ts +169 -169
  156. package/dist/primitives/react-menubar.d.ts +115 -115
  157. package/dist/primitives/react-navigation-menu.d.ts +126 -126
  158. package/dist/primitives/react-popover.d.ts +85 -85
  159. package/dist/primitives/react-progress.d.ts +19 -19
  160. package/dist/primitives/react-radio-group.d.ts +58 -58
  161. package/dist/primitives/react-roving-focus.d.ts +49 -49
  162. package/dist/primitives/react-select.d.ts +137 -137
  163. package/dist/primitives/react-separator.d.ts +21 -21
  164. package/dist/primitives/react-slider.d.ts +75 -75
  165. package/dist/primitives/react-switch.d.ts +21 -21
  166. package/dist/primitives/react-tabs.d.ts +56 -56
  167. package/dist/primitives/react-toast.d.ts +120 -120
  168. package/dist/primitives/react-toggle-group.d.ts +75 -75
  169. package/dist/primitives/react-toggle.d.ts +24 -24
  170. package/dist/primitives/react-tooltip.d.ts +101 -101
  171. package/dist/primitives/react-visually-hidden.d.ts +22 -22
  172. package/dist/shell/app-command-palette.d.ts +2 -0
  173. package/dist/shell/app-command-palette.d.ts.map +1 -1
  174. package/dist/shell/app-command-palette.js +94 -238
  175. package/dist/shell/app-command-palette.js.map +1 -0
  176. package/dist/shell/bottom-navbar.js +150 -190
  177. package/dist/shell/bottom-navbar.js.map +1 -0
  178. package/dist/shell/command-registry.js +13 -14
  179. package/dist/shell/command-registry.js.map +1 -0
  180. package/dist/shell/index.js +10 -20
  181. package/dist/shell/link-context.js +2 -5
  182. package/dist/shell/notification-center.d.ts.map +1 -1
  183. package/dist/shell/notification-center.js +263 -259
  184. package/dist/shell/notification-center.js.map +1 -0
  185. package/dist/shell/notification-preferences.js +241 -184
  186. package/dist/shell/notification-preferences.js.map +1 -0
  187. package/dist/shell/sidebar.js +251 -281
  188. package/dist/shell/sidebar.js.map +1 -0
  189. package/dist/shell/top-bar.js +203 -237
  190. package/dist/shell/top-bar.js.map +1 -0
  191. package/dist/tailwind/index.cjs +473 -442
  192. package/dist/tailwind/index.js +2 -4
  193. package/dist/tailwind/preset.d.ts.map +1 -1
  194. package/dist/tailwind/preset.js +490 -459
  195. package/dist/tailwind/preset.js.map +1 -0
  196. package/dist/tokens/index.css +4 -4
  197. package/dist/tokens/primitives.css +442 -442
  198. package/dist/tokens/semantic.css +742 -547
  199. package/dist/tokens/typography-semantic.css +123 -100
  200. package/dist/tokens/typography.css +422 -422
  201. package/dist/ui/accordion.js +52 -60
  202. package/dist/ui/accordion.js.map +1 -0
  203. package/dist/ui/alert-dialog.d.ts +6 -2
  204. package/dist/ui/alert-dialog.d.ts.map +1 -1
  205. package/dist/ui/alert-dialog.js +112 -156
  206. package/dist/ui/alert-dialog.js.map +1 -0
  207. package/dist/ui/alert.d.ts +3 -2
  208. package/dist/ui/alert.d.ts.map +1 -1
  209. package/dist/ui/alert.js +203 -99
  210. package/dist/ui/alert.js.map +1 -0
  211. package/dist/ui/aspect-ratio.js +13 -16
  212. package/dist/ui/aspect-ratio.js.map +1 -0
  213. package/dist/ui/autocomplete.d.ts.map +1 -1
  214. package/dist/ui/autocomplete.js +137 -148
  215. package/dist/ui/autocomplete.js.map +1 -0
  216. package/dist/ui/avatar.js +196 -169
  217. package/dist/ui/avatar.js.map +1 -0
  218. package/dist/ui/badge-group.js +2 -7
  219. package/dist/ui/badge-indicator.js +42 -51
  220. package/dist/ui/badge-indicator.js.map +1 -0
  221. package/dist/ui/badge.js +2 -15
  222. package/dist/ui/banner.js +76 -68
  223. package/dist/ui/banner.js.map +1 -0
  224. package/dist/ui/breadcrumb.js +65 -84
  225. package/dist/ui/breadcrumb.js.map +1 -0
  226. package/dist/ui/button-group.js +109 -102
  227. package/dist/ui/button-group.js.map +1 -0
  228. package/dist/ui/button-processing.d.ts.map +1 -1
  229. package/dist/ui/button-processing.js +89 -72
  230. package/dist/ui/button-processing.js.map +1 -0
  231. package/dist/ui/button.js +393 -279
  232. package/dist/ui/button.js.map +1 -0
  233. package/dist/ui/card.js +151 -157
  234. package/dist/ui/card.js.map +1 -0
  235. package/dist/ui/charts/bar-chart.d.ts.map +1 -1
  236. package/dist/ui/charts/chart-container.d.ts +2 -0
  237. package/dist/ui/charts/chart-container.d.ts.map +1 -1
  238. package/dist/ui/charts/index.js +1025 -1319
  239. package/dist/ui/charts/index.js.map +1 -0
  240. package/dist/ui/charts/line-chart.d.ts.map +1 -1
  241. package/dist/ui/chat/index.js +2 -11
  242. package/dist/ui/chat/message-input.d.ts.map +1 -1
  243. package/dist/ui/chat/message-list.d.ts +1 -1
  244. package/dist/ui/chat/message-list.d.ts.map +1 -1
  245. package/dist/ui/chat/message.d.ts.map +1 -1
  246. package/dist/ui/chat/system-message.d.ts.map +1 -1
  247. package/dist/ui/checkbox.d.ts.map +1 -1
  248. package/dist/ui/checkbox.js +82 -100
  249. package/dist/ui/checkbox.js.map +1 -0
  250. package/dist/ui/code.js +18 -32
  251. package/dist/ui/code.js.map +1 -0
  252. package/dist/ui/collapsible.js +21 -29
  253. package/dist/ui/collapsible.js.map +1 -0
  254. package/dist/ui/color-input.d.ts.map +1 -1
  255. package/dist/ui/color-input.js +455 -372
  256. package/dist/ui/color-input.js.map +1 -0
  257. package/dist/ui/color-swatch.js +60 -90
  258. package/dist/ui/color-swatch.js.map +1 -0
  259. package/dist/ui/combobox.d.ts +7 -0
  260. package/dist/ui/combobox.d.ts.map +1 -1
  261. package/dist/ui/combobox.js +278 -293
  262. package/dist/ui/combobox.js.map +1 -0
  263. package/dist/ui/container.js +18 -24
  264. package/dist/ui/container.js.map +1 -0
  265. package/dist/ui/context-menu.js +154 -203
  266. package/dist/ui/context-menu.js.map +1 -0
  267. package/dist/ui/data-table-body.js +116 -213
  268. package/dist/ui/data-table-body.js.map +1 -0
  269. package/dist/ui/data-table-bulk-actions.js +43 -59
  270. package/dist/ui/data-table-bulk-actions.js.map +1 -0
  271. package/dist/ui/data-table-card.js +84 -71
  272. package/dist/ui/data-table-card.js.map +1 -0
  273. package/dist/ui/data-table-context.js +39 -42
  274. package/dist/ui/data-table-context.js.map +1 -0
  275. package/dist/ui/data-table-header.js +98 -139
  276. package/dist/ui/data-table-header.js.map +1 -0
  277. package/dist/ui/data-table-pagination.js +69 -82
  278. package/dist/ui/data-table-pagination.js.map +1 -0
  279. package/dist/ui/data-table-toolbar.js +104 -130
  280. package/dist/ui/data-table-toolbar.js.map +1 -0
  281. package/dist/ui/data-table.js +281 -354
  282. package/dist/ui/data-table.js.map +1 -0
  283. package/dist/ui/devalok-grain.js +77 -66
  284. package/dist/ui/devalok-grain.js.map +1 -0
  285. package/dist/ui/dialog.js +118 -151
  286. package/dist/ui/dialog.js.map +1 -0
  287. package/dist/ui/dropdown-menu.js +152 -203
  288. package/dist/ui/dropdown-menu.js.map +1 -0
  289. package/dist/ui/file-upload.js +242 -266
  290. package/dist/ui/file-upload.js.map +1 -0
  291. package/dist/ui/form.d.ts +8 -0
  292. package/dist/ui/form.d.ts.map +1 -1
  293. package/dist/ui/form.js +62 -56
  294. package/dist/ui/form.js.map +1 -0
  295. package/dist/ui/hover-card.js +54 -54
  296. package/dist/ui/hover-card.js.map +1 -0
  297. package/dist/ui/icon-button.js +21 -26
  298. package/dist/ui/icon-button.js.map +1 -0
  299. package/dist/ui/icon-context.js +17 -17
  300. package/dist/ui/icon-context.js.map +1 -0
  301. package/dist/ui/icon-group.js +22 -29
  302. package/dist/ui/icon-group.js.map +1 -0
  303. package/dist/ui/icon.js +201 -121
  304. package/dist/ui/icon.js.map +1 -0
  305. package/dist/ui/index.d.ts +4 -4
  306. package/dist/ui/index.d.ts.map +1 -1
  307. package/dist/ui/index.js +90 -350
  308. package/dist/ui/index.js.map +1 -0
  309. package/dist/ui/input-otp.d.ts +12 -3
  310. package/dist/ui/input-otp.d.ts.map +1 -1
  311. package/dist/ui/input-otp.js +58 -48
  312. package/dist/ui/input-otp.js.map +1 -0
  313. package/dist/ui/input.d.ts.map +1 -1
  314. package/dist/ui/input.js +93 -169
  315. package/dist/ui/input.js.map +1 -0
  316. package/dist/ui/label.d.ts.map +1 -1
  317. package/dist/ui/label.js +23 -23
  318. package/dist/ui/label.js.map +1 -0
  319. package/dist/ui/lib/check-tokens.d.ts +3 -0
  320. package/dist/ui/lib/check-tokens.d.ts.map +1 -0
  321. package/dist/ui/lib/date-utils.js +14 -11
  322. package/dist/ui/lib/date-utils.js.map +1 -0
  323. package/dist/ui/lib/motion.d.ts +15 -4
  324. package/dist/ui/lib/motion.d.ts.map +1 -1
  325. package/dist/ui/lib/motion.js +83 -33
  326. package/dist/ui/lib/motion.js.map +1 -0
  327. package/dist/ui/lib/utils.js +39 -16
  328. package/dist/ui/lib/utils.js.map +1 -0
  329. package/dist/ui/link.js +13 -24
  330. package/dist/ui/link.js.map +1 -0
  331. package/dist/ui/menubar.js +132 -210
  332. package/dist/ui/menubar.js.map +1 -0
  333. package/dist/ui/navigation-menu.js +163 -193
  334. package/dist/ui/navigation-menu.js.map +1 -0
  335. package/dist/ui/number-input.d.ts +16 -1
  336. package/dist/ui/number-input.d.ts.map +1 -1
  337. package/dist/ui/number-input.js +102 -95
  338. package/dist/ui/number-input.js.map +1 -0
  339. package/dist/ui/pagination.js +122 -159
  340. package/dist/ui/pagination.js.map +1 -0
  341. package/dist/ui/popover.js +2 -131
  342. package/dist/ui/progress-ring.d.ts.map +1 -1
  343. package/dist/ui/progress-ring.js +133 -143
  344. package/dist/ui/progress-ring.js.map +1 -0
  345. package/dist/ui/progress.js +51 -95
  346. package/dist/ui/progress.js.map +1 -0
  347. package/dist/ui/radio.d.ts.map +1 -1
  348. package/dist/ui/radio.js +47 -49
  349. package/dist/ui/radio.js.map +1 -0
  350. package/dist/ui/search-input.js +51 -53
  351. package/dist/ui/search-input.js.map +1 -0
  352. package/dist/ui/segmented-control.d.ts +1 -1
  353. package/dist/ui/segmented-control.d.ts.map +1 -1
  354. package/dist/ui/segmented-control.js +95 -114
  355. package/dist/ui/segmented-control.js.map +1 -0
  356. package/dist/ui/select.d.ts.map +1 -1
  357. package/dist/ui/select.js +137 -157
  358. package/dist/ui/select.js.map +1 -0
  359. package/dist/ui/separator.d.ts.map +1 -1
  360. package/dist/ui/separator.js +18 -25
  361. package/dist/ui/separator.js.map +1 -0
  362. package/dist/ui/sheet.js +135 -163
  363. package/dist/ui/sheet.js.map +1 -0
  364. package/dist/ui/sidebar.js +357 -600
  365. package/dist/ui/sidebar.js.map +1 -0
  366. package/dist/ui/skeleton.js +179 -231
  367. package/dist/ui/skeleton.js.map +1 -0
  368. package/dist/ui/slider.d.ts +22 -3
  369. package/dist/ui/slider.d.ts.map +1 -1
  370. package/dist/ui/slider.js +62 -34
  371. package/dist/ui/slider.js.map +1 -0
  372. package/dist/ui/spinner.js +226 -205
  373. package/dist/ui/spinner.js.map +1 -0
  374. package/dist/ui/split-button.d.ts.map +1 -1
  375. package/dist/ui/split-button.js +228 -276
  376. package/dist/ui/split-button.js.map +1 -0
  377. package/dist/ui/stack.js +56 -70
  378. package/dist/ui/stack.js.map +1 -0
  379. package/dist/ui/stat-card.js +259 -251
  380. package/dist/ui/stat-card.js.map +1 -0
  381. package/dist/ui/status-dot.js +67 -63
  382. package/dist/ui/status-dot.js.map +1 -0
  383. package/dist/ui/stepper.d.ts +10 -0
  384. package/dist/ui/stepper.d.ts.map +1 -1
  385. package/dist/ui/stepper.js +124 -168
  386. package/dist/ui/stepper.js.map +1 -0
  387. package/dist/ui/switch.d.ts.map +1 -1
  388. package/dist/ui/switch.js +56 -55
  389. package/dist/ui/switch.js.map +1 -0
  390. package/dist/ui/table.js +57 -90
  391. package/dist/ui/table.js.map +1 -0
  392. package/dist/ui/tabs.d.ts +3 -1
  393. package/dist/ui/tabs.d.ts.map +1 -1
  394. package/dist/ui/tabs.js +159 -156
  395. package/dist/ui/tabs.js.map +1 -0
  396. package/dist/ui/text.d.ts +1 -1
  397. package/dist/ui/text.d.ts.map +1 -1
  398. package/dist/ui/text.js +60 -59
  399. package/dist/ui/text.js.map +1 -0
  400. package/dist/ui/textarea.js +40 -57
  401. package/dist/ui/textarea.js.map +1 -0
  402. package/dist/ui/toast-registry.d.ts +8 -0
  403. package/dist/ui/toast-registry.d.ts.map +1 -0
  404. package/dist/ui/toast-registry.js +13 -0
  405. package/dist/ui/toast-registry.js.map +1 -0
  406. package/dist/ui/toast-types.js +0 -1
  407. package/dist/ui/toast.d.ts.map +1 -1
  408. package/dist/ui/toast.js +559 -536
  409. package/dist/ui/toast.js.map +1 -0
  410. package/dist/ui/toaster.d.ts.map +1 -1
  411. package/dist/ui/toaster.js +24 -33
  412. package/dist/ui/toaster.js.map +1 -0
  413. package/dist/ui/toggle-group.d.ts +2 -0
  414. package/dist/ui/toggle-group.d.ts.map +1 -1
  415. package/dist/ui/toggle-group.js +44 -41
  416. package/dist/ui/toggle-group.js.map +1 -0
  417. package/dist/ui/toggle.d.ts +2 -0
  418. package/dist/ui/toggle.d.ts.map +1 -1
  419. package/dist/ui/toggle.js +44 -40
  420. package/dist/ui/toggle.js.map +1 -0
  421. package/dist/ui/tooltip.js +80 -65
  422. package/dist/ui/tooltip.js.map +1 -0
  423. package/dist/ui/tree-view/index.js +2 -6
  424. package/dist/ui/visually-hidden.js +12 -10
  425. package/dist/ui/visually-hidden.js.map +1 -0
  426. package/docs/components/_header.md +85 -85
  427. package/docs/components/composed/activity-feed.md +62 -62
  428. package/docs/components/composed/avatar-group.md +65 -65
  429. package/docs/components/composed/bulk-action-bar.md +40 -40
  430. package/docs/components/composed/command-palette.md +40 -40
  431. package/docs/components/composed/confirm-dialog.md +46 -46
  432. package/docs/components/composed/content-card.md +36 -36
  433. package/docs/components/composed/date-picker.md +130 -130
  434. package/docs/components/composed/deadline-indicator.md +27 -27
  435. package/docs/components/composed/emoji-picker.md +52 -52
  436. package/docs/components/composed/empty-state.md +53 -53
  437. package/docs/components/composed/error-boundary.md +29 -29
  438. package/docs/components/composed/file-preview.md +40 -40
  439. package/docs/components/composed/filter-bar.md +57 -57
  440. package/docs/components/composed/form-section.md +31 -31
  441. package/docs/components/composed/global-loading.md +27 -27
  442. package/docs/components/composed/inline-edit.md +35 -35
  443. package/docs/components/composed/loading-skeleton.md +51 -51
  444. package/docs/components/composed/markdown-viewer.md +27 -27
  445. package/docs/components/composed/master-detail.md +48 -48
  446. package/docs/components/composed/member-picker.md +35 -35
  447. package/docs/components/composed/multi-select-popover.md +62 -62
  448. package/docs/components/composed/page-header.md +41 -41
  449. package/docs/components/composed/page-skeletons.md +32 -32
  450. package/docs/components/composed/priority-indicator.md +32 -32
  451. package/docs/components/composed/responsive-overlay.md +34 -34
  452. package/docs/components/composed/rich-text-editor.md +82 -82
  453. package/docs/components/composed/schedule-view.md +39 -39
  454. package/docs/components/composed/simple-tooltip.md +33 -33
  455. package/docs/components/composed/status-badge.md +55 -55
  456. package/docs/components/shell/app-command-palette.md +44 -44
  457. package/docs/components/shell/bottom-navbar.md +52 -52
  458. package/docs/components/shell/command-registry.md +48 -48
  459. package/docs/components/shell/link-context.md +41 -41
  460. package/docs/components/shell/notification-center.md +63 -63
  461. package/docs/components/shell/notification-preferences.md +42 -42
  462. package/docs/components/shell/sidebar.md +92 -92
  463. package/docs/components/shell/top-bar.md +143 -143
  464. package/docs/components/ui/accordion.md +51 -51
  465. package/docs/components/ui/alert-dialog.md +61 -61
  466. package/docs/components/ui/alert.md +46 -46
  467. package/docs/components/ui/aspect-ratio.md +25 -25
  468. package/docs/components/ui/autocomplete.md +48 -48
  469. package/docs/components/ui/avatar.md +56 -56
  470. package/docs/components/ui/badge.md +83 -82
  471. package/docs/components/ui/banner.md +42 -42
  472. package/docs/components/ui/breadcrumb.md +37 -37
  473. package/docs/components/ui/button-group.md +41 -41
  474. package/docs/components/ui/button.md +94 -93
  475. package/docs/components/ui/card.md +52 -52
  476. package/docs/components/ui/charts.md +43 -43
  477. package/docs/components/ui/checkbox.md +36 -36
  478. package/docs/components/ui/chip.md +47 -47
  479. package/docs/components/ui/code.md +28 -28
  480. package/docs/components/ui/collapsible.md +40 -40
  481. package/docs/components/ui/color-input.md +91 -91
  482. package/docs/components/ui/color-swatch.md +25 -25
  483. package/docs/components/ui/combobox.md +54 -54
  484. package/docs/components/ui/container.md +26 -26
  485. package/docs/components/ui/context-menu.md +43 -43
  486. package/docs/components/ui/data-table-body.md +1 -1
  487. package/docs/components/ui/data-table-bulk-actions.md +1 -1
  488. package/docs/components/ui/data-table-card.md +1 -1
  489. package/docs/components/ui/data-table-context.md +1 -1
  490. package/docs/components/ui/data-table-header.md +1 -1
  491. package/docs/components/ui/data-table-pagination.md +1 -1
  492. package/docs/components/ui/data-table-toolbar.md +44 -44
  493. package/docs/components/ui/data-table.md +94 -94
  494. package/docs/components/ui/dialog.md +54 -54
  495. package/docs/components/ui/dropdown-menu.md +48 -48
  496. package/docs/components/ui/file-upload.md +41 -41
  497. package/docs/components/ui/form.md +51 -51
  498. package/docs/components/ui/hover-card.md +32 -32
  499. package/docs/components/ui/icon-button.md +40 -40
  500. package/docs/components/ui/input-otp.md +44 -44
  501. package/docs/components/ui/input.md +74 -74
  502. package/docs/components/ui/label.md +25 -25
  503. package/docs/components/ui/link.md +29 -29
  504. package/docs/components/ui/menubar.md +44 -44
  505. package/docs/components/ui/navigation-menu.md +46 -46
  506. package/docs/components/ui/number-input.md +44 -44
  507. package/docs/components/ui/pagination.md +48 -48
  508. package/docs/components/ui/popover.md +30 -30
  509. package/docs/components/ui/progress-ring.md +41 -41
  510. package/docs/components/ui/progress.md +34 -34
  511. package/docs/components/ui/radio.md +34 -34
  512. package/docs/components/ui/search-input.md +43 -43
  513. package/docs/components/ui/segmented-control.md +50 -50
  514. package/docs/components/ui/select.md +53 -53
  515. package/docs/components/ui/separator.md +32 -32
  516. package/docs/components/ui/sheet.md +47 -47
  517. package/docs/components/ui/sidebar.md +72 -72
  518. package/docs/components/ui/skeleton.md +77 -77
  519. package/docs/components/ui/slider.md +29 -29
  520. package/docs/components/ui/spinner.md +54 -54
  521. package/docs/components/ui/stack.md +39 -39
  522. package/docs/components/ui/stat-card.md +61 -61
  523. package/docs/components/ui/status-dot.md +26 -26
  524. package/docs/components/ui/stepper.md +49 -49
  525. package/docs/components/ui/switch.md +47 -47
  526. package/docs/components/ui/table.md +47 -47
  527. package/docs/components/ui/tabs.md +60 -60
  528. package/docs/components/ui/text.md +37 -37
  529. package/docs/components/ui/textarea.md +39 -39
  530. package/docs/components/ui/toast.md +65 -65
  531. package/docs/components/ui/toaster.md +47 -47
  532. package/docs/components/ui/toggle-group.md +43 -43
  533. package/docs/components/ui/toggle.md +37 -37
  534. package/docs/components/ui/tooltip.md +38 -38
  535. package/docs/components/ui/tree-view.md +65 -65
  536. package/docs/components/ui/visually-hidden.md +21 -21
  537. package/llms-full.txt +5266 -5264
  538. package/llms.txt +624 -580
  539. package/package.json +7 -8
  540. package/dist/_chunks/date-time-picker.js +0 -851
  541. package/dist/_chunks/typing-indicator.js +0 -565
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonner.js","names":[],"sources":["../../../../node_modules/.pnpm/sonner@2.0.7_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/sonner/dist/index.mjs"],"sourcesContent":["'use client';\nfunction __insertCSS(code) {\n if (!code || typeof document == 'undefined') return\n let head = document.head || document.getElementsByTagName('head')[0]\n let style = document.createElement('style')\n style.type = 'text/css'\n head.appendChild(style)\n ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code))\n}\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nconst getAsset = (type)=>{\n switch(type){\n case 'success':\n return SuccessIcon;\n case 'info':\n return InfoIcon;\n case 'warning':\n return WarningIcon;\n case 'error':\n return ErrorIcon;\n default:\n return null;\n }\n};\nconst bars = Array(12).fill(0);\nconst Loader = ({ visible, className })=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: [\n 'sonner-loading-wrapper',\n className\n ].filter(Boolean).join(' '),\n \"data-visible\": visible\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-spinner\"\n }, bars.map((_, i)=>/*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-loading-bar\",\n key: `spinner-bar-${i}`\n }))));\n};\nconst SuccessIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\",\n clipRule: \"evenodd\"\n}));\nconst WarningIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\",\n clipRule: \"evenodd\"\n}));\nconst InfoIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\",\n clipRule: \"evenodd\"\n}));\nconst ErrorIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\",\n clipRule: \"evenodd\"\n}));\nconst CloseIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"12\",\n height: \"12\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n}), /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n}));\n\nconst useIsDocumentHidden = ()=>{\n const [isDocumentHidden, setIsDocumentHidden] = React.useState(document.hidden);\n React.useEffect(()=>{\n const callback = ()=>{\n setIsDocumentHidden(document.hidden);\n };\n document.addEventListener('visibilitychange', callback);\n return ()=>window.removeEventListener('visibilitychange', callback);\n }, []);\n return isDocumentHidden;\n};\n\nlet toastsCounter = 1;\nclass Observer {\n constructor(){\n // We use arrow functions to maintain the correct `this` reference\n this.subscribe = (subscriber)=>{\n this.subscribers.push(subscriber);\n return ()=>{\n const index = this.subscribers.indexOf(subscriber);\n this.subscribers.splice(index, 1);\n };\n };\n this.publish = (data)=>{\n this.subscribers.forEach((subscriber)=>subscriber(data));\n };\n this.addToast = (data)=>{\n this.publish(data);\n this.toasts = [\n ...this.toasts,\n data\n ];\n };\n this.create = (data)=>{\n var _data_id;\n const { message, ...rest } = data;\n const id = typeof (data == null ? void 0 : data.id) === 'number' || ((_data_id = data.id) == null ? void 0 : _data_id.length) > 0 ? data.id : toastsCounter++;\n const alreadyExists = this.toasts.find((toast)=>{\n return toast.id === id;\n });\n const dismissible = data.dismissible === undefined ? true : data.dismissible;\n if (this.dismissedToasts.has(id)) {\n this.dismissedToasts.delete(id);\n }\n if (alreadyExists) {\n this.toasts = this.toasts.map((toast)=>{\n if (toast.id === id) {\n this.publish({\n ...toast,\n ...data,\n id,\n title: message\n });\n return {\n ...toast,\n ...data,\n id,\n dismissible,\n title: message\n };\n }\n return toast;\n });\n } else {\n this.addToast({\n title: message,\n ...rest,\n dismissible,\n id\n });\n }\n return id;\n };\n this.dismiss = (id)=>{\n if (id) {\n this.dismissedToasts.add(id);\n requestAnimationFrame(()=>this.subscribers.forEach((subscriber)=>subscriber({\n id,\n dismiss: true\n })));\n } else {\n this.toasts.forEach((toast)=>{\n this.subscribers.forEach((subscriber)=>subscriber({\n id: toast.id,\n dismiss: true\n }));\n });\n }\n return id;\n };\n this.message = (message, data)=>{\n return this.create({\n ...data,\n message\n });\n };\n this.error = (message, data)=>{\n return this.create({\n ...data,\n message,\n type: 'error'\n });\n };\n this.success = (message, data)=>{\n return this.create({\n ...data,\n type: 'success',\n message\n });\n };\n this.info = (message, data)=>{\n return this.create({\n ...data,\n type: 'info',\n message\n });\n };\n this.warning = (message, data)=>{\n return this.create({\n ...data,\n type: 'warning',\n message\n });\n };\n this.loading = (message, data)=>{\n return this.create({\n ...data,\n type: 'loading',\n message\n });\n };\n this.promise = (promise, data)=>{\n if (!data) {\n // Nothing to show\n return;\n }\n let id = undefined;\n if (data.loading !== undefined) {\n id = this.create({\n ...data,\n promise,\n type: 'loading',\n message: data.loading,\n description: typeof data.description !== 'function' ? data.description : undefined\n });\n }\n const p = Promise.resolve(promise instanceof Function ? promise() : promise);\n let shouldDismiss = id !== undefined;\n let result;\n const originalPromise = p.then(async (response)=>{\n result = [\n 'resolve',\n response\n ];\n const isReactElementResponse = React.isValidElement(response);\n if (isReactElementResponse) {\n shouldDismiss = false;\n this.create({\n id,\n type: 'default',\n message: response\n });\n } else if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n const description = typeof data.description === 'function' ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (response instanceof Error) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(response) : data.error;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (data.success !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.success === 'function' ? await data.success(response) : data.success;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'success',\n description,\n ...toastSettings\n });\n }\n }).catch(async (error)=>{\n result = [\n 'reject',\n error\n ];\n if (data.error !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(error) : data.error;\n const description = typeof data.description === 'function' ? await data.description(error) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n }\n }).finally(()=>{\n if (shouldDismiss) {\n // Toast is still in load state (and will be indefinitely — dismiss it)\n this.dismiss(id);\n id = undefined;\n }\n data.finally == null ? void 0 : data.finally.call(data);\n });\n const unwrap = ()=>new Promise((resolve, reject)=>originalPromise.then(()=>result[0] === 'reject' ? reject(result[1]) : resolve(result[1])).catch(reject));\n if (typeof id !== 'string' && typeof id !== 'number') {\n // cannot Object.assign on undefined\n return {\n unwrap\n };\n } else {\n return Object.assign(id, {\n unwrap\n });\n }\n };\n this.custom = (jsx, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n this.create({\n jsx: jsx(id),\n id,\n ...data\n });\n return id;\n };\n this.getActiveToasts = ()=>{\n return this.toasts.filter((toast)=>!this.dismissedToasts.has(toast.id));\n };\n this.subscribers = [];\n this.toasts = [];\n this.dismissedToasts = new Set();\n }\n}\nconst ToastState = new Observer();\n// bind this to the toast function\nconst toastFunction = (message, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n ToastState.addToast({\n title: message,\n ...data,\n id\n });\n return id;\n};\nconst isHttpResponse = (data)=>{\n return data && typeof data === 'object' && 'ok' in data && typeof data.ok === 'boolean' && 'status' in data && typeof data.status === 'number';\n};\nconst basicToast = toastFunction;\nconst getHistory = ()=>ToastState.toasts;\nconst getToasts = ()=>ToastState.getActiveToasts();\n// We use `Object.assign` to maintain the correct types as we would lose them otherwise\nconst toast = Object.assign(basicToast, {\n success: ToastState.success,\n info: ToastState.info,\n warning: ToastState.warning,\n error: ToastState.error,\n custom: ToastState.custom,\n message: ToastState.message,\n promise: ToastState.promise,\n dismiss: ToastState.dismiss,\n loading: ToastState.loading\n}, {\n getHistory,\n getToasts\n});\n\n__insertCSS(\"[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\");\n\nfunction isAction(action) {\n return action.label !== undefined;\n}\n\n// Visible toasts amount\nconst VISIBLE_TOASTS_AMOUNT = 3;\n// Viewport padding\nconst VIEWPORT_OFFSET = '24px';\n// Mobile viewport padding\nconst MOBILE_VIEWPORT_OFFSET = '16px';\n// Default lifetime of a toasts (in ms)\nconst TOAST_LIFETIME = 4000;\n// Default toast width\nconst TOAST_WIDTH = 356;\n// Default gap between toasts\nconst GAP = 14;\n// Threshold to dismiss a toast\nconst SWIPE_THRESHOLD = 45;\n// Equal to exit animation duration\nconst TIME_BEFORE_UNMOUNT = 200;\nfunction cn(...classes) {\n return classes.filter(Boolean).join(' ');\n}\nfunction getDefaultSwipeDirections(position) {\n const [y, x] = position.split('-');\n const directions = [];\n if (y) {\n directions.push(y);\n }\n if (x) {\n directions.push(x);\n }\n return directions;\n}\nconst Toast = (props)=>{\n var _toast_classNames, _toast_classNames1, _toast_classNames2, _toast_classNames3, _toast_classNames4, _toast_classNames5, _toast_classNames6, _toast_classNames7, _toast_classNames8;\n const { invert: ToasterInvert, toast, unstyled, interacting, setHeights, visibleToasts, heights, index, toasts, expanded, removeToast, defaultRichColors, closeButton: closeButtonFromToaster, style, cancelButtonStyle, actionButtonStyle, className = '', descriptionClassName = '', duration: durationFromToaster, position, gap, expandByDefault, classNames, icons, closeButtonAriaLabel = 'Close toast' } = props;\n const [swipeDirection, setSwipeDirection] = React.useState(null);\n const [swipeOutDirection, setSwipeOutDirection] = React.useState(null);\n const [mounted, setMounted] = React.useState(false);\n const [removed, setRemoved] = React.useState(false);\n const [swiping, setSwiping] = React.useState(false);\n const [swipeOut, setSwipeOut] = React.useState(false);\n const [isSwiped, setIsSwiped] = React.useState(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n const [initialHeight, setInitialHeight] = React.useState(0);\n const remainingTime = React.useRef(toast.duration || durationFromToaster || TOAST_LIFETIME);\n const dragStartTime = React.useRef(null);\n const toastRef = React.useRef(null);\n const isFront = index === 0;\n const isVisible = index + 1 <= visibleToasts;\n const toastType = toast.type;\n const dismissible = toast.dismissible !== false;\n const toastClassname = toast.className || '';\n const toastDescriptionClassname = toast.descriptionClassName || '';\n // Height index is used to calculate the offset as it gets updated before the toast array, which means we can calculate the new layout faster.\n const heightIndex = React.useMemo(()=>heights.findIndex((height)=>height.toastId === toast.id) || 0, [\n heights,\n toast.id\n ]);\n const closeButton = React.useMemo(()=>{\n var _toast_closeButton;\n return (_toast_closeButton = toast.closeButton) != null ? _toast_closeButton : closeButtonFromToaster;\n }, [\n toast.closeButton,\n closeButtonFromToaster\n ]);\n const duration = React.useMemo(()=>toast.duration || durationFromToaster || TOAST_LIFETIME, [\n toast.duration,\n durationFromToaster\n ]);\n const closeTimerStartTimeRef = React.useRef(0);\n const offset = React.useRef(0);\n const lastCloseTimerStartTimeRef = React.useRef(0);\n const pointerStartRef = React.useRef(null);\n const [y, x] = position.split('-');\n const toastsHeightBefore = React.useMemo(()=>{\n return heights.reduce((prev, curr, reducerIndex)=>{\n // Calculate offset up until current toast\n if (reducerIndex >= heightIndex) {\n return prev;\n }\n return prev + curr.height;\n }, 0);\n }, [\n heights,\n heightIndex\n ]);\n const isDocumentHidden = useIsDocumentHidden();\n const invert = toast.invert || ToasterInvert;\n const disabled = toastType === 'loading';\n offset.current = React.useMemo(()=>heightIndex * gap + toastsHeightBefore, [\n heightIndex,\n toastsHeightBefore\n ]);\n React.useEffect(()=>{\n remainingTime.current = duration;\n }, [\n duration\n ]);\n React.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n setMounted(true);\n }, []);\n React.useEffect(()=>{\n const toastNode = toastRef.current;\n if (toastNode) {\n const height = toastNode.getBoundingClientRect().height;\n // Add toast height to heights array after the toast is mounted\n setInitialHeight(height);\n setHeights((h)=>[\n {\n toastId: toast.id,\n height,\n position: toast.position\n },\n ...h\n ]);\n return ()=>setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n }\n }, [\n setHeights,\n toast.id\n ]);\n React.useLayoutEffect(()=>{\n // Keep height up to date with the content in case it updates\n if (!mounted) return;\n const toastNode = toastRef.current;\n const originalHeight = toastNode.style.height;\n toastNode.style.height = 'auto';\n const newHeight = toastNode.getBoundingClientRect().height;\n toastNode.style.height = originalHeight;\n setInitialHeight(newHeight);\n setHeights((heights)=>{\n const alreadyExists = heights.find((height)=>height.toastId === toast.id);\n if (!alreadyExists) {\n return [\n {\n toastId: toast.id,\n height: newHeight,\n position: toast.position\n },\n ...heights\n ];\n } else {\n return heights.map((height)=>height.toastId === toast.id ? {\n ...height,\n height: newHeight\n } : height);\n }\n });\n }, [\n mounted,\n toast.title,\n toast.description,\n setHeights,\n toast.id,\n toast.jsx,\n toast.action,\n toast.cancel\n ]);\n const deleteToast = React.useCallback(()=>{\n // Save the offset for the exit swipe animation\n setRemoved(true);\n setOffsetBeforeRemove(offset.current);\n setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n setTimeout(()=>{\n removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, [\n toast,\n removeToast,\n setHeights,\n offset\n ]);\n React.useEffect(()=>{\n if (toast.promise && toastType === 'loading' || toast.duration === Infinity || toast.type === 'loading') return;\n let timeoutId;\n // Pause the timer on each hover\n const pauseTimer = ()=>{\n if (lastCloseTimerStartTimeRef.current < closeTimerStartTimeRef.current) {\n // Get the elapsed time since the timer started\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;\n remainingTime.current = remainingTime.current - elapsedTime;\n }\n lastCloseTimerStartTimeRef.current = new Date().getTime();\n };\n const startTimer = ()=>{\n // setTimeout(, Infinity) behaves as if the delay is 0.\n // As a result, the toast would be closed immediately, giving the appearance that it was never rendered.\n // See: https://github.com/denysdovhan/wtfjs?tab=readme-ov-file#an-infinite-timeout\n if (remainingTime.current === Infinity) return;\n closeTimerStartTimeRef.current = new Date().getTime();\n // Let the toast know it has started\n timeoutId = setTimeout(()=>{\n toast.onAutoClose == null ? void 0 : toast.onAutoClose.call(toast, toast);\n deleteToast();\n }, remainingTime.current);\n };\n if (expanded || interacting || isDocumentHidden) {\n pauseTimer();\n } else {\n startTimer();\n }\n return ()=>clearTimeout(timeoutId);\n }, [\n expanded,\n interacting,\n toast,\n toastType,\n isDocumentHidden,\n deleteToast\n ]);\n React.useEffect(()=>{\n if (toast.delete) {\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n }\n }, [\n deleteToast,\n toast.delete\n ]);\n function getLoadingIcon() {\n var _toast_classNames;\n if (icons == null ? void 0 : icons.loading) {\n var _toast_classNames1;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1.loader, 'sonner-loader'),\n \"data-visible\": toastType === 'loading'\n }, icons.loading);\n }\n return /*#__PURE__*/ React.createElement(Loader, {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.loader),\n visible: toastType === 'loading'\n });\n }\n const icon = toast.icon || (icons == null ? void 0 : icons[toastType]) || getAsset(toastType);\n var _toast_richColors, _icons_close;\n return /*#__PURE__*/ React.createElement(\"li\", {\n tabIndex: 0,\n ref: toastRef,\n className: cn(className, toastClassname, classNames == null ? void 0 : classNames.toast, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.toast, classNames == null ? void 0 : classNames.default, classNames == null ? void 0 : classNames[toastType], toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1[toastType]),\n \"data-sonner-toast\": \"\",\n \"data-rich-colors\": (_toast_richColors = toast.richColors) != null ? _toast_richColors : defaultRichColors,\n \"data-styled\": !Boolean(toast.jsx || toast.unstyled || unstyled),\n \"data-mounted\": mounted,\n \"data-promise\": Boolean(toast.promise),\n \"data-swiped\": isSwiped,\n \"data-removed\": removed,\n \"data-visible\": isVisible,\n \"data-y-position\": y,\n \"data-x-position\": x,\n \"data-index\": index,\n \"data-front\": isFront,\n \"data-swiping\": swiping,\n \"data-dismissible\": dismissible,\n \"data-type\": toastType,\n \"data-invert\": invert,\n \"data-swipe-out\": swipeOut,\n \"data-swipe-direction\": swipeOutDirection,\n \"data-expanded\": Boolean(expanded || expandByDefault && mounted),\n \"data-testid\": toast.testId,\n style: {\n '--index': index,\n '--toasts-before': index,\n '--z-index': toasts.length - index,\n '--offset': `${removed ? offsetBeforeRemove : offset.current}px`,\n '--initial-height': expandByDefault ? 'auto' : `${initialHeight}px`,\n ...style,\n ...toast.style\n },\n onDragEnd: ()=>{\n setSwiping(false);\n setSwipeDirection(null);\n pointerStartRef.current = null;\n },\n onPointerDown: (event)=>{\n if (event.button === 2) return; // Return early on right click\n if (disabled || !dismissible) return;\n dragStartTime.current = new Date();\n setOffsetBeforeRemove(offset.current);\n // Ensure we maintain correct pointer capture even when going outside of the toast (e.g. when swiping)\n event.target.setPointerCapture(event.pointerId);\n if (event.target.tagName === 'BUTTON') return;\n setSwiping(true);\n pointerStartRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n },\n onPointerUp: ()=>{\n var _toastRef_current, _toastRef_current1, _dragStartTime_current;\n if (swipeOut || !dismissible) return;\n pointerStartRef.current = null;\n const swipeAmountX = Number(((_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.getPropertyValue('--swipe-amount-x').replace('px', '')) || 0);\n const swipeAmountY = Number(((_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.getPropertyValue('--swipe-amount-y').replace('px', '')) || 0);\n const timeTaken = new Date().getTime() - ((_dragStartTime_current = dragStartTime.current) == null ? void 0 : _dragStartTime_current.getTime());\n const swipeAmount = swipeDirection === 'x' ? swipeAmountX : swipeAmountY;\n const velocity = Math.abs(swipeAmount) / timeTaken;\n if (Math.abs(swipeAmount) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(offset.current);\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n if (swipeDirection === 'x') {\n setSwipeOutDirection(swipeAmountX > 0 ? 'right' : 'left');\n } else {\n setSwipeOutDirection(swipeAmountY > 0 ? 'down' : 'up');\n }\n deleteToast();\n setSwipeOut(true);\n return;\n } else {\n var _toastRef_current2, _toastRef_current3;\n (_toastRef_current2 = toastRef.current) == null ? void 0 : _toastRef_current2.style.setProperty('--swipe-amount-x', `0px`);\n (_toastRef_current3 = toastRef.current) == null ? void 0 : _toastRef_current3.style.setProperty('--swipe-amount-y', `0px`);\n }\n setIsSwiped(false);\n setSwiping(false);\n setSwipeDirection(null);\n },\n onPointerMove: (event)=>{\n var _window_getSelection, // Apply transform using both x and y values\n _toastRef_current, _toastRef_current1;\n if (!pointerStartRef.current || !dismissible) return;\n const isHighlighted = ((_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString().length) > 0;\n if (isHighlighted) return;\n const yDelta = event.clientY - pointerStartRef.current.y;\n const xDelta = event.clientX - pointerStartRef.current.x;\n var _props_swipeDirections;\n const swipeDirections = (_props_swipeDirections = props.swipeDirections) != null ? _props_swipeDirections : getDefaultSwipeDirections(position);\n // Determine swipe direction if not already locked\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n setSwipeDirection(Math.abs(xDelta) > Math.abs(yDelta) ? 'x' : 'y');\n }\n let swipeAmount = {\n x: 0,\n y: 0\n };\n const getDampening = (delta)=>{\n const factor = Math.abs(delta) / 20;\n return 1 / (1.5 + factor);\n };\n // Only apply swipe in the locked direction\n if (swipeDirection === 'y') {\n // Handle vertical swipes\n if (swipeDirections.includes('top') || swipeDirections.includes('bottom')) {\n if (swipeDirections.includes('top') && yDelta < 0 || swipeDirections.includes('bottom') && yDelta > 0) {\n swipeAmount.y = yDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = yDelta * getDampening(yDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.y = Math.abs(dampenedDelta) < Math.abs(yDelta) ? dampenedDelta : yDelta;\n }\n }\n } else if (swipeDirection === 'x') {\n // Handle horizontal swipes\n if (swipeDirections.includes('left') || swipeDirections.includes('right')) {\n if (swipeDirections.includes('left') && xDelta < 0 || swipeDirections.includes('right') && xDelta > 0) {\n swipeAmount.x = xDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = xDelta * getDampening(xDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.x = Math.abs(dampenedDelta) < Math.abs(xDelta) ? dampenedDelta : xDelta;\n }\n }\n }\n if (Math.abs(swipeAmount.x) > 0 || Math.abs(swipeAmount.y) > 0) {\n setIsSwiped(true);\n }\n (_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.setProperty('--swipe-amount-x', `${swipeAmount.x}px`);\n (_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.setProperty('--swipe-amount-y', `${swipeAmount.y}px`);\n }\n }, closeButton && !toast.jsx && toastType !== 'loading' ? /*#__PURE__*/ React.createElement(\"button\", {\n \"aria-label\": closeButtonAriaLabel,\n \"data-disabled\": disabled,\n \"data-close-button\": true,\n onClick: disabled || !dismissible ? ()=>{} : ()=>{\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n },\n className: cn(classNames == null ? void 0 : classNames.closeButton, toast == null ? void 0 : (_toast_classNames2 = toast.classNames) == null ? void 0 : _toast_classNames2.closeButton)\n }, (_icons_close = icons == null ? void 0 : icons.close) != null ? _icons_close : CloseIcon) : null, (toastType || toast.icon || toast.promise) && toast.icon !== null && ((icons == null ? void 0 : icons[toastType]) !== null || toast.icon) ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-icon\": \"\",\n className: cn(classNames == null ? void 0 : classNames.icon, toast == null ? void 0 : (_toast_classNames3 = toast.classNames) == null ? void 0 : _toast_classNames3.icon)\n }, toast.promise || toast.type === 'loading' && !toast.icon ? toast.icon || getLoadingIcon() : null, toast.type !== 'loading' ? icon : null) : null, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-content\": \"\",\n className: cn(classNames == null ? void 0 : classNames.content, toast == null ? void 0 : (_toast_classNames4 = toast.classNames) == null ? void 0 : _toast_classNames4.content)\n }, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-title\": \"\",\n className: cn(classNames == null ? void 0 : classNames.title, toast == null ? void 0 : (_toast_classNames5 = toast.classNames) == null ? void 0 : _toast_classNames5.title)\n }, toast.jsx ? toast.jsx : typeof toast.title === 'function' ? toast.title() : toast.title), toast.description ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-description\": \"\",\n className: cn(descriptionClassName, toastDescriptionClassname, classNames == null ? void 0 : classNames.description, toast == null ? void 0 : (_toast_classNames6 = toast.classNames) == null ? void 0 : _toast_classNames6.description)\n }, typeof toast.description === 'function' ? toast.description() : toast.description) : null), /*#__PURE__*/ React.isValidElement(toast.cancel) ? toast.cancel : toast.cancel && isAction(toast.cancel) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-cancel\": true,\n style: toast.cancelButtonStyle || cancelButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.cancel)) return;\n if (!dismissible) return;\n toast.cancel.onClick == null ? void 0 : toast.cancel.onClick.call(toast.cancel, event);\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.cancelButton, toast == null ? void 0 : (_toast_classNames7 = toast.classNames) == null ? void 0 : _toast_classNames7.cancelButton)\n }, toast.cancel.label) : null, /*#__PURE__*/ React.isValidElement(toast.action) ? toast.action : toast.action && isAction(toast.action) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-action\": true,\n style: toast.actionButtonStyle || actionButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.action)) return;\n toast.action.onClick == null ? void 0 : toast.action.onClick.call(toast.action, event);\n if (event.defaultPrevented) return;\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.actionButton, toast == null ? void 0 : (_toast_classNames8 = toast.classNames) == null ? void 0 : _toast_classNames8.actionButton)\n }, toast.action.label) : null);\n};\nfunction getDocumentDirection() {\n if (typeof window === 'undefined') return 'ltr';\n if (typeof document === 'undefined') return 'ltr'; // For Fresh purpose\n const dirAttribute = document.documentElement.getAttribute('dir');\n if (dirAttribute === 'auto' || !dirAttribute) {\n return window.getComputedStyle(document.documentElement).direction;\n }\n return dirAttribute;\n}\nfunction assignOffset(defaultOffset, mobileOffset) {\n const styles = {};\n [\n defaultOffset,\n mobileOffset\n ].forEach((offset, index)=>{\n const isMobile = index === 1;\n const prefix = isMobile ? '--mobile-offset' : '--offset';\n const defaultValue = isMobile ? MOBILE_VIEWPORT_OFFSET : VIEWPORT_OFFSET;\n function assignAll(offset) {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n styles[`${prefix}-${key}`] = typeof offset === 'number' ? `${offset}px` : offset;\n });\n }\n if (typeof offset === 'number' || typeof offset === 'string') {\n assignAll(offset);\n } else if (typeof offset === 'object') {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n if (offset[key] === undefined) {\n styles[`${prefix}-${key}`] = defaultValue;\n } else {\n styles[`${prefix}-${key}`] = typeof offset[key] === 'number' ? `${offset[key]}px` : offset[key];\n }\n });\n } else {\n assignAll(defaultValue);\n }\n });\n return styles;\n}\nfunction useSonner() {\n const [activeToasts, setActiveToasts] = React.useState([]);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>toasts.filter((t)=>t.id !== toast.id));\n });\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, []);\n return {\n toasts: activeToasts\n };\n}\nconst Toaster = /*#__PURE__*/ React.forwardRef(function Toaster(props, ref) {\n const { id, invert, position = 'bottom-right', hotkey = [\n 'altKey',\n 'KeyT'\n ], expand, closeButton, className, offset, mobileOffset, theme = 'light', richColors, duration, style, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, containerAriaLabel = 'Notifications' } = props;\n const [toasts, setToasts] = React.useState([]);\n const filteredToasts = React.useMemo(()=>{\n if (id) {\n return toasts.filter((toast)=>toast.toasterId === id);\n }\n return toasts.filter((toast)=>!toast.toasterId);\n }, [\n toasts,\n id\n ]);\n const possiblePositions = React.useMemo(()=>{\n return Array.from(new Set([\n position\n ].concat(filteredToasts.filter((toast)=>toast.position).map((toast)=>toast.position))));\n }, [\n filteredToasts,\n position\n ]);\n const [heights, setHeights] = React.useState([]);\n const [expanded, setExpanded] = React.useState(false);\n const [interacting, setInteracting] = React.useState(false);\n const [actualTheme, setActualTheme] = React.useState(theme !== 'system' ? theme : typeof window !== 'undefined' ? window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : 'light');\n const listRef = React.useRef(null);\n const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\n const lastFocusedElementRef = React.useRef(null);\n const isFocusWithinRef = React.useRef(false);\n const removeToast = React.useCallback((toastToRemove)=>{\n setToasts((toasts)=>{\n var _toasts_find;\n if (!((_toasts_find = toasts.find((toast)=>toast.id === toastToRemove.id)) == null ? void 0 : _toasts_find.delete)) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts.filter(({ id })=>id !== toastToRemove.id);\n });\n }, []);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n // Prevent batching of other state updates\n requestAnimationFrame(()=>{\n setToasts((toasts)=>toasts.map((t)=>t.id === toast.id ? {\n ...t,\n delete: true\n } : t));\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n if (theme !== 'system') {\n setActualTheme(theme);\n return;\n }\n if (theme === 'system') {\n // check if current preference is dark\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n // it's currently dark\n setActualTheme('dark');\n } else {\n // it's not dark\n setActualTheme('light');\n }\n }\n if (typeof window === 'undefined') return;\n const darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n try {\n // Chrome & Firefox\n darkMediaQuery.addEventListener('change', ({ matches })=>{\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n });\n } catch (error) {\n // Safari < 14\n darkMediaQuery.addListener(({ matches })=>{\n try {\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n }, [\n theme\n ]);\n React.useEffect(()=>{\n // Ensure expanded is always false when no toasts are present / only one left\n if (toasts.length <= 1) {\n setExpanded(false);\n }\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n const handleKeyDown = (event)=>{\n var _listRef_current;\n const isHotkeyPressed = hotkey.every((key)=>event[key] || event.code === key);\n if (isHotkeyPressed) {\n var _listRef_current1;\n setExpanded(true);\n (_listRef_current1 = listRef.current) == null ? void 0 : _listRef_current1.focus();\n }\n if (event.code === 'Escape' && (document.activeElement === listRef.current || ((_listRef_current = listRef.current) == null ? void 0 : _listRef_current.contains(document.activeElement)))) {\n setExpanded(false);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return ()=>document.removeEventListener('keydown', handleKeyDown);\n }, [\n hotkey\n ]);\n React.useEffect(()=>{\n if (listRef.current) {\n return ()=>{\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n isFocusWithinRef.current = false;\n }\n };\n }\n }, [\n listRef.current\n ]);\n return(// Remove item from normal navigation flow, only available via hotkey\n /*#__PURE__*/ React.createElement(\"section\", {\n ref: ref,\n \"aria-label\": `${containerAriaLabel} ${hotkeyLabel}`,\n tabIndex: -1,\n \"aria-live\": \"polite\",\n \"aria-relevant\": \"additions text\",\n \"aria-atomic\": \"false\",\n suppressHydrationWarning: true\n }, possiblePositions.map((position, index)=>{\n var _heights_;\n const [y, x] = position.split('-');\n if (!filteredToasts.length) return null;\n return /*#__PURE__*/ React.createElement(\"ol\", {\n key: position,\n dir: dir === 'auto' ? getDocumentDirection() : dir,\n tabIndex: -1,\n ref: listRef,\n className: className,\n \"data-sonner-toaster\": true,\n \"data-sonner-theme\": actualTheme,\n \"data-y-position\": y,\n \"data-x-position\": x,\n style: {\n '--front-toast-height': `${((_heights_ = heights[0]) == null ? void 0 : _heights_.height) || 0}px`,\n '--width': `${TOAST_WIDTH}px`,\n '--gap': `${gap}px`,\n ...style,\n ...assignOffset(offset, mobileOffset)\n },\n onBlur: (event)=>{\n if (isFocusWithinRef.current && !event.currentTarget.contains(event.relatedTarget)) {\n isFocusWithinRef.current = false;\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n }\n }\n },\n onFocus: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n if (!isFocusWithinRef.current) {\n isFocusWithinRef.current = true;\n lastFocusedElementRef.current = event.relatedTarget;\n }\n },\n onMouseEnter: ()=>setExpanded(true),\n onMouseMove: ()=>setExpanded(true),\n onMouseLeave: ()=>{\n // Avoid setting expanded to false when interacting with a toast, e.g. swiping\n if (!interacting) {\n setExpanded(false);\n }\n },\n onDragEnd: ()=>setExpanded(false),\n onPointerDown: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n setInteracting(true);\n },\n onPointerUp: ()=>setInteracting(false)\n }, filteredToasts.filter((toast)=>!toast.position && index === 0 || toast.position === position).map((toast, index)=>{\n var _toastOptions_duration, _toastOptions_closeButton;\n return /*#__PURE__*/ React.createElement(Toast, {\n key: toast.id,\n icons: icons,\n index: index,\n toast: toast,\n defaultRichColors: richColors,\n duration: (_toastOptions_duration = toastOptions == null ? void 0 : toastOptions.duration) != null ? _toastOptions_duration : duration,\n className: toastOptions == null ? void 0 : toastOptions.className,\n descriptionClassName: toastOptions == null ? void 0 : toastOptions.descriptionClassName,\n invert: invert,\n visibleToasts: visibleToasts,\n closeButton: (_toastOptions_closeButton = toastOptions == null ? void 0 : toastOptions.closeButton) != null ? _toastOptions_closeButton : closeButton,\n interacting: interacting,\n position: position,\n style: toastOptions == null ? void 0 : toastOptions.style,\n unstyled: toastOptions == null ? void 0 : toastOptions.unstyled,\n classNames: toastOptions == null ? void 0 : toastOptions.classNames,\n cancelButtonStyle: toastOptions == null ? void 0 : toastOptions.cancelButtonStyle,\n actionButtonStyle: toastOptions == null ? void 0 : toastOptions.actionButtonStyle,\n closeButtonAriaLabel: toastOptions == null ? void 0 : toastOptions.closeButtonAriaLabel,\n removeToast: removeToast,\n toasts: filteredToasts.filter((t)=>t.position == toast.position),\n heights: heights.filter((h)=>h.position == toast.position),\n setHeights: setHeights,\n expandByDefault: expand,\n gap: gap,\n expanded: expanded,\n swipeDirections: props.swipeDirections\n });\n }));\n })));\n});\n\nexport { Toaster, toast, useSonner };\n"],"x_google_ignoreList":[0],"mappings":"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"}