@gunkin/uiify 0.0.24-alpha → 0.0.25-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) hide show
  1. package/agents/index.md +1 -1
  2. package/agents/reference/components/accordion.md +18 -3
  3. package/agents/reference/components/alert-modal.md +19 -7
  4. package/agents/reference/components/alert.md +9 -1
  5. package/agents/reference/components/aspect-ratio.md +8 -0
  6. package/agents/reference/components/avatar.md +10 -0
  7. package/agents/reference/components/breadcrumb.md +20 -1
  8. package/agents/reference/components/candle-chart.md +50 -2
  9. package/agents/reference/components/carousel.md +30 -1
  10. package/agents/reference/components/checkbox.md +3 -1
  11. package/agents/reference/components/collapsible.md +16 -3
  12. package/agents/reference/components/color-picker.md +18 -2
  13. package/agents/reference/components/combobox.md +20 -9
  14. package/agents/reference/components/context-menu.md +37 -5
  15. package/agents/reference/components/drawer.md +30 -5
  16. package/agents/reference/components/dropdown-menu.md +4 -3
  17. package/agents/reference/components/field.md +3 -3
  18. package/agents/reference/components/form-error-summary.md +11 -1
  19. package/agents/reference/components/line-chart.md +41 -2
  20. package/agents/reference/components/modal.md +22 -3
  21. package/agents/reference/components/pagination.md +13 -1
  22. package/agents/reference/components/radio-group.md +8 -2
  23. package/agents/reference/components/rating.md +8 -2
  24. package/agents/reference/components/segmented-control.md +8 -3
  25. package/agents/reference/components/slider.md +13 -1
  26. package/agents/reference/components/spinner.md +10 -1
  27. package/agents/reference/components/table.md +15 -0
  28. package/agents/reference/components/tabs.md +21 -3
  29. package/agents/reference/components/tags-input.md +22 -1
  30. package/agents/reference/components/toast.md +55 -10
  31. package/agents/reference/components/toggle-group.md +5 -3
  32. package/agents/reference/components/toggle.md +16 -3
  33. package/agents/reference/components/toolbar.md +4 -4
  34. package/agents/reference/components/virtual-scroll.md +31 -2
  35. package/agents/reference/elements/choice.md +20 -7
  36. package/dist/components/accordion/Accordion.d.ts +1 -1
  37. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  38. package/dist/components/accordion/Accordion.js +62 -15
  39. package/dist/components/accordion/Accordion.js.map +1 -1
  40. package/dist/components/accordion/index.d.ts +1 -1
  41. package/dist/components/accordion/index.d.ts.map +1 -1
  42. package/dist/components/accordion/index.js.map +1 -1
  43. package/dist/components/accordion/types.d.ts +23 -2
  44. package/dist/components/accordion/types.d.ts.map +1 -1
  45. package/dist/components/alert/Alert.d.ts.map +1 -1
  46. package/dist/components/alert/Alert.js +11 -1
  47. package/dist/components/alert/Alert.js.map +1 -1
  48. package/dist/components/alert/index.d.ts +1 -1
  49. package/dist/components/alert/index.d.ts.map +1 -1
  50. package/dist/components/alert/index.js.map +1 -1
  51. package/dist/components/alert/types.d.ts +11 -1
  52. package/dist/components/alert/types.d.ts.map +1 -1
  53. package/dist/components/alert-modal/AlertModal.d.ts +1 -1
  54. package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
  55. package/dist/components/alert-modal/AlertModal.js +139 -20
  56. package/dist/components/alert-modal/AlertModal.js.map +1 -1
  57. package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
  58. package/dist/components/alert-modal/AlertModalParts.js +37 -4
  59. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  60. package/dist/components/alert-modal/index.d.ts +1 -1
  61. package/dist/components/alert-modal/index.d.ts.map +1 -1
  62. package/dist/components/alert-modal/index.js.map +1 -1
  63. package/dist/components/alert-modal/types.d.ts +40 -6
  64. package/dist/components/alert-modal/types.d.ts.map +1 -1
  65. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -1
  66. package/dist/components/aspect-ratio/AspectRatio.js +10 -2
  67. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  68. package/dist/components/aspect-ratio/types.d.ts +10 -1
  69. package/dist/components/aspect-ratio/types.d.ts.map +1 -1
  70. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  71. package/dist/components/avatar/Avatar.js +19 -2
  72. package/dist/components/avatar/Avatar.js.map +1 -1
  73. package/dist/components/avatar/types.d.ts +19 -1
  74. package/dist/components/avatar/types.d.ts.map +1 -1
  75. package/dist/components/breadcrumb/Breadcrumb.d.ts +2 -2
  76. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  77. package/dist/components/breadcrumb/Breadcrumb.js +118 -26
  78. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  79. package/dist/components/breadcrumb/index.d.ts +1 -1
  80. package/dist/components/breadcrumb/index.d.ts.map +1 -1
  81. package/dist/components/breadcrumb/index.js.map +1 -1
  82. package/dist/components/breadcrumb/types.d.ts +40 -1
  83. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  84. package/dist/components/candle-chart/CandleChart.d.ts +1 -1
  85. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  86. package/dist/components/candle-chart/CandleChart.js +269 -119
  87. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  88. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  89. package/dist/components/candle-chart/client/CandleChartClient.js +21 -1
  90. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  91. package/dist/components/candle-chart/client/index.d.ts +1 -1
  92. package/dist/components/candle-chart/client/index.d.ts.map +1 -1
  93. package/dist/components/candle-chart/client/index.js.map +1 -1
  94. package/dist/components/candle-chart/index.d.ts +1 -1
  95. package/dist/components/candle-chart/index.d.ts.map +1 -1
  96. package/dist/components/candle-chart/index.js.map +1 -1
  97. package/dist/components/candle-chart/types.d.ts +129 -1
  98. package/dist/components/candle-chart/types.d.ts.map +1 -1
  99. package/dist/components/carousel/Carousel.d.ts +2 -2
  100. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  101. package/dist/components/carousel/Carousel.js +2 -1
  102. package/dist/components/carousel/Carousel.js.map +1 -1
  103. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  104. package/dist/components/carousel/CarouselMarkup.js +137 -22
  105. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  106. package/dist/components/carousel/client/CarouselClient.d.ts.map +1 -1
  107. package/dist/components/carousel/client/CarouselClient.js +3 -2
  108. package/dist/components/carousel/client/CarouselClient.js.map +1 -1
  109. package/dist/components/carousel/client/carousel-controls.d.ts.map +1 -1
  110. package/dist/components/carousel/client/carousel-controls.js +2 -2
  111. package/dist/components/carousel/client/carousel-controls.js.map +1 -1
  112. package/dist/components/carousel/fade/FadeCarouselClient.d.ts.map +1 -1
  113. package/dist/components/carousel/fade/FadeCarouselClient.js +3 -2
  114. package/dist/components/carousel/fade/FadeCarouselClient.js.map +1 -1
  115. package/dist/components/carousel/index.d.ts +1 -1
  116. package/dist/components/carousel/index.d.ts.map +1 -1
  117. package/dist/components/carousel/index.js.map +1 -1
  118. package/dist/components/carousel/types.d.ts +85 -2
  119. package/dist/components/carousel/types.d.ts.map +1 -1
  120. package/dist/components/checkbox/Checkbox.d.ts +6 -1
  121. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  122. package/dist/components/checkbox/Checkbox.js +6 -1
  123. package/dist/components/checkbox/Checkbox.js.map +1 -1
  124. package/dist/components/checkbox/index.d.ts +1 -1
  125. package/dist/components/checkbox/index.d.ts.map +1 -1
  126. package/dist/components/checkbox/index.js.map +1 -1
  127. package/dist/components/checkbox/types.d.ts +3 -0
  128. package/dist/components/checkbox/types.d.ts.map +1 -1
  129. package/dist/components/collapsible/Collapsible.d.ts +1 -1
  130. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  131. package/dist/components/collapsible/Collapsible.js +35 -4
  132. package/dist/components/collapsible/Collapsible.js.map +1 -1
  133. package/dist/components/collapsible/index.d.ts +1 -1
  134. package/dist/components/collapsible/index.d.ts.map +1 -1
  135. package/dist/components/collapsible/index.js.map +1 -1
  136. package/dist/components/collapsible/types.d.ts +25 -3
  137. package/dist/components/collapsible/types.d.ts.map +1 -1
  138. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -1
  139. package/dist/components/color-picker/ColorPicker.js +165 -49
  140. package/dist/components/color-picker/ColorPicker.js.map +1 -1
  141. package/dist/components/color-picker/index.d.ts +1 -1
  142. package/dist/components/color-picker/index.d.ts.map +1 -1
  143. package/dist/components/color-picker/index.js.map +1 -1
  144. package/dist/components/color-picker/types.d.ts +37 -0
  145. package/dist/components/color-picker/types.d.ts.map +1 -1
  146. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  147. package/dist/components/combobox/Combobox.js +44 -25
  148. package/dist/components/combobox/Combobox.js.map +1 -1
  149. package/dist/components/combobox/index.d.ts +1 -1
  150. package/dist/components/combobox/index.d.ts.map +1 -1
  151. package/dist/components/combobox/index.js.map +1 -1
  152. package/dist/components/combobox/types.d.ts +29 -4
  153. package/dist/components/combobox/types.d.ts.map +1 -1
  154. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  155. package/dist/components/context-menu/ContextMenu.js +48 -11
  156. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  157. package/dist/components/context-menu/index.d.ts +1 -1
  158. package/dist/components/context-menu/index.d.ts.map +1 -1
  159. package/dist/components/context-menu/index.js.map +1 -1
  160. package/dist/components/context-menu/types.d.ts +35 -9
  161. package/dist/components/context-menu/types.d.ts.map +1 -1
  162. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  163. package/dist/components/drawer/Drawer.js +5 -1
  164. package/dist/components/drawer/Drawer.js.map +1 -1
  165. package/dist/components/drawer/DrawerNative.d.ts +1 -1
  166. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  167. package/dist/components/drawer/DrawerNative.js +254 -44
  168. package/dist/components/drawer/DrawerNative.js.map +1 -1
  169. package/dist/components/drawer/index.d.ts +1 -1
  170. package/dist/components/drawer/index.d.ts.map +1 -1
  171. package/dist/components/drawer/index.js.map +1 -1
  172. package/dist/components/drawer/types.d.ts +31 -6
  173. package/dist/components/drawer/types.d.ts.map +1 -1
  174. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  175. package/dist/components/dropdown-menu/DropdownMenu.js +8 -2
  176. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  177. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  178. package/dist/components/dropdown-menu/DropdownMenuBar.js +47 -29
  179. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  180. package/dist/components/dropdown-menu/types.d.ts +7 -5
  181. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  182. package/dist/components/field/types.d.ts +4 -4
  183. package/dist/components/field/types.d.ts.map +1 -1
  184. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -1
  185. package/dist/components/form-error-summary/FormErrorSummary.js +35 -3
  186. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
  187. package/dist/components/form-error-summary/index.d.ts +1 -1
  188. package/dist/components/form-error-summary/index.d.ts.map +1 -1
  189. package/dist/components/form-error-summary/index.js.map +1 -1
  190. package/dist/components/form-error-summary/types.d.ts +20 -1
  191. package/dist/components/form-error-summary/types.d.ts.map +1 -1
  192. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  193. package/dist/components/internal/choice-family/ChoiceGroup.js +61 -11
  194. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  195. package/dist/components/internal/choice-family/types.d.ts +51 -1
  196. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  197. package/dist/components/internal/menu/types.d.ts +1 -0
  198. package/dist/components/internal/menu/types.d.ts.map +1 -1
  199. package/dist/components/internal/menu/use-menu-surface.d.ts.map +1 -1
  200. package/dist/components/internal/menu/use-menu-surface.js +2 -1
  201. package/dist/components/internal/menu/use-menu-surface.js.map +1 -1
  202. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  203. package/dist/components/internal/native-check-control/NativeCheckControl.js +35 -3
  204. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  205. package/dist/components/internal/native-check-control/types.d.ts +21 -1
  206. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  207. package/dist/components/line-chart/LineChart.d.ts +1 -1
  208. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  209. package/dist/components/line-chart/LineChart.js +260 -79
  210. package/dist/components/line-chart/LineChart.js.map +1 -1
  211. package/dist/components/line-chart/client/LineChartClient.d.ts.map +1 -1
  212. package/dist/components/line-chart/client/LineChartClient.js +21 -1
  213. package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
  214. package/dist/components/line-chart/client/index.d.ts +1 -1
  215. package/dist/components/line-chart/client/index.d.ts.map +1 -1
  216. package/dist/components/line-chart/client/index.js.map +1 -1
  217. package/dist/components/line-chart/index.d.ts +1 -1
  218. package/dist/components/line-chart/index.d.ts.map +1 -1
  219. package/dist/components/line-chart/index.js.map +1 -1
  220. package/dist/components/line-chart/types.d.ts +113 -1
  221. package/dist/components/line-chart/types.d.ts.map +1 -1
  222. package/dist/components/modal/Modal.d.ts +1 -1
  223. package/dist/components/modal/Modal.d.ts.map +1 -1
  224. package/dist/components/modal/Modal.js +118 -43
  225. package/dist/components/modal/Modal.js.map +1 -1
  226. package/dist/components/modal/index.d.ts +1 -1
  227. package/dist/components/modal/index.d.ts.map +1 -1
  228. package/dist/components/modal/index.js.map +1 -1
  229. package/dist/components/modal/types.d.ts +24 -2
  230. package/dist/components/modal/types.d.ts.map +1 -1
  231. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  232. package/dist/components/otp-input/OtpInput.js +4 -2
  233. package/dist/components/otp-input/OtpInput.js.map +1 -1
  234. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  235. package/dist/components/pagination/Pagination.js +172 -55
  236. package/dist/components/pagination/Pagination.js.map +1 -1
  237. package/dist/components/pagination/index.d.ts +1 -1
  238. package/dist/components/pagination/index.d.ts.map +1 -1
  239. package/dist/components/pagination/index.js.map +1 -1
  240. package/dist/components/pagination/types.d.ts +33 -1
  241. package/dist/components/pagination/types.d.ts.map +1 -1
  242. package/dist/components/radio-group/RadioGroup.d.ts +1 -1
  243. package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
  244. package/dist/components/radio-group/RadioGroup.js +5 -1
  245. package/dist/components/radio-group/RadioGroup.js.map +1 -1
  246. package/dist/components/radio-group/index.d.ts +1 -1
  247. package/dist/components/radio-group/index.d.ts.map +1 -1
  248. package/dist/components/radio-group/index.js.map +1 -1
  249. package/dist/components/radio-group/types.d.ts +4 -2
  250. package/dist/components/radio-group/types.d.ts.map +1 -1
  251. package/dist/components/rating/Rating.d.ts +1 -1
  252. package/dist/components/rating/Rating.d.ts.map +1 -1
  253. package/dist/components/rating/Rating.js +5 -1
  254. package/dist/components/rating/Rating.js.map +1 -1
  255. package/dist/components/rating/client/RatingClient.d.ts +1 -1
  256. package/dist/components/rating/client/RatingClient.d.ts.map +1 -1
  257. package/dist/components/rating/client/RatingClient.js +5 -1
  258. package/dist/components/rating/client/RatingClient.js.map +1 -1
  259. package/dist/components/rating/index.d.ts +1 -1
  260. package/dist/components/rating/index.d.ts.map +1 -1
  261. package/dist/components/rating/index.js.map +1 -1
  262. package/dist/components/rating/types.d.ts +12 -1
  263. package/dist/components/rating/types.d.ts.map +1 -1
  264. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  265. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  266. package/dist/components/segmented-control/SegmentedControl.js +5 -1
  267. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  268. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts +1 -1
  269. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  270. package/dist/components/segmented-control/client/SegmentedControlClient.js +5 -1
  271. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  272. package/dist/components/segmented-control/index.d.ts +1 -1
  273. package/dist/components/segmented-control/index.d.ts.map +1 -1
  274. package/dist/components/segmented-control/index.js.map +1 -1
  275. package/dist/components/segmented-control/types.d.ts +4 -4
  276. package/dist/components/segmented-control/types.d.ts.map +1 -1
  277. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  278. package/dist/components/slider/client/SliderClient.js +102 -20
  279. package/dist/components/slider/client/SliderClient.js.map +1 -1
  280. package/dist/components/slider/client/index.d.ts +1 -1
  281. package/dist/components/slider/client/index.d.ts.map +1 -1
  282. package/dist/components/slider/client/index.js.map +1 -1
  283. package/dist/components/slider/types.d.ts +46 -1
  284. package/dist/components/slider/types.d.ts.map +1 -1
  285. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  286. package/dist/components/spinner/Spinner.js +19 -3
  287. package/dist/components/spinner/Spinner.js.map +1 -1
  288. package/dist/components/spinner/index.d.ts +1 -1
  289. package/dist/components/spinner/index.d.ts.map +1 -1
  290. package/dist/components/spinner/index.js.map +1 -1
  291. package/dist/components/spinner/types.d.ts +11 -1
  292. package/dist/components/spinner/types.d.ts.map +1 -1
  293. package/dist/components/table/client/TableColumnHeader.d.ts +3 -3
  294. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
  295. package/dist/components/table/client/TableColumnHeader.js +24 -2
  296. package/dist/components/table/client/TableColumnHeader.js.map +1 -1
  297. package/dist/components/table/client/TableSelection.d.ts +3 -3
  298. package/dist/components/table/client/TableSelection.d.ts.map +1 -1
  299. package/dist/components/table/client/TableSelection.js +6 -4
  300. package/dist/components/table/client/TableSelection.js.map +1 -1
  301. package/dist/components/table/client.d.ts +1 -1
  302. package/dist/components/table/client.d.ts.map +1 -1
  303. package/dist/components/table/client.js.map +1 -1
  304. package/dist/components/table/types.d.ts +17 -0
  305. package/dist/components/table/types.d.ts.map +1 -1
  306. package/dist/components/tabs/Tabs.d.ts +1 -1
  307. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  308. package/dist/components/tabs/Tabs.js +45 -1
  309. package/dist/components/tabs/Tabs.js.map +1 -1
  310. package/dist/components/tabs/index.d.ts +1 -1
  311. package/dist/components/tabs/index.d.ts.map +1 -1
  312. package/dist/components/tabs/index.js.map +1 -1
  313. package/dist/components/tabs/types.d.ts +29 -3
  314. package/dist/components/tabs/types.d.ts.map +1 -1
  315. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  316. package/dist/components/tags-input/TagsInput.js +54 -9
  317. package/dist/components/tags-input/TagsInput.js.map +1 -1
  318. package/dist/components/tags-input/index.d.ts +1 -1
  319. package/dist/components/tags-input/index.d.ts.map +1 -1
  320. package/dist/components/tags-input/index.js.map +1 -1
  321. package/dist/components/tags-input/types.d.ts +27 -4
  322. package/dist/components/tags-input/types.d.ts.map +1 -1
  323. package/dist/components/toast/Toast.d.ts +1 -1
  324. package/dist/components/toast/Toast.d.ts.map +1 -1
  325. package/dist/components/toast/Toast.js +123 -35
  326. package/dist/components/toast/Toast.js.map +1 -1
  327. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  328. package/dist/components/toast/ToastElements.js +73 -12
  329. package/dist/components/toast/ToastElements.js.map +1 -1
  330. package/dist/components/toast/index.d.ts +1 -1
  331. package/dist/components/toast/index.d.ts.map +1 -1
  332. package/dist/components/toast/index.js.map +1 -1
  333. package/dist/components/toast/types.d.ts +49 -16
  334. package/dist/components/toast/types.d.ts.map +1 -1
  335. package/dist/components/toggle/Toggle.d.ts +1 -1
  336. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  337. package/dist/components/toggle/Toggle.js +63 -29
  338. package/dist/components/toggle/Toggle.js.map +1 -1
  339. package/dist/components/toggle/index.d.ts +1 -1
  340. package/dist/components/toggle/index.d.ts.map +1 -1
  341. package/dist/components/toggle/index.js.map +1 -1
  342. package/dist/components/toggle/types.d.ts +31 -3
  343. package/dist/components/toggle/types.d.ts.map +1 -1
  344. package/dist/components/toggle-group/ToggleGroup.d.ts +1 -1
  345. package/dist/components/toggle-group/ToggleGroup.d.ts.map +1 -1
  346. package/dist/components/toggle-group/ToggleGroup.js +5 -1
  347. package/dist/components/toggle-group/ToggleGroup.js.map +1 -1
  348. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts +1 -1
  349. package/dist/components/toggle-group/client/ToggleGroupClient.d.ts.map +1 -1
  350. package/dist/components/toggle-group/client/ToggleGroupClient.js +15 -1
  351. package/dist/components/toggle-group/client/ToggleGroupClient.js.map +1 -1
  352. package/dist/components/toggle-group/index.d.ts +1 -1
  353. package/dist/components/toggle-group/index.d.ts.map +1 -1
  354. package/dist/components/toggle-group/index.js.map +1 -1
  355. package/dist/components/toggle-group/types.d.ts +4 -4
  356. package/dist/components/toggle-group/types.d.ts.map +1 -1
  357. package/dist/components/toolbar/Toolbar.d.ts +3 -12
  358. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  359. package/dist/components/toolbar/Toolbar.js +22 -2
  360. package/dist/components/toolbar/Toolbar.js.map +1 -1
  361. package/dist/components/toolbar/types.d.ts +5 -5
  362. package/dist/components/toolbar/types.d.ts.map +1 -1
  363. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  364. package/dist/components/virtual-scroll/VirtualScroll.js +53 -20
  365. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  366. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts +3 -14
  367. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts.map +1 -1
  368. package/dist/components/virtual-scroll/VirtualScrollRowShell.js +6 -3
  369. package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
  370. package/dist/components/virtual-scroll/index.d.ts +1 -1
  371. package/dist/components/virtual-scroll/index.d.ts.map +1 -1
  372. package/dist/components/virtual-scroll/index.js.map +1 -1
  373. package/dist/components/virtual-scroll/types.d.ts +35 -2
  374. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  375. package/dist/components/virtual-scroll/types.js.map +1 -1
  376. package/dist/core/slot-props.d.ts +19 -0
  377. package/dist/core/slot-props.d.ts.map +1 -0
  378. package/dist/core/slot-props.js +59 -0
  379. package/dist/core/slot-props.js.map +1 -0
  380. package/dist/core/use-popover.d.ts +2 -1
  381. package/dist/core/use-popover.d.ts.map +1 -1
  382. package/dist/core/use-popover.js +3 -1
  383. package/dist/core/use-popover.js.map +1 -1
  384. package/dist/elements/choice/Choice.d.ts.map +1 -1
  385. package/dist/elements/choice/Choice.js +47 -7
  386. package/dist/elements/choice/Choice.js.map +1 -1
  387. package/dist/elements/choice/index.d.ts +1 -1
  388. package/dist/elements/choice/index.d.ts.map +1 -1
  389. package/dist/elements/choice/index.js.map +1 -1
  390. package/dist/elements/choice/types.d.ts +25 -10
  391. package/dist/elements/choice/types.d.ts.map +1 -1
  392. package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -2
  393. package/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -1
  394. package/dist/styles/index.css +1 -1
  395. package/dist/styles/tailwind.css +17 -16
  396. package/package.json +1 -1
  397. package/skills/uiify/references/elements/accordion.md +1 -1
  398. package/skills/uiify/references/elements/breadcrumb.md +1 -0
  399. package/skills/uiify/references/elements/checkbox.md +1 -1
  400. package/skills/uiify/references/elements/color-picker.md +1 -1
  401. package/skills/uiify/references/elements/combobox.md +1 -1
  402. package/skills/uiify/references/elements/context-menu.md +1 -1
  403. package/skills/uiify/references/elements/dropdown-menu.md +1 -1
  404. package/skills/uiify/references/elements/form-error-summary.md +5 -0
  405. package/skills/uiify/references/elements/pagination.md +1 -1
  406. package/skills/uiify/references/elements/radio-group.md +1 -0
  407. package/skills/uiify/references/elements/rating.md +1 -1
  408. package/skills/uiify/references/elements/segmented-control.md +1 -0
  409. package/skills/uiify/references/elements/spinner.md +1 -1
  410. package/skills/uiify/references/elements/table.md +1 -1
  411. package/skills/uiify/references/elements/tabs.md +1 -1
  412. package/skills/uiify/references/elements/tags-input.md +1 -1
  413. package/skills/uiify/references/elements/toast.md +1 -0
  414. package/skills/uiify/references/elements/toggle-group.md +1 -0
@@ -1,4 +1,4 @@
1
- import type { ElementType, HTMLAttributes } from "react";
1
+ import type { ComponentPropsWithRef, ElementType } from "react";
2
2
  import type { RenderableProps } from "@gunkin/uiify/core/render";
3
3
  export interface FieldRootOwnProps {
4
4
  /** Stable id for deterministic label/control/error wiring. Required. */
@@ -18,7 +18,7 @@ export interface FieldLabelOwnProps extends FieldPartOwnProps {
18
18
  readonly disabled?: boolean;
19
19
  readonly required?: boolean;
20
20
  }
21
- export type FieldLabelProps = FieldLabelOwnProps & Omit<HTMLAttributes<HTMLLabelElement>, "htmlFor" | keyof FieldLabelOwnProps>;
21
+ export type FieldLabelProps = FieldLabelOwnProps & Omit<ComponentPropsWithRef<"label">, "htmlFor" | keyof FieldLabelOwnProps>;
22
22
  export interface FieldControlOwnProps extends FieldPartOwnProps {
23
23
  readonly disabled?: boolean;
24
24
  readonly invalid?: boolean;
@@ -32,9 +32,9 @@ export type FieldControlProps<TAs extends ElementType = "div"> = RenderableProps
32
32
  export interface FieldDescriptionOwnProps extends FieldPartOwnProps {
33
33
  readonly disabled?: boolean;
34
34
  }
35
- export type FieldDescriptionProps = FieldDescriptionOwnProps & Omit<HTMLAttributes<HTMLElement>, keyof FieldDescriptionOwnProps>;
35
+ export type FieldDescriptionProps = FieldDescriptionOwnProps & Omit<ComponentPropsWithRef<"p">, keyof FieldDescriptionOwnProps>;
36
36
  export interface FieldErrorOwnProps extends FieldPartOwnProps {
37
37
  readonly invalid?: boolean;
38
38
  }
39
- export type FieldErrorProps = FieldErrorOwnProps & Omit<HTMLAttributes<HTMLElement>, keyof FieldErrorOwnProps>;
39
+ export type FieldErrorProps = FieldErrorOwnProps & Omit<ComponentPropsWithRef<"p">, keyof FieldErrorOwnProps>;
40
40
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,CACZ,CAAC;AAEF;0EAC0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,SAAS,GAAG,MAAM,kBAAkB,CAAC,CAAC;AAE/E,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC9E,GAAG,EACH,oBAAoB,EACpB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,EAC1D,WAAW,CACZ,CAAC;AAEF,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAC1D,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,wBAAwB,CAAC,CAAC;AAEpE,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,CACZ,CAAC;AAEF;0EAC0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,kBAAkB,CAAC,CAAC;AAE7E,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC9E,GAAG,EACH,oBAAoB,EACpB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,EAC1D,WAAW,CACZ,CAAC;AAEF,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAC1D,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,wBAAwB,CAAC,CAAC;AAEnE,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,kBAAkB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormErrorSummary.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/FormErrorSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,SAAS,EAClE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,GAAG,IAAI,CA6BrB;yBA/Be,gBAAgB"}
1
+ {"version":3,"file":"FormErrorSummary.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/FormErrorSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,SAAS,EAClE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,GAAG,IAAI,CA8CrB;yBAhDe,gBAAgB"}
@@ -1,15 +1,47 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { createElement } from "react";
2
3
  import { useRenderElement } from "@gunkin/uiify/core/render";
4
+ import { omitProps, resolveRepeatedSlotProps } from "../../core/slot-props.js";
3
5
  function FormErrorSummary(props) {
4
- const { as, render, title, errors, ...consumerProps } = props;
6
+ const { as, render, title, errors, slotProps, ...consumerProps } = props;
5
7
  const element = useRenderElement({
6
8
  as,
7
9
  defaultTag: "section",
8
10
  props: {
9
11
  ...consumerProps,
10
12
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
11
- /* @__PURE__ */ jsx("h2", { "data-part": "title", children: title }),
12
- /* @__PURE__ */ jsx("ul", { "data-part": "list", children: errors.map((error, index) => /* @__PURE__ */ jsx("li", { "data-part": "item", children: /* @__PURE__ */ jsx("a", { "data-part": "link", href: error.href, children: error.message }) }, `${error.href}-${index}`)) })
13
+ /* @__PURE__ */ jsx(
14
+ "h2",
15
+ {
16
+ ...omitProps(slotProps?.title, ["data-part", "children", "dangerouslySetInnerHTML"]),
17
+ "data-part": "title",
18
+ children: title
19
+ }
20
+ ),
21
+ /* @__PURE__ */ jsx(
22
+ "ul",
23
+ {
24
+ ...omitProps(slotProps?.list, ["data-part", "children", "dangerouslySetInnerHTML"]),
25
+ "data-part": "list",
26
+ children: errors.map((error, index) => /* @__PURE__ */ createElement(
27
+ "li",
28
+ {
29
+ ...resolveRepeatedSlotProps(slotProps?.item, error.href, ["data-part"]),
30
+ "data-part": "item",
31
+ key: `${error.href}-${index}`
32
+ },
33
+ /* @__PURE__ */ jsx(
34
+ "a",
35
+ {
36
+ ...resolveRepeatedSlotProps(slotProps?.link, error.href, ["data-part", "href"]),
37
+ "data-part": "link",
38
+ href: error.href,
39
+ children: error.message
40
+ }
41
+ )
42
+ ))
43
+ }
44
+ )
13
45
  ] }),
14
46
  "data-uiify-form-error-summary": ""
15
47
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/form-error-summary/FormErrorSummary.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { FormErrorSummaryProps } from \"./types.js\";\n\nexport function FormErrorSummary<TAs extends ElementType = \"section\">(\n props: FormErrorSummaryProps<TAs>,\n): ReactElement | null {\n const { as, render, title, errors, ...consumerProps } = props as FormErrorSummaryProps<\"section\">;\n\n const element = useRenderElement({\n as,\n defaultTag: \"section\",\n props: {\n ...consumerProps,\n children: (\n <>\n <h2 data-part=\"title\">{title}</h2>\n <ul data-part=\"list\">\n {errors.map((error, index) => (\n <li data-part=\"item\" key={`${error.href}-${index}`}>\n <a data-part=\"link\" href={error.href}>\n {error.message}\n </a>\n </li>\n ))}\n </ul>\n </>\n ),\n \"data-uiify-form-error-summary\": \"\",\n },\n render,\n state: {},\n });\n\n return errors.length === 0 ? null : element;\n}\n\nFormErrorSummary.displayName = \"FormErrorSummary\";\n"],"mappings":"AAeQ,mBACE,KADF;AAdR,SAAS,wBAAwB;AAG1B,SAAS,iBACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,OAAO,QAAQ,GAAG,cAAc,IAAI;AAExD,QAAM,UAAU,iBAAiB;AAAA,IAC/B;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UACE,iCACE;AAAA,4BAAC,QAAG,aAAU,SAAS,iBAAM;AAAA,QAC7B,oBAAC,QAAG,aAAU,QACX,iBAAO,IAAI,CAAC,OAAO,UAClB,oBAAC,QAAG,aAAU,QACZ,8BAAC,OAAE,aAAU,QAAO,MAAM,MAAM,MAC7B,gBAAM,SACT,KAHwB,GAAG,MAAM,IAAI,IAAI,KAAK,EAIhD,CACD,GACH;AAAA,SACF;AAAA,MAEF,iCAAiC;AAAA,IACnC;AAAA,IACA;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AAED,SAAO,OAAO,WAAW,IAAI,OAAO;AACtC;AAEA,iBAAiB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/form-error-summary/FormErrorSummary.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { omitProps, resolveRepeatedSlotProps } from \"../../core/slot-props.js\";\nimport type { FormErrorSummaryProps } from \"./types.js\";\n\nexport function FormErrorSummary<TAs extends ElementType = \"section\">(\n props: FormErrorSummaryProps<TAs>,\n): ReactElement | null {\n const { as, render, title, errors, slotProps, ...consumerProps } =\n props as FormErrorSummaryProps<\"section\">;\n\n const element = useRenderElement({\n as,\n defaultTag: \"section\",\n props: {\n ...consumerProps,\n children: (\n <>\n <h2\n {...omitProps(slotProps?.title, [\"data-part\", \"children\", \"dangerouslySetInnerHTML\"])}\n data-part=\"title\"\n >\n {title}\n </h2>\n <ul\n {...omitProps(slotProps?.list, [\"data-part\", \"children\", \"dangerouslySetInnerHTML\"])}\n data-part=\"list\"\n >\n {errors.map((error, index) => (\n <li\n {...resolveRepeatedSlotProps(slotProps?.item, error.href, [\"data-part\"])}\n data-part=\"item\"\n key={`${error.href}-${index}`}\n >\n <a\n {...resolveRepeatedSlotProps(slotProps?.link, error.href, [\"data-part\", \"href\"])}\n data-part=\"link\"\n href={error.href}\n >\n {error.message}\n </a>\n </li>\n ))}\n </ul>\n </>\n ),\n \"data-uiify-form-error-summary\": \"\",\n },\n render,\n state: {},\n });\n\n return errors.length === 0 ? null : element;\n}\n\nFormErrorSummary.displayName = \"FormErrorSummary\";\n"],"mappings":"AAiBQ,mBACE,KADF;AAYM;AA5Bd,SAAS,wBAAwB;AACjC,SAAS,WAAW,gCAAgC;AAG7C,SAAS,iBACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,OAAO,QAAQ,WAAW,GAAG,cAAc,IAC7D;AAEF,QAAM,UAAU,iBAAiB;AAAA,IAC/B;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UACE,iCACE;AAAA;AAAA,UAAC;AAAA;AAAA,YACE,GAAG,UAAU,WAAW,OAAO,CAAC,aAAa,YAAY,yBAAyB,CAAC;AAAA,YACpF,aAAU;AAAA,YAET;AAAA;AAAA,QACH;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACE,GAAG,UAAU,WAAW,MAAM,CAAC,aAAa,YAAY,yBAAyB,CAAC;AAAA,YACnF,aAAU;AAAA,YAET,iBAAO,IAAI,CAAC,OAAO,UAClB;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG,yBAAyB,WAAW,MAAM,MAAM,MAAM,CAAC,WAAW,CAAC;AAAA,gBACvE,aAAU;AAAA,gBACV,KAAK,GAAG,MAAM,IAAI,IAAI,KAAK;AAAA;AAAA,cAE3B;AAAA,gBAAC;AAAA;AAAA,kBACE,GAAG,yBAAyB,WAAW,MAAM,MAAM,MAAM,CAAC,aAAa,MAAM,CAAC;AAAA,kBAC/E,aAAU;AAAA,kBACV,MAAM,MAAM;AAAA,kBAEX,gBAAM;AAAA;AAAA,cACT;AAAA,YACF,CACD;AAAA;AAAA,QACH;AAAA,SACF;AAAA,MAEF,iCAAiC;AAAA,IACnC;AAAA,IACA;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AAED,SAAO,OAAO,WAAW,IAAI,OAAO;AACtC;AAEA,iBAAiB,cAAc;","names":[]}
@@ -1,3 +1,3 @@
1
1
  export { FormErrorSummary } from "./FormErrorSummary.js";
2
- export type { FormErrorSummaryError, FormErrorSummaryOwnProps, FormErrorSummaryProps, } from "./types.js";
2
+ export type { FormErrorSummaryError, FormErrorSummaryOwnProps, FormErrorSummaryProps, FormErrorSummarySlotProps, } from "./types.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EACV,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EACV,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/form-error-summary/index.ts"],"sourcesContent":["export { FormErrorSummary } from \"./FormErrorSummary.js\";\nexport type {\n FormErrorSummaryError,\n FormErrorSummaryOwnProps,\n FormErrorSummaryProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,wBAAwB;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/form-error-summary/index.ts"],"sourcesContent":["export { FormErrorSummary } from \"./FormErrorSummary.js\";\nexport type {\n FormErrorSummaryError,\n FormErrorSummaryOwnProps,\n FormErrorSummaryProps,\n FormErrorSummarySlotProps,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,wBAAwB;","names":[]}
@@ -1,12 +1,31 @@
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, RepeatedSlotProps } from "../../core/slot-props.js";
3
4
  export interface FormErrorSummaryError {
4
5
  readonly href: string;
5
6
  readonly message: ReactNode;
6
7
  }
8
+ type FormErrorSummaryPartProps<TTag extends ElementType> = Omit<ComponentPropsWithRef<TTag>, "children" | "dangerouslySetInnerHTML" | "data-part">;
9
+ type FormErrorSummaryPartSlotProps<TTag extends ElementType> = FormErrorSummaryPartProps<TTag> & ConsumerDataAttributes & {
10
+ readonly "data-part"?: never;
11
+ };
12
+ type FormErrorSummaryRepeatedSlotProps<TTag extends ElementType, TProtected extends object = object> = RepeatedSlotProps<FormErrorSummaryPartProps<TTag>, TProtected & {
13
+ readonly "data-part"?: never;
14
+ }>;
15
+ export interface FormErrorSummarySlotProps {
16
+ readonly title?: FormErrorSummaryPartSlotProps<"h2">;
17
+ readonly list?: FormErrorSummaryPartSlotProps<"ul">;
18
+ /** Repeated error props may target an error by its stable href value. */
19
+ readonly item?: FormErrorSummaryRepeatedSlotProps<"li">;
20
+ readonly link?: FormErrorSummaryRepeatedSlotProps<"a", {
21
+ readonly href?: never;
22
+ }>;
23
+ }
7
24
  export interface FormErrorSummaryOwnProps {
8
25
  readonly title: ReactNode;
9
26
  readonly errors: readonly FormErrorSummaryError[];
27
+ readonly slotProps?: FormErrorSummarySlotProps;
10
28
  }
11
29
  export type FormErrorSummaryProps<TAs extends ElementType = "section"> = RenderableProps<TAs, FormErrorSummaryOwnProps, Record<string, never>, HTMLElement>;
30
+ export {};
12
31
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACnD;AAED,MAAM,MAAM,qBAAqB,CAAC,GAAG,SAAS,WAAW,GAAG,SAAS,IAAI,eAAe,CACtF,GAAG,EACH,wBAAwB,EACxB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/form-error-summary/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE1F,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B;AAED,KAAK,yBAAyB,CAAC,IAAI,SAAS,WAAW,IAAI,IAAI,CAC7D,qBAAqB,CAAC,IAAI,CAAC,EAC3B,UAAU,GAAG,yBAAyB,GAAG,WAAW,CACrD,CAAC;AAEF,KAAK,6BAA6B,CAAC,IAAI,SAAS,WAAW,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAC5F,sBAAsB,GAAG;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;CAC9B,CAAC;AAEJ,KAAK,iCAAiC,CACpC,IAAI,SAAS,WAAW,EACxB,UAAU,SAAS,MAAM,GAAG,MAAM,IAChC,iBAAiB,CACnB,yBAAyB,CAAC,IAAI,CAAC,EAC/B,UAAU,GAAG;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAC9C,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACpD,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,iCAAiC,CAAC,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,iCAAiC,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED,MAAM,MAAM,qBAAqB,CAAC,GAAG,SAAS,WAAW,GAAG,SAAS,IAAI,eAAe,CACtF,GAAG,EACH,wBAAwB,EACxB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChoiceGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,UAAU,EAClD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC7B,YAAY,CA6Dd;yBA/De,WAAW"}
1
+ {"version":3,"file":"ChoiceGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAQ1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,UAAU,EAClD,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAC7B,YAAY,CAoHd;yBAtHe,WAAW"}
@@ -1,5 +1,6 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { createElement } from "react";
3
+ import { mergeRepeatedSlotProps, resolveRepeatedSlotProps } from "../../../core/slot-props.js";
3
4
  import {
4
5
  ChoiceGroup as ElementChoiceGroup,
5
6
  ChoiceItem as ElementChoiceItem
@@ -16,55 +17,104 @@ function ChoiceGroup(props) {
16
17
  name,
17
18
  orientation,
18
19
  className,
20
+ rootProps,
19
21
  itemPart = "item",
20
22
  labelPart = false,
21
23
  rootAttributes,
22
24
  labelAttributes,
23
25
  itemInputClassName,
26
+ itemProps,
27
+ itemSlotProps,
28
+ slotProps,
24
29
  onItemChange,
25
30
  renderPanel,
26
31
  renderLabel,
27
- append
32
+ append,
33
+ appendProps
28
34
  } = props;
29
35
  const groupName = name ?? getChoiceGroupName(id, kind);
30
36
  return /* @__PURE__ */ jsxs(
31
37
  ElementChoiceGroup,
32
38
  {
33
- ...{ [`data-uiify-${namespace}`]: "" },
39
+ ...rootProps,
34
40
  ...rootAttributes,
35
41
  className,
36
42
  id,
37
43
  kind,
38
44
  orientation,
45
+ ...{ [`data-uiify-${namespace}`]: "" },
39
46
  children: [
40
47
  items.map((item) => {
41
48
  const panel = renderPanel ? renderPanel(item) : void 0;
49
+ const itemSlots = itemSlotProps?.(item);
50
+ const inputSlotProps = mergeRepeatedSlotProps(
51
+ resolveRepeatedSlotProps(slotProps?.input, item.value, ["data-part", "data-uiify-radio"]),
52
+ itemSlots?.input
53
+ );
54
+ const controlClassName = [inputSlotProps.className, itemInputClassName?.(item)].filter(Boolean).join(" ");
55
+ const itemPropsForValue = mergeRepeatedSlotProps(
56
+ resolveRepeatedSlotProps(slotProps?.item, item.value, [
57
+ "checked",
58
+ "defaultChecked",
59
+ "disabled",
60
+ "groupId",
61
+ "kind",
62
+ "label",
63
+ "labelPart",
64
+ "name",
65
+ "onValueChange",
66
+ "panel",
67
+ "part",
68
+ "slotProps",
69
+ "value"
70
+ ]),
71
+ itemProps?.(item)
72
+ );
73
+ const labelPropsForValue = mergeRepeatedSlotProps(
74
+ resolveRepeatedSlotProps(slotProps?.label, item.value),
75
+ itemSlots?.label
76
+ );
77
+ const panelPropsForValue = mergeRepeatedSlotProps(
78
+ resolveRepeatedSlotProps(slotProps?.panel, item.value),
79
+ itemSlots?.panel
80
+ );
42
81
  return /* @__PURE__ */ createElement(
43
82
  ElementChoiceItem,
44
83
  {
84
+ ...itemPropsForValue,
45
85
  ...panel === void 0 ? {} : { panel },
46
86
  ...isControlled ? { checked: isChecked(item) } : { defaultChecked: isChecked(item) },
47
87
  disabled: item.disabled ?? false,
48
88
  groupId: id,
49
- inputProps: {
50
- className: itemInputClassName?.(item),
51
- "data-part": "control",
52
- ...kind === "single" ? { "data-uiify-radio": "" } : {}
53
- },
54
89
  key: item.value,
55
90
  kind,
56
91
  label: renderLabel ? renderLabel(item) : item.label,
57
- labelPart: false,
58
- labelProps: { ...labelAttributes, "data-part": labelPart ? "trigger" : "label" },
92
+ labelPart: labelPart ? "trigger" : "label",
93
+ slotProps: {
94
+ ...itemSlots,
95
+ input: {
96
+ ...inputSlotProps,
97
+ ...controlClassName ? { className: controlClassName } : {},
98
+ "data-part": "control",
99
+ ...kind === "single" ? { "data-uiify-radio": "" } : {}
100
+ },
101
+ label: {
102
+ ...labelPropsForValue,
103
+ ...labelAttributes
104
+ },
105
+ panel: {
106
+ ...panelPropsForValue,
107
+ "data-part": "panel"
108
+ }
109
+ },
59
110
  name: groupName,
60
111
  ...onItemChange ? { onValueChange: () => onItemChange(item) } : {},
61
- panelProps: { "data-part": "panel" },
62
112
  part: itemPart,
63
113
  value: item.value
64
114
  }
65
115
  );
66
116
  }),
67
- append ? /* @__PURE__ */ jsx("div", { "data-part": "append", children: append }) : null
117
+ append ? /* @__PURE__ */ jsx("div", { ...appendProps, "data-part": "append", children: append }) : null
68
118
  ]
69
119
  }
70
120
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport {\n ChoiceGroup as ElementChoiceGroup,\n ChoiceItem as ElementChoiceItem,\n} from \"../../../elements/choice/index.js\";\nimport { getChoiceGroupName } from \"./ids.js\";\nimport type { ChoiceGroupProps, ChoiceItem } from \"./types.js\";\n\n/**\n * Built on `@gunkin/uiify/elements/choice`: this component\n * stays the ergonomic, items-array API six components share, now implemented as a thin map\n * from `items` onto `Choice.Item` with canonical `data-part` anatomy.\n */\nexport function ChoiceGroup<TItem extends ChoiceItem>(\n props: ChoiceGroupProps<TItem>,\n): ReactElement {\n const {\n id,\n items,\n namespace,\n kind,\n isChecked,\n isControlled = false,\n name,\n orientation,\n className,\n itemPart = \"item\",\n labelPart = false,\n rootAttributes,\n labelAttributes,\n itemInputClassName,\n onItemChange,\n renderPanel,\n renderLabel,\n append,\n } = props;\n const groupName = name ?? getChoiceGroupName(id, kind);\n\n return (\n <ElementChoiceGroup\n {...{ [`data-uiify-${namespace}`]: \"\" }}\n {...rootAttributes}\n className={className}\n id={id}\n kind={kind}\n orientation={orientation}\n >\n {items.map((item) => {\n const panel = renderPanel ? renderPanel(item) : undefined;\n return (\n <ElementChoiceItem\n {...(panel === undefined ? {} : { panel })}\n {...(isControlled ? { checked: isChecked(item) } : { defaultChecked: isChecked(item) })}\n disabled={item.disabled ?? false}\n groupId={id}\n inputProps={{\n className: itemInputClassName?.(item),\n \"data-part\": \"control\",\n ...(kind === \"single\" ? { \"data-uiify-radio\": \"\" } : {}),\n }}\n key={item.value}\n kind={kind}\n label={renderLabel ? renderLabel(item) : item.label}\n labelPart={false}\n labelProps={{ ...labelAttributes, \"data-part\": labelPart ? \"trigger\" : \"label\" }}\n name={groupName}\n {...(onItemChange ? { onValueChange: () => onItemChange(item) } : {})}\n panelProps={{ \"data-part\": \"panel\" }}\n part={itemPart}\n value={item.value}\n />\n );\n })}\n {append ? <div data-part=\"append\">{append}</div> : null}\n </ElementChoiceGroup>\n );\n}\nChoiceGroup.displayName = \"ChoiceGroup\";\n"],"mappings":"AAuCI,SAkCY,KAlCZ;AAWM;AAjDV;AAAA,EACE,eAAe;AAAA,EACf,cAAc;AAAA,OACT;AACP,SAAS,0BAA0B;AAQ5B,SAAS,YACd,OACc;AACd,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,YAAY,QAAQ,mBAAmB,IAAI,IAAI;AAErD,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG,EAAE,CAAC,cAAc,SAAS,EAAE,GAAG,GAAG;AAAA,MACrC,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA,cAAM,IAAI,CAAC,SAAS;AACnB,gBAAM,QAAQ,cAAc,YAAY,IAAI,IAAI;AAChD,iBACE;AAAA,YAAC;AAAA;AAAA,cACE,GAAI,UAAU,SAAY,CAAC,IAAI,EAAE,MAAM;AAAA,cACvC,GAAI,eAAe,EAAE,SAAS,UAAU,IAAI,EAAE,IAAI,EAAE,gBAAgB,UAAU,IAAI,EAAE;AAAA,cACrF,UAAU,KAAK,YAAY;AAAA,cAC3B,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,WAAW,qBAAqB,IAAI;AAAA,gBACpC,aAAa;AAAA,gBACb,GAAI,SAAS,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;AAAA,cACxD;AAAA,cACA,KAAK,KAAK;AAAA,cACV;AAAA,cACA,OAAO,cAAc,YAAY,IAAI,IAAI,KAAK;AAAA,cAC9C,WAAW;AAAA,cACX,YAAY,EAAE,GAAG,iBAAiB,aAAa,YAAY,YAAY,QAAQ;AAAA,cAC/E,MAAM;AAAA,cACL,GAAI,eAAe,EAAE,eAAe,MAAM,aAAa,IAAI,EAAE,IAAI,CAAC;AAAA,cACnE,YAAY,EAAE,aAAa,QAAQ;AAAA,cACnC,MAAM;AAAA,cACN,OAAO,KAAK;AAAA;AAAA,UACd;AAAA,QAEJ,CAAC;AAAA,QACA,SAAS,oBAAC,SAAI,aAAU,UAAU,kBAAO,IAAS;AAAA;AAAA;AAAA,EACrD;AAEJ;AACA,YAAY,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/internal/choice-family/ChoiceGroup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { mergeRepeatedSlotProps, resolveRepeatedSlotProps } from \"../../../core/slot-props.js\";\nimport {\n ChoiceGroup as ElementChoiceGroup,\n ChoiceItem as ElementChoiceItem,\n} from \"../../../elements/choice/index.js\";\nimport { getChoiceGroupName } from \"./ids.js\";\nimport type { ChoiceItemSlotProps } from \"../../../elements/choice/types.js\";\nimport type { ChoiceGroupProps, ChoiceItem } from \"./types.js\";\n\n/**\n * Built on `@gunkin/uiify/elements/choice`: this component\n * stays the ergonomic, items-array API six components share, now implemented as a thin map\n * from `items` onto `Choice.Item` with canonical `data-part` anatomy.\n */\nexport function ChoiceGroup<TItem extends ChoiceItem>(\n props: ChoiceGroupProps<TItem>,\n): ReactElement {\n const {\n id,\n items,\n namespace,\n kind,\n isChecked,\n isControlled = false,\n name,\n orientation,\n className,\n rootProps,\n itemPart = \"item\",\n labelPart = false,\n rootAttributes,\n labelAttributes,\n itemInputClassName,\n itemProps,\n itemSlotProps,\n slotProps,\n onItemChange,\n renderPanel,\n renderLabel,\n append,\n appendProps,\n } = props;\n const groupName = name ?? getChoiceGroupName(id, kind);\n\n return (\n <ElementChoiceGroup\n {...rootProps}\n {...rootAttributes}\n className={className}\n id={id}\n kind={kind}\n orientation={orientation}\n {...{ [`data-uiify-${namespace}`]: \"\" }}\n >\n {items.map((item) => {\n const panel = renderPanel ? renderPanel(item) : undefined;\n const itemSlots = itemSlotProps?.(item);\n const inputSlotProps = mergeRepeatedSlotProps(\n resolveRepeatedSlotProps(slotProps?.input, item.value, [\"data-part\", \"data-uiify-radio\"]),\n itemSlots?.input,\n );\n const controlClassName = [inputSlotProps.className, itemInputClassName?.(item)]\n .filter(Boolean)\n .join(\" \");\n const itemPropsForValue = mergeRepeatedSlotProps(\n resolveRepeatedSlotProps(slotProps?.item, item.value, [\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"groupId\",\n \"kind\",\n \"label\",\n \"labelPart\",\n \"name\",\n \"onValueChange\",\n \"panel\",\n \"part\",\n \"slotProps\",\n \"value\",\n ]),\n itemProps?.(item),\n );\n const labelPropsForValue = mergeRepeatedSlotProps(\n resolveRepeatedSlotProps(slotProps?.label, item.value),\n itemSlots?.label,\n );\n const panelPropsForValue = mergeRepeatedSlotProps(\n resolveRepeatedSlotProps(slotProps?.panel, item.value),\n itemSlots?.panel,\n );\n return (\n <ElementChoiceItem\n {...itemPropsForValue}\n {...(panel === undefined ? {} : { panel })}\n {...(isControlled ? { checked: isChecked(item) } : { defaultChecked: isChecked(item) })}\n disabled={item.disabled ?? false}\n groupId={id}\n key={item.value}\n kind={kind}\n label={renderLabel ? renderLabel(item) : item.label}\n labelPart={labelPart ? \"trigger\" : \"label\"}\n slotProps={{\n ...itemSlots,\n input: {\n ...inputSlotProps,\n ...(controlClassName ? { className: controlClassName } : {}),\n \"data-part\": \"control\",\n ...(kind === \"single\" ? { \"data-uiify-radio\": \"\" } : {}),\n } as unknown as NonNullable<ChoiceItemSlotProps[\"input\"]>,\n label: {\n ...labelPropsForValue,\n ...labelAttributes,\n } as NonNullable<ChoiceItemSlotProps[\"label\"]>,\n panel: {\n ...panelPropsForValue,\n \"data-part\": \"panel\",\n } as NonNullable<ChoiceItemSlotProps[\"panel\"]>,\n }}\n name={groupName}\n {...(onItemChange ? { onValueChange: () => onItemChange(item) } : {})}\n part={itemPart}\n value={item.value}\n />\n );\n })}\n {append ? (\n <div {...appendProps} data-part=\"append\">\n {append}\n </div>\n ) : null}\n </ElementChoiceGroup>\n );\n}\nChoiceGroup.displayName = \"ChoiceGroup\";\n"],"mappings":"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","names":[]}
@@ -1,4 +1,42 @@
1
- import type { ReactNode } from "react";
1
+ import type { ComponentPropsWithRef, ReactNode } from "react";
2
+ import type { ConsumerDataAttributes } from "../../../core/slot-props.js";
3
+ import type { ChoiceInputSlotProps, ChoiceItemOwnProps, ChoiceItemSlotProps, ChoiceLabelSlotProps, ChoicePanelSlotProps } from "../../../elements/choice/types.js";
4
+ type ChoiceItemWrapperSlotProps = Omit<ComponentPropsWithRef<"div">, keyof ChoiceItemOwnProps | "children" | "dangerouslySetInnerHTML" | "data-part" | "data-uiify-choice"> & {
5
+ readonly "data-part"?: never;
6
+ readonly "data-uiify-choice"?: never;
7
+ } & ConsumerDataAttributes;
8
+ type ChoiceInputProtectedProps = {
9
+ readonly "aria-labelledby"?: never;
10
+ readonly checked?: never;
11
+ readonly defaultChecked?: never;
12
+ readonly disabled?: never;
13
+ readonly id?: never;
14
+ readonly name?: never;
15
+ readonly type?: never;
16
+ readonly value?: never;
17
+ readonly "data-part"?: never;
18
+ readonly "data-uiify-choice"?: never;
19
+ readonly "data-uiify-radio"?: never;
20
+ };
21
+ type ChoiceLabelProtectedProps = {
22
+ readonly htmlFor?: never;
23
+ readonly id?: never;
24
+ readonly "data-part"?: never;
25
+ };
26
+ type ChoicePanelProtectedProps = {
27
+ readonly id?: never;
28
+ readonly "data-part"?: never;
29
+ };
30
+ type ChoiceRepeatedSlotProps<TProps extends object, TProtected extends object> = TProps & TProtected & {
31
+ readonly byItemValue?: Readonly<Record<string, TProps & TProtected>>;
32
+ };
33
+ export interface ChoiceGroupSlotProps {
34
+ readonly item?: ChoiceRepeatedSlotProps<ChoiceItemWrapperSlotProps, Pick<ChoiceItemWrapperSlotProps, "data-part" | "data-uiify-choice">>;
35
+ readonly input?: ChoiceRepeatedSlotProps<ChoiceInputSlotProps, ChoiceInputProtectedProps>;
36
+ readonly label?: ChoiceRepeatedSlotProps<ChoiceLabelSlotProps, ChoiceLabelProtectedProps>;
37
+ readonly panel?: ChoiceRepeatedSlotProps<ChoicePanelSlotProps, ChoicePanelProtectedProps>;
38
+ }
39
+ export type ChoiceOptionSlotProps = Omit<ChoiceGroupSlotProps, "panel">;
2
40
  export interface ChoiceItem {
3
41
  readonly value: string;
4
42
  readonly label: ReactNode;
@@ -8,6 +46,7 @@ export interface ChoicePanelItem extends ChoiceItem {
8
46
  readonly panel?: ReactNode;
9
47
  }
10
48
  export type ChoiceOrientation = "horizontal" | "vertical";
49
+ export type ChoiceGroupRootProps = Omit<ComponentPropsWithRef<"div">, "children" | "className" | "dangerouslySetInnerHTML" | "id">;
11
50
  /** "single" renders `type="radio"` and a plain group name; "multiple" renders
12
51
  * `type="checkbox"` and suffixes the group name (see `getChoiceGroupName`). */
13
52
  export type ChoiceGroupKind = "single" | "multiple";
@@ -22,6 +61,8 @@ export interface ChoiceGroupProps<TItem extends ChoiceItem = ChoiceItem> {
22
61
  readonly name?: string;
23
62
  readonly orientation: ChoiceOrientation;
24
63
  readonly className?: string;
64
+ /** Native props forwarded to the rendered group root. */
65
+ readonly rootProps?: Omit<ComponentPropsWithRef<"div">, "children" | "className" | "dangerouslySetInnerHTML" | "id">;
25
66
  /** Part name for each item's wrapper div. Defaults to "item". */
26
67
  readonly itemPart?: string;
27
68
  /** Adds `data-part="label"` to the label. */
@@ -32,6 +73,12 @@ export interface ChoiceGroupProps<TItem extends ChoiceItem = ChoiceItem> {
32
73
  readonly labelAttributes?: Record<string, string>;
33
74
  /** Per-item `className` hook for the input, e.g. RadioGroup's `item.className`. */
34
75
  readonly itemInputClassName?: (item: TItem) => string | undefined;
76
+ /** Native props for each generated Choice.Item wrapper. */
77
+ readonly itemProps?: (item: TItem) => Omit<ComponentPropsWithRef<"div">, keyof ChoiceItemOwnProps | "children">;
78
+ /** Native props for generated Choice.Item subparts. */
79
+ readonly itemSlotProps?: (item: TItem) => ChoiceItemSlotProps;
80
+ /** Props for generated item parts. Repeated values can target one item by value. */
81
+ readonly slotProps?: ChoiceGroupSlotProps;
35
82
  /** Fires on the input's native `change` event, e.g. a client wrapper syncing
36
83
  * a controlled value. Omitted by every uncontrolled (server) consumer. */
37
84
  readonly onItemChange?: (item: TItem) => void;
@@ -41,5 +88,8 @@ export interface ChoiceGroupProps<TItem extends ChoiceItem = ChoiceItem> {
41
88
  readonly renderLabel?: (item: TItem) => ReactNode;
42
89
  /** Trailing content rendered inside the root after the mapped items, e.g. Tabs' `append`. */
43
90
  readonly append?: ReactNode;
91
+ /** Props for the generated append wrapper. */
92
+ readonly appendProps?: Omit<ComponentPropsWithRef<"div">, "children" | "data-part">;
44
93
  }
94
+ export {};
45
95
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,UAAU,CAAC;AAE1D;+EAC+E;AAC/E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEpD,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,mFAAmF;IACnF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,mFAAmF;IACnF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,SAAS,CAAC;IAClE;8EAC0E;IAC1E,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9C,wFAAwF;IACxF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC;IAClD,sFAAsF;IACtF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC;IAClD,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/choice-family/types.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export interface MenuSelectEvent {
22
22
  export interface UseMenuSurfaceOptions {
23
23
  readonly align?: AnchorAlign;
24
24
  readonly defaultOpen?: boolean;
25
+ readonly id?: string;
25
26
  /** `"auto"` for click-dismissable surfaces, `"manual"` when the compound drives dismissal. */
26
27
  readonly mode: "auto" | "manual";
27
28
  readonly onOpenChange?: PopoverChangeHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/menu/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,gBAAgB,EAChB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,gBAAgB,EAChB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC/E,GAAG,EACH,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAClC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,cAAc,IAAI,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtD,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACpD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/menu/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,gBAAgB,EAChB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC3E,GAAG,EACH,gBAAgB,EAChB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CAC/E,GAAG,EACH,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAClC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,WAAW,CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,cAAc,IAAI,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACtD,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-menu-surface.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/menu/use-menu-surface.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAkDnF"}
1
+ {"version":3,"file":"use-menu-surface.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/menu/use-menu-surface.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAmDnF"}
@@ -5,10 +5,11 @@ import { usePopover } from "@gunkin/uiify/core/popover";
5
5
  import { useIsomorphicLayoutEffect } from "@gunkin/uiify/hooks";
6
6
  import { focusMenuItem } from "./focus-menu-item.js";
7
7
  function useMenuSurface(options) {
8
- const { align, defaultOpen, mode, onOpenChange, open, side } = options;
8
+ const { align, defaultOpen, id, mode, onOpenChange, open, side } = options;
9
9
  const triggerRef = useRef(null);
10
10
  const contentRef = useRef(null);
11
11
  const popover = usePopover({
12
+ ...id !== void 0 ? { id } : {},
12
13
  mode,
13
14
  ...defaultOpen !== void 0 ? { defaultOpen } : {},
14
15
  ...open !== void 0 ? { open } : {},
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/internal/menu/use-menu-surface.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useRef } from \"react\";\nimport { useAnchorPosition } from \"@gunkin/uiify/core/anchor-position\";\nimport { usePopover } from \"@gunkin/uiify/core/popover\";\nimport { useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { focusMenuItem } from \"./focus-menu-item.js\";\nimport type { UseMenuSurfaceOptions, UseMenuSurfaceReturn } from \"./types.js\";\n\n/**\n * Shared body of DropdownMenu and ContextMenu's per-menu state: a popover\n * surface anchored to its invoker, with focus management for opening into the\n * item list and returning to the trigger.\n *\n * `anchorRef`/`positionerRef` are deliberately not part of the return value —\n * `useAnchorPosition` returns no-op refs for both (see core/use-anchor-position.ts),\n * so the menu compounds were merging them into their DOM ref for nothing.\n */\nexport function useMenuSurface(options: UseMenuSurfaceOptions): UseMenuSurfaceReturn {\n const { align, defaultOpen, mode, onOpenChange, open, side } = options;\n const triggerRef = useRef<HTMLElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const popover = usePopover({\n mode,\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange ? { onOpenChange } : {}),\n });\n const anchor = useAnchorPosition({\n ...(align !== undefined ? { align } : {}),\n ...(side !== undefined ? { side } : {}),\n });\n\n const focusTrigger = useCallback(() => {\n triggerRef.current?.focus({ preventScroll: true });\n }, []);\n\n const setTriggerElement = useCallback((element: HTMLElement | null) => {\n triggerRef.current = element;\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (popover.open) focusMenuItem(contentRef.current);\n }, [popover.open]);\n\n const openToItem = useCallback(\n (last?: boolean) => {\n if (!popover.open) popover.openPopover();\n queueMicrotask(() => focusMenuItem(contentRef.current, last !== undefined ? { last } : {}));\n },\n [popover],\n );\n\n return {\n anchorProps: anchor.anchorProps,\n close: popover.close,\n contentRef,\n focusTrigger,\n open: popover.open,\n openPopover: popover.openPopover,\n openToItem,\n popupProps: popover.popupProps,\n popupRef: popover.popupRef,\n positionerProps: anchor.positionerProps,\n setTriggerElement,\n triggerProps: popover.triggerProps,\n triggerRef,\n };\n}\n"],"mappings":";AAEA,SAAS,aAAa,cAAc;AACpC,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,qBAAqB;AAYvB,SAAS,eAAe,SAAsD;AACnF,QAAM,EAAE,OAAO,aAAa,MAAM,cAAc,MAAM,KAAK,IAAI;AAC/D,QAAM,aAAa,OAA2B,IAAI;AAClD,QAAM,aAAa,OAA8B,IAAI;AACrD,QAAM,UAAU,WAAW;AAAA,IACzB;AAAA,IACA,GAAI,gBAAgB,SAAY,EAAE,YAAY,IAAI,CAAC;AAAA,IACnD,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,IACrC,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;AAAA,EACzC,CAAC;AACD,QAAM,SAAS,kBAAkB;AAAA,IAC/B,GAAI,UAAU,SAAY,EAAE,MAAM,IAAI,CAAC;AAAA,IACvC,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,EACvC,CAAC;AAED,QAAM,eAAe,YAAY,MAAM;AACrC,eAAW,SAAS,MAAM,EAAE,eAAe,KAAK,CAAC;AAAA,EACnD,GAAG,CAAC,CAAC;AAEL,QAAM,oBAAoB,YAAY,CAAC,YAAgC;AACrE,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,CAAC;AAEL,4BAA0B,MAAM;AAC9B,QAAI,QAAQ,KAAM,eAAc,WAAW,OAAO;AAAA,EACpD,GAAG,CAAC,QAAQ,IAAI,CAAC;AAEjB,QAAM,aAAa;AAAA,IACjB,CAAC,SAAmB;AAClB,UAAI,CAAC,QAAQ,KAAM,SAAQ,YAAY;AACvC,qBAAe,MAAM,cAAc,WAAW,SAAS,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;AAAA,IAC5F;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO;AAAA,IACL,aAAa,OAAO;AAAA,IACpB,OAAO,QAAQ;AAAA,IACf;AAAA,IACA;AAAA,IACA,MAAM,QAAQ;AAAA,IACd,aAAa,QAAQ;AAAA,IACrB;AAAA,IACA,YAAY,QAAQ;AAAA,IACpB,UAAU,QAAQ;AAAA,IAClB,iBAAiB,OAAO;AAAA,IACxB;AAAA,IACA,cAAc,QAAQ;AAAA,IACtB;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/internal/menu/use-menu-surface.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useRef } from \"react\";\nimport { useAnchorPosition } from \"@gunkin/uiify/core/anchor-position\";\nimport { usePopover } from \"@gunkin/uiify/core/popover\";\nimport { useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { focusMenuItem } from \"./focus-menu-item.js\";\nimport type { UseMenuSurfaceOptions, UseMenuSurfaceReturn } from \"./types.js\";\n\n/**\n * Shared body of DropdownMenu and ContextMenu's per-menu state: a popover\n * surface anchored to its invoker, with focus management for opening into the\n * item list and returning to the trigger.\n *\n * `anchorRef`/`positionerRef` are deliberately not part of the return value —\n * `useAnchorPosition` returns no-op refs for both (see core/use-anchor-position.ts),\n * so the menu compounds were merging them into their DOM ref for nothing.\n */\nexport function useMenuSurface(options: UseMenuSurfaceOptions): UseMenuSurfaceReturn {\n const { align, defaultOpen, id, mode, onOpenChange, open, side } = options;\n const triggerRef = useRef<HTMLElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const popover = usePopover({\n ...(id !== undefined ? { id } : {}),\n mode,\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange ? { onOpenChange } : {}),\n });\n const anchor = useAnchorPosition({\n ...(align !== undefined ? { align } : {}),\n ...(side !== undefined ? { side } : {}),\n });\n\n const focusTrigger = useCallback(() => {\n triggerRef.current?.focus({ preventScroll: true });\n }, []);\n\n const setTriggerElement = useCallback((element: HTMLElement | null) => {\n triggerRef.current = element;\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (popover.open) focusMenuItem(contentRef.current);\n }, [popover.open]);\n\n const openToItem = useCallback(\n (last?: boolean) => {\n if (!popover.open) popover.openPopover();\n queueMicrotask(() => focusMenuItem(contentRef.current, last !== undefined ? { last } : {}));\n },\n [popover],\n );\n\n return {\n anchorProps: anchor.anchorProps,\n close: popover.close,\n contentRef,\n focusTrigger,\n open: popover.open,\n openPopover: popover.openPopover,\n openToItem,\n popupProps: popover.popupProps,\n popupRef: popover.popupRef,\n positionerProps: anchor.positionerProps,\n setTriggerElement,\n triggerProps: popover.triggerProps,\n triggerRef,\n };\n}\n"],"mappings":";AAEA,SAAS,aAAa,cAAc;AACpC,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,qBAAqB;AAYvB,SAAS,eAAe,SAAsD;AACnF,QAAM,EAAE,OAAO,aAAa,IAAI,MAAM,cAAc,MAAM,KAAK,IAAI;AACnE,QAAM,aAAa,OAA2B,IAAI;AAClD,QAAM,aAAa,OAA8B,IAAI;AACrD,QAAM,UAAU,WAAW;AAAA,IACzB,GAAI,OAAO,SAAY,EAAE,GAAG,IAAI,CAAC;AAAA,IACjC;AAAA,IACA,GAAI,gBAAgB,SAAY,EAAE,YAAY,IAAI,CAAC;AAAA,IACnD,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,IACrC,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;AAAA,EACzC,CAAC;AACD,QAAM,SAAS,kBAAkB;AAAA,IAC/B,GAAI,UAAU,SAAY,EAAE,MAAM,IAAI,CAAC;AAAA,IACvC,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,EACvC,CAAC;AAED,QAAM,eAAe,YAAY,MAAM;AACrC,eAAW,SAAS,MAAM,EAAE,eAAe,KAAK,CAAC;AAAA,EACnD,GAAG,CAAC,CAAC;AAEL,QAAM,oBAAoB,YAAY,CAAC,YAAgC;AACrE,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,CAAC;AAEL,4BAA0B,MAAM;AAC9B,QAAI,QAAQ,KAAM,eAAc,WAAW,OAAO;AAAA,EACpD,GAAG,CAAC,QAAQ,IAAI,CAAC;AAEjB,QAAM,aAAa;AAAA,IACjB,CAAC,SAAmB;AAClB,UAAI,CAAC,QAAQ,KAAM,SAAQ,YAAY;AACvC,qBAAe,MAAM,cAAc,WAAW,SAAS,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;AAAA,IAC5F;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO;AAAA,IACL,aAAa,OAAO;AAAA,IACpB,OAAO,QAAQ;AAAA,IACf;AAAA,IACA;AAAA,IACA,MAAM,QAAQ;AAAA,IACd,aAAa,QAAQ;AAAA,IACrB;AAAA,IACA,YAAY,QAAQ;AAAA,IACpB,UAAU,QAAQ;AAAA,IAClB,iBAAiB,OAAO;AAAA,IACxB;AAAA,IACA,cAAc,QAAQ;AAAA,IACtB;AAAA,EACF;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"NativeCheckControl.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/native-check-control/NativeCheckControl.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,YAAY,CAkE/E;yBAlEe,kBAAkB"}
1
+ {"version":3,"file":"NativeCheckControl.d.ts","sourceRoot":"","sources":["../../../../src/components/internal/native-check-control/NativeCheckControl.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,OAAO,CAAC;AAIvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,YAAY,CA+F/E;yBA/Fe,kBAAkB"}
@@ -1,6 +1,9 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useRef, useState } from "react";
4
+ import { useMergedRefs } from "@gunkin/uiify/hooks";
5
+ import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
6
+ import { mergeRepeatedSlotProps, omitProps } from "../../../core/slot-props.js";
4
7
  function NativeCheckControl(props) {
5
8
  const {
6
9
  checked,
@@ -11,12 +14,40 @@ function NativeCheckControl(props) {
11
14
  name,
12
15
  onCheckedChange,
13
16
  className,
17
+ slotProps,
14
18
  value,
15
19
  "aria-label": ariaLabel
16
20
  } = props;
17
21
  const isControlled = checked !== void 0;
18
22
  const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked ?? false);
19
23
  const inputRef = useRef(null);
24
+ const inputProps = omitProps(slotProps?.input, [
25
+ "aria-checked",
26
+ "aria-label",
27
+ "aria-labelledby",
28
+ "checked",
29
+ "children",
30
+ "dangerouslySetInnerHTML",
31
+ "data-disabled",
32
+ "data-part",
33
+ "data-state",
34
+ "data-uiify-checkbox",
35
+ "defaultChecked",
36
+ "defaultValue",
37
+ "disabled",
38
+ "id",
39
+ "name",
40
+ "type",
41
+ "value"
42
+ ]);
43
+ const labelProps = omitProps(mergeRepeatedSlotProps({ className }, slotProps?.label), [
44
+ "children",
45
+ "dangerouslySetInnerHTML",
46
+ "data-uiify-checkbox",
47
+ "htmlFor",
48
+ "id"
49
+ ]);
50
+ const mergedInputRef = useMergedRefs(inputProps.ref, inputRef);
20
51
  const checkedValue = isControlled ? checked === true : uncontrolledChecked;
21
52
  useEffect(() => {
22
53
  if (inputRef.current) inputRef.current.indeterminate = checked === "indeterminate";
@@ -31,6 +62,7 @@ function NativeCheckControl(props) {
31
62
  const input = /* @__PURE__ */ jsx(
32
63
  "input",
33
64
  {
65
+ ...inputProps,
34
66
  "aria-checked": checked === "indeterminate" ? "mixed" : void 0,
35
67
  "aria-label": label === void 0 ? ariaLabel : void 0,
36
68
  "aria-labelledby": label !== void 0 ? `${id}-label` : void 0,
@@ -41,14 +73,14 @@ function NativeCheckControl(props) {
41
73
  disabled: disabled || void 0,
42
74
  id,
43
75
  name,
44
- onChange: handleChange,
45
- ref: inputRef,
76
+ onChange: composeEventHandlers(inputProps.onChange, handleChange),
77
+ ref: mergedInputRef,
46
78
  type: "checkbox",
47
79
  value,
48
80
  ...label === void 0 ? { "data-uiify-checkbox": "" } : { "data-part": "control" }
49
81
  }
50
82
  );
51
- return label === void 0 ? input : /* @__PURE__ */ jsxs("label", { className, "data-uiify-checkbox": "", id: `${id}-label`, children: [
83
+ return label === void 0 ? input : /* @__PURE__ */ jsxs("label", { ...labelProps, "data-uiify-checkbox": "", id: `${id}-label`, children: [
52
84
  input,
53
85
  label
54
86
  ] });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/internal/native-check-control/NativeCheckControl.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport type { ChangeEvent, ReactElement } from \"react\";\nimport type { NativeCheckControlProps } from \"./types.js\";\n\nexport function NativeCheckControl(props: NativeCheckControlProps): ReactElement {\n const {\n checked,\n defaultChecked,\n disabled = false,\n id,\n label,\n name,\n onCheckedChange,\n className,\n value,\n \"aria-label\": ariaLabel,\n } = props;\n const isControlled = checked !== undefined;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked ?? false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const checkedValue = isControlled ? checked === true : uncontrolledChecked;\n\n useEffect(() => {\n if (inputRef.current) inputRef.current.indeterminate = checked === \"indeterminate\";\n }, [checked]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (checked === \"indeterminate\" && inputRef.current) {\n inputRef.current.indeterminate = true;\n }\n if (!isControlled) setUncontrolledChecked(event.currentTarget.checked);\n onCheckedChange?.(event.currentTarget.checked);\n };\n\n const input = (\n <input\n aria-checked={checked === \"indeterminate\" ? \"mixed\" : undefined}\n aria-label={label === undefined ? ariaLabel : undefined}\n aria-labelledby={label !== undefined ? `${id}-label` : undefined}\n checked={isControlled ? checkedValue : undefined}\n data-disabled={disabled ? \"\" : undefined}\n data-state={\n isControlled\n ? checked === \"indeterminate\"\n ? \"indeterminate\"\n : checkedValue\n ? \"checked\"\n : \"unchecked\"\n : undefined\n }\n defaultChecked={!isControlled ? defaultChecked : undefined}\n disabled={disabled || undefined}\n id={id}\n name={name}\n onChange={handleChange}\n ref={inputRef}\n type=\"checkbox\"\n value={value}\n {...(label === undefined ? { \"data-uiify-checkbox\": \"\" } : { \"data-part\": \"control\" })}\n />\n );\n\n return label === undefined ? (\n input\n ) : (\n <label className={className} data-uiify-checkbox=\"\" id={`${id}-label`}>\n {input}\n {label}\n </label>\n );\n}\nNativeCheckControl.displayName = \"NativeCheckControl\";\n"],"mappings":";AAqCI,cA8BA,YA9BA;AAnCJ,SAAS,WAAW,QAAQ,gBAAgB;AAIrC,SAAS,mBAAmB,OAA8C;AAC/E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,EAChB,IAAI;AACJ,QAAM,eAAe,YAAY;AACjC,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,SAAS,kBAAkB,KAAK;AACtF,QAAM,WAAW,OAAgC,IAAI;AACrD,QAAM,eAAe,eAAe,YAAY,OAAO;AAEvD,YAAU,MAAM;AACd,QAAI,SAAS,QAAS,UAAS,QAAQ,gBAAgB,YAAY;AAAA,EACrE,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,eAAe,CAAC,UAAyC;AAC7D,QAAI,YAAY,mBAAmB,SAAS,SAAS;AACnD,eAAS,QAAQ,gBAAgB;AAAA,IACnC;AACA,QAAI,CAAC,aAAc,wBAAuB,MAAM,cAAc,OAAO;AACrE,sBAAkB,MAAM,cAAc,OAAO;AAAA,EAC/C;AAEA,QAAM,QACJ;AAAA,IAAC;AAAA;AAAA,MACC,gBAAc,YAAY,kBAAkB,UAAU;AAAA,MACtD,cAAY,UAAU,SAAY,YAAY;AAAA,MAC9C,mBAAiB,UAAU,SAAY,GAAG,EAAE,WAAW;AAAA,MACvD,SAAS,eAAe,eAAe;AAAA,MACvC,iBAAe,WAAW,KAAK;AAAA,MAC/B,cACE,eACI,YAAY,kBACV,kBACA,eACE,YACA,cACJ;AAAA,MAEN,gBAAgB,CAAC,eAAe,iBAAiB;AAAA,MACjD,UAAU,YAAY;AAAA,MACtB;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAK;AAAA,MACL;AAAA,MACC,GAAI,UAAU,SAAY,EAAE,uBAAuB,GAAG,IAAI,EAAE,aAAa,UAAU;AAAA;AAAA,EACtF;AAGF,SAAO,UAAU,SACf,QAEA,qBAAC,WAAM,WAAsB,uBAAoB,IAAG,IAAI,GAAG,EAAE,UAC1D;AAAA;AAAA,IACA;AAAA,KACH;AAEJ;AACA,mBAAmB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/internal/native-check-control/NativeCheckControl.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport type { ChangeEvent, ReactElement } from \"react\";\nimport { useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { mergeRepeatedSlotProps, omitProps } from \"../../../core/slot-props.js\";\nimport type { NativeCheckControlProps } from \"./types.js\";\n\nexport function NativeCheckControl(props: NativeCheckControlProps): ReactElement {\n const {\n checked,\n defaultChecked,\n disabled = false,\n id,\n label,\n name,\n onCheckedChange,\n className,\n slotProps,\n value,\n \"aria-label\": ariaLabel,\n } = props;\n const isControlled = checked !== undefined;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked ?? false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const inputProps = omitProps(slotProps?.input, [\n \"aria-checked\",\n \"aria-label\",\n \"aria-labelledby\",\n \"checked\",\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-disabled\",\n \"data-part\",\n \"data-state\",\n \"data-uiify-checkbox\",\n \"defaultChecked\",\n \"defaultValue\",\n \"disabled\",\n \"id\",\n \"name\",\n \"type\",\n \"value\",\n ]);\n const labelProps = omitProps(mergeRepeatedSlotProps({ className }, slotProps?.label), [\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-uiify-checkbox\",\n \"htmlFor\",\n \"id\",\n ]);\n const mergedInputRef = useMergedRefs(inputProps.ref, inputRef);\n const checkedValue = isControlled ? checked === true : uncontrolledChecked;\n\n useEffect(() => {\n if (inputRef.current) inputRef.current.indeterminate = checked === \"indeterminate\";\n }, [checked]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (checked === \"indeterminate\" && inputRef.current) {\n inputRef.current.indeterminate = true;\n }\n if (!isControlled) setUncontrolledChecked(event.currentTarget.checked);\n onCheckedChange?.(event.currentTarget.checked);\n };\n\n const input = (\n <input\n {...inputProps}\n aria-checked={checked === \"indeterminate\" ? \"mixed\" : undefined}\n aria-label={label === undefined ? ariaLabel : undefined}\n aria-labelledby={label !== undefined ? `${id}-label` : undefined}\n checked={isControlled ? checkedValue : undefined}\n data-disabled={disabled ? \"\" : undefined}\n data-state={\n isControlled\n ? checked === \"indeterminate\"\n ? \"indeterminate\"\n : checkedValue\n ? \"checked\"\n : \"unchecked\"\n : undefined\n }\n defaultChecked={!isControlled ? defaultChecked : undefined}\n disabled={disabled || undefined}\n id={id}\n name={name}\n onChange={composeEventHandlers(inputProps.onChange, handleChange)}\n ref={mergedInputRef}\n type=\"checkbox\"\n value={value}\n {...(label === undefined ? { \"data-uiify-checkbox\": \"\" } : { \"data-part\": \"control\" })}\n />\n );\n\n return label === undefined ? (\n input\n ) : (\n <label {...labelProps} data-uiify-checkbox=\"\" id={`${id}-label`}>\n {input}\n {label}\n </label>\n );\n}\nNativeCheckControl.displayName = \"NativeCheckControl\";\n"],"mappings":";AAoEI,cA+BA,YA/BA;AAlEJ,SAAS,WAAW,QAAQ,gBAAgB;AAE5C,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,wBAAwB,iBAAiB;AAG3C,SAAS,mBAAmB,OAA8C;AAC/E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,EAChB,IAAI;AACJ,QAAM,eAAe,YAAY;AACjC,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,SAAS,kBAAkB,KAAK;AACtF,QAAM,WAAW,OAAgC,IAAI;AACrD,QAAM,aAAa,UAAU,WAAW,OAAO;AAAA,IAC7C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,aAAa,UAAU,uBAAuB,EAAE,UAAU,GAAG,WAAW,KAAK,GAAG;AAAA,IACpF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,iBAAiB,cAAc,WAAW,KAAK,QAAQ;AAC7D,QAAM,eAAe,eAAe,YAAY,OAAO;AAEvD,YAAU,MAAM;AACd,QAAI,SAAS,QAAS,UAAS,QAAQ,gBAAgB,YAAY;AAAA,EACrE,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,eAAe,CAAC,UAAyC;AAC7D,QAAI,YAAY,mBAAmB,SAAS,SAAS;AACnD,eAAS,QAAQ,gBAAgB;AAAA,IACnC;AACA,QAAI,CAAC,aAAc,wBAAuB,MAAM,cAAc,OAAO;AACrE,sBAAkB,MAAM,cAAc,OAAO;AAAA,EAC/C;AAEA,QAAM,QACJ;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,gBAAc,YAAY,kBAAkB,UAAU;AAAA,MACtD,cAAY,UAAU,SAAY,YAAY;AAAA,MAC9C,mBAAiB,UAAU,SAAY,GAAG,EAAE,WAAW;AAAA,MACvD,SAAS,eAAe,eAAe;AAAA,MACvC,iBAAe,WAAW,KAAK;AAAA,MAC/B,cACE,eACI,YAAY,kBACV,kBACA,eACE,YACA,cACJ;AAAA,MAEN,gBAAgB,CAAC,eAAe,iBAAiB;AAAA,MACjD,UAAU,YAAY;AAAA,MACtB;AAAA,MACA;AAAA,MACA,UAAU,qBAAqB,WAAW,UAAU,YAAY;AAAA,MAChE,KAAK;AAAA,MACL,MAAK;AAAA,MACL;AAAA,MACC,GAAI,UAAU,SAAY,EAAE,uBAAuB,GAAG,IAAI,EAAE,aAAa,UAAU;AAAA;AAAA,EACtF;AAGF,SAAO,UAAU,SACf,QAEA,qBAAC,WAAO,GAAG,YAAY,uBAAoB,IAAG,IAAI,GAAG,EAAE,UACpD;AAAA;AAAA,IACA;AAAA,KACH;AAEJ;AACA,mBAAmB,cAAc;","names":[]}