@gunkin/uiify 0.0.24-alpha → 0.0.26-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 (528) 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 +22 -4
  8. package/agents/reference/components/candle-chart.md +51 -3
  9. package/agents/reference/components/carousel.md +26 -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 +15 -14
  14. package/agents/reference/components/context-menu.md +16 -5
  15. package/agents/reference/components/date-picker.md +2 -1
  16. package/agents/reference/components/drawer.md +28 -17
  17. package/agents/reference/components/dropdown-menu.md +3 -3
  18. package/agents/reference/components/field.md +13 -13
  19. package/agents/reference/components/form-error-summary.md +11 -1
  20. package/agents/reference/components/input-group.md +1 -0
  21. package/agents/reference/components/input.md +1 -0
  22. package/agents/reference/components/line-chart.md +42 -3
  23. package/agents/reference/components/modal.md +22 -5
  24. package/agents/reference/components/number-field.md +1 -1
  25. package/agents/reference/components/otp-input.md +2 -1
  26. package/agents/reference/components/pagination.md +15 -4
  27. package/agents/reference/components/radio-group.md +8 -2
  28. package/agents/reference/components/rating.md +8 -2
  29. package/agents/reference/components/segmented-control.md +9 -3
  30. package/agents/reference/components/select.md +1 -0
  31. package/agents/reference/components/slider.md +13 -1
  32. package/agents/reference/components/spinner.md +10 -1
  33. package/agents/reference/components/table.md +15 -0
  34. package/agents/reference/components/tabs.md +21 -3
  35. package/agents/reference/components/tags-input.md +15 -1
  36. package/agents/reference/components/toast.md +50 -12
  37. package/agents/reference/components/toggle-group.md +5 -3
  38. package/agents/reference/components/toggle.md +17 -3
  39. package/agents/reference/components/toolbar.md +4 -4
  40. package/agents/reference/components/virtual-scroll.md +32 -4
  41. package/agents/reference/elements/choice.md +20 -7
  42. package/agents/reference/elements/details.md +2 -2
  43. package/agents/reference/elements/popover.md +3 -3
  44. package/dist/components/accordion/Accordion.d.ts +1 -1
  45. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  46. package/dist/components/accordion/Accordion.js +36 -15
  47. package/dist/components/accordion/Accordion.js.map +1 -1
  48. package/dist/components/accordion/index.d.ts +1 -1
  49. package/dist/components/accordion/index.d.ts.map +1 -1
  50. package/dist/components/accordion/index.js.map +1 -1
  51. package/dist/components/accordion/types.d.ts +14 -2
  52. package/dist/components/accordion/types.d.ts.map +1 -1
  53. package/dist/components/alert/Alert.d.ts.map +1 -1
  54. package/dist/components/alert/Alert.js +6 -5
  55. package/dist/components/alert/Alert.js.map +1 -1
  56. package/dist/components/alert/index.d.ts +1 -1
  57. package/dist/components/alert/index.d.ts.map +1 -1
  58. package/dist/components/alert/index.js.map +1 -1
  59. package/dist/components/alert/types.d.ts +6 -0
  60. package/dist/components/alert/types.d.ts.map +1 -1
  61. package/dist/components/alert-modal/AlertModal.d.ts +1 -1
  62. package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
  63. package/dist/components/alert-modal/AlertModal.js +18 -8
  64. package/dist/components/alert-modal/AlertModal.js.map +1 -1
  65. package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
  66. package/dist/components/alert-modal/AlertModalParts.js +1 -1
  67. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  68. package/dist/components/alert-modal/index.d.ts +1 -1
  69. package/dist/components/alert-modal/index.d.ts.map +1 -1
  70. package/dist/components/alert-modal/index.js.map +1 -1
  71. package/dist/components/alert-modal/types.d.ts +23 -7
  72. package/dist/components/alert-modal/types.d.ts.map +1 -1
  73. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -1
  74. package/dist/components/aspect-ratio/AspectRatio.js +5 -5
  75. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  76. package/dist/components/aspect-ratio/types.d.ts +6 -0
  77. package/dist/components/aspect-ratio/types.d.ts.map +1 -1
  78. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  79. package/dist/components/avatar/Avatar.js +5 -5
  80. package/dist/components/avatar/Avatar.js.map +1 -1
  81. package/dist/components/avatar/types.d.ts +8 -0
  82. package/dist/components/avatar/types.d.ts.map +1 -1
  83. package/dist/components/breadcrumb/Breadcrumb.d.ts +2 -2
  84. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  85. package/dist/components/breadcrumb/Breadcrumb.js +59 -47
  86. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  87. package/dist/components/breadcrumb/index.d.ts +1 -1
  88. package/dist/components/breadcrumb/index.d.ts.map +1 -1
  89. package/dist/components/breadcrumb/index.js.map +1 -1
  90. package/dist/components/breadcrumb/types.d.ts +19 -3
  91. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  92. package/dist/components/candle-chart/CandleChart.d.ts +1 -1
  93. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  94. package/dist/components/candle-chart/CandleChart.js +161 -75
  95. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  96. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  97. package/dist/components/candle-chart/client/CandleChartClient.js +19 -6
  98. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  99. package/dist/components/candle-chart/client/index.d.ts +1 -1
  100. package/dist/components/candle-chart/client/index.d.ts.map +1 -1
  101. package/dist/components/candle-chart/client/index.js.map +1 -1
  102. package/dist/components/candle-chart/index.d.ts +1 -1
  103. package/dist/components/candle-chart/index.d.ts.map +1 -1
  104. package/dist/components/candle-chart/index.js.map +1 -1
  105. package/dist/components/candle-chart/types.d.ts +56 -2
  106. package/dist/components/candle-chart/types.d.ts.map +1 -1
  107. package/dist/components/carousel/Carousel.d.ts +2 -2
  108. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  109. package/dist/components/carousel/Carousel.js +2 -1
  110. package/dist/components/carousel/Carousel.js.map +1 -1
  111. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  112. package/dist/components/carousel/CarouselMarkup.js +38 -10
  113. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  114. package/dist/components/carousel/client/CarouselClient.d.ts.map +1 -1
  115. package/dist/components/carousel/client/CarouselClient.js +3 -2
  116. package/dist/components/carousel/client/CarouselClient.js.map +1 -1
  117. package/dist/components/carousel/client/carousel-controls.d.ts.map +1 -1
  118. package/dist/components/carousel/client/carousel-controls.js +2 -2
  119. package/dist/components/carousel/client/carousel-controls.js.map +1 -1
  120. package/dist/components/carousel/fade/FadeCarouselClient.d.ts.map +1 -1
  121. package/dist/components/carousel/fade/FadeCarouselClient.js +3 -2
  122. package/dist/components/carousel/fade/FadeCarouselClient.js.map +1 -1
  123. package/dist/components/carousel/index.d.ts +1 -1
  124. package/dist/components/carousel/index.d.ts.map +1 -1
  125. package/dist/components/carousel/index.js.map +1 -1
  126. package/dist/components/carousel/types.d.ts +18 -2
  127. package/dist/components/carousel/types.d.ts.map +1 -1
  128. package/dist/components/checkbox/Checkbox.d.ts +6 -1
  129. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  130. package/dist/components/checkbox/Checkbox.js +6 -1
  131. package/dist/components/checkbox/Checkbox.js.map +1 -1
  132. package/dist/components/checkbox/index.d.ts +1 -1
  133. package/dist/components/checkbox/index.d.ts.map +1 -1
  134. package/dist/components/checkbox/index.js.map +1 -1
  135. package/dist/components/checkbox/types.d.ts +3 -0
  136. package/dist/components/checkbox/types.d.ts.map +1 -1
  137. package/dist/components/collapsible/Collapsible.d.ts +2 -6
  138. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  139. package/dist/components/collapsible/Collapsible.js +5 -4
  140. package/dist/components/collapsible/Collapsible.js.map +1 -1
  141. package/dist/components/collapsible/index.d.ts +1 -1
  142. package/dist/components/collapsible/index.d.ts.map +1 -1
  143. package/dist/components/collapsible/index.js.map +1 -1
  144. package/dist/components/collapsible/types.d.ts +11 -3
  145. package/dist/components/collapsible/types.d.ts.map +1 -1
  146. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -1
  147. package/dist/components/color-picker/ColorPicker.js +73 -52
  148. package/dist/components/color-picker/ColorPicker.js.map +1 -1
  149. package/dist/components/color-picker/index.d.ts +1 -1
  150. package/dist/components/color-picker/index.d.ts.map +1 -1
  151. package/dist/components/color-picker/index.js.map +1 -1
  152. package/dist/components/color-picker/types.d.ts +20 -2
  153. package/dist/components/color-picker/types.d.ts.map +1 -1
  154. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  155. package/dist/components/combobox/Combobox.js +59 -33
  156. package/dist/components/combobox/Combobox.js.map +1 -1
  157. package/dist/components/combobox/index.d.ts +1 -1
  158. package/dist/components/combobox/index.d.ts.map +1 -1
  159. package/dist/components/combobox/index.js.map +1 -1
  160. package/dist/components/combobox/types.d.ts +13 -8
  161. package/dist/components/combobox/types.d.ts.map +1 -1
  162. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  163. package/dist/components/context-menu/ContextMenu.js +33 -19
  164. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  165. package/dist/components/context-menu/index.d.ts +1 -1
  166. package/dist/components/context-menu/index.d.ts.map +1 -1
  167. package/dist/components/context-menu/index.js.map +1 -1
  168. package/dist/components/context-menu/types.d.ts +10 -9
  169. package/dist/components/context-menu/types.d.ts.map +1 -1
  170. package/dist/components/date-picker/DatePicker.d.ts +1 -1
  171. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  172. package/dist/components/date-picker/DatePicker.js +2 -1
  173. package/dist/components/date-picker/DatePicker.js.map +1 -1
  174. package/dist/components/date-picker/types.d.ts +4 -1
  175. package/dist/components/date-picker/types.d.ts.map +1 -1
  176. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  177. package/dist/components/drawer/Drawer.js +17 -13
  178. package/dist/components/drawer/Drawer.js.map +1 -1
  179. package/dist/components/drawer/DrawerNative.d.ts +1 -1
  180. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  181. package/dist/components/drawer/DrawerNative.js +30 -25
  182. package/dist/components/drawer/DrawerNative.js.map +1 -1
  183. package/dist/components/drawer/index.d.ts +1 -1
  184. package/dist/components/drawer/index.d.ts.map +1 -1
  185. package/dist/components/drawer/index.js.map +1 -1
  186. package/dist/components/drawer/types.d.ts +31 -11
  187. package/dist/components/drawer/types.d.ts.map +1 -1
  188. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  189. package/dist/components/dropdown-menu/DropdownMenu.js +34 -25
  190. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  191. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  192. package/dist/components/dropdown-menu/DropdownMenuBar.js +43 -29
  193. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  194. package/dist/components/dropdown-menu/types.d.ts +4 -5
  195. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  196. package/dist/components/field/Field.js +7 -7
  197. package/dist/components/field/Field.js.map +1 -1
  198. package/dist/components/field/types.d.ts +14 -14
  199. package/dist/components/field/types.d.ts.map +1 -1
  200. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -1
  201. package/dist/components/form-error-summary/FormErrorSummary.js +23 -5
  202. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
  203. package/dist/components/form-error-summary/index.d.ts +1 -1
  204. package/dist/components/form-error-summary/index.d.ts.map +1 -1
  205. package/dist/components/form-error-summary/index.js.map +1 -1
  206. package/dist/components/form-error-summary/types.d.ts +9 -0
  207. package/dist/components/form-error-summary/types.d.ts.map +1 -1
  208. package/dist/components/hover-card/HoverCard.d.ts.map +1 -1
  209. package/dist/components/hover-card/HoverCard.js +9 -9
  210. package/dist/components/hover-card/HoverCard.js.map +1 -1
  211. package/dist/components/input/Input.d.ts.map +1 -1
  212. package/dist/components/input/Input.js +2 -0
  213. package/dist/components/input/Input.js.map +1 -1
  214. package/dist/components/input/types.d.ts +3 -0
  215. package/dist/components/input/types.d.ts.map +1 -1
  216. package/dist/components/input-group/InputGroup.d.ts.map +1 -1
  217. package/dist/components/input-group/InputGroup.js +2 -1
  218. package/dist/components/input-group/InputGroup.js.map +1 -1
  219. package/dist/components/input-group/types.d.ts +3 -0
  220. package/dist/components/input-group/types.d.ts.map +1 -1
  221. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts +2 -2
  222. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts.map +1 -1
  223. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js +11 -3
  224. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js.map +1 -1
  225. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  226. package/dist/components/internal/choice-family/ChoiceGroup.js +25 -12
  227. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  228. package/dist/components/internal/choice-family/types.d.ts +19 -1
  229. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  230. package/dist/components/internal/control-size/types.d.ts +3 -0
  231. package/dist/components/internal/control-size/types.d.ts.map +1 -0
  232. package/dist/components/internal/control-size/types.js +1 -0
  233. package/dist/components/internal/control-size/types.js.map +1 -0
  234. package/dist/components/internal/live-chart/types.d.ts +3 -1
  235. package/dist/components/internal/live-chart/types.d.ts.map +1 -1
  236. package/dist/components/internal/live-chart/use-live-chart-window.d.ts.map +1 -1
  237. package/dist/components/internal/live-chart/use-live-chart-window.js +21 -5
  238. package/dist/components/internal/live-chart/use-live-chart-window.js.map +1 -1
  239. package/dist/components/internal/menu/menu-parts.d.ts.map +1 -1
  240. package/dist/components/internal/menu/menu-parts.js +3 -3
  241. package/dist/components/internal/menu/menu-parts.js.map +1 -1
  242. package/dist/components/internal/menu/types.d.ts +1 -0
  243. package/dist/components/internal/menu/types.d.ts.map +1 -1
  244. package/dist/components/internal/menu/use-menu-surface.d.ts.map +1 -1
  245. package/dist/components/internal/menu/use-menu-surface.js +2 -1
  246. package/dist/components/internal/menu/use-menu-surface.js.map +1 -1
  247. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  248. package/dist/components/internal/native-check-control/NativeCheckControl.js +12 -4
  249. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  250. package/dist/components/internal/native-check-control/types.d.ts +6 -0
  251. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  252. package/dist/components/line-chart/LineChart.d.ts +1 -1
  253. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  254. package/dist/components/line-chart/LineChart.js +182 -75
  255. package/dist/components/line-chart/LineChart.js.map +1 -1
  256. package/dist/components/line-chart/client/LineChartClient.d.ts.map +1 -1
  257. package/dist/components/line-chart/client/LineChartClient.js +19 -6
  258. package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
  259. package/dist/components/line-chart/client/index.d.ts +1 -1
  260. package/dist/components/line-chart/client/index.d.ts.map +1 -1
  261. package/dist/components/line-chart/client/index.js.map +1 -1
  262. package/dist/components/line-chart/index.d.ts +1 -1
  263. package/dist/components/line-chart/index.d.ts.map +1 -1
  264. package/dist/components/line-chart/index.js.map +1 -1
  265. package/dist/components/line-chart/types.d.ts +47 -2
  266. package/dist/components/line-chart/types.d.ts.map +1 -1
  267. package/dist/components/modal/Modal.d.ts +1 -1
  268. package/dist/components/modal/Modal.d.ts.map +1 -1
  269. package/dist/components/modal/Modal.js +21 -27
  270. package/dist/components/modal/Modal.js.map +1 -1
  271. package/dist/components/modal/ModalAnatomy.js +6 -6
  272. package/dist/components/modal/ModalAnatomy.js.map +1 -1
  273. package/dist/components/modal/ModalParts.js +1 -1
  274. package/dist/components/modal/ModalParts.js.map +1 -1
  275. package/dist/components/modal/client/ModalClientContent.d.ts.map +1 -1
  276. package/dist/components/modal/client/ModalClientContent.js +2 -2
  277. package/dist/components/modal/client/ModalClientContent.js.map +1 -1
  278. package/dist/components/modal/index.d.ts +1 -1
  279. package/dist/components/modal/index.d.ts.map +1 -1
  280. package/dist/components/modal/index.js.map +1 -1
  281. package/dist/components/modal/types.d.ts +26 -4
  282. package/dist/components/modal/types.d.ts.map +1 -1
  283. package/dist/components/number-field/NumberField.d.ts.map +1 -1
  284. package/dist/components/number-field/NumberField.js +13 -11
  285. package/dist/components/number-field/NumberField.js.map +1 -1
  286. package/dist/components/number-field/types.d.ts +1 -1
  287. package/dist/components/number-field/types.d.ts.map +1 -1
  288. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  289. package/dist/components/otp-input/OtpInput.js +12 -10
  290. package/dist/components/otp-input/OtpInput.js.map +1 -1
  291. package/dist/components/otp-input/types.d.ts +4 -1
  292. package/dist/components/otp-input/types.d.ts.map +1 -1
  293. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  294. package/dist/components/pagination/Pagination.js +135 -61
  295. package/dist/components/pagination/Pagination.js.map +1 -1
  296. package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
  297. package/dist/components/pagination/PaginationShell.js +5 -6
  298. package/dist/components/pagination/PaginationShell.js.map +1 -1
  299. package/dist/components/pagination/index.d.ts +1 -1
  300. package/dist/components/pagination/index.d.ts.map +1 -1
  301. package/dist/components/pagination/index.js.map +1 -1
  302. package/dist/components/pagination/types.d.ts +12 -3
  303. package/dist/components/pagination/types.d.ts.map +1 -1
  304. package/dist/components/radio-group/RadioGroup.d.ts +1 -1
  305. package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
  306. package/dist/components/radio-group/RadioGroup.js +5 -1
  307. package/dist/components/radio-group/RadioGroup.js.map +1 -1
  308. package/dist/components/radio-group/index.d.ts +1 -1
  309. package/dist/components/radio-group/index.d.ts.map +1 -1
  310. package/dist/components/radio-group/index.js.map +1 -1
  311. package/dist/components/radio-group/types.d.ts +4 -2
  312. package/dist/components/radio-group/types.d.ts.map +1 -1
  313. package/dist/components/rating/Rating.d.ts +1 -1
  314. package/dist/components/rating/Rating.d.ts.map +1 -1
  315. package/dist/components/rating/Rating.js +5 -1
  316. package/dist/components/rating/Rating.js.map +1 -1
  317. package/dist/components/rating/client/RatingClient.d.ts +1 -1
  318. package/dist/components/rating/client/RatingClient.d.ts.map +1 -1
  319. package/dist/components/rating/client/RatingClient.js +5 -1
  320. package/dist/components/rating/client/RatingClient.js.map +1 -1
  321. package/dist/components/rating/index.d.ts +1 -1
  322. package/dist/components/rating/index.d.ts.map +1 -1
  323. package/dist/components/rating/index.js.map +1 -1
  324. package/dist/components/rating/types.d.ts +8 -1
  325. package/dist/components/rating/types.d.ts.map +1 -1
  326. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  327. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  328. package/dist/components/segmented-control/SegmentedControl.js +9 -3
  329. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  330. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts +1 -1
  331. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  332. package/dist/components/segmented-control/client/SegmentedControlClient.js +9 -3
  333. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  334. package/dist/components/segmented-control/index.d.ts +1 -1
  335. package/dist/components/segmented-control/index.d.ts.map +1 -1
  336. package/dist/components/segmented-control/index.js.map +1 -1
  337. package/dist/components/segmented-control/types.d.ts +7 -4
  338. package/dist/components/segmented-control/types.d.ts.map +1 -1
  339. package/dist/components/select/Select.d.ts.map +1 -1
  340. package/dist/components/select/Select.js +2 -0
  341. package/dist/components/select/Select.js.map +1 -1
  342. package/dist/components/select/types.d.ts +3 -0
  343. package/dist/components/select/types.d.ts.map +1 -1
  344. package/dist/components/slider/Slider.d.ts.map +1 -1
  345. package/dist/components/slider/Slider.js +12 -7
  346. package/dist/components/slider/Slider.js.map +1 -1
  347. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  348. package/dist/components/slider/client/SliderClient.js +55 -20
  349. package/dist/components/slider/client/SliderClient.js.map +1 -1
  350. package/dist/components/slider/client/index.d.ts +1 -1
  351. package/dist/components/slider/client/index.d.ts.map +1 -1
  352. package/dist/components/slider/client/index.js.map +1 -1
  353. package/dist/components/slider/types.d.ts +15 -0
  354. package/dist/components/slider/types.d.ts.map +1 -1
  355. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  356. package/dist/components/spinner/Spinner.js +12 -4
  357. package/dist/components/spinner/Spinner.js.map +1 -1
  358. package/dist/components/spinner/index.d.ts +1 -1
  359. package/dist/components/spinner/index.d.ts.map +1 -1
  360. package/dist/components/spinner/index.js.map +1 -1
  361. package/dist/components/spinner/types.d.ts +7 -0
  362. package/dist/components/spinner/types.d.ts.map +1 -1
  363. package/dist/components/table/client/TableColumnHeader.d.ts +3 -3
  364. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
  365. package/dist/components/table/client/TableColumnHeader.js +10 -2
  366. package/dist/components/table/client/TableColumnHeader.js.map +1 -1
  367. package/dist/components/table/client/TableSelection.d.ts +3 -3
  368. package/dist/components/table/client/TableSelection.d.ts.map +1 -1
  369. package/dist/components/table/client/TableSelection.js +6 -4
  370. package/dist/components/table/client/TableSelection.js.map +1 -1
  371. package/dist/components/table/client.d.ts +1 -1
  372. package/dist/components/table/client.d.ts.map +1 -1
  373. package/dist/components/table/client.js.map +1 -1
  374. package/dist/components/table/types.d.ts +13 -0
  375. package/dist/components/table/types.d.ts.map +1 -1
  376. package/dist/components/tabs/Tabs.d.ts +1 -1
  377. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  378. package/dist/components/tabs/Tabs.js +12 -2
  379. package/dist/components/tabs/Tabs.js.map +1 -1
  380. package/dist/components/tabs/index.d.ts +1 -1
  381. package/dist/components/tabs/index.d.ts.map +1 -1
  382. package/dist/components/tabs/index.js.map +1 -1
  383. package/dist/components/tabs/types.d.ts +17 -4
  384. package/dist/components/tabs/types.d.ts.map +1 -1
  385. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  386. package/dist/components/tags-input/TagsInput.js +45 -11
  387. package/dist/components/tags-input/TagsInput.js.map +1 -1
  388. package/dist/components/tags-input/index.d.ts +1 -1
  389. package/dist/components/tags-input/index.d.ts.map +1 -1
  390. package/dist/components/tags-input/index.js.map +1 -1
  391. package/dist/components/tags-input/types.d.ts +12 -4
  392. package/dist/components/tags-input/types.d.ts.map +1 -1
  393. package/dist/components/toast/Toast.d.ts +1 -1
  394. package/dist/components/toast/Toast.d.ts.map +1 -1
  395. package/dist/components/toast/Toast.js +74 -35
  396. package/dist/components/toast/Toast.js.map +1 -1
  397. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  398. package/dist/components/toast/ToastElements.js +36 -12
  399. package/dist/components/toast/ToastElements.js.map +1 -1
  400. package/dist/components/toast/index.d.ts +1 -1
  401. package/dist/components/toast/index.d.ts.map +1 -1
  402. package/dist/components/toast/index.js.map +1 -1
  403. package/dist/components/toast/types.d.ts +32 -26
  404. package/dist/components/toast/types.d.ts.map +1 -1
  405. package/dist/components/toggle/Toggle.d.ts +1 -1
  406. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  407. package/dist/components/toggle/Toggle.js +13 -4
  408. package/dist/components/toggle/Toggle.js.map +1 -1
  409. package/dist/components/toggle/index.d.ts +1 -1
  410. package/dist/components/toggle/index.d.ts.map +1 -1
  411. package/dist/components/toggle/index.js.map +1 -1
  412. package/dist/components/toggle/types.d.ts +12 -3
  413. package/dist/components/toggle/types.d.ts.map +1 -1
  414. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
  415. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  416. package/dist/components/toggle-group/ToggleGroup.js +5 -1
  417. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  418. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
  419. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
  420. package/dist/components/toggle-group/client/ToggleGroupClient.js +15 -1
  421. package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
  422. package/dist/components/toggle-group/index.d.ts +1 -1
  423. package/dist/components/toggle-group/index.d.ts.map +1 -1
  424. package/dist/components/toggle-group/index.js.map +1 -1
  425. package/dist/components/toggle-group/types.d.ts +4 -4
  426. package/dist/components/toggle-group/types.d.ts.map +1 -1
  427. package/dist/components/toolbar/Toolbar.d.ts +3 -12
  428. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  429. package/dist/components/toolbar/Toolbar.js +22 -2
  430. package/dist/components/toolbar/Toolbar.js.map +1 -1
  431. package/dist/components/toolbar/types.d.ts +5 -5
  432. package/dist/components/toolbar/types.d.ts.map +1 -1
  433. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  434. package/dist/components/tooltip/Tooltip.js +4 -4
  435. package/dist/components/tooltip/Tooltip.js.map +1 -1
  436. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  437. package/dist/components/virtual-scroll/VirtualScroll.js +99 -44
  438. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  439. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts +3 -14
  440. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts.map +1 -1
  441. package/dist/components/virtual-scroll/VirtualScrollRowShell.js +6 -3
  442. package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
  443. package/dist/components/virtual-scroll/index.d.ts +1 -1
  444. package/dist/components/virtual-scroll/index.d.ts.map +1 -1
  445. package/dist/components/virtual-scroll/index.js.map +1 -1
  446. package/dist/components/virtual-scroll/types.d.ts +23 -3
  447. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  448. package/dist/components/virtual-scroll/types.js.map +1 -1
  449. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts +3 -0
  450. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts.map +1 -1
  451. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js +11 -2
  452. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js.map +1 -1
  453. package/dist/core/class-names.d.ts +3 -0
  454. package/dist/core/class-names.d.ts.map +1 -0
  455. package/dist/core/class-names.js +7 -0
  456. package/dist/core/class-names.js.map +1 -0
  457. package/dist/core/part-names.d.ts +8 -0
  458. package/dist/core/part-names.d.ts.map +1 -0
  459. package/dist/core/part-names.js +111 -0
  460. package/dist/core/part-names.js.map +1 -0
  461. package/dist/core/polymorphic.d.ts +10 -3
  462. package/dist/core/polymorphic.d.ts.map +1 -1
  463. package/dist/core/render-native-invoker.d.ts +1 -0
  464. package/dist/core/render-native-invoker.d.ts.map +1 -1
  465. package/dist/core/render-native-invoker.js +6 -6
  466. package/dist/core/render-native-invoker.js.map +1 -1
  467. package/dist/core/roving-focus.d.ts +2 -2
  468. package/dist/core/roving-focus.d.ts.map +1 -1
  469. package/dist/core/roving-focus.js +6 -7
  470. package/dist/core/roving-focus.js.map +1 -1
  471. package/dist/core/slot-props.d.ts +21 -0
  472. package/dist/core/slot-props.d.ts.map +1 -0
  473. package/dist/core/slot-props.js +49 -0
  474. package/dist/core/slot-props.js.map +1 -0
  475. package/dist/core/use-popover.d.ts +2 -1
  476. package/dist/core/use-popover.d.ts.map +1 -1
  477. package/dist/core/use-popover.js +3 -1
  478. package/dist/core/use-popover.js.map +1 -1
  479. package/dist/elements/choice/Choice.d.ts.map +1 -1
  480. package/dist/elements/choice/Choice.js +13 -10
  481. package/dist/elements/choice/Choice.js.map +1 -1
  482. package/dist/elements/choice/index.d.ts +1 -1
  483. package/dist/elements/choice/index.d.ts.map +1 -1
  484. package/dist/elements/choice/index.js.map +1 -1
  485. package/dist/elements/choice/types.d.ts +18 -10
  486. package/dist/elements/choice/types.d.ts.map +1 -1
  487. package/dist/elements/details/Details.d.ts.map +1 -1
  488. package/dist/elements/details/Details.js +4 -5
  489. package/dist/elements/details/Details.js.map +1 -1
  490. package/dist/elements/details/types.d.ts +3 -3
  491. package/dist/elements/details/types.d.ts.map +1 -1
  492. package/dist/elements/dialog/Dialog.d.ts.map +1 -1
  493. package/dist/elements/dialog/Dialog.js +1 -1
  494. package/dist/elements/dialog/Dialog.js.map +1 -1
  495. package/dist/elements/invoker/Invoker.js +3 -3
  496. package/dist/elements/invoker/Invoker.js.map +1 -1
  497. package/dist/elements/popover/Popover.d.ts.map +1 -1
  498. package/dist/elements/popover/Popover.js +3 -3
  499. package/dist/elements/popover/Popover.js.map +1 -1
  500. package/dist/elements/popover/types.d.ts +6 -4
  501. package/dist/elements/popover/types.d.ts.map +1 -1
  502. package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -2
  503. package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
  504. package/dist/styles/index.css +1 -1
  505. package/dist/styles/tailwind.css +17 -16
  506. package/dist/styles/tokens.css +1 -1
  507. package/package.json +1 -1
  508. package/skills/uiify/references/elements/accordion.md +1 -1
  509. package/skills/uiify/references/elements/aspect-ratio.md +1 -1
  510. package/skills/uiify/references/elements/breadcrumb.md +1 -0
  511. package/skills/uiify/references/elements/checkbox.md +1 -1
  512. package/skills/uiify/references/elements/color-picker.md +1 -1
  513. package/skills/uiify/references/elements/combobox.md +1 -1
  514. package/skills/uiify/references/elements/context-menu.md +1 -1
  515. package/skills/uiify/references/elements/dropdown-menu.md +1 -1
  516. package/skills/uiify/references/elements/field.md +1 -1
  517. package/skills/uiify/references/elements/form-error-summary.md +5 -0
  518. package/skills/uiify/references/elements/pagination.md +1 -1
  519. package/skills/uiify/references/elements/radio-group.md +1 -0
  520. package/skills/uiify/references/elements/rating.md +1 -1
  521. package/skills/uiify/references/elements/segmented-control.md +1 -0
  522. package/skills/uiify/references/elements/spinner.md +1 -1
  523. package/skills/uiify/references/elements/table.md +1 -1
  524. package/skills/uiify/references/elements/tabs.md +1 -1
  525. package/skills/uiify/references/elements/tags-input.md +1 -1
  526. package/skills/uiify/references/elements/toast.md +1 -0
  527. package/skills/uiify/references/elements/toggle-group.md +1 -0
  528. package/skills/uiify/references/elements/toggle.md +1 -0
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { createElement } from "react";
3
4
  import {
4
5
  Children,
5
6
  isValidElement,
@@ -15,8 +16,13 @@ import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers"
15
16
  import { isComposingKeyEvent } from "@gunkin/uiify/core/ime";
16
17
  import { RovingFocusItem, RovingFocusRoot } from "@gunkin/uiify/core/roving-focus";
17
18
  import { useRenderElement } from "@gunkin/uiify/core/render";
19
+ import { mergeRepeatedSlotProps } from "../../core/slot-props.js";
18
20
  import { createTagsInputStore, splitTags } from "./tags-input-store.js";
19
21
  const [TagsInputProvider, useTagsInputContext] = createPartContext("TagsInput");
22
+ function resolveIndexedSlotProps(slotProps, index) {
23
+ const { byItemIndex, ...common } = slotProps ?? {};
24
+ return mergeRepeatedSlotProps(common, byItemIndex?.[index]);
25
+ }
20
26
  function TagsInputRoot(props) {
21
27
  const {
22
28
  addOnPaste = true,
@@ -26,10 +32,13 @@ function TagsInputRoot(props) {
26
32
  defaultValue = [],
27
33
  delimiters = [","],
28
34
  disabled = false,
35
+ id,
36
+ items: _items,
29
37
  maxTags,
30
38
  onValueChange,
31
39
  validate,
32
- value: controlledValue
40
+ value: controlledValue,
41
+ ...consumerProps
33
42
  } = props;
34
43
  const listId = useId();
35
44
  const inputId = useId();
@@ -98,7 +107,17 @@ function TagsInputRoot(props) {
98
107
  store
99
108
  ]
100
109
  );
101
- return /* @__PURE__ */ jsx(TagsInputProvider, { value: contextValue, children: /* @__PURE__ */ jsx("div", { className, "data-disabled": disabled ? "" : void 0, "data-uiify-tags-input": "", children }) });
110
+ return /* @__PURE__ */ jsx(TagsInputProvider, { value: contextValue, children: /* @__PURE__ */ jsx(
111
+ "div",
112
+ {
113
+ "data-disabled": disabled ? "" : void 0,
114
+ "data-uiify-tags-input": "",
115
+ ...consumerProps,
116
+ ...id !== void 0 ? { id } : {},
117
+ className,
118
+ children
119
+ }
120
+ ) });
102
121
  }
103
122
  TagsInputRoot.displayName = "TagsInputRoot";
104
123
  function TagsInputInput(props) {
@@ -150,7 +169,6 @@ function TagsInputInput(props) {
150
169
  as,
151
170
  defaultTag: "input",
152
171
  props: {
153
- ...consumerProps,
154
172
  id: inputId,
155
173
  type: "text",
156
174
  role: "combobox",
@@ -159,6 +177,7 @@ function TagsInputInput(props) {
159
177
  disabled: disabled || void 0,
160
178
  "data-part": "input",
161
179
  value: inputValue,
180
+ ...consumerProps,
162
181
  placeholder,
163
182
  ...className ? { className } : {},
164
183
  onChange: composeEventHandlers(consumerOnChange, handleChange),
@@ -170,22 +189,36 @@ function TagsInputInput(props) {
170
189
  });
171
190
  }
172
191
  function TagsInputList(props) {
173
- const { children, className } = props;
192
+ const { children, className, slotProps, ...consumerProps } = props;
174
193
  const { listId, store } = useTagsInputContext("List");
175
194
  const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);
176
195
  return /* @__PURE__ */ jsxs(
177
196
  RovingFocusRoot,
178
197
  {
179
198
  as: "ul",
180
- id: listId,
181
199
  orientation: "horizontal",
182
- ...className ? { className } : {},
200
+ id: listId,
183
201
  "data-part": "list",
202
+ ...consumerProps,
203
+ ...className ? { className } : {},
184
204
  children: [
185
- tags.map((tag, index) => /* @__PURE__ */ jsx("li", { "data-index": index, "data-value": tag, children: tag }, `${tag}-${index}`)),
205
+ tags.map((tag, index) => {
206
+ const tagProps = resolveIndexedSlotProps(slotProps?.tag, index);
207
+ return /* @__PURE__ */ createElement("li", { "data-index": index, "data-value": tag, ...tagProps, key: `${tag}-${index}` }, tag);
208
+ }),
186
209
  Children.map(
187
210
  children,
188
- (child) => isValidElement(child) && child.type === TagsInputTag ? child : /* @__PURE__ */ jsx("li", { "data-part": "input-slot", children: child })
211
+ (child) => isValidElement(child) && child.type === TagsInputTag ? child : /* @__PURE__ */ jsx(
212
+ "li",
213
+ {
214
+ "data-part": "input-slot",
215
+ ...resolveIndexedSlotProps(
216
+ slotProps?.input,
217
+ 0
218
+ ),
219
+ children: child
220
+ }
221
+ )
189
222
  )
190
223
  ]
191
224
  }
@@ -203,10 +236,10 @@ function TagsInputTag(props) {
203
236
  }
204
237
  };
205
238
  const tagProps = {
206
- ...consumerProps,
207
239
  role: "listitem",
208
240
  "data-part": "tag",
209
241
  "data-value": value,
242
+ ...consumerProps,
210
243
  ...className ? { className } : {},
211
244
  onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),
212
245
  children
@@ -234,7 +267,7 @@ function TagsInputTag(props) {
234
267
  }
235
268
  TagsInputTag.displayName = "TagsInputTag";
236
269
  function TagsInputTagRemove(props) {
237
- const { className, index } = props;
270
+ const { className, index, onClick: consumerOnClick, ...consumerProps } = props;
238
271
  const { disabled, removeAt } = useTagsInputContext("TagRemove");
239
272
  return useRenderElement({
240
273
  defaultTag: "button",
@@ -243,8 +276,9 @@ function TagsInputTagRemove(props) {
243
276
  "aria-label": "Remove tag",
244
277
  "data-part": "tag-remove",
245
278
  disabled: disabled || void 0,
279
+ ...consumerProps,
246
280
  ...className ? { className } : {},
247
- onClick: () => removeAt(index)
281
+ onClick: composeEventHandlers(consumerOnClick, () => removeAt(index))
248
282
  },
249
283
  state: { disabled }
250
284
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/tags-input/TagsInput.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Children,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport type { ElementType, KeyboardEvent, ReactElement, SyntheticEvent } from \"react\";\nimport { useControllableState, useId, useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { isComposingKeyEvent } from \"@gunkin/uiify/core/ime\";\nimport { RovingFocusItem, RovingFocusRoot } from \"@gunkin/uiify/core/roving-focus\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { createTagsInputStore, splitTags } from \"./tags-input-store.js\";\nimport type {\n TagsInputStore,\n TagsInputContextValue,\n TagsInputRootProps,\n TagsInputInputProps,\n TagsInputListOwnProps,\n TagsInputTagProps,\n TagsInputTagRemoveOwnProps,\n} from \"./types.js\";\n\nconst [TagsInputProvider, useTagsInputContext] =\n createPartContext<TagsInputContextValue>(\"TagsInput\");\n\nexport function TagsInputRoot(props: TagsInputRootProps): ReactElement | null {\n const {\n addOnPaste = true,\n allowDuplicates = false,\n children,\n className,\n defaultValue = [],\n delimiters = [\",\"],\n disabled = false,\n maxTags,\n onValueChange,\n validate,\n value: controlledValue,\n } = props;\n\n const listId = useId();\n const inputId = useId();\n const [inputValue, setInputValue] = useState(\"\");\n const [tags, setTags] = useControllableState<string[]>({\n defaultValue: [...defaultValue],\n ...(controlledValue !== undefined ? { value: [...controlledValue] } : {}),\n ...(onValueChange ? { onChange: onValueChange } : {}),\n });\n\n const storeRef = useRef<TagsInputStore | null>(null);\n storeRef.current ??= createTagsInputStore(tags, {\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n const store = storeRef.current;\n\n useIsomorphicLayoutEffect(() => {\n store.setTags(tags);\n store.updateOptions({\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n }, [allowDuplicates, maxTags, store, tags, validate]);\n\n const addTag = useCallback(\n (tag: string) => {\n if (disabled) return;\n if (store.addTag(tag)) {\n setTags(store.getTags());\n setInputValue(\"\");\n }\n },\n [disabled, setTags, store],\n );\n\n const removeAt = useCallback(\n (index: number) => {\n if (disabled) return;\n store.removeAt(index);\n setTags(store.getTags());\n },\n [disabled, setTags, store],\n );\n\n const contextValue = useMemo(\n () => ({\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n }),\n [\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n ],\n );\n\n return (\n <TagsInputProvider value={contextValue}>\n <div className={className} data-disabled={disabled ? \"\" : undefined} data-uiify-tags-input=\"\">\n {children}\n </div>\n </TagsInputProvider>\n );\n}\nTagsInputRoot.displayName = \"TagsInputRoot\";\n\nexport function TagsInputInput<TAs extends ElementType = \"input\">(\n props: TagsInputInputProps<TAs>,\n): ReactElement | null {\n const { as, render, className, placeholder, ...consumerProps } =\n props as TagsInputInputProps<\"input\">;\n const {\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n } = useTagsInputContext(\"Input\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n const {\n onChange: consumerOnChange,\n onKeyDown: consumerOnKeyDown,\n onPaste: consumerOnPaste,\n } = consumerProps as {\n onChange?: (event: SyntheticEvent<HTMLInputElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n onPaste?: (event: React.ClipboardEvent<HTMLInputElement>) => void;\n };\n\n const commitInput = () => {\n if (inputValue.trim()) addTag(inputValue);\n };\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>) => {\n setInputValue(event.currentTarget.value);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (isComposingKeyEvent(event)) return;\n if (event.key === \"Enter\" || delimiters.includes(event.key)) {\n event.preventDefault();\n commitInput();\n } else if (event.key === \"Backspace\" && !inputValue && tags.length > 0) {\n event.preventDefault();\n removeAt(tags.length - 1);\n }\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!addOnPaste) return;\n const text = event.clipboardData.getData(\"text\");\n const splitChars = [...delimiters, \"\\n\", \"\\t\"];\n if (!splitChars.some((delimiter) => text.includes(delimiter))) return;\n event.preventDefault();\n const parts = splitTags(text, splitChars);\n for (const part of parts) addTag(part);\n };\n\n return useRenderElement({\n as,\n defaultTag: \"input\",\n props: {\n ...consumerProps,\n id: inputId,\n type: \"text\",\n role: \"combobox\",\n \"aria-controls\": listId,\n \"aria-expanded\": false,\n disabled: disabled || undefined,\n \"data-part\": \"input\",\n value: inputValue,\n placeholder,\n ...(className ? { className } : {}),\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n onPaste: composeEventHandlers(consumerOnPaste, handlePaste),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function TagsInputList(props: TagsInputListOwnProps): ReactElement | null {\n const { children, className } = props;\n const { listId, store } = useTagsInputContext(\"List\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n\n return (\n <RovingFocusRoot\n as=\"ul\"\n id={listId}\n orientation=\"horizontal\"\n {...(className ? { className } : {})}\n data-part=\"list\"\n >\n {tags.map((tag, index) => (\n <li data-index={index} data-value={tag} key={`${tag}-${index}`}>\n {tag}\n </li>\n ))}\n {/* A <ul> may only contain <li>, so a non-<li> child (typically TagsInput.Input)\n needs one too — leaving it bare made the list malformed, a serious axe\n violation. TagsInputTag already renders its own <li>; wrapping it again\n would nest <li> inside <li>, an invalid, hydration-breaking tree. */}\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === TagsInputTag ? (\n child\n ) : (\n <li data-part=\"input-slot\">{child}</li>\n ),\n )}\n </RovingFocusRoot>\n );\n}\nTagsInputList.displayName = \"TagsInputList\";\n\nexport function TagsInputTag<TAs extends ElementType = \"li\">(\n props: TagsInputTagProps<TAs>,\n): ReactElement | null {\n const { as, render, children, className, index, value, ...consumerProps } =\n props as TagsInputTagProps<\"li\">;\n const { disabled, removeAt } = useTagsInputContext(\"Tag\");\n const { onKeyDown: consumerOnKeyDown } = consumerProps as {\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Backspace\" || event.key === \"Delete\") {\n event.preventDefault();\n removeAt(index);\n }\n };\n\n const tagProps = {\n ...consumerProps,\n role: \"listitem\",\n \"data-part\": \"tag\",\n \"data-value\": value,\n ...(className ? { className } : {}),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n children,\n };\n\n if (render) {\n return (\n <RovingFocusItem\n disabled={disabled}\n render={(renderProps, state) => render(renderProps, { current: state.current })}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n }\n\n return (\n <RovingFocusItem\n as={as ?? \"li\"}\n disabled={disabled}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n}\nTagsInputTag.displayName = \"TagsInputTag\";\n\nexport function TagsInputTagRemove(props: TagsInputTagRemoveOwnProps): ReactElement | null {\n const { className, index } = props;\n const { disabled, removeAt } = useTagsInputContext(\"TagRemove\");\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n type: \"button\",\n \"aria-label\": \"Remove tag\",\n \"data-part\": \"tag-remove\",\n disabled: disabled || undefined,\n ...(className ? { className } : {}),\n onClick: () => removeAt(index),\n },\n state: { disabled },\n });\n}\n\nexport const TagsInput = {\n Input: TagsInputInput,\n List: TagsInputList,\n Root: TagsInputRoot,\n Tag: TagsInputTag,\n TagRemove: TagsInputTagRemove,\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/components/tags-input/TagsInput.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Children,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport type { ElementType, KeyboardEvent, ReactElement, SyntheticEvent } from \"react\";\nimport { useControllableState, useId, useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { isComposingKeyEvent } from \"@gunkin/uiify/core/ime\";\nimport { RovingFocusItem, RovingFocusRoot } from \"@gunkin/uiify/core/roving-focus\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { mergeRepeatedSlotProps } from \"../../core/slot-props.js\";\nimport { createTagsInputStore, splitTags } from \"./tags-input-store.js\";\nimport type {\n TagsInputStore,\n TagsInputContextValue,\n TagsInputRootProps,\n TagsInputInputProps,\n TagsInputListOwnProps,\n TagsInputTagProps,\n TagsInputTagRemoveOwnProps,\n TagsInputListSlotProps,\n} from \"./types.js\";\n\nconst [TagsInputProvider, useTagsInputContext] =\n createPartContext<TagsInputContextValue>(\"TagsInput\");\n\nfunction resolveIndexedSlotProps<TProps extends object>(\n slotProps: (TProps & { readonly byItemIndex?: Readonly<Record<number, TProps>> }) | undefined,\n index: number,\n): TProps {\n const { byItemIndex, ...common } = slotProps ?? {};\n return mergeRepeatedSlotProps(common as TProps, byItemIndex?.[index]);\n}\n\nexport function TagsInputRoot(props: TagsInputRootProps): ReactElement | null {\n const {\n addOnPaste = true,\n allowDuplicates = false,\n children,\n className,\n defaultValue = [],\n delimiters = [\",\"],\n disabled = false,\n id,\n items: _items,\n maxTags,\n onValueChange,\n validate,\n value: controlledValue,\n ...consumerProps\n } = props;\n\n const listId = useId();\n const inputId = useId();\n const [inputValue, setInputValue] = useState(\"\");\n const [tags, setTags] = useControllableState<string[]>({\n defaultValue: [...defaultValue],\n ...(controlledValue !== undefined ? { value: [...controlledValue] } : {}),\n ...(onValueChange ? { onChange: onValueChange } : {}),\n });\n\n const storeRef = useRef<TagsInputStore | null>(null);\n storeRef.current ??= createTagsInputStore(tags, {\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n const store = storeRef.current;\n\n useIsomorphicLayoutEffect(() => {\n store.setTags(tags);\n store.updateOptions({\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n }, [allowDuplicates, maxTags, store, tags, validate]);\n\n const addTag = useCallback(\n (tag: string) => {\n if (disabled) return;\n if (store.addTag(tag)) {\n setTags(store.getTags());\n setInputValue(\"\");\n }\n },\n [disabled, setTags, store],\n );\n\n const removeAt = useCallback(\n (index: number) => {\n if (disabled) return;\n store.removeAt(index);\n setTags(store.getTags());\n },\n [disabled, setTags, store],\n );\n\n const contextValue = useMemo(\n () => ({\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n }),\n [\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n ],\n );\n\n return (\n <TagsInputProvider value={contextValue}>\n <div\n data-disabled={disabled ? \"\" : undefined}\n data-uiify-tags-input=\"\"\n {...consumerProps}\n {...(id !== undefined ? { id } : {})}\n className={className}\n >\n {children}\n </div>\n </TagsInputProvider>\n );\n}\nTagsInputRoot.displayName = \"TagsInputRoot\";\n\nexport function TagsInputInput<TAs extends ElementType = \"input\">(\n props: TagsInputInputProps<TAs>,\n): ReactElement | null {\n const { as, render, className, placeholder, ...consumerProps } =\n props as TagsInputInputProps<\"input\">;\n const {\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n } = useTagsInputContext(\"Input\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n const {\n onChange: consumerOnChange,\n onKeyDown: consumerOnKeyDown,\n onPaste: consumerOnPaste,\n } = consumerProps as {\n onChange?: (event: SyntheticEvent<HTMLInputElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n onPaste?: (event: React.ClipboardEvent<HTMLInputElement>) => void;\n };\n\n const commitInput = () => {\n if (inputValue.trim()) addTag(inputValue);\n };\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>) => {\n setInputValue(event.currentTarget.value);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (isComposingKeyEvent(event)) return;\n if (event.key === \"Enter\" || delimiters.includes(event.key)) {\n event.preventDefault();\n commitInput();\n } else if (event.key === \"Backspace\" && !inputValue && tags.length > 0) {\n event.preventDefault();\n removeAt(tags.length - 1);\n }\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!addOnPaste) return;\n const text = event.clipboardData.getData(\"text\");\n const splitChars = [...delimiters, \"\\n\", \"\\t\"];\n if (!splitChars.some((delimiter) => text.includes(delimiter))) return;\n event.preventDefault();\n const parts = splitTags(text, splitChars);\n for (const part of parts) addTag(part);\n };\n\n return useRenderElement({\n as,\n defaultTag: \"input\",\n props: {\n id: inputId,\n type: \"text\",\n role: \"combobox\",\n \"aria-controls\": listId,\n \"aria-expanded\": false,\n disabled: disabled || undefined,\n \"data-part\": \"input\",\n value: inputValue,\n ...consumerProps,\n placeholder,\n ...(className ? { className } : {}),\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n onPaste: composeEventHandlers(consumerOnPaste, handlePaste),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function TagsInputList(props: TagsInputListOwnProps): ReactElement | null {\n const { children, className, slotProps, ...consumerProps } = props;\n const { listId, store } = useTagsInputContext(\"List\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n\n return (\n <RovingFocusRoot\n as=\"ul\"\n orientation=\"horizontal\"\n id={listId}\n data-part=\"list\"\n {...consumerProps}\n {...(className ? { className } : {})}\n >\n {tags.map((tag, index) => {\n const tagProps = resolveIndexedSlotProps(slotProps?.tag, index);\n return (\n <li data-index={index} data-value={tag} {...tagProps} key={`${tag}-${index}`}>\n {tag}\n </li>\n );\n })}\n {/* A <ul> may only contain <li>, so a non-<li> child (typically TagsInput.Input)\n needs one too — leaving it bare made the list malformed, a serious axe\n violation. TagsInputTag already renders its own <li>; wrapping it again\n would nest <li> inside <li>, an invalid, hydration-breaking tree. */}\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === TagsInputTag ? (\n child\n ) : (\n <li\n data-part=\"input-slot\"\n {...resolveIndexedSlotProps<TagsInputListSlotProps[\"input\"] & object>(\n slotProps?.input,\n 0,\n )}\n >\n {child}\n </li>\n ),\n )}\n </RovingFocusRoot>\n );\n}\nTagsInputList.displayName = \"TagsInputList\";\n\nexport function TagsInputTag<TAs extends ElementType = \"li\">(\n props: TagsInputTagProps<TAs>,\n): ReactElement | null {\n const { as, render, children, className, index, value, ...consumerProps } =\n props as TagsInputTagProps<\"li\">;\n const { disabled, removeAt } = useTagsInputContext(\"Tag\");\n const { onKeyDown: consumerOnKeyDown } = consumerProps as {\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Backspace\" || event.key === \"Delete\") {\n event.preventDefault();\n removeAt(index);\n }\n };\n\n const tagProps = {\n role: \"listitem\",\n \"data-part\": \"tag\",\n \"data-value\": value,\n ...consumerProps,\n ...(className ? { className } : {}),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n children,\n };\n\n if (render) {\n return (\n <RovingFocusItem\n disabled={disabled}\n render={(renderProps, state) => render(renderProps, { current: state.current })}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n }\n\n return (\n <RovingFocusItem\n as={as ?? \"li\"}\n disabled={disabled}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n}\nTagsInputTag.displayName = \"TagsInputTag\";\n\nexport function TagsInputTagRemove(props: TagsInputTagRemoveOwnProps): ReactElement | null {\n const { className, index, onClick: consumerOnClick, ...consumerProps } = props;\n const { disabled, removeAt } = useTagsInputContext(\"TagRemove\");\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n type: \"button\",\n \"aria-label\": \"Remove tag\",\n \"data-part\": \"tag-remove\",\n disabled: disabled || undefined,\n ...consumerProps,\n ...(className ? { className } : {}),\n onClick: composeEventHandlers(consumerOnClick, () => removeAt(index)),\n },\n state: { disabled },\n });\n}\n\nexport const TagsInput = {\n Input: TagsInputInput,\n List: TagsInputList,\n Root: TagsInputRoot,\n Tag: TagsInputTag,\n TagRemove: TagsInputTagRemove,\n};\n"],"mappings":"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","names":[]}
@@ -1,4 +1,4 @@
1
1
  export { TagsInput, TagsInputInput, TagsInputList, TagsInputRoot, TagsInputTag, TagsInputTagRemove, } from "./TagsInput.js";
2
- export type { TagsInputInputOwnProps, TagsInputInputProps, TagsInputRootControlledOwnProps, TagsInputRootShellOwnProps, TagsInputRootShellProps, TagsInputRootProps, TagsInputTagOwnProps, TagsInputTagProps, TagsInputStore, } from "./types.js";
2
+ export type { TagsInputInputOwnProps, TagsInputInputProps, TagsInputListOwnProps, TagsInputListSlotProps, TagsInputRootControlledOwnProps, TagsInputRootShellOwnProps, TagsInputRootShellProps, TagsInputRootProps, TagsInputTagOwnProps, TagsInputTagRemoveOwnProps, TagsInputTagProps, TagsInputStore, } from "./types.js";
3
3
  export { splitTags } from "./tags-input-store.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,+BAA+B,EAC/B,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/tags-input/index.ts"],"sourcesContent":["export {\n TagsInput,\n TagsInputInput,\n TagsInputList,\n TagsInputRoot,\n TagsInputTag,\n TagsInputTagRemove,\n} from \"./TagsInput.js\";\nexport type {\n TagsInputInputOwnProps,\n TagsInputInputProps,\n TagsInputRootControlledOwnProps,\n TagsInputRootShellOwnProps,\n TagsInputRootShellProps,\n TagsInputRootProps,\n TagsInputTagOwnProps,\n TagsInputTagProps,\n TagsInputStore,\n} from \"./types.js\";\nexport { splitTags } from \"./tags-input-store.js\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAYP,SAAS,iBAAiB;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/tags-input/index.ts"],"sourcesContent":["export {\n TagsInput,\n TagsInputInput,\n TagsInputList,\n TagsInputRoot,\n TagsInputTag,\n TagsInputTagRemove,\n} from \"./TagsInput.js\";\nexport type {\n TagsInputInputOwnProps,\n TagsInputInputProps,\n TagsInputListOwnProps,\n TagsInputListSlotProps,\n TagsInputRootControlledOwnProps,\n TagsInputRootShellOwnProps,\n TagsInputRootShellProps,\n TagsInputRootProps,\n TagsInputTagOwnProps,\n TagsInputTagRemoveOwnProps,\n TagsInputTagProps,\n TagsInputStore,\n} from \"./types.js\";\nexport { splitTags } from \"./tags-input-store.js\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAeP,SAAS,iBAAiB;","names":[]}
@@ -1,5 +1,6 @@
1
- import type { ElementType, ReactNode } from "react";
1
+ import type { ComponentPropsWithRef, ElementType, ReactNode } from "react";
2
2
  import type { RenderableProps } from "@gunkin/uiify/core/render";
3
+ import type { ConsumerDataAttributes, SlotProps } from "../../core/slot-props.js";
3
4
  export interface TagsInputStoreOptions {
4
5
  readonly allowDuplicates?: boolean;
5
6
  readonly maxTags?: number;
@@ -27,7 +28,7 @@ export interface TagsInputContextValue {
27
28
  readonly setInputValue: (value: string) => void;
28
29
  readonly store: TagsInputStore;
29
30
  }
30
- export interface TagsInputRootShellOwnProps {
31
+ export interface TagsInputRootShellOwnProps extends Omit<ComponentPropsWithRef<"div">, "children" | "className" | "dangerouslySetInnerHTML">, ConsumerDataAttributes {
31
32
  readonly className?: string;
32
33
  readonly addOnPaste?: boolean;
33
34
  readonly allowDuplicates?: boolean;
@@ -56,9 +57,16 @@ export interface TagsInputInputOwnProps {
56
57
  export type TagsInputInputProps<TAs extends ElementType = "input"> = RenderableProps<TAs, TagsInputInputOwnProps, {
57
58
  disabled: boolean;
58
59
  }, HTMLInputElement>;
59
- export interface TagsInputListOwnProps {
60
+ export interface TagsInputListSlotProps {
61
+ readonly input?: SlotProps<"li">;
62
+ readonly tag?: SlotProps<"li"> & {
63
+ readonly byItemIndex?: Readonly<Record<number, SlotProps<"li">>>;
64
+ };
65
+ }
66
+ export interface TagsInputListOwnProps extends Omit<ComponentPropsWithRef<"ul">, "children" | "className" | "dangerouslySetInnerHTML">, ConsumerDataAttributes {
60
67
  readonly children?: ReactNode;
61
68
  readonly className?: string;
69
+ readonly slotProps?: TagsInputListSlotProps;
62
70
  }
63
71
  export interface TagsInputTagOwnProps {
64
72
  readonly children?: ReactNode;
@@ -69,7 +77,7 @@ export interface TagsInputTagOwnProps {
69
77
  export type TagsInputTagProps<TAs extends ElementType = "li"> = RenderableProps<TAs, TagsInputTagOwnProps, {
70
78
  current: boolean;
71
79
  }, HTMLElement>;
72
- export interface TagsInputTagRemoveOwnProps {
80
+ export interface TagsInputTagRemoveOwnProps extends ComponentPropsWithRef<"button">, ConsumerDataAttributes {
73
81
  readonly className?: string;
74
82
  readonly index: number;
75
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { ReactElement } from "react";
2
2
  import { ToastDescription, ToastTitle } from "./ToastElements.js";
3
3
  import type { ToastInput, ToastProviderOwnProps, ToastViewportOwnProps, ToastRootOwnProps, ToastActionProps, ToastCloseProps } from "./types.js";
4
- export type { ToastActionProps, ToastCloseProps, ToastDescriptionOwnProps, ToastInput, ToastLabels, ToastPriority, ToastProviderOwnProps, ToastRecord, ToastRootOwnProps, ToastStore, ToastTitleOwnProps, ToastViewportOwnProps, } from "./types.js";
4
+ export type { ToastActionProps, ToastCloseProps, ToastDescriptionOwnProps, ToastInput, ToastLabels, ToastPriority, ToastProviderOwnProps, ToastRecord, ToastRootOwnProps, ToastStore, ToastTitleOwnProps, ToastViewportOwnProps, ToastProviderSlotProps, ToastRootSlotProps, ToastItemSlotProps, ToastTitleSlotProps, ToastDescriptionSlotProps, ToastActionSlotProps, ToastCloseSlotProps, ToastViewportSlotProps, } from "./types.js";
5
5
  export { ToastDescription, ToastTitle };
6
6
  export declare function ToastProvider(props: ToastProviderOwnProps): ReactElement | null;
7
7
  export declare namespace ToastProvider {
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/toast/Toast.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAA2C,YAAY,EAAE,MAAM,OAAO,CAAC;AAKnF,OAAO,EAGL,gBAAgB,EAChB,UAAU,EAEX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,UAAU,EAGV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAgBpB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAExC,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAqC/E;yBArCe,aAAa;;;AAwC7B,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA8C/E;yBA9Ce,aAAa;;;AAiD7B,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CA8DvE;yBA9De,SAAS;;;AAiEzB,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAExE;yBAFe,WAAW;;;AAK3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAEtE;yBAFe,UAAU;;;AAK1B,wBAAgB,QAAQ;;iBAIP,UAAU;EAI1B;AAED,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/toast/Toast.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAA2C,YAAY,EAAE,MAAM,OAAO,CAAC;AAOnF,OAAO,EAGL,gBAAgB,EAChB,UAAU,EAEX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,UAAU,EAGV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAEhB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAgBpB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAExC,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAuC/E;yBAvCe,aAAa;;;AA0C7B,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAoD/E;yBApDe,aAAa;;;AAuD7B,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAuFvE;yBAvFe,SAAS;;;AA0FzB,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAExE;yBAFe,WAAW;;;AAK3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAEtE;yBAFe,UAAU;;;AAK1B,wBAAgB,QAAQ;;iBAIP,UAAU;EAI1B;AAED,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
@@ -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 { 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,12 @@ function ToastProvider(props) {
55
57
  () => ({ dismiss, pause, resume, store, labels: resolvedLabels }),
56
58
  [dismiss, pause, resume, store, resolvedLabels]
57
59
  );
60
+ const politeLiveRegionProps = slotProps?.politeLiveRegion;
61
+ const assertiveLiveRegionProps = slotProps?.assertiveLiveRegion;
58
62
  return /* @__PURE__ */ jsxs(ToastStoreProvider, { value: contextValue, children: [
59
63
  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 })
64
+ /* @__PURE__ */ jsx(VisuallyHidden, { "aria-atomic": "true", "aria-live": "polite", ...politeLiveRegionProps, children: announcement }),
65
+ /* @__PURE__ */ jsx(VisuallyHidden, { "aria-atomic": "true", "aria-live": "assertive", ...assertiveLiveRegionProps, children: assertiveAnnouncement })
62
66
  ] });
63
67
  }
64
68
  ToastProvider.displayName = "ToastProvider";
@@ -74,9 +78,11 @@ function ToastViewport(props) {
74
78
  sync();
75
79
  return unsubscribe;
76
80
  }, [store]);
77
- const [consumerRef, domProps] = splitRef(props);
81
+ const { slotProps, ...viewportProps } = props;
82
+ const [consumerRef, domProps] = splitRef(viewportProps);
78
83
  const { labels } = useToastStoreContext("Viewport");
79
84
  const resolvedLabels = { ...labels, ...props.labels };
85
+ const { item: itemSlotProps, ...rootSlotProps } = slotProps ?? {};
80
86
  const viewportRef = useRef(null);
81
87
  const mergedRef = useMergedRefs(viewportRef, consumerRef);
82
88
  const hasToasts = toasts.length > 0;
@@ -89,17 +95,29 @@ function ToastViewport(props) {
89
95
  } catch {
90
96
  }
91
97
  }, [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)) });
98
+ return /* @__PURE__ */ jsx(ToastViewportElement, { popover: "manual", ...domProps, labels: resolvedLabels, ref: mergedRef, children: toasts.map((toast) => /* @__PURE__ */ jsx(ViewTransition, { default: TOAST_TRANSITION, children: /* @__PURE__ */ jsx(
99
+ ToastRoot,
100
+ {
101
+ ...resolveRepeatedSlotProps(itemSlotProps, toast.id),
102
+ toast,
103
+ slotProps: rootSlotProps
104
+ }
105
+ ) }, toast.id)) });
93
106
  }
94
107
  ToastViewport.displayName = "ToastViewport";
95
108
  function ToastRoot(props) {
96
- const { toast, labels: labelOverrides } = props;
109
+ const { toast, labels: labelOverrides, slotProps, ...consumerRootProps } = props;
97
110
  const { dismiss, pause, resume, labels: providerLabels } = useToastStoreContext("Root");
98
111
  const labels = { ...providerLabels, ...labelOverrides };
99
112
  const swipeRef = useRef(null);
100
113
  const endSwipe = (event) => {
101
114
  if (swipeRef.current?.pointerId === event.pointerId) swipeRef.current = null;
102
115
  };
116
+ const rootProps = consumerRootProps;
117
+ const titleProps = resolveRepeatedSlotProps(slotProps?.title, toast.id);
118
+ const descriptionProps = resolveRepeatedSlotProps(slotProps?.description, toast.id);
119
+ const actionProps = resolveRepeatedSlotProps(slotProps?.action, toast.id);
120
+ const closeProps = resolveRepeatedSlotProps(slotProps?.close, toast.id);
103
121
  return /* @__PURE__ */ jsxs(
104
122
  "div",
105
123
  {
@@ -109,47 +127,68 @@ function ToastRoot(props) {
109
127
  "data-uiify-toast": "",
110
128
  role: "group",
111
129
  tabIndex: 0,
112
- onFocus: () => pause(toast.id),
113
- onBlur: (event) => {
130
+ ...rootProps,
131
+ onFocus: composeEventHandlers(rootProps.onFocus, () => pause(toast.id)),
132
+ onBlur: composeEventHandlers(rootProps.onBlur, (event) => {
114
133
  if (!event.currentTarget.matches(":hover, :focus-within")) resume(toast.id);
115
- },
116
- onKeyDown: (event) => {
117
- if (event.key === "Escape") {
118
- event.preventDefault();
134
+ }),
135
+ onKeyDown: composeEventHandlers(
136
+ rootProps.onKeyDown,
137
+ (event) => {
138
+ if (event.key === "Escape") {
139
+ event.preventDefault();
140
+ dismiss(toast.id);
141
+ }
142
+ }
143
+ ),
144
+ onPointerEnter: composeEventHandlers(rootProps.onPointerEnter, () => pause(toast.id)),
145
+ onPointerLeave: composeEventHandlers(
146
+ rootProps.onPointerLeave,
147
+ (event) => {
148
+ if (!event.currentTarget.matches(":focus-within")) resume(toast.id);
149
+ }
150
+ ),
151
+ onPointerCancel: composeEventHandlers(rootProps.onPointerCancel, endSwipe),
152
+ onPointerDown: composeEventHandlers(
153
+ rootProps.onPointerDown,
154
+ (event) => {
155
+ if (!swipeRef.current && event.isPrimary) swipeRef.current = event;
156
+ }
157
+ ),
158
+ onPointerMove: composeEventHandlers(
159
+ rootProps.onPointerMove,
160
+ (event) => {
161
+ const swipe = swipeRef.current;
162
+ if (swipe?.pointerId !== event.pointerId) return;
163
+ const deltaX = event.clientX - swipe.clientX;
164
+ const deltaY = event.clientY - swipe.clientY;
165
+ if (Math.abs(deltaX) <= 80 || Math.abs(deltaX) <= Math.abs(deltaY)) return;
119
166
  dismiss(toast.id);
120
167
  }
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,
168
+ ),
169
+ onPointerUp: composeEventHandlers(rootProps.onPointerUp, endSwipe),
139
170
  children: [
140
- toast.title ? /* @__PURE__ */ jsx(ToastTitle, { children: toast.title }) : null,
141
- toast.description ? /* @__PURE__ */ jsx(ToastDescription, { children: toast.description }) : null,
171
+ toast.title ? /* @__PURE__ */ jsx(ToastTitle, { ...titleProps, children: toast.title }) : null,
172
+ toast.description ? /* @__PURE__ */ jsx(ToastDescription, { ...descriptionProps, children: toast.description }) : null,
142
173
  toast.action ? /* @__PURE__ */ jsx(
143
174
  ToastAction,
144
175
  {
145
- onClick: () => {
176
+ ...actionProps,
177
+ onClick: composeEventHandlers(actionProps?.onClick, () => {
146
178
  toast.action?.onClick();
147
179
  dismiss(toast.id);
148
- },
180
+ }),
149
181
  children: toast.action.label
150
182
  }
151
183
  ) : null,
152
- /* @__PURE__ */ jsx(ToastClose, { labels, onClick: () => dismiss(toast.id) })
184
+ /* @__PURE__ */ jsx(
185
+ ToastClose,
186
+ {
187
+ ...closeProps,
188
+ labels,
189
+ onClick: composeEventHandlers(closeProps?.onClick, () => dismiss(toast.id))
190
+ }
191
+ )
153
192
  ]
154
193
  }
155
194
  );
@@ -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 { 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 = slotProps?.politeLiveRegion;\n const assertiveLiveRegionProps = slotProps?.assertiveLiveRegion;\n\n return (\n <ToastStoreProvider value={contextValue}>\n {children}\n <VisuallyHidden aria-atomic=\"true\" aria-live=\"polite\" {...politeLiveRegionProps}>\n {announcement}\n </VisuallyHidden>\n <VisuallyHidden aria-atomic=\"true\" aria-live=\"assertive\" {...assertiveLiveRegionProps}>\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 popover=\"manual\" {...domProps} labels={resolvedLabels} ref={mergedRef}>\n {toasts.map((toast) => (\n <ViewTransition default={TOAST_TRANSITION} key={toast.id}>\n <ToastRoot\n {...resolveRepeatedSlotProps(itemSlotProps, toast.id)}\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 = consumerRootProps;\n const titleProps = resolveRepeatedSlotProps(slotProps?.title, toast.id);\n const descriptionProps = resolveRepeatedSlotProps(slotProps?.description, toast.id);\n const actionProps = resolveRepeatedSlotProps(slotProps?.action, toast.id);\n const closeProps = resolveRepeatedSlotProps(slotProps?.close, toast.id);\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 {...rootProps}\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,CA2B/E;yBA3Be,aAAa;;;AA8B7B,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CA4BvE;yBA5Be,SAAS;;;AA+BzB,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"}