@g4rcez/components 5.0.1 → 5.0.3

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 (514) hide show
  1. package/dist/AnimatePresence-j36AYeOQ.js +181 -0
  2. package/dist/AnimatePresence-j36AYeOQ.js.map +1 -0
  3. package/dist/Calendar.es-xICmgvjq.js +23 -0
  4. package/dist/Calendar.es-xICmgvjq.js.map +1 -0
  5. package/dist/Funnel.es-DjKVl8Nj.js +23 -0
  6. package/dist/Funnel.es-DjKVl8Nj.js.map +1 -0
  7. package/dist/{MotionConfig-DKKYqBH2.js → MotionConfig-CXHoPGbK.js} +2 -2
  8. package/dist/{MotionConfig-DKKYqBH2.js.map → MotionConfig-CXHoPGbK.js.map} +1 -1
  9. package/dist/Plus.es-DbyRkEE2.js +23 -0
  10. package/dist/Plus.es-DbyRkEE2.js.map +1 -0
  11. package/dist/Trash.es-BFAc8PMf.js +23 -0
  12. package/dist/Trash.es-BFAc8PMf.js.map +1 -0
  13. package/dist/{calendar-PCCZDUIL.js → calendar-DEPkz8sw.js} +364 -502
  14. package/dist/calendar-DEPkz8sw.js.map +1 -0
  15. package/dist/calendar-header-Dfr-CwkY.js +174 -0
  16. package/dist/calendar-header-Dfr-CwkY.js.map +1 -0
  17. package/dist/chunk-jwUa06l-.js +23 -0
  18. package/dist/components/core/button.d.ts +77 -0
  19. package/dist/components/core/button.d.ts.map +1 -0
  20. package/dist/components/core/button.js +1 -1
  21. package/dist/components/core/button.jsx +79 -0
  22. package/dist/components/core/heading.d.ts +3 -0
  23. package/dist/components/core/heading.d.ts.map +1 -0
  24. package/dist/components/core/heading.js +11 -0
  25. package/dist/components/core/heading.js.map +1 -0
  26. package/dist/components/core/heading.jsx +4 -0
  27. package/dist/components/core/polymorph.d.ts +10 -0
  28. package/dist/components/core/polymorph.d.ts.map +1 -0
  29. package/dist/{polymorph-BLXhrn9n.js → components/core/polymorph.js} +2 -2
  30. package/dist/components/core/polymorph.js.map +1 -0
  31. package/dist/components/core/polymorph.jsx +5 -0
  32. package/dist/components/core/render-on-view.d.ts +7 -0
  33. package/dist/components/core/render-on-view.d.ts.map +1 -0
  34. package/dist/components/core/render-on-view.js +29 -0
  35. package/dist/components/core/render-on-view.js.map +1 -0
  36. package/dist/components/core/render-on-view.jsx +31 -0
  37. package/dist/components/core/resizable.d.ts +9 -0
  38. package/dist/components/core/resizable.d.ts.map +1 -0
  39. package/dist/components/core/resizable.js +60 -0
  40. package/dist/components/core/resizable.js.map +1 -0
  41. package/dist/components/core/resizable.jsx +57 -0
  42. package/dist/components/core/slot.d.ts +16 -0
  43. package/dist/components/core/slot.d.ts.map +1 -0
  44. package/dist/{slot-pC8kH9De.js → components/core/slot.js} +2 -2
  45. package/dist/components/core/slot.js.map +1 -0
  46. package/dist/components/core/slot.jsx +156 -0
  47. package/dist/components/core/tag.d.ts +35 -0
  48. package/dist/components/core/tag.d.ts.map +1 -0
  49. package/dist/components/core/tag.js +1 -1
  50. package/dist/components/core/tag.jsx +53 -0
  51. package/dist/components/core/typography.d.ts +25 -0
  52. package/dist/components/core/typography.d.ts.map +1 -0
  53. package/dist/components/core/typography.js +40 -0
  54. package/dist/components/core/typography.js.map +1 -0
  55. package/dist/components/core/typography.jsx +20 -0
  56. package/dist/components/display/alert.d.ts +28 -0
  57. package/dist/components/display/alert.d.ts.map +1 -0
  58. package/dist/components/display/alert.js +83 -102
  59. package/dist/components/display/alert.js.map +1 -1
  60. package/dist/components/display/alert.jsx +58 -0
  61. package/dist/components/display/calendar.d.ts +42 -0
  62. package/dist/components/display/calendar.d.ts.map +1 -0
  63. package/dist/components/display/calendar.js +1 -1
  64. package/dist/components/display/calendar.jsx +323 -0
  65. package/dist/components/display/card.d.ts +29 -0
  66. package/dist/components/display/card.d.ts.map +1 -0
  67. package/dist/components/display/card.js +2 -2
  68. package/dist/components/display/card.jsx +43 -0
  69. package/dist/components/display/empty.d.ts +8 -0
  70. package/dist/components/display/empty.d.ts.map +1 -0
  71. package/dist/components/display/empty.js +25 -0
  72. package/dist/components/display/empty.js.map +1 -0
  73. package/dist/components/display/empty.jsx +13 -0
  74. package/dist/components/display/list.d.ts +16 -0
  75. package/dist/components/display/list.d.ts.map +1 -0
  76. package/dist/components/display/list.js +132 -122
  77. package/dist/components/display/list.js.map +1 -1
  78. package/dist/components/display/list.jsx +90 -0
  79. package/dist/components/display/notifications.d.ts +27 -0
  80. package/dist/components/display/notifications.d.ts.map +1 -0
  81. package/dist/components/display/notifications.js +1 -1
  82. package/dist/components/display/notifications.jsx +132 -0
  83. package/dist/components/display/progress.d.ts +16 -0
  84. package/dist/components/display/progress.d.ts.map +1 -0
  85. package/dist/components/display/progress.js +3 -0
  86. package/dist/components/display/progress.jsx +19 -0
  87. package/dist/components/display/shortcut.d.ts +4 -0
  88. package/dist/components/display/shortcut.d.ts.map +1 -0
  89. package/dist/components/display/shortcut.js +2 -0
  90. package/dist/components/display/shortcut.jsx +23 -0
  91. package/dist/components/display/skeleton.d.ts +12 -0
  92. package/dist/components/display/skeleton.d.ts.map +1 -0
  93. package/dist/components/display/skeleton.js +41 -0
  94. package/dist/components/display/skeleton.js.map +1 -0
  95. package/dist/components/display/skeleton.jsx +19 -0
  96. package/dist/components/display/spinner.d.ts +5 -0
  97. package/dist/components/display/spinner.d.ts.map +1 -0
  98. package/dist/components/display/spinner.js +17 -0
  99. package/dist/components/display/spinner.js.map +1 -0
  100. package/dist/components/display/spinner.jsx +11 -0
  101. package/dist/components/display/stats.d.ts +12 -0
  102. package/dist/components/display/stats.d.ts.map +1 -0
  103. package/dist/components/display/stats.jsx +16 -0
  104. package/dist/components/display/step.d.ts +24 -0
  105. package/dist/components/display/step.d.ts.map +1 -0
  106. package/dist/components/display/step.js +3 -0
  107. package/dist/components/display/step.jsx +145 -0
  108. package/dist/components/display/tabs.d.ts +24 -0
  109. package/dist/components/display/tabs.d.ts.map +1 -0
  110. package/dist/components/display/tabs.js +1 -1
  111. package/dist/components/display/tabs.jsx +125 -0
  112. package/dist/components/display/timeline.d.ts +10 -0
  113. package/dist/components/display/timeline.d.ts.map +1 -0
  114. package/dist/components/display/timeline.js +1 -1
  115. package/dist/components/display/timeline.jsx +25 -0
  116. package/dist/components/floating/command-palette.d.ts +49 -0
  117. package/dist/components/floating/command-palette.d.ts.map +1 -0
  118. package/dist/components/floating/command-palette.js +255 -0
  119. package/dist/components/floating/command-palette.js.map +1 -0
  120. package/dist/components/floating/command-palette.jsx +232 -0
  121. package/dist/components/floating/dropdown.d.ts +15 -0
  122. package/dist/components/floating/dropdown.d.ts.map +1 -0
  123. package/dist/components/floating/dropdown.js +1 -1
  124. package/dist/components/floating/dropdown.js.map +1 -1
  125. package/dist/components/floating/dropdown.jsx +56 -0
  126. package/dist/components/floating/expand.d.ts +11 -0
  127. package/dist/components/floating/expand.d.ts.map +1 -0
  128. package/dist/components/floating/expand.js +15 -14
  129. package/dist/components/floating/expand.js.map +1 -1
  130. package/dist/components/floating/expand.jsx +44 -0
  131. package/dist/components/floating/menu.d.ts +52 -0
  132. package/dist/components/floating/menu.d.ts.map +1 -0
  133. package/dist/components/floating/menu.js +1 -1
  134. package/dist/components/floating/menu.jsx +165 -0
  135. package/dist/components/floating/modal.d.ts +63 -0
  136. package/dist/components/floating/modal.d.ts.map +1 -0
  137. package/dist/components/floating/modal.js +1 -1
  138. package/dist/components/floating/modal.jsx +375 -0
  139. package/dist/components/floating/toolbar.d.ts +6 -0
  140. package/dist/components/floating/toolbar.d.ts.map +1 -0
  141. package/dist/components/floating/toolbar.js +20 -0
  142. package/dist/components/floating/toolbar.js.map +1 -0
  143. package/dist/components/floating/toolbar.jsx +9 -0
  144. package/dist/components/floating/tooltip.d.ts +17 -0
  145. package/dist/components/floating/tooltip.d.ts.map +1 -0
  146. package/dist/components/floating/tooltip.js +2 -2
  147. package/dist/components/floating/tooltip.js.map +1 -1
  148. package/dist/components/floating/tooltip.jsx +67 -0
  149. package/dist/components/floating/wizard.d.ts +26 -0
  150. package/dist/components/floating/wizard.d.ts.map +1 -0
  151. package/dist/components/floating/wizard.js +3 -0
  152. package/dist/components/floating/wizard.jsx +165 -0
  153. package/dist/components/form/autocomplete.d.ts +16 -0
  154. package/dist/components/form/autocomplete.d.ts.map +1 -0
  155. package/dist/components/form/autocomplete.js +344 -2
  156. package/dist/components/form/autocomplete.js.map +1 -0
  157. package/dist/components/form/autocomplete.jsx +299 -0
  158. package/dist/components/form/checkbox.d.ts +12 -0
  159. package/dist/components/form/checkbox.d.ts.map +1 -0
  160. package/dist/components/form/checkbox.js +29 -27
  161. package/dist/components/form/checkbox.js.map +1 -1
  162. package/dist/components/form/checkbox.jsx +27 -0
  163. package/dist/components/form/date-picker.d.ts +10 -0
  164. package/dist/components/form/date-picker.d.ts.map +1 -0
  165. package/dist/components/form/date-picker.js +1 -1
  166. package/dist/components/form/date-picker.jsx +115 -0
  167. package/dist/components/form/file-upload.d.ts +20 -0
  168. package/dist/components/form/file-upload.d.ts.map +1 -0
  169. package/dist/components/form/file-upload.js +1 -1
  170. package/dist/components/form/file-upload.jsx +160 -0
  171. package/dist/components/form/form.d.ts +3 -0
  172. package/dist/components/form/form.d.ts.map +1 -0
  173. package/dist/components/form/form.jsx +10 -0
  174. package/dist/components/form/formReset.d.ts +2 -0
  175. package/dist/components/form/formReset.d.ts.map +1 -0
  176. package/dist/components/form/formReset.js +10 -0
  177. package/dist/components/form/formReset.js.map +1 -0
  178. package/dist/components/form/formReset.jsx +17 -0
  179. package/dist/components/form/free-text.d.ts +11 -0
  180. package/dist/components/form/free-text.d.ts.map +1 -0
  181. package/dist/components/form/free-text.js +70 -0
  182. package/dist/components/form/free-text.js.map +1 -0
  183. package/dist/components/form/free-text.jsx +41 -0
  184. package/dist/components/form/input-field.d.ts +34 -0
  185. package/dist/components/form/input-field.d.ts.map +1 -0
  186. package/dist/components/form/input-field.js +3 -0
  187. package/dist/components/form/input-field.jsx +64 -0
  188. package/dist/components/form/input.d.ts +52 -0
  189. package/dist/components/form/input.d.ts.map +1 -0
  190. package/dist/components/form/input.js +1 -1
  191. package/dist/components/form/input.jsx +36 -0
  192. package/dist/components/form/multi-select.d.ts +19 -0
  193. package/dist/components/form/multi-select.d.ts.map +1 -0
  194. package/dist/components/form/multi-select.js +420 -0
  195. package/dist/components/form/multi-select.js.map +1 -0
  196. package/dist/components/form/multi-select.jsx +352 -0
  197. package/dist/components/form/radiobox.d.ts +7 -0
  198. package/dist/components/form/radiobox.d.ts.map +1 -0
  199. package/dist/components/form/radiobox.jsx +6 -0
  200. package/dist/components/form/select.d.ts +13 -0
  201. package/dist/components/form/select.d.ts.map +1 -0
  202. package/dist/components/form/select.js +55 -51
  203. package/dist/components/form/select.js.map +1 -1
  204. package/dist/components/form/select.jsx +47 -0
  205. package/dist/components/form/slider.d.ts +7 -0
  206. package/dist/components/form/slider.d.ts.map +1 -0
  207. package/dist/components/form/slider.js +3 -0
  208. package/dist/components/form/slider.jsx +45 -0
  209. package/dist/components/form/switch.d.ts +10 -0
  210. package/dist/components/form/switch.d.ts.map +1 -0
  211. package/dist/components/form/switch.js +32 -26
  212. package/dist/components/form/switch.js.map +1 -1
  213. package/dist/components/form/switch.jsx +59 -0
  214. package/dist/components/form/task-list.d.ts +3 -0
  215. package/dist/components/form/task-list.d.ts.map +1 -0
  216. package/dist/components/form/task-list.jsx +26 -0
  217. package/dist/components/form/textarea.d.ts +5 -0
  218. package/dist/components/form/textarea.d.ts.map +1 -0
  219. package/dist/components/form/textarea.js +19 -0
  220. package/dist/components/form/textarea.js.map +1 -0
  221. package/dist/components/form/textarea.jsx +26 -0
  222. package/dist/components/index.d.ts +45 -0
  223. package/dist/components/index.d.ts.map +1 -0
  224. package/dist/components/index.js +44 -0
  225. package/dist/components/page-calendar/calendar-header.d.ts +16 -0
  226. package/dist/components/page-calendar/calendar-header.d.ts.map +1 -0
  227. package/dist/components/page-calendar/calendar-header.js +2 -0
  228. package/dist/components/page-calendar/calendar-header.jsx +85 -0
  229. package/dist/components/page-calendar/day-view.d.ts +12 -0
  230. package/dist/components/page-calendar/day-view.d.ts.map +1 -0
  231. package/dist/components/page-calendar/day-view.js +124 -0
  232. package/dist/components/page-calendar/day-view.js.map +1 -0
  233. package/dist/components/page-calendar/day-view.jsx +89 -0
  234. package/dist/components/page-calendar/event-pill.d.ts +9 -0
  235. package/dist/components/page-calendar/event-pill.d.ts.map +1 -0
  236. package/dist/components/page-calendar/event-pill.js +44 -0
  237. package/dist/components/page-calendar/event-pill.js.map +1 -0
  238. package/dist/components/page-calendar/event-pill.jsx +25 -0
  239. package/dist/components/page-calendar/index.d.ts +4 -0
  240. package/dist/components/page-calendar/index.d.ts.map +1 -0
  241. package/dist/components/page-calendar/index.js +2 -0
  242. package/dist/components/page-calendar/month-view.d.ts +11 -0
  243. package/dist/components/page-calendar/month-view.d.ts.map +1 -0
  244. package/dist/components/page-calendar/month-view.js +109 -0
  245. package/dist/components/page-calendar/month-view.js.map +1 -0
  246. package/dist/components/page-calendar/month-view.jsx +93 -0
  247. package/dist/components/page-calendar/page-calendar.d.ts +18 -0
  248. package/dist/components/page-calendar/page-calendar.d.ts.map +1 -0
  249. package/dist/components/page-calendar/page-calendar.js +75 -0
  250. package/dist/components/page-calendar/page-calendar.js.map +1 -0
  251. package/dist/components/page-calendar/page-calendar.jsx +41 -0
  252. package/dist/components/page-calendar/page-calendar.types.d.ts +18 -0
  253. package/dist/components/page-calendar/page-calendar.types.d.ts.map +1 -0
  254. package/dist/components/page-calendar/page-calendar.types.js +1 -0
  255. package/dist/components/page-calendar/page-calendar.utils.d.ts +24 -0
  256. package/dist/components/page-calendar/page-calendar.utils.d.ts.map +1 -0
  257. package/dist/components/page-calendar/page-calendar.utils.js +93 -0
  258. package/dist/components/page-calendar/week-view.d.ts +11 -0
  259. package/dist/components/page-calendar/week-view.d.ts.map +1 -0
  260. package/dist/components/page-calendar/week-view.js +88 -0
  261. package/dist/components/page-calendar/week-view.js.map +1 -0
  262. package/dist/components/page-calendar/week-view.jsx +66 -0
  263. package/dist/components/table/filter.d.ts +42 -0
  264. package/dist/components/table/filter.d.ts.map +1 -0
  265. package/dist/components/table/filter.js +239 -0
  266. package/dist/components/table/filter.js.map +1 -0
  267. package/dist/components/table/filter.jsx +174 -0
  268. package/dist/components/table/group.d.ts +17 -0
  269. package/dist/components/table/group.d.ts.map +1 -0
  270. package/dist/components/table/group.js +3 -0
  271. package/dist/components/table/group.jsx +77 -0
  272. package/dist/components/table/index.d.ts +19 -0
  273. package/dist/components/table/index.d.ts.map +1 -0
  274. package/dist/components/table/index.js +102 -0
  275. package/dist/components/table/index.js.map +1 -0
  276. package/dist/components/table/index.jsx +63 -0
  277. package/dist/components/table/inner-table.d.ts +29 -0
  278. package/dist/components/table/inner-table.d.ts.map +1 -0
  279. package/dist/components/table/inner-table.js +2 -0
  280. package/dist/components/table/inner-table.jsx +102 -0
  281. package/dist/components/table/metadata.d.ts +4 -0
  282. package/dist/components/table/metadata.d.ts.map +1 -0
  283. package/dist/components/table/metadata.js +73 -0
  284. package/dist/components/table/metadata.js.map +1 -0
  285. package/dist/components/table/metadata.jsx +36 -0
  286. package/dist/components/table/pagination.d.ts +5 -0
  287. package/dist/components/table/pagination.d.ts.map +1 -0
  288. package/dist/components/table/pagination.js +70 -0
  289. package/dist/components/table/pagination.js.map +1 -0
  290. package/dist/components/table/pagination.jsx +74 -0
  291. package/dist/components/table/row.d.ts +11 -0
  292. package/dist/components/table/row.d.ts.map +1 -0
  293. package/dist/components/table/row.js +58 -0
  294. package/dist/components/table/row.js.map +1 -0
  295. package/dist/components/table/row.jsx +49 -0
  296. package/dist/components/table/sort.d.ts +28 -0
  297. package/dist/components/table/sort.d.ts.map +1 -0
  298. package/dist/components/table/sort.js +3 -0
  299. package/dist/components/table/sort.jsx +111 -0
  300. package/dist/components/table/table-lib.d.ts +135 -0
  301. package/dist/components/table/table-lib.d.ts.map +1 -0
  302. package/dist/components/table/table-lib.js +83 -0
  303. package/dist/components/table/table.context.d.ts +10 -0
  304. package/dist/components/table/table.context.d.ts.map +1 -0
  305. package/dist/components/table/table.context.jsx +5 -0
  306. package/dist/components/table/thead.d.ts +9 -0
  307. package/dist/components/table/thead.d.ts.map +1 -0
  308. package/dist/components/table/thead.js +3 -0
  309. package/dist/components/table/thead.jsx +103 -0
  310. package/dist/config/context.d.ts +21 -0
  311. package/dist/config/context.d.ts.map +1 -0
  312. package/dist/config/context.js +12 -0
  313. package/dist/config/default-translations.d.ts +112 -0
  314. package/dist/config/default-translations.d.ts.map +1 -0
  315. package/dist/config/default-translations.jsx +105 -0
  316. package/dist/config/default-tweaks.d.ts +13 -0
  317. package/dist/config/default-tweaks.d.ts.map +1 -0
  318. package/dist/config/default-tweaks.js +4 -0
  319. package/dist/constants.d.ts +3 -0
  320. package/dist/constants.d.ts.map +1 -0
  321. package/dist/constants.js +2 -0
  322. package/dist/{use-translations-DTLfPE3_.js → context-CsnUsfeP.js} +55 -40
  323. package/dist/context-CsnUsfeP.js.map +1 -0
  324. package/dist/{date-picker-BhKEFZew.js → date-picker-DNzupG8R.js} +301 -317
  325. package/dist/date-picker-DNzupG8R.js.map +1 -0
  326. package/dist/dict-CisoYSMO.js +28 -0
  327. package/dist/dict-CisoYSMO.js.map +1 -0
  328. package/dist/dist-ChfJ5LO9.js +498 -0
  329. package/dist/dist-ChfJ5LO9.js.map +1 -0
  330. package/dist/{dist-BrGpYRaj.js → dist-DIjUECx9.js} +56 -56
  331. package/dist/{dist-BrGpYRaj.js.map → dist-DIjUECx9.js.map} +1 -1
  332. package/dist/dom-Bn4wY_Zx.js.map +1 -1
  333. package/dist/{file-upload-DWbZfeG5.js → file-upload-C2zNnv9n.js} +501 -481
  334. package/dist/{file-upload-DWbZfeG5.js.map → file-upload-C2zNnv9n.js.map} +1 -1
  335. package/dist/fzf-CPGDDCoU.js +64 -0
  336. package/dist/fzf-CPGDDCoU.js.map +1 -0
  337. package/dist/getISOWeek-EcB4Ebqp.js +72 -0
  338. package/dist/getISOWeek-EcB4Ebqp.js.map +1 -0
  339. package/dist/group-Dl14TJXO.js +222 -0
  340. package/dist/group-Dl14TJXO.js.map +1 -0
  341. package/dist/hooks/use-click-outside.d.ts +3 -0
  342. package/dist/hooks/use-click-outside.d.ts.map +1 -0
  343. package/dist/hooks/use-click-outside.js +17 -0
  344. package/dist/hooks/use-color-parser.d.ts +2 -0
  345. package/dist/hooks/use-color-parser.d.ts.map +1 -0
  346. package/dist/hooks/use-color-parser.js +9 -0
  347. package/dist/hooks/use-components-provider.d.ts +15 -0
  348. package/dist/hooks/use-components-provider.d.ts.map +1 -0
  349. package/dist/hooks/use-components-provider.jsx +22 -0
  350. package/dist/hooks/use-debounce.d.ts +5 -0
  351. package/dist/hooks/use-debounce.d.ts.map +1 -0
  352. package/dist/hooks/use-debounce.js +12 -0
  353. package/dist/hooks/use-floating-ref.d.ts +2 -0
  354. package/dist/hooks/use-floating-ref.d.ts.map +1 -0
  355. package/dist/hooks/use-floating-ref.js +6 -0
  356. package/dist/hooks/use-form.d.ts +394 -0
  357. package/dist/hooks/use-form.d.ts.map +1 -0
  358. package/dist/hooks/use-form.js +563 -0
  359. package/dist/hooks/use-hover.d.ts +3 -0
  360. package/dist/hooks/use-hover.d.ts.map +1 -0
  361. package/dist/hooks/use-hover.js +18 -0
  362. package/dist/hooks/use-input-id.d.ts +4 -0
  363. package/dist/hooks/use-input-id.d.ts.map +1 -0
  364. package/dist/hooks/use-input-id.js +5 -0
  365. package/dist/hooks/use-is-coarse-device.d.ts +2 -0
  366. package/dist/hooks/use-is-coarse-device.d.ts.map +1 -0
  367. package/dist/hooks/use-is-coarse-device.js +12 -0
  368. package/dist/hooks/use-locale.d.ts +3 -0
  369. package/dist/hooks/use-locale.d.ts.map +1 -0
  370. package/dist/hooks/use-locale.js +10 -0
  371. package/dist/hooks/use-media-query.d.ts +2 -0
  372. package/dist/hooks/use-media-query.d.ts.map +1 -0
  373. package/dist/hooks/use-media-query.js +25 -0
  374. package/dist/hooks/use-on-event.d.ts +4 -0
  375. package/dist/hooks/use-on-event.d.ts.map +1 -0
  376. package/dist/hooks/use-on-event.js +10 -0
  377. package/dist/hooks/use-parent.d.ts +3 -0
  378. package/dist/hooks/use-parent.d.ts.map +1 -0
  379. package/dist/hooks/use-parent.js +21 -0
  380. package/dist/hooks/use-preferences.d.ts +2 -0
  381. package/dist/hooks/use-preferences.d.ts.map +1 -0
  382. package/dist/hooks/use-preferences.js +23 -0
  383. package/dist/hooks/use-previous.d.ts +2 -0
  384. package/dist/hooks/use-previous.d.ts.map +1 -0
  385. package/dist/hooks/use-previous.js +9 -0
  386. package/dist/hooks/use-reactive.d.ts +2 -0
  387. package/dist/hooks/use-reactive.d.ts.map +1 -0
  388. package/dist/hooks/use-reactive.js +9 -0
  389. package/dist/hooks/use-remove-scroll.d.ts +4 -0
  390. package/dist/hooks/use-remove-scroll.d.ts.map +1 -0
  391. package/dist/hooks/use-remove-scroll.js +48 -0
  392. package/dist/hooks/use-resize-observer.d.ts +2 -0
  393. package/dist/hooks/use-resize-observer.d.ts.map +1 -0
  394. package/dist/hooks/use-resize-observer.js +17 -0
  395. package/dist/hooks/use-stable-ref.d.ts +2 -0
  396. package/dist/hooks/use-stable-ref.d.ts.map +1 -0
  397. package/dist/hooks/use-stable-ref.js +9 -0
  398. package/dist/hooks/use-swipe.d.ts +8 -0
  399. package/dist/hooks/use-swipe.d.ts.map +1 -0
  400. package/dist/hooks/use-swipe.js +17 -0
  401. package/dist/hooks/use-translations.d.ts +110 -0
  402. package/dist/hooks/use-translations.d.ts.map +1 -0
  403. package/dist/hooks/use-translations.js +9 -0
  404. package/dist/hooks/use-tweaks.d.ts +3 -0
  405. package/dist/hooks/use-tweaks.d.ts.map +1 -0
  406. package/dist/hooks/use-tweaks.js +9 -0
  407. package/dist/hooks/use-window-size.d.ts +5 -0
  408. package/dist/hooks/use-window-size.d.ts.map +1 -0
  409. package/dist/hooks/use-window-size.js +14 -0
  410. package/dist/index.css +1 -1
  411. package/dist/index.d.ts +22 -0
  412. package/dist/index.d.ts.map +1 -0
  413. package/dist/index.js +20 -7932
  414. package/dist/index.js.map +1 -1
  415. package/dist/inner-table-CeDX60cL.js +151 -0
  416. package/dist/inner-table-CeDX60cL.js.map +1 -0
  417. package/dist/input-Cmyuea4Y.js +412 -0
  418. package/dist/input-Cmyuea4Y.js.map +1 -0
  419. package/dist/{input-field-B_whI66Q.js → input-field-ffx1MbHo.js} +29 -16
  420. package/dist/input-field-ffx1MbHo.js.map +1 -0
  421. package/dist/isSameMonth-C3lsSwcg.js +10 -0
  422. package/dist/isSameMonth-C3lsSwcg.js.map +1 -0
  423. package/dist/isToday-COXfxFui.js +32 -0
  424. package/dist/isToday-COXfxFui.js.map +1 -0
  425. package/dist/lib/combi-keys.d.ts +15 -0
  426. package/dist/lib/combi-keys.d.ts.map +1 -0
  427. package/dist/lib/combi-keys.js +60 -0
  428. package/dist/lib/dict.d.ts +9 -0
  429. package/dist/lib/dict.d.ts.map +1 -0
  430. package/dist/lib/dict.js +28 -0
  431. package/dist/lib/dom.d.ts +20 -0
  432. package/dist/lib/dom.d.ts.map +1 -0
  433. package/dist/lib/dom.js +185 -0
  434. package/dist/lib/fns.d.ts +11 -0
  435. package/dist/lib/fns.d.ts.map +1 -0
  436. package/dist/lib/fns.js +46 -0
  437. package/dist/lib/fzf.d.ts +16 -0
  438. package/dist/lib/fzf.d.ts.map +1 -0
  439. package/dist/lib/fzf.js +115 -0
  440. package/dist/lib/keyboard-area.d.ts +16 -0
  441. package/dist/lib/keyboard-area.d.ts.map +1 -0
  442. package/dist/lib/keyboard-area.js +14 -0
  443. package/dist/modal-Df8-6i-o.js +408 -0
  444. package/dist/modal-Df8-6i-o.js.map +1 -0
  445. package/dist/notifications-NhCESJUV.js +1697 -0
  446. package/dist/notifications-NhCESJUV.js.map +1 -0
  447. package/dist/page-calendar.utils-Bd0PHktL.js +102 -0
  448. package/dist/page-calendar.utils-Bd0PHktL.js.map +1 -0
  449. package/dist/preset/preset.tailwind.d.ts.map +1 -1
  450. package/dist/preset/preset.tailwind.js +6 -7
  451. package/dist/preset/src/styles/dark.js +1 -1
  452. package/dist/progress-8LO5gWLp.js +104 -0
  453. package/dist/progress-8LO5gWLp.js.map +1 -0
  454. package/dist/{proxy-BcJ_5Dwq.js → proxy-fP2NxmhM.js} +658 -844
  455. package/dist/proxy-fP2NxmhM.js.map +1 -0
  456. package/dist/shim-Czv-YhKR.js +93 -0
  457. package/dist/shim-Czv-YhKR.js.map +1 -0
  458. package/dist/shortcut-CQCmgmlU.js +100 -0
  459. package/dist/shortcut-CQCmgmlU.js.map +1 -0
  460. package/dist/slider-TX9hiHO-.js +1196 -0
  461. package/dist/slider-TX9hiHO-.js.map +1 -0
  462. package/dist/sort-DGmiselV.js +195 -0
  463. package/dist/sort-DGmiselV.js.map +1 -0
  464. package/dist/step-DFpJ7zCG.js +185 -0
  465. package/dist/step-DFpJ7zCG.js.map +1 -0
  466. package/dist/styles/dark.js +1 -1
  467. package/dist/subMonths-QcCnE3Yh.js +43 -0
  468. package/dist/subMonths-QcCnE3Yh.js.map +1 -0
  469. package/dist/table-lib-1bkYSklk.js +174 -0
  470. package/dist/table-lib-1bkYSklk.js.map +1 -0
  471. package/dist/{tabs-Ciy0l9OF.js → tabs-Brc963EW.js} +2 -2
  472. package/dist/{tabs-Ciy0l9OF.js.map → tabs-Brc963EW.js.map} +1 -1
  473. package/dist/thead-B6WELJZ-.js +211 -0
  474. package/dist/thead-B6WELJZ-.js.map +1 -0
  475. package/dist/types.d.ts +26 -0
  476. package/dist/types.d.ts.map +1 -0
  477. package/dist/types.js +1 -0
  478. package/dist/use-locale-DPM_sg4s.js +12 -0
  479. package/dist/use-locale-DPM_sg4s.js.map +1 -0
  480. package/dist/use-remove-scroll-pAgC09Sq.js +38 -0
  481. package/dist/use-remove-scroll-pAgC09Sq.js.map +1 -0
  482. package/dist/use-translations-BE4PuhLm.js +11 -0
  483. package/dist/use-translations-BE4PuhLm.js.map +1 -0
  484. package/dist/useAnimationFrame-DnKbaXfi.js +223 -0
  485. package/dist/useAnimationFrame-DnKbaXfi.js.map +1 -0
  486. package/dist/valueToPercent-DZc_m1tm.js +43 -0
  487. package/dist/valueToPercent-DZc_m1tm.js.map +1 -0
  488. package/dist/visuallyHidden-B7wI86yi.js +303 -0
  489. package/dist/visuallyHidden-B7wI86yi.js.map +1 -0
  490. package/dist/with-selector-BFW5n-pb.js +102 -0
  491. package/dist/with-selector-BFW5n-pb.js.map +1 -0
  492. package/dist/wizard-7u_qZ-78.js +218 -0
  493. package/dist/wizard-7u_qZ-78.js.map +1 -0
  494. package/package.json +19 -11
  495. package/dist/autocomplete-D3VOTihi.js +0 -415
  496. package/dist/autocomplete-D3VOTihi.js.map +0 -1
  497. package/dist/calendar-PCCZDUIL.js.map +0 -1
  498. package/dist/components/table/table.js +0 -3
  499. package/dist/date-picker-BhKEFZew.js.map +0 -1
  500. package/dist/input-B7jqwPG4.js +0 -473
  501. package/dist/input-B7jqwPG4.js.map +0 -1
  502. package/dist/input-field-B_whI66Q.js.map +0 -1
  503. package/dist/modal-Bz-61ays.js +0 -373
  504. package/dist/modal-Bz-61ays.js.map +0 -1
  505. package/dist/notifications-MT4XkLov.js +0 -2203
  506. package/dist/notifications-MT4XkLov.js.map +0 -1
  507. package/dist/polymorph-BLXhrn9n.js.map +0 -1
  508. package/dist/proxy-BcJ_5Dwq.js.map +0 -1
  509. package/dist/skeleton-CBYEq3lM.js +0 -26
  510. package/dist/skeleton-CBYEq3lM.js.map +0 -1
  511. package/dist/slot-pC8kH9De.js.map +0 -1
  512. package/dist/table-CUFbAI2k.js +0 -1914
  513. package/dist/table-CUFbAI2k.js.map +0 -1
  514. package/dist/use-translations-DTLfPE3_.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ import React, { PropsWithChildren } from "react";
2
+ import { Label } from "../../types";
3
+ type AnimatedItemProps = {
4
+ title: Label;
5
+ description: Label;
6
+ children: Label;
7
+ avatar?: Label;
8
+ leading?: React.FC<{
9
+ open: () => void;
10
+ }>;
11
+ };
12
+ type AnimatedListProps = object;
13
+ export declare const AnimatedList: (props: PropsWithChildren<AnimatedListProps>) => React.JSX.Element;
14
+ export declare const AnimatedListItem: (props: PropsWithChildren<AnimatedItemProps>) => React.JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/components/display/list.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,EAAY,iBAAiB,EAAgC,MAAM,OAAO,CAAC;AAEzF,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,KAAK,iBAAiB,GAAG;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,KAAK,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAC;CAC5C,CAAC;AAIF,KAAK,iBAAiB,GAAG,MAAM,CAAC;AAiEhC,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,sBAgFvE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,sBAA0C,CAAC"}
@@ -1,153 +1,163 @@
1
1
  "use client";
2
- import { r as e, t } from "../../proxy-BcJ_5Dwq.js";
3
- import { t as n } from "../../X.es-Cjq2a_OA.js";
4
- import { a as r, d as i, f as a, l as o, n as s, o as c, v as l, x as u } from "../../floating-ui.react-CwXtBJ_y.js";
5
- import { t as d } from "../../MotionConfig-DKKYqBH2.js";
6
- import f, { Fragment as p, useCallback as m, useId as h, useState as g } from "react";
7
- import { jsx as _, jsxs as v } from "react/jsx-runtime";
2
+ import { t as e } from "../../X.es-Cjq2a_OA.js";
3
+ import { t } from "../../use-translations-BE4PuhLm.js";
4
+ import { a as n, d as r, f as i, l as a, n as o, o as s, v as c, x as l } from "../../floating-ui.react-CwXtBJ_y.js";
5
+ import { t as u } from "../../proxy-fP2NxmhM.js";
6
+ import { t as d } from "../../AnimatePresence-j36AYeOQ.js";
7
+ import { t as f } from "../../MotionConfig-CXHoPGbK.js";
8
+ import p, { Fragment as m, useCallback as h, useId as g, useState as _ } from "react";
9
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
8
10
  //#region src/components/display/list.tsx
9
- var y = ({ item: i, context: a, setter: o, get: l, refs: u }) => /* @__PURE__ */ _(c, { children: /* @__PURE__ */ _(d, {
10
- reducedMotion: "user",
11
- transition: {
12
- type: "spring",
13
- damping: 30,
14
- stiffness: 350
15
- },
16
- children: /* @__PURE__ */ v(e, {
17
- mode: "wait",
18
- presenceAffectsLayout: !0,
19
- children: [i ? /* @__PURE__ */ _(t.div, {
20
- exit: { opacity: 0 },
21
- animate: { opacity: 1 },
22
- initial: { opacity: 0 },
23
- transition: {
24
- type: "tween",
25
- duration: .15,
26
- ease: "easeOut"
27
- },
28
- className: "pointer-events-none fixed inset-0 top-0 z-overlay h-screen w-screen bg-floating-overlay/70"
29
- }, "overlay") : null, i ? /* @__PURE__ */ _(r, {
30
- lockScroll: !0,
31
- className: "absolute inset-0 z-floating flex items-center justify-center",
32
- children: /* @__PURE__ */ _(s, {
33
- visuallyHiddenDismiss: !0,
34
- modal: !0,
35
- closeOnFocusOut: !0,
36
- context: a,
37
- children: /* @__PURE__ */ v(t.div, {
38
- layout: !0,
39
- layoutId: `item-${i.id}`,
40
- initial: {
41
- opacity: .6,
42
- scale: .98
43
- },
44
- animate: {
45
- opacity: 1,
46
- scale: 1
47
- },
48
- exit: {
49
- opacity: 0,
50
- scale: .98
51
- },
52
- className: "relative flex h-min w-min min-w-xs flex-col gap-list-card-gap rounded-list-radius border border-card-border bg-card-background p-list-card-p py-list-card-py pb-list-card-pb shadow-shadow-card",
53
- ref: u.setFloating,
54
- ...l(),
55
- children: [
56
- /* @__PURE__ */ _("nav", {
57
- className: "absolute right-4 top-1 lg:right-2",
58
- children: /* @__PURE__ */ _("button", {
59
- type: "button",
60
- onClick: o,
61
- className: "p-list-close-p opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger",
62
- children: /* @__PURE__ */ _(n, {})
11
+ var b = ({ item: r, context: i, setter: a, get: c, refs: l }) => {
12
+ let p = t();
13
+ return /* @__PURE__ */ v(s, { children: /* @__PURE__ */ v(f, {
14
+ reducedMotion: "user",
15
+ transition: {
16
+ type: "spring",
17
+ damping: 30,
18
+ stiffness: 350
19
+ },
20
+ children: /* @__PURE__ */ y(d, {
21
+ mode: "wait",
22
+ presenceAffectsLayout: !0,
23
+ children: [r ? /* @__PURE__ */ v(u.div, {
24
+ exit: { opacity: 0 },
25
+ animate: { opacity: 1 },
26
+ initial: { opacity: 0 },
27
+ transition: {
28
+ type: "tween",
29
+ duration: .15,
30
+ ease: "easeOut"
31
+ },
32
+ className: "pointer-events-none fixed inset-0 top-0 z-overlay h-screen w-screen bg-floating-overlay/70"
33
+ }, "overlay") : null, r ? /* @__PURE__ */ v(n, {
34
+ lockScroll: !0,
35
+ className: "absolute inset-0 z-floating flex items-center justify-center",
36
+ children: /* @__PURE__ */ v(o, {
37
+ visuallyHiddenDismiss: !0,
38
+ modal: !0,
39
+ closeOnFocusOut: !0,
40
+ context: i,
41
+ children: /* @__PURE__ */ y(u.div, {
42
+ layout: !0,
43
+ layoutId: `item-${r.id}`,
44
+ initial: {
45
+ opacity: .6,
46
+ scale: .98
47
+ },
48
+ animate: {
49
+ opacity: 1,
50
+ scale: 1
51
+ },
52
+ exit: {
53
+ opacity: 0,
54
+ scale: .98
55
+ },
56
+ className: "relative flex h-min w-min min-w-xs flex-col gap-list-card-gap rounded-list-radius border border-card-border bg-card-background p-list-card-p py-list-card-py pb-list-card-pb shadow-shadow-card",
57
+ ref: l.setFloating,
58
+ ...c(),
59
+ children: [
60
+ /* @__PURE__ */ v("nav", {
61
+ className: "absolute right-4 top-1 lg:right-2",
62
+ children: /* @__PURE__ */ v("button", {
63
+ type: "button",
64
+ onClick: a,
65
+ "aria-label": p.listCloseDetails,
66
+ className: "p-list-close-p opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger",
67
+ children: /* @__PURE__ */ v(e, {})
68
+ })
69
+ }),
70
+ /* @__PURE__ */ y(u.header, {
71
+ layout: !0,
72
+ className: "flex w-full flex-wrap items-center justify-between gap-list-header-gap",
73
+ children: [/* @__PURE__ */ v("h3", {
74
+ className: "min-w-full text-balance text-list-title-text font-medium",
75
+ children: r.title
76
+ }), /* @__PURE__ */ v("p", {
77
+ className: "text-typography-sm leading-snug text-secondary",
78
+ children: r.description
79
+ })]
80
+ }),
81
+ /* @__PURE__ */ v(u.div, {
82
+ layout: !0,
83
+ children: r.children
63
84
  })
64
- }),
65
- /* @__PURE__ */ v(t.header, {
66
- layout: !0,
67
- className: "flex w-full flex-wrap items-center justify-between gap-list-header-gap",
68
- children: [/* @__PURE__ */ _("h3", {
69
- className: "min-w-full text-balance text-list-title-text font-medium",
70
- children: i.title
71
- }), /* @__PURE__ */ _("p", {
72
- className: "text-typography-sm leading-snug text-secondary",
73
- children: i.description
74
- })]
75
- }),
76
- /* @__PURE__ */ _(t.div, {
77
- layout: !0,
78
- children: i.children
79
- })
80
- ]
85
+ ]
86
+ })
81
87
  })
82
- })
83
- }, "card") : null]
84
- })
85
- }) }), b = (e) => {
86
- let [n, r] = g(null), s = h(), { context: c, refs: d } = a({
87
- open: n !== null,
88
+ }, "card") : null]
89
+ })
90
+ }) });
91
+ }, x = (e) => {
92
+ let n = t(), [o, s] = _(null), d = g(), { context: f, refs: x } = i({
93
+ open: o !== null,
88
94
  transform: !0,
89
- onOpenChange: (e) => e ? void 0 : r(null)
90
- }), { getFloatingProps: b } = l([
91
- o(c),
92
- u(c, { role: "dialog" }),
93
- i(c, {
95
+ onOpenChange: (e) => e ? void 0 : s(null)
96
+ }), { getFloatingProps: S } = c([
97
+ a(f),
98
+ l(f, { role: "dialog" }),
99
+ r(f, {
94
100
  escapeKey: !0,
95
101
  referencePress: !0,
96
102
  outsidePress: !0
97
103
  })
98
- ]), x = m(() => {
99
- r(null);
100
- }, []), S = f.Children.toArray(e.children);
101
- return /* @__PURE__ */ v(p, { children: [/* @__PURE__ */ _(y, {
102
- refs: d,
103
- context: c,
104
- get: b,
105
- item: n,
106
- setter: x
107
- }), /* @__PURE__ */ _("ul", {
104
+ ]), C = h(() => {
105
+ s(null);
106
+ }, []), w = p.Children.toArray(e.children);
107
+ return /* @__PURE__ */ y(m, { children: [/* @__PURE__ */ v(b, {
108
+ refs: x,
109
+ context: f,
110
+ get: S,
111
+ item: o,
112
+ setter: C
113
+ }), /* @__PURE__ */ v("ul", {
108
114
  role: "list",
109
- children: S.map((e, n) => {
110
- let i = e.props, a = `${s}-${n}`, o = () => r({
111
- ...i,
112
- id: a
113
- }), c = i.leading;
114
- return /* @__PURE__ */ _(t.li, {
115
+ children: w.map((e, t) => {
116
+ let r = e.props, i = `${d}-${t}`, a = () => s({
117
+ ...r,
118
+ id: i
119
+ }), o = r.leading;
120
+ return /* @__PURE__ */ v(u.li, {
115
121
  layout: !0,
116
- layoutId: `item-${a}`,
122
+ layoutId: `item-${i}`,
117
123
  className: "border-b border-card-border py-list-item-py last:border-transparent",
118
- children: /* @__PURE__ */ _(t.div, {
119
- layoutId: `toast-${a}`,
124
+ children: /* @__PURE__ */ v(u.div, {
125
+ layoutId: `toast-${i}`,
120
126
  className: "relative",
121
- children: /* @__PURE__ */ _("div", {
127
+ children: /* @__PURE__ */ v("div", {
122
128
  className: "relative flex items-start space-x-3",
123
- children: /* @__PURE__ */ v(p, { children: [i.avatar ? /* @__PURE__ */ _("div", { children: /* @__PURE__ */ _("div", {
129
+ children: /* @__PURE__ */ y(m, { children: [r.avatar ? /* @__PURE__ */ v("div", { children: /* @__PURE__ */ v("div", {
124
130
  className: "relative px-list-avatar-px",
125
- children: /* @__PURE__ */ _("button", {
126
- onClick: o,
131
+ children: /* @__PURE__ */ v("button", {
132
+ type: "button",
133
+ onClick: a,
134
+ "aria-label": n.listOpenDetails(String(r.title)),
127
135
  className: "flex size-10 items-center justify-center ring-primary",
128
- children: i.avatar
136
+ children: r.avatar
129
137
  })
130
- }) }) : null, /* @__PURE__ */ _("div", {
138
+ }) }) : null, /* @__PURE__ */ v("div", {
131
139
  className: "min-w-0 flex-1 py-list-body-py text-foreground",
132
- children: /* @__PURE__ */ v("div", {
140
+ children: /* @__PURE__ */ y("div", {
133
141
  className: "flex flex-row flex-nowrap justify-between gap-list-item-gap",
134
- children: [/* @__PURE__ */ v("button", {
135
- onClick: o,
142
+ children: [/* @__PURE__ */ y("button", {
143
+ type: "button",
144
+ onClick: a,
145
+ "aria-label": n.listOpenDetails(String(r.title)),
136
146
  className: "cursor-pointer text-left transition-all ease-out hover:text-primary",
137
- children: [/* @__PURE__ */ _("h3", { children: i.title }), /* @__PURE__ */ _("p", {
147
+ children: [/* @__PURE__ */ v("h3", { children: r.title }), /* @__PURE__ */ v("p", {
138
148
  className: "text-typography-sm leading-snug text-secondary",
139
- children: i.description
149
+ children: r.description
140
150
  })]
141
- }), c ? /* @__PURE__ */ _(c, { open: o }) : null]
151
+ }), o ? /* @__PURE__ */ v(o, { open: a }) : null]
142
152
  })
143
153
  })] })
144
154
  })
145
155
  })
146
- }, a);
156
+ }, i);
147
157
  })
148
158
  })] });
149
- }, x = (e) => /* @__PURE__ */ _(p, { children: e.children });
159
+ }, S = (e) => /* @__PURE__ */ v(m, { children: e.children });
150
160
  //#endregion
151
- export { b as AnimatedList, x as AnimatedListItem };
161
+ export { x as AnimatedList, S as AnimatedListItem };
152
162
 
153
163
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","names":[],"sources":["../../../src/components/display/list.tsx"],"sourcesContent":["\"use client\";\nimport {\n FloatingContext,\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport { AnimatePresence, motion, MotionConfig } from \"motion/react\";\nimport { XIcon } from \"@phosphor-icons/react\";\nimport React, { Fragment, PropsWithChildren, useCallback, useId, useState } from \"react\";\nimport { Label } from \"../../types\";\n\ntype AnimatedItemProps = {\n title: Label;\n description: Label;\n children: Label;\n avatar?: Label;\n leading?: React.FC<{ open: () => void }>;\n};\n\ntype IdAnimatedItem = AnimatedItemProps & { id: string };\n\ntype AnimatedListProps = object;\n\ntype FloatItemProps = {\n setter: () => void;\n context: FloatingContext;\n item: IdAnimatedItem | null;\n refs: { setFloating: (node: HTMLElement | null) => void };\n get: ReturnType<typeof useInteractions>[\"getFloatingProps\"];\n};\n\nconst FloatItem = ({ item, context, setter, get, refs }: FloatItemProps) => (\n <FloatingPortal>\n <MotionConfig reducedMotion=\"user\" transition={{ type: \"spring\", damping: 30, stiffness: 350 }}>\n <AnimatePresence mode=\"wait\" presenceAffectsLayout>\n {item ? (\n <motion.div\n key=\"overlay\"\n exit={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n initial={{ opacity: 0 }}\n transition={{ type: \"tween\", duration: 0.15, ease: \"easeOut\" }}\n className=\"pointer-events-none fixed inset-0 top-0 z-overlay h-screen w-screen bg-floating-overlay/70\"\n />\n ) : null}\n {item ? (\n <FloatingOverlay key=\"card\" lockScroll className=\"absolute inset-0 z-floating flex items-center justify-center\">\n <FloatingFocusManager visuallyHiddenDismiss modal closeOnFocusOut context={context}>\n <motion.div\n layout\n layoutId={`item-${item.id}`}\n initial={{ opacity: 0.6, scale: 0.98 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.98 }}\n className=\"relative flex h-min w-min min-w-xs flex-col gap-list-card-gap rounded-list-radius border border-card-border bg-card-background p-list-card-p py-list-card-py pb-list-card-pb shadow-shadow-card\"\n ref={refs.setFloating}\n {...get()}\n >\n <nav className=\"absolute right-4 top-1 lg:right-2\">\n <button\n type=\"button\"\n onClick={setter}\n className=\"p-list-close-p opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger\"\n >\n <XIcon />\n </button>\n </nav>\n <motion.header layout className=\"flex w-full flex-wrap items-center justify-between gap-list-header-gap\">\n <h3 className=\"min-w-full text-balance text-list-title-text font-medium\">{item.title}</h3>\n <p className=\"text-typography-sm leading-snug text-secondary\">{item.description}</p>\n </motion.header>\n <motion.div layout>{item.children}</motion.div>\n </motion.div>\n </FloatingFocusManager>\n </FloatingOverlay>\n ) : null}\n </AnimatePresence>\n </MotionConfig>\n </FloatingPortal>\n);\n\nexport const AnimatedList = (props: PropsWithChildren<AnimatedListProps>) => {\n const [selected, setSelected] = useState<IdAnimatedItem | null>(null);\n const id = useId();\n const { context, refs } = useFloating({\n open: selected !== null,\n transform: true,\n onOpenChange: (open) => (open ? undefined : setSelected(null)),\n });\n const click = useClick(context);\n const role = useRole(context, { role: \"dialog\" });\n const dismiss = useDismiss(context, {\n escapeKey: true,\n referencePress: true,\n outsidePress: true,\n });\n const { getFloatingProps } = useInteractions([click, role, dismiss]);\n\n const clear = useCallback(() => {\n setSelected(null);\n }, []);\n\n const items = React.Children.toArray(props.children);\n\n return (\n <Fragment>\n <FloatItem refs={refs} context={context} get={getFloatingProps} item={selected} setter={clear} />\n <ul role=\"list\">\n {items.map((x, index) => {\n const item = (x as React.ReactElement<AnimatedItemProps>).props;\n const innerId = `${id}-${index}`;\n const setter = () => setSelected({ ...item, id: innerId });\n const Leading = item.leading;\n return (\n <motion.li\n layout\n key={innerId}\n layoutId={`item-${innerId}`}\n className={`border-b border-card-border py-list-item-py last:border-transparent`}\n >\n <motion.div layoutId={`toast-${innerId}`} className=\"relative\">\n <div className=\"relative flex items-start space-x-3\">\n <Fragment>\n {item.avatar ? (\n <div>\n <div className=\"relative px-list-avatar-px\">\n <button onClick={setter} className=\"flex size-10 items-center justify-center ring-primary\">\n {item.avatar}\n </button>\n </div>\n </div>\n ) : null}\n <div className=\"min-w-0 flex-1 py-list-body-py text-foreground\">\n <div className=\"flex flex-row flex-nowrap justify-between gap-list-item-gap\">\n <button\n onClick={setter}\n className=\"cursor-pointer text-left transition-all ease-out hover:text-primary\"\n >\n <h3>{item.title}</h3>\n <p className=\"text-typography-sm leading-snug text-secondary\">{item.description}</p>\n </button>\n {Leading ? <Leading open={setter} /> : null}\n </div>\n </div>\n </Fragment>\n </div>\n </motion.div>\n </motion.li>\n );\n })}\n </ul>\n </Fragment>\n );\n};\n\nexport const AnimatedListItem = (props: PropsWithChildren<AnimatedItemProps>) => <Fragment>{props.children}</Fragment>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"list.js","names":[],"sources":["../../../src/components/display/list.tsx"],"sourcesContent":["\"use client\";\nimport {\n FloatingContext,\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from \"@floating-ui/react\";\nimport { AnimatePresence, motion, MotionConfig } from \"motion/react\";\nimport { XIcon } from \"@phosphor-icons/react\";\nimport React, { Fragment, PropsWithChildren, useCallback, useId, useState } from \"react\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { Label } from \"../../types\";\n\ntype AnimatedItemProps = {\n title: Label;\n description: Label;\n children: Label;\n avatar?: Label;\n leading?: React.FC<{ open: () => void }>;\n};\n\ntype IdAnimatedItem = AnimatedItemProps & { id: string };\n\ntype AnimatedListProps = object;\n\ntype FloatItemProps = {\n setter: () => void;\n context: FloatingContext;\n item: IdAnimatedItem | null;\n refs: { setFloating: (node: HTMLElement | null) => void };\n get: ReturnType<typeof useInteractions>[\"getFloatingProps\"];\n};\n\nconst FloatItem = ({ item, context, setter, get, refs }: FloatItemProps) => {\n const translations = useTranslations();\n\n return (\n <FloatingPortal>\n <MotionConfig reducedMotion=\"user\" transition={{ type: \"spring\", damping: 30, stiffness: 350 }}>\n <AnimatePresence mode=\"wait\" presenceAffectsLayout>\n {item ? (\n <motion.div\n key=\"overlay\"\n exit={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n initial={{ opacity: 0 }}\n transition={{ type: \"tween\", duration: 0.15, ease: \"easeOut\" }}\n className=\"pointer-events-none fixed inset-0 top-0 z-overlay h-screen w-screen bg-floating-overlay/70\"\n />\n ) : null}\n {item ? (\n <FloatingOverlay key=\"card\" lockScroll className=\"absolute inset-0 z-floating flex items-center justify-center\">\n <FloatingFocusManager visuallyHiddenDismiss modal closeOnFocusOut context={context}>\n <motion.div\n layout\n layoutId={`item-${item.id}`}\n initial={{ opacity: 0.6, scale: 0.98 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.98 }}\n className=\"relative flex h-min w-min min-w-xs flex-col gap-list-card-gap rounded-list-radius border border-card-border bg-card-background p-list-card-p py-list-card-py pb-list-card-pb shadow-shadow-card\"\n ref={refs.setFloating}\n {...get()}\n >\n <nav className=\"absolute right-4 top-1 lg:right-2\">\n <button\n type=\"button\"\n onClick={setter}\n aria-label={translations.listCloseDetails}\n className=\"p-list-close-p opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger\"\n >\n <XIcon />\n </button>\n </nav>\n <motion.header layout className=\"flex w-full flex-wrap items-center justify-between gap-list-header-gap\">\n <h3 className=\"min-w-full text-balance text-list-title-text font-medium\">{item.title}</h3>\n <p className=\"text-typography-sm leading-snug text-secondary\">{item.description}</p>\n </motion.header>\n <motion.div layout>{item.children}</motion.div>\n </motion.div>\n </FloatingFocusManager>\n </FloatingOverlay>\n ) : null}\n </AnimatePresence>\n </MotionConfig>\n </FloatingPortal>\n );\n};\n\nexport const AnimatedList = (props: PropsWithChildren<AnimatedListProps>) => {\n const translations = useTranslations();\n const [selected, setSelected] = useState<IdAnimatedItem | null>(null);\n const id = useId();\n const { context, refs } = useFloating({\n open: selected !== null,\n transform: true,\n onOpenChange: (open) => (open ? undefined : setSelected(null)),\n });\n const click = useClick(context);\n const role = useRole(context, { role: \"dialog\" });\n const dismiss = useDismiss(context, {\n escapeKey: true,\n referencePress: true,\n outsidePress: true,\n });\n const { getFloatingProps } = useInteractions([click, role, dismiss]);\n\n const clear = useCallback(() => {\n setSelected(null);\n }, []);\n\n const items = React.Children.toArray(props.children);\n\n return (\n <Fragment>\n <FloatItem refs={refs} context={context} get={getFloatingProps} item={selected} setter={clear} />\n <ul role=\"list\">\n {items.map((x, index) => {\n const item = (x as React.ReactElement<AnimatedItemProps>).props;\n const innerId = `${id}-${index}`;\n const setter = () => setSelected({ ...item, id: innerId });\n const Leading = item.leading;\n return (\n <motion.li\n layout\n key={innerId}\n layoutId={`item-${innerId}`}\n className={`border-b border-card-border py-list-item-py last:border-transparent`}\n >\n <motion.div layoutId={`toast-${innerId}`} className=\"relative\">\n <div className=\"relative flex items-start space-x-3\">\n <Fragment>\n {item.avatar ? (\n <div>\n <div className=\"relative px-list-avatar-px\">\n <button\n type=\"button\"\n onClick={setter}\n aria-label={translations.listOpenDetails(String(item.title))}\n className=\"flex size-10 items-center justify-center ring-primary\"\n >\n {item.avatar}\n </button>\n </div>\n </div>\n ) : null}\n <div className=\"min-w-0 flex-1 py-list-body-py text-foreground\">\n <div className=\"flex flex-row flex-nowrap justify-between gap-list-item-gap\">\n <button\n type=\"button\"\n onClick={setter}\n aria-label={translations.listOpenDetails(String(item.title))}\n className=\"cursor-pointer text-left transition-all ease-out hover:text-primary\"\n >\n <h3>{item.title}</h3>\n <p className=\"text-typography-sm leading-snug text-secondary\">{item.description}</p>\n </button>\n {Leading ? <Leading open={setter} /> : null}\n </div>\n </div>\n </Fragment>\n </div>\n </motion.div>\n </motion.li>\n );\n })}\n </ul>\n </Fragment>\n );\n};\n\nexport const AnimatedListItem = (props: PropsWithChildren<AnimatedItemProps>) => <Fragment>{props.children}</Fragment>;\n"],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ import { FloatingFocusManager, FloatingOverlay, FloatingPortal, useClick, useDismiss, useFloating, useInteractions, useRole, } from "@floating-ui/react";
3
+ import { AnimatePresence, motion, MotionConfig } from "motion/react";
4
+ import { XIcon } from "@phosphor-icons/react";
5
+ import React, { Fragment, useCallback, useId, useState } from "react";
6
+ import { useTranslations } from "../../hooks/use-translations";
7
+ const FloatItem = ({ item, context, setter, get, refs }) => {
8
+ const translations = useTranslations();
9
+ return (<FloatingPortal>
10
+ <MotionConfig reducedMotion="user" transition={{ type: "spring", damping: 30, stiffness: 350 }}>
11
+ <AnimatePresence mode="wait" presenceAffectsLayout>
12
+ {item ? (<motion.div key="overlay" exit={{ opacity: 0 }} animate={{ opacity: 1 }} initial={{ opacity: 0 }} transition={{ type: "tween", duration: 0.15, ease: "easeOut" }} className="pointer-events-none fixed inset-0 top-0 z-overlay h-screen w-screen bg-floating-overlay/70"/>) : null}
13
+ {item ? (<FloatingOverlay key="card" lockScroll className="absolute inset-0 z-floating flex items-center justify-center">
14
+ <FloatingFocusManager visuallyHiddenDismiss modal closeOnFocusOut context={context}>
15
+ <motion.div layout layoutId={`item-${item.id}`} initial={{ opacity: 0.6, scale: 0.98 }} animate={{ opacity: 1, scale: 1 }} exit={{ opacity: 0, scale: 0.98 }} className="relative flex h-min w-min min-w-xs flex-col gap-list-card-gap rounded-list-radius border border-card-border bg-card-background p-list-card-p py-list-card-py pb-list-card-pb shadow-shadow-card" ref={refs.setFloating} {...get()}>
16
+ <nav className="absolute right-4 top-1 lg:right-2">
17
+ <button type="button" onClick={setter} aria-label={translations.listCloseDetails} className="p-list-close-p opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger">
18
+ <XIcon />
19
+ </button>
20
+ </nav>
21
+ <motion.header layout className="flex w-full flex-wrap items-center justify-between gap-list-header-gap">
22
+ <h3 className="min-w-full text-balance text-list-title-text font-medium">{item.title}</h3>
23
+ <p className="text-typography-sm leading-snug text-secondary">{item.description}</p>
24
+ </motion.header>
25
+ <motion.div layout>{item.children}</motion.div>
26
+ </motion.div>
27
+ </FloatingFocusManager>
28
+ </FloatingOverlay>) : null}
29
+ </AnimatePresence>
30
+ </MotionConfig>
31
+ </FloatingPortal>);
32
+ };
33
+ export const AnimatedList = (props) => {
34
+ const translations = useTranslations();
35
+ const [selected, setSelected] = useState(null);
36
+ const id = useId();
37
+ const { context, refs } = useFloating({
38
+ open: selected !== null,
39
+ transform: true,
40
+ onOpenChange: (open) => (open ? undefined : setSelected(null)),
41
+ });
42
+ const click = useClick(context);
43
+ const role = useRole(context, { role: "dialog" });
44
+ const dismiss = useDismiss(context, {
45
+ escapeKey: true,
46
+ referencePress: true,
47
+ outsidePress: true,
48
+ });
49
+ const { getFloatingProps } = useInteractions([click, role, dismiss]);
50
+ const clear = useCallback(() => {
51
+ setSelected(null);
52
+ }, []);
53
+ const items = React.Children.toArray(props.children);
54
+ return (<Fragment>
55
+ <FloatItem refs={refs} context={context} get={getFloatingProps} item={selected} setter={clear}/>
56
+ <ul role="list">
57
+ {items.map((x, index) => {
58
+ const item = x.props;
59
+ const innerId = `${id}-${index}`;
60
+ const setter = () => setSelected({ ...item, id: innerId });
61
+ const Leading = item.leading;
62
+ return (<motion.li layout key={innerId} layoutId={`item-${innerId}`} className={`border-b border-card-border py-list-item-py last:border-transparent`}>
63
+ <motion.div layoutId={`toast-${innerId}`} className="relative">
64
+ <div className="relative flex items-start space-x-3">
65
+ <Fragment>
66
+ {item.avatar ? (<div>
67
+ <div className="relative px-list-avatar-px">
68
+ <button type="button" onClick={setter} aria-label={translations.listOpenDetails(String(item.title))} className="flex size-10 items-center justify-center ring-primary">
69
+ {item.avatar}
70
+ </button>
71
+ </div>
72
+ </div>) : null}
73
+ <div className="min-w-0 flex-1 py-list-body-py text-foreground">
74
+ <div className="flex flex-row flex-nowrap justify-between gap-list-item-gap">
75
+ <button type="button" onClick={setter} aria-label={translations.listOpenDetails(String(item.title))} className="cursor-pointer text-left transition-all ease-out hover:text-primary">
76
+ <h3>{item.title}</h3>
77
+ <p className="text-typography-sm leading-snug text-secondary">{item.description}</p>
78
+ </button>
79
+ {Leading ? <Leading open={setter}/> : null}
80
+ </div>
81
+ </div>
82
+ </Fragment>
83
+ </div>
84
+ </motion.div>
85
+ </motion.li>);
86
+ })}
87
+ </ul>
88
+ </Fragment>);
89
+ };
90
+ export const AnimatedListItem = (props) => <Fragment>{props.children}</Fragment>;
@@ -0,0 +1,27 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type PropsWithChildren } from "react";
3
+ import { Label } from "../../types";
4
+ declare const variants: (props?: ({
5
+ theme?: "warn" | "secondary" | "info" | "danger" | "success" | "muted" | "default" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ type NotificationOptions = Partial<{
8
+ id: string;
9
+ title: Label;
10
+ timeout: number;
11
+ closable: boolean;
12
+ loading: boolean;
13
+ theme: VariantProps<typeof variants>["theme"];
14
+ }>;
15
+ type NotificationSubscriber = {
16
+ close: () => void;
17
+ clear: () => void;
18
+ };
19
+ type ContextFunction = (description: Label, args?: NotificationOptions) => NotificationSubscriber;
20
+ export declare const useNotification: () => ContextFunction;
21
+ export type NotificationProps = Partial<{
22
+ max: number;
23
+ timeout: number;
24
+ }>;
25
+ export declare function Notifications({ children, max, timeout }: PropsWithChildren<NotificationProps>): import("react").JSX.Element;
26
+ export {};
27
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/components/display/notifications.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAiB,KAAK,iBAAiB,EAAmC,MAAM,OAAO,CAAC;AAG/F,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,QAAA,MAAM,QAAQ;;8EAgBb,CAAC;AAYF,KAAK,mBAAmB,GAAG,OAAO,CAAC;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;CACjD,CAAC,CAAC;AAQH,KAAK,sBAAsB,GAAG;IAAE,KAAK,EAAE,MAAM,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAEvE,KAAK,eAAe,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,mBAAmB,KAAK,sBAAsB,CAAC;AAMlG,eAAO,MAAM,eAAe,uBAAwC,CAAC;AAoDrE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AA0F1E,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAO,EAAE,OAAc,EAAE,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,+BAMxG"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { n as e, t } from "../../notifications-MT4XkLov.js";
2
+ import { n as e, t } from "../../notifications-NhCESJUV.js";
3
3
  export { t as Notifications, e as useNotification };
@@ -0,0 +1,132 @@
1
+ "use client";
2
+ import { Toast as Base } from "@base-ui/react/toast";
3
+ import { cva } from "class-variance-authority";
4
+ import { XIcon, CheckCircleIcon, WarningIcon, InfoIcon, CircleNotchIcon } from "@phosphor-icons/react";
5
+ import { AnimatePresence, motion } from "motion/react";
6
+ import { createContext, useCallback, useContext, useRef } from "react";
7
+ import { useHover } from "../../hooks/use-hover";
8
+ import { css } from "../../lib/dom";
9
+ const variants = cva("shadow-notification text-typography-sm relative isolate z-tooltip flex w-full flex-col overflow-hidden rounded-notification-radius border bg-card-background backdrop-blur-md transition-all duration-300", {
10
+ variants: {
11
+ theme: {
12
+ default: "border-card-border text-foreground shadow-black/5",
13
+ info: "border-alert-info-border bg-alert-info-bg text-alert-info-text",
14
+ warn: "border-alert-warn-border bg-alert-warn-bg text-alert-warn-text",
15
+ muted: "border-alert-muted-border bg-alert-muted-bg text-alert-muted-text",
16
+ danger: "border-alert-danger-border bg-alert-danger-bg text-alert-danger-text",
17
+ success: "border-alert-success-border bg-alert-success-bg text-alert-success-text",
18
+ secondary: "border-alert-secondary-border bg-alert-secondary-bg text-alert-secondary-text",
19
+ },
20
+ },
21
+ defaultVariants: { theme: "default" },
22
+ });
23
+ const themeIcons = {
24
+ default: InfoIcon,
25
+ info: InfoIcon,
26
+ warn: WarningIcon,
27
+ muted: InfoIcon,
28
+ danger: WarningIcon,
29
+ success: CheckCircleIcon,
30
+ secondary: InfoIcon,
31
+ };
32
+ const NotificationContext = createContext(() => {
33
+ throw new Error("Not implemented");
34
+ });
35
+ export const useNotification = () => useContext(NotificationContext);
36
+ function Notification(props) {
37
+ const closable = props.toast.data?.closable ?? true;
38
+ const loading = props.toast.data?.loading ?? false;
39
+ const theme = props.toast.data?.theme || "default";
40
+ const className = variants({ theme });
41
+ const Icon = loading ? CircleNotchIcon : themeIcons[theme] || InfoIcon;
42
+ return (<Base.Root toast={props.toast} swipeDirection="right">
43
+ <motion.li layout initial={{ opacity: 0, y: -20, scale: 0.95 }} animate={{ opacity: 1, y: 0, scale: 1 }} exit={{ opacity: 0, scale: 0.9, y: -20, transition: { duration: 0.2 } }} transition={{
44
+ type: "spring",
45
+ damping: 25,
46
+ stiffness: 300,
47
+ }} className="pointer-events-auto w-full list-none">
48
+ <Base.Content className={className}>
49
+ <div className="flex items-start gap-notification-gap p-notification-p">
50
+ <div className={css("mt-0.5 flex size-4 shrink-0 items-center justify-center opacity-80", loading && "animate-spin")}>
51
+ <Icon aria-hidden="true"/>
52
+ </div>
53
+
54
+ <div className="flex flex-1 flex-col gap-notification-inner-gap overflow-hidden">
55
+ {props.toast.title ? <Base.Title className="select-text truncate font-semibold leading-tight tracking-tight"/> : null}
56
+ <Base.Description className="text-typography-xs line-clamp-2 select-text font-medium leading-relaxed opacity-90"/>
57
+ </div>
58
+
59
+ {closable && !loading ? (<Base.Close className="-mr-1 -mt-1 shrink-0 rounded-notification-close-radius p-notification-close-p text-foreground/40 transition hover:bg-foreground/10 hover:text-foreground">
60
+ <span className="flex size-3.5 items-center justify-center">
61
+ <XIcon aria-hidden="true"/>
62
+ </span>
63
+ </Base.Close>) : null}
64
+ </div>
65
+ </Base.Content>
66
+ </motion.li>
67
+ </Base.Root>);
68
+ }
69
+ function NotificationsViewport({ max = 5 }) {
70
+ const ref = useRef(null);
71
+ const hover = useHover(ref);
72
+ const toastManager = Base.useToastManager();
73
+ const allToasts = max ? toastManager.toasts.slice(0, max) : toastManager.toasts;
74
+ const visibleToasts = hover ? allToasts : allToasts.slice(0, 3);
75
+ const hiddenCount = allToasts.length - visibleToasts.length;
76
+ return (<Base.Viewport ref={ref} className="pointer-events-none fixed left-1/2 top-notification-list-top z-floating flex w-full max-w-notification-list-max-w -translate-x-1/2 flex-col gap-notification-list-gap overflow-visible outline-none">
77
+ <AnimatePresence mode="popLayout" initial={false}>
78
+ {visibleToasts.map((toast) => (<Notification key={toast.id} toast={toast}/>))}
79
+ </AnimatePresence>
80
+
81
+ {!hover && hiddenCount > 0 && (<motion.div layout initial={{ opacity: 0, y: -10 }} animate={{ opacity: 1, y: 0 }} exit={{ opacity: 0, y: -10 }} className="shadow-notification pointer-events-auto cursor-default self-center rounded-full border border-card-border bg-card-background/80 px-notification-badge-px py-notification-badge-py text-notification-badge-text font-bold uppercase tracking-wider text-foreground/50 backdrop-blur transition-all hover:bg-card-background hover:text-foreground/80">
82
+ +{hiddenCount} more
83
+ </motion.div>)}
84
+ </Base.Viewport>);
85
+ }
86
+ function NotificationsInner({ children, max = 5 }) {
87
+ const toastManager = Base.useToastManager();
88
+ const clear = useCallback(() => {
89
+ toastManager.toasts.forEach((t) => toastManager.close(t.id));
90
+ }, [toastManager]);
91
+ const notify = useCallback((description, args) => {
92
+ const data = {
93
+ theme: args?.theme,
94
+ closable: args?.closable,
95
+ loading: args?.loading,
96
+ };
97
+ if (args?.id) {
98
+ const existing = toastManager.toasts.find((t) => t.id === args.id);
99
+ if (existing) {
100
+ toastManager.update(args.id, {
101
+ description,
102
+ title: args.title,
103
+ timeout: args.timeout,
104
+ data,
105
+ });
106
+ return { close: () => toastManager.close(args.id), clear };
107
+ }
108
+ }
109
+ const id = toastManager.add({
110
+ description,
111
+ id: args?.id,
112
+ title: args?.title,
113
+ timeout: args?.timeout,
114
+ data,
115
+ });
116
+ return {
117
+ close: () => toastManager.close(id),
118
+ clear,
119
+ };
120
+ }, [toastManager, clear]);
121
+ return (<NotificationContext.Provider value={notify}>
122
+ {children}
123
+ <Base.Portal>
124
+ <NotificationsViewport max={max}/>
125
+ </Base.Portal>
126
+ </NotificationContext.Provider>);
127
+ }
128
+ export function Notifications({ children, max = 5, timeout = 5000 }) {
129
+ return (<Base.Provider limit={max} timeout={timeout}>
130
+ <NotificationsInner max={max}>{children}</NotificationsInner>
131
+ </Base.Provider>);
132
+ }