@gunkin/uiify 0.0.24-alpha → 0.0.25-alpha

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 (414) hide show
  1. package/agents/index.md +1 -1
  2. package/agents/reference/components/accordion.md +18 -3
  3. package/agents/reference/components/alert-modal.md +19 -7
  4. package/agents/reference/components/alert.md +9 -1
  5. package/agents/reference/components/aspect-ratio.md +8 -0
  6. package/agents/reference/components/avatar.md +10 -0
  7. package/agents/reference/components/breadcrumb.md +20 -1
  8. package/agents/reference/components/candle-chart.md +50 -2
  9. package/agents/reference/components/carousel.md +30 -1
  10. package/agents/reference/components/checkbox.md +3 -1
  11. package/agents/reference/components/collapsible.md +16 -3
  12. package/agents/reference/components/color-picker.md +18 -2
  13. package/agents/reference/components/combobox.md +20 -9
  14. package/agents/reference/components/context-menu.md +37 -5
  15. package/agents/reference/components/drawer.md +30 -5
  16. package/agents/reference/components/dropdown-menu.md +4 -3
  17. package/agents/reference/components/field.md +3 -3
  18. package/agents/reference/components/form-error-summary.md +11 -1
  19. package/agents/reference/components/line-chart.md +41 -2
  20. package/agents/reference/components/modal.md +22 -3
  21. package/agents/reference/components/pagination.md +13 -1
  22. package/agents/reference/components/radio-group.md +8 -2
  23. package/agents/reference/components/rating.md +8 -2
  24. package/agents/reference/components/segmented-control.md +8 -3
  25. package/agents/reference/components/slider.md +13 -1
  26. package/agents/reference/components/spinner.md +10 -1
  27. package/agents/reference/components/table.md +15 -0
  28. package/agents/reference/components/tabs.md +21 -3
  29. package/agents/reference/components/tags-input.md +22 -1
  30. package/agents/reference/components/toast.md +55 -10
  31. package/agents/reference/components/toggle-group.md +5 -3
  32. package/agents/reference/components/toggle.md +16 -3
  33. package/agents/reference/components/toolbar.md +4 -4
  34. package/agents/reference/components/virtual-scroll.md +31 -2
  35. package/agents/reference/elements/choice.md +20 -7
  36. package/dist/components/accordion/Accordion.d.ts +1 -1
  37. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  38. package/dist/components/accordion/Accordion.js +62 -15
  39. package/dist/components/accordion/Accordion.js.map +1 -1
  40. package/dist/components/accordion/index.d.ts +1 -1
  41. package/dist/components/accordion/index.d.ts.map +1 -1
  42. package/dist/components/accordion/index.js.map +1 -1
  43. package/dist/components/accordion/types.d.ts +23 -2
  44. package/dist/components/accordion/types.d.ts.map +1 -1
  45. package/dist/components/alert/Alert.d.ts.map +1 -1
  46. package/dist/components/alert/Alert.js +11 -1
  47. package/dist/components/alert/Alert.js.map +1 -1
  48. package/dist/components/alert/index.d.ts +1 -1
  49. package/dist/components/alert/index.d.ts.map +1 -1
  50. package/dist/components/alert/index.js.map +1 -1
  51. package/dist/components/alert/types.d.ts +11 -1
  52. package/dist/components/alert/types.d.ts.map +1 -1
  53. package/dist/components/alert-modal/AlertModal.d.ts +1 -1
  54. package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
  55. package/dist/components/alert-modal/AlertModal.js +139 -20
  56. package/dist/components/alert-modal/AlertModal.js.map +1 -1
  57. package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
  58. package/dist/components/alert-modal/AlertModalParts.js +37 -4
  59. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  60. package/dist/components/alert-modal/index.d.ts +1 -1
  61. package/dist/components/alert-modal/index.d.ts.map +1 -1
  62. package/dist/components/alert-modal/index.js.map +1 -1
  63. package/dist/components/alert-modal/types.d.ts +40 -6
  64. package/dist/components/alert-modal/types.d.ts.map +1 -1
  65. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -1
  66. package/dist/components/aspect-ratio/AspectRatio.js +10 -2
  67. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  68. package/dist/components/aspect-ratio/types.d.ts +10 -1
  69. package/dist/components/aspect-ratio/types.d.ts.map +1 -1
  70. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  71. package/dist/components/avatar/Avatar.js +19 -2
  72. package/dist/components/avatar/Avatar.js.map +1 -1
  73. package/dist/components/avatar/types.d.ts +19 -1
  74. package/dist/components/avatar/types.d.ts.map +1 -1
  75. package/dist/components/breadcrumb/Breadcrumb.d.ts +2 -2
  76. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  77. package/dist/components/breadcrumb/Breadcrumb.js +118 -26
  78. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  79. package/dist/components/breadcrumb/index.d.ts +1 -1
  80. package/dist/components/breadcrumb/index.d.ts.map +1 -1
  81. package/dist/components/breadcrumb/index.js.map +1 -1
  82. package/dist/components/breadcrumb/types.d.ts +40 -1
  83. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  84. package/dist/components/candle-chart/CandleChart.d.ts +1 -1
  85. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  86. package/dist/components/candle-chart/CandleChart.js +269 -119
  87. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  88. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  89. package/dist/components/candle-chart/client/CandleChartClient.js +21 -1
  90. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  91. package/dist/components/candle-chart/client/index.d.ts +1 -1
  92. package/dist/components/candle-chart/client/index.d.ts.map +1 -1
  93. package/dist/components/candle-chart/client/index.js.map +1 -1
  94. package/dist/components/candle-chart/index.d.ts +1 -1
  95. package/dist/components/candle-chart/index.d.ts.map +1 -1
  96. package/dist/components/candle-chart/index.js.map +1 -1
  97. package/dist/components/candle-chart/types.d.ts +129 -1
  98. package/dist/components/candle-chart/types.d.ts.map +1 -1
  99. package/dist/components/carousel/Carousel.d.ts +2 -2
  100. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  101. package/dist/components/carousel/Carousel.js +2 -1
  102. package/dist/components/carousel/Carousel.js.map +1 -1
  103. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  104. package/dist/components/carousel/CarouselMarkup.js +137 -22
  105. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  106. package/dist/components/carousel/client/CarouselClient.d.ts.map +1 -1
  107. package/dist/components/carousel/client/CarouselClient.js +3 -2
  108. package/dist/components/carousel/client/CarouselClient.js.map +1 -1
  109. package/dist/components/carousel/client/carousel-controls.d.ts.map +1 -1
  110. package/dist/components/carousel/client/carousel-controls.js +2 -2
  111. package/dist/components/carousel/client/carousel-controls.js.map +1 -1
  112. package/dist/components/carousel/fade/FadeCarouselClient.d.ts.map +1 -1
  113. package/dist/components/carousel/fade/FadeCarouselClient.js +3 -2
  114. package/dist/components/carousel/fade/FadeCarouselClient.js.map +1 -1
  115. package/dist/components/carousel/index.d.ts +1 -1
  116. package/dist/components/carousel/index.d.ts.map +1 -1
  117. package/dist/components/carousel/index.js.map +1 -1
  118. package/dist/components/carousel/types.d.ts +85 -2
  119. package/dist/components/carousel/types.d.ts.map +1 -1
  120. package/dist/components/checkbox/Checkbox.d.ts +6 -1
  121. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  122. package/dist/components/checkbox/Checkbox.js +6 -1
  123. package/dist/components/checkbox/Checkbox.js.map +1 -1
  124. package/dist/components/checkbox/index.d.ts +1 -1
  125. package/dist/components/checkbox/index.d.ts.map +1 -1
  126. package/dist/components/checkbox/index.js.map +1 -1
  127. package/dist/components/checkbox/types.d.ts +3 -0
  128. package/dist/components/checkbox/types.d.ts.map +1 -1
  129. package/dist/components/collapsible/Collapsible.d.ts +1 -1
  130. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  131. package/dist/components/collapsible/Collapsible.js +35 -4
  132. package/dist/components/collapsible/Collapsible.js.map +1 -1
  133. package/dist/components/collapsible/index.d.ts +1 -1
  134. package/dist/components/collapsible/index.d.ts.map +1 -1
  135. package/dist/components/collapsible/index.js.map +1 -1
  136. package/dist/components/collapsible/types.d.ts +25 -3
  137. package/dist/components/collapsible/types.d.ts.map +1 -1
  138. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -1
  139. package/dist/components/color-picker/ColorPicker.js +165 -49
  140. package/dist/components/color-picker/ColorPicker.js.map +1 -1
  141. package/dist/components/color-picker/index.d.ts +1 -1
  142. package/dist/components/color-picker/index.d.ts.map +1 -1
  143. package/dist/components/color-picker/index.js.map +1 -1
  144. package/dist/components/color-picker/types.d.ts +37 -0
  145. package/dist/components/color-picker/types.d.ts.map +1 -1
  146. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  147. package/dist/components/combobox/Combobox.js +44 -25
  148. package/dist/components/combobox/Combobox.js.map +1 -1
  149. package/dist/components/combobox/index.d.ts +1 -1
  150. package/dist/components/combobox/index.d.ts.map +1 -1
  151. package/dist/components/combobox/index.js.map +1 -1
  152. package/dist/components/combobox/types.d.ts +29 -4
  153. package/dist/components/combobox/types.d.ts.map +1 -1
  154. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  155. package/dist/components/context-menu/ContextMenu.js +48 -11
  156. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  157. package/dist/components/context-menu/index.d.ts +1 -1
  158. package/dist/components/context-menu/index.d.ts.map +1 -1
  159. package/dist/components/context-menu/index.js.map +1 -1
  160. package/dist/components/context-menu/types.d.ts +35 -9
  161. package/dist/components/context-menu/types.d.ts.map +1 -1
  162. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  163. package/dist/components/drawer/Drawer.js +5 -1
  164. package/dist/components/drawer/Drawer.js.map +1 -1
  165. package/dist/components/drawer/DrawerNative.d.ts +1 -1
  166. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  167. package/dist/components/drawer/DrawerNative.js +254 -44
  168. package/dist/components/drawer/DrawerNative.js.map +1 -1
  169. package/dist/components/drawer/index.d.ts +1 -1
  170. package/dist/components/drawer/index.d.ts.map +1 -1
  171. package/dist/components/drawer/index.js.map +1 -1
  172. package/dist/components/drawer/types.d.ts +31 -6
  173. package/dist/components/drawer/types.d.ts.map +1 -1
  174. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  175. package/dist/components/dropdown-menu/DropdownMenu.js +8 -2
  176. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  177. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  178. package/dist/components/dropdown-menu/DropdownMenuBar.js +47 -29
  179. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  180. package/dist/components/dropdown-menu/types.d.ts +7 -5
  181. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  182. package/dist/components/field/types.d.ts +4 -4
  183. package/dist/components/field/types.d.ts.map +1 -1
  184. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -1
  185. package/dist/components/form-error-summary/FormErrorSummary.js +35 -3
  186. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
  187. package/dist/components/form-error-summary/index.d.ts +1 -1
  188. package/dist/components/form-error-summary/index.d.ts.map +1 -1
  189. package/dist/components/form-error-summary/index.js.map +1 -1
  190. package/dist/components/form-error-summary/types.d.ts +20 -1
  191. package/dist/components/form-error-summary/types.d.ts.map +1 -1
  192. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  193. package/dist/components/internal/choice-family/ChoiceGroup.js +61 -11
  194. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  195. package/dist/components/internal/choice-family/types.d.ts +51 -1
  196. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  197. package/dist/components/internal/menu/types.d.ts +1 -0
  198. package/dist/components/internal/menu/types.d.ts.map +1 -1
  199. package/dist/components/internal/menu/use-menu-surface.d.ts.map +1 -1
  200. package/dist/components/internal/menu/use-menu-surface.js +2 -1
  201. package/dist/components/internal/menu/use-menu-surface.js.map +1 -1
  202. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  203. package/dist/components/internal/native-check-control/NativeCheckControl.js +35 -3
  204. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  205. package/dist/components/internal/native-check-control/types.d.ts +21 -1
  206. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  207. package/dist/components/line-chart/LineChart.d.ts +1 -1
  208. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  209. package/dist/components/line-chart/LineChart.js +260 -79
  210. package/dist/components/line-chart/LineChart.js.map +1 -1
  211. package/dist/components/line-chart/client/LineChartClient.d.ts.map +1 -1
  212. package/dist/components/line-chart/client/LineChartClient.js +21 -1
  213. package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
  214. package/dist/components/line-chart/client/index.d.ts +1 -1
  215. package/dist/components/line-chart/client/index.d.ts.map +1 -1
  216. package/dist/components/line-chart/client/index.js.map +1 -1
  217. package/dist/components/line-chart/index.d.ts +1 -1
  218. package/dist/components/line-chart/index.d.ts.map +1 -1
  219. package/dist/components/line-chart/index.js.map +1 -1
  220. package/dist/components/line-chart/types.d.ts +113 -1
  221. package/dist/components/line-chart/types.d.ts.map +1 -1
  222. package/dist/components/modal/Modal.d.ts +1 -1
  223. package/dist/components/modal/Modal.d.ts.map +1 -1
  224. package/dist/components/modal/Modal.js +118 -43
  225. package/dist/components/modal/Modal.js.map +1 -1
  226. package/dist/components/modal/index.d.ts +1 -1
  227. package/dist/components/modal/index.d.ts.map +1 -1
  228. package/dist/components/modal/index.js.map +1 -1
  229. package/dist/components/modal/types.d.ts +24 -2
  230. package/dist/components/modal/types.d.ts.map +1 -1
  231. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  232. package/dist/components/otp-input/OtpInput.js +4 -2
  233. package/dist/components/otp-input/OtpInput.js.map +1 -1
  234. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  235. package/dist/components/pagination/Pagination.js +172 -55
  236. package/dist/components/pagination/Pagination.js.map +1 -1
  237. package/dist/components/pagination/index.d.ts +1 -1
  238. package/dist/components/pagination/index.d.ts.map +1 -1
  239. package/dist/components/pagination/index.js.map +1 -1
  240. package/dist/components/pagination/types.d.ts +33 -1
  241. package/dist/components/pagination/types.d.ts.map +1 -1
  242. package/dist/components/radio-group/RadioGroup.d.ts +1 -1
  243. package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
  244. package/dist/components/radio-group/RadioGroup.js +5 -1
  245. package/dist/components/radio-group/RadioGroup.js.map +1 -1
  246. package/dist/components/radio-group/index.d.ts +1 -1
  247. package/dist/components/radio-group/index.d.ts.map +1 -1
  248. package/dist/components/radio-group/index.js.map +1 -1
  249. package/dist/components/radio-group/types.d.ts +4 -2
  250. package/dist/components/radio-group/types.d.ts.map +1 -1
  251. package/dist/components/rating/Rating.d.ts +1 -1
  252. package/dist/components/rating/Rating.d.ts.map +1 -1
  253. package/dist/components/rating/Rating.js +5 -1
  254. package/dist/components/rating/Rating.js.map +1 -1
  255. package/dist/components/rating/client/RatingClient.d.ts +1 -1
  256. package/dist/components/rating/client/RatingClient.d.ts.map +1 -1
  257. package/dist/components/rating/client/RatingClient.js +5 -1
  258. package/dist/components/rating/client/RatingClient.js.map +1 -1
  259. package/dist/components/rating/index.d.ts +1 -1
  260. package/dist/components/rating/index.d.ts.map +1 -1
  261. package/dist/components/rating/index.js.map +1 -1
  262. package/dist/components/rating/types.d.ts +12 -1
  263. package/dist/components/rating/types.d.ts.map +1 -1
  264. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  265. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  266. package/dist/components/segmented-control/SegmentedControl.js +5 -1
  267. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  268. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts +1 -1
  269. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  270. package/dist/components/segmented-control/client/SegmentedControlClient.js +5 -1
  271. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  272. package/dist/components/segmented-control/index.d.ts +1 -1
  273. package/dist/components/segmented-control/index.d.ts.map +1 -1
  274. package/dist/components/segmented-control/index.js.map +1 -1
  275. package/dist/components/segmented-control/types.d.ts +4 -4
  276. package/dist/components/segmented-control/types.d.ts.map +1 -1
  277. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  278. package/dist/components/slider/client/SliderClient.js +102 -20
  279. package/dist/components/slider/client/SliderClient.js.map +1 -1
  280. package/dist/components/slider/client/index.d.ts +1 -1
  281. package/dist/components/slider/client/index.d.ts.map +1 -1
  282. package/dist/components/slider/client/index.js.map +1 -1
  283. package/dist/components/slider/types.d.ts +46 -1
  284. package/dist/components/slider/types.d.ts.map +1 -1
  285. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  286. package/dist/components/spinner/Spinner.js +19 -3
  287. package/dist/components/spinner/Spinner.js.map +1 -1
  288. package/dist/components/spinner/index.d.ts +1 -1
  289. package/dist/components/spinner/index.d.ts.map +1 -1
  290. package/dist/components/spinner/index.js.map +1 -1
  291. package/dist/components/spinner/types.d.ts +11 -1
  292. package/dist/components/spinner/types.d.ts.map +1 -1
  293. package/dist/components/table/client/TableColumnHeader.d.ts +3 -3
  294. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
  295. package/dist/components/table/client/TableColumnHeader.js +24 -2
  296. package/dist/components/table/client/TableColumnHeader.js.map +1 -1
  297. package/dist/components/table/client/TableSelection.d.ts +3 -3
  298. package/dist/components/table/client/TableSelection.d.ts.map +1 -1
  299. package/dist/components/table/client/TableSelection.js +6 -4
  300. package/dist/components/table/client/TableSelection.js.map +1 -1
  301. package/dist/components/table/client.d.ts +1 -1
  302. package/dist/components/table/client.d.ts.map +1 -1
  303. package/dist/components/table/client.js.map +1 -1
  304. package/dist/components/table/types.d.ts +17 -0
  305. package/dist/components/table/types.d.ts.map +1 -1
  306. package/dist/components/tabs/Tabs.d.ts +1 -1
  307. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  308. package/dist/components/tabs/Tabs.js +45 -1
  309. package/dist/components/tabs/Tabs.js.map +1 -1
  310. package/dist/components/tabs/index.d.ts +1 -1
  311. package/dist/components/tabs/index.d.ts.map +1 -1
  312. package/dist/components/tabs/index.js.map +1 -1
  313. package/dist/components/tabs/types.d.ts +29 -3
  314. package/dist/components/tabs/types.d.ts.map +1 -1
  315. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  316. package/dist/components/tags-input/TagsInput.js +54 -9
  317. package/dist/components/tags-input/TagsInput.js.map +1 -1
  318. package/dist/components/tags-input/index.d.ts +1 -1
  319. package/dist/components/tags-input/index.d.ts.map +1 -1
  320. package/dist/components/tags-input/index.js.map +1 -1
  321. package/dist/components/tags-input/types.d.ts +27 -4
  322. package/dist/components/tags-input/types.d.ts.map +1 -1
  323. package/dist/components/toast/Toast.d.ts +1 -1
  324. package/dist/components/toast/Toast.d.ts.map +1 -1
  325. package/dist/components/toast/Toast.js +123 -35
  326. package/dist/components/toast/Toast.js.map +1 -1
  327. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  328. package/dist/components/toast/ToastElements.js +73 -12
  329. package/dist/components/toast/ToastElements.js.map +1 -1
  330. package/dist/components/toast/index.d.ts +1 -1
  331. package/dist/components/toast/index.d.ts.map +1 -1
  332. package/dist/components/toast/index.js.map +1 -1
  333. package/dist/components/toast/types.d.ts +49 -16
  334. package/dist/components/toast/types.d.ts.map +1 -1
  335. package/dist/components/toggle/Toggle.d.ts +1 -1
  336. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  337. package/dist/components/toggle/Toggle.js +63 -29
  338. package/dist/components/toggle/Toggle.js.map +1 -1
  339. package/dist/components/toggle/index.d.ts +1 -1
  340. package/dist/components/toggle/index.d.ts.map +1 -1
  341. package/dist/components/toggle/index.js.map +1 -1
  342. package/dist/components/toggle/types.d.ts +31 -3
  343. package/dist/components/toggle/types.d.ts.map +1 -1
  344. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
  345. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  346. package/dist/components/toggle-group/ToggleGroup.js +5 -1
  347. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  348. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
  349. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
  350. package/dist/components/toggle-group/client/ToggleGroupClient.js +15 -1
  351. package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
  352. package/dist/components/toggle-group/index.d.ts +1 -1
  353. package/dist/components/toggle-group/index.d.ts.map +1 -1
  354. package/dist/components/toggle-group/index.js.map +1 -1
  355. package/dist/components/toggle-group/types.d.ts +4 -4
  356. package/dist/components/toggle-group/types.d.ts.map +1 -1
  357. package/dist/components/toolbar/Toolbar.d.ts +3 -12
  358. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  359. package/dist/components/toolbar/Toolbar.js +22 -2
  360. package/dist/components/toolbar/Toolbar.js.map +1 -1
  361. package/dist/components/toolbar/types.d.ts +5 -5
  362. package/dist/components/toolbar/types.d.ts.map +1 -1
  363. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  364. package/dist/components/virtual-scroll/VirtualScroll.js +53 -20
  365. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  366. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts +3 -14
  367. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts.map +1 -1
  368. package/dist/components/virtual-scroll/VirtualScrollRowShell.js +6 -3
  369. package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
  370. package/dist/components/virtual-scroll/index.d.ts +1 -1
  371. package/dist/components/virtual-scroll/index.d.ts.map +1 -1
  372. package/dist/components/virtual-scroll/index.js.map +1 -1
  373. package/dist/components/virtual-scroll/types.d.ts +35 -2
  374. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  375. package/dist/components/virtual-scroll/types.js.map +1 -1
  376. package/dist/core/slot-props.d.ts +19 -0
  377. package/dist/core/slot-props.d.ts.map +1 -0
  378. package/dist/core/slot-props.js +59 -0
  379. package/dist/core/slot-props.js.map +1 -0
  380. package/dist/core/use-popover.d.ts +2 -1
  381. package/dist/core/use-popover.d.ts.map +1 -1
  382. package/dist/core/use-popover.js +3 -1
  383. package/dist/core/use-popover.js.map +1 -1
  384. package/dist/elements/choice/Choice.d.ts.map +1 -1
  385. package/dist/elements/choice/Choice.js +47 -7
  386. package/dist/elements/choice/Choice.js.map +1 -1
  387. package/dist/elements/choice/index.d.ts +1 -1
  388. package/dist/elements/choice/index.d.ts.map +1 -1
  389. package/dist/elements/choice/index.js.map +1 -1
  390. package/dist/elements/choice/types.d.ts +25 -10
  391. package/dist/elements/choice/types.d.ts.map +1 -1
  392. package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -2
  393. package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
  394. package/dist/styles/index.css +1 -1
  395. package/dist/styles/tailwind.css +17 -16
  396. package/package.json +1 -1
  397. package/skills/uiify/references/elements/accordion.md +1 -1
  398. package/skills/uiify/references/elements/breadcrumb.md +1 -0
  399. package/skills/uiify/references/elements/checkbox.md +1 -1
  400. package/skills/uiify/references/elements/color-picker.md +1 -1
  401. package/skills/uiify/references/elements/combobox.md +1 -1
  402. package/skills/uiify/references/elements/context-menu.md +1 -1
  403. package/skills/uiify/references/elements/dropdown-menu.md +1 -1
  404. package/skills/uiify/references/elements/form-error-summary.md +5 -0
  405. package/skills/uiify/references/elements/pagination.md +1 -1
  406. package/skills/uiify/references/elements/radio-group.md +1 -0
  407. package/skills/uiify/references/elements/rating.md +1 -1
  408. package/skills/uiify/references/elements/segmented-control.md +1 -0
  409. package/skills/uiify/references/elements/spinner.md +1 -1
  410. package/skills/uiify/references/elements/table.md +1 -1
  411. package/skills/uiify/references/elements/tabs.md +1 -1
  412. package/skills/uiify/references/elements/tags-input.md +1 -1
  413. package/skills/uiify/references/elements/toast.md +1 -0
  414. package/skills/uiify/references/elements/toggle-group.md +1 -0
@@ -14,6 +14,8 @@ import {
14
14
  import { useIsomorphicLayoutEffect, useMergedRefs } from "@gunkin/uiify/hooks";
15
15
  import { createPartContext, splitRef } from "@gunkin/uiify/core";
16
16
  import { VisuallyHidden } from "@gunkin/uiify/core/visually-hidden";
17
+ import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
18
+ import { omitProps, resolveRepeatedSlotProps } from "../../core/slot-props.js";
17
19
  import { createToastStore } from "./toast-store.js";
18
20
  import {
19
21
  ToastAction as ToastActionElement,
@@ -33,7 +35,7 @@ const [ToastStoreProvider, useToastStoreContext] = createPartContext(
33
35
  "Provider"
34
36
  );
35
37
  function ToastProvider(props) {
36
- const { children, limit = 3, labels } = props;
38
+ const { children, limit = 3, labels, slotProps } = props;
37
39
  const resolvedLabels = useMemo(() => ({ ...DEFAULT_TOAST_LABELS, ...labels }), [labels]);
38
40
  const storeRef = useRef(null);
39
41
  storeRef.current ??= createToastStore({ limit });
@@ -55,10 +57,22 @@ function ToastProvider(props) {
55
57
  () => ({ dismiss, pause, resume, store, labels: resolvedLabels }),
56
58
  [dismiss, pause, resume, store, resolvedLabels]
57
59
  );
60
+ const politeLiveRegionProps = omitProps(slotProps?.politeLiveRegion, [
61
+ "aria-atomic",
62
+ "aria-live",
63
+ "children",
64
+ "dangerouslySetInnerHTML"
65
+ ]);
66
+ const assertiveLiveRegionProps = omitProps(slotProps?.assertiveLiveRegion, [
67
+ "aria-atomic",
68
+ "aria-live",
69
+ "children",
70
+ "dangerouslySetInnerHTML"
71
+ ]);
58
72
  return /* @__PURE__ */ jsxs(ToastStoreProvider, { value: contextValue, children: [
59
73
  children,
60
- /* @__PURE__ */ jsx(VisuallyHidden, { "aria-atomic": "true", "aria-live": "polite", children: announcement }),
61
- /* @__PURE__ */ jsx(VisuallyHidden, { "aria-atomic": "true", "aria-live": "assertive", children: assertiveAnnouncement })
74
+ /* @__PURE__ */ jsx(VisuallyHidden, { ...politeLiveRegionProps, "aria-atomic": "true", "aria-live": "polite", children: announcement }),
75
+ /* @__PURE__ */ jsx(VisuallyHidden, { ...assertiveLiveRegionProps, "aria-atomic": "true", "aria-live": "assertive", children: assertiveAnnouncement })
62
76
  ] });
63
77
  }
64
78
  ToastProvider.displayName = "ToastProvider";
@@ -74,9 +88,11 @@ function ToastViewport(props) {
74
88
  sync();
75
89
  return unsubscribe;
76
90
  }, [store]);
77
- const [consumerRef, domProps] = splitRef(props);
91
+ const { slotProps, ...viewportProps } = props;
92
+ const [consumerRef, domProps] = splitRef(viewportProps);
78
93
  const { labels } = useToastStoreContext("Viewport");
79
94
  const resolvedLabels = { ...labels, ...props.labels };
95
+ const { item: itemSlotProps, ...rootSlotProps } = slotProps ?? {};
80
96
  const viewportRef = useRef(null);
81
97
  const mergedRef = useMergedRefs(viewportRef, consumerRef);
82
98
  const hasToasts = toasts.length > 0;
@@ -89,67 +105,139 @@ function ToastViewport(props) {
89
105
  } catch {
90
106
  }
91
107
  }, [hasToasts]);
92
- return /* @__PURE__ */ jsx(ToastViewportElement, { ...domProps, labels: resolvedLabels, popover: "manual", ref: mergedRef, children: toasts.map((toast) => /* @__PURE__ */ jsx(ViewTransition, { default: TOAST_TRANSITION, children: /* @__PURE__ */ jsx(ToastRoot, { toast }) }, toast.id)) });
108
+ return /* @__PURE__ */ jsx(ToastViewportElement, { ...domProps, labels: resolvedLabels, popover: "manual", ref: mergedRef, children: toasts.map((toast) => /* @__PURE__ */ jsx(ViewTransition, { default: TOAST_TRANSITION, children: /* @__PURE__ */ jsx(
109
+ ToastRoot,
110
+ {
111
+ ...resolveRepeatedSlotProps(itemSlotProps, toast.id, [
112
+ "aria-label",
113
+ "data-part",
114
+ "data-state",
115
+ "data-uiify-toast",
116
+ "role",
117
+ "tabIndex"
118
+ ]),
119
+ toast,
120
+ slotProps: rootSlotProps
121
+ }
122
+ ) }, toast.id)) });
93
123
  }
94
124
  ToastViewport.displayName = "ToastViewport";
95
125
  function ToastRoot(props) {
96
- const { toast, labels: labelOverrides } = props;
126
+ const { toast, labels: labelOverrides, slotProps, ...consumerRootProps } = props;
97
127
  const { dismiss, pause, resume, labels: providerLabels } = useToastStoreContext("Root");
98
128
  const labels = { ...providerLabels, ...labelOverrides };
99
129
  const swipeRef = useRef(null);
100
130
  const endSwipe = (event) => {
101
131
  if (swipeRef.current?.pointerId === event.pointerId) swipeRef.current = null;
102
132
  };
133
+ const rootProps = omitProps(consumerRootProps, [
134
+ "aria-label",
135
+ "children",
136
+ "dangerouslySetInnerHTML",
137
+ "data-part",
138
+ "data-state",
139
+ "data-uiify-toast",
140
+ "role",
141
+ "tabIndex"
142
+ ]);
143
+ const titleProps = resolveRepeatedSlotProps(slotProps?.title, toast.id, [
144
+ "children",
145
+ "dangerouslySetInnerHTML",
146
+ "data-part",
147
+ "data-uiify-toast"
148
+ ]);
149
+ const descriptionProps = resolveRepeatedSlotProps(slotProps?.description, toast.id, [
150
+ "children",
151
+ "dangerouslySetInnerHTML",
152
+ "data-part",
153
+ "data-uiify-toast"
154
+ ]);
155
+ const actionProps = resolveRepeatedSlotProps(slotProps?.action, toast.id, [
156
+ "children",
157
+ "dangerouslySetInnerHTML",
158
+ "type",
159
+ "data-part",
160
+ "data-uiify-toast"
161
+ ]);
162
+ const closeProps = resolveRepeatedSlotProps(slotProps?.close, toast.id, [
163
+ "aria-label",
164
+ "children",
165
+ "dangerouslySetInnerHTML",
166
+ "type",
167
+ "data-part",
168
+ "data-uiify-toast"
169
+ ]);
103
170
  return /* @__PURE__ */ jsxs(
104
171
  "div",
105
172
  {
173
+ ...rootProps,
106
174
  "aria-label": typeof toast.title === "string" ? toast.title : labels.notification,
107
175
  "data-state": "open",
108
176
  "data-part": "item",
109
177
  "data-uiify-toast": "",
110
178
  role: "group",
111
179
  tabIndex: 0,
112
- onFocus: () => pause(toast.id),
113
- onBlur: (event) => {
180
+ onFocus: composeEventHandlers(rootProps.onFocus, () => pause(toast.id)),
181
+ onBlur: composeEventHandlers(rootProps.onBlur, (event) => {
114
182
  if (!event.currentTarget.matches(":hover, :focus-within")) resume(toast.id);
115
- },
116
- onKeyDown: (event) => {
117
- if (event.key === "Escape") {
118
- event.preventDefault();
183
+ }),
184
+ onKeyDown: composeEventHandlers(
185
+ rootProps.onKeyDown,
186
+ (event) => {
187
+ if (event.key === "Escape") {
188
+ event.preventDefault();
189
+ dismiss(toast.id);
190
+ }
191
+ }
192
+ ),
193
+ onPointerEnter: composeEventHandlers(rootProps.onPointerEnter, () => pause(toast.id)),
194
+ onPointerLeave: composeEventHandlers(
195
+ rootProps.onPointerLeave,
196
+ (event) => {
197
+ if (!event.currentTarget.matches(":focus-within")) resume(toast.id);
198
+ }
199
+ ),
200
+ onPointerCancel: composeEventHandlers(rootProps.onPointerCancel, endSwipe),
201
+ onPointerDown: composeEventHandlers(
202
+ rootProps.onPointerDown,
203
+ (event) => {
204
+ if (!swipeRef.current && event.isPrimary) swipeRef.current = event;
205
+ }
206
+ ),
207
+ onPointerMove: composeEventHandlers(
208
+ rootProps.onPointerMove,
209
+ (event) => {
210
+ const swipe = swipeRef.current;
211
+ if (swipe?.pointerId !== event.pointerId) return;
212
+ const deltaX = event.clientX - swipe.clientX;
213
+ const deltaY = event.clientY - swipe.clientY;
214
+ if (Math.abs(deltaX) <= 80 || Math.abs(deltaX) <= Math.abs(deltaY)) return;
119
215
  dismiss(toast.id);
120
216
  }
121
- },
122
- onPointerEnter: () => pause(toast.id),
123
- onPointerLeave: (event) => {
124
- if (!event.currentTarget.matches(":focus-within")) resume(toast.id);
125
- },
126
- onPointerCancel: endSwipe,
127
- onPointerDown: (event) => {
128
- if (!swipeRef.current && event.isPrimary) swipeRef.current = event;
129
- },
130
- onPointerMove: (event) => {
131
- const swipe = swipeRef.current;
132
- if (swipe?.pointerId !== event.pointerId) return;
133
- const deltaX = event.clientX - swipe.clientX;
134
- const deltaY = event.clientY - swipe.clientY;
135
- if (Math.abs(deltaX) <= 80 || Math.abs(deltaX) <= Math.abs(deltaY)) return;
136
- dismiss(toast.id);
137
- },
138
- onPointerUp: endSwipe,
217
+ ),
218
+ onPointerUp: composeEventHandlers(rootProps.onPointerUp, endSwipe),
139
219
  children: [
140
- toast.title ? /* @__PURE__ */ jsx(ToastTitle, { children: toast.title }) : null,
141
- toast.description ? /* @__PURE__ */ jsx(ToastDescription, { children: toast.description }) : null,
220
+ toast.title ? /* @__PURE__ */ jsx(ToastTitle, { ...titleProps, children: toast.title }) : null,
221
+ toast.description ? /* @__PURE__ */ jsx(ToastDescription, { ...descriptionProps, children: toast.description }) : null,
142
222
  toast.action ? /* @__PURE__ */ jsx(
143
223
  ToastAction,
144
224
  {
145
- onClick: () => {
225
+ ...actionProps,
226
+ onClick: composeEventHandlers(actionProps?.onClick, () => {
146
227
  toast.action?.onClick();
147
228
  dismiss(toast.id);
148
- },
229
+ }),
149
230
  children: toast.action.label
150
231
  }
151
232
  ) : null,
152
- /* @__PURE__ */ jsx(ToastClose, { labels, onClick: () => dismiss(toast.id) })
233
+ /* @__PURE__ */ jsx(
234
+ ToastClose,
235
+ {
236
+ ...closeProps,
237
+ labels,
238
+ onClick: composeEventHandlers(closeProps?.onClick, () => dismiss(toast.id))
239
+ }
240
+ )
153
241
  ]
154
242
  }
155
243
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n addTransitionType,\n startTransition,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n ViewTransition,\n} from \"react\";\nimport type { FocusEvent, KeyboardEvent, PointerEvent, ReactElement } from \"react\";\nimport { useIsomorphicLayoutEffect, useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { createPartContext, splitRef } from \"@gunkin/uiify/core\";\nimport { VisuallyHidden } from \"@gunkin/uiify/core/visually-hidden\";\nimport { createToastStore } from \"./toast-store.js\";\nimport {\n ToastAction as ToastActionElement,\n ToastClose as ToastCloseElement,\n ToastDescription,\n ToastTitle,\n ToastViewport as ToastViewportElement,\n} from \"./ToastElements.js\";\nimport type {\n ToastInput,\n ToastStore,\n ToastContextValue,\n ToastProviderOwnProps,\n ToastViewportOwnProps,\n ToastRootOwnProps,\n ToastActionProps,\n ToastCloseProps,\n ToastLabels,\n} from \"./types.js\";\n\nexport type {\n ToastActionProps,\n ToastCloseProps,\n ToastDescriptionOwnProps,\n ToastInput,\n ToastLabels,\n ToastPriority,\n ToastProviderOwnProps,\n ToastRecord,\n ToastRootOwnProps,\n ToastStore,\n ToastTitleOwnProps,\n ToastViewportOwnProps,\n} from \"./types.js\";\n\nconst DEFAULT_TOAST_LABELS: ToastLabels = {\n region: \"Notifications\",\n notification: \"Notification\",\n close: \"Close\",\n};\n\n/** Transition type and view-transition-class shared with behavior.css and styles/toast.css. */\nconst TOAST_TRANSITION = \"uiify-toast\";\n\nconst [ToastStoreProvider, useToastStoreContext] = createPartContext<ToastContextValue>(\n \"Toast\",\n \"Provider\",\n);\n\nexport { ToastDescription, ToastTitle };\n\nexport function ToastProvider(props: ToastProviderOwnProps): ReactElement | null {\n const { children, limit = 3, labels } = props;\n const resolvedLabels = useMemo(() => ({ ...DEFAULT_TOAST_LABELS, ...labels }), [labels]);\n const storeRef = useRef<ToastStore | null>(null);\n storeRef.current ??= createToastStore({ limit });\n const store = storeRef.current;\n\n const dismiss = useCallback((id: string) => store.dismiss(id), [store]);\n const pause = useCallback((id: string) => store.pause(id), [store]);\n const resume = useCallback((id: string) => store.resume(id), [store]);\n\n const announcement = useSyncExternalStore(\n store.subscribe,\n () => store.getAnnouncement(),\n () => \"\",\n );\n const assertiveAnnouncement = useSyncExternalStore(\n store.subscribe,\n () => store.getAssertiveAnnouncement(),\n () => \"\",\n );\n const contextValue = useMemo(\n () => ({ dismiss, pause, resume, store, labels: resolvedLabels }),\n [dismiss, pause, resume, store, resolvedLabels],\n );\n\n return (\n <ToastStoreProvider value={contextValue}>\n {children}\n <VisuallyHidden aria-atomic=\"true\" aria-live=\"polite\">\n {announcement}\n </VisuallyHidden>\n <VisuallyHidden aria-atomic=\"true\" aria-live=\"assertive\">\n {assertiveAnnouncement}\n </VisuallyHidden>\n </ToastStoreProvider>\n );\n}\nToastProvider.displayName = \"ToastProvider\";\n\nexport function ToastViewport(props: ToastViewportOwnProps): ReactElement | null {\n const { store } = useToastStoreContext(\"Viewport\");\n // Not useSyncExternalStore: a store read there always commits synchronously, and\n // <ViewTransition> only animates commits made inside a Transition.\n const [toasts, setToasts] = useState(store.getServerSnapshot);\n useEffect(() => {\n const sync = () =>\n startTransition(() => {\n addTransitionType(TOAST_TRANSITION);\n setToasts(store.getSnapshot());\n });\n const unsubscribe = store.subscribe(sync);\n sync();\n return unsubscribe;\n }, [store]);\n const [consumerRef, domProps] = splitRef<HTMLElement, ToastViewportOwnProps>(props);\n const { labels } = useToastStoreContext(\"Viewport\");\n const resolvedLabels = { ...labels, ...props.labels };\n const viewportRef = useRef<HTMLElement | null>(null);\n const mergedRef = useMergedRefs(viewportRef, consumerRef);\n const hasToasts = toasts.length > 0;\n\n // Same technique as core/use-popover.ts: guard with .matches(\":popover-open\")\n // so a StrictMode double-invoke or an unrelated re-run doesn't call\n // showPopover/hidePopover on a popover already in that state (both throw).\n // try/catch covers the node having disconnected between render and effect.\n useIsomorphicLayoutEffect(() => {\n const viewport = viewportRef.current;\n if (!viewport) return;\n try {\n if (hasToasts && !viewport.matches(\":popover-open\")) viewport.showPopover();\n if (!hasToasts && viewport.matches(\":popover-open\")) viewport.hidePopover();\n } catch {\n // The node may have disconnected between render and layout effect.\n }\n }, [hasToasts]);\n\n return (\n <ToastViewportElement {...domProps} labels={resolvedLabels} popover=\"manual\" ref={mergedRef}>\n {toasts.map((toast) => (\n <ViewTransition default={TOAST_TRANSITION} key={toast.id}>\n <ToastRoot toast={toast} />\n </ViewTransition>\n ))}\n </ToastViewportElement>\n );\n}\nToastViewport.displayName = \"ToastViewport\";\n\nexport function ToastRoot(props: ToastRootOwnProps): ReactElement | null {\n const { toast, labels: labelOverrides } = props;\n const { dismiss, pause, resume, labels: providerLabels } = useToastStoreContext(\"Root\");\n const labels = { ...providerLabels, ...labelOverrides };\n const swipeRef = useRef<PointerEvent<HTMLDivElement> | null>(null);\n const endSwipe = (event: PointerEvent<HTMLDivElement>) => {\n if (swipeRef.current?.pointerId === event.pointerId) swipeRef.current = null;\n };\n\n /* oxlint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex, jsx-a11y/prefer-tag-over-role -- pause/swipe on toast card */\n return (\n <div\n aria-label={typeof toast.title === \"string\" ? toast.title : labels.notification}\n data-state=\"open\"\n data-part=\"item\"\n data-uiify-toast=\"\"\n role=\"group\"\n tabIndex={0}\n onFocus={() => pause(toast.id)}\n onBlur={(event: FocusEvent<HTMLDivElement>) => {\n if (!event.currentTarget.matches(\":hover, :focus-within\")) resume(toast.id);\n }}\n onKeyDown={(event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n dismiss(toast.id);\n }\n }}\n onPointerEnter={() => pause(toast.id)}\n onPointerLeave={(event: PointerEvent<HTMLDivElement>) => {\n if (!event.currentTarget.matches(\":focus-within\")) resume(toast.id);\n }}\n onPointerCancel={endSwipe}\n onPointerDown={(event: PointerEvent<HTMLDivElement>) => {\n if (!swipeRef.current && event.isPrimary) swipeRef.current = event;\n }}\n onPointerMove={(event: PointerEvent<HTMLDivElement>) => {\n const swipe = swipeRef.current;\n if (swipe?.pointerId !== event.pointerId) return;\n const deltaX = event.clientX - swipe.clientX;\n const deltaY = event.clientY - swipe.clientY;\n if (Math.abs(deltaX) <= 80 || Math.abs(deltaX) <= Math.abs(deltaY)) return;\n dismiss(toast.id);\n }}\n onPointerUp={endSwipe}\n >\n {toast.title ? <ToastTitle>{toast.title}</ToastTitle> : null}\n {toast.description ? <ToastDescription>{toast.description}</ToastDescription> : null}\n {toast.action ? (\n <ToastAction\n onClick={() => {\n toast.action?.onClick();\n dismiss(toast.id);\n }}\n >\n {toast.action.label}\n </ToastAction>\n ) : null}\n <ToastClose labels={labels} onClick={() => dismiss(toast.id)} />\n </div>\n );\n /* oxlint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex, jsx-a11y/prefer-tag-over-role */\n}\nToastRoot.displayName = \"ToastRoot\";\n\nexport function ToastAction(props: ToastActionProps): ReactElement | null {\n return <ToastActionElement {...props} />;\n}\nToastAction.displayName = \"ToastAction\";\n\nexport function ToastClose(props: ToastCloseProps): ReactElement | null {\n return <ToastCloseElement {...props} />;\n}\nToastClose.displayName = \"ToastClose\";\n\nexport function useToast() {\n const { dismiss, store } = useToastStoreContext(\"useToast\");\n return {\n dismiss,\n toast(input: ToastInput) {\n return store.enqueue(input);\n },\n };\n}\n\nexport const Toast = {\n Action: ToastAction,\n Close: ToastClose,\n Description: ToastDescription,\n Provider: ToastProvider,\n Root: ToastRoot,\n Title: ToastTitle,\n Viewport: ToastViewport,\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n addTransitionType,\n startTransition,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n ViewTransition,\n} from \"react\";\nimport type { FocusEvent, KeyboardEvent, PointerEvent, ReactElement } from \"react\";\nimport { useIsomorphicLayoutEffect, useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { createPartContext, splitRef } from \"@gunkin/uiify/core\";\nimport { VisuallyHidden } from \"@gunkin/uiify/core/visually-hidden\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { omitProps, resolveRepeatedSlotProps } from \"../../core/slot-props.js\";\nimport { createToastStore } from \"./toast-store.js\";\nimport {\n ToastAction as ToastActionElement,\n ToastClose as ToastCloseElement,\n ToastDescription,\n ToastTitle,\n ToastViewport as ToastViewportElement,\n} from \"./ToastElements.js\";\nimport type {\n ToastInput,\n ToastStore,\n ToastContextValue,\n ToastProviderOwnProps,\n ToastViewportOwnProps,\n ToastRootOwnProps,\n ToastActionProps,\n ToastCloseProps,\n ToastLabels,\n} from \"./types.js\";\n\nexport type {\n ToastActionProps,\n ToastCloseProps,\n ToastDescriptionOwnProps,\n ToastInput,\n ToastLabels,\n ToastPriority,\n ToastProviderOwnProps,\n ToastRecord,\n ToastRootOwnProps,\n ToastStore,\n ToastTitleOwnProps,\n ToastViewportOwnProps,\n ToastProviderSlotProps,\n ToastRootSlotProps,\n ToastItemSlotProps,\n ToastTitleSlotProps,\n ToastDescriptionSlotProps,\n ToastActionSlotProps,\n ToastCloseSlotProps,\n ToastViewportSlotProps,\n} from \"./types.js\";\n\nconst DEFAULT_TOAST_LABELS: ToastLabels = {\n region: \"Notifications\",\n notification: \"Notification\",\n close: \"Close\",\n};\n\n/** Transition type and view-transition-class shared with behavior.css and styles/toast.css. */\nconst TOAST_TRANSITION = \"uiify-toast\";\n\nconst [ToastStoreProvider, useToastStoreContext] = createPartContext<ToastContextValue>(\n \"Toast\",\n \"Provider\",\n);\n\nexport { ToastDescription, ToastTitle };\n\nexport function ToastProvider(props: ToastProviderOwnProps): ReactElement | null {\n const { children, limit = 3, labels, slotProps } = props;\n const resolvedLabels = useMemo(() => ({ ...DEFAULT_TOAST_LABELS, ...labels }), [labels]);\n const storeRef = useRef<ToastStore | null>(null);\n storeRef.current ??= createToastStore({ limit });\n const store = storeRef.current;\n\n const dismiss = useCallback((id: string) => store.dismiss(id), [store]);\n const pause = useCallback((id: string) => store.pause(id), [store]);\n const resume = useCallback((id: string) => store.resume(id), [store]);\n\n const announcement = useSyncExternalStore(\n store.subscribe,\n () => store.getAnnouncement(),\n () => \"\",\n );\n const assertiveAnnouncement = useSyncExternalStore(\n store.subscribe,\n () => store.getAssertiveAnnouncement(),\n () => \"\",\n );\n const contextValue = useMemo(\n () => ({ dismiss, pause, resume, store, labels: resolvedLabels }),\n [dismiss, pause, resume, store, resolvedLabels],\n );\n const politeLiveRegionProps = omitProps(slotProps?.politeLiveRegion, [\n \"aria-atomic\",\n \"aria-live\",\n \"children\",\n \"dangerouslySetInnerHTML\",\n ]);\n const assertiveLiveRegionProps = omitProps(slotProps?.assertiveLiveRegion, [\n \"aria-atomic\",\n \"aria-live\",\n \"children\",\n \"dangerouslySetInnerHTML\",\n ]);\n\n return (\n <ToastStoreProvider value={contextValue}>\n {children}\n <VisuallyHidden {...politeLiveRegionProps} aria-atomic=\"true\" aria-live=\"polite\">\n {announcement}\n </VisuallyHidden>\n <VisuallyHidden {...assertiveLiveRegionProps} aria-atomic=\"true\" aria-live=\"assertive\">\n {assertiveAnnouncement}\n </VisuallyHidden>\n </ToastStoreProvider>\n );\n}\nToastProvider.displayName = \"ToastProvider\";\n\nexport function ToastViewport(props: ToastViewportOwnProps): ReactElement | null {\n const { store } = useToastStoreContext(\"Viewport\");\n // Not useSyncExternalStore: a store read there always commits synchronously, and\n // <ViewTransition> only animates commits made inside a Transition.\n const [toasts, setToasts] = useState(store.getServerSnapshot);\n useEffect(() => {\n const sync = () =>\n startTransition(() => {\n addTransitionType(TOAST_TRANSITION);\n setToasts(store.getSnapshot());\n });\n const unsubscribe = store.subscribe(sync);\n sync();\n return unsubscribe;\n }, [store]);\n const { slotProps, ...viewportProps } = props;\n const [consumerRef, domProps] = splitRef<HTMLElement, ToastViewportOwnProps>(viewportProps);\n const { labels } = useToastStoreContext(\"Viewport\");\n const resolvedLabels = { ...labels, ...props.labels };\n const { item: itemSlotProps, ...rootSlotProps } = slotProps ?? {};\n const viewportRef = useRef<HTMLElement | null>(null);\n const mergedRef = useMergedRefs(viewportRef, consumerRef);\n const hasToasts = toasts.length > 0;\n\n // Same technique as core/use-popover.ts: guard with .matches(\":popover-open\")\n // so a StrictMode double-invoke or an unrelated re-run doesn't call\n // showPopover/hidePopover on a popover already in that state (both throw).\n // try/catch covers the node having disconnected between render and effect.\n useIsomorphicLayoutEffect(() => {\n const viewport = viewportRef.current;\n if (!viewport) return;\n try {\n if (hasToasts && !viewport.matches(\":popover-open\")) viewport.showPopover();\n if (!hasToasts && viewport.matches(\":popover-open\")) viewport.hidePopover();\n } catch {\n // The node may have disconnected between render and layout effect.\n }\n }, [hasToasts]);\n\n return (\n <ToastViewportElement {...domProps} labels={resolvedLabels} popover=\"manual\" ref={mergedRef}>\n {toasts.map((toast) => (\n <ViewTransition default={TOAST_TRANSITION} key={toast.id}>\n <ToastRoot\n {...resolveRepeatedSlotProps(itemSlotProps, toast.id, [\n \"aria-label\",\n \"data-part\",\n \"data-state\",\n \"data-uiify-toast\",\n \"role\",\n \"tabIndex\",\n ])}\n toast={toast}\n slotProps={rootSlotProps}\n />\n </ViewTransition>\n ))}\n </ToastViewportElement>\n );\n}\nToastViewport.displayName = \"ToastViewport\";\n\nexport function ToastRoot(props: ToastRootOwnProps): ReactElement | null {\n const { toast, labels: labelOverrides, slotProps, ...consumerRootProps } = props;\n const { dismiss, pause, resume, labels: providerLabels } = useToastStoreContext(\"Root\");\n const labels = { ...providerLabels, ...labelOverrides };\n const swipeRef = useRef<PointerEvent<HTMLDivElement> | null>(null);\n const endSwipe = (event: PointerEvent<HTMLDivElement>) => {\n if (swipeRef.current?.pointerId === event.pointerId) swipeRef.current = null;\n };\n const rootProps = omitProps(consumerRootProps, [\n \"aria-label\",\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-part\",\n \"data-state\",\n \"data-uiify-toast\",\n \"role\",\n \"tabIndex\",\n ]);\n const titleProps = resolveRepeatedSlotProps(slotProps?.title, toast.id, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-part\",\n \"data-uiify-toast\",\n ]);\n const descriptionProps = resolveRepeatedSlotProps(slotProps?.description, toast.id, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-part\",\n \"data-uiify-toast\",\n ]);\n const actionProps = resolveRepeatedSlotProps(slotProps?.action, toast.id, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"type\",\n \"data-part\",\n \"data-uiify-toast\",\n ]);\n const closeProps = resolveRepeatedSlotProps(slotProps?.close, toast.id, [\n \"aria-label\",\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"type\",\n \"data-part\",\n \"data-uiify-toast\",\n ]);\n\n /* oxlint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex, jsx-a11y/prefer-tag-over-role -- pause/swipe on toast card */\n return (\n <div\n {...rootProps}\n aria-label={typeof toast.title === \"string\" ? toast.title : labels.notification}\n data-state=\"open\"\n data-part=\"item\"\n data-uiify-toast=\"\"\n role=\"group\"\n tabIndex={0}\n onFocus={composeEventHandlers(rootProps.onFocus, () => pause(toast.id))}\n onBlur={composeEventHandlers(rootProps.onBlur, (event: FocusEvent<HTMLDivElement>) => {\n if (!event.currentTarget.matches(\":hover, :focus-within\")) resume(toast.id);\n })}\n onKeyDown={composeEventHandlers(\n rootProps.onKeyDown,\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n dismiss(toast.id);\n }\n },\n )}\n onPointerEnter={composeEventHandlers(rootProps.onPointerEnter, () => pause(toast.id))}\n onPointerLeave={composeEventHandlers(\n rootProps.onPointerLeave,\n (event: PointerEvent<HTMLDivElement>) => {\n if (!event.currentTarget.matches(\":focus-within\")) resume(toast.id);\n },\n )}\n onPointerCancel={composeEventHandlers(rootProps.onPointerCancel, endSwipe)}\n onPointerDown={composeEventHandlers(\n rootProps.onPointerDown,\n (event: PointerEvent<HTMLDivElement>) => {\n if (!swipeRef.current && event.isPrimary) swipeRef.current = event;\n },\n )}\n onPointerMove={composeEventHandlers(\n rootProps.onPointerMove,\n (event: PointerEvent<HTMLDivElement>) => {\n const swipe = swipeRef.current;\n if (swipe?.pointerId !== event.pointerId) return;\n const deltaX = event.clientX - swipe.clientX;\n const deltaY = event.clientY - swipe.clientY;\n if (Math.abs(deltaX) <= 80 || Math.abs(deltaX) <= Math.abs(deltaY)) return;\n dismiss(toast.id);\n },\n )}\n onPointerUp={composeEventHandlers(rootProps.onPointerUp, endSwipe)}\n >\n {toast.title ? <ToastTitle {...titleProps}>{toast.title}</ToastTitle> : null}\n {toast.description ? (\n <ToastDescription {...descriptionProps}>{toast.description}</ToastDescription>\n ) : null}\n {toast.action ? (\n <ToastAction\n {...actionProps}\n onClick={composeEventHandlers(actionProps?.onClick, () => {\n toast.action?.onClick();\n dismiss(toast.id);\n })}\n >\n {toast.action.label}\n </ToastAction>\n ) : null}\n <ToastClose\n {...closeProps}\n labels={labels}\n onClick={composeEventHandlers(closeProps?.onClick, () => dismiss(toast.id))}\n />\n </div>\n );\n /* oxlint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex, jsx-a11y/prefer-tag-over-role */\n}\nToastRoot.displayName = \"ToastRoot\";\n\nexport function ToastAction(props: ToastActionProps): ReactElement | null {\n return <ToastActionElement {...props} />;\n}\nToastAction.displayName = \"ToastAction\";\n\nexport function ToastClose(props: ToastCloseProps): ReactElement | null {\n return <ToastCloseElement {...props} />;\n}\nToastClose.displayName = \"ToastClose\";\n\nexport function useToast() {\n const { dismiss, store } = useToastStoreContext(\"useToast\");\n return {\n dismiss,\n toast(input: ToastInput) {\n return store.enqueue(input);\n },\n };\n}\n\nexport const Toast = {\n Action: ToastAction,\n Close: ToastClose,\n Description: ToastDescription,\n Provider: ToastProvider,\n Root: ToastRoot,\n Title: ToastTitle,\n Viewport: ToastViewport,\n};\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ToastElements.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastElements.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,YAAY,CAAC;AAQpB,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAE/E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAiB/E;yBAjBe,aAAa;;;AAoB7B,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAiBvE;yBAjBe,SAAS;;;AAoBzB,wBAAgB,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CAWzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,GAAG,IAAI,CAWrF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAcxE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAiBtE;AAED,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
1
+ {"version":3,"file":"ToastElements.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastElements.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,YAAY,CAAC;AAQpB,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAE/E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAgC/E;yBAhCe,aAAa;;;AAmC7B,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CA4DvE;yBA5De,SAAS;;;AA+DzB,wBAAgB,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CAazE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,GAAG,IAAI,CAarF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAexE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAkBtE;AAED,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useRenderElement } from "@gunkin/uiify/core/render";
3
+ import { omitProps, resolveRepeatedSlotProps } from "../../core/slot-props.js";
3
4
  const DEFAULT_TOAST_LABELS = {
4
5
  region: "Notifications",
5
6
  notification: "Notification",
@@ -9,14 +10,29 @@ function ToastProvider(props) {
9
10
  return props.children ?? null;
10
11
  }
11
12
  function ToastViewport(props) {
12
- const { children, className, "aria-label": ariaLabel, labels, popover, ref } = props;
13
+ const {
14
+ children,
15
+ className,
16
+ "aria-label": ariaLabel,
17
+ labels,
18
+ popover,
19
+ ref,
20
+ ...consumerProps
21
+ } = props;
13
22
  const resolvedLabels = { ...DEFAULT_TOAST_LABELS, ...labels };
23
+ const safeConsumerProps = omitProps(consumerProps, [
24
+ "dangerouslySetInnerHTML",
25
+ "data-part",
26
+ "slotProps",
27
+ "data-uiify-toast"
28
+ ]);
14
29
  return /* @__PURE__ */ jsx(
15
30
  "section",
16
31
  {
32
+ ...safeConsumerProps,
17
33
  "aria-label": ariaLabel ?? resolvedLabels.region,
18
34
  "data-part": "viewport",
19
- "data-testid": "toast-viewport",
35
+ "data-testid": safeConsumerProps["data-testid"] ?? "toast-viewport",
20
36
  "data-uiify-toast": "",
21
37
  ref,
22
38
  ...popover ? { popover } : {},
@@ -27,30 +43,71 @@ function ToastViewport(props) {
27
43
  }
28
44
  ToastViewport.displayName = "ToastViewport";
29
45
  function ToastRoot(props) {
30
- const { toast, labels } = props;
46
+ const { toast, labels, slotProps, ...consumerRootProps } = props;
31
47
  const resolvedLabels = { ...DEFAULT_TOAST_LABELS, ...labels };
48
+ const rootProps = omitProps(consumerRootProps, [
49
+ "aria-label",
50
+ "children",
51
+ "dangerouslySetInnerHTML",
52
+ "data-part",
53
+ "data-state",
54
+ "data-uiify-toast",
55
+ "role",
56
+ "tabIndex"
57
+ ]);
58
+ const titleProps = resolveRepeatedSlotProps(slotProps?.title, toast.id, [
59
+ "children",
60
+ "dangerouslySetInnerHTML",
61
+ "data-part",
62
+ "data-uiify-toast"
63
+ ]);
64
+ const descriptionProps = resolveRepeatedSlotProps(slotProps?.description, toast.id, [
65
+ "children",
66
+ "dangerouslySetInnerHTML",
67
+ "data-part",
68
+ "data-uiify-toast"
69
+ ]);
70
+ const actionProps = resolveRepeatedSlotProps(slotProps?.action, toast.id, [
71
+ "children",
72
+ "dangerouslySetInnerHTML",
73
+ "type",
74
+ "data-part",
75
+ "data-uiify-toast"
76
+ ]);
77
+ const closeProps = resolveRepeatedSlotProps(slotProps?.close, toast.id, [
78
+ "aria-label",
79
+ "children",
80
+ "dangerouslySetInnerHTML",
81
+ "type",
82
+ "data-part",
83
+ "data-uiify-toast"
84
+ ]);
32
85
  return /* @__PURE__ */ jsxs(
33
- "fieldset",
86
+ "div",
34
87
  {
88
+ ...rootProps,
35
89
  "aria-label": typeof toast.title === "string" ? toast.title : resolvedLabels.notification,
36
90
  "data-part": "item",
37
91
  "data-state": "open",
38
92
  "data-uiify-toast": "",
93
+ role: "group",
39
94
  children: [
40
- toast.title ? /* @__PURE__ */ jsx(ToastTitle, { children: toast.title }) : null,
41
- toast.description ? /* @__PURE__ */ jsx(ToastDescription, { children: toast.description }) : null,
42
- toast.action ? /* @__PURE__ */ jsx(ToastAction, { children: toast.action.label }) : null,
43
- /* @__PURE__ */ jsx(ToastClose, { labels: resolvedLabels })
95
+ toast.title ? /* @__PURE__ */ jsx(ToastTitle, { ...titleProps, children: toast.title }) : null,
96
+ toast.description ? /* @__PURE__ */ jsx(ToastDescription, { ...descriptionProps, children: toast.description }) : null,
97
+ toast.action ? /* @__PURE__ */ jsx(ToastAction, { ...actionProps, children: toast.action.label }) : null,
98
+ /* @__PURE__ */ jsx(ToastClose, { ...closeProps, labels: resolvedLabels })
44
99
  ]
45
100
  }
46
101
  );
47
102
  }
48
103
  ToastRoot.displayName = "ToastRoot";
49
104
  function ToastTitle(props) {
50
- const { children, className } = props;
105
+ const { children, className, ...consumerProps } = props;
106
+ const safeConsumerProps = omitProps(consumerProps, ["data-part", "data-uiify-toast"]);
51
107
  return useRenderElement({
52
108
  defaultTag: "div",
53
109
  props: {
110
+ ...safeConsumerProps,
54
111
  "data-part": "title",
55
112
  className,
56
113
  children
@@ -59,10 +116,12 @@ function ToastTitle(props) {
59
116
  });
60
117
  }
61
118
  function ToastDescription(props) {
62
- const { children, className } = props;
119
+ const { children, className, ...consumerProps } = props;
120
+ const safeConsumerProps = omitProps(consumerProps, ["data-part", "data-uiify-toast"]);
63
121
  return useRenderElement({
64
122
  defaultTag: "div",
65
123
  props: {
124
+ ...safeConsumerProps,
66
125
  "data-part": "description",
67
126
  className,
68
127
  children
@@ -72,10 +131,11 @@ function ToastDescription(props) {
72
131
  }
73
132
  function ToastAction(props) {
74
133
  const { children, className, onClick, ...consumerProps } = props;
134
+ const safeConsumerProps = omitProps(consumerProps, ["data-part", "data-uiify-toast"]);
75
135
  return useRenderElement({
76
136
  defaultTag: "button",
77
137
  props: {
78
- ...consumerProps,
138
+ ...safeConsumerProps,
79
139
  type: "button",
80
140
  "data-part": "action",
81
141
  className,
@@ -87,11 +147,12 @@ function ToastAction(props) {
87
147
  }
88
148
  function ToastClose(props) {
89
149
  const { children, className, labels, onClick, ...consumerProps } = props;
150
+ const safeConsumerProps = omitProps(consumerProps, ["data-part", "data-uiify-toast"]);
90
151
  const resolvedChildren = children ?? labels?.close ?? DEFAULT_TOAST_LABELS.close;
91
152
  return useRenderElement({
92
153
  defaultTag: "button",
93
154
  props: {
94
- ...consumerProps,
155
+ ...safeConsumerProps,
95
156
  type: "button",
96
157
  "aria-label": typeof resolvedChildren === "string" ? resolvedChildren : DEFAULT_TOAST_LABELS.close,
97
158
  "data-part": "close",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/toast/ToastElements.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type {\n ToastProviderOwnProps,\n ToastViewportOwnProps,\n ToastRootOwnProps,\n ToastTitleOwnProps,\n ToastDescriptionOwnProps,\n ToastActionProps,\n ToastCloseProps,\n ToastLabels,\n} from \"./types.js\";\n\nconst DEFAULT_TOAST_LABELS: ToastLabels = {\n region: \"Notifications\",\n notification: \"Notification\",\n close: \"Close\",\n};\n\nexport function ToastProvider(props: ToastProviderOwnProps): ReactElement | null {\n return (props.children ?? null) as ReactElement | null;\n}\n\nexport function ToastViewport(props: ToastViewportOwnProps): ReactElement | null {\n const { children, className, \"aria-label\": ariaLabel, labels, popover, ref } = props;\n const resolvedLabels = { ...DEFAULT_TOAST_LABELS, ...labels };\n\n return (\n <section\n aria-label={ariaLabel ?? resolvedLabels.region}\n data-part=\"viewport\"\n data-testid=\"toast-viewport\"\n data-uiify-toast=\"\"\n ref={ref}\n {...(popover ? { popover } : {})}\n {...(className ? { className } : {})}\n >\n {children}\n </section>\n );\n}\nToastViewport.displayName = \"ToastViewport\";\n\nexport function ToastRoot(props: ToastRootOwnProps): ReactElement | null {\n const { toast, labels } = props;\n const resolvedLabels = { ...DEFAULT_TOAST_LABELS, ...labels };\n\n return (\n <fieldset\n aria-label={typeof toast.title === \"string\" ? toast.title : resolvedLabels.notification}\n data-part=\"item\"\n data-state=\"open\"\n data-uiify-toast=\"\"\n >\n {toast.title ? <ToastTitle>{toast.title}</ToastTitle> : null}\n {toast.description ? <ToastDescription>{toast.description}</ToastDescription> : null}\n {toast.action ? <ToastAction>{toast.action.label}</ToastAction> : null}\n <ToastClose labels={resolvedLabels} />\n </fieldset>\n );\n}\nToastRoot.displayName = \"ToastRoot\";\n\nexport function ToastTitle(props: ToastTitleOwnProps): ReactElement | null {\n const { children, className } = props;\n return useRenderElement({\n defaultTag: \"div\",\n props: {\n \"data-part\": \"title\",\n className,\n children,\n },\n state: {},\n });\n}\n\nexport function ToastDescription(props: ToastDescriptionOwnProps): ReactElement | null {\n const { children, className } = props;\n return useRenderElement({\n defaultTag: \"div\",\n props: {\n \"data-part\": \"description\",\n className,\n children,\n },\n state: {},\n });\n}\n\nexport function ToastAction(props: ToastActionProps): ReactElement | null {\n const { children, className, onClick, ...consumerProps } = props;\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n type: \"button\",\n \"data-part\": \"action\",\n className,\n onClick,\n children,\n },\n state: {},\n });\n}\n\nexport function ToastClose(props: ToastCloseProps): ReactElement | null {\n const { children, className, labels, onClick, ...consumerProps } = props;\n const resolvedChildren = children ?? labels?.close ?? DEFAULT_TOAST_LABELS.close;\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n type: \"button\",\n \"aria-label\":\n typeof resolvedChildren === \"string\" ? resolvedChildren : DEFAULT_TOAST_LABELS.close,\n \"data-part\": \"close\",\n className,\n onClick,\n children: resolvedChildren,\n },\n state: {},\n });\n}\n\nexport const Toast = {\n Action: ToastAction,\n Close: ToastClose,\n Description: ToastDescription,\n Provider: ToastProvider,\n Root: ToastRoot,\n Title: ToastTitle,\n Viewport: ToastViewport,\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/components/toast/ToastElements.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { omitProps, resolveRepeatedSlotProps } from \"../../core/slot-props.js\";\nimport type {\n ToastProviderOwnProps,\n ToastViewportOwnProps,\n ToastRootOwnProps,\n ToastTitleOwnProps,\n ToastDescriptionOwnProps,\n ToastActionProps,\n ToastCloseProps,\n ToastLabels,\n} from \"./types.js\";\n\nconst DEFAULT_TOAST_LABELS: ToastLabels = {\n region: \"Notifications\",\n notification: \"Notification\",\n close: \"Close\",\n};\n\nexport function ToastProvider(props: ToastProviderOwnProps): ReactElement | null {\n return (props.children ?? null) as ReactElement | null;\n}\n\nexport function ToastViewport(props: ToastViewportOwnProps): ReactElement | null {\n const {\n children,\n className,\n \"aria-label\": ariaLabel,\n labels,\n popover,\n ref,\n ...consumerProps\n } = props;\n const resolvedLabels = { ...DEFAULT_TOAST_LABELS, ...labels };\n const safeConsumerProps = omitProps(consumerProps, [\n \"dangerouslySetInnerHTML\",\n \"data-part\",\n \"slotProps\",\n \"data-uiify-toast\",\n ]);\n\n return (\n <section\n {...safeConsumerProps}\n aria-label={ariaLabel ?? resolvedLabels.region}\n data-part=\"viewport\"\n data-testid={safeConsumerProps[\"data-testid\"] ?? \"toast-viewport\"}\n data-uiify-toast=\"\"\n ref={ref}\n {...(popover ? { popover } : {})}\n {...(className ? { className } : {})}\n >\n {children}\n </section>\n );\n}\nToastViewport.displayName = \"ToastViewport\";\n\nexport function ToastRoot(props: ToastRootOwnProps): ReactElement | null {\n const { toast, labels, slotProps, ...consumerRootProps } = props;\n const resolvedLabels = { ...DEFAULT_TOAST_LABELS, ...labels };\n const rootProps = omitProps(consumerRootProps, [\n \"aria-label\",\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-part\",\n \"data-state\",\n \"data-uiify-toast\",\n \"role\",\n \"tabIndex\",\n ]);\n const titleProps = resolveRepeatedSlotProps(slotProps?.title, toast.id, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-part\",\n \"data-uiify-toast\",\n ]);\n const descriptionProps = resolveRepeatedSlotProps(slotProps?.description, toast.id, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-part\",\n \"data-uiify-toast\",\n ]);\n const actionProps = resolveRepeatedSlotProps(slotProps?.action, toast.id, [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"type\",\n \"data-part\",\n \"data-uiify-toast\",\n ]);\n const closeProps = resolveRepeatedSlotProps(slotProps?.close, toast.id, [\n \"aria-label\",\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"type\",\n \"data-part\",\n \"data-uiify-toast\",\n ]);\n\n /* oxlint-disable jsx-a11y/prefer-tag-over-role -- a toast is a labeled group, not a fieldset for form controls */\n return (\n <div\n {...rootProps}\n aria-label={typeof toast.title === \"string\" ? toast.title : resolvedLabels.notification}\n data-part=\"item\"\n data-state=\"open\"\n data-uiify-toast=\"\"\n role=\"group\"\n >\n {toast.title ? <ToastTitle {...titleProps}>{toast.title}</ToastTitle> : null}\n {toast.description ? (\n <ToastDescription {...descriptionProps}>{toast.description}</ToastDescription>\n ) : null}\n {toast.action ? <ToastAction {...actionProps}>{toast.action.label}</ToastAction> : null}\n <ToastClose {...closeProps} labels={resolvedLabels} />\n </div>\n );\n /* oxlint-enable jsx-a11y/prefer-tag-over-role */\n}\nToastRoot.displayName = \"ToastRoot\";\n\nexport function ToastTitle(props: ToastTitleOwnProps): ReactElement | null {\n const { children, className, ...consumerProps } = props;\n const safeConsumerProps = omitProps(consumerProps, [\"data-part\", \"data-uiify-toast\"]);\n return useRenderElement({\n defaultTag: \"div\",\n props: {\n ...safeConsumerProps,\n \"data-part\": \"title\",\n className,\n children,\n },\n state: {},\n });\n}\n\nexport function ToastDescription(props: ToastDescriptionOwnProps): ReactElement | null {\n const { children, className, ...consumerProps } = props;\n const safeConsumerProps = omitProps(consumerProps, [\"data-part\", \"data-uiify-toast\"]);\n return useRenderElement({\n defaultTag: \"div\",\n props: {\n ...safeConsumerProps,\n \"data-part\": \"description\",\n className,\n children,\n },\n state: {},\n });\n}\n\nexport function ToastAction(props: ToastActionProps): ReactElement | null {\n const { children, className, onClick, ...consumerProps } = props;\n const safeConsumerProps = omitProps(consumerProps, [\"data-part\", \"data-uiify-toast\"]);\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n ...safeConsumerProps,\n type: \"button\",\n \"data-part\": \"action\",\n className,\n onClick,\n children,\n },\n state: {},\n });\n}\n\nexport function ToastClose(props: ToastCloseProps): ReactElement | null {\n const { children, className, labels, onClick, ...consumerProps } = props;\n const safeConsumerProps = omitProps(consumerProps, [\"data-part\", \"data-uiify-toast\"]);\n const resolvedChildren = children ?? labels?.close ?? DEFAULT_TOAST_LABELS.close;\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n ...safeConsumerProps,\n type: \"button\",\n \"aria-label\":\n typeof resolvedChildren === \"string\" ? resolvedChildren : DEFAULT_TOAST_LABELS.close,\n \"data-part\": \"close\",\n className,\n onClick,\n children: resolvedChildren,\n },\n state: {},\n });\n}\n\nexport const Toast = {\n Action: ToastAction,\n Close: ToastClose,\n Description: ToastDescription,\n Provider: ToastProvider,\n Root: ToastRoot,\n Title: ToastTitle,\n Viewport: ToastViewport,\n};\n"],"mappings":"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","names":[]}
@@ -1,4 +1,4 @@
1
1
  export { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastRoot, ToastTitle, ToastViewport, useToast, } from "./Toast.js";
2
- export type { ToastActionOwnProps, ToastActionProps, ToastCloseOwnProps, ToastCloseProps, ToastLabels, ToastDescriptionOwnProps, ToastProviderOwnProps, ToastRootOwnProps, ToastTitleOwnProps, ToastViewportOwnProps, } from "./types.js";
2
+ export type { ToastActionOwnProps, ToastActionProps, ToastCloseOwnProps, ToastCloseProps, ToastLabels, ToastProviderSlotProps, ToastRootSlotProps, ToastViewportSlotProps, ToastItemSlotProps, ToastTitleSlotProps, ToastDescriptionSlotProps, ToastActionSlotProps, ToastCloseSlotProps, ToastDescriptionOwnProps, ToastProviderOwnProps, ToastRootOwnProps, ToastTitleOwnProps, ToastViewportOwnProps, } from "./types.js";
3
3
  export type { ToastInput, ToastPriority, ToastRecord, ToastStore } from "./types.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,UAAU,EACV,aAAa,EACb,QAAQ,GACT,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,UAAU,EACV,aAAa,EACb,QAAQ,GACT,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/toast/index.ts"],"sourcesContent":["export {\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastRoot,\n ToastTitle,\n ToastViewport,\n useToast,\n} from \"./Toast.js\";\nexport type {\n ToastActionOwnProps,\n ToastActionProps,\n ToastCloseOwnProps,\n ToastCloseProps,\n ToastLabels,\n ToastDescriptionOwnProps,\n ToastProviderOwnProps,\n ToastRootOwnProps,\n ToastTitleOwnProps,\n ToastViewportOwnProps,\n} from \"./types.js\";\nexport type { ToastInput, ToastPriority, ToastRecord, ToastStore } from \"./types.js\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/toast/index.ts"],"sourcesContent":["export {\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastRoot,\n ToastTitle,\n ToastViewport,\n useToast,\n} from \"./Toast.js\";\nexport type {\n ToastActionOwnProps,\n ToastActionProps,\n ToastCloseOwnProps,\n ToastCloseProps,\n ToastLabels,\n ToastProviderSlotProps,\n ToastRootSlotProps,\n ToastViewportSlotProps,\n ToastItemSlotProps,\n ToastTitleSlotProps,\n ToastDescriptionSlotProps,\n ToastActionSlotProps,\n ToastCloseSlotProps,\n ToastDescriptionOwnProps,\n ToastProviderOwnProps,\n ToastRootOwnProps,\n ToastTitleOwnProps,\n ToastViewportOwnProps,\n} from \"./types.js\";\nexport type { ToastInput, ToastPriority, ToastRecord, ToastStore } from \"./types.js\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -1,4 +1,5 @@
1
- import type { MouseEvent, ReactNode, Ref } from "react";
1
+ import type { ComponentPropsWithRef, MouseEvent, ReactNode } from "react";
2
+ import type { ConsumerDataAttributes, RepeatedSlotProps } from "../../core/slot-props.js";
2
3
  export type ToastPriority = "polite" | "assertive";
3
4
  export interface ToastLabels {
4
5
  readonly region: string;
@@ -51,15 +52,46 @@ export interface ToastContextValue {
51
52
  readonly store: ToastStore;
52
53
  readonly labels: ToastLabels;
53
54
  }
55
+ type ToastPartOwnedAttributes = {
56
+ readonly "data-part"?: never;
57
+ readonly "data-uiify-toast"?: never;
58
+ };
59
+ type ToastItemOwnedAttributes = ToastPartOwnedAttributes & {
60
+ readonly "data-state"?: never;
61
+ readonly "aria-label"?: never;
62
+ readonly role?: never;
63
+ readonly tabIndex?: never;
64
+ };
65
+ export type ToastItemSlotProps = RepeatedSlotProps<Omit<ComponentPropsWithRef<"div">, "children" | "dangerouslySetInnerHTML" | "data-part" | "data-state" | "data-uiify-toast" | "aria-label" | "role" | "tabIndex">, ToastItemOwnedAttributes>;
66
+ export type ToastTitleSlotProps = RepeatedSlotProps<Omit<ComponentPropsWithRef<"div">, "children" | "dangerouslySetInnerHTML" | "data-part" | "data-uiify-toast">, ToastPartOwnedAttributes>;
67
+ export type ToastDescriptionSlotProps = ToastTitleSlotProps;
68
+ export type ToastActionSlotProps = RepeatedSlotProps<Omit<ComponentPropsWithRef<"button">, "children" | "dangerouslySetInnerHTML" | "type" | "data-part" | "data-uiify-toast">, ToastPartOwnedAttributes>;
69
+ export type ToastCloseSlotProps = RepeatedSlotProps<Omit<ComponentPropsWithRef<"button">, "children" | "dangerouslySetInnerHTML" | "type" | "aria-label" | "data-part" | "data-uiify-toast">, ToastPartOwnedAttributes & {
70
+ readonly "aria-label"?: never;
71
+ }>;
72
+ export interface ToastRootSlotProps {
73
+ readonly title?: ToastTitleSlotProps;
74
+ readonly description?: ToastDescriptionSlotProps;
75
+ readonly action?: ToastActionSlotProps;
76
+ readonly close?: ToastCloseSlotProps;
77
+ }
78
+ export interface ToastViewportSlotProps extends ToastRootSlotProps {
79
+ readonly item?: ToastItemSlotProps;
80
+ }
81
+ export interface ToastProviderSlotProps {
82
+ readonly politeLiveRegion?: Omit<ComponentPropsWithRef<"span">, "children" | "dangerouslySetInnerHTML" | "aria-atomic" | "aria-live"> & ConsumerDataAttributes;
83
+ readonly assertiveLiveRegion?: Omit<ComponentPropsWithRef<"span">, "children" | "dangerouslySetInnerHTML" | "aria-atomic" | "aria-live"> & ConsumerDataAttributes;
84
+ }
54
85
  export interface ToastProviderOwnProps {
55
86
  readonly children?: ReactNode;
56
87
  readonly labels?: Partial<ToastLabels>;
57
88
  readonly limit?: number;
89
+ readonly slotProps?: ToastProviderSlotProps;
58
90
  }
59
- export interface ToastViewportOwnProps {
60
- readonly "aria-label"?: string;
91
+ export interface ToastViewportOwnProps extends Omit<ComponentPropsWithRef<"section">, "children" | "dangerouslySetInnerHTML" | "popover" | "data-part" | "data-uiify-toast">, ConsumerDataAttributes {
92
+ readonly "data-part"?: never;
93
+ readonly "data-uiify-toast"?: never;
61
94
  readonly children?: ReactNode;
62
- readonly className?: string;
63
95
  readonly labels?: Partial<ToastLabels>;
64
96
  /**
65
97
  * Set by the live client viewport (@gunkin/uiify/components/toast/Toast.js) to
@@ -69,33 +101,34 @@ export interface ToastViewportOwnProps {
69
101
  * unset, since there is no queue-driven show/hide to wire up there.
70
102
  */
71
103
  readonly popover?: "manual";
72
- readonly ref?: Ref<HTMLElement>;
104
+ readonly slotProps?: ToastViewportSlotProps;
73
105
  }
74
- export interface ToastRootOwnProps {
106
+ export interface ToastRootOwnProps extends Omit<ComponentPropsWithRef<"div">, "children" | "dangerouslySetInnerHTML" | "aria-label" | "data-part" | "data-state" | "data-uiify-toast" | "role" | "tabIndex">, ConsumerDataAttributes {
107
+ readonly "data-part"?: never;
108
+ readonly "data-state"?: never;
109
+ readonly "data-uiify-toast"?: never;
75
110
  readonly labels?: Partial<ToastLabels>;
111
+ readonly slotProps?: ToastRootSlotProps;
76
112
  readonly toast: ToastRecord;
77
113
  }
78
- export interface ToastTitleOwnProps {
114
+ export interface ToastTitleOwnProps extends Omit<ComponentPropsWithRef<"div">, "children" | "dangerouslySetInnerHTML"> {
79
115
  readonly children?: ReactNode;
80
- readonly className?: string;
81
116
  }
82
- export interface ToastDescriptionOwnProps {
117
+ export interface ToastDescriptionOwnProps extends Omit<ComponentPropsWithRef<"div">, "children" | "dangerouslySetInnerHTML"> {
83
118
  readonly children?: ReactNode;
84
- readonly className?: string;
85
119
  }
86
- export interface ToastActionOwnProps {
120
+ export interface ToastActionOwnProps extends Omit<ComponentPropsWithRef<"button">, "children" | "dangerouslySetInnerHTML"> {
87
121
  readonly children?: ReactNode;
88
- readonly className?: string;
89
122
  }
90
123
  export interface ToastActionProps extends ToastActionOwnProps {
91
- readonly onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
124
+ readonly onClick?: ((event: MouseEvent<HTMLButtonElement>) => void) | undefined;
92
125
  }
93
- export interface ToastCloseOwnProps {
126
+ export interface ToastCloseOwnProps extends Omit<ComponentPropsWithRef<"button">, "children" | "dangerouslySetInnerHTML"> {
94
127
  readonly children?: ReactNode;
95
- readonly className?: string;
96
128
  readonly labels?: Partial<ToastLabels>;
97
129
  }
98
130
  export interface ToastCloseProps extends ToastCloseOwnProps {
99
- readonly onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
131
+ readonly onClick?: ((event: MouseEvent<HTMLButtonElement>) => void) | undefined;
100
132
  }
133
+ export {};
101
134
  //# sourceMappingURL=types.d.ts.map